0
0
Fork 0
mirror of https://github.com/NixOS/nixpkgs.git synced 2025-07-14 06:00:33 +03:00

Merge staging-next into staging

This commit is contained in:
github-actions[bot] 2024-08-29 18:04:46 +00:00 committed by GitHub
commit eacf5283f3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
55 changed files with 669 additions and 267 deletions

View file

@ -120,5 +120,6 @@ jobs:
else else
exitCode=$? exitCode=$?
echo "To run locally: ./maintainers/scripts/check-by-name.sh $GITHUB_BASE_REF https://github.com/$GITHUB_REPOSITORY.git" echo "To run locally: ./maintainers/scripts/check-by-name.sh $GITHUB_BASE_REF https://github.com/$GITHUB_REPOSITORY.git"
echo "If you're having trouble, ping @NixOS/nixpkgs-check-by-name"
exit "$exitCode" exit "$exitCode"
fi fi

View file

@ -287,6 +287,43 @@ buildNpmPackage {
} }
``` ```
#### importNpmLock.buildNodeModules {#javascript-buildNpmPackage-importNpmLock.buildNodeModules}
`importNpmLock.buildNodeModules` returns a derivation with a pre-built `node_modules` directory, as imported by `importNpmLock`.
This is to be used together with `importNpmLock.hooks.linkNodeModulesHook` to facilitate `nix-shell`/`nix develop` based development workflows.
It accepts an argument with the following attributes:
`npmRoot` (Path; optional)
: Path to package directory containing the source tree. If not specified, the `package` and `packageLock` arguments must both be specified.
`package` (Attrset; optional)
: Parsed contents of `package.json`, as returned by `lib.importJSON ./my-package.json`. If not specified, the `package.json` in `npmRoot` is used.
`packageLock` (Attrset; optional)
: Parsed contents of `package-lock.json`, as returned `lib.importJSON ./my-package-lock.json`. If not specified, the `package-lock.json` in `npmRoot` is used.
`derivationArgs` (`mkDerivation` attrset; optional)
: Arguments passed to `stdenv.mkDerivation`
For example:
```nix
pkgs.mkShell {
packages = [
importNpmLock.hooks.linkNodeModulesHook
nodejs
];
npmDeps = importNpmLock.buildNodeModules {
npmRoot = ./.;
inherit nodejs;
};
}
```
will create a development shell where a `node_modules` directory is created & packages symlinked to the Nix store when activated.
### corepack {#javascript-corepack} ### corepack {#javascript-corepack}
This package puts the corepack wrappers for pnpm and yarn in your PATH, and they will honor the `packageManager` setting in the `package.json`. This package puts the corepack wrappers for pnpm and yarn in your PATH, and they will honor the `packageManager` setting in the `package.json`.

View file

@ -5630,6 +5630,12 @@
githubId = 6689924; githubId = 6689924;
name = "David Terry"; name = "David Terry";
}; };
dxwil = {
email = "dovydas@kersys.lt";
github = "dxwil";
githubId = 90563298;
name = "Dovydas Kersys";
};
dylan-gonzalez = { dylan-gonzalez = {
email = "dylcg10@gmail.com"; email = "dylcg10@gmail.com";
github = "dylan-gonzalez"; github = "dylan-gonzalez";
@ -12284,6 +12290,12 @@
githubId = 44469719; githubId = 44469719;
name = "Jussi Kuokkanen"; name = "Jussi Kuokkanen";
}; };
lutzberger = {
email = "lutz.berger@airbus.com";
github = "lutzberger";
githubId = 115777584;
name = "Lutz Berger";
};
lux = { lux = {
email = "lux@lux.name"; email = "lux@lux.name";
github = "luxzeitlos"; github = "luxzeitlos";

View file

@ -656,6 +656,7 @@
./services/logging/syslogd.nix ./services/logging/syslogd.nix
./services/logging/vector.nix ./services/logging/vector.nix
./services/logging/ulogd.nix ./services/logging/ulogd.nix
./services/mail/automx2.nix
./services/mail/clamsmtp.nix ./services/mail/clamsmtp.nix
./services/mail/davmail.nix ./services/mail/davmail.nix
./services/mail/dkimproxy-out.nix ./services/mail/dkimproxy-out.nix

View file

@ -88,7 +88,7 @@ in {
}; };
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
assertions = [ assertions = [
{ assertion = config.users.motd == null; { assertion = config.users.motd == "";
message = '' message = ''
`programs.rust-motd` is incompatible with `users.motd`! `programs.rust-motd` is incompatible with `users.motd`!
''; '';

View file

@ -0,0 +1,108 @@
{
config,
lib,
pkgs,
...
}:
let
cfg = config.services.automx2;
format = pkgs.formats.json { };
in
{
options = {
services.automx2 = {
enable = lib.mkEnableOption "automx2";
package = lib.mkPackageOption pkgs [
"python3Packages"
"automx2"
] { };
domain = lib.mkOption {
type = lib.types.str;
example = "example.com";
description = ''
E-Mail-Domain for which mail client autoconfig/autoconfigure should be set up.
The `autoconfig` and `autodiscover` subdomains are automatically prepended and set up with ACME.
The names of those domains are hardcoded in the mail clients and are not configurable.
'';
};
port = lib.mkOption {
type = lib.types.port;
default = 4243;
description = "Port used by automx2.";
};
settings = lib.mkOption {
inherit (format) type;
description = ''
Bootstrap json to populate database.
See [docs](https://rseichter.github.io/automx2/#_sqlite) for details.
'';
};
};
};
config = lib.mkIf cfg.enable {
services.nginx = {
enable = true;
virtualHosts = {
"autoconfig.${cfg.domain}" = {
enableACME = true;
forceSSL = true;
serverAliases = [ "autodiscover.${cfg.domain}" ];
locations = {
"/".proxyPass = "http://127.0.0.1:${toString cfg.port}/";
"/initdb".extraConfig = ''
# Limit access to clients connecting from localhost
allow 127.0.0.1;
deny all;
'';
};
};
};
};
systemd.services.automx2 = {
after = [ "network.target" ];
postStart = ''
sleep 3
${lib.getExe pkgs.curl} -X POST --json @${format.generate "automx2.json" cfg.settings} http://127.0.0.1:${toString cfg.port}/initdb/
'';
serviceConfig = {
Environment = [
"AUTOMX2_CONF=${pkgs.writeText "automx2-conf" ''
[automx2]
loglevel = WARNING
db_uri = sqlite:///:memory:
proxy_count = 1
''}"
"FLASK_APP=automx2.server:app"
"FLASK_CONFIG=production"
];
ExecStart = "${
pkgs.python3.buildEnv.override { extraLibs = [ cfg.package ]; }
}/bin/flask run --host=127.0.0.1 --port=${toString cfg.port}";
Restart = "always";
StateDirectory = "automx2";
User = "automx2";
WorkingDirectory = "/var/lib/automx2";
};
unitConfig = {
Description = "MUA configuration service";
Documentation = "https://rseichter.github.io/automx2/";
};
wantedBy = [ "multi-user.target" ];
};
users = {
groups.automx2 = { };
users.automx2 = {
group = "automx2";
isSystemUser = true;
};
};
};
}

View file

@ -48,7 +48,7 @@ let
preferLocalBuild = true; preferLocalBuild = true;
} '' } ''
mkdir -p $out/bin mkdir -p $out/bin
for i in changePassword.php createAndPromote.php userOptions.php edit.php nukePage.php update.php; do for i in changePassword.php createAndPromote.php resetUserEmail.php userOptions.php edit.php nukePage.php update.php; do
makeWrapper ${php}/bin/php $out/bin/mediawiki-$(basename $i .php) \ makeWrapper ${php}/bin/php $out/bin/mediawiki-$(basename $i .php) \
--set MEDIAWIKI_CONFIG ${mediawikiConfig} \ --set MEDIAWIKI_CONFIG ${mediawikiConfig} \
--add-flags ${pkg}/share/mediawiki/maintenance/$i --add-flags ${pkg}/share/mediawiki/maintenance/$i

View file

@ -1004,10 +1004,6 @@
dependencies = with self; [ plenary-nvim ]; dependencies = with self; [ plenary-nvim ];
}; };
lualine-nvim = super.lualine-nvim.overrideAttrs {
dependencies = with self; [ nvim-web-devicons ];
};
luasnip = super.luasnip.overrideAttrs { luasnip = super.luasnip.overrideAttrs {
dependencies = with self; [ luaPackages.jsregexp ]; dependencies = with self; [ luaPackages.jsregexp ];
}; };

View file

@ -4,8 +4,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = { mktplcRef = {
name = "mongodb-vscode"; name = "mongodb-vscode";
publisher = "mongodb"; publisher = "mongodb";
version = "1.7.0"; version = "1.8.0";
hash = "sha256-EDU8kQLTQIe5D905ZVskFt/28Mzv1Zr7auqG4tksQ/o="; hash = "sha256-KtpXhDRf9vFS0iSQCJzywmIlRMhWLOlSuK7DPc0ddnw=";
}; };
meta = { meta = {

View file

@ -2,7 +2,7 @@
let let
pname = "joplin-desktop"; pname = "joplin-desktop";
version = "3.0.13"; version = "3.0.15";
inherit (stdenv.hostPlatform) system; inherit (stdenv.hostPlatform) system;
throwSystem = throw "Unsupported system: ${system}"; throwSystem = throw "Unsupported system: ${system}";
@ -16,9 +16,9 @@ let
src = fetchurl { src = fetchurl {
url = "https://github.com/laurent22/joplin/releases/download/v${version}/Joplin-${version}${suffix}"; url = "https://github.com/laurent22/joplin/releases/download/v${version}/Joplin-${version}${suffix}";
sha256 = { sha256 = {
x86_64-linux = "sha256-/B7udtkRP8rOYzXupWSEGg0FrJoRJ63l4uLtQWe2CZ8="; x86_64-linux = "sha256-rNKYihIbdfGZEIGURyty+hS82ftHsqV1YjqM8VYB6RU=";
x86_64-darwin = "sha256-XZN1jTv/FhJXuFxZ6D6h/vFMdKi84Z9UWfj2CrMgBBA="; x86_64-darwin = "sha256-s7gZSr/5VOg8bqxGPckK7UxDpvmsNgdhjDg+lxnO/lU=";
aarch64-darwin = "sha256-lsODOBkZ4+x5D6Er2/paTzAMKZvqIBVkKrWHh5iRvrk="; aarch64-darwin = "sha256-UzAGYIKd5swtl6XNFVTPeg0nqwKKtu0e36+LA0Qiusw=";
}.${system} or throwSystem; }.${system} or throwSystem;
}; };

View file

@ -1,11 +1,11 @@
{ {
stable = { stable = {
chromedriver = { chromedriver = {
hash_darwin = "sha256-4wp3nlGkuNDlmF+3bmJOmaMccQcsXBZaVO95Se6Vj1M="; hash_darwin = "sha256-tC2BZmjKeYjBfwJINtgVQEJjiqJidVtnXdxigFkR2/M=";
hash_darwin_aarch64 = hash_darwin_aarch64 =
"sha256-La32ZBMgdWyl4nFoh4LfaxsoZJxrYkB/fbYOzltG8e8="; "sha256-MRXiiQPY8EZ85zRCmJyxuI7SG5RbalBBg+vt0goeWus=";
hash_linux = "sha256-qhoTtgPNrs2jMEVbVuVZAsQDygm72xfhWvhDC/mDUzc="; hash_linux = "sha256-rQ/WYDghBXewFqMTGf7ZJGp2mMiPwjf8ImNyTvXulQU=";
version = "128.0.6613.84"; version = "128.0.6613.86";
}; };
deps = { deps = {
gn = { gn = {
@ -15,8 +15,8 @@
version = "2024-06-11"; version = "2024-06-11";
}; };
}; };
hash = "sha256-kUHJtJ4X8UDMP2TgHdFd6gEPzU28mBgxtGceVZCl5xM="; hash = "sha256-wqhaK1VuE1qPLt+f/x2KrtwZGxKFluTOWYMau+cSl2E=";
version = "128.0.6613.84"; version = "128.0.6613.113";
}; };
ungoogled-chromium = { ungoogled-chromium = {
deps = { deps = {

View file

@ -1,34 +1,70 @@
{ lib { lib
, stdenv , stdenv
, fetchurl
, fetchzip , fetchzip
, fetchFromGitHub
, squashfsTools
, curl
, python3
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "widevine-cdm"; pname = "widevine-cdm";
version = "4.10.2710.0"; version = "4.10.2710.0";
lacrosVersion = "120.0.6098.0";
src = fetchzip { widevineInstaller = if stdenv.isAarch64 then fetchFromGitHub {
owner = "AsahiLinux";
repo = "widevine-installer";
rev = "7a3928fe1342fb07d96f61c2b094e3287588958b";
sha256 = "sha256-XI1y4pVNpXS+jqFs0KyVMrxcULOJ5rADsgvwfLF6e0Y=";
} else null;
src = if stdenv.isAarch64 then fetchurl {
url = "https://commondatastorage.googleapis.com/chromeos-localmirror/distfiles/chromeos-lacros-arm64-squash-zstd-${lacrosVersion}";
hash = "sha256-OKV8w5da9oZ1oSGbADVPCIkP9Y0MVLaQ3PXS3ZBLFXY=";
} else fetchzip {
url = "https://dl.google.com/widevine-cdm/${version}-linux-x64.zip"; url = "https://dl.google.com/widevine-cdm/${version}-linux-x64.zip";
hash = "sha256-lGTrSzUk5FluH1o4E/9atLIabEpco3C3gZw+y6H6LJo="; hash = "sha256-lGTrSzUk5FluH1o4E/9atLIabEpco3C3gZw+y6H6LJo=";
stripRoot = false; stripRoot = false;
}; };
buildInputs = [ squashfsTools curl python3 ];
unpackPhase = if stdenv.isAarch64 then ''
curl -# -o lacros.squashfs "file://$src"
unsquashfs -q lacros.squashfs 'WidevineCdm/*'
python3 ${widevineInstaller}/widevine_fixup.py squashfs-root/WidevineCdm/_platform_specific/cros_arm64/libwidevinecdm.so libwidevinecdm.so
cp squashfs-root/WidevineCdm/manifest.json .
cp squashfs-root/WidevineCdm/LICENSE LICENSE.txt
'' else null;
installPhase = '' installPhase = ''
runHook preInstall runHook preInstall
install -vD manifest.json $out/share/google/chrome/WidevineCdm/manifest.json install -vD manifest.json $out/share/google/chrome/WidevineCdm/manifest.json
install -vD LICENSE.txt $out/share/google/chrome/WidevineCdm/LICENSE.txt install -vD LICENSE.txt $out/share/google/chrome/WidevineCdm/LICENSE.txt
install -vD libwidevinecdm.so $out/share/google/chrome/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so install -vD libwidevinecdm.so $out/share/google/chrome/WidevineCdm/_platform_specific/linux_${
if stdenv.targetPlatform.isAarch64 then "arm64"
else if stdenv.targetPlatform.isx86_64 then "x64"
else throw "Unsupported platform ${stdenv.targetPlatform.config}"
}/libwidevinecdm.so
runHook postInstall runHook postInstall
''; '';
# Accoring to widevine-installer: "Hack because Chromium hardcodes a check for this right now..."
postInstall = lib.optionalString stdenv.isAarch64 ''
mkdir -p "$out/share/google/chrome/WidevineCdm/_platform_specific/linux_x64"
touch "$out/share/google/chrome/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so"
'';
meta = with lib; { meta = with lib; {
description = "Widevine CDM"; description = "Widevine CDM";
homepage = "https://www.widevine.com"; homepage = "https://www.widevine.com";
sourceProvenance = with sourceTypes; [ binaryNativeCode ]; sourceProvenance = with sourceTypes; [ binaryNativeCode ];
license = licenses.unfree; license = licenses.unfree;
maintainers = with maintainers; [ jlamur ]; maintainers = with maintainers; [ jlamur dxwil ];
platforms = [ "x86_64-linux" ]; platforms = [ "x86_64-linux" "aarch64-linux" ];
}; };
} }

View file

@ -61,6 +61,8 @@
, withManPages ? stdenv.buildPlatform.canExecute stdenv.hostPlatform , withManPages ? stdenv.buildPlatform.canExecute stdenv.hostPlatform
, buildPackages , buildPackages
, gnome
, remmina
}: }:
let let
@ -163,19 +165,19 @@ stdenv.mkDerivation (finalAttrs: {
"-DDOCBOOKXSL_DIR=${docbook-xsl-nons}/xml/xsl/docbook" "-DDOCBOOKXSL_DIR=${docbook-xsl-nons}/xml/xsl/docbook"
] ++ lib.mapAttrsToList (k: v: "-D${k}=${cmFlag v}") { ] ++ lib.mapAttrsToList (k: v: "-D${k}=${cmFlag v}") {
BUILD_TESTING = false; # false is recommended by upstream BUILD_TESTING = false; # false is recommended by upstream
WITH_CAIRO = (cairo != null); WITH_CAIRO = cairo != null;
WITH_CUPS = (cups != null); WITH_CUPS = cups != null;
WITH_FAAC = (withUnfree && faac != null); WITH_FAAC = withUnfree && faac != null;
WITH_FAAD2 = (faad2 != null); WITH_FAAD2 = faad2 != null;
WITH_FUSE = (stdenv.isLinux && fuse3 != null); WITH_FUSE = stdenv.isLinux && fuse3 != null;
WITH_JPEG = (libjpeg_turbo != null); WITH_JPEG = libjpeg_turbo != null;
WITH_KRB5 = (libkrb5 != null); WITH_KRB5 = libkrb5 != null;
WITH_OPENH264 = (openh264 != null); WITH_OPENH264 = openh264 != null;
WITH_OPUS = (libopus != null); WITH_OPUS = libopus != null;
WITH_OSS = false; WITH_OSS = false;
WITH_MANPAGES = withManPages; WITH_MANPAGES = withManPages;
WITH_PCSC = (pcsclite != null); WITH_PCSC = pcsclite != null;
WITH_PULSE = (libpulseaudio != null); WITH_PULSE = libpulseaudio != null;
WITH_SERVER = buildServer; WITH_SERVER = buildServer;
WITH_WEBVIEW = false; # avoid introducing webkit2gtk-4.0 WITH_WEBVIEW = false; # avoid introducing webkit2gtk-4.0
WITH_VAAPI = false; # false is recommended by upstream WITH_VAAPI = false; # false is recommended by upstream
@ -194,6 +196,11 @@ stdenv.mkDerivation (finalAttrs: {
"-framework AudioToolbox" "-framework AudioToolbox"
]); ]);
passthru.tests = {
inherit remmina;
inherit (gnome) gnome-remote-desktop;
};
meta = with lib; { meta = with lib; {
description = "Remote Desktop Protocol Client"; description = "Remote Desktop Protocol Client";
longDescription = '' longDescription = ''

View file

@ -149,22 +149,22 @@ let
target=$(readlink $out/share/glib-2.0) target=$(readlink $out/share/glib-2.0)
rm $out/share/glib-2.0 rm $out/share/glib-2.0
mkdir $out/share/glib-2.0 mkdir $out/share/glib-2.0
ln -fs $target/* $out/share/glib-2.0 ln -fsr $target/* $out/share/glib-2.0
fi fi
if [[ -L $out/share/glib-2.0/schemas ]]; then if [[ -L $out/share/glib-2.0/schemas ]]; then
target=$(readlink $out/share/glib-2.0/schemas) target=$(readlink $out/share/glib-2.0/schemas)
rm $out/share/glib-2.0/schemas rm $out/share/glib-2.0/schemas
mkdir $out/share/glib-2.0/schemas mkdir $out/share/glib-2.0/schemas
ln -fs $target/* $out/share/glib-2.0/schemas ln -fsr $target/* $out/share/glib-2.0/schemas
fi fi
mkdir -p $out/share/glib-2.0/schemas mkdir -p $out/share/glib-2.0/schemas
for d in $out/share/gsettings-schemas/*; do for d in $out/share/gsettings-schemas/*; do
# Force symlink, in case there are duplicates # Force symlink, in case there are duplicates
ln -fs $d/glib-2.0/schemas/*.xml $out/share/glib-2.0/schemas ln -fsr $d/glib-2.0/schemas/*.xml $out/share/glib-2.0/schemas
ln -fs $d/glib-2.0/schemas/*.gschema.override $out/share/glib-2.0/schemas ln -fsr $d/glib-2.0/schemas/*.gschema.override $out/share/glib-2.0/schemas
done done
# and compile them # and compile them

View file

@ -52,11 +52,16 @@ let
else null else null
); );
cleanModule = lib.flip removeAttrs [
"link" # Remove link not to symlink directories. These have been processed to store paths already.
"funding" # Remove funding to get rid sponsorship nag in build output
];
# Manage node_modules outside of the store with hooks # Manage node_modules outside of the store with hooks
hooks = callPackages ./hooks { }; hooks = callPackages ./hooks { };
in in
{ lib.fix (self: {
importNpmLock = importNpmLock =
{ npmRoot ? null { npmRoot ? null
, package ? importJSON (npmRoot + "/package.json") , package ? importJSON (npmRoot + "/package.json")
@ -94,10 +99,8 @@ in
fetcherOpts = fetcherOpts.${modulePath} or {}; fetcherOpts = fetcherOpts.${modulePath} or {};
}; };
in in
(removeAttrs module [ cleanModule module
"link" // lib.optionalAttrs (src != null) {
"funding"
]) // lib.optionalAttrs (src != null) {
resolved = "file:${src}"; resolved = "file:${src}";
} // lib.optionalAttrs (module ? dependencies) { } // lib.optionalAttrs (module ? dependencies) {
dependencies = mapLockDependencies module.dependencies; dependencies = mapLockDependencies module.dependencies;
@ -133,8 +136,52 @@ in
cp "$packageLockPath" $out/package-lock.json cp "$packageLockPath" $out/package-lock.json
''; '';
# Build node modules from package.json & package-lock.json
buildNodeModules =
{ npmRoot ? null
, package ? importJSON (npmRoot + "/package.json")
, packageLock ? importJSON (npmRoot + "/package-lock.json")
, nodejs
, derivationArgs ? { }
}:
stdenv.mkDerivation ({
pname = derivationArgs.pname or "${getName package}-node-modules";
version = derivationArgs.version or getVersion package;
dontUnpack = true;
npmDeps = self.importNpmLock {
inherit npmRoot package packageLock;
};
package = toJSON package;
packageLock = toJSON packageLock;
installPhase = ''
runHook preInstall
mkdir $out
cp package.json $out/
cp package-lock.json $out/
[[ -d node_modules ]] && mv node_modules $out/
runHook postInstall
'';
} // derivationArgs // {
nativeBuildInputs = [
nodejs
nodejs.passthru.python
hooks.npmConfigHook
] ++ derivationArgs.nativeBuildInputs or [ ];
passAsFile = [ "package" "packageLock" ] ++ derivationArgs.passAsFile or [ ];
postPatch = ''
cp --no-preserve=mode "$packagePath" package.json
cp --no-preserve=mode "$packageLockPath" package-lock.json
'' + derivationArgs.postPatch or "";
});
inherit hooks; inherit hooks;
inherit (hooks) npmConfigHook; inherit (hooks) npmConfigHook linkNodeModulesHook;
__functor = self: self.importNpmLock; __functor = self: self.importNpmLock;
} })

View file

@ -10,4 +10,14 @@
storePrefix = builtins.storeDir; storePrefix = builtins.storeDir;
}; };
} ./npm-config-hook.sh; } ./npm-config-hook.sh;
linkNodeModulesHook = makeSetupHook
{
name = "node-modules-hook.sh";
substitutions = {
nodejs = lib.getExe nodejs;
script = ./link-node-modules.js;
storePrefix = builtins.storeDir;
};
} ./link-node-modules-hook.sh;
} }

View file

@ -0,0 +1,31 @@
linkNodeModulesHook() {
echo "Executing linkNodeModulesHook"
runHook preShellHook
if [ -n "${npmRoot-}" ]; then
pushd "$npmRoot"
fi
@nodejs@ @script@ @storePrefix@ "${npmDeps}/node_modules"
if test -f node_modules/.bin; then
export PATH=$(readlink -f node_modules/.bin):$PATH
fi
if [ -n "${npmRoot-}" ]; then
popd
fi
runHook postShellHook
echo "Finished executing linkNodeModulesShellHook"
}
if [ -z "${dontLinkNodeModules:-}" ] && [ -z "${shellHook-}" ]; then
echo "Using linkNodeModulesHook shell hook"
shellHook=linkNodeModulesHook
fi
if [ -z "${dontLinkNodeModules:-}" ]; then
echo "Using linkNodeModulesHook preConfigure hook"
preConfigureHooks+=(linkNodeModulesHook)
fi

View file

@ -0,0 +1,96 @@
#!/usr/bin/env node
const fs = require("fs");
const path = require("path");
async function asyncFilter(arr, pred) {
const filtered = [];
for (const elem of arr) {
if (await pred(elem)) {
filtered.push(elem);
}
}
return filtered;
}
// Get a list of all _unmanaged_ files in node_modules.
// This means every file in node_modules that is _not_ a symlink to the Nix store.
async function getUnmanagedFiles(storePrefix, files) {
return await asyncFilter(files, async (file) => {
const filePath = path.join("node_modules", file);
// Is file a symlink
const stat = await fs.promises.lstat(filePath);
if (!stat.isSymbolicLink()) {
return true;
}
// Is file in the store
const linkTarget = await fs.promises.readlink(filePath);
return !linkTarget.startsWith(storePrefix);
});
}
async function main() {
const args = process.argv.slice(2);
const storePrefix = args[0];
const sourceModules = args[1];
// Ensure node_modules exists
try {
await fs.promises.mkdir("node_modules");
} catch (err) {
if (err.code !== "EEXIST") {
throw err;
}
}
const files = await fs.promises.readdir("node_modules");
// Get deny list of files that we don't manage.
// We do manage nix store symlinks, but not other files.
// For example: If a .vite was present in both our
// source node_modules and the non-store node_modules we don't want to overwrite
// the non-store one.
const unmanaged = await getUnmanagedFiles(storePrefix, files);
const managed = new Set(files.filter((file) => ! unmanaged.includes(file)));
const sourceFiles = await fs.promises.readdir(sourceModules);
await Promise.all(
sourceFiles.map(async (file) => {
const sourcePath = path.join(sourceModules, file);
const targetPath = path.join("node_modules", file);
// Skip file if it's not a symlink to a store path
if (unmanaged.includes(file)) {
console.log(`'${targetPath}' exists, cowardly refusing to link.`);
return;
}
// Don't unlink this file, we just wrote it.
managed.delete(file);
// Link to a temporary dummy path and rename.
// This is to get some degree of atomicity.
try {
await fs.promises.symlink(sourcePath, targetPath + "-nix-hook-temp");
} catch (err) {
if (err.code !== "EEXIST") {
throw err;
}
await fs.promises.unlink(targetPath + "-nix-hook-temp");
await fs.promises.symlink(sourcePath, targetPath + "-nix-hook-temp");
}
await fs.promises.rename(targetPath + "-nix-hook-temp", targetPath);
})
);
// Clean up store symlinks not included in this generation of node_modules
await Promise.all(
Array.from(managed).map((file) =>
fs.promises.unlink(path.join("node_modules", file)),
)
);
}
main();

View file

@ -20,13 +20,13 @@
buildGoModule rec { buildGoModule rec {
pname = "aaaaxy"; pname = "aaaaxy";
version = "1.5.183"; version = "1.5.190";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "divVerent"; owner = "divVerent";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
hash = "sha256-uXu9z4J3ufe7thXsAGWGTSgb8LVPboM7CSTNf7NBw1Q="; hash = "sha256-yMap8Po3NeFwaqTn0gCHp8f30iiNg1AmG/ALQcW8eYA=";
fetchSubmodules = true; fetchSubmodules = true;
}; };

View file

@ -10,30 +10,24 @@
rav1e, rav1e,
nix-update-script, nix-update-script,
}: }:
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "av1an-unwrapped"; pname = "av1an-unwrapped";
version = "0.4.2"; version = "0.4.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "master-of-zen"; owner = "master-of-zen";
repo = "av1an"; repo = "av1an";
rev = version; rev = "refs/tags/${version}";
hash = "sha256-A4/1UdM8N5CHP44PBNB+ZH2Gcl84rcpUBwQRSnubBGc="; hash = "sha256-Mb5I+9IBwpfmK1w4LstNHI/qsJKlCuRxgSUiqpwUqF0=";
}; };
cargoPatches = [ cargoHash = "sha256-IWcSaJoakXSPIdycWIikGSmOk+D4A3aMnJwuiKn8XNY=";
# TODO: Remove next release
# Updates the `time` crate to work around
# https://github.com/NixOS/nixpkgs/issues/332957
./rust-1.80.0.patch
];
cargoHash = "sha256-Obq4oRXZ7IHDT+B9gKrVflq/FDzoN7ttZi8Aj2uOGxM=";
nativeBuildInputs = [ nativeBuildInputs = [
rustPlatform.bindgenHook
pkg-config
nasm nasm
pkg-config
rustPlatform.bindgenHook
]; ];
buildInputs = [ buildInputs = [
@ -47,7 +41,12 @@ rustPlatform.buildRustPackage rec {
]; ];
passthru = { passthru = {
updateScript = nix-update-script { }; updateScript = nix-update-script {
extraArgs = [
"--version-regex"
"'^(\d*\.\d*\.\d*)$'"
];
};
}; };
meta = { meta = {
@ -57,7 +56,7 @@ rustPlatform.buildRustPackage rec {
It can increase your encoding speed and improve cpu utilization by running multiple encoder processes in parallel. It can increase your encoding speed and improve cpu utilization by running multiple encoder processes in parallel.
''; '';
homepage = "https://github.com/master-of-zen/Av1an"; homepage = "https://github.com/master-of-zen/Av1an";
changelog = "https://github.com/master-of-zen/Av1an/releases/tag/${src.rev}"; changelog = "https://github.com/master-of-zen/Av1an/releases/tag/${version}";
license = lib.licenses.gpl3Only; license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ getchoo ]; maintainers = with lib.maintainers; [ getchoo ];
mainProgram = "av1an"; mainProgram = "av1an";

View file

@ -1,48 +0,0 @@
diff --git a/Cargo.lock b/Cargo.lock
index e5a1c65..b8cb96f 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1008,6 +1008,12 @@ dependencies = [
"num-traits",
]
+[[package]]
+name = "num-conv"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
+
[[package]]
name = "num-derive"
version = "0.3.3"
@@ -1684,13 +1690,14 @@ dependencies = [
[[package]]
name = "time"
-version = "0.3.31"
+version = "0.3.36"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f657ba42c3f86e7680e53c8cd3af8abbe56b5491790b46e22e19c0d57463583e"
+checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885"
dependencies = [
"deranged",
"itoa",
"libc",
+ "num-conv",
"num_threads",
"powerfmt",
"serde",
@@ -1706,10 +1713,11 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
[[package]]
name = "time-macros"
-version = "0.2.16"
+version = "0.2.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26197e33420244aeb70c3e8c78376ca46571bc4e701e4791c2cd9f57dcb3a43f"
+checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf"
dependencies = [
+ "num-conv",
"time-core",
]

View file

@ -2,7 +2,6 @@
lib, lib,
symlinkJoin, symlinkJoin,
makeBinaryWrapper, makeBinaryWrapper,
testers,
av1an-unwrapped, av1an-unwrapped,
ffmpeg, ffmpeg,
python3Packages, python3Packages,
@ -21,6 +20,7 @@
withX265 ? true, # H.265/HEVC encoder withX265 ? true, # H.265/HEVC encoder
withVmaf ? false, # Perceptual video quality assessment algorithm withVmaf ? false, # Perceptual video quality assessment algorithm
}: }:
# av1an requires at least one encoder # av1an requires at least one encoder
assert lib.assertMsg (lib.elem true [ assert lib.assertMsg (lib.elem true [
withAom withAom
@ -30,6 +30,7 @@ assert lib.assertMsg (lib.elem true [
withX264 withX264
withX265 withX265
]) "At least one encoder is required!"; ]) "At least one encoder is required!";
symlinkJoin { symlinkJoin {
name = "av1an-${av1an-unwrapped.version}"; name = "av1an-${av1an-unwrapped.version}";

View file

@ -9,7 +9,7 @@
scdoc, scdoc,
curl, curl,
glib, glib,
libgpiod_1, libgpiod,
libgudev, libgudev,
libusb1, libusb1,
modemmanager, modemmanager,
@ -17,13 +17,13 @@
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "eg25-manager"; pname = "eg25-manager";
version = "0.4.6"; version = "0.5.0";
src = fetchFromGitLab { src = fetchFromGitLab {
owner = "mobian1"; owner = "mobian1";
repo = "eg25-manager"; repo = "eg25-manager";
rev = finalAttrs.version; rev = finalAttrs.version;
hash = "sha256-2JsdwK1ZOr7ljNHyuUMzVCpl+HV0C5sA5LAOkmELqag="; hash = "sha256-hOOYrEM+W7nHc6AQMYg6XQj4dgkLoBQe9S1F65TWPUI=";
}; };
postPatch = '' postPatch = ''
@ -44,7 +44,7 @@ stdenv.mkDerivation (finalAttrs: {
buildInputs = [ buildInputs = [
curl curl
glib glib
libgpiod_1 # Tracking issue for compatibility with libgpiod 2.0: https://gitlab.com/mobian1/eg25-manager/-/issues/45 libgpiod
libgudev libgudev
libusb1 libusb1
modemmanager modemmanager

View file

@ -11,16 +11,16 @@
buildGoModule rec { buildGoModule rec {
pname = "fzf"; pname = "fzf";
version = "0.54.3"; version = "0.55.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "junegunn"; owner = "junegunn";
repo = "fzf"; repo = "fzf";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-kVWG2lfV+FhKbVC7mAqp3VCRWU6TgJGR3/NFwc8fslU="; hash = "sha256-4ikNCepLF7odkaEO+tzgrHb4528LetPEeMStJVZyjWg=";
}; };
vendorHash = "sha256-uhjJPB/jfRPAu9g41vWFnSBIN9TIZW3s6BGz0fA2ygE="; vendorHash = "sha256-b7hCXDJ/EJr1sEvmS2RYaxBMkdWOo2LWe76mamD3BSY=";
CGO_ENABLED = 0; CGO_ENABLED = 0;

View file

@ -10,13 +10,13 @@
stdenvNoCC.mkDerivation rec { stdenvNoCC.mkDerivation rec {
pname = "marwaita"; pname = "marwaita";
version = "20.3.1"; version = "21";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "darkomarko42"; owner = "darkomarko42";
repo = pname; repo = pname;
rev = version; rev = version;
hash = "sha256-6siv6fve0i/6DrNKuwNEc7nWlD4GbMaH7y4Mgliq8iI="; hash = "sha256-5igOzHfkW+HJtll2wLT5qWtLavoPCo170M8v4ID0Wf8=";
}; };
buildInputs = [ buildInputs = [

View file

@ -0,0 +1,34 @@
{
stdenv,
cmake,
fetchFromGitHub,
lib,
}:
stdenv.mkDerivation rec {
name = "mingtest";
version = "0.1.9";
src = fetchFromGitHub {
owner = "craflin";
repo = "mingtest";
rev = "refs/tags/${version}";
hash = "sha256-Iy2KvFCFk+uoztTVxTY7HMdc5GI4gSGqGmbJePJ5CO8=";
};
postPatch = ''
substituteInPlace CMakeLists.txt \
--replace-fail "include(CDeploy)" "" \
--replace-fail "install_deploy_export()" ""
'';
nativeBuildInputs = [ cmake ];
meta = {
description = "Minimalistic C++ unit test framework";
homepage = "https://github.com/craflin/mingtest";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ lutzberger ];
platforms = lib.platforms.linux;
};
}

View file

@ -7,7 +7,7 @@
buildGoModule rec { buildGoModule rec {
version = "photos-v0.9.16"; version = "photos-v0.9.30";
pname = "museum"; pname = "museum";
src = fetchFromGitHub { src = fetchFromGitHub {
@ -15,7 +15,7 @@ buildGoModule rec {
repo = "ente"; repo = "ente";
sparseCheckout = [ "server" ]; sparseCheckout = [ "server" ];
rev = version; rev = version;
hash = "sha256-ZtlwDV3Iksi2QNzoAsAtbN7B/n0UKubU4nlXx4N0l+E="; hash = "sha256-R85eI8n9jQB55l8V4881X74RGH3k0JhGS+phLBrZHvc=";
}; };
sourceRoot = "${src.name}/server"; sourceRoot = "${src.name}/server";
@ -42,7 +42,7 @@ buildGoModule rec {
mainProgram = "museum"; mainProgram = "museum";
platforms = platforms.linux; platforms = platforms.linux;
}; };
vendorHash = "sha256-Vo3KhWWxO0k/d5qUFRfX44oTZBXtJeUlz6qaUvXLDag="; vendorHash = "sha256-Vz9AodHoClSmo51ExdOS4bWH13i1Sug++LQMIsZY2xY=";
} }

View file

@ -8,16 +8,16 @@
buildGoModule rec { buildGoModule rec {
pname = "netclient"; pname = "netclient";
version = "0.24.3"; version = "0.25.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "gravitl"; owner = "gravitl";
repo = "netclient"; repo = "netclient";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-EwkjU4MICkCuJJ7a39dKPTuugELprHQUIyXqwmJpev8="; hash = "sha256-cc0OBDDyg+egnQWPoteGVVHtg8vfYC9RVIpe7A+ZJPQ=";
}; };
vendorHash = "sha256-R/aHXZ0BM2gWouUIezYf63SMqT8vjH2ZhOItgu6RBb4="; vendorHash = "sha256-DzTTESPxYuZYNGjEG3PufLoS02+R9275arVcUzImpBU=";
buildInputs = lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Cocoa buildInputs = lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Cocoa
++ lib.optional stdenv.isLinux libX11; ++ lib.optional stdenv.isLinux libX11;

View file

@ -6,13 +6,13 @@
buildGoModule rec { buildGoModule rec {
pname = "nhost-cli"; pname = "nhost-cli";
version = "1.21.0"; version = "1.22.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "nhost"; owner = "nhost";
repo = "cli"; repo = "cli";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-xnSIWDKWi4weMjs8WOVqJ77DGqtw/EhLAmVa8CNjXb0="; hash = "sha256-Rpjgsc+pinM440SqnvVHijUP4Y2ArHi4sdalRDWzaJQ=";
}; };
vendorHash = null; vendorHash = null;

View file

@ -51,13 +51,13 @@ let
}; };
pname = "pretix"; pname = "pretix";
version = "2024.7.1"; version = "2024.8.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "pretix"; owner = "pretix";
repo = "pretix"; repo = "pretix";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-lOcV3+CNGyKR0QiQXr/hP/9rhWauEvnSLOvxmQa/DSg="; hash = "sha256-3flZoDzS3SI7nAi1skEqVPXJM9vSBrGN+F0esbYKQDw=";
}; };
npmDeps = buildNpmPackage { npmDeps = buildNpmPackage {
@ -65,7 +65,7 @@ let
inherit version src; inherit version src;
sourceRoot = "${src.name}/src/pretix/static/npm_dir"; sourceRoot = "${src.name}/src/pretix/static/npm_dir";
npmDepsHash = "sha256-BfvKuwB5VLX09Lxji+EpMBvZeKTIQvptVtrHSRYY+14="; npmDepsHash = "sha256-ZS+80LLyS2UBnVGRclYhwVwF1BR17D/79F2moQtqh80=";
dontBuild = true; dontBuild = true;
@ -87,17 +87,15 @@ python.pkgs.buildPythonApplication rec {
# Discover pretix.plugin entrypoints during build and add them into # Discover pretix.plugin entrypoints during build and add them into
# INSTALLED_APPS, so that their static files are collected. # INSTALLED_APPS, so that their static files are collected.
./plugin-build.patch ./plugin-build.patch
# https://github.com/pretix/pretix/pull/4362
# Fix TOCTOU race in directory creation
./pr4362.patch
]; ];
pythonRelaxDeps = [ pythonRelaxDeps = [
"importlib-metadata" "importlib-metadata"
"kombu" "kombu"
"markdown"
"pillow" "pillow"
"protobuf" "protobuf"
"pyjwt"
"python-bidi" "python-bidi"
"requests" "requests"
"sentry-sdk" "sentry-sdk"
@ -140,7 +138,6 @@ python.pkgs.buildPythonApplication rec {
cryptography cryptography
css-inline css-inline
defusedcsv defusedcsv
dj-static
django django
django-bootstrap3 django-bootstrap3
django-compressor django-compressor
@ -199,7 +196,6 @@ python.pkgs.buildPythonApplication rec {
sentry-sdk sentry-sdk
sepaxml sepaxml
slimit slimit
static3
stripe stripe
text-unidecode text-unidecode
tlds tlds

View file

@ -11,14 +11,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "pretix-zugferd"; pname = "pretix-zugferd";
version = "2.2.0"; version = "2.2.1";
pyproject = true; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "pretix"; owner = "pretix";
repo = "pretix-zugferd"; repo = "pretix-zugferd";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-ozFDNIA+0feHrHHvxcf+6Jh4L83svmPEE/rerd4Yim8="; hash = "sha256-AJbrx1n32YAZnJGYX67qqaEnOeegYfSUEekvQnmjt+0=";
}; };
postPatch = '' postPatch = ''

View file

@ -1,50 +0,0 @@
From 5688f3624005d02803f2a434db025f367b4963d3 Mon Sep 17 00:00:00 2001
From: Martin Weinelt <hexa@darmstadt.ccc.de>
Date: Thu, 1 Aug 2024 02:39:59 +0200
Subject: [PATCH] Prevent race condition in directory creation
Checking whether a path does not exist before trying to create it does
not follow the Python paradigm of asking for forgiveness, rather than
permission, and opens up a time-of-check to time-of-use race.
---
src/pretix/settings.py | 17 +++++++++--------
1 file changed, 9 insertions(+), 8 deletions(-)
diff --git a/src/pretix/settings.py b/src/pretix/settings.py
index 81ff644be..854187f05 100644
--- a/src/pretix/settings.py
+++ b/src/pretix/settings.py
@@ -37,6 +37,7 @@ import configparser
import logging
import os
import sys
+from contextlib import suppress
from json import loads
from urllib.parse import urlparse
@@ -70,14 +71,14 @@ MEDIA_ROOT = os.path.join(DATA_DIR, 'media')
PROFILE_DIR = os.path.join(DATA_DIR, 'profiles')
CACHE_DIR = config.get('pretix', 'cachedir', fallback=os.path.join(DATA_DIR, 'cache'))
-if not os.path.exists(DATA_DIR):
- os.mkdir(DATA_DIR)
-if not os.path.exists(LOG_DIR):
- os.mkdir(LOG_DIR)
-if not os.path.exists(MEDIA_ROOT):
- os.mkdir(MEDIA_ROOT)
-if not os.path.exists(CACHE_DIR):
- os.mkdir(CACHE_DIR)
+def mkdir(path):
+ with suppress(FileExistsError):
+ os.mkdir(path)
+
+mkdir(DATA_DIR)
+mkdir(LOG_DIR)
+mkdir(MEDIA_ROOT)
+mkdir(CACHE_DIR)
if config.has_option('django', 'secret'):
SECRET_KEY = config.get('django', 'secret')
--
2.45.2

View file

@ -11,13 +11,13 @@
buildDotnetModule rec { buildDotnetModule rec {
pname = "pupdate"; pname = "pupdate";
version = "3.11.1"; version = "3.12.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "mattpannella"; owner = "mattpannella";
repo = "pupdate"; repo = "pupdate";
rev = "${version}"; rev = "${version}";
hash = "sha256-odlKNp6kjOAYeRIHnLniqkCXTi1UXF3szn8tJtrxzQU="; hash = "sha256-55tFnkF+zjvrGbG5AzBGc4nLqbPPMZ8+/muzav4dnsQ=";
}; };
buildInputs = [ buildInputs = [

View file

@ -0,0 +1,55 @@
{
lib,
rustPlatform,
fetchFromGitHub,
pkg-config,
cargo,
rustc,
clippy,
makeWrapper,
}:
let
pname = "rustlings";
version = "6.2.0";
in
rustPlatform.buildRustPackage {
inherit pname version;
src = fetchFromGitHub {
owner = "rust-lang";
repo = "rustlings";
rev = "v${version}";
hash = "sha256-BVmiMIIx8YEO57FO0ZpsCQcim68mn7NHpAOO86dZqlI=";
};
cargoHash = "sha256-ZupwPw/bfeN+s7IWXbY21K/ODXSaYef+IDDpBVCi3Ek=";
# Disabled test that does not work well in an isolated environment
checkFlags = [
"--skip=run_compilation_success"
"--skip=run_test_success"
];
nativeBuildInputs = [
pkg-config
makeWrapper
];
postFixup = ''
wrapProgram $out/bin/rustlings --suffix PATH : ${
lib.makeBinPath [
cargo
rustc
clippy
]
}
'';
meta = {
description = "Explore the Rust programming language and learn more about it while doing exercises";
homepage = "https://rustlings.cool/";
changelog = "https://github.com/rust-lang/rustlings/releases";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ luftmensch-luftmensch ];
mainProgram = "rustlings";
};
}

View file

@ -6,13 +6,13 @@
}: }:
stdenvNoCC.mkDerivation (finalAttrs: { stdenvNoCC.mkDerivation (finalAttrs: {
pname = "stevenblack-blocklist"; pname = "stevenblack-blocklist";
version = "3.14.96"; version = "3.14.100";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "StevenBlack"; owner = "StevenBlack";
repo = "hosts"; repo = "hosts";
rev = "refs/tags/${finalAttrs.version}"; rev = "refs/tags/${finalAttrs.version}";
hash = "sha256-gv40Hfe8Lk/flQp+SPwGws4eZ0umjF1qwX0HdHF9Xe4="; hash = "sha256-6PdF/COJ7UA8ULHMJ2HEIwc6wwNDUxS/92r3D8f6N1E=";
}; };
outputs = [ outputs = [

View file

@ -12,13 +12,13 @@
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "syshud"; pname = "syshud";
version = "0-unstable-2024-08-10"; version = "0-unstable-2024-08-24";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "System64fumo"; owner = "System64fumo";
repo = "syshud"; repo = "syshud";
rev = "c7165dc7e28752b49be4ca81ab5db35019d6fcd0"; rev = "93f94c866b0ed6326ec7cc6da04221e1feaafeef";
hash = "sha256-P8NgWooRMFl1iuFKQlWDJwMlZ/CIwvf2ctkqvRXt6SA="; hash = "sha256-+l7WDDrdKiFZAGrtARC86hDrNML8BMYIw0Z4yg/bKsU=";
}; };
postPatch = '' postPatch = ''
@ -39,6 +39,7 @@ stdenv.mkDerivation (finalAttrs: {
makeFlags = [ makeFlags = [
"DESTDIR=${placeholder "out"}" "DESTDIR=${placeholder "out"}"
"PREFIX="
]; ];
# populate version info used by `syshud -v`: # populate version info used by `syshud -v`:
@ -57,7 +58,10 @@ stdenv.mkDerivation (finalAttrs: {
''; '';
passthru.updateScript = nix-update-script { passthru.updateScript = nix-update-script {
extraArgs = [ "--version" "branch" ]; extraArgs = [
"--version"
"branch"
];
}; };
meta = { meta = {

View file

@ -1,6 +1,7 @@
{ lib { lib
, stdenv , stdenv
, fetchFromGitHub , fetchFromGitHub
, bash
, cmake , cmake
, runCommandLocal , runCommandLocal
, bison , bison
@ -20,8 +21,8 @@ let
vc_intrinsics_src = fetchFromGitHub { vc_intrinsics_src = fetchFromGitHub {
owner = "intel"; owner = "intel";
repo = "vc-intrinsics"; repo = "vc-intrinsics";
rev = "v0.18.0"; rev = "v0.19.0";
hash = "sha256-F2GR3TDUUiygEhdQN+PsMT/CIYBATMQX5wkvwrziS2E="; hash = "sha256-vOK7xfOR+aDpdGd8oOFLJc1Ct1S5BCJmLN6Ubn5wlkQ=";
}; };
inherit (llvmPackages_14) lld llvm; inherit (llvmPackages_14) lld llvm;
@ -31,16 +32,25 @@ in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "intel-graphics-compiler"; pname = "intel-graphics-compiler";
version = "1.0.17193.4"; version = "1.0.17384.11";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "intel"; owner = "intel";
repo = "intel-graphics-compiler"; repo = "intel-graphics-compiler";
rev = "igc-${version}"; rev = "igc-${version}";
hash = "sha256-OOKj3kfl+0/dgeICFtbiOVE0nsYYvI4v97BLjcExAmc="; hash = "sha256-O4uMaPauRv2aMgM2B7XdzCcjI5JghsjX5XbkeloLyck=";
}; };
nativeBuildInputs = [ bison cmake flex (python3.withPackages (ps : with ps; [ mako ])) ]; postPatch = ''
substituteInPlace IGC/AdaptorOCL/igc-opencl.pc.in \
--replace-fail '/@CMAKE_INSTALL_INCLUDEDIR@' "/include" \
--replace-fail '/@CMAKE_INSTALL_LIBDIR@' "/lib"
chmod +x IGC/Scripts/igc_create_linker_script.sh
patchShebangs --build IGC/Scripts/igc_create_linker_script.sh
'';
nativeBuildInputs = [ bash bison cmake flex (python3.withPackages (ps : with ps; [ mako pyyaml ])) ];
buildInputs = [ lld llvm spirv-headers spirv-llvm-translator' spirv-tools ]; buildInputs = [ lld llvm spirv-headers spirv-llvm-translator' spirv-tools ];
@ -49,12 +59,6 @@ stdenv.mkDerivation rec {
# testing is done via intel-compute-runtime # testing is done via intel-compute-runtime
doCheck = false; doCheck = false;
postPatch = ''
substituteInPlace IGC/AdaptorOCL/igc-opencl.pc.in \
--replace '/@CMAKE_INSTALL_INCLUDEDIR@' "/include" \
--replace '/@CMAKE_INSTALL_LIBDIR@' "/lib"
'';
# Handholding the braindead build script # Handholding the braindead build script
# cmake requires an absolute path # cmake requires an absolute path
prebuilds = runCommandLocal "igc-cclang-prebuilds" { } '' prebuilds = runCommandLocal "igc-cclang-prebuilds" { } ''

View file

@ -32,9 +32,9 @@ let
rev = "v${version}"; rev = "v${version}";
hash = "sha256-OsDohXRxovtEXaWiRGp8gJ0dXmoALyO+ZimeSO8aPVI="; hash = "sha256-OsDohXRxovtEXaWiRGp8gJ0dXmoALyO+ZimeSO8aPVI=";
} else if llvmMajor == "14" then { } else if llvmMajor == "14" then {
version = "14.0.0+unstable-2024-05-27"; version = "14.0.0+unstable-2024-07-15";
rev = "62f5b09b11b1da42274371b1f7535f6f2ab11485"; rev = "2823e7052b7999c10fff63bc8089e5aa205716f4";
hash = "sha256-lEOdWHyq9hEyBZPz9z1LxUAZqNub+mZFHHWMlzh3HaI="; hash = "sha256-8/4B74hYge6WiH7PzRGEgE3W7f9IkQ4VMmfkWKYA/l4=";
} else if llvmMajor == "11" then { } else if llvmMajor == "11" then {
version = "11.0.0+unstable-2022-05-04"; version = "11.0.0+unstable-2022-05-04";
rev = "4ef524240833abfeee1c5b9fff6b1bd53f4806b3"; # 267 commits ahead of v11.0.0 rev = "4ef524240833abfeee1c5b9fff6b1bd53f4806b3"; # 267 commits ahead of v11.0.0

View file

@ -53,14 +53,14 @@ let
}; };
}; };
version = "unstable-2024-06-06"; version = "14.0.0-unstable-2024-07-09";
src = applyPatches { src = applyPatches {
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "intel"; owner = "intel";
repo = "opencl-clang"; repo = "opencl-clang";
# https://github.com/intel/opencl-clang/compare/ocl-open-140 # https://github.com/intel/opencl-clang/compare/ocl-open-140
rev = "66a54cbef6726c4e791986779a60d7a45b09c9c9"; rev = "470cf0018e1ef6fc92eda1356f5f31f7da452abc";
hash = "sha256-vM2IlF/e3b2GIXMaHYre+iQn4WKsFIU3x90Ee5KVHtI="; hash = "sha256-Ja+vJ317HI3Nh45kcAMhyLVTIqyy6pE5KAsKs4ou9J8=";
}; };
patches = [ patches = [

View file

@ -1,7 +1,7 @@
{ {
lib, lib,
buildPythonPackage, buildPythonPackage,
fetchPypi, fetchFromGitHub,
flit-core, flit-core,
django, django,
djangorestframework, djangorestframework,
@ -12,12 +12,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "django-filter"; pname = "django-filter";
version = "24.2"; version = "24.3";
pyproject = true; pyproject = true;
src = fetchPypi { src = fetchFromGitHub {
inherit pname version; owner = "carltongibson";
hash = "sha256-SOX8HaPM1soNX5u1UJc1GM6Xek7d6dKooVSn9PC5+W4="; repo = "django-filter";
rev = "refs/tags/${version}";
hash = "sha256-4q/x9FO9ErKnGeJDEXDMcvUKA4nlA7nkwwM2xj3WGWs=";
}; };
build-system = [ flit-core ]; build-system = [ flit-core ];

View file

@ -57,7 +57,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "dvc"; pname = "dvc";
version = "3.54.1"; version = "3.55.0";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.8"; disabled = pythonOlder "3.8";
@ -66,7 +66,7 @@ buildPythonPackage rec {
owner = "iterative"; owner = "iterative";
repo = "dvc"; repo = "dvc";
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-q4o5IFL/Txy5qoe71FYzCEf7O+0RvlASripZzU3xaOw="; hash = "sha256-nKzMHVMaoDu/d1wMAxA2q8DHdwoIb7+YG/7AhAtRVEM=";
}; };
pythonRelaxDeps = [ pythonRelaxDeps = [

View file

@ -8,14 +8,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "peaqevcore"; pname = "peaqevcore";
version = "19.11.0"; version = "19.11.1";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-SVLyapbp9pNEznLetOppzmIc9fQuZF1MSfLsWVwIVGQ="; hash = "sha256-yG8zDC2cirP7fXVTP7TP+BoCjRNgyj6AmXUt6anMy/k=";
}; };
postPatch = '' postPatch = ''

View file

@ -16,7 +16,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "python-gitlab"; pname = "python-gitlab";
version = "4.9.0"; version = "4.10.0";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
@ -24,7 +24,7 @@ buildPythonPackage rec {
src = fetchPypi { src = fetchPypi {
pname = "python_gitlab"; pname = "python_gitlab";
inherit version; inherit version;
hash = "sha256-30TbtunJQefr+5JE5+1KpNuQ9cFkmMstE1uObn8Imho="; hash = "sha256-hvmcGRUIji0lc4F6yov2urXk8S1CsE72st8qu1KNV/0=";
}; };
nativeBuildInputs = [ setuptools ]; nativeBuildInputs = [ setuptools ];

View file

@ -11,7 +11,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "rich-click"; pname = "rich-click";
version = "1.8.2"; version = "1.8.3";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.8"; disabled = pythonOlder "3.8";
@ -20,7 +20,7 @@ buildPythonPackage rec {
owner = "ewels"; owner = "ewels";
repo = "rich-click"; repo = "rich-click";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-O7ZV6+p0nvWmKHUy/aK+qcED/KT4hZojoQRKr9Eg848="; hash = "sha256-7Avg8HcN9q0EUOnkvuM0oIbwTUGAY2ksbX3SOVZtPOc=";
}; };
build-system = [ setuptools ]; build-system = [ setuptools ];

View file

@ -6,38 +6,41 @@
requests, requests,
requests-oauthlib, requests-oauthlib,
pythonOlder, pythonOlder,
setuptools,
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "tellduslive"; pname = "tellduslive";
version = "0.10.11"; version = "0.10.12";
format = "setuptools"; pyproject = true;
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "molobrakos"; owner = "molobrakos";
repo = pname; repo = "tellduslive";
rev = "v${version}"; rev = "refs/tags/v${version}";
sha256 = "0aqhj6fq2z2qb4jyk23ygjicf5nlj8lkya7blkyqb7jra5k1gyg0"; sha256 = "sha256-fWL+VSvoT+dT0jzD8DZEMxzTlqj4TYGCJPLpeui5q64=";
}; };
propagatedBuildInputs = [ build-system = [ setuptools ];
dependencies = [
docopt docopt
requests requests
requests-oauthlib requests-oauthlib
]; ];
# Project has no tests # Module has no tests
doCheck = false; doCheck = false;
pythonImportsCheck = [ "tellduslive" ]; pythonImportsCheck = [ "tellduslive" ];
meta = with lib; { meta = with lib; {
description = "Python module to communicate with Telldus Live"; description = "Python module to communicate with Telldus Live";
mainProgram = "tellduslive";
homepage = "https://github.com/molobrakos/tellduslive"; homepage = "https://github.com/molobrakos/tellduslive";
license = with licenses; [ unlicense ]; license = licenses.unlicense;
maintainers = with maintainers; [ fab ]; maintainers = with maintainers; [ fab ];
mainProgram = "tellduslive";
}; };
} }

View file

@ -14,7 +14,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "typer-shell"; pname = "typer-shell";
version = "0.1.10"; version = "0.1.11";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.9"; disabled = pythonOlder "3.9";
@ -23,7 +23,7 @@ buildPythonPackage rec {
owner = "FergusFettes"; owner = "FergusFettes";
repo = "typer-shell"; repo = "typer-shell";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-Yr+TLEgIRy5hOAYWv9CnDVT3qm36Pzwsj60yFrzaXIQ="; hash = "sha256-pxi4FGxDRMcW4q6h4lQzqGPLhdcfElMaR6aZV85h2Os=";
}; };
pythonRelaxDeps = [ pythonRelaxDeps = [

View file

@ -23,7 +23,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "yfinance"; pname = "yfinance";
version = "0.2.42"; version = "0.2.43";
pyproject = true; pyproject = true;
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
@ -32,7 +32,7 @@ buildPythonPackage rec {
owner = "ranaroussi"; owner = "ranaroussi";
repo = "yfinance"; repo = "yfinance";
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-2iS//v5KKxoY6FQTyZ4A4hm7yR31Y5BqTRauUElxOd0="; hash = "sha256-pHjOXxnANnqypcycqdIV8/6u/qVVNnRFAeL4xsHjk3w=";
}; };
build-system = [ setuptools ]; build-system = [ setuptools ];

View file

@ -10,16 +10,16 @@
buildGoModule rec { buildGoModule rec {
pname = "buf"; pname = "buf";
version = "1.37.0"; version = "1.38.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "bufbuild"; owner = "bufbuild";
repo = "buf"; repo = "buf";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-LqDF093SjAa1HdvebbMI4Mp47VzAaZ0OcecmI/m+1j8="; hash = "sha256-BONfkSLQAnqKW/1PfMwK/DjAbLm5/i6V55SZDOF0rJA=";
}; };
vendorHash = "sha256-A7bkIyQ6KA5iudcmffzxc2d0d6Exy74s5OEeUW42e2o="; vendorHash = "sha256-NV5l7dlb05rRLtNe2cFvaC/G2rhZLY+DmVQcuyJU/08=";
patches = [ patches = [
# Skip a test that requires networking to be available to work. # Skip a test that requires networking to be available to work.

View file

@ -1,38 +1,47 @@
{ lib { lib
, buildGoModule , buildGoModule
, fetchFromGitHub , fetchFromGitHub
, gitUpdater
, testers
, webmesh
}: }:
buildGoModule rec { buildGoModule rec {
pname = "webmesh"; pname = "webmesh";
version = "0.1.2"; version = "0.17.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "webmeshproj"; owner = "webmeshproj";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
hash = "sha256-S7kenBrnhM8V0TdbRe+CJP2XGHG/dZbfGVwdRurPeP8="; hash = "sha256-Inh7j01/xBJgGYmX1tGBRNYjn1N4AO2sywBwZ8yXlsY=";
}; };
vendorHash = "sha256-LBd5IrNFGkEhz+joDv6juL7WuoFyoqCXnmEHFB1K6Nc="; vendorHash = "sha256-xoc7NSdg5bn3aXgcrolJwv8jyrv2HEXFmiCtRXBVwVg=";
CGO_ENABLED = 0; CGO_ENABLED = 0;
subPackages = [ "cmd/node" "cmd/wmctl" ]; subPackages = [ "cmd/webmesh-node" "cmd/webmeshd" "cmd/wmctl" ];
ldflags = [ ldflags = [
"-w" "-w"
"-s" "-s"
"-X github.com/webmeshproj/webmesh/pkg/version.Version=${version}" "-X github.com/webmeshproj/webmesh/pkg/version.Version=${version}"
"-X github.com/webmeshproj/webmesh/pkg/version.Commit=v${version}" "-X github.com/webmeshproj/webmesh/pkg/version.GitCommit=v${version}"
]; ];
postInstall = '' passthru = {
mv $out/bin/node $out/bin/webmesh-node updateScript = gitUpdater { rev-prefix = "v"; };
''; tests = {
webmesh-version = testers.testVersion {
package = webmesh;
};
};
};
meta = with lib; { meta = with lib; {
description = "Simple, distributed, zero-configuration WireGuard mesh provider"; description = "Simple, distributed, zero-configuration WireGuard mesh provider";
mainProgram = "webmesh-node";
homepage = "https://webmeshproj.github.io"; homepage = "https://webmeshproj.github.io";
license = licenses.asl20; license = licenses.asl20;
maintainers = with maintainers; [ bbigras ]; maintainers = with maintainers; [ bbigras ];

View file

@ -2,13 +2,13 @@
buildGoModule rec { buildGoModule rec {
pname = "stripe-cli"; pname = "stripe-cli";
version = "1.21.2"; version = "1.21.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "stripe"; owner = "stripe";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
hash = "sha256-uerQwznpezbNnPj5U/IjMxoqRMJQhhje8oRwJTDimFY="; hash = "sha256-iCr7RJ3dF0DetuIyfGshU4/VRNEhYxFOQlugl2oTZPM=";
}; };
vendorHash = "sha256-TuxYJ3u4/5PJYRoRgom+M1au9XerZ+vj9X3jUWTPM58="; vendorHash = "sha256-TuxYJ3u4/5PJYRoRgom+M1au9XerZ+vj9X3jUWTPM58=";

View file

@ -47,6 +47,7 @@ stdenv.mkDerivation rec {
libGL libGL
libGLU libGLU
mesa mesa
mesa.osmesa
wayland wayland
wayland-protocols wayland-protocols
vulkan-loader vulkan-loader

View file

@ -1,12 +1,14 @@
{ lib {
, stdenv lib,
, fetchFromGitHub stdenv,
, autoreconfHook fetchFromGitHub,
, gnustep fetchpatch2,
, re2c autoreconfHook,
, openldap gnustep,
, openssl re2c,
, openvpn openldap,
openssl,
openvpn,
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -22,6 +24,11 @@ stdenv.mkDerivation rec {
patches = [ patches = [
./auth-ldap-fix-conftest.patch ./auth-ldap-fix-conftest.patch
(fetchpatch2 {
name = "fix-cve-2024-28820";
url = "https://patch-diff.githubusercontent.com/raw/threerings/openvpn-auth-ldap/pull/92.patch";
hash = "sha256-SXuo1D/WywKO5hCsmoeDdTsR7EelxFxJAKmlAQJ6vuE=";
})
]; ];
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -7,13 +7,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "exploitdb"; pname = "exploitdb";
version = "2024-08-24"; version = "2024-08-29";
src = fetchFromGitLab { src = fetchFromGitLab {
owner = "exploit-database"; owner = "exploit-database";
repo = "exploitdb"; repo = "exploitdb";
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-Ga80kO/60pbjdoBirgNXJECpx6ylDyd5d/5gHUZ5ong="; hash = "sha256-QZO7wJiqVVt9vpocC2X4Vrj8s02kh/E3j96JKbYoJJo=";
}; };
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [ makeWrapper ];

View file

@ -2,20 +2,23 @@
lib, lib,
buildNpmPackage, buildNpmPackage,
fetchFromGitHub, fetchFromGitHub,
nix-update-script,
}: }:
buildNpmPackage rec { buildNpmPackage rec {
pname = "zx"; pname = "zx";
version = "8.1.4"; version = "8.1.5";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "google"; owner = "google";
repo = "zx"; repo = "zx";
rev = version; rev = version;
hash = "sha256-9B/X7lOaNTXRGIteGDnLexVF8joo1m+xsfaqxTL2150="; hash = "sha256-CeFUALi5MXQqd/LwSsyi6sBTFJpZGfCCMuD7Moyk9hM=";
}; };
npmDepsHash = "sha256-HNaREvW8opvxjZWJ7cFrIoF1JELWBemr8VB9DyYdNfA="; npmDepsHash = "sha256-yhy2bTXeBYxGaLYb2by+7Y5DfKJ04hroYiOIvwcBojY=";
passthru.updateScript = nix-update-script { };
meta = { meta = {
description = "Tool for writing scripts using JavaScript"; description = "Tool for writing scripts using JavaScript";

View file

@ -11070,7 +11070,7 @@ with pkgs;
openvpn_learnaddress = callPackage ../tools/networking/openvpn/openvpn_learnaddress.nix { }; openvpn_learnaddress = callPackage ../tools/networking/openvpn/openvpn_learnaddress.nix { };
openvpn-auth-ldap = callPackage ../tools/networking/openvpn/openvpn-auth-ldap.nix { openvpn-auth-ldap = callPackage ../tools/networking/openvpn/openvpn-auth-ldap.nix {
stdenv = clangStdenv; inherit (llvmPackages_17) stdenv;
}; };
namespaced-openvpn = python3Packages.callPackage ../tools/networking/namespaced-openvpn { }; namespaced-openvpn = python3Packages.callPackage ../tools/networking/namespaced-openvpn { };