mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-17 11:10:03 +00:00
Merge master into staging-next
This commit is contained in:
commit
d83e365b06
1
.github/workflows/check-by-name.yml
vendored
1
.github/workflows/check-by-name.yml
vendored
|
@ -120,5 +120,6 @@ jobs:
|
|||
else
|
||||
exitCode=$?
|
||||
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"
|
||||
fi
|
||||
|
|
|
@ -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}
|
||||
|
||||
This package puts the corepack wrappers for pnpm and yarn in your PATH, and they will honor the `packageManager` setting in the `package.json`.
|
||||
|
|
|
@ -5630,6 +5630,12 @@
|
|||
githubId = 6689924;
|
||||
name = "David Terry";
|
||||
};
|
||||
dxwil = {
|
||||
email = "dovydas@kersys.lt";
|
||||
github = "dxwil";
|
||||
githubId = 90563298;
|
||||
name = "Dovydas Kersys";
|
||||
};
|
||||
dylan-gonzalez = {
|
||||
email = "dylcg10@gmail.com";
|
||||
github = "dylan-gonzalez";
|
||||
|
@ -12284,6 +12290,12 @@
|
|||
githubId = 44469719;
|
||||
name = "Jussi Kuokkanen";
|
||||
};
|
||||
lutzberger = {
|
||||
email = "lutz.berger@airbus.com";
|
||||
github = "lutzberger";
|
||||
githubId = 115777584;
|
||||
name = "Lutz Berger";
|
||||
};
|
||||
lux = {
|
||||
email = "lux@lux.name";
|
||||
github = "luxzeitlos";
|
||||
|
|
|
@ -656,6 +656,7 @@
|
|||
./services/logging/syslogd.nix
|
||||
./services/logging/vector.nix
|
||||
./services/logging/ulogd.nix
|
||||
./services/mail/automx2.nix
|
||||
./services/mail/clamsmtp.nix
|
||||
./services/mail/davmail.nix
|
||||
./services/mail/dkimproxy-out.nix
|
||||
|
|
|
@ -88,7 +88,7 @@ in {
|
|||
};
|
||||
config = lib.mkIf cfg.enable {
|
||||
assertions = [
|
||||
{ assertion = config.users.motd == null;
|
||||
{ assertion = config.users.motd == "";
|
||||
message = ''
|
||||
`programs.rust-motd` is incompatible with `users.motd`!
|
||||
'';
|
||||
|
|
108
nixos/modules/services/mail/automx2.nix
Normal file
108
nixos/modules/services/mail/automx2.nix
Normal 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;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -48,7 +48,7 @@ let
|
|||
preferLocalBuild = true;
|
||||
} ''
|
||||
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) \
|
||||
--set MEDIAWIKI_CONFIG ${mediawikiConfig} \
|
||||
--add-flags ${pkg}/share/mediawiki/maintenance/$i
|
||||
|
|
|
@ -1004,10 +1004,6 @@
|
|||
dependencies = with self; [ plenary-nvim ];
|
||||
};
|
||||
|
||||
lualine-nvim = super.lualine-nvim.overrideAttrs {
|
||||
dependencies = with self; [ nvim-web-devicons ];
|
||||
};
|
||||
|
||||
luasnip = super.luasnip.overrideAttrs {
|
||||
dependencies = with self; [ luaPackages.jsregexp ];
|
||||
};
|
||||
|
|
|
@ -4,8 +4,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
|||
mktplcRef = {
|
||||
name = "mongodb-vscode";
|
||||
publisher = "mongodb";
|
||||
version = "1.7.0";
|
||||
hash = "sha256-EDU8kQLTQIe5D905ZVskFt/28Mzv1Zr7auqG4tksQ/o=";
|
||||
version = "1.8.0";
|
||||
hash = "sha256-KtpXhDRf9vFS0iSQCJzywmIlRMhWLOlSuK7DPc0ddnw=";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
let
|
||||
pname = "joplin-desktop";
|
||||
version = "3.0.13";
|
||||
version = "3.0.15";
|
||||
|
||||
inherit (stdenv.hostPlatform) system;
|
||||
throwSystem = throw "Unsupported system: ${system}";
|
||||
|
@ -16,9 +16,9 @@ let
|
|||
src = fetchurl {
|
||||
url = "https://github.com/laurent22/joplin/releases/download/v${version}/Joplin-${version}${suffix}";
|
||||
sha256 = {
|
||||
x86_64-linux = "sha256-/B7udtkRP8rOYzXupWSEGg0FrJoRJ63l4uLtQWe2CZ8=";
|
||||
x86_64-darwin = "sha256-XZN1jTv/FhJXuFxZ6D6h/vFMdKi84Z9UWfj2CrMgBBA=";
|
||||
aarch64-darwin = "sha256-lsODOBkZ4+x5D6Er2/paTzAMKZvqIBVkKrWHh5iRvrk=";
|
||||
x86_64-linux = "sha256-rNKYihIbdfGZEIGURyty+hS82ftHsqV1YjqM8VYB6RU=";
|
||||
x86_64-darwin = "sha256-s7gZSr/5VOg8bqxGPckK7UxDpvmsNgdhjDg+lxnO/lU=";
|
||||
aarch64-darwin = "sha256-UzAGYIKd5swtl6XNFVTPeg0nqwKKtu0e36+LA0Qiusw=";
|
||||
}.${system} or throwSystem;
|
||||
};
|
||||
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
{
|
||||
stable = {
|
||||
chromedriver = {
|
||||
hash_darwin = "sha256-4wp3nlGkuNDlmF+3bmJOmaMccQcsXBZaVO95Se6Vj1M=";
|
||||
hash_darwin = "sha256-tC2BZmjKeYjBfwJINtgVQEJjiqJidVtnXdxigFkR2/M=";
|
||||
hash_darwin_aarch64 =
|
||||
"sha256-La32ZBMgdWyl4nFoh4LfaxsoZJxrYkB/fbYOzltG8e8=";
|
||||
hash_linux = "sha256-qhoTtgPNrs2jMEVbVuVZAsQDygm72xfhWvhDC/mDUzc=";
|
||||
version = "128.0.6613.84";
|
||||
"sha256-MRXiiQPY8EZ85zRCmJyxuI7SG5RbalBBg+vt0goeWus=";
|
||||
hash_linux = "sha256-rQ/WYDghBXewFqMTGf7ZJGp2mMiPwjf8ImNyTvXulQU=";
|
||||
version = "128.0.6613.86";
|
||||
};
|
||||
deps = {
|
||||
gn = {
|
||||
|
@ -15,8 +15,8 @@
|
|||
version = "2024-06-11";
|
||||
};
|
||||
};
|
||||
hash = "sha256-kUHJtJ4X8UDMP2TgHdFd6gEPzU28mBgxtGceVZCl5xM=";
|
||||
version = "128.0.6613.84";
|
||||
hash = "sha256-wqhaK1VuE1qPLt+f/x2KrtwZGxKFluTOWYMau+cSl2E=";
|
||||
version = "128.0.6613.113";
|
||||
};
|
||||
ungoogled-chromium = {
|
||||
deps = {
|
||||
|
|
|
@ -1,34 +1,70 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, fetchzip
|
||||
, fetchFromGitHub
|
||||
, squashfsTools
|
||||
, curl
|
||||
, python3
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "widevine-cdm";
|
||||
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";
|
||||
hash = "sha256-lGTrSzUk5FluH1o4E/9atLIabEpco3C3gZw+y6H6LJo=";
|
||||
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 = ''
|
||||
runHook preInstall
|
||||
|
||||
install -vD manifest.json $out/share/google/chrome/WidevineCdm/manifest.json
|
||||
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
|
||||
'';
|
||||
|
||||
# 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; {
|
||||
description = "Widevine CDM";
|
||||
homepage = "https://www.widevine.com";
|
||||
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
|
||||
license = licenses.unfree;
|
||||
maintainers = with maintainers; [ jlamur ];
|
||||
platforms = [ "x86_64-linux" ];
|
||||
maintainers = with maintainers; [ jlamur dxwil ];
|
||||
platforms = [ "x86_64-linux" "aarch64-linux" ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -61,6 +61,8 @@
|
|||
, withManPages ? stdenv.buildPlatform.canExecute stdenv.hostPlatform
|
||||
|
||||
, buildPackages
|
||||
, gnome
|
||||
, remmina
|
||||
}:
|
||||
|
||||
let
|
||||
|
@ -163,19 +165,19 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
"-DDOCBOOKXSL_DIR=${docbook-xsl-nons}/xml/xsl/docbook"
|
||||
] ++ lib.mapAttrsToList (k: v: "-D${k}=${cmFlag v}") {
|
||||
BUILD_TESTING = false; # false is recommended by upstream
|
||||
WITH_CAIRO = (cairo != null);
|
||||
WITH_CUPS = (cups != null);
|
||||
WITH_FAAC = (withUnfree && faac != null);
|
||||
WITH_FAAD2 = (faad2 != null);
|
||||
WITH_FUSE = (stdenv.isLinux && fuse3 != null);
|
||||
WITH_JPEG = (libjpeg_turbo != null);
|
||||
WITH_KRB5 = (libkrb5 != null);
|
||||
WITH_OPENH264 = (openh264 != null);
|
||||
WITH_OPUS = (libopus != null);
|
||||
WITH_CAIRO = cairo != null;
|
||||
WITH_CUPS = cups != null;
|
||||
WITH_FAAC = withUnfree && faac != null;
|
||||
WITH_FAAD2 = faad2 != null;
|
||||
WITH_FUSE = stdenv.isLinux && fuse3 != null;
|
||||
WITH_JPEG = libjpeg_turbo != null;
|
||||
WITH_KRB5 = libkrb5 != null;
|
||||
WITH_OPENH264 = openh264 != null;
|
||||
WITH_OPUS = libopus != null;
|
||||
WITH_OSS = false;
|
||||
WITH_MANPAGES = withManPages;
|
||||
WITH_PCSC = (pcsclite != null);
|
||||
WITH_PULSE = (libpulseaudio != null);
|
||||
WITH_PCSC = pcsclite != null;
|
||||
WITH_PULSE = libpulseaudio != null;
|
||||
WITH_SERVER = buildServer;
|
||||
WITH_WEBVIEW = false; # avoid introducing webkit2gtk-4.0
|
||||
WITH_VAAPI = false; # false is recommended by upstream
|
||||
|
@ -194,6 +196,11 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
"-framework AudioToolbox"
|
||||
]);
|
||||
|
||||
passthru.tests = {
|
||||
inherit remmina;
|
||||
inherit (gnome) gnome-remote-desktop;
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Remote Desktop Protocol Client";
|
||||
longDescription = ''
|
||||
|
|
|
@ -149,22 +149,22 @@ let
|
|||
target=$(readlink $out/share/glib-2.0)
|
||||
rm $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
|
||||
|
||||
if [[ -L $out/share/glib-2.0/schemas ]]; then
|
||||
target=$(readlink $out/share/glib-2.0/schemas)
|
||||
rm $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
|
||||
|
||||
mkdir -p $out/share/glib-2.0/schemas
|
||||
|
||||
for d in $out/share/gsettings-schemas/*; do
|
||||
# Force symlink, in case there are duplicates
|
||||
ln -fs $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/*.xml $out/share/glib-2.0/schemas
|
||||
ln -fsr $d/glib-2.0/schemas/*.gschema.override $out/share/glib-2.0/schemas
|
||||
done
|
||||
|
||||
# and compile them
|
||||
|
|
|
@ -52,11 +52,16 @@ let
|
|||
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
|
||||
hooks = callPackages ./hooks { };
|
||||
|
||||
in
|
||||
{
|
||||
lib.fix (self: {
|
||||
importNpmLock =
|
||||
{ npmRoot ? null
|
||||
, package ? importJSON (npmRoot + "/package.json")
|
||||
|
@ -94,10 +99,8 @@ in
|
|||
fetcherOpts = fetcherOpts.${modulePath} or {};
|
||||
};
|
||||
in
|
||||
(removeAttrs module [
|
||||
"link"
|
||||
"funding"
|
||||
]) // lib.optionalAttrs (src != null) {
|
||||
cleanModule module
|
||||
// lib.optionalAttrs (src != null) {
|
||||
resolved = "file:${src}";
|
||||
} // lib.optionalAttrs (module ? dependencies) {
|
||||
dependencies = mapLockDependencies module.dependencies;
|
||||
|
@ -133,8 +136,52 @@ in
|
|||
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) npmConfigHook;
|
||||
inherit (hooks) npmConfigHook linkNodeModulesHook;
|
||||
|
||||
__functor = self: self.importNpmLock;
|
||||
}
|
||||
})
|
||||
|
|
|
@ -10,4 +10,14 @@
|
|||
storePrefix = builtins.storeDir;
|
||||
};
|
||||
} ./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;
|
||||
}
|
||||
|
|
|
@ -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
|
|
@ -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();
|
|
@ -20,13 +20,13 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "aaaaxy";
|
||||
version = "1.5.183";
|
||||
version = "1.5.190";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "divVerent";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-uXu9z4J3ufe7thXsAGWGTSgb8LVPboM7CSTNf7NBw1Q=";
|
||||
hash = "sha256-yMap8Po3NeFwaqTn0gCHp8f30iiNg1AmG/ALQcW8eYA=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
|
|
@ -10,30 +10,24 @@
|
|||
rav1e,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "av1an-unwrapped";
|
||||
version = "0.4.2";
|
||||
version = "0.4.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "master-of-zen";
|
||||
repo = "av1an";
|
||||
rev = version;
|
||||
hash = "sha256-A4/1UdM8N5CHP44PBNB+ZH2Gcl84rcpUBwQRSnubBGc=";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-Mb5I+9IBwpfmK1w4LstNHI/qsJKlCuRxgSUiqpwUqF0=";
|
||||
};
|
||||
|
||||
cargoPatches = [
|
||||
# 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=";
|
||||
cargoHash = "sha256-IWcSaJoakXSPIdycWIikGSmOk+D4A3aMnJwuiKn8XNY=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
rustPlatform.bindgenHook
|
||||
pkg-config
|
||||
nasm
|
||||
pkg-config
|
||||
rustPlatform.bindgenHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
|
@ -47,7 +41,12 @@ rustPlatform.buildRustPackage rec {
|
|||
];
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script { };
|
||||
updateScript = nix-update-script {
|
||||
extraArgs = [
|
||||
"--version-regex"
|
||||
"'^(\d*\.\d*\.\d*)$'"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
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.
|
||||
'';
|
||||
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;
|
||||
maintainers = with lib.maintainers; [ getchoo ];
|
||||
mainProgram = "av1an";
|
||||
|
|
|
@ -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",
|
||||
]
|
||||
|
|
@ -2,7 +2,6 @@
|
|||
lib,
|
||||
symlinkJoin,
|
||||
makeBinaryWrapper,
|
||||
testers,
|
||||
av1an-unwrapped,
|
||||
ffmpeg,
|
||||
python3Packages,
|
||||
|
@ -21,6 +20,7 @@
|
|||
withX265 ? true, # H.265/HEVC encoder
|
||||
withVmaf ? false, # Perceptual video quality assessment algorithm
|
||||
}:
|
||||
|
||||
# av1an requires at least one encoder
|
||||
assert lib.assertMsg (lib.elem true [
|
||||
withAom
|
||||
|
@ -30,6 +30,7 @@ assert lib.assertMsg (lib.elem true [
|
|||
withX264
|
||||
withX265
|
||||
]) "At least one encoder is required!";
|
||||
|
||||
symlinkJoin {
|
||||
name = "av1an-${av1an-unwrapped.version}";
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
scdoc,
|
||||
curl,
|
||||
glib,
|
||||
libgpiod_1,
|
||||
libgpiod,
|
||||
libgudev,
|
||||
libusb1,
|
||||
modemmanager,
|
||||
|
@ -17,13 +17,13 @@
|
|||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "eg25-manager";
|
||||
version = "0.4.6";
|
||||
version = "0.5.0";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "mobian1";
|
||||
repo = "eg25-manager";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-2JsdwK1ZOr7ljNHyuUMzVCpl+HV0C5sA5LAOkmELqag=";
|
||||
hash = "sha256-hOOYrEM+W7nHc6AQMYg6XQj4dgkLoBQe9S1F65TWPUI=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
@ -44,7 +44,7 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
buildInputs = [
|
||||
curl
|
||||
glib
|
||||
libgpiod_1 # Tracking issue for compatibility with libgpiod 2.0: https://gitlab.com/mobian1/eg25-manager/-/issues/45
|
||||
libgpiod
|
||||
libgudev
|
||||
libusb1
|
||||
modemmanager
|
||||
|
|
|
@ -11,16 +11,16 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "fzf";
|
||||
version = "0.54.3";
|
||||
version = "0.55.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "junegunn";
|
||||
repo = "fzf";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-kVWG2lfV+FhKbVC7mAqp3VCRWU6TgJGR3/NFwc8fslU=";
|
||||
hash = "sha256-4ikNCepLF7odkaEO+tzgrHb4528LetPEeMStJVZyjWg=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-uhjJPB/jfRPAu9g41vWFnSBIN9TIZW3s6BGz0fA2ygE=";
|
||||
vendorHash = "sha256-b7hCXDJ/EJr1sEvmS2RYaxBMkdWOo2LWe76mamD3BSY=";
|
||||
|
||||
CGO_ENABLED = 0;
|
||||
|
||||
|
|
|
@ -10,13 +10,13 @@
|
|||
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "marwaita";
|
||||
version = "20.3.1";
|
||||
version = "21";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "darkomarko42";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-6siv6fve0i/6DrNKuwNEc7nWlD4GbMaH7y4Mgliq8iI=";
|
||||
hash = "sha256-5igOzHfkW+HJtll2wLT5qWtLavoPCo170M8v4ID0Wf8=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
|
34
pkgs/by-name/mi/mingtest/package.nix
Normal file
34
pkgs/by-name/mi/mingtest/package.nix
Normal 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;
|
||||
};
|
||||
|
||||
}
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
buildGoModule rec {
|
||||
|
||||
version = "photos-v0.9.16";
|
||||
version = "photos-v0.9.30";
|
||||
pname = "museum";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
|
@ -15,7 +15,7 @@ buildGoModule rec {
|
|||
repo = "ente";
|
||||
sparseCheckout = [ "server" ];
|
||||
rev = version;
|
||||
hash = "sha256-ZtlwDV3Iksi2QNzoAsAtbN7B/n0UKubU4nlXx4N0l+E=";
|
||||
hash = "sha256-R85eI8n9jQB55l8V4881X74RGH3k0JhGS+phLBrZHvc=";
|
||||
};
|
||||
|
||||
sourceRoot = "${src.name}/server";
|
||||
|
@ -42,7 +42,7 @@ buildGoModule rec {
|
|||
mainProgram = "museum";
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
vendorHash = "sha256-Vo3KhWWxO0k/d5qUFRfX44oTZBXtJeUlz6qaUvXLDag=";
|
||||
vendorHash = "sha256-Vz9AodHoClSmo51ExdOS4bWH13i1Sug++LQMIsZY2xY=";
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -8,16 +8,16 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "netclient";
|
||||
version = "0.24.3";
|
||||
version = "0.25.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "gravitl";
|
||||
repo = "netclient";
|
||||
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
|
||||
++ lib.optional stdenv.isLinux libX11;
|
||||
|
|
|
@ -6,13 +6,13 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "nhost-cli";
|
||||
version = "1.21.0";
|
||||
version = "1.22.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nhost";
|
||||
repo = "cli";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-xnSIWDKWi4weMjs8WOVqJ77DGqtw/EhLAmVa8CNjXb0=";
|
||||
hash = "sha256-Rpjgsc+pinM440SqnvVHijUP4Y2ArHi4sdalRDWzaJQ=";
|
||||
};
|
||||
|
||||
vendorHash = null;
|
||||
|
|
|
@ -51,13 +51,13 @@ let
|
|||
};
|
||||
|
||||
pname = "pretix";
|
||||
version = "2024.7.1";
|
||||
version = "2024.8.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "pretix";
|
||||
repo = "pretix";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-lOcV3+CNGyKR0QiQXr/hP/9rhWauEvnSLOvxmQa/DSg=";
|
||||
hash = "sha256-3flZoDzS3SI7nAi1skEqVPXJM9vSBrGN+F0esbYKQDw=";
|
||||
};
|
||||
|
||||
npmDeps = buildNpmPackage {
|
||||
|
@ -65,7 +65,7 @@ let
|
|||
inherit version src;
|
||||
|
||||
sourceRoot = "${src.name}/src/pretix/static/npm_dir";
|
||||
npmDepsHash = "sha256-BfvKuwB5VLX09Lxji+EpMBvZeKTIQvptVtrHSRYY+14=";
|
||||
npmDepsHash = "sha256-ZS+80LLyS2UBnVGRclYhwVwF1BR17D/79F2moQtqh80=";
|
||||
|
||||
dontBuild = true;
|
||||
|
||||
|
@ -87,17 +87,15 @@ python.pkgs.buildPythonApplication rec {
|
|||
# Discover pretix.plugin entrypoints during build and add them into
|
||||
# INSTALLED_APPS, so that their static files are collected.
|
||||
./plugin-build.patch
|
||||
|
||||
# https://github.com/pretix/pretix/pull/4362
|
||||
# Fix TOCTOU race in directory creation
|
||||
./pr4362.patch
|
||||
];
|
||||
|
||||
pythonRelaxDeps = [
|
||||
"importlib-metadata"
|
||||
"kombu"
|
||||
"markdown"
|
||||
"pillow"
|
||||
"protobuf"
|
||||
"pyjwt"
|
||||
"python-bidi"
|
||||
"requests"
|
||||
"sentry-sdk"
|
||||
|
@ -140,7 +138,6 @@ python.pkgs.buildPythonApplication rec {
|
|||
cryptography
|
||||
css-inline
|
||||
defusedcsv
|
||||
dj-static
|
||||
django
|
||||
django-bootstrap3
|
||||
django-compressor
|
||||
|
@ -199,7 +196,6 @@ python.pkgs.buildPythonApplication rec {
|
|||
sentry-sdk
|
||||
sepaxml
|
||||
slimit
|
||||
static3
|
||||
stripe
|
||||
text-unidecode
|
||||
tlds
|
||||
|
|
|
@ -11,14 +11,14 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "pretix-zugferd";
|
||||
version = "2.2.0";
|
||||
version = "2.2.1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "pretix";
|
||||
repo = "pretix-zugferd";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-ozFDNIA+0feHrHHvxcf+6Jh4L83svmPEE/rerd4Yim8=";
|
||||
hash = "sha256-AJbrx1n32YAZnJGYX67qqaEnOeegYfSUEekvQnmjt+0=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
|
|
@ -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
|
||||
|
|
@ -11,13 +11,13 @@
|
|||
|
||||
buildDotnetModule rec {
|
||||
pname = "pupdate";
|
||||
version = "3.11.1";
|
||||
version = "3.12.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mattpannella";
|
||||
repo = "pupdate";
|
||||
rev = "${version}";
|
||||
hash = "sha256-odlKNp6kjOAYeRIHnLniqkCXTi1UXF3szn8tJtrxzQU=";
|
||||
hash = "sha256-55tFnkF+zjvrGbG5AzBGc4nLqbPPMZ8+/muzav4dnsQ=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
|
55
pkgs/by-name/ru/rustlings/package.nix
Normal file
55
pkgs/by-name/ru/rustlings/package.nix
Normal 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";
|
||||
};
|
||||
}
|
|
@ -6,13 +6,13 @@
|
|||
}:
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "stevenblack-blocklist";
|
||||
version = "3.14.96";
|
||||
version = "3.14.100";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "StevenBlack";
|
||||
repo = "hosts";
|
||||
rev = "refs/tags/${finalAttrs.version}";
|
||||
hash = "sha256-gv40Hfe8Lk/flQp+SPwGws4eZ0umjF1qwX0HdHF9Xe4=";
|
||||
hash = "sha256-6PdF/COJ7UA8ULHMJ2HEIwc6wwNDUxS/92r3D8f6N1E=";
|
||||
};
|
||||
|
||||
outputs = [
|
||||
|
|
|
@ -12,13 +12,13 @@
|
|||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "syshud";
|
||||
version = "0-unstable-2024-08-10";
|
||||
version = "0-unstable-2024-08-24";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "System64fumo";
|
||||
repo = "syshud";
|
||||
rev = "c7165dc7e28752b49be4ca81ab5db35019d6fcd0";
|
||||
hash = "sha256-P8NgWooRMFl1iuFKQlWDJwMlZ/CIwvf2ctkqvRXt6SA=";
|
||||
rev = "93f94c866b0ed6326ec7cc6da04221e1feaafeef";
|
||||
hash = "sha256-+l7WDDrdKiFZAGrtARC86hDrNML8BMYIw0Z4yg/bKsU=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
@ -39,6 +39,7 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
|
||||
makeFlags = [
|
||||
"DESTDIR=${placeholder "out"}"
|
||||
"PREFIX="
|
||||
];
|
||||
|
||||
# populate version info used by `syshud -v`:
|
||||
|
@ -57,7 +58,10 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
'';
|
||||
|
||||
passthru.updateScript = nix-update-script {
|
||||
extraArgs = [ "--version" "branch" ];
|
||||
extraArgs = [
|
||||
"--version"
|
||||
"branch"
|
||||
];
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, bash
|
||||
, cmake
|
||||
, runCommandLocal
|
||||
, bison
|
||||
|
@ -20,8 +21,8 @@ let
|
|||
vc_intrinsics_src = fetchFromGitHub {
|
||||
owner = "intel";
|
||||
repo = "vc-intrinsics";
|
||||
rev = "v0.18.0";
|
||||
hash = "sha256-F2GR3TDUUiygEhdQN+PsMT/CIYBATMQX5wkvwrziS2E=";
|
||||
rev = "v0.19.0";
|
||||
hash = "sha256-vOK7xfOR+aDpdGd8oOFLJc1Ct1S5BCJmLN6Ubn5wlkQ=";
|
||||
};
|
||||
|
||||
inherit (llvmPackages_14) lld llvm;
|
||||
|
@ -31,16 +32,25 @@ in
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "intel-graphics-compiler";
|
||||
version = "1.0.17193.4";
|
||||
version = "1.0.17384.11";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "intel";
|
||||
repo = "intel-graphics-compiler";
|
||||
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 ];
|
||||
|
||||
|
@ -49,12 +59,6 @@ stdenv.mkDerivation rec {
|
|||
# testing is done via intel-compute-runtime
|
||||
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
|
||||
# cmake requires an absolute path
|
||||
prebuilds = runCommandLocal "igc-cclang-prebuilds" { } ''
|
||||
|
|
|
@ -32,9 +32,9 @@ let
|
|||
rev = "v${version}";
|
||||
hash = "sha256-OsDohXRxovtEXaWiRGp8gJ0dXmoALyO+ZimeSO8aPVI=";
|
||||
} else if llvmMajor == "14" then {
|
||||
version = "14.0.0+unstable-2024-05-27";
|
||||
rev = "62f5b09b11b1da42274371b1f7535f6f2ab11485";
|
||||
hash = "sha256-lEOdWHyq9hEyBZPz9z1LxUAZqNub+mZFHHWMlzh3HaI=";
|
||||
version = "14.0.0+unstable-2024-07-15";
|
||||
rev = "2823e7052b7999c10fff63bc8089e5aa205716f4";
|
||||
hash = "sha256-8/4B74hYge6WiH7PzRGEgE3W7f9IkQ4VMmfkWKYA/l4=";
|
||||
} else if llvmMajor == "11" then {
|
||||
version = "11.0.0+unstable-2022-05-04";
|
||||
rev = "4ef524240833abfeee1c5b9fff6b1bd53f4806b3"; # 267 commits ahead of v11.0.0
|
||||
|
|
|
@ -53,14 +53,14 @@ let
|
|||
};
|
||||
};
|
||||
|
||||
version = "unstable-2024-06-06";
|
||||
version = "14.0.0-unstable-2024-07-09";
|
||||
src = applyPatches {
|
||||
src = fetchFromGitHub {
|
||||
owner = "intel";
|
||||
repo = "opencl-clang";
|
||||
# https://github.com/intel/opencl-clang/compare/ocl-open-140
|
||||
rev = "66a54cbef6726c4e791986779a60d7a45b09c9c9";
|
||||
hash = "sha256-vM2IlF/e3b2GIXMaHYre+iQn4WKsFIU3x90Ee5KVHtI=";
|
||||
rev = "470cf0018e1ef6fc92eda1356f5f31f7da452abc";
|
||||
hash = "sha256-Ja+vJ317HI3Nh45kcAMhyLVTIqyy6pE5KAsKs4ou9J8=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchPypi,
|
||||
fetchFromGitHub,
|
||||
flit-core,
|
||||
django,
|
||||
djangorestframework,
|
||||
|
@ -12,12 +12,14 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "django-filter";
|
||||
version = "24.2";
|
||||
version = "24.3";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-SOX8HaPM1soNX5u1UJc1GM6Xek7d6dKooVSn9PC5+W4=";
|
||||
src = fetchFromGitHub {
|
||||
owner = "carltongibson";
|
||||
repo = "django-filter";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-4q/x9FO9ErKnGeJDEXDMcvUKA4nlA7nkwwM2xj3WGWs=";
|
||||
};
|
||||
|
||||
build-system = [ flit-core ];
|
||||
|
|
|
@ -57,7 +57,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "dvc";
|
||||
version = "3.54.1";
|
||||
version = "3.55.0";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
|
@ -66,7 +66,7 @@ buildPythonPackage rec {
|
|||
owner = "iterative";
|
||||
repo = "dvc";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-q4o5IFL/Txy5qoe71FYzCEf7O+0RvlASripZzU3xaOw=";
|
||||
hash = "sha256-nKzMHVMaoDu/d1wMAxA2q8DHdwoIb7+YG/7AhAtRVEM=";
|
||||
};
|
||||
|
||||
pythonRelaxDeps = [
|
||||
|
|
|
@ -8,14 +8,14 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "peaqevcore";
|
||||
version = "19.11.0";
|
||||
version = "19.11.1";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-SVLyapbp9pNEznLetOppzmIc9fQuZF1MSfLsWVwIVGQ=";
|
||||
hash = "sha256-yG8zDC2cirP7fXVTP7TP+BoCjRNgyj6AmXUt6anMy/k=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "python-gitlab";
|
||||
version = "4.9.0";
|
||||
version = "4.10.0";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
@ -24,7 +24,7 @@ buildPythonPackage rec {
|
|||
src = fetchPypi {
|
||||
pname = "python_gitlab";
|
||||
inherit version;
|
||||
hash = "sha256-30TbtunJQefr+5JE5+1KpNuQ9cFkmMstE1uObn8Imho=";
|
||||
hash = "sha256-hvmcGRUIji0lc4F6yov2urXk8S1CsE72st8qu1KNV/0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ setuptools ];
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "rich-click";
|
||||
version = "1.8.2";
|
||||
version = "1.8.3";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
|
@ -20,7 +20,7 @@ buildPythonPackage rec {
|
|||
owner = "ewels";
|
||||
repo = "rich-click";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-O7ZV6+p0nvWmKHUy/aK+qcED/KT4hZojoQRKr9Eg848=";
|
||||
hash = "sha256-7Avg8HcN9q0EUOnkvuM0oIbwTUGAY2ksbX3SOVZtPOc=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
|
|
@ -6,38 +6,41 @@
|
|||
requests,
|
||||
requests-oauthlib,
|
||||
pythonOlder,
|
||||
setuptools,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "tellduslive";
|
||||
version = "0.10.11";
|
||||
format = "setuptools";
|
||||
version = "0.10.12";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "molobrakos";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "0aqhj6fq2z2qb4jyk23ygjicf5nlj8lkya7blkyqb7jra5k1gyg0";
|
||||
repo = "tellduslive";
|
||||
rev = "refs/tags/v${version}";
|
||||
sha256 = "sha256-fWL+VSvoT+dT0jzD8DZEMxzTlqj4TYGCJPLpeui5q64=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [
|
||||
docopt
|
||||
requests
|
||||
requests-oauthlib
|
||||
];
|
||||
|
||||
# Project has no tests
|
||||
# Module has no tests
|
||||
doCheck = false;
|
||||
|
||||
pythonImportsCheck = [ "tellduslive" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Python module to communicate with Telldus Live";
|
||||
mainProgram = "tellduslive";
|
||||
homepage = "https://github.com/molobrakos/tellduslive";
|
||||
license = with licenses; [ unlicense ];
|
||||
license = licenses.unlicense;
|
||||
maintainers = with maintainers; [ fab ];
|
||||
mainProgram = "tellduslive";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "typer-shell";
|
||||
version = "0.1.10";
|
||||
version = "0.1.11";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.9";
|
||||
|
@ -23,7 +23,7 @@ buildPythonPackage rec {
|
|||
owner = "FergusFettes";
|
||||
repo = "typer-shell";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-Yr+TLEgIRy5hOAYWv9CnDVT3qm36Pzwsj60yFrzaXIQ=";
|
||||
hash = "sha256-pxi4FGxDRMcW4q6h4lQzqGPLhdcfElMaR6aZV85h2Os=";
|
||||
};
|
||||
|
||||
pythonRelaxDeps = [
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "yfinance";
|
||||
version = "0.2.42";
|
||||
version = "0.2.43";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
@ -32,7 +32,7 @@ buildPythonPackage rec {
|
|||
owner = "ranaroussi";
|
||||
repo = "yfinance";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-2iS//v5KKxoY6FQTyZ4A4hm7yR31Y5BqTRauUElxOd0=";
|
||||
hash = "sha256-pHjOXxnANnqypcycqdIV8/6u/qVVNnRFAeL4xsHjk3w=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
|
|
@ -10,16 +10,16 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "buf";
|
||||
version = "1.37.0";
|
||||
version = "1.38.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bufbuild";
|
||||
repo = "buf";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-LqDF093SjAa1HdvebbMI4Mp47VzAaZ0OcecmI/m+1j8=";
|
||||
hash = "sha256-BONfkSLQAnqKW/1PfMwK/DjAbLm5/i6V55SZDOF0rJA=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-A7bkIyQ6KA5iudcmffzxc2d0d6Exy74s5OEeUW42e2o=";
|
||||
vendorHash = "sha256-NV5l7dlb05rRLtNe2cFvaC/G2rhZLY+DmVQcuyJU/08=";
|
||||
|
||||
patches = [
|
||||
# Skip a test that requires networking to be available to work.
|
||||
|
|
|
@ -1,38 +1,47 @@
|
|||
{ lib
|
||||
, buildGoModule
|
||||
, fetchFromGitHub
|
||||
, gitUpdater
|
||||
, testers
|
||||
, webmesh
|
||||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "webmesh";
|
||||
version = "0.1.2";
|
||||
version = "0.17.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "webmeshproj";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-S7kenBrnhM8V0TdbRe+CJP2XGHG/dZbfGVwdRurPeP8=";
|
||||
hash = "sha256-Inh7j01/xBJgGYmX1tGBRNYjn1N4AO2sywBwZ8yXlsY=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-LBd5IrNFGkEhz+joDv6juL7WuoFyoqCXnmEHFB1K6Nc=";
|
||||
vendorHash = "sha256-xoc7NSdg5bn3aXgcrolJwv8jyrv2HEXFmiCtRXBVwVg=";
|
||||
|
||||
CGO_ENABLED = 0;
|
||||
|
||||
subPackages = [ "cmd/node" "cmd/wmctl" ];
|
||||
subPackages = [ "cmd/webmesh-node" "cmd/webmeshd" "cmd/wmctl" ];
|
||||
|
||||
ldflags = [
|
||||
"-w"
|
||||
"-s"
|
||||
"-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 = ''
|
||||
mv $out/bin/node $out/bin/webmesh-node
|
||||
'';
|
||||
passthru = {
|
||||
updateScript = gitUpdater { rev-prefix = "v"; };
|
||||
tests = {
|
||||
webmesh-version = testers.testVersion {
|
||||
package = webmesh;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Simple, distributed, zero-configuration WireGuard mesh provider";
|
||||
mainProgram = "webmesh-node";
|
||||
homepage = "https://webmeshproj.github.io";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ bbigras ];
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "stripe-cli";
|
||||
version = "1.21.2";
|
||||
version = "1.21.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "stripe";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-uerQwznpezbNnPj5U/IjMxoqRMJQhhje8oRwJTDimFY=";
|
||||
hash = "sha256-iCr7RJ3dF0DetuIyfGshU4/VRNEhYxFOQlugl2oTZPM=";
|
||||
};
|
||||
vendorHash = "sha256-TuxYJ3u4/5PJYRoRgom+M1au9XerZ+vj9X3jUWTPM58=";
|
||||
|
||||
|
|
|
@ -1,12 +1,14 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, autoreconfHook
|
||||
, gnustep
|
||||
, re2c
|
||||
, openldap
|
||||
, openssl
|
||||
, openvpn
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
fetchpatch2,
|
||||
autoreconfHook,
|
||||
gnustep,
|
||||
re2c,
|
||||
openldap,
|
||||
openssl,
|
||||
openvpn,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
|
@ -22,6 +24,11 @@ stdenv.mkDerivation rec {
|
|||
|
||||
patches = [
|
||||
./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 = [
|
||||
|
|
|
@ -7,13 +7,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "exploitdb";
|
||||
version = "2024-08-24";
|
||||
version = "2024-08-29";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "exploit-database";
|
||||
repo = "exploitdb";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-Ga80kO/60pbjdoBirgNXJECpx6ylDyd5d/5gHUZ5ong=";
|
||||
hash = "sha256-QZO7wJiqVVt9vpocC2X4Vrj8s02kh/E3j96JKbYoJJo=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
|
|
@ -2,20 +2,23 @@
|
|||
lib,
|
||||
buildNpmPackage,
|
||||
fetchFromGitHub,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
buildNpmPackage rec {
|
||||
pname = "zx";
|
||||
version = "8.1.4";
|
||||
version = "8.1.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "google";
|
||||
repo = "zx";
|
||||
rev = version;
|
||||
hash = "sha256-9B/X7lOaNTXRGIteGDnLexVF8joo1m+xsfaqxTL2150=";
|
||||
hash = "sha256-CeFUALi5MXQqd/LwSsyi6sBTFJpZGfCCMuD7Moyk9hM=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-HNaREvW8opvxjZWJ7cFrIoF1JELWBemr8VB9DyYdNfA=";
|
||||
npmDepsHash = "sha256-yhy2bTXeBYxGaLYb2by+7Y5DfKJ04hroYiOIvwcBojY=";
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
description = "Tool for writing scripts using JavaScript";
|
||||
|
|
|
@ -11072,7 +11072,7 @@ with pkgs;
|
|||
openvpn_learnaddress = callPackage ../tools/networking/openvpn/openvpn_learnaddress.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 { };
|
||||
|
|
Loading…
Reference in a new issue