Merge remote-tracking branch 'origin/staging-next' into staging

This commit is contained in:
K900 2025-06-25 17:02:53 +03:00
commit 1f11bb607a
78 changed files with 1743 additions and 597 deletions

View File

@ -17,18 +17,12 @@ on:
NIXPKGS_CI_APP_PRIVATE_KEY:
required: true
workflow_dispatch:
inputs:
updatedWithin:
description: 'Updated within [hours]'
type: number
required: false
default: 0 # everything since last run
concurrency:
# This explicitly avoids using `run_id` for the concurrency key to make sure that only
# *one* non-PR run can run at a time.
# *one* scheduled run can run at a time.
group: labels-${{ github.workflow }}-${{ github.event_name }}-${{ github.event.pull_request.number }}
# PR- and manually-triggered runs will be cancelled, but scheduled runs will be queued.
# PR-triggered runs will be cancelled, but scheduled runs will be queued.
cancel-in-progress: ${{ github.event_name != 'schedule' }}
# This is used as fallback without app only.
@ -69,8 +63,6 @@ jobs:
- name: Labels from API data and Eval results
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
env:
UPDATED_WITHIN: ${{ inputs.updatedWithin }}
with:
github-token: ${{ steps.app-token.outputs.token || github.token }}
script: |
@ -101,6 +93,9 @@ jobs:
github.hook.wrap('request', async (request, options) => {
// Requests to the /rate_limit endpoint do not count against the rate limit.
if (options.url == '/rate_limit') return request(options)
// Search requests are in a different resource group, which allows 30 requests / minute.
// We do less than a handful each run, so not implementing throttling for now.
if (options.url.startsWith('/search/')) return request(options)
stats.requests++
if (['POST', 'PUT', 'PATCH', 'DELETE'].includes(options.method))
return writeLimits.schedule(request.bind(null, options))
@ -126,104 +121,66 @@ jobs:
await updateReservoir()
// Update remaining requests every minute to account for other jobs running in parallel.
const reservoirUpdater = setInterval(updateReservoir, 60 * 1000)
process.on('uncaughtException', () => clearInterval(reservoirUpdater))
if (process.env.UPDATED_WITHIN && !/^\d+$/.test(process.env.UPDATED_WITHIN))
throw new Error('Please enter "updated within" as integer in hours.')
async function handle(item) {
try {
const log = (k,v,skip) => {
core.info(`#${item.number} - ${k}: ${v}` + (skip ? ' (skipped)' : ''))
return skip
}
const cutoff = new Date(await (async () => {
// Always run for Pull Request triggers, no cutoff since there will be a single
// response only anyway. 0 is the Unix epoch, so always smaller.
if (context.payload.pull_request?.number) return 0
log('Last updated at', item.updated_at)
stats.prs++
log('URL', item.html_url)
// Manually triggered via UI when updatedWithin is set. Will fallthrough to the last
// option if the updatedWithin parameter is set to 0, which is the default.
const updatedWithin = Number.parseInt(process.env.UPDATED_WITHIN, 10)
if (updatedWithin) return new Date().getTime() - updatedWithin * 60 * 60 * 1000
const pull_number = item.number
const issue_number = item.number
// Normally a scheduled run, but could be workflow_dispatch, see above. Go back as far
// as the last successful run of this workflow to make sure we are not leaving anyone
// behind on GHA failures.
// Defaults to go back 1 hour on the first run.
return (await github.rest.actions.listWorkflowRuns({
...context.repo,
workflow_id: 'labels.yml',
event: 'schedule',
status: 'success',
exclude_pull_requests: true
})).data.workflow_runs[0]?.created_at ?? new Date().getTime() - 1 * 60 * 60 * 1000
})())
core.info('cutoff timestamp: ' + cutoff.toISOString())
// This API request is important for the merge-conflict label, because it triggers the
// creation of a new test merge commit. This is needed to actually determine the state of a PR.
const pull_request = (await github.rest.pulls.get({
...context.repo,
pull_number
})).data
// To simplify this action's logic we fetch the pull_request data again below, even if
// we are already in a pull_request event's context and would have the data readily
// available. We do this by filtering the list of pull requests with head and base
// branch - there can only be a single open Pull Request for any such combination.
const prEventCondition = !context.payload.pull_request ? undefined : {
// "label" is in the format of `user:branch` or `org:branch`
head: context.payload.pull_request.head.label,
base: context.payload.pull_request.base.ref
}
const prs = await github.paginate(
github.rest.pulls.list,
{
...context.repo,
state: 'open',
sort: 'updated',
direction: 'desc',
...prEventCondition
},
(response, done) => response.data.map(async (pull_request) => {
try {
const log = (k,v,skip) => {
core.info(`PR #${pull_request.number} - ${k}: ${v}` + (skip ? ' (skipped)' : ''))
return skip
}
if (log('Last updated at', pull_request.updated_at, new Date(pull_request.updated_at) < cutoff))
return done()
stats.prs++
log('URL', pull_request.html_url)
const run_id = (await github.rest.actions.listWorkflowRuns({
const run_id = (await github.rest.actions.listWorkflowRuns({
...context.repo,
workflow_id: 'pr.yml',
event: 'pull_request_target',
// In pull_request contexts the workflow is still running.
status: context.payload.pull_request ? undefined : 'success',
exclude_pull_requests: true,
head_sha: pull_request.head.sha
})).data.workflow_runs[0]?.id ??
// TODO: Remove this after 2025-09-17, at which point all eval.yml artifacts will have expired.
(await github.rest.actions.listWorkflowRuns({
...context.repo,
workflow_id: 'pr.yml',
// In older PRs, we need eval.yml instead of pr.yml.
workflow_id: 'eval.yml',
event: 'pull_request_target',
// For PR events, the workflow run is still in progress with this job itself.
status: prEventCondition ? 'in_progress' : 'success',
status: 'success',
exclude_pull_requests: true,
head_sha: pull_request.head.sha
})).data.workflow_runs[0]?.id ??
// TODO: Remove this after 2025-09-17, at which point all eval.yml artifacts will have expired.
(await github.rest.actions.listWorkflowRuns({
...context.repo,
// In older PRs, we need eval.yml instead of pr.yml.
workflow_id: 'eval.yml',
event: 'pull_request_target',
status: 'success',
exclude_pull_requests: true,
head_sha: pull_request.head.sha
})).data.workflow_runs[0]?.id
})).data.workflow_runs[0]?.id
// Newer PRs might not have run Eval to completion, yet. We can skip them, because this
// job will be run as part of that Eval run anyway.
if (log('Last eval run', run_id ?? '<pending>', !run_id))
return;
// Newer PRs might not have run Eval to completion, yet.
// Older PRs might not have an eval.yml workflow, yet.
// In either case we continue without fetching an artifact on a best-effort basis.
log('Last eval run', run_id ?? '<n/a>')
const artifact = (await github.rest.actions.listWorkflowRunArtifacts({
...context.repo,
run_id,
name: 'comparison'
})).data.artifacts[0]
const artifact = run_id && (await github.rest.actions.listWorkflowRunArtifacts({
...context.repo,
run_id,
name: 'comparison'
})).data.artifacts[0]
// Instead of checking the boolean artifact.expired, we will give us a minute to
// actually download the artifact in the next step and avoid that race condition.
// Older PRs, where the workflow run was already eval.yml, but the artifact was not
// called "comparison", yet, will be skipped as well.
const expired = new Date(artifact?.expires_at ?? 0) < new Date(new Date().getTime() + 60 * 1000)
if (log('Artifact expires at', artifact?.expires_at ?? '<not found>', expired))
return;
// Instead of checking the boolean artifact.expired, we will give us a minute to
// actually download the artifact in the next step and avoid that race condition.
// Older PRs, where the workflow run was already eval.yml, but the artifact was not
// called "comparison", yet, will skip the download.
const expired = !artifact || new Date(artifact?.expires_at ?? 0) < new Date(new Date().getTime() + 60 * 1000)
log('Artifact expires at', artifact?.expires_at ?? '<n/a>')
if (!expired) {
stats.artifacts++
await artifactClient.downloadArtifact(artifact.id, {
@ -232,39 +189,110 @@ jobs:
repositoryOwner: context.repo.owner,
token: core.getInput('github-token')
},
path: path.resolve(pull_request.number.toString()),
path: path.resolve(pull_number.toString()),
expectedHash: artifact.digest
})
}
// Create a map (Label -> Boolean) of all currently set labels.
// Each label is set to True and can be disabled later.
const before = Object.fromEntries(
(await github.paginate(github.rest.issues.listLabelsOnIssue, {
// Create a map (Label -> Boolean) of all currently set labels.
// Each label is set to True and can be disabled later.
const before = Object.fromEntries(
(await github.paginate(github.rest.issues.listLabelsOnIssue, {
...context.repo,
issue_number
}))
.map(({ name }) => [name, true])
)
const approvals = new Set(
(await github.paginate(github.rest.pulls.listReviews, {
...context.repo,
pull_number
}))
.filter(review => review.state == 'APPROVED')
.map(review => review.user?.id)
)
const latest_event_at = new Date(
(await github.paginate(
github.rest.issues.listEventsForTimeline,
{
...context.repo,
issue_number: pull_request.number
}))
.map(({ name }) => [name, true])
)
issue_number,
per_page: 100
}
))
.filter(({ event }) => [
// These events are hand-picked from:
// https://docs.github.com/en/rest/using-the-rest-api/issue-event-types?apiVersion=2022-11-28
// Each of those causes a PR/issue to *not* be considered as stale anymore.
// Most of these use created_at.
'assigned',
'commented', // uses updated_at, because that could be > created_at
'committed', // uses committer.date
'head_ref_force_pushed',
'milestoned',
'pinned',
'ready_for_review',
'renamed',
'reopened',
'review_dismissed',
'review_requested',
'reviewed', // uses submitted_at
'unlocked',
'unmarked_as_duplicate',
].includes(event))
.map(({ created_at, updated_at, committer, submitted_at }) => new Date(updated_at ?? created_at ?? submitted_at ?? committer.date))
// Reverse sort by date value. The default sort() sorts by string representation, which is bad for dates.
.sort((a,b) => b-a)
.at(0) ?? item.created_at
)
const approvals = new Set(
(await github.paginate(github.rest.pulls.listReviews, {
...context.repo,
pull_number: pull_request.number
}))
.filter(review => review.state == 'APPROVED')
.map(review => review.user?.id)
)
const stale_at = new Date(new Date().setDate(new Date().getDate() - 180))
// After creation of a Pull Request, `merge_commit_sha` will be null initially:
// The very first merge commit will only be calculated after a little while.
// To avoid labeling the PR as conflicted before that, we wait a few minutes.
// This is intentionally less than the time that Eval takes, so that the label job
// running after Eval can indeed label the PR as conflicted if that is the case.
const merge_commit_sha_valid = new Date() - new Date(pull_request.created_at) > 3 * 60 * 1000
// Manage most of the labels, without eval results
const after = Object.assign(
{},
before,
{
// We intentionally don't use the mergeable or mergeable_state attributes.
// Those have an intermediate state while the test merge commit is created.
// This doesn't work well for us, because we might have just triggered another
// test merge commit creation by request the pull request via API at the start
// of this function.
// The attribute merge_commit_sha keeps the old value of null or the hash *until*
// the new test merge commit has either successfully been created or failed so.
// This essentially means we are updating the merge conflict label in two steps:
// On the first pass of the day, we just fetch the pull request, which triggers
// the creation. At this stage, the label is likely not updated, yet.
// The second pass will then read the result from the first pass and set the label.
'2.status: merge conflict': merge_commit_sha_valid && !pull_request.merge_commit_sha,
'2.status: stale': !before['1.severity: security'] && latest_event_at < stale_at,
'12.approvals: 1': approvals.size == 1,
'12.approvals: 2': approvals.size == 2,
'12.approvals: 3+': approvals.size >= 3,
'12.first-time contribution':
[ 'NONE', 'FIRST_TIMER', 'FIRST_TIME_CONTRIBUTOR' ].includes(pull_request.author_association),
}
)
// Manage labels based on eval results
if (!expired) {
const maintainers = new Set(Object.keys(
JSON.parse(await readFile(`${pull_request.number}/maintainers.json`, 'utf-8'))
JSON.parse(await readFile(`${pull_number}/maintainers.json`, 'utf-8'))
).map(m => Number.parseInt(m, 10)))
const evalLabels = JSON.parse(await readFile(`${pull_request.number}/changed-paths.json`, 'utf-8')).labels
const evalLabels = JSON.parse(await readFile(`${pull_number}/changed-paths.json`, 'utf-8')).labels
// Manage the labels
const after = Object.assign(
{},
before,
Object.assign(
after,
// Ignore `evalLabels` if it's an array.
// This can happen for older eval runs, before we switched to objects.
// The old eval labels would have been set by the eval run,
@ -272,42 +300,112 @@ jobs:
// TODO: Simplify once old eval results have expired (~2025-10)
(Array.isArray(evalLabels) ? undefined : evalLabels),
{
'12.approvals: 1': approvals.size == 1,
'12.approvals: 2': approvals.size == 2,
'12.approvals: 3+': approvals.size >= 3,
'12.approved-by: package-maintainer': Array.from(maintainers).some(m => approvals.has(m)),
'12.first-time contribution':
[ 'NONE', 'FIRST_TIMER', 'FIRST_TIME_CONTRIBUTOR' ].includes(pull_request.author_association),
}
)
// No need for an API request, if all labels are the same.
const hasChanges = Object.keys(after).some(name => (before[name] ?? false) != after[name])
if (log('Has changes', hasChanges, !hasChanges))
return;
// Skipping labeling on a pull_request event, because we have no privileges.
const labels = Object.entries(after).filter(([,value]) => value).map(([name]) => name)
if (log('Set labels', labels, context.eventName == 'pull_request'))
return;
await github.rest.issues.setLabels({
...context.repo,
issue_number: pull_request.number,
labels
})
} catch (cause) {
throw new Error(`Labeling PR #${pull_request.number} failed.`, { cause })
}
})
);
(await Promise.allSettled(prs.flat()))
.filter(({ status }) => status == 'rejected')
.map(({ reason }) => core.setFailed(`${reason.message}\n${reason.cause.stack}`))
// No need for an API request, if all labels are the same.
const hasChanges = Object.keys(after).some(name => (before[name] ?? false) != after[name])
if (log('Has changes', hasChanges, !hasChanges))
return;
core.notice(`Processed ${stats.prs} PRs, made ${stats.requests + stats.artifacts} API requests and downloaded ${stats.artifacts} artifacts.`)
clearInterval(reservoirUpdater)
// Skipping labeling on a pull_request event, because we have no privileges.
const labels = Object.entries(after).filter(([,value]) => value).map(([name]) => name)
if (log('Set labels', labels, context.eventName == 'pull_request'))
return;
await github.rest.issues.setLabels({
...context.repo,
issue_number,
labels
})
} catch (cause) {
throw new Error(`Labeling #${item.number} failed.`, { cause })
}
}
try {
if (context.payload.pull_request) {
await handle(context.payload.pull_request)
} else {
const workflowData = (await github.rest.actions.listWorkflowRuns({
...context.repo,
workflow_id: 'labels.yml',
event: 'schedule',
status: 'success',
exclude_pull_requests: true,
per_page: 1
})).data
// Go back as far as the last successful run of this workflow to make sure
// we are not leaving anyone behind on GHA failures.
// Defaults to go back 1 hour on the first run.
const cutoff = new Date(workflowData.workflow_runs[0]?.created_at ?? new Date().getTime() - 1 * 60 * 60 * 1000)
core.info('cutoff timestamp: ' + cutoff.toISOString())
const updatedItems = await github.paginate(
github.rest.search.issuesAndPullRequests,
{
q: [
`repo:"${process.env.GITHUB_REPOSITORY}"`,
'type:pr',
'is:open',
`updated:>=${cutoff.toISOString()}`
].join(' AND '),
// TODO: Remove in 2025-10, when it becomes the default.
advanced_search: true
}
)
// The search endpoint only allows fetching the first 1000 records, but the
// pull request list endpoint does not support counting the total number
// of results.
// Thus, we use /search for counting and /pulls for reading the response.
const { total_count: total_pulls } = (await github.rest.search.issuesAndPullRequests({
q: [
`repo:"${process.env.GITHUB_REPOSITORY}"`,
'type:pr',
'is:open'
].join(' AND '),
sort: 'created',
direction: 'asc',
// TODO: Remove in 2025-10, when it becomes the default.
advanced_search: true,
per_page: 1
})).data
const { total_count: total_runs } = workflowData
const allPulls = (await github.rest.pulls.list({
...context.repo,
state: 'open',
sort: 'created',
direction: 'asc',
per_page: 100,
// We iterate through pages of 100 items across scheduled runs. With currently ~7000 open PRs and
// up to 6*24=144 scheduled runs per day, we hit every PR twice each day.
// We might not hit every PR on one iteration, because the pages will shift slightly when
// PRs are closed or merged. We assume this to be OK on the bigger scale, because a PR which was
// missed once, would have to move through the whole page to be missed again. This is very unlikely,
// so it should certainly be hit on the next iteration.
// TODO: Evaluate after a while, whether the above holds still true and potentially implement
// an overlap between runs.
page: total_runs % Math.ceil(total_pulls / 100)
})).data
// Some items might be in both search results, so filtering out duplicates as well.
const items = [].concat(updatedItems, allPulls)
.filter((thisItem, idx, arr) => idx == arr.findIndex(firstItem => firstItem.number == thisItem.number))
;(await Promise.allSettled(items.map(handle)))
.filter(({ status }) => status == 'rejected')
.map(({ reason }) => core.setFailed(`${reason.message}\n${reason.cause.stack}`))
core.notice(`Processed ${stats.prs} PRs, made ${stats.requests + stats.artifacts} API requests and downloaded ${stats.artifacts} artifacts.`)
}
} finally {
clearInterval(reservoirUpdater)
}
- name: Log current API rate limits
env:

View File

@ -313,7 +313,7 @@ Container system, boot system and library changes are some examples of the pull
To streamline automated updates, leverage the nixpkgs-merge-bot by simply commenting `@NixOS/nixpkgs-merge-bot merge`. The bot will verify if the following conditions are met, refusing to merge otherwise:
- the PR author should be @r-ryantm;
- the PR author should be @r-ryantm or a Nixpkgs committer;
- the commenter that issued the command should be among the package maintainers;
- the package should reside in `pkgs/by-name`.

View File

@ -33,12 +33,18 @@
- `podofo` has been updated from `0.9.8` to `1.0.0`. These releases are by nature very incompatable due to major api changes. The legacy versions can be found under `podofo_0_10` and `podofo_0_9`.
Changelog: https://github.com/podofo/podofo/blob/1.0.0/CHANGELOG.md, API-Migration-Guide: https://github.com/podofo/podofo/blob/1.0.0/API-MIGRATION.md.
- NetBox was updated to `>= 4.3.0`. Have a look at the breaking changes
of the [4.3 release](https://github.com/netbox-community/netbox/releases/tag/v4.2.0),
make the required changes to your database, if needed, then upgrade by setting `services.netbox.package = pkgs.netbox_4_3;` in your configuration.
## Other Notable Changes {#sec-nixpkgs-release-25.11-notable-changes}
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
- Added `rewriteURL` attribute to the nixpkgs `config`, to allow for rewriting the URLs downloaded by `fetchurl`.
- The systemd initrd will now respect `x-systemd.wants` and `x-systemd.requires` for reliably unlocking multi-disk bcachefs volumes.
- New hardening flags, `strictflexarrays1` and `strictflexarrays3` were made available, corresponding to the gcc/clang options `-fstrict-flex-arrays=1` and `-fstrict-flex-arrays=3` respectively.
- `gramps` has been updated to 6.0.0

View File

@ -178,7 +178,7 @@ are available under `./scripts/`. See its [README](./scripts/README.md)
for further information.
# nixpkgs-merge-bot
To streamline autoupdates, leverage the nixpkgs-merge-bot by commenting `@NixOS/nixpkgs-merge-bot merge` if the package resides in pkgs-by-name and the commenter is among the package maintainers. The bot ensures that all ofborg checks, except for darwin, are successfully completed before merging the pull request. Should the checks still be underway, the bot patiently waits for ofborg to finish before attempting the merge again.
To streamline autoupdates, leverage the nixpkgs-merge-bot by commenting `@NixOS/nixpkgs-merge-bot merge` if the package resides in pkgs-by-name, the commenter is among the package maintainers, and the pull request author is @r-ryantm or a Nixpkgs committer. The bot ensures that all ofborg checks, except for darwin, are successfully completed before merging the pull request. Should the checks still be underway, the bot patiently waits for ofborg to finish before attempting the merge again.
# Guidelines for Committers

View File

@ -1600,6 +1600,12 @@
githubId = 962885;
name = "Andrew Chambers";
};
andrewfield = {
email = "andrew_field@hotmail.co.uk";
github = "andrew-field";
githubId = 27866671;
name = "Andrew Field";
};
andrewgazelka = {
email = "andrew@gazelka.com";
github = "andrewgazelka";
@ -5103,6 +5109,12 @@
name = "Changsheng Wu";
githubId = 2083950;
};
connerohnesorge = {
email = "conneroisu@outlook.com";
github = "conneroisu";
githubId = 88785126;
name = "Conner Ohnesorge";
};
conni2461 = {
email = "simon-hauser@outlook.com";
github = "Conni2461";

View File

@ -759,6 +759,20 @@ with lib.maintainers;
enableFeatureFreezePing = true;
};
loongarch64 = {
members = [
aleksana
Cryolitia
darkyzhou
dramforever
wegank
];
githubTeams = [ "loongarch64" ];
scope = "Maintain LoongArch64 related packages and code";
shortName = "LoongArch64";
enableFeatureFreezePing = true;
};
lumiguide = {
# Verify additions by approval of an already existing member of the team.
members = [

View File

@ -173,11 +173,13 @@ stdenvNoCC.mkDerivation (
"--architecture=${systemdArch}"
"--dry-run=no"
"--size=auto"
"--seed=${seed}"
"--definitions=${finalAttrs.finalRepartDefinitions}"
"--split=${lib.boolToString split}"
"--json=pretty"
]
++ lib.optionals (seed != null) [
"--seed=${seed}"
]
++ lib.optionals createEmpty [
"--empty=create"
]

View File

@ -161,8 +161,9 @@ in
# Generated with `uuidgen`. Random but fixed to improve reproducibility.
default = "0867da16-f251-457d-a9e8-c31f9a3c220b";
description = ''
A UUID to use as a seed. You can set this to `null` to explicitly
A UUID to use as a seed. You can set this to `random` to explicitly
randomize the partition UUIDs.
See {manpage}`systemd-repart(8)` for more information.
'';
};

View File

@ -24,6 +24,14 @@ in
config = lib.mkIf cfg.enable {
environment.systemPackages = [ cfg.package ];
networking.firewall.allowedUDPPorts = lib.optionals cfg.openFirewall [ 5678 ];
networking.firewall = lib.mkIf cfg.openFirewall {
allowedUDPPorts = [ 5678 ];
allowedUDPPortRanges = [
{
from = 40000;
to = 50000;
}
];
};
};
}

View File

@ -102,20 +102,18 @@ in
package = lib.mkOption {
type = lib.types.package;
default =
if lib.versionAtLeast config.system.stateVersion "25.05" then
if lib.versionAtLeast config.system.stateVersion "25.11" then
pkgs.netbox_4_3
else if lib.versionAtLeast config.system.stateVersion "25.05" then
pkgs.netbox_4_2
else if lib.versionAtLeast config.system.stateVersion "24.11" then
pkgs.netbox_4_1
else if lib.versionAtLeast config.system.stateVersion "24.05" then
pkgs.netbox_3_7
else
pkgs.netbox_3_6;
pkgs.netbox_4_1;
defaultText = lib.literalExpression ''
if lib.versionAtLeast config.system.stateVersion "24.11"
then pkgs.netbox_4_1
else if lib.versionAtLeast config.system.stateVersion "24.05"
then pkgs.netbox_3_7
else pkgs.netbox_3_6;
if lib.versionAtLeast config.system.stateVersion "25.11"
then pkgs.netbox_4_3
else if lib.versionAtLeast config.system.stateVersion "25.05"
then pkgs.netbox_4_2
else pkgs.netbox_4_1;
'';
description = ''
NetBox package to use.

View File

@ -93,19 +93,35 @@ let
let
mountUnit = "${utils.escapeSystemdPath (prefix + (lib.removeSuffix "/" fs.mountPoint))}.mount";
device = firstDevice fs;
deviceUnit = "${utils.escapeSystemdPath device}.device";
mkDeviceUnit = device: "${utils.escapeSystemdPath device}.device";
deviceUnit = mkDeviceUnit device;
extractProperty =
prop: options: (map (lib.removePrefix "${prop}=") (builtins.filter (lib.hasPrefix prop) options));
mkMountUnit = path: "${utils.escapeSystemdPath path}.mount";
normalizeUnits =
unit:
if lib.hasPrefix "/dev/" unit then
mkDeviceUnit unit
else if lib.hasPrefix "/" unit then
mkMountUnit unit
else
unit;
requiredUnits = map normalizeUnits (extractProperty "x-systemd.requires" fs.options);
wantedUnits = map normalizeUnits (extractProperty "x-systemd.wants" fs.options);
in
{
name = "unlock-bcachefs-${utils.escapeSystemdPath fs.mountPoint}";
value = {
description = "Unlock bcachefs for ${fs.mountPoint}";
requiredBy = [ mountUnit ];
after = [ deviceUnit ];
after = [ deviceUnit ] ++ requiredUnits ++ wantedUnits;
before = [
mountUnit
"shutdown.target"
];
bindsTo = [ deviceUnit ];
requires = requiredUnits;
wants = wantedUnits;
conflicts = [ "shutdown.target" ];
unitConfig.DefaultDependencies = false;
serviceConfig = {

View File

@ -913,9 +913,9 @@ in
networking.scripted = handleTest ./networking/networkd-and-scripted.nix { networkd = false; };
networking.networkd = handleTest ./networking/networkd-and-scripted.nix { networkd = true; };
networking.networkmanager = handleTest ./networking/networkmanager.nix { };
netbox_3_7 = handleTest ./web-apps/netbox/default.nix { netbox = pkgs.netbox_3_7; };
netbox_4_1 = handleTest ./web-apps/netbox/default.nix { netbox = pkgs.netbox_4_1; };
netbox_4_2 = handleTest ./web-apps/netbox/default.nix { netbox = pkgs.netbox_4_2; };
netbox_4_3 = handleTest ./web-apps/netbox/default.nix { netbox = pkgs.netbox_4_3; };
netbox-upgrade = runTest ./web-apps/netbox-upgrade.nix;
# TODO: put in networking.nix after the test becomes more complete
networkingProxy = runTest ./networking-proxy.nix;

View File

@ -1,7 +1,7 @@
{ lib, pkgs, ... }:
let
oldNetbox = "netbox_4_1";
newNetbox = "netbox_4_2";
oldNetbox = "netbox_4_2";
newNetbox = "netbox_4_3";
apiVersion =
version:

View File

@ -1114,6 +1114,19 @@ final: prev: {
meta.hydraPlatforms = [ ];
};
auto-fix-return-nvim = buildVimPlugin {
pname = "auto-fix-return.nvim";
version = "2025-06-23";
src = fetchFromGitHub {
owner = "Jay-Madden";
repo = "auto-fix-return.nvim";
rev = "01ccaa47e286f1627b730b9cc58e7ebb2a622fd1";
sha256 = "06as097zfdvrzx7ajdmib3czsbmh7r5l5szvlmj8lf8wfk7d35bq";
};
meta.homepage = "https://github.com/Jay-Madden/auto-fix-return.nvim/";
meta.hydraPlatforms = [ ];
};
auto-git-diff = buildVimPlugin {
pname = "auto-git-diff";
version = "2022-10-29";
@ -5933,6 +5946,19 @@ final: prev: {
meta.hydraPlatforms = [ ];
};
helm-ls-nvim = buildVimPlugin {
pname = "helm-ls.nvim";
version = "2025-06-07";
src = fetchFromGitHub {
owner = "qvalentin";
repo = "helm-ls.nvim";
rev = "2bf45466c26a24e05b5266f82a3abead13e32c16";
sha256 = "0h0mp3qf57s4byr37rg1ynbr3bha1wa9fswnv3ypb0n9n9igr5ys";
};
meta.homepage = "https://github.com/qvalentin/helm-ls.nvim/";
meta.hydraPlatforms = [ ];
};
helpview-nvim = buildVimPlugin {
pname = "helpview.nvim";
version = "2025-04-26";
@ -6886,6 +6912,19 @@ final: prev: {
meta.hydraPlatforms = [ ];
};
lazydocker-nvim = buildVimPlugin {
pname = "lazydocker.nvim";
version = "2025-06-05";
src = fetchFromGitHub {
owner = "crnvl96";
repo = "lazydocker.nvim";
rev = "d5878defd757a193fbd73f12ec54faee9a6b19e1";
sha256 = "0vwx3yvy4lqppjgwz5gkqxrbr5m6b6kplh5z0nh5s7i7xqahqm1r";
};
meta.homepage = "https://github.com/crnvl96/lazydocker.nvim/";
meta.hydraPlatforms = [ ];
};
lazygit-nvim = buildVimPlugin {
pname = "lazygit.nvim";
version = "2025-06-13";

View File

@ -23,6 +23,7 @@
direnv,
fzf,
gawk,
helm-ls,
himalaya,
htop,
jq,
@ -118,6 +119,8 @@
# typst-preview dependencies
tinymist,
websocat,
# lazydocker.nvim dependencies
lazydocker,
# luau-lsp-nvim dependencies
luau-lsp,
# uv.nvim dependencies
@ -1403,6 +1406,12 @@ in
luaAttr = luaPackages.haskell-tools-nvim;
};
helm-ls-nvim = super.helm-ls-nvim.overrideAttrs {
runtimeDeps = [
helm-ls
];
};
helpview-nvim = super.helpview-nvim.overrideAttrs {
nvimSkipModules = [ "definitions.__vimdoc" ];
};
@ -1533,6 +1542,12 @@ in
];
};
lazydocker-nvim = super.lazydocker-nvim.overrideAttrs {
runtimeDeps = [
lazydocker
];
};
LazyVim = super.LazyVim.overrideAttrs {
# Any other dependency is optional
dependencies = [ self.lazy-nvim ];

View File

@ -84,6 +84,7 @@ https://github.com/skywind3000/asynctasks.vim/,,
https://github.com/vmchale/ats-vim/,,
https://github.com/augmentcode/augment.vim/,HEAD,
https://github.com/ray-x/aurora/,,
https://github.com/Jay-Madden/auto-fix-return.nvim/,HEAD,
https://github.com/hotwatermorning/auto-git-diff/,,
https://github.com/asiryk/auto-hlsearch.nvim/,HEAD,
https://github.com/jiangmiao/auto-pairs/,,
@ -454,6 +455,7 @@ https://github.com/wenzel-hoffman/haskell-with-unicode.vim/,HEAD,
https://github.com/travitch/hasksyn/,,
https://github.com/lukas-reineke/headlines.nvim/,HEAD,
https://github.com/rebelot/heirline.nvim/,,
https://github.com/qvalentin/helm-ls.nvim/,HEAD,
https://github.com/OXY2DEV/helpview.nvim/,HEAD,
https://github.com/RaafatTurki/hex.nvim/,HEAD,
https://github.com/Yggdroot/hiPairs/,,
@ -528,6 +530,7 @@ https://github.com/latex-box-team/latex-box/,,
https://github.com/dundalek/lazy-lsp.nvim/,HEAD,
https://github.com/folke/lazy.nvim/,HEAD,
https://github.com/folke/lazydev.nvim/,,
https://github.com/crnvl96/lazydocker.nvim/,HEAD,
https://github.com/kdheepak/lazygit.nvim/,,
https://github.com/Julian/lean.nvim/,,
https://github.com/leanprover/lean.vim/,,

View File

@ -566,11 +566,12 @@ let
# exact version or even running a newer version.
./patches/chromium-136-nodejs-assert-minimal-version-instead-of-exact-match.patch
]
++ lib.optionals (chromiumVersionAtLeast "137") [
++ lib.optionals (versionRange "137" "138") [
(fetchpatch {
# Partial revert of upstream clang+llvm bump revert to fix the following error when building with LLVM < 21:
# clang++: error: unknown argument: '-fextend-variable-liveness=none'
# https://chromium-review.googlesource.com/c/chromium/src/+/6514242
# Upstream relanded this in M138+ with <https://chromium-review.googlesource.com/c/chromium/src/+/6541127>.
name = "chromium-137-llvm-19.patch";
url = "https://chromium.googlesource.com/chromium/src/+/ddf8f8a465be2779bd826db57f1299ccd2f3aa25^!?format=TEXT";
includes = [ "build/config/compiler/BUILD.gn" ];
@ -579,11 +580,12 @@ let
hash = "sha256-wAR8E4WKMvdkW8DzdKpyNpp4dynIsYAbnJ2MqE8V2o8=";
})
]
++ lib.optionals (chromiumVersionAtLeast "137") [
++ lib.optionals (versionRange "137" "138") [
(fetchpatch {
# Backport "Fix build with system libpng" that fixes a typo in core/fxcodec/png/png_decoder.cpp that causes
# the build to fail at the final linking step.
# https://pdfium-review.googlesource.com/c/pdfium/+/132130
# Started shipping with M138+.
name = "pdfium-Fix-build-with-system-libpng.patch";
url = "https://pdfium.googlesource.com/pdfium.git/+/83f11d630aa1cb6d5ceb292364412f7b0585a201^!?format=TEXT";
extraPrefix = "third_party/pdfium/";

View File

@ -1,27 +1,27 @@
{
"chromium": {
"version": "137.0.7151.119",
"version": "138.0.7204.49",
"chromedriver": {
"version": "137.0.7151.120",
"hash_darwin": "sha256-3NECoMlK57ZlCUPra20rJrZcx9FnMWvTXlcdksn8FUc=",
"hash_darwin_aarch64": "sha256-P1trGStKjTD/h+avjAXE5N6nqvAra9RDsSvrR/pTRUA="
"version": "138.0.7204.50",
"hash_darwin": "sha256-JqEH04dZxqyUKou8QkwtJa0+4AXWPm0p3NJlYM2fnqw=",
"hash_darwin_aarch64": "sha256-WojmEFRIqFDMfay3UA0pzSwH9FRno+nHxzR47x4o7gA="
},
"deps": {
"depot_tools": {
"rev": "1fcc527019d786502b02f71b8b764ee674a40953",
"hash": "sha256-7HJyJARZPes5MmKgXd3TV1uRjk0bH/pkPm+F4scg+Tc="
"rev": "a8900cc0f023d6a662eb66b317e8ddceeb113490",
"hash": "sha256-1avxBlK0WLHTru5wUecbiGpSEYv8Epobsl4EfCaWX9A="
},
"gn": {
"rev": "85cc21e94af590a267c1c7a47020d9b420f8a033",
"hash": "sha256-+nKP2hBUKIqdNfDz1vGggXSdCuttOt0GwyGUQ3Z1ZHI="
"rev": "ebc8f16ca7b0d36a3e532ee90896f9eb48e5423b",
"hash": "sha256-UB9a7Fr1W0yYld6WbXyRR8dFqWsj/zx4KumDZ5JQKSM="
},
"npmHash": "sha256-I6MsfAhrLRmgiRJ13LSejfy2N63C3Oug5tOOXA622j4="
"npmHash": "sha256-8d5VTHutv51libabhxv7SqPRcHfhVmGDSOvTSv013rE="
},
"DEPS": {
"src": {
"url": "https://chromium.googlesource.com/chromium/src.git",
"rev": "e0ac9d12dff5f2d33c935958b06bf1ded7f1c08c",
"hash": "sha256-+3C2n/7bbIOpXGvBrFnSMNlgLVRMoPtOF14CDROVClI=",
"rev": "d2b48fd5f7813ed477a2d68fa232b8178fa4fb1e",
"hash": "sha256-n2jSVXpV0mqdTdLpE+N3yJhutJTOE1fez0BleU0+VSU=",
"recompress": true
},
"src/third_party/clang-format/script": {
@ -31,28 +31,28 @@
},
"src/third_party/compiler-rt/src": {
"url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/compiler-rt.git",
"rev": "d0e4db9fcea15a392aaada986cbe33658afc0454",
"hash": "sha256-P/uDeqalafY1S7AqZkL1Pz7Jc+iWrkfiACxEtgTRqdU="
"rev": "57196dd146582915c955f6d388e31aea93220c51",
"hash": "sha256-FVdcKGwRuno3AzS6FUvI8OTj3mBMRfFR2A8GzYcwIU4="
},
"src/third_party/libc++/src": {
"url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git",
"rev": "9d0cba76be7399399d3a499ff3a52c264db3b104",
"hash": "sha256-wpMma142NBqyrSbaReQr5yOYhvQIZ06j6S2EUnXmZ2I="
"rev": "a01c02c9d4acbdae3b7e8a2f3ee58579a9c29f96",
"hash": "sha256-36ulJk/YTfP5k1sDeA/WQyIO8xaplRKK4cQhfTZdpko="
},
"src/third_party/libc++abi/src": {
"url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git",
"rev": "f2a7f2987f9dcdf8b04c2d8cd4dcb186641a7c3e",
"hash": "sha256-X9cAbyd8ZPSwqOGhPYwIZ6b9E3tVwAuAYZKMgbZQxgk="
"rev": "9810fb23f6ba666f017c2b67c67de2bcac2b44bd",
"hash": "sha256-DkCvfFjMztFTzKf081XyiefW6tMBSZ1AdzcPzXAVPnk="
},
"src/third_party/libunwind/src": {
"url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git",
"rev": "81e2cb40a70de2b6978e6d8658891ded9a77f7e3",
"hash": "sha256-XdFKn+cGOxA0fHkVMG9UAhCmpML44ocoyHB7XnumX7o="
"rev": "8575f4ae4fcf8892938bd9766cf1a5c90a0ed04e",
"hash": "sha256-O1S3ijnoVrTHmZDGmgQQe0MVGsSZL7usXAPflGFmMXY="
},
"src/third_party/llvm-libc/src": {
"url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libc.git",
"rev": "cc59264cf9b2ecab0cfc8b51f6f1878372416d36",
"hash": "sha256-wQMUL5uAaR8sA1V0FHTZv3jVVaF3NxiHfNnlMq3YImY="
"rev": "9c3ae3120fe83b998d0498dcc9ad3a56c29fad0c",
"hash": "sha256-BsoHIvdqgYzBUkd23++enEHIhq5GeVWrWdVdhXrHh9A="
},
"src/chrome/test/data/perf/canvas_bench": {
"url": "https://chromium.googlesource.com/chromium/canvas_bench.git",
@ -71,8 +71,8 @@
},
"src/docs/website": {
"url": "https://chromium.googlesource.com/website.git",
"rev": "e157e12d99cfc729a970b474344673c44e2d2c9c",
"hash": "sha256-fowwJbXOR4OIN4+1bJEWv9VP/TLHb9+H1Vt3apVLwkk="
"rev": "d21d90790d8ea421b317c4cb52a0d94133422796",
"hash": "sha256-X9GIZkPokZ8ojNVDScDQL8D0tJGsaQMg8ncenuBzFHk="
},
"src/media/cdm/api": {
"url": "https://chromium.googlesource.com/chromium/cdm.git",
@ -81,8 +81,8 @@
},
"src/net/third_party/quiche/src": {
"url": "https://quiche.googlesource.com/quiche.git",
"rev": "faec206356fe384c522f34982ae2e92f2f111242",
"hash": "sha256-8SuRhYAD3RWMiqD/a8usrRnYKd6prAK5jdwJVXRI+Q0="
"rev": "3b42119c3e4be5d4720c3c1b384106fa43e9b5e3",
"hash": "sha256-UYyBMjv6ATIwBXYngGof85pBCHXb/jYXetVo0oBrHf8="
},
"src/testing/libfuzzer/fuzzers/wasm_corpus": {
"url": "https://chromium.googlesource.com/v8/fuzzer_wasm_corpus.git",
@ -96,8 +96,8 @@
},
"src/third_party/angle": {
"url": "https://chromium.googlesource.com/angle/angle.git",
"rev": "df9c59dcacff7d186d00e3263a1aa68f8059137c",
"hash": "sha256-ybi/DwOQ10I+MK9buKpdNcUlFAI9RA3NfyoB3Udpfyo="
"rev": "df15136b959fc60c230265f75ee7fc75c96e8250",
"hash": "sha256-b4bGxhtrsfmVdJo/5QT4/mtQ6hqxmfpmcrieqaT9/ls="
},
"src/third_party/angle/third_party/glmark2/src": {
"url": "https://chromium.googlesource.com/external/github.com/glmark2/glmark2",
@ -111,8 +111,8 @@
},
"src/third_party/angle/third_party/VK-GL-CTS/src": {
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS",
"rev": "dd7e71367795e2dc4d46effda5378f22e9000d16",
"hash": "sha256-EZoSoDLFWRR2xkHOKNaNVQvubFp8in0p7/CHN8CFaVI="
"rev": "c9d2e24d1a6da00165a0b5908ea4ba05c2e5f0b2",
"hash": "sha256-EFhi4dELfyq6FcB+YFlzKfoXz44i5ieFK1KUlFzqE1I="
},
"src/third_party/anonymous_tokens/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/anonymous-tokens.git",
@ -131,8 +131,8 @@
},
"src/third_party/dawn": {
"url": "https://dawn.googlesource.com/dawn.git",
"rev": "fbe707f88ccabca01031e47bf165bd9d499878dd",
"hash": "sha256-8tmDR3l7eHWUfVRU90Kg76N/moU6Lb5b3FySJOckl8U="
"rev": "86772f20cca54b46f62b65ece1ef61224aef09db",
"hash": "sha256-N9DVbQE56WWBmJ/PJlYhU+pr8I+PFf/7FzMLCNqx3hg="
},
"src/third_party/dawn/third_party/glfw": {
"url": "https://chromium.googlesource.com/external/github.com/glfw/glfw",
@ -141,8 +141,8 @@
},
"src/third_party/dawn/third_party/dxc": {
"url": "https://chromium.googlesource.com/external/github.com/microsoft/DirectXShaderCompiler",
"rev": "8209d53f0ef0257e5b8c78d22057086403946cca",
"hash": "sha256-2yM8Fct7Ru8ZSFr+Qm1Bv52K2/geAwmOpWc/X7yxLQY="
"rev": "d72e2b1a15d22fc825e2f3c939f1baac43281ae9",
"hash": "sha256-0LfNcR1FXy5GcL2yHHA6A7EJIWtZU1U/2xSq/eysUa0="
},
"src/third_party/dawn/third_party/dxheaders": {
"url": "https://chromium.googlesource.com/external/github.com/microsoft/DirectX-Headers",
@ -161,8 +161,13 @@
},
"src/third_party/dawn/third_party/webgpu-cts": {
"url": "https://chromium.googlesource.com/external/github.com/gpuweb/cts",
"rev": "3df76734dc695c4d1c51276b5d9eb63078362972",
"hash": "sha256-4jCsCt2rcUpUk2xeL3tZx/jTnuJ+COG+xsDtR+sK1oQ="
"rev": "905c7cbfeaac1cf3feb4c6056dd6f3dbaa06b074",
"hash": "sha256-eMDb0nG9HDiesd8KPajbMej8JTll4JkIf17KMnKvW1s="
},
"src/third_party/dawn/third_party/webgpu-headers/src": {
"url": "https://chromium.googlesource.com/external/github.com/webgpu-native/webgpu-headers",
"rev": "60cd9020309b87a30cd7240aad32accd24262a5e",
"hash": "sha256-+Kf4yPBhM6y2kYTZud9vCavT/BBOzDBsph5+/bUuwkM="
},
"src/third_party/highway/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/highway.git",
@ -176,13 +181,13 @@
},
"src/third_party/boringssl/src": {
"url": "https://boringssl.googlesource.com/boringssl.git",
"rev": "918cf66ed841930fe1554ae8d78974b95e989596",
"hash": "sha256-gzcXse/emv9JBMiInUV5KTeyMQ0igUdFpzUJR4vCUu4="
"rev": "9295969e1dad2c31d0d99481734c1c68dcbc6403",
"hash": "sha256-+Gs+efB1ZizjMYRSRTQrMDPZsDC+dgNJ9+yHXkzm/ZM="
},
"src/third_party/breakpad/breakpad": {
"url": "https://chromium.googlesource.com/breakpad/breakpad.git",
"rev": "232a723f5096ab02d53d87931efa485fa77d3b03",
"hash": "sha256-0ynZuxIqBIpNkfD3Y9XdPFQr7HeQcsUO3lhnqvH+k8c="
"rev": "2625edb085169e92cf036c236ac79ab594a7b1cc",
"hash": "sha256-+Z7KphmQYCeN0aJkqyMrJ4tIi3BhqN16KoPNLb/bMGo="
},
"src/third_party/cast_core/public/src": {
"url": "https://chromium.googlesource.com/cast_core/public",
@ -191,8 +196,8 @@
},
"src/third_party/catapult": {
"url": "https://chromium.googlesource.com/catapult.git",
"rev": "000f47cfa393d7f9557025a252862e2a61a60d44",
"hash": "sha256-FIJZE1Qu1MLZA4qxB68k1NjhgSbFTjf57YF85JicVZw="
"rev": "5477c6dfde1132b685c73edc16e1bc71449a691d",
"hash": "sha256-xHe9WoAq1FElMSnu5mlEzrH+EzKiwWXeXMCH69KL5a0="
},
"src/third_party/ced/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/compact_enc_det.git",
@ -226,23 +231,23 @@
},
"src/third_party/cros_system_api": {
"url": "https://chromium.googlesource.com/chromiumos/platform2/system_api.git",
"rev": "68114875ad35b573034a2ab1f5cdf3dbb0e59468",
"hash": "sha256-cGpteAnjGcxJUcrdLRFfQN7ruTEdNvNCbOH6EC+a39s="
"rev": "fe88d943e5f328b34e38b91296db39650f6ec6f3",
"hash": "sha256-WlSxI1J+HjAD2UaQjW3oOQpZDnMn/ROpTLYTP4efTi4="
},
"src/third_party/crossbench": {
"url": "https://chromium.googlesource.com/crossbench.git",
"rev": "d91cc488cd651b00009e5d6c70f222362598bec9",
"hash": "sha256-o/sw1P+mZOSb6XIVFivC02hTPu++x+xJy2SRP2I9yGE="
"rev": "feff46a3cd49eb39667205cdfa2b490bcffc9ba1",
"hash": "sha256-YomhvLtDFkGWyivN81gRxtOh9U32Zt6+/obTwccJuRo="
},
"src/third_party/depot_tools": {
"url": "https://chromium.googlesource.com/chromium/tools/depot_tools.git",
"rev": "1fcc527019d786502b02f71b8b764ee674a40953",
"hash": "sha256-7HJyJARZPes5MmKgXd3TV1uRjk0bH/pkPm+F4scg+Tc="
"rev": "a8900cc0f023d6a662eb66b317e8ddceeb113490",
"hash": "sha256-1avxBlK0WLHTru5wUecbiGpSEYv8Epobsl4EfCaWX9A="
},
"src/third_party/devtools-frontend/src": {
"url": "https://chromium.googlesource.com/devtools/devtools-frontend",
"rev": "afc8e923a37090445d6d97ca23fea49d9eb7b9cf",
"hash": "sha256-io0J6tt0RXumjjSklZyJpALV5IikPbROd40xcrX4iBs="
"rev": "f8dfe8b36e516cef8a5a169e88d16480d8abdc68",
"hash": "sha256-7ygnGBAeiLxwbTx5s7LRs9+ZOe06tr8VFcSY5cVHnS4="
},
"src/third_party/dom_distiller_js/dist": {
"url": "https://chromium.googlesource.com/chromium/dom-distiller/dist.git",
@ -256,8 +261,8 @@
},
"src/third_party/eigen3/src": {
"url": "https://chromium.googlesource.com/external/gitlab.com/libeigen/eigen.git",
"rev": "464c1d097891a1462ab28bf8bb763c1683883892",
"hash": "sha256-OJyfUyiR8PFSaWltx6Ig0RCB+LxPxrPtc0GUfu2dKrk="
"rev": "ae3aba99db4c829b4cc4d9fdd54321dedd814dc4",
"hash": "sha256-dWWjpQ6M7udOQqUV6P9go3R3O4J2XYpvkngJjRDY4v8="
},
"src/third_party/farmhash/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/farmhash.git",
@ -271,8 +276,8 @@
},
"src/third_party/ffmpeg": {
"url": "https://chromium.googlesource.com/chromium/third_party/ffmpeg.git",
"rev": "01f23648c6b84de6c0f717fa4e1816f53b9ee72e",
"hash": "sha256-hNzQZQxaa2Wtl7GWWF852cFmmXy4pc15Pp0d59TTfnI="
"rev": "dcdd0fa51b65a0b1688ff6b8f0cc81908f09ded2",
"hash": "sha256-noc3iZ1yCEgkwWyznx48rXC8JuKxla9QgC/CIjRL/y8="
},
"src/third_party/flac": {
"url": "https://chromium.googlesource.com/chromium/deps/flac.git",
@ -286,8 +291,8 @@
},
"src/third_party/fontconfig/src": {
"url": "https://chromium.googlesource.com/external/fontconfig.git",
"rev": "14d466b30a8ab4a9d789977ed94f2c30e7209267",
"hash": "sha256-W5WIgC6A52kY4fNkbsDEa0o+dfd97Rl5NKfgnIRpI00="
"rev": "8cf0ce700a8abe0d97ace4bf7efc7f9534b729ba",
"hash": "sha256-Kz7KY+evfOciKFHIBLG1JxIRgHRTzuBLgxXHv3m/Y1Y="
},
"src/third_party/fp16/src": {
"url": "https://chromium.googlesource.com/external/github.com/Maratyszcza/FP16.git",
@ -301,8 +306,8 @@
},
"src/third_party/freetype/src": {
"url": "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git",
"rev": "2d1abd3bbb4d2396ed63b3e5accd66724cf62307",
"hash": "sha256-MAVHzILj9f+/HfVjZXyJkSQM3WBwzg7IDpAwiYHfA88="
"rev": "738905b34bd1f5a8ff51bd2bc8e38a2d8be9bfd6",
"hash": "sha256-j5FPldhIOzsOsFBAMyNh44FTeOD8Gm3scoi3B3hhgKQ="
},
"src/third_party/freetype-testing/src": {
"url": "https://chromium.googlesource.com/external/github.com/freetype/freetype2-testing.git",
@ -351,8 +356,8 @@
},
"src/third_party/googletest/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/googletest.git",
"rev": "cd430b47a54841ec45d64d2377d7cabaf0eba610",
"hash": "sha256-QT9PQ9bF+eCPfRLkcHpH4jc0UZfGPc98fHf8QDV5bZg="
"rev": "09ffd0015395354774c059a17d9f5bee36177ff9",
"hash": "sha256-md/jPkFrs/0p0BYGyquh57Zxh+1dKaK26PDtUN1+Ce0="
},
"src/third_party/hunspell_dictionaries": {
"url": "https://chromium.googlesource.com/chromium/deps/hunspell_dictionaries.git",
@ -361,8 +366,8 @@
},
"src/third_party/icu": {
"url": "https://chromium.googlesource.com/chromium/deps/icu.git",
"rev": "4c8cc4b365a505ce35be1e0bd488476c5f79805d",
"hash": "sha256-eGI/6wk6IOUPvX7pRTm4VJk1CqkkxalTu84L36i/D6k="
"rev": "b929596baebf0ab4ac7ec07f38365db4c50a559d",
"hash": "sha256-/T7uyzwTCDaamLwSvutvbn6BJuoG1RqeR+xhXI5jmJw="
},
"src/third_party/jsoncpp/source": {
"url": "https://chromium.googlesource.com/external/github.com/open-source-parsers/jsoncpp.git",
@ -381,8 +386,8 @@
},
"src/third_party/fuzztest/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/fuzztest.git",
"rev": "b10387fdbbca18192f85eaa5323a59f44bf9c468",
"hash": "sha256-L2QG0pUmGjGdtdlivxYfxSqO9YaVHpIT6lvJwBMTxMw="
"rev": "f03aafb7516050ea73f617bf969f03eac641aefc",
"hash": "sha256-MHli8sadgC3OMesBGhkjPM/yW49KFOtdFuBII1bcFas="
},
"src/third_party/domato/src": {
"url": "https://chromium.googlesource.com/external/github.com/googleprojectzero/domato.git",
@ -396,18 +401,18 @@
},
"src/third_party/libaom/source/libaom": {
"url": "https://aomedia.googlesource.com/aom.git",
"rev": "719f60edc51b6141a2434bf1b5110c2fb075b246",
"hash": "sha256-W62uXVbQiq6Ef3bar2NsCXJoz5KKUK8Y/9n2vK7Vf3Q="
"rev": "2cca4aba034f99842c2e6cdc173f83801d289764",
"hash": "sha256-pyLKjLG83Jlx6I+0M8Ah94ku4NIFcrHNYswfVHMvdrc="
},
"src/third_party/crabbyavif/src": {
"url": "https://chromium.googlesource.com/external/github.com/webmproject/CrabbyAvif.git",
"rev": "02d0fad2c512380b7270d6e704c86521075d7d54",
"hash": "sha256-T9ibgp0glfY5EhwMiwlvXKZat0InDu7PoqE1H8/lS5A="
"rev": "eb883022a5886739f07f0241f918e2be97d65ff0",
"hash": "sha256-IxtMAqN3O/s1GrVKzcge9cQ+DVtJtFvHYvsfjmflwVQ="
},
"src/third_party/nearby/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/nearby-connections.git",
"rev": "e71de0e0c312caf8d2fa22f132619c6a68496444",
"hash": "sha256-dzJtRhoPA1FWeu0xjd7kJ1Q2nT5gIkKpIgQmywsRlPY="
"rev": "959322177f40f2e0f1ecacd8a1aea2805e67b62b",
"hash": "sha256-qFLs3gMV0v6c0gjyn29D6pRxSAKumpzAWVgHabPFWRw="
},
"src/third_party/securemessage/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/securemessage.git",
@ -416,8 +421,8 @@
},
"src/third_party/jetstream/main": {
"url": "https://chromium.googlesource.com/external/github.com/WebKit/JetStream.git",
"rev": "0976ddeae0863ef5fb3f9ad09906224b0989f9ad",
"hash": "sha256-NyXGd7SwsECGBJ2qodGYB3os+UBgIOg/I8mnrsZJuTg="
"rev": "539ab943598b505832a25a2222aa8957f1a20d6f",
"hash": "sha256-mE6IoHpLV0LUWEeeiWycXtOhIbhkPvVdLvsPSyv4xPk="
},
"src/third_party/jetstream/v2.2": {
"url": "https://chromium.googlesource.com/external/github.com/WebKit/JetStream.git",
@ -511,13 +516,13 @@
},
"src/third_party/libvpx/source/libvpx": {
"url": "https://chromium.googlesource.com/webm/libvpx.git",
"rev": "40ec928b3fadcf8edd836445bb5842a11aeb7a2d",
"hash": "sha256-aUHvIv78KTiyN/cOYNuhW4UCOD55s8l8VLu4oP0Pk1s="
"rev": "b84ca9b63730e7d4563573a56a66317eb0087ebf",
"hash": "sha256-SFdYF8vnwNHQbZ1N/ZHr4kxfi9o+BAtuqbak80m9uP4="
},
"src/third_party/libwebm/source": {
"url": "https://chromium.googlesource.com/webm/libwebm.git",
"rev": "e79a98159fdf6d1aa37b3500e32c6410a2cbe268",
"hash": "sha256-t7An0vYzukel0poLaU4t2k78k3tTR5didbcV47cGWxQ="
"rev": "c4522d6cd68582d66f1adfd24debfa9bee202afa",
"hash": "sha256-tfji0yPV7v/DETViEp2T7AO6P5xCjPYScTlV3eWFV0w="
},
"src/third_party/libwebp/src": {
"url": "https://chromium.googlesource.com/webm/libwebp.git",
@ -526,8 +531,8 @@
},
"src/third_party/libyuv": {
"url": "https://chromium.googlesource.com/libyuv/libyuv.git",
"rev": "9f9b5cf660dcfa0d3fdee41cf4ffbe4bb6e95114",
"hash": "sha256-OYmsMPz7nJwkVSpsDW7SbqrCU5raC1k3Mh/UkonCujM="
"rev": "61bdaee13a701d2b52c6dc943ccc5c888077a591",
"hash": "sha256-J9Wi3aCc6OjtQCP8JnrY7PYrY587dKLaa1KGAMWmE0c="
},
"src/third_party/lss": {
"url": "https://chromium.googlesource.com/linux-syscall-support.git",
@ -561,13 +566,13 @@
},
"src/third_party/openscreen/src": {
"url": "https://chromium.googlesource.com/openscreen",
"rev": "40fe10467c27b6536e5d3241e5881b6e9f243216",
"hash": "sha256-fKXCuGzNVcN8l/2VNR5c9lwUjmSDb7MuEAVF5h8VXQU="
"rev": "8cc5a0e8f6695263d44206cf5930641979cb3179",
"hash": "sha256-YlcvSDSCHHqDA43+hd5hpajZrIGqpn3KxhMJD8Wf+rs="
},
"src/third_party/openscreen/src/buildtools": {
"url": "https://chromium.googlesource.com/chromium/src/buildtools",
"rev": "00459762409cb29cecf398a23cdb0cae918b7515",
"hash": "sha256-QXGJRGyyuN0EPDAF7CAzcTSbjHkz8FRjhqd1JEFF/1o="
"rev": "077a66f30fcf281b066fafb6dfc60818c238efb6",
"hash": "sha256-WnbgaCzZ/BJli6M60kP9e4mVPFDx0yu3eCac5wmQ7iM="
},
"src/third_party/openscreen/src/third_party/tinycbor/src": {
"url": "https://chromium.googlesource.com/external/github.com/intel/tinycbor.git",
@ -576,23 +581,23 @@
},
"src/third_party/pdfium": {
"url": "https://pdfium.googlesource.com/pdfium.git",
"rev": "c82c611f105c0df064cc8c76363578caf9eafb75",
"hash": "sha256-kcrWcvbbGgQTfGypJ2EaLunYtSipJJRAin2jHunZoCU="
"rev": "cf433ae5520d061db56391155b59b34e67484f39",
"hash": "sha256-FF0iXahVfqbi4OOdH9PPgCTAIQT/q0nlT/H70pubCMQ="
},
"src/third_party/perfetto": {
"url": "https://chromium.googlesource.com/external/github.com/google/perfetto.git",
"rev": "f35ae1939989c58c29df43f9c2d8610f5b932715",
"hash": "sha256-SyYTZnNar6F6/k6PGrkRan3l9hAikEVRciDQQaR7Jvs="
"rev": "dd35b295cd359ba094404218414955f961a0d6ae",
"hash": "sha256-kzVsti2tygOMgT61TmCz26AByMd3gIXA6xz8RE0iCz4="
},
"src/third_party/protobuf-javascript/src": {
"url": "https://chromium.googlesource.com/external/github.com/protocolbuffers/protobuf-javascript",
"rev": "eb785a9363664a402b6336dfe96aad27fb33ffa8",
"hash": "sha256-zq86SrDASl6aYPFPijRZp03hJqXUFz2Al/KkiNq7i0M="
"rev": "28bf5df73ef2f345a936d9cc95d64ba8ed426a53",
"hash": "sha256-c/aC+LZQtedL5oouUXw2eTF6xD7LN3J3C0q3D0wl+W0="
},
"src/third_party/pthreadpool/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/pthreadpool.git",
"rev": "290ee6fff0c36614702d6b297c148e3fa08e056a",
"hash": "sha256-jRHF7vZPmh70jNFVukfWzVnA2dBLSDSnMWVyZ9e08n4="
"rev": "dcc9f28589066af0dbd4555579281230abbf74dd",
"hash": "sha256-qogacGPNy6SKQaK8CZvGC8YZbVjhDTXuhDqGopB0Eps="
},
"src/third_party/pyelftools": {
"url": "https://chromium.googlesource.com/chromiumos/third_party/pyelftools.git",
@ -621,13 +626,13 @@
},
"src/third_party/search_engines_data/resources": {
"url": "https://chromium.googlesource.com/external/search_engines_data.git",
"rev": "be408bdc2c1501ef25206145a49dcebb98db34b5",
"hash": "sha256-XlAE782PsEysPVIBM/Q8VdE9XnvoYUVaeMmUUoYFgvM="
"rev": "09fd22f3a4fb77ab03b7734e0c03ff7d7f97ef88",
"hash": "sha256-x7zGPqha12Og/AjQp1mkO0MNydM4xXvIcaapNziW0Kw="
},
"src/third_party/skia": {
"url": "https://skia.googlesource.com/skia.git",
"rev": "0dfd95a49aed617f242c8b06dd5b255d1cb07776",
"hash": "sha256-HBqkqEoyQo3KuRCwP5NW9kuY9maaBYSpjA1lcBdFjxk="
"rev": "a46d5732d9fca93eaec23e502e2eef814b707e6b",
"hash": "sha256-k0vE2K9KfeYsTVZchvKEA8M7GJQcekbuO5wHJeycBZo="
},
"src/third_party/smhasher/src": {
"url": "https://chromium.googlesource.com/external/smhasher.git",
@ -641,13 +646,13 @@
},
"src/third_party/sqlite/src": {
"url": "https://chromium.googlesource.com/chromium/deps/sqlite.git",
"rev": "8a22b25ad7244abaf07e372cc6dc97e041d663a9",
"hash": "sha256-1vAGAF3idxgHGaqb5gT5k3KIGC2H3gqC3RTVU2ZRf4A="
"rev": "0a1397d274701c5d39e661e948160da2b9a8db1e",
"hash": "sha256-jqelU2bFZ4XwI5dpkusvgUobmRyYo/41ZKqbEmOdpis="
},
"src/third_party/swiftshader": {
"url": "https://swiftshader.googlesource.com/SwiftShader.git",
"rev": "7905fa19e456df5aa8e2233a7ec5832c9c6c287b",
"hash": "sha256-Wi8mttxM1fuLqrL2q6qPnpmyAfmDqJGA8Wub+yexFLA="
"rev": "a8133cbb3c8969e3c1e6b3cea2c02ec8312ef9ca",
"hash": "sha256-Fd6T9zFJVPJaF2sbBy+uK0Ia0C6AIZsDbNvPSkbuTJM="
},
"src/third_party/text-fragments-polyfill/src": {
"url": "https://chromium.googlesource.com/external/github.com/GoogleChromeLabs/text-fragments-polyfill.git",
@ -656,18 +661,18 @@
},
"src/third_party/tflite/src": {
"url": "https://chromium.googlesource.com/external/github.com/tensorflow/tensorflow.git",
"rev": "42d6877b1aa1cf324eb03ccf9b13511400341deb",
"hash": "sha256-KummGT7CUoGd3lCGXvtSFcFD1FhSlJXDcEi1WKUza70="
"rev": "151774faba661a5985a8264653f4457c70a56dea",
"hash": "sha256-qpwF2+/dw1u24O5+4bW74R43AgGN//NZwzEmlkyHlr0="
},
"src/third_party/vulkan-deps": {
"url": "https://chromium.googlesource.com/vulkan-deps",
"rev": "96793fb0ff6fb5d4328cc6f71d84f5cb2d835daf",
"hash": "sha256-rAtsw8JV8EwrNzjK5p7JbWQa6fHfpByvZcP71hHC8uM="
"rev": "5912cbdd295c2bacb5798432a7b1cac9d20c0725",
"hash": "sha256-kIj8sncNg6dJzg1fgORev/o164G3kMXCGHzlzb09n0U="
},
"src/third_party/glslang/src": {
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang",
"rev": "fc9889c889561c5882e83819dcaffef5ed45529b",
"hash": "sha256-HwFP4KJuA+BMQVvBWV0BCRj9U5I3CLEU+5bBtde2f6w="
"rev": "93231001597dad1149a5d035af30eda50b9e6b6c",
"hash": "sha256-0PocroQj02mdpmFVXr6XB7mVVNzQOaBXm/2GNacZLF0="
},
"src/third_party/spirv-cross/src": {
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross",
@ -676,38 +681,38 @@
},
"src/third_party/spirv-headers/src": {
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers",
"rev": "bab63ff679c41eb75fc67dac76e1dc44426101e1",
"hash": "sha256-hi4vCwdCnwuYodUYq75niCZt2t9lERQH6529/R+7nH8="
"rev": "c9aad99f9276817f18f72a4696239237c83cb775",
"hash": "sha256-/KfUxWDczLQ/0DOiFC4Z66o+gtoF/7vgvAvKyv9Z9OA="
},
"src/third_party/spirv-tools/src": {
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools",
"rev": "8e9165a3d162967a424dcf2ff645a98b50381cce",
"hash": "sha256-GsoaeO3FMzMtMStg1Wp0KUHU3Xxmmr7t3lDyu0ervNk="
"rev": "01021466b5e71deaac9054f56082566c782bfd51",
"hash": "sha256-04CWBDu4Q+H7EtVTealNyGx0Hml7OjIf0FfK0IuzisY="
},
"src/third_party/vulkan-headers/src": {
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers",
"rev": "e2e53a724677f6eba8ff0ce1ccb64ee321785cbd",
"hash": "sha256-lIuJ50zi9UIMrP/FePI8jHFhJ5LsKhthDY4gIHeZNpo="
"rev": "75ad707a587e1469fb53a901b9b68fe9f6fbc11f",
"hash": "sha256-vB49bFCx9VVEtpwIFcxdqYT+Pk4DgjoPz4rzPfmuRps="
},
"src/third_party/vulkan-loader/src": {
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader",
"rev": "fb78607414e154c7a5c01b23177ba719c8a44909",
"hash": "sha256-CeIjyW90Ri0MvhyFfYgss5Rjh5fHKhQf7CgBEcB/nPk="
"rev": "c913466fdc5004584890f89ff91121bdb2ffd4ba",
"hash": "sha256-D5S1xQbsJ4Ov+3u84Mxj3L/3elyW78jpKRbYo8FpD28="
},
"src/third_party/vulkan-tools/src": {
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools",
"rev": "0b8196724e4ad28cc7459b82a9b75f252c08cb3e",
"hash": "sha256-oL4lyUH26eO6eJy7EQmuXdt4oy3eQ65fribfMSOZV+8="
"rev": "60b640cb931814fcc6dabe4fc61f4738c56579f6",
"hash": "sha256-snLYtiXK1eBZYsc7X18/wk4TnhmkSqquWxyjmw9IF2A="
},
"src/third_party/vulkan-utility-libraries/src": {
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries",
"rev": "4e246c56ec5afb5ad66b9b04374d39ac04675c8e",
"hash": "sha256-MmC4UVa9P/0h7r8IBp1LhP9EztwyZv/ASWKKj8Gk1T8="
"rev": "49ac28931f28bffaa3cd73dc4ad997284d574962",
"hash": "sha256-2mi5gtacSDxtZB8a3oGZqgLhwntSLXlEzDq6W14RHp4="
},
"src/third_party/vulkan-validation-layers/src": {
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers",
"rev": "cea6ec1cdd37494c1f0fc5619c6c356ac33372fb",
"hash": "sha256-iXQZ6Qpe0li+QeThxMUCn45OufZ8W/qJcejpMb4/gWc="
"rev": "f7ceb1d01a292846db77ec87786be84d6fd568d9",
"hash": "sha256-K0KZ8wXTCVRBBN9AWy63ukmE6QkQHKcRgo+YluOhjyc="
},
"src/third_party/vulkan_memory_allocator": {
"url": "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git",
@ -751,18 +756,18 @@
},
"src/third_party/webgpu-cts/src": {
"url": "https://chromium.googlesource.com/external/github.com/gpuweb/cts.git",
"rev": "168536ad91bff176bbe31ae692d97f8bfe9fb86d",
"hash": "sha256-HB16HM4Gj+2F26tyN393VmHbGxvKOZ+M949059odN/4="
"rev": "905c7cbfeaac1cf3feb4c6056dd6f3dbaa06b074",
"hash": "sha256-eMDb0nG9HDiesd8KPajbMej8JTll4JkIf17KMnKvW1s="
},
"src/third_party/webpagereplay": {
"url": "https://chromium.googlesource.com/webpagereplay.git",
"rev": "2c5049abfc2cf36ece82f7f84ebdcb786659eaf7",
"hash": "sha256-lMqCZ27TJ4aXKWDuN22VtceXh0jNH4Ll1234xCbEOro="
"rev": "18172a359f6dab8e3f70b6c5c8c7c55d3e97537a",
"hash": "sha256-qJnO3fFJhaQA77v1lTJ4B7cbXivquTcSvx/m+OcI3No="
},
"src/third_party/webrtc": {
"url": "https://webrtc.googlesource.com/src.git",
"rev": "cec4daea7ed5da94fc38d790bd12694c86865447",
"hash": "sha256-mxRckkiBIpQp2Qxj6fcer3jDftp3wlg+aO4BoUHhyiY="
"rev": "e4445e46a910eb407571ec0b0b8b7043562678cf",
"hash": "sha256-72NbtdYbyMxSGULvOGsZqLj4kvT79pu+TKcnEmcj/Pc="
},
"src/third_party/wuffs/src": {
"url": "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git",
@ -781,18 +786,18 @@
},
"src/third_party/xnnpack/src": {
"url": "https://chromium.googlesource.com/external/github.com/google/XNNPACK.git",
"rev": "474d7e58d4b8f4bd1a98ee74bc57858769f7d925",
"hash": "sha256-UO+nOh7R+3xTSxF2u8dIrv7qn/QmhnDr2J5Ciumj93M="
"rev": "f82ad65ca52cb4d39b73088468a5fe00f56fb47c",
"hash": "sha256-aavq+i8EpQmIMPaym6JxwBFjbpqKtHshXUkdBIXDtpw="
},
"src/third_party/zstd/src": {
"url": "https://chromium.googlesource.com/external/github.com/facebook/zstd.git",
"rev": "d654fca78690fa15cceb8058ac47454d914a0e63",
"hash": "sha256-Ginvak0y1CjURT3mQZzdLn3MW9vXxC7T0KLsM6SHDV0="
"rev": "f9938c217da17ec3e9dcd2a2d99c5cf39536aeb9",
"hash": "sha256-emmJF7XLq5CxXFd0KUrtUtw1YGOHDSiz39vtgVoEPd0="
},
"src/v8": {
"url": "https://chromium.googlesource.com/v8/v8.git",
"rev": "075234cf3d7622d9d588a6f748fc4501aa23080c",
"hash": "sha256-wrLxRuJ3rq1yC0PIUGPsuDB/YNee1x3J/i6ZSLk70HM="
"rev": "0ea9b0813581826a94b45324e746f9ab57f0f843",
"hash": "sha256-jGx1jafKyh9BrrJwWKU78sKlwkX9KYHzhggx6TzRel4="
}
}
},

View File

@ -0,0 +1,34 @@
{
lib,
fetchFromGitHub,
rustPlatform,
perl,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "alterware-launcher";
version = "0.11.2";
src = fetchFromGitHub {
owner = "alterware";
repo = "alterware-launcher";
tag = "v${finalAttrs.version}";
hash = "sha256-DFIiVNYom3LvU9IFA9w9FvXwm9gqfACDs8KaFKQR9Qs=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-/2i6GyBTKLf2oNFkizaBUHcLcCPgsy3g0p31D6cO+xg=";
nativeBuildInputs = [ perl ];
meta = {
description = "Official launcher for AlterWare Call of Duty mods";
longDescription = "Our clients are designed to restore missing features that have been removed by the developers, as well as enhance the capabilities of the games";
homepage = "https://alterware.dev";
changelog = "https://github.com/alterware/alterware-launcher/releases/tag/v${finalAttrs.version}";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ andrewfield ];
mainProgram = "alterware-launcher";
platforms = lib.platforms.linux ++ lib.platforms.darwin;
};
})

View File

@ -0,0 +1,102 @@
{
stdenv,
lib,
fetchFromGitHub,
godot_4_4,
alsa-lib,
libGL,
libpulseaudio,
libX11,
libXcursor,
libXext,
libXi,
libXrandr,
udev,
vulkan-loader,
autoPatchelfHook,
writableTmpDirAsHomeHook,
makeDesktopItem,
copyDesktopItems,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "arrow";
version = "3.0.0";
src = fetchFromGitHub {
owner = "mhgolkar";
repo = "Arrow";
tag = "v${finalAttrs.version}";
hash = "sha256-oodW6XvesBWic0yK1Se/tycjqblE4qUSuAk+3MY3x8I=";
};
desktopItems = [
(makeDesktopItem {
type = "Application";
name = "Arrow";
exec = "Arrow";
icon = "Arrow";
terminal = false;
comment = "Game Narrative Design Tool";
desktopName = "Arrow";
categories = [ "Application" ];
})
];
nativeBuildInputs = [
autoPatchelfHook
writableTmpDirAsHomeHook
godot_4_4
copyDesktopItems
];
runtimeDependencies = map lib.getLib [
alsa-lib
libGL
libpulseaudio
libX11
libXcursor
libXext
libXi
libXrandr
udev
vulkan-loader
];
passthru.updateScript = nix-update-script { };
buildPhase = ''
runHook preBuild
ln -s "${godot_4_4.export-templates-bin}" $HOME/.local
mkdir -p build
godot4 --headless --export-release Linux ./build/Arrow
runHook postBuild
'';
installPhase = ''
runHook preInstall
install -D -m 755 -t $out/libexec ./build/Arrow
install -D -m 644 -t $out/libexec ./build/Arrow.pck
install -d -m 755 $out/bin
ln -s $out/libexec/Arrow $out/bin/Arrow
install -vD icon.svg $out/share/icons/hicolor/scalable/apps/Arrow.svg
runHook postInstall
'';
meta = {
homepage = "https://mhgolkar.github.io/Arrow/";
description = "Game Narrative Design Tool";
license = lib.licenses.mit;
mainProgram = "Arrow";
maintainers = with lib.maintainers; [ miampf ];
platforms = lib.platforms.linux;
};
})

View File

@ -11,13 +11,13 @@
stdenv.mkDerivation rec {
pname = "bfs";
version = "4.0.6";
version = "4.0.8";
src = fetchFromGitHub {
repo = "bfs";
owner = "tavianator";
rev = version;
hash = "sha256-TXnoy+VWkS5ilW6QEtE6vd80FaJ/nIWGaeBJ/cjvquM=";
hash = "sha256-yZoyDa8um3UA8K9Ty17xaGUvQmJA/agZPBsNo+/6weI=";
};
buildInputs =

View File

@ -0,0 +1,15 @@
diff --git a/gui/keymap.cc b/gui/keymap.cc
index 3426b6b..7bf76d8 100644
--- a/gui/keymap.cc
+++ b/gui/keymap.cc
@@ -30,6 +30,10 @@
#include "gui.h"
#include "keymap.h"
+#if defined(__APPLE__)
+#include <libgen.h>
+#endif
+
// Table of bochs "BX_KEY_*" symbols
// the table must be in BX_KEY_* order
const char *bx_key_symbol[BX_KEY_NBKEYS] = {

View File

@ -32,6 +32,9 @@ stdenv.mkDerivation (finalAttrs: {
url = "mirror://sourceforge/project/bochs/bochs/${finalAttrs.version}/bochs-${finalAttrs.version}.tar.gz";
hash = "sha256-y29UK1HzWizJIGsqmA21YCt80bfPLk7U8Ras1VB3gao=";
};
# Fix build on darwin, remove on next version
# https://sourceforge.net/p/bochs/bugs/1466/
patches = lib.optional stdenv.hostPlatform.isDarwin ./fix-darwin-build.patch;
nativeBuildInputs = [
docbook_xml_dtd_45
@ -82,11 +85,6 @@ stdenv.mkDerivation (finalAttrs: {
(lib.enableFeature false "docbook") # Broken - it requires docbook2html
# Dangerous options - they are marked as "incomplete/experimental" on Bochs documentation
(lib.enableFeature false "3dnow")
(lib.enableFeature false "monitor-mwait")
(lib.enableFeature false "raw-serial")
# These are completely configurable, and they don't depend of external tools
(lib.enableFeature true "a20-pin")
(lib.enableFeature true "avx")
@ -153,7 +151,7 @@ stdenv.mkDerivation (finalAttrs: {
Intel x86 CPU, common I/O devices, and a custom BIOS.
'';
license = lib.licenses.lgpl2Plus;
maintainers = with lib.maintainers; [ ];
maintainers = with lib.maintainers; [ patrickdag ];
platforms = lib.platforms.unix;
};
})

View File

@ -21,13 +21,13 @@
}:
stdenv.mkDerivation (finalAttrs: {
pname = "buildbox";
version = "1.3.11";
version = "1.3.21";
src = fetchFromGitLab {
owner = "BuildGrid";
repo = "buildbox/buildbox";
tag = finalAttrs.version;
hash = "sha256-lIRYwZLjYCpA4TMO3GF/yykVKn7LDyNHW9zItZmS9vM=";
hash = "sha256-gZ4PnaIiMPh18Yy2120yIEaQaFpzGNnWXzS7Uw+n/+k=";
};
nativeBuildInputs = [

View File

@ -21,7 +21,7 @@
llvmPackages_19.stdenv.mkDerivation (finalAttrs: {
pname = "clickhouse";
version = "25.3.3.42";
version = "25.3.4.190";
src = fetchFromGitHub rec {
owner = "ClickHouse";
@ -29,7 +29,7 @@ llvmPackages_19.stdenv.mkDerivation (finalAttrs: {
tag = "v${finalAttrs.version}-lts";
fetchSubmodules = true;
name = "clickhouse-${tag}.tar.gz";
hash = "sha256-VYT6Rnq7LaV9fZc4LJ9YtbWQDgEARYok8MjVfg8itIg=";
hash = "sha256-8KH0mziVlayu9g4EwW+hpSV97P72CYDKwGCZ5ycDUwE=";
postFetch = ''
# delete files that make the source too big
rm -rf $out/contrib/llvm-project/llvm/test

View File

@ -17,13 +17,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "confy";
version = "0.8.0";
version = "0.8.1";
src = fetchFromSourcehut {
owner = "~fabrixxm";
repo = "confy";
rev = finalAttrs.version;
hash = "sha256-lQZ9joLK6w+sIjCVOEHstnnQomUl2E4F8FXCZukMUkI=";
hash = "sha256-rkVem9bPjp68Pk8fVPMDZLFFQsqeeRsynWciCk6xWhU=";
};
nativeBuildInputs = [

View File

@ -10,13 +10,13 @@
buildGoModule (finalAttrs: {
pname = "cue";
version = "0.13.1";
version = "0.13.2";
src = fetchFromGitHub {
owner = "cue-lang";
repo = "cue";
tag = "v${finalAttrs.version}";
hash = "sha256-3cTRewUn9Ykb/BoqOdM7LYTQTAqAuW4w06XkBWhZWrY=";
hash = "sha256-g8CG37sN5KdmZwdAdQS2HL4YPGNIkO3d817PHKcIDeA=";
};
vendorHash = "sha256-J9Ox9Yt64PmL2AE+GRdWDHlBtpfmDtxgUbEPaka5JSo=";

View File

@ -3,7 +3,6 @@
lib,
callPackage,
fetchFromGitHub,
fetchpatch,
rustPlatform,
cmake,
yq,
@ -30,26 +29,18 @@ let
in
rustPlatform.buildRustPackage (finalAttrs: {
pname = "deno";
version = "2.3.6";
version = "2.3.7";
src = fetchFromGitHub {
owner = "denoland";
repo = "deno";
tag = "v${finalAttrs.version}";
fetchSubmodules = true; # required for tests
hash = "sha256-l3cWnv2cEmoeecYj38eMIlgqlRjDbtQuc6Q3DmOJoqE=";
hash = "sha256-xrGEEtYOjQmKniDsPnWJSbiTRG0uBFqRbUbrvgrMyHg=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-alvn+d7XTYrw8KXw+k+++J3CsBwAUbQQlh24/EOEzwY=";
cargoPatches = [
(fetchpatch {
name = "fix-sigsegv-on-x86_64-unknown-linux-gnu-targets";
url = "https://github.com/denoland/deno/commit/400a9565c335b51d78c8909f4dbf1dbd4fb5e5d8.patch";
hash = "sha256-dTIw7P6sB6Esf+lSe/gc3cX54GkzLWF5X55yxP/QYoo=";
includes = [ "cli/Cargo.toml" ];
})
];
cargoHash = "sha256-1RhVg5fjzA9zKzpkjOyV1KITlTtW41VVqc2Cbe4pfdY=";
patches = [
./tests-replace-hardcoded-paths.patch

View File

@ -16,7 +16,7 @@ interface Replacer {
const log = logger("src");
const prefetchHash = (nixpkgs: string, version: string) =>
run("nurl", ["https://github.com/denoland/deno", version, "-H", "-n", nixpkgs]);
run("nurl", ["https://github.com/denoland/deno", version, "-H", "-n", nixpkgs, "-S"]);
const prefetchCargoHash = (nixpkgs: string) =>
run(
"nurl",

View File

@ -2,7 +2,6 @@
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
appstream,
cmake,
createrepo_c,
@ -34,7 +33,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "dnf5";
version = "5.2.13.1";
version = "5.2.14.0";
outputs = [
"out"
@ -45,7 +44,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "rpm-software-management";
repo = "dnf5";
tag = finalAttrs.version;
hash = "sha256-Qt3G4jsJNk7iMOWliGjyR2dOGpWANVtZFeYwlsYbFrw=";
hash = "sha256-dCeTOJrOjnGvRhY8u8mMOgm/mbUoTbYqzjiAkbIlSo0=";
};
nativeBuildInputs =

View File

@ -1,7 +1,7 @@
{ mkDprintPlugin }:
mkDprintPlugin {
description = "Markdown code formatter.";
hash = "sha256-fBy+G+DkJqhrCyyaMjmXRe1VeSeCYO+XmJ8ogwAoptA=";
hash = "sha256-2lpgVMExOjMVRTvX6hGRWuufwh2AIkiXaOzkN8LhZgw=";
initConfig = {
configExcludes = [ ];
configKey = "markdown";
@ -9,6 +9,6 @@ mkDprintPlugin {
};
pname = "dprint-plugin-markdown";
updateUrl = "https://plugins.dprint.dev/dprint/markdown/latest.json";
url = "https://plugins.dprint.dev/markdown-0.18.0.wasm";
version = "0.18.0";
url = "https://plugins.dprint.dev/markdown-0.19.0.wasm";
version = "0.19.0";
}

View File

@ -1,7 +1,7 @@
{ mkDprintPlugin }:
mkDprintPlugin {
description = "TypeScript/JavaScript code formatter.";
hash = "sha256-mAePVUsjHVo9okkozXZmwvz456YeO36ghyU4gxKJdyw=";
hash = "sha256-u6DpQWhPyERphKmlXOTE6NW/08YzBDWgzWTJ4JLLAjE=";
initConfig = {
configExcludes = [ "**/node_modules" ];
configKey = "typescript";
@ -16,6 +16,6 @@ mkDprintPlugin {
};
pname = "dprint-plugin-typescript";
updateUrl = "https://plugins.dprint.dev/dprint/typescript/latest.json";
url = "https://plugins.dprint.dev/typescript-0.95.7.wasm";
version = "0.95.7";
url = "https://plugins.dprint.dev/typescript-0.95.8.wasm";
version = "0.95.8";
}

View File

@ -8,14 +8,14 @@
stdenv.mkDerivation {
pname = "epson-inkjet-printer-escpr2";
version = "1.2.28";
version = "1.2.34";
src = fetchurl {
# To find the most recent version go to
# https://support.epson.net/linux/Printer/LSB_distribution_pages/en/escpr2.php
# and retrieve the download link for source package for arm CPU for the tar.gz (the x86 link targets to rpm source files)
url = "https://download3.ebz.epson.net/dsc/f/03/00/16/80/15/8bd63ccd14a1966e9c3658d374686c5bb104bb04/epson-inkjet-printer-escpr2-1.2.28-1.tar.gz";
hash = "sha256-lv8Hgo7JzT4igY8ek7EXdyFO34l735dpMC+gWkO5rvY=";
url = "https://download3.ebz.epson.net/dsc/f/03/00/17/17/88/53f956e8d0a0dfc9cb7d0c35907183deb028a8b7/epson-inkjet-printer-escpr2-1.2.34-1.tar.gz";
hash = "sha256-7EpK/EI9MHTX2z+JtMB2Urt/e893cwNX5DAGSbjDyj4=";
};
buildInputs = [ cups ];
@ -27,8 +27,8 @@ stdenv.mkDerivation {
# Fixes "implicit declaration of function" errors
# source of patch: https://aur.archlinux.org/packages/epson-inkjet-printer-escpr2
(fetchurl {
url = "https://aur.archlinux.org/cgit/aur.git/plain/bug_x86_64.patch?h=epson-inkjet-printer-escpr2&id=575d1b959063044f233cca099caceec8e6d5c02f";
sha256 = "sha256-G6/3oj25FUT+xv9aJ7qP5PBZWLfy+V8MCHUYucDhtzM=";
url = "https://aur.archlinux.org/cgit/aur.git/plain/bug_x86_64.patch?h=epson-inkjet-printer-escpr2&id=8fbca325d6d39fa3ffe001f90a432380bdeacc2f";
sha256 = "sha256-V8ejK33qyHPX4x8EOgR+XWW44KR8DQwHx2w+O71gQwo=";
})
];

View File

@ -0,0 +1,43 @@
{
lib,
buildGoModule,
fetchFromGitea,
}:
buildGoModule (finalAttrs: {
pname = "gitea-mcp-server";
version = "0.2.0";
src = fetchFromGitea {
domain = "gitea.com";
owner = "gitea";
repo = "gitea-mcp";
tag = "v${finalAttrs.version}";
hash = "sha256-ZUnpE25XIYzSwdEilzXnhqGR676iBQcR2yiT3jhJApc=";
};
vendorHash = "sha256-u9jIjrbDUhnaaeBET+pKQTKhaQLUeQvKOXSBfS0vMJM=";
subPackages = [ "." ];
doCheck = false; # no test
postInstall = ''
install -Dm644 README.md LICENSE -t $out/share/doc/gitea-mcp-server
'';
meta = {
description = "Gitea Model Context Protocol (MCP) Server";
longDescription = ''
The Gitea MCP Server is a Model Context Protocol (MCP) server that provides
seamless integration with Gitea APIs, enabling advanced automation and
interaction capabilities for developers and tools.
This server allows LLMs to interact with Gitea repositories, issues, pull
requests, and other Gitea features through structured API interactions.
'';
homepage = "https://gitea.com/gitea/gitea-mcp";
license = lib.licenses.mit;
mainProgram = "gitea-mcp";
maintainers = with lib.maintainers; [ connerohnesorge ];
};
})

View File

@ -0,0 +1,24 @@
From bdf4159dd5c1cf925512c0eb8490846c084e3c8c Mon Sep 17 00:00:00 2001
From: Reepca Russelstein
Date: Tue, 24 Jun 2025 22:35:04 -0500
Subject: [PATCH] nix: libutil: add <cstdint> include to seccomp.hh.
* nix/libutil/seccomp.hh (<cstdint>): add include of header.
Change-Id: I0a0b2892d81dbab662eda1ba80f4736178d70c65
---
nix/libutil/seccomp.hh | 1 +
1 file changed, 1 insertion(+)
diff --git a/nix/libutil/seccomp.hh b/nix/libutil/seccomp.hh
index 634dfad5f8..a4b449fc66 100644
--- a/nix/libutil/seccomp.hh
+++ b/nix/libutil/seccomp.hh
@@ -4,6 +4,7 @@
#include <linux/audit.h> /* For AUDIT_ARCH_* */
#include <linux/seccomp.h>
#include <linux/filter.h>
+#include <cstdint>
/* This file provides two preprocessor macros (among other things):

View File

@ -1,9 +1,9 @@
{
lib,
stdenv,
fetchurl,
fetchpatch,
fetchDebianPatch,
fetchgit,
graphviz,
gettext,
autoreconfHook,
disarchive,
git,
@ -27,6 +27,7 @@
pkg-config,
po4a,
scheme-bytestructures,
slirp4netns,
texinfo,
bzip2,
libgcrypt,
@ -37,45 +38,21 @@
storeDir ? "/gnu/store",
confDir ? "/etc",
}:
let
rev = "30a5d140aa5a789a362749d057754783fea83dde";
in
stdenv.mkDerivation rec {
pname = "guix";
version = "1.4.0";
version = "1.4.0-unstable-2025-06-24";
src = fetchurl {
url = "mirror://gnu/guix/guix-${version}.tar.gz";
hash = "sha256-Q8dpy/Yy7wVEmsH6SMG6FSwzSUxqvH5HE3u6eyFJ+KQ=";
src = fetchgit {
url = "https://codeberg.org/guix/guix.git";
inherit rev;
hash = "sha256-QsOYApnwA2hb1keSv6p3EpMT09xCs9uyoSeIdXzftF0=";
};
patches = [
(fetchpatch {
name = "CVE-2024-27297_1.patch";
url = "https://git.savannah.gnu.org/cgit/guix.git/patch/?id=8f4ffb3fae133bb21d7991e97c2f19a7108b1143";
hash = "sha256-xKo1h2uckC2pYHt+memekagfL6dWcF8gOnTOOW/wJUU=";
})
(fetchpatch {
name = "CVE-2024-27297_2.patch";
url = "https://git.savannah.gnu.org/cgit/guix.git/patch/?id=ff1251de0bc327ec478fc66a562430fbf35aef42";
hash = "sha256-f4KWDVrvO/oI+4SCUHU5GandkGtHrlaM1BWygM/Qlao=";
})
# see https://guix.gnu.org/en/blog/2024/build-user-takeover-vulnerability
(fetchDebianPatch {
inherit pname version;
debianRevision = "8";
patch = "security/0101-daemon-Sanitize-failed-build-outputs-prior-to-exposi.patch";
hash = "sha256-cbra/+K8+xHUJrCKRgzJCuhMBpzCSjgjosKAkJx7QIo=";
})
(fetchDebianPatch {
inherit pname version;
debianRevision = "8";
patch = "security/0102-daemon-Sanitize-successful-build-outputs-prior-to-ex.patch";
hash = "sha256-mOnlYtpIuYL+kDvSNuXuoDLJP03AA9aI2ALhap+0NOM=";
})
(fetchpatch {
name = "fix-guile-ssh-detection.patch";
url = "https://git.savannah.gnu.org/cgit/guix.git/patch/?id=b8a45bd0473ab2ba9b96b7ef429a557ece9bf06c";
hash = "sha256-oYkgM694qPK8kqgxatkr4fj/GL73ozTNQADNyDeU6WY=";
})
./missing-cstdint-include.patch
];
postPatch = ''
@ -90,6 +67,8 @@ stdenv.mkDerivation rec {
autoreconfHook
disarchive
git
graphviz
gettext
glibcLocales
guile
guile-avahi
@ -110,6 +89,7 @@ stdenv.mkDerivation rec {
pkg-config
po4a
scheme-bytestructures
slirp4netns
texinfo
];
@ -136,6 +116,7 @@ stdenv.mkDerivation rec {
guile-zlib
guile-zstd
scheme-bytestructures
slirp4netns
];
configureFlags = [
@ -145,6 +126,11 @@ stdenv.mkDerivation rec {
"--with-bash-completion-dir=$(out)/etc/bash_completion.d"
];
preAutoreconf = ''
echo ${version} > .tarball-version
./bootstrap
'';
enableParallelBuilding = true;
postInstall = ''
@ -174,8 +160,8 @@ stdenv.mkDerivation rec {
Guix.
Guix is based on the Nix package manager.
'';
homepage = "http://www.gnu.org/software/guix";
changelog = "https://git.savannah.gnu.org/cgit/guix.git/plain/NEWS?h=v${version}";
homepage = "https://guix.gnu.org/";
changelog = "https://codeberg.org/guix/guix/raw/commit/${rev}/NEWS";
license = lib.licenses.gpl3Plus;
mainProgram = "guix";
maintainers = with lib.maintainers; [

View File

@ -16,11 +16,22 @@ stdenv.mkDerivation (finalAttrs: {
buildInputs = [ libX11 ];
buildFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ]; # fix darwin and cross-compiled builds
# Function are declared after they are used in the file, this is error since gcc-14.
# randnum.c:25:3: warning: implicit declaration of function 'srand' [-Wimplicit-function-declaration]
# randnum.c:33:7: warning: implicit declaration of function 'rand'; did you mean 'randnum'? [-Wimplicit-function-declaration]
# text.c:34:50: warning: implicit declaration of function 'strlen' [-Wimplicit-function-declaration]
env.NIX_CFLAGS_COMPILE = "-Wno-error=implicit-function-declaration";
postPatch = ''
substituteInPlace randnum.c --replace-fail 'stdio.h' 'stdlib.h'
sed -i '1i\
#include <string.h>' text.c
# The Makefile tries to install icbm3d immediately after building it, and
# ends up trying to copy it to /icbm3d. Normally this just gets an error
# and moves on, but it's probably better to not try it in the first place.
sed -i '/INSTALLROOT/d' makefile
'';
installPhase = ''
runHook preInstall
@ -35,6 +46,6 @@ stdenv.mkDerivation (finalAttrs: {
description = "3D vector-based clone of the atari game Missile Command";
mainProgram = "icbm3d";
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.linux;
platforms = lib.platforms.unix;
};
})

View File

@ -6,17 +6,17 @@
rustPlatform.buildRustPackage rec {
pname = "kitty-img";
version = "1.0.0";
version = "1.1.0";
src = fetchFromSourcehut {
owner = "~zethra";
repo = "kitty-img";
rev = version;
hash = "sha256-5thx4ADmJE29bxN+ZO3hF0jhgXK+boqt8oj4Sygl5SU=";
hash = "sha256-liqLocNIIOmkVWI8H9WU7T352sK7sceVtOX+R0BQ/uk=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-KSNl/SpqcgMaKbkBfNtR7M8+B1clPauYi7NlP+f5Pd0=";
cargoHash = "sha256-50M1TUGvjELARt/gvtyAPNL0hG1ekKwdefI9nMEsTo0=";
meta = {
description = "Print images inline in kitty";

View File

@ -95,7 +95,7 @@ stdenv.mkDerivation rec {
# TODO: figure out why this is even necessary and why the missing dylib only crashes
# random instead of every test
preCheck = lib.optionalString stdenv.hostPlatform.isDarwin ''
preCheck = lib.optionalString (stdenv.hostPlatform.isDarwin && !stdenv.hostPlatform.isStatic) ''
mkdir -p $lib/lib
cp src/.libs/libgcrypt.20.dylib $lib/lib
'';

View File

@ -1,21 +1,21 @@
{
"version": "3.144.0",
"version": "3.146.0",
"assets": {
"x86_64-linux": {
"url": "https://github.com/metalbear-co/mirrord/releases/download/3.144.0/mirrord_linux_x86_64",
"hash": "sha256-XbveB71EIChiuPVfqOshEhPZHnTGd7xJt48/zuyq5TA="
"url": "https://github.com/metalbear-co/mirrord/releases/download/3.146.0/mirrord_linux_x86_64",
"hash": "sha256-hyLB5r2YJ32jd64xueIFGET+FiGMCJInHcOu/YyHCbI="
},
"aarch64-linux": {
"url": "https://github.com/metalbear-co/mirrord/releases/download/3.144.0/mirrord_linux_aarch64",
"hash": "sha256-4Tw68aWpNsjfi6d7qgBhbVvAMsHwUsttfVSpx3Kv2Nk="
"url": "https://github.com/metalbear-co/mirrord/releases/download/3.146.0/mirrord_linux_aarch64",
"hash": "sha256-6Yi0FeXweDPbYI+c/XsCGetCkz1Ab4u4LAaGu6msJwc="
},
"aarch64-darwin": {
"url": "https://github.com/metalbear-co/mirrord/releases/download/3.144.0/mirrord_mac_universal",
"hash": "sha256-FhRgopH7QRH+30Bofoiwdx3Vlne6D/ftaqhGuUnyH0g="
"url": "https://github.com/metalbear-co/mirrord/releases/download/3.146.0/mirrord_mac_universal",
"hash": "sha256-qvF6JTfeXvwNniNBn+/eGD6RBesbVeLgPo9HcDVBtKA="
},
"x86_64-darwin": {
"url": "https://github.com/metalbear-co/mirrord/releases/download/3.144.0/mirrord_mac_universal",
"hash": "sha256-FhRgopH7QRH+30Bofoiwdx3Vlne6D/ftaqhGuUnyH0g="
"url": "https://github.com/metalbear-co/mirrord/releases/download/3.146.0/mirrord_mac_universal",
"hash": "sha256-qvF6JTfeXvwNniNBn+/eGD6RBesbVeLgPo9HcDVBtKA="
}
}
}

View File

@ -0,0 +1,48 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Kenichi Kamiya <kachick1@gmail.com>
Date: Sun, 15 Jun 2025 10:35:51 +0900
Subject: [PATCH] Fix broken symlinks
---
scalable/apps/gnome-character-map.svg | 2 +-
symbolic/apps/pamac-manager-symbolic.svg | 2 +-
symbolic/apps/pamac-symbolic.svg | 2 +-
symbolic/apps/pamac-updater-symbolic.svg | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/scalable/apps/gnome-character-map.svg b/scalable/apps/gnome-character-map.svg
index f04d4679adb66b897b42396e75896f4c46199c24..d400f7677eefaa10db958bb324247825d8c3578e 120000
--- a/scalable/apps/gnome-character-map.svg
+++ b/scalable/apps/gnome-character-map.svg
@@ -1 +1 @@
-accessories-character-map.svg
\ No newline at end of file
+../legacy/accessories-character-map.svg
\ No newline at end of file
diff --git a/symbolic/apps/pamac-manager-symbolic.svg b/symbolic/apps/pamac-manager-symbolic.svg
index 758557a5c791b43de172d29f466fe6b6cb9d5207..106458e72401668bca4b9457cd6c2eff9ea7e4e2 120000
--- a/symbolic/apps/pamac-manager-symbolic.svg
+++ b/symbolic/apps/pamac-manager-symbolic.svg
@@ -1 +1 @@
-system-software-install-symbolic.svg
\ No newline at end of file
+../legacy/system-software-install-symbolic.svg
\ No newline at end of file
diff --git a/symbolic/apps/pamac-symbolic.svg b/symbolic/apps/pamac-symbolic.svg
index 758557a5c791b43de172d29f466fe6b6cb9d5207..106458e72401668bca4b9457cd6c2eff9ea7e4e2 120000
--- a/symbolic/apps/pamac-symbolic.svg
+++ b/symbolic/apps/pamac-symbolic.svg
@@ -1 +1 @@
-system-software-install-symbolic.svg
\ No newline at end of file
+../legacy/system-software-install-symbolic.svg
\ No newline at end of file
diff --git a/symbolic/apps/pamac-updater-symbolic.svg b/symbolic/apps/pamac-updater-symbolic.svg
index 758557a5c791b43de172d29f466fe6b6cb9d5207..106458e72401668bca4b9457cd6c2eff9ea7e4e2 120000
--- a/symbolic/apps/pamac-updater-symbolic.svg
+++ b/symbolic/apps/pamac-updater-symbolic.svg
@@ -1 +1 @@
-system-software-install-symbolic.svg
\ No newline at end of file
+../legacy/system-software-install-symbolic.svg
\ No newline at end of file

View File

@ -4,18 +4,32 @@
fetchFromGitHub,
gtk3,
xdg-utils,
nix-update-script,
}:
stdenvNoCC.mkDerivation rec {
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "morewaita-icon-theme";
version = "48.1";
version = "48.2";
src = fetchFromGitHub {
owner = "somepaulo";
repo = "MoreWaita";
tag = "v${version}";
hash = "sha256-18jI4hADVHC/WCmMTlA+VBuZ1jNGSxL+lO3GwWDiNoU=";
tag = "v${finalAttrs.version}";
hash = "sha256-eCMU5RNlqHN6tImGd2ur+rSC+kR5xQ8Zh4BaRgjBHVc=";
};
patches = [
# Avoiding "ERROR: noBrokenSymlinks". ref: https://github.com/somepaulo/MoreWaita/pull/335
./fix-broken-symlinks.patch
];
postPatch = ''
patchShebangs install.sh
# Replace this workaround if https://github.com/somepaulo/MoreWaita/pull/339 is merged
substituteInPlace install.sh \
--replace-fail '"''${HOME}/.local/share/' '"$out/share/'
'';
nativeBuildInputs = [
gtk3
xdg-utils
@ -24,18 +38,23 @@ stdenvNoCC.mkDerivation rec {
installPhase = ''
runHook preInstall
install -d $out/share/icons/MoreWaita
cp -r . $out/share/icons/MoreWaita
gtk-update-icon-cache -f -t $out/share/icons/MoreWaita && xdg-desktop-menu forceupdate
./install.sh
runHook postInstall
'';
meta = with lib; {
passthru = {
updateScript = nix-update-script { };
};
meta = {
description = "Adwaita style extra icons theme for Gnome Shell";
homepage = "https://github.com/somepaulo/MoreWaita";
license = with licenses; [ gpl3Only ];
platforms = platforms.linux;
maintainers = with maintainers; [ pkosel ];
license = with lib.licenses; [ gpl3Only ];
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [
pkosel
kachick
];
};
}
})

View File

@ -1,41 +1,17 @@
GEM
remote: https://rubygems.org/
specs:
mini_portile2 (2.8.8)
nokogiri (1.18.3)
mini_portile2 (2.8.9)
nokogiri (1.18.8)
mini_portile2 (~> 2.8.2)
racc (~> 1.4)
nokogiri (1.18.3-aarch64-linux-gnu)
racc (~> 1.4)
nokogiri (1.18.3-aarch64-linux-musl)
racc (~> 1.4)
nokogiri (1.18.3-arm-linux-gnu)
racc (~> 1.4)
nokogiri (1.18.3-arm-linux-musl)
racc (~> 1.4)
nokogiri (1.18.3-arm64-darwin)
racc (~> 1.4)
nokogiri (1.18.3-x86_64-darwin)
racc (~> 1.4)
nokogiri (1.18.3-x86_64-linux-gnu)
racc (~> 1.4)
nokogiri (1.18.3-x86_64-linux-musl)
racc (~> 1.4)
racc (1.8.1)
PLATFORMS
aarch64-linux-gnu
aarch64-linux-musl
arm-linux-gnu
arm-linux-musl
arm64-darwin
ruby
x86_64-darwin
x86_64-linux-gnu
x86_64-linux-musl
DEPENDENCIES
nokogiri
BUNDLED WITH
2.6.2
2.6.9

View File

@ -4,10 +4,10 @@
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0x8asxl83msn815lwmb2d7q5p29p7drhjv5va0byhk60v9n16iwf";
sha256 = "12f2830x7pq3kj0v8nz0zjvaw02sv01bqs1zwdrc04704kwcgmqc";
type = "gem";
};
version = "2.8.8";
version = "2.8.9";
};
nokogiri = {
dependencies = [
@ -18,10 +18,10 @@
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0npx535cs8qc33n0lpbbwl0p9fi3a5bczn6ayqhxvknh9yqw77vb";
sha256 = "0rb306hbky6cxfyc8vrwpvl40fdapjvhsk62h08gg9wwbn3n8x4c";
type = "gem";
};
version = "1.18.3";
version = "1.18.8";
};
racc = {
groups = [ "default" ];

View File

@ -14,6 +14,8 @@
bundlerEnv,
libnotify,
pandoc,
autoreconfHook,
bundlerUpdateScript,
}:
let
@ -34,8 +36,7 @@ stdenv.mkDerivation {
};
nativeBuildInputs = [
autoconf
automake
autoreconfHook
pkg-config
];
buildInputs = [
@ -50,25 +51,21 @@ stdenv.mkDerivation {
libnotify
];
preConfigure = ''
./autogen.sh
'';
configureFlags = [
"--enable-gmodule"
"--with-standard-modules=all"
];
meta = with lib; {
passthru.updateScript = bundlerUpdateScript "mpdcron";
meta = {
description = "Cron like daemon for mpd";
homepage = "http://alip.github.io/mpdcron/";
license = licenses.gpl2Plus;
platforms = platforms.unix;
maintainers = with maintainers; [
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [
lovek323
manveru
];
broken = stdenv.hostPlatform.isDarwin; # fails due to old nokogiri https://github.com/sparklemotion/nokogiri/discussions/3152#discussioncomment-8806607
};
}
# TODO: autoreconfHook this

View File

@ -121,6 +121,9 @@ py.pkgs.buildPythonApplication rec {
description = "IP address management (IPAM) and data center infrastructure management (DCIM) tool";
mainProgram = "netbox";
license = lib.licenses.asl20;
knownVulnerabilities = [
"Netbox Version ${version} is EOL; please upgrade by following the current release notes instructions"
];
maintainers = with lib.maintainers; [
minijackson
raitobezarius

View File

@ -0,0 +1,13 @@
diff --git a/netbox/netbox/settings.py b/netbox/netbox/settings.py
index 2de06dd10..00406af48 100644
--- a/netbox/netbox/settings.py
+++ b/netbox/netbox/settings.py
@@ -410,7 +412,7 @@ USE_X_FORWARDED_HOST = True
X_FRAME_OPTIONS = 'SAMEORIGIN'
# Static files (CSS, JavaScript, Images)
-STATIC_ROOT = BASE_DIR + '/static'
+STATIC_ROOT = getattr(configuration, 'STATIC_ROOT', os.path.join(BASE_DIR, 'static')).rstrip('/')
STATIC_URL = f'/{BASE_PATH}static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'project-static', 'dist'),

View File

@ -0,0 +1,130 @@
{
lib,
fetchFromGitHub,
python3,
plugins ? _ps: [ ],
nixosTests,
nix-update-script,
}:
let
py = python3.override {
self = py;
packageOverrides = _final: prev: { django = prev.django_5_2; };
};
extraBuildInputs = plugins py.pkgs;
in
py.pkgs.buildPythonApplication rec {
pname = "netbox";
version = "4.3.2";
pyproject = false;
src = fetchFromGitHub {
owner = "netbox-community";
repo = "netbox";
tag = "v${version}";
hash = "sha256-20X/0k60q2cPsWuz+qpgcfXGkg+A2k5qaWx6zHkmpWc=";
};
patches = [
./custom-static-root.patch
];
dependencies =
(
with py.pkgs;
[
django
django-cors-headers
django-debug-toolbar
django-filter
django-graphiql-debug-toolbar
django-htmx
django-mptt
django-pglocks
django-prometheus
django-redis
django-rq
django-storages
django-tables2
django-taggit
django-timezone-field
djangorestframework
drf-spectacular
drf-spectacular-sidecar
feedparser
jinja2
markdown
netaddr
nh3
pillow
psycopg
pyyaml
requests
social-auth-core
social-auth-app-django
strawberry-graphql
strawberry-django
svgwrite
tablib
# Optional dependencies, kept here for backward compatibility
# for the S3 data source backend
boto3
# for Git data source backend
dulwich
# for error reporting
sentry-sdk
]
++ psycopg.optional-dependencies.c
++ psycopg.optional-dependencies.pool
++ social-auth-core.optional-dependencies.openidconnect
)
++ extraBuildInputs;
nativeBuildInputs = with py.pkgs; [
mkdocs-material
mkdocs-material-extensions
mkdocstrings
mkdocstrings-python
];
postBuild = ''
PYTHONPATH=$PYTHONPATH:netbox/
${py.interpreter} -m mkdocs build
'';
installPhase = ''
mkdir -p $out/opt/netbox
cp -r . $out/opt/netbox
chmod +x $out/opt/netbox/netbox/manage.py
makeWrapper $out/opt/netbox/netbox/manage.py $out/bin/netbox \
--prefix PYTHONPATH : "$PYTHONPATH"
'';
passthru = {
python = py;
# PYTHONPATH of all dependencies used by the package
pythonPath = py.pkgs.makePythonPath dependencies;
inherit (py.pkgs) gunicorn;
tests = {
netbox = nixosTests.netbox_4_3;
inherit (nixosTests) netbox-upgrade;
};
updateScript = nix-update-script { };
};
meta = {
homepage = "https://github.com/netbox-community/netbox";
changelog = "https://github.com/netbox-community/netbox/blob/${src.tag}/docs/release-notes/version-${lib.versions.majorMinor version}.md";
description = "IP address management (IPAM) and data center infrastructure management (DCIM) tool";
mainProgram = "netbox";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [
minijackson
raitobezarius
transcaffeine
];
};
}

View File

@ -35,13 +35,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "netgen";
version = "6.2.2501";
version = "6.2.2504";
src = fetchFromGitHub {
owner = "ngsolve";
repo = "netgen";
tag = "v${finalAttrs.version}";
hash = "sha256-IzYulT3bo7XZiEEy8vNCct0zqHCnbQaH+y4fHMorzZw=";
hash = "sha256-N4mmh2H2qvc+3Pa9CHm38arViI76Qvwp8fOVGZbMv1M=";
};
patches = [
@ -100,6 +100,7 @@ stdenv.mkDerivation (finalAttrs: {
imagemagick
cmake
python3Packages.pybind11-stubgen
python3Packages.pythonImportsCheckHook
] ++ lib.optional stdenv.hostPlatform.isLinux copyDesktopItems;
buildInputs = [
@ -163,7 +164,7 @@ stdenv.mkDerivation (finalAttrs: {
mkdir -p $out/Applications/netgen.app/Contents/{MacOS,Resouces}
substituteInPlace $out/Info.plist --replace-fail "Netgen1" "netgen"
mv $out/Info.plist $out/Applications/netgen.app/Contents
mv $out/Netgen.icns $out/Applications/netgen.app/Contents/Resouces
mv $out/Netgen.icns $out/Applications/netgen.app/Contents/Resources
ln -s $out/bin/netgen $out/Applications/netgen.app/Contents/MacOS/netgen
''
+ lib.optionalString stdenv.hostPlatform.isLinux ''
@ -194,7 +195,6 @@ stdenv.mkDerivation (finalAttrs: {
python3Packages.pytest
python3Packages.pytest-check
python3Packages.pytest-mpi
python3Packages.pythonImportsCheckHook
mpiCheckPhaseHook
];

View File

@ -0,0 +1,62 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
hatchling,
psycopg,
pyicu,
python-dotenv,
pyyaml,
sqlalchemy,
}:
buildPythonPackage rec {
pname = "nominatim";
version = "5.1.0";
pyproject = true;
src = fetchFromGitHub {
owner = "osm-search";
repo = "Nominatim";
tag = "v${version}";
hash = "sha256-eMCXXPrUZvM4ju0mi1+f+LXhThCCCEH+HDz6lurw+Jo=";
};
postPatch = ''
# pyproject.toml tool.hatch.build.targets.sdist.exclude is not properly
# excluding config.py file.
# Fix FileExistsError: File already exists: ... nominatim_api/config.py
rm src/nominatim_api/config.py
# Change to package directory
cd packaging/nominatim-api
'';
build-system = [
hatchling
];
dependencies = [
psycopg
pyicu
python-dotenv
pyyaml
sqlalchemy
];
# Fails on: ModuleNotFoundError: No module named 'nominatim_db'
# pythonImportsCheck = [ "nominatim_api" ];
meta = {
description = "Search engine for OpenStreetMap data (API module)";
homepage = "https://nominatim.org/";
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ mausch ];
teams = with lib.teams; [
geospatial
ngi
];
};
}

View File

@ -1,89 +1,83 @@
{
stdenv,
lib,
fetchFromGitHub,
fetchurl,
clang-tools,
cmake,
bzip2,
zlib,
expat,
boost,
git,
pandoc,
nlohmann_json,
# Nominatim needs to be built with the same postgres version it will target
libpq,
python3,
php,
lua,
osm2pgsql,
python3Packages,
nominatim, # required for testVersion
testers,
}:
let
countryGrid = fetchurl {
# Nominatim docs mention https://www.nominatim.org/data/country_grid.sql.gz but it's not a very good URL for pinning
# Nominatim-db needs https://www.nominatim.org/data/country_grid.sql.gz
# but it's not a very good URL for pinning
url = "https://web.archive.org/web/20220323041006/https://nominatim.org/data/country_grid.sql.gz";
sha256 = "sha256-/mY5Oq9WF0klXOv0xh0TqEJeMmuM5QQJ2IxANRZd4Ek=";
hash = "sha256-/mY5Oq9WF0klXOv0xh0TqEJeMmuM5QQJ2IxANRZd4Ek=";
};
in
stdenv.mkDerivation rec {
python3Packages.buildPythonApplication rec {
pname = "nominatim";
version = "4.4.0";
version = "5.1.0";
pyproject = true;
src = fetchFromGitHub {
owner = "osm-search";
repo = "Nominatim";
rev = "v${version}";
fetchSubmodules = true;
hash = "sha256-GPMDbvTPl9SLpZi5gyRAPQ84NSTIRoSfGJeqWs1e9Oo=";
tag = "v${version}";
hash = "sha256-eMCXXPrUZvM4ju0mi1+f+LXhThCCCEH+HDz6lurw+Jo=";
};
nativeBuildInputs = [
cmake
clang-tools
git
pandoc
php
lua
];
buildInputs = [
bzip2
zlib
expat
boost
nlohmann_json
(python3.withPackages (
ps: with ps; [
pyyaml
python-dotenv
psycopg2
sqlalchemy
asyncpg
psutil
jinja2
pyicu
datrie
pyosmium
]
))
# python3Packages.pylint # We don't want to run pylint because the package could break on pylint bumps which is really annoying.
# python3Packages.pytest # disabled since I can't get it to run tests anyway
# python3Packages.behave # disabled since I can't get it to run tests anyway
libpq
];
postPatch = ''
mkdir -p ./data
ln -s ${countryGrid} ./data/country_osm_grid.sql.gz
# Fix: FileExistsError: File already exists: ... nominatim_db/paths.py
# pyproject.toml tool.hatch.build.targets.sdist.exclude is not properly
# excluding paths.py file.
rm src/nominatim_db/paths.py
# Install country_osm_grid.sql.gz required for data import
cp ${countryGrid} ./data/country_osm_grid.sql.gz
# Change to package directory
cd packaging/nominatim-db
'';
meta = with lib; {
description = "Search engine for OpenStreetMap data";
build-system = with python3Packages; [
hatchling
];
dependencies = with python3Packages; [
nominatim-api
jinja2
psutil
psycopg
pyicu
python-dotenv
pyyaml
];
propagatedBuildInputs = [
osm2pgsql
];
pythonImportsCheck = [ "nominatim_db" ];
passthru = {
tests.version = testers.testVersion { package = nominatim; };
};
meta = {
description = "Search engine for OpenStreetMap data (DB, CLI)";
homepage = "https://nominatim.org/";
license = licenses.gpl2Plus;
platforms = platforms.unix;
maintainers = [ maintainers.mausch ];
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ mausch ];
teams = with lib.teams; [
geospatial
ngi
];
mainProgram = "nominatim";
};
}

View File

@ -6,14 +6,14 @@
buildGoModule rec {
pname = "ntfy-alertmanager";
version = "0.4.0";
version = "0.5.0";
src = fetchurl {
url = "https://git.xenrox.net/~xenrox/ntfy-alertmanager/refs/download/v${version}/ntfy-alertmanager-${version}.tar.gz";
hash = "sha256-5rQzJZ0BaLtfj2MfyZZJ3PEiWnaTjWOMlsJYeYENW7U=";
hash = "sha256-Sn2hPt03o4Pi1WY/3d5oWhWUt8x+3P8hoNPS58tj0Kw=";
};
vendorHash = "sha256-8a6dvBERegpFYFHQGJppz5tlQioQAudCe3/Q7vro+ZI=";
vendorHash = "sha256-NHaLv+Ulzl4ev3a6OjZiacCSmYAtvqFFmbYzAp+4AFU=";
meta = with lib; {
description = "Bridge between ntfy and Alertmanager";

View File

@ -0,0 +1,53 @@
{
lib,
buildGoModule,
fetchFromGitHub,
pkg-config,
versionCheckHook,
nix-update-script,
}:
buildGoModule (finalAttrs: {
pname = "overpush";
version = "0.4.3";
src = fetchFromGitHub {
owner = "mrusme";
repo = "overpush";
tag = "v${finalAttrs.version}";
hash = "sha256-Bs5Mlpod7bIQxekadU6xBhgC8nchli+BvxEH6NeMOKw=";
};
vendorHash = "sha256-wsuztFwEfluUxL2RjMP7Y+JtxQHr5oLwHkAL8UIHyVQ=";
env.CGO_ENABLED = "0";
ldflags = [
"-s"
"-X main.version=${finalAttrs.version}"
];
nativeBuildInputs = [
pkg-config
];
nativeInstallCheckInputs = [
versionCheckHook
];
versionCheckProgramArg = "--version";
doInstallCheck = true;
passthru = {
updateScript = nix-update-script { };
};
meta = {
description = "Self-hosted, drop-in replacement for Pushover that can use XMPP";
homepage = "https://github.com/mrusme/overpush";
changelog = "https://github.com/mrusme/overpush/releases/tag/v${finalAttrs.version}";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ liberodark ];
platforms = lib.platforms.linux;
mainProgram = "overpush";
};
})

View File

@ -0,0 +1,82 @@
{
lib,
stdenv,
fetchFromGitHub,
puredata,
pkg-config,
cmake,
openssl,
libogg,
libvorbis,
opusfile,
ffmpeg,
zlib,
}:
stdenv.mkDerivation rec {
pname = "pd-else";
version = "1.0-rc13";
src = fetchFromGitHub {
owner = "porres";
repo = "pd-else";
tag = "v.${version}";
hash = "sha256-WebjdozcFup2xk3cS9LPTiA6m0l1sR6sj3hHlt6ScfU=";
};
nativeBuildInputs = [
pkg-config
cmake
];
buildInputs = [
puredata
openssl
libogg
libvorbis
opusfile
ffmpeg
zlib
];
# Set up Pure Data headers and configure with system libraries
preConfigure = ''
substituteInPlace CMakeLists.txt \
--replace-fail 'add_subdirectory(Source/Shared/ffmpeg)' '# add_subdirectory(Source/Shared/ffmpeg) - using system FFmpeg' \
--replace-fail 'target_link_libraries(play.file_tilde PRIVATE ffmpeg)' 'target_link_libraries(play.file_tilde PRIVATE avformat avcodec avutil swresample z)' \
--replace-fail 'target_link_libraries(sfload PRIVATE ffmpeg)' 'target_link_libraries(sfload PRIVATE avformat avcodec avutil swresample z)' \
--replace-fail 'target_link_libraries(sfinfo PRIVATE ffmpeg)' 'target_link_libraries(sfinfo PRIVATE avformat avcodec avutil swresample z)'
'';
cmakeFlags = [
"-DCMAKE_C_FLAGS=-I${puredata}/include/pd"
"-DCMAKE_CXX_FLAGS=-I${puredata}/include/pd"
"-DUSE_LTO=ON"
"-DOPENSSL_CRYPTO_LIBRARY=${lib.getLib openssl}/lib/libcrypto.so"
"-DOPENSSL_SSL_LIBRARY=${lib.getLib openssl}/lib/libssl.so"
];
postInstall = ''
mv else/ $out/else/
rm -rf $out/include/ $out/lib/
'';
postFixup = ''
interpreter=$(cat $NIX_CC/nix-support/dynamic-linker)
find $out -type f -executable -exec patchelf --set-interpreter "$interpreter" --set-rpath ${lib.makeLibraryPath buildInputs} {} \;
'';
meta = {
description = "EL Locus Solus' Externals for Pure Data";
longDescription = ''
ELSE is a library of externals and abstractions for Pure Data.
It provides a comprehensive set of tools for signal processing,
MIDI, GUI, and more in Pure Data.
'';
homepage = "https://github.com/porres/pd-else";
license = lib.licenses.wtfpl;
platforms = lib.platforms.unix;
broken = stdenv.hostPlatform.isDarwin;
maintainers = [ lib.maintainers.kugland ];
};
}

View File

@ -0,0 +1,30 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule (finalAttrs: {
pname = "prometheus-slurm-exporter";
version = "0.20";
src = fetchFromGitHub {
owner = "vpenso";
repo = "prometheus-slurm-exporter";
tag = finalAttrs.version;
hash = "sha256-KS9LoDuLQFq3KoKpHd8vg1jw20YCNRJNJrnBnu5vxvs=";
};
vendorHash = "sha256-A1dd9T9SIEHDCiVT2UwV6T02BSLh9ej6LC/2l54hgwI=";
# Needs a working slurm environment during test
doCheck = false;
meta = {
description = "Prometheus exporter for performance metrics from Slurm";
homepage = "https://github.com/vpenso/prometheus-slurm-exporter";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ jherland ];
mainProgram = "prometheus-slurm-exporter";
};
})

View File

@ -18,6 +18,9 @@
jrl-cmakemodules,
simde,
# nativeCheckInputs
ctestCheckHook,
# checkInputs
matio,
@ -38,15 +41,11 @@ stdenv.mkDerivation (finalAttrs: {
"out"
];
cmakeFlags =
[
(lib.cmakeBool "BUILD_DOCUMENTATION" true)
(lib.cmakeBool "INSTALL_DOCUMENTATION" true)
(lib.cmakeBool "BUILD_PYTHON_INTERFACE" pythonSupport)
]
++ lib.optionals (stdenv.hostPlatform.system == "aarch64-linux") [
"-DCMAKE_CTEST_ARGUMENTS=--exclude-regex;ProxQP::dense: test primal infeasibility solving"
];
cmakeFlags = [
(lib.cmakeBool "BUILD_DOCUMENTATION" true)
(lib.cmakeBool "INSTALL_DOCUMENTATION" true)
(lib.cmakeBool "BUILD_PYTHON_INTERFACE" pythonSupport)
];
strictDeps = true;
@ -68,6 +67,8 @@ stdenv.mkDerivation (finalAttrs: {
simde
] ++ lib.optionals pythonSupport [ python3Packages.nanobind ];
nativeCheckInputs = [ ctestCheckHook ];
checkInputs =
[ matio ]
++ lib.optionals pythonSupport [
@ -75,6 +76,11 @@ stdenv.mkDerivation (finalAttrs: {
python3Packages.scipy
];
ctestFlags = lib.optionals (stdenv.hostPlatform.system == "aarch64-linux") [
"--exclude-regex"
"sparse maros meszaros using the API"
];
# Fontconfig error: Cannot load default config file: No such file: (null)
env.FONTCONFIG_FILE = "${fontconfig.out}/etc/fonts/fonts.conf";

View File

@ -0,0 +1,47 @@
{
lib,
stdenv,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule (finalAttrs: {
pname = "spiffe-helper";
version = "0.10.0";
src = fetchFromGitHub {
owner = "spiffe";
repo = "spiffe-helper";
tag = "v${finalAttrs.version}";
hash = "sha256-nakwTJBE8ICuRCmG+pjh1gZVFIXSOgsxTDjEeBrwufE=";
};
vendorHash = "sha256-sAcmJNry3nuWyzt0Ee05JjROR/pDXxu2NVmltotSD0U=";
ldflags = [
"-s"
"-w"
];
preCheck = ''
patchShebangs pkg/sidecar/sidecar_test.sh
'';
doInstallCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
installCheckPhase = ''
runHook preInstallCheck
# no version output
$out/bin/${finalAttrs.meta.mainProgram} -h
runHook postInstallCheck
'';
meta = {
description = "Retrieve and manage SVIDs on behalf of a workload";
homepage = "https://github.com/spiffe/spiffe-helper";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ jk ];
mainProgram = "spiffe-helper";
};
})

View File

@ -6,13 +6,13 @@
}:
buildGoModule {
pname = "starlark";
version = "0-unstable-2025-06-03";
version = "0-unstable-2025-06-23";
src = fetchFromGitHub {
owner = "google";
repo = "starlark-go";
rev = "27fdb1d4744d057ceaa6c18d8eca9bf5692e3852";
hash = "sha256-iS9v4XRJTclFxc/siuhTGliUAjM4pqju9lD+muFXp4Y=";
rev = "8bf495bf4e9a6110b82436cdebbdc3f06ad4f474";
hash = "sha256-m8jWFPXYrT0kTbrz6xHi6Q7D5mzoycU+SY3h7SnCYiU=";
};
vendorHash = "sha256-8drlCBy+KROyqXzm/c+HBe/bMVOyvwRoLHxOApJhMfo=";

View File

@ -14,13 +14,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "vencord";
version = "1.12.3";
version = "1.12.4";
src = fetchFromGitHub {
owner = "Vendicated";
repo = "Vencord";
rev = "v${finalAttrs.version}";
hash = "sha256-fOZXgyA61G+D7otNNO8d89ghR/GiYPJ7vSZtj9TeGuU=";
hash = "sha256-x5tbLoNGBT3tS+QXn0piFMM8+uqoQt8gfQJap1TyLmQ=";
};
pnpmDeps = pnpm_10.fetchDeps {

View File

@ -12,20 +12,20 @@
wrapGAppsHook3,
makeDesktopItem,
copyDesktopItems,
llvmPackages_18,
llvmPackages_19,
autoPatchelfHook,
unstableGitUpdater,
fetchFromGitHub,
}:
llvmPackages_18.stdenv.mkDerivation {
llvmPackages_19.stdenv.mkDerivation {
pname = "xenia-canary";
version = "0-unstable-2025-06-14";
version = "0-unstable-2025-06-21";
src = fetchFromGitHub {
owner = "xenia-canary";
repo = "xenia-canary";
fetchSubmodules = true;
rev = "f65f044ee51360de6dd26f5ea0a247e92d8f2275";
rev = "fd1abfe6aa66b2348d9f93f8e5065def06b1a11d";
hash = "sha256-cxwawoCLE0E/HaELfI3FG4yhk4GRtjB9pCs9gkeM+uc=";
};

View File

@ -19,14 +19,20 @@ stdenv.mkDerivation rec {
libXpm
];
buildPhase = ''
make all HIGH_SCORES_FILE=.xgalaga++.scores
'';
buildFlags = [
"all"
"HIGH_SCORES_FILE=.xgalaga++.scores"
"CXX=${stdenv.cc.targetPrefix}c++" # fix darwin and cross-compiled builds
];
installPhase = ''
runHook preInstall
mkdir -p $out/bin $out/share/man
mv xgalaga++ $out/bin
mv xgalaga++.6x $out/share/man
runHook postInstall
'';
meta = with lib; {
@ -34,6 +40,6 @@ stdenv.mkDerivation rec {
description = "XGalaga++ is a classic single screen vertical shoot em up. It is inspired by XGalaga and reuses most of its sprites";
mainProgram = "xgalaga++";
license = licenses.gpl2Plus;
platforms = platforms.linux;
platforms = platforms.unix;
};
}

View File

@ -99,7 +99,7 @@ let
in
rustPlatform.buildRustPackage (finalAttrs: {
pname = "zed-editor";
version = "0.191.7";
version = "0.191.9";
outputs =
[ "out" ]
@ -111,7 +111,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
owner = "zed-industries";
repo = "zed";
tag = "v${finalAttrs.version}";
hash = "sha256-Kx9VolPqKR0ML7F7ITnp5GPT4ULJvmTsRHKgkKZPGwQ=";
hash = "sha256-QdRksW2T8gzyPhqd4jIUfuVmcXh3j7yIah5TGqHNxNM=";
};
patches = [
@ -138,7 +138,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
'';
useFetchCargoVendor = true;
cargoHash = "sha256-MMQYbhv/6s+9zxP9E5bcCDS9TUYSbapkX5sklVpNHnI=";
cargoHash = "sha256-Cvj2fit1nxgbxOLK7wUdqkLJpECVB5uwUKyWmjNFygU=";
nativeBuildInputs =
[

View File

@ -16,17 +16,16 @@
cmdliner,
base64,
zarith,
mirage-mtime,
}:
buildDunePackage rec {
pname = "awa";
version = "0.5.1";
minimalOCamlVersion = "4.10";
version = "0.5.2";
src = fetchurl {
url = "https://github.com/mirage/awa-ssh/releases/download/v${version}/awa-${version}.tbz";
hash = "sha256-bd6vBgUwJh1MUlrgbdbBVTZMd3gcJGIX8EEJ5872n14=";
hash = "sha256-64gloekVN0YsBwUodrJc6QaNU3PGKMIZMPJWvBfzaj0=";
};
propagatedBuildInputs = [
@ -48,6 +47,7 @@ buildDunePackage rec {
cstruct-unix
cmdliner
fmt
mirage-mtime
];
meta = with lib; {

View File

@ -1,25 +1,25 @@
{
lib,
buildPythonPackage,
pythonAtLeast,
fetchFromGitHub,
setuptools,
python,
netbox,
django,
netaddr,
}:
buildPythonPackage rec {
pname = "netbox-attachments";
version = "7.2.0";
version = "8.0.4";
pyproject = true;
disabled = pythonAtLeast "3.13";
disabled = python.pythonVersion != netbox.python.pythonVersion;
src = fetchFromGitHub {
owner = "Kani999";
repo = "netbox-attachments";
tag = version;
hash = "sha256-EYf1PbFIFyCb2fYrnn/T8dnXz3dHmDOLI8Wbnef8V8M=";
hash = "sha256-wVTI0FAj6RaEaE6FhvHq4ophnCspobqL2SnTYVynlxs=";
};
build-system = [ setuptools ];

View File

@ -1,7 +1,7 @@
{
lib,
buildPythonPackage,
pythonAtLeast,
python,
fetchFromGitHub,
setuptools,
python-dateutil,
@ -11,16 +11,16 @@
}:
buildPythonPackage rec {
pname = "netbox-contract";
version = "2.3.2";
version = "2.4.0";
pyproject = true;
disabled = pythonAtLeast "3.13";
disabled = python.pythonVersion != netbox.python.pythonVersion;
src = fetchFromGitHub {
owner = "mlebreuil";
repo = "netbox-contract";
tag = "v${version}";
hash = "sha256-e3N0m+oj2CMUXwI4dF/tXA+Lz+9+ZlbJAy+zHoRDNtw=";
hash = "sha256-duA53cuJ3q6CRp239xNMXQhGZHGn7IBIGNLoxt7hZh8=";
};
build-system = [ setuptools ];

View File

@ -4,22 +4,22 @@
fetchFromGitHub,
setuptools,
netbox,
pythonAtLeast,
django,
netaddr,
python,
}:
buildPythonPackage rec {
pname = "netbox-floorplan-plugin";
version = "0.6.0";
version = "0.7.0";
pyproject = true;
disabled = pythonAtLeast "3.13";
disabled = python.pythonVersion != netbox.python.pythonVersion;
src = fetchFromGitHub {
owner = "netbox-community";
repo = "netbox-floorplan-plugin";
tag = version;
hash = "sha256-cJrqSXRCBedZh/pIozz/bHyhQosTy8cFYyji3KJva9Q=";
hash = "sha256-ecwPdcVuXU6OIVbafYGaY6+pbBHxhh1AlNmDBlUk1Ss=";
};
build-system = [ setuptools ];

View File

@ -4,7 +4,7 @@
fetchFromGitHub,
setuptools,
netbox,
pythonAtLeast,
python,
napalm,
django,
}:
@ -13,7 +13,7 @@ buildPythonPackage rec {
version = "0.3.1";
pyproject = true;
disabled = pythonAtLeast "3.13";
disabled = python.pythonVersion != netbox.python.pythonVersion;
src = fetchFromGitHub {
owner = "netbox-community";

View File

@ -4,22 +4,22 @@
fetchFromGitHub,
setuptools,
netbox,
pythonAtLeast,
django,
netaddr,
python,
}:
buildPythonPackage rec {
pname = "netbox-topology-views";
version = "4.2.1";
version = "4.3.0";
pyproject = true;
disabled = pythonAtLeast "3.13";
disabled = python.pythonVersion != netbox.python.pythonVersion;
src = fetchFromGitHub {
owner = "netbox-community";
repo = "netbox-topology-views";
tag = "v${version}";
hash = "sha256-ysupqyRFOKVa+evNbfSdW2W57apI0jVEU92afz6+AaE=";
hash = "sha256-K8hG2M8uWPk9+7u21z+hmedOovievkMNpn3p7I4+6t4=";
};
build-system = [ setuptools ];

View File

@ -0,0 +1,234 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 3
[[package]]
name = "autocfg"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8"
[[package]]
name = "heck"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
[[package]]
name = "indoc"
version = "2.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f4c7245a08504955605670dbf141fceab975f15ca21570696aebe9d2e71576bd"
[[package]]
name = "itoa"
version = "1.0.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c"
[[package]]
name = "libc"
version = "0.2.174"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776"
[[package]]
name = "memchr"
version = "2.7.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0"
[[package]]
name = "memmap2"
version = "0.9.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f"
dependencies = [
"libc",
]
[[package]]
name = "memoffset"
version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
dependencies = [
"autocfg",
]
[[package]]
name = "once_cell"
version = "1.21.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d"
[[package]]
name = "portable-atomic"
version = "1.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483"
[[package]]
name = "proc-macro2"
version = "1.0.95"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778"
dependencies = [
"unicode-ident",
]
[[package]]
name = "pyo3"
version = "0.25.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8970a78afe0628a3e3430376fc5fd76b6b45c4d43360ffd6cdd40bdde72b682a"
dependencies = [
"indoc",
"libc",
"memoffset",
"once_cell",
"portable-atomic",
"pyo3-build-config",
"pyo3-ffi",
"pyo3-macros",
"unindent",
]
[[package]]
name = "pyo3-build-config"
version = "0.25.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "458eb0c55e7ece017adeba38f2248ff3ac615e53660d7c71a238d7d2a01c7598"
dependencies = [
"once_cell",
"target-lexicon",
]
[[package]]
name = "pyo3-ffi"
version = "0.25.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7114fe5457c61b276ab77c5055f206295b812608083644a5c5b2640c3102565c"
dependencies = [
"libc",
"pyo3-build-config",
]
[[package]]
name = "pyo3-macros"
version = "0.25.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a8725c0a622b374d6cb051d11a0983786448f7785336139c3c94f5aa6bef7e50"
dependencies = [
"proc-macro2",
"pyo3-macros-backend",
"quote",
"syn",
]
[[package]]
name = "pyo3-macros-backend"
version = "0.25.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4109984c22491085343c05b0dbc54ddc405c3cf7b4374fc533f5c3313a572ccc"
dependencies = [
"heck",
"proc-macro2",
"pyo3-build-config",
"quote",
"syn",
]
[[package]]
name = "quote"
version = "1.0.40"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d"
dependencies = [
"proc-macro2",
]
[[package]]
name = "ryu"
version = "1.0.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f"
[[package]]
name = "safetensors"
version = "0.6.0-dev.0"
dependencies = [
"serde",
"serde_json",
]
[[package]]
name = "safetensors-python"
version = "0.6.0-dev.0"
dependencies = [
"memmap2",
"pyo3",
"safetensors",
"serde_json",
]
[[package]]
name = "serde"
version = "1.0.219"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
version = "1.0.219"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "serde_json"
version = "1.0.140"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373"
dependencies = [
"itoa",
"memchr",
"ryu",
"serde",
]
[[package]]
name = "syn"
version = "2.0.104"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40"
dependencies = [
"proc-macro2",
"quote",
"unicode-ident",
]
[[package]]
name = "target-lexicon"
version = "0.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e502f78cdbb8ba4718f566c418c52bc729126ffd16baee5baa718cf25dd5a69a"
[[package]]
name = "unicode-ident"
version = "1.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512"
[[package]]
name = "unindent"
version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7264e107f553ccae879d21fbea1d6724ac785e8c3bfc762137959b5802826ef3"

View File

@ -26,23 +26,26 @@
buildPythonPackage rec {
pname = "safetensors";
version = "0.5.2";
version = "0.6.0";
pyproject = true;
src = fetchFromGitHub {
owner = "huggingface";
repo = "safetensors";
tag = "v${version}";
hash = "sha256-dtHHLiTgrg/a/SQ/Z1w0BsuFDClgrMsGiSTCpbJasUs=";
hash = "sha256-wAr/jvr0w+vOHjjqE7cPcAM/IMz+58YhfoJ2XC4987M=";
};
sourceRoot = "${src.name}/bindings/python";
cargoDeps = rustPlatform.fetchCargoVendor {
inherit pname src sourceRoot;
hash = "sha256-hjV2cfS/0WFyAnATt+A8X8sQLzQViDzkNI7zN0ltgpU=";
cargoDeps = rustPlatform.importCargoLock {
lockFile = ./Cargo.lock;
};
postPatch = ''
ln -s ${./Cargo.lock} Cargo.lock
'';
nativeBuildInputs = [
rustPlatform.cargoSetupHook
rustPlatform.maturinBuildHook
@ -87,7 +90,22 @@ buildPythonPackage rec {
pytestCheckHook
torch
];
enabledTestPaths = [ "tests" ];
disabledTests = [
# AttributeError: module 'torch' has no attribute 'float4_e2m1fn_x2'
"test_odd_dtype_fp4"
# AssertionError: 'No such file or directory: notafile' != 'No such file or directory: "notafile"'
"test_file_not_found"
# AssertionError:
# 'Erro[41 chars] 5]: index 20 out of bounds for tensor dimension #1 of size 5'
# != 'Erro[41 chars] 5]: SliceOutOfRange { dim_index: 1, asked: 20, dim_size: 5 }'
"test_numpy_slice"
];
# don't require PaddlePaddle (not in Nixpkgs), Flax, or Tensorflow (onerous) to run tests:
disabledTestPaths =
[

View File

@ -19,6 +19,7 @@
# check inputs
pytestCheckHook,
django-guardian,
django-model-utils,
django-mptt,
django-polymorphic,
django-tree-queries,
@ -33,14 +34,14 @@
buildPythonPackage rec {
pname = "strawberry-django";
version = "0.57.1";
version = "0.60.0";
pyproject = true;
src = fetchFromGitHub {
owner = "strawberry-graphql";
repo = "strawberry-django";
tag = "v${version}";
hash = "sha256-nwqb9AVNQNIRdjYcutTaI3YfwuMDLP4mUirSXFq+WnI=";
hash = "sha256-mMI/tPdt9XK6Lz7VmI3uDxcCjIuidUeGHjG+6AQLoeQ=";
};
build-system = [
@ -64,6 +65,7 @@ buildPythonPackage rec {
pytestCheckHook
django-guardian
django-model-utils
django-mptt
django-polymorphic
django-tree-queries

View File

@ -44,7 +44,7 @@
buildPythonPackage rec {
pname = "strawberry-graphql";
version = "0.263.1";
version = "0.271.0";
pyproject = true;
disabled = pythonOlder "3.10";
@ -53,7 +53,7 @@ buildPythonPackage rec {
owner = "strawberry-graphql";
repo = "strawberry";
tag = version;
hash = "sha256-w36KY1zl/OguRFs6sM6K4F17bYQcA+bA6XS62VhRgA8=";
hash = "sha256-ypGv0ICGqCisOK0xVLWQXIZb5mF6wt3RukcUo0qM2nQ=";
};
postPatch = ''
@ -152,6 +152,7 @@ buildPythonPackage rec {
"tests/schema/extensions/"
"tests/schema/test_dataloaders.py"
"tests/schema/test_lazy/"
"tests/sanic/test_file_upload.py"
"tests/test_dataloaders.py"
"tests/utils/test_pretty_print.py"
"tests/websockets/test_graphql_transport_ws.py"

View File

@ -11,13 +11,13 @@
postgresqlBuildExtension (finalAttrs: {
pname = "h3-pg";
version = "4.2.2";
version = "4.2.3";
src = fetchFromGitHub {
owner = "zachasme";
repo = "h3-pg";
tag = "v${finalAttrs.version}";
hash = "sha256-2xp9gssPMTroLT/1Me0VWvtIPyouIk9MW0Rp13uYBEw=";
hash = "sha256-kTh0Y0C2pNB5Ul1rp77ets/5VeU1zw1WasGHkOaDMh8=";
};
postPatch =

View File

@ -9,16 +9,16 @@
buildGoModule (finalAttrs: {
pname = "carapace";
version = "1.3.2";
version = "1.3.3";
src = fetchFromGitHub {
owner = "carapace-sh";
repo = "carapace-bin";
tag = "v${finalAttrs.version}";
hash = "sha256-DgWC3IsuHncJzVfWxIGWDxknTAdHJEijvjhO7q14EYQ=";
hash = "sha256-dVM5XFFNXAVoN2xshq5k0Y6vSrfSNS0bIptcloX/uSg=";
};
vendorHash = "sha256-oq1hZ2P093zsI+UAGHi5XfRXqGGxWpR5j7x7N7ng3xE=";
vendorHash = "sha256-XRbqxL2ANWi2aZbB30tNBxJoBIoDoMxKXMpOx++JJ6M=";
ldflags = [
"-s"

View File

@ -17,8 +17,8 @@
doxygen,
}:
stdenv.mkDerivation rec {
version = "1.19.0";
stdenv.mkDerivation (finalAttrs: {
version = "1.20.0";
pname = "librepo";
outputs = [
@ -30,8 +30,8 @@ stdenv.mkDerivation rec {
src = fetchFromGitHub {
owner = "rpm-software-management";
repo = "librepo";
rev = version;
sha256 = "sha256-ws57vFoK5yBMHHNQ9W48Icp4am0/5k3n4ybem1aAzVM=";
tag = finalAttrs.version;
hash = "sha256-KYBHImdGQgf/IZ5FMhzrbBTeZF76AIP3RjVPT3w0oT8=";
};
nativeBuildInputs = [
@ -67,11 +67,12 @@ stdenv.mkDerivation rec {
passthru.updateScript = nix-update-script { };
meta = with lib; {
meta = {
description = "Library providing C and Python (libcURL like) API for downloading linux repository metadata and packages";
homepage = "https://rpm-software-management.github.io/librepo/";
license = licenses.lgpl2Plus;
platforms = platforms.linux;
changelog = "https://github.com/rpm-software-management/dnf5/releases/tag/${finalAttrs.version}";
license = lib.licenses.lgpl2Plus;
platforms = lib.platforms.linux;
maintainers = [ ];
};
}
})

View File

@ -3821,7 +3821,7 @@ with pkgs;
};
# Not in aliases because it wouldn't get picked up by callPackage
netbox = netbox_4_2;
netbox = netbox_4_3;
netcap-nodpi = callPackage ../by-name/ne/netcap/package.nix {
withDpi = false;

View File

@ -16950,12 +16950,12 @@ with self;
};
};
ImagePNGLibpng = buildPerlPackage {
ImagePNGLibpng = buildPerlPackage rec {
pname = "Image-PNG-Libpng";
version = "0.57";
version = "0.59";
src = fetchurl {
url = "mirror://cpan/authors/id/B/BK/BKB/Image-PNG-Libpng-0.56.tar.gz";
hash = "sha256-+vu/6/9CP3u4XvJ6MEH7YpG1AzbHpYIiSlysQzHDx9k=";
url = "mirror://cpan/authors/id/B/BK/BKB/Image-PNG-Libpng-${version}.tar.gz";
hash = "sha256-4fn19YqM6YhwUp9WgIQfsz4wQnLzn6rtXC95Kc5vWNc=";
};
buildInputs = [ pkgs.libpng ];
meta = {

View File

@ -10284,6 +10284,8 @@ self: super: with self; {
nominal-api-protos = callPackage ../development/python-modules/nominal-api-protos { };
nominatim-api = callPackage ../by-name/no/nominatim/nominatim-api.nix { };
nonbloat-db = callPackage ../development/python-modules/nonbloat-db { };
noneprompt = callPackage ../development/python-modules/noneprompt { };