From 3011531cf9553e7ddb93faa023fff27f3fe4777a Mon Sep 17 00:00:00 2001 From: Zhaofeng Li Date: Thu, 28 Oct 2021 01:01:40 -0700 Subject: [PATCH 01/28] qemu: Add binfmt preserve-argv[0] wrapper --- .../virtualization/qemu/binfmt-p-wrapper.c | 79 +++++++++++++++++++ .../virtualization/qemu/binfmt-p-wrapper.nix | 31 ++++++++ pkgs/top-level/all-packages.nix | 2 + 3 files changed, 112 insertions(+) create mode 100644 pkgs/applications/virtualization/qemu/binfmt-p-wrapper.c create mode 100644 pkgs/applications/virtualization/qemu/binfmt-p-wrapper.nix diff --git a/pkgs/applications/virtualization/qemu/binfmt-p-wrapper.c b/pkgs/applications/virtualization/qemu/binfmt-p-wrapper.c new file mode 100644 index 000000000000..f956768862ec --- /dev/null +++ b/pkgs/applications/virtualization/qemu/binfmt-p-wrapper.c @@ -0,0 +1,79 @@ +// This is a tiny wrapper that converts the extra arv[0] argument +// from binfmt-misc with the P flag enabled to QEMU parameters. +// It also prevents LD_* environment variables from being applied +// to QEMU itself. + +#include +#include +#include +#include + +#ifndef TARGET_QEMU +#error "Define TARGET_QEMU to be the path to the qemu-user binary (e.g., -DTARGET_QEMU=\"/full/path/to/qemu-riscv64\")" +#endif + +extern char **environ; + +int main(int argc, char *argv[]) { + if (argc < 3) { + fprintf(stderr, "%s: This should be run as the binfmt interpreter with the P flag\n", argv[0]); + fprintf(stderr, "%s: My preconfigured qemu-user binary: %s\n", argv[0], TARGET_QEMU); + return 1; + } + + size_t environ_count = 0; + for (char **cur = environ; *cur != NULL; ++cur) { + environ_count++; + } + + size_t new_argc = 3; + size_t new_argv_alloc = argc + 2 * environ_count + 2; // [ "-E", env ] for each LD_* env + [ "-0", argv0 ] + char **new_argv = (char**)malloc((new_argv_alloc + 1) * sizeof(char*)); + if (!new_argv) { + fprintf(stderr, "FATAL: Failed to allocate new argv array\n"); + abort(); + } + + new_argv[0] = TARGET_QEMU; + new_argv[1] = "-0"; + new_argv[2] = argv[2]; + + // Pass all LD_ env variables as -E and strip them in `new_environ` + size_t new_environc = 0; + char **new_environ = (char**)malloc((environ_count + 1) * sizeof(char*)); + if (!new_environ) { + fprintf(stderr, "FATAL: Failed to allocate new environ array\n"); + abort(); + } + + for (char **cur = environ; *cur != NULL; ++cur) { + if (strncmp("LD_", *cur, 3) == 0) { + new_argv[new_argc++] = "-E"; + new_argv[new_argc++] = *cur; + } else { + new_environ[new_environc++] = *cur; + } + } + new_environ[new_environc] = NULL; + + size_t new_arg_start = new_argc; + new_argc += argc - 3 + 2; // [ "--", full_binary_path ] + + if (argc > 3) { + memcpy(&new_argv[new_arg_start + 2], &argv[3], (argc - 3) * sizeof(char**)); + } + + new_argv[new_arg_start] = "--"; + new_argv[new_arg_start + 1] = argv[1]; + new_argv[new_argc] = NULL; + +#ifdef DEBUG + for (size_t i = 0; i < new_argc; ++i) { + fprintf(stderr, "argv[%zu] = %s\n", i, new_argv[i]); + } +#endif + + return execve(new_argv[0], new_argv, new_environ); +} + +// vim: et:ts=4:sw=4 diff --git a/pkgs/applications/virtualization/qemu/binfmt-p-wrapper.nix b/pkgs/applications/virtualization/qemu/binfmt-p-wrapper.nix new file mode 100644 index 000000000000..fada14569299 --- /dev/null +++ b/pkgs/applications/virtualization/qemu/binfmt-p-wrapper.nix @@ -0,0 +1,31 @@ +# binfmt preserve-argv[0] wrapper +# +# More details in binfmt-p-wrapper.c +# +# The wrapper has to be static so LD_* environment variables +# cannot affect the execution of the wrapper itself. + +{ lib, stdenv, pkgsStatic, enableDebug ? false }: + +name: emulator: + +pkgsStatic.stdenv.mkDerivation { + inherit name; + + src = ./binfmt-p-wrapper.c; + + dontUnpack = true; + dontInstall = true; + + buildPhase = '' + runHook preBuild + + mkdir -p $out/bin + $CC -o $out/bin/${name} -static -std=c99 -O2 \ + -DTARGET_QEMU=\"${emulator}\" \ + ${lib.optionalString enableDebug "-DDEBUG"} \ + $src + + runHook postBuild + ''; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 87e40fcd02aa..217c5c6a1bbf 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -27324,6 +27324,8 @@ with pkgs; qemu-utils = callPackage ../applications/virtualization/qemu/utils.nix {}; + wrapQemuBinfmtP = callPackage ../applications/virtualization/qemu/binfmt-p-wrapper.nix { }; + qgis-unwrapped = libsForQt5.callPackage ../applications/gis/qgis/unwrapped.nix { withGrass = false; }; From 9e5d0a94581ef8769bf0184d495a43c5d80fda43 Mon Sep 17 00:00:00 2001 From: Zhaofeng Li Date: Thu, 28 Oct 2021 01:03:50 -0700 Subject: [PATCH 02/28] nixos/binfmt: Preserve argv[0] when using QEMU --- nixos/modules/system/boot/binfmt.nix | 52 +++++++++++++++-- nixos/tests/systemd-binfmt.nix | 87 +++++++++++++++++++++------- 2 files changed, 115 insertions(+), 24 deletions(-) diff --git a/nixos/modules/system/boot/binfmt.nix b/nixos/modules/system/boot/binfmt.nix index 2408ecc80d22..cd067a58b86a 100644 --- a/nixos/modules/system/boot/binfmt.nix +++ b/nixos/modules/system/boot/binfmt.nix @@ -20,16 +20,20 @@ let optionalString fixBinary "F"; in ":${name}:${type}:${offset'}:${magicOrExtension}:${mask'}:${interpreter}:${flags}"; - activationSnippet = name: { interpreter, ... }: '' + activationSnippet = name: { interpreter, wrapInterpreterInShell, ... }: if wrapInterpreterInShell then '' rm -f /run/binfmt/${name} cat > /run/binfmt/${name} << 'EOF' #!${pkgs.bash}/bin/sh exec -- ${interpreter} "$@" EOF chmod +x /run/binfmt/${name} + '' else '' + rm -f /run/binfmt/${name} + ln -s ${interpreter} /run/binfmt/${name} ''; getEmulator = system: (lib.systems.elaborate { inherit system; }).emulator pkgs; + getQemuArch = system: (lib.systems.elaborate { inherit system; }).qemuArch; # Mapping of systems to “magicOrExtension” and “mask”. Mostly taken from: # - https://github.com/cleverca22/nixos-configs/blob/master/qemu.nix @@ -238,6 +242,25 @@ in { ''; type = types.bool; }; + + wrapInterpreterInShell = mkOption { + default = true; + description = '' + Whether to wrap the interpreter in a shell script. + + This allows a shell command to be set as the interpreter. + ''; + type = types.bool; + }; + + interpreterSandboxPath = mkOption { + internal = true; + default = null; + description = '' + Path of the interpreter to expose in the build sandbox. + ''; + type = types.nullOr types.path; + }; }; })); }; @@ -257,16 +280,37 @@ in { config = { boot.binfmt.registrations = builtins.listToAttrs (map (system: { name = system; - value = { + value = let interpreter = getEmulator system; + qemuArch = getQemuArch system; + + preserveArgvZero = "qemu-${qemuArch}" == baseNameOf interpreter; + interpreterReg = let + wrapperName = "qemu-${qemuArch}-binfmt-P"; + wrapper = pkgs.wrapQemuBinfmtP wrapperName interpreter; + in + if preserveArgvZero then "${wrapper}/bin/${wrapperName}" + else interpreter; + in { + inherit preserveArgvZero; + + interpreter = interpreterReg; + wrapInterpreterInShell = !preserveArgvZero; + interpreterSandboxPath = dirOf (dirOf interpreterReg); } // (magics.${system} or (throw "Cannot create binfmt registration for system ${system}")); }) cfg.emulatedSystems); # TODO: add a nix.extraPlatforms option to NixOS! nix.extraOptions = lib.mkIf (cfg.emulatedSystems != []) '' extra-platforms = ${toString (cfg.emulatedSystems ++ lib.optional pkgs.stdenv.hostPlatform.isx86_64 "i686-linux")} ''; - nix.sandboxPaths = lib.mkIf (cfg.emulatedSystems != []) - ([ "/run/binfmt" "${pkgs.bash}" ] ++ (map (system: dirOf (dirOf (getEmulator system))) cfg.emulatedSystems)); + nix.sandboxPaths = lib.mkIf (cfg.emulatedSystems != []) ( + let + ruleFor = system: cfg.registrations.${system}; + hasWrappedRule = lib.any (system: (ruleFor system).wrapInterpreterInShell) cfg.emulatedSystems; + in [ "/run/binfmt" ] + ++ lib.optional hasWrappedRule "${pkgs.bash}" + ++ (map (system: (ruleFor system).interpreterSandboxPath) cfg.emulatedSystems) + ); environment.etc."binfmt.d/nixos.conf".source = builtins.toFile "binfmt_nixos.conf" (lib.concatStringsSep "\n" (lib.mapAttrsToList makeBinfmtLine config.boot.binfmt.registrations)); diff --git a/nixos/tests/systemd-binfmt.nix b/nixos/tests/systemd-binfmt.nix index 2a676f3da98b..dc7ca6c88250 100644 --- a/nixos/tests/systemd-binfmt.nix +++ b/nixos/tests/systemd-binfmt.nix @@ -1,24 +1,71 @@ # Teach the kernel how to run armv7l and aarch64-linux binaries, # and run GNU Hello for these architectures. -import ./make-test-python.nix ({ pkgs, ... }: { - name = "systemd-binfmt"; - machine = { - boot.binfmt.emulatedSystems = [ - "armv7l-linux" - "aarch64-linux" - ]; + +{ system ? builtins.currentSystem, + config ? {}, + pkgs ? import ../.. { inherit system config; } +}: + +with import ../lib/testing-python.nix { inherit system pkgs; }; + +let + expectArgv0 = xpkgs: xpkgs.runCommandCC "expect-argv0" { + src = pkgs.writeText "expect-argv0.c" '' + #include + #include + + int main(int argc, char **argv) { + fprintf(stderr, "Our argv[0] is %s\n", argv[0]); + + if (strcmp(argv[0], argv[1])) { + fprintf(stderr, "ERROR: argv[0] is %s, should be %s\n", argv[0], argv[1]); + return 1; + } + + return 0; + } + ''; + } '' + $CC -o $out $src + ''; +in { + basic = makeTest { + name = "systemd-binfmt"; + machine = { + boot.binfmt.emulatedSystems = [ + "armv7l-linux" + "aarch64-linux" + ]; + }; + + testScript = let + helloArmv7l = pkgs.pkgsCross.armv7l-hf-multiplatform.hello; + helloAarch64 = pkgs.pkgsCross.aarch64-multiplatform.hello; + in '' + machine.start() + + assert "world" in machine.succeed( + "${helloArmv7l}/bin/hello" + ) + + assert "world" in machine.succeed( + "${helloAarch64}/bin/hello" + ) + ''; }; - testScript = let - helloArmv7l = pkgs.pkgsCross.armv7l-hf-multiplatform.hello; - helloAarch64 = pkgs.pkgsCross.aarch64-multiplatform.hello; - in '' - machine.start() - assert "world" in machine.succeed( - "${helloArmv7l}/bin/hello" - ) - assert "world" in machine.succeed( - "${helloAarch64}/bin/hello" - ) - ''; -}) + preserveArgvZero = makeTest { + name = "systemd-binfmt-preserve-argv0"; + machine = { + boot.binfmt.emulatedSystems = [ + "aarch64-linux" + ]; + }; + testScript = let + testAarch64 = expectArgv0 pkgs.pkgsCross.aarch64-multiplatform; + in '' + machine.start() + machine.succeed("exec -a meow ${testAarch64} meow") + ''; + }; +} From 1f5e0c848e1573116e5c5dc71a98d33b042bd0aa Mon Sep 17 00:00:00 2001 From: Ben Darwin Date: Mon, 27 Dec 2021 14:24:23 -0500 Subject: [PATCH 03/28] python3Packages.tensorly: 0.4.5 -> 0.7.0 --- .../python-modules/tensorly/default.nix | 33 +++++++------------ 1 file changed, 12 insertions(+), 21 deletions(-) diff --git a/pkgs/development/python-modules/tensorly/default.nix b/pkgs/development/python-modules/tensorly/default.nix index 54f32d182c0c..e780aba22822 100644 --- a/pkgs/development/python-modules/tensorly/default.nix +++ b/pkgs/development/python-modules/tensorly/default.nix @@ -1,45 +1,36 @@ { lib , buildPythonPackage , fetchFromGitHub -, pytest -, nose +, pytestCheckHook , isPy27 , numpy , scipy , sparse -, pytorch }: buildPythonPackage rec { pname = "tensorly"; - version = "0.4.5"; + version = "0.7.0"; disabled = isPy27; src = fetchFromGitHub { owner = pname; repo = pname; rev = version; - sha256 = "1ml91yaxwx4msisxbm92yf22qfrscvk58f3z2r1jhi96pw2k4i7x"; + sha256 = "VcX3pCczZQUYZaD7xrrkOcj0QPJt28cYTwpZm5D/X3c="; }; - propagatedBuildInputs = [ numpy scipy sparse ] - ++ lib.optionals (!doCheck) [ nose ]; # upstream added nose to install_requires - - checkInputs = [ pytest nose pytorch ]; - # also has a cupy backend, but the tests are currently broken - # (e.g. attempts to access cupy.qr instead of cupy.linalg.qr) - # and this backend also adds a non-optional CUDA dependence, - # as well as tensorflow and mxnet backends, but the tests don't - # seem to exercise these backend by default - - # uses >= 140GB of ram to test - doCheck = false; - checkPhase = '' - runHook preCheck - nosetests -e "test_cupy" - runHook postCheck + # nose is not actually required for anything + # (including testing with the minimal dependencies) + postPatch = '' + substituteInPlace setup.py --replace ", 'nose'" "" ''; + propagatedBuildInputs = [ numpy scipy sparse ]; + + checkInputs = [ pytestCheckHook ]; + pytestFlagsArray = [ "tensorly" ]; + pythonImportsCheck = [ "tensorly" ]; meta = with lib; { From c8d137961d29b7ad1e9470718802209b0e636776 Mon Sep 17 00:00:00 2001 From: Robert Scott Date: Thu, 30 Dec 2021 14:52:34 -0800 Subject: [PATCH 04/28] nixos/tests/systemd-binfmt: Add ldPreload test for LD_PRELOAD error messages --- nixos/tests/systemd-binfmt.nix | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/nixos/tests/systemd-binfmt.nix b/nixos/tests/systemd-binfmt.nix index dc7ca6c88250..a3a6efac3e4d 100644 --- a/nixos/tests/systemd-binfmt.nix +++ b/nixos/tests/systemd-binfmt.nix @@ -68,4 +68,23 @@ in { machine.succeed("exec -a meow ${testAarch64} meow") ''; }; + + ldPreload = makeTest { + name = "systemd-binfmt-ld-preload"; + machine = { + boot.binfmt.emulatedSystems = [ + "aarch64-linux" + ]; + }; + testScript = let + helloAarch64 = pkgs.pkgsCross.aarch64-multiplatform.hello; + libredirectAarch64 = pkgs.pkgsCross.aarch64-multiplatform.libredirect; + in '' + machine.start() + + assert "error" not in machine.succeed( + "LD_PRELOAD='${libredirectAarch64}/lib/libredirect.so' ${helloAarch64}/bin/hello 2>&1" + ).lower() + ''; + }; } From 385cc6af3534270dedba6e173a2a9e03384f2b36 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 31 Dec 2021 03:24:39 +0000 Subject: [PATCH 05/28] python38Packages.pyfftw: 0.12.0 -> 0.13.0 --- pkgs/development/python-modules/pyfftw/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pyfftw/default.nix b/pkgs/development/python-modules/pyfftw/default.nix index 96e807f8eba3..651ad1c439e3 100644 --- a/pkgs/development/python-modules/pyfftw/default.nix +++ b/pkgs/development/python-modules/pyfftw/default.nix @@ -2,12 +2,12 @@ , fftw, fftwFloat, fftwLongDouble, numpy, scipy, cython, dask }: buildPythonPackage rec { - version = "0.12.0"; + version = "0.13.0"; pname = "pyFFTW"; src = fetchPypi { inherit pname version; - sha256 = "60988e823ca75808a26fd79d88dbae1de3699e72a293f812aa4534f8a0a58cb0"; + sha256 = "da85102405c0bd95d57eb19e99b01a0729d8406cb204c3900894b873784253da"; }; preConfigure = '' From cb5bd71ee147d8da7c4e503c633b8b9006ffd046 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 31 Dec 2021 10:12:12 +0000 Subject: [PATCH 06/28] dyncall: 1.2 -> 1.3 --- pkgs/development/libraries/dyncall/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/dyncall/default.nix b/pkgs/development/libraries/dyncall/default.nix index f92f2f0affe4..3197e3abed9e 100644 --- a/pkgs/development/libraries/dyncall/default.nix +++ b/pkgs/development/libraries/dyncall/default.nix @@ -2,12 +2,12 @@ stdenv.mkDerivation rec { pname = "dyncall"; - version = "1.2"; + version = "1.3"; src = fetchurl { url = "https://www.dyncall.org/r${version}/dyncall-${version}.tar.gz"; - # https://www.dyncall.org/r1.2/SHA256 - sha256 = "sha256-6IFUwCQ0IVYHBPXHKUr73snpka+gYB1a3/UELqgYCNc="; + # https://www.dyncall.org/r1.3/SHA256 + sha256 = "sha256-q/Ys/DHr1/IWWNqhNwp3gcxRQxYrwIaDhKwH3vnj05A="; }; # XXX: broken tests, failures masked, lets avoid crashing a bunch for now :) From 5f1c91abf9573e41e91c4a7e6c0950c8ac5d6df0 Mon Sep 17 00:00:00 2001 From: "Robert T. McGibbon" Date: Sat, 1 Jan 2022 17:38:44 -0500 Subject: [PATCH 07/28] python3Packages.tables: 3.6.1 -> 3.7.0 --- .../python-modules/tables/default.nix | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/pkgs/development/python-modules/tables/default.nix b/pkgs/development/python-modules/tables/default.nix index 245e619e89e0..fbe99c6fa931 100644 --- a/pkgs/development/python-modules/tables/default.nix +++ b/pkgs/development/python-modules/tables/default.nix @@ -10,19 +10,19 @@ , lzo , numpy , numexpr -, setuptools +, packaging # Test inputs , pytestCheckHook }: buildPythonPackage rec { pname = "tables"; - version = "3.6.1"; + version = "3.7.0"; disabled = pythonOlder "3.5"; src = fetchPypi { inherit pname version; - sha256 = "0j8vnxh2m5n0cyk9z3ndcj5n1zj5rdxgc1gb78bqlyn2lyw75aa9"; + sha256 = "sha256-6SqIetbyqYPlZKaZAt5KdkXDAGn8AavTU+xdolXF4f4="; }; nativeBuildInputs = [ cython ]; @@ -36,17 +36,9 @@ buildPythonPackage rec { propagatedBuildInputs = [ numpy numexpr - setuptools # uses pkg_resources at runtime + packaging # uses packaging.version at runtime ]; - patches = [ - (fetchpatch { - # Needed for numpy >= 1.20.0 - name = "tables-pr-862-use-lowercase-numpy-dtypes.patch"; - url = "https://github.com/PyTables/PyTables/commit/93a3272b8fe754095637628b4d312400e24ae654.patch"; - sha256 = "00czgxnm1dxp9763va9xw1nc7dd7kxh9hjcg9klim52519hkbhi4"; - }) - ]; # When doing `make distclean`, ignore docs postPatch = '' substituteInPlace Makefile --replace "src doc" "src" From b97ccaa18d61b888b00513c0754745c27c36b293 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nguy=E1=BB=85n=20Gia=20Phong?= Date: Sat, 4 Dec 2021 23:01:49 +0700 Subject: [PATCH 08/28] fetchFromSourcehut: allow recursive fetching --- doc/builders/fetchers.chapter.md | 9 +++- .../from_md/release-notes/rl-2205.section.xml | 9 ++++ .../manual/release-notes/rl-2205.section.md | 4 ++ pkgs/build-support/fetchsourcehut/default.nix | 45 ++++++++++++++----- 4 files changed, 56 insertions(+), 11 deletions(-) diff --git a/doc/builders/fetchers.chapter.md b/doc/builders/fetchers.chapter.md index e36724f295f9..5b28b2dcb398 100644 --- a/doc/builders/fetchers.chapter.md +++ b/doc/builders/fetchers.chapter.md @@ -82,4 +82,11 @@ This is used with repo.or.cz repositories. The arguments expected are very simil ## `fetchFromSourcehut` {#fetchfromsourcehut} -This is used with sourcehut repositories. The arguments expected are very similar to fetchFromGitHub above. Don't forget the tilde (~) in front of the user name! +This is used with sourcehut repositories. Similar to `fetchFromGitHub` above, +it expects `owner`, `repo`, `rev` and `sha256`, but don't forget the tilde (~) +in front of the username! Expected arguments also include `vc` ("git" (default) +or "hg"), `domain` and `fetchSubmodules`. + +If `fetchSubmodules` is `true`, `fetchFromSourcehut` uses `fetchgit` +or `fetchhg` with `fetchSubmodules` or `fetchSubrepos` set to `true`, +respectively. Otherwise the fetcher uses `fetchzip`. diff --git a/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml index 4a2e86a60b92..5d7b3cf3f515 100644 --- a/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml +++ b/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml @@ -310,6 +310,15 @@ files. + + + fetchFromSourcehut now allows fetching + repositories recursively using fetchgit or + fetchhg if the argument + fetchSubmodules is set to + true. + + diff --git a/nixos/doc/manual/release-notes/rl-2205.section.md b/nixos/doc/manual/release-notes/rl-2205.section.md index 2a062d0573b5..3c1ba344d873 100644 --- a/nixos/doc/manual/release-notes/rl-2205.section.md +++ b/nixos/doc/manual/release-notes/rl-2205.section.md @@ -116,3 +116,7 @@ In addition to numerous new and upgraded packages, this release has the followin - The `services.stubby` module was converted to a [settings-style](https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md) configuration. - The option `services.duplicati.dataDir` has been added to allow changing the location of duplicati's files. + +- `fetchFromSourcehut` now allows fetching repositories recursively + using `fetchgit` or `fetchhg` if the argument `fetchSubmodules` + is set to `true`. diff --git a/pkgs/build-support/fetchsourcehut/default.nix b/pkgs/build-support/fetchsourcehut/default.nix index ed2f074200cd..2b1feaa496e4 100644 --- a/pkgs/build-support/fetchsourcehut/default.nix +++ b/pkgs/build-support/fetchsourcehut/default.nix @@ -1,10 +1,11 @@ -{ fetchzip, lib }: +{ fetchgit, fetchhg, fetchzip, lib }: { owner , repo, rev , domain ? "sr.ht" , vc ? "git" , name ? "source" +, fetchSubmodules ? false , ... # For hash agility } @ args: @@ -14,12 +15,36 @@ assert (lib.assertOneOf "vc" vc [ "hg" "git" ]); let baseUrl = "https://${vc}.${domain}/${owner}/${repo}"; - -in fetchzip (recursiveUpdate { - inherit name; - url = "${baseUrl}/archive/${rev}.tar.gz"; - meta.homepage = "${baseUrl}/"; - extraPostFetch = optionalString (vc == "hg") '' - rm -f "$out/.hg_archival.txt" - ''; # impure file; see #12002 -} (removeAttrs args [ "owner" "repo" "rev" "domain" "vc" ])) // { inherit rev; } + baseArgs = { + inherit name; + } // removeAttrs args [ + "owner" "repo" "rev" "domain" "vc" "name" "fetchSubmodules" + ]; + vcArgs = baseArgs // { + inherit rev; + url = baseUrl; + }; + fetcher = if fetchSubmodules then vc else "zip"; + cases = { + git = { + fetch = fetchgit; + arguments = vcArgs // { fetchSubmodules = true; }; + }; + hg = { + fetch = fetchhg; + arguments = vcArgs // { fetchSubrepos = true; }; + }; + zip = { + fetch = fetchzip; + arguments = baseArgs // { + url = "${baseUrl}/archive/${rev}.tar.gz"; + extraPostFetch = optionalString (vc == "hg") '' + rm -f "$out/.hg_archival.txt" + ''; # impure file; see #12002 + }; + }; + }; +in cases.${fetcher}.fetch cases.${fetcher}.arguments // { + inherit rev; + meta.homepage = "${baseUrl}"; +} From a4b6d6742e11809adf1e98330148af5265adc2cd Mon Sep 17 00:00:00 2001 From: Dmitry Kalinkin Date: Tue, 4 Jan 2022 23:20:16 -0500 Subject: [PATCH 09/28] arrow-cpp: blacklist all TestS3FS tests on darwin More tests are popping up to break the sandboxed build. --- pkgs/development/libraries/arrow-cpp/default.nix | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/pkgs/development/libraries/arrow-cpp/default.nix b/pkgs/development/libraries/arrow-cpp/default.nix index 5138a9654522..031b4fc46cc1 100644 --- a/pkgs/development/libraries/arrow-cpp/default.nix +++ b/pkgs/development/libraries/arrow-cpp/default.nix @@ -199,13 +199,7 @@ stdenv.mkDerivation rec { "S3RegionResolutionTest.PublicBucket" "S3RegionResolutionTest.RestrictedBucket" "TestMinioServer.Connect" - "TestS3FS.GetFileInfoRoot" - "TestS3FS.OpenOutputStreamBackgroundWrites" - "TestS3FS.OpenOutputStreamDestructorBackgroundWrites" - "TestS3FS.OpenOutputStreamDestructorSyncWrite" - "TestS3FS.OpenOutputStreamDestructorSyncWrites" - "TestS3FS.OpenOutputStreamMetadata" - "TestS3FS.OpenOutputStreamSyncWrites" + "TestS3FS.*" "TestS3FSGeneric.*" ] ++ lib.optionals enableGcs [ "GcsFileSystem.FileSystemCompare" From 7f2bc1d736683cffedaaad34748840c026c0892b Mon Sep 17 00:00:00 2001 From: Yannick Markus Date: Thu, 6 Jan 2022 11:56:43 +0100 Subject: [PATCH 10/28] nixos/bookstack: fix setup service --- nixos/modules/services/web-apps/bookstack.nix | 3 --- 1 file changed, 3 deletions(-) diff --git a/nixos/modules/services/web-apps/bookstack.nix b/nixos/modules/services/web-apps/bookstack.nix index 54c491f8b176..b509e4fff458 100644 --- a/nixos/modules/services/web-apps/bookstack.nix +++ b/nixos/modules/services/web-apps/bookstack.nix @@ -329,9 +329,6 @@ in { ${pkgs.php}/bin/php artisan cache:clear ${pkgs.php}/bin/php artisan config:clear ${pkgs.php}/bin/php artisan view:clear - ${pkgs.php}/bin/php artisan config:cache - ${pkgs.php}/bin/php artisan route:cache - ${pkgs.php}/bin/php artisan view:cache ''; }; From e618a4d3ed5daf6a2b25e7917c27a20d49a36e62 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 6 Jan 2022 13:04:01 +0100 Subject: [PATCH 11/28] python3Packages.datashader: relax xarray constraint --- .../python-modules/datashader/default.nix | 28 +++++++++++-------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/pkgs/development/python-modules/datashader/default.nix b/pkgs/development/python-modules/datashader/default.nix index 587f73d81ed8..d4515b064833 100644 --- a/pkgs/development/python-modules/datashader/default.nix +++ b/pkgs/development/python-modules/datashader/default.nix @@ -25,19 +25,13 @@ buildPythonPackage rec { pname = "datashader"; version = "0.13.0"; + format = "setuptools"; src = fetchPypi { inherit pname version; sha256 = "sha256-6JscHm1QjDmXOLLa83qhAvY/xwvlPM6duQ1lSxnCVV8="; }; - # the complete extra is for usage with conda, which we - # don't care about - postPatch = '' - substituteInPlace setup.py \ - --replace "dask[complete]" "dask" - ''; - propagatedBuildInputs = [ dask bokeh @@ -56,13 +50,21 @@ buildPythonPackage rec { checkInputs = [ pytestCheckHook - pytest-xdist # not needed + pytest-xdist nbsmoke fastparquet nbconvert netcdf4 ]; + # The complete extra is for usage with conda, which we + # don't care about + postPatch = '' + substituteInPlace setup.py \ + --replace "dask[complete]" "dask" \ + --replace "xarray >=0.9.6" "xarray" + ''; + preCheck = '' export HOME=$TMPDIR ''; @@ -73,10 +75,10 @@ buildPythonPackage rec { ]; disabledTests = [ - # not compatible with current version of bokeh + # Not compatible with current version of bokeh # see: https://github.com/holoviz/datashader/issues/1031 "test_interactive_image_update" - # latest dask broken array marshalling + # Latest dask broken array marshalling # see: https://github.com/holoviz/datashader/issues/1032 "test_raster_quadmesh_autorange_reversed" ]; @@ -86,10 +88,14 @@ buildPythonPackage rec { "datashader/tests/test_datatypes.py" ]; + pythonImportsCheck = [ + "datashader" + ]; + meta = with lib;{ description = "Data visualization toolchain based on aggregating into a grid"; homepage = "https://datashader.org"; license = licenses.bsd3; - maintainers = [ maintainers.costrouc ]; + maintainers = with maintainers; [ costrouc ]; }; } From ac384536170b8f8ab2a750485760935270e4029d Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 6 Jan 2022 14:16:36 +0100 Subject: [PATCH 12/28] checkov: 2.0.706 -> 2.0.707 --- pkgs/development/tools/analysis/checkov/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/analysis/checkov/default.nix b/pkgs/development/tools/analysis/checkov/default.nix index 6283e7d33e84..ee3009a633c9 100644 --- a/pkgs/development/tools/analysis/checkov/default.nix +++ b/pkgs/development/tools/analysis/checkov/default.nix @@ -46,13 +46,13 @@ with py.pkgs; buildPythonApplication rec { pname = "checkov"; - version = "2.0.706"; + version = "2.0.707"; src = fetchFromGitHub { owner = "bridgecrewio"; repo = pname; rev = version; - sha256 = "sha256-j9exVvGY3A23sTY5y4daWlZr7awkY1tQhTDykW9tsJU="; + sha256 = "sha256-AsKsv3fKubFZZMZHBRuVmgeGJB1zTe00J2kmqikBiD8="; }; nativeBuildInputs = with py.pkgs; [ From a8d77ae561ec40dd4b22c79fd974c29307ae4a62 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 6 Jan 2022 15:02:07 +0100 Subject: [PATCH 13/28] quark-engine: relax prompt-toolkit constraint --- pkgs/tools/security/quark-engine/default.nix | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/pkgs/tools/security/quark-engine/default.nix b/pkgs/tools/security/quark-engine/default.nix index 00e495f718d9..4db3ce4167f3 100644 --- a/pkgs/tools/security/quark-engine/default.nix +++ b/pkgs/tools/security/quark-engine/default.nix @@ -7,8 +7,7 @@ python3.pkgs.buildPythonApplication rec { pname = "quark-engine"; version = "21.10.2"; - - disabled = python3.pythonOlder "3.6"; + format = "setuptools"; src = fetchFromGitHub { owner = pname; @@ -31,10 +30,17 @@ python3.pkgs.buildPythonApplication rec { tqdm ]; + postPatch = '' + substituteInPlace setup.py \ + --replace "prompt-toolkit==3.0.19" "prompt-toolkit>=3.0.19" + ''; + # Project has no tests doCheck = false; - pythonImportsCheck = [ "quark" ]; + pythonImportsCheck = [ + "quark" + ]; meta = with lib; { description = "Android malware (analysis and scoring) system"; From bb358d65666f7e710f25f828f4626febda8eb348 Mon Sep 17 00:00:00 2001 From: Moritz Hedtke Date: Thu, 6 Jan 2022 18:04:19 +0100 Subject: [PATCH 14/28] nixos/wordpress: Disable directory indexes Fixes #151159 Confirmed using path http://localhost/wp-includes/ --- nixos/modules/services/web-apps/wordpress.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/services/web-apps/wordpress.nix b/nixos/modules/services/web-apps/wordpress.nix index 8ebb72296627..629fd04dc033 100644 --- a/nixos/modules/services/web-apps/wordpress.nix +++ b/nixos/modules/services/web-apps/wordpress.nix @@ -359,7 +359,7 @@ in DirectoryIndex index.php Require all granted - Options +FollowSymLinks + Options +FollowSymLinks -Indexes # https://wordpress.org/support/article/hardening-wordpress/#securing-wp-config-php From cf53168416019e83ccee486301ace03c415d69af Mon Sep 17 00:00:00 2001 From: Enno Richter Date: Thu, 6 Jan 2022 18:13:56 +0100 Subject: [PATCH 15/28] libre: 0.6.1 -> 2.0.1 --- pkgs/development/libraries/libre/default.nix | 24 +++++++++----------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/pkgs/development/libraries/libre/default.nix b/pkgs/development/libraries/libre/default.nix index 7c91950a4c4e..36f1a288f1a5 100644 --- a/pkgs/development/libraries/libre/default.nix +++ b/pkgs/development/libraries/libre/default.nix @@ -1,24 +1,22 @@ -{lib, stdenv, fetchurl, zlib, openssl}: +{ lib, stdenv, fetchFromGitHub, zlib, openssl }: stdenv.mkDerivation rec { - version = "0.6.1"; + version = "2.0.1"; pname = "libre"; - src = fetchurl { - url = "http://www.creytiv.com/pub/re-${version}.tar.gz"; - sha256 = "0hzyc0hdlw795nyx6ik7h2ihs8wapbj32x8c40xq0484ciwzqnyd"; + src = fetchFromGitHub { + owner = "baresip"; + repo = "re"; + rev = "v${version}"; + sha256 = "sha256-/1J9cs0W96CtnHAoX/jg3FLGD9coa0eOEgf8uMQHuUk="; }; buildInputs = [ zlib openssl ]; makeFlags = [ "USE_ZLIB=1" "USE_OPENSSL=1" "PREFIX=$(out)" ] - ++ lib.optional (stdenv.cc.cc != null) "SYSROOT_ALT=${stdenv.cc.cc}" - ++ lib.optional (stdenv.cc.libc != null) "SYSROOT=${lib.getDev stdenv.cc.libc}" + ++ lib.optional (stdenv.cc.cc != null) "SYSROOT_ALT=${stdenv.cc.cc}" + ++ lib.optional (stdenv.cc.libc != null) "SYSROOT=${lib.getDev stdenv.cc.libc}" ; meta = { description = "A library for real-time communications with async IO support and a complete SIP stack"; - homepage = "http://www.creytiv.com/re.html"; - platforms = with lib.platforms; linux; - maintainers = with lib.maintainers; [raskin]; + homepage = "https://github.com/baresip/re"; + maintainers = with lib.maintainers; [ elohmeier raskin ]; license = lib.licenses.bsd3; - downloadPage = "http://www.creytiv.com/pub/"; - updateWalker = true; - downloadURLRegexp = "/re-.*[.]tar[.].*"; }; } From e511e5a66c9d195f13eb8487d4e6c24cbc063645 Mon Sep 17 00:00:00 2001 From: Enno Richter Date: Thu, 6 Jan 2022 18:14:10 +0100 Subject: [PATCH 16/28] librem: 0.6.0 -> 1.0.0 --- pkgs/development/libraries/librem/default.nix | 24 +++++++++---------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/pkgs/development/libraries/librem/default.nix b/pkgs/development/libraries/librem/default.nix index 349384b4674c..23c1f2cc3457 100644 --- a/pkgs/development/libraries/librem/default.nix +++ b/pkgs/development/libraries/librem/default.nix @@ -1,12 +1,14 @@ -{lib, stdenv, fetchurl, zlib, openssl, libre}: +{ lib, stdenv, fetchFromGitHub, zlib, openssl, libre }: stdenv.mkDerivation rec { - version = "0.6.0"; + version = "1.0.0"; pname = "librem"; - src=fetchurl { - url = "http://www.creytiv.com/pub/rem-${version}.tar.gz"; - sha256 = "0b17wma5w9acizk02isk5k83vv47vf1cf9zkmsc1ail677d20xj1"; + src = fetchFromGitHub { + owner = "baresip"; + repo = "rem"; + rev = "v${version}"; + sha256 = "sha256-6Xe9zT0qLLGe1+QCQ9NALoDTaRhHpaTLbCbA+kV7hOA="; }; - buildInputs = [zlib openssl libre]; + buildInputs = [ zlib openssl libre ]; makeFlags = [ "LIBRE_MK=${libre}/share/re/re.mk" "LIBRE_INC=${libre}/include/re" @@ -16,13 +18,9 @@ stdenv.mkDerivation rec { ++ lib.optional (stdenv.cc.libc != null) "SYSROOT=${lib.getDev stdenv.cc.libc}" ; meta = { - description = " A library for real-time audio and video processing"; - homepage = "http://www.creytiv.com/rem.html"; - platforms = with lib.platforms; linux; - maintainers = with lib.maintainers; [raskin]; + description = "A library for real-time audio and video processing"; + homepage = "https://github.com/baresip/rem"; + maintainers = with lib.maintainers; [ elohmeier raskin ]; license = lib.licenses.bsd3; - downloadPage = "http://www.creytiv.com/pub/"; - updateWalker = true; - downloadURLRegexp = "/rem-.*[.]tar[.].*"; }; } From 20e00ef5897b26dfd78680a21d709a9dcb61a6c4 Mon Sep 17 00:00:00 2001 From: Enno Richter Date: Thu, 6 Jan 2022 18:14:22 +0100 Subject: [PATCH 17/28] baresip: 0.6.5 -> 1.1.0 --- .../instant-messengers/baresip/default.nix | 116 ++++++++++++++---- 1 file changed, 92 insertions(+), 24 deletions(-) diff --git a/pkgs/applications/networking/instant-messengers/baresip/default.nix b/pkgs/applications/networking/instant-messengers/baresip/default.nix index 122433d197aa..95afcfae4f2b 100644 --- a/pkgs/applications/networking/instant-messengers/baresip/default.nix +++ b/pkgs/applications/networking/instant-messengers/baresip/default.nix @@ -1,17 +1,60 @@ -{ lib, stdenv, fetchurl, zlib, openssl, libre, librem, pkg-config, gst_all_1 -, cairo, mpg123, alsa-lib, SDL, libv4l, celt, libsndfile, srtp, ffmpeg -, gsm, speex, portaudio, spandsp, libuuid, libvpx +{ lib +, stdenv +, fetchFromGitHub +, zlib +, openssl +, libre +, librem +, pkg-config +, gst_all_1 +, cairo +, mpg123 +, alsa-lib +, SDL2 +, libv4l +, celt +, libsndfile +, srtp +, ffmpeg +, gsm +, speex +, portaudio +, spandsp3 +, libuuid +, libvpx }: stdenv.mkDerivation rec { - version = "0.6.5"; + version = "1.1.0"; pname = "baresip"; - src=fetchurl { - url = "http://www.creytiv.com/pub/baresip-${version}.tar.gz"; - sha256 = "13di0ycdcr2q2a20mjvyaqfmvk5xldwqaxklqsz7470jnbc5n0rb"; + src = fetchFromGitHub { + owner = "baresip"; + repo = "baresip"; + rev = "v${version}"; + sha256 = "sha256-9mc1Beo7/iNhDXSDC/jiTL+lJRt8ah/1xF1heoHTE+g="; }; + postPatch = '' + patchShebangs modules/ctrl_dbus/gen.sh + ''; nativeBuildInputs = [ pkg-config ]; - buildInputs = [zlib openssl libre librem cairo mpg123 - alsa-lib SDL libv4l celt libsndfile srtp ffmpeg gsm speex portaudio spandsp libuuid + buildInputs = [ + zlib + openssl + libre + librem + cairo + mpg123 + alsa-lib + SDL2 + libv4l + celt + libsndfile + srtp + ffmpeg + gsm + speex + portaudio + spandsp3 + libuuid libvpx ] ++ (with gst_all_1; [ gstreamer gst-libav gst-plugins-base gst-plugins-bad gst-plugins-good ]); makeFlags = [ @@ -23,30 +66,55 @@ stdenv.mkDerivation rec { "USE_VIDEO=1" "CCACHE_DISABLE=1" - "USE_ALSA=1" "USE_AMR=1" "USE_CAIRO=1" "USE_CELT=1" - "USE_CONS=1" "USE_EVDEV=1" "USE_FFMPEG=1" "USE_GSM=1" "USE_GST1=1" - "USE_L16=1" "USE_MPG123=1" "USE_OSS=1" "USE_PLC=1" "USE_VPX=1" - "USE_PORTAUDIO=1" "USE_SDL=1" "USE_SNDFILE=1" "USE_SPEEX=1" - "USE_SPEEX_AEC=1" "USE_SPEEX_PP=1" "USE_SPEEX_RESAMP=1" "USE_SRTP=1" - "USE_STDIO=1" "USE_SYSLOG=1" "USE_UUID=1" "USE_V4L2=1" "USE_X11=1" + "USE_ALSA=1" + "USE_AMR=1" + "USE_CAIRO=1" + "USE_CELT=1" + "USE_CONS=1" + "USE_EVDEV=1" + "USE_FFMPEG=1" + "USE_GSM=1" + "USE_GST1=1" + "USE_L16=1" + "USE_MPG123=1" + "USE_OSS=1" + "USE_PLC=1" + "USE_VPX=1" + "USE_PORTAUDIO=1" + "USE_SDL=1" + "USE_SNDFILE=1" + "USE_SPEEX=1" + "USE_SPEEX_AEC=1" + "USE_SPEEX_PP=1" + "USE_SPEEX_RESAMP=1" + "USE_SRTP=1" + "USE_STDIO=1" + "USE_SYSLOG=1" + "USE_UUID=1" + "USE_V4L2=1" + "USE_X11=1" - "USE_BV32=" "USE_COREAUDIO=" "USE_G711=1" "USE_G722=1" "USE_G722_1=" - "USE_ILBC=" "USE_OPUS=" "USE_SILK=" + "USE_BV32=" + "USE_COREAUDIO=" + "USE_G711=1" + "USE_G722=1" + "USE_G722_1=" + "USE_ILBC=" + "USE_OPUS=" + "USE_SILK=" ] ++ lib.optional (stdenv.cc.cc != null) "SYSROOT_ALT=${stdenv.cc.cc}" ++ lib.optional (stdenv.cc.libc != null) "SYSROOT=${stdenv.cc.libc}" ; - NIX_CFLAGS_COMPILE='' -I${librem}/include/rem -I${gsm}/include/gsm + NIX_CFLAGS_COMPILE = '' -I${librem}/include/rem -I${gsm}/include/gsm -DHAVE_INTTYPES_H -D__GLIBC__ -D__need_timeval -D__need_timespec -D__need_time_t ''; + meta = { - homepage = "http://www.creytiv.com/baresip.html"; - platforms = with lib.platforms; linux; - maintainers = with lib.maintainers; [raskin]; + description = "A modular SIP User-Agent with audio and video support"; + homepage = "https://github.com/baresip/baresip"; + maintainers = with lib.maintainers; [ elohmeier raskin ]; license = lib.licenses.bsd3; - downloadPage = "http://www.creytiv.com/pub/"; - updateWalker = true; - downloadURLRegexp = "/baresip-.*[.]tar[.].*"; }; } From 17c0bbb496667bb4f99fdd526245aaa2bb876a7f Mon Sep 17 00:00:00 2001 From: Pavol Rusnak Date: Thu, 6 Jan 2022 18:01:41 +0100 Subject: [PATCH 18/28] qscintilla: cleanup --- .../libraries/qscintilla-qt4/default.nix | 13 ++++- .../libraries/qscintilla/default.nix | 12 ++-- .../python-modules/qscintilla-qt4/default.nix | 56 +++++++++---------- .../python-modules/qscintilla-qt5/default.nix | 2 +- .../python-modules/qscintilla/default.nix | 43 -------------- 5 files changed, 47 insertions(+), 79 deletions(-) delete mode 100644 pkgs/development/python-modules/qscintilla/default.nix diff --git a/pkgs/development/libraries/qscintilla-qt4/default.nix b/pkgs/development/libraries/qscintilla-qt4/default.nix index 7cefdec97ca2..23daedd217e2 100644 --- a/pkgs/development/libraries/qscintilla-qt4/default.nix +++ b/pkgs/development/libraries/qscintilla-qt4/default.nix @@ -1,4 +1,9 @@ -{ stdenv, lib, fetchurl, unzip, qt4, qmake4Hook +{ stdenv +, lib +, fetchurl +, unzip +, qt4 +, qmake4Hook }: stdenv.mkDerivation rec { @@ -16,12 +21,14 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ unzip qmake4Hook ]; - patches = ./fix-qt4-build.patch; + patches = [ + ./fix-qt4-build.patch + ]; # Make sure that libqscintilla2.so is available in $out/lib since it is expected # by some packages such as sqlitebrowser postFixup = '' - ln -s $out/lib/libqscintilla2_qt?.so $out/lib/libqscintilla2.so + ln -s $out/lib/libqscintilla2_qt4.so $out/lib/libqscintilla2.so ''; dontWrapQtApps = true; diff --git a/pkgs/development/libraries/qscintilla/default.nix b/pkgs/development/libraries/qscintilla/default.nix index 3dcbc22e15fe..88c44ece32cd 100644 --- a/pkgs/development/libraries/qscintilla/default.nix +++ b/pkgs/development/libraries/qscintilla/default.nix @@ -1,5 +1,9 @@ -{ stdenv, lib, fetchurl, unzip -, qtbase, qtmacextras +{ stdenv +, lib +, fetchurl +, unzip +, qtbase +, qtmacextras , qmake , fixDarwinDylibNames }: @@ -20,12 +24,12 @@ stdenv.mkDerivation rec { propagatedBuildInputs = lib.optionals stdenv.isDarwin [ qtmacextras ]; nativeBuildInputs = [ unzip qmake ] - ++ lib.optional stdenv.isDarwin fixDarwinDylibNames; + ++ lib.optionals stdenv.isDarwin [ fixDarwinDylibNames ]; # Make sure that libqscintilla2.so is available in $out/lib since it is expected # by some packages such as sqlitebrowser postFixup = '' - ln -s $out/lib/libqscintilla2_qt?.so $out/lib/libqscintilla2.so + ln -s $out/lib/libqscintilla2_qt5.so $out/lib/libqscintilla2.so ''; dontWrapQtApps = true; diff --git a/pkgs/development/python-modules/qscintilla-qt4/default.nix b/pkgs/development/python-modules/qscintilla-qt4/default.nix index bc3f3596923f..a356bfddb934 100644 --- a/pkgs/development/python-modules/qscintilla-qt4/default.nix +++ b/pkgs/development/python-modules/qscintilla-qt4/default.nix @@ -1,6 +1,5 @@ { lib , buildPythonPackage -, disabledIf , isPy3k , isPyPy , pkgs @@ -8,35 +7,36 @@ , pyqt4 }: -disabledIf (isPy3k || isPyPy) - (buildPythonPackage { - pname = "qscintilla"; - version = pkgs.qscintilla.version; - format = "other"; +buildPythonPackage { + pname = "qscintilla-qt4"; + version = pkgs.qscintilla-qt4.version; + format = "other"; - src = pkgs.qscintilla.src; + disabled = isPyPy; - nativeBuildInputs = [ pkgs.xorg.lndir ]; + src = pkgs.qscintilla-qt4.src; - buildInputs = [ pyqt4.qt pyqt4 ]; + nativeBuildInputs = [ pkgs.xorg.lndir ]; - preConfigure = '' - mkdir -p $out - lndir ${pyqt4} $out - rm -rf "$out/nix-support" - cd Python - ${python.executable} ./configure-old.py \ - --destdir $out/lib/${python.libPrefix}/site-packages/PyQt4 \ - --apidir $out/api/${python.libPrefix} \ - -n ${pkgs.qscintilla}/include \ - -o ${pkgs.qscintilla}/lib \ - --sipdir $out/share/sip - ''; + buildInputs = [ pyqt4.qt pyqt4 ]; - meta = with lib; { - description = "A Python binding to QScintilla, Qt based text editing control"; - license = licenses.lgpl21Plus; - maintainers = with maintainers; [ danbst ]; - platforms = platforms.linux; - }; - }) + preConfigure = '' + mkdir -p $out + lndir ${pyqt4} $out + rm -rf "$out/nix-support" + cd Python + ${python.executable} ./configure-old.py \ + --destdir $out/lib/${python.libPrefix}/site-packages/PyQt4 \ + --apidir $out/api/${python.libPrefix} \ + -n ${pkgs.qscintilla-qt4}/include \ + -o ${pkgs.qscintilla-qt4}/lib \ + --sipdir $out/share/sip + ''; + + meta = with lib; { + description = "A Python binding to QScintilla, Qt based text editing control"; + license = licenses.lgpl21Plus; + maintainers = with maintainers; [ danbst ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/development/python-modules/qscintilla-qt5/default.nix b/pkgs/development/python-modules/qscintilla-qt5/default.nix index 11445c99f4f4..3e43b0d069ca 100644 --- a/pkgs/development/python-modules/qscintilla-qt5/default.nix +++ b/pkgs/development/python-modules/qscintilla-qt5/default.nix @@ -10,7 +10,7 @@ let inherit (pythonPackages) buildPythonPackage isPy3k python sip sipbuild pyqt5 pyqt-builder; in buildPythonPackage rec { - pname = "qscintilla"; + pname = "qscintilla-qt5"; version = qscintilla.version; src = qscintilla.src; format = "pyproject"; diff --git a/pkgs/development/python-modules/qscintilla/default.nix b/pkgs/development/python-modules/qscintilla/default.nix deleted file mode 100644 index 24719de779eb..000000000000 --- a/pkgs/development/python-modules/qscintilla/default.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ lib -, buildPythonPackage -, disabledIf -, isPy3k -, isPyPy -, pkgs -, python -, pyqt4 -}: - -disabledIf (isPy3k || isPyPy) - (buildPythonPackage { - # TODO: Qt5 support - pname = "qscintilla"; - version = pkgs.qscintilla.version; - format = "other"; - - src = pkgs.qscintilla.src; - - nativeBuildInputs = [ pkgs.xorg.lndir ]; - - buildInputs = [ pyqt4.qt pyqt4 ]; - - preConfigure = '' - mkdir -p $out - lndir ${pyqt4} $out - rm -rf "$out/nix-support" - cd Python - ${python.executable} ./configure-old.py \ - --destdir $out/lib/${python.libPrefix}/site-packages/PyQt4 \ - --apidir $out/api/${python.libPrefix} \ - -n ${pkgs.qscintilla}/include \ - -o ${pkgs.qscintilla}/lib \ - --sipdir $out/share/sip - ''; - - meta = with lib; { - description = "A Python binding to QScintilla, Qt based text editing control"; - license = licenses.lgpl21Plus; - maintainers = with maintainers; [ danbst ]; - platforms = platforms.unix; - }; - }) From f77dcd50aa589306bf81535e4efef35bea7fdd73 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 6 Jan 2022 09:12:02 +0000 Subject: [PATCH 19/28] python38Packages.chainer: 7.8.0 -> 7.8.1 --- pkgs/development/python-modules/chainer/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/chainer/default.nix b/pkgs/development/python-modules/chainer/default.nix index 1ccce2caeeb9..b7dbfca70e8a 100644 --- a/pkgs/development/python-modules/chainer/default.nix +++ b/pkgs/development/python-modules/chainer/default.nix @@ -5,7 +5,7 @@ buildPythonPackage rec { pname = "chainer"; - version = "7.8.0"; + version = "7.8.1"; disabled = !isPy3k; # python2.7 abandoned upstream # no tests in Pypi tarball @@ -13,7 +13,7 @@ buildPythonPackage rec { owner = "chainer"; repo = "chainer"; rev = "v${version}"; - sha256 = "1zfj3pk54gzxd4nid0qjx4kw1wdngwscvn4hk4cijxvwqi4a5zxj"; + sha256 = "1n07zjzc4g92m1sbgxvnansl0z00y4jnhma2mw06vnahs7s9nrf6"; }; checkInputs = [ From ff0c3a068d0b6274a75456f84b3e2216421d4b97 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 6 Jan 2022 10:29:17 +0000 Subject: [PATCH 20/28] python38Packages.mautrix: 0.14.0 -> 0.14.3 --- pkgs/development/python-modules/mautrix/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/mautrix/default.nix b/pkgs/development/python-modules/mautrix/default.nix index 1be685e013b4..4e4e6dcc6345 100644 --- a/pkgs/development/python-modules/mautrix/default.nix +++ b/pkgs/development/python-modules/mautrix/default.nix @@ -4,11 +4,11 @@ buildPythonPackage rec { pname = "mautrix"; - version = "0.14.0"; + version = "0.14.3"; src = fetchPypi { inherit pname version; - sha256 = "5ad04e87bcf31eb3479fdd3cabd5082b257013e5c00f6b369539a2b584afadaf"; + sha256 = "a7b41b522deafe47f8d3ce2b13f5a8a01f7bc715f09ebb5ca53a4af4f6987701"; }; propagatedBuildInputs = [ From 84ab3070b31ea715a3de0cc4cde379f89010f482 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 6 Jan 2022 05:59:05 +0000 Subject: [PATCH 21/28] python38Packages.google-cloud-storage: 1.43.0 -> 1.44.0 --- .../python-modules/google-cloud-storage/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/google-cloud-storage/default.nix b/pkgs/development/python-modules/google-cloud-storage/default.nix index 9d97437b8151..f74944a45e2e 100644 --- a/pkgs/development/python-modules/google-cloud-storage/default.nix +++ b/pkgs/development/python-modules/google-cloud-storage/default.nix @@ -13,11 +13,11 @@ buildPythonPackage rec { pname = "google-cloud-storage"; - version = "1.43.0"; + version = "1.44.0"; src = fetchPypi { inherit pname version; - sha256 = "f3b4f4be5c8a1b5727a8f7136c94d3bacdd4b7bf11f9553f51ae4c1d876529d3"; + sha256 = "29edbfeedd157d853049302bf5d104055c6f0cb7ef283537da3ce3f730073001"; }; propagatedBuildInputs = [ From 93c3b17f751e1240ab23aefee44c92f1ead1904c Mon Sep 17 00:00:00 2001 From: Will Cohen Date: Thu, 6 Jan 2022 13:09:12 -0500 Subject: [PATCH 22/28] ovito: mark as broken on darwin --- pkgs/applications/graphics/ovito/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/applications/graphics/ovito/default.nix b/pkgs/applications/graphics/ovito/default.nix index f0dc5f2b363e..a9cef1e14090 100644 --- a/pkgs/applications/graphics/ovito/default.nix +++ b/pkgs/applications/graphics/ovito/default.nix @@ -1,4 +1,4 @@ -{ mkDerivation, lib, fetchFromGitLab, cmake +{ mkDerivation, lib, stdenv, fetchFromGitLab, cmake , boost, netcdf, hdf5, fftwSinglePrec, muparser, openssl, ffmpeg, python , qtbase, qtsvg, qttools, qscintilla }: @@ -37,5 +37,6 @@ mkDerivation rec { homepage = "https://ovito.org"; license = with licenses; [ gpl3Only mit ]; maintainers = with maintainers; [ twhitehead ]; + broken = stdenv.isDarwin; # clang-11: error: no such file or directory: '$-DOVITO_COPYRIGHT_NOTICE=... }; } From bc0c803a50ad8f129fdc298b25e5bbae02528859 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 6 Jan 2022 11:14:53 +0000 Subject: [PATCH 23/28] python38Packages.miniaudio: 1.45 -> 1.46 --- pkgs/development/python-modules/miniaudio/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/miniaudio/default.nix b/pkgs/development/python-modules/miniaudio/default.nix index 0f3372a6048c..f0e5db4f0ecd 100644 --- a/pkgs/development/python-modules/miniaudio/default.nix +++ b/pkgs/development/python-modules/miniaudio/default.nix @@ -8,7 +8,7 @@ buildPythonPackage rec { pname = "miniaudio"; - version = "1.45"; + version = "1.46"; disabled = pythonOlder "3.6"; @@ -16,7 +16,7 @@ buildPythonPackage rec { owner = "irmen"; repo = "pyminiaudio"; rev = "v${version}"; - sha256 = "1yx4n4zax103fmjzdiqzw37zibsh68b2p2l5qvgcnx2zrrjd31yl"; + sha256 = "16llwmbbd9445rwhl4v66kf5zd7yl3a94zm9xyllq6ij7vnhg5jb"; }; propagatedNativeBuildInputs = [ cffi ]; From 14927bdce643e9b2ebb153b9413d301622c37cd5 Mon Sep 17 00:00:00 2001 From: TredwellGit Date: Thu, 6 Jan 2022 18:15:57 +0000 Subject: [PATCH 24/28] libreoffice-fresh: 7.2.4.1 -> 7.2.5.2 Fixes https://github.com/NixOS/nixpkgs/issues/153436 --- .../office/libreoffice/src-fresh/download.nix | 8 ++++---- .../office/libreoffice/src-fresh/primary.nix | 10 +++++----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/pkgs/applications/office/libreoffice/src-fresh/download.nix b/pkgs/applications/office/libreoffice/src-fresh/download.nix index ecce7cf18145..9bfccf4c3069 100644 --- a/pkgs/applications/office/libreoffice/src-fresh/download.nix +++ b/pkgs/applications/office/libreoffice/src-fresh/download.nix @@ -714,11 +714,11 @@ md5name = "505e70834d35383537b6491e7ae8641f1a4bed1876dbfe361201fc80868d88ca-libpng-1.6.37.tar.xz"; } { - name = "poppler-21.01.0.tar.xz"; - url = "https://dev-www.libreoffice.org/src/poppler-21.01.0.tar.xz"; - sha256 = "016dde34e5f868ea98a32ca99b643325a9682281500942b7113f4ec88d20e2f3"; + name = "poppler-21.11.0.tar.xz"; + url = "https://dev-www.libreoffice.org/src/poppler-21.11.0.tar.xz"; + sha256 = "31b76b5cac0a48612fdd154c02d9eca01fd38fb8eaa77c1196840ecdeb53a584"; md5 = ""; - md5name = "016dde34e5f868ea98a32ca99b643325a9682281500942b7113f4ec88d20e2f3-poppler-21.01.0.tar.xz"; + md5name = "31b76b5cac0a48612fdd154c02d9eca01fd38fb8eaa77c1196840ecdeb53a584-poppler-21.11.0.tar.xz"; } { name = "poppler-data-0.4.10.tar.gz"; diff --git a/pkgs/applications/office/libreoffice/src-fresh/primary.nix b/pkgs/applications/office/libreoffice/src-fresh/primary.nix index f1a1478a3cf9..7d13558b9357 100644 --- a/pkgs/applications/office/libreoffice/src-fresh/primary.nix +++ b/pkgs/applications/office/libreoffice/src-fresh/primary.nix @@ -8,8 +8,8 @@ rec { major = "7"; minor = "2"; - patch = "4"; - tweak = "1"; + patch = "5"; + tweak = "2"; subdir = "${major}.${minor}.${patch}"; @@ -17,13 +17,13 @@ rec { src = fetchurl { url = "https://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz"; - sha256 = "sha256-Ymi5BmpgWGzwpfXtmWDN+Gpf9Yb+Zpm/TSltWA3gjyE="; + sha256 = "sha256-Z8G/sFnUMyhrAlKpFWJ7M69ju19LbslQnRO53UdVEqc="; }; # FIXME rename translations = fetchSrc { name = "translations"; - sha256 = "sha256-8nzCt7/J7gqJPtHOrVu7UTonJw1pxu4fnLWJyWOUHa8="; + sha256 = "sha256-9rnuRifsEX7RAUdsX6VVw/xQS6dZeS3RbKnoC39uMd8="; }; # the "dictionaries" archive is not used for LO build because we already build hunspellDicts packages from @@ -31,6 +31,6 @@ rec { help = fetchSrc { name = "help"; - sha256 = "sha256-rZb1ej3GbgXOHOZWVKKJVuir2urLmvGmrdpB1vpcaCk="; + sha256 = "sha256-6vERLWh0fkQcSRkC37fw2HBqxVtbr9kPEhOyWXjMrfM="; }; } From 7a022212c83000b4d56d93df4cd5610caa74e4b9 Mon Sep 17 00:00:00 2001 From: Ilan Joselevich Date: Thu, 6 Jan 2022 16:35:32 +0200 Subject: [PATCH 25/28] liquidctl: 1.7.2 -> 1.8.0 --- pkgs/development/python-modules/liquidctl/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/liquidctl/default.nix b/pkgs/development/python-modules/liquidctl/default.nix index c37183e22ec0..66a1a5f61f9e 100644 --- a/pkgs/development/python-modules/liquidctl/default.nix +++ b/pkgs/development/python-modules/liquidctl/default.nix @@ -14,14 +14,14 @@ buildPythonPackage rec { pname = "liquidctl"; - version = "1.7.2"; + version = "1.8.0"; disabled = pythonOlder "3.6"; src = fetchFromGitHub { owner = pname; repo = pname; rev = "v${version}"; - sha256 = "sha256-fPSvxdr329SxAe4N7lTa7hddFp1WVUplkhYD1oDQXAI="; + sha256 = "sha256-N0Ebd0zIHFmuiIozkAy4SV3o8rFA1wmrGd+dJo8jdk0="; }; nativeBuildInputs = [ installShellFiles ]; From 9be55be68e7ba7c91c740fca8c4331a0de4d3125 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 6 Jan 2022 14:46:58 +0100 Subject: [PATCH 26/28] python3Packages.uritemplate: 3.0.1 -> 4.1.1 --- .../python-modules/uritemplate/default.nix | 31 +++++++++++++------ 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/pkgs/development/python-modules/uritemplate/default.nix b/pkgs/development/python-modules/uritemplate/default.nix index 5077267528a5..814e7fd8c19a 100644 --- a/pkgs/development/python-modules/uritemplate/default.nix +++ b/pkgs/development/python-modules/uritemplate/default.nix @@ -1,25 +1,38 @@ -{ lib, buildPythonPackage, fetchPypi, simplejson, pytest, glibcLocales }: +{ lib +, buildPythonPackage +, fetchPypi +, simplejson +, pytestCheckHook +, pythonOlder +}: buildPythonPackage rec { pname = "uritemplate"; - version = "3.0.1"; + version = "4.1.1"; + format = "setuptools"; + + disabled = pythonOlder "3.6"; src = fetchPypi { inherit pname version; - sha256 = "5af8ad10cec94f215e3f48112de2022e1d5a37ed427fbd88652fa908f2ab7cae"; + sha256 = "sha256-Q0bt/Fw7efaUvM1tYJmjIrvrYo2/LNhu6lWkVs5RJPA="; }; - propagatedBuildInputs = [ simplejson ]; + propagatedBuildInputs = [ + simplejson + ]; - checkInputs = [ pytest glibcLocales ]; + checkInputs = [ + pytestCheckHook + ]; - checkPhase = '' - LC_ALL=en_US.UTF-8 py.test - ''; + pythonImportsCheck = [ + "uritemplate" + ]; meta = with lib; { + description = "Implementation of RFC 6570 URI templates"; homepage = "https://github.com/python-hyper/uritemplate"; - description = "URI template parsing for Humans"; license = with licenses; [ asl20 bsd3 ]; maintainers = with maintainers; [ matthiasbeyer ]; }; From 0b5c462b4efb9f4e05b8cb70f925a53b51471ec4 Mon Sep 17 00:00:00 2001 From: Pavol Rusnak Date: Thu, 6 Jan 2022 20:02:35 +0100 Subject: [PATCH 27/28] ovito: 3.4.0 -> 3.6.0 --- pkgs/applications/graphics/ovito/default.nix | 44 ++++++++++++++------ pkgs/top-level/all-packages.nix | 4 +- 2 files changed, 35 insertions(+), 13 deletions(-) diff --git a/pkgs/applications/graphics/ovito/default.nix b/pkgs/applications/graphics/ovito/default.nix index a9cef1e14090..45457ad8ebb1 100644 --- a/pkgs/applications/graphics/ovito/default.nix +++ b/pkgs/applications/graphics/ovito/default.nix @@ -1,16 +1,33 @@ -{ mkDerivation, lib, stdenv, fetchFromGitLab, cmake -, boost, netcdf, hdf5, fftwSinglePrec, muparser, openssl, ffmpeg, python -, qtbase, qtsvg, qttools, qscintilla }: +{ mkDerivation +, lib +, stdenv +, fetchFromGitLab +, cmake +, boost +, bzip2 +, ffmpeg +, fftwSinglePrec +, hdf5 +, muparser +, netcdf +, openssl +, python3 +, qscintilla +, qtbase +, qtsvg +, qttools +, VideoDecodeAcceleration +}: mkDerivation rec { pname = "ovito"; - version = "3.4.0"; + version = "3.6.0"; src = fetchFromGitLab { owner = "stuko"; repo = "ovito"; rev = "v${version}"; - sha256 = "1y3wr6yzpsl0qm7cicp2mppfszxd0fgx8hm99in9wff9qd0r16b5"; + sha256 = "sha256-yQ8gSe/QM1RRNxk4bDJ+K5QX0eYjZ+iG3QOHj01tJhY="; }; nativeBuildInputs = [ @@ -19,17 +36,20 @@ mkDerivation rec { buildInputs = [ boost - netcdf - hdf5 - fftwSinglePrec - muparser - openssl + bzip2 ffmpeg - python + fftwSinglePrec + hdf5 + muparser + netcdf + openssl + python3 + qscintilla qtbase qtsvg qttools - qscintilla + ] ++ lib.optionals stdenv.isDarwin [ + VideoDecodeAcceleration ]; meta = with lib; { diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 5d9ee5489869..a833997f2db5 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8532,7 +8532,9 @@ with pkgs; ovh-ttyrec = callPackage ../tools/misc/ovh-ttyrec { }; - ovito = libsForQt5.callPackage ../applications/graphics/ovito { }; + ovito = libsForQt5.callPackage ../applications/graphics/ovito { + inherit (darwin.apple_sdk.frameworks) VideoDecodeAcceleration; + }; owncloud-client = libsForQt5.callPackage ../applications/networking/owncloud-client { }; From e1c79ccfe4076fe4ac8d61aaf87565c7582bfd2e Mon Sep 17 00:00:00 2001 From: Thiago Kenji Okada Date: Thu, 6 Jan 2022 19:47:44 -0300 Subject: [PATCH 28/28] clojure-lsp: fix build on macOS Instead of setting the environment variable using Nix, use `preBuild` hook to inject the value `DTLV_LIB_EXTRACT_DIR` on directly to `nativeImageBuildArgs`. This will allow us to use a dynamically value generated with `mktemp -d`. Fix issue #153765. --- pkgs/development/tools/misc/clojure-lsp/default.nix | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/misc/clojure-lsp/default.nix b/pkgs/development/tools/misc/clojure-lsp/default.nix index 5e3c750852df..2e11ad9f8add 100644 --- a/pkgs/development/tools/misc/clojure-lsp/default.nix +++ b/pkgs/development/tools/misc/clojure-lsp/default.nix @@ -17,10 +17,14 @@ buildGraalvmNativeImage rec { }; # https://github.com/clojure-lsp/clojure-lsp/blob/2021.11.02-15.24.47/graalvm/native-unix-compile.sh#L18-L27 - DTLV_LIB_EXTRACT_DIR = "/tmp"; + # Needs to be inject on `nativeImageBuildArgs` inside shell environment, + # otherwise we can't expand to the value set in `mktemp -d` call + preBuild = '' + export DTLV_LIB_EXTRACT_DIR="$(mktemp -d)" + nativeImageBuildArgs+=("-H:CLibraryPath=$DTLV_LIB_EXTRACT_DIR") + ''; extraNativeImageBuildArgs = [ - "-H:CLibraryPath=${DTLV_LIB_EXTRACT_DIR}" "--no-fallback" "--native-image-info" ];