staging-next 2024-08-23 (#336718)

This commit is contained in:
Vladimír Čunát 2024-08-31 11:49:12 +02:00
commit 36a13f9f21
No known key found for this signature in database
GPG Key ID: E747DF1F9575A3AA
266 changed files with 7441 additions and 7128 deletions

View File

@ -62,6 +62,65 @@ The following is an example expression using `buildGoModule`:
}
```
### Obtaining and overriding `vendorHash` for `buildGoModule` {#buildGoModule-vendorHash}
We can use `nix-prefetch` to obtain the actual hash. The following command gets the value of `vendorHash` for package `pet`:
```sh
cd path/to/nixpkgs
nix-prefetch -E "{ sha256 }: ((import ./. { }).my-package.overrideAttrs { vendorHash = sha256; }).goModules"
```
To obtain the hash without external tools, set `vendorHash = lib.fakeHash;` and run the build. ([more details here](#sec-source-hashes)).
`vendorHash` can be overridden with `overrideAttrs`. Override the above example like this:
```nix
{
pet_0_4_0 = pet.overrideAttrs (
finalAttrs: previousAttrs: {
version = "0.4.0";
src = fetchFromGitHub {
inherit (previousAttrs.src) owner repo;
rev = "v${finalAttrs.version}";
hash = "sha256-gVTpzmXekQxGMucDKskGi+e+34nJwwsXwvQTjRO6Gdg=";
};
vendorHash = "sha256-dUvp7FEW09V0xMuhewPGw3TuAic/sD7xyXEYviZ2Ivs=";
}
);
}
```
### Overriding `goModules` {#buildGoModule-goModules-override}
Overriding `<pkg>.goModules` by calling `goModules.overrideAttrs` is unsupported. Still, it is possible to override the `vendorHash` (`goModules`'s `outputHash`) and the `pre`/`post` hooks for both the build and patch phases of the primary and `goModules` derivation. Alternatively, the primary derivation provides an overridable `passthru.overrideModAttrs` function to store the attribute overlay implicitly taken by `goModules.overrideAttrs`. Here's an example usage of `overrideModAttrs`:
```nix
{
pet-overridden = pet.overrideAttrs (
finalAttrs: previousAttrs: {
passthru = previousAttrs.passthru // {
# If the original package has an `overrideModAttrs` attribute set, you'd
# want to extend it, and not replace it. Hence we use
# `lib.composeExtensions`. If you are sure the `overrideModAttrs` of the
# original package trivially does nothing, you can safely replace it
# with your own by not using `lib.composeExtensions`.
overrideModAttrs = lib.composeExtensions previousAttrs.passthru.overrideModAttrs (
finalModAttrs: previousModAttrs: {
# goModules-specific overriding goes here
postBuild = ''
# Here you have access to the `vendor` directory.
substituteInPlace vendor/github.com/example/repo/file.go \
--replace-fail "panic(err)" ""
'';
}
);
};
}
);
}
```
## `buildGoPackage` (legacy) {#ssec-go-legacy}
The function `buildGoPackage` builds legacy Go programs, not supporting Go modules.

View File

@ -2,7 +2,7 @@
## Using Ruby {#using-ruby}
Several versions of Ruby interpreters are available on Nix, as well as over 250 gems and many applications written in Ruby. The attribute `ruby` refers to the default Ruby interpreter, which is currently MRI 3.1. It's also possible to refer to specific versions, e.g. `ruby_3_y`, `jruby`, or `mruby`.
Several versions of Ruby interpreters are available on Nix, as well as over 250 gems and many applications written in Ruby. The attribute `ruby` refers to the default Ruby interpreter, which is currently MRI 3.3. It's also possible to refer to specific versions, e.g. `ruby_3_y`, `jruby`, or `mruby`.
In the Nixpkgs tree, Ruby packages can be found throughout, depending on what they do, and are called from the main package set. Ruby gems, however are separate sets, and there's one default set for each interpreter (currently MRI only).

View File

@ -1026,7 +1026,8 @@ rec {
replaceStrings (builtins.attrNames toEscape) (lib.mapAttrsToList (_: c: "%${fixedWidthString 2 "0" (lib.toHexString c)}") toEscape);
/**
Quote `string` to be used safely within the Bourne shell.
Quote `string` to be used safely within the Bourne shell if it has any
special characters.
# Inputs
@ -1051,10 +1052,17 @@ rec {
:::
*/
escapeShellArg = arg: "'${replaceStrings ["'"] ["'\\''"] (toString arg)}'";
escapeShellArg = arg:
let
string = toString arg;
in
if match "[[:alnum:],._+:@%/-]+" string == null
then "'${replaceStrings ["'"] ["'\\''"] string}'"
else string;
/**
Quote all arguments to be safely passed to the Bourne shell.
Quote all arguments that have special characters to be safely passed to the
Bourne shell.
# Inputs
@ -1073,7 +1081,7 @@ rec {
```nix
escapeShellArgs ["one" "two three" "four'five"]
=> "'one' 'two three' 'four'\\''five'"
=> "one 'two three' 'four'\\''five'"
```
:::

View File

@ -470,6 +470,26 @@ runTests {
expected = [ "A" "B" ];
};
testEscapeShellArg = {
expr = strings.escapeShellArg "esc'ape\nme";
expected = "'esc'\\''ape\nme'";
};
testEscapeShellArgEmpty = {
expr = strings.escapeShellArg "";
expected = "''";
};
testEscapeShellArgs = {
expr = strings.escapeShellArgs ["one" "two three" "four'five"];
expected = "one 'two three' 'four'\\''five'";
};
testEscapeShellArgsUnicode = {
expr = strings.escapeShellArg "á";
expected = "'á'";
};
testSplitStringsDerivation = {
expr = take 3 (strings.splitString "/" (derivation {
name = "name";
@ -569,12 +589,12 @@ runTests {
'';
expected = ''
STRing01='just a '\'''string'\''''
declare -a _array_=('with' 'more strings')
declare -a _array_=(with 'more strings')
declare -A assoc=(['with some']='strings
possibly newlines
')
drv='/drv'
path='/path'
drv=/drv
path=/path
stringable='hello toString'
'';
};
@ -1754,7 +1774,7 @@ runTests {
verbose = true;
};
expected = "'-X' 'PUT' '--data' '{\"id\":0}' '--retry' '3' '--url' 'https://example.com/foo' '--url' 'https://example.com/bar' '--verbose'";
expected = "-X PUT --data '{\"id\":0}' --retry 3 --url https://example.com/foo --url https://example.com/bar --verbose";
};
testSanitizeDerivationNameLeadingDots = testSanitizeDerivationName {

View File

@ -383,6 +383,10 @@
[buildRustPackage: Compiling Rust applications with Cargo](https://nixos.org/manual/nixpkgs/unstable/#compiling-rust-applications-with-cargo)
for more information.
- The `vendorHash` of Go packages built with `buildGoModule` can now be overridden with `overrideAttrs`.
`goModules`, `modRoot`, `vendorHash`, `deleteVendor`, and `proxyVendor` are now passed as derivation attributes.
`goModules` and `vendorHash` are no longer placed under `passthru`.
- `hareHook` has been added as the language framework for Hare. From now on, it,
not the `hare` package, should be added to `nativeBuildInputs` when building
Hare programs.

View File

@ -180,8 +180,14 @@ let
mkdir -p $dst
# fonts.conf
ln -s ${pkg.out}/etc/fonts/fonts.conf \
cp ${pkg.out}/etc/fonts/fonts.conf \
$dst/../fonts.conf
# horrible sed hack to add the line that was accidentally removed
# from the default config in #324516
# FIXME: fix that, revert this
sed "5i <include ignore_missing="yes">/etc/fonts/conf.d</include>" -i $dst/../fonts.conf
# TODO: remove this legacy symlink once people stop using packages built before #95358 was merged
mkdir -p $out/etc/fonts/2.11
ln -s /etc/fonts/fonts.conf \

View File

@ -10,6 +10,7 @@
, gtk3
, wayland
, wayland-protocols
, wayland-scanner
, libbsd
, libxml2
, libxkbcommon
@ -44,7 +45,7 @@ stdenv.mkDerivation rec {
ninja
pkg-config
glib
wayland
wayland-scanner
wrapGAppsHook3
rustPlatform.cargoSetupHook
cargo

View File

@ -3,26 +3,29 @@
{ lib, stdenv, emacs, texinfo, writeText }:
let
handledArgs = [ "meta" ];
genericBuild = import ./generic.nix { inherit lib stdenv emacs texinfo writeText; };
libBuildHelper = import ./lib-build-helper.nix;
in
libBuildHelper.extendMkDerivation' genericBuild (finalAttrs:
{ pname
, version
, src
, dontUnpack ? true
, meta ? {}
, ...
}@args:
genericBuild ({
{
dontUnpack = true;
elpa2nix = args.elpa2nix or ./elpa2nix.el;
installPhase = ''
inherit dontUnpack;
installPhase = args.installPhase or ''
runHook preInstall
emacs --batch -Q -l ${./elpa2nix.el} \
emacs --batch -Q -l "$elpa2nix" \
-f elpa2nix-install-package \
"$src" "$out/share/emacs/site-lisp/elpa"
@ -34,4 +37,4 @@ genericBuild ({
} // meta;
}
// removeAttrs args handledArgs)
)

View File

@ -4,8 +4,6 @@
let
inherit (lib) optionalAttrs;
handledArgs = [ "buildInputs" "nativeBuildInputs" "packageRequires" "propagatedUserEnvPkgs" "meta" ]
++ lib.optionals (emacs.withNativeCompilation or false) [ "postInstall" ];
setupHook = writeText "setup-hook.sh" ''
source ${./emacs-funcs.sh}
@ -21,13 +19,16 @@ let
fi
'';
libBuildHelper = import ./lib-build-helper.nix;
in
{ pname
, version
, buildInputs ? []
libBuildHelper.extendMkDerivation' stdenv.mkDerivation (finalAttrs:
{ buildInputs ? []
, nativeBuildInputs ? []
, packageRequires ? []
, propagatedBuildInputs ? []
, propagatedUserEnvPkgs ? []
, postInstall ? ""
, meta ? {}
@ -36,10 +37,10 @@ in
, ...
}@args:
stdenv.mkDerivation (finalAttrs: ({
name = "emacs-${pname}-${finalAttrs.version}";
{
name = args.name or "emacs-${finalAttrs.pname}-${finalAttrs.version}";
unpackCmd = ''
unpackCmd = args.unpackCmd or ''
case "$curSrc" in
*.el)
# keep original source filename without the hash
@ -55,14 +56,13 @@ stdenv.mkDerivation (finalAttrs: ({
esac
'';
buildInputs = packageRequires ++ buildInputs;
inherit packageRequires;
buildInputs = finalAttrs.packageRequires ++ buildInputs;
nativeBuildInputs = [ emacs texinfo ] ++ nativeBuildInputs;
propagatedBuildInputs = packageRequires;
propagatedUserEnvPkgs = packageRequires ++ propagatedUserEnvPkgs;
propagatedBuildInputs = finalAttrs.packageRequires ++ propagatedBuildInputs;
propagatedUserEnvPkgs = finalAttrs.packageRequires ++ propagatedUserEnvPkgs;
inherit setupHook;
doCheck = false;
setupHook = args.setupHook or setupHook;
meta = {
broken = false;
@ -74,7 +74,7 @@ stdenv.mkDerivation (finalAttrs: ({
// optionalAttrs (emacs.withNativeCompilation or false) {
addEmacsNativeLoadPath = true;
addEmacsNativeLoadPath = args.addEmacsNativeLoadPath or true;
inherit turnCompilationWarningToError ignoreCompilationError;
@ -97,4 +97,4 @@ stdenv.mkDerivation (finalAttrs: ({
'' + postInstall;
}
// removeAttrs args handledArgs))
)

View File

@ -0,0 +1,5 @@
{
extendMkDerivation' =
mkDerivationBase: attrsOverlay: fpargs:
(mkDerivationBase fpargs).overrideAttrs attrsOverlay;
}

View File

@ -4,8 +4,8 @@
{ lib, stdenv, fetchFromGitHub, emacs, texinfo, writeText }:
let
handledArgs = [ "meta" "preUnpack" "postUnpack" ];
genericBuild = import ./generic.nix { inherit lib stdenv emacs texinfo writeText; };
libBuildHelper = import ./lib-build-helper.nix;
packageBuild = stdenv.mkDerivation {
name = "package-build";
@ -29,6 +29,8 @@ let
in
libBuildHelper.extendMkDerivation' genericBuild (finalAttrs:
{ /*
pname: Nix package name without special symbols and without version or
"emacs-" prefix.
@ -51,7 +53,7 @@ in
This will be written into the generated package but it is not needed during
the build process.
*/
, commit ? (args.src.rev or "unknown")
, commit ? (finalAttrs.src.rev or "unknown")
/*
files: Optional recipe property specifying the files used to build the package.
If null, do not set it in recipe, keeping the default upstream behaviour.
@ -62,9 +64,9 @@ in
recipe: Optional MELPA recipe.
Default: a minimally functional recipe
*/
, recipe ? (writeText "${pname}-recipe" ''
(${ename} :fetcher git :url ""
${lib.optionalString (files != null) ":files ${files}"})
, recipe ? (writeText "${finalAttrs.pname}-recipe" ''
(${finalAttrs.ename} :fetcher git :url ""
${lib.optionalString (finalAttrs.files != null) ":files ${finalAttrs.files}"})
'')
, preUnpack ? ""
, postUnpack ? ""
@ -72,14 +74,16 @@ in
, ...
}@args:
genericBuild ({
{
elpa2nix = ./elpa2nix.el;
melpa2nix = ./melpa2nix.el;
elpa2nix = args.elpa2nix or ./elpa2nix.el;
melpa2nix = args.melpa2nix or ./melpa2nix.el;
inherit packageBuild commit ename recipe;
inherit commit ename files recipe;
melpaVersion =
packageBuild = args.packageBuild or packageBuild;
melpaVersion = args.melpaVersion or (
let
parsed = lib.flip builtins.match version
# match <version>-unstable-YYYY-MM-DD format
@ -90,7 +94,7 @@ genericBuild ({
in
if unstableVersionInNixFormat
then date + "." + time
else version;
else finalAttrs.version);
preUnpack = ''
mkdir -p "$NIX_BUILD_TOP/recipes"
@ -108,10 +112,10 @@ genericBuild ({
ln -s "$NIX_BUILD_TOP/$sourceRoot" "$NIX_BUILD_TOP/working/$ename"
'' + postUnpack;
buildPhase = ''
buildPhase = args.buildPhase or ''
runHook preBuild
cd "$NIX_BUILD_TOP"
pushd "$NIX_BUILD_TOP"
emacs --batch -Q \
-L "$NIX_BUILD_TOP/package-build" \
@ -119,10 +123,12 @@ genericBuild ({
-f melpa2nix-build-package \
$ename $melpaVersion $commit
popd
runHook postBuild
'';
installPhase = ''
installPhase = args.installPhase or ''
runHook preInstall
archive="$NIX_BUILD_TOP/packages/$ename-$melpaVersion.el"
@ -143,4 +149,4 @@ genericBuild ({
} // meta;
}
// removeAttrs args handledArgs)
)

View File

@ -2,10 +2,16 @@
{ callPackage, lib, ... }@envargs:
let
libBuildHelper = import ./lib-build-helper.nix;
in
libBuildHelper.extendMkDerivation' (callPackage ./generic.nix envargs) (finalAttrs:
args:
callPackage ./generic.nix envargs ({
buildPhase = ''
{
buildPhase = args.buildPhase or ''
runHook preBuild
emacs -L . --batch -f batch-byte-compile *.el
@ -13,16 +19,15 @@ callPackage ./generic.nix envargs ({
runHook postBuild
'';
installPhase = ''
installPhase = args.installPhase or ''
runHook preInstall
LISPDIR=$out/share/emacs/site-lisp
install -d $LISPDIR
install *.el *.elc $LISPDIR
emacs --batch -l package --eval "(package-generate-autoloads \"${args.pname}\" \"$LISPDIR\")"
runHook postInstall
'';
}
// args)
)

View File

@ -9,6 +9,7 @@
melpaBuild {
pname = "elisp-ffi";
ename = "ffi";
version = "1.0.0-unstable-2017-05-18";
src = fetchFromGitHub {
@ -18,13 +19,14 @@ melpaBuild {
hash = "sha256-StOezQEnNTjRmjY02ub5FRh59aL6gWfw+qgboz0wF94=";
};
files = ''(:defaults "ffi-glue")'';
nativeBuildInputs = [ pkg-config ];
buildInputs = [ libffi ];
preBuild = ''
mv ffi.el elisp-ffi.el
make
make CXX=$CXX
'';
ignoreCompilationError = false;

View File

@ -77,7 +77,6 @@ melpaBuild {
checkPhase = ''
runHook preCheck
cd "$sourceRoot"
mkfifo test.log
cat < test.log &
HOME=$(mktemp -d) python -m test.test

View File

@ -56,7 +56,7 @@ melpaBuild {
'';
preInstall = ''
install -D --target-directory=$out/bin source/notdeft-xapian
install -D --target-directory=$out/bin notdeft-xapian
'';
ignoreCompilationError = false;

View File

@ -23,7 +23,7 @@ melpaBuild {
postInstall = ''
mkdir -p ''${!outputDoc}/share/doc/pod-mode/
install -Dm644 -t ''${!outputDoc}/share/doc/pod-mode/ $sourceRoot/ChangeLog $sourceRoot/README
install -Dm644 -t ''${!outputDoc}/share/doc/pod-mode/ ChangeLog README
'';
ignoreCompilationError = false;

View File

@ -186,13 +186,13 @@ let
buildInputs = old.buildInputs ++ [ pkgs.sqlite ];
postBuild = ''
cd source/sqlite
pushd sqlite
make
cd -
popd
'';
postInstall = (old.postInstall or "") + "\n" + ''
install -m=755 -D source/sqlite/emacsql-sqlite \
install -m=755 -D sqlite/emacsql-sqlite \
$out/share/emacs/site-lisp/elpa/emacsql-${old.version}/sqlite/emacsql-sqlite
'';
@ -203,13 +203,13 @@ let
buildInputs = old.buildInputs ++ [ pkgs.sqlite ];
postBuild = ''
cd source/sqlite
pushd sqlite
make
cd -
popd
'';
postInstall = (old.postInstall or "") + "\n" + ''
install -m=755 -D source/sqlite/emacsql-sqlite \
install -m=755 -D sqlite/emacsql-sqlite \
$out/share/emacs/site-lisp/elpa/emacsql-sqlite-${old.version}/sqlite/emacsql-sqlite
'';
@ -296,7 +296,7 @@ let
'';
postInstall = (old.postInstall or "") + "\n" + ''
install source/hotfuzz-module.so $out/share/emacs/site-lisp/elpa/hotfuzz-*
install hotfuzz-module.so $out/share/emacs/site-lisp/elpa/hotfuzz-*
'';
});
@ -304,17 +304,17 @@ let
cmakeFlags = old.cmakeFlags or [ ] ++ [ "-DCMAKE_INSTALL_BINDIR=bin" ];
env.NIX_CFLAGS_COMPILE = "-UCLANG_RESOURCE_DIR";
preConfigure = ''
cd server
pushd server
'';
preBuild = ''
make
install -D bin/irony-server $out/bin/irony-server
cd ..
popd
'';
checkPhase = ''
cd source/server
pushd server
make check
cd ../..
popd
'';
preFixup = ''
rm -rf $out/share/emacs/site-lisp/elpa/*/server
@ -342,18 +342,14 @@ let
buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.enchant2 ];
postBuild = ''
pushd working/jinx
NIX_CFLAGS_COMPILE="$($PKG_CONFIG --cflags enchant-2) $NIX_CFLAGS_COMPILE"
$CC -shared -o jinx-mod${libExt} jinx-mod.c -lenchant-2
popd
'';
postInstall = (old.postInstall or "") + "\n" + ''
pushd source
outd=$(echo $out/share/emacs/site-lisp/elpa/jinx-*)
install -m444 --target-directory=$outd jinx-mod${libExt}
rm $outd/jinx-mod.c $outd/emacs-module.h
popd
'';
meta = old.meta // {
@ -365,17 +361,13 @@ let
buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.sqlite ];
postBuild = ''
pushd working/sqlite3
make
popd
'';
postInstall = (old.postInstall or "") + "\n" + ''
pushd source
outd=$out/share/emacs/site-lisp/elpa/sqlite3-*
install -m444 -t $outd sqlite3-api.so
rm $outd/*.c $outd/*.h
popd
'';
meta = old.meta // {
@ -383,26 +375,6 @@ let
};
});
libgit = super.libgit.overrideAttrs(attrs: {
nativeBuildInputs = (attrs.nativeBuildInputs or []) ++ [ pkgs.cmake ];
buildInputs = attrs.buildInputs ++ [ pkgs.libgit2 ];
dontUseCmakeBuildDir = true;
postPatch = ''
sed -i s/'add_subdirectory(libgit2)'// CMakeLists.txt
'';
postBuild = ''
pushd working/libgit
make
popd
'';
postInstall = (attrs.postInstall or "") + "\n" + ''
outd=$(echo $out/share/emacs/site-lisp/elpa/libgit-**)
mkdir $outd/build
install -m444 -t $outd/build ./source/src/libegit2.so
rm -r $outd/src $outd/Makefile $outd/CMakeLists.txt
'';
});
evil-magit = buildWithGit super.evil-magit;
eopengrok = buildWithGit super.eopengrok;
@ -512,29 +484,12 @@ let
rime = super.rime.overrideAttrs (old: {
buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.librime ];
preBuild = (old.preBuild or "") +
(if pkgs.stdenv.isDarwin then
''
export MODULE_FILE_SUFFIX=".dylib"
make lib
mkdir -p /tmp/build/rime-lib
cp *.dylib /tmp/build/rime-lib
''
else
''
make lib
mkdir -p /build/rime-lib
cp *.so /build/rime-lib
'');
postInstall = (old.postInstall or "") +
(if pkgs.stdenv.isDarwin then
''
install -m444 -t $out/share/emacs/site-lisp/elpa/rime-* /tmp/build/rime-lib/*.dylib
''
else
''
install -m444 -t $out/share/emacs/site-lisp/elpa/rime-* /build/rime-lib/*.so
'');
preBuild = (old.preBuild or "") + ''
make lib CC=$CC MODULE_FILE_SUFFIX=${pkgs.stdenv.hostPlatform.extensions.sharedLibrary}
'';
postInstall = (old.postInstall or "") + ''
install -m444 -t $out/share/emacs/site-lisp/elpa/rime-* librime-emacs.*
'';
});
shm = super.shm.overrideAttrs (attrs: {
@ -558,14 +513,14 @@ let
'';
postBuild = ''
cd source/server
pushd server
make
cd -
popd
'';
postInstall = (old.postInstall or "") + "\n" + ''
mkdir -p $out/bin
install -m755 -Dt $out/bin ./source/server/telega-server
install -m755 -Dt $out/bin server/telega-server
'';
});
@ -695,10 +650,8 @@ let
# we need the proper out directory to exist, so we do this in the
# postInstall instead of postBuild
postInstall = (old.postInstall or "") + "\n" + ''
pushd source/build >/dev/null
make
install -m444 -t $out/share/emacs/site-lisp/elpa/vterm-** ../*.so
popd > /dev/null
rm -rf $out/share/emacs/site-lisp/elpa/vterm-**/{CMake*,build,*.c,*.h}
'';
});
@ -736,9 +689,7 @@ let
buildInputs =
old.buildInputs ++
(with pkgs.darwin.apple_sdk.frameworks; [CoreServices Foundation]);
dontUnpack = false;
buildPhase = (old.buildPhase or "") + ''
cd source
postBuild = (old.postBuild or "") + ''
$CXX -O3 -framework CoreServices -framework Foundation osx-dictionary.m -o osx-dictionary-cli
'';
postInstall = (old.postInstall or "") + "\n" + ''

View File

@ -305,10 +305,10 @@
elpaBuild {
pname = "beancount";
ename = "beancount";
version = "0.9.0.20240623.232746";
version = "0.9.0.20240801.232930";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu-devel/beancount-0.9.0.20240623.232746.tar";
sha256 = "0h5cfjdvm1dx5dmdz8i3nk7h2kjs3w224jjb9c1agj3m6bh2kjbm";
url = "https://elpa.nongnu.org/nongnu-devel/beancount-0.9.0.20240801.232930.tar";
sha256 = "0mjf5nsp4zpck6nrqrbzk4xwkwglngs1nv8vdifdzgfdj1gxc8l0";
};
packageRequires = [ ];
meta = {
@ -544,10 +544,10 @@
elpaBuild {
pname = "cider";
ename = "cider";
version = "1.15.1.0.20240723.73804";
version = "1.15.1.0.20240815.91839";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu-devel/cider-1.15.1.0.20240723.73804.tar";
sha256 = "0l0fj27b0xxbv3y513i6jqc92bazcgbcrr8ij7vy7r5s14cin9x3";
url = "https://elpa.nongnu.org/nongnu-devel/cider-1.15.1.0.20240815.91839.tar";
sha256 = "0bp0f886gmka3ryb8yr8qspwl5rxnca38yn6fhrwnm5ga8j11d90";
};
packageRequires = [
clojure-mode
@ -774,10 +774,10 @@
elpaBuild {
pname = "d-mode";
ename = "d-mode";
version = "202405290611.0.20240722.23216";
version = "202408131340.0.20240813.65913";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu-devel/d-mode-202405290611.0.20240722.23216.tar";
sha256 = "1ldl6pb1dk75zgmf92x35zv5wxn6hhj9ljj33kyf3pbw3jpmaljw";
url = "https://elpa.nongnu.org/nongnu-devel/d-mode-202408131340.0.20240813.65913.tar";
sha256 = "1lf78x8bkb41mr5p8api0f447z9k5yd2v9w97qw6l4dxcj2dldv5";
};
packageRequires = [ ];
meta = {
@ -859,10 +859,10 @@
elpaBuild {
pname = "diff-ansi";
ename = "diff-ansi";
version = "0.2.0.20240616.234552";
version = "0.2.0.20240818.235912";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu-devel/diff-ansi-0.2.0.20240616.234552.tar";
sha256 = "12cb4h3w6j0hissma1p9q173q9g379b01h8359wrj9ynbyrvdbsh";
url = "https://elpa.nongnu.org/nongnu-devel/diff-ansi-0.2.0.20240818.235912.tar";
sha256 = "085h7xb75dkdmsnc572rmqgzw1pp4jmxcfrr3nnpbvirgjij8pma";
};
packageRequires = [ ];
meta = {
@ -944,10 +944,10 @@
elpaBuild {
pname = "drupal-mode";
ename = "drupal-mode";
version = "0.7.4.0.20220125.104446";
version = "0.8.1.0.20240816.123653";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu-devel/drupal-mode-0.7.4.0.20220125.104446.tar";
sha256 = "03j8qa0yh382mr5jzlgyh60v9xaln1a3rs101cvnd9sibbw08p4g";
url = "https://elpa.nongnu.org/nongnu-devel/drupal-mode-0.8.1.0.20240816.123653.tar";
sha256 = "135h1bm7zyk2nhcx6j3nc7n0fi180sld655212sin650hidiygnl";
};
packageRequires = [ php-mode ];
meta = {
@ -1029,10 +1029,10 @@
elpaBuild {
pname = "editorconfig";
ename = "editorconfig";
version = "0.11.0.0.20240728.171401";
version = "0.11.0.0.20240813.80135";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu-devel/editorconfig-0.11.0.0.20240728.171401.tar";
sha256 = "0hjmhg81yrbxz307id9vfys91nfsbhbsx29w00rgiy8b80c63ycy";
url = "https://elpa.nongnu.org/nongnu-devel/editorconfig-0.11.0.0.20240813.80135.tar";
sha256 = "1ak09a6ay4234x4x9b8k6mqayb99129yk0p45iv782xsyc9r05h8";
};
packageRequires = [ ];
meta = {
@ -1092,10 +1092,10 @@
elpaBuild {
pname = "emacsql";
ename = "emacsql";
version = "3.1.1.50snapshot0.20240714.182430";
version = "4.0.1.0.20240819.155921";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu-devel/emacsql-3.1.1.50snapshot0.20240714.182430.tar";
sha256 = "03x0niccgc3iscz2pdbc86x4haf75kmp090knmsc1h5qwx5b2mxi";
url = "https://elpa.nongnu.org/nongnu-devel/emacsql-4.0.1.0.20240819.155921.tar";
sha256 = "0xm5b913ja85rw7h7fjhbzz288brsgd8xiq5wi7f8s8dwkbmqdv4";
};
packageRequires = [ ];
meta = {
@ -1136,10 +1136,10 @@
elpaBuild {
pname = "evil";
ename = "evil";
version = "1.15.0.0.20240721.204520";
version = "1.15.0.0.20240810.165559";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu-devel/evil-1.15.0.0.20240721.204520.tar";
sha256 = "1fqxqzdlrm9i7ipkn0yvn18yh8yi3mqilnadm389k1lylw4aqamj";
url = "https://elpa.nongnu.org/nongnu-devel/evil-1.15.0.0.20240810.165559.tar";
sha256 = "0a406n947j8blv7yrx691bjfgfqmkbpszxjdvwq5hda0mrc9g2kl";
};
packageRequires = [
cl-lib
@ -1878,10 +1878,10 @@
elpaBuild {
pname = "geiser-guile";
ename = "geiser-guile";
version = "0.28.1.0.20240712.120235";
version = "0.28.2.0.20240811.112008";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu-devel/geiser-guile-0.28.1.0.20240712.120235.tar";
sha256 = "1hvqxzjnygsg74cjlhnk9c22rwwizwnn5zkb1g7f8ifykzmvmxr7";
url = "https://elpa.nongnu.org/nongnu-devel/geiser-guile-0.28.2.0.20240811.112008.tar";
sha256 = "144543qkxxycnailc8m7fhfqz4c8wphi9xc4b4p2cc009zn51xqs";
};
packageRequires = [
geiser
@ -1994,10 +1994,10 @@
elpaBuild {
pname = "git-commit";
ename = "git-commit";
version = "3.3.0.50snapshot0.20240727.200453";
version = "4.0.0.0.20240818.190757";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu-devel/git-commit-3.3.0.50snapshot0.20240727.200453.tar";
sha256 = "0whszyd51qzkng3fxpbr4p6vvly6b8w6n6879dq7swv0r9al4rdf";
url = "https://elpa.nongnu.org/nongnu-devel/git-commit-4.0.0.0.20240818.190757.tar";
sha256 = "057xpp0w1hyb2c8h0sr4lnpyr5hphgb9yn27rq5jqhwkn8v9r8b2";
};
packageRequires = [
compat
@ -2021,10 +2021,10 @@
elpaBuild {
pname = "git-modes";
ename = "git-modes";
version = "1.4.3.0.20240713.191814";
version = "1.4.4.0.20240805.132007";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu-devel/git-modes-1.4.3.0.20240713.191814.tar";
sha256 = "1rlr9cvz9vnxdzrwbr9vcs5wis6a987yr465c5mhqly8m506jmn2";
url = "https://elpa.nongnu.org/nongnu-devel/git-modes-1.4.4.0.20240805.132007.tar";
sha256 = "0gbgjdk6gi1898nbxj2wbiifbmld42v4s2zsckgqv4r5pxdwc6ai";
};
packageRequires = [ compat ];
meta = {
@ -2033,6 +2033,34 @@
};
}
) { };
gnosis = callPackage (
{
compat,
elpaBuild,
emacsql,
fetchurl,
lib,
transient,
}:
elpaBuild {
pname = "gnosis";
ename = "gnosis";
version = "0.4.1.0.20240818.212703";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu-devel/gnosis-0.4.1.0.20240818.212703.tar";
sha256 = "1nw13pfbgfja5c70zpmcrm6wqvps4zchskj26x1fh171233m8wln";
};
packageRequires = [
compat
emacsql
transient
];
meta = {
homepage = "https://elpa.nongnu.org/nongnu-devel/gnosis.html";
license = lib.licenses.free;
};
}
) { };
gnu-apl-mode = callPackage (
{
elpaBuild,
@ -2191,10 +2219,10 @@
elpaBuild {
pname = "gptel";
ename = "gptel";
version = "0.9.0.0.20240724.131301";
version = "0.9.0.0.20240814.85808";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu-devel/gptel-0.9.0.0.20240724.131301.tar";
sha256 = "0acyy66gxdm134k9k2jag69y7sk7c56x8grmq0b7xq919ixdjky4";
url = "https://elpa.nongnu.org/nongnu-devel/gptel-0.9.0.0.20240814.85808.tar";
sha256 = "0kpd0fypky0mwfb1lfyd3jbpr2lxispx02nqiz3a61zziljgdazd";
};
packageRequires = [
compat
@ -2367,10 +2395,10 @@
elpaBuild {
pname = "helm";
ename = "helm";
version = "3.9.9.0.20240728.45939";
version = "3.9.9.0.20240818.123128";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu-devel/helm-3.9.9.0.20240728.45939.tar";
sha256 = "0gbnn8d0aki55l959pxbhzp5039zzjijxga5lbiwgh9h5dnj3kan";
url = "https://elpa.nongnu.org/nongnu-devel/helm-3.9.9.0.20240818.123128.tar";
sha256 = "01zj0bi9189nbpgp88sdpl61ly1xhqaf33cp8k41sfpka3v0g24f";
};
packageRequires = [
helm-core
@ -2392,10 +2420,10 @@
elpaBuild {
pname = "helm-core";
ename = "helm-core";
version = "3.9.9.0.20240728.45939";
version = "3.9.9.0.20240818.123128";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu-devel/helm-core-3.9.9.0.20240728.45939.tar";
sha256 = "1fz4vrk85df684vsgy38iwrsvdhz4ydriws09bkzicx3nxmyh8rj";
url = "https://elpa.nongnu.org/nongnu-devel/helm-core-3.9.9.0.20240818.123128.tar";
sha256 = "185acikmdvzlwjnac7xkh5agzihka1h6r8ng3ma05gwdxkxnb28s";
};
packageRequires = [ async ];
meta = {
@ -2525,10 +2553,10 @@
elpaBuild {
pname = "hyperdrive";
ename = "hyperdrive";
version = "0.4pre0.20240728.163952";
version = "0.4pre0.20240818.142318";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu-devel/hyperdrive-0.4pre0.20240728.163952.tar";
sha256 = "00c67xdm2rypdcxd5v0n683csnd4abiyn85mbly66vkjiw472fi8";
url = "https://elpa.nongnu.org/nongnu-devel/hyperdrive-0.4pre0.20240818.142318.tar";
sha256 = "0ggsxw2s974l7m4v8p3f535fz13d0z15gwpx6pp7k3rrs5was9vp";
};
packageRequires = [
compat
@ -2797,10 +2825,10 @@
elpaBuild {
pname = "keycast";
ename = "keycast";
version = "1.4.0.0.20240713.191915";
version = "1.4.1.0.20240805.132239";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu-devel/keycast-1.4.0.0.20240713.191915.tar";
sha256 = "13kmc4gif26mgwdvc6zid095i6qlyrhzbl3lv10hzli28n0jqqdm";
url = "https://elpa.nongnu.org/nongnu-devel/keycast-1.4.1.0.20240805.132239.tar";
sha256 = "1afmj52zcr8sdh2ijw0xhxv5p713mw85f4q9rizrpbcx3pw0xmbj";
};
packageRequires = [ compat ];
meta = {
@ -2914,10 +2942,10 @@
elpaBuild {
pname = "magit";
ename = "magit";
version = "3.3.0.50snapshot0.20240727.200453";
version = "4.0.0.0.20240817.175213";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu-devel/magit-3.3.0.50snapshot0.20240727.200453.tar";
sha256 = "1ba1wkw56h0srxvms02ifvvp817p6rs501grcaqkmi70cp73lvkp";
url = "https://elpa.nongnu.org/nongnu-devel/magit-4.0.0.0.20240817.175213.tar";
sha256 = "1abp8d21dm8ygmmmx2bhq1wsz23w259l110743zyx77jbrynizci";
};
packageRequires = [
compat
@ -2946,10 +2974,10 @@
elpaBuild {
pname = "magit-section";
ename = "magit-section";
version = "3.3.0.50snapshot0.20240727.200453";
version = "4.0.0.0.20240818.190757";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu-devel/magit-section-3.3.0.50snapshot0.20240727.200453.tar";
sha256 = "1d16s26yzgzd9rz3jnvxj67aq5zn3hgsfksv4jb87vvnnfq2f7hk";
url = "https://elpa.nongnu.org/nongnu-devel/magit-section-4.0.0.0.20240818.190757.tar";
sha256 = "1bm8k9a8x06310099s71s11igh838fk4k26nb0gsd8xp1szima38";
};
packageRequires = [
compat
@ -2973,10 +3001,10 @@
elpaBuild {
pname = "mastodon";
ename = "mastodon";
version = "1.0.24.0.20240701.160422";
version = "1.0.26.0.20240816.70908";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu-devel/mastodon-1.0.24.0.20240701.160422.tar";
sha256 = "0h2q0wwlcsaz5ck8758l893spmg3hl6g4jpj7mgbc0qhv2bw1vzf";
url = "https://elpa.nongnu.org/nongnu-devel/mastodon-1.0.26.0.20240816.70908.tar";
sha256 = "0nayg2py0n2m1ldpl1hwmiqv7yzvjxbbwndzxwipak0wvjzw0psl";
};
packageRequires = [
persist
@ -3048,10 +3076,10 @@
elpaBuild {
pname = "meow";
ename = "meow";
version = "1.4.5.0.20240712.182147";
version = "1.4.5.0.20240818.154515";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu-devel/meow-1.4.5.0.20240712.182147.tar";
sha256 = "1bq8aybbs0nfzinsw3l64naygsxpjvpckism0n8i3kyriq275pj8";
url = "https://elpa.nongnu.org/nongnu-devel/meow-1.4.5.0.20240818.154515.tar";
sha256 = "0n716x8vyk44n4cw1rw68b747n2r3hvagx4asbhjck8mprnlw6z7";
};
packageRequires = [ ];
meta = {
@ -3378,10 +3406,10 @@
elpaBuild {
pname = "org-mime";
ename = "org-mime";
version = "0.3.2.0.20240129.232731";
version = "0.3.3.0.20240818.24342";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu-devel/org-mime-0.3.2.0.20240129.232731.tar";
sha256 = "1a9pjvn9w138b4417gkdvcjvw9d68pqx5g6sjplldf6z23p3d6bp";
url = "https://elpa.nongnu.org/nongnu-devel/org-mime-0.3.3.0.20240818.24342.tar";
sha256 = "0xg73swqd6dff1nh4z2jhhvj9ssq65wymq3jlbyb1nscm3g4lr83";
};
packageRequires = [ ];
meta = {
@ -3493,10 +3521,10 @@
elpaBuild {
pname = "orgit";
ename = "orgit";
version = "1.9.0.0.20240713.192819";
version = "2.0.0.0.20240808.194549";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu-devel/orgit-1.9.0.0.20240713.192819.tar";
sha256 = "0gb73cyxhqi4cflnha9dzcnvs8l7nb3ksskq8psfdrs4h6ra3xhm";
url = "https://elpa.nongnu.org/nongnu-devel/orgit-2.0.0.0.20240808.194549.tar";
sha256 = "14ql24z977myihyn5hv4ivayzfpj580dhr7rgwwb6yqzj8j1bz4l";
};
packageRequires = [
compat
@ -3782,10 +3810,10 @@
elpaBuild {
pname = "projectile";
ename = "projectile";
version = "2.9.0snapshot0.20240212.110040";
version = "2.9.0snapshot0.20240814.185449";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu-devel/projectile-2.9.0snapshot0.20240212.110040.tar";
sha256 = "0gbci7zwfwj8g69dla72arj3s5w49y6wgwcrilnlfmm3fc1h9lqy";
url = "https://elpa.nongnu.org/nongnu-devel/projectile-2.9.0snapshot0.20240814.185449.tar";
sha256 = "059pjfr5gqmd7mrpxmkgasqaqcbhp8q0nj9dhrwqrlfm6g5xgg1q";
};
packageRequires = [ ];
meta = {
@ -3846,10 +3874,10 @@
elpaBuild {
pname = "racket-mode";
ename = "racket-mode";
version = "1.0.20240718.150548";
version = "1.0.20240813.124142";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu-devel/racket-mode-1.0.20240718.150548.tar";
sha256 = "1kp29m0cjsq9hfy73z9rgzvl8c8ag4mb49hkh5y6w6f8pjv36va7";
url = "https://elpa.nongnu.org/nongnu-devel/racket-mode-1.0.20240813.124142.tar";
sha256 = "0ypqv36wibcagkqpjwl3mwpqa4k59wns6kb1v55w2gywnk6qgv1y";
};
packageRequires = [ ];
meta = {
@ -4189,10 +4217,10 @@
elpaBuild {
pname = "slime";
ename = "slime";
version = "2.30snapshot0.20240705.225542";
version = "2.30snapshot0.20240731.151818";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu-devel/slime-2.30snapshot0.20240705.225542.tar";
sha256 = "1rl0zpip9qpkcb5hqj3xbamrarmcvpjxhnbms9kzqay3xws5i214";
url = "https://elpa.nongnu.org/nongnu-devel/slime-2.30snapshot0.20240731.151818.tar";
sha256 = "16xbiwqbp2zpppymxxwkbg1qmahih6dfb535dfa47b26j2wschhp";
};
packageRequires = [ macrostep ];
meta = {
@ -4210,10 +4238,10 @@
elpaBuild {
pname = "sly";
ename = "sly";
version = "1.0.43.0.20240501.111815";
version = "1.0.43.0.20240809.211904";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu-devel/sly-1.0.43.0.20240501.111815.tar";
sha256 = "0zpcad35ig5ci2a4rd9v3146c12mj7c9zhafwxvbmjhzd5aqfv82";
url = "https://elpa.nongnu.org/nongnu-devel/sly-1.0.43.0.20240809.211904.tar";
sha256 = "1np4rciwcijr6bv13s5vvl95wl28ad60snr6wdbjh7ya922x37rv";
};
packageRequires = [ ];
meta = {
@ -4273,10 +4301,10 @@
elpaBuild {
pname = "spacemacs-theme";
ename = "spacemacs-theme";
version = "0.2.0.20240715.144003";
version = "0.2.0.20240815.213429";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu-devel/spacemacs-theme-0.2.0.20240715.144003.tar";
sha256 = "14d22bdm33jbwv9dphqydgww93scqdfbkjg80iivb48s0br86qld";
url = "https://elpa.nongnu.org/nongnu-devel/spacemacs-theme-0.2.0.20240815.213429.tar";
sha256 = "1g7fzghy5nmz8v8vx5y6g3cwc2n9c1ryr09nrdfz3zlrv7r32df6";
};
packageRequires = [ ];
meta = {
@ -4854,10 +4882,10 @@
elpaBuild {
pname = "vm";
ename = "vm";
version = "8.3.0snapshot0.20240724.160938";
version = "8.3.0snapshot0.20240814.44941";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu-devel/vm-8.3.0snapshot0.20240724.160938.tar";
sha256 = "14xcgbi52dbs3kiqci810l7hjvxln00ifib21d6hisx0lhs5743l";
url = "https://elpa.nongnu.org/nongnu-devel/vm-8.3.0snapshot0.20240814.44941.tar";
sha256 = "1w5a0jm22xr6m1i2c5gghgy159dpqndkqhkyma3sagx5bmdsldrb";
};
packageRequires = [
cl-lib
@ -4878,10 +4906,10 @@
elpaBuild {
pname = "web-mode";
ename = "web-mode";
version = "17.3.19.0.20240413.145507";
version = "17.3.20.0.20240804.82110";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu-devel/web-mode-17.3.19.0.20240413.145507.tar";
sha256 = "1vx54jl4r0nw3bpdphn206ia7x4a0pf8sdfsh46qx4jva5mgvg6j";
url = "https://elpa.nongnu.org/nongnu-devel/web-mode-17.3.20.0.20240804.82110.tar";
sha256 = "17r0jhcgxnc1k42yxaw1i7wwyb0sp311a1gz8bdjax0zn05ki4xc";
};
packageRequires = [ ];
meta = {
@ -4989,10 +5017,10 @@
elpaBuild {
pname = "with-editor";
ename = "with-editor";
version = "3.4.0.0.20240725.142901";
version = "3.4.1.0.20240816.195813";
src = fetchurl {
url = "https://elpa.nongnu.org/nongnu-devel/with-editor-3.4.0.0.20240725.142901.tar";
sha256 = "076a9gs6d298fvhk5sl2pf520pvknswcgbb6v7cwqhczcqj6wncm";
url = "https://elpa.nongnu.org/nongnu-devel/with-editor-3.4.1.0.20240816.195813.tar";
sha256 = "1z9c5ymia0g8mpx0nszrbw0yy23a7f91kyqxpvx544kbxh6k62dy";
};
packageRequires = [ compat ];
meta = {

View File

@ -1,6 +1,6 @@
{ lib, fetchFromGitHub }:
rec {
version = "9.1.0595";
version = "9.1.0689";
outputs = [ "out" "xxd" ];
@ -8,7 +8,7 @@ rec {
owner = "vim";
repo = "vim";
rev = "v${version}";
hash = "sha256-v8xVP1WuvE9XdQl1LDIq3pjaKyqPWM0fsFKcpIwPbNA=";
hash = "sha256-87y/STnGB2Yf64TMwCd6VCFF2kvy+DmNyaXVKPIc86E=";
};
enableParallelBuilding = true;

View File

@ -106,7 +106,7 @@ lib.optionalAttrs (buildScript != null) { builder = buildScript; }
libX11 libXcomposite libXcursor libXext libXfixes libXi libXrandr libXrender libXxf86vm
])
++ lib.optionals waylandSupport (with pkgs; [
wayland libxkbcommon wayland-protocols wayland.dev libxkbcommon.dev
wayland wayland-scanner libxkbcommon wayland-protocols wayland.dev libxkbcommon.dev
mesa # for libgbm
])));

View File

@ -6,14 +6,14 @@
python3.pkgs.buildPythonApplication rec {
pname = "browsr";
version = "1.19.0";
version = "1.21.0";
pyproject = true;
src = fetchFromGitHub {
owner = "juftin";
repo = "browsr";
rev = "refs/tags/v${version}";
hash = "sha256-V5B+/zfUlpF0TMTHqzyjapW93/DoJKgbJkTMX2NZyIQ=";
hash = "sha256-76OzJOunZRVSGalQiyX+TSukD8rRIFHxA713NqOn3PY=";
};
nativeBuildInputs = with python3.pkgs; [
@ -56,6 +56,7 @@ python3.pkgs.buildPythonApplication rec {
"art"
"pandas"
"pymupdf"
"pyperclip"
"rich-click"
"rich-pixels"
"rich"

View File

@ -15,7 +15,6 @@ stdenv.mkDerivation {
};
separateDebugInfo = true;
depsBuildBuild = [ pkg-config ];
nativeBuildInputs = [ imagemagick pkg-config wayland-scanner ];
buildInputs = [ wayland wayland-protocols ];

View File

@ -41,8 +41,6 @@ rustPlatform.buildRustPackage rec {
wrapGAppsHook3
];
checkFlagsArray = [ "--skip=tests::net" ]; # requires network access
buildInputs = [
openssl
fontconfig
@ -62,6 +60,7 @@ rustPlatform.buildRustPackage rec {
checkFlags = [
"--skip=bench"
"--skip=tests::net" # requires network access
];
postInstall = ''

View File

@ -4,7 +4,7 @@
exiv2, lcms2, cfitsio,
baloo, kactivities, kio, kipi-plugins, kitemmodels, kparts, libkdcraw, libkipi,
phonon, qtimageformats, qtsvg, qtx11extras, kinit, kpurpose, kcolorpicker, kimageannotator,
wayland, wayland-protocols
wayland, wayland-protocols, wayland-scanner
}:
mkDerivation {
@ -20,7 +20,7 @@ mkDerivation {
# Fix build with versioned kImageAnnotator
patches = [./kimageannotator.patch];
nativeBuildInputs = [ extra-cmake-modules kdoctools ];
nativeBuildInputs = [ extra-cmake-modules kdoctools wayland-scanner ];
buildInputs = [
baloo kactivities kio kitemmodels kparts libkdcraw libkipi phonon
exiv2 lcms2 cfitsio

View File

@ -1,5 +1,5 @@
{ mkDerivation, lib
, extra-cmake-modules, kdoctools
, extra-cmake-modules, kdoctools, wayland-scanner
, kconfig, kcoreaddons, kcrash, kdbusaddons, kdnssd, knotifications, kwallet
, kwidgetsaddons, kwindowsystem, kxmlgui, kwayland, kpipewire
, libvncserver, libXtst, libXdamage
@ -14,7 +14,7 @@ mkDerivation {
license = with lib.licenses; [ gpl2Plus fdl12Plus ];
maintainers = with lib.maintainers; [ jerith666 ];
};
nativeBuildInputs = [ extra-cmake-modules kdoctools ];
nativeBuildInputs = [ extra-cmake-modules kdoctools wayland-scanner ];
buildInputs = [
libvncserver libXtst libXdamage
kconfig kcoreaddons kcrash kdbusaddons knotifications kwallet kwidgetsaddons

View File

@ -5,13 +5,13 @@
, knotifications, kscreen, kwidgetsaddons, kwindowsystem, kxmlgui, libkipi
, qtx11extras, knewstuff, kwayland, qttools, kcolorpicker, kimageannotator
, qcoro, qtquickcontrols2, wayland, plasma-wayland-protocols, kpurpose, kpipewire
, wrapGAppsHook3
, wrapGAppsHook3, wayland-scanner
}:
mkDerivation {
pname = "spectacle";
nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook3 ];
nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook3 wayland-scanner ];
buildInputs = [
kconfig kcoreaddons kdbusaddons kdeclarative ki18n kio knotifications
kscreen kwidgetsaddons kwindowsystem kxmlgui libkipi qtx11extras xcb-util-cursor

View File

@ -1,5 +1,5 @@
{ lib, stdenv, fetchFromGitHub
, dbus, cmake, pkg-config
, dbus, cmake, pkg-config, wayland-scanner
, glib, udev, polkit, libusb1, libjpeg, libmodule
, pcre, libXdmcp, util-linux, libpthreadstubs
, enableDdc ? true, ddcutil
@ -40,13 +40,18 @@ stdenv.mkDerivation rec {
++ lib.optional enableScreen "-DENABLE_SCREEN=1"
++ lib.optional enableYoctolight "-DENABLE_YOCTOLIGHT=1";
nativeBuildInputs = [
dbus
cmake
depsBuildBuild = [
pkg-config
];
nativeBuildInputs = [
cmake
pkg-config
wayland-scanner
];
buildInputs = [
dbus
glib
udev
polkit

View File

@ -1,6 +1,9 @@
{ mkDerivation, lib, cmake, xorg, plasma-framework, plasma-wayland-protocols, fetchFromGitLab
, extra-cmake-modules, karchive, kwindowsystem, qtx11extras, qtwayland, kcrash, knewstuff
, wayland, plasma-workspace, plasma-desktop }:
{ lib, mkDerivation, fetchFromGitLab
, cmake, extra-cmake-modules, karchive, kwindowsystem, qtx11extras, kcrash
, knewstuff, wayland-scanner
, plasma-framework, plasma-wayland-protocols, plasma-workspace, plasma-desktop, qtwayland
, wayland, xorg
}:
mkDerivation rec {
pname = "latte-dock";
@ -17,7 +20,7 @@ mkDerivation rec {
buildInputs = [ plasma-framework plasma-wayland-protocols qtwayland xorg.libpthreadstubs xorg.libXdmcp xorg.libSM wayland plasma-workspace plasma-desktop ];
nativeBuildInputs = [ extra-cmake-modules cmake karchive kwindowsystem
qtx11extras kcrash knewstuff ];
qtx11extras kcrash knewstuff wayland-scanner ];
patches = [
./0001-Disable-autostart.patch

View File

@ -20,6 +20,7 @@
, doxygen
, pkg-config
, wayland-protocols
, wayland-scanner
}:
mkDerivation rec {
@ -62,6 +63,7 @@ mkDerivation rec {
doxygen
pkg-config
wayland-protocols
wayland-scanner
];
preConfigure = ''

View File

@ -1,13 +0,0 @@
Use command -v in favor of which
--- a/Makerules
+++ b/Makerules
@@ -170,7 +170,7 @@
ifneq ($(ARCHFLAGS),)
$(warning "MacOS with ARCHFLAGS set. Assuming we are building for arm64, and setting HAVE_LIBCRYPTO to no.")
HAVE_LIBCRYPTO := no
- else ifeq (, $(shell which pkg-config))
+ else ifeq (, $(shell command -v pkg-config))
$(warning "No pkg-config found, install it for proper integration of libcrypto")
else
HAVE_LIBCRYPTO := $(shell pkg-config --exists 'libcrypto >= 1.1.0' && echo yes)

View File

@ -60,18 +60,18 @@ let
in
stdenv.mkDerivation rec {
version = "1.23.6";
version = "1.24.8";
pname = "mupdf";
src = fetchurl {
url = "https://mupdf.com/downloads/archive/${pname}-${version}-source.tar.gz";
sha256 = "sha256-rBHrhZ3UBEiOUVPNyWUbtDQeW6r007Pyfir8gvmq3Ck=";
hash = "sha256-pRjZvpds2yAG1FOC1/+xubjWS8P9PLc8picNdS+n9Eg=";
};
patches = [ ./0001-Use-command-v-in-favor-of-which.patch
./0002-Add-Darwin-deps.patch
./0003-Fix-cpp-build.patch
];
patches = [
./0002-Add-Darwin-deps.patch
./0003-Fix-cpp-build.patch
];
postPatch = ''
substituteInPlace Makerules --replace "(shell pkg-config" "(shell $PKG_CONFIG"
@ -166,20 +166,21 @@ stdenv.mkDerivation rec {
EOF
moveToOutput "bin" "$bin"
cp ./build/shared-release/libmupdf${stdenv.hostPlatform.extensions.sharedLibrary}* $out/lib
'' + (lib.optionalString (stdenv.isDarwin) ''
for exe in $bin/bin/*; do
install_name_tool -change build/shared-release/libmupdf.dylib $out/lib/libmupdf.dylib "$exe"
done
'') + (lib.optionalString (enableX11 || enableGL) ''
mkdir -p $bin/share/icons/hicolor/48x48/apps
cp docs/logo/mupdf.png $bin/share/icons/hicolor/48x48/apps
cp docs/logo/mupdf-icon-48.png $bin/share/icons/hicolor/48x48/apps
'') + (if enableGL then ''
ln -s "$bin/bin/mupdf-gl" "$bin/bin/mupdf"
'' else lib.optionalString (enableX11) ''
ln -s "$bin/bin/mupdf-x11" "$bin/bin/mupdf"
'') + (lib.optionalString (enableCxx) ''
cp platform/c++/include/mupdf/*.h $out/include/mupdf
cp build/*/libmupdfcpp.so $out/lib
cp build/*/libmupdfcpp.so* $out/lib
'') + (lib.optionalString (enablePython) (''
mkdir -p $out/${python3.sitePackages}/mupdf
cp build/*/_mupdf.so $out/${python3.sitePackages}

View File

@ -6,6 +6,7 @@
, ninja
, pkg-config
, python3
, wayland-scanner
, wrapGAppsHook3
, libinput
, gobject-introspection
@ -44,6 +45,7 @@ stdenv.mkDerivation (finalAttrs: {
ninja
pkg-config
python3
wayland-scanner
wrapGAppsHook3
];

View File

@ -1,4 +1,4 @@
{ stdenv, lib, fetchFromGitHub, pkg-config, meson, cmake, ninja, gst_all_1, wrapQtAppsHook, qtbase, qtmultimedia, layer-shell-qt }:
{ stdenv, lib, fetchFromGitHub, pkg-config, meson, cmake, ninja, gst_all_1, wrapQtAppsHook, qtbase, qtmultimedia, layer-shell-qt, wayland-scanner }:
let
gstreamerPath = with gst_all_1; lib.makeSearchPathOutput "lib" "lib/gstreamer-1.0" [
gstreamer
@ -24,6 +24,7 @@ in stdenv.mkDerivation rec {
cmake # only used for find layer-shell-qt
ninja
wrapQtAppsHook
wayland-scanner
];
buildInputs = [

View File

@ -1,5 +1,11 @@
{ lib, stdenv, fetchFromSourcehut, fetchpatch
, wayland, pixman, pkg-config, wayland-scanner
{ lib
, stdenv
, fetchFromSourcehut
, fetchpatch
, wayland
, pixman
, pkg-config
, wayland-scanner
}:
stdenv.mkDerivation rec {

View File

@ -6,6 +6,7 @@
, river
, wayland
, wayland-protocols
, wayland-scanner
, zig_0_12
}:
@ -26,6 +27,7 @@ stdenv.mkDerivation (finalAttrs: {
river
wayland
wayland-protocols
wayland-scanner
zig_0_12.hook
];

View File

@ -2,6 +2,7 @@
, fetchFromGitHub
, rofi-unwrapped
, wayland-scanner
, pkg-config
, wayland-protocols
, wayland
}:
@ -18,7 +19,8 @@ rofi-unwrapped.overrideAttrs (oldAttrs: rec {
hash = "sha256-pKxraG3fhBh53m+bLPzCigRr6dBcH/A9vbdf67CO2d8=";
};
nativeBuildInputs = oldAttrs.nativeBuildInputs ++ [ wayland-scanner ];
depsBuildBuild = oldAttrs.depsBuildBuild ++ [ pkg-config ];
nativeBuildInputs = oldAttrs.nativeBuildInputs ++ [ wayland-protocols wayland-scanner ];
buildInputs = oldAttrs.buildInputs ++ [ wayland wayland-protocols ];
meta = with lib; {

View File

@ -65,7 +65,7 @@ stdenv.mkDerivation rec {
];
postPatch = ''
patchShebangs /build/source/build-aux/meson/postinstall.py
patchShebangs build-aux/meson/postinstall.py
'';
meta = with lib; {

View File

@ -28,7 +28,12 @@ stdenv.mkDerivation rec {
depsBuildBuild = [ pkg-config ];
nativeBuildInputs = [
meson ninja pkg-config scdoc wayland-protocols wayland-scanner
meson
ninja
pkg-config
scdoc
wayland-protocols
wayland-scanner
];
buildInputs = [ freetype harfbuzz cairo pango wayland libxkbcommon ];

View File

@ -37,10 +37,10 @@ in stdenv.mkDerivation rec {
'';
# https://nodejs.org/api/os.html#osarch
npmFlagsArray = [ "--arch=${if stdenv.hostPlatform.parsed.cpu.name == "i686" then "ia32"
else if stdenv.hostPlatform.parsed.cpu.name == "x86_64" then "x64"
else if stdenv.hostPlatform.parsed.cpu.name == "aarch64" then "arm64"
else stdenv.hostPlatform.parsed.cpu.name}" ];
npmFlags = [ "--arch=${if stdenv.hostPlatform.parsed.cpu.name == "i686" then "ia32"
else if stdenv.hostPlatform.parsed.cpu.name == "x86_64" then "x64"
else if stdenv.hostPlatform.parsed.cpu.name == "aarch64" then "arm64"
else stdenv.hostPlatform.parsed.cpu.name}" ];
installPhase = ''
runHook preInstall

View File

@ -147,6 +147,7 @@ stdenv.mkDerivation (finalAttrs: {
fuse3
systemd
wayland
wayland-scanner
] ++ lib.optionals stdenv.isDarwin [
AudioToolbox
AVFoundation
@ -162,7 +163,6 @@ stdenv.mkDerivation (finalAttrs: {
"-Wno-dev"
"-DCMAKE_INSTALL_LIBDIR=lib"
"-DDOCBOOKXSL_DIR=${docbook-xsl-nons}/xml/xsl/docbook"
"-DWAYLAND_SCANNER=${buildPackages.wayland-scanner}/bin/wayland-scanner"
] ++ lib.mapAttrsToList (k: v: "-D${k}=${cmFlag v}") {
BUILD_TESTING = false; # false is recommended by upstream
WITH_CAIRO = cairo != null;

View File

@ -167,7 +167,6 @@ stdenv.mkDerivation rec {
"-Wno-dev"
"-DCMAKE_INSTALL_LIBDIR=lib"
"-DDOCBOOKXSL_DIR=${docbook-xsl-nons}/xml/xsl/docbook"
"-DWAYLAND_SCANNER=${buildPackages.wayland-scanner}/bin/wayland-scanner"
]
++ lib.mapAttrsToList (k: v: "-D${k}=${cmFlag v}") {
BUILD_TESTING = false; # false is recommended by upstream

View File

@ -16,6 +16,7 @@
, UserNotifications
, libcanberra
, libicns
, wayland-scanner
, libpng
, python3
, zlib
@ -87,8 +88,12 @@ buildPythonApplication rec {
] ++ lib.optionals stdenv.isDarwin [
imagemagick
libicns # For the png2icns tool.
] ++ lib.optionals stdenv.isLinux [
wayland-scanner
];
depsBuildBuild = [ pkg-config ];
outputs = [ "out" "terminfo" "shell_integration" "kitten" ];
patches = [

View File

@ -4,14 +4,14 @@
stdenv.mkDerivation rec {
pname = "xterm";
version = "392";
version = "393";
src = fetchurl {
urls = [
"ftp://ftp.invisible-island.net/xterm/${pname}-${version}.tgz"
"https://invisible-mirror.net/archives/xterm/${pname}-${version}.tgz"
];
hash = "sha256-TVc3LvCOr6n7doLbjQe+D+BRPljoR4wuyOm2JIbn/l4=";
hash = "sha256-3Dq/Uz1mrj20nmeDsOHinw5NBFtLPax5el6Tvic17Hs=";
};
patches = [ ./sixel-256.support.patch ];

View File

@ -29,7 +29,7 @@ assert sendEmailSupport -> perlSupport;
assert svnSupport -> perlSupport;
let
version = "2.45.2";
version = "2.46.0";
svn = subversionClient.override { perlBindings = perlSupport; };
gitwebPerlLibs = with perlPackages; [ CGI HTMLParser CGIFast FCGI FCGIProcManager HTMLTagCloud ];
in
@ -42,7 +42,7 @@ stdenv.mkDerivation (finalAttrs: {
src = fetchurl {
url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz";
hash = "sha256-Ub/ofrHAL+0UhAUYdTZe6rIpgx0w0M7F2JoU+eQOmts=";
hash = "sha256-fxI0YqKLfKPr4mB0hfcWhVTCsQ38FVx+xGMAZmrCf5U=";
};
outputs = [ "out" ] ++ lib.optional withManual "doc";
@ -325,8 +325,11 @@ stdenv.mkDerivation (finalAttrs: {
substituteInPlace t/test-lib.sh \
--replace "test_set_prereq POSIXPERM" ""
# TODO: Investigate while these still fail (without POSIXPERM):
# Tested to fail: 2.46.0
disable_test t0001-init 'shared overrides system'
# Tested to fail: 2.46.0
disable_test t0001-init 'init honors global core.sharedRepository'
# Tested to fail: 2.46.0
disable_test t1301-shared-repo
# /build/git-2.44.0/contrib/completion/git-completion.bash: line 452: compgen: command not found
disable_test t9902-completion
@ -337,24 +340,12 @@ stdenv.mkDerivation (finalAttrs: {
# Disable sendmail tests
disable_test t9001-send-email
'' + ''
# XXX: I failed to understand why this one fails.
# Could someone try to re-enable it on the next release ?
# Tested to fail: 2.18.0 and 2.19.0
disable_test t1700-split-index "null sha1"
# Flaky tests:
disable_test t5319-multi-pack-index
disable_test t6421-merge-partial-clone
# Fails reproducibly on ZFS on Linux with formD normalization
disable_test t0021-conversion
disable_test t3910-mac-os-precompose
'' + lib.optionalString (!perlSupport) ''
# request-pull is a Bash script that invokes Perl, so it is not available
# when NO_PERL=1, and the test should be skipped, but the test suite does
# not check for the Perl prerequisite.
disable_test t5150-request-pull
'' + lib.optionalString stdenv.isDarwin ''
# XXX: Some tests added in 2.24.0 fail.
# Please try to re-enable on the next release.

View File

@ -29,7 +29,7 @@ buildKodiAddon rec {
'';
postInstall = ''
mv /build/source/addon.xml $out${addonDir}/${namespace}/
cp -v addon.xml $out${addonDir}/$namespace/
'';
propagatedBuildInputs = [

View File

@ -36,7 +36,7 @@ buildKodiAddon rec {
'';
postInstall = ''
mv /build/source/addon.xml $out${addonDir}/${namespace}/
cp -v addon.xml $out${addonDir}/$namespace/
'';
propagatedBuildInputs = [

View File

@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
done
'';
makeFlagsArray = [ "PREFIX=$(out)/bin/" ];
makeFlags = [ "PREFIX=$(out)/bin/" ];
preInstall = ''
mkdir -p "$out/bin"

View File

@ -26,6 +26,7 @@
, wayland
, wayland-protocols
, wayland-scanner
, pipewire
, pulseaudio
@ -64,7 +65,7 @@ stdenv.mkDerivation (finalAttrs: {
./0001-client-cmake-move-X11-config-directives-to-displayse.patch
];
nativeBuildInputs = [ cmake pkg-config ];
nativeBuildInputs = [ cmake pkg-config wayland-scanner ];
buildInputs = [ libX11 libGL freefont_ttf spice-protocol expat libbfd nettle fontconfig libffi ]
++ lib.optionals xorgSupport [ libxkbcommon libXi libXScrnSaver libXinerama libXcursor libXpresent libXext libXrandr libXdmcp ]

View File

@ -19,6 +19,7 @@
, systemd
, wayland
, wayland-protocols
, wayland-scanner
, withXwayland ? true , xwayland
, wlroots
}:
@ -40,7 +41,7 @@ stdenv.mkDerivation rec {
ninja
pkg-config
scdoc
wayland
wayland-scanner
];
buildInputs = [

View File

@ -9,8 +9,6 @@
, darwin
}:
assert wayland.withLibraries;
let
stdenv = clangStdenv;
in

View File

@ -6,6 +6,7 @@
, ninja
, pkg-config
, python3
, wayland-scanner
, wrapGAppsHook4
, libadwaita
, libhandy
@ -51,6 +52,7 @@ stdenv.mkDerivation (finalAttrs: {
ninja
pkg-config
python3
wayland-scanner
wrapGAppsHook4
];

View File

@ -6,6 +6,7 @@
, meson
, ninja
, pkg-config
, wayland-scanner
, wrapGAppsHook4
, desktop-file-utils
, feedbackd
@ -38,6 +39,7 @@ stdenv.mkDerivation rec {
ninja
phosh
pkg-config
wayland-scanner
wrapGAppsHook4
];

View File

@ -5,6 +5,7 @@
, ninja
, pkg-config
, wayfire
, wayland-scanner
, wf-config
, libevdev
, libinput
@ -29,6 +30,7 @@ stdenv.mkDerivation (finalAttrs: {
meson
ninja
pkg-config
wayland-scanner
];
buildInputs = [

View File

@ -7,7 +7,7 @@
, patches ? [ ]
# A function to override the goModules derivation
, overrideModAttrs ? (_oldAttrs: { })
, overrideModAttrs ? (finalAttrs: previousAttrs: { })
# path to go.mod and go.sum directory
, modRoot ? "./"
@ -58,18 +58,38 @@
assert goPackagePath != "" -> throw "`goPackagePath` is not needed with `buildGoModule`";
let
args = removeAttrs args' [ "overrideModAttrs" "vendorSha256" "vendorHash" ];
args = removeAttrs args' [ "overrideModAttrs" "vendorSha256" ];
GO111MODULE = "on";
GOTOOLCHAIN = "local";
goModules = if (vendorHash == null) then "" else
toExtension =
overlay0:
if lib.isFunction overlay0 then
final: prev:
if lib.isFunction (overlay0 prev) then
# `overlay0` is `final: prev: { ... }`
overlay0 final prev
else
# `overlay0` is `prev: { ... }`
overlay0 prev
else
# `overlay0` is `{ ... }`
final: prev: overlay0;
in
(stdenv.mkDerivation (finalAttrs:
args
// {
inherit modRoot vendorHash deleteVendor proxyVendor;
goModules = if (finalAttrs.vendorHash == null) then "" else
(stdenv.mkDerivation {
name = "${name}-go-modules";
name = "${finalAttrs.name or "${finalAttrs.pname}-${finalAttrs.version}"}-go-modules";
nativeBuildInputs = (args.nativeBuildInputs or [ ]) ++ [ go git cacert ];
nativeBuildInputs = (finalAttrs.nativeBuildInputs or [ ]) ++ [ go git cacert ];
inherit (args) src;
inherit (finalAttrs) src modRoot;
inherit (go) GOOS GOARCH;
inherit GO111MODULE GOTOOLCHAIN;
@ -77,15 +97,15 @@ let
# argue it's not ideal. Changing it may break vendor hashes in Nixpkgs and
# out in the wild. In anycase, it's documented in:
# doc/languages-frameworks/go.section.md
prePatch = args.prePatch or "";
patches = args.patches or [ ];
patchFlags = args.patchFlags or [ ];
postPatch = args.postPatch or "";
preBuild = args.preBuild or "";
postBuild = args.modPostBuild or "";
sourceRoot = args.sourceRoot or "";
setSourceRoot = args.setSourceRoot or "";
env = args.env or { };
prePatch = finalAttrs.prePatch or "";
patches = finalAttrs.patches or [ ];
patchFlags = finalAttrs.patchFlags or [ ];
postPatch = finalAttrs.postPatch or "";
preBuild = finalAttrs.preBuild or "";
postBuild = finalAttrs.modPostBuild or "";
sourceRoot = finalAttrs.sourceRoot or "";
setSourceRoot = finalAttrs.setSourceRoot or "";
env = finalAttrs.env or { };
impureEnvVars = lib.fetchers.proxyImpureEnvVars ++ [
"GIT_PROXY_COMMAND"
@ -97,13 +117,13 @@ let
runHook preConfigure
export GOCACHE=$TMPDIR/go-cache
export GOPATH="$TMPDIR/go"
cd "${modRoot}"
cd "$modRoot"
runHook postConfigure
'';
buildPhase = args.modBuildPhase or (''
runHook preBuild
'' + lib.optionalString deleteVendor ''
'' + lib.optionalString finalAttrs.deleteVendor ''
if [ ! -d vendor ]; then
echo "vendor folder does not exist, 'deleteVendor' is not needed"
exit 10
@ -116,7 +136,7 @@ let
exit 10
fi
${if proxyVendor then ''
${if finalAttrs.proxyVendor then ''
mkdir -p "''${GOPATH}/pkg/mod/cache/download"
go mod download
'' else ''
@ -134,7 +154,7 @@ let
installPhase = args.modInstallPhase or ''
runHook preInstall
${if proxyVendor then ''
${if finalAttrs.proxyVendor then ''
rm -rf "''${GOPATH}/pkg/mod/cache/download/sumdb"
cp -r --reflink=auto "''${GOPATH}/pkg/mod/cache/download" $out
'' else ''
@ -152,20 +172,19 @@ let
dontFixup = true;
outputHashMode = "recursive";
outputHash = vendorHash;
outputHash = finalAttrs.vendorHash;
# Handle empty vendorHash; avoid
# error: empty hash requires explicit hash algorithm
outputHashAlgo = if vendorHash == "" then "sha256" else null;
}).overrideAttrs overrideModAttrs;
outputHashAlgo = if finalAttrs.vendorHash == "" then "sha256" else null;
}).overrideAttrs finalAttrs.passthru.overrideModAttrs;
package = stdenv.mkDerivation (args // {
nativeBuildInputs = [ go ] ++ nativeBuildInputs;
inherit (go) GOOS GOARCH;
GOFLAGS = GOFLAGS
++ lib.warnIf (lib.any (lib.hasPrefix "-mod=") GOFLAGS) "use `proxyVendor` to control Go module/vendor behavior instead of setting `-mod=` in GOFLAGS"
(lib.optional (!proxyVendor) "-mod=vendor")
(lib.optional (!finalAttrs.proxyVendor) "-mod=vendor")
++ lib.warnIf (builtins.elem "-trimpath" GOFLAGS) "`-trimpath` is added by default to GOFLAGS by buildGoModule when allowGoReference isn't set to true"
(lib.optional (!allowGoReference) "-trimpath");
inherit CGO_ENABLED enableParallelBuilding GO111MODULE GOTOOLCHAIN;
@ -181,12 +200,12 @@ let
export GOPROXY=off
export GOSUMDB=off
cd "$modRoot"
'' + lib.optionalString (vendorHash != null) ''
${if proxyVendor then ''
export GOPROXY=file://${goModules}
'' + lib.optionalString (finalAttrs.vendorHash != null) ''
${if finalAttrs.proxyVendor then ''
export GOPROXY="file://$goModules"
'' else ''
rm -rf vendor
cp -r --reflink=auto ${goModules} vendor
cp -r --reflink=auto "$goModules" vendor
''}
'' + ''
@ -307,12 +326,17 @@ let
disallowedReferences = lib.optional (!allowGoReference) go;
passthru = passthru // { inherit go goModules vendorHash; };
passthru = {
inherit go;
# Canonicallize `overrideModAttrs` as an attribute overlay.
# `passthru.overrideModAttrs` will be overridden
# when users want to override `goModules`.
overrideModAttrs = toExtension overrideModAttrs;
} // passthru;
meta = {
# Add default meta information
platforms = go.meta.platforms or lib.platforms.all;
} // meta;
});
in
package
}
))

View File

@ -197,7 +197,7 @@ class Dependency:
found: bool = False # Whether it was found somewhere
def auto_patchelf_file(path: Path, runtime_deps: list[Path], append_rpaths: list[Path] = [], extra_args: list[str] = []) -> list[Dependency]:
def auto_patchelf_file(path: Path, runtime_deps: list[Path], append_rpaths: list[Path] = [], keep_libc: bool = False, extra_args: list[str] = []) -> list[Dependency]:
try:
with open_elf(path) as elf:
@ -257,26 +257,36 @@ def auto_patchelf_file(path: Path, runtime_deps: list[Path], append_rpaths: list
# 1. If a candidate is an absolute path, it is already a
# valid dependency if that path exists, and nothing needs
# to be done. It should be an error if that path does not exist.
# 2. If a candidate is found in our library dependencies, that
# 2. If a candidate is found within libc, it should be dropped
# and resolved automatically by the dynamic linker, unless
# keep_libc is enabled.
# 3. If a candidate is found in our library dependencies, that
# dependency should be added to rpath.
# 3. If a candidate is found in libc, it will be correctly
# resolved by the dynamic linker automatically.
# 4. If all of the above fail, libc dependencies should still be
# considered found. This is in contrast to step 2, because
# enabling keep_libc should allow libc to be found in step 3
# if possible to preserve its presence in rpath.
#
# These conditions are checked in this order, because #2
# and #3 may both be true. In that case, we still want to
# add the dependency to rpath, as the original binary
# presumably had it and this should be preserved.
is_libc = (libc_lib / candidate).is_file()
if candidate.is_absolute() and candidate.is_file():
was_found = True
break
elif is_libc and not keep_libc:
was_found = True
break
elif found_dependency := find_dependency(candidate.name, file_arch, file_osabi):
rpath.append(found_dependency)
dependencies.append(Dependency(path, candidate, found=True))
print(f" {candidate} -> found: {found_dependency}")
was_found = True
break
elif (libc_lib / candidate).is_file():
elif is_libc and keep_libc:
was_found = True
break
@ -306,6 +316,7 @@ def auto_patchelf(
recursive: bool = True,
ignore_missing: list[str] = [],
append_rpaths: list[Path] = [],
keep_libc: bool = False,
extra_args: list[str] = []) -> None:
if not paths_to_patch:
@ -319,7 +330,7 @@ def auto_patchelf(
dependencies = []
for path in chain.from_iterable(glob(p, '*', recursive) for p in paths_to_patch):
if not path.is_symlink() and path.is_file():
dependencies += auto_patchelf_file(path, runtime_deps, append_rpaths, extra_args)
dependencies += auto_patchelf_file(path, runtime_deps, append_rpaths, keep_libc, extra_args)
missing = [dep for dep in dependencies if not dep.found]
@ -377,6 +388,12 @@ def main() -> None:
type=Path,
help="Paths to append to all runtime paths unconditionally",
)
parser.add_argument(
"--keep-libc",
dest="keep_libc",
action="store_true",
help="Attempt to search for and relink libc dependencies.",
)
parser.add_argument(
"--extra-args",
# Undocumented Python argparse feature: consume all remaining arguments
@ -398,6 +415,7 @@ def main() -> None:
args.recursive,
args.ignore_missing,
append_rpaths=args.append_rpaths,
keep_libc=args.keep_libc,
extra_args=args.extra_args)

View File

@ -58,11 +58,13 @@ autoPatchelf() {
local appendRunpathsArray=( "${appendRunpaths[@]}" )
local runtimeDependenciesArray=( "${runtimeDependencies[@]}" )
local patchelfFlagsArray=( "${patchelfFlags[@]}" )
local autoPatchelfFlagsArray=( "${autoPatchelfFlags[@]}" )
else
readarray -td' ' ignoreMissingDepsArray < <(echo -n "$autoPatchelfIgnoreMissingDeps")
local appendRunpathsArray=($appendRunpaths)
local runtimeDependenciesArray=($runtimeDependencies)
local patchelfFlagsArray=($patchelfFlags)
local autoPatchelfFlagsArray=($autoPatchelfFlags)
fi
# Check if ignoreMissingDepsArray contains "1" and if so, replace it with
@ -85,6 +87,7 @@ autoPatchelf() {
"${extraAutoPatchelfLibs[@]}" \
--runtime-dependencies "${runtimeDependenciesArray[@]/%//lib}" \
--append-rpaths "${appendRunpathsArray[@]}" \
"${autoPatchelfFlagsArray[@]}" \
--extra-args "${patchelfFlagsArray[@]}"
}

View File

@ -2,6 +2,11 @@ preConfigurePhases="${preConfigurePhases:-} autoreconfPhase"
autoreconfPhase() {
runHook preAutoreconf
autoreconf ${autoreconfFlags:---install --force --verbose}
local flagsArray=()
: "${autoreconfFlags:=--install --force --verbose}"
concatTo flagsArray autoreconfFlags
autoreconf "${flagsArray[@]}"
runHook postAutoreconf
}

View File

@ -0,0 +1,45 @@
{
lib,
stdenv,
fetchurl,
dpkg,
autoPatchelfHook,
}:
let
amdgpuVersion = "6.1.3";
ubuntuVersion = "22.04";
in
stdenv.mkDerivation (finalAttrs: {
pname = "amdenc";
version = "1.0-1787253";
src = fetchurl {
url = "https://repo.radeon.com/amdgpu/${amdgpuVersion}/ubuntu/pool/proprietary/liba/libamdenc-amdgpu-pro/libamdenc-amdgpu-pro_${finalAttrs.version}.${ubuntuVersion}_amd64.deb";
hash = "sha256-RSkWQ3g++uKVrk5J9R8WA6qL0f+B2z8/mlflQ/cQZcg=";
};
nativeBuildInputs = [
dpkg
autoPatchelfHook
];
buildInputs = [ stdenv.cc.cc.lib ];
installPhase = ''
runHook preInstall
install -Dm755 opt/amdgpu-pro/lib/x86_64-linux-gnu/* -t $out/lib
runHook postInstall
'';
meta = {
description = "AMD Encode Core Library";
homepage = "https://www.amd.com/en/support/download/drivers.html";
license = lib.licenses.unfree;
platforms = [ "x86_64-linux" ];
sourceProvenance = [ lib.sourceTypes.binaryNativeCode ];
maintainers = with lib.maintainers; [ jopejoe1 ];
};
})

View File

@ -0,0 +1,54 @@
{
lib,
stdenv,
fetchurl,
dpkg,
libdrm,
amdenc,
autoPatchelfHook,
}:
let
amdgpuVersion = "6.1.3";
ubuntuVersion = "22.04";
in
stdenv.mkDerivation (finalAttrs: {
pname = "amf";
version = "1.4.34-1787253";
src = fetchurl {
url = "https://repo.radeon.com/amdgpu/${amdgpuVersion}/ubuntu/pool/proprietary/a/amf-amdgpu-pro/amf-amdgpu-pro_${finalAttrs.version}.${ubuntuVersion}_amd64.deb";
hash = "sha256-5sMI0ktqQDTu5xOKP9T9vjaSIHQizF1wHhqJcVnY40c=";
};
nativeBuildInputs = [
dpkg
autoPatchelfHook
];
buildInputs = [
libdrm
amdenc
];
installPhase = ''
runHook preInstall
install -Dm755 opt/amdgpu-pro/lib/x86_64-linux-gnu/* -t $out/lib
runHook postInstall
'';
preFixup = ''
patchelf $out/lib/* --add-needed libamdenc64.so
'';
meta = {
description = "AMD's closed source Advanced Media Framework (AMF) driver";
homepage = "https://www.amd.com/en/support/download/drivers.html";
license = lib.licenses.unfree;
platforms = [ "x86_64-linux" ];
sourceProvenance = [ lib.sourceTypes.binaryNativeCode ];
maintainers = with lib.maintainers; [ jopejoe1 ];
};
})

View File

@ -15,6 +15,11 @@
, readline
, systemdMinimal
, udev
# Test gobject-introspection instead of pygobject because the latter
# causes an infinite recursion.
, gobject-introspection
, buildPackages
, installTests ? lib.meta.availableOn stdenv.hostPlatform gobject-introspection && stdenv.hostPlatform.emulatorAvailable buildPackages
}:
stdenv.mkDerivation (finalAttrs: {
@ -60,7 +65,8 @@ stdenv.mkDerivation (finalAttrs: {
python3.pkgs.wrapPython
];
outputs = [ "out" "dev" "test" ];
outputs = [ "out" "dev" ]
++ lib.optional installTests "test";
postPatch = ''
substituteInPlace tools/hid2hci.rules \
@ -122,22 +128,6 @@ stdenv.mkDerivation (finalAttrs: {
];
in
''
mkdir -p $test/{bin,test}
cp -a test $test
pushd $test/test
for t in \
list-devices \
monitor-bluetooth \
simple-agent \
test-adapter \
test-device \
test-thermometer \
; do
ln -s ../test/$t $test/bin/bluez-$t
done
popd
wrapPythonProgramsIn $test/test "$test/test ${toString pythonPath}"
# for bluez4 compatibility for NixOS
mkdir $out/sbin
ln -s ../libexec/bluetooth/bluetoothd $out/sbin/bluetoothd
@ -157,6 +147,22 @@ stdenv.mkDerivation (finalAttrs: {
install -Dm755 tools/$filename $out/bin/$filename
done
install -Dm755 attrib/gatttool $out/bin/gatttool
'' + lib.optionalString installTests ''
mkdir -p $test/{bin,test}
cp -a test $test
pushd $test/test
for t in \
list-devices \
monitor-bluetooth \
simple-agent \
test-adapter \
test-device \
test-thermometer \
; do
ln -s ../test/$t $test/bin/bluez-$t
done
popd
wrapPythonProgramsIn $test/test "$test/test ${toString pythonPath}"
'';
enableParallelBuilding = true;

View File

@ -21,6 +21,7 @@
, unzip
, wayland
, wayland-protocols
, wayland-scanner
, xcbutilerrors
, xcbutilimage
, xcbutilwm
@ -79,6 +80,7 @@ stdenv.mkDerivation {
pandoc
pkg-config
unzip
wayland-scanner
];
buildInputs = [

View File

@ -29,6 +29,7 @@
vulkan-headers,
vulkan-loader,
wayland,
wayland-scanner,
wrapGAppsHook3,
wxGTK32,
zarchive,
@ -73,6 +74,7 @@ in stdenv.mkDerivation (finalAttrs: {
ninja
pkg-config
wxGTK32
wayland-scanner
];
buildInputs = [

View File

@ -38,7 +38,7 @@ cmakeConfigurePhase() {
fi
if [ -z "${dontAddPrefix-}" ]; then
cmakeFlags="-DCMAKE_INSTALL_PREFIX=$prefix $cmakeFlags"
prependToVar cmakeFlags "-DCMAKE_INSTALL_PREFIX=$prefix"
fi
# We should set the proper `CMAKE_SYSTEM_NAME`.
@ -47,21 +47,21 @@ cmakeConfigurePhase() {
# Unfortunately cmake seems to expect absolute paths for ar, ranlib, and
# strip. Otherwise they are taken to be relative to the source root of the
# package being built.
cmakeFlags="-DCMAKE_CXX_COMPILER=$CXX $cmakeFlags"
cmakeFlags="-DCMAKE_C_COMPILER=$CC $cmakeFlags"
cmakeFlags="-DCMAKE_AR=$(command -v $AR) $cmakeFlags"
cmakeFlags="-DCMAKE_RANLIB=$(command -v $RANLIB) $cmakeFlags"
cmakeFlags="-DCMAKE_STRIP=$(command -v $STRIP) $cmakeFlags"
prependToVar cmakeFlags "-DCMAKE_CXX_COMPILER=$CXX"
prependToVar cmakeFlags "-DCMAKE_C_COMPILER=$CC"
prependToVar cmakeFlags "-DCMAKE_AR=$(command -v $AR)"
prependToVar cmakeFlags "-DCMAKE_RANLIB=$(command -v $RANLIB)"
prependToVar cmakeFlags "-DCMAKE_STRIP=$(command -v $STRIP)"
# on macOS we want to prefer Unix-style headers to Frameworks
# because we usually do not package the framework
cmakeFlags="-DCMAKE_FIND_FRAMEWORK=LAST $cmakeFlags"
prependToVar cmakeFlags "-DCMAKE_FIND_FRAMEWORK=LAST"
# we never want to use the global macOS SDK
cmakeFlags="-DCMAKE_OSX_SYSROOT= $cmakeFlags"
prependToVar cmakeFlags "-DCMAKE_OSX_SYSROOT="
# correctly detect our clang compiler
cmakeFlags="-DCMAKE_POLICY_DEFAULT_CMP0025=NEW $cmakeFlags"
prependToVar cmakeFlags "-DCMAKE_POLICY_DEFAULT_CMP0025=NEW"
# This installs shared libraries with a fully-specified install
# name. By default, cmake installs shared libraries with just the
@ -70,7 +70,7 @@ cmakeConfigurePhase() {
# libraries are in a system path or in the same directory as the
# executable. This flag makes the shared library accessible from its
# nix/store directory.
cmakeFlags="-DCMAKE_INSTALL_NAME_DIR=${!outputLib}/lib $cmakeFlags"
prependToVar cmakeFlags "-DCMAKE_INSTALL_NAME_DIR=${!outputLib}/lib"
# The docdir flag needs to include PROJECT_NAME as per GNU guidelines,
# try to extract it from CMakeLists.txt.
@ -93,39 +93,42 @@ cmakeConfigurePhase() {
# This ensures correct paths with multiple output derivations
# It requires the project to use variables from GNUInstallDirs module
# https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html
cmakeFlags="-DCMAKE_INSTALL_BINDIR=${!outputBin}/bin $cmakeFlags"
cmakeFlags="-DCMAKE_INSTALL_SBINDIR=${!outputBin}/sbin $cmakeFlags"
cmakeFlags="-DCMAKE_INSTALL_INCLUDEDIR=${!outputInclude}/include $cmakeFlags"
cmakeFlags="-DCMAKE_INSTALL_OLDINCLUDEDIR=${!outputInclude}/include $cmakeFlags"
cmakeFlags="-DCMAKE_INSTALL_MANDIR=${!outputMan}/share/man $cmakeFlags"
cmakeFlags="-DCMAKE_INSTALL_INFODIR=${!outputInfo}/share/info $cmakeFlags"
cmakeFlags="-DCMAKE_INSTALL_DOCDIR=${!outputDoc}/share/doc/${shareDocName} $cmakeFlags"
cmakeFlags="-DCMAKE_INSTALL_LIBDIR=${!outputLib}/lib $cmakeFlags"
cmakeFlags="-DCMAKE_INSTALL_LIBEXECDIR=${!outputLib}/libexec $cmakeFlags"
cmakeFlags="-DCMAKE_INSTALL_LOCALEDIR=${!outputLib}/share/locale $cmakeFlags"
prependToVar cmakeFlags "-DCMAKE_INSTALL_BINDIR=${!outputBin}/bin"
prependToVar cmakeFlags "-DCMAKE_INSTALL_SBINDIR=${!outputBin}/sbin"
prependToVar cmakeFlags "-DCMAKE_INSTALL_INCLUDEDIR=${!outputInclude}/include"
prependToVar cmakeFlags "-DCMAKE_INSTALL_OLDINCLUDEDIR=${!outputInclude}/include"
prependToVar cmakeFlags "-DCMAKE_INSTALL_MANDIR=${!outputMan}/share/man"
prependToVar cmakeFlags "-DCMAKE_INSTALL_INFODIR=${!outputInfo}/share/info"
prependToVar cmakeFlags "-DCMAKE_INSTALL_DOCDIR=${!outputDoc}/share/doc/${shareDocName}"
prependToVar cmakeFlags "-DCMAKE_INSTALL_LIBDIR=${!outputLib}/lib"
prependToVar cmakeFlags "-DCMAKE_INSTALL_LIBEXECDIR=${!outputLib}/libexec"
prependToVar cmakeFlags "-DCMAKE_INSTALL_LOCALEDIR=${!outputLib}/share/locale"
# Dont build tests when doCheck = false
if [ -z "${doCheck-}" ]; then
cmakeFlags="-DBUILD_TESTING=OFF $cmakeFlags"
prependToVar cmakeFlags "-DBUILD_TESTING=OFF"
fi
# Always build Release, to ensure optimisation flags
cmakeFlags="-DCMAKE_BUILD_TYPE=${cmakeBuildType:-Release} $cmakeFlags"
prependToVar cmakeFlags "-DCMAKE_BUILD_TYPE=${cmakeBuildType:-Release}"
# Disable user package registry to avoid potential side effects
# and unecessary attempts to access non-existent home folder
# https://cmake.org/cmake/help/latest/manual/cmake-packages.7.html#disabling-the-package-registry
cmakeFlags="-DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON $cmakeFlags"
cmakeFlags="-DCMAKE_FIND_USE_PACKAGE_REGISTRY=OFF $cmakeFlags"
cmakeFlags="-DCMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY=OFF $cmakeFlags"
prependToVar cmakeFlags "-DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON"
prependToVar cmakeFlags "-DCMAKE_FIND_USE_PACKAGE_REGISTRY=OFF"
prependToVar cmakeFlags "-DCMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY=OFF"
if [ "${buildPhase-}" = ninjaBuildPhase ]; then
cmakeFlags="-GNinja $cmakeFlags"
prependToVar cmakeFlags "-GNinja"
fi
echo "cmake flags: $cmakeFlags ${cmakeFlagsArray[@]}"
local flagsArray=()
concatTo flagsArray cmakeFlags cmakeFlagsArray
cmake "$cmakeDir" $cmakeFlags "${cmakeFlagsArray[@]}"
echoCmd 'cmake flags' "${flagsArray[@]}"
cmake "$cmakeDir" "${flagsArray[@]}"
if ! [[ -v enableParallelBuilding ]]; then
enableParallelBuilding=1
@ -147,38 +150,38 @@ fi
addEnvHooks "$targetOffset" addCMakeParams
makeCmakeFindLibs(){
isystem_seen=
iframework_seen=
for flag in ${NIX_CFLAGS_COMPILE-} ${NIX_LDFLAGS-}; do
if test -n "$isystem_seen" && test -d "$flag"; then
isystem_seen=
addToSearchPath CMAKE_INCLUDE_PATH "${flag}"
elif test -n "$iframework_seen" && test -d "$flag"; then
iframework_seen=
addToSearchPath CMAKE_FRAMEWORK_PATH "${flag}"
else
isystem_seen=
iframework_seen=
case $flag in
-I*)
addToSearchPath CMAKE_INCLUDE_PATH "${flag:2}"
;;
-L*)
addToSearchPath CMAKE_LIBRARY_PATH "${flag:2}"
;;
-F*)
addToSearchPath CMAKE_FRAMEWORK_PATH "${flag:2}"
;;
-isystem)
isystem_seen=1
;;
-iframework)
iframework_seen=1
;;
esac
fi
done
makeCmakeFindLibs() {
isystem_seen=
iframework_seen=
for flag in ${NIX_CFLAGS_COMPILE-} ${NIX_LDFLAGS-}; do
if test -n "$isystem_seen" && test -d "$flag"; then
isystem_seen=
addToSearchPath CMAKE_INCLUDE_PATH "${flag}"
elif test -n "$iframework_seen" && test -d "$flag"; then
iframework_seen=
addToSearchPath CMAKE_FRAMEWORK_PATH "${flag}"
else
isystem_seen=
iframework_seen=
case $flag in
-I*)
addToSearchPath CMAKE_INCLUDE_PATH "${flag:2}"
;;
-L*)
addToSearchPath CMAKE_LIBRARY_PATH "${flag:2}"
;;
-F*)
addToSearchPath CMAKE_FRAMEWORK_PATH "${flag:2}"
;;
-isystem)
isystem_seen=1
;;
-iframework)
iframework_seen=1
;;
esac
fi
done
}
# not using setupHook, because it could be a setupHook adding additional

View File

@ -1,4 +1,5 @@
{ stdenv
, buildPackages
, edid-decode
, fetchFromGitHub
, meson
@ -12,6 +13,7 @@
, vulkan-headers
, wayland
, wayland-protocols
, wayland-scanner
, libxkbcommon
, glm
, gbenchmark
@ -30,7 +32,6 @@
, lcms
, lib
, makeBinaryWrapper
, patchelfUnstable
, nix-update-script
, enableExecutable ? true
, enableWsi ? true
@ -45,14 +46,14 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "gamescope";
version = "3.14.29";
version = "3.15.2";
src = fetchFromGitHub {
owner = "ValveSoftware";
repo = "gamescope";
rev = "refs/tags/${finalAttrs.version}";
fetchSubmodules = true;
hash = "sha256-q3HEbFqUeNczKYUlou+quxawCTjpM5JNLrML84tZVYE=";
hash = "sha256-g6H68dYMmpQYlwhZ6b84yY/qbAP18iNrmYOWf9rL5gc=";
};
patches = [
@ -90,6 +91,7 @@ stdenv.mkDerivation (finalAttrs: {
meson
pkg-config
ninja
wayland-scanner
# For `libdisplay-info`
python3
hwdata
@ -138,7 +140,7 @@ stdenv.mkDerivation (finalAttrs: {
postInstall = lib.optionalString enableExecutable ''
# using patchelf unstable because the stable version corrupts the binary
${lib.getExe patchelfUnstable} $out/bin/gamescope \
${lib.getExe buildPackages.patchelfUnstable} $out/bin/gamescope \
--add-rpath ${vulkan-loader}/lib --add-needed libvulkan.so.1
# --debug-layers flag expects these in the path

View File

@ -52,8 +52,8 @@ python3Packages.buildPythonApplication rec {
];
# wrapGAppsHook4 propogates gtk4 -- which provides gtk4-update-icon-cache instead
preInstall = ''
substituteInPlace /build/source/meson_post_install.py \
postPatch = ''
substituteInPlace meson_post_install.py \
--replace-fail gtk-update-icon-cache gtk4-update-icon-cache
'';

View File

@ -5,6 +5,7 @@
, cmake
, wayland
, wayland-protocols
, wayland-scanner
, hyprlang
, sdbus-cpp
, systemd
@ -24,6 +25,7 @@ stdenv.mkDerivation (finalAttrs: {
nativeBuildInputs = [
cmake
pkg-config
wayland-scanner
];
buildInputs = [

View File

@ -2,6 +2,7 @@
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
pkg-config,
makeWrapper,
cmake,
@ -75,9 +76,17 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-deu8zvgseDg2gQEnZiCda4TrbA6pleE9iItoZlsoMtE=";
};
# Fixes broken OpenGL applications on Apple silicon (Asahi Linux)
# Based on commit https://github.com/hyprwm/Hyprland/commit/279ec1c291021479b050c83a0435ac7076c1aee0
patches = [ ./asahi-fix.patch ];
patches = [
# Fixes broken OpenGL applications on Apple silicon (Asahi Linux)
# Based on commit https://github.com/hyprwm/Hyprland/commit/279ec1c291021479b050c83a0435ac7076c1aee0
./asahi-fix.patch
# https://github.com/hyprwm/Hyprland/pull/7467
(fetchpatch {
url = "https://github.com/hyprwm/Hyprland/commit/a437e44a6af8e8f42966ffe3a26c1d562fce6b33.diff";
hash = "sha256-Y0P4rY6HyPN8Y5Kowlgyj0PiAHh6nqPRAQ4iFT0l4E8=";
})
];
postPatch = ''
# Fix hardcoded paths to /usr installation

View File

@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
patchPhase = ''
runHook prePatch
patchShebangs --build /build/source/scripts/*
patchShebangs --build scripts/*
runHook postPatch
'';

View File

@ -19,18 +19,18 @@
, withTracing ? lib.meta.availableOn stdenv.hostPlatform lttng-ust
, lttng-ust # withTracing
, withQcam ? false
, qt5 # withQcam
, qt6 # withQcam
, libtiff # withQcam
}:
stdenv.mkDerivation rec {
pname = "libcamera";
version = "0.3.0";
version = "0.3.1";
src = fetchgit {
url = "https://git.libcamera.org/libcamera/libcamera.git";
rev = "v${version}";
hash = "sha256-eCtOtdjpwn0S56ZyRVdG1QCBk1KGPh8YTXD50xev7Bc=";
hash = "sha256-vB7dxBDG0y8YvG/2vCgrhyBJmumGG66Vl7yZwprxj5c=";
};
outputs = [ "out" "dev" ];
@ -76,7 +76,7 @@ stdenv.mkDerivation rec {
gtest
] ++ lib.optionals withTracing [ lttng-ust ]
++ lib.optionals withQcam [ libtiff qt5.qtbase qt5.qttools ];
++ lib.optionals withQcam [ libtiff qt6.qtbase qt6.qttools ];
nativeBuildInputs = [
meson
@ -90,7 +90,7 @@ stdenv.mkDerivation rec {
graphviz
doxygen
openssl
] ++ lib.optional withQcam qt5.wrapQtAppsHook;
] ++ lib.optional withQcam qt6.wrapQtAppsHook;
mesonFlags = [
"-Dv4l2=true"

View File

@ -6,11 +6,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "libedit";
version = "20240517-3.1";
version = "20240808-3.1";
src = fetchurl {
url = "https://thrysoee.dk/editline/libedit-${finalAttrs.version}.tar.gz";
hash = "sha256-OkiQl7tBFUlfO9ha54KFK3CXxVbZUACI10tvo429Ev8=";
hash = "sha256-XwVzNJ13xKSJZxkc3WY03Xql9jmMalf+A3zAJpbWCZ8=";
};
outputs = [ "out" "dev" "man" ];

View File

@ -0,0 +1,53 @@
{
stdenv,
fetchFromGitHub,
gitUpdater,
testers,
lib,
cmake,
ninja,
pkg-config,
abseil-cpp_202103,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "libilbc";
version = "3.0.4";
src = fetchFromGitHub {
owner = "TimothyGu";
repo = "libilbc";
rev = "v${finalAttrs.version}";
hash = "sha256-GpvHDyvmWPxSt0K5PJQrTso61vGGWHkov7U9/LPrDBU=";
};
nativeBuildInputs = [
cmake
ninja
pkg-config
];
buildInputs = [ abseil-cpp_202103 ];
outputs = [
"out"
"bin"
"dev"
"doc"
];
passthru = {
updateScript = gitUpdater { rev-prefix = "v"; };
tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
};
meta = with lib; {
description = "Packaged version of iLBC codec from the WebRTC project";
homepage = "https://github.com/TimothyGu/libilbc";
changelog = "https://github.com/TimothyGu/libilbc/blob/v${finalAttrs.version}/NEWS.md";
maintainers = with maintainers; [ jopejoe1 ];
pkgConfigModules = [ "lilbc" ];
platforms = platforms.all;
license = licenses.bsd3;
};
})

View File

@ -0,0 +1,45 @@
{
lib,
fetchFromGitHub,
libwacom,
}:
let
libwacom-surface = fetchFromGitHub {
owner = "linux-surface";
repo = "libwacom-surface";
rev = "v2.12.2-1";
hash = "sha256-MreAwOaT8pd5NMWBpZDBbPz73DhcChgeXXBNyjw99Pw=";
};
in
libwacom.overrideAttrs (prevAttrs: {
pname = "libwacom-surface";
# These patches will not be included upstream:
# https://github.com/linux-surface/libwacom/issues/2
patches =
(prevAttrs.patches or [ ])
++ map (p: "${libwacom-surface}/patches/v2/${p}") [
"0001-Add-support-for-BUS_VIRTUAL.patch"
"0002-Add-support-for-Intel-Management-Engine-bus.patch"
"0003-data-Add-Microsoft-Surface-Pro-3.patch"
"0004-data-Add-Microsoft-Surface-Pro-4.patch"
"0005-data-Add-Microsoft-Surface-Pro-5.patch"
"0006-data-Add-Microsoft-Surface-Pro-6.patch"
"0007-data-Add-Microsoft-Surface-Pro-7.patch"
"0008-data-Add-Microsoft-Surface-Pro-7.patch"
"0009-data-Add-Microsoft-Surface-Pro-8.patch"
"0010-data-Add-Microsoft-Surface-Pro-9.patch"
"0011-data-Add-Microsoft-Surface-Book.patch"
"0012-data-Add-Microsoft-Surface-Book-2-13.5.patch"
"0013-data-Add-Microsoft-Surface-Book-2-15.patch"
"0014-data-Add-Microsoft-Surface-Book-3-13.5.patch"
"0015-data-Add-Microsoft-Surface-Book-3-15.patch"
"0016-data-Add-Microsoft-Surface-Laptop-Studio.patch"
];
meta = prevAttrs.meta // {
homepage = "https://github.com/linux-surface/libwacom-surface";
maintainers = with lib.maintainers; [ dotlambda ];
};
})

View File

@ -0,0 +1,80 @@
{
stdenv,
lib,
fetchFromGitHub,
meson,
ninja,
glib,
pkg-config,
udev,
libevdev,
libgudev,
python3,
valgrind,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "libwacom";
version = "2.12.2";
outputs = [
"out"
"dev"
];
src = fetchFromGitHub {
owner = "linuxwacom";
repo = "libwacom";
rev = "libwacom-${finalAttrs.version}";
hash = "sha256-dxnXh+O/8q8ShsPbpqvaBPNQR6lJBphBolYTmcJEF/0=";
};
postPatch = ''
patchShebangs test/check-files-in-git.sh
'';
nativeBuildInputs = [
pkg-config
meson
ninja
python3
];
buildInputs = [
glib
udev
libevdev
libgudev
];
mesonFlags = [
(lib.mesonEnable "tests" finalAttrs.doCheck)
(lib.mesonOption "sysconfdir" "/etc")
];
# Tests are in the `tests` pass-through derivation because one of them is flaky, frequently causing build failures.
# See https://github.com/NixOS/nixpkgs/issues/328140
doCheck = false;
nativeCheckInputs = [
valgrind
(python3.withPackages (ps: [
ps.libevdev
ps.pytest
ps.pyudev
]))
];
passthru = {
tests = finalAttrs.finalPackage.overrideAttrs { doCheck = true; };
};
meta = {
platforms = lib.platforms.linux;
homepage = "https://linuxwacom.github.io/";
changelog = "https://github.com/linuxwacom/libwacom/blob/${finalAttrs.src.rev}/NEWS";
description = "Libraries, configuration, and diagnostic tools for Wacom tablets running under Linux";
maintainers = lib.teams.freedesktop.members;
license = lib.licenses.hpnd;
};
})

View File

@ -496,7 +496,7 @@ let
''${enableParallelBuilding:+-j''${NIX_BUILD_CORES}}
SHELL=$SHELL
)
_accumFlagsArray makeFlags makeFlagsArray buildFlags buildFlagsArray
concatTo flagsArray makeFlags makeFlagsArray buildFlags buildFlagsArray
echoCmd 'build flags' "''${flagsArray[@]}"
make build "''${flagsArray[@]}"
unset flagsArray

View File

@ -21,11 +21,10 @@ mesonConfigurePhase() {
"--localedir=${!outputLib}/share/locale"
"-Dauto_features=${mesonAutoFeatures:-enabled}"
"-Dwrap_mode=${mesonWrapMode:-nodownload}"
${crossMesonFlags}
"--buildtype=${mesonBuildType:-plain}"
)
_accumFlagsArray mesonFlags mesonFlagsArray
concatTo flagsArray mesonFlags mesonFlagsArray
echoCmd 'mesonConfigurePhase flags' "${flagsArray[@]}"
@ -50,7 +49,8 @@ mesonConfigurePhase() {
mesonCheckPhase() {
runHook preCheck
local flagsArray=($mesonCheckFlags "${mesonCheckFlagsArray[@]}")
local flagsArray=()
concatTo flagsArray mesonCheckFlags mesonCheckFlagsArray
echoCmd 'mesonCheckPhase flags' "${flagsArray[@]}"
meson test --no-rebuild --print-errorlogs "${flagsArray[@]}"
@ -64,12 +64,9 @@ mesonInstallPhase() {
local flagsArray=()
if [[ -n "$mesonInstallTags" ]]; then
flagsArray+=("--tags" "${mesonInstallTags// /,}")
flagsArray+=("--tags" "$(concatStringsSep "," mesonInstallTags)")
fi
flagsArray+=(
$mesonInstallFlags
"${mesonInstallFlagsArray[@]}"
)
concatTo flagsArray mesonInstallFlags mesonInstallFlagsArray
echoCmd 'mesonInstallPhase flags' "${flagsArray[@]}"
meson install --no-rebuild "${flagsArray[@]}"

View File

@ -32,6 +32,7 @@
, udev
, wayland
, wayland-protocols
, wayland-scanner
, wrapGAppsHook3
, xorgserver
, xwayland
@ -68,6 +69,7 @@ stdenv.mkDerivation rec {
wrapGAppsHook3
xorgserver # for cvt command
gobject-introspection
wayland-scanner
];
buildInputs = [

View File

@ -147,9 +147,14 @@ in {
find "$out" -type f -exec remove-references-to -t ${stdenv.cc} '{}' +
'';
# check that the above patching actually works
disallowedRequisites = [ stdenv.cc ] ++ lib.optional (lua != codegenLua) codegenLua;
outputChecks = let
disallowedRequisites = [ stdenv.cc ] ++ lib.optional (lua != codegenLua) codegenLua;
in {
out = { inherit disallowedRequisites; };
debug = { inherit disallowedRequisites; };
};
cmakeFlagsArray = [
cmakeFlags = [
# Don't use downloaded dependencies. At the end of the configurePhase one
# can spot that cmake says this option was "not used by the project".
# That's because all dependencies were found and
@ -157,15 +162,13 @@ in {
"-DUSE_BUNDLED=OFF"
]
++ lib.optional (!lua.pkgs.isLuaJIT) "-DPREFER_LUA=ON"
;
++ lib.optionals lua.pkgs.isLuaJIT [
"-DLUAC_PRG=${codegenLua}/bin/luajit -b -s %s -"
"-DLUA_GEN_PRG=${codegenLua}/bin/luajit"
"-DLUA_PRG=${neovimLuaEnvOnBuild}/bin/luajit"
];
preConfigure = lib.optionalString lua.pkgs.isLuaJIT ''
cmakeFlagsArray+=(
"-DLUAC_PRG=${codegenLua}/bin/luajit -b -s %s -"
"-DLUA_GEN_PRG=${codegenLua}/bin/luajit"
"-DLUA_PRG=${neovimLuaEnvOnBuild}/bin/luajit"
)
'' + lib.optionalString stdenv.isDarwin ''
preConfigure = lib.optionalString stdenv.isDarwin ''
substituteInPlace src/nvim/CMakeLists.txt --replace " util" ""
'' + ''
mkdir -p $out/lib/nvim/parser

View File

@ -1,3 +1,5 @@
# shellcheck shell=bash
ninjaBuildPhase() {
runHook preBuild
@ -9,9 +11,9 @@ ninjaBuildPhase() {
fi
local flagsArray=(
-j$buildCores
$ninjaFlags "${ninjaFlagsArray[@]}"
"-j$buildCores"
)
concatTo flagsArray ninjaFlags ninjaFlagsArray
echoCmd 'build flags' "${flagsArray[@]}"
TERM=dumb ninja "${flagsArray[@]}"
@ -24,7 +26,7 @@ ninjaCheckPhase() {
if [ -z "${checkTarget:-}" ]; then
if ninja -t query test >/dev/null 2>&1; then
checkTarget=test
checkTarget="test"
fi
fi
@ -38,10 +40,9 @@ ninjaCheckPhase() {
fi
local flagsArray=(
-j$buildCores
$ninjaFlags "${ninjaFlagsArray[@]}"
$checkTarget
"-j$buildCores"
)
concatTo flagsArray ninjaFlags ninjaFlagsArray checkTarget
echoCmd 'check flags' "${flagsArray[@]}"
TERM=dumb ninja "${flagsArray[@]}"
@ -62,10 +63,10 @@ ninjaInstallPhase() {
# shellcheck disable=SC2086
local flagsArray=(
-j$buildCores
$ninjaFlags "${ninjaFlagsArray[@]}"
${installTargets:-install}
"-j$buildCores"
)
: "${installTargets:=install}"
concatTo flagsArray ninjaFlags ninjaFlagsArray installTargets
echoCmd 'install flags' "${flagsArray[@]}"
TERM=dumb ninja "${flagsArray[@]}"
@ -73,14 +74,14 @@ ninjaInstallPhase() {
runHook postInstall
}
if [ -z "${dontUseNinjaBuild-}" -a -z "${buildPhase-}" ]; then
if [ -z "${dontUseNinjaBuild-}" ] && [ -z "${buildPhase-}" ]; then
buildPhase=ninjaBuildPhase
fi
if [ -z "${dontUseNinjaCheck-}" -a -z "${checkPhase-}" ]; then
if [ -z "${dontUseNinjaCheck-}" ] && [ -z "${checkPhase-}" ]; then
checkPhase=ninjaCheckPhase
fi
if [ -z "${dontUseNinjaInstall-}" -a -z "${installPhase-}" ]; then
if [ -z "${dontUseNinjaInstall-}" ] && [ -z "${installPhase-}" ]; then
installPhase=ninjaInstallPhase
fi

View File

@ -13,6 +13,7 @@
, udev
, wayland
, wayland-protocols
, wayland-scanner
, wlroots_0_18
, xwayland
, zig_0_13
@ -39,7 +40,7 @@ stdenv.mkDerivation (finalAttrs: {
nativeBuildInputs = [
pkg-config
wayland
wayland-scanner
xwayland
zig_0_13.hook
]
@ -52,6 +53,7 @@ stdenv.mkDerivation (finalAttrs: {
libxkbcommon
pixman
udev
wayland
wayland-protocols
wlroots_0_18
] ++ lib.optional xwaylandSupport libX11;

View File

@ -14,6 +14,7 @@
alsa-lib,
makeWrapper,
docutils,
wayland-scanner,
}:
let
version = "1.0_beta15";
@ -45,6 +46,7 @@ stdenv.mkDerivation {
ninja
pkg-config
makeWrapper
wayland-scanner
];
postFixup = ''

View File

@ -7,6 +7,7 @@
, libpulseaudio
, wayland
, wayland-protocols
, wayland-scanner
}:
stdenv.mkDerivation {
pname = "sway-audio-idle-inhibit";
@ -20,7 +21,7 @@ stdenv.mkDerivation {
};
nativeBuildInputs = [
meson ninja pkg-config
meson ninja pkg-config wayland-scanner
];
buildInputs = [

View File

@ -50,11 +50,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "unbound";
version = "1.20.0";
version = "1.21.0";
src = fetchurl {
url = "https://nlnetlabs.nl/downloads/unbound/unbound-${finalAttrs.version}.tar.gz";
hash = "sha256-VrTO7TNjlSIAD9lndVdt34eCuzYXYQcV1/Hnd8XsHb8=";
hash = "sha256-59yn1rD4G9+m+mTr8QU7WpmaWukniofvGCQlBn6hRSE=";
};
outputs = [ "out" "lib" "man" ]; # "dev" would only split ~20 kB

View File

@ -1,6 +1,12 @@
_handleCmdOutput(){
local versionOutput
versionOutput="$(env --chdir=/ --argv0="$(basename "$1")" --ignore-environment "$@" 2>&1 || true)"
versionOutput="$(env \
--chdir=/ \
--argv0="$(basename "$1")" \
--ignore-environment \
"$@" 2>&1 \
| sed -e 's|@storeDir@/[^/ ]*/|{{storeDir}}/|g' \
|| true)"
if [[ "$versionOutput" =~ "$version" ]]; then
echoPrefix="Successfully managed to"
else

View File

@ -5,6 +5,9 @@
makeSetupHook {
name = "version-check-hook";
substitutions = {
storeDir = builtins.storeDir;
};
meta = {
description = "Lookup for $version in the output of --help and --version";
maintainers = with lib.maintainers; [ doronbehar ];

View File

@ -79,6 +79,7 @@
, unzip
, wayland
, wayland-protocols
, wayland-scanner
, wrapGAppsHook3
, writeShellScript
, xcbutilkeysyms
@ -120,8 +121,7 @@ stdenv.mkDerivation (finalAttrs: {
++ optionals chromecastSupport [ protobuf ]
++ optionals withQt5 [ libsForQt5.wrapQtAppsHook ]
++ optionals waylandSupport [
wayland
wayland-protocols
wayland-scanner
];
# VLC uses a *ton* of libraries for various pieces of functionality, many of

View File

@ -8,6 +8,7 @@
pkg-config,
scdoc,
wayland,
wayland-scanner,
wayland-protocols,
zig_0_12,
}:
@ -30,11 +31,12 @@ stdenv.mkDerivation (finalAttrs: {
nativeBuildInputs = [
pkg-config
scdoc
wayland
wayland-scanner
zig_0_12.hook
];
buildInputs = [
wayland
wayland-protocols
libxkbcommon
pam

View File

@ -10,6 +10,7 @@
, meson
, ninja
, pkg-config
, wayland-scanner
, udev
, unstableGitUpdater
, wayland
@ -34,6 +35,7 @@ stdenv.mkDerivation (finalAttrs: {
meson
ninja
pkg-config
wayland-scanner
];
buildInputs = [

View File

@ -10,6 +10,7 @@
stdenv,
wayland,
wayland-protocols,
wayland-scanner,
}:
let
pname = "wl-kbptr";
@ -30,6 +31,7 @@ stdenv.mkDerivation {
meson
ninja
pkg-config
wayland-scanner
];
buildInputs = [

View File

@ -7,6 +7,7 @@
pkg-config,
wayland,
wayland-protocols,
wayland-scanner,
}:
stdenv.mkDerivation rec {
pname = "wlinhibit";
@ -30,6 +31,7 @@ stdenv.mkDerivation rec {
meson
ninja
pkg-config
wayland-scanner
];
meta = {

View File

@ -19,6 +19,7 @@
, pkg-config
, pixman
, wayland
, wayland-scanner
, zlib
}:
stdenv.mkDerivation {
@ -36,6 +37,7 @@ stdenv.mkDerivation {
meson
ninja
pkg-config
wayland-scanner
];
buildInputs = [

View File

@ -50,7 +50,7 @@ stdenv.mkDerivation (finalAttrs: {
xcbutilimage
];
makeFlagsArray = [ "prefix=${placeholder "out"}" ];
makeFlags = [ "prefix=${placeholder "out"}" ];
meta = {
description = "Plain X11 emoji keyboard";

View File

@ -19,7 +19,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
dontBuild = true;
installTargets = "install_package";
installFlagsArray = "DESTDIR=${placeholder "out"}";
installFlags = "DESTDIR=${placeholder "out"}";
passthru.updateScript = nix-update-script { };

View File

@ -8,6 +8,7 @@
doxygen,
wrapQtAppsHook,
wrapGAppsHook3,
wayland-scanner,
dtkwidget,
qt5integration,
qt5platform-plugins,
@ -46,6 +47,7 @@ stdenv.mkDerivation rec {
doxygen
wrapQtAppsHook
wrapGAppsHook3
wayland-scanner
];
dontWrapGApps = true;

View File

@ -7,6 +7,7 @@
qtwayland,
wayland,
wayland-protocols,
wayland-scanner,
extra-cmake-modules,
deepin-wayland-protocols,
qttools,
@ -27,6 +28,7 @@ stdenv.mkDerivation rec {
cmake
extra-cmake-modules
qttools
wayland-scanner
];
buildInputs = [

View File

@ -50,6 +50,7 @@
, util-linux
, wayland
, wayland-protocols
, wayland-scanner
, writeText
, xorg
, zlib
@ -71,6 +72,7 @@ stdenv.mkDerivation rec {
gtk3
pkg-config
check
wayland-scanner
];
buildInputs = [

View File

@ -37,6 +37,7 @@
, gnome-settings-daemon
, xorgserver
, python3
, wayland-scanner
, wrapGAppsHook3
, gi-docgen
, sysprof
@ -111,6 +112,7 @@ stdenv.mkDerivation (finalAttrs: {
xvfb-run
pkg-config
python3
wayland-scanner
wrapGAppsHook3
gi-docgen
xorgserver

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