Merge branch staging-next into haskell-updates
This commit is contained in:
@@ -11,6 +11,7 @@ on:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
issues: write
|
||||
pull-requests: write
|
||||
|
||||
jobs:
|
||||
@@ -49,13 +50,13 @@ jobs:
|
||||
|
||||
- name: "Add 'has: port to stable' label"
|
||||
if: steps.backport.outputs.created_pull_numbers != ''
|
||||
env:
|
||||
# Not the app on purpose to avoid triggering another workflow run after adding this label
|
||||
GH_TOKEN: ${{ github.token }}
|
||||
REPOSITORY: ${{ github.repository }}
|
||||
NUMBER: ${{ github.event.number }}
|
||||
run: |
|
||||
gh api \
|
||||
--method POST \
|
||||
/repos/"$REPOSITORY"/issues/"$NUMBER"/labels \
|
||||
-f "labels[]=8.has: port to stable"
|
||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||
with:
|
||||
# Not using the app on purpose to avoid triggering another workflow run after adding this label.
|
||||
script: |
|
||||
await github.rest.issues.addLabels({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
issue_number: context.payload.pull_request.number,
|
||||
labels: [ '8.has: port to stable' ]
|
||||
})
|
||||
|
||||
@@ -10,7 +10,12 @@ on:
|
||||
- 'staging-**'
|
||||
- '!staging-next'
|
||||
|
||||
permissions: {}
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions:
|
||||
pull-requests: write
|
||||
|
||||
jobs:
|
||||
check:
|
||||
@@ -24,8 +29,108 @@ jobs:
|
||||
path: trusted
|
||||
|
||||
- name: Check cherry-picks
|
||||
id: check
|
||||
continue-on-error: true
|
||||
env:
|
||||
BASE_SHA: ${{ github.event.pull_request.base.sha }}
|
||||
HEAD_SHA: ${{ github.event.pull_request.head.sha }}
|
||||
run: |
|
||||
./trusted/ci/check-cherry-picks.sh "$BASE_SHA" "$HEAD_SHA"
|
||||
./trusted/ci/check-cherry-picks.sh "$BASE_SHA" "$HEAD_SHA" checked-cherry-picks.md
|
||||
|
||||
- name: Prepare review
|
||||
if: steps.check.outcome == 'failure'
|
||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||
with:
|
||||
script: |
|
||||
const { readFile, writeFile } = require('node:fs/promises')
|
||||
|
||||
const job_url = (await github.rest.actions.listJobsForWorkflowRun({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
run_id: context.runId
|
||||
})).data.jobs[0].html_url + '?pr=' + context.payload.pull_request.number
|
||||
|
||||
const header = await readFile('trusted/ci/check-cherry-picks.md')
|
||||
const body = await readFile('checked-cherry-picks.md')
|
||||
const footer =
|
||||
`\n_Hint: The full diffs are also available in the [runner logs](${job_url}) with slightly better highlighting._`
|
||||
|
||||
const review = header + body + footer
|
||||
await writeFile('review.md', review)
|
||||
core.summary.addRaw(review)
|
||||
core.summary.write()
|
||||
|
||||
- name: Request changes
|
||||
if: ${{ github.event_name == 'pull_request_target' && steps.check.outcome == 'failure' }}
|
||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||
with:
|
||||
script: |
|
||||
const { readFile } = require('node:fs/promises')
|
||||
const body = await readFile('review.md', 'utf-8')
|
||||
|
||||
const pendingReview = (await github.paginate(github.rest.pulls.listReviews, {
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
pull_number: context.payload.pull_request.number
|
||||
})).find(review =>
|
||||
review.user.login == 'github-actions[bot]' && (
|
||||
// If a review is still pending, we can just update this instead
|
||||
// of posting a new one.
|
||||
review.state == 'CHANGES_REQUESTED' ||
|
||||
// No need to post a new review, if an older one with the exact
|
||||
// same content had already been dismissed.
|
||||
review.body == body
|
||||
)
|
||||
)
|
||||
|
||||
// Either of those two requests could fail for very long comments. This can only happen
|
||||
// with multiple commits all hitting the truncation limit for the diff. If you ever hit
|
||||
// this case, consider just splitting up those commits into multiple PRs.
|
||||
if (pendingReview) {
|
||||
await github.rest.pulls.updateReview({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
pull_number: context.payload.pull_request.number,
|
||||
review_id: pendingReview.id,
|
||||
body
|
||||
})
|
||||
} else {
|
||||
await github.rest.pulls.createReview({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
pull_number: context.payload.pull_request.number,
|
||||
event: 'REQUEST_CHANGES',
|
||||
body
|
||||
})
|
||||
}
|
||||
|
||||
- name: Dismiss old reviews
|
||||
if: ${{ github.event_name == 'pull_request_target' && steps.check.outcome == 'success' }}
|
||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||
with:
|
||||
script: |
|
||||
await Promise.all(
|
||||
(await github.paginate(github.rest.pulls.listReviews, {
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
pull_number: context.payload.pull_request.number
|
||||
})).filter(review =>
|
||||
review.user.login == 'github-actions[bot]' &&
|
||||
review.state == 'CHANGES_REQUESTED'
|
||||
).map(async (review) => {
|
||||
await github.rest.pulls.dismissReview({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
pull_number: context.payload.pull_request.number,
|
||||
review_id: review.id,
|
||||
message: 'All cherry-picks are good now, thank you!'
|
||||
})
|
||||
await github.graphql(`mutation($node_id:ID!) {
|
||||
minimizeComment(input: {
|
||||
classifier: RESOLVED,
|
||||
subjectId: $node_id
|
||||
})
|
||||
{ clientMutationId }
|
||||
}`, { node_id: review.node_id })
|
||||
})
|
||||
)
|
||||
|
||||
@@ -6,6 +6,10 @@ on:
|
||||
- .github/workflows/check-format.yml
|
||||
pull_request_target:
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
|
||||
@@ -9,6 +9,10 @@ on:
|
||||
- 'shell.nix'
|
||||
- 'ci/**'
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
|
||||
@@ -29,6 +29,10 @@ on:
|
||||
pull_request_target:
|
||||
types: [opened, ready_for_review, synchronize, reopened]
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: {}
|
||||
|
||||
env:
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
name: Dismissed Review
|
||||
|
||||
on:
|
||||
pull_request_review:
|
||||
types: [dismissed]
|
||||
|
||||
permissions:
|
||||
pull-requests: write
|
||||
|
||||
jobs:
|
||||
# The check-cherry-picks workflow creates review comments,
|
||||
# that should sometimes be manually dismissed.
|
||||
# When a CI-generated review is dismissed, this job automatically
|
||||
# minimizes it, to prevent it from cluttering the PR.
|
||||
minimize:
|
||||
name: Minimize as resolved
|
||||
if: github.event.review.user.login == 'github-actions[bot]'
|
||||
runs-on: ubuntu-24.04-arm
|
||||
steps:
|
||||
- uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||
with:
|
||||
script: |
|
||||
await github.graphql(`mutation($node_id:ID!) {
|
||||
minimizeComment(input: {
|
||||
classifier: RESOLVED,
|
||||
subjectId: $node_id
|
||||
})
|
||||
{ clientMutationId }
|
||||
}`, { node_id: context.payload.review.node_id })
|
||||
|
||||
@@ -16,6 +16,10 @@ on:
|
||||
pull_request_target:
|
||||
types: [edited]
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
@@ -34,16 +38,17 @@ jobs:
|
||||
private-key: ${{ secrets.NIXPKGS_CI_APP_PRIVATE_KEY }}
|
||||
permission-pull-requests: write
|
||||
|
||||
- env:
|
||||
GH_TOKEN: ${{ steps.app-token.outputs.token }}
|
||||
REPOSITORY: ${{ github.repository }}
|
||||
NUMBER: ${{ github.event.number }}
|
||||
run: |
|
||||
gh api \
|
||||
--method PATCH \
|
||||
/repos/"$REPOSITORY"/pulls/"$NUMBER" \
|
||||
-f "state=closed"
|
||||
gh api \
|
||||
--method PATCH \
|
||||
/repos/"$REPOSITORY"/pulls/"$NUMBER" \
|
||||
-f "state=open"
|
||||
- uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||
with:
|
||||
github-token: ${{ steps.app-token.outputs.token }}
|
||||
script: |
|
||||
function changeState(state) {
|
||||
return github.rest.pulls.update({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
pull_number: context.payload.pull_request.number,
|
||||
state
|
||||
})
|
||||
}
|
||||
await changeState('closed')
|
||||
await changeState('open')
|
||||
|
||||
@@ -6,6 +6,10 @@ on:
|
||||
- .github/workflows/eval-aliases.yml
|
||||
pull_request_target:
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
|
||||
+114
-111
@@ -4,8 +4,8 @@ on:
|
||||
pull_request:
|
||||
paths:
|
||||
- .github/workflows/eval.yml
|
||||
- .github/workflows/reviews.yml # needs eval results from the same event type
|
||||
pull_request_target:
|
||||
types: [opened, ready_for_review, synchronize, reopened]
|
||||
push:
|
||||
# Keep this synced with ci/request-reviews/dev-branches.txt
|
||||
branches:
|
||||
@@ -16,6 +16,10 @@ on:
|
||||
- haskell-updates
|
||||
- python-updates
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
@@ -87,44 +91,43 @@ jobs:
|
||||
- name: Get target run id
|
||||
if: needs.prepare.outputs.targetSha
|
||||
id: targetRunId
|
||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||
env:
|
||||
GH_TOKEN: ${{ github.token }}
|
||||
MATRIX_SYSTEM: ${{ matrix.system }}
|
||||
REPOSITORY: ${{ github.repository }}
|
||||
TARGET_SHA: ${{ needs.prepare.outputs.targetSha }}
|
||||
run: |
|
||||
# Get the latest eval.yml workflow run for the PR's target commit
|
||||
if ! run=$(gh api --method GET /repos/"$REPOSITORY"/actions/workflows/eval.yml/runs \
|
||||
-f head_sha="$TARGET_SHA" -f event=push \
|
||||
--jq '.workflow_runs | sort_by(.run_started_at) | .[-1]') \
|
||||
|| [[ -z "$run" ]]; then
|
||||
echo "Could not find an eval.yml workflow run for $TARGET_SHA, cannot make comparison"
|
||||
exit 1
|
||||
fi
|
||||
echo "Comparing against $(jq .html_url <<< "$run")"
|
||||
runId=$(jq .id <<< "$run")
|
||||
with:
|
||||
script: |
|
||||
const system = process.env.MATRIX_SYSTEM
|
||||
const targetSha = process.env.TARGET_SHA
|
||||
|
||||
if ! job=$(gh api --method GET /repos/"$REPOSITORY"/actions/runs/"$runId"/jobs \
|
||||
--jq ".jobs[] | select (.name == \"Outpaths ($MATRIX_SYSTEM)\")") \
|
||||
|| [[ -z "$job" ]]; then
|
||||
echo "Could not find the Outpaths ($MATRIX_SYSTEM) job for workflow run $runId, cannot make comparison"
|
||||
exit 1
|
||||
fi
|
||||
jobId=$(jq .id <<< "$job")
|
||||
conclusion=$(jq -r .conclusion <<< "$job")
|
||||
let run_id
|
||||
try {
|
||||
run_id = (await github.rest.actions.listWorkflowRuns({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
workflow_id: 'eval.yml',
|
||||
event: 'push',
|
||||
head_sha: targetSha
|
||||
})).data.workflow_runs[0].id
|
||||
} catch {
|
||||
throw new Error(`Could not find an eval.yml workflow run for ${targetSha}.`)
|
||||
}
|
||||
|
||||
while [[ "$conclusion" == null || "$conclusion" == "" ]]; do
|
||||
echo "Job not done, waiting 10 seconds before checking again"
|
||||
sleep 10
|
||||
conclusion=$(gh api /repos/"$REPOSITORY"/actions/jobs/"$jobId" --jq '.conclusion')
|
||||
done
|
||||
core.setOutput('targetRunId', run_id)
|
||||
|
||||
if [[ "$conclusion" != "success" ]]; then
|
||||
echo "Job was not successful (conclusion: $conclusion), cannot make comparison"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "targetRunId=$runId" >> "$GITHUB_OUTPUT"
|
||||
// Waiting 120 * 5 sec = 10 min. max.
|
||||
// Eval takes max 5-6 minutes, normally.
|
||||
for (let i = 0; i < 120; i++) {
|
||||
const result = await github.rest.actions.listWorkflowRunArtifacts({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
run_id,
|
||||
name: `merged-${system}`
|
||||
})
|
||||
if (result.data.total_count > 0) return
|
||||
await new Promise(resolve => setTimeout(resolve, 5000))
|
||||
}
|
||||
throw new Error(`No merged-${system} artifact found.`)
|
||||
|
||||
- uses: actions/download-artifact@v4
|
||||
if: steps.targetRunId.outputs.targetRunId
|
||||
@@ -153,12 +156,13 @@ jobs:
|
||||
name: diff-${{ matrix.system }}
|
||||
path: diff/*
|
||||
|
||||
tag:
|
||||
name: Tag
|
||||
compare:
|
||||
name: Comparison
|
||||
runs-on: ubuntu-24.04-arm
|
||||
needs: [ prepare, outpaths ]
|
||||
if: needs.prepare.outputs.targetSha
|
||||
permissions:
|
||||
issues: write # needed to create *new* labels
|
||||
pull-requests: write
|
||||
statuses: write
|
||||
steps:
|
||||
@@ -209,87 +213,86 @@ jobs:
|
||||
name: comparison
|
||||
path: comparison/*
|
||||
|
||||
- name: Build the requestReviews derivation
|
||||
run: nix-build trusted/ci -A requestReviews
|
||||
|
||||
- name: Labelling pull request
|
||||
if: ${{ github.event_name == 'pull_request_target' && github.repository_owner == 'NixOS' }}
|
||||
env:
|
||||
GH_TOKEN: ${{ github.token }}
|
||||
REPOSITORY: ${{ github.repository }}
|
||||
NUMBER: ${{ github.event.number }}
|
||||
run: |
|
||||
# Get all currently set labels that we manage
|
||||
gh api \
|
||||
/repos/"$REPOSITORY"/issues/"$NUMBER"/labels \
|
||||
--jq '.[].name | select(startswith("10.rebuild") or . == "11.by: package-maintainer")' \
|
||||
| sort > before
|
||||
if: ${{ github.event_name == 'pull_request_target' }}
|
||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||
with:
|
||||
script: |
|
||||
const { readFile } = require('node:fs/promises')
|
||||
|
||||
# And the labels that should be there
|
||||
jq -r '.labels[]' comparison/changed-paths.json \
|
||||
| sort > after
|
||||
const pr = {
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
issue_number: context.payload.pull_request.number
|
||||
}
|
||||
|
||||
# Remove the ones not needed anymore
|
||||
while read -r toRemove; do
|
||||
echo "Removing label $toRemove"
|
||||
gh api \
|
||||
--method DELETE \
|
||||
/repos/"$REPOSITORY"/issues/"$NUMBER"/labels/"$toRemove"
|
||||
done < <(comm -23 before after)
|
||||
// Get all currently set labels that we manage
|
||||
const before =
|
||||
(await github.paginate(github.rest.issues.listLabelsOnIssue, pr))
|
||||
.map(({ name }) => name)
|
||||
.filter(name => name.startsWith('10.rebuild') || name == '11.by: package-maintainer')
|
||||
|
||||
# And add the ones that aren't set already
|
||||
while read -r toAdd; do
|
||||
echo "Adding label $toAdd"
|
||||
gh api \
|
||||
--method POST \
|
||||
/repos/"$REPOSITORY"/issues/"$NUMBER"/labels \
|
||||
-f "labels[]=$toAdd"
|
||||
done < <(comm -13 before after)
|
||||
// And the labels that should be there
|
||||
const after = JSON.parse(await readFile('comparison/changed-paths.json', 'utf-8')).labels
|
||||
|
||||
// Remove the ones not needed anymore
|
||||
await Promise.all(
|
||||
before.filter(name => !after.includes(name))
|
||||
.map(name => github.rest.issues.removeLabel({
|
||||
...pr,
|
||||
name
|
||||
}))
|
||||
)
|
||||
|
||||
// And add the ones that aren't set already
|
||||
const added = after.filter(name => !before.includes(name))
|
||||
if (added.length > 0) {
|
||||
await github.rest.issues.addLabels({
|
||||
...pr,
|
||||
labels: added
|
||||
})
|
||||
}
|
||||
|
||||
- name: Add eval summary to commit statuses
|
||||
if: ${{ github.event_name == 'pull_request_target' && github.repository_owner == 'NixOS' }}
|
||||
env:
|
||||
GH_TOKEN: ${{ github.token }}
|
||||
PR_HEAD_SHA: ${{ github.event.pull_request.head.sha }}
|
||||
NUMBER: ${{ github.event.number }}
|
||||
run: |
|
||||
description=$(jq -r '
|
||||
"Package: added " + (.attrdiff.added | length | tostring) +
|
||||
", removed " + (.attrdiff.removed | length | tostring) +
|
||||
", changed " + (.attrdiff.changed | length | tostring) +
|
||||
", Rebuild: linux " + (.rebuildCountByKernel.linux | tostring) +
|
||||
", darwin " + (.rebuildCountByKernel.darwin | tostring)
|
||||
' <comparison/changed-paths.json)
|
||||
target_url="$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID?pr=$NUMBER"
|
||||
gh api --method POST \
|
||||
-H "Accept: application/vnd.github+json" -H "X-GitHub-Api-Version: 2022-11-28" \
|
||||
"/repos/$GITHUB_REPOSITORY/statuses/$PR_HEAD_SHA" \
|
||||
-f "context=Eval / Summary" -f "state=success" -f "description=$description" -f "target_url=$target_url"
|
||||
|
||||
# See ./codeowners-v2.yml, reuse the same App because we need the same permissions
|
||||
# Can't use the token received from permissions above, because it can't get enough permissions
|
||||
- uses: actions/create-github-app-token@df432ceedc7162793a195dd1713ff69aefc7379e # v2.0.6
|
||||
if: vars.OWNER_APP_ID
|
||||
id: app-token
|
||||
if: ${{ github.event_name == 'pull_request_target' }}
|
||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||
with:
|
||||
app-id: ${{ vars.OWNER_APP_ID }}
|
||||
private-key: ${{ secrets.OWNER_APP_PRIVATE_KEY }}
|
||||
permission-administration: read
|
||||
permission-members: read
|
||||
permission-pull-requests: write
|
||||
script: |
|
||||
const { readFile } = require('node:fs/promises')
|
||||
const changed = JSON.parse(await readFile('comparison/changed-paths.json', 'utf-8'))
|
||||
const description =
|
||||
'Package: ' + [
|
||||
`added ${changed.attrdiff.added.length}`,
|
||||
`removed ${changed.attrdiff.removed.length}`,
|
||||
`changed ${changed.attrdiff.changed.length}`
|
||||
].join(', ') +
|
||||
' — Rebuild: ' + [
|
||||
`linux ${changed.rebuildCountByKernel.linux}`,
|
||||
`darwin ${changed.rebuildCountByKernel.darwin}`
|
||||
].join(', ')
|
||||
|
||||
- name: Requesting maintainer reviews
|
||||
if: ${{ steps.app-token.outputs.token && github.repository_owner == 'NixOS' }}
|
||||
env:
|
||||
GH_TOKEN: ${{ github.token }}
|
||||
REPOSITORY: ${{ github.repository }}
|
||||
NUMBER: ${{ github.event.number }}
|
||||
AUTHOR: ${{ github.event.pull_request.user.login }}
|
||||
# Don't request reviewers on draft PRs
|
||||
DRY_MODE: ${{ github.event.pull_request.draft && '1' || '' }}
|
||||
run: |
|
||||
# maintainers.json contains GitHub IDs. Look up handles to request reviews from.
|
||||
# There appears to be no API to request reviews based on GitHub IDs
|
||||
jq -r 'keys[]' comparison/maintainers.json \
|
||||
| while read -r id; do gh api /user/"$id" --jq .login; done \
|
||||
| GH_TOKEN=${{ steps.app-token.outputs.token }} result/bin/request-reviewers.sh "$REPOSITORY" "$NUMBER" "$AUTHOR"
|
||||
const { serverUrl, repo, runId, payload } = context
|
||||
const target_url =
|
||||
`${serverUrl}/${repo.owner}/${repo.repo}/actions/runs/${runId}?pr=${payload.pull_request.number}`
|
||||
|
||||
await github.rest.repos.createCommitStatus({
|
||||
owner: repo.owner,
|
||||
repo: repo.repo,
|
||||
sha: payload.pull_request.head.sha,
|
||||
context: 'Eval / Summary',
|
||||
state: 'success',
|
||||
description,
|
||||
target_url
|
||||
})
|
||||
|
||||
reviewers:
|
||||
name: Reviewers
|
||||
# No dependency on "compare", so that it can start at the same time.
|
||||
# We only wait for the "comparison" artifact to be available, which makes the start-to-finish time
|
||||
# for the eval workflow considerably faster.
|
||||
needs: [ prepare, outpaths ]
|
||||
if: needs.prepare.outputs.targetSha
|
||||
uses: ./.github/workflows/reviewers.yml
|
||||
secrets: inherit
|
||||
with:
|
||||
caller: ${{ github.workflow }}
|
||||
|
||||
@@ -8,15 +8,20 @@ name: "Label PR"
|
||||
on:
|
||||
pull_request_target:
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
issues: write # needed to create *new* labels
|
||||
pull-requests: write
|
||||
|
||||
jobs:
|
||||
labels:
|
||||
name: label-pr
|
||||
runs-on: ubuntu-24.04-arm
|
||||
if: "github.repository_owner == 'NixOS' && !contains(github.event.pull_request.title, '[skip treewide]')"
|
||||
if: "!contains(github.event.pull_request.title, '[skip treewide]')"
|
||||
steps:
|
||||
- uses: actions/labeler@8558fd74291d67161a8a78ce36a881fa63b766a9 # v5.0.0
|
||||
if: |
|
||||
|
||||
@@ -9,6 +9,10 @@ on:
|
||||
- 'lib/**'
|
||||
- 'maintainers/**'
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
|
||||
@@ -7,6 +7,7 @@ on:
|
||||
pull_request_target:
|
||||
branches:
|
||||
- master
|
||||
- release-*
|
||||
paths:
|
||||
- "nixos/**"
|
||||
# Also build when the nixpkgs doc changed, since we take things like
|
||||
@@ -17,6 +18,10 @@ on:
|
||||
# Since the lib functions are used to 'massage' the options before producing the manual
|
||||
- "lib/**"
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
@@ -52,7 +57,7 @@ jobs:
|
||||
|
||||
- name: Build NixOS manual
|
||||
id: build-manual
|
||||
run: NIX_PATH=nixpkgs=$(pwd)/untrusted nix-build --option restrict-eval true untrusted/ci -A manual-nixos --argstr system ${{ matrix.system }}
|
||||
run: nix-build untrusted/ci -A manual-nixos --argstr system ${{ matrix.system }}
|
||||
|
||||
- name: Upload NixOS manual
|
||||
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
||||
|
||||
@@ -5,13 +5,15 @@ on:
|
||||
paths:
|
||||
- .github/workflows/manual-nixpkgs-v2.yml
|
||||
pull_request_target:
|
||||
branches:
|
||||
- master
|
||||
paths:
|
||||
- 'doc/**'
|
||||
- 'lib/**'
|
||||
- 'pkgs/by-name/ni/nixdoc/**'
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
@@ -38,4 +40,4 @@ jobs:
|
||||
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
|
||||
|
||||
- name: Building Nixpkgs manual
|
||||
run: NIX_PATH=nixpkgs=$(pwd)/untrusted nix-build --option restrict-eval true untrusted/ci -A manual-nixpkgs -A manual-nixpkgs-tests
|
||||
run: nix-build untrusted/ci -A manual-nixpkgs -A manual-nixpkgs-tests
|
||||
|
||||
@@ -6,6 +6,10 @@ on:
|
||||
- .github/workflows/nix-parse-v2.yml
|
||||
pull_request_target:
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
|
||||
@@ -11,6 +11,10 @@ on:
|
||||
- .github/workflows/nixpkgs-vet.yml
|
||||
pull_request_target:
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: {}
|
||||
|
||||
# We don't use a concurrency group here, because the action is triggered quite often (due to the PR edit trigger), and contributors would get notified on any canceled run.
|
||||
|
||||
@@ -0,0 +1,107 @@
|
||||
# This workflow will request reviews from the maintainers of each package
|
||||
# listed in the PR's most recent eval comparison artifact.
|
||||
|
||||
name: Reviewers
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
paths:
|
||||
- .github/workflows/reviewers.yml
|
||||
pull_request_target:
|
||||
types: [ready_for_review]
|
||||
workflow_call:
|
||||
inputs:
|
||||
caller:
|
||||
description: Name of the calling workflow.
|
||||
required: true
|
||||
type: string
|
||||
|
||||
concurrency:
|
||||
group: ${{ inputs.caller }}-${{ github.workflow }}-${{ github.event_name }}-${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
request:
|
||||
name: Request
|
||||
runs-on: ubuntu-24.04-arm
|
||||
steps:
|
||||
- name: Check out the PR at the base commit
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
path: trusted
|
||||
sparse-checkout: ci
|
||||
|
||||
- name: Install Nix
|
||||
uses: cachix/install-nix-action@526118121621777ccd86f79b04685a9319637641 # v31
|
||||
with:
|
||||
extra_nix_config: sandbox = true
|
||||
|
||||
- name: Build the requestReviews derivation
|
||||
run: nix-build trusted/ci -A requestReviews
|
||||
|
||||
# See ./codeowners-v2.yml, reuse the same App because we need the same permissions
|
||||
# Can't use the token received from permissions above, because it can't get enough permissions
|
||||
- uses: actions/create-github-app-token@df432ceedc7162793a195dd1713ff69aefc7379e # v2.0.6
|
||||
if: vars.OWNER_APP_ID
|
||||
id: app-token
|
||||
with:
|
||||
app-id: ${{ vars.OWNER_APP_ID }}
|
||||
private-key: ${{ secrets.OWNER_APP_PRIVATE_KEY }}
|
||||
permission-administration: read
|
||||
permission-members: read
|
||||
permission-pull-requests: write
|
||||
|
||||
|
||||
# In the regular case, this workflow is called via workflow_call from the eval workflow directly.
|
||||
# In the more special case, when a PR is undrafted an eval run will have started already.
|
||||
- name: Wait for comparison to be done
|
||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||
with:
|
||||
script: |
|
||||
const run_id = (await github.rest.actions.listWorkflowRuns({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
workflow_id: 'eval.yml',
|
||||
event: context.eventName,
|
||||
head_sha: context.payload.pull_request.head.sha
|
||||
})).data.workflow_runs[0].id
|
||||
|
||||
// Waiting 120 * 5 sec = 10 min. max.
|
||||
// The extreme case is an Eval run that just started when the PR is undrafted.
|
||||
// Eval takes max 5-6 minutes, normally.
|
||||
for (let i = 0; i < 120; i++) {
|
||||
const result = await github.rest.actions.listWorkflowRunArtifacts({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
run_id,
|
||||
name: 'comparison'
|
||||
})
|
||||
if (result.data.total_count > 0) return
|
||||
await new Promise(resolve => setTimeout(resolve, 5000))
|
||||
}
|
||||
throw new Error("No comparison artifact found.")
|
||||
|
||||
- name: Download the comparison results
|
||||
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
|
||||
with:
|
||||
pattern: comparison
|
||||
path: comparison
|
||||
merge-multiple: true
|
||||
|
||||
- name: Requesting maintainer reviews
|
||||
if: ${{ steps.app-token.outputs.token }}
|
||||
env:
|
||||
GH_TOKEN: ${{ github.token }}
|
||||
REPOSITORY: ${{ github.repository }}
|
||||
NUMBER: ${{ github.event.number }}
|
||||
AUTHOR: ${{ github.event.pull_request.user.login }}
|
||||
# Don't request reviewers on draft PRs
|
||||
DRY_MODE: ${{ github.event.pull_request.draft && '1' || '' }}
|
||||
run: |
|
||||
# maintainers.json contains GitHub IDs. Look up handles to request reviews from.
|
||||
# There appears to be no API to request reviews based on GitHub IDs
|
||||
jq -r 'keys[]' comparison/maintainers.json \
|
||||
| while read -r id; do gh api /user/"$id" --jq .login; done \
|
||||
| GH_TOKEN=${{ steps.app-token.outputs.token }} result/bin/request-reviewers.sh "$REPOSITORY" "$NUMBER" "$AUTHOR"
|
||||
@@ -0,0 +1,7 @@
|
||||
This report is automatically generated by the `check-cherry-picks` CI workflow.
|
||||
|
||||
Some of the commits in this PR have not been cherry-picked exactly and require the author's and reviewer's attention.
|
||||
|
||||
Please make sure to follow the [backporting guidelines](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md#how-to-backport-pull-requests) and cherry-pick with the `-x` flag. This requires changes to go to the unstable branches (`master` / `staging`) first, before backporting them.
|
||||
|
||||
Occasionally, it is not possible to cherry-pick exactly the same patch. This most frequently happens when resolving merge conflicts while cherry-picking or when updating minor versions of packages which have already advanced to the next major on unstable. If you need to merge this PR despite the warnings, please [dismiss](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/dismissing-a-pull-request-review) this review.
|
||||
+73
-37
@@ -1,13 +1,16 @@
|
||||
#!/usr/bin/env bash
|
||||
# Find alleged cherry-picks
|
||||
|
||||
set -eo pipefail
|
||||
set -euo pipefail
|
||||
|
||||
if [ $# != "2" ] ; then
|
||||
echo "usage: check-cherry-picks.sh base_rev head_rev"
|
||||
if [[ $# != "2" && $# != "3" ]] ; then
|
||||
echo "usage: check-cherry-picks.sh base_rev head_rev [markdown_file]"
|
||||
exit 2
|
||||
fi
|
||||
|
||||
markdown_file="$(realpath ${3:-/dev/null})"
|
||||
[ -v 3 ] && rm -f "$markdown_file"
|
||||
|
||||
# Make sure we are inside the nixpkgs repo, even when called from outside
|
||||
cd "$(dirname "${BASH_SOURCE[0]}")"
|
||||
|
||||
@@ -19,11 +22,43 @@ remote="$(git remote -v | grep -i 'NixOS/nixpkgs' | head -n1 | cut -f1 || true)"
|
||||
|
||||
commits="$(git rev-list --reverse "$1..$2")"
|
||||
|
||||
while read -r new_commit_sha ; do
|
||||
if [ -z "$new_commit_sha" ] ; then
|
||||
continue # skip empty lines
|
||||
log() {
|
||||
type="$1"
|
||||
shift 1
|
||||
|
||||
local -A prefix
|
||||
prefix[success]=" ✔ "
|
||||
if [ -v GITHUB_ACTIONS ]; then
|
||||
prefix[warning]="::warning::"
|
||||
prefix[error]="::error::"
|
||||
else
|
||||
prefix[warning]=" ⚠ "
|
||||
prefix[error]=" ✘ "
|
||||
fi
|
||||
if [ "$GITHUB_ACTIONS" = 'true' ] ; then
|
||||
|
||||
echo "${prefix[$type]}$@"
|
||||
|
||||
# Only logging errors and warnings, which allows comparing the markdown file
|
||||
# between pushes to the PR. Even if a new, proper cherry-pick, commit is added
|
||||
# it won't change the markdown file's content and thus not trigger another comment.
|
||||
if [ "$type" != "success" ]; then
|
||||
local -A alert
|
||||
alert[warning]="WARNING"
|
||||
alert[error]="CAUTION"
|
||||
echo >> $markdown_file
|
||||
echo "> [!${alert[$type]}]" >> $markdown_file
|
||||
echo "> $@" >> $markdown_file
|
||||
fi
|
||||
}
|
||||
|
||||
endgroup() {
|
||||
if [ -v GITHUB_ACTIONS ] ; then
|
||||
echo ::endgroup::
|
||||
fi
|
||||
}
|
||||
|
||||
while read -r new_commit_sha ; do
|
||||
if [ -v GITHUB_ACTIONS ] ; then
|
||||
echo "::group::Commit $new_commit_sha"
|
||||
else
|
||||
echo "================================================="
|
||||
@@ -37,15 +72,8 @@ while read -r new_commit_sha ; do
|
||||
| grep -Eoi -m1 '[0-9a-f]{40}' || true
|
||||
)
|
||||
if [ -z "$original_commit_sha" ] ; then
|
||||
if [ "$GITHUB_ACTIONS" = 'true' ] ; then
|
||||
echo ::endgroup::
|
||||
echo -n "::error ::"
|
||||
else
|
||||
echo -n " ✘ "
|
||||
fi
|
||||
echo "Couldn't locate original commit hash in message"
|
||||
echo "Note this should not necessarily be treated as a hard fail, but a reviewer's attention should" \
|
||||
"be drawn to it and github actions have no way of doing that but to raise a 'failure'"
|
||||
endgroup
|
||||
log warning "Couldn't locate original commit hash in message of $new_commit_sha."
|
||||
problem=1
|
||||
continue
|
||||
fi
|
||||
@@ -65,8 +93,6 @@ while read -r new_commit_sha ; do
|
||||
|
||||
while read -r picked_branch ; do
|
||||
if git merge-base --is-ancestor "$original_commit_sha" "$picked_branch" ; then
|
||||
echo " ✔ $original_commit_sha present in branch $picked_branch"
|
||||
|
||||
range_diff_common='git --no-pager range-diff
|
||||
--no-notes
|
||||
--creation-factor=100
|
||||
@@ -75,23 +101,38 @@ while read -r new_commit_sha ; do
|
||||
'
|
||||
|
||||
if $range_diff_common --no-color 2> /dev/null | grep -E '^ {4}[+-]{2}' > /dev/null ; then
|
||||
if [ "$GITHUB_ACTIONS" = 'true' ] ; then
|
||||
echo ::endgroup::
|
||||
echo -n "::warning ::"
|
||||
else
|
||||
echo -n " ⚠ "
|
||||
log success "$original_commit_sha present in branch $picked_branch"
|
||||
endgroup
|
||||
log warning "Difference between $new_commit_sha and original $original_commit_sha may warrant inspection."
|
||||
|
||||
# First line contains commit SHAs, which we already printed.
|
||||
$range_diff_common --color | tail -n +2
|
||||
|
||||
echo -e "> <details><summary>Show diff</summary>\n>" >> $markdown_file
|
||||
echo '> ```diff' >> $markdown_file
|
||||
# The output of `git range-diff` is indented with 4 spaces, which we need to match with the
|
||||
# code blocks indent to get proper syntax highlighting on GitHub.
|
||||
diff="$($range_diff_common | tail -n +2 | sed -Ee 's/^ {4}/> /g')"
|
||||
# Also limit the output to 10k bytes (and remove the last, potentially incomplete line), because
|
||||
# GitHub comments are limited in length. The value of 10k is arbitrary with the assumption, that
|
||||
# after the range-diff becomes a certain size, a reviewer is better off reviewing the regular diff
|
||||
# in GitHub's UI anyway, thus treating the commit as "new" and not cherry-picked.
|
||||
# Note: This could still lead to a too lengthy comment with multiple commits touching the limit. We
|
||||
# consider this too unlikely to happen, to deal with explicitly.
|
||||
max_length=10000
|
||||
if [ "${#diff}" -gt $max_length ]; then
|
||||
printf -v diff "%s\n\n[...truncated...]" "$(echo "$diff" | head -c $max_length | head -n-1)"
|
||||
fi
|
||||
echo "Difference between $new_commit_sha and original $original_commit_sha may warrant inspection:"
|
||||
echo "$diff" >> $markdown_file
|
||||
echo '> ```' >> $markdown_file
|
||||
echo "> </details>" >> $markdown_file
|
||||
|
||||
$range_diff_common --color
|
||||
|
||||
echo "Note this should not necessarily be treated as a hard fail, but a reviewer's attention should" \
|
||||
"be drawn to it and github actions have no way of doing that but to raise a 'failure'"
|
||||
problem=1
|
||||
else
|
||||
echo " ✔ $original_commit_sha highly similar to $new_commit_sha"
|
||||
log success "$original_commit_sha present in branch $picked_branch"
|
||||
log success "$original_commit_sha highly similar to $new_commit_sha"
|
||||
$range_diff_common --color
|
||||
[ "$GITHUB_ACTIONS" = 'true' ] && echo ::endgroup::
|
||||
endgroup
|
||||
fi
|
||||
|
||||
# move on to next commit
|
||||
@@ -100,13 +141,8 @@ while read -r new_commit_sha ; do
|
||||
done <<< "$branches"
|
||||
done
|
||||
|
||||
if [ "$GITHUB_ACTIONS" = 'true' ] ; then
|
||||
echo ::endgroup::
|
||||
echo -n "::error ::"
|
||||
else
|
||||
echo -n " ✘ "
|
||||
fi
|
||||
echo "$original_commit_sha not found in any pickable branch"
|
||||
endgroup
|
||||
log error "$original_commit_sha given in $new_commit_sha not found in any pickable branch."
|
||||
|
||||
problem=1
|
||||
done <<< "$commits"
|
||||
|
||||
+2
-2
@@ -82,8 +82,8 @@ in
|
||||
# CI jobs
|
||||
lib-tests = import ../lib/tests/release.nix { inherit pkgs; };
|
||||
manual-nixos = (import ../nixos/release.nix { }).manual.${system} or null;
|
||||
manual-nixpkgs = (import ../pkgs/top-level/release.nix { }).manual;
|
||||
manual-nixpkgs-tests = (import ../pkgs/top-level/release.nix { }).manual.tests;
|
||||
manual-nixpkgs = (import ../doc { });
|
||||
manual-nixpkgs-tests = (import ../doc { }).tests;
|
||||
nixpkgs-vet = pkgs.callPackage ./nixpkgs-vet.nix { };
|
||||
parse = pkgs.lib.recurseIntoAttrs {
|
||||
latest = pkgs.callPackage ./parse.nix { nix = pkgs.nixVersions.latest; };
|
||||
|
||||
@@ -173,7 +173,12 @@ runCommand "compare"
|
||||
} >> $out/step-summary.md
|
||||
fi
|
||||
|
||||
jq -r -f ${./generate-step-summary.jq} < ${changed-paths} >> $out/step-summary.md
|
||||
{
|
||||
echo
|
||||
echo "# Packages"
|
||||
echo
|
||||
jq -r -f ${./generate-step-summary.jq} < ${changed-paths}
|
||||
} >> $out/step-summary.md
|
||||
|
||||
cp "$maintainersPath" "$out/maintainers.json"
|
||||
''
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{
|
||||
"rev": "eaeed9530c76ce5f1d2d8232e08bec5e26f18ec1",
|
||||
"sha256": "132nimgi1g88fbhddk4b8b1qk68jly494x2mnphyk3xa1d2wy9q7"
|
||||
"rev": "3d1f29646e4b57ed468d60f9d286cde23a8d1707",
|
||||
"sha256": "1wzvc9h9a6l9wyhzh892xb5x88kxmbzxb1k8s7fizyyw2q4nqw07"
|
||||
}
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
{
|
||||
pkgs ? (import ./.. { }),
|
||||
pkgs ? (import ../ci { }).pkgs,
|
||||
nixpkgs ? { },
|
||||
}:
|
||||
|
||||
pkgs.nixpkgs-manual.override { inherit nixpkgs; }
|
||||
pkgs.callPackage ./doc-support/package.nix { inherit nixpkgs; }
|
||||
|
||||
@@ -35,6 +35,7 @@ python.section.md
|
||||
scons.section.md
|
||||
tauri.section.md
|
||||
tetex-tex-live.section.md
|
||||
udevCheckHook.section.md
|
||||
unzip.section.md
|
||||
validatePkgConfig.section.md
|
||||
versionCheckHook.section.md
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
# udevCheckHook {#udevcheckhook}
|
||||
|
||||
The `udevCheckHook` derivation adds `udevCheckPhase` to the [`preInstallCheckHooks`](#ssec-installCheck-phase),
|
||||
which finds all udev rules in all outputs and verifies them using `udevadm verify --resolve-names=never --no-style`.
|
||||
It should be used in any package that has udev rules outputs to ensure the rules are and stay valid.
|
||||
|
||||
The hook runs in `installCheckPhase`, requiring `doInstallCheck` is enabled for the hook to take effect:
|
||||
```nix
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
udevCheckHook,
|
||||
# ...
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
# ...
|
||||
|
||||
nativeInstallCheckInputs = [
|
||||
udevCheckHook
|
||||
];
|
||||
doInstallCheck = true;
|
||||
|
||||
# ...
|
||||
})
|
||||
```
|
||||
Note that for [`buildPythonPackage`](#buildpythonpackage-function) and [`buildPythonApplication`](#buildpythonapplication-function), `doInstallCheck` is enabled by default.
|
||||
|
||||
All outputs are scanned for their `/{etc,lib}/udev/rules.d` paths.
|
||||
If no rule output is found, the hook is basically a no-op.
|
||||
|
||||
The `udevCheckHook` adds a dependency on `systemdMinimal`.
|
||||
It is internally guarded behind `hostPlatform` supporting udev and `buildPlatform` being able to execute `udevadm`.
|
||||
The hook does not need explicit platform checks in the places where it is used.
|
||||
|
||||
The hook can be disabled using `dontUdevCheck`, which is necessary if you want to run some different task in `installCheckPhase` on a package with broken udev rule outputs.
|
||||
@@ -469,6 +469,12 @@
|
||||
"footnote-stdenv-find-inputs-location.__back.0": [
|
||||
"index.html#footnote-stdenv-find-inputs-location.__back.0"
|
||||
],
|
||||
"strictflexarrays1": [
|
||||
"index.html#strictflexarrays1"
|
||||
],
|
||||
"strictflexarrays3": [
|
||||
"index.html#strictflexarrays3"
|
||||
],
|
||||
"tester-shfmt": [
|
||||
"index.html#tester-shfmt"
|
||||
],
|
||||
@@ -2429,6 +2435,9 @@
|
||||
"tetex-tex-live": [
|
||||
"index.html#tetex-tex-live"
|
||||
],
|
||||
"udevcheckhook": [
|
||||
"index.html#udevcheckhook"
|
||||
],
|
||||
"unzip": [
|
||||
"index.html#unzip"
|
||||
],
|
||||
|
||||
+1
-7
@@ -1,7 +1 @@
|
||||
let
|
||||
pkgs = import ../. {
|
||||
config = { };
|
||||
overlays = [ ];
|
||||
};
|
||||
in
|
||||
pkgs.nixpkgs-manual.shell
|
||||
(import ./default.nix { }).shell
|
||||
|
||||
@@ -1166,6 +1166,12 @@
|
||||
githubId = 2335822;
|
||||
name = "Alexandre Esteves";
|
||||
};
|
||||
alexnabokikh = {
|
||||
email = "nabokikh@duck.com";
|
||||
github = "alexnabokikh";
|
||||
githubId = 42908293;
|
||||
name = "Alex Nabokikh";
|
||||
};
|
||||
alexnortung = {
|
||||
name = "alexnortung";
|
||||
email = "alex_nortung@live.dk";
|
||||
@@ -1331,13 +1337,6 @@
|
||||
githubId = 9567176;
|
||||
name = "Alexis Simon";
|
||||
};
|
||||
alyaeanyx = {
|
||||
email = "alyaeanyx@mailbox.org";
|
||||
github = "alyaeanyx";
|
||||
githubId = 74795488;
|
||||
name = "alyaeanyx";
|
||||
keys = [ { fingerprint = "1F73 8879 5E5A 3DFC E2B3 FA32 87D1 AADC D25B 8DEE"; } ];
|
||||
};
|
||||
amadaluzia = {
|
||||
email = "amad@atl.tools";
|
||||
github = "amadaluzia";
|
||||
@@ -6877,6 +6876,12 @@
|
||||
githubId = 7389000;
|
||||
name = "Dominic Wrege";
|
||||
};
|
||||
dwt = {
|
||||
email = "spamfaenger@gmx.de";
|
||||
github = "dwt";
|
||||
githubId = 57199;
|
||||
name = "Martin Häcker";
|
||||
};
|
||||
dxf = {
|
||||
email = "dingxiangfei2009@gmail.com";
|
||||
github = "dingxiangfei2009";
|
||||
@@ -15720,6 +15725,16 @@
|
||||
name = "John McParland";
|
||||
keys = [ { fingerprint = "39D2 171D D733 C718 DD21 285E B326 E14B 05D8 7A4E"; } ];
|
||||
};
|
||||
MCSeekeri = {
|
||||
email = "mcseekeri@outlook.com";
|
||||
github = "mcseekeri";
|
||||
githubId = 20928094;
|
||||
name = "MCSeekeri";
|
||||
keys = [
|
||||
{ fingerprint = "5922 79AB D9D6 85EB 9D16 754C ECDC AD89 5A38 4A12"; }
|
||||
{ fingerprint = "0762 A387 F160 76F1 116C BF13 3276 6666 6666 6666"; }
|
||||
];
|
||||
};
|
||||
McSinyx = {
|
||||
email = "cnx@loang.net";
|
||||
github = "McSinyx";
|
||||
@@ -19149,6 +19164,13 @@
|
||||
githubId = 13225611;
|
||||
name = "Nicolas Martin";
|
||||
};
|
||||
pentane = {
|
||||
email = "cyclopentane@aidoskyneen.eu";
|
||||
github = "cyclic-pentane";
|
||||
githubId = 74795488;
|
||||
name = "pentane";
|
||||
keys = [ { fingerprint = "4231 75F6 8360 68C8 2ACB AEDA 63F4 EC2F FE55 0874"; } ];
|
||||
};
|
||||
perchun = {
|
||||
name = "Perchun Pak";
|
||||
email = "nixpkgs@perchun.it";
|
||||
@@ -21768,6 +21790,12 @@
|
||||
githubId = 7309170;
|
||||
name = "Ryota Kameoka";
|
||||
};
|
||||
ryota2357 = {
|
||||
email = "contact@ryota2357.com";
|
||||
github = "ryota2357";
|
||||
githubId = 61523777;
|
||||
name = "Ryota Otsuki";
|
||||
};
|
||||
rypervenche = {
|
||||
email = "git@ryper.org";
|
||||
github = "rypervenche";
|
||||
@@ -26242,14 +26270,6 @@
|
||||
githubId = 230381;
|
||||
name = "Daniel Nilsson";
|
||||
};
|
||||
vrifox = {
|
||||
email = "vrifox@vrifox.cc";
|
||||
github = "vrifox";
|
||||
githubId = 109021367;
|
||||
keys = [ { fingerprint = "413C 73F0 C5BD 6318 826A 42D9 D400 98E5 B60B 2197"; } ];
|
||||
matrix = "@vri:cozy.town";
|
||||
name = "Vri";
|
||||
};
|
||||
vrinek = {
|
||||
email = "vrinek@hey.com";
|
||||
github = "vrinek";
|
||||
@@ -27090,6 +27110,12 @@
|
||||
githubId = 99486674;
|
||||
name = "山下";
|
||||
};
|
||||
yanek = {
|
||||
name = "Noé Ksiazek";
|
||||
email = "noe.ksiazek@pm.me";
|
||||
github = "yanek";
|
||||
githubId = 5952366;
|
||||
};
|
||||
yanganto = {
|
||||
name = "Antonio Yang";
|
||||
email = "yanganto@gmail.com";
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
baseOptionsJSON ? null,
|
||||
warningsAreErrors ? true,
|
||||
prefix ? ../../..,
|
||||
checkRedirects ? true,
|
||||
}:
|
||||
|
||||
let
|
||||
@@ -146,7 +147,7 @@ rec {
|
||||
|
||||
nixos-render-docs -j $NIX_BUILD_CORES manual html \
|
||||
--manpage-urls ${manpageUrls} \
|
||||
--redirects ${./redirects.json} \
|
||||
${if checkRedirects then "--redirects ${./redirects.json}" else ""} \
|
||||
--revision ${escapeShellArg revision} \
|
||||
--generator "nixos-render-docs ${pkgs.lib.version}" \
|
||||
--stylesheet style.css \
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
||||
|
||||
- [gtklock](https://github.com/jovanlanik/gtklock), a GTK-based lockscreen for Wayland. Available as [programs.gtklock](#opt-programs.gtklock.enable).
|
||||
- [Chrysalis](https://github.com/keyboardio/Chrysalis), a graphical configurator for Kaleidoscope-powered keyboards. Available as [programs.chrysalis](#opt-programs.chrysalis.enable).
|
||||
|
||||
- [FileBrowser](https://filebrowser.org/), a web application for managing and sharing files. Available as [services.filebrowser](#opt-services.filebrowser.enable).
|
||||
|
||||
@@ -25,6 +26,8 @@
|
||||
|
||||
- The `services.polipo` module has been removed as `polipo` is unmaintained and archived upstream.
|
||||
|
||||
- The Pocket ID module ([`services.pocket-id`][#opt-services.pocket-id.enable]) and package (`pocket-id`) has been updated to 1.0.0. Some environment variables have been changed or removed, see the [migration guide](https://pocket-id.org/docs/setup/migrate-to-v1/).
|
||||
|
||||
- `renovate` was updated to v40. See the [upstream release notes](https://github.com/renovatebot/renovate/releases/tag/40.0.0) for breaking changes.
|
||||
|
||||
## Other Notable Changes {#sec-release-25.11-notable-changes}
|
||||
|
||||
@@ -69,6 +69,7 @@ let
|
||||
version = config.system.nixos.release;
|
||||
revision = "release-${version}";
|
||||
extraSources = cfg.nixos.extraModuleSources;
|
||||
checkRedirects = cfg.nixos.checkRedirects;
|
||||
options =
|
||||
let
|
||||
scrubbedEval = evalModules {
|
||||
@@ -353,6 +354,14 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
nixos.checkRedirects = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Check redirects for manualHTML.
|
||||
'';
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
@@ -180,6 +180,7 @@
|
||||
./programs/cdemu.nix
|
||||
./programs/cfs-zen-tweaks.nix
|
||||
./programs/chromium.nix
|
||||
./programs/chrysalis.nix
|
||||
./programs/clash-verge.nix
|
||||
./programs/cnping.nix
|
||||
./programs/command-not-found/command-not-found.nix
|
||||
@@ -261,6 +262,7 @@
|
||||
./programs/nano.nix
|
||||
./programs/nautilus-open-any-terminal.nix
|
||||
./programs/nbd.nix
|
||||
./programs/nekoray.nix
|
||||
./programs/neovim.nix
|
||||
./programs/nethoscope.nix
|
||||
./programs/nexttrace.nix
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.programs.chrysalis;
|
||||
in
|
||||
{
|
||||
options = {
|
||||
programs.chrysalis = {
|
||||
enable = lib.mkEnableOption "Chrysalis";
|
||||
package = lib.mkPackageOption pkgs "Chrysalis" { default = "chrysalis"; };
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
services.udev.packages = [ cfg.package ];
|
||||
};
|
||||
|
||||
meta.maintainers = with lib.maintainers; [ atalii ];
|
||||
}
|
||||
@@ -0,0 +1,90 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.programs.nekoray;
|
||||
in
|
||||
{
|
||||
options = {
|
||||
programs.nekoray = {
|
||||
enable = lib.mkEnableOption "nekoray, a GUI proxy configuration manager";
|
||||
|
||||
package = lib.mkPackageOption pkgs "nekoray" { };
|
||||
|
||||
tunMode = {
|
||||
enable = lib.mkEnableOption "TUN mode of nekoray";
|
||||
|
||||
setuid = lib.mkEnableOption ''
|
||||
setting suid bit for nekobox_core to run as root, which is less
|
||||
secure than default setcap method but closer to upstream assumptions.
|
||||
Enable this if you find the default setcap method configured in
|
||||
this module doesn't work for you
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
|
||||
security.wrappers.nekobox_core = lib.mkIf cfg.tunMode.enable {
|
||||
source = "${cfg.package}/share/nekoray/nekobox_core";
|
||||
owner = "root";
|
||||
group = "root";
|
||||
setuid = lib.mkIf cfg.tunMode.setuid true;
|
||||
# Taken from https://github.com/SagerNet/sing-box/blob/dev-next/release/config/sing-box.service
|
||||
capabilities = lib.mkIf (
|
||||
!cfg.tunMode.setuid
|
||||
) "cap_net_admin,cap_net_raw,cap_net_bind_service,cap_sys_ptrace,cap_dac_read_search+ep";
|
||||
};
|
||||
|
||||
# avoid resolvectl password prompt popping up three times
|
||||
# https://github.com/SagerNet/sing-tun/blob/0686f8c4f210f4e7039c352d42d762252f9d9cf5/tun_linux.go#L1062
|
||||
# We use a hack here to determine whether the requested process is nekobox_core
|
||||
# Detect whether its capabilities contain at least `net_admin` and `net_raw`.
|
||||
# This does not reduce security, as we can already bypass `resolved` with them.
|
||||
# Alternatives to consider:
|
||||
# 1. Use suid to execute as a specific user, and check username with polkit.
|
||||
# However, NixOS module doesn't let us to set setuid and capabilities at the
|
||||
# same time, and it's tricky to make both work together because of some security
|
||||
# considerations in the kernel.
|
||||
# 2. Check cmdline to get executable path. This is insecure because the process can
|
||||
# change its own cmdline. `/proc/<pid>/exe` is reliable but kernel forbids
|
||||
# checking that entry of process from different users, and polkit runs `spawn`
|
||||
# as an unprivileged user.
|
||||
# 3. Put nekobox_core into a systemd service, and let polkit check service name.
|
||||
# This is the most secure and convenient way but requires heavy modification
|
||||
# to nekoray source code. Would be good to let upstream support that eventually.
|
||||
security.polkit.extraConfig =
|
||||
lib.mkIf (cfg.tunMode.enable && (!cfg.tunMode.setuid) && config.services.resolved.enable)
|
||||
''
|
||||
polkit.addRule(function(action, subject) {
|
||||
const allowedActionIds = [
|
||||
"org.freedesktop.resolve1.set-domains",
|
||||
"org.freedesktop.resolve1.set-default-route",
|
||||
"org.freedesktop.resolve1.set-dns-servers"
|
||||
];
|
||||
|
||||
if (allowedActionIds.indexOf(action.id) !== -1) {
|
||||
try {
|
||||
var parentPid = polkit.spawn(["${lib.getExe' pkgs.procps "ps"}", "-o", "ppid=", subject.pid]).trim();
|
||||
var parentCap = polkit.spawn(["${lib.getExe' pkgs.libcap "getpcaps"}", parentPid]).trim();
|
||||
if (parentCap.includes("cap_net_admin") && parentCap.includes("cap_net_raw")) {
|
||||
return polkit.Result.YES;
|
||||
} else {
|
||||
return polkit.Result.NOT_HANDLED;
|
||||
}
|
||||
} catch (e) {
|
||||
return polkit.Result.NOT_HANDLED;
|
||||
}
|
||||
}
|
||||
})
|
||||
'';
|
||||
};
|
||||
|
||||
meta.maintainers = with lib.maintainers; [ aleksana ];
|
||||
}
|
||||
@@ -7,11 +7,39 @@
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
utils,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.services.desktopManager.cosmic;
|
||||
excludedCorePkgs = lib.lists.intersectLists corePkgs config.environment.cosmic.excludePackages;
|
||||
# **ONLY ADD PACKAGES WITHOUT WHICH COSMIC CRASHES, NOTHING ELSE**
|
||||
corePkgs =
|
||||
with pkgs;
|
||||
[
|
||||
cosmic-applets
|
||||
cosmic-applibrary
|
||||
cosmic-bg
|
||||
cosmic-comp
|
||||
cosmic-files
|
||||
config.services.displayManager.cosmic-greeter.package
|
||||
cosmic-idle
|
||||
cosmic-launcher
|
||||
cosmic-notifications
|
||||
cosmic-osd
|
||||
cosmic-panel
|
||||
cosmic-session
|
||||
cosmic-settings
|
||||
cosmic-settings-daemon
|
||||
cosmic-workspaces-epoch
|
||||
]
|
||||
++ lib.optionals cfg.xwayland.enable [
|
||||
# Why would you want to enable XWayland but exclude the package
|
||||
# providing XWayland support? Doesn't make sense. Add `xwayland` to the
|
||||
# `corePkgs` list.
|
||||
xwayland
|
||||
];
|
||||
in
|
||||
{
|
||||
meta.maintainers = lib.teams.cosmic.members;
|
||||
@@ -20,10 +48,21 @@ in
|
||||
services.desktopManager.cosmic = {
|
||||
enable = lib.mkEnableOption "Enable the COSMIC desktop environment";
|
||||
|
||||
showExcludedPkgsWarning = lib.mkEnableOption "Disable the warning for excluding core packages." // {
|
||||
default = true;
|
||||
};
|
||||
|
||||
xwayland.enable = lib.mkEnableOption "Xwayland support for the COSMIC compositor" // {
|
||||
default = true;
|
||||
};
|
||||
};
|
||||
|
||||
environment.cosmic.excludePackages = lib.mkOption {
|
||||
description = "List of packages to exclude from the COSMIC environment.";
|
||||
type = lib.types.listOf lib.types.package;
|
||||
default = [ ];
|
||||
example = lib.literalExpression "[ pkgs.cosmic-player ]";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
@@ -32,45 +71,32 @@ in
|
||||
"/share/backgrounds"
|
||||
"/share/cosmic"
|
||||
];
|
||||
environment.systemPackages =
|
||||
with pkgs;
|
||||
[
|
||||
adwaita-icon-theme
|
||||
alsa-utils
|
||||
cosmic-applets
|
||||
cosmic-applibrary
|
||||
cosmic-bg
|
||||
cosmic-comp
|
||||
cosmic-edit
|
||||
cosmic-files
|
||||
config.services.displayManager.cosmic-greeter.package
|
||||
cosmic-icons
|
||||
cosmic-idle
|
||||
cosmic-launcher
|
||||
cosmic-notifications
|
||||
cosmic-osd
|
||||
cosmic-panel
|
||||
cosmic-player
|
||||
cosmic-randr
|
||||
cosmic-screenshot
|
||||
cosmic-session
|
||||
cosmic-settings
|
||||
cosmic-settings-daemon
|
||||
cosmic-term
|
||||
cosmic-wallpapers
|
||||
cosmic-workspaces-epoch
|
||||
hicolor-icon-theme
|
||||
playerctl
|
||||
pop-icon-theme
|
||||
pop-launcher
|
||||
xdg-user-dirs
|
||||
]
|
||||
++ lib.optionals cfg.xwayland.enable [
|
||||
xwayland
|
||||
]
|
||||
++ lib.optionals config.services.flatpak.enable [
|
||||
cosmic-store
|
||||
];
|
||||
environment.systemPackages = utils.removePackagesByName (
|
||||
corePkgs
|
||||
++ (
|
||||
with pkgs;
|
||||
[
|
||||
adwaita-icon-theme
|
||||
alsa-utils
|
||||
cosmic-edit
|
||||
cosmic-icons
|
||||
cosmic-player
|
||||
cosmic-randr
|
||||
cosmic-screenshot
|
||||
cosmic-term
|
||||
cosmic-wallpapers
|
||||
hicolor-icon-theme
|
||||
playerctl
|
||||
pop-icon-theme
|
||||
pop-launcher
|
||||
xdg-user-dirs
|
||||
]
|
||||
++ lib.optionals config.services.flatpak.enable [
|
||||
# User may have Flatpaks enabled but might not want the `cosmic-store` package.
|
||||
cosmic-store
|
||||
]
|
||||
)
|
||||
) config.environment.cosmic.excludePackages;
|
||||
|
||||
# Distro-wide defaults for graphical sessions
|
||||
services.graphical-desktop.enable = true;
|
||||
@@ -131,5 +157,22 @@ in
|
||||
services.power-profiles-daemon.enable = lib.mkDefault (
|
||||
!config.hardware.system76.power-daemon.enable
|
||||
);
|
||||
|
||||
warnings = lib.optionals (cfg.showExcludedPkgsWarning && excludedCorePkgs != [ ]) [
|
||||
''
|
||||
The `environment.cosmic.excludePackages` option was used to exclude some
|
||||
packages from the environment which also includes some packages that the
|
||||
maintainers of the COSMIC DE deem necessary for the COSMIC DE to start
|
||||
and initialize. Excluding said packages creates a high probability that
|
||||
the COSMIC DE will fail to initialize properly, or completely. This is an
|
||||
unsupported use case. If this was not intentional, please assign an empty
|
||||
list to the `environment.cosmic.excludePackages` option. If you want to
|
||||
exclude non-essential packages, please look at the NixOS module for the
|
||||
COSMIC DE and look for the essential packages in the `corePkgs` list.
|
||||
|
||||
You can stop this warning from appearing by setting the option
|
||||
`services.desktopManager.cosmic.showExcludedPkgsWarning` to `false`.
|
||||
''
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ in
|
||||
default = false;
|
||||
description = ''
|
||||
Whether to open TCP firewall ports, which are specified in
|
||||
{option}`services.stalwart-mail.settings.listener` on all interfaces.
|
||||
{option}`services.stalwart-mail.settings.server.listener` on all interfaces.
|
||||
'';
|
||||
};
|
||||
|
||||
@@ -107,21 +107,17 @@ in
|
||||
resolver.public-suffix = lib.mkDefault [
|
||||
"file://${pkgs.publicsuffix-list}/share/publicsuffix/public_suffix_list.dat"
|
||||
];
|
||||
config = {
|
||||
spam-filter.resource = lib.mkDefault "file://${cfg.package}/etc/stalwart/spamfilter.toml";
|
||||
webadmin =
|
||||
let
|
||||
hasHttpListener = builtins.any (listener: listener.protocol == "http") (
|
||||
lib.attrValues cfg.settings.server.listener
|
||||
);
|
||||
in
|
||||
{
|
||||
path = "/var/cache/stalwart-mail";
|
||||
}
|
||||
// lib.optionalAttrs ((builtins.hasAttr "listener" cfg.settings.server) && hasHttpListener) {
|
||||
resource = lib.mkDefault "file://${cfg.package.webadmin}/webadmin.zip";
|
||||
};
|
||||
};
|
||||
spam-filter.resource = lib.mkDefault "file://${cfg.package}/etc/stalwart/spamfilter.toml";
|
||||
webadmin =
|
||||
let
|
||||
hasHttpListener = builtins.any (listener: listener.protocol == "http") (
|
||||
lib.attrValues (cfg.settings.server.listener or { })
|
||||
);
|
||||
in
|
||||
{
|
||||
path = "/var/cache/stalwart-mail";
|
||||
resource = lib.mkIf (hasHttpListener) (lib.mkDefault "file://${cfg.package.webadmin}/webadmin.zip");
|
||||
};
|
||||
};
|
||||
|
||||
# This service stores a potentially large amount of data.
|
||||
|
||||
@@ -270,7 +270,7 @@ in
|
||||
buildDocsInSandbox = false;
|
||||
doc = ./mautrix-signal.md;
|
||||
maintainers = with lib.maintainers; [
|
||||
alyaeanyx
|
||||
pentane
|
||||
frederictobiasc
|
||||
];
|
||||
};
|
||||
|
||||
@@ -69,7 +69,7 @@ in
|
||||
wantedBy = [ "graphical-session.target" ];
|
||||
partOf = [ "graphical-session.target" ];
|
||||
|
||||
serviceConfig.ExecStart = "${cfg.package}/bin/dwm-status ${configFile}";
|
||||
serviceConfig.ExecStart = "${cfg.package}/bin/dwm-status ${configFile} --quiet";
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
@@ -8,11 +8,11 @@ let
|
||||
|
||||
cfg = config.services.octoprint;
|
||||
|
||||
baseConfig = {
|
||||
baseConfig = lib.recursiveUpdate {
|
||||
plugins.curalegacy.cura_engine = "${pkgs.curaengine_stable}/bin/CuraEngine";
|
||||
server.port = cfg.port;
|
||||
webcam.ffmpeg = "${pkgs.ffmpeg.bin}/bin/ffmpeg";
|
||||
} // lib.optionalAttrs (cfg.host != null) { server.host = cfg.host; };
|
||||
} (lib.optionalAttrs (cfg.host != null) { server.host = cfg.host; });
|
||||
|
||||
fullConfig = lib.recursiveUpdate cfg.extraConfig baseConfig;
|
||||
|
||||
|
||||
@@ -159,5 +159,5 @@ in
|
||||
}) cfg.interfaces;
|
||||
};
|
||||
|
||||
meta.maintainers = with maintainers; [ alyaeanyx ];
|
||||
meta.maintainers = with maintainers; [ pentane ];
|
||||
}
|
||||
|
||||
@@ -486,7 +486,7 @@ in
|
||||
};
|
||||
|
||||
meta.maintainers = with lib.maintainers; [
|
||||
alyaeanyx
|
||||
pentane
|
||||
raylas
|
||||
rvdp
|
||||
neverbehave
|
||||
|
||||
@@ -7,12 +7,16 @@
|
||||
|
||||
let
|
||||
inherit (lib)
|
||||
concatMap
|
||||
concatStringsSep
|
||||
getExe
|
||||
maintainers
|
||||
mkEnableOption
|
||||
mkIf
|
||||
mkOption
|
||||
optionalAttrs
|
||||
optional
|
||||
mkPackageOption
|
||||
optional
|
||||
optionalAttrs
|
||||
;
|
||||
inherit (lib.types)
|
||||
bool
|
||||
@@ -27,7 +31,7 @@ let
|
||||
settingsFile = format.generate "pocket-id-env-vars" cfg.settings;
|
||||
in
|
||||
{
|
||||
meta.maintainers = with lib.maintainers; [
|
||||
meta.maintainers = with maintainers; [
|
||||
gepbird
|
||||
ymstnt
|
||||
];
|
||||
@@ -56,7 +60,7 @@ in
|
||||
freeformType = format.type;
|
||||
|
||||
options = {
|
||||
PUBLIC_APP_URL = mkOption {
|
||||
APP_URL = mkOption {
|
||||
type = str;
|
||||
description = ''
|
||||
The URL where you will access the app.
|
||||
@@ -71,6 +75,16 @@ in
|
||||
'';
|
||||
default = false;
|
||||
};
|
||||
|
||||
ANALYTICS_DISABLED = mkOption {
|
||||
type = bool;
|
||||
description = ''
|
||||
Whether to disable analytics.
|
||||
|
||||
See [docs page](https://pocket-id.org/docs/configuration/analytics/).
|
||||
'';
|
||||
default = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -105,18 +119,36 @@ in
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
warnings = (
|
||||
warnings =
|
||||
optional (cfg.settings ? MAXMIND_LICENSE_KEY)
|
||||
"config.services.pocket-id.settings.MAXMIND_LICENSE_KEY will be stored as plaintext in the Nix store. Use config.services.pocket-id.environmentFile instead."
|
||||
);
|
||||
++ concatMap
|
||||
(
|
||||
# Added 2025-05-27
|
||||
setting:
|
||||
optional (cfg.settings ? "${setting}") ''
|
||||
config.services.pocket-id.settings.${setting} is deprecated.
|
||||
See https://pocket-id.org/docs/setup/migrate-to-v1/ for migration instructions.
|
||||
''
|
||||
)
|
||||
[
|
||||
"PUBLIC_APP_URL"
|
||||
"PUBLIC_UI_CONFIG_DISABLED"
|
||||
"CADDY_DISABLED"
|
||||
"CADDY_PORT"
|
||||
"BACKEND_PORT"
|
||||
"POSTGRES_CONNECTION_STRING"
|
||||
"SQLITE_DB_PATH"
|
||||
"INTERNAL_BACKEND_URL"
|
||||
];
|
||||
|
||||
systemd.tmpfiles.rules = [
|
||||
"d ${cfg.dataDir} 0755 ${cfg.user} ${cfg.group}"
|
||||
];
|
||||
|
||||
systemd.services = {
|
||||
pocket-id-backend = {
|
||||
description = "Pocket ID backend";
|
||||
pocket-id = {
|
||||
description = "Pocket ID";
|
||||
after = [ "network.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
restartTriggers = [
|
||||
@@ -130,7 +162,7 @@ in
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
WorkingDirectory = cfg.dataDir;
|
||||
ExecStart = "${cfg.package}/bin/pocket-id-backend";
|
||||
ExecStart = getExe cfg.package;
|
||||
Restart = "always";
|
||||
EnvironmentFile = [
|
||||
cfg.environmentFile
|
||||
@@ -169,7 +201,7 @@ in
|
||||
RestrictRealtime = true;
|
||||
RestrictSUIDSGID = true;
|
||||
SystemCallArchitectures = "native";
|
||||
SystemCallFilter = lib.concatStringsSep " " [
|
||||
SystemCallFilter = concatStringsSep " " [
|
||||
"~"
|
||||
"@clock"
|
||||
"@cpu-emulation"
|
||||
@@ -186,80 +218,6 @@ in
|
||||
UMask = "0077";
|
||||
};
|
||||
};
|
||||
|
||||
pocket-id-frontend = {
|
||||
description = "Pocket ID frontend";
|
||||
after = [
|
||||
"network.target"
|
||||
"pocket-id-backend.service"
|
||||
];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
restartTriggers = [
|
||||
cfg.package
|
||||
cfg.environmentFile
|
||||
settingsFile
|
||||
];
|
||||
|
||||
serviceConfig = {
|
||||
Type = "simple";
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
ExecStart = "${cfg.package}/bin/pocket-id-frontend";
|
||||
Restart = "always";
|
||||
EnvironmentFile = [
|
||||
cfg.environmentFile
|
||||
settingsFile
|
||||
];
|
||||
|
||||
# Hardening
|
||||
AmbientCapabilities = "";
|
||||
CapabilityBoundingSet = "";
|
||||
DeviceAllow = "";
|
||||
DevicePolicy = "closed";
|
||||
#IPAddressDeny = "any"; # communicates with the backend and client
|
||||
LockPersonality = true;
|
||||
MemoryDenyWriteExecute = false; # V8_Fatal segfault
|
||||
NoNewPrivileges = true;
|
||||
PrivateDevices = true;
|
||||
PrivateNetwork = false; # communicates with the backend and client
|
||||
PrivateTmp = true;
|
||||
PrivateUsers = true;
|
||||
ProcSubset = "pid";
|
||||
ProtectClock = true;
|
||||
ProtectControlGroups = true;
|
||||
ProtectHome = true;
|
||||
ProtectHostname = true;
|
||||
ProtectKernelLogs = true;
|
||||
ProtectKernelModules = true;
|
||||
ProtectKernelTunables = true;
|
||||
ProtectProc = "invisible";
|
||||
ProtectSystem = "strict";
|
||||
RemoveIPC = true;
|
||||
RestrictAddressFamilies = [
|
||||
"AF_INET"
|
||||
"AF_INET6"
|
||||
];
|
||||
RestrictNamespaces = true;
|
||||
RestrictRealtime = true;
|
||||
RestrictSUIDSGID = true;
|
||||
SystemCallArchitectures = "native";
|
||||
SystemCallFilter = lib.concatStringsSep " " [
|
||||
"~"
|
||||
"@clock"
|
||||
"@cpu-emulation"
|
||||
"@debug"
|
||||
"@module"
|
||||
"@mount"
|
||||
"@obsolete"
|
||||
"@privileged"
|
||||
"@raw-io"
|
||||
"@reboot"
|
||||
"@resources"
|
||||
"@swap"
|
||||
];
|
||||
UMask = "0077";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
users.users = optionalAttrs (cfg.user == "pocket-id") {
|
||||
|
||||
@@ -18,10 +18,6 @@ let
|
||||
) cfg.maps
|
||||
);
|
||||
|
||||
addonsFolder = pkgs.linkFarm "addons" (
|
||||
lib.attrsets.mapAttrs' (name: value: lib.nameValuePair "${name}.jar" value) cfg.addons
|
||||
);
|
||||
|
||||
storageFolder = pkgs.linkFarm "storage" (
|
||||
lib.attrsets.mapAttrs' (
|
||||
name: value: lib.nameValuePair "${name}.conf" (format.generate "${name}.conf" value)
|
||||
@@ -34,8 +30,7 @@ let
|
||||
"core.conf" = coreConfig;
|
||||
"webapp.conf" = webappConfig;
|
||||
"webserver.conf" = webserverConfig;
|
||||
"packs" = pkgs.linkFarm "packs" cfg.resourcepacks;
|
||||
"addons" = addonsFolder;
|
||||
"packs" = pkgs.linkFarm "packs" cfg.packs;
|
||||
};
|
||||
|
||||
inherit (lib) mkOption;
|
||||
@@ -46,6 +41,7 @@ in
|
||||
[ "services" "bluemap" "resourcepacks" ]
|
||||
[ "services" "bluemap" "packs" ]
|
||||
)
|
||||
(lib.mkRenamedOptionModule [ "services" "bluemap" "addons" ] [ "services" "bluemap" "packs" ])
|
||||
];
|
||||
|
||||
options.services.bluemap = {
|
||||
@@ -239,26 +235,6 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
addons = mkOption {
|
||||
type = lib.types.attrsOf lib.types.pathInStore;
|
||||
default = { };
|
||||
description = ''
|
||||
A set of jar addons to be loaded.
|
||||
|
||||
See <https://bluemap.bluecolored.de/3rdPartySupport.html> for a list of officially recognized addons.
|
||||
'';
|
||||
|
||||
example = lib.literalExpression ''
|
||||
{
|
||||
blueBridge = ./blueBridge.jar;
|
||||
blueBorder = pkgs.fetchurl {
|
||||
url = "https://github.com/pop4959/BlueBorder/releases/download/1.1.1/BlueBorder-1.1.1.jar";
|
||||
hash = "...";
|
||||
};
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
||||
storage = mkOption {
|
||||
type = lib.types.attrsOf (
|
||||
lib.types.submodule {
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
}:
|
||||
let
|
||||
cfg = config.services.filebrowser;
|
||||
inherit (lib) types;
|
||||
format = pkgs.formats.json { };
|
||||
inherit (lib) types;
|
||||
in
|
||||
{
|
||||
options = {
|
||||
@@ -17,6 +17,18 @@ in
|
||||
|
||||
package = lib.mkPackageOption pkgs "filebrowser" { };
|
||||
|
||||
user = lib.mkOption {
|
||||
type = types.str;
|
||||
default = "filebrowser";
|
||||
description = "User account under which FileBrowser runs.";
|
||||
};
|
||||
|
||||
group = lib.mkOption {
|
||||
type = types.str;
|
||||
default = "filebrowser";
|
||||
description = "Group under which FileBrowser runs.";
|
||||
};
|
||||
|
||||
openFirewall = lib.mkEnableOption "opening firewall ports for FileBrowser";
|
||||
|
||||
settings = lib.mkOption {
|
||||
@@ -96,7 +108,9 @@ in
|
||||
CacheDirectory = "filebrowser";
|
||||
WorkingDirectory = cfg.settings.root;
|
||||
|
||||
DynamicUser = true;
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
UMask = "0077";
|
||||
|
||||
NoNewPrivileges = true;
|
||||
PrivateDevices = true;
|
||||
@@ -117,15 +131,31 @@ in
|
||||
};
|
||||
};
|
||||
|
||||
tmpfiles.settings.filebrowser =
|
||||
lib.genAttrs
|
||||
[
|
||||
cfg.settings.root
|
||||
(builtins.dirOf cfg.settings.database)
|
||||
]
|
||||
(_: {
|
||||
d.mode = "0700";
|
||||
});
|
||||
tmpfiles.settings.filebrowser = {
|
||||
"${cfg.settings.root}".d = {
|
||||
inherit (cfg) user group;
|
||||
mode = "0700";
|
||||
};
|
||||
"${cfg.settings.cache-dir}".d = {
|
||||
inherit (cfg) user group;
|
||||
mode = "0700";
|
||||
};
|
||||
"${builtins.dirOf cfg.settings.database}".d = {
|
||||
inherit (cfg) user group;
|
||||
mode = "0700";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
users.users = lib.mkIf (cfg.user == "filebrowser") {
|
||||
filebrowser = {
|
||||
inherit (cfg) group;
|
||||
isSystemUser = true;
|
||||
};
|
||||
};
|
||||
|
||||
users.groups = lib.mkIf (cfg.group == "filebrowser") {
|
||||
filebrowser = { };
|
||||
};
|
||||
|
||||
networking.firewall.allowedTCPPorts = lib.mkIf cfg.openFirewall [ cfg.settings.port ];
|
||||
|
||||
@@ -167,7 +167,7 @@ let
|
||||
presets.recentlyAddedImages
|
||||
]
|
||||
'';
|
||||
apply = type: if builtins.isFunction type then (type uiPresets) else type;
|
||||
apply = type: if lib.isFunction type then (type uiPresets) else type;
|
||||
};
|
||||
blobs_path = mkOption {
|
||||
type = types.path;
|
||||
@@ -324,47 +324,47 @@ let
|
||||
'';
|
||||
apply =
|
||||
srcs:
|
||||
optionalString (srcs != [ ]) (
|
||||
pkgs.runCommand "stash-${kind}"
|
||||
{
|
||||
inherit srcs;
|
||||
nativeBuildInputs = [ pkgs.yq-go ];
|
||||
preferLocalBuild = true;
|
||||
}
|
||||
''
|
||||
find $srcs -mindepth 1 -name '*.yml' | while read plugin_file; do
|
||||
grep -q "^#pkgignore" "$plugin_file" && continue
|
||||
pkgs.runCommand "stash-${kind}"
|
||||
{
|
||||
inherit srcs;
|
||||
nativeBuildInputs = [ pkgs.yq-go ];
|
||||
preferLocalBuild = true;
|
||||
}
|
||||
''
|
||||
mkdir -p $out
|
||||
touch $out/.keep
|
||||
find $srcs -mindepth 1 -name '*.yml' | while read plugin_file; do
|
||||
grep -q "^#pkgignore" "$plugin_file" && continue
|
||||
|
||||
plugin_dir=$(dirname $plugin_file)
|
||||
out_path=$out/$(basename $plugin_dir)
|
||||
mkdir -p $out_path
|
||||
ls $plugin_dir | xargs -I{} ln -sf "$plugin_dir/{}" $out_path
|
||||
plugin_dir=$(dirname $plugin_file)
|
||||
out_path=$out/$(basename $plugin_dir)
|
||||
mkdir -p $out_path
|
||||
ls $plugin_dir | xargs -I{} ln -sf "$plugin_dir/{}" $out_path
|
||||
|
||||
env \
|
||||
plugin_id=$(basename $plugin_file .yml) \
|
||||
plugin_name="$(yq '.name' $plugin_file)" \
|
||||
plugin_description="$(yq '.description' $plugin_file)" \
|
||||
plugin_version="$(yq '.version' $plugin_file)" \
|
||||
plugin_files="$(find -L $out_path -mindepth 1 -type f -printf "%P\n")" \
|
||||
yq -n '
|
||||
.id = strenv(plugin_id) |
|
||||
.name = strenv(plugin_name) |
|
||||
(
|
||||
strenv(plugin_description) as $desc |
|
||||
with(select($desc == "null"); .metadata = {}) |
|
||||
with(select($desc != "null"); .metadata.description = $desc)
|
||||
) |
|
||||
(
|
||||
strenv(plugin_version) as $ver |
|
||||
with(select($ver == "null"); .version = "Unknown") |
|
||||
with(select($ver != "null"); .version = $ver)
|
||||
) |
|
||||
.date = (now | format_datetime("2006-01-02 15:04:05")) |
|
||||
.files = (strenv(plugin_files) | split("\n"))
|
||||
' > $out_path/manifest
|
||||
done
|
||||
''
|
||||
);
|
||||
env \
|
||||
plugin_id=$(basename $plugin_file .yml) \
|
||||
plugin_name="$(yq '.name' $plugin_file)" \
|
||||
plugin_description="$(yq '.description' $plugin_file)" \
|
||||
plugin_version="$(yq '.version' $plugin_file)" \
|
||||
plugin_files="$(find -L $out_path -mindepth 1 -type f -printf "%P\n")" \
|
||||
yq -n '
|
||||
.id = strenv(plugin_id) |
|
||||
.name = strenv(plugin_name) |
|
||||
(
|
||||
strenv(plugin_description) as $desc |
|
||||
with(select($desc == "null"); .metadata = {}) |
|
||||
with(select($desc != "null"); .metadata.description = $desc)
|
||||
) |
|
||||
(
|
||||
strenv(plugin_version) as $ver |
|
||||
with(select($ver == "null"); .version = "Unknown") |
|
||||
with(select($ver != "null"); .version = $ver)
|
||||
) |
|
||||
.date = (now | format_datetime("2006-01-02 15:04:05")) |
|
||||
.files = (strenv(plugin_files) | split("\n"))
|
||||
' > $out_path/manifest
|
||||
done
|
||||
'';
|
||||
};
|
||||
in
|
||||
{
|
||||
@@ -512,7 +512,7 @@ in
|
||||
ExecStartPre = pkgs.writers.writeBash "stash-setup.bash" (
|
||||
''
|
||||
install -d ${cfg.settings.generated}
|
||||
if [[ ! -z "${toString cfg.mutableSettings}" || ! -f ${cfg.dataDir}/config.yml ]]; then
|
||||
if [[ -z "${toString cfg.mutableSettings}" || ! -f ${cfg.dataDir}/config.yml ]]; then
|
||||
env \
|
||||
password=$(< ${cfg.passwordFile}) \
|
||||
jwtSecretKeyFile=$(< ${cfg.jwtSecretKeyFile}) \
|
||||
|
||||
@@ -390,11 +390,11 @@ in
|
||||
system.build.etcMetadataImage =
|
||||
let
|
||||
etcJson = pkgs.writeText "etc-json" (builtins.toJSON etc');
|
||||
etcDump = pkgs.runCommand "etc-dump" { } ''
|
||||
etcDump = pkgs.runCommandLocal "etc-dump" { } ''
|
||||
${lib.getExe pkgs.buildPackages.python3} ${./build-composefs-dump.py} ${etcJson} > $out
|
||||
'';
|
||||
in
|
||||
pkgs.runCommand "etc-metadata.erofs"
|
||||
pkgs.runCommandLocal "etc-metadata.erofs"
|
||||
{
|
||||
nativeBuildInputs = with pkgs.buildPackages; [
|
||||
composefs
|
||||
|
||||
@@ -112,11 +112,13 @@
|
||||
gui_apps_to_launch['cosmic-term'] = 'com.system76.CosmicTerm'
|
||||
|
||||
for gui_app, app_id in gui_apps_to_launch.items():
|
||||
machine.succeed(f"su - ${user.name} -c 'WAYLAND_DISPLAY=wayland-1 XDG_RUNTIME_DIR=/run/user/${toString user.uid} ${DISPLAY} {gui_app} >&2 &'", timeout=5)
|
||||
# Nix builds the following non-commented expression to the following:
|
||||
# `su - alice -c 'WAYLAND_DISPLAY=wayland-1 XDG_RUNTIME_DIR=/run/user/1000 lswt --json | jq ".toplevels" | grep "^ \\"app-id\\": \\"{app_id}\\"$"' `
|
||||
machine.wait_until_succeeds(f''''su - ${user.name} -c 'WAYLAND_DISPLAY=wayland-1 XDG_RUNTIME_DIR=/run/user/${toString user.uid} lswt --json | jq ".toplevels" | grep "^ \\"app-id\\": \\"{app_id}\\"$"' '''', timeout=30)
|
||||
machine.succeed(f"pkill {gui_app}", timeout=5)
|
||||
# Don't fail the test if binary is absent
|
||||
if machine.execute(f"su - ${user.name} -c 'command -v {gui_app}'", timeout=5)[0] == 0:
|
||||
machine.succeed(f"su - ${user.name} -c 'WAYLAND_DISPLAY=wayland-1 XDG_RUNTIME_DIR=/run/user/${toString user.uid} ${DISPLAY} {gui_app} >&2 &'", timeout=5)
|
||||
# Nix builds the following non-commented expression to the following:
|
||||
# `su - alice -c 'WAYLAND_DISPLAY=wayland-1 XDG_RUNTIME_DIR=/run/user/1000 lswt --json | jq ".toplevels" | grep "^ \\"app-id\\": \\"{app_id}\\"$"' `
|
||||
machine.wait_until_succeeds(f''''su - ${user.name} -c 'WAYLAND_DISPLAY=wayland-1 XDG_RUNTIME_DIR=/run/user/${toString user.uid} lswt --json | jq ".toplevels" | grep "^ \\"app-id\\": \\"{app_id}\\"$"' '''', timeout=30)
|
||||
machine.succeed(f"pkill {gui_app}", timeout=5)
|
||||
|
||||
machine.succeed("echo 'test completed succeessfully' > /${testName}", timeout=5)
|
||||
machine.copy_from_vm('/${testName}')
|
||||
|
||||
@@ -5,12 +5,12 @@ let
|
||||
|
||||
template-bootstrap3 = pkgs.stdenv.mkDerivation rec {
|
||||
name = "bootstrap3";
|
||||
version = "2022-07-27";
|
||||
version = "2024-02-06";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "giterlizzi";
|
||||
repo = "dokuwiki-template-bootstrap3";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-B3Yd4lxdwqfCnfmZdp+i/Mzwn/aEuZ0ovagDxuR6lxo=";
|
||||
hash = "sha256-PSA/rHMkM/kMvOV7CP1byL8Ym4Qu7a4Rz+/aPX31x9k=";
|
||||
};
|
||||
installPhase = "mkdir -p $out; cp -R * $out/";
|
||||
};
|
||||
|
||||
@@ -8,7 +8,7 @@ let
|
||||
n: _: lib.strings.hasPrefix "k3s_" n && (builtins.tryEval pkgs.${n}).success
|
||||
) pkgs;
|
||||
in
|
||||
lib.recurseIntoAttrs {
|
||||
{
|
||||
airgap-images = lib.mapAttrs (
|
||||
_: k3s: import ./airgap-images.nix { inherit system pkgs k3s; }
|
||||
) allK3s;
|
||||
|
||||
@@ -15,8 +15,6 @@
|
||||
enable = true;
|
||||
settings = {
|
||||
PORT = 10001;
|
||||
INTERNAL_BACKEND_URL = "http://localhost:10002";
|
||||
BACKEND_PORT = 10002;
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -29,17 +27,14 @@
|
||||
inherit (builtins) toString;
|
||||
in
|
||||
''
|
||||
machine.wait_for_unit("pocket-id-backend.service")
|
||||
machine.wait_for_open_port(${toString settings.BACKEND_PORT})
|
||||
machine.wait_for_unit("pocket-id-frontend.service")
|
||||
machine.wait_for_unit("pocket-id.service")
|
||||
machine.wait_for_open_port(${toString settings.PORT})
|
||||
|
||||
backend_status = machine.succeed("curl -L -o /tmp/backend-output -w '%{http_code}' http://localhost:${toString settings.BACKEND_PORT}/api/users/me")
|
||||
backend_status = machine.succeed("curl -L -o /tmp/backend-output -w '%{http_code}' http://localhost:${toString settings.PORT}/api/users/me")
|
||||
assert backend_status == "401"
|
||||
machine.succeed("grep 'You are not signed in' /tmp/backend-output")
|
||||
|
||||
frontend_status = machine.succeed("curl -L -o /tmp/frontend-output -w '%{http_code}' http://localhost:${toString settings.PORT}")
|
||||
assert frontend_status == "200"
|
||||
machine.succeed("grep 'Sign in to Pocket ID' /tmp/frontend-output")
|
||||
'';
|
||||
}
|
||||
|
||||
@@ -42,15 +42,31 @@ in
|
||||
bind = [ "[::]:143" ];
|
||||
protocol = "imap";
|
||||
};
|
||||
|
||||
"http" = {
|
||||
bind = [ "[::]:80" ];
|
||||
protocol = "http";
|
||||
};
|
||||
};
|
||||
|
||||
session.auth.mechanisms = "[plain]";
|
||||
session.auth.directory = "'in-memory'";
|
||||
storage.directory = "in-memory";
|
||||
|
||||
storage.data = "rocksdb";
|
||||
storage.fts = "rocksdb";
|
||||
storage.blob = "rocksdb";
|
||||
storage.lookup = "rocksdb";
|
||||
|
||||
session.rcpt.directory = "'in-memory'";
|
||||
queue.outbound.next-hop = "'local'";
|
||||
|
||||
store."rocksdb" = {
|
||||
type = "rocksdb";
|
||||
path = "/var/lib/stalwart-mail/data";
|
||||
compression = "lz4";
|
||||
};
|
||||
|
||||
directory."in-memory" = {
|
||||
type = "memory";
|
||||
principals = [
|
||||
@@ -114,9 +130,19 @@ in
|
||||
main.wait_for_unit("stalwart-mail.service")
|
||||
main.wait_for_open_port(587)
|
||||
main.wait_for_open_port(143)
|
||||
main.wait_for_open_port(80)
|
||||
|
||||
main.succeed("test-smtp-submission")
|
||||
|
||||
# restart stalwart to test rocksdb compaction of existing database
|
||||
main.succeed("systemctl restart stalwart-mail.service")
|
||||
main.wait_for_open_port(587)
|
||||
main.wait_for_open_port(143)
|
||||
|
||||
main.succeed("test-imap-read")
|
||||
|
||||
main.succeed("test -d /var/cache/stalwart-mail/STALWART_WEBADMIN")
|
||||
main.succeed("curl --fail http://localhost")
|
||||
'';
|
||||
|
||||
meta = {
|
||||
|
||||
+7
-1
@@ -107,7 +107,7 @@ Now that this is out of the way. To add a package to Nixpkgs:
|
||||
|
||||
- XML::Simple, a Perl module: [`pkgs/top-level/perl-packages.nix`](top-level/perl-packages.nix) (search for the `XMLSimple` attribute). Most Perl modules are so simple to build that they are defined directly in `perl-packages.nix`; no need to make a separate file for them.
|
||||
|
||||
- Adobe Reader: [`pkgs/applications/misc/adobe-reader/default.nix`](applications/misc/adobe-reader/default.nix). Shows how binary-only packages can be supported. In particular the `postFixup` phase uses `patchelf` to set the RUNPATH and ELF interpreter of the executables so that the right libraries are found at runtime.
|
||||
- Discord Game SDK: [`pkgs/by-name/di/discord-gamesdk/package.nix`](./by-name/di/discord-gamesdk/package.nix). Shows how binary-only packages can be supported. In particular, the `autoPatchelfHook` is used to set the RUNPATH and ELF interpreter of the executables so that the right libraries are found at runtime.
|
||||
|
||||
Some notes:
|
||||
|
||||
@@ -943,6 +943,9 @@ Reviewing process:
|
||||
- Ensure that the meta field information [fits the guidelines](#meta-attributes) and is correct:
|
||||
- License can change with version updates, so it should be checked to match the upstream license.
|
||||
- If the package has no maintainer, a maintainer must be set. This can be the update submitter or a community member that accepts to take maintainership of the package.
|
||||
- Verify any change of upstream.
|
||||
- If switching from e.g. PyPi to GitHub, verify that the repo is the official one.
|
||||
- If switching to a fork, check with external sources like other package repositories for community consensus.
|
||||
- Ensure that the code contains no typos.
|
||||
- Build the package locally.
|
||||
- Pull requests are often targeted to the master or staging branch, and building the pull request locally when it is submitted can trigger many source builds.
|
||||
@@ -973,6 +976,7 @@ Sample template for a package update review is provided below.
|
||||
- [ ] package version fits guidelines
|
||||
- [ ] package builds on ARCHITECTURE
|
||||
- [ ] executables tested on ARCHITECTURE
|
||||
- [ ] any change of upstream are verified
|
||||
- [ ] all depending packages build
|
||||
- [ ] patches have a comment describing either the upstream URL or a reason why the patch wasn't upstreamed
|
||||
- [ ] patches that are remotely available are fetched rather than vendored
|
||||
@@ -992,6 +996,7 @@ Review process:
|
||||
- Ensure that the package name and version [fits the guidelines](#package-naming).
|
||||
- Ensure that the package versioning [fits the guidelines](#versioning).
|
||||
- Ensure that the commit text [fits the guidelines](../CONTRIBUTING.md#commit-conventions).
|
||||
- Ensure that the source is fetched from an official location, one of our [trusted mirrors](./build-support/fetchurl/mirrors.nix), or a mirror trusted by the authors.
|
||||
- Ensure that the meta fields [fits the guidelines](#meta-attributes) and contain the correct information:
|
||||
- License must match the upstream license.
|
||||
- Platforms should be set (or the package will not get binary substitutes).
|
||||
@@ -1020,6 +1025,7 @@ Sample template for a new package review is provided below.
|
||||
- [ ] `meta.maintainers` is set
|
||||
- [ ] `meta.mainProgram` is set, if applicable.
|
||||
- [ ] build time only dependencies are declared in `nativeBuildInputs`
|
||||
- [ ] source is fetched from an official or trusted location
|
||||
- [ ] source is fetched using the appropriate function
|
||||
- [ ] the list of `phases` is not overridden
|
||||
- [ ] when a phase (like `installPhase`) is overridden it starts with `runHook preInstall` and ends with `runHook postInstall`.
|
||||
|
||||
@@ -15,11 +15,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "drumkv1";
|
||||
version = "1.3.1";
|
||||
version = "1.3.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/drumkv1/drumkv1-${version}.tar.gz";
|
||||
hash = "sha256-CzboTrMRxPr5O6caKrxW9X9uSi5Su5LRSQpwJBMGkGI=";
|
||||
hash = "sha256-Z9F9lbLSAJRlVh7tnSMNTlK7FiZhhlVfeHPlbbVuWXk=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
||||
@@ -14,13 +14,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "noson";
|
||||
version = "5.6.8";
|
||||
version = "5.6.10";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "janbar";
|
||||
repo = "noson-app";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-hCVGi+++6CcTRMXeRKH8xRncm/Gl83GgU3aAIPI/yGU=";
|
||||
hash = "sha256-ERlZtQTwPu5Y1i5cV9c5IMSJW30ootjmFix0EiF+/x0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -18,11 +18,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "samplv1";
|
||||
version = "1.3.1";
|
||||
version = "1.3.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/samplv1/samplv1-${version}.tar.gz";
|
||||
hash = "sha256-DcMtNGiMJ9YfTKZLns+3mBKHbkG3Ven3IJAU/qSDyh0=";
|
||||
hash = "sha256-YCxt9RAP02uAigddA6HjBt2ryM6MyOtI3L2eLg0AhFg=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -9,10 +9,10 @@
|
||||
elpaBuild {
|
||||
pname = "a68-mode";
|
||||
ename = "a68-mode";
|
||||
version = "1.2.0.20250516.72801";
|
||||
version = "1.2.0.20250524.125533";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/devel/a68-mode-1.2.0.20250516.72801.tar";
|
||||
sha256 = "09nxmij8db3ddhl9hyz0khw2crpfxgrhp2rci1v4w4g3y6k6pjxk";
|
||||
url = "https://elpa.gnu.org/devel/a68-mode-1.2.0.20250524.125533.tar";
|
||||
sha256 = "0z8cmasvzbziwgi52p8bn4xdcz5izkhj12laf1gzwwzik1lmh5kj";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -461,10 +461,10 @@
|
||||
elpaBuild {
|
||||
pname = "auctex";
|
||||
ename = "auctex";
|
||||
version = "14.0.9.0.20250515.195355";
|
||||
version = "14.0.9.0.20250530.145847";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/devel/auctex-14.0.9.0.20250515.195355.tar";
|
||||
sha256 = "0n39wh9cw1pfjmyjcahxrgsa3b1p0swwkh31wn5wc2c2rfjkl8xk";
|
||||
url = "https://elpa.gnu.org/devel/auctex-14.0.9.0.20250530.145847.tar";
|
||||
sha256 = "05mdn3ymwv7zr5ik8rga859cggvz5r4qwnmb5ri78jww6bk96dbj";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -548,10 +548,10 @@
|
||||
elpaBuild {
|
||||
pname = "auth-source-xoauth2-plugin";
|
||||
ename = "auth-source-xoauth2-plugin";
|
||||
version = "0.2.0.20250516.15306";
|
||||
version = "0.2.1.0.20250518.225313";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/devel/auth-source-xoauth2-plugin-0.2.0.20250516.15306.tar";
|
||||
sha256 = "0i205h7fc4gkaa7hn1516bqzffv64bani2v1080kn7cbnrf9kq1b";
|
||||
url = "https://elpa.gnu.org/devel/auth-source-xoauth2-plugin-0.2.1.0.20250518.225313.tar";
|
||||
sha256 = "0mqvlnqib2my2alm2lbvij89r5c8r6zzi7lwvpgylays342lrry0";
|
||||
};
|
||||
packageRequires = [ oauth2 ];
|
||||
meta = {
|
||||
@@ -740,10 +740,10 @@
|
||||
elpaBuild {
|
||||
pname = "beframe";
|
||||
ename = "beframe";
|
||||
version = "1.3.0.0.20250410.82528";
|
||||
version = "1.3.0.0.20250530.55351";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/devel/beframe-1.3.0.0.20250410.82528.tar";
|
||||
sha256 = "1rdq1yrszn22np2maibn54qrq1d5231a34l9xrczi13fv0b6sah2";
|
||||
url = "https://elpa.gnu.org/devel/beframe-1.3.0.0.20250530.55351.tar";
|
||||
sha256 = "1f9gf6cy46dd52701vg8xnm8nmbqk09c2xwhcz03f3djbd1fxhjl";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -1105,10 +1105,10 @@
|
||||
elpaBuild {
|
||||
pname = "cape";
|
||||
ename = "cape";
|
||||
version = "2.0.0.20250512.155407";
|
||||
version = "2.1.0.20250521.64514";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/devel/cape-2.0.0.20250512.155407.tar";
|
||||
sha256 = "13j8wcdj4azmi7gfaqs08wm0b6razj10i8wkh3qa8bqadjyqmhfw";
|
||||
url = "https://elpa.gnu.org/devel/cape-2.1.0.20250521.64514.tar";
|
||||
sha256 = "0ibaxcdsiki6zg08fmfsj7a5p9wsrp2nc6bnki5y1g1619ln5gk5";
|
||||
};
|
||||
packageRequires = [ compat ];
|
||||
meta = {
|
||||
@@ -1274,10 +1274,10 @@
|
||||
elpaBuild {
|
||||
pname = "cobol-mode";
|
||||
ename = "cobol-mode";
|
||||
version = "1.1.0.20241020.181020";
|
||||
version = "1.1.0.20250527.194517";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/devel/cobol-mode-1.1.0.20241020.181020.tar";
|
||||
sha256 = "05vxahbqs8an5s5c7v40yhziaa61n5yg4j92k8pqjypqrwhpw7vw";
|
||||
url = "https://elpa.gnu.org/devel/cobol-mode-1.1.0.20250527.194517.tar";
|
||||
sha256 = "057n1ck9pn9mkh3kkzw5ps2iwjfy9fbyr9cviccfh46avlfkyqq0";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -1318,10 +1318,10 @@
|
||||
elpaBuild {
|
||||
pname = "colorful-mode";
|
||||
ename = "colorful-mode";
|
||||
version = "1.2.3.0.20250508.204004";
|
||||
version = "1.2.4.0.20250529.222523";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/devel/colorful-mode-1.2.3.0.20250508.204004.tar";
|
||||
sha256 = "1zrdxxc115h4zk2a1lhl45is7cjvxq333m1f1lmrmnyahzgg3a46";
|
||||
url = "https://elpa.gnu.org/devel/colorful-mode-1.2.4.0.20250529.222523.tar";
|
||||
sha256 = "1g1x1p6ayy6nqmhj109k3y4bddas0bdljia5rwzkkysfqqxj8rqr";
|
||||
};
|
||||
packageRequires = [ compat ];
|
||||
meta = {
|
||||
@@ -1386,10 +1386,10 @@
|
||||
elpaBuild {
|
||||
pname = "company";
|
||||
ename = "company";
|
||||
version = "1.0.2.0.20250426.131956";
|
||||
version = "1.0.2.0.20250522.193744";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/devel/company-1.0.2.0.20250426.131956.tar";
|
||||
sha256 = "1lkrhb0xc9d2ylb85k49h62w9k3dnm4j2i6438xc2jkjrjids575";
|
||||
url = "https://elpa.gnu.org/devel/company-1.0.2.0.20250522.193744.tar";
|
||||
sha256 = "1h74h8rh3ya89ajfhkym879ll6v5qsvww4rjv0r1kn0yhhn79c3j";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -1546,10 +1546,10 @@
|
||||
elpaBuild {
|
||||
pname = "consult";
|
||||
ename = "consult";
|
||||
version = "2.3.0.20250512.141021";
|
||||
version = "2.4.0.20250530.124807";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/devel/consult-2.3.0.20250512.141021.tar";
|
||||
sha256 = "1k3xhqqrz72zfy92376h8livr938z2kqarkljdri44vh8yqm7j0i";
|
||||
url = "https://elpa.gnu.org/devel/consult-2.4.0.20250530.124807.tar";
|
||||
sha256 = "09a7wyprhzlwyy0x3b3wpy68qdwxlkpff84sdhms76sz3mx5jnz9";
|
||||
};
|
||||
packageRequires = [ compat ];
|
||||
meta = {
|
||||
@@ -1659,10 +1659,10 @@
|
||||
elpaBuild {
|
||||
pname = "corfu";
|
||||
ename = "corfu";
|
||||
version = "2.1.0.20250516.184150";
|
||||
version = "2.2.0.20250528.194504";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/devel/corfu-2.1.0.20250516.184150.tar";
|
||||
sha256 = "1fnhsn6mvz2cp6cwphrjgr0lizkkfpirp3bxg2vxnj869asyayva";
|
||||
url = "https://elpa.gnu.org/devel/corfu-2.2.0.20250528.194504.tar";
|
||||
sha256 = "0j9z6nm80h6016slgh8pzia84dry9kaj3m1rzjsqlpvjhvxwfc3l";
|
||||
};
|
||||
packageRequires = [ compat ];
|
||||
meta = {
|
||||
@@ -1940,10 +1940,10 @@
|
||||
elpaBuild {
|
||||
pname = "dape";
|
||||
ename = "dape";
|
||||
version = "0.24.1.0.20250509.163537";
|
||||
version = "0.24.1.0.20250529.103551";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/devel/dape-0.24.1.0.20250509.163537.tar";
|
||||
sha256 = "0r0kjrzqw0dlj0vw7lgsc2mg2sr0js1aambkwc3qvf57jp875jwb";
|
||||
url = "https://elpa.gnu.org/devel/dape-0.24.1.0.20250529.103551.tar";
|
||||
sha256 = "0wyhcncgxqp9jc65k8zwha21rvgxk0zfm79psmwz9i64rg9j9bn1";
|
||||
};
|
||||
packageRequires = [ jsonrpc ];
|
||||
meta = {
|
||||
@@ -2074,10 +2074,10 @@
|
||||
elpaBuild {
|
||||
pname = "denote";
|
||||
ename = "denote";
|
||||
version = "4.0.0.0.20250508.42428";
|
||||
version = "4.0.0.0.20250525.143413";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/devel/denote-4.0.0.0.20250508.42428.tar";
|
||||
sha256 = "1zi78mfncjpaldvaq4g99ls65vs9qi1rphcwmzhqwnv9ckgdnqv1";
|
||||
url = "https://elpa.gnu.org/devel/denote-4.0.0.0.20250525.143413.tar";
|
||||
sha256 = "1n6zjpx5qbwahvnmj3al4xx17f6vrh6apll4vyla5xingp3h4mf5";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -2096,10 +2096,10 @@
|
||||
elpaBuild {
|
||||
pname = "denote-journal";
|
||||
ename = "denote-journal";
|
||||
version = "0.1.1.0.20250422.45242";
|
||||
version = "0.1.1.0.20250517.43843";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/devel/denote-journal-0.1.1.0.20250422.45242.tar";
|
||||
sha256 = "1hyhahdyxnx6q2lxy8pngj0isscb0wv1946w5bp1qkq6ygjp3chv";
|
||||
url = "https://elpa.gnu.org/devel/denote-journal-0.1.1.0.20250517.43843.tar";
|
||||
sha256 = "1v5r87mdmdpfqdyb0zr3z9brkml7dac92pp6gam8qsc1l7zx359l";
|
||||
};
|
||||
packageRequires = [ denote ];
|
||||
meta = {
|
||||
@@ -2162,10 +2162,10 @@
|
||||
elpaBuild {
|
||||
pname = "denote-org";
|
||||
ename = "denote-org";
|
||||
version = "0.1.1.0.20250508.64419";
|
||||
version = "0.1.1.0.20250521.104352";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/devel/denote-org-0.1.1.0.20250508.64419.tar";
|
||||
sha256 = "1xnvpdpn55vcws1v5dhkvragiyq1kn40xmylxpxi1xv9rv61z6ml";
|
||||
url = "https://elpa.gnu.org/devel/denote-org-0.1.1.0.20250521.104352.tar";
|
||||
sha256 = "037jbn4j454y5lki6lchx36cma89gysbn0jy74nfnsv9f30gvz9h";
|
||||
};
|
||||
packageRequires = [ denote ];
|
||||
meta = {
|
||||
@@ -2206,10 +2206,10 @@
|
||||
elpaBuild {
|
||||
pname = "denote-sequence";
|
||||
ename = "denote-sequence";
|
||||
version = "0.1.1.0.20250501.102153";
|
||||
version = "0.1.1.0.20250522.82830";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/devel/denote-sequence-0.1.1.0.20250501.102153.tar";
|
||||
sha256 = "08aqb3ps1czag73jm6avk4xq3wbxx02gyl0bml8vnxdc0l22skjy";
|
||||
url = "https://elpa.gnu.org/devel/denote-sequence-0.1.1.0.20250522.82830.tar";
|
||||
sha256 = "1g0fxfkj5asv0zixwril4di3sqbgb5hzph6mam1igz359nnkabc3";
|
||||
};
|
||||
packageRequires = [ denote ];
|
||||
meta = {
|
||||
@@ -2368,10 +2368,10 @@
|
||||
elpaBuild {
|
||||
pname = "diff-hl";
|
||||
ename = "diff-hl";
|
||||
version = "1.10.0.0.20250507.203711";
|
||||
version = "1.10.0.0.20250520.20816";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/devel/diff-hl-1.10.0.0.20250507.203711.tar";
|
||||
sha256 = "1gv7yn2hynf09sw5r5axg6b0vb79id4jv6n07cmr2wknf0q3di4a";
|
||||
url = "https://elpa.gnu.org/devel/diff-hl-1.10.0.0.20250520.20816.tar";
|
||||
sha256 = "15m4bca2arig6d6l2ml8ab4dg08rpi5m7pzps5lidad83ipl3cvv";
|
||||
};
|
||||
packageRequires = [ cl-lib ];
|
||||
meta = {
|
||||
@@ -2495,10 +2495,10 @@
|
||||
elpaBuild {
|
||||
pname = "dired-preview";
|
||||
ename = "dired-preview";
|
||||
version = "0.5.2.0.20250427.44935";
|
||||
version = "0.5.2.0.20250507.81237";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/devel/dired-preview-0.5.2.0.20250427.44935.tar";
|
||||
sha256 = "0zc7kd1apyq0bwxi3qjihxayjb5j6ga9rhmzc3lmm29ysxfz90n5";
|
||||
url = "https://elpa.gnu.org/devel/dired-preview-0.5.2.0.20250507.81237.tar";
|
||||
sha256 = "12f510r8f6z9qp679dipyv1damincr2q6bbi4vcn17ylwhaqdp6s";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -2655,6 +2655,27 @@
|
||||
};
|
||||
}
|
||||
) { };
|
||||
doric-themes = callPackage (
|
||||
{
|
||||
elpaBuild,
|
||||
fetchurl,
|
||||
lib,
|
||||
}:
|
||||
elpaBuild {
|
||||
pname = "doric-themes";
|
||||
ename = "doric-themes";
|
||||
version = "0.1.0.0.20250530.91206";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/devel/doric-themes-0.1.0.0.20250530.91206.tar";
|
||||
sha256 = "153gnj81lw4z6mrw509jv3022nnyqrxmk5fga7dqnmzpkydxbp8c";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
homepage = "https://elpa.gnu.org/devel/doric-themes.html";
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}
|
||||
) { };
|
||||
drepl = callPackage (
|
||||
{
|
||||
comint-mime,
|
||||
@@ -2866,10 +2887,10 @@
|
||||
elpaBuild {
|
||||
pname = "ef-themes";
|
||||
ename = "ef-themes";
|
||||
version = "1.10.0.0.20250429.104336";
|
||||
version = "1.10.0.0.20250524.83143";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/devel/ef-themes-1.10.0.0.20250429.104336.tar";
|
||||
sha256 = "0a4fpc9i4sjfx4cnngbdddffs6qg03c15fz2znix56b4hp7jl4sv";
|
||||
url = "https://elpa.gnu.org/devel/ef-themes-1.10.0.0.20250524.83143.tar";
|
||||
sha256 = "1dmjfydzw5aabhbwfcvdxh123s08a11khj7vzg38whx4f4mxhji2";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -2894,10 +2915,10 @@
|
||||
elpaBuild {
|
||||
pname = "eglot";
|
||||
ename = "eglot";
|
||||
version = "1.18.0.20250513.114504";
|
||||
version = "1.18.0.20250524.65524";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/devel/eglot-1.18.0.20250513.114504.tar";
|
||||
sha256 = "0jgma92l0smvm8np78sx924dlvbli1j3pgjrpps8m7av7xjab5v1";
|
||||
url = "https://elpa.gnu.org/devel/eglot-1.18.0.20250524.65524.tar";
|
||||
sha256 = "0vxswngxr3bvwbcjmmsciw3is7b02ilz1wlppj1krmagpmwffsa2";
|
||||
};
|
||||
packageRequires = [
|
||||
eldoc
|
||||
@@ -2923,10 +2944,10 @@
|
||||
elpaBuild {
|
||||
pname = "el-job";
|
||||
ename = "el-job";
|
||||
version = "2.4.7.0.20250516.190810";
|
||||
version = "2.4.7.0.20250524.200444";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/devel/el-job-2.4.7.0.20250516.190810.tar";
|
||||
sha256 = "14l3xa5xii7xg6006gyap5jcd3z5ramik0q9sd14gaqx7i9s8081";
|
||||
url = "https://elpa.gnu.org/devel/el-job-2.4.7.0.20250524.200444.tar";
|
||||
sha256 = "0f5k94x24hhjrlxq4gjfm551pgir701hxyjb7k9hcbhxq06l4ay4";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -3067,10 +3088,10 @@
|
||||
elpaBuild {
|
||||
pname = "ellama";
|
||||
ename = "ellama";
|
||||
version = "1.8.1.0.20250402.164949";
|
||||
version = "1.8.1.0.20250526.173209";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/devel/ellama-1.8.1.0.20250402.164949.tar";
|
||||
sha256 = "04ydy4lapx67r6lcg9dardvzznda2wisffzz3g9fxiyxrri5810w";
|
||||
url = "https://elpa.gnu.org/devel/ellama-1.8.1.0.20250526.173209.tar";
|
||||
sha256 = "1h3ypfrp4jxgamrc6y75rzsj1iq7n03ng2zg8ab3n0lf8xz5x61k";
|
||||
};
|
||||
packageRequires = [
|
||||
compat
|
||||
@@ -3115,10 +3136,10 @@
|
||||
elpaBuild {
|
||||
pname = "embark";
|
||||
ename = "embark";
|
||||
version = "1.1.0.20250423.105002";
|
||||
version = "1.1.0.20250530.134842";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/devel/embark-1.1.0.20250423.105002.tar";
|
||||
sha256 = "1i01q1imn32sbii0kwz51i41a9f5mql564lmhbifwh4hsgrras2g";
|
||||
url = "https://elpa.gnu.org/devel/embark-1.1.0.20250530.134842.tar";
|
||||
sha256 = "15lwgw9340h33crdhy8n2bfb7v2xlj5z02pvll7zmzr1wwiaqrja";
|
||||
};
|
||||
packageRequires = [ compat ];
|
||||
meta = {
|
||||
@@ -3139,10 +3160,10 @@
|
||||
elpaBuild {
|
||||
pname = "embark-consult";
|
||||
ename = "embark-consult";
|
||||
version = "1.1.0.20250423.105002";
|
||||
version = "1.1.0.20250530.134842";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/devel/embark-consult-1.1.0.20250423.105002.tar";
|
||||
sha256 = "1qkg36d67fwhijrhkfjs7397rcmjs7cga7l9dj0n9d1634f7q3h4";
|
||||
url = "https://elpa.gnu.org/devel/embark-consult-1.1.0.20250530.134842.tar";
|
||||
sha256 = "1apy9ld2wi6yyqdqzyxamr6qascfghwc83wkdvqm54aiv2ks3g76";
|
||||
};
|
||||
packageRequires = [
|
||||
compat
|
||||
@@ -3415,10 +3436,10 @@
|
||||
elpaBuild {
|
||||
pname = "expreg";
|
||||
ename = "expreg";
|
||||
version = "1.3.1.0.20230915.150818";
|
||||
version = "1.4.1.0.20250520.204305";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/devel/expreg-1.3.1.0.20230915.150818.tar";
|
||||
sha256 = "11r4vwavax904dxmcpbr2nbycr7096aalblh6pfvjbhb23a0vx7m";
|
||||
url = "https://elpa.gnu.org/devel/expreg-1.4.1.0.20250520.204305.tar";
|
||||
sha256 = "1cvvwdbbkdm6npbyfz5w6pl3iha1v9sxqdvafqpj03nxlknjvjhh";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -3459,10 +3480,10 @@
|
||||
elpaBuild {
|
||||
pname = "exwm";
|
||||
ename = "exwm";
|
||||
version = "0.33.0.20250426.232314";
|
||||
version = "0.33.0.20250528.173021";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/devel/exwm-0.33.0.20250426.232314.tar";
|
||||
sha256 = "090kdzcayczn0jv3bkcg2kp08f9w2acjdrq9ly87li41rpsbh2gk";
|
||||
url = "https://elpa.gnu.org/devel/exwm-0.33.0.20250528.173021.tar";
|
||||
sha256 = "1nbjwvzl1rndz9ygmww1i80sxq5pxq68lamsw9ablbg19bvkajl6";
|
||||
};
|
||||
packageRequires = [
|
||||
compat
|
||||
@@ -4172,10 +4193,10 @@
|
||||
elpaBuild {
|
||||
pname = "greader";
|
||||
ename = "greader";
|
||||
version = "0.12.6.0.20250304.172206";
|
||||
version = "0.12.6.0.20250526.83546";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/devel/greader-0.12.6.0.20250304.172206.tar";
|
||||
sha256 = "1cpvh9pn855q8gjz43alpipbchfbbgg0ds6qbnn7k9s0n38iyzr3";
|
||||
url = "https://elpa.gnu.org/devel/greader-0.12.6.0.20250526.83546.tar";
|
||||
sha256 = "1ivmz9cjss4naf02si5ikmlkad0lbic3kbs989n561d0lq25dfmw";
|
||||
};
|
||||
packageRequires = [
|
||||
compat
|
||||
@@ -4217,10 +4238,10 @@
|
||||
elpaBuild {
|
||||
pname = "gtags-mode";
|
||||
ename = "gtags-mode";
|
||||
version = "1.8.5.0.20250511.220137";
|
||||
version = "1.8.6.0.20250518.10237";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/devel/gtags-mode-1.8.5.0.20250511.220137.tar";
|
||||
sha256 = "185c583y06lm97hd1nlhsx96byz34m0fg2xlz99vwxzm75ch3s5h";
|
||||
url = "https://elpa.gnu.org/devel/gtags-mode-1.8.6.0.20250518.10237.tar";
|
||||
sha256 = "0xisbx4k8baj8hzklmpz0gfkx82f3sss3mnji9v0pbv1g9q7v2w9";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -4434,10 +4455,10 @@
|
||||
elpaBuild {
|
||||
pname = "hyperbole";
|
||||
ename = "hyperbole";
|
||||
version = "9.0.2pre0.20250509.132519";
|
||||
version = "9.0.2pre0.20250518.175059";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/devel/hyperbole-9.0.2pre0.20250509.132519.tar";
|
||||
sha256 = "0jmjaa6bj93qw7i62spc4kk117bbc3g3nvdq0lkcwd9900ir1xhb";
|
||||
url = "https://elpa.gnu.org/devel/hyperbole-9.0.2pre0.20250518.175059.tar";
|
||||
sha256 = "1dcra27asrpfg1ymqbzqss6dy7vlrrk14070gna1x4b6fvag9jdg";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -4498,10 +4519,10 @@
|
||||
elpaBuild {
|
||||
pname = "indent-bars";
|
||||
ename = "indent-bars";
|
||||
version = "0.8.4.0.20250508.135540";
|
||||
version = "0.8.4.0.20250529.164202";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/devel/indent-bars-0.8.4.0.20250508.135540.tar";
|
||||
sha256 = "0167f1q8snk98j7akns3mg07pxm1221i9vxplc4x55z7qlryvi7c";
|
||||
url = "https://elpa.gnu.org/devel/indent-bars-0.8.4.0.20250529.164202.tar";
|
||||
sha256 = "1zwrd6g43qqzm1kzacpgq6m20kir3m2r94li8yx74vqpw9cca8hp";
|
||||
};
|
||||
packageRequires = [ compat ];
|
||||
meta = {
|
||||
@@ -4604,10 +4625,10 @@
|
||||
elpaBuild {
|
||||
pname = "ivy";
|
||||
ename = "ivy";
|
||||
version = "0.15.1.0.20250417.121946";
|
||||
version = "0.15.1.0.20250519.175035";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/devel/ivy-0.15.1.0.20250417.121946.tar";
|
||||
sha256 = "13xrixysvh3g358fi91lx2b4ra8npyhl573klfzvwr0w1pkpzc8g";
|
||||
url = "https://elpa.gnu.org/devel/ivy-0.15.1.0.20250519.175035.tar";
|
||||
sha256 = "094xx1zpxs1qf799s3cv2ymr5q7bgs87yr8haf6wqwf44rxdwycw";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -4811,10 +4832,10 @@
|
||||
elpaBuild {
|
||||
pname = "jinx";
|
||||
ename = "jinx";
|
||||
version = "2.1.0.20250512.155547";
|
||||
version = "2.2.0.20250526.33048";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/devel/jinx-2.1.0.20250512.155547.tar";
|
||||
sha256 = "13yi3cv4111px48fzr8rnx70bhcb7b3gy64vcddvpcr2gvwlrzvz";
|
||||
url = "https://elpa.gnu.org/devel/jinx-2.2.0.20250526.33048.tar";
|
||||
sha256 = "0bh9mmknxnd62wbiga9s67dnrq5ggh1d9pqhk0vf163nk5bdng6a";
|
||||
};
|
||||
packageRequires = [ compat ];
|
||||
meta = {
|
||||
@@ -5263,10 +5284,10 @@
|
||||
elpaBuild {
|
||||
pname = "llm";
|
||||
ename = "llm";
|
||||
version = "0.25.0.0.20250510.105336";
|
||||
version = "0.26.0.0.20250526.213557";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/devel/llm-0.25.0.0.20250510.105336.tar";
|
||||
sha256 = "0mnc820if3jcj909bmsjgcvdg10d7ijzqa4fgc0bw2s92hrzp37n";
|
||||
url = "https://elpa.gnu.org/devel/llm-0.26.0.0.20250526.213557.tar";
|
||||
sha256 = "1fc895kvacwsimdbir51iy8xiyhxrad6hh8nj3lap07j3xki4107";
|
||||
};
|
||||
packageRequires = [
|
||||
compat
|
||||
@@ -5503,10 +5524,10 @@
|
||||
elpaBuild {
|
||||
pname = "marginalia";
|
||||
ename = "marginalia";
|
||||
version = "2.0.0.20250512.155419";
|
||||
version = "2.0.0.20250527.162947";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/devel/marginalia-2.0.0.20250512.155419.tar";
|
||||
sha256 = "042nay3vr19ldbgqz1hzmacf53gz66dgpazr53xffq6pjxpih5p1";
|
||||
url = "https://elpa.gnu.org/devel/marginalia-2.0.0.20250527.162947.tar";
|
||||
sha256 = "1f3h4grgnxdkq0njpq9jfdlk4ljmzjsk324kz54799fj8v2n59qj";
|
||||
};
|
||||
packageRequires = [ compat ];
|
||||
meta = {
|
||||
@@ -5609,10 +5630,10 @@
|
||||
elpaBuild {
|
||||
pname = "matlab-mode";
|
||||
ename = "matlab-mode";
|
||||
version = "6.3.0.20250512.120312";
|
||||
version = "6.3.0.20250530.124947";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/devel/matlab-mode-6.3.0.20250512.120312.tar";
|
||||
sha256 = "07lsjj3ch66xl680isn9mrmbiz28n7r85gwgrzqva9gyxilfh1wm";
|
||||
url = "https://elpa.gnu.org/devel/matlab-mode-6.3.0.20250530.124947.tar";
|
||||
sha256 = "0kbm0y8qn72k01gh1ynz7cm1b59wr0lnq349ky9m6g7m13dc7zbq";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -5802,10 +5823,10 @@
|
||||
elpaBuild {
|
||||
pname = "minuet";
|
||||
ename = "minuet";
|
||||
version = "0.5.4.0.20250510.3940";
|
||||
version = "0.5.4.0.20250523.4704";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/devel/minuet-0.5.4.0.20250510.3940.tar";
|
||||
sha256 = "0akavbg2bl1amwr55ch1m3apkjdwdgiqar1kjnld28rfa027gxj6";
|
||||
url = "https://elpa.gnu.org/devel/minuet-0.5.4.0.20250523.4704.tar";
|
||||
sha256 = "0r4qajdknkcj9bmgnczxj7zw626aa2cicziy1h294dbmpia02021";
|
||||
};
|
||||
packageRequires = [
|
||||
dash
|
||||
@@ -5848,10 +5869,10 @@
|
||||
elpaBuild {
|
||||
pname = "modus-themes";
|
||||
ename = "modus-themes";
|
||||
version = "4.7.0.0.20250428.45622";
|
||||
version = "4.7.0.0.20250527.103951";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/devel/modus-themes-4.7.0.0.20250428.45622.tar";
|
||||
sha256 = "0dyicvmcnf99isdrjg8wazxm1hmqdy81s72glnc86pl6xaiikxf9";
|
||||
url = "https://elpa.gnu.org/devel/modus-themes-4.7.0.0.20250527.103951.tar";
|
||||
sha256 = "1r9jv8w0nb7x56hpgyqarljrpm1zbb5sfgsw0mxv9rfa1wb65zpj";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -6429,10 +6450,10 @@
|
||||
elpaBuild {
|
||||
pname = "org";
|
||||
ename = "org";
|
||||
version = "9.8pre0.20250512.165453";
|
||||
version = "9.8pre0.20250529.210300";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/devel/org-9.8pre0.20250512.165453.tar";
|
||||
sha256 = "1hdy7zxl1d9hpv02j99r0w0kqrwpw567w6sycx3d1xdz8r93z8c5";
|
||||
url = "https://elpa.gnu.org/devel/org-9.8pre0.20250529.210300.tar";
|
||||
sha256 = "1nnas0kdnymi6c8m7i683cacimzfjvakmy5c347ayqq9z161jv78";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -6451,10 +6472,10 @@
|
||||
elpaBuild {
|
||||
pname = "org-contacts";
|
||||
ename = "org-contacts";
|
||||
version = "1.1.0.20250513.100113";
|
||||
version = "1.1.0.20250528.75549";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/devel/org-contacts-1.1.0.20250513.100113.tar";
|
||||
sha256 = "03rbhicxw9glwrdhsw364kyjxdzbs4h63h927n5scbn71gkwr3bc";
|
||||
url = "https://elpa.gnu.org/devel/org-contacts-1.1.0.20250528.75549.tar";
|
||||
sha256 = "187k9rkqpiw44301ymqsisfrdz6qd5f1d2hk82v4jzvy5jcd2b88";
|
||||
};
|
||||
packageRequires = [ org ];
|
||||
meta = {
|
||||
@@ -6548,10 +6569,10 @@
|
||||
elpaBuild {
|
||||
pname = "org-modern";
|
||||
ename = "org-modern";
|
||||
version = "1.7.0.20250512.155443";
|
||||
version = "1.8.0.20250526.33139";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/devel/org-modern-1.7.0.20250512.155443.tar";
|
||||
sha256 = "0pnnwsfamfmg3cm832736kaxjlj9bg62f00bjcdrxkkad0c0gbf6";
|
||||
url = "https://elpa.gnu.org/devel/org-modern-1.8.0.20250526.33139.tar";
|
||||
sha256 = "03n21xa0y9hs8fiyfb9zzca402fxck4b13x42sizamns9dxwrh9y";
|
||||
};
|
||||
packageRequires = [
|
||||
compat
|
||||
@@ -7176,10 +7197,10 @@
|
||||
elpaBuild {
|
||||
pname = "polymode";
|
||||
ename = "polymode";
|
||||
version = "0.2.2.0.20250511.135208";
|
||||
version = "0.2.2.0.20250525.212258";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/devel/polymode-0.2.2.0.20250511.135208.tar";
|
||||
sha256 = "1l5x9y6m8la0rlz56s1iqlqfr9v5gq0wfykiv8gir8sk0xgnz315";
|
||||
url = "https://elpa.gnu.org/devel/polymode-0.2.2.0.20250525.212258.tar";
|
||||
sha256 = "1p0whbfzcd0fl8yz9id7sinmdyavb905aa826x25gdc9fpmlr01r";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -7326,10 +7347,10 @@
|
||||
elpaBuild {
|
||||
pname = "project";
|
||||
ename = "project";
|
||||
version = "0.11.1.0.20250428.24648";
|
||||
version = "0.11.1.0.20250529.192738";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/devel/project-0.11.1.0.20250428.24648.tar";
|
||||
sha256 = "142jsslwxg2s590szngpzm2srw1n7qdvl3gzbqrnngy91wpv7n9a";
|
||||
url = "https://elpa.gnu.org/devel/project-0.11.1.0.20250529.192738.tar";
|
||||
sha256 = "1p3g2h7yakj8vzffyilsgqifdrv2mdvl8zpqjv2x7dp3ljs79cqn";
|
||||
};
|
||||
packageRequires = [ xref ];
|
||||
meta = {
|
||||
@@ -8733,10 +8754,10 @@
|
||||
elpaBuild {
|
||||
pname = "standard-themes";
|
||||
ename = "standard-themes";
|
||||
version = "2.2.0.0.20250216.155518";
|
||||
version = "2.2.0.0.20250519.60302";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/devel/standard-themes-2.2.0.0.20250216.155518.tar";
|
||||
sha256 = "0dvshs7zshi1s7rgrhrn4igi96y76gybhmwq337sigjm76fh37i2";
|
||||
url = "https://elpa.gnu.org/devel/standard-themes-2.2.0.0.20250519.60302.tar";
|
||||
sha256 = "170h064wawzm2h4sfrfwrn4zq87p6kmc6blkiprwzz0i4iw30y10";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -9344,10 +9365,10 @@
|
||||
elpaBuild {
|
||||
pname = "tramp";
|
||||
ename = "tramp";
|
||||
version = "2.7.2.3.1.0.20250408.65900";
|
||||
version = "2.7.2.4.0.20250530.70623";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/devel/tramp-2.7.2.3.1.0.20250408.65900.tar";
|
||||
sha256 = "0fl70dainnhz78bx611x4295ic751d4ranz9zh89xdygaj6hvzz8";
|
||||
url = "https://elpa.gnu.org/devel/tramp-2.7.2.4.0.20250530.70623.tar";
|
||||
sha256 = "10vhj25haax1gj45cka8678i81lygr7v122j9wm7f3qcvxk68snb";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -9430,10 +9451,10 @@
|
||||
elpaBuild {
|
||||
pname = "transient";
|
||||
ename = "transient";
|
||||
version = "0.8.8.0.20250511.180821";
|
||||
version = "0.8.8.0.20250520.104007";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/devel/transient-0.8.8.0.20250511.180821.tar";
|
||||
sha256 = "1lh8d85qfc7yxc6gj33j930bikq3f7j7n87ajmjsd3y3bjayrcw9";
|
||||
url = "https://elpa.gnu.org/devel/transient-0.8.8.0.20250520.104007.tar";
|
||||
sha256 = "1v5f6y6gmgj9x0ay4zs89818gav6rjfn5ifywmb5qkilsqzjfhxh";
|
||||
};
|
||||
packageRequires = [
|
||||
compat
|
||||
@@ -9742,10 +9763,10 @@
|
||||
elpaBuild {
|
||||
pname = "use-package";
|
||||
ename = "use-package";
|
||||
version = "2.4.6.0.20250427.74855";
|
||||
version = "2.4.6.0.20250524.65524";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/devel/use-package-2.4.6.0.20250427.74855.tar";
|
||||
sha256 = "19x0hi00ychc2j18g323rkq7lghfc8p0g9kq3chwhqb46vmqr993";
|
||||
url = "https://elpa.gnu.org/devel/use-package-2.4.6.0.20250524.65524.tar";
|
||||
sha256 = "0zayaizp0d4sk1v4mrc4kfjgzlbxzsa2jrrdadis5al6x077jabx";
|
||||
};
|
||||
packageRequires = [ bind-key ];
|
||||
meta = {
|
||||
@@ -9982,10 +10003,10 @@
|
||||
elpaBuild {
|
||||
pname = "vertico";
|
||||
ename = "vertico";
|
||||
version = "2.1.0.20250516.184229";
|
||||
version = "2.2.0.20250527.181301";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/devel/vertico-2.1.0.20250516.184229.tar";
|
||||
sha256 = "07dmj8p760c13grz45fc1wvpy7li2xvqg6scy7jx3jc9j5gdqdk9";
|
||||
url = "https://elpa.gnu.org/devel/vertico-2.2.0.20250527.181301.tar";
|
||||
sha256 = "1innhh4w5623d86b1y9a1llc0h240jvnfx4661yqgh62d7v47h94";
|
||||
};
|
||||
packageRequires = [ compat ];
|
||||
meta = {
|
||||
|
||||
@@ -527,10 +527,10 @@
|
||||
elpaBuild {
|
||||
pname = "auth-source-xoauth2-plugin";
|
||||
ename = "auth-source-xoauth2-plugin";
|
||||
version = "0.2";
|
||||
version = "0.2.1";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/auth-source-xoauth2-plugin-0.2.tar";
|
||||
sha256 = "18mmjcyqja46fkggghm45ln6gp1jjb68q4q4q93l3s2vx3hlk60y";
|
||||
url = "https://elpa.gnu.org/packages/auth-source-xoauth2-plugin-0.2.1.tar";
|
||||
sha256 = "020sf13hiyx6g32vixdf65bdcf9sdkh12rixcln6zgm23pw5rdgl";
|
||||
};
|
||||
packageRequires = [ oauth2 ];
|
||||
meta = {
|
||||
@@ -1084,10 +1084,10 @@
|
||||
elpaBuild {
|
||||
pname = "cape";
|
||||
ename = "cape";
|
||||
version = "2.0";
|
||||
version = "2.1";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/cape-2.0.tar";
|
||||
sha256 = "0llcvbqbr296niag7z60kqxpahcv1809734j7d9vnwpl3kgcxg9v";
|
||||
url = "https://elpa.gnu.org/packages/cape-2.1.tar";
|
||||
sha256 = "10g0nxdg6cb2v08qip8dskh1zkdqv23vy8x2f0lyscbmwi72zkrd";
|
||||
};
|
||||
packageRequires = [ compat ];
|
||||
meta = {
|
||||
@@ -1298,10 +1298,10 @@
|
||||
elpaBuild {
|
||||
pname = "colorful-mode";
|
||||
ename = "colorful-mode";
|
||||
version = "1.2.3";
|
||||
version = "1.2.4";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/colorful-mode-1.2.3.tar";
|
||||
sha256 = "0y8bsmb27lxa87a9q9vk36dx914dl07np3bkyn019p2ak73wakgk";
|
||||
url = "https://elpa.gnu.org/packages/colorful-mode-1.2.4.tar";
|
||||
sha256 = "18gymjgsa5hxzy502b7mi99d8sypnn07i9934k4bj1py1xwl8q2b";
|
||||
};
|
||||
packageRequires = [ compat ];
|
||||
meta = {
|
||||
@@ -1526,10 +1526,10 @@
|
||||
elpaBuild {
|
||||
pname = "consult";
|
||||
ename = "consult";
|
||||
version = "2.3";
|
||||
version = "2.4";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/consult-2.3.tar";
|
||||
sha256 = "0rmb5j0kv36lqy135rknfabbzaa7cpfqsgzkicsyzbq3rh3nmf1p";
|
||||
url = "https://elpa.gnu.org/packages/consult-2.4.tar";
|
||||
sha256 = "1jiqgh0f9dnh954hf3vql6l2crfarfnfc9bg7nvisqi3wywd35mf";
|
||||
};
|
||||
packageRequires = [ compat ];
|
||||
meta = {
|
||||
@@ -1639,10 +1639,10 @@
|
||||
elpaBuild {
|
||||
pname = "corfu";
|
||||
ename = "corfu";
|
||||
version = "2.1";
|
||||
version = "2.2";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/corfu-2.1.tar";
|
||||
sha256 = "07ffi16b2ay1rcc8bdryg1h901pjbhfaq1qqsm463iis490rzm81";
|
||||
url = "https://elpa.gnu.org/packages/corfu-2.2.tar";
|
||||
sha256 = "17armdh7369fyvxjbj7sv6vawy6mw72vsw4sqf21ra7q2m3h2vca";
|
||||
};
|
||||
packageRequires = [ compat ];
|
||||
meta = {
|
||||
@@ -2609,6 +2609,27 @@
|
||||
};
|
||||
}
|
||||
) { };
|
||||
doric-themes = callPackage (
|
||||
{
|
||||
elpaBuild,
|
||||
fetchurl,
|
||||
lib,
|
||||
}:
|
||||
elpaBuild {
|
||||
pname = "doric-themes";
|
||||
ename = "doric-themes";
|
||||
version = "0.1.0";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/doric-themes-0.1.0.tar";
|
||||
sha256 = "12aj50hs7yydr40fj5wlzc8k7a1r2pl6r6gsmd5629bmhd8albmr";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
homepage = "https://elpa.gnu.org/packages/doric-themes.html";
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}
|
||||
) { };
|
||||
drepl = callPackage (
|
||||
{
|
||||
comint-mime,
|
||||
@@ -3373,10 +3394,10 @@
|
||||
elpaBuild {
|
||||
pname = "expreg";
|
||||
ename = "expreg";
|
||||
version = "1.3.1";
|
||||
version = "1.4.1";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/expreg-1.3.1.tar";
|
||||
sha256 = "12msng4ypmw6s3pja66kkjxkbadla0fxmak1r3drxiihpwmh5zm6";
|
||||
url = "https://elpa.gnu.org/packages/expreg-1.4.1.tar";
|
||||
sha256 = "1m30d8yp46al7g1hakq95icmgjz0crcvj1h1yd6bj887v1nrnvkk";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -4173,10 +4194,10 @@
|
||||
elpaBuild {
|
||||
pname = "gtags-mode";
|
||||
ename = "gtags-mode";
|
||||
version = "1.8.5";
|
||||
version = "1.8.6";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/gtags-mode-1.8.5.tar";
|
||||
sha256 = "0pia7ivd11hw9ngdghvcbrapndkpq5ra0jx566f7vgrdxxl73ynm";
|
||||
url = "https://elpa.gnu.org/packages/gtags-mode-1.8.6.tar";
|
||||
sha256 = "0kmqndl7h6q4k7ziasfp4pi1lnskr394qia1msxsbz1cqcay1cqh";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -4771,10 +4792,10 @@
|
||||
elpaBuild {
|
||||
pname = "jinx";
|
||||
ename = "jinx";
|
||||
version = "2.1";
|
||||
version = "2.2";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/jinx-2.1.tar";
|
||||
sha256 = "1v4a00bgs6qcpim861kky1i2w0qfn2hza9vj0inn7lh1sic82rkm";
|
||||
url = "https://elpa.gnu.org/packages/jinx-2.2.tar";
|
||||
sha256 = "17f7p7q21f0l8zzr2z05y6mzrh6pw036cnp1375hbssnpsrh3wc1";
|
||||
};
|
||||
packageRequires = [ compat ];
|
||||
meta = {
|
||||
@@ -5212,6 +5233,7 @@
|
||||
) { };
|
||||
llm = callPackage (
|
||||
{
|
||||
compat,
|
||||
elpaBuild,
|
||||
fetchurl,
|
||||
lib,
|
||||
@@ -5222,12 +5244,13 @@
|
||||
elpaBuild {
|
||||
pname = "llm";
|
||||
ename = "llm";
|
||||
version = "0.25.0";
|
||||
version = "0.26.0";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/llm-0.25.0.tar";
|
||||
sha256 = "0ykzx0g6w3b9hlxyx41rkbj2n5pjkpf3y0jqiwl012j7zxg1ay6w";
|
||||
url = "https://elpa.gnu.org/packages/llm-0.26.0.tar";
|
||||
sha256 = "0ihfppwqwxkmv63irca3r0wkp3vsf5imk8gk222vi1dviyqx5q0x";
|
||||
};
|
||||
packageRequires = [
|
||||
compat
|
||||
plz
|
||||
plz-event-source
|
||||
plz-media-type
|
||||
@@ -6474,16 +6497,20 @@
|
||||
elpaBuild,
|
||||
fetchurl,
|
||||
lib,
|
||||
org,
|
||||
}:
|
||||
elpaBuild {
|
||||
pname = "org-modern";
|
||||
ename = "org-modern";
|
||||
version = "1.7";
|
||||
version = "1.8";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/org-modern-1.7.tar";
|
||||
sha256 = "0f1i28x7a9m69xjl3n4bb91pjxm21xw1byhqilyw524y8s22j3wm";
|
||||
url = "https://elpa.gnu.org/packages/org-modern-1.8.tar";
|
||||
sha256 = "0ibn6xwssg2llb6hgpbg0p62995skc6g1g469cr58wlb6xb2qxvl";
|
||||
};
|
||||
packageRequires = [ compat ];
|
||||
packageRequires = [
|
||||
compat
|
||||
org
|
||||
];
|
||||
meta = {
|
||||
homepage = "https://elpa.gnu.org/packages/org-modern.html";
|
||||
license = lib.licenses.free;
|
||||
@@ -9160,10 +9187,10 @@
|
||||
elpaBuild {
|
||||
pname = "tramp";
|
||||
ename = "tramp";
|
||||
version = "2.7.2.3.1";
|
||||
version = "2.7.2.4";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/tramp-2.7.2.3.1.tar";
|
||||
sha256 = "171jmgb9sdj1iqq6a77kxin15yik952vvavhpvdr0wxhdq095mgg";
|
||||
url = "https://elpa.gnu.org/packages/tramp-2.7.2.4.tar";
|
||||
sha256 = "0crlnb421z99vnbvzbq63cqhfy62q96j45qhrzx2v3kajijv77ha";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -9803,10 +9830,10 @@
|
||||
elpaBuild {
|
||||
pname = "vertico";
|
||||
ename = "vertico";
|
||||
version = "2.1";
|
||||
version = "2.2";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/vertico-2.1.tar";
|
||||
sha256 = "03xkl8df90gs26cy00qbk0w23192bkaj32fgaf1w3ajq7mdvfd6p";
|
||||
url = "https://elpa.gnu.org/packages/vertico-2.2.tar";
|
||||
sha256 = "1mb2j32wkcv7j310xwhf9pjddf0b85ffna84ywbbnyn9x1xb8qyf";
|
||||
};
|
||||
packageRequires = [ compat ];
|
||||
meta = {
|
||||
|
||||
@@ -54,10 +54,10 @@
|
||||
elpaBuild {
|
||||
pname = "aidermacs";
|
||||
ename = "aidermacs";
|
||||
version = "1.3.0.20250515.132734";
|
||||
version = "1.4.0.20250529.13102";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/aidermacs-1.3.0.20250515.132734.tar";
|
||||
sha256 = "010sxd4k7xqkpf2jyyffrkxkgn1cq6wq0mkmmh56xpj3mrrxchyp";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/aidermacs-1.4.0.20250529.13102.tar";
|
||||
sha256 = "0hsmzp9axsaiqvsw6y75s5yjn9imwhbl609py2xf8lys4jfj8xzg";
|
||||
};
|
||||
packageRequires = [
|
||||
compat
|
||||
@@ -572,10 +572,10 @@
|
||||
elpaBuild {
|
||||
pname = "cider";
|
||||
ename = "cider";
|
||||
version = "1.18.0.0.20250512.132717";
|
||||
version = "1.19.0snapshot0.20250530.85125";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/cider-1.18.0.0.20250512.132717.tar";
|
||||
sha256 = "0xg81szscjzi8acq96frknpsqqpqwy4lrjs0xjd96smfdz22l47c";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/cider-1.19.0snapshot0.20250530.85125.tar";
|
||||
sha256 = "1mnafkqypqc01ggqa91gxr4m1q8l4hz9i2n8mbqwck4c72zph6k9";
|
||||
};
|
||||
packageRequires = [
|
||||
clojure-mode
|
||||
@@ -601,10 +601,10 @@
|
||||
elpaBuild {
|
||||
pname = "clojure-mode";
|
||||
ename = "clojure-mode";
|
||||
version = "5.20.0snapshot0.20250406.154328";
|
||||
version = "5.20.0.0.20250528.61040";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/clojure-mode-5.20.0snapshot0.20250406.154328.tar";
|
||||
sha256 = "16m89nva2wrin5pbn3iskv43clc9vmvvzc3m2ldyy2vl08lkzbbd";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/clojure-mode-5.20.0.0.20250528.61040.tar";
|
||||
sha256 = "071zs4y4ishjkzwr0dsmd3280vpl92vdpy8f1hwa85lz6i4kyr4r";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -622,10 +622,10 @@
|
||||
elpaBuild {
|
||||
pname = "clojure-ts-mode";
|
||||
ename = "clojure-ts-mode";
|
||||
version = "0.4.0.0.20250516.71256";
|
||||
version = "0.5.0snapshot0.20250530.85704";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/clojure-ts-mode-0.4.0.0.20250516.71256.tar";
|
||||
sha256 = "1r8r0ym20qc791svcz560m2ir0p4siid7q98y7mn23yfw9kakz81";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/clojure-ts-mode-0.5.0snapshot0.20250530.85704.tar";
|
||||
sha256 = "13iwffh76x4463kjsg1kxbvaainq7ikn5idj03az9r8gdijbwz3g";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -716,10 +716,10 @@
|
||||
elpaBuild {
|
||||
pname = "crux";
|
||||
ename = "crux";
|
||||
version = "0.6.0snapshot0.20250421.93605";
|
||||
version = "0.6.0snapshot0.20250525.163240";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/crux-0.6.0snapshot0.20250421.93605.tar";
|
||||
sha256 = "1kzscg15rb237q0y9brl9xbb5z5ygfq6malzhr3axlx2r20xgdi4";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/crux-0.6.0snapshot0.20250525.163240.tar";
|
||||
sha256 = "07rdz5ns0bh8qgndz7q0xqymcpyvcgl3c1h4f2hajr2jqjbhhdv2";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -1227,10 +1227,10 @@
|
||||
elpaBuild {
|
||||
pname = "emacsql";
|
||||
ename = "emacsql";
|
||||
version = "4.3.0.0.20250509.141847";
|
||||
version = "4.3.0.0.20250529.95634";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/emacsql-4.3.0.0.20250509.141847.tar";
|
||||
sha256 = "140mzggvkfjgfx52q4zahbbskcqcbv6vxpw7k9ky9hawr30gbq0a";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/emacsql-4.3.0.0.20250529.95634.tar";
|
||||
sha256 = "1q5jf8fbh7kj7lfm7qh2n6v3admqcdi7mgjbf9lr0j5zzfyz3bbc";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -1723,10 +1723,10 @@
|
||||
elpaBuild {
|
||||
pname = "flycheck";
|
||||
ename = "flycheck";
|
||||
version = "35.0.0.20250424.133949";
|
||||
version = "35.0.0.20250527.90754";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/flycheck-35.0.0.20250424.133949.tar";
|
||||
sha256 = "1k54zvcrl3wms2bsza44h56kxbwjqpaym4p70a6dxxw3ac60jlfq";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/flycheck-35.0.0.20250527.90754.tar";
|
||||
sha256 = "05d9fbd4hv57jcfsjphdzlmnl4wrfawy7q006sca33wljscpyqr1";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -2270,10 +2270,10 @@
|
||||
elpaBuild {
|
||||
pname = "gnuplot";
|
||||
ename = "gnuplot";
|
||||
version = "0.8.1.0.20240914.153054";
|
||||
version = "0.9.0.20250530.193710";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/gnuplot-0.8.1.0.20240914.153054.tar";
|
||||
sha256 = "0pv7ql14d7srb98nidw6fr4mwgssqyv95yskflz27dbbwjlycmn6";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/gnuplot-0.9.0.20250530.193710.tar";
|
||||
sha256 = "1wbdpa3w8zsqzlhi28kcczxjrxw3jmysm0i1frbzkmw01cgpqjzp";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -2377,10 +2377,10 @@
|
||||
elpaBuild {
|
||||
pname = "gptel";
|
||||
ename = "gptel";
|
||||
version = "0.9.8.0.20250515.225537";
|
||||
version = "0.9.8.0.20250529.230850";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/gptel-0.9.8.0.20250515.225537.tar";
|
||||
sha256 = "0wcy7qq8d1pnpjf6fqwcff8r4gbl08azlayyxabqsakgr3498p5d";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/gptel-0.9.8.0.20250529.230850.tar";
|
||||
sha256 = "1xza3riy1799sbqy2f5h1q5d1lpr8rl6xvbknxv51zmp74mnajkg";
|
||||
};
|
||||
packageRequires = [
|
||||
compat
|
||||
@@ -2508,10 +2508,10 @@
|
||||
elpaBuild {
|
||||
pname = "haskell-mode";
|
||||
ename = "haskell-mode";
|
||||
version = "17.5.0.20250401.174200";
|
||||
version = "17.5.0.20250519.115454";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/haskell-mode-17.5.0.20250401.174200.tar";
|
||||
sha256 = "1dxfwd4yhwzy59d55hnz0z23dg5vh1fzkrpicdaz93m9yvfzy1aa";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/haskell-mode-17.5.0.20250519.115454.tar";
|
||||
sha256 = "17si5n0mdaij4kx19rhzy1p3asczkgcd5bhc1fsspi60kzwsmmi8";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -2551,10 +2551,10 @@
|
||||
elpaBuild {
|
||||
pname = "haskell-ts-mode";
|
||||
ename = "haskell-ts-mode";
|
||||
version = "1.1.4.0.20250516.134138";
|
||||
version = "1.2.0.0.20250518.53811";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/haskell-ts-mode-1.1.4.0.20250516.134138.tar";
|
||||
sha256 = "15d4bc5i7p7r9psqdaljyvhxvzlwigzy8sb4iv0wxhbv7wwgwv37";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/haskell-ts-mode-1.2.0.0.20250518.53811.tar";
|
||||
sha256 = "1n5rnyd02mfp77r8h71dpi18q7kayf4dh9rz8aglsx1087mrfm3g";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -2574,10 +2574,10 @@
|
||||
elpaBuild {
|
||||
pname = "helm";
|
||||
ename = "helm";
|
||||
version = "4.0.3.0.20250515.54814";
|
||||
version = "4.0.3.0.20250529.40054";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/helm-4.0.3.0.20250515.54814.tar";
|
||||
sha256 = "0q6scri31v9pjbjkf8sf969aqal228yx66hsahb77gcpvfx0ribg";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/helm-4.0.3.0.20250529.40054.tar";
|
||||
sha256 = "05da9val6w0q3s0662625jp8f2s76mfrayfwpvj00zbvqbavw4i7";
|
||||
};
|
||||
packageRequires = [
|
||||
helm-core
|
||||
@@ -2599,10 +2599,10 @@
|
||||
elpaBuild {
|
||||
pname = "helm-core";
|
||||
ename = "helm-core";
|
||||
version = "4.0.3.0.20250515.54814";
|
||||
version = "4.0.3.0.20250529.40054";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/helm-core-4.0.3.0.20250515.54814.tar";
|
||||
sha256 = "0f66yi42zqccv8i7mlqclvy6c3a5xqc58j54lc4qqr826wmmizbf";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/helm-core-4.0.3.0.20250529.40054.tar";
|
||||
sha256 = "0xa2qp95wswlcqkmg3hngfkqk2mm78z0j2fms89kxm5sg2jkcf7d";
|
||||
};
|
||||
packageRequires = [ async ];
|
||||
meta = {
|
||||
@@ -2856,10 +2856,10 @@
|
||||
elpaBuild {
|
||||
pname = "inf-clojure";
|
||||
ename = "inf-clojure";
|
||||
version = "3.2.1.0.20230909.44557";
|
||||
version = "3.3.0.0.20250525.205532";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/inf-clojure-3.2.1.0.20230909.44557.tar";
|
||||
sha256 = "0ncdqbz8z8wrcf3s1y3n1b11b7k3mwxdk4w5v7pr0j6jn3yfnbby";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/inf-clojure-3.3.0.0.20250525.205532.tar";
|
||||
sha256 = "1q4cibg107pcg1cirqmmzhvbyyzlm76aqfyqad8m6ds76jv3kkcg";
|
||||
};
|
||||
packageRequires = [ clojure-mode ];
|
||||
meta = {
|
||||
@@ -3252,10 +3252,10 @@
|
||||
elpaBuild {
|
||||
pname = "magit";
|
||||
ename = "magit";
|
||||
version = "4.3.2.0.20250401.175331";
|
||||
version = "4.3.5.0.20250520.83537";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/magit-4.3.2.0.20250401.175331.tar";
|
||||
sha256 = "1way4hifyj0p5ly2p84as1amivv67qr22ph292rgwizrj0d5j60y";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/magit-4.3.5.0.20250520.83537.tar";
|
||||
sha256 = "14x7qvkpgjyhf5wcc26gq4plrysd61dr8i4yywxyf09d67xmam8q";
|
||||
};
|
||||
packageRequires = [
|
||||
compat
|
||||
@@ -3283,10 +3283,10 @@
|
||||
elpaBuild {
|
||||
pname = "magit-section";
|
||||
ename = "magit-section";
|
||||
version = "4.3.2.0.20250401.175331";
|
||||
version = "4.3.5.0.20250520.83537";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/magit-section-4.3.2.0.20250401.175331.tar";
|
||||
sha256 = "1wif3d5vb04f39g38w2nbamqcbb89ivh2w5b0w362k3pk0vq2a70";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/magit-section-4.3.5.0.20250520.83537.tar";
|
||||
sha256 = "1c0n0cdgc7mf910pdpxp75wsan7772k5iw307lybf465maabjx1i";
|
||||
};
|
||||
packageRequires = [
|
||||
compat
|
||||
@@ -3448,10 +3448,10 @@
|
||||
elpaBuild {
|
||||
pname = "moe-theme";
|
||||
ename = "moe-theme";
|
||||
version = "1.1.0.0.20250203.180833";
|
||||
version = "1.1.0.0.20250527.61144";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/moe-theme-1.1.0.0.20250203.180833.tar";
|
||||
sha256 = "1vazqmwvn0cpzni1hyjilcdq2zynl4gijkrkhdgaqnskzqp437rm";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/moe-theme-1.1.0.0.20250527.61144.tar";
|
||||
sha256 = "056w9sg4nq75rbcl73l86l79s9qzjp9kdiqrmcydicpdk40dm115";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -3716,10 +3716,10 @@
|
||||
elpaBuild {
|
||||
pname = "org-journal";
|
||||
ename = "org-journal";
|
||||
version = "2.2.0.0.20250425.93636";
|
||||
version = "2.2.0.0.20250525.35745";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/org-journal-2.2.0.0.20250425.93636.tar";
|
||||
sha256 = "0si4zircvmqkh1rk46gs102w0a6kaqx1jc5pr5zk90bgah54jy8f";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/org-journal-2.2.0.0.20250525.35745.tar";
|
||||
sha256 = "0b00a6sn1ykqzz4f9zqi3z0n586n6q9swf92af3kxc9157av9wq5";
|
||||
};
|
||||
packageRequires = [ org ];
|
||||
meta = {
|
||||
@@ -3852,10 +3852,10 @@
|
||||
elpaBuild {
|
||||
pname = "orgit";
|
||||
ename = "orgit";
|
||||
version = "2.0.2.0.20250509.121824";
|
||||
version = "2.0.2.0.20250527.133058";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/orgit-2.0.2.0.20250509.121824.tar";
|
||||
sha256 = "0spqa4zm3k4dnnkns9p9fbji2qryrzlf272a64lhc2l4p5kl5s5d";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/orgit-2.0.2.0.20250527.133058.tar";
|
||||
sha256 = "14k8qa0i895fqqqb62njyb0i1kd627gbq68jaamscpwwzw7km66y";
|
||||
};
|
||||
packageRequires = [
|
||||
compat
|
||||
@@ -3899,10 +3899,10 @@
|
||||
elpaBuild {
|
||||
pname = "package-lint";
|
||||
ename = "package-lint";
|
||||
version = "0.26.0.20250418.142545";
|
||||
version = "0.26.0.20250527.184516";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/package-lint-0.26.0.20250418.142545.tar";
|
||||
sha256 = "0qpsyimq3i6p8s03ax2grnzn474ngmx2lcvsvf5db6fryhw9qxj3";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/package-lint-0.26.0.20250527.184516.tar";
|
||||
sha256 = "0nm3z8cirwvhls4ihckfnydw11qczrgps1mc1h56q3gsyr901z43";
|
||||
};
|
||||
packageRequires = [ let-alist ];
|
||||
meta = {
|
||||
@@ -4099,10 +4099,10 @@
|
||||
elpaBuild {
|
||||
pname = "php-mode";
|
||||
ename = "php-mode";
|
||||
version = "1.26.1.0.20250422.172013";
|
||||
version = "1.26.1.0.20250528.130625";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/php-mode-1.26.1.0.20250422.172013.tar";
|
||||
sha256 = "1d2ahw3vd7r9ylwb5cm5rjdd70cvfp7zy82rkx1ix2ddamfmbqya";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/php-mode-1.26.1.0.20250528.130625.tar";
|
||||
sha256 = "19zzmhak462xygriknnh3y83xfl2jrqvh4gz129vnwysnmb13lx3";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -4162,10 +4162,10 @@
|
||||
elpaBuild {
|
||||
pname = "projectile";
|
||||
ename = "projectile";
|
||||
version = "2.9.1.0.20250402.71553";
|
||||
version = "2.9.1.0.20250527.53156";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/projectile-2.9.1.0.20250402.71553.tar";
|
||||
sha256 = "0cnidaysnma7bvzzw5vbkggy3z9zq51zlg4k2kd5b1f8dagjlzv7";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/projectile-2.9.1.0.20250527.53156.tar";
|
||||
sha256 = "0gnig1w4w3sjlvhkc66kbv6hp5bf4bp35iqkhz902qs565sdsxzk";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -4183,10 +4183,10 @@
|
||||
elpaBuild {
|
||||
pname = "proof-general";
|
||||
ename = "proof-general";
|
||||
version = "4.6snapshot0.20250516.91308";
|
||||
version = "4.6snapshot0.20250527.143946";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/proof-general-4.6snapshot0.20250516.91308.tar";
|
||||
sha256 = "0fkl0zm8wm6snp0baab0hbabzsli7jw8pq13kzvng2mj8djsm8l2";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/proof-general-4.6snapshot0.20250527.143946.tar";
|
||||
sha256 = "1xkk7hspy0zn4sm1j05j253fima73q0nbzma57vv1k8v68j933y9";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -4227,10 +4227,10 @@
|
||||
elpaBuild {
|
||||
pname = "racket-mode";
|
||||
ename = "racket-mode";
|
||||
version = "1.0.20250514.102731";
|
||||
version = "1.0.20250522.142050";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/racket-mode-1.0.20250514.102731.tar";
|
||||
sha256 = "1da7v2w83kn7q07nb3pili3hsiymxa9h2l7nhf7y8sskq8j1sscc";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/racket-mode-1.0.20250522.142050.tar";
|
||||
sha256 = "19zc9y704b9naqgx9cs9j40q0z402jp02f83l1fpcpyq3gbhmi1y";
|
||||
};
|
||||
packageRequires = [ compat ];
|
||||
meta = {
|
||||
@@ -4311,10 +4311,10 @@
|
||||
elpaBuild {
|
||||
pname = "recomplete";
|
||||
ename = "recomplete";
|
||||
version = "0.2.0.20250119.115844";
|
||||
version = "0.2.0.20250528.3825";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/recomplete-0.2.0.20250119.115844.tar";
|
||||
sha256 = "0sij91c5p5lqbj3p7f0iprzvzrgvg37bn16jgh93byxwpr8cwpik";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/recomplete-0.2.0.20250528.3825.tar";
|
||||
sha256 = "1cip3dy8klcy1hsw2w3wx9lhzpf6inya430japh798drn0k3vi7j";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -4612,10 +4612,10 @@
|
||||
elpaBuild {
|
||||
pname = "slime";
|
||||
ename = "slime";
|
||||
version = "2.31snapshot0.20250417.201511";
|
||||
version = "2.31snapshot0.20250520.4450";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/slime-2.31snapshot0.20250417.201511.tar";
|
||||
sha256 = "0pbm04m0wzr63vs45xs624xgkjskpcvprwgizqmh84bvqg6g4zvh";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/slime-2.31snapshot0.20250520.4450.tar";
|
||||
sha256 = "0b1kxhimlx73nmhgkidjpz3dm1nsyikqhflz2c7mhmdii50nramy";
|
||||
};
|
||||
packageRequires = [ macrostep ];
|
||||
meta = {
|
||||
@@ -4633,10 +4633,10 @@
|
||||
elpaBuild {
|
||||
pname = "sly";
|
||||
ename = "sly";
|
||||
version = "1.0.43.0.20250501.191827";
|
||||
version = "1.0.43.0.20250522.230625";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/sly-1.0.43.0.20250501.191827.tar";
|
||||
sha256 = "026z57k7bg8brvgi8pngdxrb0djski7ryj9mlrzbjwr1r5z5c1z4";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/sly-1.0.43.0.20250522.230625.tar";
|
||||
sha256 = "13y1h93bf4bmz0mwrwhk6nd4skvcpjw9x0jl1ga2xx1ja6wf81s5";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -4846,10 +4846,10 @@
|
||||
elpaBuild {
|
||||
pname = "swift-mode";
|
||||
ename = "swift-mode";
|
||||
version = "9.3.0.0.20250412.62413";
|
||||
version = "9.3.0.0.20250524.53009";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/swift-mode-9.3.0.0.20250412.62413.tar";
|
||||
sha256 = "0mgjswp1ldqcwicgxa3rr6nv8g2yi6pgqlxi9m2pvzihy9x70b53";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/swift-mode-9.3.0.0.20250524.53009.tar";
|
||||
sha256 = "0dcr8d4d4bn6grxycc89bm14i4vq4z8vvhi9548v0iz5fh1bjwgs";
|
||||
};
|
||||
packageRequires = [ seq ];
|
||||
meta = {
|
||||
@@ -5108,10 +5108,10 @@
|
||||
elpaBuild {
|
||||
pname = "treesit-fold";
|
||||
ename = "treesit-fold";
|
||||
version = "0.2.1.0.20250422.155540";
|
||||
version = "0.2.1.0.20250521.182836";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/treesit-fold-0.2.1.0.20250422.155540.tar";
|
||||
sha256 = "02svdk7sas6xy2acqsm2d0qmafxp16qhb2p8n2mchg6aa3yldk9b";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/treesit-fold-0.2.1.0.20250521.182836.tar";
|
||||
sha256 = "0d1a2fqm2j60cz3ssqnmdvp0qd906i7wnxvn6nxmq6ny77lvhk0y";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -5477,10 +5477,10 @@
|
||||
elpaBuild {
|
||||
pname = "with-editor";
|
||||
ename = "with-editor";
|
||||
version = "3.4.3.0.20250509.145538";
|
||||
version = "3.4.3.0.20250521.153138";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/with-editor-3.4.3.0.20250509.145538.tar";
|
||||
sha256 = "1chrmrlxx61q1n2kqghka8vq2mj7rnk2slx8rfp7nkcsja4b6nz7";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/with-editor-3.4.3.0.20250521.153138.tar";
|
||||
sha256 = "0i1912zgn5v06pbbyw03vxhn329d58p39li6b8jxrniz74si3h7x";
|
||||
};
|
||||
packageRequires = [ compat ];
|
||||
meta = {
|
||||
@@ -5587,10 +5587,10 @@
|
||||
elpaBuild {
|
||||
pname = "xah-fly-keys";
|
||||
ename = "xah-fly-keys";
|
||||
version = "26.12.20250503115607.0.20250503.115753";
|
||||
version = "26.12.20250517213917.0.20250517.214741";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/xah-fly-keys-26.12.20250503115607.0.20250503.115753.tar";
|
||||
sha256 = "1vn45rxy14ij4w7iswcwlkgvgjnjbgana2v2a34k71xn392gsf32";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/xah-fly-keys-26.12.20250517213917.0.20250517.214741.tar";
|
||||
sha256 = "1wihfan7mxi1d4qxwdqwpfzdi0zjmwwq3ssiscg9i39mqnlyn93s";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
|
||||
@@ -54,10 +54,10 @@
|
||||
elpaBuild {
|
||||
pname = "aidermacs";
|
||||
ename = "aidermacs";
|
||||
version = "1.3";
|
||||
version = "1.4";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu/aidermacs-1.3.tar";
|
||||
sha256 = "03s08h5xp57l228gn9lay4a7h19zk6wyn777r2icsn1a1ii63l82";
|
||||
url = "https://elpa.nongnu.org/nongnu/aidermacs-1.4.tar";
|
||||
sha256 = "0432v40yr0yjma7lhd53dn7rlfsh8fampw9j2wvmcqpw6dhny4jy";
|
||||
};
|
||||
packageRequires = [
|
||||
compat
|
||||
@@ -601,10 +601,10 @@
|
||||
elpaBuild {
|
||||
pname = "clojure-mode";
|
||||
ename = "clojure-mode";
|
||||
version = "5.19.0";
|
||||
version = "5.20.0";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu/clojure-mode-5.19.0.tar";
|
||||
sha256 = "10dpdi4yc7bbga2mllk46jfy58ppj8vlhs37zd9vlk9rnfc54r99";
|
||||
url = "https://elpa.nongnu.org/nongnu/clojure-mode-5.20.0.tar";
|
||||
sha256 = "16myla7yfknxf36w0n09xg2rr4z4374gs6iqb9spf9hmw0d6z800";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -2287,10 +2287,10 @@
|
||||
elpaBuild {
|
||||
pname = "gnuplot";
|
||||
ename = "gnuplot";
|
||||
version = "0.8.1";
|
||||
version = "0.9";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu/gnuplot-0.8.1.tar";
|
||||
sha256 = "1y364j5gr8cnkndxd088kaxd2ah0nd7176gfjligm3ngpgg6ndyx";
|
||||
url = "https://elpa.nongnu.org/nongnu/gnuplot-0.9.tar";
|
||||
sha256 = "019cvjh4cqn6y5y2kxw8sy1y23jkh9mmi38wpg3mqayq4xfxdlyv";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -2567,10 +2567,10 @@
|
||||
elpaBuild {
|
||||
pname = "haskell-ts-mode";
|
||||
ename = "haskell-ts-mode";
|
||||
version = "1.1.4";
|
||||
version = "1.2.0";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu/haskell-ts-mode-1.1.4.tar";
|
||||
sha256 = "1430hddrj9lkfxapxa5d13q800awqxhg84r87abmry9skn35jfs7";
|
||||
url = "https://elpa.nongnu.org/nongnu/haskell-ts-mode-1.2.0.tar";
|
||||
sha256 = "016722wrs24i5kzirlc5mzs12m4g6wg4aba6fda2q1ghmf41g8pp";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -2872,10 +2872,10 @@
|
||||
elpaBuild {
|
||||
pname = "inf-clojure";
|
||||
ename = "inf-clojure";
|
||||
version = "3.2.1";
|
||||
version = "3.3.0";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu/inf-clojure-3.2.1.tar";
|
||||
sha256 = "1pvngj87hqr0qzc62cgq294rllxbmn7803pnqqr8ah1qxy65a1wb";
|
||||
url = "https://elpa.nongnu.org/nongnu/inf-clojure-3.3.0.tar";
|
||||
sha256 = "1z81gk1w2mvas0qlfxg0i2af6d93kylsn3lwiq0xymzlcp0rjjdj";
|
||||
};
|
||||
packageRequires = [ clojure-mode ];
|
||||
meta = {
|
||||
@@ -3268,10 +3268,10 @@
|
||||
elpaBuild {
|
||||
pname = "magit";
|
||||
ename = "magit";
|
||||
version = "4.3.2";
|
||||
version = "4.3.5";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu/magit-4.3.2.tar";
|
||||
sha256 = "1pi69z1h5h6qlwmvwl2i2n5gcv9anp9zpgv9knqwrq8j2d5ialgr";
|
||||
url = "https://elpa.nongnu.org/nongnu/magit-4.3.5.tar";
|
||||
sha256 = "04hybghzplgdk4vlyss221lvlvny16i9g1043l7gds1iib8875pc";
|
||||
};
|
||||
packageRequires = [
|
||||
compat
|
||||
@@ -3299,10 +3299,10 @@
|
||||
elpaBuild {
|
||||
pname = "magit-section";
|
||||
ename = "magit-section";
|
||||
version = "4.3.2";
|
||||
version = "4.3.5";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu/magit-section-4.3.2.tar";
|
||||
sha256 = "0dnmwciz26wrsmp48h9axmj6qjgzhz9i7g3bvlpsq3i8y32xwdf6";
|
||||
url = "https://elpa.nongnu.org/nongnu/magit-section-4.3.5.tar";
|
||||
sha256 = "1rik2sh3v6y6qsyjnqiy5vbf5ls0gnc32lhsnrkyaryfc3kis7cf";
|
||||
};
|
||||
packageRequires = [
|
||||
compat
|
||||
@@ -4250,10 +4250,10 @@
|
||||
elpaBuild {
|
||||
pname = "racket-mode";
|
||||
ename = "racket-mode";
|
||||
version = "1.0.20250514.102731";
|
||||
version = "1.0.20250522.142050";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu/racket-mode-1.0.20250514.102731.tar";
|
||||
sha256 = "0d5q08q3bm2ws0g0cys1xzjvznrqxhwxikjrkdri9js8y14z50l3";
|
||||
url = "https://elpa.nongnu.org/nongnu/racket-mode-1.0.20250522.142050.tar";
|
||||
sha256 = "0af5m48mjnyqyrpcb09g59w6jxlm7917b6xm62zliv0bns9k9irm";
|
||||
};
|
||||
packageRequires = [ compat ];
|
||||
meta = {
|
||||
@@ -5601,10 +5601,10 @@
|
||||
elpaBuild {
|
||||
pname = "xah-fly-keys";
|
||||
ename = "xah-fly-keys";
|
||||
version = "26.12.20250503115607";
|
||||
version = "26.12.20250517213917";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu/xah-fly-keys-26.12.20250503115607.tar";
|
||||
sha256 = "1mh6rssi7g6dfl2glpivfixpdfk0kdlsbilszazmhzc6bh34blj5";
|
||||
url = "https://elpa.nongnu.org/nongnu/xah-fly-keys-26.12.20250517213917.tar";
|
||||
sha256 = "19wandxd82i2v3qm4njhvvmdd36rmf2d28nn5cp8ain71zx6vk4a";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -260,8 +260,8 @@ let
|
||||
mktplcRef = {
|
||||
name = "ng-template";
|
||||
publisher = "Angular";
|
||||
version = "20.0.0";
|
||||
hash = "sha256-87SImzcGbwvf9xtdbD3etqaWe6fMVeCKc+f8qTyFnUA=";
|
||||
version = "20.0.1";
|
||||
hash = "sha256-N+2uNX1gXGHAvkx2aff9DfB7vji8bXNLt86yaSYt0o0=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/Angular.ng-template/changelog";
|
||||
@@ -1587,8 +1587,8 @@ let
|
||||
# semver scheme, contrary to preview versions which are listed on
|
||||
# the VSCode Marketplace and use a calver scheme. We should avoid
|
||||
# using preview versions, because they expire after two weeks.
|
||||
version = "17.1.0";
|
||||
hash = "sha256-WPSMf1yLXSDqImpMTxn1eXcSrimVSVjjaXDzFMQ/l0E=";
|
||||
version = "17.1.1";
|
||||
hash = "sha256-hlhq4bR3v0AqI3lxilgNEgjjEEBVL0xfvIWbV/Ronh4=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/eamodio.gitlens/changelog";
|
||||
@@ -5316,8 +5316,8 @@ let
|
||||
mktplcRef = {
|
||||
name = "vim";
|
||||
publisher = "vscodevim";
|
||||
version = "1.29.2";
|
||||
hash = "sha256-RBh4yQxOoUpwNKedFjEeu6hO0tU9AAPlDrt2LhgZT50=";
|
||||
version = "1.30.1";
|
||||
hash = "sha256-cKdVQTGj7R37YefQAaTspF1RVul/9wv7u9b5TpGZN5k=";
|
||||
};
|
||||
meta = {
|
||||
license = lib.licenses.mit;
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
jq,
|
||||
lib,
|
||||
moreutils,
|
||||
prettier,
|
||||
vscode-utils,
|
||||
nodePackages,
|
||||
}:
|
||||
|
||||
vscode-utils.buildVscodeMarketplaceExtension {
|
||||
@@ -19,11 +19,11 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
||||
moreutils
|
||||
];
|
||||
|
||||
buildInputs = [ nodePackages.prettier ];
|
||||
buildInputs = [ prettier ];
|
||||
|
||||
postInstall = ''
|
||||
cd "$out/$installPrefix"
|
||||
jq '.contributes.configuration.properties."prettier.prettierPath".default = "${nodePackages.prettier}/lib/node_modules/prettier"' package.json | sponge package.json
|
||||
jq '.contributes.configuration.properties."prettier.prettierPath".default = "${prettier}/lib/node_modules/prettier"' package.json | sponge package.json
|
||||
'';
|
||||
|
||||
meta = {
|
||||
|
||||
@@ -5,13 +5,13 @@
|
||||
}:
|
||||
mkLibretroCore {
|
||||
core = "fbneo";
|
||||
version = "0-unstable-2025-05-19";
|
||||
version = "0-unstable-2025-05-28";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "libretro";
|
||||
repo = "fbneo";
|
||||
rev = "d2cf158e9ba82fc7dfec592452e6113121665c19";
|
||||
hash = "sha256-dO1R0iIXEo2lrMSOJXlZBw2yXBfyB/1yFfRPYEEAojo=";
|
||||
rev = "60d812a5a25b7f6cc7df2842264b67847e51122b";
|
||||
hash = "sha256-4HJZXsgUp0do7T0bwPPuuyoN7XIII3DSzk6LsLqZQeQ=";
|
||||
};
|
||||
|
||||
makefile = "Makefile";
|
||||
|
||||
@@ -5,13 +5,13 @@
|
||||
}:
|
||||
mkLibretroCore {
|
||||
core = "puae";
|
||||
version = "0-unstable-2025-05-14";
|
||||
version = "0-unstable-2025-05-24";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "libretro";
|
||||
repo = "libretro-uae";
|
||||
rev = "fad7beb42c90a1a04829d465bed951a69cd36f8b";
|
||||
hash = "sha256-pO45/IvgT2q5k0sBhSNZ6srJx4h2lYSjG/mKFJesGbc=";
|
||||
rev = "f1c248602abb58e7c570feec3f59f4677407b252";
|
||||
hash = "sha256-CmdMeAntu+uFp1HowBz3UgMiqFbRrNuMyevTlKxga/M=";
|
||||
};
|
||||
|
||||
makefile = "Makefile";
|
||||
|
||||
@@ -1,99 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchurl,
|
||||
libX11,
|
||||
cups,
|
||||
zlib,
|
||||
libxml2,
|
||||
pango,
|
||||
atk,
|
||||
gtk2,
|
||||
glib,
|
||||
gdk-pixbuf,
|
||||
gdk-pixbuf-xlib,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "adobe-reader";
|
||||
version = "9.5.5";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://ardownload.adobe.com/pub/adobe/reader/unix/9.x/${version}/enu/AdbeRdr${version}-1_i486linux_enu.tar.bz2";
|
||||
sha256 = "0h35misxrqkl5zlmmvray1bqf4ywczkm89n9qw7d9arqbg3aj3pf";
|
||||
};
|
||||
|
||||
# !!! Adobe Reader contains copies of OpenSSL, libcurl, and libicu.
|
||||
# We should probably remove those and use the regular Nixpkgs versions.
|
||||
libPath = lib.makeLibraryPath [
|
||||
stdenv.cc.cc
|
||||
libX11
|
||||
zlib
|
||||
libxml2
|
||||
cups
|
||||
pango
|
||||
atk
|
||||
gtk2
|
||||
glib
|
||||
gdk-pixbuf
|
||||
gdk-pixbuf-xlib
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
p=$out/libexec/adobe-reader
|
||||
mkdir -p $out/libexec
|
||||
tar xvf COMMON.TAR -C $out
|
||||
tar xvf ILINXR.TAR -C $out
|
||||
mv $out/Adobe/Reader9 $p
|
||||
rmdir $out/Adobe
|
||||
|
||||
# Disable this plugin for now (it needs LDAP).
|
||||
rm $p/Reader/intellinux/plug_ins/PPKLite.api
|
||||
|
||||
# Remove unneeded files
|
||||
rm $p/bin/UNINSTALL
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
|
||||
--set-rpath $libPath \
|
||||
$p/Reader/intellinux/bin/acroread
|
||||
|
||||
# The "xargs -r" is to shut up a warning when Mozilla can't be found.
|
||||
substituteInPlace $p/bin/acroread \
|
||||
--replace-fail /bin/pwd $(type -P pwd) \
|
||||
--replace-fail /bin/ls $(type -P ls) \
|
||||
--replace-fail xargs "xargs -r"
|
||||
|
||||
mkdir -p $out/bin
|
||||
ln -s $p/bin/acroread $out/bin/acroread
|
||||
|
||||
mkdir -p $out/share/applications
|
||||
mv $p/Resource/Support/AdobeReader.desktop $out/share/applications/
|
||||
icon=$p/Resource/Icons/128x128/AdobeReader9.png
|
||||
[ -e $icon ]
|
||||
sed -i $out/share/applications/AdobeReader.desktop \
|
||||
-e "s|Icon=.*|Icon=$icon|"
|
||||
|
||||
mkdir -p $out/share/mimelnk/application
|
||||
mv $p/Resource/Support/vnd*.desktop $out/share/mimelnk/application
|
||||
'';
|
||||
|
||||
dontStrip = true;
|
||||
|
||||
passthru.mozillaPlugin = "/libexec/adobe-reader/Browser/intellinux";
|
||||
|
||||
meta = {
|
||||
description = "Adobe Reader, a viewer for PDF documents";
|
||||
homepage = "http://www.adobe.com/products/reader";
|
||||
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
|
||||
license = lib.licenses.unfree;
|
||||
knownVulnerabilities = [
|
||||
"Numerous unresolved vulnerabilities"
|
||||
"See: https://www.cvedetails.com/product/497/Adobe-Acrobat-Reader.html?vendor_id=53"
|
||||
];
|
||||
platforms = [ "i686-linux" ];
|
||||
maintainers = with lib.maintainers; [ onny ];
|
||||
mainProgram = "acroread";
|
||||
};
|
||||
}
|
||||
@@ -21,7 +21,7 @@ stdenv.mkDerivation {
|
||||
|
||||
# trivial derivation
|
||||
preferLocalBuild = true;
|
||||
allowSubstitues = false;
|
||||
allowSubstitutes = false;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Configurable blue light filter";
|
||||
|
||||
@@ -16,13 +16,13 @@
|
||||
|
||||
mkDerivation rec {
|
||||
pname = "klayout";
|
||||
version = "0.30.1";
|
||||
version = "0.30.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "KLayout";
|
||||
repo = "klayout";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-5e697uEuH2r/k/5qSuluJ2qvgCqM/Z+O0fZ7Lygdvz4=";
|
||||
hash = "sha256-x6eg5SoPTcxSggonI1OdbTo/BCjqaV7bXHnEG90o2J8=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
||||
@@ -10,14 +10,14 @@
|
||||
|
||||
rofi-unwrapped.overrideAttrs (oldAttrs: rec {
|
||||
pname = "rofi-wayland-unwrapped";
|
||||
version = "1.7.8+wayland1";
|
||||
version = "1.7.9+wayland1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "lbonn";
|
||||
repo = "rofi";
|
||||
rev = version;
|
||||
fetchSubmodules = true;
|
||||
hash = "sha256-6hQfy0c73z1Oi2mGjuhKLZQIBpG1u06v40dmlc5fL/w=";
|
||||
hash = "sha256-tLSU0Q221Pg3JYCT+w9ZT4ZbbB5+s8FwsZa/ehfn00s=";
|
||||
};
|
||||
|
||||
depsBuildBuild = oldAttrs.depsBuildBuild ++ [ pkg-config ];
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -167,7 +167,27 @@ stdenv.mkDerivation {
|
||||
changelog = "https://www.mozilla.org/en-US/firefox/${version}/releasenotes/";
|
||||
description = "Mozilla Firefox, free web browser (binary package)";
|
||||
homepage = "https://www.mozilla.org/firefox/";
|
||||
license = licenses.mpl20;
|
||||
license = {
|
||||
shortName = "firefox";
|
||||
fullName = "Firefox Terms of Use";
|
||||
url = "https://www.mozilla.org/about/legal/terms/firefox/";
|
||||
# "You Are Responsible for the Consequences of Your Use of Firefox"
|
||||
# (despite the heading, not an indemnity clause) states the following:
|
||||
#
|
||||
# > You agree that you will not use Firefox to infringe anyone’s rights
|
||||
# > or violate any applicable laws or regulations.
|
||||
# >
|
||||
# > You will not do anything that interferes with or disrupts Mozilla’s
|
||||
# > services or products (or the servers and networks which are connected
|
||||
# > to Mozilla’s services).
|
||||
#
|
||||
# This conflicts with FSF freedom 0: "The freedom to run the program as
|
||||
# you wish, for any purpose". (Why should Mozilla be involved in
|
||||
# instances where you break your local laws just because you happen to
|
||||
# use Firefox whilst doing it?)
|
||||
free = false;
|
||||
redistributable = true; # since MPL-2.0 still applies
|
||||
};
|
||||
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
|
||||
platforms = builtins.attrNames mozillaPlatforms;
|
||||
hydraPlatforms = [ ];
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -10,11 +10,11 @@
|
||||
buildMozillaMach rec {
|
||||
pname = "firefox-beta";
|
||||
binaryName = pname;
|
||||
version = "140.0b2";
|
||||
version = "140.0b3";
|
||||
applicationName = "Firefox Beta";
|
||||
src = fetchurl {
|
||||
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
|
||||
sha512 = "c8010b6cdf90f52d5105971d726139460a0194ca7e84ed57184897f4f258957ff64117ef14a38a6dba4cab3074f3a92aee0eaf221ecf22218f6408636ab9c960";
|
||||
sha512 = "282b30284e9efa3909e1c1e8b01fd3c8ce5083668a01dea53487aa00d89734889e033051de3ce9aa66d7a84f4d4ac1c6e558fa4e3efe1e51077fc0831e989129";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
||||
@@ -10,13 +10,13 @@
|
||||
buildMozillaMach rec {
|
||||
pname = "firefox-devedition";
|
||||
binaryName = pname;
|
||||
version = "140.0b2";
|
||||
version = "140.0b3";
|
||||
applicationName = "Firefox Developer Edition";
|
||||
requireSigning = false;
|
||||
branding = "browser/branding/aurora";
|
||||
src = fetchurl {
|
||||
url = "mirror://mozilla/devedition/releases/${version}/source/firefox-${version}.source.tar.xz";
|
||||
sha512 = "4a369638dab1202f21f071a1eb48552888adf01e49ee4e029dfe7b42919312719004099b203a066057fd4d9ef9a684e5f95b0aa06ecf82cc88df0025f33f6368";
|
||||
sha512 = "f7e2382ba9ad9a6fbea4a99ab541a4b70dcc4dd78d52230f5e600e9812eb796c890d424805b9c4d2ad7c981e3e509d654e9ae4e4c79c6a50880388e1b4c83bbe";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
||||
@@ -14,16 +14,16 @@ builtins.mapAttrs
|
||||
}:
|
||||
buildGoModule rec {
|
||||
inherit pname;
|
||||
version = "3.29.3";
|
||||
version = "3.30.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "projectcalico";
|
||||
repo = "calico";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-JK/iKVLXT8h+xZpkjVBEI8vfgRuoTHwWaoKikjBsJgI=";
|
||||
hash = "sha256-twq0Yp2M1f9qtcAQ+kcZoBxXXtw1VrV9ZrtEnEPv+Ks=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-dkBOhuX/tf+emLLeZ+7fI+z1pKwZLD0ZqZNxUMS32NE=";
|
||||
vendorHash = "sha256-hvAFSr64YsGaSbbG3aEsSO+gprtQy51/BsdYAhAgH3Q=";
|
||||
|
||||
inherit doCheck subPackages;
|
||||
|
||||
|
||||
@@ -13,13 +13,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "helm-secrets";
|
||||
version = "4.6.4";
|
||||
version = "4.6.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jkroepke";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-PvWHxcxNSCI5RX830+b61fiyi0WX8ujEJzjyUOXp+iA=";
|
||||
hash = "sha256-gSWavqvKdVBRF182fzEiRqEVg8douzEcpKiOdmSZ9hg=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
@@ -9,16 +9,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "helmfile";
|
||||
version = "1.1.0";
|
||||
version = "1.1.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "helmfile";
|
||||
repo = "helmfile";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-xLVUyzRl6Q9GJOoYJCo1pbYxheVjEvnQIa4BMJVR9PY=";
|
||||
hash = "sha256-UGmthYbm0uMuWfUpXpTQUtZ71yXPRvmTZUJ2PLqjUrA=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-biFRdHnOvxd2hgTGPotZtlmbyqNrkW8f158kjAuLkuA=";
|
||||
vendorHash = "sha256-Sil18yyhEbITTEmU5IiqEXpip1GUgCaKQO3IOGsgX54=";
|
||||
|
||||
proxyVendor = true; # darwin/linux hash mismatch
|
||||
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
# Using an external Containerd
|
||||
|
||||
K3s ships with its own containerd binary, however, sometimes it's necessary to use an external
|
||||
containerd. This can be done in a few lines of configuration.
|
||||
|
||||
## Configure Containerd
|
||||
|
||||
```nix
|
||||
virtualisation.containerd = {
|
||||
enable = true;
|
||||
settings.plugins."io.containerd.grpc.v1.cri".cni = {
|
||||
bin_dir = "/var/lib/rancher/k3s/data/current/bin";
|
||||
conf_dir = "/var/lib/rancher/k3s/agent/etc/cni/net.d";
|
||||
};
|
||||
# Optionally, configure containerd to use the k3s pause image
|
||||
settings.plugins."io.containerd.grpc.v1.cri" = {
|
||||
sandbox_image = "docker.io/rancher/mirrored-pause:3.6";
|
||||
};
|
||||
};
|
||||
```
|
||||
|
||||
## Configure k3s
|
||||
|
||||
```nix
|
||||
services.k3s = {
|
||||
enable = true;
|
||||
extraFlags = [ "--container-runtime-endpoint unix:///run/containerd/containerd.sock" ];
|
||||
};
|
||||
```
|
||||
|
||||
## Importing Container Images
|
||||
|
||||
K3s provides the `services.k3s.images` option to import container images at startup. This option
|
||||
does **not** work with an external containerd, but you can import the images via
|
||||
`ctr -n=k8s.io image import /var/lib/rancher/k3s/agent/images/*`. Note that you need to set the
|
||||
`k8s.io` namespace to make the images available to the cluster.
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
(callPackage ./generic.nix { }) {
|
||||
channel = "edge";
|
||||
version = "25.5.1";
|
||||
sha256 = "0wnj2v08j71aq8p3qx3k71xkbnr84vxgd3cidka7lxrj21hcbk0q";
|
||||
vendorHash = "sha256-dxTTxTwDWvcDJiwMtqg814oUx0TsUcon7Wx0sVIq26A=";
|
||||
version = "25.5.4";
|
||||
sha256 = "0hyjhcb36qbsigc0knf4spyal0djijln1w5cdjrrpwx58jzjhzj8";
|
||||
vendorHash = "sha256-DNR2qLTai7BOOovbd9MfQ1ZUUehkD9WQ/UJo+MDdjSg=";
|
||||
}
|
||||
|
||||
@@ -1,4 +1,13 @@
|
||||
{
|
||||
"_assert": {
|
||||
"hash": "sha256-ngHxzV7lRg6pOtyNTdCv3ToRK/vO016Vp2mlh7QT8Rc=",
|
||||
"homepage": "https://registry.terraform.io/providers/hashicorp/assert",
|
||||
"owner": "hashicorp",
|
||||
"repo": "terraform-provider-assert",
|
||||
"rev": "v0.16.0",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": "sha256-nHaBNYCKfTvaDnz2SeexM2cyNVK5ThPYn4rnGEw7Wi0="
|
||||
},
|
||||
"aci": {
|
||||
"hash": "sha256-NS5q6ElCGEGSceOCIVudKE6m6EzXMV/3HGHHXwYopOA=",
|
||||
"homepage": "https://registry.terraform.io/providers/CiscoDevNet/aci",
|
||||
@@ -108,11 +117,11 @@
|
||||
"vendorHash": "sha256-2NSP0jGFchh3roqSKxCRbkQ+8lNiGRo4JivvBj6wqdg="
|
||||
},
|
||||
"aviatrix": {
|
||||
"hash": "sha256-t19AY2TWOEZpJNbqZevZ6pdzAdUARjmmB8fJjW/LGKM=",
|
||||
"hash": "sha256-sk0AU0Gqynpl1z+AXRqW1/F56pV4uTrO332622NrzX0=",
|
||||
"homepage": "https://registry.terraform.io/providers/AviatrixSystems/aviatrix",
|
||||
"owner": "AviatrixSystems",
|
||||
"repo": "terraform-provider-aviatrix",
|
||||
"rev": "v3.2.1",
|
||||
"rev": "v8.0.0",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": null
|
||||
},
|
||||
@@ -135,11 +144,11 @@
|
||||
"vendorHash": null
|
||||
},
|
||||
"azurerm": {
|
||||
"hash": "sha256-u9rcky6sIFEfPI5WqyqQ0Z+p4wXuV6mv+mHtHbI8Zbc=",
|
||||
"hash": "sha256-dd/PAMkdnVlcjOk8Q5i4TsfmSWJgG25FgI/lF0OrVXI=",
|
||||
"homepage": "https://registry.terraform.io/providers/hashicorp/azurerm",
|
||||
"owner": "hashicorp",
|
||||
"repo": "terraform-provider-azurerm",
|
||||
"rev": "v4.29.0",
|
||||
"rev": "v4.31.0",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": null
|
||||
},
|
||||
@@ -153,20 +162,20 @@
|
||||
"vendorHash": null
|
||||
},
|
||||
"baiducloud": {
|
||||
"hash": "sha256-n+vKQ6IE1PV/09OCeYj28o1YKVP0cCDCTYLLq/4PClg=",
|
||||
"hash": "sha256-rWLmDopC6m2tzh2NEYvclp0QVH0r/5toA+3jBUkcBaY=",
|
||||
"homepage": "https://registry.terraform.io/providers/baidubce/baiducloud",
|
||||
"owner": "baidubce",
|
||||
"repo": "terraform-provider-baiducloud",
|
||||
"rev": "v1.21.13",
|
||||
"rev": "v1.21.16",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": null
|
||||
},
|
||||
"bigip": {
|
||||
"hash": "sha256-MVnqTt9Hsc2wqKbCK+mEpNnNf1mKU6NgTPxO/8LZbaw=",
|
||||
"hash": "sha256-TZDIJE2iBNcd505e+gfFvTr6vRqfwAm/nqlxVeT8gM0=",
|
||||
"homepage": "https://registry.terraform.io/providers/F5Networks/bigip",
|
||||
"owner": "F5Networks",
|
||||
"repo": "terraform-provider-bigip",
|
||||
"rev": "v1.22.9",
|
||||
"rev": "v1.22.10",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": null
|
||||
},
|
||||
@@ -390,13 +399,13 @@
|
||||
"vendorHash": "sha256-WZqwBkVXoFmDikIyt9GWszLA/9YBoQHAdBuWbGKZBZw="
|
||||
},
|
||||
"docker": {
|
||||
"hash": "sha256-vpgvEDcmUpumCNvahijb7lkkEQUeaHH0a+CSzPspIyM=",
|
||||
"hash": "sha256-sPeX1bupACBSmt8ppyxQKyD+FXIPdCBWn8cnOAvNHwQ=",
|
||||
"homepage": "https://registry.terraform.io/providers/kreuzwerker/docker",
|
||||
"owner": "kreuzwerker",
|
||||
"repo": "terraform-provider-docker",
|
||||
"rev": "v3.5.0",
|
||||
"rev": "v3.6.0",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": "sha256-b2N/m85aUbD93ATbqdqU/7HHQz2JKW7Cj96JnjLVq20="
|
||||
"vendorHash": "sha256-bQM6bAtTqAzrIqvCnpfxYefiTmTKaJq8okAgOVls5jk="
|
||||
},
|
||||
"doppler": {
|
||||
"hash": "sha256-TPWHqRpvyk1dtSbQySMOecq0AhN2VlSB+2naPIbvMHI=",
|
||||
@@ -498,13 +507,13 @@
|
||||
"vendorHash": null
|
||||
},
|
||||
"gitlab": {
|
||||
"hash": "sha256-tZJuXYRD6+E6Bhrn+cjeSCRAePgj/g+E8YTStwjZiSM=",
|
||||
"hash": "sha256-VOmBHM5h/ZEkCPbsVRRM/Ygkfv7Dom41nlqJ/5+aZ4M=",
|
||||
"homepage": "https://registry.terraform.io/providers/gitlabhq/gitlab",
|
||||
"owner": "gitlabhq",
|
||||
"repo": "terraform-provider-gitlab",
|
||||
"rev": "v17.11.0",
|
||||
"rev": "v18.0.0",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": "sha256-3URc3A1kkcVQ/riB2/THuIEiCq9MrifxgRL73cjsbDA="
|
||||
"vendorHash": "sha256-X0vbtUIKYzCeRD/BbMj3VPVAwx6d7gkbHV8j9JXlaFM="
|
||||
},
|
||||
"google": {
|
||||
"hash": "sha256-q/BFHpA3ig0QfB0mhJGqr/uQYs/SH5YX8QgWCyjcSio=",
|
||||
@@ -534,11 +543,11 @@
|
||||
"vendorHash": "sha256-fqVBnAivVekV+4tpkl+E6eNA3wi8mhLevJRCs3W7L2g="
|
||||
},
|
||||
"grafana": {
|
||||
"hash": "sha256-ZPejLOzShIW7BDlyYcFSV48uiA8XU15ziobHqtS7LW8=",
|
||||
"hash": "sha256-Nz+6l/sJog7Snzady4qQCooBwv6IZ+12RkFZ55Hka9w=",
|
||||
"homepage": "https://registry.terraform.io/providers/grafana/grafana",
|
||||
"owner": "grafana",
|
||||
"repo": "terraform-provider-grafana",
|
||||
"rev": "v3.25.0",
|
||||
"rev": "v3.25.1",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": "sha256-G5CiuQ0GPsJ7D+wlWQUAktT3DSgb2X7NL66c6U+9APU="
|
||||
},
|
||||
@@ -561,11 +570,11 @@
|
||||
"vendorHash": "sha256-C1MT4mA7ubh1mN4+HO0bwMpjVHjDIG6UXZI6gvXHFZE="
|
||||
},
|
||||
"hcloud": {
|
||||
"hash": "sha256-DSTxn4t6YWxRBimMlqkP1VLqqxk1Kox+h0u9i9rSdhc=",
|
||||
"hash": "sha256-/BcK9K/jNEU4r7mFc4rrhNnPlyH98UrDUCgIluY52fA=",
|
||||
"homepage": "https://registry.terraform.io/providers/hetznercloud/hcloud",
|
||||
"owner": "hetznercloud",
|
||||
"repo": "terraform-provider-hcloud",
|
||||
"rev": "v1.50.1",
|
||||
"rev": "v1.51.0",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": "sha256-jbNkhNSSO9jT20J6dVhBEbN9cwtNrvx5EUcyOZcMd4Y="
|
||||
},
|
||||
@@ -642,13 +651,13 @@
|
||||
"vendorHash": null
|
||||
},
|
||||
"ibm": {
|
||||
"hash": "sha256-MMVZnGQ8MWczkbMC9VUoRcplmIk4TdiahZ/ZSYhbQlM=",
|
||||
"hash": "sha256-5AYTRuZ9hhi5AgAT3woHTv3vMmqUUXUjZKZjaBRf9H8=",
|
||||
"homepage": "https://registry.terraform.io/providers/IBM-Cloud/ibm",
|
||||
"owner": "IBM-Cloud",
|
||||
"repo": "terraform-provider-ibm",
|
||||
"rev": "v1.78.1",
|
||||
"rev": "v1.78.4",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": "sha256-8P5GnDXY8n/NhSY0Oo/7CP7U7pH7f0Z0GfiFnicCxdo="
|
||||
"vendorHash": "sha256-ug5TAuOJCk2wmhhwLQLYXVL3xxODUum6oEK/8A6ojIA="
|
||||
},
|
||||
"icinga2": {
|
||||
"hash": "sha256-Y/Oq0aTzP+oSKPhHiHY9Leal4HJJm7TNDpcdqkUsCmk=",
|
||||
@@ -687,13 +696,13 @@
|
||||
"vendorHash": "sha256-Dd02Ikt51eh/FBEtswe8Qr6P5tgQFZJTKgO01gxPX3s="
|
||||
},
|
||||
"kafka": {
|
||||
"hash": "sha256-O8fD974eEmIgMAbLsENBkHiS1+2onx7OOrhnwv+cGoo=",
|
||||
"hash": "sha256-xFuNCHUE2r+NGsvLmD2W+d9oB6RjV/2o4sAxqTOJUtE=",
|
||||
"homepage": "https://registry.terraform.io/providers/Mongey/kafka",
|
||||
"owner": "Mongey",
|
||||
"repo": "terraform-provider-kafka",
|
||||
"rev": "v0.9.0",
|
||||
"rev": "v0.10.1",
|
||||
"spdx": "MIT",
|
||||
"vendorHash": "sha256-fp4r3Eh4EcMHK1F9mGr1iEQ/ZmI4+PbzsDjEK0AqXk8="
|
||||
"vendorHash": "sha256-wnyCBxqvmWfgR/MLRVcA/cXeq08qcuhSVIsSWYPTJGc="
|
||||
},
|
||||
"kafka-connect": {
|
||||
"hash": "sha256-XMGpK22Ww8swvfrnbClxjErVmkBKX3dxdlkjgNJHlCE=",
|
||||
@@ -813,13 +822,13 @@
|
||||
"vendorHash": "sha256-QxbZv6YMa5/I4bTeQBNdmG3EKtLEmstnH7HMiZzFJrI="
|
||||
},
|
||||
"migadu": {
|
||||
"hash": "sha256-k9qpSxww6zXemEWDqjlrjFmeeMtKK9kR1hj9+gUq9VI=",
|
||||
"hash": "sha256-WD9i0i8Jkl3aROcWHflc+FP4xOtBMsRvaHM+V40+Me0=",
|
||||
"homepage": "https://registry.terraform.io/providers/metio/migadu",
|
||||
"owner": "metio",
|
||||
"repo": "terraform-provider-migadu",
|
||||
"rev": "2025.5.15",
|
||||
"rev": "2025.5.22",
|
||||
"spdx": "0BSD",
|
||||
"vendorHash": "sha256-MjRVd/JlmHppdFG7k3pgNVWbCaEZuh5E591x/P6cT5o="
|
||||
"vendorHash": "sha256-c3rg9n3JL14kEZJTe3oIPiNM7AvG1QqtTnpX0P0JuMY="
|
||||
},
|
||||
"minio": {
|
||||
"hash": "sha256-loUcdsr5zFoOXIu0CLYKvutIVLYG0+DsuwPCxAeVMF8=",
|
||||
@@ -913,20 +922,20 @@
|
||||
"vendorHash": "sha256-LRIfxQGwG988HE5fftGl6JmBG7tTknvmgpm4Fu1NbWI="
|
||||
},
|
||||
"oci": {
|
||||
"hash": "sha256-fLeI4YdHZmRPILHeoEjwcNN9mVOq2zvdjSoQkIiwvdc=",
|
||||
"hash": "sha256-aV69aOYkHQwD8JVFC9zD+pV0Wwjx5ZqG1PoP20aED8o=",
|
||||
"homepage": "https://registry.terraform.io/providers/oracle/oci",
|
||||
"owner": "oracle",
|
||||
"repo": "terraform-provider-oci",
|
||||
"rev": "v7.0.0",
|
||||
"rev": "v7.2.0",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": null
|
||||
},
|
||||
"okta": {
|
||||
"hash": "sha256-vsOes4rBULwQ3JX5A7GBKTMvTpjb0CEOWqd6OaO3ujI=",
|
||||
"hash": "sha256-8dFl39q8GTLGFR2O7ZIstA957x6gkAxL0qauXUxVMcI=",
|
||||
"homepage": "https://registry.terraform.io/providers/okta/okta",
|
||||
"owner": "okta",
|
||||
"repo": "terraform-provider-okta",
|
||||
"rev": "v4.18.0",
|
||||
"rev": "v4.19.0",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": "sha256-5BkKjne3r3V8T+SkqjfHVEpXXK8sKTYMc23g1EaLoOE="
|
||||
},
|
||||
@@ -967,13 +976,13 @@
|
||||
"vendorHash": "sha256-HQVKblAm8H0Q5pbJdIVSMc5FLi3O9TV475yass6BraY="
|
||||
},
|
||||
"opentelekomcloud": {
|
||||
"hash": "sha256-nCtltzYV9yDYEkAuOJVdBlk11nSpdQtk/zlKEn81srs=",
|
||||
"hash": "sha256-v7nJcnVbxwf7khyjlSfVAyz0ZZEuIJNjjXpsIynNPZk=",
|
||||
"homepage": "https://registry.terraform.io/providers/opentelekomcloud/opentelekomcloud",
|
||||
"owner": "opentelekomcloud",
|
||||
"repo": "terraform-provider-opentelekomcloud",
|
||||
"rev": "v1.36.38",
|
||||
"rev": "v1.36.39",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": "sha256-Q02AnTFzEO5NES5rMQABuhwiLi5uZlzX4c06HQ+d9/A="
|
||||
"vendorHash": "sha256-rTyx5FuBzO4RZ3IefsWaVTSW5YtTBT95ZtP8aZJgoD8="
|
||||
},
|
||||
"openwrt": {
|
||||
"hash": "sha256-z78IceF2VJtiQpVqC+rTUDsph73LZawIK+az3rEhljA=",
|
||||
@@ -1138,13 +1147,13 @@
|
||||
"vendorHash": "sha256-Ry791h5AuYP03nex9nM8X5Mk6PeL7hNDbFyVRvVPJNE="
|
||||
},
|
||||
"scaleway": {
|
||||
"hash": "sha256-17BjGoIkKdMVVQMetx+ksQhLbTl/cCdC05HaB7Sai/4=",
|
||||
"hash": "sha256-rAbCLMA4u+bOXbmGDdM5wHIzPytwuX8HTOUgYQwLAdg=",
|
||||
"homepage": "https://registry.terraform.io/providers/scaleway/scaleway",
|
||||
"owner": "scaleway",
|
||||
"repo": "terraform-provider-scaleway",
|
||||
"rev": "v2.53.0",
|
||||
"rev": "v2.55.0",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": "sha256-1N9HByEI0TwI7rdg/OmMObwnb4Hx8oigv5A6hpF0TrY="
|
||||
"vendorHash": "sha256-SP92c/UhVpkThVWL4N2tTZjhwHjEo73/IJa0roXZKlE="
|
||||
},
|
||||
"secret": {
|
||||
"hash": "sha256-MmAnA/4SAPqLY/gYcJSTnEttQTsDd2kEdkQjQj6Bb+A=",
|
||||
@@ -1237,13 +1246,13 @@
|
||||
"vendorHash": "sha256-oEamCseBGmETqeBLiBHfh81oQNUHWfTrsegkFijvb20="
|
||||
},
|
||||
"spotinst": {
|
||||
"hash": "sha256-gRR0Ie27Wsc8Hf4u5gto2tkuZp/VoPbKBfDcJYN4W9A=",
|
||||
"hash": "sha256-ip+HG6nPd4sYyKDzggR5cfwaQQZI/C9GzT+PvGDO3Dk=",
|
||||
"homepage": "https://registry.terraform.io/providers/spotinst/spotinst",
|
||||
"owner": "spotinst",
|
||||
"repo": "terraform-provider-spotinst",
|
||||
"rev": "v1.219.0",
|
||||
"rev": "v1.220.0",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": "sha256-M6MkqX8iVeP9IpLSLfkl7cMDDtO1VLw1YpODd0zPJvU="
|
||||
"vendorHash": "sha256-w3Bg1FpMki8EhkVe1R8QWD91n8tooT+xIvlM50gbcSA="
|
||||
},
|
||||
"ssh": {
|
||||
"hash": "sha256-1UN5QJyjCuxs2vQYlSuz2jsu/HgGTxOoWWRcv4qcwow=",
|
||||
@@ -1273,20 +1282,20 @@
|
||||
"vendorHash": "sha256-9M1DsE/FPQK8TG7xCJWbU3HAJCK3p/7lxdzjO1oAfWs="
|
||||
},
|
||||
"sumologic": {
|
||||
"hash": "sha256-P/icRnqd24To3n/WCS666n3slQwt7eNUpt9aD7c9GGU=",
|
||||
"hash": "sha256-gTBgX1QHZz6qpizt2BP7BvE3j92q+dKhKHhP4bCTfvo=",
|
||||
"homepage": "https://registry.terraform.io/providers/SumoLogic/sumologic",
|
||||
"owner": "SumoLogic",
|
||||
"repo": "terraform-provider-sumologic",
|
||||
"rev": "v3.0.10",
|
||||
"rev": "v3.0.12",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": "sha256-S3SBp17+qqA64tWydD5DYc9KahycJ+qDrdXvFwu6Lbc="
|
||||
},
|
||||
"sysdig": {
|
||||
"hash": "sha256-fkMVPPKqUQdp/JSPByV3yuMaY3SKVy75u1ljAL9bEZc=",
|
||||
"hash": "sha256-oJ51syzDKX7ZO8EJ3Ug1JNRO34N0t4Y8CzAszc5apOM=",
|
||||
"homepage": "https://registry.terraform.io/providers/sysdiglabs/sysdig",
|
||||
"owner": "sysdiglabs",
|
||||
"repo": "terraform-provider-sysdig",
|
||||
"rev": "v1.56.1",
|
||||
"rev": "v1.56.3",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": "sha256-L+XwC7c4ph4lM0+BhHB9oi1R/Av8jlDcqHewOmtPU1s="
|
||||
},
|
||||
|
||||
@@ -10,13 +10,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "discordo";
|
||||
version = "0-unstable-2025-05-11";
|
||||
version = "0-unstable-2025-05-23";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ayn2op";
|
||||
repo = pname;
|
||||
rev = "232f4d469b67d746b9db067c0c73686dac87e938";
|
||||
hash = "sha256-k02oX7HAQ39UCm/hiS0cjibuZ/51sBTG1CnoP80e/mA=";
|
||||
rev = "af2b0995ba6f6f2df8937cf6a6d5bee3adbc0d0c";
|
||||
hash = "sha256-eBdPnpO9fZP7uq2/wVmeMu8Bf9UympsjUHTQlX2XKYw=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-gEwTpt/NPN1+YpTBmW8F34UotowrOcA0mfFgBdVFiTA=";
|
||||
|
||||
@@ -1,142 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
stdenvNoCC,
|
||||
rustPlatform,
|
||||
fetchFromGitHub,
|
||||
buildGoModule,
|
||||
makeWrapper,
|
||||
nodejs,
|
||||
pnpm,
|
||||
esbuild,
|
||||
perl,
|
||||
pkg-config,
|
||||
glib,
|
||||
webkitgtk_4_0,
|
||||
libayatana-appindicator,
|
||||
cairo,
|
||||
openssl,
|
||||
}:
|
||||
|
||||
let
|
||||
version = "4.99.16";
|
||||
geph-meta = with lib; {
|
||||
description = "Modular Internet censorship circumvention system designed specifically to deal with national filtering";
|
||||
homepage = "https://geph.io";
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ penalty1083 ];
|
||||
};
|
||||
in
|
||||
{
|
||||
cli = rustPlatform.buildRustPackage rec {
|
||||
pname = "geph4-client";
|
||||
inherit version;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "geph-official";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-6YWPsSRIZpvVCIGZ1z7srobDvVzLr0o2jBcB/7kbK7I=";
|
||||
};
|
||||
|
||||
useFetchCargoVendor = true;
|
||||
cargoHash = "sha256-igIYTlI3hqvlOTgdwouA9YussP9h0pOHUUTCjA2LE5U=";
|
||||
|
||||
nativeBuildInputs = [ perl ];
|
||||
|
||||
meta = geph-meta // {
|
||||
license = with lib.licenses; [ gpl3Only ];
|
||||
};
|
||||
};
|
||||
|
||||
gui = stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "geph-gui";
|
||||
inherit version;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "geph-official";
|
||||
repo = "gephgui-pkg";
|
||||
rev = "9f0d5c689c2cae67a4750a68295676f449724a98";
|
||||
hash = "sha256-/aHd1EDrFp1kXen5xRCCl8LVlMVH0pY8buILZri81II=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
gephgui-wry = rustPlatform.buildRustPackage {
|
||||
pname = "gephgui-wry";
|
||||
inherit (finalAttrs) version src;
|
||||
|
||||
sourceRoot = "${finalAttrs.src.name}/gephgui-wry";
|
||||
|
||||
useFetchCargoVendor = true;
|
||||
cargoHash = "sha256-pCj4SulUVEC4QTPBrPQBn5xJ+sHPs6KfjsdVRcsRapY=";
|
||||
|
||||
pnpmDeps = pnpm.fetchDeps {
|
||||
inherit (finalAttrs) pname version src;
|
||||
sourceRoot = "${finalAttrs.src.name}/gephgui-wry/gephgui";
|
||||
hash = "sha256-0MGlsLEgugQ1wEz07ROIwkanTa8PSKwIaxNahyS1014=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
pnpm.configHook
|
||||
makeWrapper
|
||||
nodejs
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
glib
|
||||
webkitgtk_4_0
|
||||
libayatana-appindicator
|
||||
cairo
|
||||
openssl
|
||||
];
|
||||
|
||||
ESBUILD_BINARY_PATH = "${lib.getExe (
|
||||
esbuild.override {
|
||||
buildGoModule =
|
||||
args:
|
||||
buildGoModule (
|
||||
args
|
||||
// rec {
|
||||
version = "0.15.10";
|
||||
src = fetchFromGitHub {
|
||||
owner = "evanw";
|
||||
repo = "esbuild";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-DebmLtgPrla+1UcvOHMnWmxa/ZqrugeRRKXIiJ9LYDk=";
|
||||
};
|
||||
vendorHash = "sha256-+BfxCyg0KkDQpHt/wycy/8CTG6YBA/VJvJFhhzUnSiQ=";
|
||||
}
|
||||
);
|
||||
}
|
||||
)}";
|
||||
|
||||
pnpmRoot = "gephgui";
|
||||
|
||||
preBuild = ''
|
||||
pushd gephgui
|
||||
pnpm build
|
||||
popd
|
||||
'';
|
||||
};
|
||||
|
||||
dontBuild = true;
|
||||
|
||||
installPhase = ''
|
||||
install -Dt $out/bin ${finalAttrs.gephgui-wry}/bin/gephgui-wry
|
||||
install -d $out/share/icons/hicolor
|
||||
for i in '16' '32' '64' '128' '256'
|
||||
do
|
||||
name=''${i}x''${i}
|
||||
dir=$out/share/icons/hicolor
|
||||
mkdir -p $dir
|
||||
mv flatpak/icons/$name $dir
|
||||
done
|
||||
install -Dt $out/share/applications flatpak/icons/io.geph.GephGui.desktop
|
||||
sed -i -e '/StartupWMClass/s/=.*/=gephgui-wry/' $out/share/applications/io.geph.GephGui.desktop
|
||||
'';
|
||||
|
||||
meta = geph-meta // {
|
||||
license = with lib.licenses; [ unfree ];
|
||||
};
|
||||
});
|
||||
}
|
||||
@@ -10,7 +10,7 @@ let
|
||||
if stdenv.hostPlatform.isLinux then
|
||||
{
|
||||
stable = "0.0.95";
|
||||
ptb = "0.0.144";
|
||||
ptb = "0.0.146";
|
||||
canary = "0.0.687";
|
||||
development = "0.0.75";
|
||||
}
|
||||
@@ -30,7 +30,7 @@ let
|
||||
};
|
||||
ptb = fetchurl {
|
||||
url = "https://ptb.dl2.discordapp.net/apps/linux/${version}/discord-ptb-${version}.tar.gz";
|
||||
hash = "sha256-URTBQ2YzkC8p7524RqR1OCqI3WkvtsClvd91RIWEQqU=";
|
||||
hash = "sha256-bcQsz6hhgtUD2j0MD3rEdFhsGJMQY1+yo19y/lLX+j8=";
|
||||
};
|
||||
canary = fetchurl {
|
||||
url = "https://canary.dl2.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz";
|
||||
|
||||
@@ -66,6 +66,10 @@
|
||||
moonlight,
|
||||
withTTS ? true,
|
||||
enableAutoscroll ? false,
|
||||
# Disabling this would normally break Discord.
|
||||
# The intended use-case for this is when SKIP_HOST_UPDATE is enabled via other means,
|
||||
# for example if a settings.json is linked declaratively (e.g., with home-manager).
|
||||
disableUpdates ? true,
|
||||
}:
|
||||
assert lib.assertMsg (
|
||||
!(withMoonlight && withVencord)
|
||||
@@ -180,7 +184,7 @@ stdenv.mkDerivation rec {
|
||||
${lib.strings.optionalString enableAutoscroll "--add-flags \"--enable-blink-features=MiddleClickAutoscroll\""} \
|
||||
--prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \
|
||||
--prefix LD_LIBRARY_PATH : ${libPath}:$out/opt/${binaryName} \
|
||||
--run "${lib.getExe disableBreakingUpdates}"
|
||||
${lib.strings.optionalString disableUpdates "--run ${lib.getExe disableBreakingUpdates}"}
|
||||
|
||||
ln -s $out/opt/${binaryName}/${binaryName} $out/bin/
|
||||
# Without || true the install would fail on case-insensitive filesystems
|
||||
|
||||
@@ -10,8 +10,8 @@
|
||||
boost,
|
||||
libopus,
|
||||
libsndfile,
|
||||
speexdsp,
|
||||
protobuf,
|
||||
speex,
|
||||
libcap,
|
||||
alsa-lib,
|
||||
python3,
|
||||
@@ -22,16 +22,21 @@
|
||||
libogg,
|
||||
libvorbis,
|
||||
stdenv_32bit,
|
||||
alsaSupport ? stdenv.hostPlatform.isLinux,
|
||||
iceSupport ? true,
|
||||
zeroc-ice,
|
||||
jackSupport ? false,
|
||||
libjack2,
|
||||
pipewireSupport ? true,
|
||||
pipewireSupport ? stdenv.hostPlatform.isLinux,
|
||||
pipewire,
|
||||
pulseSupport ? true,
|
||||
libpulseaudio,
|
||||
speechdSupport ? false,
|
||||
speechd-minimal,
|
||||
microsoft-gsl,
|
||||
nlohmann_json,
|
||||
xar,
|
||||
makeWrapper,
|
||||
}:
|
||||
|
||||
let
|
||||
@@ -52,18 +57,24 @@ let
|
||||
qt5.qttools
|
||||
] ++ (overrides.nativeBuildInputs or [ ]);
|
||||
|
||||
buildInputs = [
|
||||
avahi
|
||||
boost
|
||||
poco
|
||||
protobuf
|
||||
] ++ (overrides.buildInputs or [ ]);
|
||||
buildInputs =
|
||||
[
|
||||
boost
|
||||
poco
|
||||
protobuf
|
||||
microsoft-gsl
|
||||
nlohmann_json
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isLinux [ avahi ]
|
||||
++ (overrides.buildInputs or [ ]);
|
||||
|
||||
cmakeFlags = [
|
||||
"-D g15=OFF"
|
||||
"-D CMAKE_CXX_STANDARD=17" # protobuf >22 requires C++ 17
|
||||
"-D BUILD_NUMBER=${lib.versions.patch source.version}"
|
||||
] ++ (overrides.configureFlags or [ ]);
|
||||
"-D bundled-gsl=OFF"
|
||||
"-D bundled-json=OFF"
|
||||
] ++ (overrides.cmakeFlags or [ ]);
|
||||
|
||||
preConfigure = ''
|
||||
patchShebangs scripts
|
||||
@@ -79,7 +90,7 @@ let
|
||||
felixsinger
|
||||
lilacious
|
||||
];
|
||||
platforms = platforms.linux;
|
||||
platforms = platforms.linux ++ (overrides.platforms or [ ]);
|
||||
};
|
||||
}
|
||||
);
|
||||
@@ -89,7 +100,13 @@ let
|
||||
generic {
|
||||
type = "mumble";
|
||||
|
||||
nativeBuildInputs = [ qt5.qttools ];
|
||||
platforms = lib.platforms.darwin;
|
||||
nativeBuildInputs =
|
||||
[ qt5.qttools ]
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
makeWrapper
|
||||
];
|
||||
|
||||
buildInputs =
|
||||
[
|
||||
flac
|
||||
@@ -97,36 +114,71 @@ let
|
||||
libopus
|
||||
libsndfile
|
||||
libvorbis
|
||||
speexdsp
|
||||
qt5.qtsvg
|
||||
rnnoise
|
||||
speex
|
||||
]
|
||||
++ lib.optional (!jackSupport) alsa-lib
|
||||
++ lib.optional (!jackSupport && alsaSupport) alsa-lib
|
||||
++ lib.optional jackSupport libjack2
|
||||
++ lib.optional speechdSupport speechd-minimal
|
||||
++ lib.optional pulseSupport libpulseaudio
|
||||
++ lib.optional pipewireSupport pipewire;
|
||||
++ lib.optional pipewireSupport pipewire
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
xar
|
||||
];
|
||||
|
||||
configureFlags =
|
||||
[
|
||||
"-D server=OFF"
|
||||
"-D bundled-celt=ON"
|
||||
"-D bundled-opus=OFF"
|
||||
"-D bundled-speex=OFF"
|
||||
"-D bundle-qt-translations=OFF"
|
||||
"-D update=OFF"
|
||||
"-D overlay-xcompile=OFF"
|
||||
"-D oss=OFF"
|
||||
"-D warnings-as-errors=OFF" # conversion error workaround
|
||||
]
|
||||
++ lib.optional (!speechdSupport) "-D speechd=OFF"
|
||||
++ lib.optional (!pulseSupport) "-D pulseaudio=OFF"
|
||||
++ lib.optional (!pipewireSupport) "-D pipewire=OFF"
|
||||
++ lib.optional jackSupport "-D alsa=OFF -D jackaudio=ON";
|
||||
cmakeFlags = [
|
||||
"-D server=OFF"
|
||||
"-D bundled-speex=OFF"
|
||||
"-D bundle-qt-translations=OFF"
|
||||
"-D update=OFF"
|
||||
"-D overlay-xcompile=OFF"
|
||||
"-D oss=OFF"
|
||||
"-D warnings-as-errors=OFF" # conversion error workaround
|
||||
# building the overlay on darwin does not work in nipxkgs (yet)
|
||||
# also see the patch below to disable scripts the build option misses
|
||||
# see https://github.com/mumble-voip/mumble/issues/6816
|
||||
(lib.cmakeBool "overlay" (!stdenv.hostPlatform.isDarwin))
|
||||
(lib.cmakeBool "speechd" speechdSupport)
|
||||
(lib.cmakeBool "pulseaudio" pulseSupport)
|
||||
(lib.cmakeBool "pipewire" pipewireSupport)
|
||||
(lib.cmakeBool "jackaudio" jackSupport)
|
||||
(lib.cmakeBool "alsa" (!jackSupport && alsaSupport))
|
||||
];
|
||||
|
||||
env.NIX_CFLAGS_COMPILE = lib.optionalString speechdSupport "-I${speechd-minimal}/include/speech-dispatcher";
|
||||
|
||||
postFixup = ''
|
||||
patches = [
|
||||
./disable-overlay-build.patch
|
||||
./fix-plugin-copy.patch
|
||||
# Can be removed before the next update of Mumble, as that fix was upstreamed
|
||||
# fix version display in MacOS Finder
|
||||
(fetchpatch {
|
||||
url = "https://github.com/mumble-voip/mumble/commit/fbd21bd422367bed19f801bf278562f567cbb8b7.patch";
|
||||
sha256 = "sha256-qFhC2j/cOWzAhs+KTccDIdcgFqfr4y4VLjHiK458Ucs=";
|
||||
})
|
||||
];
|
||||
|
||||
postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||
# The build erraneously marks the *.dylib as executable
|
||||
# which causes the qt-hook to wrap it, which then prevents the app from loading it
|
||||
chmod -x $out/lib/mumble/plugins/*.dylib
|
||||
|
||||
# Post-processing for the app bundle
|
||||
$NIX_BUILD_TOP/source/macx/scripts/osxdist.py \
|
||||
--source-dir=$NIX_BUILD_TOP/source/ \
|
||||
--binary-dir=$out \
|
||||
--only-appbundle \
|
||||
--version "${source.version}"
|
||||
|
||||
mkdir -p $out/Applications $out/bin
|
||||
mv $out/Mumble.app $out/Applications/Mumble.app
|
||||
|
||||
# ensure that the app can be started from the shell
|
||||
makeWrapper $out/Applications/Mumble.app/Contents/MacOS/mumble $out/bin/mumble
|
||||
'';
|
||||
|
||||
postFixup = lib.optionalString stdenv.hostPlatform.isLinux ''
|
||||
wrapProgram $out/bin/mumble \
|
||||
--prefix LD_LIBRARY_PATH : "${
|
||||
lib.makeLibraryPath (
|
||||
@@ -134,6 +186,7 @@ let
|
||||
)
|
||||
}"
|
||||
'';
|
||||
|
||||
} source;
|
||||
|
||||
server =
|
||||
@@ -141,14 +194,13 @@ let
|
||||
generic {
|
||||
type = "murmur";
|
||||
|
||||
configureFlags =
|
||||
cmakeFlags =
|
||||
[
|
||||
"-D client=OFF"
|
||||
(lib.cmakeBool "ice" iceSupport)
|
||||
]
|
||||
++ lib.optional (!iceSupport) "-D ice=OFF"
|
||||
++ lib.optionals iceSupport [
|
||||
"-D Ice_HOME=${lib.getDev zeroc-ice};${lib.getLib zeroc-ice}"
|
||||
"-D CMAKE_PREFIX_PATH=${lib.getDev zeroc-ice};${lib.getLib zeroc-ice}"
|
||||
"-D Ice_SLICE_DIR=${lib.getDev zeroc-ice}/share/ice/slice"
|
||||
];
|
||||
|
||||
@@ -161,7 +213,7 @@ let
|
||||
stdenv = stdenv_32bit;
|
||||
type = "mumble-overlay";
|
||||
|
||||
configureFlags = [
|
||||
cmakeFlags = [
|
||||
"-D server=OFF"
|
||||
"-D client=OFF"
|
||||
"-D overlay=ON"
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
diff --git a/macx/scripts/osxdist.py b/macx/scripts/osxdist.py
|
||||
index bdc7fcbd2..2114caf37 100755
|
||||
--- a/macx/scripts/osxdist.py
|
||||
+++ b/macx/scripts/osxdist.py
|
||||
@@ -128,7 +128,7 @@ class AppBundle(object):
|
||||
shutil.copy(rsrc, os.path.join(rsrcpath, b))
|
||||
|
||||
# Extras
|
||||
- shutil.copy(os.path.join(options.binary_dir, 'MumbleOverlay.pkg'), os.path.join(rsrcpath, 'MumbleOverlay.pkg'))
|
||||
+ # shutil.copy(os.path.join(options.binary_dir, 'MumbleOverlay.pkg'), os.path.join(rsrcpath, 'MumbleOverlay.pkg'))
|
||||
|
||||
def copy_codecs(self):
|
||||
'''
|
||||
@@ -275,7 +276,7 @@ def package_client():
|
||||
title = 'Mumble %s' % ver
|
||||
|
||||
# Fix overlay installer package
|
||||
- create_overlay_package()
|
||||
+ # create_overlay_package()
|
||||
if options.only_overlay:
|
||||
sys.exit(0)
|
||||
@@ -0,0 +1,13 @@
|
||||
diff --git a/macx/scripts/osxdist.py b/macx/scripts/osxdist.py
|
||||
index bdc7fcbd2..2114caf37 100755
|
||||
--- a/macx/scripts/osxdist.py
|
||||
+++ b/macx/scripts/osxdist.py
|
||||
@@ -151,7 +151,7 @@ class AppBundle(object):
|
||||
dst = os.path.join(self.bundle, 'Contents', 'Plugins')
|
||||
if not os.path.exists(dst):
|
||||
os.makedirs(dst)
|
||||
- for plugin in glob.glob(os.path.join(options.binary_dir, 'plugins') + '/*.dylib'):
|
||||
+ for plugin in glob.glob(os.path.join(options.binary_dir, 'lib/mumble/plugins') + '/*.dylib'):
|
||||
shutil.copy(plugin, dst)
|
||||
|
||||
def update_plist(self):
|
||||
@@ -11,9 +11,9 @@ in
|
||||
} { };
|
||||
|
||||
sublime-merge-dev = common {
|
||||
buildVersion = "2105";
|
||||
buildVersion = "2108";
|
||||
dev = true;
|
||||
aarch64sha256 = "PpiY2nD4fexo9zmKeHQ9KYnzB8sWkVa4YqO2q3C/abE=";
|
||||
x64sha256 = "sUyI6ukNZjvszuKDL5fKvIpf3llZn+qQRg7WSdjw4rs=";
|
||||
aarch64sha256 = "v81Xvp0tsXfbBkf8W53iC1YIcT5XJUYmXl6CWNdz6Hw=";
|
||||
x64sha256 = "nIwJIWMecBZgfaCFs0/iFHJG9k/3lAqsliCsfvnhpKY=";
|
||||
} { };
|
||||
}
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
{
|
||||
lib,
|
||||
rel,
|
||||
buildKodiBinaryAddon,
|
||||
fetchFromGitHub,
|
||||
pkg-config,
|
||||
glm,
|
||||
libGL,
|
||||
}:
|
||||
buildKodiBinaryAddon rec {
|
||||
pname = "screensaver-asteroids";
|
||||
namespace = "screensaver.asteroids";
|
||||
version = "22.0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "xbmc";
|
||||
repo = namespace;
|
||||
rev = "${version}-${rel}";
|
||||
hash = "sha256-Ri9dgdhJbHybdUkZeRE7X7SQMaV2JZCm7znAyDEa470=";
|
||||
};
|
||||
|
||||
extraNativeBuildInputs = [ pkg-config ];
|
||||
extraBuildInputs = [
|
||||
glm
|
||||
libGL
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/xbmc/screensaver.asteroids";
|
||||
description = "A screensaver that plays Asteroids";
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.all;
|
||||
teams = [ teams.kodi ];
|
||||
};
|
||||
}
|
||||
@@ -9,14 +9,14 @@
|
||||
|
||||
buildLua (finalAttrs: {
|
||||
pname = "uosc";
|
||||
version = "5.8.0";
|
||||
version = "5.9.2";
|
||||
scriptPath = "src/uosc";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tomasklaen";
|
||||
repo = "uosc";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-O8GLYsFoDQmYvHWLwfWo1zcQvCsV2RqAe/m+R5cOITI=";
|
||||
hash = "sha256-tBSMLzwiKAXdbvyI80ihl0x/ZcDrNd4e7r1g7+CrLgQ=";
|
||||
};
|
||||
passthru.updateScript = gitUpdater { };
|
||||
|
||||
|
||||
@@ -8,13 +8,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "obs-move-transition";
|
||||
version = "3.1.2";
|
||||
version = "3.1.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "exeldro";
|
||||
repo = "obs-move-transition";
|
||||
rev = version;
|
||||
sha256 = "sha256-BCivYK18T4b+lRo6Qf9qFwmjAyjCPZDekQVi03QBLHc=";
|
||||
sha256 = "sha256-8H0CJvJDrB7aP52VXsZ/GuTHQw/QJKLSHnKzhT1drU4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
@@ -1,88 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
fetchurl,
|
||||
pkg-config,
|
||||
cmake,
|
||||
python3,
|
||||
mkDerivation,
|
||||
libX11,
|
||||
libXrandr,
|
||||
qtbase,
|
||||
qtwebchannel,
|
||||
qtwebengine,
|
||||
qtx11extras,
|
||||
libvdpau,
|
||||
SDL2,
|
||||
mpv,
|
||||
libGL,
|
||||
}:
|
||||
let
|
||||
# During compilation, a CMake bundle is downloaded from `artifacts.plex.tv`,
|
||||
# which then downloads a handful of web client-related files. To enable
|
||||
# sandboxed builds, we manually download them and save them so these files
|
||||
# are fetched ahead-of-time instead of during the CMake build. To update
|
||||
# plex-media-player use the update.sh script, so the versions and hashes
|
||||
# for these files are also updated!
|
||||
depSrcs = import ./deps.nix { inherit fetchurl; };
|
||||
in
|
||||
mkDerivation rec {
|
||||
pname = "plex-media-player";
|
||||
version = "2.58.1";
|
||||
vsnHash = "ae73e074";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "plexinc";
|
||||
repo = "plex-media-player";
|
||||
rev = "v${version}-${vsnHash}";
|
||||
sha256 = "1q20fdp5d0blb0q6p2357bwdc2g65cadkgdp4w533ij2nyaxydjd";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
cmake
|
||||
python3
|
||||
];
|
||||
buildInputs = [
|
||||
libX11
|
||||
libXrandr
|
||||
qtbase
|
||||
qtwebchannel
|
||||
qtwebengine
|
||||
qtx11extras
|
||||
libvdpau
|
||||
SDL2
|
||||
mpv
|
||||
libGL
|
||||
];
|
||||
|
||||
preConfigure = with depSrcs; ''
|
||||
mkdir -p build/dependencies
|
||||
ln -s ${webClient} build/dependencies/buildid-${webClientBuildId}.cmake
|
||||
ln -s ${webClientDesktopHash} build/dependencies/web-client-desktop-${webClientDesktopBuildId}.tar.xz.sha1
|
||||
ln -s ${webClientDesktop} build/dependencies/web-client-desktop-${webClientDesktopBuildId}.tar.xz
|
||||
ln -s ${webClientTvHash} build/dependencies/web-client-tv-${webClientTvBuildId}.tar.xz.sha1
|
||||
ln -s ${webClientTv} build/dependencies/web-client-tv-${webClientTvBuildId}.tar.xz
|
||||
'';
|
||||
|
||||
cmakeBuildType = "RelWithDebInfo";
|
||||
|
||||
cmakeFlags = [ "-DQTROOT=${qtbase}" ];
|
||||
|
||||
# plexmediaplayer currently segfaults under wayland
|
||||
qtWrapperArgs = [
|
||||
"--set"
|
||||
"QT_QPA_PLATFORM"
|
||||
"xcb"
|
||||
];
|
||||
|
||||
passthru.updateScript = ./update.sh;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Streaming media player for Plex";
|
||||
license = licenses.gpl2;
|
||||
maintainers = with maintainers; [ b4dm4n ];
|
||||
homepage = "https://plex.tv";
|
||||
mainProgram = "plexmediaplayer";
|
||||
};
|
||||
}
|
||||
-28
@@ -1,28 +0,0 @@
|
||||
{ fetchurl }:
|
||||
|
||||
rec {
|
||||
webClientBuildId = "183-045db5be50e175";
|
||||
webClientDesktopBuildId = "4.29.2-e50e175";
|
||||
webClientTvBuildId = "4.29.6-045db5b";
|
||||
|
||||
webClient = fetchurl {
|
||||
url = "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/buildid.cmake";
|
||||
sha256 = "1xsacy1xb8a9rfdrd7lvx7n3hd0cf2c3mgmg9wl18jvwnqxyac83";
|
||||
};
|
||||
webClientDesktopHash = fetchurl {
|
||||
url = "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-desktop-${webClientDesktopBuildId}.tar.xz.sha1";
|
||||
sha256 = "07spxyhrg45ppa2zjn3ri4qvi6qimlmq6wmh492r3jkrwd71rxgf";
|
||||
};
|
||||
webClientDesktop = fetchurl {
|
||||
url = "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-desktop-${webClientDesktopBuildId}.tar.xz";
|
||||
sha256 = "1zll79hpgx8fghx228li9qairfd637yf8rhvjzdgpq4dvn21fv65";
|
||||
};
|
||||
webClientTvHash = fetchurl {
|
||||
url = "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-tv-${webClientTvBuildId}.tar.xz.sha1";
|
||||
sha256 = "1zzfw2g76wqrxrx9kck5q79if78z91wn3awj703kz9sgxi4bkjsk";
|
||||
};
|
||||
webClientTv = fetchurl {
|
||||
url = "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-tv-${webClientTvBuildId}.tar.xz";
|
||||
sha256 = "1f1zvrr3c0w37gvl78blg9rgxxi64nc4iv5vd87qbysfh1vpsjz0";
|
||||
};
|
||||
}
|
||||
@@ -1,71 +0,0 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p curl common-updater-scripts nix-prefetch-scripts jq
|
||||
|
||||
set -xeuo pipefail
|
||||
|
||||
nixpkgs="$(git rev-parse --show-toplevel)"
|
||||
|
||||
oldVersion="$(nix-instantiate --eval -E "with import $nixpkgs {}; plex-media-player.version or (builtins.parseDrvName plex-media-player.name).version" | tr -d '"')"
|
||||
latestTag="$(curl -s https://api.github.com/repos/plexinc/plex-media-player/tags | jq -r '.[] | .name' | sort --version-sort | tail -1)"
|
||||
latestVersion="$(expr $latestTag : 'v\(.*\)-.*')"
|
||||
latestHash="$(expr $latestTag : 'v.*-\(.*\)')"
|
||||
|
||||
if [ ! "$oldVersion" = "$latestVersion" ]; then
|
||||
# update default.nix with the new version and hash
|
||||
expectedHash=$(nix-prefetch-git --url https://github.com/plexinc/plex-media-player.git --rev $latestTag --quiet | jq -r '.sha256')
|
||||
update-source-version plex-media-player --version-key=vsnHash "${latestHash}" 0000
|
||||
update-source-version plex-media-player "${latestVersion}" $expectedHash
|
||||
|
||||
# extract the webClientBuildId from the source folder
|
||||
src="$(nix-build --no-out-link $nixpkgs -A plex-media-player.src)"
|
||||
webClientBuildId="$(grep 'set(WEB_CLIENT_BUILD_ID' $src/CMakeModules/WebClient.cmake | cut -d' ' -f2 | tr -d ')')"
|
||||
|
||||
# retreive the included cmake file and hash
|
||||
{ read -r webClientBuildIdHash; read -r webClientBuildIdPath; } < \
|
||||
<(nix-prefetch-url --print-path "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/buildid.cmake")
|
||||
webClientDesktopBuildId="$(grep 'set(DESKTOP_VERSION' $webClientBuildIdPath | cut -d' ' -f2 | tr -d ')')"
|
||||
webClientTvBuildId="$(grep 'set(TV_VERSION' $webClientBuildIdPath | cut -d' ' -f2 | tr -d ')')"
|
||||
|
||||
# get the hashes for the other files
|
||||
webClientDesktopHash="$(nix-prefetch-url "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-desktop-${webClientDesktopBuildId}.tar.xz.sha1")"
|
||||
webClientDesktop="$(nix-prefetch-url "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-desktop-${webClientDesktopBuildId}.tar.xz")"
|
||||
webClientTvHash="$(nix-prefetch-url "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-tv-${webClientTvBuildId}.tar.xz.sha1")"
|
||||
webClientTv="$(nix-prefetch-url "https://artifacts.plex.tv/web-client-pmp/${webClientBuildId}/web-client-tv-${webClientTvBuildId}.tar.xz")"
|
||||
|
||||
# update deps.nix
|
||||
cat > $nixpkgs/pkgs/applications/video/plex-media-player/deps.nix <<EOF
|
||||
{ fetchurl }:
|
||||
|
||||
rec {
|
||||
webClientBuildId = "${webClientBuildId}";
|
||||
webClientDesktopBuildId = "${webClientDesktopBuildId}";
|
||||
webClientTvBuildId = "${webClientTvBuildId}";
|
||||
|
||||
webClient = fetchurl {
|
||||
url = "https://artifacts.plex.tv/web-client-pmp/\${webClientBuildId}/buildid.cmake";
|
||||
sha256 = "${webClientBuildIdHash}";
|
||||
};
|
||||
webClientDesktopHash = fetchurl {
|
||||
url = "https://artifacts.plex.tv/web-client-pmp/\${webClientBuildId}/web-client-desktop-\${webClientDesktopBuildId}.tar.xz.sha1";
|
||||
sha256 = "${webClientDesktopHash}";
|
||||
};
|
||||
webClientDesktop = fetchurl {
|
||||
url = "https://artifacts.plex.tv/web-client-pmp/\${webClientBuildId}/web-client-desktop-\${webClientDesktopBuildId}.tar.xz";
|
||||
sha256 = "${webClientDesktop}";
|
||||
};
|
||||
webClientTvHash = fetchurl {
|
||||
url = "https://artifacts.plex.tv/web-client-pmp/\${webClientBuildId}/web-client-tv-\${webClientTvBuildId}.tar.xz.sha1";
|
||||
sha256 = "${webClientTvHash}";
|
||||
};
|
||||
webClientTv = fetchurl {
|
||||
url = "https://artifacts.plex.tv/web-client-pmp/\${webClientBuildId}/web-client-tv-\${webClientTvBuildId}.tar.xz";
|
||||
sha256 = "${webClientTv}";
|
||||
};
|
||||
}
|
||||
EOF
|
||||
|
||||
git add "$nixpkgs"/pkgs/applications/video/plex-media-player/{default,deps}.nix
|
||||
git commit -m "plex-media-player: ${oldVersion} -> ${latestVersion}"
|
||||
else
|
||||
echo "plex-media-player is already up-to-date"
|
||||
fi
|
||||
@@ -17,13 +17,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "cri-o";
|
||||
version = "1.32.4";
|
||||
version = "1.33.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cri-o";
|
||||
repo = "cri-o";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-zMSGXRJvFPlbJAnrdHMQYLPkS138r5/2/gyJhhoytgs=";
|
||||
hash = "sha256-SM+68ZQjmEkDNW+KSHpxDJ3ADAk+euIkbQokp86Fm+I=";
|
||||
};
|
||||
vendorHash = null;
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
dnsutils,
|
||||
iproute2,
|
||||
wirelesstools,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
let
|
||||
@@ -32,13 +33,13 @@ in
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "dwm-status";
|
||||
version = "1.9.0";
|
||||
version = "1.10.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Gerschtli";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-OFwI4evwbXLO4ufjrh5SZia79bwbAKVoSm/IPCDku68=";
|
||||
tag = version;
|
||||
hash = "sha256-982JFYZroskKppAOZjBWOFt624FfRjhXpYN57s/cM50=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -53,19 +54,24 @@ rustPlatform.buildRustPackage rec {
|
||||
];
|
||||
|
||||
useFetchCargoVendor = true;
|
||||
cargoHash = "sha256-G31p8iVRUODD4hUssXaOqEOUTW+C+GZMy/L/tgumDtA=";
|
||||
cargoHash = "sha256-2/zzE6JzhqeBYLiRkx5ELaW150rk1bMTrpxSw/wxNes=";
|
||||
|
||||
postInstall = lib.optionalString (bins != [ ]) ''
|
||||
wrapProgram $out/bin/dwm-status --prefix "PATH" : "${lib.makeBinPath bins}"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
description = "Highly performant and configurable DWM status service";
|
||||
homepage = "https://github.com/Gerschtli/dwm-status";
|
||||
changelog = "https://github.com/Gerschtli/dwm-status/blob/master/CHANGELOG.md";
|
||||
license = with licenses; [ mit ];
|
||||
maintainers = with maintainers; [ gerschtli ];
|
||||
changelog = "https://github.com/Gerschtli/dwm-status/blob/${src.rev}/CHANGELOG.md";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [
|
||||
gepbird
|
||||
gerschtli
|
||||
];
|
||||
mainProgram = "dwm-status";
|
||||
platforms = platforms.linux;
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -28,13 +28,13 @@ let
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "adaptivecpp";
|
||||
version = "24.10.0";
|
||||
version = "25.02.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "AdaptiveCpp";
|
||||
repo = "AdaptiveCpp";
|
||||
rev = "v${finalAttrs.version}";
|
||||
sha256 = "sha256-ZwHDiwv1ybC+2UhiOe2f7fnfqcul+CD9Uta8PT9ICr4=";
|
||||
sha256 = "sha256-vXfw8+xn3/DYxUKp3QGdQ8sEbDwyk+8jDCyuvQOXigc=";
|
||||
};
|
||||
|
||||
# do not use old FindCUDA cmake module
|
||||
|
||||
@@ -8,38 +8,40 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "afterburn";
|
||||
version = "5.7.0";
|
||||
version = "5.8.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "coreos";
|
||||
repo = "afterburn";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-j2eQUro0Rx1axBAaZDNICRrkygb4JAyxVAER/5BXXLY=";
|
||||
sha256 = "sha256-hlcUtEc0uWFolCt+mZd7f68PJPa+i/mv+2aJh4Vhmsw=";
|
||||
};
|
||||
|
||||
useFetchCargoVendor = true;
|
||||
cargoHash = "sha256-xA5hp7a4DFMh8Xrh2ft94s6aNjORKtyCuNy4GgJbSsw=";
|
||||
cargoHash = "sha256-Wn4Np1rwHh2sL1sqKalJrIDgMffxJgD1C2QOAR8bDRo=";
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ openssl ];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace ./systemd/afterburn-checkin.service --replace /usr/bin $out/bin
|
||||
substituteInPlace ./systemd/afterburn-firstboot-checkin.service --replace /usr/bin $out/bin
|
||||
substituteInPlace ./systemd/afterburn-sshkeys@.service.in --replace /usr/bin $out/bin
|
||||
substituteInPlace ./systemd/afterburn.service --replace /usr/bin $out/bin
|
||||
substituteInPlace \
|
||||
./systemd/afterburn-checkin.service \
|
||||
./systemd/afterburn-firstboot-checkin.service \
|
||||
./systemd/afterburn-sshkeys@.service.in \
|
||||
./systemd/afterburn.service \
|
||||
--replace-fail /usr/bin "$out/bin"
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
DEFAULT_INSTANCE=root PREFIX= DESTDIR=$out make install-units
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/coreos/ignition";
|
||||
meta = {
|
||||
homepage = "https://github.com/coreos/afterburn";
|
||||
description = "One-shot cloud provider agent";
|
||||
license = licenses.asl20;
|
||||
maintainers = [ maintainers.arianvp ];
|
||||
platforms = platforms.linux;
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ arianvp ];
|
||||
platforms = lib.platforms.linux;
|
||||
mainProgram = "afterburn";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -6,16 +6,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "air";
|
||||
version = "1.61.7";
|
||||
version = "1.62.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "air-verse";
|
||||
repo = "air";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-+PgJR9+adeko86jUs6/mvkZLgVuIMyd6fv8xxOZB4tE=";
|
||||
hash = "sha256-egduQyC/f8La39pWvVfDuQ2l5oRz5ZPiCqH8wAAS1OA=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-tct0bWTvZhHslqPAe8uOwBx4z6gLAq57igcbV1tg9OU=";
|
||||
vendorHash = "sha256-ESrIn06Uhmq4qP1fdgIcao6ha1ZCqeu3cxJ1vvjRNKk=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
|
||||
@@ -18,13 +18,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "alpine-make-vm-image";
|
||||
version = "0.13.2";
|
||||
version = "0.13.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "alpinelinux";
|
||||
repo = "alpine-make-vm-image";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-N7S9MlTpLIL5Od+buS7q64v8fmN+wbYK1FH/YW+nMP8=";
|
||||
hash = "sha256-AIwT2JAGnMeMXUXZ0FRJthf22FvFfTTw/2LtZKPSj6g=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
@@ -11,16 +11,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "amazon-cloudwatch-agent";
|
||||
version = "1.300055.2";
|
||||
version = "1.300056.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "aws";
|
||||
repo = "amazon-cloudwatch-agent";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-af+bU57fGzenojHdyXcmtLuBHT6Lo5M5dgZRtu/zFQ8=";
|
||||
hash = "sha256-SqXu9CjkSXN0pQwmm+oc2u/MihsfgNWFl++PUn49ohA=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-WDEShkYNwrZgPT0v/9gZaL+4sQ8f4AhEEtaDvgMhuEM=";
|
||||
vendorHash = "sha256-UU8o2kCRCY0FdoqsBovTsu42DFy7VD1kdI+tOA3l/Ac=";
|
||||
|
||||
# See the list in https://github.com/aws/amazon-cloudwatch-agent/blob/v1.300049.1/Makefile#L68-L77.
|
||||
subPackages = [
|
||||
|
||||
@@ -81,13 +81,13 @@ let
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
pname = "ansel";
|
||||
version = "0-unstable-2025-03-27";
|
||||
version = "0-unstable-2025-05-31";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "aurelienpierreeng";
|
||||
repo = "ansel";
|
||||
rev = "62f9a4c56b02deca9fda4aff4392e4f44dea379c";
|
||||
hash = "sha256-T9go14/wMJbOzKjOnRzzmeklFPQMbrTUnXyPlVahpkQ=";
|
||||
rev = "b5d5f5ee7a3d4b68994a7bcfef4429a80cc2f287";
|
||||
hash = "sha256-gb/Mp3YUeDLRxZQ7t55+FaxcfQDKdrNFZSV2uHhZ8Xo=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user