Merge branch 'staging' into staging-next

This commit is contained in:
Vladimír Čunát
2025-08-30 17:06:43 +02:00
304 changed files with 5549 additions and 4530 deletions
+41 -8
View File
@@ -42,12 +42,43 @@ The manpages must have a section suffix, and may optionally be compressed (with
{
nativeBuildInputs = [ installShellFiles ];
# Sometimes the manpage file has an undesirable name; e.g., it conflicts with
# another software with an equal name. It should be renamed before being
# installed via installManPage
# Sometimes the manpage file has an undersirable name; e.g., it conflicts with
# another software with an equal name. To install it with a different name,
# the installed name must be provided before the path to the file.
#
# Below install a manpage "foobar.1" from the source file "./foobar.1", and
# also installs the manpage "fromsea.3" from the source file "./delmar.3".
postInstall = ''
mv fromsea.3 delmar.3
installManPage foobar.1 delmar.3
installManPage \
foobar.1 \
--name fromsea.3 delmar.3
'';
}
```
The manpage may be the result of a piped input (e.g. `<(cmd)`), in which
case the name must be provided before the pipe with the `--name` flag.
```nix
{
nativeBuildInputs = [ installShellFiles ];
postInstall = ''
installManPage --name foobar.1 <($out/bin/foobar --manpage)
'';
}
```
If no parsing of arguments is desired, pass `--` to opt-out of all subsequent
arguments.
```nix
{
nativeBuildInputs = [ installShellFiles ];
# Installs a manpage from a file called "--name"
postInstall = ''
installManPage -- --name
'';
}
```
@@ -58,8 +89,8 @@ The `installShellCompletion` function takes one or more paths to shell
completion files.
By default it will autodetect the shell type from the completion file extension,
but you may also specify it by passing one of `--bash`, `--fish`, or
`--zsh`. These flags apply to all paths listed after them (up until another
but you may also specify it by passing one of `--bash`, `--fish`, `--zsh`, or
`--nushell`. These flags apply to all paths listed after them (up until another
shell flag is given). Each path may also have a custom installation name
provided by providing a flag `--name NAME` before the path. If this flag is not
provided, zsh completions will be renamed automatically such that `foobar.zsh`
@@ -77,9 +108,10 @@ zsh).
# explicit behavior
installShellCompletion --bash --name foobar.bash share/completions.bash
installShellCompletion --fish --name foobar.fish share/completions.fish
installShellCompletion --nushell --name foobar share/completions.nu
installShellCompletion --zsh --name _foobar share/completions.zsh
# implicit behavior
installShellCompletion share/completions/foobar.{bash,fish,zsh}
installShellCompletion share/completions/foobar.{bash,fish,zsh,nu}
'';
}
```
@@ -104,6 +136,7 @@ failure. To prevent this, guard the completion generation commands.
installShellCompletion --cmd foobar \
--bash <($out/bin/foobar --bash-completion) \
--fish <($out/bin/foobar --fish-completion) \
--nushell <($out/bin/foobar --nushell-completion) \
--zsh <($out/bin/foobar --zsh-completion)
'';
}
+6
View File
@@ -192,6 +192,12 @@ Specifies the contents of the `go.sum` file and triggers rebuilds when it change
Defaults to `null`
### `buildTestBinaries` {#var-go-buildTestBinaries}
This option allows to compile test binaries instead of the usual binaries produced by a package.
Go can [compile test into binaries](https://pkg.go.dev/cmd/go#hdr-Test_packages) using the `go test -c` command.
These binaries can then be executed at a later point (outside the Nix sandbox) to run the tests.
This is mostly useful for downstream consumers to run integration or end-to-end tests that won't work in the Nix sandbox, for example because they require network access.
## Versioned toolchains and builders {#ssec-go-toolchain-versions}
+6
View File
@@ -574,6 +574,9 @@
"strictflexarrays3": [
"index.html#strictflexarrays3"
],
"glibcxxassertions": [
"index.html#glibcxxassertions"
],
"tester-shfmt": [
"index.html#tester-shfmt"
],
@@ -622,6 +625,9 @@
"typst-package-scope-and-usage": [
"index.html#typst-package-scope-and-usage"
],
],
"var-go-buildTestBinaries": [
"index.html#var-go-buildTestBinaries"
"var-meta-teams": [
"index.html#var-meta-teams"
],
+10
View File
@@ -22,6 +22,8 @@
- The `offrss` package was removed due to lack of upstream maintenance since 2012. It's recommended for users to migrate to another RSS reader
- `installShellFiles`: Allow installManPage to take a piped input, add the `--name` flag for renaming the file when installed. Can also append `--` to opt-out of all subsequent parsing.
- GCC 9, 10, 11, and 12 have been removed, as they have reached endoflife upstream and are no longer supported.
- `base16-builder` node package has been removed due to lack of upstream maintenance.
@@ -40,12 +42,16 @@
- `kbd` package's `outputs` now include a `man` and `scripts` outputs. The `unicode_start` and `unicode_stop` Bash scripts are now part of the `scripts` output, allowing most usages of the `kbd` package to not pull in `bash`.
- `spidermonkey_91` has been removed, as it has been EOL since September 2022.
- `cudaPackages.cudatoolkit-legacy-runfile` has been removed.
- `conduwuit` was removed due to upstream ceasing development and deleting their repository. For existing data, a migration to `matrix-conduit`, `matrix-continuwuity` or `matrix-tuwunel` may be possible.
- `gnome-keyring` no longer ships with an SSH agent anymore because it has been deprecated upstream. You should use `gcr_4` instead, which provides the same features. More information on why this was done can be found on [the relevant GCR upstream PR](https://gitlab.gnome.org/GNOME/gcr/-/merge_requests/67).
- `python3Full` and its versioned attributes (python3xxFull) have been removed. Bluetooth support is now enabled in the default python3 attributes. The X11 support built the tkinter module, which is available as a dedicated attribute on the package set.
- `stdenv.mkDerivation` and other derivation builders that use it no longer allow the value of `env` to be anything but an attribute set, for the purpose of setting environment variables that are available to the [builder](https://nix.dev/manual/nix/latest/store/derivation/#builder) process. An environment variable called `env` can still be provided by means of `mkDerivation { env.env = ...; }`, though we recommend to use a more specific name than "env".
- The default Android NDK version has been raised to 27, and the default SDK version to 35.
@@ -120,6 +126,8 @@
- [`homebox` 0.20.0](https://github.com/sysadminsmedia/homebox/releases/tag/v0.20.0) changed how assets are stored and hashed. It is recommended to back up your database before this update.
- `installShellCompletion`: now supports Nushell completion files
- 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
@@ -134,6 +142,8 @@
- `searx` was updated to use `envsubst` instead of `sed` for parsing secrets from environment variables.
If your previous configuration included a secret reference like `server.secret_key = "@SEARX_SECRET_KEY@"`, you must migrate to the new envsubst syntax: `server.secret_key = "$SEARX_SECRET_KEY"`.
- A new hardening flag, `glibcxxassertions` was made available, corresponding to the glibc `_GLIBCXX_ASSERTIONS` option.
- `versionCheckHook`: Packages that previously relied solely on `pname` to locate the program used to version check, but have a differing `meta.mainProgram` entry, might now fail.
+6
View File
@@ -1682,6 +1682,12 @@ This should be turned off or fixed for build errors such as:
sorry, unimplemented: __builtin_clear_padding not supported for variable length aggregates
```
#### `glibcxxassertions` {#glibcxxassertions}
Adds the `-D_GLIBCXX_ASSERTIONS` compiler flag. This flag only has an effect on libstdc++ targets, and when defined, enables extra error checking in the form of precondition assertions, such as bounds checking in c++ strings and null pointer checks when dereferencing c++ smart pointers.
These checks may have an impact on performance in some cases.
#### `pacret` {#pacret}
This flag adds the `-mbranch-protection=pac-ret` compiler option on aarch64-linux targets. This uses ARM v8.3's Pointer Authentication feature to sign function return pointers before adding them to the stack. The pointer's authenticity is then validated before returning to its destination. This dramatically increases the difficulty of ROP exploitation techniques.
+10
View File
@@ -64,6 +64,11 @@ lib.mapAttrs mkLicense (
free = false;
};
adobeUtopia = {
fullName = "Adobe Utopia Font License";
spdxId = "Adobe-Utopia";
};
afl20 = {
spdxId = "AFL-2.0";
fullName = "Academic Free License v2.0";
@@ -713,6 +718,11 @@ lib.mapAttrs mkLicense (
spdxId = "HPND-sell-variant";
};
hpndDec = {
fullName = "Historical Permission Notice and Disclaimer - DEC variant";
spdxId = "HPND-DEC";
};
hpndDoc = {
fullName = "Historical Permission Notice and Disclaimer - documentation variant";
spdxId = "HPND-doc";
-1
View File
@@ -195,7 +195,6 @@ in
"${config.boot.initrd.systemd.package}/lib/systemd/systemd-vconsole-setup"
"${config.boot.initrd.systemd.package.kbd}/bin/setfont"
"${config.boot.initrd.systemd.package.kbd}/bin/loadkeys"
"${config.boot.initrd.systemd.package.kbd.gzip}/bin/gzip" # Fonts and keyboard layouts are compressed
]
++ lib.optionals (cfg.font != null && lib.hasPrefix builtins.storeDir cfg.font) [
"${cfg.font}"
+1
View File
@@ -99,6 +99,7 @@ import ./make-test-python.nix (
objectClass: posixAccount
userPassword: ${testPassword}
homeDirectory: /home/${testUser}
loginShell: /run/current-system/sw/bin/bash
uidNumber: 1234
gidNumber: 1234
cn: ""
+2 -2
View File
@@ -21,11 +21,11 @@ assert withConplay -> !libOnly;
stdenv.mkDerivation rec {
pname = "${lib.optionalString libOnly "lib"}mpg123";
version = "1.33.0";
version = "1.33.2";
src = fetchurl {
url = "mirror://sourceforge/mpg123/mpg123-${version}.tar.bz2";
hash = "sha256-IpDjrt5vTRY+GhdFIWWvM8qtS18JSPmUKc+i2Dhfqp0=";
hash = "sha256-LFT6u/ppbc6PmxN8jvekKaBh+P5jPNfQpRGAmFXywhk=";
};
outputs = [
+2 -2
View File
@@ -1,6 +1,6 @@
{ lib, fetchFromGitHub }:
rec {
version = "9.1.1566";
version = "9.1.1623";
outputs = [
"out"
@@ -11,7 +11,7 @@ rec {
owner = "vim";
repo = "vim";
rev = "v${version}";
hash = "sha256-/hzyjFGjl8Wu9tHtFgnnHtGbcJ5AIjCMUNCScrdIgwU=";
hash = "sha256-T7epi6ex9AU4iV/ClSeKlK3T0V0WajiVxnDVevkqaw8=";
};
enableParallelBuilding = true;
@@ -31,6 +31,11 @@ stdenv.mkDerivation rec {
hash = "sha256-KSS8s6Hti1UfwQH3QLnw/gogKxFQJ2R89phQ1l/YjFI=";
};
patches = [
# See: <https://github.com/RsyncProject/rsync/pull/790>
./fix-tests-in-darwin-sandbox.patch
];
nativeBuildInputs = [
updateAutotoolsGnuConfigScriptsHook
perl
@@ -75,6 +80,8 @@ stdenv.mkDerivation rec {
doCheck = true;
__darwinAllowLocalNetworking = true;
meta = with lib; {
description = "Fast incremental file transfer utility";
homepage = "https://rsync.samba.org/";
@@ -0,0 +1,56 @@
From 9b104ed9859f17b6ed4c4ad01806c75a0c197dd7 Mon Sep 17 00:00:00 2001
From: Emily <hello@emily.moe>
Date: Tue, 5 Aug 2025 15:55:24 +0100
Subject: [PATCH] Allow `ls(1)` to fail in test setup
This can happen when the tests are unable to `stat(2)` some files in
`/etc`, `/bin`, or `/`, due to Unix permissions or other sandboxing. We
still guard against serious errors, which use exit code 2.
---
testsuite/longdir.test | 4 ++--
testsuite/rsync.fns | 8 ++++----
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/testsuite/longdir.test b/testsuite/longdir.test
index 8d66bb5f..26747292 100644
--- a/testsuite/longdir.test
+++ b/testsuite/longdir.test
@@ -16,9 +16,9 @@ makepath "$longdir" || test_skipped "unable to create long directory"
touch "$longdir/1" || test_skipped "unable to create files in long directory"
date > "$longdir/1"
if [ -r /etc ]; then
- ls -la /etc >"$longdir/2"
+ ls -la /etc >"$longdir/2" || [ $? -eq 1 ]
else
- ls -la / >"$longdir/2"
+ ls -la / >"$longdir/2" || [ $? -eq 1 ]
fi
checkit "$RSYNC --delete -avH '$fromdir/' '$todir'" "$fromdir/" "$todir"
diff --git a/testsuite/rsync.fns b/testsuite/rsync.fns
index 2ab97b69..f7da363f 100644
--- a/testsuite/rsync.fns
+++ b/testsuite/rsync.fns
@@ -195,15 +195,15 @@ hands_setup() {
echo some data > "$fromdir/dir/subdir/foobar.baz"
mkdir "$fromdir/dir/subdir/subsubdir"
if [ -r /etc ]; then
- ls -ltr /etc > "$fromdir/dir/subdir/subsubdir/etc-ltr-list"
+ ls -ltr /etc > "$fromdir/dir/subdir/subsubdir/etc-ltr-list" || [ $? -eq 1 ]
else
- ls -ltr / > "$fromdir/dir/subdir/subsubdir/etc-ltr-list"
+ ls -ltr / > "$fromdir/dir/subdir/subsubdir/etc-ltr-list" || [ $? -eq 1 ]
fi
mkdir "$fromdir/dir/subdir/subsubdir2"
if [ -r /bin ]; then
- ls -lt /bin > "$fromdir/dir/subdir/subsubdir2/bin-lt-list"
+ ls -lt /bin > "$fromdir/dir/subdir/subsubdir2/bin-lt-list" || [ $? -eq 1 ]
else
- ls -lt / > "$fromdir/dir/subdir/subsubdir2/bin-lt-list"
+ ls -lt / > "$fromdir/dir/subdir/subsubdir2/bin-lt-list" || [ $? -eq 1 ]
fi
# echo testing head:
--
2.50.1
@@ -60,7 +60,7 @@ assert sendEmailSupport -> perlSupport;
assert svnSupport -> perlSupport;
let
version = "2.50.1";
version = "2.51.0";
svn = subversionClient.override { perlBindings = perlSupport; };
gitwebPerlLibs = with perlPackages; [
CGI
@@ -89,7 +89,7 @@ stdenv.mkDerivation (finalAttrs: {
}.tar.xz"
else
"https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz";
hash = "sha256-fj5sNt7L2PHu3RTULbZnS+A2ccIgSGS++ipBdWxcj8Q=";
hash = "sha256-YKfCJRzC5YjVzYe65WcmBhfG3gwi3KnNv8TH0riZC2I=";
};
outputs = [ "out" ] ++ lib.optional withManual "doc";
@@ -120,6 +120,8 @@ stdenv.mkDerivation (finalAttrs: {
# Fix references to gettext introduced by ./git-sh-i18n.patch
substituteInPlace git-sh-i18n.sh \
--subst-var-by gettext ${gettext}
substituteInPlace contrib/credential/libsecret/Makefile \
--replace-fail 'pkg-config' "$PKG_CONFIG"
''
+ lib.optionalString doInstallCheck ''
# ensure we are using the correct shell when executing the test scripts
@@ -299,12 +301,6 @@ stdenv.mkDerivation (finalAttrs: {
cp -a contrib $out/share/git/
mkdir -p $out/share/bash-completion/completions
ln -s $out/share/git/contrib/completion/git-prompt.sh $out/share/bash-completion/completions/
# only readme, developed in another repo
rm -r contrib/hooks/multimail
mkdir -p $out/share/git-core/contrib
cp -a contrib/hooks/ $out/share/git-core/contrib/
substituteInPlace $out/share/git-core/contrib/hooks/pre-auto-gc-battery \
--replace ' grep' ' ${gnugrep}/bin/grep' \
# grep is a runtime dependency, need to patch so that it's found
substituteInPlace $out/libexec/git-core/git-sh-setup \
@@ -1,29 +1,25 @@
diff --git a/Documentation/git-send-email.adoc b/Documentation/git-send-email.adoc
index 7f223db42d..7e46a07d31 100644
index 5d13a856a7..5c9978c1e4 100644
--- a/Documentation/git-send-email.adoc
+++ b/Documentation/git-send-email.adoc
@@ -177,7 +177,7 @@ Sending
@@ -190,7 +190,7 @@ Sending
The command will be executed in the shell if necessary. Default
is the value of `sendemail.sendmailCmd`. If unspecified, and if
--smtp-server is also unspecified, git-send-email will search
- for `sendmail` in `/usr/sbin`, `/usr/lib` and $PATH.
+ for `sendmail` in $PATH.
`--smtp-server` is also unspecified, `git send-email` will search
- for `sendmail` in `/usr/sbin`, `/usr/lib` and `$PATH`.
+ for `sendmail` in `$PATH`.
--smtp-encryption=<encryption>::
Specify in what way encrypting begins for the SMTP connection.
@@ -233,9 +233,9 @@ a password is obtained using 'git-credential'.
--smtp-server=<host>::
@@ -247,7 +247,7 @@ a password is obtained using linkgit:git-credential[1].
If set, specifies the outgoing SMTP server to use (e.g.
`smtp.example.com` or a raw IP address). If unspecified, and if
- `--sendmail-cmd` is also unspecified, the default is to search
- for `sendmail` in `/usr/sbin`, `/usr/lib` and $PATH if such a
- program is available, falling back to `localhost` otherwise.
+ `--sendmail-cmd` is also unspecified, the default is to search for
+ `sendmail` in $PATH if such a program is available, falling back to
+ `localhost` otherwise.
`--sendmail-cmd` is also unspecified, the default is to search
- for `sendmail` in `/usr/sbin`, `/usr/lib` and `$PATH` if such a
+ for `sendmail` in `$PATH` if such a
program is available, falling back to `localhost` otherwise.
+
For backward compatibility, this option can also specify a full pathname
of a sendmail-like program instead; the program must support the `-i`
diff --git a/git-send-email.perl b/git-send-email.perl
index 798d59b84f..69c9cc2a7d 100755
--- a/git-send-email.perl
@@ -52,7 +52,7 @@ fi
if (( "${NIX_DEBUG:-0}" >= 1 )); then
declare -a allHardeningFlags=(fortify fortify3 shadowstack stackprotector stackclashprotection nostrictaliasing pacret strictflexarrays1 strictflexarrays3 pie pic strictoverflow format trivialautovarinit zerocallusedregs)
declare -a allHardeningFlags=(fortify fortify3 shadowstack stackprotector stackclashprotection nostrictaliasing pacret strictflexarrays1 strictflexarrays3 pie pic strictoverflow glibcxxassertions format trivialautovarinit zerocallusedregs)
declare -A hardeningDisableMap=()
# Determine which flags were effectively disabled so we can report below.
@@ -111,6 +111,10 @@ for flag in "${!hardeningEnableMap[@]}"; do
if (( "${NIX_DEBUG:-0}" >= 1 )); then echo HARDENING: enabling pacret >&2; fi
hardeningCFlagsBefore+=('-mbranch-protection=pac-ret')
;;
glibcxxassertions)
if (( "${NIX_DEBUG:-0}" >= 1 )); then echo HARDENING: enabling glibcxxassertions >&2; fi
hardeningCFlagsBefore+=('-D_GLIBCXX_ASSERTIONS')
;;
stackprotector)
if (( "${NIX_DEBUG:-0}" >= 1 )); then echo HARDENING: enabling stackprotector >&2; fi
hardeningCFlagsBefore+=('-fstack-protector-strong' '--param' 'ssp-buffer-size=4')
+19 -3
View File
@@ -64,6 +64,12 @@ lib.extendMkDerivation {
# Go build flags.
GOFLAGS ? [ ],
# Instead of building binary targets with 'go install', build test binaries with 'go test'.
# The binaries found in $out/bin can be executed as go tests outside of the sandbox.
# This is mostly useful outside of nixpkgs, for example to build integration/e2e tests
# that won't run within the sandbox.
buildTestBinaries ? false,
...
}@args:
{
@@ -346,8 +352,18 @@ lib.extendMkDerivation {
export NIX_BUILD_CORES=1
fi
for pkg in $(getGoDirs ""); do
echo "Building subPackage $pkg"
buildGoDir install "$pkg"
${
if buildTestBinaries then
''
echo "Building test binary for $pkg"
buildGoDir "test -c -o $GOPATH/bin/" "$pkg"
''
else
''
echo "Building subPackage $pkg"
buildGoDir install "$pkg"
''
}
done
''
+ lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
@@ -367,7 +383,7 @@ lib.extendMkDerivation {
''
);
doCheck = args.doCheck or true;
doCheck = args.doCheck or (!buildTestBinaries);
checkPhase =
args.checkPhase or ''
runHook preCheck
+9
View File
@@ -0,0 +1,9 @@
{
lib,
callPackage,
}:
lib.packagesFromDirectoryRecursive {
inherit callPackage;
directory = ./tests;
}
@@ -0,0 +1,3 @@
module build-test-binaries
go 1.24
@@ -0,0 +1,7 @@
package main
import "testing"
func TestHelloFromTest(t *testing.T) {
t.Log("Hello from test")
}
@@ -0,0 +1,34 @@
{
buildGoModule,
runCommandCC,
}:
let
testPackage = buildGoModule {
name = "build-test-binaries";
src = ./.;
vendorHash = null;
buildTestBinaries = true;
};
in
runCommandCC "build-test-binaries-check"
{
nativeBuildInputs = [ testPackage ];
passthru = { inherit testPackage; };
}
''
fail() {
echo "Test failed: $1" >&2
exit 1
}
command -v build-test-binaries.test ||
fail "build-test-binaries.test not found in PATH"
build-test-binaries.test -test.v | tee $out ||
fail "build-test-binaries.test failed"
grep -q "Hello from test" $out ||
fail "Output does not contain expected string"
''
@@ -32,7 +32,7 @@
`attrs`
: An AttrSet with the following definitions. See https://specifications.freedesktop.org/desktop-entry-spec/1.4/recognized-keys.html#id-1.7.6 for definitions.
: An AttrSet with the following definitions. See https://specifications.freedesktop.org/desktop-entry-spec/1.5/recognized-keys.html#id-1.7.6 for definitions.
- `name` (string): The name of the desktop file (excluding the .desktop or .directory file extensions)
- `destination` (string): The directory that will contain the desktop entry file (Default: "/share/applications")
@@ -57,7 +57,8 @@
- `startupNotify` (bool): The `StartupNotify` of the desktop entry
- `startupWMClass` (string): The `StartupWMClass` of the desktop entry
- `url` (string): The `URL` of the Link-type desktop entry
- `prefersNonDefaultGPU` (bool): The `PrefersNonDefaultGPU` (non-standard) of the desktop entry
- `prefersNonDefaultGPU` (bool): The `PrefersNonDefaultGPU` of the desktop entry
- `singleMainWindow` (bool): The `SingleMainWindow` of the desktop entry
- `extraConfig` (AttrSet): Additional values to be added literally to the final item, e.g. vendor extensions
# Output
@@ -66,7 +67,7 @@
# Developer Note
All possible values are as defined by the spec, version 1.4.
All possible values are as defined by the spec, version 1.5.
Please keep in spec order for easier maintenance.
When adding a new value, don't forget to update the Version field below!
See https://specifications.freedesktop.org/desktop-entry-spec/latest
@@ -99,8 +100,7 @@ lib.makeOverridable (
startupWMClass ? null,
url ? null,
prefersNonDefaultGPU ? null,
# not supported until version 1.5, which is not supported by our desktop-file-utils as of 2022-02-23
# singleMainWindow ? null,
singleMainWindow ? null,
extraConfig ? { }, # Additional values to be added literally to the final item, e.g. vendor extensions
}:
let
@@ -133,7 +133,7 @@ lib.makeOverridable (
# Please keep in spec order.
mainSection = {
"Type" = type;
"Version" = "1.4";
"Version" = "1.5";
"Name" = desktopName;
"GenericName" = genericName;
"NoDisplay" = boolOrNullToString noDisplay;
@@ -155,7 +155,7 @@ lib.makeOverridable (
"StartupWMClass" = startupWMClass;
"URL" = url;
"PrefersNonDefaultGPU" = boolOrNullToString prefersNonDefaultGPU;
# "SingleMainWindow" = boolOrNullToString singleMainWindow;
"SingleMainWindow" = boolOrNullToString singleMainWindow;
}
// extraConfig;
@@ -19,7 +19,7 @@ cargoBuildHook() {
local flagsArray=(
"-j" "$NIX_BUILD_CORES"
"--target" "@rustcTarget@"
"--target" "@rustcTargetSpec@"
"--offline"
)
@@ -29,7 +29,7 @@ cargoCheckHook() {
fi
flagsArray+=(
"--target" "@rustcTarget@"
"--target" "@rustcTargetSpec@"
"--offline"
)
@@ -10,7 +10,7 @@ cargoNextestHook() {
fi
local flagsArray=(
"--target" "@rustcTarget@"
"--target" "@rustcTargetSpec@"
"--offline"
)
+4 -4
View File
@@ -20,7 +20,7 @@
cargoBuildHook = makeSetupHook {
name = "cargo-build-hook.sh";
substitutions = {
inherit (stdenv.targetPlatform.rust) rustcTarget;
inherit (stdenv.targetPlatform.rust) rustcTargetSpec;
inherit (rust.envVars) setEnv;
};
@@ -35,7 +35,7 @@
cargoCheckHook = makeSetupHook {
name = "cargo-check-hook.sh";
substitutions = {
inherit (stdenv.targetPlatform.rust) rustcTarget;
inherit (stdenv.targetPlatform.rust) rustcTargetSpec;
inherit (rust.envVars) setEnv;
};
passthru.tests = {
@@ -63,7 +63,7 @@
name = "cargo-nextest-hook.sh";
propagatedBuildInputs = [ cargo-nextest ];
substitutions = {
inherit (stdenv.targetPlatform.rust) rustcTarget;
inherit (stdenv.targetPlatform.rust) rustcTargetSpec;
};
passthru.tests = {
test = tests.rust-hooks.cargoNextestHook;
@@ -121,7 +121,7 @@
pkgsHostTarget.rustc
];
substitutions = {
inherit (stdenv.targetPlatform.rust) rustcTarget;
inherit (stdenv.targetPlatform.rust) rustcTargetSpec;
inherit (rust.envVars) setEnv;
};
@@ -20,7 +20,7 @@ maturinBuildHook() {
local flagsArray=(
"--jobs=$NIX_BUILD_CORES"
"--offline"
"--target" "@rustcTarget@"
"--target" "@rustcTargetSpec@"
"--manylinux" "off"
"--strip"
"--release"
@@ -11,7 +11,7 @@ compressManPages() {
# Compress all uncompressed manpages. Don't follow symlinks, etc.
# gzip -f is needed to not error out on hard links.
find "$dir"/share/man/ -type f -a '!' -regex '.*\.\(bz2\|gz\|xz\)$' -print0 \
| xargs -0 -n1 -P "$NIX_BUILD_CORES" gzip -f
| xargs -0 -n1 -P "$NIX_BUILD_CORES" gzip -n -f
# Point symlinks to compressed manpages.
find "$dir"/share/man/ -type l -a '!' -regex '.*\.\(bz2\|gz\|xz\)$' -print0 \
+1 -1
View File
@@ -41,7 +41,7 @@ echo "testBuildFailure: Original builder produced exit code: $r"
#
# NOTE: This MUST be done after the original builder has finished!
# Otherwise we could pollute its environment.
if [ -e "${NIX_ATTRS_SH_FILE:-}" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi
if [ -e "${NIX_ATTRS_SH_FILE:-}" ]; then . "$NIX_ATTRS_SH_FILE"; fi
# Variables injected by replaceVars
#
+8 -3
View File
@@ -1,7 +1,7 @@
{
lib,
stdenv,
buildGo123Module,
buildGoModule,
fetchzip,
pkg-config,
copyDesktopItems,
@@ -15,7 +15,7 @@
buildPackages,
}:
buildGo123Module (finalAttrs: {
buildGoModule (finalAttrs: {
pname = "anvil-editor";
version = "0.6";
@@ -30,7 +30,7 @@ buildGo123Module (finalAttrs: {
vendorHash = "sha256-1oFBV7D7JgOt5yYAxVvC4vL4ccFv3JrNngZbo+5pzrk=";
anvilExtras = buildGo123Module {
anvilExtras = buildGoModule {
pname = "anvil-editor-extras";
inherit (finalAttrs) version src meta;
vendorHash = "sha256-4pfk5XuwDbCWFZIF+1l+dy8NfnGNjgHmSg9y6/RnTSo=";
@@ -51,6 +51,7 @@ buildGo123Module (finalAttrs: {
vulkan-headers
libGL
xorg.libX11
xorg.libxcb
xorg.libXcursor
xorg.libXfixes
];
@@ -93,5 +94,9 @@ buildGo123Module (finalAttrs: {
mainProgram = "anvil";
maintainers = with lib.maintainers; [ aleksana ];
platforms = with lib.platforms; unix ++ windows;
# Doesn't build with >buildGo123Module.
# Multiple errors like the following:
# '> vendor/gioui.org/internal/vk/vulkan.go:1916:9: cannot define new methods on non-local type SurfaceCapabilities'
broken = true;
};
})
+3
View File
@@ -178,6 +178,9 @@ stdenv.mkDerivation (finalAttrs: {
ZSTD_ROOT = zstd.dev;
};
# fails tests on glibc with this enabled
hardeningDisable = [ "glibcxxassertions" ];
preConfigure = ''
patchShebangs build-support/
substituteInPlace "src/arrow/vendored/datetime/tz.cpp" \
+3 -3
View File
@@ -21,8 +21,8 @@
libXi,
libXext,
gnome,
systemd,
systemdSupport ? lib.meta.availableOn stdenv.hostPlatform systemd,
systemdLibs,
systemdSupport ? lib.meta.availableOn stdenv.hostPlatform systemdLibs,
}:
stdenv.mkDerivation rec {
@@ -62,7 +62,7 @@ stdenv.mkDerivation rec {
]
++ lib.optionals systemdSupport [
# libsystemd is a needed for dbus-broker support
systemd
systemdLibs
];
# In atspi-2.pc dbus-1 glib-2.0
+7
View File
@@ -53,6 +53,13 @@ stdenv.mkDerivation (finalAttrs: {
kyua
];
# Dont install the test programs for ATF itself; theyre useless
# other than as part of the `installCheckPhase`, and they contain
# nonreproducible references to the build directory.
postInstall = ''
rm -r $out/tests
'';
installCheckPhase = ''
runHook preInstallCheck
HOME=$TMPDIR PATH=$out/bin:$PATH kyua test
+26 -1
View File
@@ -16,7 +16,7 @@ let
}:
fetchpatch {
inherit sha256 name;
url = "https://salsa.debian.org/multimedia-team/audiofile/raw/debian/0.3.6-4/debian/patches/${debname}";
url = "https://salsa.debian.org/multimedia-team/audiofile/raw/debian/0.3.6-7/debian/patches/${debname}";
};
in
@@ -97,6 +97,31 @@ stdenv.mkDerivation rec {
debname = "10_Check-for-division-by-zero-in-BlockCodec-runPull.patch";
sha256 = "1rlislkjawq98bbcf1dgl741zd508wwsg85r37ca7pfdf6wgl6z7";
})
(fetchDebianPatch {
name = "CVE-2018-13440.patch";
debname = "11_CVE-2018-13440.patch";
sha256 = "sha256-qDfjiBJ4QXgn8588Ra1X0ViH0jBjtFS/+2zEGIUIhuo=";
})
(fetchDebianPatch {
name = "CVE-2018-17095.patch";
debname = "12_CVE-2018-17095.patch";
sha256 = "sha256-FC89EFZuRLcj5x4wZVqUlitEMTRPSZk+qzQpIoVk9xY=";
})
(fetchDebianPatch {
name = "CVE-2022-24599.patch";
debname = "0013-Fix-CVE-2022-24599.patch";
sha256 = "sha256-DHJQ4B6cvKfSlXy66ZC5RNaCMDaygj8dWLZZhJnhw1E=";
})
(fetchDebianPatch {
name = "1_CVE-2019-13147.patch";
debname = "0014-Partial-fix-of-CVE-2019-13147.patch";
sha256 = "sha256-clb/XiIZbmttPr2dT9AZsbQ97W6lwifEwMO4l2ZEh0k=";
})
(fetchDebianPatch {
name = "2_CVE-2019-13147.patch";
debname = "0015-Partial-fix-of-CVE-2019-13147.patch";
sha256 = "sha256-JOZIw962ae7ynnjJXGO29i8tuU5Dhk67DmB0o5/vSf4=";
})
];
meta = with lib; {
+2 -2
View File
@@ -1,11 +1,11 @@
{
buildGo123Module,
buildGoModule,
fetchFromGitHub,
lib,
nix-update-script,
}:
buildGo123Module (finalAttrs: {
buildGoModule (finalAttrs: {
pname = "avalanchego";
version = "1.13.2";
+1
View File
@@ -119,6 +119,7 @@ stdenv.mkDerivation (finalAttrs: {
pipewire
qt6.qtwayland
xorg.libX11
xorg.libxcb
xorg.libXext
]
++ optionals stdenv.hostPlatform.isDarwin [
@@ -22,6 +22,12 @@ stdenv.mkDerivation rec {
hash = "sha256-M2m9XkGKdfuZCGOSWu1bQgOYrOuzIOxMAwaz6uI/EHo=";
};
postPatch = ''
# fix `mount -t` tab completion
substituteInPlace bash_completion \
--replace-fail "/lib/modules" "/run/booted-system/kernel-modules/lib/modules"
'';
strictDeps = true;
nativeBuildInputs = [ autoreconfHook ];
+44
View File
@@ -0,0 +1,44 @@
{
lib,
stdenv,
fetchurl,
}:
# This package only provides the bluetooth headers from the bluez package
# for consumption in Python, which cannot consume bluez.dev due to multiple
# infinite recursion paths.
stdenv.mkDerivation (finalAttrs: {
pname = "bluez-headers";
version = "5.83";
# This package has the source, because of the emulatorAvailable check in the
# bluez function args, that causes an infinite recursion with Python on cross
# builds.
src = fetchurl {
url = "mirror://kernel/linux/bluetooth/bluez-${finalAttrs.version}.tar.xz";
hash = "sha256-EIUi2QnSIFgTmb/sk9qrYgNVOc7vPdo+eZcHhcY70kw=";
};
dontConfigure = true;
dontBuild = true;
installPhase = ''
mkdir -p $out/include/bluetooth
cp -v lib/*.h "$out/include/bluetooth/"
'';
meta = {
homepage = "https://www.bluez.org/";
description = "Official Linux Bluetooth protocol stack";
changelog = "https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/ChangeLog?h=${finalAttrs.version}";
license = with lib.licenses; [
bsd2
gpl2Plus
lgpl21Plus
mit
];
maintainers = with lib.maintainers; [ ];
platforms = lib.platforms.linux;
};
})
+3 -18
View File
@@ -3,6 +3,7 @@
stdenv,
alsa-lib,
autoreconfHook,
bluez-headers,
dbus,
docutils,
ell,
@@ -28,12 +29,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "bluez";
version = "5.83";
src = fetchurl {
url = "mirror://kernel/linux/bluetooth/bluez-${finalAttrs.version}.tar.xz";
hash = "sha256-EIUi2QnSIFgTmb/sk9qrYgNVOc7vPdo+eZcHhcY70kw=";
};
inherit (bluez-headers) version src;
patches = [
(fetchurl {
@@ -186,18 +182,7 @@ stdenv.mkDerivation (finalAttrs: {
url = "https://git.kernel.org/pub/scm/bluetooth/bluez.git";
};
meta = {
homepage = "https://www.bluez.org/";
description = "Official Linux Bluetooth protocol stack";
changelog = "https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/ChangeLog?h=${finalAttrs.version}";
license = with lib.licenses; [
bsd2
gpl2Plus
lgpl21Plus
mit
];
meta = bluez-headers.meta // {
mainProgram = "btinfo";
maintainers = with lib.maintainers; [ ];
platforms = lib.platforms.linux;
};
})
+2 -2
View File
@@ -11,11 +11,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "bmake";
version = "20250707";
version = "20250804";
src = fetchurl {
url = "https://www.crufty.net/ftp/pub/sjg/bmake-${finalAttrs.version}.tar.gz";
hash = "sha256-phJApAZdkMOSXdd0+Po9c97sGnMiiobulfzYIGPSiwg=";
hash = "sha256-C0kDdkSyUyBtLnENRuMoWeYt/ixsjnIYrkOfLvUN6K0=";
};
patches = [
@@ -0,0 +1,12 @@
diff '--color=auto' -ruN a/tools/include/uapi/linux/types.h b/tools/include/uapi/linux/types.h
--- a/tools/include/uapi/linux/types.h 2025-05-18 06:26:10.000000000 +0000
+++ b/tools/include/uapi/linux/types.h 2025-07-04 08:00:39.772748792 +0000
@@ -2,7 +2,7 @@
#ifndef _UAPI_LINUX_TYPES_H
#define _UAPI_LINUX_TYPES_H
-#include <asm-generic/int-ll64.h>
+#include <asm/types.h>
/* copied from linux:include/uapi/linux/types.h */
#define __bitwise
+6
View File
@@ -22,6 +22,12 @@ stdenv.mkDerivation rec {
separateDebugInfo = true;
patches = [
# fix unknown type name '__vector128' on powerpc64*
# https://www.spinics.net/lists/bpf/msg28613.html
./include-asm-types-for-powerpc64.patch
];
depsBuildBuild = [ buildPackages.stdenv.cc ];
nativeBuildInputs = [
python3
+2 -2
View File
@@ -21,11 +21,11 @@
stdenv.mkDerivation rec {
pname = "btrfs-progs";
version = "6.15";
version = "6.16";
src = fetchurl {
url = "mirror://kernel/linux/kernel/people/kdave/btrfs-progs/btrfs-progs-v${version}.tar.xz";
hash = "sha256-V9pCjdIZn9iNg+zxytBWeM54ZA735S12M76Yh872dLs=";
hash = "sha256-Makw+HN8JhioJK1L0f3YP1QQPg6qFaqtxIT/rjNGb8U=";
};
nativeBuildInputs = [
+5
View File
@@ -23,6 +23,11 @@ stdenv.mkDerivation rec {
hash = "sha256-8IDMLQPeO576N1lizVudXUmTV6hNOiowjzRpEWBsZ+U=";
};
outputs = [
"out"
"dev"
];
postPatch = ''
substituteInPlace tests/libtest.sh \
--replace "/var/tmp" "$TMPDIR"
+2 -2
View File
@@ -23,7 +23,7 @@ let
lib.concatStringsSep "\n\n" extraCertificateStrings
);
srcVersion = "3.114";
srcVersion = "3.115";
version = if nssOverride != null then nssOverride.version else srcVersion;
meta = with lib; {
homepage = "https://curl.haxx.se/docs/caextract.html";
@@ -47,7 +47,7 @@ let
owner = "nss-dev";
repo = "nss";
rev = "NSS_${lib.replaceStrings [ "." ] [ "_" ] version}_RTM";
hash = "sha256-YVtXk1U9JtqfOH7+m/+bUI/yXJcydqjjGbCy/5xbMe8=";
hash = "sha256-8PeFeaIOtjBZJLBx3ONwZlK5SaLnjKEFoZWvVsu/3tA=";
};
dontBuild = true;
+4 -4
View File
@@ -12,19 +12,19 @@
let
# this version may need to be updated along with package version
cargoVersion = "0.89.0";
cargoVersion = "0.90.0";
in
rustPlatform.buildRustPackage rec {
pname = "cargo-c";
version = "0.10.14";
version = "0.10.15";
src = fetchCrate {
inherit pname;
version = "${version}+cargo-${cargoVersion}";
hash = "sha256-t6cbufPdpyaFzwEFWt19Nid2S5FXCJCS+SHJ0aJICX0=";
hash = "sha256-szqDSHGihE+Oj8L3EBlC5XH4kSBYOptd0Xtk3MhXooQ=";
};
cargoHash = "sha256-nW+akmbpIGZnhJLBdwDAGI4m5eSwdT2Z/iY2RV4zMQY=";
cargoHash = "sha256-36ygs/EhCktG1jmBnP9c7EgnfcWnGrqqcW3qAw+Yfy4=";
nativeBuildInputs = [
pkg-config
+2 -2
View File
@@ -1,12 +1,12 @@
{
stdenv,
lib,
buildGo123Module,
buildGoModule,
fetchFromGitHub,
libX11,
}:
buildGo123Module rec {
buildGoModule rec {
pname = "certinfo";
version = "1.0.24";
+8 -6
View File
@@ -23,9 +23,9 @@
rebuildMan ? false,
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "cryptsetup";
version = "2.8.0";
version = "2.8.1";
outputs = [
"bin"
@@ -36,8 +36,10 @@ stdenv.mkDerivation rec {
separateDebugInfo = true;
src = fetchurl {
url = "mirror://kernel/linux/utils/cryptsetup/v${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
hash = "sha256-zJ4tN8JahxzqN1ILKNUyIHsMFnD7EPxU1oBx9j9SQ6I=";
url =
"mirror://kernel/linux/utils/cryptsetup/v${lib.versions.majorMinor finalAttrs.version}/"
+ "cryptsetup-${finalAttrs.version}.tar.xz";
hash = "sha256-LDN563ZZfcq1CRFEmwE+JpfEv/zHFtu/DZsOj7u0b7Q=";
};
patches = [
@@ -106,7 +108,7 @@ stdenv.mkDerivation rec {
meta = {
homepage = "https://gitlab.com/cryptsetup/cryptsetup/";
description = "LUKS for dm-crypt";
changelog = "https://gitlab.com/cryptsetup/cryptsetup/-/raw/v${version}/docs/v${version}-ReleaseNotes";
changelog = "https://gitlab.com/cryptsetup/cryptsetup/-/raw/v${finalAttrs.version}/docs/v${finalAttrs.version}-ReleaseNotes";
license = lib.licenses.gpl2Plus;
mainProgram = "cryptsetup";
maintainers = with lib.maintainers; [
@@ -115,4 +117,4 @@ stdenv.mkDerivation rec {
];
platforms = with lib.platforms; linux;
};
}
})
+24
View File
@@ -14,12 +14,16 @@
e2fsprogs,
runCommand,
libarchive,
bash,
bashNonInteractive,
}:
stdenv.mkDerivation rec {
pname = "e2fsprogs";
version = "1.47.3";
__structuredAttrs = true;
src = fetchurl {
url = "mirror://kernel/linux/kernel/people/tytso/e2fsprogs/v${version}/e2fsprogs-${version}.tar.xz";
hash = "sha256-hX5u+AD+qiu0V4+8gQIUvl08iLBy6lPFOEczqWVzcyk=";
@@ -42,9 +46,12 @@ stdenv.mkDerivation rec {
"out"
"man"
"info"
"scripts"
]
++ lib.optionals withFuse [ "fuse2fs" ];
strictDeps = true;
depsBuildBuild = [ buildPackages.stdenv.cc ];
nativeBuildInputs = [
pkg-config
@@ -54,6 +61,7 @@ stdenv.mkDerivation rec {
libuuid
gettext
libarchive
bash
]
++ lib.optionals withFuse [ fuse3 ];
@@ -86,6 +94,11 @@ stdenv.mkDerivation rec {
if [ -f $out/lib/${pname}/e2scrub_all_cron ]; then
mv $out/lib/${pname}/e2scrub_all_cron $bin/bin/
fi
moveToOutput bin/mk_cmds "$scripts"
moveToOutput bin/compile_et "$scripts"
moveToOutput sbin/e2scrub "$scripts"
moveToOutput sbin/e2scrub_all "$scripts"
''
+ lib.optionalString withFuse ''
mkdir -p $fuse2fs/bin
@@ -94,6 +107,17 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
outputChecks = {
bin.disallowedRequisites = [
bash
bashNonInteractive
];
out.disallowedRequisites = [
bash
bashNonInteractive
];
};
passthru.tests = {
simple-filesystem = runCommand "e2fsprogs-create-fs" { } ''
mkdir -p $out
+2
View File
@@ -7,6 +7,7 @@
extra-cmake-modules,
dbus,
libX11,
libxcb,
libXi,
libXtst,
libnotify,
@@ -80,6 +81,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
libXi
libXtst
libX11
libxcb
xclip
xdotool
];
+11 -18
View File
@@ -1,7 +1,7 @@
{
cmake,
doxygen,
fetchFromGitHub,
fetchurl,
graphviz,
lib,
libogg,
@@ -10,17 +10,17 @@
pkg-config,
stdenv,
versionCheckHook,
enableManpages ? buildPackages.pandoc.compiler.bootstrapAvailable,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "flac";
version = "1.5.0";
src = fetchFromGitHub {
owner = "xiph";
repo = "flac";
tag = finalAttrs.version;
hash = "sha256-B6XRai5UOAtY/7JXNbI3YuBgazi1Xd2ZOs6vvLq9LIs=";
# Building from tarball instead of GitHub to include pre-built manpages.
# This prevents huge numbers of rebuilds for pandoc / haskell-updates.
# It also enables manpages for platforms where pandoc is not available.
src = fetchurl {
url = "http://downloads.xiph.org/releases/flac/flac-${finalAttrs.version}.tar.xz";
hash = "sha256-8sHHZZKoL//4QTujxKEpm2x6sGxzTe4D/YhjBIXCuSA=";
};
hardeningDisable = [ "trivialautovarinit" ];
@@ -30,18 +30,13 @@ stdenv.mkDerivation (finalAttrs: {
doxygen
graphviz
pkg-config
]
++ lib.optional enableManpages buildPackages.pandoc;
];
buildInputs = [ libogg ];
cmakeFlags =
lib.optionals (!stdenv.hostPlatform.isStatic) [
"-DBUILD_SHARED_LIBS=ON"
]
++ lib.optionals (!enableManpages) [
"-DINSTALL_MANPAGES=OFF"
];
cmakeFlags = lib.optionals (!stdenv.hostPlatform.isStatic) [
"-DBUILD_SHARED_LIBS=ON"
];
CFLAGS = [
"-O3"
@@ -57,8 +52,6 @@ stdenv.mkDerivation (finalAttrs: {
"dev"
"doc"
"out"
]
++ lib.optionals enableManpages [
"man"
];
+2 -2
View File
@@ -14,13 +14,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "fluidsynth";
version = "2.4.6";
version = "2.4.7";
src = fetchFromGitHub {
owner = "FluidSynth";
repo = "fluidsynth";
tag = "v${finalAttrs.version}";
hash = "sha256-hy2kWJmvvmItXl05Nw9gWEYpoDg+NtP2veO2vZ00QhI=";
hash = "sha256-z7DIX8KpPdtEHEMoxH7ewW32aXm27gfmWPZawwITyRQ=";
};
outputs = [
@@ -0,0 +1,51 @@
{
lib,
stdenv,
fetchurl,
pkg-config,
font-util,
bdftopcf,
mkfontscale,
writeScript,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "font-adobe-100dpi";
version = "1.0.4";
src = fetchurl {
url = "mirror://xorg/individual/font/font-adobe-100dpi-${finalAttrs.version}.tar.xz";
hash = "sha256-tnr/RF4FYyjVP5cy05iE9V3Y0wP8Ja89u6M6i6NanM8=";
};
strictDeps = true;
nativeBuildInputs = [
pkg-config
bdftopcf
font-util
mkfontscale
];
buildInputs = [ font-util ];
configureFlags = [ "--with-fontrootdir=$(out)/share/fonts/X11" ];
passthru = {
updateScript = writeScript "update-${finalAttrs.pname}" ''
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p common-updater-scripts
version="$(list-directory-versions --pname ${finalAttrs.pname} \
--url https://xorg.freedesktop.org/releases/individual/font/ \
| sort -V | tail -n1)"
update-source-version ${finalAttrs.pname} "$version"
'';
};
meta = {
description = "Adobe 100dpi pcf fonts";
homepage = "https://gitlab.freedesktop.org/xorg/font/adobe-100dpi";
license = lib.licenses.hpndSellVariant; # plus a trademark that doesn't change the license
maintainers = [ ];
platforms = lib.platforms.unix;
};
})
@@ -0,0 +1,51 @@
{
lib,
stdenv,
fetchurl,
pkg-config,
font-util,
bdftopcf,
mkfontscale,
writeScript,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "font-adobe-75dpi";
version = "1.0.4";
src = fetchurl {
url = "mirror://xorg/individual/font/font-adobe-75dpi-${finalAttrs.version}.tar.xz";
hash = "sha256-EoGmLb7e0WnklcrhpbSH4fM28rTZcdkpEcWcEDmZuRE=";
};
strictDeps = true;
nativeBuildInputs = [
pkg-config
bdftopcf
font-util
mkfontscale
];
buildInputs = [ font-util ];
configureFlags = [ "--with-fontrootdir=$(out)/share/fonts/X11" ];
passthru = {
updateScript = writeScript "update-${finalAttrs.pname}" ''
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p common-updater-scripts
version="$(list-directory-versions --pname ${finalAttrs.pname} \
--url https://xorg.freedesktop.org/releases/individual/font/ \
| sort -V | tail -n1)"
update-source-version ${finalAttrs.pname} "$version"
'';
};
meta = {
description = "Adobe 75dpi pcf fonts";
homepage = "https://gitlab.freedesktop.org/xorg/font/adobe-75dpi";
license = lib.licenses.hpndSellVariant; # plus a trademark that doesn't change the license
maintainers = [ ];
platforms = lib.platforms.unix;
};
})
@@ -0,0 +1,51 @@
{
lib,
stdenv,
fetchurl,
pkg-config,
font-util,
bdftopcf,
mkfontscale,
writeScript,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "font-adobe-utopia-100dpi";
version = "1.0.5";
src = fetchurl {
url = "mirror://xorg/individual/font/font-adobe-utopia-100dpi-${finalAttrs.version}.tar.xz";
hash = "sha256-+4TsKXqQaXNUjKWbfG2uqtISRL7F0/sefJPfXvQ7Aks=";
};
strictDeps = true;
nativeBuildInputs = [
pkg-config
bdftopcf
font-util
mkfontscale
];
buildInputs = [ font-util ];
configureFlags = [ "--with-fontrootdir=$(out)/share/fonts/X11" ];
passthru = {
updateScript = writeScript "update-${finalAttrs.pname}" ''
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p common-updater-scripts
version="$(list-directory-versions --pname ${finalAttrs.pname} \
--url https://xorg.freedesktop.org/releases/individual/font/ \
| sort -V | tail -n1)"
update-source-version ${finalAttrs.pname} "$version"
'';
};
meta = {
description = "Adobe Utopia 100dpi pcf fonts";
homepage = "https://gitlab.freedesktop.org/xorg/font/adobe-utopia-100dpi";
license = lib.licenses.adobeUtopia;
maintainers = [ ];
platforms = lib.platforms.unix;
};
})
@@ -0,0 +1,51 @@
{
lib,
stdenv,
fetchurl,
pkg-config,
font-util,
bdftopcf,
mkfontscale,
writeScript,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "font-adobe-utopia-75dpi";
version = "1.0.5";
src = fetchurl {
url = "mirror://xorg/individual/font/font-adobe-utopia-75dpi-${finalAttrs.version}.tar.xz";
hash = "sha256-pyYkWTLQck+gxTjJkoEdY9WX5fU5KPQEjpyvViN5d2A=";
};
strictDeps = true;
nativeBuildInputs = [
pkg-config
bdftopcf
font-util
mkfontscale
];
buildInputs = [ font-util ];
configureFlags = [ "--with-fontrootdir=$(out)/share/fonts/X11" ];
passthru = {
updateScript = writeScript "update-${finalAttrs.pname}" ''
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p common-updater-scripts
version="$(list-directory-versions --pname ${finalAttrs.pname} \
--url https://xorg.freedesktop.org/releases/individual/font/ \
| sort -V | tail -n1)"
update-source-version ${finalAttrs.pname} "$version"
'';
};
meta = {
description = "Adobe Utopia 75dpi pcf fonts";
homepage = "https://gitlab.freedesktop.org/xorg/font/adobe-utopia-75dpi";
license = lib.licenses.adobeUtopia;
maintainers = [ ];
platforms = lib.platforms.unix;
};
})
@@ -0,0 +1,38 @@
{
lib,
stdenv,
fetchurl,
mkfontscale,
writeScript,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "font-adobe-utopia-type1";
version = "1.0.5";
src = fetchurl {
url = "mirror://xorg/individual/font/font-adobe-utopia-type1-${finalAttrs.version}.tar.xz";
hash = "sha256-TLKAvEdpOwfF4A/Q5a1XIaq+vAVIw/BndOXMPLz3Vpc=";
};
strictDeps = true;
nativeBuildInputs = [ mkfontscale ];
passthru = {
updateScript = writeScript "update-${finalAttrs.pname}" ''
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p common-updater-scripts
version="$(list-directory-versions --pname ${finalAttrs.pname} \
--url https://xorg.freedesktop.org/releases/individual/font/ \
| sort -V | tail -n1)"
update-source-version ${finalAttrs.pname} "$version"
'';
};
meta = {
description = "Adobe Utopia PostScript Type 1 fonts";
homepage = "https://gitlab.freedesktop.org/xorg/font/adobe-utopia-type1";
license = lib.licenses.adobeUtopia;
maintainers = [ ];
platforms = lib.platforms.unix;
};
})
+38
View File
@@ -0,0 +1,38 @@
{
lib,
stdenv,
fetchurl,
mkfontscale,
writeScript,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "font-bh-ttf";
version = "1.0.4";
src = fetchurl {
url = "mirror://xorg/individual/font/font-bh-ttf-${finalAttrs.version}.tar.xz";
hash = "sha256-haX5DQDEjCsG/RJeqK28i47pdCnjB1CByHEJJu/sOlY=";
};
strictDeps = true;
nativeBuildInputs = [ mkfontscale ];
passthru = {
updateScript = writeScript "update-${finalAttrs.pname}" ''
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p common-updater-scripts
version="$(list-directory-versions --pname ${finalAttrs.pname} \
--url https://xorg.freedesktop.org/releases/individual/font/ \
| sort -V | tail -n1)"
update-source-version ${finalAttrs.pname} "$version"
'';
};
meta = {
description = "Luxi TrueType fonts";
homepage = "https://gitlab.freedesktop.org/xorg/font/bh-ttf";
license = lib.licenses.unfreeRedistributable;
maintainers = [ ];
platforms = lib.platforms.unix;
};
})
+38
View File
@@ -0,0 +1,38 @@
{
lib,
stdenv,
fetchurl,
mkfontscale,
writeScript,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "font-bh-type1";
version = "1.0.4";
src = fetchurl {
url = "mirror://xorg/individual/font/font-bh-type1-${finalAttrs.version}.tar.xz";
hash = "sha256-Gd7D7Aar3mvt0QCUV56Si+Dw/DvbT76T9MaczkBtcqY=";
};
strictDeps = true;
nativeBuildInputs = [ mkfontscale ];
passthru = {
updateScript = writeScript "update-${finalAttrs.pname}" ''
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p common-updater-scripts
version="$(list-directory-versions --pname ${finalAttrs.pname} \
--url https://xorg.freedesktop.org/releases/individual/font/ \
| sort -V | tail -n1)"
update-source-version ${finalAttrs.pname} "$version"
'';
};
meta = {
description = "Luxi PostScript Type 1 fonts";
homepage = "https://gitlab.freedesktop.org/xorg/font/bh-type1";
license = lib.licenses.unfreeRedistributable;
maintainers = [ ];
platforms = lib.platforms.unix;
};
})
@@ -0,0 +1,38 @@
{
lib,
stdenv,
fetchurl,
mkfontscale,
writeScript,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "font-encodings";
version = "1.1.0";
src = fetchurl {
url = "mirror://xorg/individual/font/encodings-${finalAttrs.version}.tar.xz";
hash = "sha256-n/E8YhdWz6EulfMrpIpbI4Oej1d9AEi+2mbGfatN6XU=";
};
strictDeps = true;
nativeBuildInputs = [ mkfontscale ];
passthru = {
updateScript = writeScript "update-${finalAttrs.pname}" ''
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p common-updater-scripts
version="$(list-directory-versions --pname encodings \
--url https://xorg.freedesktop.org/releases/individual/font/ \
| sort -V | tail -n1)"
update-source-version ${finalAttrs.pname} "$version"
'';
};
meta = {
description = "Font encoding tables for libfontenc";
homepage = "https://gitlab.freedesktop.org/xorg/font/encodings";
license = lib.licenses.publicDomain;
maintainers = [ ];
platforms = lib.platforms.unix;
};
})
@@ -0,0 +1,42 @@
{
lib,
stdenv,
fetchurl,
bdftopcf,
mkfontscale,
writeScript,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "font-mutt-misc";
version = "1.0.4";
src = fetchurl {
url = "mirror://xorg/individual/font/font-mutt-misc-${finalAttrs.version}.tar.xz";
hash = "sha256-sSNZ9OEsI7z8tEi5GCl+l1+pG+9Sk9iNPCU0PMdouyQ=";
};
strictDeps = true;
nativeBuildInputs = [
bdftopcf
mkfontscale
];
passthru = {
updateScript = writeScript "update-${finalAttrs.pname}" ''
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p common-updater-scripts
version="$(list-directory-versions --pname ${finalAttrs.pname} \
--url https://xorg.freedesktop.org/releases/individual/font/ \
| sort -V | tail -n1)"
update-source-version ${finalAttrs.pname} "$version"
'';
};
meta = {
description = "ClearU pcf fonts";
homepage = "https://gitlab.freedesktop.org/xorg/font/mutt-misc";
license = lib.licenses.mit;
maintainers = [ ];
platforms = lib.platforms.unix;
};
})
+1 -1
View File
@@ -135,7 +135,7 @@ python.pkgs.buildPythonApplication rec {
'';
nativeCheckInputs = with python.pkgs; [
(postgresql.withPackages (p: [ p.postgis ])).out
(postgresql.withPackages (p: [ p.postgis ]))
postgresqlTestHook
pytest-django
pytest-playwright
+1
View File
@@ -129,6 +129,7 @@ stdenv.mkDerivation (finalAttrs: {
pipewire
hwdata
xorg.libX11
xorg.libxcb
wayland
wayland-protocols
vulkan-loader
+2 -2
View File
@@ -1,6 +1,6 @@
{
lib,
buildGo123Module,
buildGoModule,
buildNpmPackage,
fetchFromGitHub,
nix-update-script,
@@ -37,7 +37,7 @@ let
};
in
buildGo123Module rec {
buildGoModule rec {
inherit version;
pname = "glasskube";
+2 -2
View File
@@ -74,7 +74,7 @@ in
stdenv.mkDerivation (finalAttrs: {
pname = "glib";
version = "2.84.3";
version = "2.84.4";
outputs = [
"bin"
@@ -87,7 +87,7 @@ stdenv.mkDerivation (finalAttrs: {
src = fetchurl {
url = "mirror://gnome/sources/glib/${lib.versions.majorMinor finalAttrs.version}/glib-${finalAttrs.version}.tar.xz";
hash = "sha256-qk+HwyJb9XyoXzIIiPdISQGheTTKNwI8O9hDWnLbhj4=";
hash = "sha256-ip6hCUPDb8EX4lP4DJHkd7ZzUlrkV2KUKFiu9XYxu5A=";
};
patches =
+2
View File
@@ -17,6 +17,7 @@
wayland-scanner,
nix-update-script,
libX11,
libxcb,
libXcursor,
libXi,
libXrandr,
@@ -65,6 +66,7 @@ rustPlatform.buildRustPackage rec {
++ lib.optionals stdenv.hostPlatform.isLinux [
wayland
libX11
libxcb
libXcursor
libXi
libXrandr
+2
View File
@@ -5,6 +5,7 @@
buildGoModule,
libGL,
libX11,
libxcb,
libXcursor,
libXfixes,
libxkbcommon,
@@ -42,6 +43,7 @@ buildGoModule rec {
libxkbcommon
wayland
libX11
libxcb
libXcursor
libXfixes
libGL
+7 -2
View File
@@ -1,10 +1,11 @@
{
lib,
buildGo123Module,
buildGoModule,
fetchFromGitHub,
versionCheckHook,
}:
buildGo123Module rec {
buildGoModule rec {
pname = "gowitness";
version = "3.0.5";
@@ -22,6 +23,10 @@ buildGo123Module rec {
"-w"
];
doInstallCheck = true;
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgramArg = "version";
meta = with lib; {
description = "Web screenshot utility";
homepage = "https://github.com/sensepost/gowitness";
+51
View File
@@ -0,0 +1,51 @@
{
lib,
stdenv,
fetchurl,
pkg-config,
libX11,
xorgproto,
writeScript,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "ico";
version = "1.0.6";
src = fetchurl {
url = "mirror://xorg/individual/app/ico-${finalAttrs.version}.tar.xz";
hash = "sha256-OPNp1DHnUygP3nD6SJzJTOIE+fjqvS9J/H0yr6afRAU=";
};
strictDeps = true;
nativeBuildInputs = [ pkg-config ];
buildInputs = [
libX11
xorgproto
];
passthru = {
updateScript = writeScript "update-${finalAttrs.pname}" ''
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p common-updater-scripts
version="$(list-directory-versions --pname ${finalAttrs.pname} \
--url https://xorg.freedesktop.org/releases/individual/app/ \
| sort -V | tail -n1)"
update-source-version ${finalAttrs.pname} "$version"
'';
};
meta = {
description = "Simple animation program that may be used for testing various X11 operations and extensions";
homepage = "https://gitlab.freedesktop.org/xorg/app/ico";
license = with lib.licenses; [
x11
hpnd
hpndSellVariant
];
mainProgram = "ico";
maintainers = [ ];
platforms = lib.platforms.unix;
};
})
+2 -2
View File
@@ -7,13 +7,13 @@
stdenv.mkDerivation rec {
pname = "imath";
version = "3.2.0";
version = "3.2.1";
src = fetchFromGitHub {
owner = "AcademySoftwareFoundation";
repo = "imath";
rev = "v${version}";
sha256 = "sha256-tdJh8aRVakdu2zDeGA/0JCCNzdv6s6x55eUpgNJtuI0=";
hash = "sha256-O8IpP2MQ7egDbHIiL5TNBygmQCiS6Q/0VSe0LypsM/g=";
};
nativeBuildInputs = [ cmake ];
+2 -2
View File
@@ -8,13 +8,13 @@
stdenv.mkDerivation rec {
pname = "inih";
version = "60";
version = "61";
src = fetchFromGitHub {
owner = "benhoyt";
repo = "inih";
rev = "r${version}";
hash = "sha256-6U6/b7J4dGFwVPw31Vl+BEDrN2ygK43Hb344Uk8NdFs=";
hash = "sha256-tSmdd9uAXaRQtnqj0hKuT0wofcZcYjqgPbhtaR+cr84=";
};
nativeBuildInputs = [
+74 -17
View File
@@ -16,46 +16,98 @@
#
# See comments on each function for more details.
# installManPage <path> [...<path>]
# installManPage [--name <path>] <path> [...<path>]
#
# Each argument is checked for its man section suffix and installed into the appropriate
# share/man/man<n>/ directory. The function returns an error if any paths don't have the man
# section suffix (with optional .gz compression).
#
# Optionally accepts pipes as input, which when provided require the `--name` argument to
# name the output file.
#
# installManPage --name foobar.1 <($out/bin/foobar --manpage)
installManPage() {
local path
for path in "$@"; do
if test -z "$path"; then
local arg name='' continueParsing=1
while { arg=$1; shift; }; do
if (( continueParsing )); then
case "$arg" in
--name)
name=$1
shift || {
nixErrorLog "${FUNCNAME[0]}: --name flag expected an argument"
return 1
}
continue;;
--name=*)
# Treat `--name=foo` that same as `--name foo`
name=${arg#--name=}
continue;;
--)
continueParsing=0
continue;;
esac
fi
nixInfoLog "${FUNCNAME[0]}: installing $arg${name:+ as $name}"
local basename
# Check if path is empty
if test -z "$arg"; then
# It is an empty string
nixErrorLog "${FUNCNAME[0]}: path cannot be empty"
return 1
fi
nixInfoLog "${FUNCNAME[0]}: installing $path"
local basename
basename=$(stripHash "$path") # use stripHash in case it's a nix store path
if test -n "$name"; then
# Provided name. Required for pipes, optional for paths
basename=$name
elif test -p "$arg"; then
# Named pipe requires a file name
nixErrorLog "${FUNCNAME[0]}: named pipe requires --name argument"
else
# Normal file without a name
basename=$(stripHash "$arg") # use stripHash in case it's a nix store path
fi
# Check that it is well-formed
local trimmed=${basename%.gz} # don't get fooled by compressed manpages
local suffix=${trimmed##*.}
if test -z "$suffix" -o "$suffix" = "$trimmed"; then
nixErrorLog "${FUNCNAME[0]}: path missing manpage section suffix: $path"
nixErrorLog "${FUNCNAME[0]}: path missing manpage section suffix: $arg"
return 1
fi
# Create the out-path
local outRoot
if test "$suffix" = 3; then
outRoot=${!outputDevman:?}
else
outRoot=${!outputMan:?}
fi
local outPath="${outRoot}/share/man/man$suffix/$basename"
install -D --mode=644 --no-target-directory "$path" "$outPath"
local outPath="${outRoot}/share/man/man$suffix/"
nixInfoLog "${FUNCNAME[0]}: installing to $outPath"
# Install
if test -p "$arg"; then
# install doesn't work with pipes on Darwin
mkdir -p "$outPath" && cat "$arg" > "$outPath/$basename"
else
install -D --mode=644 --no-target-directory -- "$arg" "$outPath/$basename"
fi
# Reset the name for the next page
name=
done
}
# installShellCompletion [--cmd <name>] ([--bash|--fish|--zsh] [--name <name>] <path>)...
#
# Each path is installed into the appropriate directory for shell completions for the given shell.
# If one of `--bash`, `--fish`, or `--zsh` is given the path is assumed to belong to that shell.
# Otherwise the file extension will be examined to pick a shell. If the shell is unknown a warning
# will be logged and the command will return a non-zero status code after processing any remaining
# paths. Any of the shell flags will affect all subsequent paths (unless another shell flag is
# given).
# If one of `--bash`, `--fish`, `--zsh`, or `--nushell` is given the path is assumed to belong to
# that shell. Otherwise the file extension will be examined to pick a shell. If the shell is
# unknown a warning will be logged and the command will return a non-zero status code after
# processing any remaining paths. Any of the shell flags will affect all subsequent paths (unless
# another shell flag is given).
#
# If the shell completion needs to be renamed before installing the optional `--name <name>` flag
# may be given. Any name provided with this flag only applies to the next path.
@@ -84,6 +136,7 @@ installManPage() {
#
# installShellCompletion --bash --name foobar.bash share/completions.bash
# installShellCompletion --fish --name foobar.fish share/completions.fish
# installShellCompletion --nushell --name foobar share/completions.nu
# installShellCompletion --zsh --name _foobar share/completions.zsh
#
# Or to use shell newline escaping to split a single invocation across multiple lines:
@@ -91,6 +144,7 @@ installManPage() {
# installShellCompletion --cmd foobar \
# --bash <($out/bin/foobar --bash-completion) \
# --fish <($out/bin/foobar --fish-completion) \
# --nushell <($out/bin/foobar --nushell-completion)
# --zsh <($out/bin/foobar --zsh-completion)
#
# If any argument is `--` the remaining arguments will be treated as paths.
@@ -100,7 +154,7 @@ installShellCompletion() {
# Parse arguments
if (( parseArgs )); then
case "$arg" in
--bash|--fish|--zsh)
--bash|--fish|--zsh|--nushell)
shell=${arg#--}
continue;;
--name)
@@ -146,7 +200,7 @@ installShellCompletion() {
elif [[ -p "$arg" ]]; then
# this is a named fd or fifo
if [[ -z "$curShell" ]]; then
nixErrorLog "${FUNCNAME[0]}: named pipe requires one of --bash, --fish, or --zsh"
nixErrorLog "${FUNCNAME[0]}: named pipe requires one of --bash, --fish, --zsh, or --nushell"
return 1
elif [[ -z "$name" && -z "$cmdname" ]]; then
nixErrorLog "${FUNCNAME[0]}: named pipe requires one of --cmd or --name"
@@ -161,6 +215,7 @@ installShellCompletion() {
case "$argbase" in
?*.bash) curShell=bash;;
?*.fish) curShell=fish;;
?*.nu) curShell=nushell;;
?*.zsh) curShell=zsh;;
*)
if [[ "$argbase" = _* && "$argbase" != *.* ]]; then
@@ -182,6 +237,7 @@ installShellCompletion() {
elif [[ -n "$cmdname" ]]; then
case "$curShell" in
bash|fish) outName=$cmdname.$curShell;;
nushell) outName=$cmdname.nu;;
zsh) outName=_$cmdname;;
*)
# Our list of shells is out of sync with the flags we accept or extensions we detect.
@@ -193,6 +249,7 @@ installShellCompletion() {
case "$curShell" in
bash) sharePath=bash-completion/completions;;
fish) sharePath=fish/vendor_completions.d;;
nushell) sharePath=nushell/vendor/autoload;;
zsh)
sharePath=zsh/site-functions
# only apply automatic renaming if we didn't have a manual rename
@@ -14,11 +14,17 @@ runCommandLocal "install-shell-files--install-completion-cmd"
echo bar > bar.zsh
echo baz > baz.fish
echo qux > qux.fish
echo buzz > buzz.nu
installShellCompletion --cmd foobar --bash foo.bash --zsh bar.zsh --fish baz.fish --name qux qux.fish
installShellCompletion \
--cmd foobar --bash foo.bash \
--zsh bar.zsh \
--fish baz.fish --name qux qux.fish \
--nushell --cmd buzzbar buzz.nu
cmp foo.bash $out/share/bash-completion/completions/foobar.bash
cmp bar.zsh $out/share/zsh/site-functions/_foobar
cmp baz.fish $out/share/fish/vendor_completions.d/foobar.fish
cmp qux.fish $out/share/fish/vendor_completions.d/qux
cmp buzz.nu $out/share/nushell/vendor/autoload/buzzbar.nu
''
@@ -13,9 +13,11 @@ runCommandLocal "install-shell-files--install-completion-fifo"
installShellCompletion \
--bash --name foo.bash <(echo foo) \
--zsh --name _foo <(echo bar) \
--fish --name foo.fish <(echo baz)
--fish --name foo.fish <(echo baz) \
--nushell --name foo.nu <(echo bucks)
[[ $(<$out/share/bash-completion/completions/foo.bash) == foo ]] || { echo "foo.bash comparison failed"; exit 1; }
[[ $(<$out/share/zsh/site-functions/_foo) == bar ]] || { echo "_foo comparison failed"; exit 1; }
[[ $(<$out/share/fish/vendor_completions.d/foo.fish) == baz ]] || { echo "foo.fish comparison failed"; exit 1; }
[[ $(<$out/share/nushell/vendor/autoload/foo.nu) == bucks ]] || { echo "foo.nu comparison failed"; exit 1; }
''
@@ -13,10 +13,12 @@ runCommandLocal "install-shell-files--install-completion-inference"
echo foo > foo.bash
echo bar > bar.zsh
echo baz > baz.fish
echo buzz > buzz.nu
installShellCompletion foo.bash bar.zsh baz.fish
installShellCompletion foo.bash bar.zsh baz.fish buzz.nu
cmp foo.bash $out/share/bash-completion/completions/foo.bash
cmp bar.zsh $out/share/zsh/site-functions/_bar
cmp baz.fish $out/share/fish/vendor_completions.d/baz.fish
cmp buzz.nu $out/share/nushell/vendor/autoload/buzz.nu
''
@@ -13,10 +13,16 @@ runCommandLocal "install-shell-files--install-completion-name"
echo foo > foo
echo bar > bar
echo baz > baz
echo bucks > bucks
installShellCompletion --bash --name foobar.bash foo --zsh --name _foobar bar --fish baz
installShellCompletion \
--bash --name foobar.bash foo \
--zsh --name _foobar bar \
--fish baz \
--nushell --name foobar.nu bucks
cmp foo $out/share/bash-completion/completions/foobar.bash
cmp bar $out/share/zsh/site-functions/_foobar
cmp baz $out/share/fish/vendor_completions.d/baz
cmp bucks $out/share/nushell/vendor/autoload/foobar.nu
''
@@ -15,12 +15,18 @@ runCommandLocal "install-shell-files--install-completion"
echo baz > baz
echo qux > qux.zsh
echo quux > quux
echo quokka > quokka
installShellCompletion --bash foo bar --zsh baz qux.zsh --fish quux
installShellCompletion \
--bash foo bar \
--zsh baz qux.zsh \
--fish quux \
--nushell quokka
cmp foo $out/share/bash-completion/completions/foo
cmp bar $out/share/bash-completion/completions/bar
cmp baz $out/share/zsh/site-functions/_baz
cmp qux.zsh $out/share/zsh/site-functions/_qux
cmp quux $out/share/fish/vendor_completions.d/quux
cmp quokka $out/share/nushell/vendor/autoload/quokka
''
@@ -0,0 +1,23 @@
{
lib,
installShellFiles,
runCommandLocal,
}:
runCommandLocal "install-shell-files--install-manpage-fifo"
{
nativeBuildInputs = [ installShellFiles ];
meta.platforms = lib.platforms.all;
}
''
installManPage doc/*
installManPage \
--name foo.1 <(echo foo) \
--name=bar.2 <(echo bar) \
--name baz.3 <(echo baz)
echo "foo" | cmp - $out/share/man/man1/foo.1
echo "bar" | cmp - $out/share/man/man2/bar.2
echo "baz" | cmp - $out/share/man/man3/baz.3
''
@@ -0,0 +1,18 @@
{
lib,
installShellFiles,
runCommandLocal,
}:
runCommandLocal "install-shell-files--install-manpage"
{
nativeBuildInputs = [ installShellFiles ];
meta.platforms = lib.platforms.all;
}
''
echo foo > foo.1
installManPage --name bar.1 foo.1
cmp foo.1 $out/share/man/man1/bar.1
''
@@ -14,10 +14,13 @@ runCommandLocal "install-shell-files--install-manpage"
echo foo > doc/foo.1
echo bar > doc/bar.2.gz
echo baz > doc/baz.3
echo buzz > --name.1
installManPage doc/*
installManPage -- --name.1
cmp doc/foo.1 $out/share/man/man1/foo.1
cmp doc/bar.2.gz $out/share/man/man2/bar.2.gz
cmp doc/baz.3 $out/share/man/man3/baz.3
cmp -- --name.1 $out/share/man/man1/--name.1
''
+2 -2
View File
@@ -19,11 +19,11 @@
stdenv.mkDerivation rec {
pname = "iproute2";
version = "6.15.0";
version = "6.16.0";
src = fetchurl {
url = "mirror://kernel/linux/utils/net/${pname}/${pname}-${version}.tar.xz";
hash = "sha256-gEGFSoglg61SY0ZnNsnIxox0saNXVKt3DSM0P5R1KPs=";
hash = "sha256-WQDMwV+aw797fq6B3rWTcSPfNemTR6fxGiKBhILwqNA=";
};
patches = [
+2 -2
View File
@@ -15,13 +15,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "jasper";
version = "4.2.5";
version = "4.2.6";
src = fetchFromGitHub {
owner = "jasper-software";
repo = "jasper";
rev = "version-${finalAttrs.version}";
hash = "sha256-PjgglP4mKW1eOJ7QgUmc4KNsp/d9ubJBWr4CLcQAyRA=";
hash = "sha256-tq27ANDDRdP224E12UeQnvE6BFZRk7KczH4Dq+yt0nY=";
};
outputs = [
+77 -55
View File
@@ -1,30 +1,38 @@
{
lib,
stdenv,
fetchurl,
fetchgit,
nixosTests,
autoreconfHook,
pkg-config,
flex,
perl,
bison,
autoPatchelfHook,
check,
pam,
bash,
bashNonInteractive,
coreutils,
gzip,
zlib,
bzip2,
xz,
zstd,
gitUpdater,
pkgsCross,
withVlock ? true,
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation {
pname = "kbd";
version = "2.8.0";
version = "2.8.0-unstable-2025-08-12";
src = fetchurl {
url = "mirror://kernel/linux/utils/kbd/${pname}-${version}.tar.xz";
hash = "sha256-AfWAbafR009ZS3sqauGrIyFTRM8QZOjtzTqQ/vl3ahE=";
__structuredAttrs = true;
src = fetchgit {
url = "https://git.kernel.org/pub/scm/linux/kernel/git/legion/kbd.git";
rev = "46295167a55643e941c8cdcfd2cb76bd138c851c";
hash = "sha256-m1aVfsEme/BnyJogOPvGcOrSJfli8B/TrGxOm4POt0w=";
};
# vlock is moved into its own output, since it depends on pam. This
@@ -39,17 +47,6 @@ stdenv.mkDerivation rec {
"vlock"
];
configureFlags = [
"--enable-optional-progs"
"--enable-libkeymap"
"--disable-nls"
(lib.enableFeature withVlock "vlock")
]
++ lib.optionals (!lib.systems.equals stdenv.buildPlatform stdenv.hostPlatform) [
"ac_cv_func_malloc_0_nonnull=yes"
"ac_cv_func_realloc_0_nonnull=yes"
];
patches = [
./search-paths.patch
];
@@ -66,62 +63,87 @@ stdenv.mkDerivation rec {
mv fgGIod/trf{,-fgGIod}.map
mv colemak/{en-latin9,colemak}.map
popd
# Fix paths to decompressors. Trailing space to avoid replacing `xz` in `".xz"`.
substituteInPlace src/libkbdfile/kbdfile.c \
--replace-fail 'gzip ' '${gzip}/bin/gzip ' \
--replace-fail 'bzip2 ' '${bzip2.bin}/bin/bzip2 ' \
--replace-fail 'xz ' '${xz.bin}/bin/xz ' \
--replace-fail 'zstd ' '${zstd.bin}/bin/zstd '
sed -i '
1i prefix:=$(vlock)
1i bindir := $(vlock)/bin' \
src/vlock/Makefile.in \
src/vlock/Makefile.am
'';
preConfigure = ''
# Perl and Bash only used during build time
patchShebangs --build contrib/
'';
configureFlags = [
"--enable-optional-progs"
"--enable-libkeymap"
"--disable-nls"
(lib.enableFeature withVlock "vlock")
]
++ lib.optionals (!lib.systems.equals stdenv.buildPlatform stdenv.hostPlatform) [
"ac_cv_func_malloc_0_nonnull=yes"
"ac_cv_func_realloc_0_nonnull=yes"
];
strictDeps = true;
enableParallelBuilding = true;
postInstall = ''
for s in unicode_{start,stop}; do
substituteInPlace ''${!outputBin}/bin/$s \
--replace-fail /usr/bin/tty ${coreutils}/bin/tty
moveToOutput "bin/$s" "$scripts"
done
'';
buildInputs = [
check
bash
]
++ lib.optionals withVlock [ pam ];
NIX_LDFLAGS = lib.optional stdenv.hostPlatform.isStatic "-laudit";
nativeBuildInputs = [
autoreconfHook
pkg-config
flex
perl
bison
autoPatchelfHook # for patching dlopen()
];
nativeCheckInputs = [
check
];
buildInputs = [
zlib
bzip2
xz
zstd
bash
]
++ lib.optionals withVlock [ pam ];
postInstall = ''
substituteInPlace $out/bin/unicode_{start,stop} \
--replace-fail /usr/bin/tty ${coreutils}/bin/tty
moveToOutput bin/unicode_start $scripts
moveToOutput bin/unicode_stop $scripts
''
+ lib.optionalString withVlock ''
moveToOutput bin/vlock $vlock
moveToOutput etc/pam.d/vlock $vlock
'';
outputChecks.out.disallowedRequisites = [
bash
bashNonInteractive
];
strictDeps = true;
passthru.tests = {
inherit (nixosTests) keymap kbd-setfont-decompress kbd-update-search-paths-patch;
};
passthru = {
gzip = gzip;
updateScript = gitUpdater {
# No nicer place to find latest release.
url = "https://github.com/legionus/kbd.git";
rev-prefix = "v";
};
tests = {
cross =
let
systemString = if stdenv.buildPlatform.isAarch64 then "gnu64" else "aarch64-multiplatform";
in
pkgsCross.${systemString}.kbd;
inherit (nixosTests) keymap kbd-setfont-decompress kbd-update-search-paths-patch;
};
};
meta = with lib; {
meta = {
homepage = "https://kbd-project.org/";
description = "Linux keyboard tools and keyboard maps";
platforms = platforms.linux;
license = licenses.gpl2Plus;
maintainers = with maintainers; [ davidak ];
platforms = lib.platforms.linux;
license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [ davidak ];
};
}
+2 -2
View File
@@ -23,7 +23,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "libadwaita";
version = "1.7.5";
version = "1.7.6";
outputs = [
"out"
@@ -37,7 +37,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "GNOME";
repo = "libadwaita";
tag = finalAttrs.version;
hash = "sha256-KlaRwOWHvzm+VwMygiEh8wqJfEwwA+x7o9T72Qpqnmo=";
hash = "sha256-HpjP6VSkEAFeXIFXLbndQzEWJwVvHe6B3aSwCz6KiIM=";
};
depsBuildBuild = [
+57
View File
@@ -0,0 +1,57 @@
{
lib,
stdenv,
fetchFromGitLab,
pkg-config,
autoreconfHook,
util-macros,
xorgproto,
libX11,
libXext,
testers,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "libapplewm";
version = "1.4.1-unstable-2021-01-04";
src = fetchFromGitLab {
domain = "gitlab.freedesktop.org";
owner = "xorg/lib";
repo = "libapplewm";
rev = "be972ebc3a97292e7d2b2350eff55ae12df99a42";
hash = "sha256-NH9YeOEtnEupqpnsMLC21I+LmCOzT7KnfdzNNWqba/Y=";
};
strictDeps = true;
nativeBuildInputs = [
pkg-config
autoreconfHook
util-macros
];
buildInputs = [
xorgproto
libX11
libXext
];
passthru = {
# updateScript = # no updatescript since we don't use a tagged release (last one was 14 years ago)
tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
};
meta = {
description = "Xlib-based library for the Apple-WM extension";
longDescription = ''
AppleWM is a simple library designed to interface with the Apple-WM extension.
This extension allows X window managers to better interact with the Mac OS X Aqua user
interface when running X11 in a rootless mode.
'';
homepage = "https://gitlab.freedesktop.org/xorg/lib/libapplewm";
license = lib.licenses.mit;
maintainers = [ ];
pkgConfigModules = [ "applewm" ];
platforms = lib.platforms.darwin;
};
})
+3 -3
View File
@@ -74,9 +74,9 @@ stdenv.mkDerivation (finalAttrs: {
"libarchive/test/test_read_disk_directory_traversals.c"
"cpio/test/test_option_a.c"
"cpio/test/test_option_t.c"
]
++ lib.optionals (stdenv.hostPlatform.isAarch64 && stdenv.hostPlatform.isLinux) [
# only on some aarch64-linux systems?
# fails tests on filesystems with 64-bit inode values:
# FAIL: bsdcpio_test
# bsdcpio: linkfile: large inode number truncated: Numerical result out of range
"cpio/test/test_basic.c"
"cpio/test/test_format_newc.c"
];
+54
View File
@@ -0,0 +1,54 @@
{
lib,
stdenv,
fetchurl,
pkg-config,
xorgproto,
libx11,
libxext,
testers,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "libdmx";
version = "1.1.5";
src = fetchurl {
url = "mirror://xorg/individual/lib/libdmx-${finalAttrs.version}.tar.xz";
hash = "sha256-NaTiaosLK0/jZEHcpGNkXD+lLSgqw1IFAaOOqULL908=";
};
strictDeps = true;
nativeBuildInputs = [ pkg-config ];
buildInputs = [
xorgproto
libx11
libxext
];
configureFlags = lib.optional (
stdenv.hostPlatform != stdenv.buildPlatform
) "--enable-malloc0returnsnull";
passthru = {
# updateScript = # libdmx it deprecated and thus needs no updatescript
tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
};
meta = {
description = "Xlib-based library for the DMX (Distributed Multihead X) extension";
longDescription = ''
This library allows X11 clients to use the Distributed Multihead X (DMX) Extension,
as previously implemented in the Xdmx server.
X.Org removed support for the Xdmx server from the xorg-server releases in the version 21
release in 2021. This library is thus now considered deprecated and the version 1.1.5 release
is the last release X.Org plans to make of libdmx.
'';
homepage = "https://gitlab.freedesktop.org/xorg/lib/libdmx";
license = lib.licenses.mit;
maintainers = [ ];
pkgConfigModules = [ "dmx" ];
platforms = lib.platforms.unix;
};
})
+49
View File
@@ -0,0 +1,49 @@
{
lib,
stdenv,
fetchurl,
pkg-config,
xorgproto,
zlib,
writeScript,
testers,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "libfontenc";
version = "1.1.8";
src = fetchurl {
url = "mirror://xorg/individual/lib/libfontenc-${finalAttrs.version}.tar.xz";
hash = "sha256-ewLD1AUjbg2GgGsd6daGj+YMMTYos4NQsDKRSqT9FMY=";
};
strictDeps = true;
nativeBuildInputs = [ pkg-config ];
buildInputs = [
xorgproto
zlib
];
passthru = {
updateScript = writeScript "update-${finalAttrs.pname}" ''
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p common-updater-scripts
version="$(list-directory-versions --pname ${finalAttrs.pname} \
--url https://xorg.freedesktop.org/releases/individual/lib/ \
| sort -V | tail -n1)"
update-source-version ${finalAttrs.pname} "$version"
'';
tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
};
meta = {
description = "X font encoding library";
homepage = "https://gitlab.freedesktop.org/xorg/lib/libfontenc";
license = lib.licenses.mit;
maintainers = [ ];
pkgConfigModules = [ "fontenc" ];
platforms = lib.platforms.unix;
};
})
+56
View File
@@ -0,0 +1,56 @@
{
lib,
stdenv,
fetchurl,
pkg-config,
xorgproto,
xtrans,
writeScript,
testers,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "libfs";
version = "1.0.10";
src = fetchurl {
url = "mirror://xorg/individual/lib/libFS-${finalAttrs.version}.tar.xz";
hash = "sha256-m6u9PIYGnJhWPaBEBF/cDs5OwMk9zdLGiqdOs0tPO3c=";
};
strictDeps = true;
nativeBuildInputs = [ pkg-config ];
buildInputs = [
xorgproto
xtrans
];
configureFlags = lib.optional (
stdenv.hostPlatform != stdenv.buildPlatform
) "--enable-malloc0returnsnull";
passthru = {
updateScript = writeScript "update-${finalAttrs.pname}" ''
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p common-updater-scripts
version="$(list-directory-versions --pname libFS \
--url https://xorg.freedesktop.org/releases/individual/lib/ \
| sort -V | tail -n1)"
update-source-version ${finalAttrs.pname} "$version"
'';
tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
};
meta = {
description = "X Font Service client library";
homepage = "https://gitlab.freedesktop.org/xorg/lib/libfs";
license = with lib.licenses; [
mitOpenGroup
hpndSellVariant
];
maintainers = [ ];
pkgConfigModules = [ "libfs" ];
platforms = lib.platforms.unix;
};
})
+55
View File
@@ -0,0 +1,55 @@
{
lib,
stdenv,
fetchurl,
pkg-config,
xorgproto,
xtrans,
writeScript,
testers,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "libice";
version = "1.1.2";
outputs = [
"out"
"dev"
"doc"
];
src = fetchurl {
url = "mirror://xorg/individual/lib/libICE-${finalAttrs.version}.tar.xz";
hash = "sha256-l05O1BQiXrPHFphd+XCfTajSKmeiiQBmvG38ia0phiU=";
};
strictDeps = true;
nativeBuildInputs = [ pkg-config ];
buildInputs = [
xorgproto
xtrans
];
passthru = {
updateScript = writeScript "update-${finalAttrs.pname}" ''
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p common-updater-scripts
version="$(list-directory-versions --pname libICE \
--url https://xorg.freedesktop.org/releases/individual/lib/ \
| sort -V | tail -n1)"
update-source-version ${finalAttrs.pname} "$version"
'';
tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
};
meta = {
description = "Inter-Client Exchange Library";
homepage = "https://gitlab.freedesktop.org/xorg/lib/libice";
license = lib.licenses.mitOpenGroup;
maintainers = [ ];
pkgConfigModules = [ "ice" ];
platforms = lib.platforms.unix;
};
})
+2 -2
View File
@@ -20,7 +20,7 @@
stdenv.mkDerivation rec {
pname = "libmbim";
version = "1.30.0";
version = "1.32.0";
outputs = [
"out"
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
owner = "mobile-broadband";
repo = "libmbim";
rev = version;
hash = "sha256-sHTpu9WeMZroT+1I18ObEHWSzcyj/Relyz8UNe+WawI=";
hash = "sha256-+4INXuH2kbKs9C6t4bOJye7yyfYH/BLukmgDVvXo+u0=";
};
mesonFlags = [
+21 -2
View File
@@ -4,6 +4,8 @@
fetchurl,
flex,
bison,
bash,
bashNonInteractive,
bluez,
libnl,
libxcrypt,
@@ -26,13 +28,25 @@ stdenv.mkDerivation rec {
pname = "libpcap";
version = "1.10.5";
__structuredAttrs = true;
src = fetchurl {
url = "https://www.tcpdump.org/release/${pname}-${version}.tar.gz";
hash = "sha256-N87ZChmjAqfzLkWCJKAMNlwReQXCzTWsVEtogKgUiPA=";
};
buildInputs =
lib.optionals stdenv.hostPlatform.isLinux [ libnl ] ++ lib.optionals withRemote [ libxcrypt ];
outputs = [
"out"
"lib"
];
strictDeps = true;
buildInputs = [
bash
]
++ lib.optionals stdenv.hostPlatform.isLinux [ libnl ]
++ lib.optionals withRemote [ libxcrypt ];
nativeBuildInputs = [
flex
@@ -62,6 +76,11 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
outputChecks.lib.disallowedRequisites = [
bash
bashNonInteractive
];
passthru.tests = {
inherit
ettercap
-37
View File
@@ -1,37 +0,0 @@
From 904e9dee373eca499e976dce131f0baee06db2d6 Mon Sep 17 00:00:00 2001
From: Alyssa Ross <hi@alyssa.is>
Date: Thu, 13 Feb 2025 12:05:17 +0100
Subject: [PATCH] api: fix seccomp_export_bpf_mem out-of-bounds read
*len is the length of the destination buffer, but program->blks is
probably not anywhere near that long. It's already been checked above
that BPF_PGM_SIZE(program) is less than or equal to *len, so that's
the correct value to use here to avoid either reading or writing too
much.
I noticed this because tests/11-basic-basic_errors started failing on
musl after e797591 ("all: add seccomp_precompute() functionality").
Signed-off-by: Alyssa Ross <hi@alyssa.is>
---
Link: https://github.com/seccomp/libseccomp/pull/458
src/api.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/api.c b/src/api.c
index adccef3..65a277a 100644
--- a/src/api.c
+++ b/src/api.c
@@ -786,7 +786,7 @@ API int seccomp_export_bpf_mem(const scmp_filter_ctx ctx, void *buf,
if (BPF_PGM_SIZE(program) > *len)
rc = _rc_filter(-ERANGE);
else
- memcpy(buf, program->blks, *len);
+ memcpy(buf, program->blks, BPF_PGM_SIZE(program));
}
*len = BPF_PGM_SIZE(program);
--
2.47.0
+16 -1
View File
@@ -2,6 +2,7 @@
lib,
stdenv,
fetchurl,
fetchpatch,
getopt,
util-linuxMinimal,
which,
@@ -20,7 +21,21 @@ stdenv.mkDerivation rec {
};
patches = [
./oob-read.patch
# Remove when version > 2.6.0
# Fixes test failures on big-endian archs
(fetchpatch {
name = "0001-libseccomp-remove-fuzzer-from-test-62-sim-arch_transactions.patch";
url = "https://github.com/seccomp/libseccomp/commit/2f0f3b0e9121720108431c5d054164016f476230.patch";
hash = "sha256-AKAQyALJlLgxnS23OEoqfyDswp0kU2vmja5ohgvFojw=";
})
# Remove when version > 2.6.0
# Fixes OOB reads & tests on musl
(fetchpatch {
name = "0002-libseccomp-fix-seccomp_export_bpf_mem-out-of-bounds-read.patch";
url = "https://github.com/seccomp/libseccomp/commit/dd759e8c4f5685b526638fba9ec4fc24c37c9aec.patch";
hash = "sha256-TdfQ5T8FrGE6+P24MIi9rKSC3fQu/Jlr4bsFiJd4yVY=";
})
];
outputs = [
+67
View File
@@ -0,0 +1,67 @@
{
lib,
stdenv,
fetchurl,
pkg-config,
libice,
libuuid,
xorgproto,
xtrans,
writeScript,
testers,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "libsm";
version = "1.2.6";
outputs = [
"out"
"dev"
"doc"
];
src = fetchurl {
url = "mirror://xorg/individual/lib/libSM-${finalAttrs.version}.tar.xz";
hash = "sha256-vnwKvbFcv9KaxiVzwcguh3+dQEetFTIefql9HkPYNb4=";
};
strictDeps = true;
nativeBuildInputs = [ pkg-config ];
buildInputs = [
libice
libuuid
xorgproto
xtrans
];
propagatedBuildInputs = [
# needs to be propagated because of header file dependencies
libice
];
passthru = {
updateScript = writeScript "update-${finalAttrs.pname}" ''
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p common-updater-scripts
version="$(list-directory-versions --pname libSM \
--url https://xorg.freedesktop.org/releases/individual/lib/ \
| sort -V | tail -n1)"
update-source-version ${finalAttrs.pname} "$version"
'';
tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
};
meta = {
description = "X Session Management Library";
homepage = "https://gitlab.freedesktop.org/xorg/lib/libsm";
license = with lib.licenses; [
mit
mitOpenGroup
];
maintainers = [ ];
pkgConfigModules = [ "sm" ];
platforms = lib.platforms.unix;
};
})
+24
View File
@@ -2,6 +2,7 @@
lib,
stdenv,
fetchFromGitLab,
fetchpatch,
nix-update-script,
cmake,
@@ -48,9 +49,32 @@ stdenv.mkDerivation (finalAttrs: {
};
patches = [
# Fix test_directory test on big-endian
# https://gitlab.com/libtiff/libtiff/-/issues/652
(fetchpatch {
name = "0001-Update-test_directory-not-to-fail-on-big-endian-machines";
url = "https://gitlab.com/libtiff/libtiff/-/commit/e8233c42f2e0a0ea7260c3cc7ebbaec8e5cb5e07.patch";
hash = "sha256-z5odG66j4U+WoUjTUuBIhcVUCGK1GYdvW/cVucawNZI=";
})
# libc++abi 11 has an `#include <version>`, this picks up files name
# `version` in the project's include paths
./rename-version.patch
(fetchpatch {
name = "CVE-2024-13978_1.patch";
url = "https://gitlab.com/libtiff/libtiff/-/commit/7be20ccaab97455f192de0ac561ceda7cd9e12d1.patch";
hash = "sha256-cpsQyIvyP6LkGeQTlLX73iNd1AcPkvZ6Xqfns7G3JBc=";
})
(fetchpatch {
name = "CVE-2024-13978_2.patch";
url = "https://gitlab.com/libtiff/libtiff/-/commit/2ebfffb0e8836bfb1cd7d85c059cd285c59761a4.patch";
hash = "sha256-cZlLTeB7/nvylf5SLzKF7g91aBERhZxpV5fmWEJVrX4=";
})
(fetchpatch {
name = "CVE-2025-9165.patch";
url = "https://gitlab.com/libtiff/libtiff/-/commit/ed141286a37f6e5ddafb5069347ff5d587e7a4e0.patch";
hash = "sha256-DIsk8trbHMMTrj6jP5Ae8ciRjHV4CPHdWCN+VbeFnFo=";
})
];
postPatch = ''
+2
View File
@@ -6,6 +6,7 @@
cmake,
pkg-config,
libX11,
libxcb,
libxkbcommon,
xinput,
xorg,
@@ -30,6 +31,7 @@ stdenv.mkDerivation rec {
buildInputs = lib.optionals (!stdenv.hostPlatform.isDarwin) (
[
libX11
libxcb
libxkbcommon
xinput
]
+2 -2
View File
@@ -6,13 +6,13 @@
stdenv.mkDerivation rec {
pname = "liburing";
version = "2.11";
version = "2.12";
src = fetchFromGitHub {
owner = "axboe";
repo = "liburing";
tag = "liburing-${version}";
hash = "sha256-V73QP89WMrL2fkPRbo/TSkfO7GeDsCudlw2Ut5baDzA=";
hash = "sha256-sEMzkyjrCc49ogfUnzdgNtEXmW0Tz/PUKo99C965428=";
};
separateDebugInfo = true;
-1
View File
@@ -41,7 +41,6 @@ stdenv.mkDerivation (finalAttrs: {
propagatedBuildInputs = [
xorgproto
libxcb
];
configureFlags =
+82
View File
@@ -0,0 +1,82 @@
{
lib,
stdenv,
fetchurl,
pkg-config,
xorgproto,
libx11,
libxext,
libxmu,
libxpm,
libxt,
writeScript,
testers,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "libxaw";
version = "1.0.16";
outputs = [
"out"
"dev"
"devdoc"
];
src = fetchurl {
url = "mirror://xorg/individual/lib/libXaw-${finalAttrs.version}.tar.xz";
hash = "sha256-cx1XK1THCPgeGXpq+oAWkY4uBt/TAl4GbKZCpbjDnI8=";
};
strictDeps = true;
nativeBuildInputs = [ pkg-config ];
buildInputs = [
xorgproto
libx11
libxext
libxmu
libxpm
libxt
];
propagatedBuildInputs = [
xorgproto
libxt
# needs to be propagated because of header file dependencies
libxmu
];
postInstall =
# remove dangling symlinks to .so files on static
lib.optionalString stdenv.hostPlatform.isStatic "rm $out/lib/*.so*";
passthru = {
updateScript = writeScript "update-${finalAttrs.pname}" ''
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p common-updater-scripts
version="$(list-directory-versions --pname libXaw \
--url https://xorg.freedesktop.org/releases/individual/lib/ \
| sort -V | tail -n1)"
update-source-version ${finalAttrs.pname} "$version"
'';
tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
};
meta = {
description = "X Athena Widget Set, based on the X Toolkit Intrinsics (Xt) Library";
homepage = "https://gitlab.freedesktop.org/xorg/lib/libxaw";
license = with lib.licenses; [
mitOpenGroup
x11
hpndSellVariant
hpnd
];
maintainers = [ ];
pkgConfigModules = [
"xaw6"
"xaw7"
];
platforms = lib.platforms.unix;
};
})
+62
View File
@@ -0,0 +1,62 @@
{
lib,
stdenv,
fetchurl,
pkg-config,
m4,
python3,
xcbproto,
libxcb,
writeScript,
testers,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "libxcb-errors";
version = "1.0.1";
outputs = [
"out"
"dev"
];
src = fetchurl {
url = "mirror://xorg/individual/xcb/xcb-util-errors-${finalAttrs.version}.tar.xz";
hash = "sha256-VijIe5hCWa2Se6zYpClYMZw2vfSwZYh4A8nYIPuA81c=";
};
strictDeps = true;
nativeBuildInputs = [
pkg-config
m4
python3
];
buildInputs = [
xcbproto
libxcb
];
propagatedBuildInputs = [ libxcb ];
passthru = {
updateScript = writeScript "update-${finalAttrs.pname}" ''
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p common-updater-scripts
version="$(list-directory-versions --pname xcb-util-errors \
--url https://xorg.freedesktop.org/releases/individual/lib/ \
| sort -V | tail -n1)"
update-source-version ${finalAttrs.pname} "$version"
'';
tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
};
meta = {
description = "XCB utility library that gives human readable names to error, event & request codes";
homepage = "https://gitlab.freedesktop.org/xorg/lib/libxcb-errors";
license = lib.licenses.x11;
maintainers = [ ];
pkgConfigModules = [ "xcb-errors" ];
platforms = lib.platforms.unix;
};
})

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