Merge 3108eaa516 into haskell-updates

This commit is contained in:
nixpkgs-ci[bot]
2025-05-26 00:23:16 +00:00
committed by GitHub
884 changed files with 3905 additions and 5167 deletions
+39 -17
View File
@@ -1,23 +1,31 @@
name: Get merge commit
description: 'Checks whether the Pull Request is mergeable and returns two commit hashes: The result of a temporary merge of the head branch into the target branch ("merged"), and the parent of that commit on the target branch ("target"). Handles push events and merge conflicts gracefully.'
description: 'Checks whether the Pull Request is mergeable and checks out the repo at up to two commits: The result of a temporary merge of the head branch into the target branch ("merged"), and the parent of that commit on the target branch ("target"). Handles push events and merge conflicts gracefully.'
inputs:
merged-as-untrusted:
description: "Whether to checkout the merge commit in the ./untrusted folder."
type: boolean
target-as-trusted:
description: "Whether to checkout the target commit in the ./trusted folder."
type: boolean
outputs:
mergedSha:
description: "The merge commit SHA"
value: ${{ fromJSON(steps.merged.outputs.result).mergedSha }}
value: ${{ steps.commits.outputs.mergedSha }}
targetSha:
description: "The target commit SHA"
value: ${{ fromJSON(steps.merged.outputs.result).targetSha }}
value: ${{ steps.commits.outputs.targetSha }}
runs:
using: composite
steps:
- id: merged
- id: commits
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
with:
script: |
if (context.eventName == 'push') return { mergedSha: context.sha }
if (context.eventName == 'push') return core.setOutput('mergedSha', context.sha)
for (const retryInterval of [5, 10, 20, 40, 80]) {
console.log("Checking whether the pull request can be merged...")
@@ -35,32 +43,46 @@ runs:
continue
}
let mergedSha, targetSha
if (prInfo.mergeable) {
console.log("The PR can be merged.")
const mergedSha = prInfo.merge_commit_sha
const targetSha = (await github.rest.repos.getCommit({
mergedSha = prInfo.merge_commit_sha
targetSha = (await github.rest.repos.getCommit({
owner: context.repo.owner,
repo: context.repo.repo,
ref: prInfo.merge_commit_sha
})).data.parents[0].sha
console.log(`Checking the commits:\nmerged:${mergedSha}\ntarget:${targetSha}`)
return { mergedSha, targetSha }
} else {
console.log("The PR has a merge conflict.")
const mergedSha = prInfo.head.sha
const targetSha = (await github.rest.repos.compareCommitsWithBasehead({
mergedSha = prInfo.head.sha
targetSha = (await github.rest.repos.compareCommitsWithBasehead({
owner: context.repo.owner,
repo: context.repo.repo,
basehead: `${prInfo.base.sha}...${prInfo.head.sha}`
})).data.merge_base_commit.sha
console.log(`Checking the commits:\nmerged:${mergedSha}\ntarget:${targetSha}`)
return { mergedSha, targetSha }
}
console.log(`Checking the commits:\nmerged:${mergedSha}\ntarget:${targetSha}`)
core.setOutput('mergedSha', mergedSha)
core.setOutput('targetSha', targetSha)
return
}
throw new Error("Not retrying anymore. It's likely that GitHub is having internal issues: check https://www.githubstatus.com.")
# Would be great to do the checkouts in git worktrees of the existing spare checkout instead,
# but Nix is broken with them:
# https://github.com/NixOS/nix/issues/6073
- if: inputs.merged-as-untrusted && steps.commits.outputs.mergedSha
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
ref: ${{ steps.commits.outputs.mergedSha }}
path: untrusted
- if: inputs.target-as-trusted && steps.commits.outputs.targetSha
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
ref: ${{ steps.commits.outputs.targetSha }}
path: trusted
+2 -1
View File
@@ -21,10 +21,11 @@ jobs:
with:
fetch-depth: 0
filter: blob:none
path: trusted
- name: Check cherry-picks
env:
BASE_SHA: ${{ github.event.pull_request.base.sha }}
HEAD_SHA: ${{ github.event.pull_request.head.sha }}
run: |
./maintainers/scripts/check-cherry-picks.sh "$BASE_SHA" "$HEAD_SHA"
./trusted/maintainers/scripts/check-cherry-picks.sh "$BASE_SHA" "$HEAD_SHA"
+3 -6
View File
@@ -16,13 +16,10 @@ jobs:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
sparse-checkout: .github/actions
- name: Check if the PR can be merged and get the test merge commit
- name: Check if the PR can be merged and checkout the merge commit
uses: ./.github/actions/get-merge-commit
id: get-merge-commit
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
ref: ${{ steps.get-merge-commit.outputs.mergedSha }}
merged-as-untrusted: true
- uses: cachix/install-nix-action@526118121621777ccd86f79b04685a9319637641 # v31
with:
@@ -33,7 +30,7 @@ jobs:
# Note that it's fine to run this on untrusted code because:
# - There's no secrets accessible here
# - The build is sandboxed
if ! nix-build ci -A fmt.check; then
if ! nix-build untrusted/ci -A fmt.check; then
echo "Some files are not properly formatted"
echo "Please format them by going to the Nixpkgs root directory and running one of:"
echo " nix-shell --run treefmt"
+3 -6
View File
@@ -33,15 +33,12 @@ jobs:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
sparse-checkout: .github/actions
- name: Check if the PR can be merged and get the test merge commit
- name: Check if the PR can be merged and checkout the merge commit
uses: ./.github/actions/get-merge-commit
id: get-merge-commit
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
ref: ${{ steps.get-merge-commit.outputs.mergedSha }}
merged-as-untrusted: true
- uses: cachix/install-nix-action@526118121621777ccd86f79b04685a9319637641 # v31
- name: Build shell
run: nix-build ci -A shell
run: nix-build untrusted/ci -A shell
+10 -18
View File
@@ -46,9 +46,11 @@ jobs:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
sparse-checkout: .github/actions
- name: Check if the PR can be merged and get the test merge commit
- name: Check if the PR can be merged and checkout the merge and target commits
uses: ./.github/actions/get-merge-commit
id: get-merge-commit
with:
merged-as-untrusted: true
target-as-trusted: true
- uses: cachix/install-nix-action@526118121621777ccd86f79b04685a9319637641 # v31
@@ -58,15 +60,8 @@ jobs:
name: nixpkgs-ci
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
# Important: Because we use pull_request_target, this checks out the base branch of the PR, not the PR itself.
# We later build and run code from the base branch with access to secrets,
# so it's important this is not the PRs code.
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
path: base
- name: Build codeowners validator
run: nix-build base/ci -A codeownersValidator
run: nix-build trusted/ci -A codeownersValidator
- uses: actions/create-github-app-token@df432ceedc7162793a195dd1713ff69aefc7379e # v2.0.6
if: vars.OWNER_RO_APP_ID
@@ -77,17 +72,12 @@ jobs:
permission-administration: read
permission-members: read
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
ref: ${{ steps.get-merge-commit.outputs.mergedSha }}
path: pr
- name: Validate codeowners
if: steps.app-token.outputs.token
env:
OWNERS_FILE: pr/${{ env.OWNERS_FILE }}
OWNERS_FILE: untrusted/${{ env.OWNERS_FILE }}
GITHUB_ACCESS_TOKEN: ${{ steps.app-token.outputs.token }}
REPOSITORY_PATH: pr
REPOSITORY_PATH: untrusted
OWNER_CHECKER_REPOSITORY: ${{ github.repository }}
# Set this to "notowned,avoid-shadowing" to check that all files are owned by somebody
EXPERIMENTAL_CHECKS: "avoid-shadowing"
@@ -104,6 +94,8 @@ jobs:
# Important: Because we use pull_request_target, this checks out the base branch of the PR, not the PR head.
# This is intentional, because we need to request the review of owners as declared in the base branch.
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
path: trusted
- uses: actions/create-github-app-token@df432ceedc7162793a195dd1713ff69aefc7379e # v2.0.6
if: vars.OWNER_APP_ID
@@ -116,7 +108,7 @@ jobs:
permission-pull-requests: write
- name: Build review request package
run: nix-build ci -A requestReviews
run: nix-build trusted/ci -A requestReviews
- name: Request reviews
if: steps.app-token.outputs.token
+4 -9
View File
@@ -16,15 +16,10 @@ jobs:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
sparse-checkout: .github/actions
- name: Check if the PR can be merged and get the test merge commit
- name: Check if the PR can be merged and checkout the merge commit
uses: ./.github/actions/get-merge-commit
id: get-merge-commit
- name: Check out the PR at the test merge commit
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
ref: ${{ steps.get-merge-commit.outputs.mergedSha }}
path: nixpkgs
merged-as-untrusted: true
- name: Install Nix
uses: cachix/install-nix-action@526118121621777ccd86f79b04685a9319637641 # v31
@@ -32,8 +27,8 @@ jobs:
extra_nix_config: sandbox = true
- name: Ensure flake outputs on all systems still evaluate
run: nix flake check --all-systems --no-build ./nixpkgs
run: nix flake check --all-systems --no-build ./untrusted
- name: Query nixpkgs with aliases enabled to check for basic syntax errors
run: |
time nix-env -I ./nixpkgs -f ./nixpkgs -qa '*' --option restrict-eval true --option allow-import-from-derivation false >/dev/null
time nix-env -I ./untrusted -f ./untrusted -qa '*' --option restrict-eval true --option allow-import-from-derivation false >/dev/null
+94 -102
View File
@@ -61,7 +61,7 @@ jobs:
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
ref: ${{ needs.prepare.outputs.mergedSha }}
path: nixpkgs
path: untrusted
- name: Install Nix
uses: cachix/install-nix-action@526118121621777ccd86f79b04685a9319637641 # v31
@@ -72,62 +72,26 @@ jobs:
env:
MATRIX_SYSTEM: ${{ matrix.system }}
run: |
nix-build nixpkgs/ci -A eval.singleSystem \
nix-build untrusted/ci -A eval.singleSystem \
--argstr evalSystem "$MATRIX_SYSTEM" \
--arg chunkSize 10000
--arg chunkSize 10000 \
--out-link merged
# If it uses too much memory, slightly decrease chunkSize
- name: Upload the output paths and eval stats
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: intermediate-${{ matrix.system }}
path: result/*
process:
name: Process
runs-on: ubuntu-24.04-arm
needs: [ prepare, outpaths ]
outputs:
targetRunId: ${{ steps.targetRunId.outputs.targetRunId }}
steps:
- name: Download output paths and eval stats for all systems
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
pattern: intermediate-*
path: intermediate
merge-multiple: true
- name: Check out the PR at the test merge commit
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
ref: ${{ needs.prepare.outputs.mergedSha }}
fetch-depth: 2
path: nixpkgs
- name: Install Nix
uses: cachix/install-nix-action@526118121621777ccd86f79b04685a9319637641 # v31
with:
extra_nix_config: sandbox = true
- name: Combine all output paths and eval stats
run: |
nix-build nixpkgs/ci -A eval.combine \
--arg resultsDir ./intermediate \
-o prResult
- name: Upload the combined results
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: result
path: prResult/*
name: merged-${{ matrix.system }}
path: merged/*
- name: Get target run id
if: needs.prepare.outputs.targetSha
id: targetRunId
env:
GH_TOKEN: ${{ github.token }}
MATRIX_SYSTEM: ${{ matrix.system }}
REPOSITORY: ${{ github.repository }}
TARGET_SHA: ${{ needs.prepare.outputs.targetSha }}
GH_TOKEN: ${{ github.token }}
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 \
@@ -139,16 +103,24 @@ jobs:
fi
echo "Comparing against $(jq .html_url <<< "$run")"
runId=$(jq .id <<< "$run")
conclusion=$(jq -r .conclusion <<< "$run")
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")
while [[ "$conclusion" == null || "$conclusion" == "" ]]; do
echo "Workflow not done, waiting 10 seconds before checking again"
echo "Job not done, waiting 10 seconds before checking again"
sleep 10
conclusion=$(gh api /repos/"$REPOSITORY"/actions/runs/"$runId" --jq '.conclusion')
conclusion=$(gh api /repos/"$REPOSITORY"/actions/jobs/"$jobId" --jq '.conclusion')
done
if [[ "$conclusion" != "success" ]]; then
echo "Workflow was not successful (conclusion: $conclusion), cannot make comparison"
echo "Job was not successful (conclusion: $conclusion), cannot make comparison"
exit 1
fi
@@ -157,80 +129,88 @@ jobs:
- uses: actions/download-artifact@v4
if: steps.targetRunId.outputs.targetRunId
with:
name: result
path: targetResult
merge-multiple: true
github-token: ${{ github.token }}
run-id: ${{ steps.targetRunId.outputs.targetRunId }}
name: merged-${{ matrix.system }}
path: target
github-token: ${{ github.token }}
merge-multiple: true
- name: Compare outpaths against the target branch
if: steps.targetRunId.outputs.targetRunId
env:
MATRIX_SYSTEM: ${{ matrix.system }}
run: |
nix-build untrusted/ci -A eval.diff \
--arg beforeDir ./target \
--arg afterDir "$(readlink ./merged)" \
--argstr evalSystem "$MATRIX_SYSTEM" \
--out-link diff
- name: Upload outpaths diff and stats
if: steps.targetRunId.outputs.targetRunId
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: diff-${{ matrix.system }}
path: diff/*
tag:
name: Tag
runs-on: ubuntu-24.04-arm
needs: [ prepare, outpaths ]
if: needs.prepare.outputs.targetSha
permissions:
pull-requests: write
statuses: write
steps:
- name: Download output paths and eval stats for all systems
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
pattern: diff-*
path: diff
merge-multiple: true
- name: Check out the PR at the target commit
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
ref: ${{ needs.prepare.outputs.targetSha }}
path: trusted
- name: Install Nix
uses: cachix/install-nix-action@526118121621777ccd86f79b04685a9319637641 # v31
with:
extra_nix_config: sandbox = true
- name: Combine all output paths and eval stats
run: |
nix-build trusted/ci -A eval.combine \
--arg diffDir ./diff \
--out-link combined
- name: Compare against the target branch
if: steps.targetRunId.outputs.targetRunId
env:
AUTHOR_ID: ${{ github.event.pull_request.user.id }}
run: |
git -C nixpkgs worktree add ../target ${{ needs.prepare.outputs.targetSha }}
git -C nixpkgs diff --name-only ${{ needs.prepare.outputs.targetSha }} \
git -C trusted fetch --depth 1 origin ${{ needs.prepare.outputs.mergedSha }}
git -C trusted diff --name-only ${{ needs.prepare.outputs.mergedSha }} \
| jq --raw-input --slurp 'split("\n")[:-1]' > touched-files.json
# Use the target branch to get accurate maintainer info
nix-build target/ci -A eval.compare \
--arg beforeResultDir ./targetResult \
--arg afterResultDir "$(realpath prResult)" \
nix-build trusted/ci -A eval.compare \
--arg combinedDir "$(realpath ./combined)" \
--arg touchedFilesJson ./touched-files.json \
--argstr githubAuthorId "$AUTHOR_ID" \
-o comparison
--out-link comparison
cat comparison/step-summary.md >> "$GITHUB_STEP_SUMMARY"
- name: Upload the combined results
if: steps.targetRunId.outputs.targetRunId
- name: Upload the comparison results
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: comparison
path: comparison/*
# Separate job to have a very tightly scoped PR write token
tag:
name: Tag
runs-on: ubuntu-24.04-arm
needs: [ prepare, process ]
if: needs.process.outputs.targetRunId
permissions:
pull-requests: write
statuses: write
steps:
# 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
- name: Download process result
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
name: comparison
path: comparison
- name: Install Nix
uses: cachix/install-nix-action@526118121621777ccd86f79b04685a9319637641 # v31
# Important: This workflow job runs with extra permissions,
# so we need to make sure to not run untrusted code from PRs
- name: Check out Nixpkgs at the base commit
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
ref: ${{ needs.prepare.outputs.targetSha }}
path: base
sparse-checkout: ci
- name: Build the requestReviews derivation
run: nix-build base/ci -A requestReviews
run: nix-build trusted/ci -A requestReviews
- name: Labelling pull request
if: ${{ github.event_name == 'pull_request_target' && github.repository_owner == 'NixOS' }}
@@ -286,6 +266,18 @@ jobs:
"/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
with:
app-id: ${{ vars.OWNER_APP_ID }}
private-key: ${{ secrets.OWNER_APP_PRIVATE_KEY }}
permission-administration: read
permission-members: read
permission-pull-requests: write
- name: Requesting maintainer reviews
if: ${{ steps.app-token.outputs.token && github.repository_owner == 'NixOS' }}
env:
+3 -6
View File
@@ -19,13 +19,10 @@ jobs:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
sparse-checkout: .github/actions
- name: Check if the PR can be merged and get the test merge commit
- name: Check if the PR can be merged and checkout the merge commit
uses: ./.github/actions/get-merge-commit
id: get-merge-commit
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
ref: ${{ steps.get-merge-commit.outputs.mergedSha }}
merged-as-untrusted: true
- uses: cachix/install-nix-action@526118121621777ccd86f79b04685a9319637641 # v31
with:
@@ -33,4 +30,4 @@ jobs:
- name: Building Nixpkgs lib-tests
run: |
nix-build ci -A lib-tests
nix-build untrusted/ci -A lib-tests
+3 -6
View File
@@ -35,13 +35,10 @@ jobs:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
sparse-checkout: .github/actions
- name: Check if the PR can be merged and get the test merge commit
- name: Check if the PR can be merged and checkout the merge commit
uses: ./.github/actions/get-merge-commit
id: get-merge-commit
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
ref: ${{ steps.get-merge-commit.outputs.mergedSha }}
merged-as-untrusted: true
- uses: cachix/install-nix-action@526118121621777ccd86f79b04685a9319637641 # v31
with:
@@ -55,7 +52,7 @@ jobs:
- name: Build NixOS manual
id: build-manual
run: NIX_PATH=nixpkgs=$(pwd) nix-build --option restrict-eval true ci -A manual-nixos --argstr system ${{ matrix.system }}
run: NIX_PATH=nixpkgs=$(pwd)/untrusted nix-build --option restrict-eval true untrusted/ci -A manual-nixos --argstr system ${{ matrix.system }}
- name: Upload NixOS manual
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
+3 -6
View File
@@ -22,13 +22,10 @@ jobs:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
sparse-checkout: .github/actions
- name: Check if the PR can be merged and get the test merge commit
- name: Check if the PR can be merged and checkout the merge commit
uses: ./.github/actions/get-merge-commit
id: get-merge-commit
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
ref: ${{ steps.get-merge-commit.outputs.mergedSha }}
merged-as-untrusted: true
- uses: cachix/install-nix-action@526118121621777ccd86f79b04685a9319637641 # v31
with:
@@ -41,4 +38,4 @@ jobs:
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
- name: Building Nixpkgs manual
run: NIX_PATH=nixpkgs=$(pwd) nix-build --option restrict-eval true ci -A manual-nixpkgs -A manual-nixpkgs-tests
run: NIX_PATH=nixpkgs=$(pwd)/untrusted nix-build --option restrict-eval true untrusted/ci -A manual-nixpkgs -A manual-nixpkgs-tests
+3 -6
View File
@@ -17,13 +17,10 @@ jobs:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
sparse-checkout: .github/actions
- name: Check if the PR can be merged and get the test merge commit
- name: Check if the PR can be merged and checkout the merge commit
uses: ./.github/actions/get-merge-commit
id: get-merge-commit
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
ref: ${{ steps.get-merge-commit.outputs.mergedSha }}
merged-as-untrusted: true
- uses: cachix/install-nix-action@526118121621777ccd86f79b04685a9319637641 # v31
with:
@@ -33,4 +30,4 @@ jobs:
- name: Parse all nix files
run: |
# Tests multiple versions at once, let's make sure all of them run, so keep-going.
nix-build ci -A parse --keep-going
nix-build untrusted/ci -A parse --keep-going
+5 -29
View File
@@ -19,51 +19,27 @@ permissions: {}
jobs:
check:
name: nixpkgs-vet
# This needs to be x86_64-linux, because we depend on the tooling being pre-built in the GitHub releases.
runs-on: ubuntu-24.04
runs-on: ubuntu-24.04-arm
# This should take 1 minute at most, but let's be generous. The default of 6 hours is definitely too long.
timeout-minutes: 10
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
sparse-checkout: .github/actions
- name: Check if the PR can be merged and get the test merge commit
- name: Check if the PR can be merged and checkout merged and target commits
uses: ./.github/actions/get-merge-commit
id: get-merge-commit
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
ref: ${{ steps.get-merge-commit.outputs.mergedSha }}
# Fetches the merge commit and its parents
fetch-depth: 2
- name: Checking out target branch
run: |
target=$(mktemp -d)
git worktree add "$target" "$(git rev-parse HEAD^1)"
echo "target=$target" >> "$GITHUB_ENV"
merged-as-untrusted: true
target-as-trusted: true
- uses: cachix/install-nix-action@526118121621777ccd86f79b04685a9319637641 # v31
- name: Fetching the pinned tool
# Update the pinned version using ci/nixpkgs-vet/update-pinned-tool.sh
run: |
# The pinned version of the tooling to use.
toolVersion=$(<ci/nixpkgs-vet/pinned-version.txt)
# Fetch the x86_64-linux-specific release artifact containing the gzipped NAR of the pre-built tool.
toolPath=$(curl -sSfL https://github.com/NixOS/nixpkgs-vet/releases/download/"$toolVersion"/x86_64-linux.nar.gz \
| gzip -cd | nix-store --import | tail -1)
# Adds a result symlink as a GC root.
nix-store --realise "$toolPath" --add-root result
- name: Running nixpkgs-vet
env:
# Force terminal colors to be enabled. The library that `nixpkgs-vet` uses respects https://bixense.com/clicolors/
CLICOLOR_FORCE: 1
run: |
if result/bin/nixpkgs-vet --base "$target" .; then
if nix-build untrusted/ci -A nixpkgs-vet --arg base "./trusted" --arg head "./untrusted"; then
exit 0
else
exitCode=$?
+1
View File
@@ -84,6 +84,7 @@ in
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;
nixpkgs-vet = pkgs.callPackage ./nixpkgs-vet.nix { };
parse = pkgs.lib.recurseIntoAttrs {
latest = pkgs.callPackage ./parse.nix { nix = pkgs.nixVersions.latest; };
lix = pkgs.callPackage ./parse.nix { nix = pkgs.lix; };
+5 -19
View File
@@ -7,8 +7,7 @@
python3,
}:
{
beforeResultDir,
afterResultDir,
combinedDir,
touchedFilesJson,
githubAuthorId,
byName ? false,
@@ -20,7 +19,7 @@ let
---
Inputs:
- beforeResultDir, afterResultDir: The evaluation result from before and after the change.
- beforeDir, afterDir: The evaluation result from before and after the change.
They can be obtained by running `nix-build -A ci.eval.full` on both revisions.
---
@@ -66,7 +65,6 @@ let
Example: { name = "python312Packages.numpy"; platform = "x86_64-linux"; }
*/
inherit (import ./utils.nix { inherit lib; })
diff
groupByKernel
convertToPackagePlatformAttrs
groupByPlatform
@@ -74,22 +72,10 @@ let
getLabels
;
getAttrs =
dir:
let
raw = builtins.readFile "${dir}/outpaths.json";
# The file contains Nix paths; we need to ignore them for evaluation purposes,
# else there will be a "is not allowed to refer to a store path" error.
data = builtins.unsafeDiscardStringContext raw;
in
builtins.fromJSON data;
beforeAttrs = getAttrs beforeResultDir;
afterAttrs = getAttrs afterResultDir;
# Attrs
# - keys: "added", "changed" and "removed"
# - values: lists of `packagePlatformPath`s
diffAttrs = diff beforeAttrs afterAttrs;
diffAttrs = builtins.fromJSON (builtins.readFile "${combinedDir}/combined-diff.json");
rebuilds = diffAttrs.added ++ diffAttrs.changed;
rebuildsPackagePlatformAttrs = convertToPackagePlatformAttrs rebuilds;
@@ -149,8 +135,8 @@ runCommand "compare"
maintainers = builtins.toJSON maintainers;
passAsFile = [ "maintainers" ];
env = {
BEFORE_DIR = "${beforeResultDir}";
AFTER_DIR = "${afterResultDir}";
BEFORE_DIR = "${combinedDir}/before";
AFTER_DIR = "${combinedDir}/after";
};
}
''
-26
View File
@@ -93,32 +93,6 @@ rec {
in
uniqueStrings (builtins.map (p: p.name) packagePlatformAttrs);
/*
Computes the key difference between two attrs
{
added: [ <keys only in the second object> ],
removed: [ <keys only in the first object> ],
changed: [ <keys with different values between the two objects> ],
}
*/
diff =
let
filterKeys = cond: attrs: lib.attrNames (lib.filterAttrs cond attrs);
in
old: new: {
added = filterKeys (n: _: !(old ? ${n})) new;
removed = filterKeys (n: _: !(new ? ${n})) old;
changed = filterKeys (
n: v:
# Filter out attributes that don't exist anymore
(new ? ${n})
# Filter out attributes that are the same as the new value
&& (v != (new.${n}))
) old;
};
/*
Group a list of `packagePlatformAttr`s by platforms
+32 -11
View File
@@ -191,11 +191,13 @@ let
cat "$chunkOutputDir"/result/* | jq -s 'add | map_values(.outputs)' > $out/${evalSystem}/paths.json
'';
diff = callPackage ./diff.nix { };
combine =
{
resultsDir,
diffDir,
}:
runCommand "combined-result"
runCommand "combined-eval"
{
nativeBuildInputs = [
jq
@@ -205,12 +207,22 @@ let
mkdir -p $out
# Combine output paths from all systems
cat ${resultsDir}/*/paths.json | jq -s add > $out/outpaths.json
cat ${diffDir}/*/diff.json | jq -s '
reduce .[] as $item ({}; {
added: (.added + $item.added),
changed: (.changed + $item.changed),
removed: (.removed + $item.removed)
})
' > $out/combined-diff.json
mkdir -p $out/stats
mkdir -p $out/before/stats
for d in ${diffDir}/before/*; do
cp -r "$d"/stats-by-chunk $out/before/stats/$(basename "$d")
done
for d in ${resultsDir}/*; do
cp -r "$d"/stats-by-chunk $out/stats/$(basename "$d")
mkdir -p $out/after/stats
for d in ${diffDir}/after/*; do
cp -r "$d"/stats-by-chunk $out/after/stats/$(basename "$d")
done
'';
@@ -225,18 +237,26 @@ let
quickTest ? false,
}:
let
results = symlinkJoin {
name = "results";
diffs = symlinkJoin {
name = "diffs";
paths = map (
evalSystem:
singleSystem {
inherit quickTest evalSystem chunkSize;
let
eval = singleSystem {
inherit quickTest evalSystem chunkSize;
};
in
diff {
inherit evalSystem;
# Local "full" evaluation doesn't do a real diff.
beforeDir = eval;
afterDir = eval;
}
) evalSystems;
};
in
combine {
resultsDir = results;
diffDir = diffs;
};
in
@@ -244,6 +264,7 @@ in
inherit
attrpathsSuperset
singleSystem
diff
combine
compare
# The above three are used by separate VMs in a GitHub workflow,
+61
View File
@@ -0,0 +1,61 @@
{
lib,
runCommand,
writeText,
}:
{
beforeDir,
afterDir,
evalSystem,
}:
let
/*
Computes the key difference between two attrs
{
added: [ <keys only in the second object> ],
removed: [ <keys only in the first object> ],
changed: [ <keys with different values between the two objects> ],
}
*/
diff =
let
filterKeys = cond: attrs: lib.attrNames (lib.filterAttrs cond attrs);
in
old: new: {
added = filterKeys (n: _: !(old ? ${n})) new;
removed = filterKeys (n: _: !(new ? ${n})) old;
changed = filterKeys (
n: v:
# Filter out attributes that don't exist anymore
(new ? ${n})
# Filter out attributes that are the same as the new value
&& (v != (new.${n}))
) old;
};
getAttrs =
dir:
let
raw = builtins.readFile "${dir}/${evalSystem}/paths.json";
# The file contains Nix paths; we need to ignore them for evaluation purposes,
# else there will be a "is not allowed to refer to a store path" error.
data = builtins.unsafeDiscardStringContext raw;
in
builtins.fromJSON data;
beforeAttrs = getAttrs beforeDir;
afterAttrs = getAttrs afterDir;
diffAttrs = diff beforeAttrs afterAttrs;
diffJson = writeText "diff.json" (builtins.toJSON diffAttrs);
in
runCommand "diff" { } ''
mkdir -p $out/${evalSystem}
cp -r ${beforeDir} $out/before
cp -r ${afterDir} $out/after
cp ${diffJson} $out/${evalSystem}/diff.json
''
+31
View File
@@ -0,0 +1,31 @@
{
lib,
nix,
nixpkgs-vet,
runCommand,
}:
{
base ? ../.,
head ? ../.,
}:
let
filtered =
with lib.fileset;
path:
toSource {
fileset = (gitTracked path);
root = path;
};
in
runCommand "nixpkgs-vet"
{
nativeBuildInputs = [
nixpkgs-vet
];
env.NIXPKGS_VET_NIX_PACKAGE = nix;
}
''
nixpkgs-vet --base ${filtered base} ${filtered head}
touch $out
''
+1 -3
View File
@@ -65,7 +65,5 @@ trace -n "Reading pinned nixpkgs-vet version from pinned-version.txt.. "
toolVersion=$(<"$tmp/merged/ci/nixpkgs-vet/pinned-version.txt")
trace -e "\e[34m$toolVersion\e[0m"
trace -n "Building tool.. "
nix-build https://github.com/NixOS/nixpkgs-vet/tarball/"$toolVersion" -o "$tmp/tool" -A build
trace "Running nixpkgs-vet.."
"$tmp/tool/bin/nixpkgs-vet" --base "$tmp/base" "$tmp/merged"
nix-build ci -A nixpkgs-vet --argstr base "$tmp/base" --argstr head "$tmp/merged"
+4 -5
View File
@@ -247,6 +247,10 @@
- `strawberry` has been updated to 1.2, which drops support for the VLC backend and Qt 5. The `strawberry-qt5` package
and `withGstreamer`/`withVlc` override options have been removed due to this.
- `nexusmods-app` has been upgraded from version 0.6.3. If you were running a version older than 0.7.0, then before upgrading, you **must reset all app state** (mods, games, settings, etc). Otherwise, NexusMods.App will crash due to app state files incompatibility.
- Typically, you can can reset to a clean state by running `NexusMods.App uninstall-app`. See Nexus Mod's [how to uninstall the app](https://nexus-mods.github.io/NexusMods.App/users/Uninstall) documentation for more detail and alternative methods.
- This should not be necessary going forward, because loading app state from 0.7.0 or newer is now supported. This is documented in the [0.7.1 changelog](https://github.com/Nexus-Mods/NexusMods.App/releases/tag/v0.7.1).
- `nezha` and its agent `nezha-agent` have been updated to v1, which contains breaking changes. See the [official wiki](https://nezha.wiki/en_US/) for more details.
- `ps3-disc-dumper` was updated to 4.2.5, which removed the CLI project and now exclusively offers the GUI
@@ -538,11 +542,6 @@
- `ddclient` was updated from 3.11.2 to 4.0.0 [Release notes](https://github.com/ddclient/ddclient/releases/tag/v4.0.0)
- `nexusmods-app` has been upgraded from version 0.6.3 to 0.10.2.
- Before upgrading, you **must reset all app state** (mods, games, settings, etc). NexusMods.App will crash if any state from a version older than 0.7.0 is still present.
- Typically, you can can reset to a clean state by running `NexusMods.App uninstall-app`. See Nexus Mod's [how to uninstall the app](https://nexus-mods.github.io/NexusMods.App/users/Uninstall) documentation for more detail and alternative methods.
- This should not be necessary going forward, because loading app state from 0.7.0 or newer is now supported. This is documented in the [0.7.1 changelog](https://github.com/Nexus-Mods/NexusMods.App/releases/tag/v0.7.1).
## Nixpkgs Library {#sec-nixpkgs-release-25.05-lib}
### Breaking changes {#sec-nixpkgs-release-25.05-lib-breaking}
+6
View File
@@ -20858,6 +20858,12 @@
githubId = 3302;
name = "Renzo Carbonara";
};
repparw = {
email = "ubritos@gmail.com";
github = "repparw";
githubId = 45952970;
name = "repparw";
};
reputable2772 = {
name = "Reputable2772";
github = "Reputable2772";
+1
View File
@@ -1808,6 +1808,7 @@
./system/boot/uki.nix
./system/boot/unl0kr.nix
./system/boot/uvesafb.nix
./system/boot/zram-as-tmp.nix
./system/etc/etc-activation.nix
./tasks/auto-upgrade.nix
./tasks/bcache.nix
+12 -6
View File
@@ -17,7 +17,7 @@ let
addRequiredBinaries =
s:
s
// {
// (lib.optionalAttrs (s ? postgresql_databases && s.postgresql_databases != [ ]) {
postgresql_databases = map (
d:
let
@@ -33,7 +33,9 @@ let
psql_command = "${as_user}${postgresql}/bin/psql";
}
// d
) (s.postgresql_databases or [ ]);
) s.postgresql_databases;
})
// (lib.optionalAttrs (s ? mariadb_databases && s.mariadb_databases != [ ]) {
mariadb_databases = map (
d:
{
@@ -41,7 +43,9 @@ let
mariadb_command = "${mysql}/bin/mariadb";
}
// d
) (s.mariadb_databases or [ ]);
) s.mariadb_databases;
})
// (lib.optionalAttrs (s ? mysql_databases && s.mysql_databases != [ ]) {
mysql_databases = map (
d:
{
@@ -49,8 +53,8 @@ let
mysql_command = "${mysql}/bin/mysql";
}
// d
) (s.mysql_databases or [ ]);
};
) s.mysql_databases;
});
repository =
with lib.types;
@@ -149,7 +153,9 @@ in
config =
let
configFiles =
(lib.optionalAttrs (cfg.settings != null) { "borgmatic/config.yaml".source = cfgfile; })
(lib.optionalAttrs (cfg.settings != null) {
"borgmatic/config.yaml".source = cfgfile;
})
// lib.mapAttrs' (
name: value:
lib.nameValuePair "borgmatic.d/${name}.yaml" {
@@ -147,7 +147,7 @@ in
schedule = mkOption {
type = str;
default = "*:0/15";
default = "daily";
description = ''
How often to run the collector in systemd calendar format.
'';
+2 -1
View File
@@ -57,7 +57,8 @@ in
config = mkIf cfg.enable {
systemd.services.readeck = {
description = "Readeck";
after = [ "network.target" ];
after = [ "network-online.target" ];
wants = [ "network-online.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
Type = "simple";
+105
View File
@@ -0,0 +1,105 @@
{
config,
lib,
pkgs,
...
}:
let
cfg = config.boot.tmp;
in
{
options = {
boot.tmp = {
useZram = lib.mkOption {
type = lib.types.bool;
default = false;
example = true;
description = ''
Whether to mount a zram device on {file}`/tmp` during boot.
::: {.note}
Large Nix builds can fail if the mounted zram device is not large enough.
In such a case either increase the zramSettings.zram-size or disable this option.
:::
'';
};
zramSettings = {
zram-size = lib.mkOption {
type = lib.types.str;
default = "ram * 0.5";
example = "min(ram / 2, 4096)";
description = ''
The size of the zram device, as a function of MemTotal, both in MB.
For example, if the machine has 1 GiB, and zram-size=ram/4,
then the zram device will have 256 MiB.
Fractions in the range 0.10.5 are recommended
See: https://github.com/systemd/zram-generator/blob/main/zram-generator.conf.example
'';
};
compression-algorithm = lib.mkOption {
type = lib.types.str;
default = "zstd";
example = "lzo-rle";
description = ''
The compression algorithm to use for the zram device.
See: https://github.com/systemd/zram-generator/blob/main/zram-generator.conf.example
'';
};
fs-type = lib.mkOption {
type = lib.types.str;
default = "ext4";
example = "ext2";
description = ''
The file system to put on the device.
See: https://github.com/systemd/zram-generator/blob/main/zram-generator.conf.example
'';
};
options = lib.mkOption {
type = lib.types.str;
default = "X-mount.mode=1777,discard";
description = ''
By default, file systems and swap areas are trimmed on-the-go
by setting "discard".
Setting this to the empty string clears the option.
See: https://github.com/systemd/zram-generator/blob/main/zram-generator.conf.example
'';
};
};
};
};
config = lib.mkIf (cfg.useZram) {
assertions = [
{
assertion = !cfg.useTmpfs;
message = "boot.tmp.useTmpfs is unnecessary if useZram=true";
}
];
services.zram-generator.enable = true;
services.zram-generator.settings =
let
cfgz = cfg.zramSettings;
in
{
"zram${toString (if config.zramSwap.enable then config.zramSwap.swapDevices else 0)}" = {
mount-point = "/tmp";
zram-size = cfgz.zram-size;
compression-algorithm = cfgz.compression-algorithm;
options = cfgz.options;
fs-type = cfgz.fs-type;
};
};
systemd.services."systemd-zram-setup@".path = [ pkgs.util-linux ] ++ config.system.fsPackages;
};
}
+12 -3
View File
@@ -54,30 +54,39 @@ in
with subtest("lomiri mediaplayer launches"):
machine.succeed("lomiri-mediaplayer-app >&2 &")
machine.wait_for_console_text("The name com.lomiri.content.dbus.Service was not provided")
machine.wait_for_console_text("The name com.lomiri.content.dbus.Service was not provided") # Emitted twice
machine.sleep(10)
machine.send_key("alt-f10")
machine.wait_for_text("Choose from")
machine.sleep(5)
machine.wait_for_text(r"(Choose|Sorry|provide|content)")
machine.screenshot("lomiri-mediaplayer_open")
machine.succeed("pkill -f lomiri-mediaplayer-app")
with subtest("lomiri mediaplayer plays video"):
machine.succeed("lomiri-mediaplayer-app /etc/${videoFile} >&2 &")
machine.wait_for_console_text("The name com.lomiri.content.dbus.Service was not provided") # Only once here
machine.wait_for_console_text("qml: onPositionChanged")
machine.sleep(10)
machine.send_key("alt-f10")
machine.sleep(5)
machine.wait_for_text("${ocrContent}")
machine.screenshot("lomiri-mediaplayer_playback")
machine.succeed("pkill -f lomiri-mediaplayer-app")
with subtest("lomiri mediaplayer localisation works"):
# OCR struggles with finding identifying the translated window title, and lomiri-content-hub QML isn't translated
# OCR struggles with finding the translated window title, and lomiri-content-hub QML isn't translated
# Cause an error, and look for the error popup
machine.succeed("touch invalid.mp4")
machine.succeed("env LANG=de_DE.UTF-8 lomiri-mediaplayer-app invalid.mp4 >&2 &")
machine.wait_for_console_text("The name com.lomiri.content.dbus.Service was not provided")
machine.wait_for_console_text("Der Datenstrom enthält keine Daten")
machine.sleep(10)
machine.send_key("alt-f10")
machine.wait_for_text("Fehler")
machine.sleep(5)
machine.wait_for_text(r"(Fehler|Abspielen|fehlgeschlagen)")
machine.screenshot("lomiri-mediaplayer_localised")
'';
}
@@ -7,8 +7,8 @@ vscode-utils.buildVscodeMarketplaceExtension (finalAttrs: {
mktplcRef = {
name = "amazon-q-vscode";
publisher = "AmazonWebServices";
version = "1.67.0";
hash = "sha256-1GShGk0ulYlpJpcdai7T2n0p2v1qicLE4X2d7Pqx4Zc=";
version = "1.69.0";
hash = "sha256-DmkDkBItpcbCW3pQJ2j4SFJFubSL9jhfF66EDN96W5k=";
};
meta = {
@@ -786,8 +786,8 @@ let
mktplcRef = {
name = "vscode-tailwindcss";
publisher = "bradlc";
version = "0.14.16";
hash = "sha256-U2oZSIsLpqEqYBIEjSnIToEOOnTCUi4vR6XwjnNUDN8=";
version = "0.14.19";
hash = "sha256-HgrUTrYHJNC8tS8qZza98Tr3T0O0NMb7DgddNf3m7XY=";
};
meta = {
changelog = "https://marketplace.visualstudio.com/items/bradlc.vscode-tailwindcss/changelog";
@@ -1018,8 +1018,8 @@ let
mktplcRef = {
name = "coder-remote";
publisher = "coder";
version = "1.8.0";
hash = "sha256-zAe2IFT69oZ/OLVSaaY5lGSiF/7FGiQngz/EXekwQtM=";
version = "1.9.0";
hash = "sha256-34Qu6BOQIbTsPeIGCp8Lcsz+FoDrP36PuYpX/4mqpvw=";
};
meta = {
description = "Extension for Visual Studio Code to open any Coder workspace in VS Code with a single click";
@@ -1195,8 +1195,8 @@ let
mktplcRef = {
publisher = "DanielGavin";
name = "ols";
version = "0.1.35";
hash = "sha256-Kem8o0gM1+cYohmua17kIlAH1RURgqoc0sPuIFDVU8Q=";
version = "0.1.37";
hash = "sha256-R2vZNv6vkq5OIw3RzaAm4WGC4awiCC4junB3DRpJIfs=";
};
meta = {
description = "Visual Studio Code extension for Odin language";
@@ -1210,8 +1210,8 @@ let
mktplcRef = {
publisher = "DanielSanMedium";
name = "dscodegpt";
version = "3.12.3";
hash = "sha256-9vv/ourveSqLQyHylbWpUuJDwnpsZLihC800qDLI3YY=";
version = "3.12.38";
hash = "sha256-+9OsFH586I8/P7WzadRHS9tX22/bxOByJB2LDSqp2Nk=";
};
meta = {
changelog = "https://marketplace.visualstudio.com/items/DanielSanMedium.dscodegpt/changelog";
@@ -1700,8 +1700,8 @@ let
mktplcRef = {
name = "elixir-ls";
publisher = "JakeBecker";
version = "0.27.2";
hash = "sha256-PXQiZOAAApsYLB3hztQcjAsnmkfDSDtYvUmMhFUfLxA=";
version = "0.28.0";
hash = "sha256-pHLAA7i2HJC523lPotUy5Zwa3BTSTurC2BA+eevdH38=";
};
meta = {
changelog = "https://marketplace.visualstudio.com/items/JakeBecker.elixir-ls/changelog";
@@ -2716,8 +2716,8 @@ let
mktplcRef = {
publisher = "jnoortheen";
name = "nix-ide";
version = "0.4.16";
hash = "sha256-MdFDOg9uTUzYtRW2Kk4L8V3T/87MRDy1HyXY9ikqDFY=";
version = "0.4.18";
hash = "sha256-ucy1Z0VcikEIU+s/Ai2qgJcUkEoNcAo7y7A2nuq3yZo=";
};
meta = {
changelog = "https://marketplace.visualstudio.com/items/jnoortheen.nix-ide/changelog";
@@ -3141,8 +3141,8 @@ let
mktplcRef = {
publisher = "maximedenes";
name = "vscoq";
version = "2.2.5";
hash = "sha256-ctaeTgdK1JijSI3YD54iWEBNVrbaad408wD43fH78h4=";
version = "2.2.6";
hash = "sha256-QBUTOFhdksHGkpYqgQIF2u+WodYH5PmMMvGFHwEEEIk=";
};
meta = {
description = "VsCoq is an extension for Visual Studio Code (VS Code) and VSCodium with support for the Coq Proof Assistant";
@@ -3395,8 +3395,8 @@ let
mktplcRef = {
name = "datawrangler";
publisher = "ms-toolsai";
version = "1.21.1";
hash = "sha256-I701ziW0Ibs92MzCuMGHv5AjhYrD3ow4/3U9MgB1onY=";
version = "1.22.0";
hash = "sha256-gUlb48g12RW4j2HS9jfpZROgtFM9zEPg4ozLM7hOaLk=";
};
meta = {
@@ -10,8 +10,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
name = "magic-racket";
publisher = "evzen-wybitul";
version = "0.6.7";
hash = "sha256-1A4j8710AYuV8gA+sybv6WSavPVcCPMvI71h4n4Jx0w=";
version = "0.7.0";
hash = "sha256-8q2H9VPmdIAh4VmtGjIAwUfpr1P7+zmDLGiyCNbAXBU=";
};
nativeBuildInputs = [
jq
@@ -7,8 +7,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
publisher = "github";
name = "copilot-chat";
version = "0.27.1";
hash = "sha256-HXzPI8B4wISly2SQNdbFO6CEREfhey+SH4HhutxH7Mg=";
version = "0.27.2";
hash = "sha256-nwBDQNs5qrA0TxQZVtuXRiOy0iBNOCFpIim0x2k37YA=";
};
meta = {
@@ -7,8 +7,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
publisher = "github";
name = "copilot";
version = "1.322.0";
hash = "sha256-PekZQeRqpCSSVQe+AA0XLAwC3K0LGtRMbfnN7MxfmGA=";
version = "1.323.0";
hash = "sha256-rTAq6snn3HAARrYbMJYy7aZ5rDucLfFS/t01VPjgXAo=";
};
meta = {
@@ -7,8 +7,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
name = "windows-ai-studio";
publisher = "ms-windows-ai-studio";
version = "0.12.1";
hash = "sha256-uj+4o5gH6qfYCJjapoas/JDWymFWSl4kHFu5Ys9rTlU=";
version = "0.14.0";
hash = "sha256-qfEPvDHYjFWT+NMN6jlouRljtTflKOqn2wHL83tnUi0=";
};
meta = {
@@ -5,13 +5,13 @@
}:
mkLibretroCore {
core = "mgba";
version = "0-unstable-2025-02-17";
version = "0-unstable-2025-05-18";
src = fetchFromGitHub {
owner = "libretro";
repo = "mgba";
rev = "88b22735dbdbc4d6236ed872ef21ea1b4d2fc492";
hash = "sha256-ouwtL8vfc1LFMjfIZQ4F/ZOBW4y3VU9zovkXug0fgZY=";
rev = "c9bbf28b091c4c104485092279c7a6b114b2e8ff";
hash = "sha256-yCRM2qkacGbFVr6x0ZHBCZ8xAMruFENBdcnNKzK0sY4=";
};
meta = {
+2 -3
View File
@@ -18,13 +18,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "gpxsee";
version = "13.42";
version = "13.43";
src = fetchFromGitHub {
owner = "tumic0";
repo = "GPXSee";
tag = finalAttrs.version;
hash = "sha256-94zCDtja1b85Wgz4slG17ETT/TMPPCyXld3WdtGjBzA=";
hash = "sha256-IP5l8YUsCNm9rixgpQqbyyhfcBNQgrZha1MNjetug2c=";
};
buildInputs =
@@ -66,7 +66,6 @@ stdenv.mkDerivation (finalAttrs: {
};
meta = {
broken = isQt6 && stdenv.hostPlatform.isDarwin;
changelog = "https://build.opensuse.org/package/view_file/home:tumic:GPXSee/gpxsee/gpxsee.changes";
description = "GPS log file viewer and analyzer";
mainProgram = "gpxsee";
@@ -1,112 +0,0 @@
diff --git a/Makefile.in b/Makefile.in
index 8f33aa2ff4..39928382da 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -4358,7 +4358,7 @@ COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS = \
monodll_msw_utils.o \
monodll_utilsexc.o \
monodll_fswatcher.o \
- monodll_msw_secretstore.o
+ monodll_msw_secretstore.o \
monodll_msw_uilocale.o
@COND_PLATFORM_WIN32_1@__BASE_PLATFORM_SRC_OBJECTS = $(COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS)
@COND_PLATFORM_WIN32_1@__BASE_AND_GUI_PLATFORM_SRC_OBJECTS \
@@ -5284,7 +5284,7 @@ COND_TOOLKIT_MSW___LOWLEVEL_SRC_OBJECTS = \
monodll_uuid.o \
monodll_msw_evtloop.o \
monodll_access.o \
- monodll_dark_mode.o
+ monodll_dark_mode.o \
monodll_msw_bmpbndl.o
@COND_TOOLKIT_MSW@__LOWLEVEL_SRC_OBJECTS = $(COND_TOOLKIT_MSW___LOWLEVEL_SRC_OBJECTS)
@COND_TOOLKIT_OSX_COCOA@__LOWLEVEL_SRC_OBJECTS = \
@@ -6196,7 +6196,7 @@ COND_TOOLKIT_MSW___LOWLEVEL_SRC_OBJECTS_1 = \
monodll_uuid.o \
monodll_msw_evtloop.o \
monodll_access.o \
- monodll_dark_mode.o
+ monodll_dark_mode.o \
monodll_msw_bmpbndl.o
@COND_TOOLKIT_MSW@__LOWLEVEL_SRC_OBJECTS_1 = $(COND_TOOLKIT_MSW___LOWLEVEL_SRC_OBJECTS_1)
@COND_TOOLKIT_OSX_COCOA@__LOWLEVEL_SRC_OBJECTS_1 = \
@@ -6371,7 +6371,7 @@ COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS_1 = \
monolib_msw_utils.o \
monolib_utilsexc.o \
monolib_fswatcher.o \
- monolib_msw_secretstore.o
+ monolib_msw_secretstore.o \
monolib_msw_uilocale.o
@COND_PLATFORM_WIN32_1@__BASE_PLATFORM_SRC_OBJECTS_1 = $(COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS_1)
@COND_PLATFORM_WIN32_1@__BASE_AND_GUI_PLATFORM_SRC_OBJECTS_1 \
@@ -7297,7 +7297,7 @@ COND_TOOLKIT_MSW___LOWLEVEL_SRC_OBJECTS_2 = \
monolib_uuid.o \
monolib_msw_evtloop.o \
monolib_access.o \
- monolib_dark_mode.o
+ monolib_dark_mode.o \
monolib_msw_bmpbndl.o
@COND_TOOLKIT_MSW@__LOWLEVEL_SRC_OBJECTS_2 = $(COND_TOOLKIT_MSW___LOWLEVEL_SRC_OBJECTS_2)
@COND_TOOLKIT_OSX_COCOA@__LOWLEVEL_SRC_OBJECTS_2 = \
@@ -8209,7 +8209,7 @@ COND_TOOLKIT_MSW___LOWLEVEL_SRC_OBJECTS_3 = \
monolib_uuid.o \
monolib_msw_evtloop.o \
monolib_access.o \
- monolib_dark_mode.o
+ monolib_dark_mode.o \
monolib_msw_bmpbndl.o
@COND_TOOLKIT_MSW@__LOWLEVEL_SRC_OBJECTS_3 = $(COND_TOOLKIT_MSW___LOWLEVEL_SRC_OBJECTS_3)
@COND_TOOLKIT_OSX_COCOA@__LOWLEVEL_SRC_OBJECTS_3 = \
@@ -8436,7 +8436,7 @@ COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS_2 = \
basedll_msw_utils.o \
basedll_utilsexc.o \
basedll_fswatcher.o \
- basedll_msw_secretstore.o
+ basedll_msw_secretstore.o \
basedll_msw_uilocale.o
@COND_PLATFORM_WIN32_1@__BASE_PLATFORM_SRC_OBJECTS_2 = $(COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS_2)
@COND_PLATFORM_WIN32_1@__BASE_AND_GUI_PLATFORM_SRC_OBJECTS_2 \
@@ -8523,7 +8523,7 @@ COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS_3 = \
baselib_msw_utils.o \
baselib_utilsexc.o \
baselib_fswatcher.o \
- baselib_msw_secretstore.o
+ baselib_msw_secretstore.o \
baselib_msw_uilocale.o
@COND_PLATFORM_WIN32_1@__BASE_PLATFORM_SRC_OBJECTS_3 = $(COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS_3)
@COND_PLATFORM_WIN32_1@__BASE_AND_GUI_PLATFORM_SRC_OBJECTS_3 \
@@ -9464,7 +9464,7 @@ COND_TOOLKIT_MSW___LOWLEVEL_SRC_OBJECTS_4 = \
coredll_uuid.o \
coredll_msw_evtloop.o \
coredll_access.o \
- coredll_dark_mode.o
+ coredll_dark_mode.o \
coredll_msw_bmpbndl.o
@COND_TOOLKIT_MSW@__LOWLEVEL_SRC_OBJECTS_4 = $(COND_TOOLKIT_MSW___LOWLEVEL_SRC_OBJECTS_4)
@COND_TOOLKIT_OSX_COCOA@__LOWLEVEL_SRC_OBJECTS_4 = \
@@ -10376,7 +10376,7 @@ COND_TOOLKIT_MSW___LOWLEVEL_SRC_OBJECTS_5 = \
coredll_uuid.o \
coredll_msw_evtloop.o \
coredll_access.o \
- coredll_dark_mode.o
+ coredll_dark_mode.o \
coredll_msw_bmpbndl.o
@COND_TOOLKIT_MSW@__LOWLEVEL_SRC_OBJECTS_5 = $(COND_TOOLKIT_MSW___LOWLEVEL_SRC_OBJECTS_5)
@COND_TOOLKIT_OSX_COCOA@__LOWLEVEL_SRC_OBJECTS_5 = \
@@ -11204,7 +11204,7 @@ COND_TOOLKIT_MSW___LOWLEVEL_SRC_OBJECTS_6 = \
corelib_uuid.o \
corelib_msw_evtloop.o \
corelib_access.o \
- corelib_dark_mode.o
+ corelib_dark_mode.o \
corelib_msw_bmpbndl.o
@COND_TOOLKIT_MSW@__LOWLEVEL_SRC_OBJECTS_6 = $(COND_TOOLKIT_MSW___LOWLEVEL_SRC_OBJECTS_6)
@COND_TOOLKIT_OSX_COCOA@__LOWLEVEL_SRC_OBJECTS_6 = \
@@ -12116,7 +12116,7 @@ COND_TOOLKIT_MSW___LOWLEVEL_SRC_OBJECTS_7 = \
corelib_uuid.o \
corelib_msw_evtloop.o \
corelib_access.o \
- corelib_dark_mode.o
+ corelib_dark_mode.o \
corelib_msw_bmpbndl.o
@COND_TOOLKIT_MSW@__LOWLEVEL_SRC_OBJECTS_7 = $(COND_TOOLKIT_MSW___LOWLEVEL_SRC_OBJECTS_7)
@COND_TOOLKIT_OSX_COCOA@__LOWLEVEL_SRC_OBJECTS_7 = \
File diff suppressed because it is too large Load Diff
+12 -10
View File
@@ -9,15 +9,15 @@
qttools,
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "pageedit";
version = "2.0.0";
version = "2.4.0";
src = fetchFromGitHub {
owner = "Sigil-Ebook";
repo = pname;
rev = version;
hash = "sha256-zwOSt1eyvuuqfQ1G2bCB4yj6GgixFRc2FLOgcCrdg3Q=";
repo = "pageedit";
tag = finalAttrs.version;
hash = "sha256-BsK+agn8O2WeftiEHfT5B1hzsP5Av4DkIZqVKoQxb70=";
};
nativeBuildInputs = [
@@ -25,10 +25,12 @@ stdenv.mkDerivation rec {
wrapQtAppsHook
qttools
];
propagatedBuildInputs = [
qtsvg
qtwebengine
];
cmakeFlags = [ "-DINSTALL_BUNDLED_DICTS=0" ];
installPhase =
@@ -45,12 +47,12 @@ stdenv.mkDerivation rec {
else
null;
meta = with lib; {
meta = {
description = "ePub XHTML Visual Editor";
mainProgram = "pageedit";
homepage = "https://sigil-ebook.com/pageedit/";
license = licenses.gpl3Plus;
maintainers = [ maintainers.pasqui23 ];
platforms = platforms.all;
license = lib.licenses.gpl3Plus;
maintainers = [ lib.maintainers.pasqui23 ];
platforms = lib.platforms.all;
};
}
})
+3 -1
View File
@@ -2,6 +2,7 @@
lib,
fetchFromGitHub,
cmake,
desktopToDarwinBundle,
pkg-config,
qtbase,
qtsvg,
@@ -45,7 +46,8 @@ gnuradioMinimal.pkgs.mkDerivation rec {
pkg-config
wrapQtAppsHook
wrapGAppsHook3
];
] ++ lib.optional stdenv.hostPlatform.isDarwin desktopToDarwinBundle;
buildInputs =
[
gnuradioMinimal.unwrapped.logLib
+5 -5
View File
@@ -11,14 +11,14 @@
}:
buildGoModule rec {
pname = "alist";
version = "3.44.0";
webVersion = "3.44.0";
version = "3.45.0";
webVersion = "3.45.0";
src = fetchFromGitHub {
owner = "AlistGo";
repo = "alist";
tag = "v${version}";
hash = "sha256-zaIS2DYB7x76SCHCX9aJ0/8Lejwy3/AlLbnztSNJtSc=";
hash = "sha256-h8oWeTX3z3xye5O4+s7LA7Wm36JOrsU+UdKGZXaDKXk=";
# populate values that require us to use git. By doing this in postFetch we
# can delete .git afterwards and maintain better reproducibility of the src.
leaveDotGit = true;
@@ -32,11 +32,11 @@ buildGoModule rec {
};
web = fetchzip {
url = "https://github.com/AlistGo/alist-web/releases/download/${webVersion}/dist.tar.gz";
hash = "sha256-YPqbEPpwRVTWwH/LOq7cGsYju6YqdFCOseD52OsnkSk=";
hash = "sha256-rNVa+dr/SX2aYHBzeV8QdD5XYCFyelhbqkTpvhF+S2g=";
};
proxyVendor = true;
vendorHash = "sha256-eBIlBtO+AlW2TE4xgxktePb2bm1lIYiuZ4+AUd1bdW8=";
vendorHash = "sha256-IMoLVAgOaVM1xIFDe8BGOpzyBnDMfD9Q6VogFfOWFzU=";
buildInputs = [ fuse ];
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -15,12 +15,12 @@
}:
python3Packages.buildPythonApplication rec {
pname = "borgmatic";
version = "2.0.5";
version = "2.0.6";
format = "pyproject";
src = fetchPypi {
inherit pname version;
hash = "sha256-jpaTLbDmwcL8ihu8XTD2LsSfmneBpOGSVaRcJyeSSo4=";
hash = "sha256-yxAtD7sKOo0voE8BvfL0HGsnP0L2sc1f0UgXBNt/aQU=";
};
passthru.updateScript = nix-update-script { };
+2 -2
View File
@@ -21,13 +21,13 @@
stdenv.mkDerivation rec {
pname = "bpftrace";
version = "0.23.2";
version = "0.23.3";
src = fetchFromGitHub {
owner = "bpftrace";
repo = "bpftrace";
rev = "v${version}";
hash = "sha256-AIjWF+MRnzEwvi1+XBxeiyJIX6059Hy8GgVwjZum2cc=";
hash = "sha256-Jvl8Up3IH2/G0QMb0pZmQ2SSXOmjTj08KXoJXOR3Z48=";
};
buildInputs = with llvmPackages; [
+1 -1
View File
@@ -150,7 +150,7 @@ stdenv.mkDerivation (finalAttrs: {
preFixup =
let
libs = [ vulkan-loader ] ++ cubeb.passthru.backendLibs;
libs = [ vulkan-loader ];
in
''
gappsWrapperArgs+=(
+3 -3
View File
@@ -10,17 +10,17 @@
rustPlatform.buildRustPackage rec {
pname = "cloud-hypervisor";
version = "45.0";
version = "46.0";
src = fetchFromGitHub {
owner = "cloud-hypervisor";
repo = "cloud-hypervisor";
rev = "v${version}";
hash = "sha256-PmgHO3gRE/LfLiRC+sAQXKUeclweVUNJV2ihpkvx0Wg=";
hash = "sha256-3jFZgcTyjbAB4Ka8ZHeqorlVTkAvXJ2No32038xK0Pc=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-h9ydLEp7GpW5jMkt5jObR09lPWGs+rmvdoEZntIZwxY=";
cargoHash = "sha256-Zllj6HGRgI1tT8EODGOpSgmw3F89ie9Y1hChTrvwskg=";
separateDebugInfo = true;
+2 -2
View File
@@ -16,7 +16,7 @@
buildGoModule rec {
pname = "containerd";
version = "2.0.5";
version = "2.1.0";
outputs = [
"out"
@@ -27,7 +27,7 @@ buildGoModule rec {
owner = "containerd";
repo = "containerd";
tag = "v${version}";
hash = "sha256-BY6lIzTlJbBbeIxCtSd7NcYVEWta3VNMmHmH97ksGsE=";
hash = "sha256-5Fd9LrpJUf5MEtfQaRM6zo5C8RUsOasR2NHCDj8vMBk=";
};
postPatch = "patchShebangs .";
+8 -9
View File
@@ -8,17 +8,16 @@
}:
rustPlatform.buildRustPackage rec {
pname = "cook-cli";
version = "0.10.0";
version = "0.12.1";
src = fetchFromGitHub {
owner = "cooklang";
repo = "cookcli";
rev = "v${version}";
hash = "sha256-1m2+etJG+33fPTxBF8qT/U9WiZGcSn9r0WlK5PDL6/Q=";
hash = "sha256-2vY68PUoHDyyH3hJ/Fvjxbof7RzWFWYTg1UhsjWNpww=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-3tWVCP80a6odmi9C0klLbfO5UmdFczyUY8KQSaMIyw4=";
cargoHash = "sha256-H4soSp9fDwrqcv3eL5WqGYHWAt07gyVLoEVp1VbYchQ=";
nativeBuildInputs = [
pkg-config
@@ -39,7 +38,7 @@ rustPlatform.buildRustPackage rec {
passthru.ui = buildNpmPackage {
name = "ui";
src = "${src}/ui";
npmDepsHash = "sha256-uMyOAYLVHhY4ytvEFvVzdoQ7ExzQ4sH+ZtDrEacu5bk=";
npmDepsHash = "sha256-zx8G6Raop1EZAVy1YCF5ag5aL9NutRxbPfTARmjP2SY=";
makeCacheWritable = true;
npmFlags = [ "--legacy-peer-deps" ];
installPhase = ''
@@ -49,13 +48,13 @@ rustPlatform.buildRustPackage rec {
'';
};
meta = with lib; {
meta = {
changelog = "https://github.com/cooklang/cookcli/releases/tag/v${version}";
description = "Suite of tools to create shopping lists and maintain recipes";
homepage = "https://cooklang.org/";
license = [ licenses.mit ];
license = lib.licenses.mit;
mainProgram = "cook";
maintainers = [ maintainers.emilioziniades ];
platforms = platforms.linux ++ platforms.darwin;
maintainers = [ lib.maintainers.emilioziniades ];
platforms = lib.platforms.linux ++ lib.platforms.darwin;
};
}
@@ -0,0 +1,208 @@
From e0cbc1049b9a3a3322cd48d32af148f87d5007c2 Mon Sep 17 00:00:00 2001
From: Marcin Serwin <marcin@serwin.dev>
Date: Mon, 19 May 2025 22:36:53 +0200
Subject: [PATCH] cmake: add pkg-config file generation
Signed-off-by: Marcin Serwin <marcin@serwin.dev>
---
CMakeLists.txt | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
libcubeb.pc.in | 12 ++++++++++++
2 files changed, 62 insertions(+)
create mode 100644 libcubeb.pc.in
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 07618fa..6470837 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -23,6 +23,17 @@ if(NOT CMAKE_BUILD_TYPE)
"Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel." FORCE)
endif()
+set(private_requires)
+set(private_libs)
+set(private_libs_flags)
+if(UNIX AND NOT APPLE)
+ if(BSD OR ANDROID)
+ list(APPEND private_libs c++)
+ else()
+ list(APPEND private_libs stdc++)
+ endif()
+endif()
+
set(CMAKE_C_STANDARD 99)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
@@ -141,6 +152,7 @@ if(NOT BUNDLE_SPEEX)
pkg_check_modules(speexdsp IMPORTED_TARGET speexdsp)
if(speexdsp_FOUND)
add_library(speex ALIAS PkgConfig::speexdsp)
+ list(APPEND private_requires speexdsp)
endif()
endif()
endif()
@@ -155,6 +167,7 @@ if(NOT TARGET speex)
EXPORT=
RANDOM_PREFIX=speex
)
+ list(APPEND private_libs speex)
endif()
# $<BUILD_INTERFACE:> required because of https://gitlab.kitware.com/cmake/cmake/-/issues/15415
@@ -166,6 +179,7 @@ include(CheckIncludeFiles)
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads)
target_link_libraries(cubeb PRIVATE Threads::Threads)
+list(APPEND private_libs ${CMAKE_THREAD_LIBS_INIT})
if(LAZY_LOAD_LIBS)
check_include_files(pulse/pulseaudio.h USE_PULSE)
@@ -176,6 +190,7 @@ if(LAZY_LOAD_LIBS)
if(USE_PULSE OR USE_ALSA OR USE_JACK OR USE_SNDIO OR USE_AAUDIO)
target_link_libraries(cubeb PRIVATE ${CMAKE_DL_LIBS})
+ list(APPEND private_libs ${CMAKE_DL_LIBS})
if(ANDROID)
target_compile_definitions(cubeb PRIVATE __ANDROID_UNAVAILABLE_SYMBOLS_ARE_WEAK__)
@@ -191,6 +206,7 @@ else()
set(USE_PULSE ON)
target_compile_definitions(cubeb PRIVATE DISABLE_LIBPULSE_DLOPEN)
target_link_libraries(cubeb PRIVATE PkgConfig::libpulse)
+ list(APPEND private_requires libpulse)
endif()
pkg_check_modules(alsa IMPORTED_TARGET alsa)
@@ -198,6 +214,7 @@ else()
set(USE_ALSA ON)
target_compile_definitions(cubeb PRIVATE DISABLE_LIBASOUND_DLOPEN)
target_link_libraries(cubeb PRIVATE PkgConfig::alsa)
+ list(APPEND private_requires alsa)
endif()
pkg_check_modules(jack IMPORTED_TARGET jack)
@@ -205,18 +222,21 @@ else()
set(USE_JACK ON)
target_compile_definitions(cubeb PRIVATE DISABLE_LIBJACK_DLOPEN)
target_link_libraries(cubeb PRIVATE PkgConfig::jack)
+ list(APPEND private_requires jack)
endif()
check_include_files(sndio.h USE_SNDIO)
if(USE_SNDIO)
target_compile_definitions(cubeb PRIVATE DISABLE_LIBSNDIO_DLOPEN)
target_link_libraries(cubeb PRIVATE sndio)
+ list(APPEND private_libs sndio)
endif()
check_include_files(aaudio/AAudio.h USE_AAUDIO)
if(USE_AAUDIO)
target_compile_definitions(cubeb PRIVATE DISABLE_LIBAAUDIO_DLOPEN)
target_link_libraries(cubeb PRIVATE aaudio)
+ list(APPEND private_libs aaudio)
endif()
endif()
@@ -263,6 +283,7 @@ if(USE_AUDIOUNIT)
src/cubeb_osx_run_loop.cpp)
target_compile_definitions(cubeb PRIVATE USE_AUDIOUNIT)
target_link_libraries(cubeb PRIVATE "-framework AudioUnit" "-framework CoreAudio" "-framework CoreServices")
+ list(APPEND private_libs_flags "-framework AudioUnit" "-framework CoreAudio" "-framework CoreServices")
endif()
check_include_files(audioclient.h USE_WASAPI)
@@ -271,6 +292,7 @@ if(USE_WASAPI)
src/cubeb_wasapi.cpp)
target_compile_definitions(cubeb PRIVATE USE_WASAPI)
target_link_libraries(cubeb PRIVATE avrt ole32 ksuser)
+ list(APPEND private_libs avrt ole32 ksuser)
endif()
check_include_files("windows.h;mmsystem.h" USE_WINMM)
@@ -279,6 +301,7 @@ if(USE_WINMM)
src/cubeb_winmm.c)
target_compile_definitions(cubeb PRIVATE USE_WINMM)
target_link_libraries(cubeb PRIVATE winmm)
+ list(APPEND private_libs winmm)
endif()
check_include_files(SLES/OpenSLES.h USE_OPENSL)
@@ -288,6 +311,7 @@ if(USE_OPENSL)
src/cubeb-jni.cpp)
target_compile_definitions(cubeb PRIVATE USE_OPENSL)
target_link_libraries(cubeb PRIVATE OpenSLES)
+ list(APPEND private_libs OpenSLES)
endif()
check_include_files(sys/soundcard.h HAVE_SYS_SOUNDCARD_H)
@@ -303,6 +327,7 @@ if(HAVE_SYS_SOUNDCARD_H)
pkg_check_modules(libbsd-overlay IMPORTED_TARGET libbsd-overlay)
if(libbsd-overlay_FOUND)
target_link_libraries(cubeb PRIVATE PkgConfig::libbsd-overlay)
+ list(APPEND private_requires libbsd-overlay)
set(HAVE_STRLCPY true)
endif()
endif()
@@ -320,6 +345,7 @@ if(USE_AUDIOTRACK)
src/cubeb_audiotrack.c)
target_compile_definitions(cubeb PRIVATE USE_AUDIOTRACK)
target_link_libraries(cubeb PRIVATE log)
+ list(APPEND private_libs log)
endif()
check_include_files(sys/audioio.h USE_SUN)
@@ -335,6 +361,7 @@ if(USE_KAI)
src/cubeb_kai.c)
target_compile_definitions(cubeb PRIVATE USE_KAI)
target_link_libraries(cubeb PRIVATE kai)
+ list(APPEND private_libs kai)
endif()
if(USE_PULSE AND USE_PULSE_RUST)
@@ -452,3 +479,26 @@ add_custom_target(clang-format-check
| xargs -0 ${CLANG_FORMAT_BINARY} -Werror -n
COMMENT "Check formatting with clang-format"
VERBATIM)
+
+
+list(TRANSFORM private_libs PREPEND "-l")
+string(JOIN " " CUBEB_PC_PRIVATE_LIBS ${private_libs} ${private_libs_flags})
+
+string(JOIN " " CUBEB_PC_PRIVATE_REQUIRES ${private_requires})
+
+if(IS_ABSOLUTE "${CMAKE_INSTALL_INCLUDEDIR}")
+ set(CUBEB_PC_INCLUDEDIR "${CMAKE_INSTALL_INCLUDEDIR}")
+else()
+ set(CUBEB_PC_INCLUDEDIR "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}")
+endif()
+if(IS_ABSOLUTE "${CMAKE_INSTALL_LIBDIR}")
+ set(CUBEB_PC_LIBDIR "${CMAKE_INSTALL_LIBDIR}")
+else()
+ set(CUBEB_PC_LIBDIR "\${prefix}/${CMAKE_INSTALL_LIBDIR}")
+endif()
+
+configure_file(libcubeb.pc.in libcubeb.pc @ONLY)
+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/libcubeb.pc"
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
+)
+
diff --git a/libcubeb.pc.in b/libcubeb.pc.in
new file mode 100644
index 0000000..2310ae6
--- /dev/null
+++ b/libcubeb.pc.in
@@ -0,0 +1,12 @@
+prefix=@CMAKE_INSTALL_PREFIX@
+exec_prefix=${prefix}
+libdir=@CUBEB_PC_LIBDIR@
+includedir=@CUBEB_PC_INCLUDEDIR@
+
+Name: libcubeb
+Description: Cross platform audio library
+Version: @PROJECT_VERSION@
+Requires.private: @CUBEB_PC_PRIVATE_REQUIRES@
+Libs: -L${libdir} -lcubeb
+Libs.private: @CUBEB_PC_PRIVATE_LIBS@
+Cflags: -I${includedir}
--
2.49.0
@@ -0,0 +1,31 @@
From 4f8dff52e99bdd70d07d7cb47d357bb91dc5f1a9 Mon Sep 17 00:00:00 2001
From: Marcin Serwin <marcin@serwin.dev>
Date: Sat, 24 May 2025 16:20:51 +0200
Subject: [PATCH] cmake: don't hardcode "include" as the includedir
When the default CMAKE_INSTALL_INCLUDEDIR is changed
headers are installed to a different location, however, the
INTERFACE_INCLUDE_DIRECTORIES in exported cmake configuration still
point to <prefix>/include.
Signed-off-by: Marcin Serwin <marcin@serwin.dev>
---
CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 07618fa..bdf2212 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -91,7 +91,7 @@ add_library(cubeb
src/cubeb_utils.cpp
)
target_include_directories(cubeb
- PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> $<INSTALL_INTERFACE:include>
+ PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
)
set_target_properties(cubeb PROPERTIES
VERSION ${cubeb_VERSION}
--
2.49.0
+54 -43
View File
@@ -2,6 +2,7 @@
lib,
stdenv,
fetchFromGitHub,
unstableGitUpdater,
cmake,
pkg-config,
alsa-lib,
@@ -9,80 +10,90 @@
libpulseaudio,
sndio,
speexdsp,
lazyLoad ? !stdenv.hostPlatform.isDarwin,
validatePkgConfig,
# passthru.tests
testers,
pcsx2,
duckstation,
alsaSupport ? !stdenv.hostPlatform.isDarwin,
pulseSupport ? !stdenv.hostPlatform.isDarwin,
jackSupport ? !stdenv.hostPlatform.isDarwin,
sndioSupport ? !stdenv.hostPlatform.isDarwin,
buildSharedLibs ? true,
enableShared ? !stdenv.hostPlatform.isStatic,
}:
assert lib.assertMsg (
stdenv.hostPlatform.isDarwin -> !lazyLoad
) "cubeb: lazyLoad is inert on Darwin";
let
backendLibs =
lib.optional alsaSupport alsa-lib
++ lib.optional jackSupport jack2
++ lib.optional pulseSupport libpulseaudio
++ lib.optional sndioSupport sndio;
in
stdenv.mkDerivation {
stdenv.mkDerivation (finalAttrs: {
pname = "cubeb";
version = "unstable-2022-10-18";
version = "0-unstable-2025-04-02";
src = fetchFromGitHub {
owner = "mozilla";
repo = "cubeb";
rev = "27d2a102b0b75d9e49d43bc1ea516233fb87d778";
hash = "sha256-q+uz1dGU4LdlPogL1nwCR/KuOX4Oy3HhMdA6aJylBRk=";
rev = "975a727e5e308a04cfb9ecdf7ddaf1150ea3f733";
hash = "sha256-3IP++tdiJUwXR6t5mf/MkPd524K/LYESNMkQ8vy10jo=";
};
outputs = [
"out"
"lib"
"dev"
];
nativeBuildInputs = [
cmake
pkg-config
validatePkgConfig
];
buildInputs = [ speexdsp ] ++ lib.optionals (!stdenv.hostPlatform.isDarwin) backendLibs;
buildInputs =
[ speexdsp ]
# In the default configuration these inputs are lazy-loaded. If your package builds a vendored cubeb please make
# sure to include these in the runtime LD path.
++ lib.optional alsaSupport alsa-lib
++ lib.optional jackSupport jack2
++ lib.optional pulseSupport libpulseaudio
++ lib.optional sndioSupport sndio;
patches = [
# https://github.com/mozilla/cubeb/pull/813
./0001-cmake-add-pkg-config-file-generation.patch
# https://github.com/mozilla/cubeb/pull/814
./0001-cmake-don-t-hardcode-include-as-the-includedir.patch
];
cmakeFlags = [
(lib.cmakeBool "BUILD_SHARED_LIBS" buildSharedLibs)
"-DBUILD_TESTS=OFF" # tests require an audio server
"-DBUNDLE_SPEEX=OFF"
"-DUSE_SANITIZERS=OFF"
(lib.cmakeBool "BUILD_SHARED_LIBS" enableShared)
(lib.cmakeBool "BUILD_TESTS" false) # tests require an audio server
(lib.cmakeBool "BUNDLE_SPEEX" false)
(lib.cmakeBool "USE_SANITIZERS" false)
# Whether to lazily load libraries with dlopen()
"-DLAZY_LOAD_LIBS=${if lazyLoad then "ON" else "OFF"}"
(lib.cmakeBool "LAZY_LOAD_LIBS" false)
];
passthru = {
# For downstream users when lazyLoad is true
backendLibs = lib.optionals lazyLoad backendLibs;
updateScript = unstableGitUpdater { hardcodeZeroVersion = true; };
tests = {
# These packages depend on a patched version of cubeb
inherit pcsx2 duckstation;
pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
};
};
postInstall = ''
# TODO: remove after https://github.com/mozilla/cubeb/pull/813 is merged
mkdir -p $out/lib/pkgconfig/
echo > $out/lib/pkgconfig/libcubeb.pc \
"Name: libcubeb
Description: Cross platform audio library
Version: 0.0.0
Requires.private: libpulse
Libs: -L"$out/lib" -lcubeb
Libs.private: -lstdc++"
'';
meta = with lib; {
meta = {
description = "Cross platform audio library";
mainProgram = "cubeb-test";
homepage = "https://github.com/mozilla/cubeb";
license = licenses.isc;
platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [
license = lib.licenses.isc;
platforms = with lib.platforms; linux ++ darwin;
maintainers = with lib.maintainers; [
zhaofengli
marcin-serwin
];
pkgConfigModules = [ "libcubeb" ];
};
}
})
-36
View File
@@ -1,36 +0,0 @@
{
lib,
stdenv,
fetchurl,
libxml2,
openssl,
bzip2,
zlib,
}:
stdenv.mkDerivation rec {
pname = "dclib";
version = "0.3.7";
src = fetchurl {
url = "ftp://ftp.debian.nl/pub/freebsd/ports/distfiles/dclib-${version}.tar.bz2";
sha256 = "02jdzm5hqzs1dv2rd596vgpcjaapm55pqqapz5m94l30v4q72rfc";
};
buildInputs = [
libxml2
openssl
bzip2
zlib
];
meta = with lib; {
description = "Peer-to-Peer file sharing client";
homepage = "http://dcgui.berlios.de";
platforms = platforms.linux;
license = [
licenses.openssl
licenses.gpl2
];
};
}
+8 -11
View File
@@ -6,9 +6,7 @@
callPackage,
cmake,
cpuinfo,
cubeb,
curl,
discord-rpc,
extra-cmake-modules,
libXrandr,
libbacktrace,
@@ -42,6 +40,7 @@ llvmPackages.stdenv.mkDerivation (finalAttrs: {
./002-hardcode-vars.diff
# Fix NEON intrinsics usage
./003-fix-NEON-intrinsics.patch
./remove-cubeb-vendor.patch
];
nativeBuildInputs = [
@@ -57,6 +56,7 @@ llvmPackages.stdenv.mkDerivation (finalAttrs: {
buildInputs = [
SDL2
cpuinfo
sources.cubeb
curl
libXrandr
libbacktrace
@@ -70,7 +70,7 @@ llvmPackages.stdenv.mkDerivation (finalAttrs: {
sources.soundtouch-patched
sources.spirv-cross-patched
wayland
] ++ cubeb.passthru.backendLibs;
];
cmakeFlags = [
(lib.cmakeBool "BUILD_TESTS" true)
@@ -115,14 +115,11 @@ llvmPackages.stdenv.mkDerivation (finalAttrs: {
qtWrapperArgs =
let
libPath = lib.makeLibraryPath (
[
sources.shaderc-patched
sources.spirv-cross-patched
vulkan-loader
]
++ cubeb.passthru.backendLibs
);
libPath = lib.makeLibraryPath ([
sources.shaderc-patched
sources.spirv-cross-patched
vulkan-loader
]);
in
[
"--prefix LD_LIBRARY_PATH : ${libPath}"
@@ -0,0 +1,29 @@
diff --git a/dep/CMakeLists.txt b/dep/CMakeLists.txt
index af35687..8347825 100644
--- a/dep/CMakeLists.txt
+++ b/dep/CMakeLists.txt
@@ -22,9 +22,8 @@ add_subdirectory(rcheevos EXCLUDE_FROM_ALL)
disable_compiler_warnings_for_target(rcheevos)
add_subdirectory(rapidyaml EXCLUDE_FROM_ALL)
disable_compiler_warnings_for_target(rapidyaml)
-add_subdirectory(cubeb EXCLUDE_FROM_ALL)
-disable_compiler_warnings_for_target(cubeb)
-disable_compiler_warnings_for_target(speex)
+find_package(cubeb REQUIRED GLOBAL)
+add_library(cubeb ALIAS cubeb::cubeb)
add_subdirectory(kissfft EXCLUDE_FROM_ALL)
disable_compiler_warnings_for_target(kissfft)
diff --git a/src/util/cubeb_audio_stream.cpp b/src/util/cubeb_audio_stream.cpp
index 85579c4..526d168 100644
--- a/src/util/cubeb_audio_stream.cpp
+++ b/src/util/cubeb_audio_stream.cpp
@@ -261,7 +261,7 @@ std::vector<std::pair<std::string, std::string>> AudioStream::GetCubebDriverName
std::vector<std::pair<std::string, std::string>> names;
names.emplace_back(std::string(), TRANSLATE_STR("AudioStream", "Default"));
- const char** cubeb_names = cubeb_get_backend_names();
+ const char*const * cubeb_names = cubeb_get_backend_names();
for (u32 i = 0; cubeb_names[i] != nullptr; i++)
names.emplace_back(cubeb_names[i], cubeb_names[i]);
return names;
+12
View File
@@ -9,6 +9,7 @@
stdenv,
cmake,
ninja,
cubeb,
}:
{
@@ -163,4 +164,15 @@
platforms = lib.platforms.linux;
};
});
cubeb = cubeb.overrideAttrs (old: {
pname = "cubeb-patched-for-duckstation";
patches = (old.patches or [ ]) ++ [
(fetchpatch {
url = "https://github.com/PCSX2/pcsx2/commit/430e31abe4a9e09567cb542f1416b011bb9b6ef9.patch";
stripLen = 2;
hash = "sha256-bbH0c1X3lMeX6hfNKObhcq5xraFpicFV3mODQGYudvQ=";
})
];
});
}
@@ -1,29 +0,0 @@
From 41e750142b44465f3af197b7e2f0d6f54fc48c2d Mon Sep 17 00:00:00 2001
From: OPNA2608 <opna2608@protonmail.com>
Date: Mon, 21 Oct 2024 17:42:24 +0200
Subject: [PATCH] Mark Lua symbols as C symbols
Otherwise linking against our Lua built by a C-compiler fails due to the symbols being resolved as C++ symbols.
---
interpreter.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/interpreter.h b/interpreter.h
index 6c405a1..c471ecb 100644
--- a/interpreter.h
+++ b/interpreter.h
@@ -9,9 +9,11 @@
#define INTERPRETER_H_
// Due to longjmp behaviour, we must build Lua as C++ to avoid UB
+extern "C" {
#include <lua.h>
#include <lualib.h>
#include <lauxlib.h>
+}
#include "common.h"
#include <unordered_map>
--
2.44.1
+2 -2
View File
@@ -36,13 +36,13 @@
stdenv.mkDerivation rec {
pname = "exaile";
version = "4.1.3";
version = "4.1.4";
src = fetchFromGitHub {
owner = "exaile";
repo = "exaile";
rev = version;
sha256 = "sha256-9SK0nvGdz2j6qp1JTmSuLezxX/kB93CZReSfAnfKZzg=";
sha256 = "sha256-iyK2txutlWe67CyfKuyesBrYQypkS5FOf1ZWUkRCq24=";
};
nativeBuildInputs =
+1
View File
@@ -66,6 +66,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = with lib; {
homepage = "https://flashprog.org";
description = "Utility for reading, writing, erasing and verifying flash ROM chips";
changelog = "https://flashprog.org/wiki/Flashprog/v${finalAttrs.version}";
license = with licenses; [ gpl2 ];
maintainers = with maintainers; [
felixsinger
+2 -2
View File
@@ -7,14 +7,14 @@
python3Packages.buildPythonApplication rec {
pname = "flexget";
version = "3.15.42";
version = "3.16.1";
pyproject = true;
src = fetchFromGitHub {
owner = "Flexget";
repo = "Flexget";
tag = "v${version}";
hash = "sha256-ON0j5HYNbpHSwTMJgX/xPLjzLZXRDk1YogbhcwugxJE=";
hash = "sha256-IqkzMbWc8GiSo00sMrTugE+G552769WFz+GJbYIPOvs=";
};
pythonRelaxDeps = true;
+2 -2
View File
@@ -10,13 +10,13 @@
stdenv.mkDerivation rec {
pname = "gensio";
version = "2.8.14";
version = "2.8.15";
src = fetchFromGitHub {
owner = "cminyard";
repo = pname;
rev = "v${version}";
sha256 = "sha256-vxa1r0vloiqMrGhXriIbBfJC6wmm54YWg0nCnB8MDG0=";
sha256 = "sha256-EDa95r8x5yIXibJigJXR3PCYTTvJlqB6XBN1RZHq6KM=";
};
passthru = {
+10
View File
@@ -0,0 +1,10 @@
{ wrapCC, gcc15 }:
wrapCC (
gcc15.cc.override {
name = "gfortran";
langFortran = true;
langCC = false;
langC = false;
profiledCompiler = false;
}
)
+3 -3
View File
@@ -11,13 +11,13 @@
buildNpmPackage rec {
pname = "ghostfolio";
version = "2.161.0";
version = "2.162.0";
src = fetchFromGitHub {
owner = "ghostfolio";
repo = "ghostfolio";
tag = version;
hash = "sha256-fN901bpiFz1sAEBv9MKzpgfr7TFa6s3ghT9v44bXZzM=";
hash = "sha256-2j7haypj1Bl0T0ppBCo+KDaMup+1dOuI2xouaJuVtec=";
# populate values that require us to use git. By doing this in postFetch we
# can delete .git afterwards and maintain better reproducibility of the src.
leaveDotGit = true;
@@ -27,7 +27,7 @@ buildNpmPackage rec {
'';
};
npmDepsHash = "sha256-vaIQ6SdsBGfiIkvz+dE9wR/KToobFyWaZOuFHPgLk94=";
npmDepsHash = "sha256-IYHV7PEyfkGtwpROHITulqBEC6NgA5CumIykKtoamU8=";
nativeBuildInputs = [
prisma
@@ -7,16 +7,16 @@
buildGoModule (finalAttrs: {
pname = "github-mcp-server";
version = "0.3.0";
version = "0.4.0";
src = fetchFromGitHub {
owner = "github";
repo = "github-mcp-server";
tag = "v${finalAttrs.version}";
hash = "sha256-GXE6ZmCDPjDCpCrrX0DcDdcLVgM+hHVWzihMYqUQaSI=";
hash = "sha256-7bxphEQOewy7RZIfKp6aEIPvhgvq4AsU8FozsDsGVgM=";
};
vendorHash = "sha256-SWzKE1pliZd3fQrbh8JpoepT/bKpZHuq7WZ8LEzNn50=";
vendorHash = "sha256-yUg+4Z8e9j4wpDD+5XG7pZFnxibGiI5Gks1CEQT2E3g=";
ldflags = [
"-s"
-44
View File
@@ -1,44 +0,0 @@
{
lib,
stdenv,
fetchurl,
pkg-config,
dbus-glib,
audacious,
gtk2,
gsl,
libaudclient,
libmpdclient,
}:
stdenv.mkDerivation rec {
pname = "gjay";
version = "0.3.2";
src = fetchurl {
url = "mirror://sourceforge/project/gjay/${pname}-${version}.tar.gz";
sha256 = "1a1vv4r0vnxjdyl0jyv7gga3zfd5azxlwjm1l6hjrf71lb228zn8";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [
libmpdclient
dbus-glib
audacious
gtk2
gsl
libaudclient
];
hardeningDisable = [ "format" ];
meta = with lib; {
description = "Generates playlists such that each song sounds good following the previous song";
homepage = "https://gjay.sourceforge.net/";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ pSub ];
platforms = with platforms; linux;
mainProgram = "gjay";
};
}
+2 -2
View File
@@ -27,12 +27,12 @@
stdenv.mkDerivation (finalAttrs: {
pname = "glamoroustoolkit";
version = "1.1.22";
version = "1.1.24";
src = fetchzip {
url = "https://github.com/feenkcom/gtoolkit-vm/releases/download/v${finalAttrs.version}/GlamorousToolkit-x86_64-unknown-linux-gnu.zip";
stripRoot = false;
hash = "sha256-+YFQU7qCj2hpRuBpUn0hn5GNq+T0DHQFZwEoLu1FY4c=";
hash = "sha256-dTJ2YMNZwpZj3ZDWegjFr9aiaUtTpN8gY1wq5SAoVvs=";
};
nativeBuildInputs = [
+6 -5
View File
@@ -2,7 +2,7 @@
autoPatchelfHook,
cairo,
dbus,
fetchurl,
requireFile,
fontconfig,
freetype,
glib,
@@ -24,11 +24,12 @@
stdenv.mkDerivation rec {
pname = "ida-free";
version = "9.0sp1";
version = "9.1";
src = fetchurl {
url = "https://archive.org/download/ida-free-pc_90sp1_x64linux/ida-free-pc_90sp1_x64linux.run";
hash = "sha256-e5uCcJVn6xDwmVm14QCBUvNcB1MpVxNA2WcLyuK23vo=";
src = requireFile {
name = "ida-free-pc_${lib.replaceStrings [ "." ] [ "" ] version}_x64linux.run";
url = "https://my.hex-rays.com/dashboard/download-center/${version}/ida-free";
hash = "sha256-DIkxr9yD6yvziO8XHi0jt80189bXueRxmSFyq2LM0cg=";
};
nativeBuildInputs = [
+12 -12
View File
@@ -1,26 +1,26 @@
{
"version": "1.132.3",
"hash": "sha256-QwQSqWSQ82R5LrbyerAZflDRM2DS+rpA8E6uzxQbs48=",
"version": "1.133.1",
"hash": "sha256-8jqFiVNj494GQInfLDTXm43mO+H9YuxPwIqUJFOwwW0=",
"components": {
"cli": {
"npmDepsHash": "sha256-7CWJEEr/6+Duc90Qww6rhVLXEtxz3hymLcQIzv3YPg0=",
"version": "2.2.65"
"npmDepsHash": "sha256-oDgO8kb/8VqOAGUfG70x2K58j+OsZe+CjurEShiMeCU=",
"version": "2.2.67"
},
"server": {
"npmDepsHash": "sha256-CdE8H8+uAlthHhko5Ir+BETqkZoNzpimgHB2gVJbus8=",
"version": "1.132.3"
"npmDepsHash": "sha256-3beEul7d4OfByrcm4u28Qv7KTdPW8GJ2gnHfQHT9LY0=",
"version": "1.133.1"
},
"web": {
"npmDepsHash": "sha256-3UoNfa2P4bVFQSQTSbRacSxh2UbPokDHqveCHt9bnko=",
"version": "1.132.3"
"npmDepsHash": "sha256-xvSh0NGm7O+lunbHcE7aGv2OzQNVFlHWIeUAQPF218c=",
"version": "1.133.1"
},
"open-api/typescript-sdk": {
"npmDepsHash": "sha256-Rfds2/c8Q6KfWzyztxLcKS40JKOMh04JzMICsDvqMgs=",
"version": "1.132.3"
"npmDepsHash": "sha256-y2jwNlqGUIsr3DfNSpEr8BFdP7e8xvNUhBQ52ypf0YI=",
"version": "1.133.1"
},
"geonames": {
"timestamp": "20250428153140",
"hash": "sha256-RDetKDf/qFRwlB+Jo5ivD6yp1paMWFJeUf1Vft70Kdw="
"timestamp": "20250523191247",
"hash": "sha256-TiqUyYre3gGv3yJMoh6B+RZWu1AiMpgSZSW16NTI+Eg="
}
}
}
+52 -21
View File
@@ -1,5 +1,5 @@
diff --git a/Tools/CMake/Libraries.cmake b/Tools/CMake/Libraries.cmake
index cc4681a..f484013 100644
index a95ef78..6ee84cd 100644
--- a/Tools/CMake/Libraries.cmake
+++ b/Tools/CMake/Libraries.cmake
@@ -67,7 +67,7 @@ if((NOT LibArchive_FOUND) AND (NOT WIN32))
@@ -11,36 +11,67 @@ index cc4681a..f484013 100644
find_package(
Boost 1.78 REQUIRED
COMPONENTS filesystem
@@ -178,10 +178,10 @@ if(LINUX)
set(LIBREADSTAT_INCLUDE_DIRS /app/include)
set(LIBREADSTAT_LIBRARY_DIRS /app/lib)
else()
- set(LIBREADSTAT_INCLUDE_DIRS /usr/local/include /usr/include)
+ set(LIBREADSTAT_INCLUDE_DIRS @readstat@/include /usr/include)
# The last two library paths handle the two most common multiarch cases.
# Other multiarch-compliant paths may come up but should be rare.
- set(LIBREADSTAT_LIBRARY_DIRS /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/aarch64-linux-gnu)
+ set(LIBREADSTAT_LIBRARY_DIRS @readstat@/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/aarch64-linux-gnu)
@@ -185,7 +185,7 @@ if(LINUX)
endif()
message(CHECK_START "Looking for libreadstat.so")
- find_file(LIBREADSTAT_LIBRARIES libreadstat.so
+ find_library(LIBREADSTAT_LIBRARIES libreadstat.so
HINTS ${LIBREADSTAT_LIBRARY_DIRS} REQUIRED)
if(EXISTS ${LIBREADSTAT_LIBRARIES})
diff --git a/Tools/CMake/Programs.cmake b/Tools/CMake/Programs.cmake
index dbd089d..ef6857a 100644
index bfdc8dc..af5ac03 100644
--- a/Tools/CMake/Programs.cmake
+++ b/Tools/CMake/Programs.cmake
@@ -39,6 +39,7 @@ endif()
@@ -38,8 +38,9 @@ if(NOT WIN32)
endif()
# ------ Linux Tools/Programs
+#[[
if(LINUX)
-
-if(LINUX)
+# We don't need to check for any dependencies that are used to build R packages
+# since we build them separately
+if(false)
message(CHECK_START "Looking for 'gfortran'")
@@ -81,6 +82,7 @@ if(LINUX)
endif()
find_program(
diff --git a/Tools/CMake/R.cmake b/Tools/CMake/R.cmake
index 9ae27d4..64fd96a 100644
--- a/Tools/CMake/R.cmake
+++ b/Tools/CMake/R.cmake
@@ -841,11 +841,6 @@ message(STATUS "R_CPP_INCLUDES_LIBRARY = ${R_CPP_INCLUDES_LIBRARY}")
configure_file(${PROJECT_SOURCE_DIR}/Modules/setup_renv.R.in
${SCRIPT_DIRECTORY}/setup_renv.R @ONLY)
endif()
+]]#
-execute_process(
- COMMAND_ECHO STDOUT
- #ERROR_QUIET OUTPUT_QUIET
- WORKING_DIRECTORY ${R_HOME_PATH}
- COMMAND ${R_EXECUTABLE} --slave --no-restore --no-save --file=${SCRIPT_DIRECTORY}/setup_renv.R)
# ----------------------
if(APPLE)
# Patch renv
@@ -867,11 +862,6 @@ endif()
configure_file(${PROJECT_SOURCE_DIR}/Modules/setup_rcpp_rinside.R.in
${SCRIPT_DIRECTORY}/setup_rcpp_rinside.R @ONLY)
-execute_process(
- COMMAND_ECHO STDOUT
- #ERROR_QUIET OUTPUT_QUIET
- WORKING_DIRECTORY ${R_HOME_PATH}
- COMMAND ${R_EXECUTABLE} --slave --no-restore --no-save --file=${SCRIPT_DIRECTORY}/setup_rcpp_rinside.R)
if(APPLE)
# Patch RInside and RCpp
@@ -892,8 +882,8 @@ endif()
include(FindRPackagePath)
-find_package_path(RCPP_PATH ${R_CPP_INCLUDES_LIBRARY} "Rcpp")
-find_package_path(RINSIDE_PATH ${R_CPP_INCLUDES_LIBRARY} "RInside")
+find_package_path(RCPP_PATH ${R_LIBRARY_PATH} "Rcpp")
+find_package_path(RINSIDE_PATH ${R_LIBRARY_PATH} "RInside")
set(RENV_PATH "${RENV_LIBRARY}/renv")
+44 -3
View File
@@ -165,6 +165,12 @@ let
src = jasp-src;
sourceRoot = "${jasp-src.name}/Modules/${name}";
propagatedBuildInputs = deps;
# some packages have a .Rprofile that tries to activate renv
# we disable this by removing .Rprofile
postPatch = ''
rm -f .Rprofile
'';
};
in
{
@@ -229,6 +235,20 @@ in
jaspGraphs
jaspSem
];
jaspBFF = buildJaspModule "jaspBFF" [
BFF
jaspBase
jaspGraphs
];
jaspBfpack = buildJaspModule "jaspBfpack" [
BFpack
bain
ggplot2
stringr
coda
jaspBase
jaspGraphs
];
jaspBsts = buildJaspModule "jaspBsts" [
Boom
bsts
@@ -305,6 +325,7 @@ in
conting'
multibridge
ggplot2
interp
jaspBase
jaspGraphs
plyr
@@ -353,6 +374,8 @@ in
ggforce
tidyr
igraph
HDInterval
metafor
];
jaspMachineLearning = buildJaspModule "jaspMachineLearning" [
kknn
@@ -375,6 +398,7 @@ in
jaspBase
jaspGraphs
MASS
mclust
mvnormalTest
neuralnet
network
@@ -385,6 +409,7 @@ in
ROCR
Rtsne
signal
VGAM
];
jaspMetaAnalysis = buildJaspModule "jaspMetaAnalysis" [
dplyr
@@ -406,6 +431,12 @@ in
metamisc
ggmcmc
pema
clubSandwich
CompQuadForm
sp
dfoptim
nleqslv
patchwork
];
jaspMixedModels = buildJaspModule "jaspMixedModels" [
afex
@@ -459,6 +490,8 @@ in
BART
EBMAforecast
imputeTS
scoringRules
scoringutils
];
jaspProcess = buildJaspModule "jaspProcess" [
blavaan
@@ -543,6 +576,7 @@ in
lme4
MASS
psych
mirt
];
jaspRobustTTests = buildJaspModule "jaspRobustTTests" [
RoBTT
@@ -553,16 +587,17 @@ in
jaspSem = buildJaspModule "jaspSem" [
forcats
ggplot2
jaspBase
jaspGraphs
lavaan
cSEM
reshape2
jaspBase
jaspGraphs
semPlot
semTools
stringr
tibble
tidyr
SEMsens
];
jaspSummaryStatistics = buildJaspModule "jaspSummaryStatistics" [
BayesFactor
@@ -579,7 +614,7 @@ in
];
jaspSurvival = buildJaspModule "jaspSurvival" [
survival
survminer
ggsurvfit
jaspBase
jaspGraphs
];
@@ -593,6 +628,12 @@ in
plotrix
plyr
];
jaspTestModule = buildJaspModule "jaspTestModule" [
jaspBase
jaspGraphs
svglite
stringi
];
jaspTimeSeries = buildJaspModule "jaspTimeSeries" [
jaspBase
jaspGraphs
+26 -26
View File
@@ -1,31 +1,34 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
buildEnv,
linkFarm,
replaceVars,
R,
rPackages,
cmake,
ninja,
pkg-config,
boost,
freexl,
libarchive,
readstat,
qt6,
R,
readstat,
rPackages,
}:
let
version = "0.19.1";
version = "0.19.3";
src = fetchFromGitHub {
owner = "jasp-stats";
repo = "jasp-desktop";
rev = "v${version}";
hash = "sha256-SACGyNVxa6rFjloRQrEVtUgujEEF7WYL8Qhw6ZqLwdQ=";
tag = "v${version}";
fetchSubmodules = true;
hash = "sha256-p489Q3jMQ7UWOCdAGskRF9KSLoRSatUwGVfj0/g4aPo=";
};
moduleSet = import ./modules.nix {
@@ -58,25 +61,19 @@ stdenv.mkDerivation {
inherit version src;
patches = [
# remove unused cmake deps, ensure boost is dynamically linked, patch readstat path
(replaceVars ./cmake.patch {
inherit readstat;
})
(fetchpatch {
name = "fix-qt-6.8-crash.patch";
url = "https://github.com/jasp-stats/jasp-desktop/commit/d96a35d262312f72081ac3f96ae8c2ae7c796b0.patch";
hash = "sha256-KcsFy1ImPTHwDKN5Umfoa9CbtQn7B3FNu/Srr0dEJGA=";
})
# - ensure boost is linked dynamically
# - fix readstat's find logic
# - disable some of the renv logic
# - dont't check for dependencies required for building modules
./cmake.patch
];
cmakeFlags = [
"-DGITHUB_PAT=dummy"
"-DGITHUB_PAT_DEF=dummy"
"-DINSTALL_R_FRAMEWORK=OFF"
"-DLINUX_LOCAL_BUILD=OFF"
"-DINSTALL_R_MODULES=OFF"
"-DCUSTOM_R_PATH=${customREnv}"
(lib.cmakeFeature "GITHUB_PAT" "dummy")
(lib.cmakeFeature "GITHUB_PAT_DEF" "dummy")
(lib.cmakeBool "LINUX_LOCAL_BUILD" false)
(lib.cmakeBool "INSTALL_R_MODULES" false)
(lib.cmakeFeature "CUSTOM_R_PATH" "${customREnv}")
];
nativeBuildInputs = [
@@ -87,10 +84,12 @@ stdenv.mkDerivation {
];
buildInputs = [
customREnv
boost
customREnv
freexl
libarchive
readstat
qt6.qtbase
qt6.qtdeclarative
qt6.qtwebengine
@@ -98,6 +97,7 @@ stdenv.mkDerivation {
qt6.qt5compat
];
# needed so that JASPEngine can find libRInside.so
env.NIX_LDFLAGS = "-L${rPackages.RInside}/library/RInside/lib";
postInstall = ''
@@ -107,7 +107,7 @@ stdenv.mkDerivation {
# Remove flatpak proxy script
rm $out/bin/org.jaspstats.JASP
substituteInPlace $out/share/applications/org.jaspstats.JASP.desktop \
--replace-fail "Exec=org.jaspstats.JASP" "Exec=JASP"
--replace-fail "Exec=org.jaspstats.JASP" "Exec=JASP"
# symlink modules from the store
ln -s ${modulesDir} $out/Modules
+2 -2
View File
@@ -18,11 +18,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "jenkins";
version = "2.492.3";
version = "2.504.1";
src = fetchurl {
url = "https://get.jenkins.io/war-stable/${finalAttrs.version}/jenkins.war";
hash = "sha256-kMz1VhM8Nv33ZTrXEPANJIvyiV+fvCbM7g4tO6aBsB8=";
hash = "sha256-gQJtsYsMSq1rYs9AjkxC5Xl2YbQcUXs332BiOOibnfE=";
};
nativeBuildInputs = [ makeWrapper ];
@@ -1,14 +0,0 @@
diff --git a/setup.py b/setup.py
index 9351fc9..75dfb2c 100644
--- a/setup.py
+++ b/setup.py
@@ -66,9 +66,6 @@
"solidpython>=1.1.2",
"commentjson>=0.9"
],
- setup_requires=[
- "versioneer"
- ],
extras_require={
"dev": ["pytest"],
},
+2 -2
View File
@@ -23,7 +23,7 @@
python3.pkgs.buildPythonApplication rec {
pname = "komikku";
version = "1.76.1";
version = "1.77.0";
pyproject = false;
src = fetchFromGitea {
@@ -31,7 +31,7 @@ python3.pkgs.buildPythonApplication rec {
owner = "valos";
repo = "Komikku";
tag = "v${version}";
hash = "sha256-js9mywNlv13ZDmvoBt9yuXJePaSuKOimek3uNlVIeHM=";
hash = "sha256-UTAK8gzgOEuYw1S4htoInr8pCkx5s+/cblOfk/F6a4M=";
};
nativeBuildInputs = [
+2 -2
View File
@@ -7,13 +7,13 @@
stdenv.mkDerivation rec {
pname = "libspnav";
version = "1.1";
version = "1.2";
src = fetchFromGitHub {
owner = "FreeSpacenav";
repo = "libspnav";
tag = "v${version}";
hash = "sha256-qBewSOiwf5iaGKLGRWOQUoHkUADuH8Q1mJCLiWCXmuQ=";
hash = "sha256-4ESzH2pMTGoDI/AAX8Iz/MVhxQD8q5cg9I91ryUi5Ys=";
};
buildInputs = [ libX11 ];
+2 -2
View File
@@ -7,11 +7,11 @@
appimageTools.wrapType2 rec {
pname = "lunarclient";
version = "3.3.7";
version = "3.3.8";
src = fetchurl {
url = "https://launcherupdates.lunarclientcdn.com/Lunar%20Client-${version}.AppImage";
hash = "sha512-YnNqFuRRaRnVqNlD1VaWbx1TaTpD851altu9YamXX0q2ZohtGzB7lzE2xhllbS61E71jSUDasLUlbyyVqGTrJw==";
hash = "sha512-H4v2fpOvjU8Cxxf0kxHf2CB/NwjarMp8EjjfGb2IbrVM0aXQQyvW+cHRwfsLnkyOxNYLWNC50Px0Ur/0rpj4bg==";
};
nativeBuildInputs = [ makeWrapper ];
+3 -3
View File
@@ -7,7 +7,7 @@
installShellFiles,
}:
let
version = "0.4.49";
version = "0.4.50";
in
rustPlatform.buildRustPackage rec {
inherit version;
@@ -17,11 +17,11 @@ rustPlatform.buildRustPackage rec {
owner = "rust-lang";
repo = "mdBook";
tag = "v${version}";
hash = "sha256-X+ptqzAOjCX2Tt5jDfH/jdUy99WrITGfzDj+F2DoI5w=";
hash = "sha256-ooXfYXqE12wTxrrHKF0IO8JNY7P4sPplrnhVJ6kEUyI=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-ZPJkSMcxyTOivfwThPfaO6oRkfewH048rrCDCwCtE8c=";
cargoHash = "sha256-kyk7fwuR5A0GEGUw+W81IjwDNsa3I2DT3SFnT75IvLs=";
nativeBuildInputs = [ installShellFiles ];
+2 -2
View File
@@ -8,13 +8,13 @@
stdenvNoCC.mkDerivation rec {
pname = "mint-themes";
version = "2.2.3";
version = "2.2.6";
src = fetchFromGitHub {
owner = "linuxmint";
repo = "mint-themes";
rev = version;
hash = "sha256-QCf0hF1qtTiYo9F/M3UiCrGj6EPSrrSWZaLXqH0UNWs=";
hash = "sha256-O1ky967RWrd5L2RGl7SC2ZsvaM8FMmSmroJKcItD+ck=";
};
nativeBuildInputs = [
+2 -2
View File
@@ -42,13 +42,13 @@
stdenv.mkDerivation rec {
pname = "mlt";
version = "7.30.0";
version = "7.32.0";
src = fetchFromGitHub {
owner = "mltframework";
repo = "mlt";
rev = "v${version}";
hash = "sha256-z1bW+hcVeMeibC1PUS5XNpbkNB+75YLoOWZC2zuDol4=";
hash = "sha256-8T5FXXGs7SxL6nD+R1Q/0Forsdp5Xux4S3VLvgqXzw8=";
# The submodule contains glaxnimate code, since MLT uses internally some functions defined in glaxnimate.
# Since glaxnimate is not available as a library upstream, we cannot remove for now this dependency on
# submodules until upstream exports glaxnimate as a library: https://gitlab.com/mattbas/glaxnimate/-/issues/545
+15 -13
View File
@@ -12,18 +12,19 @@
}:
python3Packages.buildPythonApplication rec {
pname = "monophony";
version = "2.15.0";
pyproject = false;
version = "3.3.3";
pyproject = true;
sourceRoot = "${src.name}/source";
src = fetchFromGitLab {
owner = "zehkira";
repo = "monophony";
rev = "v${version}";
hash = "sha256-fC+XXOGBpG5pIQW1tCNtQaptBCyLM+YGgsZLjWrMoDA=";
hash = "sha256-ET0cygX/r/YXGWpPU01FnBoLRtjo1ddXEiVIva71aE8=";
};
pythonPath = with python3Packages; [
sourceRoot = "${src.name}/source";
dependencies = with python3Packages; [
mpris-server
pygobject3
ytmusicapi
@@ -52,10 +53,11 @@ python3Packages.buildPythonApplication rec {
gstreamer
]);
# Makefile only contains `install`
dontBuild = true;
pythonRelaxDeps = [ "mpris_server" ];
installFlags = [ "prefix=$(out)" ];
postInstall = ''
make install prefix=$out
'';
dontWrapGApps = true;
@@ -68,13 +70,13 @@ python3Packages.buildPythonApplication rec {
passthru.updateScript = nix-update-script { };
meta = with lib; {
homepage = "https://gitlab.com/zehkira/monophony";
meta = {
description = "Linux app for streaming music from YouTube";
longDescription = "Monophony is a free and open source Linux app for streaming music from YouTube. It has no ads and does not require an account.";
license = licenses.agpl3Plus;
homepage = "https://gitlab.com/zehkira/monophony";
license = lib.licenses.agpl3Plus;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ quadradical ];
mainProgram = "monophony";
platforms = platforms.linux;
maintainers = with maintainers; [ quadradical ];
};
}
+2 -2
View File
@@ -16,12 +16,12 @@
stdenv.mkDerivation rec {
pname = "morgen";
version = "3.6.13";
version = "3.6.14";
src = fetchurl {
name = "morgen-${version}.deb";
url = "https://dl.todesktop.com/210203cqcj00tw1/versions/${version}/linux/deb";
hash = "sha256-a7IkEHRAwa7SnsPcK6psho6E+o1aOlQPPFHaDPrrXxw=";
hash = "sha256-ouSXOOTf+7FxSj8iyYyGN2WnsZ5EtvbW/XECfBA4UVc=";
};
nativeBuildInputs = [
+45 -10
View File
@@ -1,9 +1,14 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchurl,
unzip,
pkg-config,
python3,
SDL2,
SDL2_image,
enet,
fetchFromGitHub,
freetype,
glpk,
intltool,
@@ -19,21 +24,39 @@
openblas,
pcre2,
physfs,
pkg-config,
python3,
stdenv,
suitesparse,
libyaml,
cmark,
dbus,
}:
stdenv.mkDerivation rec {
let
lyaml = fetchFromGitHub {
owner = "gvvaughan";
repo = "lyaml";
tag = "v6.2.8";
hash = "sha256-ADLXi38sAs9ifQ4HJoYzgdp/dw0axGmVCtqJjpqWcmQ=";
};
nativefiledialog-extended = fetchFromGitHub {
owner = "btzy";
repo = "nativefiledialog-extended";
tag = "v1.2.1";
hash = "sha256-GwT42lMZAAKSJpUJE6MYOpSLKUD5o9nSe9lcsoeXgJY=";
};
nativefiledialog-extended-patch = fetchurl {
url = "https://wrapdb.mesonbuild.com/v2/nativefiledialog-extended_1.2.1-1/get_patch";
hash = "sha256-BEouiB2HTVWokrYc9VOqdnjRwPBs+us5obQ/NMqXawk=";
};
in
stdenv.mkDerivation (finalAttrs: {
pname = "naev";
version = "0.11.5";
version = "0.12.5";
src = fetchFromGitHub {
owner = "naev";
repo = "naev";
rev = "v${version}";
hash = "sha256-vdPkACgLGSTb9E/HZR5KoXn/fro0iHV7hX9kJim1j/M=";
tag = "v${finalAttrs.version}";
hash = "sha256-I+OU3sr+C8HPnJTQ+Cc/EvshzawqikoMg3cp9uQ5dSQ=";
fetchSubmodules = true;
};
@@ -54,6 +77,9 @@ stdenv.mkDerivation rec {
pcre2
physfs
suitesparse
libyaml
cmark
dbus
];
nativeBuildInputs = [
@@ -67,6 +93,7 @@ stdenv.mkDerivation rec {
ninja
pkg-config
intltool
unzip
];
mesonFlags = [
@@ -76,13 +103,21 @@ stdenv.mkDerivation rec {
];
postPatch = ''
patchShebangs --build dat/outfits/bioship/generate.py utils/build/*.py utils/*.py
patchShebangs --build dat/outfits/bioship/generate.py utils/build/*.py utils/*.py dat/naevpedia/ships/ships.py dat/naevpedia/outfits/outfits.py
# Add a missing include to fix the build against luajit-2.1.1741730670.
# Otherwise the build fails as:
# src/lutf8lib.c:421:22: error: 'INT_MAX' undeclared (first use in this function)
# TODO: drop after 0.12.3 release
sed -i '1i#include <limits.h>' src/lutf8lib.c
cp -r ${lyaml} subprojects/lyaml-6.2.8
chmod -R +w subprojects/lyaml-6.2.8
cp -r subprojects/packagefiles/lyaml/* subprojects/lyaml-6.2.8
cp -r ${nativefiledialog-extended} subprojects/nativefiledialog-extended-1.2.1
chmod -R +w subprojects/nativefiledialog-extended-1.2.1
tmp=$(mktemp -d)
unzip ${nativefiledialog-extended-patch} -d $tmp
cp -r $tmp/*/* subprojects/nativefiledialog-extended-1.2.1
'';
meta = {
@@ -93,4 +128,4 @@ stdenv.mkDerivation rec {
maintainers = with lib.maintainers; [ ralismark ];
platforms = lib.platforms.linux;
};
}
})
+3 -3
View File
@@ -11,17 +11,17 @@
rustPlatform.buildRustPackage rec {
pname = "netavark";
version = "1.14.1";
version = "1.15.0";
src = fetchFromGitHub {
owner = "containers";
repo = "netavark";
rev = "v${version}";
hash = "sha256-kAJOfZ4Q1EQ+JV1izXoLe/Z/qgxbzz3WbczM4fVhxfU=";
hash = "sha256-V+JwfKWo8gqVq/lF0MMt8sovPRyb3saBxsUhdMo4C5g=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-MdKTGLNf+7SzdkQNLOWgfmSE9TNLYzPFU0oXh6MnW5w=";
cargoHash = "sha256-C2+N3jPdqh/cmJ2efrUnScXo1rFBEec6w4r8M6OfcPo=";
nativeBuildInputs = [
installShellFiles
+302 -237
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -24,12 +24,12 @@ let
in
buildDotnetModule (finalAttrs: {
inherit pname;
version = "0.10.2";
version = "0.11.3";
src = fetchgit {
url = "https://github.com/Nexus-Mods/NexusMods.App.git";
rev = "refs/tags/v${finalAttrs.version}";
hash = "sha256-L75nmxjymPfuu6CM5QRE1jInElNrD2OuAXMR8+c2tGQ=";
hash = "sha256-EP51nhFKYfYRjOpgHiGLwXGmpDULoTlGh3hQXhR8sy8=";
fetchSubmodules = true;
};
+3 -3
View File
@@ -25,13 +25,13 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "niri";
version = "25.05";
version = "25.05.1";
src = fetchFromGitHub {
owner = "YaLTeR";
repo = "niri";
tag = "v${finalAttrs.version}";
hash = "sha256-ngQ+iTHmBJkEbsjYfCWTJdV8gHhOCTkV8K0at6Y+YHI=";
hash = "sha256-z4viQZLgC2bIJ3VrzQnR+q2F3gAOEQpU1H5xHtX/2fs=";
};
postPatch = ''
@@ -41,7 +41,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
'';
useFetchCargoVendor = true;
cargoHash = "sha256-tZp7AhhddEhKWzEUTgosxXMEzALbv6FxqnJEb9MBhzc=";
cargoHash = "sha256-8ltuI94yIhff7JxIfe1mog4bDJ/7VFgLooMWOnSTREs=";
strictDeps = true;
@@ -7,18 +7,11 @@
cairo,
imagemagick,
zopfli,
nototools,
pngquant,
which,
}:
let
emojiPythonEnv = buildPackages.python3.withPackages (
p: with p; [
fonttools
nototools
]
);
in
stdenvNoCC.mkDerivation rec {
pname = "noto-fonts-color-emoji";
version = "2.047";
@@ -39,9 +32,10 @@ stdenvNoCC.mkDerivation rec {
nativeBuildInputs = [
imagemagick
zopfli
nototools
pngquant
which
emojiPythonEnv
buildPackages.python3.pkgs.fonttools
];
postPatch = ''
@@ -1,45 +1,14 @@
{
fetchFromGitHub,
lib,
buildPythonPackage,
pythonOlder,
afdko,
appdirs,
attrs,
booleanoperations,
brotlipy,
click,
defcon,
fontmath,
fontparts,
fontpens,
fonttools,
lxml,
mutatormath,
pathspec,
psautohint,
pyclipper,
pytz,
regex,
scour,
toml,
typed-ast,
ufonormalizer,
ufoprocessor,
unicodedata2,
zopfli,
pillow,
six,
bash,
setuptools-scm,
python3Packages,
}:
buildPythonPackage rec {
python3Packages.buildPythonApplication rec {
pname = "nototools";
version = "0.2.20";
disabled = pythonOlder "3.6";
src = fetchFromGitHub {
owner = "googlefonts";
repo = "nototools";
@@ -51,9 +20,14 @@ buildPythonPackage rec {
sed -i 's/use_scm_version=.*,/version="${version}",/' setup.py
'';
nativeBuildInputs = [ setuptools-scm ];
build-system = with python3Packages; [ setuptools-scm ];
propagatedBuildInputs = [
pythonRemoveDeps = [
# https://github.com/notofonts/nototools/pull/901
"typed-ast"
];
dependencies = with python3Packages; [
afdko
appdirs
attrs
@@ -74,7 +48,6 @@ buildPythonPackage rec {
regex
scour
toml
typed-ast
ufonormalizer
ufoprocessor
unicodedata2
@@ -82,8 +55,8 @@ buildPythonPackage rec {
];
nativeCheckInputs = [
pillow
six
python3Packages.pillow
python3Packages.six
bash
];
+2 -2
View File
@@ -25,14 +25,14 @@ in
py.pkgs.buildPythonApplication rec {
pname = "oci-cli";
version = "3.55.0";
version = "3.56.1";
format = "setuptools";
src = fetchFromGitHub {
owner = "oracle";
repo = pname;
tag = "v${version}";
hash = "sha256-+XKoB8lychQJXjrYA536TSYYYSeRsSAfgi6ER2tLaqA=";
hash = "sha256-KvyhQ8MM74MYR8gf18XVYZrOSEKcOqdmyITg2UyNqp8=";
};
nativeBuildInputs = [ installShellFiles ];
+2 -2
View File
@@ -117,13 +117,13 @@ in
goBuild (finalAttrs: {
pname = "ollama";
# don't forget to invalidate all hashes each update
version = "0.7.0";
version = "0.7.1";
src = fetchFromGitHub {
owner = "ollama";
repo = "ollama";
tag = "v${finalAttrs.version}";
hash = "sha256-rkSWMGMKzs7V6jmxS3fG611Zahsyzz5kDI8L4HxQSfQ=";
hash = "sha256-ee2MkvdVDQaSFJDDuXEwedqOB2DUl3MIfp5tRxqbL8A=";
fetchSubmodules = true;
};
+3 -3
View File
@@ -17,16 +17,16 @@ buildGoModule (finalAttrs: {
webkitgtk_4_1
];
pname = "paretosecurity";
version = "0.2.17";
version = "0.2.23";
src = fetchFromGitHub {
owner = "ParetoSecurity";
repo = "agent";
rev = finalAttrs.version;
hash = "sha256-2Ev6LJWa+iPV7/Y/o9HrNf4vR4dbnIOim+qb4HdRXqU=";
hash = "sha256-jqjfaTvbwp/3P3E7eYv8CFaaYNjPfnbrFIzD6JcccV4=";
};
vendorHash = "sha256-YnyACP/hJYxi4AWMwr0We4YUTbWwahKAIYN6RnHmzls=";
vendorHash = "sha256-v9M1CX6mIK8MdaI5TVa0Uc+HnIy+oCg+vYlH3eU809Q=";
proxyVendor = true;
# Skip building the Windows installer
+19 -8
View File
@@ -25,6 +25,7 @@
wayland,
zip,
zstd,
fetchpatch,
}:
let
@@ -36,6 +37,16 @@ let
qtwayland
wrapQtAppsHook
;
cubeb' = cubeb.overrideAttrs (old: {
patches = (old.patches or [ ]) ++ [
(fetchpatch {
url = "https://github.com/PCSX2/pcsx2/commit/430e31abe4a9e09567cb542f1416b011bb9b6ef9.patch";
stripLen = 2;
hash = "sha256-bbH0c1X3lMeX6hfNKObhcq5xraFpicFV3mODQGYudvQ=";
})
];
});
in
llvmPackages.stdenv.mkDerivation (finalAttrs: {
inherit (sources.pcsx2) pname version src;
@@ -43,6 +54,8 @@ llvmPackages.stdenv.mkDerivation (finalAttrs: {
patches = [
# Remove PCSX2_GIT_REV
./0000-define-rev.patch
./remove-cubeb-vendor.patch
];
cmakeFlags = [
@@ -80,7 +93,8 @@ llvmPackages.stdenv.mkDerivation (finalAttrs: {
vulkan-headers
wayland
zstd
] ++ cubeb.passthru.backendLibs;
cubeb'
];
strictDeps = true;
@@ -94,13 +108,10 @@ llvmPackages.stdenv.mkDerivation (finalAttrs: {
qtWrapperArgs =
let
libs = lib.makeLibraryPath (
[
vulkan-loader
shaderc
]
++ cubeb.passthru.backendLibs
);
libs = lib.makeLibraryPath ([
vulkan-loader
shaderc
]);
in
[ "--prefix LD_LIBRARY_PATH : ${libs}" ];
@@ -0,0 +1,29 @@
diff --git a/cmake/SearchForStuff.cmake b/cmake/SearchForStuff.cmake
index ff66f9c..e177c90 100644
--- a/cmake/SearchForStuff.cmake
+++ b/cmake/SearchForStuff.cmake
@@ -100,9 +100,8 @@ if(USE_VULKAN)
add_subdirectory(3rdparty/vulkan EXCLUDE_FROM_ALL)
endif()
-add_subdirectory(3rdparty/cubeb EXCLUDE_FROM_ALL)
-disable_compiler_warnings_for_target(cubeb)
-disable_compiler_warnings_for_target(speex)
+find_package(cubeb REQUIRED GLOBAL)
+add_library(cubeb ALIAS cubeb::cubeb)
# Find the Qt components that we need.
find_package(Qt6 6.7.2 COMPONENTS CoreTools Core GuiTools Gui WidgetsTools Widgets LinguistTools REQUIRED)
diff --git a/pcsx2/Host/CubebAudioStream.cpp b/pcsx2/Host/CubebAudioStream.cpp
index 4cd9993..604635d 100644
--- a/pcsx2/Host/CubebAudioStream.cpp
+++ b/pcsx2/Host/CubebAudioStream.cpp
@@ -288,7 +288,7 @@ std::vector<std::pair<std::string, std::string>> AudioStream::GetCubebDriverName
std::vector<std::pair<std::string, std::string>> names;
names.emplace_back(std::string(), TRANSLATE_STR("AudioStream", "Default"));
- const char** cubeb_names = cubeb_get_backend_names();
+ const char* const* cubeb_names = cubeb_get_backend_names();
for (u32 i = 0; cubeb_names[i] != nullptr; i++)
names.emplace_back(cubeb_names[i], cubeb_names[i]);
+4 -4
View File
@@ -2,7 +2,7 @@
lib,
stdenv,
fetchFromGitHub,
godot_4_3,
godot_4,
nix-update-script,
}:
@@ -16,17 +16,17 @@ let
presets.${stdenv.hostPlatform.system}
or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
godot = godot_4_3;
godot = godot_4;
in
stdenv.mkDerivation (finalAttrs: {
pname = "pixelorama";
version = "1.1";
version = "1.1.1";
src = fetchFromGitHub {
owner = "Orama-Interactive";
repo = "Pixelorama";
rev = "v${finalAttrs.version}";
hash = "sha256-UJ9sQ9igB2YAtkeHRUPvA60lbR2OXd4tqBDFxf9YTnI=";
hash = "sha256-HXCfZ/ePqEMnaEN+fxGVoaFWsO1isTAyYoRpLY6opRg=";
};
strictDeps = true;
+5 -3
View File
@@ -5,18 +5,18 @@
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "postgres-lsp";
version = "0.6.0";
version = "0.7.0";
src = fetchFromGitHub {
owner = "supabase-community";
repo = "postgres-language-server";
tag = finalAttrs.version;
hash = "sha256-PL8irQ3R8m//BbtTjODBrBcG/bAdK+t6GZGAj0PkJwE=";
hash = "sha256-78DUSoJwh310TAO0a8usa6+IwZhDdOCNys9fEAky3VY=";
fetchSubmodules = true;
};
useFetchCargoVendor = true;
cargoHash = "sha256-lUZpjX3HljOXi0Wt2xZCUru8uinWlngLEs5wlqfFiJA=";
cargoHash = "sha256-IxVuxDauxH3AzXirJ3Zq8QLSdUL3H3j/oSGqfNs0J20=";
nativeBuildInputs = [
rustPlatform.bindgenHook
@@ -35,6 +35,8 @@ rustPlatform.buildRustPackage (finalAttrs: {
checkFlags = [
# Tries to write to the file system relatively to the current path
"--skip=syntax_error"
# Requires a database connection
"--skip=test_cli_check_command"
];
meta = {
+2 -2
View File
@@ -13,12 +13,12 @@ let
{
aarch64-darwin = {
arch = "arm64";
sha256 = "sha256-uhhrJk/WtM4tKsrBAn1IjHx0OeR/SpdOzy2XhoUP4sY=";
sha256 = "sha256-w1zu+sK8JqBMGBaKPYGJqddEWYWCv1aJRM+Q91l5dPw=";
};
x86_64-darwin = {
arch = "64";
sha256 = "sha256-NYxcZoQYDyn85RkUz57b5yhzpeAK5xyyJF/7L2+3tt4=";
sha256 = "sha256-dlRK6NpDskuIW0nuf9mWx/xolOnGmH77ny+2ADaD7QU=";
};
}
.${stdenvNoCC.hostPlatform.system}
+2 -2
View File
@@ -56,12 +56,12 @@ let
{
aarch64-linux = {
arch = "arm64";
sha256 = "sha256-/Qfd/xn+FwYLPSWssP5JFfjMdICz6HDg30edl/Fme5A=";
sha256 = "sha256-XtY5SmYoU2OhX69jRb8uSGwx5vPiSfgmF2jY7mJIrTY=";
};
x86_64-linux = {
arch = "64";
sha256 = "sha256-BbTYT0GHU+BmWFXG2TU8PL90eTpLcyLgnwSw9YyWT0g=";
sha256 = "sha256-eEgUk3VnahmFua8UrNMUi2lG0UujiuDTs64XqaAkYe8=";
};
}
.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
+4 -1
View File
@@ -6,9 +6,12 @@
let
pname = "postman";
version = "11.44.0";
version = "11.46.6";
meta = with lib; {
homepage = "https://www.getpostman.com";
changelog = "https://www.postman.com/release-notes/postman-app/#${
replaceStrings [ "." ] [ "-" ] version
}";
description = "API Development Environment";
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
license = licenses.postman;
+1 -5
View File
@@ -40,17 +40,13 @@ stdenv.mkDerivation (finalAttrs: {
curl
ffmpeg
cubeb
] ++ cubeb.passthru.backendLibs;
];
# Correct qml import path
postInstall = ''
mv $out/lib/qt6 $out/lib/qt-6
'';
qtWrapperArgs = [
"--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath cubeb.passthru.backendLibs}"
];
meta = {
description = "Unofficial Qt client for netease cloud music";
homepage = "https://github.com/hypengw/Qcm";
+2 -2
View File
@@ -8,11 +8,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "quarkus-cli";
version = "3.22.2";
version = "3.22.3";
src = fetchurl {
url = "https://github.com/quarkusio/quarkus/releases/download/${finalAttrs.version}/quarkus-cli-${finalAttrs.version}.tar.gz";
hash = "sha256-RCWkaPoE3Purq9VG1xhlakMxqXhnxi+q10YcgOyScqg=";
hash = "sha256-kUIjIsVK7hn2tNOpuqfNdwuX1ZQewcY8SItAknG7cRk=";
};
nativeBuildInputs = [ makeWrapper ];
+3 -3
View File
@@ -14,17 +14,17 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "rattler-build";
version = "0.41.0";
version = "0.42.1";
src = fetchFromGitHub {
owner = "prefix-dev";
repo = "rattler-build";
tag = "v${finalAttrs.version}";
hash = "sha256-6N4YHrwzFTBShitAW7BMjEMzigB37Om5lICb94wEvlQ=";
hash = "sha256-HeqE4FqkRBQNtJlirkLo6aVBo4S6QpKD8o6/B2DEya8=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-fslC+e3d2tVFOWag7NZ1mTnjG3iMMezodpNQ+2LVRxU=";
cargoHash = "sha256-/R4m3uApdFHJe2fJbdox2awO0Qbt496C1gTz7B0Owso=";
doCheck = false; # test requires network access
+3 -3
View File
@@ -7,13 +7,13 @@
stdenvNoCC.mkDerivation {
pname = "retroarch-assets";
version = "1.20.0-unstable-2025-03-21";
version = "1.20.0-unstable-2025-05-23";
src = fetchFromGitHub {
owner = "libretro";
repo = "retroarch-assets";
rev = "818aca56efd784624a241a12936b5c0864e3ddd8";
hash = "sha256-14n9oQbvzl66pgWLMYEpAM7uJUH5e8a3xRCy5f1TFIw=";
rev = "2d24ef2972a709f870cc3f73853158fa2376f37d";
hash = "sha256-8FtY9W51Y0cLD61GHGz83TWoSyUuRfXEaAuEBKcFKRU=";
};
makeFlags = [

Some files were not shown because too many files have changed in this diff Show More