···765765### Interpreters {#interpreters}
766766767767Versions 2.7, 3.6, 3.7, 3.8 and 3.9 of the CPython interpreter are available as
768768-respectively `python27`, `python36`, `python37`, `python38` and `python39`. The
768768+respectively `python27`, `python37`, `python38` and `python39`. The
769769aliases `python2` and `python3` correspond to respectively `python27` and
770770`python39`. The attribute `python` maps to `python2`. The PyPy interpreters
771771compatible with Python 2.7 and 3 are available as `pypy27` and `pypy3`, with
···830830sets are
831831832832* `pkgs.python27Packages`
833833-* `pkgs.python36Packages`
834833* `pkgs.python37Packages`
835834* `pkgs.python38Packages`
836835* `pkgs.python39Packages`
836836+* `pkgs.python310Packages`
837837* `pkgs.pypyPackages`
838838839839and the aliases
···1717 <itemizedlist>
1818 <listitem>
1919 <para>
2020+ <literal>iptables</literal> now uses
2121+ <literal>nf_tables</literal> backend.
2222+ </para>
2323+ </listitem>
2424+ <listitem>
2525+ <para>
2026 PHP now defaults to PHP 8.0, updated from 7.4.
2127 </para>
2228 </listitem>
···371377 that before NixOS 21.11, specifying either setuid or setgid
372378 but not owner/group resulted in wrappers owned by
373379 nobody/nogroup, which is unsafe.
380380+ </para>
381381+ </listitem>
382382+ <listitem>
383383+ <para>
384384+ Since <literal>iptables</literal> now uses
385385+ <literal>nf_tables</literal> backend and
386386+ <literal>ipset</literal> doesn’t support it, some applications
387387+ (ferm, shorewall, firehol) may have limited functionality.
374388 </para>
375389 </listitem>
376390 <listitem>
+4
nixos/doc/manual/release-notes/rl-2111.section.md
···6677## Highlights {#sec-release-21.11-highlights}
8899+- `iptables` now uses `nf_tables` backend.
1010+911- PHP now defaults to PHP 8.0, updated from 7.4.
10121113- kOps now defaults to 1.21.1, which uses containerd as the default runtime.
···113115114116- The `security.wrappers` option now requires to always specify an owner, group and whether the setuid/setgid bit should be set.
115117 This is motivated by the fact that before NixOS 21.11, specifying either setuid or setgid but not owner/group resulted in wrappers owned by nobody/nogroup, which is unsafe.
118118+119119+- Since `iptables` now uses `nf_tables` backend and `ipset` doesn't support it, some applications (ferm, shorewall, firehol) may have limited functionality.
116120117121- The `paperless` module and package have been removed. All users should migrate to the
118122 successor `paperless-ng` instead. The Paperless project [has been
+2-7
nixos/modules/hardware/printers.nix
···116116 description = "Ensure NixOS-configured CUPS printers";
117117 wantedBy = [ "multi-user.target" ];
118118 requires = [ cupsUnit ];
119119- # in contrast to cups.socket, for cups.service, this is actually not enough,
120120- # as the cups service reports its activation before clients can actually interact with it.
121121- # Because of this, commands like `lpinfo -v` will report a bad file descriptor
122122- # due to the missing UNIX socket without sufficient sleep time.
123119 after = [ cupsUnit ];
124120125121 serviceConfig = {
126122 Type = "oneshot";
123123+ RemainAfterExit = true;
127124 };
128125129129- # sleep 10 is required to wait until cups.service is actually initialized and has created its UNIX socket file
130130- script = (optionalString (!config.services.printing.startWhenNeeded) "sleep 10\n")
131131- + (concatMapStringsSep "\n" ensurePrinter cfg.ensurePrinters)
126126+ script = concatMapStringsSep "\n" ensurePrinter cfg.ensurePrinters
132127 + optionalString (cfg.ensureDefaultPrinter != null) (ensureDefaultPrinter cfg.ensureDefaultPrinter);
133128 };
134129 };
···502502503503 systemd.services.ModemManager.aliases = [ "dbus-org.freedesktop.ModemManager1.service" ];
504504505505- # override unit as recommended by upstream - see https://github.com/NixOS/nixpkgs/issues/88089
506506- # TODO: keep an eye on modem-manager releases as this will eventually be added to the upstream unit
507507- systemd.services.ModemManager.serviceConfig.ExecStart = [
508508- ""
509509- "${pkgs.modemmanager}/sbin/ModemManager --filter-policy=STRICT"
510510- ];
511511-512505 systemd.services.NetworkManager-dispatcher = {
513506 wantedBy = [ "network.target" ];
514507 restartTriggers = [ configFile overrideNameserversScript ];
···109109110110 environment.systemPackages = with pkgs; [
111111 xdotool
112112- # Firefox was disabled here, because we needed to disable p11-kit support in nss,
113113- # which is why it will not use the system certificate store for the time being.
114114- # firefox
112112+ firefox
115113 chromium
116114 qutebrowser
117115 midori
···153151 machine.fail("curl -fv https://bad.example.com")
154152155153 browsers = {
156156- # Firefox was disabled here, because we needed to disable p11-kit support in nss,
157157- # which is why it will not use the system certificate store for the time being.
158158- #"firefox": "Security Risk",
154154+ "firefox": "Security Risk",
159155 "chromium": "not private",
160156 "qutebrowser -T": "Certificate error",
161157 "midori": "Security"
+2-10
nixos/tests/printing.nix
···53535454 start_all()
55555656- with subtest("Make sure that cups is up on both sides"):
5656+ with subtest("Make sure that cups is up on both sides and printers are set up"):
5757 serviceServer.wait_for_unit("cups.service")
5858 serviceClient.wait_for_unit("cups.service")
5959-6060- with subtest(
6161- "Wait until cups is fully initialized and ensure-printers has "
6262- "executed with 10s delay"
6363- ):
6464- serviceClient.sleep(20)
6565- socketActivatedClient.wait_until_succeeds(
6666- "systemctl show ensure-printers | grep -q -E 'code=exited ; status=0'"
6767- )
5959+ socketActivatedClient.wait_for_unit("ensure-printers.service")
686069617062 def test_printing(client, server):
+55
nixos/tests/systemd-cryptenroll.nix
···11+import ./make-test-python.nix ({ pkgs, ... }: {
22+ name = "systemd-cryptenroll";
33+ meta = with pkgs.lib.maintainers; {
44+ maintainers = [ ymatsiuk ];
55+ };
66+77+ machine = { pkgs, lib, ... }: {
88+ environment.systemPackages = [ pkgs.cryptsetup ];
99+ virtualisation = {
1010+ emptyDiskImages = [ 512 ];
1111+ memorySize = 1024;
1212+ qemu.options = [
1313+ "-chardev socket,id=chrtpm,path=/tmp/swtpm-sock"
1414+ "-tpmdev emulator,id=tpm0,chardev=chrtpm"
1515+ "-device tpm-tis,tpmdev=tpm0"
1616+ ];
1717+ };
1818+ };
1919+2020+ testScript = ''
2121+ import subprocess
2222+ import tempfile
2323+2424+ def start_swtpm(tpmstate):
2525+ subprocess.Popen(["${pkgs.swtpm}/bin/swtpm", "socket", "--tpmstate", "dir="+tpmstate, "--ctrl", "type=unixio,path=/tmp/swtpm-sock", "--log", "level=0", "--tpm2"])
2626+2727+ with tempfile.TemporaryDirectory() as tpmstate:
2828+ start_swtpm(tpmstate)
2929+ machine.start()
3030+3131+ # Verify the TPM device is available and accessible by systemd-cryptenroll
3232+ machine.succeed("test -e /dev/tpm0")
3333+ machine.succeed("test -e /dev/tpmrm0")
3434+ machine.succeed("systemd-cryptenroll --tpm2-device=list")
3535+3636+ # Create LUKS partition
3737+ machine.succeed("echo -n lukspass | cryptsetup luksFormat -q /dev/vdb -")
3838+ # Enroll new LUKS key and bind it to Secure Boot state
3939+ # For more details on PASSWORD variable, check the following issue:
4040+ # https://github.com/systemd/systemd/issues/20955
4141+ machine.succeed("PASSWORD=lukspass systemd-cryptenroll --tpm2-device=auto --tpm2-pcrs=7 /dev/vdb")
4242+ # Add LUKS partition to /etc/crypttab to test auto unlock
4343+ machine.succeed("echo 'luks /dev/vdb - tpm2-device=auto' >> /etc/crypttab")
4444+ machine.shutdown()
4545+4646+ start_swtpm(tpmstate)
4747+ machine.start()
4848+4949+ # Test LUKS partition automatic unlock on boot
5050+ machine.wait_for_unit("systemd-cryptsetup@luks.service")
5151+ # Wipe TPM2 slot
5252+ machine.succeed("systemd-cryptenroll --wipe-slot=tpm2 /dev/vdb")
5353+ '';
5454+})
5555+
-4
pkgs/applications/audio/bambootracker/default.nix
···30303131 postConfigure = "make qmake_all";
32323333- # 1. installs app bundle on darwin, move to app bundle dir & link binary to bin
3434- # 2. wrapQtAppsHook fails to wrap mach-o binaries automatically, manually call wrapper
3535- # (see https://github.com/NixOS/nixpkgs/issues/102044)
3633 postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
3734 mkdir -p $out/Applications
3835 mv $out/{bin,Applications}/BambooTracker.app
3939- wrapQtApp $out/Applications/BambooTracker.app/Contents/MacOS/BambooTracker
4036 ln -s $out/{Applications/BambooTracker.app/Contents/MacOS,bin}/BambooTracker
4137 '';
4238
···11-WGET_ARGS=( https://download.kde.org/stable/release-service/21.08.1/src -A '*.tar.xz' )
11+WGET_ARGS=( https://download.kde.org/stable/release-service/21.08.2/src -A '*.tar.xz' )
···11{ fetchFromGitHub, libxcb, mtools, p7zip, parted, procps, qemu, unzip, zip,
22 coreutils, gnugrep, which, gnused, e2fsprogs, autoPatchelfHook, gptfdisk,
33- python36Packages, qt5, runtimeShell, lib, util-linux, wrapQtAppsHook }:
33+ python3Packages, qt5, runtimeShell, lib, util-linux, wrapQtAppsHook }:
4455# Note: Multibootusb is tricky to maintain. It relies on the
66# $PYTHONPATH variable containing some of their code, so that
···1313#
1414# https://github.com/mbusb/multibootusb/blob/0d34d70c3868f1d7695cfd141141b17c075de967/scripts/osdriver.py#L59
15151616-python36Packages.buildPythonApplication rec {
1616+python3Packages.buildPythonApplication rec {
1717 pname = "multibootusb";
1818 name = "${pname}-${version}";
1919 version = "9.2.0";
···42424343 buildInputs = [
4444 libxcb
4545- python36Packages.python
4545+ python3Packages.python
4646 qt5.full
4747 ];
4848···5858 # "Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory"
5959 doCheck = false;
60606161- pythonPath = [
6262- python36Packages.dbus-python
6363- python36Packages.pyqt5
6464- python36Packages.pytest-shutil
6565- python36Packages.pyudev
6666- python36Packages.six
6161+ pythonPath = with python3Packages; [
6262+ dbus-python
6363+ pyqt5
6464+ pytest-shutil
6565+ pyudev
6666+ six
6767 ];
68686969 # multibootusb ships zips with various versions of syslinux, we need to patchelf them
···9595 "''${qtWrapperArgs[@]}"
96969797 # Then, add the installed scripts/ directory to the python path
9898- --prefix "PYTHONPATH" ":" "$out/lib/${python36Packages.python.libPrefix}/site-packages"
9898+ --prefix "PYTHONPATH" ":" "$out/lib/${python3Packages.python.libPrefix}/site-packages"
9999100100 # Add some runtime dependencies
101101 --prefix "PATH" ":" "${lib.makeBinPath runTimeDeps}"
-4
pkgs/applications/misc/sleepyhead/default.nix
···3333 cp sleepyhead/SleepyHead $out/bin
3434 '';
35353636- postFixup = lib.optionalString stdenv.isDarwin ''
3737- wrapQtApp "$out/Applications/SleepyHead.app/Contents/MacOS/SleepyHead"
3838- '';
3939-4036 meta = with lib; {
4137 homepage = "https://sleepyhead.jedimark.net/";
4238 description = "Review and explore data produced by CPAP and related machines";
-5
pkgs/applications/misc/xpdf/default.nix
···5151 install -Dm644 $src/xpdf-qt/xpdf-icon.svg $out/share/pixmaps/xpdf.svg
5252 '';
53535454- # wrapQtAppsHook broken on macOS (https://github.com/NixOS/nixpkgs/issues/102044)
5555- postFixup = lib.optionalString stdenv.isDarwin ''
5656- wrapQtApp $out/bin/xpdf
5757- '';
5858-5954 meta = with lib; {
6055 homepage = "https://www.xpdfreader.com";
6156 description = "Viewer for Portable Document Format (PDF) files";
···117117 then overrideCC stdenv llvmPackages.clangUseLLVM
118118 else stdenv;
119119120120- # Disable p11-kit support in nss until our cacert packages has caught up exposing CKA_NSS_MOZILLA_CA_POLICY
121121- # https://github.com/NixOS/nixpkgs/issues/126065
122122- nss_pkg = if lib.versionOlder version "83" then nss_3_53 else nss.override { useP11kit = false; };
120120+ nss_pkg = if lib.versionOlder version "83" then nss_3_53 else nss;
123121124122 # --enable-release adds -ffunction-sections & LTO that require a big amount of
125123 # RAM and the 32-bit memory space cannot handle that linking
···11{ lib, stdenv, llvm_meta
22, pkgsBuildBuild
33, fetch
44+, fetchpatch
45, cmake
56, python3
67, libffi
···6061 # Force a test to evaluate the saved benchmark for a CPU for which LLVM has
6162 # an execution model. See NixOS/nixpkgs#119673.
6263 ../../exegesis-force-bdver2.patch
6464+6565+ # Fix missing includes for GCC 11
6666+ (fetchpatch {
6767+ name = "headers-gcc-11.patch";
6868+ url = "https://github.com/llvm/llvm-project/commit/b498303066a63a203d24f739b2d2e0e56dca70d1.patch";
6969+ sha256 = "0nh123kld0dgz2h941lng331dkj3wbm5lfxm375k1f569gv83hlk";
7070+ stripLen = 1;
7171+ })
6372 ] ++ lib.optional enablePolly ./gnu-install-dirs-polly.patch;
64736574 postPatch = optionalString stdenv.isDarwin ''
+52-30
pkgs/development/interpreters/guile/1.8.nix
···11-{ lib, stdenv, pkgsBuildBuild, buildPackages
22-, fetchurl, makeWrapper, gawk, pkg-config
33-, libtool, readline, gmp
11+{ lib
22+, stdenv
33+, fetchurl
44+, buildPackages
55+, gawk
66+, gmp
77+, libtool
88+, makeWrapper
99+, pkg-config
1010+, pkgsBuildBuild
1111+, readline
412}:
513614stdenv.mkDerivation rec {
77- name = "guile-1.8.8";
1515+ pname = "guile";
1616+ version = "1.8.8";
817918 src = fetchurl {
1010- url = "mirror://gnu/guile/${name}.tar.gz";
1919+ url = "mirror://gnu/${pname}/${pname}-${version}.tar.gz";
1120 sha256 = "0l200a0v7h8bh0cwz6v7hc13ds39cgqsmfrks55b1rbj5vniyiy3";
1221 };
1322···1524 setOutputFlags = false; # $dev gets into the library otherwise
16251726 # GCC 4.6 raises a number of set-but-unused warnings.
1818- configureFlags = [ "--disable-error-on-warning" ]
1919- # Guile needs patching to preset results for the configure tests about
2020- # pthreads, which work only in native builds.
2121- ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform)
2222- "--with-threads=no";
2323-2424- depsBuildBuild = [ buildPackages.stdenv.cc ]
2525- ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform)
2626- pkgsBuildBuild.guile_1_8;
2727- nativeBuildInputs = [ makeWrapper gawk pkg-config ];
2828- buildInputs = [ readline libtool ];
2727+ configureFlags = [
2828+ "--disable-error-on-warning"
2929+ ]
3030+ # Guile needs patching to preset results for the configure tests about
3131+ # pthreads, which work only in native builds.
3232+ ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform)
3333+ "--with-threads=no";
29343535+ depsBuildBuild = [
3636+ buildPackages.stdenv.cc
3737+ ]
3838+ ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform)
3939+ pkgsBuildBuild.guile_1_8;
4040+ nativeBuildInputs = [
4141+ gawk
4242+ makeWrapper
4343+ pkg-config
4444+ ];
4545+ buildInputs = [
4646+ libtool
4747+ readline
4848+ ];
3049 propagatedBuildInputs = [
3150 gmp
3251···3857 ];
39584059 patches = [
6060+ # Fix doc snarfing with GCC 4.5.
4161 ./cpp-4.5.patch
6262+ # Self explanatory
4263 ./CVE-2016-8605.patch
4364 ];
4465···4667 sed -e '/lt_dlinit/a lt_dladdsearchdir("'$out/lib'");' -i libguile/dynl.c
4768 '';
48694949-5070 postInstall = ''
5171 wrapProgram $out/bin/guile-snarf --prefix PATH : "${gawk}/bin"
5272 ''
5353- # XXX: See http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/18903 for
5454- # why `--with-libunistring-prefix' and similar options coming from
5555- # `AC_LIB_LINKFLAGS_BODY' don't work on NixOS/x86_64.
7373+ # XXX: See http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/18903 for
7474+ # why `--with-libunistring-prefix' and similar options coming from
7575+ # `AC_LIB_LINKFLAGS_BODY' don't work on NixOS/x86_64.
5676 + ''
5777 sed -i "$out/lib/pkgconfig/guile"-*.pc \
5878 -e "s|-lltdl|-L${libtool.lib}/lib -lltdl|g"
···6585 doCheck = false;
6686 doInstallCheck = doCheck;
67876868- setupHook = ./setup-hook.sh;
8888+ setupHook = ./setup-hook-1.8.sh;
69897070- meta = {
9090+ meta = with lib; {
9191+ homepage = "https://www.gnu.org/software/guile/";
7192 description = "Embeddable Scheme implementation";
7272- homepage = "https://www.gnu.org/software/guile/";
7373- license = lib.licenses.lgpl2Plus;
7474- maintainers = [ lib.maintainers.ludo ];
7575- platforms = lib.platforms.unix;
7676-7793 longDescription = ''
7878- GNU Guile is an interpreter for the Scheme programming language,
7979- packaged as a library that can be embedded into programs to make
8080- them extensible. It supports many SRFIs.
9494+ GNU Guile is an implementation of the Scheme programming language, with
9595+ support for many SRFIs, packaged for use in a wide variety of
9696+ environments. In addition to implementing the R5RS Scheme standard and a
9797+ large subset of R6RS, Guile includes a module system, full access to POSIX
9898+ system calls, networking support, multiple threads, dynamic linking, a
9999+ foreign function call interface, and powerful string processing.
81100 '';
101101+ license = licenses.lgpl3Plus;
102102+ maintainers = with maintainers; [ ludo ];
103103+ platforms = platforms.all;
82104 };
83105}
+101-67
pkgs/development/interpreters/guile/2.0.nix
···11-{ lib, stdenv, pkgsBuildBuild, buildPackages
22-, fetchpatch, fetchurl, makeWrapper, gawk, pkg-config
33-, libffi, libtool, readline, gmp, boehmgc, libunistring
11+{ lib
22+, stdenv
33+, fetchurl
44+, fetchpatch
55+, boehmgc
66+, buildPackages
47, coverageAnalysis ? null
88+, gawk
99+, gmp
1010+, libffi
1111+, libtool
1212+, libunistring
1313+, makeWrapper
1414+, pkg-config
1515+, pkgsBuildBuild
1616+, readline
517}:
61877-# Do either a coverage analysis build or a standard build.
88-(if coverageAnalysis != null
99- then coverageAnalysis
1010- else stdenv.mkDerivation)
1111-1212-(rec {
1313- name = "guile-2.0.13";
1919+let
2020+ # Do either a coverage analysis build or a standard build.
2121+ builder = if coverageAnalysis != null
2222+ then coverageAnalysis
2323+ else stdenv.mkDerivation;
2424+in
2525+builder rec {
2626+ pname = "guile";
2727+ version = "2.0.13";
14281529 src = fetchurl {
1616- url = "mirror://gnu/guile/${name}.tar.xz";
3030+ url = "mirror://gnu/${pname}/${pname}-${version}.tar.xz";
1731 sha256 = "12yqkr974y91ylgw6jnmci2v90i90s7h9vxa4zk0sai8vjnz4i1p";
1832 };
19332034 outputs = [ "out" "dev" "info" ];
2135 setOutputFlags = false; # $dev gets into the library otherwise
22362323- depsBuildBuild = [ buildPackages.stdenv.cc ]
2424- ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform)
2525- pkgsBuildBuild.guile_2_0;
2626- nativeBuildInputs = [ makeWrapper gawk pkg-config ];
2727- buildInputs = [ readline libtool libunistring libffi ];
3737+ depsBuildBuild = [
3838+ buildPackages.stdenv.cc
3939+ ]
4040+ ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform)
4141+ pkgsBuildBuild.guile_2_0;
28424343+ nativeBuildInputs = [
4444+ makeWrapper
4545+ gawk
4646+ pkg-config
4747+ ];
4848+ buildInputs = [
4949+ readline
5050+ libtool
5151+ libunistring
5252+ libffi
5353+ ];
2954 propagatedBuildInputs = [
3030- gmp boehmgc
5555+ boehmgc
5656+ gmp
31573232- # XXX: These ones aren't normally needed here, but `libguile*.la' has '-l'
3333- # flags for them without corresponding '-L' flags. Adding them here will add
3434- # the needed `-L' flags. As for why the `.la' file lacks the `-L' flags,
3535- # see below.
3636- libtool libunistring
5858+ # These ones aren't normally needed here, but `libguile*.la' has '-l'
5959+ # flags for them without corresponding '-L' flags. Adding them here will
6060+ # add the needed `-L' flags. As for why the `.la' file lacks the `-L'
6161+ # flags, see below.
6262+ libtool
6363+ libunistring
3764 ];
38653966 enableParallelBuilding = true;
40674141- patches = [ ./disable-gc-sensitive-tests.patch ./eai_system.patch ./clang.patch
6868+ patches = [
6969+ # Small fixes to Clang compiler
7070+ ./clang.patch
7171+ # Self-explanatory
7272+ ./disable-gc-sensitive-tests.patch
7373+ # Read the header of the patch to more info
7474+ ./eai_system.patch
7575+ # RISC-V endianness
7676+ ./riscv.patch
7777+ # Fixes stability issues with 00-repl-server.test
4278 (fetchpatch {
4343- # Fixes stability issues with 00-repl-server.test
4479 url = "https://git.savannah.gnu.org/cgit/guile.git/patch/?id=2fbde7f02adb8c6585e9baf6e293ee49cd23d4c4";
4580 sha256 = "0p6c1lmw1iniq03z7x5m65kg3lq543kgvdb4nrxsaxjqf3zhl77v";
8181+ })] ++
8282+ (lib.optional (coverageAnalysis != null) ./gcov-file-name.patch)
8383+ ++ lib.optionals stdenv.isDarwin [
8484+ ./filter-mkostemp-darwin.patch
8585+ (fetchpatch {
8686+ url = "https://gitlab.gnome.org/GNOME/gtk-osx/raw/52898977f165777ad9ef169f7d4818f2d4c9b731/patches/guile-clocktime.patch";
8787+ sha256 = "12wvwdna9j8795x59ldryv9d84c1j3qdk2iskw09306idfsis207";
4688 })
4747- ./riscv.patch
4848- ] ++
4949- (lib.optional (coverageAnalysis != null) ./gcov-file-name.patch)
5050- ++ lib.optionals stdenv.isDarwin [
5151- (fetchpatch {
5252- url = "https://gitlab.gnome.org/GNOME/gtk-osx/raw/52898977f165777ad9ef169f7d4818f2d4c9b731/patches/guile-clocktime.patch";
5353- sha256 = "12wvwdna9j8795x59ldryv9d84c1j3qdk2iskw09306idfsis207";
5454- })
5555- ./filter-mkostemp-darwin.patch
5656- ];
8989+ ];
57905891 # Explicitly link against libgcc_s, to work around the infamous
5992 # "libgcc_s.so.1 must be installed for pthread_cancel to work".
60936194 # don't have "libgcc_s.so.1" on darwin
6262- LDFLAGS = lib.optionalString (!stdenv.isDarwin && !stdenv.hostPlatform.isMusl) "-lgcc_s";
9595+ LDFLAGS = lib.optionalString
9696+ (!stdenv.isDarwin && !stdenv.hostPlatform.isMusl) "-lgcc_s";
63976464- configureFlags = [ "--with-libreadline-prefix" ]
6565- ++ lib.optionals stdenv.isSunOS [
6666- # Make sure the right <gmp.h> is found, and not the incompatible
6767- # /usr/include/mp.h from OpenSolaris. See
6868- # <https://lists.gnu.org/archive/html/hydra-users/2012-08/msg00000.html>
6969- # for details.
7070- "--with-libgmp-prefix=${gmp.dev}"
9898+ configureFlags = [
9999+ "--with-libreadline-prefix"
100100+ ] ++ lib.optionals stdenv.isSunOS [
101101+ # Make sure the right <gmp.h> is found, and not the incompatible
102102+ # /usr/include/mp.h from OpenSolaris. See
103103+ # <https://lists.gnu.org/archive/html/hydra-users/2012-08/msg00000.html>
104104+ # for details.
105105+ "--with-libgmp-prefix=${lib.getDev gmp}"
711067272- # Same for these (?).
7373- "--with-libreadline-prefix=${readline.dev}"
7474- "--with-libunistring-prefix=${libunistring}"
107107+ # Same for these (?).
108108+ "--with-libreadline-prefix=${lib.getDev readline}"
109109+ "--with-libunistring-prefix=${libunistring}"
751107676- # See below.
7777- "--without-threads"
7878- ];
111111+ # See below.
112112+ "--without-threads"
113113+ ];
7911480115 postInstall = ''
81116 wrapProgram $out/bin/guile-snarf --prefix PATH : "${gawk}/bin"
82117 ''
8383- # XXX: See http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/18903 for
8484- # why `--with-libunistring-prefix' and similar options coming from
8585- # `AC_LIB_LINKFLAGS_BODY' don't work on NixOS/x86_64.
118118+ # XXX: See http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/18903 for
119119+ # why `--with-libunistring-prefix' and similar options coming from
120120+ # `AC_LIB_LINKFLAGS_BODY' don't work on NixOS/x86_64.
86121 + ''
87122 sed -i "$out/lib/pkgconfig/guile"-*.pc \
88123 -e "s|-lunistring|-L${libunistring}/lib -lunistring|g ;
···90125 s|-lltdl|-L${libtool.lib}/lib -lltdl|g ;
91126 s|includedir=$out|includedir=$dev|g
92127 "
9393- '';
128128+ '';
9412995130 # make check doesn't work on darwin
96131 # On Linuxes+Hydra the tests are flaky; feel free to investigate deeper.
···99134100135 setupHook = ./setup-hook-2.0.sh;
101136102102- meta = {
137137+ meta = with lib; {
138138+ homepage = "https://www.gnu.org/software/guile/";
103139 description = "Embeddable Scheme implementation";
104104- homepage = "https://www.gnu.org/software/guile/";
105105- license = lib.licenses.lgpl3Plus;
106106- maintainers = with lib.maintainers; [ ludo lovek323 ];
107107- platforms = lib.platforms.all;
108108-109140 longDescription = ''
110110- GNU Guile is an implementation of the Scheme programming language, with
111111- support for many SRFIs, packaged for use in a wide variety of
112112- environments. In addition to implementing the R5RS Scheme standard
113113- and a large subset of R6RS, Guile includes a module system, full access
114114- to POSIX system calls, networking support, multiple threads, dynamic
115115- linking, a foreign function call interface, and powerful string
116116- processing.
117117- '';
141141+ GNU Guile is an implementation of the Scheme programming language, with
142142+ support for many SRFIs, packaged for use in a wide variety of
143143+ environments. In addition to implementing the R5RS Scheme standard and
144144+ a large subset of R6RS, Guile includes a module system, full access to
145145+ POSIX system calls, networking support, multiple threads, dynamic
146146+ linking, a foreign function call interface, and powerful string
147147+ processing.
148148+ '';
149149+ license = licenses.lgpl3Plus;
150150+ maintainers = with maintainers; [ ludo lovek323 vrthra ];
151151+ platforms = platforms.all;
118152 };
119119-})
153153+}
120154121155//
122156
+143
pkgs/development/interpreters/guile/2.2.nix
···11+{ lib
22+, stdenv
33+, fetchurl
44+, fetchpatch
55+, boehmgc
66+, buildPackages
77+, coverageAnalysis ? null
88+, gawk
99+, gmp
1010+, libffi
1111+, libtool
1212+, libunistring
1313+, makeWrapper
1414+, pkg-config
1515+, pkgsBuildBuild
1616+, readline
1717+}:
1818+1919+let
2020+ # Do either a coverage analysis build or a standard build.
2121+ builder = if coverageAnalysis != null
2222+ then coverageAnalysis
2323+ else stdenv.mkDerivation;
2424+in
2525+builder rec {
2626+ pname = "guile";
2727+ version = "2.2.7";
2828+2929+ src = fetchurl {
3030+ url = "mirror://gnu/${pname}/${pname}-${version}.tar.xz";
3131+ sha256 = "013mydzhfswqci6xmyc1ajzd59pfbdak15i0b090nhr9bzm7dxyd";
3232+ };
3333+3434+ outputs = [ "out" "dev" "info" ];
3535+ setOutputFlags = false; # $dev gets into the library otherwise
3636+3737+ depsBuildBuild = [
3838+ buildPackages.stdenv.cc
3939+ ]
4040+ ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform)
4141+ pkgsBuildBuild.guile;
4242+ nativeBuildInputs = [
4343+ gawk
4444+ makeWrapper
4545+ pkg-config
4646+ ];
4747+ buildInputs = [
4848+ libffi
4949+ libtool
5050+ libunistring
5151+ readline
5252+ ];
5353+ propagatedBuildInputs = [
5454+ boehmgc
5555+ gmp
5656+5757+ # XXX: These ones aren't normally needed here, but `libguile*.la' has '-l'
5858+ # flags for them without corresponding '-L' flags. Adding them here will add
5959+ # the needed `-L' flags. As for why the `.la' file lacks the `-L' flags,
6060+ # see below.
6161+ libtool
6262+ libunistring
6363+ ];
6464+6565+ # According to Bernhard M. Wiedemann <bwiedemann suse de> on
6666+ # #reproducible-builds on irc.oftc.net, (2020-01-29): they had to
6767+ # build Guile without parallel builds to make it reproducible.
6868+ #
6969+ # re: https://issues.guix.gnu.org/issue/20272
7070+ # re: https://build.opensuse.org/request/show/732638
7171+ enableParallelBuilding = false;
7272+7373+ patches = [
7474+ # Read the header of the patch to more info
7575+ ./eai_system.patch
7676+ ] ++ lib.optional (coverageAnalysis != null) ./gcov-file-name.patch
7777+ ++ lib.optional stdenv.isDarwin
7878+ (fetchpatch {
7979+ url = "https://gitlab.gnome.org/GNOME/gtk-osx/raw/52898977f165777ad9ef169f7d4818f2d4c9b731/patches/guile-clocktime.patch";
8080+ sha256 = "12wvwdna9j8795x59ldryv9d84c1j3qdk2iskw09306idfsis207";
8181+ });
8282+8383+ # Explicitly link against libgcc_s, to work around the infamous
8484+ # "libgcc_s.so.1 must be installed for pthread_cancel to work".
8585+8686+ # don't have "libgcc_s.so.1" on darwin
8787+ LDFLAGS = lib.optionalString
8888+ (!stdenv.isDarwin && !stdenv.hostPlatform.isStatic) "-lgcc_s";
8989+9090+ configureFlags = [
9191+ "--with-libreadline-prefix=${lib.getDev readline}"
9292+ ] ++ lib.optionals stdenv.isSunOS [
9393+ # Make sure the right <gmp.h> is found, and not the incompatible
9494+ # /usr/include/mp.h from OpenSolaris. See
9595+ # <https://lists.gnu.org/archive/html/hydra-users/2012-08/msg00000.html>
9696+ # for details.
9797+ "--with-libgmp-prefix=${lib.getDev gmp}"
9898+9999+ # Same for these (?).
100100+ "--with-libunistring-prefix=${libunistring}"
101101+102102+ # See below.
103103+ "--without-threads"
104104+ ];
105105+106106+ postInstall = ''
107107+ wrapProgram $out/bin/guile-snarf --prefix PATH : "${gawk}/bin"
108108+ ''
109109+ # XXX: See http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/18903 for
110110+ # why `--with-libunistring-prefix' and similar options coming from
111111+ # `AC_LIB_LINKFLAGS_BODY' don't work on NixOS/x86_64.
112112+ + ''
113113+ sed -i "$out/lib/pkgconfig/guile"-*.pc \
114114+ -e "s|-lunistring|-L${libunistring}/lib -lunistring|g ;
115115+ s|^Cflags:\(.*\)$|Cflags: -I${libunistring}/include \1|g ;
116116+ s|-lltdl|-L${libtool.lib}/lib -lltdl|g ;
117117+ s|includedir=$out|includedir=$dev|g
118118+ "
119119+ '';
120120+121121+ # make check doesn't work on darwin
122122+ # On Linuxes+Hydra the tests are flaky; feel free to investigate deeper.
123123+ doCheck = false;
124124+ doInstallCheck = doCheck;
125125+126126+ setupHook = ./setup-hook-2.2.sh;
127127+128128+ meta = with lib; {
129129+ homepage = "https://www.gnu.org/software/guile/";
130130+ description = "Embeddable Scheme implementation";
131131+ longDescription = ''
132132+ GNU Guile is an implementation of the Scheme programming language, with
133133+ support for many SRFIs, packaged for use in a wide variety of
134134+ environments. In addition to implementing the R5RS Scheme standard and a
135135+ large subset of R6RS, Guile includes a module system, full access to POSIX
136136+ system calls, networking support, multiple threads, dynamic linking, a
137137+ foreign function call interface, and powerful string processing.
138138+ '';
139139+ license = licenses.lgpl3Plus;
140140+ maintainers = with maintainers; [ ludo lovek323 vrthra ];
141141+ platforms = platforms.all;
142142+ };
143143+}
+141
pkgs/development/interpreters/guile/3.0.nix
···11+{ lib
22+, stdenv
33+, fetchurl
44+, fetchpatch
55+, boehmgc
66+, buildPackages
77+, coverageAnalysis ? null
88+, gawk
99+, gmp
1010+, libffi
1111+, libtool
1212+, libunistring
1313+, makeWrapper
1414+, pkg-config
1515+, pkgsBuildBuild
1616+, readline
1717+}:
1818+1919+let
2020+ # Do either a coverage analysis build or a standard build.
2121+ builder = if coverageAnalysis != null
2222+ then coverageAnalysis
2323+ else stdenv.mkDerivation;
2424+in
2525+builder rec {
2626+ pname = "guile";
2727+ version = "3.0.7";
2828+2929+ src = fetchurl {
3030+ url = "mirror://gnu/${pname}/${pname}-${version}.tar.xz";
3131+ sha256 = "sha256-9X2GxwYgJxv863qb4MgXRKAz8IrcfOuoMsmRerPmkbc=";
3232+ };
3333+3434+ outputs = [ "out" "dev" "info" ];
3535+ setOutputFlags = false; # $dev gets into the library otherwise
3636+3737+ depsBuildBuild = [
3838+ buildPackages.stdenv.cc
3939+ ] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform)
4040+ pkgsBuildBuild.guile;
4141+ nativeBuildInputs = [
4242+ gawk
4343+ makeWrapper
4444+ pkg-config
4545+ ];
4646+ buildInputs = [
4747+ libffi
4848+ libtool
4949+ libunistring
5050+ readline
5151+ ];
5252+ propagatedBuildInputs = [
5353+ boehmgc
5454+ gmp
5555+5656+ # These ones aren't normally needed here, but `libguile*.la' has '-l'
5757+ # flags for them without corresponding '-L' flags. Adding them here will
5858+ # add the needed `-L' flags. As for why the `.la' file lacks the `-L'
5959+ # flags, see below.
6060+ libtool
6161+ libunistring
6262+ ];
6363+6464+ # According to Bernhard M. Wiedemann <bwiedemann suse de> on
6565+ # #reproducible-builds on irc.oftc.net, (2020-01-29): they had to build
6666+ # Guile without parallel builds to make it reproducible.
6767+ #
6868+ # re: https://issues.guix.gnu.org/issue/20272
6969+ # re: https://build.opensuse.org/request/show/732638
7070+ enableParallelBuilding = false;
7171+7272+ patches = [
7373+ ./eai_system.patch
7474+ ] ++ lib.optional (coverageAnalysis != null) ./gcov-file-name.patch
7575+ ++ lib.optional stdenv.isDarwin
7676+ (fetchpatch {
7777+ url = "https://gitlab.gnome.org/GNOME/gtk-osx/raw/52898977f165777ad9ef169f7d4818f2d4c9b731/patches/guile-clocktime.patch";
7878+ sha256 = "12wvwdna9j8795x59ldryv9d84c1j3qdk2iskw09306idfsis207";
7979+ });
8080+8181+ # Explicitly link against libgcc_s, to work around the infamous
8282+ # "libgcc_s.so.1 must be installed for pthread_cancel to work".
8383+8484+ # don't have "libgcc_s.so.1" on darwin
8585+ LDFLAGS = lib.optionalString
8686+ (!stdenv.isDarwin && !stdenv.hostPlatform.isStatic) "-lgcc_s";
8787+8888+ configureFlags = [
8989+ "--with-libreadline-prefix=${lib.getDev readline}"
9090+ ] ++ lib.optionals stdenv.isSunOS [
9191+ # Make sure the right <gmp.h> is found, and not the incompatible
9292+ # /usr/include/mp.h from OpenSolaris. See
9393+ # <https://lists.gnu.org/archive/html/hydra-users/2012-08/msg00000.html>
9494+ # for details.
9595+ "--with-libgmp-prefix=${lib.getDev gmp}"
9696+9797+ # Same for these (?).
9898+ "--with-libunistring-prefix=${libunistring}"
9999+100100+ # See below.
101101+ "--without-threads"
102102+ ];
103103+104104+ postInstall = ''
105105+ wrapProgram $out/bin/guile-snarf --prefix PATH : "${gawk}/bin"
106106+ ''
107107+ # XXX: See http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/18903 for
108108+ # why `--with-libunistring-prefix' and similar options coming from
109109+ # `AC_LIB_LINKFLAGS_BODY' don't work on NixOS/x86_64.
110110+ + ''
111111+ sed -i "$out/lib/pkgconfig/guile"-*.pc \
112112+ -e "s|-lunistring|-L${libunistring}/lib -lunistring|g ;
113113+ s|^Cflags:\(.*\)$|Cflags: -I${libunistring}/include \1|g ;
114114+ s|-lltdl|-L${libtool.lib}/lib -lltdl|g ;
115115+ s|includedir=$out|includedir=$dev|g
116116+ "
117117+ '';
118118+119119+ # make check doesn't work on darwin
120120+ # On Linuxes+Hydra the tests are flaky; feel free to investigate deeper.
121121+ doCheck = false;
122122+ doInstallCheck = doCheck;
123123+124124+ setupHook = ./setup-hook-3.0.sh;
125125+126126+ meta = with lib; {
127127+ homepage = "https://www.gnu.org/software/guile/";
128128+ description = "Embeddable Scheme implementation";
129129+ longDescription = ''
130130+ GNU Guile is an implementation of the Scheme programming language, with
131131+ support for many SRFIs, packaged for use in a wide variety of
132132+ environments. In addition to implementing the R5RS Scheme standard and a
133133+ large subset of R6RS, Guile includes a module system, full access to POSIX
134134+ system calls, networking support, multiple threads, dynamic linking, a
135135+ foreign function call interface, and powerful string processing.
136136+ '';
137137+ license = licenses.lgpl3Plus;
138138+ maintainers = with maintainers; [ ludo lovek323 vrthra ];
139139+ platforms = platforms.all;
140140+ };
141141+}
-118
pkgs/development/interpreters/guile/default.nix
···11-{ lib, stdenv, pkgsBuildBuild, buildPackages
22-, fetchurl, makeWrapper, gawk, pkg-config
33-, libffi, libtool, readline, gmp, boehmgc, libunistring
44-, coverageAnalysis ? null
55-, fetchpatch
66-}:
77-88-# Do either a coverage analysis build or a standard build.
99-(if coverageAnalysis != null
1010- then coverageAnalysis
1111- else stdenv.mkDerivation)
1212-1313-(rec {
1414- name = "guile-${version}";
1515- version = "2.2.7";
1616-1717- src = fetchurl {
1818- url = "mirror://gnu/guile/${name}.tar.xz";
1919- sha256 = "013mydzhfswqci6xmyc1ajzd59pfbdak15i0b090nhr9bzm7dxyd";
2020- };
2121-2222- outputs = [ "out" "dev" "info" ];
2323- setOutputFlags = false; # $dev gets into the library otherwise
2424-2525- depsBuildBuild = [ buildPackages.stdenv.cc ]
2626- ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform)
2727- pkgsBuildBuild.guile;
2828- nativeBuildInputs = [ makeWrapper gawk pkg-config ];
2929- buildInputs = [ readline libtool libunistring libffi ];
3030-3131- propagatedBuildInputs = [
3232- gmp boehmgc
3333-3434- # XXX: These ones aren't normally needed here, but `libguile*.la' has '-l'
3535- # flags for them without corresponding '-L' flags. Adding them here will add
3636- # the needed `-L' flags. As for why the `.la' file lacks the `-L' flags,
3737- # see below.
3838- libtool libunistring
3939- ];
4040-4141- # According to Bernhard M. Wiedemann <bwiedemann suse de> on
4242- # #reproducible-builds on irc.oftc.net, (2020-01-29): they had to
4343- # build Guile without parallel builds to make it reproducible.
4444- #
4545- # re: https://issues.guix.gnu.org/issue/20272
4646- # re: https://build.opensuse.org/request/show/732638
4747- enableParallelBuilding = false;
4848-4949- patches = [
5050- ./eai_system.patch
5151- ] ++ lib.optional (coverageAnalysis != null) ./gcov-file-name.patch
5252- ++ lib.optional stdenv.isDarwin (fetchpatch {
5353- url = "https://gitlab.gnome.org/GNOME/gtk-osx/raw/52898977f165777ad9ef169f7d4818f2d4c9b731/patches/guile-clocktime.patch";
5454- sha256 = "12wvwdna9j8795x59ldryv9d84c1j3qdk2iskw09306idfsis207";
5555- });
5656-5757- # Explicitly link against libgcc_s, to work around the infamous
5858- # "libgcc_s.so.1 must be installed for pthread_cancel to work".
5959-6060- # don't have "libgcc_s.so.1" on darwin
6161- LDFLAGS = lib.optionalString
6262- (!stdenv.isDarwin && !stdenv.hostPlatform.isStatic) "-lgcc_s";
6363-6464- configureFlags = [ "--with-libreadline-prefix=${readline.dev}" ]
6565- ++ lib.optionals stdenv.isSunOS [
6666- # Make sure the right <gmp.h> is found, and not the incompatible
6767- # /usr/include/mp.h from OpenSolaris. See
6868- # <https://lists.gnu.org/archive/html/hydra-users/2012-08/msg00000.html>
6969- # for details.
7070- "--with-libgmp-prefix=${gmp.dev}"
7171-7272- # Same for these (?).
7373- "--with-libunistring-prefix=${libunistring}"
7474-7575- # See below.
7676- "--without-threads"
7777- ];
7878-7979- postInstall = ''
8080- wrapProgram $out/bin/guile-snarf --prefix PATH : "${gawk}/bin"
8181- ''
8282- # XXX: See http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/18903 for
8383- # why `--with-libunistring-prefix' and similar options coming from
8484- # `AC_LIB_LINKFLAGS_BODY' don't work on NixOS/x86_64.
8585- + ''
8686- sed -i "$out/lib/pkgconfig/guile"-*.pc \
8787- -e "s|-lunistring|-L${libunistring}/lib -lunistring|g ;
8888- s|^Cflags:\(.*\)$|Cflags: -I${libunistring}/include \1|g ;
8989- s|-lltdl|-L${libtool.lib}/lib -lltdl|g ;
9090- s|includedir=$out|includedir=$dev|g
9191- "
9292- '';
9393-9494- # make check doesn't work on darwin
9595- # On Linuxes+Hydra the tests are flaky; feel free to investigate deeper.
9696- doCheck = false;
9797- doInstallCheck = doCheck;
9898-9999- setupHook = ./setup-hook-2.2.sh;
100100-101101- meta = {
102102- description = "Embeddable Scheme implementation";
103103- homepage = "https://www.gnu.org/software/guile/";
104104- license = lib.licenses.lgpl3Plus;
105105- maintainers = with lib.maintainers; [ ludo lovek323 vrthra ];
106106- platforms = lib.platforms.all;
107107-108108- longDescription = ''
109109- GNU Guile is an implementation of the Scheme programming language, with
110110- support for many SRFIs, packaged for use in a wide variety of
111111- environments. In addition to implementing the R5RS Scheme standard
112112- and a large subset of R6RS, Guile includes a module system, full access
113113- to POSIX system calls, networking support, multiple threads, dynamic
114114- linking, a foreign function call interface, and powerful string
115115- processing.
116116- '';
117117- };
118118-})
···11addGuileLibPath () {
22- if test -d "$1/share/guile/site/2.0"
33- then
22+ if test -d "$1/share/guile/site/2.0"; then
43 export GUILE_LOAD_PATH="${GUILE_LOAD_PATH-}${GUILE_LOAD_PATH:+:}$1/share/guile/site/2.0"
54 export GUILE_LOAD_COMPILED_PATH="${GUILE_LOAD_COMPILED_PATH-}${GUILE_LOAD_COMPILED_PATH:+:}$1/share/guile/site/2.0"
66- elif test -d "$1/share/guile/site"
77- then
55+ elif test -d "$1/share/guile/site"; then
86 export GUILE_LOAD_PATH="${GUILE_LOAD_PATH-}${GUILE_LOAD_PATH:+:}$1/share/guile/site"
97 export GUILE_LOAD_COMPILED_PATH="${GUILE_LOAD_COMPILED_PATH-}${GUILE_LOAD_COMPILED_PATH:+:}$1/share/guile/site"
108 fi
1191212- if test -d "$1/lib/guile/2.0/ccache"
1313- then
1010+ if test -d "$1/lib/guile/2.0/ccache"; then
1411 export GUILE_LOAD_COMPILED_PATH="${GUILE_LOAD_COMPILED_PATH-}${GUILE_LOAD_COMPILED_PATH:+:}$1/lib/guile/2.0/ccache"
1512 fi
16131717- if test -d "$1/lib/guile/2.0/site-ccache"
1818- then
1414+ if test -d "$1/lib/guile/2.0/site-ccache"; then
1915 export GUILE_LOAD_COMPILED_PATH="${GUILE_LOAD_COMPILED_PATH-}${GUILE_LOAD_COMPILED_PATH:+:}$1/lib/guile/2.0/site-ccache"
2016 fi
2117}
···11addGuileLibPath () {
22- if test -d "$1/share/guile/site/2.2"
33- then
22+ if test -d "$1/share/guile/site/2.2"; then
43 export GUILE_LOAD_PATH="${GUILE_LOAD_PATH-}${GUILE_LOAD_PATH:+:}$1/share/guile/site/2.2"
54 export GUILE_LOAD_COMPILED_PATH="${GUILE_LOAD_COMPILED_PATH-}${GUILE_LOAD_COMPILED_PATH:+:}$1/share/guile/site/2.2"
66- elif test -d "$1/share/guile/site"
77- then
55+ elif test -d "$1/share/guile/site"; then
86 export GUILE_LOAD_PATH="${GUILE_LOAD_PATH-}${GUILE_LOAD_PATH:+:}$1/share/guile/site"
97 export GUILE_LOAD_COMPILED_PATH="${GUILE_LOAD_COMPILED_PATH-}${GUILE_LOAD_COMPILED_PATH:+:}$1/share/guile/site"
108 fi
1191212- if test -d "$1/lib/guile/2.2/ccache"
1313- then
1010+ if test -d "$1/lib/guile/2.2/ccache"; then
1411 export GUILE_LOAD_COMPILED_PATH="${GUILE_LOAD_COMPILED_PATH-}${GUILE_LOAD_COMPILED_PATH:+:}$1/lib/guile/2.2/ccache"
1512 fi
16131717- if test -d "$1/lib/guile/2.2/site-ccache"
1818- then
1414+ if test -d "$1/lib/guile/2.2/site-ccache"; then
1915 export GUILE_LOAD_COMPILED_PATH="${GUILE_LOAD_COMPILED_PATH-}${GUILE_LOAD_COMPILED_PATH:+:}$1/lib/guile/2.2/site-ccache"
2016 fi
2117}
···11+addGuileLibPath () {
22+ if test -d "$1/share/guile/site/3.0"; then
33+ export GUILE_LOAD_PATH="${GUILE_LOAD_PATH-}${GUILE_LOAD_PATH:+:}$1/share/guile/site/3.0"
44+ export GUILE_LOAD_COMPILED_PATH="${GUILE_LOAD_COMPILED_PATH-}${GUILE_LOAD_COMPILED_PATH:+:}$1/share/guile/site/3.0"
55+ elif test -d "$1/share/guile/site"; then
66+ export GUILE_LOAD_PATH="${GUILE_LOAD_PATH-}${GUILE_LOAD_PATH:+:}$1/share/guile/site"
77+ export GUILE_LOAD_COMPILED_PATH="${GUILE_LOAD_COMPILED_PATH-}${GUILE_LOAD_COMPILED_PATH:+:}$1/share/guile/site"
88+ fi
99+1010+ if test -d "$1/lib/guile/3.0/ccache"; then
1111+ export GUILE_LOAD_COMPILED_PATH="${GUILE_LOAD_COMPILED_PATH-}${GUILE_LOAD_COMPILED_PATH:+:}$1/lib/guile/3.0/ccache"
1212+ fi
1313+1414+ if test -d "$1/lib/guile/3.0/site-ccache"; then
1515+ export GUILE_LOAD_COMPILED_PATH="${GUILE_LOAD_COMPILED_PATH-}${GUILE_LOAD_COMPILED_PATH:+:}$1/lib/guile/3.0/site-ccache"
1616+ fi
1717+}
1818+1919+addEnvHooks "$hostOffset" addGuileLibPath
···11addGuileLibPath () {
22- if test -d "$1/share/guile/site"
33- then
22+ if test -d "$1/share/guile/site"; then
43 export GUILE_LOAD_PATH="${GUILE_LOAD_PATH-}${GUILE_LOAD_PATH:+:}$1/share/guile/site"
54 fi
65}
···11-{ lib, stdenv, fetchurl, fetchpatch, pkg-config, libatomic_ops
22-, enableLargeConfig ? false # doc: https://github.com/ivmai/bdwgc/blob/v7.6.6/doc/README.macros#L179
33-}:
44-55-stdenv.mkDerivation rec {
66- pname = "boehm-gc";
77- version = "7.6.6";
88-99- src = fetchurl {
1010- urls = [
1111- "https://www.hboehm.info/gc/gc_source/gc-${version}.tar.gz"
1212- "https://github.com/ivmai/bdwgc/releases/download/v${version}/gc-${version}.tar.gz"
1313- ];
1414- sha256 = "1p1r015a7jbpvkkbgzv1y8nxrbbp6dg0mq3ksi6ji0qdz3wfss79";
1515- };
1616-1717- buildInputs = [ libatomic_ops ];
1818- nativeBuildInputs = [ pkg-config ];
1919-2020- outputs = [ "out" "dev" "doc" ];
2121- separateDebugInfo = stdenv.isLinux;
2222-2323- preConfigure = lib.optionalString (stdenv.hostPlatform.libc == "musl") ''
2424- export NIX_CFLAGS_COMPILE+=" -D_GNU_SOURCE -DUSE_MMAP -DHAVE_DL_ITERATE_PHDR"
2525- '';
2626-2727- patches = [ (fetchpatch {
2828- url = "https://gitweb.gentoo.org/proj/musl.git/plain/dev-libs/boehm-gc/files/boehm-gc-7.6.0-sys_select.patch";
2929- sha256 = "1gydwlklvci30f5dpp5ccw2p2qpph5y41r55wx9idamjlq66fbb3";
3030- }) ] ++
3131- # https://github.com/ivmai/bdwgc/pull/208
3232- lib.optional stdenv.hostPlatform.isRiscV ./riscv.patch;
3333-3434- configureFlags =
3535- [ "--enable-cplusplus" ]
3636- ++ lib.optional enableLargeConfig "--enable-large-config"
3737- ++ lib.optional (stdenv.hostPlatform.libc == "musl") "--disable-static";
3838-3939- doCheck = true; # not cross;
4040-4141- # Don't run the native `strip' when cross-compiling.
4242- dontStrip = stdenv.hostPlatform != stdenv.buildPlatform;
4343-4444- enableParallelBuilding = true;
4545-4646- meta = {
4747- description = "The Boehm-Demers-Weiser conservative garbage collector for C and C++";
4848-4949- longDescription = ''
5050- The Boehm-Demers-Weiser conservative garbage collector can be used as a
5151- garbage collecting replacement for C malloc or C++ new. It allows you
5252- to allocate memory basically as you normally would, without explicitly
5353- deallocating memory that is no longer useful. The collector
5454- automatically recycles memory when it determines that it can no longer
5555- be otherwise accessed.
5656-5757- The collector is also used by a number of programming language
5858- implementations that either use C as intermediate code, want to
5959- facilitate easier interoperation with C libraries, or just prefer the
6060- simple collector interface.
6161-6262- Alternatively, the garbage collector may be used as a leak detector for
6363- C or C++ programs, though that is not its primary goal.
6464- '';
6565-6666- homepage = "https://hboehm.info/gc/";
6767-6868- # non-copyleft, X11-style license
6969- license = "https://hboehm.info/gc/license.txt";
7070-7171- maintainers = [ ];
7272- platforms = lib.platforms.all;
7373- };
7474-}
···11-WGET_ARGS=( https://download.kde.org/stable/frameworks/5.85/ -A '*.tar.xz' )
11+WGET_ARGS=( https://download.kde.org/stable/frameworks/5.87/ -A '*.tar.xz' )
···9393 ++ lib.optional stdenv.isLinux "driversdev"
9494 ++ lib.optional enableOpenCL "opencl";
95959696+ preConfigure = ''
9797+ PATH=${llvmPackages.libllvm.dev}/bin:$PATH
9898+ '';
9999+96100 # TODO: Figure out how to enable opencl without having a runtime dependency on clang
97101 mesonFlags = [
98102 "--sysconfdir=/etc"
+2-2
pkgs/development/libraries/nss/default.nix
···2727 # It will rebuild itself using the version of this package (NSS) and if
2828 # an update is required do the required changes to the expression.
2929 # Example: nix-shell ./maintainers/scripts/update.nix --argstr package cacert
3030- version = "3.70";
3030+ version = "3.71";
31313232in
3333stdenv.mkDerivation rec {
···36363737 src = fetchurl {
3838 url = "mirror://mozilla/security/nss/releases/NSS_${lib.replaceStrings [ "." ] [ "_" ] version}_RTM/src/${pname}-${version}.tar.gz";
3939- sha256 = "sha256-K4mruGAe5AW+isW1cD1x8fs4pRw6ZKPYNDh/eLMlURs=";
3939+ sha256 = "0ly2l3dv6z5hlxs72h5x6796ni3x1bq60saavaf42ddgv4ax7b4r";
4040 };
41414242 depsBuildBuild = [ buildPackages.stdenv.cc ];
···1818 # If you need these, you can just add them to your environment.
19192020 pname = "hypothesis";
2121- version = "6.17.3";
2121+ version = "6.23.2";
22222323 # Use github tarballs that includes tests
2424 src = fetchFromGitHub {
2525 owner = "HypothesisWorks";
2626 repo = "hypothesis-python";
2727 rev = "hypothesis-python-${version}";
2828- sha256 = "1g96q3l97lq3xps36cv147dvj44nh1b0k67z817x7zfwyw844sgn";
2828+ sha256 = "1mdygyq6ra4kysi0y2g3a4bgpqrcb8ci2061117zyms419qwwh4l";
2929 };
30303131 postUnpack = "sourceRoot=$sourceRoot/hypothesis-python";
···7788buildPythonPackage rec {
99 pname = "jax";
1010- version = "0.2.19";
1010+ version = "0.2.21";
11111212 # Fetching from pypi doesn't allow us to run the test suite. See https://discourse.nixos.org/t/pythonremovetestsdir-hook-being-run-before-checkphase/14612/3.
1313 src = fetchFromGitHub {
1414 owner = "google";
1515 repo = pname;
1616 rev = "jax-v${version}";
1717- sha256 = "sha256-pVn62G7pydR7ybkf7gSbu0FlEq2c0US6H2GTBAljup4=";
1717+ sha256 = "05w157h6jv20k8w2gnmlxbycmzf24lr5v392q0c5v0qcql11q7pn";
1818 };
19192020 # jaxlib is _not_ included in propagatedBuildInputs because there are
···23232424buildPythonPackage rec {
2525 pname = "nbconvert";
2626- version = "6.1.0";
2626+ version = "6.2.0";
27272828 src = fetchPypi {
2929 inherit pname version;
3030- sha256 = "d22a8ff202644d31db254d24d52c3a96c82156623fcd7c7f987bba2612303ec9";
3030+ sha256 = "16ceecd0afaa8fd26c245fa32e2c52066c02f13aa73387fffafd84750baea863";
3131 };
32323333 # Add $out/share/jupyter to the list of paths that are used to search for
···11set -eu
22set -o pipefail
33+shopt -s inherit_errexit
3445if [[ -n "${BASH_VERSINFO-}" && "${BASH_VERSINFO-}" -lt 4 ]]; then
56 echo "Detected Bash version that isn't supported by Nixpkgs (${BASH_VERSION})"
···409410 # The current package's host and target offset together
410411 # provide a <=-preserving homomorphism from the relative
411412 # offsets to current offset
412412- local -i mapOffsetResult
413413 function mapOffset() {
414414 local -r inputOffset="$1"
415415+ local -n outputOffset="$2"
415416 if (( inputOffset <= 0 )); then
416416- local -r outputOffset=$((inputOffset + hostOffset))
417417+ outputOffset=$((inputOffset + hostOffset))
417418 else
418418- local -r outputOffset=$((inputOffset - 1 + targetOffset))
419419+ outputOffset=$((inputOffset - 1 + targetOffset))
419420 fi
420420- mapOffsetResult="$outputOffset"
421421 }
422422423423 # Host offset relative to that of the package whose immediate
···429429430430 # Host offset relative to the package currently being
431431 # built---as absolute an offset as will be used.
432432- mapOffset relHostOffset
433433- local -i hostOffsetNext="$mapOffsetResult"
432432+ local hostOffsetNext
433433+ mapOffset "$relHostOffset" hostOffsetNext
434434435435 # Ensure we're in bounds relative to the package currently
436436 # being built.
437437- [[ "${allPlatOffsets[*]}" = *"$hostOffsetNext"* ]] || continue
437437+ (( -1 <= hostOffsetNext && hostOffsetNext <= 1 )) || continue
438438439439 # Target offset relative to the *host* offset of the package
440440 # whose immediate dependencies we are currently exploring.
441441- local -i relTargetOffset
441441+ local relTargetOffset
442442 for relTargetOffset in "${allPlatOffsets[@]}"; do
443443 (( "$relHostOffset" <= "$relTargetOffset" )) || continue
444444···448448449449 # Target offset relative to the package currently being
450450 # built.
451451- mapOffset relTargetOffset
452452- local -i targetOffsetNext="$mapOffsetResult"
451451+ local targetOffsetNext
452452+ mapOffset "$relTargetOffset" targetOffsetNext
453453454454 # Once again, ensure we're in bounds relative to the
455455 # package currently being built.
456456- [[ "${allPlatOffsets[*]}" = *"$targetOffsetNext"* ]] || continue
456456+ (( -1 <= hostOffsetNext && hostOffsetNext <= 1 )) || continue
457457458458 [[ -f "$pkg/nix-support/$file" ]] || continue
459459
+1-6
pkgs/stdenv/linux/default.nix
···375375 targetPlatform = localSystem;
376376 inherit config;
377377378378- preHook = ''
379379- # Make "strip" produce deterministic output, by setting
380380- # timestamps etc. to a fixed value.
381381- commonStripFlags="--enable-deterministic-archives"
382382- ${commonPreHook}
383383- '';
378378+ preHook = commonPreHook;
384379385380 initialPath =
386381 ((import ../common-path.nix) {pkgs = prevStage;});
···11+From e8b56ebd536e82b15542a00c888109471936bfda Mon Sep 17 00:00:00 2001
22+From: =?UTF-8?q?P=C3=A1draig=20Brady?= <P@draigBrady.com>
33+Date: Fri, 24 Sep 2021 20:57:41 +0100
44+Subject: [PATCH] chmod: fix exit status when ignoring symlinks
55+66+* src/chmod.c: Reorder enum so CH_NOT_APPLIED
77+can be treated as a non error.
88+* tests/chmod/ignore-symlink.sh: A new test.
99+* tests/local.mk: Reference the new test.
1010+* NEWS: Mention the bug fix.
1111+Fixes https://bugs.gnu.org/50784
1212+---
1313+ NEWS | 6 ++++++
1414+ src/chmod.c | 4 ++--
1515+ tests/chmod/ignore-symlink.sh | 31 +++++++++++++++++++++++++++++++
1616+ tests/local.mk | 1 +
1717+ 4 files changed, 40 insertions(+), 2 deletions(-)
1818+ create mode 100755 tests/chmod/ignore-symlink.sh
1919+2020+diff --git a/NEWS b/NEWS
2121+index a1470a7d7..1cb3c28a1 100644
2222+--- a/NEWS
2323++++ b/NEWS
2424+@@ -2,6 +2,12 @@ GNU coreutils NEWS -*- outline -*-
2525+2626+ * Noteworthy changes in release ?.? (????-??-??) [?]
2727+2828++** Bug fixes
2929++
3030++ chmod -R no longer exits with error status when encountering symlinks.
3131++ All files would be processed correctly, but the exit status was incorrect.
3232++ [bug introduced in coreutils-9.0]
3333++
3434+3535+ * Noteworthy changes in release 9.0 (2021-09-24) [stable]
3636+3737+diff --git a/src/chmod.c b/src/chmod.c
3838+index 37b04f500..57ac47f33 100644
3939+--- a/src/chmod.c
4040++++ b/src/chmod.c
4141+@@ -44,8 +44,8 @@ struct change_status
4242+ enum
4343+ {
4444+ CH_NO_STAT,
4545+- CH_NOT_APPLIED,
4646+ CH_FAILED,
4747++ CH_NOT_APPLIED,
4848+ CH_NO_CHANGE_REQUESTED,
4949+ CH_SUCCEEDED
5050+ }
5151+@@ -322,7 +322,7 @@ process_file (FTS *fts, FTSENT *ent)
5252+ if ( ! recurse)
5353+ fts_set (fts, ent, FTS_SKIP);
5454+5555+- return CH_NO_CHANGE_REQUESTED <= ch.status;
5656++ return CH_NOT_APPLIED <= ch.status;
5757+ }
5858+5959+ /* Recursively change the modes of the specified FILES (the last entry
6060+diff --git a/tests/chmod/ignore-symlink.sh b/tests/chmod/ignore-symlink.sh
6161+new file mode 100755
6262+index 000000000..5ce3de816
6363+--- /dev/null
6464++++ b/tests/chmod/ignore-symlink.sh
6565+@@ -0,0 +1,31 @@
6666++#!/bin/sh
6767++# Test for proper exit code of chmod on a processed symlink.
6868++
6969++# Copyright (C) 2021 Free Software Foundation, Inc.
7070++
7171++# This program is free software: you can redistribute it and/or modify
7272++# it under the terms of the GNU General Public License as published by
7373++# the Free Software Foundation, either version 3 of the License, or
7474++# (at your option) any later version.
7575++
7676++# This program is distributed in the hope that it will be useful,
7777++# but WITHOUT ANY WARRANTY; without even the implied warranty of
7878++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
7979++# GNU General Public License for more details.
8080++
8181++# You should have received a copy of the GNU General Public License
8282++# along with this program. If not, see <https://www.gnu.org/licenses/>.
8383++
8484++. "${srcdir=.}/tests/init.sh"; path_prepend_ ./src
8585++print_ver_ chmod
8686++
8787++mkdir dir || framework_failure_
8888++touch dir/f || framework_failure_
8989++ln -s f dir/l || framework_failure_
9090++
9191++# This operation ignores symlinks but should succeed.
9292++chmod u+w -R dir 2> out || fail=1
9393++
9494++compare /dev/null out || fail=1
9595++
9696++Exit $fail
9797+diff --git a/tests/local.mk b/tests/local.mk
9898+index 228d0e368..b5b893fb7 100644
9999+--- a/tests/local.mk
100100++++ b/tests/local.mk
101101+@@ -456,6 +456,7 @@ all_tests = \
102102+ tests/chmod/c-option.sh \
103103+ tests/chmod/equal-x.sh \
104104+ tests/chmod/equals.sh \
105105++ tests/chmod/ignore-symlink.sh \
106106+ tests/chmod/inaccessible.sh \
107107+ tests/chmod/octal.sh \
108108+ tests/chmod/setgid.sh \
···55# cgit) that are needed here should be included directly in Nixpkgs as
66# files.
7788-let version = "3.6"; in
88+let version = "3.7"; in
991010stdenv.mkDerivation {
1111 pname = "gnugrep";
···13131414 src = fetchurl {
1515 url = "mirror://gnu/grep/grep-${version}.tar.xz";
1616- sha256 = "0gipv6bzkm1aihj0ncqpyh164xrzgcxcv9r1kwzyk2g1mzl1azk6";
1616+ sha256 = "0g42svbc1nq5bamxfj6x7320wli4dlj86padk0hwgbk04hqxl42w";
1717 };
18181919 # Perl is needed for testing
+6-3
pkgs/tools/text/source-highlight/default.nix
···44 pname = "source-highlight";
55 version = "3.1.9";
6677+ outputs = [ "out" "doc" "dev" ];
88+79 src = fetchurl {
810 url = "mirror://gnu/src-highlite/${pname}-${version}.tar.gz";
911 sha256 = "148w47k3zswbxvhg83z38ifi85f9dqcpg7icvvw1cm6bg21x4zrs";
···2830 strictDeps = true;
2931 buildInputs = [ boost ];
30323131- configureFlags = [ "--with-boost=${boost.out}" ];
3333+ configureFlags = [
3434+ "--with-boost=${boost.out}"
3535+ "--with-bash-completion=${placeholder "out"}/share/bash_completion.d"
3636+ ];
32373338 doCheck = !stdenv.cc.isClang;
3439···3641 # Upstream uses the same intermediate files in multiple tests, running
3742 # them in parallel by make will eventually break one or more tests.
3843 enableParallelChecking = false;
3939-4040- outputs = [ "out" "doc" "dev" ];
41444245 meta = with lib; {
4346 description = "Source code renderer with syntax highlighting";