diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index b5dc620cd74a..d44dc276c721 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -513,6 +513,12 @@
githubId = 38869148;
name = "Alex Eyre";
};
+ algorith = {
+ email = "dries_van_daele@telenet.be";
+ github = "DriesVanDaele";
+ githubId = 1141488;
+ name = "Dries Van Daele";
+ };
alibabzo = {
email = "alistair.bill@gmail.com";
github = "alibabzo";
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 d1692c66a4ba..436157515ebe 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
@@ -356,6 +356,19 @@
loaded.
+
+
+ The iputils package, which is installed by default, no longer
+ provides the legacy tools tftpd and
+ traceroute6. More tools
+ (ninfod, rarpd, and
+ rdisc) are going to be removed in the next
+ release. See
+ upstream’s
+ release notes for more details and available
+ replacements.
+
+
services.thelounge.private was removed in
diff --git a/nixos/doc/manual/release-notes/rl-2205.section.md b/nixos/doc/manual/release-notes/rl-2205.section.md
index f2484c911e72..9d919711cb7f 100644
--- a/nixos/doc/manual/release-notes/rl-2205.section.md
+++ b/nixos/doc/manual/release-notes/rl-2205.section.md
@@ -116,6 +116,12 @@ In addition to numerous new and upgraded packages, this release has the followin
- `idris2` now requires `--package` when using packages `contrib` and `network`, while previously these idris2 packages were automatically loaded.
+- The iputils package, which is installed by default, no longer provides the
+ legacy tools `tftpd` and `traceroute6`. More tools (`ninfod`, `rarpd`, and
+ `rdisc`) are going to be removed in the next release. See
+ [upstream's release notes](https://github.com/iputils/iputils/releases/tag/20211215)
+ for more details and available replacements.
+
- `services.thelounge.private` was removed in favor of `services.thelounge.public`, to follow with upstream changes.
- `pkgs.docbookrx` was removed since it's unmaintained
diff --git a/nixos/modules/security/pam.nix b/nixos/modules/security/pam.nix
index 21202c55fe28..964cfe7040c1 100644
--- a/nixos/modules/security/pam.nix
+++ b/nixos/modules/security/pam.nix
@@ -1035,7 +1035,7 @@ in
setuid = true;
owner = "root";
group = "root";
- source = "${pkgs.pam}/sbin/unix_chkpwd.orig";
+ source = "${pkgs.pam}/bin/unix_chkpwd";
};
};
diff --git a/nixos/modules/system/activation/top-level.nix b/nixos/modules/system/activation/top-level.nix
index c9fef33c9403..18ac717f5dd6 100644
--- a/nixos/modules/system/activation/top-level.nix
+++ b/nixos/modules/system/activation/top-level.nix
@@ -55,8 +55,8 @@ let
substituteInPlace $out/dry-activate --subst-var out
chmod u+x $out/activate $out/dry-activate
unset activationScript dryActivationScript
- ${pkgs.stdenv.shell} -n $out/activate
- ${pkgs.stdenv.shell} -n $out/dry-activate
+ ${pkgs.stdenv.shellDryRun} $out/activate
+ ${pkgs.stdenv.shellDryRun} $out/dry-activate
cp ${config.system.build.bootStage2} $out/init
substituteInPlace $out/init --subst-var-by systemConfig $out
diff --git a/nixos/modules/system/boot/systemd.nix b/nixos/modules/system/boot/systemd.nix
index ec5dea075bbc..76c59c047e0f 100644
--- a/nixos/modules/system/boot/systemd.nix
+++ b/nixos/modules/system/boot/systemd.nix
@@ -210,20 +210,14 @@ let
makeJobScript = name: text:
let
scriptName = replaceChars [ "\\" "@" ] [ "-" "_" ] (shellEscape name);
- out = pkgs.writeTextFile {
+ out = (pkgs.writeShellScriptBin scriptName ''
+ set -e
+ ${text}
+ '').overrideAttrs (_: {
# The derivation name is different from the script file name
# to keep the script file name short to avoid cluttering logs.
name = "unit-script-${scriptName}";
- executable = true;
- destination = "/bin/${scriptName}";
- text = ''
- #!${pkgs.runtimeShell} -e
- ${text}
- '';
- checkPhase = ''
- ${pkgs.stdenv.shell} -n "$out/bin/${scriptName}"
- '';
- };
+ });
in "${out}/bin/${scriptName}";
unitConfig = { config, options, ... }: {
diff --git a/pkgs/applications/audio/mpc/default.nix b/pkgs/applications/audio/mpc/default.nix
index 8fdd05776c97..cebf08f19084 100644
--- a/pkgs/applications/audio/mpc/default.nix
+++ b/pkgs/applications/audio/mpc/default.nix
@@ -1,6 +1,7 @@
{ lib
, stdenv
, fetchFromGitHub
+, fetchpatch
, installShellFiles
, libiconv
, libmpdclient
@@ -21,6 +22,14 @@ stdenv.mkDerivation rec {
hash = "sha256-2FjYBfak0IjibuU+CNQ0y9Ei8hTZhynS/BK2DNerhVw=";
};
+ patches = [
+ # fix the build with meson 0.60 (https://github.com/MusicPlayerDaemon/mpc/pull/76)
+ (fetchpatch {
+ url = "https://github.com/MusicPlayerDaemon/mpc/commit/b656ca4b6c2a0d5b6cebd7f7daa679352f664e0e.patch";
+ sha256 = "sha256-fjjSlCKxgkz7Em08CaK7+JAzl8YTzLcpGGMz2HJlsVw=";
+ })
+ ];
+
buildInputs = [
libmpdclient
]
diff --git a/pkgs/applications/audio/parlatype/default.nix b/pkgs/applications/audio/parlatype/default.nix
index 7b448cc69af7..c1bb1102bf1b 100644
--- a/pkgs/applications/audio/parlatype/default.nix
+++ b/pkgs/applications/audio/parlatype/default.nix
@@ -40,8 +40,6 @@ stdenv.mkDerivation rec {
hicolor-icon-theme
];
- mesonFlags = [ "-Dlibreoffice=false" ];
-
postPatch = ''
chmod +x data/meson_post_install.py
patchShebangs data/meson_post_install.py
diff --git a/pkgs/applications/audio/shortwave/default.nix b/pkgs/applications/audio/shortwave/default.nix
index 0f4ffa14228f..49492d05d15f 100644
--- a/pkgs/applications/audio/shortwave/default.nix
+++ b/pkgs/applications/audio/shortwave/default.nix
@@ -80,6 +80,7 @@ stdenv.mkDerivation rec {
desktop. It is the successor to the older Gradio application.
'';
maintainers = with maintainers; [ lasandell ];
+ broken = true; # incompatible with latest libadwaita
license = licenses.gpl3Plus;
platforms = platforms.linux;
};
diff --git a/pkgs/applications/audio/squishyball/default.nix b/pkgs/applications/audio/squishyball/default.nix
index b44efc1534f8..4a7f819e2904 100644
--- a/pkgs/applications/audio/squishyball/default.nix
+++ b/pkgs/applications/audio/squishyball/default.nix
@@ -16,8 +16,6 @@ stdenv.mkDerivation rec {
buildInputs = [ flac libao libvorbis ncurses opusfile ];
- NIX_CFLAGS_COMPILE = "-DNCURSES_INTERNALS";
-
patches = [ ./gnu-screen.patch ];
postInstall = ''
diff --git a/pkgs/applications/audio/zrythm/default.nix b/pkgs/applications/audio/zrythm/default.nix
index 8963cff4d12a..70b7fbb745f3 100644
--- a/pkgs/applications/audio/zrythm/default.nix
+++ b/pkgs/applications/audio/zrythm/default.nix
@@ -13,7 +13,6 @@
, curl
, dconf
, libepoxy
-, ffmpeg
, fftw
, fftwFloat
, flex
@@ -95,7 +94,6 @@ stdenv.mkDerivation rec {
curl
dconf
libepoxy
- ffmpeg
fftw
fftwFloat
flex
@@ -133,10 +131,9 @@ stdenv.mkDerivation rec {
];
mesonFlags = [
- "-Denable_ffmpeg=true"
- "-Denable_rtmidi=true"
- "-Denable_rtaudio=true"
- "-Denable_sdl=true"
+ "-Drtmidi=enabled"
+ "-Drtaudio=enabled"
+ "-Dsdl=enabled"
"-Dcarla=enabled"
"-Dmanpage=true"
# "-Duser_manual=true" # needs sphinx-intl
diff --git a/pkgs/applications/editors/gnome-builder/default.nix b/pkgs/applications/editors/gnome-builder/default.nix
index d9092b550117..0e2ffe46d208 100644
--- a/pkgs/applications/editors/gnome-builder/default.nix
+++ b/pkgs/applications/editors/gnome-builder/default.nix
@@ -5,6 +5,7 @@
, appstream-glib
, desktop-file-utils
, fetchurl
+, fetchpatch
, flatpak
, gnome
, libgit2-glib
@@ -18,7 +19,7 @@
, jsonrpc-glib
, libdazzle
, libpeas
-, libportal
+, libportal-gtk3
, libxml2
, meson
, ninja
@@ -48,6 +49,15 @@ stdenv.mkDerivation rec {
sha256 = "4iUPyOnp8gAsRS5ZUNgmhXNNPESAs1Fnq1CKyHAlCeE=";
};
+ patches = [
+ # Fix build with latest libportal
+ # https://gitlab.gnome.org/GNOME/gnome-builder/-/merge_requests/486
+ (fetchpatch {
+ url = "https://gitlab.gnome.org/GNOME/gnome-builder/-/commit/b3bfa0df53a3749c3b73cb6c4bad5cab3fa549a1.patch";
+ sha256 = "B/uCcYavFvOAPhLHZ4MRNENDd6VytILiGYwDZRUSxTE=";
+ })
+ ];
+
nativeBuildInputs = [
appstream-glib
desktop-file-utils
@@ -69,7 +79,7 @@ stdenv.mkDerivation rec {
glade
libgit2-glib
libpeas
- libportal
+ libportal-gtk3
vte
gspell
gtk3
diff --git a/pkgs/applications/editors/vim/common.nix b/pkgs/applications/editors/vim/common.nix
index 42cae7992853..51a9b9af5bfd 100644
--- a/pkgs/applications/editors/vim/common.nix
+++ b/pkgs/applications/editors/vim/common.nix
@@ -1,12 +1,12 @@
{ lib, fetchFromGitHub }:
rec {
- version = "8.2.3877";
+ version = "8.2.4186";
src = fetchFromGitHub {
owner = "vim";
repo = "vim";
rev = "v${version}";
- sha256 = "sha256-NqTO2TdhOs63eP7CdWY9U9nbR7No3hqPV5rGhYF9arA=";
+ sha256 = "0g276mbmq69z7c4kgj59r0azxmx9ih2sd8v83dx2gfph6wgw65ph";
};
enableParallelBuilding = true;
diff --git a/pkgs/applications/graphics/gcolor3/default.nix b/pkgs/applications/graphics/gcolor3/default.nix
index 2771559416bf..63725b97431b 100644
--- a/pkgs/applications/graphics/gcolor3/default.nix
+++ b/pkgs/applications/graphics/gcolor3/default.nix
@@ -6,7 +6,7 @@
, pkg-config
, libxml2
, gtk3
-, libportal
+, libportal-gtk3
, wrapGAppsHook
}:
@@ -33,12 +33,16 @@ stdenv.mkDerivation rec {
buildInputs = [
gtk3
- libportal
+ libportal-gtk3
];
postPatch = ''
chmod +x meson_install.sh # patchShebangs requires executable file
patchShebangs meson_install.sh
+
+ # https://gitlab.gnome.org/World/gcolor3/merge_requests/151
+ substituteInPlace meson.build --replace "dependency(${"\n"} 'libportal'" "dependency(${"\n"} 'libportal-gtk3'"
+ substituteInPlace src/gcolor3-color-selection.c --replace "libportal/portal-gtk3.h" "libportal-gtk3/portal-gtk3.h"
'';
meta = with lib; {
diff --git a/pkgs/applications/graphics/graphicsmagick/default.nix b/pkgs/applications/graphics/graphicsmagick/default.nix
index 268e59d910b5..fe387ddc273b 100644
--- a/pkgs/applications/graphics/graphicsmagick/default.nix
+++ b/pkgs/applications/graphics/graphicsmagick/default.nix
@@ -4,11 +4,11 @@
stdenv.mkDerivation rec {
pname = "graphicsmagick";
- version = "1.3.36";
+ version = "1.3.37";
src = fetchurl {
url = "mirror://sourceforge/graphicsmagick/GraphicsMagick-${version}.tar.xz";
- sha256 = "0ilg6fkppb4avzais1dvi3qf6ln7v3mzj7gjm83w7pwwfpg3ynsx";
+ sha256 = "sha256-kNwi8ae9JA5MkGWpQJYr8T2kPJm8w2yxEcw8Gg10d9Q=";
};
patches = [
diff --git a/pkgs/applications/kde/kamoso.nix b/pkgs/applications/kde/kamoso.nix
index 9baa06275a78..c80ed0c511e4 100644
--- a/pkgs/applications/kde/kamoso.nix
+++ b/pkgs/applications/kde/kamoso.nix
@@ -34,7 +34,7 @@ mkDerivation {
];
qtWrapperArgs = [
- "--prefix GST_PLUGIN_PATH : ${lib.makeSearchPath "lib/gstreamer-1.0" gst}"
+ "--prefix GST_PLUGIN_PATH : ${lib.makeSearchPathOutput "lib" "lib/gstreamer-1.0" gst}"
];
meta = {
diff --git a/pkgs/applications/misc/iptsd/default.nix b/pkgs/applications/misc/iptsd/default.nix
index 297ea6dc6a29..7347c4b7849e 100644
--- a/pkgs/applications/misc/iptsd/default.nix
+++ b/pkgs/applications/misc/iptsd/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
--replace "install_dir: rulesdir" "install_dir: datadir" \
'';
mesonFlags = [
- "-Dsystemd=true"
+ "-Dservice_manager=systemd"
"-Dsample_config=false"
"-Ddebug_tool=false"
];
diff --git a/pkgs/applications/misc/metadata-cleaner/default.nix b/pkgs/applications/misc/metadata-cleaner/default.nix
index f113eed155fc..01c8ade58c4b 100644
--- a/pkgs/applications/misc/metadata-cleaner/default.nix
+++ b/pkgs/applications/misc/metadata-cleaner/default.nix
@@ -9,7 +9,7 @@
, itstool
, libadwaita
, librsvg
-, meson_0_60
+, meson
, ninja
, pkg-config
, poppler_gi
@@ -35,7 +35,7 @@ python3.pkgs.buildPythonApplication rec {
glib
gtk4
itstool
- meson_0_60
+ meson
ninja
pkg-config
wrapGAppsHook
diff --git a/pkgs/applications/misc/notejot/default.nix b/pkgs/applications/misc/notejot/default.nix
index aad182bd1875..245254439355 100644
--- a/pkgs/applications/misc/notejot/default.nix
+++ b/pkgs/applications/misc/notejot/default.nix
@@ -17,21 +17,27 @@
stdenv.mkDerivation rec {
pname = "notejot";
- version = "3.2.0";
+ version = "3.3.3"; # make sure to recheck src.rev
src = fetchFromGitHub {
owner = "lainsce";
repo = pname;
- rev = version;
- hash = "sha256-WyW1tGhO3+OykNa8BRavi93cBMOSBJw0M+0bwQHJOjU=";
+ # Note from Fedora spec file:
+ # https://src.fedoraproject.org/rpms/notejot/blob/bbe621cef4d5a2c27eed029063b8e8cfd7c8d400/f/notejot.spec
+ # Upstream confusingly made several bugfix post-releases of version 3.3.3,
+ # tagged as 3.4.x, but with prominent notices like "This is still 3.3.3". We
+ # respect upstream’s wishes (and the version numbers inside the source tarball)
+ # by packaging these releases as 3.3.3 with appropriate snapshot info.
+ # https://github.com/lainsce/notejot/releases/tag/3.4.9
+ #
+ # Note that sometimes upstream don't update their version in meson.build
+ # (https://github.com/lainsce/notejot/issues/236), always follow the version
+ # from Fedora Rawhide.
+ # https://github.com/lainsce/notejot/blob/3.4.9/meson.build#L1
+ rev = "3.4.9";
+ hash = "sha256-42k9CAnXAb7Ic580SIa95MDCkCWtso1F+0eD69HX8WI=";
};
- patches = [
- # build: use gtk4-update-icon-cache
- # https://github.com/lainsce/notejot/pull/307
- ./use-gtk4-update-icon-cache.patch
- ];
-
nativeBuildInputs = [
meson
ninja
diff --git a/pkgs/applications/misc/notejot/use-gtk4-update-icon-cache.patch b/pkgs/applications/misc/notejot/use-gtk4-update-icon-cache.patch
deleted file mode 100644
index 9431c43cef69..000000000000
--- a/pkgs/applications/misc/notejot/use-gtk4-update-icon-cache.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff --git a/build-aux/post_install.py b/build-aux/post_install.py
-index 1278304..fface6d 100644
---- a/build-aux/post_install.py
-+++ b/build-aux/post_install.py
-@@ -2,11 +2,13 @@
- import os
- import subprocess
-
--schemadir = os.path.join(os.environ['MESON_INSTALL_PREFIX'], 'share', 'glib-2.0', 'schemas')
-+install_prefix = os.environ['MESON_INSTALL_PREFIX']
-+icondir = os.path.join(install_prefix, 'share', 'icons', 'hicolor')
-+schemadir = os.path.join(install_prefix, 'share', 'glib-2.0', 'schemas')
-
- if not os.environ.get('DESTDIR'):
- print('Compiling gsettings schemas…')
- subprocess.call(['glib-compile-schemas', schemadir], shell=False)
-
- print('Rebuilding desktop icons cache...')
-- subprocess.call(['gtk-update-icon-cache', '/usr/share/icons/hicolor/'], shell=False)
-+ subprocess.call(['gtk4-update-icon-cache', '-qtf', icondir], shell=False)
diff --git a/pkgs/applications/misc/qt-video-wlr/default.nix b/pkgs/applications/misc/qt-video-wlr/default.nix
index bdb434085da0..ffd22be085e1 100644
--- a/pkgs/applications/misc/qt-video-wlr/default.nix
+++ b/pkgs/applications/misc/qt-video-wlr/default.nix
@@ -1,6 +1,6 @@
{ stdenv, lib, fetchFromGitHub, pkg-config, meson, ninja, wayland, pixman, cairo, librsvg, wayland-protocols, wlroots, libxkbcommon, gst_all_1, wrapQtAppsHook, qtbase, qtmultimedia }:
let
- gstreamerPath = with gst_all_1; lib.makeSearchPath "lib/gstreamer-1.0" [
+ gstreamerPath = with gst_all_1; lib.makeSearchPathOutput "lib" "lib/gstreamer-1.0" [
gstreamer
gst-plugins-base
gst-plugins-good
diff --git a/pkgs/applications/networking/browsers/nyxt/default.nix b/pkgs/applications/networking/browsers/nyxt/default.nix
index 59bb2adbf518..ccbc7a8dc8fb 100644
--- a/pkgs/applications/networking/browsers/nyxt/default.nix
+++ b/pkgs/applications/networking/browsers/nyxt/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
xclip notify-osd enchant
] ++ gstBuildInputs;
- GST_PLUGIN_SYSTEM_PATH_1_0 = lib.concatMapStringsSep ":" (p: "${p}/lib/gstreamer-1.0") gstBuildInputs;
+ GST_PLUGIN_SYSTEM_PATH_1_0 = lib.makeSearchPathOutput "lib" "lib/gstreamer-1.0" gstBuildInputs;
dontWrapGApps = true;
installPhase = ''
diff --git a/pkgs/applications/networking/irc/hexchat/default.nix b/pkgs/applications/networking/irc/hexchat/default.nix
index 504481479ed2..fbe9971f1d7d 100644
--- a/pkgs/applications/networking/irc/hexchat/default.nix
+++ b/pkgs/applications/networking/irc/hexchat/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
done
'';
- mesonFlags = [ "-Dwith-lua=lua" "-Dwith-text=true" ];
+ mesonFlags = [ "-Dwith-lua=lua" "-Dtext-frontend=true" ];
postInstall = ''
wrapProgram $out/bin/hexchat --prefix PYTHONPATH : "$PYTHONPATH"
diff --git a/pkgs/applications/office/gtg/default.nix b/pkgs/applications/office/gtg/default.nix
index 4b9237d23ce7..6d536ea60a3d 100644
--- a/pkgs/applications/office/gtg/default.nix
+++ b/pkgs/applications/office/gtg/default.nix
@@ -1,5 +1,6 @@
{ lib
, fetchFromGitHub
+, fetchpatch
, meson
, python3Packages
, ninja
@@ -25,6 +26,13 @@ python3Packages.buildPythonApplication rec {
sha256 = "0b2slm7kjq6q8c7v4m7aqc8m1ynjxn3bl7445srpv1xc0dilq403";
};
+ patches = [
+ # fix build with meson 0.60 (https://github.com/getting-things-gnome/gtg/pull/729)
+ (fetchpatch {
+ url = "https://github.com/getting-things-gnome/gtg/commit/1809d10663ae3d8f69c04138b66f9b4e66ee14f6.patch";
+ sha256 = "sha256-bYr5PAsuvcSqTf0vaJj2APtuBrwHdhXJxtXoAb7CfGk=";
+ })
+ ];
nativeBuildInputs = [
meson
diff --git a/pkgs/applications/version-management/commitizen/default.nix b/pkgs/applications/version-management/commitizen/default.nix
new file mode 100644
index 000000000000..fddffe6d198d
--- /dev/null
+++ b/pkgs/applications/version-management/commitizen/default.nix
@@ -0,0 +1,49 @@
+{ buildPythonApplication
+, lib
+, fetchFromGitHub
+, poetry
+, termcolor
+, questionary
+, colorama
+, decli
+, tomlkit
+, jinja2
+, pyyaml
+, argcomplete
+, typing-extensions
+}:
+
+buildPythonApplication rec {
+ pname = "commitizen";
+ version = "2.20.3";
+
+ src = fetchFromGitHub {
+ owner = "commitizen-tools";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "sha256-rAm2GTRxZIHQmn/FM0IwwH/2h+oOvzGmeVr5xkvD/zA=";
+ };
+
+ format = "pyproject";
+
+ nativeBuildInputs = [ poetry ];
+
+ propagatedBuildInputs = [
+ termcolor
+ questionary
+ colorama
+ decli
+ tomlkit
+ jinja2
+ pyyaml
+ argcomplete
+ typing-extensions
+ ];
+
+ meta = with lib; {
+ description = "Tool to create committing rules for projects, auto bump versions, and generate changelogs";
+ homepage = "https://github.com/commitizen-tools/commitizen";
+ license = licenses.mit;
+ maintainers = with maintainers; [ lovesegfault ];
+ };
+}
diff --git a/pkgs/applications/video/kooha/default.nix b/pkgs/applications/video/kooha/default.nix
index f5be86647390..667dfd83d2cf 100644
--- a/pkgs/applications/video/kooha/default.nix
+++ b/pkgs/applications/video/kooha/default.nix
@@ -68,6 +68,7 @@ stdenv.mkDerivation rec {
# Fixes https://github.com/NixOS/nixpkgs/issues/31168
postPatch = ''
patchShebangs build-aux/meson_post_install.py
+ substituteInPlace meson.build --replace '>= 1.0.0-alpha.1' '>= 1.0.0'
'';
installCheckPhase = ''
diff --git a/pkgs/applications/window-managers/sway/default.nix b/pkgs/applications/window-managers/sway/default.nix
index 72ca71d58960..194525dcffb5 100644
--- a/pkgs/applications/window-managers/sway/default.nix
+++ b/pkgs/applications/window-managers/sway/default.nix
@@ -1,5 +1,5 @@
{ lib, stdenv, fetchFromGitHub, substituteAll, swaybg
-, meson_0_60, ninja, pkg-config, wayland-scanner, scdoc
+, meson, ninja, pkg-config, wayland-scanner, scdoc
, wayland, libxkbcommon, pcre, json_c, dbus, libevdev
, pango, cairo, libinput, libcap, pam, gdk-pixbuf, librsvg
, wlroots, wayland-protocols, libdrm
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
];
nativeBuildInputs = [
- meson_0_60 ninja pkg-config wayland-scanner scdoc
+ meson ninja pkg-config wayland-scanner scdoc
];
buildInputs = [
diff --git a/pkgs/build-support/bintools-wrapper/ld-wrapper.sh b/pkgs/build-support/bintools-wrapper/ld-wrapper.sh
index 2f96480f80c1..fb01c5096d5b 100644
--- a/pkgs/build-support/bintools-wrapper/ld-wrapper.sh
+++ b/pkgs/build-support/bintools-wrapper/ld-wrapper.sh
@@ -30,7 +30,7 @@ expandResponseParams "$@"
if [[ -n "${NIX_LINK_TYPE_@suffixSalt@:-}" ]]; then
linkType=$NIX_LINK_TYPE_@suffixSalt@
else
- linkType=$(checkLinkType "$@")
+ linkType=$(checkLinkType "${params[@]}")
fi
if [[ "${NIX_ENFORCE_PURITY:-}" = 1 && -n "${NIX_STORE:-}"
diff --git a/pkgs/build-support/cc-wrapper/cc-wrapper.sh b/pkgs/build-support/cc-wrapper/cc-wrapper.sh
index aa25de336418..1220841162c3 100644
--- a/pkgs/build-support/cc-wrapper/cc-wrapper.sh
+++ b/pkgs/build-support/cc-wrapper/cc-wrapper.sh
@@ -31,7 +31,7 @@ cxxLibrary=1
cInclude=1
expandResponseParams "$@"
-linkType=$(checkLinkType "$@")
+linkType=$(checkLinkType "${params[@]}")
declare -i n=0
nParams=${#params[@]}
diff --git a/pkgs/build-support/libredirect/default.nix b/pkgs/build-support/libredirect/default.nix
index 0c86ea9a7930..9ed00c8a8f63 100644
--- a/pkgs/build-support/libredirect/default.nix
+++ b/pkgs/build-support/libredirect/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, runCommand, lib, coreutils }:
+{ lib, stdenv, bintools-unwrapped, llvmPackages_13, coreutils }:
if stdenv.hostPlatform.isStatic
then throw ''
@@ -25,17 +25,36 @@ else stdenv.mkDerivation rec {
cp ${./test.c} test.c
'';
- libName = "libredirect" + stdenv.targetPlatform.extensions.sharedLibrary;
-
outputs = ["out" "hook"];
+ libName = "libredirect" + stdenv.targetPlatform.extensions.sharedLibrary;
+
buildPhase = ''
runHook preBuild
- $CC -Wall -std=c99 -O3 -fPIC -ldl -shared \
- ${lib.optionalString stdenv.isDarwin "-Wl,-install_name,$out/lib/$libName"} \
- -o "$libName" \
- libredirect.c
+ ${if stdenv.isDarwin && stdenv.isAarch64 then ''
+ # We need the unwrapped binutils and clang:
+ # We also want to build a fat library with x86_64, arm64, arm64e in there.
+ # Because we use the unwrapped tools, we need to provide -isystem for headers
+ # and the library search directory for libdl.
+ # We can't build this on x86_64, because the libSystem we point to doesn't
+ # like arm64(e).
+ PATH=${bintools-unwrapped}/bin:${llvmPackages_13.clang-unwrapped}/bin:$PATH \
+ clang -arch x86_64 -arch arm64 -arch arm64e \
+ -isystem ${llvmPackages_13.clang.libc}/include \
+ -isystem ${llvmPackages_13.libclang.lib}/lib/clang/*/include \
+ -L${llvmPackages_13.clang.libc}/lib \
+ -Wl,-install_name,$libName \
+ -Wall -std=c99 -O3 -fPIC libredirect.c \
+ -ldl -shared -o "$libName"
+ '' else if stdenv.isDarwin then ''
+ $CC -Wall -std=c99 -O3 -fPIC libredirect.c \
+ -Wl,-install_name,$out/lib/$libName \
+ -ldl -shared -o "$libName"
+ '' else ''
+ $CC -Wall -std=c99 -O3 -fPIC libredirect.c \
+ -ldl -shared -o "$libName"
+ ''}
if [ -n "$doInstallCheck" ]; then
$CC -Wall -std=c99 -O3 test.c -o test
@@ -54,6 +73,12 @@ else stdenv.mkDerivation rec {
install -vD "$libName" "$out/lib/$libName"
+ '' + lib.optionalString (stdenv.isDarwin && stdenv.isAarch64) ''
+ # dylib will be rejected unless dylib rpath gets explictly set
+ install_name_tool \
+ -change $libName $out/lib/$libName \
+ $out/lib/$libName
+ '' + ''
# Provide a setup hook that injects our library into every process.
mkdir -p "$hook/nix-support"
cat < "$hook/nix-support/setup-hook"
diff --git a/pkgs/build-support/libredirect/libredirect.c b/pkgs/build-support/libredirect/libredirect.c
index 7dac4684722f..0dc7feb382c3 100644
--- a/pkgs/build-support/libredirect/libredirect.c
+++ b/pkgs/build-support/libredirect/libredirect.c
@@ -112,7 +112,8 @@ WRAPPER(int, open)(const char * path, int flags, ...)
}
WRAPPER_DEF(open)
-#ifndef __APPLE__
+// In musl libc, open64 is simply a macro for open
+#if !defined(__APPLE__) && !defined(open64)
WRAPPER(int, open64)(const char * path, int flags, ...)
{
int (*open64_real) (const char *, int, mode_t) = LOOKUP_REAL(open64);
@@ -152,7 +153,7 @@ WRAPPER(FILE *, fopen)(const char * path, const char * mode)
}
WRAPPER_DEF(fopen)
-#ifndef __APPLE__
+#ifdef __GLIBC__
WRAPPER(FILE *, __nss_files_fopen)(const char * path)
{
FILE * (*__nss_files_fopen_real) (const char *) = LOOKUP_REAL(__nss_files_fopen);
@@ -162,7 +163,8 @@ WRAPPER(FILE *, __nss_files_fopen)(const char * path)
WRAPPER_DEF(__nss_files_fopen)
#endif
-#ifndef __APPLE__
+// In musl libc, fopen64 is simply a macro for fopen
+#if !defined(__APPLE__) && !defined(fopen64)
WRAPPER(FILE *, fopen64)(const char * path, const char * mode)
{
FILE * (*fopen64_real) (const char *, const char *) = LOOKUP_REAL(fopen64);
@@ -172,7 +174,7 @@ WRAPPER(FILE *, fopen64)(const char * path, const char * mode)
WRAPPER_DEF(fopen64)
#endif
-#ifndef __APPLE__
+#ifdef __linux__
WRAPPER(int, __xstat)(int ver, const char * path, struct stat * st)
{
int (*__xstat_real) (int ver, const char *, struct stat *) = LOOKUP_REAL(__xstat);
@@ -182,7 +184,7 @@ WRAPPER(int, __xstat)(int ver, const char * path, struct stat * st)
WRAPPER_DEF(__xstat)
#endif
-#ifndef __APPLE__
+#ifdef __linux__
WRAPPER(int, __xstat64)(int ver, const char * path, struct stat64 * st)
{
int (*__xstat64_real) (int ver, const char *, struct stat64 *) = LOOKUP_REAL(__xstat64);
diff --git a/pkgs/build-support/rust/hooks/cargo-build-hook.sh b/pkgs/build-support/rust/hooks/cargo-build-hook.sh
index 54ed765012b9..7503fae4cd7f 100644
--- a/pkgs/build-support/rust/hooks/cargo-build-hook.sh
+++ b/pkgs/build-support/rust/hooks/cargo-build-hook.sh
@@ -6,6 +6,9 @@ cargoBuildHook() {
runHook preBuild
if [ ! -z "${buildAndTestSubdir-}" ]; then
+ # ensure the output doesn't end up in the subdirectory
+ export CARGO_TARGET_DIR="$(pwd)/target"
+
pushd "${buildAndTestSubdir}"
fi
diff --git a/pkgs/build-support/setup-hooks/make-wrapper.sh b/pkgs/build-support/setup-hooks/make-wrapper.sh
index 8b7012677cd5..903e17c3b2e5 100644
--- a/pkgs/build-support/setup-hooks/make-wrapper.sh
+++ b/pkgs/build-support/setup-hooks/make-wrapper.sh
@@ -23,6 +23,7 @@ assertExecutable() {
# --prefix ENV SEP VAL : suffix/prefix ENV with VAL, separated by SEP
# --suffix
+# --prefix-each ENV SEP VALS : like --prefix, but VALS is a list
# --suffix-each ENV SEP VALS : like --suffix, but VALS is a list
# --prefix-contents ENV SEP FILES : like --suffix-each, but contents of FILES
# are read first and used as VALS
@@ -73,6 +74,14 @@ makeWrapper() {
echo "export $varName=${value@Q}\${$varName:+${separator@Q}}\$$varName" >> "$wrapper"
fi
fi
+ elif [[ "$p" == "--prefix-each" ]]; then
+ varName="${params[$((n + 1))]}"
+ separator="${params[$((n + 2))]}"
+ values="${params[$((n + 3))]}"
+ n=$((n + 3))
+ for value in $values; do
+ echo "export $varName=${value@Q}\${$varName:+${separator@Q}}\$$varName" >> "$wrapper"
+ done
elif [[ "$p" == "--suffix-each" ]]; then
varName="${params[$((n + 1))]}"
separator="${params[$((n + 2))]}"
diff --git a/pkgs/build-support/trivial-builders.nix b/pkgs/build-support/trivial-builders.nix
index a7120e334333..68f0f1bc4ddc 100644
--- a/pkgs/build-support/trivial-builders.nix
+++ b/pkgs/build-support/trivial-builders.nix
@@ -121,18 +121,18 @@ rec {
allowSubstitutes = false;
}
''
- n=$out${destination}
- mkdir -p "$(dirname "$n")"
+ target=$out${destination}
+ mkdir -p "$(dirname "$target")"
if [ -e "$textPath" ]; then
- mv "$textPath" "$n"
+ mv "$textPath" "$target"
else
- echo -n "$text" > "$n"
+ echo -n "$text" > "$target"
fi
eval "$checkPhase"
- (test -n "$executable" && chmod +x "$n") || true
+ (test -n "$executable" && chmod +x "$target") || true
'';
/*
@@ -219,7 +219,7 @@ rec {
${text}
'';
checkPhase = ''
- ${stdenv.shell} -n $out
+ ${stdenv.shellDryRun} "$target"
'';
};
@@ -246,7 +246,7 @@ rec {
${text}
'';
checkPhase = ''
- ${stdenv.shell} -n $out/bin/${name}
+ ${stdenv.shellDryRun} "$target"
'';
};
@@ -295,8 +295,8 @@ rec {
checkPhase =
if checkPhase == null then ''
runHook preCheck
- ${stdenv.shell} -n $out/bin/${name}
- ${shellcheck}/bin/shellcheck $out/bin/${name}
+ ${stdenv.shellDryRun} "$target"
+ ${shellcheck}/bin/shellcheck "$target"
runHook postCheck
''
else checkPhase;
diff --git a/pkgs/build-support/trivial-builders/test-overriding.nix b/pkgs/build-support/trivial-builders/test-overriding.nix
index ddd5dc050752..a16bbbee1b1b 100644
--- a/pkgs/build-support/trivial-builders/test-overriding.nix
+++ b/pkgs/build-support/trivial-builders/test-overriding.nix
@@ -1,10 +1,11 @@
# Check that overriding works for trivial-builders like
# `writeShellScript` via `overrideAttrs`. This is useful
-# to override the `checkPhase`, e. g. when you want
-# to enable extglob in `writeShellScript`.
+# to override the `checkPhase`, e. g. if you want
+# to disable extglob in `writeShellScript`.
#
-# Run using `nix-build -A tests.trivial-overriding`.
+# Run using `nix-build -A tests.trivial-builders.overriding`.
{ lib
+, stdenv
, runtimeShell
, runCommand
, callPackage
@@ -21,33 +22,6 @@ let
rm success
'';
- # Reuse the old `checkPhase` of `writeShellScript`, but enable extglob.
- allowExtglob = old: {
- checkPhase = ''
- # make sure we don't change the settings for
- # the rest of the derivation's build
- (
- export BASHOPTS
- shopt -s extglob
- ${old.checkPhase}
- )
- '';
- };
-
- # Run old checkPhase, but only succeed if it fails.
- # This HACK is required because we can't introspect build failures
- # in nix: With `assertFail` we want to make sure that the default
- # `checkPhase` would fail if extglob was used in the script.
- assertFail = old: {
- # write old checkPhase into a shell script, so we can check for
- # the phase to fail even though we have `set -e`.
- checkPhase = ''
- if source ${writeShellScript "old-check-phase" old.checkPhase} 2>/dev/null; then
- exit 1
- fi
- '';
- };
-
simpleCase = case:
writeShellScript "test-trivial-overriding-${case}" extglobScript;
@@ -70,16 +44,33 @@ let
executable = true;
};
- mkCase = f: type: isBin:
+ disallowExtglob = x: x.overrideAttrs (_: {
+ checkPhase = ''
+ ${stdenv.shell} -n "$target"
+ '';
+ });
+
+ # Run old checkPhase, but only succeed if it fails.
+ # This HACK is required because we can't introspect build failures
+ # in nix: With `assertFail` we want to make sure that the default
+ # `checkPhase` would fail if extglob was used in the script.
+ assertFail = x: x.overrideAttrs (old: {
+ checkPhase = ''
+ if
+ ${old.checkPhase}
+ then exit 1; fi
+ '';
+ });
+
+ mkCase = case: outcome: isBin:
let
- drv = (f type).overrideAttrs
- (if type == "succ" then allowExtglob else assertFail);
+ drv = lib.pipe outcome ([ case ] ++ lib.optionals (outcome == "fail") [ disallowExtglob assertFail ]);
in if isBin then "${drv}/bin/${drv.name}" else drv;
writeTextOverrides = {
- # Enabling globbing in checkPhase
+ # Make sure extglob works by default
simpleSucc = mkCase simpleCase "succ" false;
- # Ensure it's possible to fail; in this case globbing is not enabled.
+ # Ensure it's possible to fail; in this case extglob is not enabled
simpleFail = mkCase simpleCase "fail" false;
# Do the same checks after wrapping with callPackage
# to make sure callPackage doesn't mess with the override
@@ -103,7 +94,7 @@ let
name = script.name or (builtins.baseNameOf script);
in writeShellScript "run-${name}" ''
if [ "$(${script})" != "success" ]; then
- echo "Failed in ${script}"
+ echo "Failed in ${name}"
exit 1
fi
'';
diff --git a/pkgs/data/misc/cacert/default.nix b/pkgs/data/misc/cacert/default.nix
index b6d8a4b6b607..4d79521c255c 100644
--- a/pkgs/data/misc/cacert/default.nix
+++ b/pkgs/data/misc/cacert/default.nix
@@ -20,7 +20,7 @@ let
blocklist = writeText "cacert-blocklist.txt" (lib.concatStringsSep "\n" blacklist);
extraCertificatesBundle = writeText "cacert-extra-certificates-bundle.crt" (lib.concatStringsSep "\n\n" extraCertificateStrings);
- srcVersion = "3.71";
+ srcVersion = "3.74";
version = if nssOverride != null then nssOverride.version else srcVersion;
meta = with lib; {
homepage = "https://curl.haxx.se/docs/caextract.html";
@@ -35,7 +35,7 @@ let
src = if nssOverride != null then nssOverride.src else fetchurl {
url = "mirror://mozilla/security/nss/releases/NSS_${lib.replaceStrings ["."] ["_"] version}_RTM/src/nss-${version}.tar.gz";
- sha256 = "0ly2l3dv6z5hlxs72h5x6796ni3x1bq60saavaf42ddgv4ax7b4r";
+ sha256 = "0mnhdkm4galhpvfz4rv0918jwmjlwkvcvb1f5va8f3zlz48qi4l8";
};
dontBuild = true;
diff --git a/pkgs/data/misc/shared-mime-info/default.nix b/pkgs/data/misc/shared-mime-info/default.nix
index 4c60895897fe..2feb5e2f5a47 100644
--- a/pkgs/data/misc/shared-mime-info/default.nix
+++ b/pkgs/data/misc/shared-mime-info/default.nix
@@ -13,34 +13,24 @@
}:
stdenv.mkDerivation rec {
- pname = "shared-mime-info";
- version = "2.1";
+ pname = "shared-mime-info-unstable";
+ version = "2021-12-03";
outputs = [ "out" "dev" ];
src = fetchFromGitLab {
domain = "gitlab.freedesktop.org";
owner = "xdg";
- repo = pname;
- rev = version;
- sha256 = "07bxv44p43pqq4ymfnyy50yli7lwdqymhvclna42rkn1cazq3vb5";
+ repo = "shared-mime-info";
+ rev = "5a406b06792e26a83c7346b3c2443c0bd8d4cdb2";
+ sha256 = "1v7dx7mr0m4lcff1aasg9gxn280zn0ffn6fjg9xc44pnllg01n6s";
};
- patches = [
- # xmlto is only used for building the docs, which are not installed anyways.
- (fetchpatch {
- name = "xmlto-optional.patch";
- url = "https://gitlab.freedesktop.org/xdg/shared-mime-info/-/merge_requests/110.patch";
- sha256 = "0p5gxlcmn8ji5bc7pd105s1halqwa1d28lfx9yj43rn6mav7allx";
- })
- ];
-
nativeBuildInputs = [
meson
ninja
pkg-config
gettext
- itstool
libxml2
] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) shared-mime-info;
diff --git a/pkgs/desktops/arcan/xarcan/default.nix b/pkgs/desktops/arcan/xarcan/default.nix
index 6245471a7efd..d72bf4ad5bb3 100644
--- a/pkgs/desktops/arcan/xarcan/default.nix
+++ b/pkgs/desktops/arcan/xarcan/default.nix
@@ -1,6 +1,7 @@
{ lib
, stdenv
, fetchFromGitHub
+, fetchpatch
, arcan
, audit
, dbus
@@ -46,6 +47,14 @@ stdenv.mkDerivation rec {
hash = "sha256-UTIVDKnYD/q0K6G7NJUKh1tHcqnsuiJ/cQxWuPMJ2G4=";
};
+ patches = [
+ # fix build with meson 0.60
+ (fetchpatch {
+ url = "https://github.com/letoram/xarcan/commit/b67e514dbb59bffc23b75d47ca7f24e96c4aeb05.patch";
+ sha256 = "sha256-tSQmNy1Id6nDIN+03dc1+rEEF8fMq0yJBiscNM60xic=";
+ })
+ ];
+
nativeBuildInputs = [
meson
ninja
diff --git a/pkgs/desktops/gnome/apps/gnome-todo/default.nix b/pkgs/desktops/gnome/apps/gnome-todo/default.nix
index f3dde6585aeb..32eb07fbd62b 100644
--- a/pkgs/desktops/gnome/apps/gnome-todo/default.nix
+++ b/pkgs/desktops/gnome/apps/gnome-todo/default.nix
@@ -1,6 +1,6 @@
{ lib
, stdenv
-, fetchurl
+, fetchFromGitLab
, fetchpatch
, meson
, ninja
@@ -16,21 +16,25 @@
, libpeas
, gnome-online-accounts
, gsettings-desktop-schemas
-, libportal
+, libportal-gtk4
, evolution-data-server
, libical
, librest
, json-glib
, itstool
+, unstableGitUpdater
}:
stdenv.mkDerivation rec {
pname = "gnome-todo";
- version = "41.0";
+ version = "unstable-2022-01-01";
- src = fetchurl {
- url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
- sha256 = "1r94880d4khbjhhfnhaba3y3d4hv2bri82rzfzxn27s5iybpqras";
+ src = fetchFromGitLab {
+ domain = "gitlab.gnome.org";
+ owner = "GNOME";
+ repo = "gnome-todo";
+ rev = "4a6be8c38510d909a9f94ec34c4da1f31ac9f1ab";
+ sha256 = "5UGo9vMb8scPWK91gftYOjqkJs9tGMiH1lqyEqedF2A=";
};
patches = [
@@ -64,7 +68,7 @@ stdenv.mkDerivation rec {
gnome.adwaita-icon-theme
# Plug-ins
- libportal # background
+ libportal-gtk4 # background
evolution-data-server # eds
libical
librest # todoist
@@ -77,9 +81,8 @@ stdenv.mkDerivation rec {
'';
passthru = {
- updateScript = gnome.updateScript {
- packageName = pname;
- attrPath = "gnome.${pname}";
+ updateScript = unstableGitUpdater {
+ url = "https://gitlab.gnome.org/GNOME/gnome-todo.git";
};
};
diff --git a/pkgs/desktops/gnome/core/eog/default.nix b/pkgs/desktops/gnome/core/eog/default.nix
index 620f7e7d9c13..cdde96ae43b9 100644
--- a/pkgs/desktops/gnome/core/eog/default.nix
+++ b/pkgs/desktops/gnome/core/eog/default.nix
@@ -1,5 +1,6 @@
{ lib, stdenv
, fetchurl
+, fetchpatch
, meson
, ninja
, gettext
@@ -8,7 +9,7 @@
, libxml2
, libjpeg
, libpeas
-, libportal
+, libportal-gtk3
, gnome
, gtk3
, glib
@@ -35,6 +36,15 @@ stdenv.mkDerivation rec {
sha256 = "sha256-huG5ujnaz3QiavpFermDtBJTuJ9he/VBOcrQiS0C2Kk=";
};
+ patches = [
+ # Fix build with latest libportal
+ # https://gitlab.gnome.org/GNOME/eog/-/merge_requests/115
+ (fetchpatch {
+ url = "https://gitlab.gnome.org/GNOME/eog/-/commit/a06e6325907e136678b0bbe7058c25d688034afd.patch";
+ sha256 = "ttcsfHubfmIbxA51YLnxXDagLLNutXYmoQyMQ4sHRak=";
+ })
+ ];
+
nativeBuildInputs = [
meson
ninja
@@ -49,7 +59,7 @@ stdenv.mkDerivation rec {
buildInputs = [
libjpeg
- libportal
+ libportal-gtk3
gtk3
gdk-pixbuf
glib
diff --git a/pkgs/desktops/gnome/core/epiphany/default.nix b/pkgs/desktops/gnome/core/epiphany/default.nix
index 0baab20acec9..eb8caa4f1eff 100644
--- a/pkgs/desktops/gnome/core/epiphany/default.nix
+++ b/pkgs/desktops/gnome/core/epiphany/default.nix
@@ -12,7 +12,7 @@
, wrapGAppsHook
, gnome
, pantheon
-, libportal
+, libportal-gtk3
, libxml2
, libxslt
, itstool
@@ -65,6 +65,13 @@ stdenv.mkDerivation rec {
url = "https://raw.githubusercontent.com/elementary/browser/cc17559a7ac6effe593712b4f3d0bbefde6e3b62/navigation-buttons.patch";
sha256 = "sha256-G1/JUjn/8DyO9sgL/5Kq205KbTOs4EMi4Vf3cJ8FHXU=";
})
+ ] ++ [
+ # Fix build with latest libportal
+ # https://gitlab.gnome.org/GNOME/epiphany/-/merge_requests/1051
+ (fetchpatch {
+ url = "https://gitlab.gnome.org/GNOME/epiphany/-/commit/84474398f6e59266b73170838219aa896729ce93.patch";
+ sha256 = "SeiLTo3FcOxuml5sJX9GqyGdyGf1jm1A76SOI0JJvoo=";
+ })
];
nativeBuildInputs = [
@@ -100,7 +107,7 @@ stdenv.mkDerivation rec {
json-glib
libdazzle
libhandy
- libportal
+ libportal-gtk3
libnotify
libarchive
libsecret
diff --git a/pkgs/desktops/gnome/core/gnome-settings-daemon/3.38/default.nix b/pkgs/desktops/gnome/core/gnome-settings-daemon/3.38/default.nix
index de48b72faca4..aae01577a881 100644
--- a/pkgs/desktops/gnome/core/gnome-settings-daemon/3.38/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-settings-daemon/3.38/default.nix
@@ -68,6 +68,12 @@ stdenv.mkDerivation rec {
url = "https://gitlab.gnome.org/GNOME/gnome-settings-daemon/commit/82d88014dfca2df7e081712870e1fb017c16b808.patch";
sha256 = "H5k/v+M2bRaswt5nrDJFNn4gS4BdB0UfzdjUCT4yLKg=";
})
+
+ # Fix build with new meson
+ (fetchpatch {
+ url = "https://gitlab.gnome.org/GNOME/gnome-settings-daemon/-/commit/28e28e9e598342c897ae5ca350d0da6f4aea057b.diff";
+ sha256 = "U+suR7wYjLWPqmkJpHm6pPOWL7sjL6GhIFX8MHrBRAY=";
+ })
];
nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/core/nautilus/default.nix b/pkgs/desktops/gnome/core/nautilus/default.nix
index 1b527bf49d6d..3f61f55db1dc 100644
--- a/pkgs/desktops/gnome/core/nautilus/default.nix
+++ b/pkgs/desktops/gnome/core/nautilus/default.nix
@@ -1,5 +1,6 @@
{ lib, stdenv
, fetchurl
+, fetchpatch
, meson
, ninja
, pkg-config
@@ -10,7 +11,7 @@
, wrapGAppsHook
, gtk3
, libhandy
-, libportal
+, libportal-gtk3
, gnome
, gnome-autoar
, glib-networking
@@ -52,6 +53,17 @@ stdenv.mkDerivation rec {
src = ./fix-paths.patch;
inherit tracker;
})
+
+ # Fix build with latest libportal
+ # https://gitlab.gnome.org/GNOME/nautilus/-/merge_requests/749
+ (fetchpatch {
+ url = "https://gitlab.gnome.org/GNOME/nautilus/-/commit/55cfd66ccca391fc144f5863ff6bfc1f3b137e2d.patch";
+ sha256 = "xSb9l7xxEYpAwmdmeWT/t7Z9Ck3DPtsODzbReQW/Q70=";
+ excludes = [
+ "build-aux/flatpak/org.gnome.Nautilus.json"
+ "build-aux/flatpak/org.gnome.Nautilus.yml"
+ ];
+ })
];
nativeBuildInputs = [
@@ -76,7 +88,7 @@ stdenv.mkDerivation rec {
gst_all_1.gst-plugins-base
gtk3
libhandy
- libportal
+ libportal-gtk3
libexif
libnotify
libseccomp
diff --git a/pkgs/development/compilers/llvm/10/clang/default.nix b/pkgs/development/compilers/llvm/10/clang/default.nix
index b42f40b96943..5336e4ea35a3 100644
--- a/pkgs/development/compilers/llvm/10/clang/default.nix
+++ b/pkgs/development/compilers/llvm/10/clang/default.nix
@@ -29,7 +29,6 @@ let
"-DCMAKE_CXX_FLAGS=-std=c++14"
"-DCLANGD_BUILD_XPC=OFF"
"-DLLVM_ENABLE_RTTI=ON"
- "-DLLVM_CONFIG_PATH=${libllvm.dev}/bin/llvm-config${lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) "-native"}"
] ++ lib.optionals enableManpages [
"-DCLANG_INCLUDE_DOCS=ON"
"-DLLVM_ENABLE_SPHINX=ON"
diff --git a/pkgs/development/compilers/llvm/10/default.nix b/pkgs/development/compilers/llvm/10/default.nix
index 8bd7e937e7d7..5cb6c278659d 100644
--- a/pkgs/development/compilers/llvm/10/default.nix
+++ b/pkgs/development/compilers/llvm/10/default.nix
@@ -89,7 +89,11 @@ let
# python3 = pkgs.python3; # don't use python-boot
# });
- clang = if stdenv.cc.isGNU then tools.libstdcxxClang else tools.libcxxClang;
+ # pick clang appropriate for package set we are targeting
+ clang =
+ /**/ if stdenv.targetPlatform.useLLVM or false then tools.clangUseLLVM
+ else if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU then tools.libstdcxxClang
+ else tools.libcxxClang;
libstdcxxClang = wrapCCWith rec {
cc = tools.clang-unwrapped;
diff --git a/pkgs/development/compilers/llvm/10/llvm/default.nix b/pkgs/development/compilers/llvm/10/llvm/default.nix
index b40d3070c059..bb1b90b36a92 100644
--- a/pkgs/development/compilers/llvm/10/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/10/llvm/default.nix
@@ -57,6 +57,12 @@ in stdenv.mkDerivation (rec {
propagatedBuildInputs = [ ncurses zlib ];
patches = [
+ # When cross-compiling we configure llvm-config-native with an approximation
+ # of the flags used for the normal LLVM build. To avoid the need for building
+ # a native libLLVM.so (which would fail) we force llvm-config to be linked
+ # statically against the necessary LLVM components always.
+ ../../llvm-config-link-static.patch
+
./gnu-install-dirs.patch
# On older CPUs (e.g. Hydra/wendy) we'd be getting an error in this test.
(fetchpatch {
@@ -93,11 +99,6 @@ in stdenv.mkDerivation (rec {
substituteInPlace cmake/modules/AddLLVM.cmake \
--replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir)" \
--replace 'set(_install_rpath "@loader_path/../''${CMAKE_INSTALL_LIBDIR}''${LLVM_LIBDIR_SUFFIX}" ''${extra_libdir})' ""
- ''
- # Patch llvm-config to return correct library path based on --link-{shared,static}.
- + ''
- substitute '${./outputs.patch}' ./outputs.patch --subst-var lib
- patch -p1 < ./outputs.patch
'' + ''
# FileSystem permissions tests fail with various special bits
substituteInPlace unittests/Support/CMakeLists.txt \
@@ -122,6 +123,32 @@ in stdenv.mkDerivation (rec {
rm test/ExecutionEngine/frem.ll
'' + ''
patchShebangs test/BugPoint/compile-custom.ll.py
+ '' + ''
+ # Tweak tests to ignore namespace part of type to support
+ # gcc-12: https://gcc.gnu.org/PR103598.
+ # The change below mangles strings like:
+ # CHECK-NEXT: Starting llvm::Function pass manager run.
+ # to:
+ # CHECK-NEXT: Starting {{.*}}Function pass manager run.
+ for f in \
+ test/Other/new-pass-manager.ll \
+ test/Other/new-pm-defaults.ll \
+ test/Other/new-pm-lto-defaults.ll \
+ test/Other/new-pm-thinlto-defaults.ll \
+ test/Other/pass-pipeline-parsing.ll \
+ test/Transforms/Inline/cgscc-incremental-invalidate.ll \
+ test/Transforms/Inline/clear-analyses.ll \
+ test/Transforms/LoopUnroll/unroll-loop-invalidation.ll \
+ test/Transforms/SCCP/ipsccp-preserve-analysis.ll \
+ test/Transforms/SCCP/preserve-analysis.ll \
+ test/Transforms/SROA/dead-inst.ll \
+ test/tools/gold/X86/new-pm.ll \
+ ; do
+ echo "PATCH: $f"
+ substituteInPlace $f \
+ --replace 'Starting llvm::' 'Starting {{.*}}' \
+ --replace 'Finished llvm::' 'Finished {{.*}}'
+ done
'';
# hacky fix: created binaries need to be run before installation
@@ -130,18 +157,28 @@ in stdenv.mkDerivation (rec {
ln -sv $PWD/lib $out
'';
- cmakeFlags = with stdenv; [
- "-DLLVM_INSTALL_CMAKE_DIR=${placeholder "dev"}/lib/cmake/llvm/"
+ cmakeFlags = with stdenv; let
+ # These flags influence llvm-config's BuildVariables.inc in addition to the
+ # general build. We need to make sure these are also passed via
+ # CROSS_TOOLCHAIN_FLAGS_NATIVE when cross-compiling or llvm-config-native
+ # will return different results from the cross llvm-config.
+ #
+ # Some flags don't need to be repassed because LLVM already does so (like
+ # CMAKE_BUILD_TYPE), others are irrelevant to the result.
+ flagsForLlvmConfig = [
+ "-DLLVM_INSTALL_CMAKE_DIR=${placeholder "dev"}/lib/cmake/llvm/"
+ "-DLLVM_ENABLE_RTTI=ON"
+ ] ++ optionals enableSharedLibraries [
+ "-DLLVM_LINK_LLVM_DYLIB=ON"
+ ];
+ in flagsForLlvmConfig ++ [
"-DCMAKE_BUILD_TYPE=${if debugVersion then "Debug" else "Release"}"
"-DLLVM_INSTALL_UTILS=ON" # Needed by rustc
- "-DLLVM_BUILD_TESTS=ON"
+ "-DLLVM_BUILD_TESTS=${if doCheck then "ON" else "OFF"}"
"-DLLVM_ENABLE_FFI=ON"
- "-DLLVM_ENABLE_RTTI=ON"
"-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}"
"-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}"
"-DLLVM_ENABLE_DUMP=ON"
- ] ++ optionals enableSharedLibraries [
- "-DLLVM_LINK_LLVM_DYLIB=ON"
] ++ optionals enableManpages [
"-DLLVM_BUILD_DOCS=ON"
"-DLLVM_ENABLE_SPHINX=ON"
@@ -167,7 +204,21 @@ in stdenv.mkDerivation (rec {
"-DCMAKE_STRIP=${nativeBintools}/bin/${nativeBintools.targetPrefix}strip"
"-DCMAKE_RANLIB=${nativeBintools}/bin/${nativeBintools.targetPrefix}ranlib"
];
- in "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list=${lib.concatStringsSep ";" nativeToolchainFlags}"
+ # We need to repass the custom GNUInstallDirs values, otherwise CMake
+ # will choose them for us, leading to wrong results in llvm-config-native
+ nativeInstallFlags = [
+ "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}"
+ "-DCMAKE_INSTALL_BINDIR=${placeholder "out"}/bin"
+ "-DCMAKE_INSTALL_INCLUDEDIR=${placeholder "dev"}/include"
+ "-DCMAKE_INSTALL_LIBDIR=${placeholder "lib"}/lib"
+ "-DCMAKE_INSTALL_LIBEXECDIR=${placeholder "lib"}/libexec"
+ ];
+ in "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list="
+ + lib.concatStringsSep ";" (lib.concatLists [
+ flagsForLlvmConfig
+ nativeToolchainFlags
+ nativeInstallFlags
+ ])
)
];
@@ -197,7 +248,8 @@ in stdenv.mkDerivation (rec {
cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native
'';
- doCheck = stdenv.isLinux && (!stdenv.isx86_32);
+ doCheck = stdenv.isLinux && (!stdenv.isx86_32)
+ && (stdenv.hostPlatform == stdenv.buildPlatform);
checkTarget = "check-all";
diff --git a/pkgs/development/compilers/llvm/10/llvm/outputs.patch b/pkgs/development/compilers/llvm/10/llvm/outputs.patch
deleted file mode 100644
index 878460e05b8a..000000000000
--- a/pkgs/development/compilers/llvm/10/llvm/outputs.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp
-index 94d426b..37f7794 100644
---- a/tools/llvm-config/llvm-config.cpp
-+++ b/tools/llvm-config/llvm-config.cpp
-@@ -333,6 +333,11 @@ int main(int argc, char **argv) {
- ActiveIncludeOption = "-I" + ActiveIncludeDir;
- }
-
-+ /// Nix-specific multiple-output handling: override ActiveLibDir
-+ if (!IsInDevelopmentTree) {
-+ ActiveLibDir = std::string("@lib@") + "/lib" + LLVM_LIBDIR_SUFFIX;
-+ }
-+
- /// We only use `shared library` mode in cases where the static library form
- /// of the components provided are not available; note however that this is
- /// skipped if we're run from within the build dir. However, once installed,
diff --git a/pkgs/development/compilers/llvm/11/clang/default.nix b/pkgs/development/compilers/llvm/11/clang/default.nix
index f2236aee45e5..58439f02a5c9 100644
--- a/pkgs/development/compilers/llvm/11/clang/default.nix
+++ b/pkgs/development/compilers/llvm/11/clang/default.nix
@@ -31,7 +31,6 @@ let
"-DCMAKE_CXX_FLAGS=-std=c++14"
"-DCLANGD_BUILD_XPC=OFF"
"-DLLVM_ENABLE_RTTI=ON"
- "-DLLVM_CONFIG_PATH=${libllvm.dev}/bin/llvm-config${lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) "-native"}"
] ++ lib.optionals enableManpages [
"-DCLANG_INCLUDE_DOCS=ON"
"-DLLVM_ENABLE_SPHINX=ON"
diff --git a/pkgs/development/compilers/llvm/11/default.nix b/pkgs/development/compilers/llvm/11/default.nix
index ebd0dc672aa3..82a78af85cac 100644
--- a/pkgs/development/compilers/llvm/11/default.nix
+++ b/pkgs/development/compilers/llvm/11/default.nix
@@ -104,7 +104,11 @@ let
# python3 = pkgs.python3; # don't use python-boot
# });
- clang = if stdenv.cc.isGNU then tools.libstdcxxClang else tools.libcxxClang;
+ # pick clang appropriate for package set we are targeting
+ clang =
+ /**/ if stdenv.targetPlatform.useLLVM or false then tools.clangUseLLVM
+ else if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU then tools.libstdcxxClang
+ else tools.libcxxClang;
libstdcxxClang = wrapCCWith rec {
cc = tools.clang-unwrapped;
diff --git a/pkgs/development/compilers/llvm/11/llvm/default.nix b/pkgs/development/compilers/llvm/11/llvm/default.nix
index 8d14ee131bd2..e8cfd23faa7e 100644
--- a/pkgs/development/compilers/llvm/11/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/11/llvm/default.nix
@@ -57,6 +57,12 @@ in stdenv.mkDerivation (rec {
propagatedBuildInputs = [ ncurses zlib ];
patches = [
+ # When cross-compiling we configure llvm-config-native with an approximation
+ # of the flags used for the normal LLVM build. To avoid the need for building
+ # a native libLLVM.so (which would fail) we force llvm-config to be linked
+ # statically against the necessary LLVM components always.
+ ../../llvm-config-link-static.patch
+
./gnu-install-dirs.patch
# On older CPUs (e.g. Hydra/wendy) we'd be getting an error in this test.
(fetchpatch {
@@ -91,11 +97,6 @@ in stdenv.mkDerivation (rec {
substituteInPlace cmake/modules/AddLLVM.cmake \
--replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir)" \
--replace 'set(_install_rpath "@loader_path/../''${CMAKE_INSTALL_LIBDIR}''${LLVM_LIBDIR_SUFFIX}" ''${extra_libdir})' ""
- ''
- # Patch llvm-config to return correct library path based on --link-{shared,static}.
- + ''
- substitute '${./outputs.patch}' ./outputs.patch --subst-var lib
- patch -p1 < ./outputs.patch
'' + ''
# FileSystem permissions tests fail with various special bits
substituteInPlace unittests/Support/CMakeLists.txt \
@@ -120,6 +121,32 @@ in stdenv.mkDerivation (rec {
rm test/ExecutionEngine/frem.ll
'' + ''
patchShebangs test/BugPoint/compile-custom.ll.py
+ '' + ''
+ # Tweak tests to ignore namespace part of type to support
+ # gcc-12: https://gcc.gnu.org/PR103598.
+ # The change below mangles strings like:
+ # CHECK-NEXT: Starting llvm::Function pass manager run.
+ # to:
+ # CHECK-NEXT: Starting {{.*}}Function pass manager run.
+ for f in \
+ test/Other/new-pass-manager.ll \
+ test/Other/new-pm-defaults.ll \
+ test/Other/new-pm-lto-defaults.ll \
+ test/Other/new-pm-thinlto-defaults.ll \
+ test/Other/pass-pipeline-parsing.ll \
+ test/Transforms/Inline/cgscc-incremental-invalidate.ll \
+ test/Transforms/Inline/clear-analyses.ll \
+ test/Transforms/LoopUnroll/unroll-loop-invalidation.ll \
+ test/Transforms/SCCP/ipsccp-preserve-analysis.ll \
+ test/Transforms/SCCP/preserve-analysis.ll \
+ test/Transforms/SROA/dead-inst.ll \
+ test/tools/gold/X86/new-pm.ll \
+ ; do
+ echo "PATCH: $f"
+ substituteInPlace $f \
+ --replace 'Starting llvm::' 'Starting {{.*}}' \
+ --replace 'Finished llvm::' 'Finished {{.*}}'
+ done
'';
# hacky fix: created binaries need to be run before installation
@@ -131,18 +158,38 @@ in stdenv.mkDerivation (rec {
# E.g. mesa.drivers use the build-id as a cache key (see #93946):
LDFLAGS = optionalString (enableSharedLibraries && !stdenv.isDarwin) "-Wl,--build-id=sha1";
- cmakeFlags = with stdenv; [
- "-DLLVM_INSTALL_CMAKE_DIR=${placeholder "dev"}/lib/cmake/llvm/"
+ cmakeFlags = with stdenv; let
+ # These flags influence llvm-config's BuildVariables.inc in addition to the
+ # general build. We need to make sure these are also passed via
+ # CROSS_TOOLCHAIN_FLAGS_NATIVE when cross-compiling or llvm-config-native
+ # will return different results from the cross llvm-config.
+ #
+ # Some flags don't need to be repassed because LLVM already does so (like
+ # CMAKE_BUILD_TYPE), others are irrelevant to the result.
+ flagsForLlvmConfig = [
+ "-DLLVM_INSTALL_CMAKE_DIR=${placeholder "dev"}/lib/cmake/llvm/"
+ "-DLLVM_ENABLE_RTTI=ON"
+ ] ++ optionals enableSharedLibraries [
+ "-DLLVM_LINK_LLVM_DYLIB=ON"
+ ];
+ in flagsForLlvmConfig ++ [
"-DCMAKE_BUILD_TYPE=${if debugVersion then "Debug" else "Release"}"
"-DLLVM_INSTALL_UTILS=ON" # Needed by rustc
- "-DLLVM_BUILD_TESTS=ON"
+ "-DLLVM_BUILD_TESTS=${if doCheck then "ON" else "OFF"}"
"-DLLVM_ENABLE_FFI=ON"
- "-DLLVM_ENABLE_RTTI=ON"
"-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}"
"-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}"
"-DLLVM_ENABLE_DUMP=ON"
- ] ++ optionals enableSharedLibraries [
- "-DLLVM_LINK_LLVM_DYLIB=ON"
+ ] ++ optionals stdenv.hostPlatform.isStatic [
+ # Disables building of shared libs, -fPIC is still injected by cc-wrapper
+ "-DLLVM_ENABLE_PIC=OFF"
+ "-DLLVM_BUILD_STATIC=ON"
+ # libxml2 needs to be disabled because the LLVM build system ignores its .la
+ # file and doesn't link zlib as well.
+ # https://github.com/ClangBuiltLinux/tc-build/issues/150#issuecomment-845418812
+ "-DLLVM_ENABLE_LIBXML2=OFF"
+ # This is a Shared Library not tied to LLVM_ENABLE_PIC
+ "-DLLVM_TOOL_REMARKS_SHLIB_BUILD=OFF"
] ++ optionals enableManpages [
"-DLLVM_BUILD_DOCS=ON"
"-DLLVM_ENABLE_SPHINX=ON"
@@ -168,7 +215,21 @@ in stdenv.mkDerivation (rec {
"-DCMAKE_STRIP=${nativeBintools}/bin/${nativeBintools.targetPrefix}strip"
"-DCMAKE_RANLIB=${nativeBintools}/bin/${nativeBintools.targetPrefix}ranlib"
];
- in "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list=${lib.concatStringsSep ";" nativeToolchainFlags}"
+ # We need to repass the custom GNUInstallDirs values, otherwise CMake
+ # will choose them for us, leading to wrong results in llvm-config-native
+ nativeInstallFlags = [
+ "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}"
+ "-DCMAKE_INSTALL_BINDIR=${placeholder "out"}/bin"
+ "-DCMAKE_INSTALL_INCLUDEDIR=${placeholder "dev"}/include"
+ "-DCMAKE_INSTALL_LIBDIR=${placeholder "lib"}/lib"
+ "-DCMAKE_INSTALL_LIBEXECDIR=${placeholder "lib"}/libexec"
+ ];
+ in "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list="
+ + lib.concatStringsSep ";" (lib.concatLists [
+ flagsForLlvmConfig
+ nativeToolchainFlags
+ nativeInstallFlags
+ ])
)
];
@@ -198,7 +259,8 @@ in stdenv.mkDerivation (rec {
cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native
'';
- doCheck = stdenv.isLinux && (!stdenv.isx86_32) && (!stdenv.hostPlatform.isMusl) && (!stdenv.hostPlatform.isRiscV);
+ doCheck = stdenv.isLinux && (!stdenv.isx86_32) && (!stdenv.hostPlatform.isMusl) && (!stdenv.hostPlatform.isRiscV)
+ && (stdenv.hostPlatform == stdenv.buildPlatform);
checkTarget = "check-all";
diff --git a/pkgs/development/compilers/llvm/11/llvm/outputs.patch b/pkgs/development/compilers/llvm/11/llvm/outputs.patch
deleted file mode 100644
index 878460e05b8a..000000000000
--- a/pkgs/development/compilers/llvm/11/llvm/outputs.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp
-index 94d426b..37f7794 100644
---- a/tools/llvm-config/llvm-config.cpp
-+++ b/tools/llvm-config/llvm-config.cpp
-@@ -333,6 +333,11 @@ int main(int argc, char **argv) {
- ActiveIncludeOption = "-I" + ActiveIncludeDir;
- }
-
-+ /// Nix-specific multiple-output handling: override ActiveLibDir
-+ if (!IsInDevelopmentTree) {
-+ ActiveLibDir = std::string("@lib@") + "/lib" + LLVM_LIBDIR_SUFFIX;
-+ }
-+
- /// We only use `shared library` mode in cases where the static library form
- /// of the components provided are not available; note however that this is
- /// skipped if we're run from within the build dir. However, once installed,
diff --git a/pkgs/development/compilers/llvm/12/clang/default.nix b/pkgs/development/compilers/llvm/12/clang/default.nix
index a41123495982..0f1e160bbce8 100644
--- a/pkgs/development/compilers/llvm/12/clang/default.nix
+++ b/pkgs/development/compilers/llvm/12/clang/default.nix
@@ -32,7 +32,6 @@ let
"-DCMAKE_CXX_FLAGS=-std=c++14"
"-DCLANGD_BUILD_XPC=OFF"
"-DLLVM_ENABLE_RTTI=ON"
- "-DLLVM_CONFIG_PATH=${libllvm.dev}/bin/llvm-config${lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) "-native"}"
] ++ lib.optionals enableManpages [
"-DCLANG_INCLUDE_DOCS=ON"
"-DLLVM_ENABLE_SPHINX=ON"
diff --git a/pkgs/development/compilers/llvm/12/default.nix b/pkgs/development/compilers/llvm/12/default.nix
index e68522faea06..4a2a7ee87894 100644
--- a/pkgs/development/compilers/llvm/12/default.nix
+++ b/pkgs/development/compilers/llvm/12/default.nix
@@ -92,7 +92,11 @@ let
# python3 = pkgs.python3; # don't use python-boot
# });
- clang = if stdenv.cc.isGNU then tools.libstdcxxClang else tools.libcxxClang;
+ # pick clang appropriate for package set we are targeting
+ clang =
+ /**/ if stdenv.targetPlatform.useLLVM or false then tools.clangUseLLVM
+ else if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU then tools.libstdcxxClang
+ else tools.libcxxClang;
libstdcxxClang = wrapCCWith rec {
cc = tools.clang-unwrapped;
diff --git a/pkgs/development/compilers/llvm/12/llvm/default.nix b/pkgs/development/compilers/llvm/12/llvm/default.nix
index bb5676b9d48e..2c035ee67a9e 100644
--- a/pkgs/development/compilers/llvm/12/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/12/llvm/default.nix
@@ -58,6 +58,15 @@ in stdenv.mkDerivation (rec {
++ [ zlib ];
patches = [
+ # When cross-compiling we configure llvm-config-native with an approximation
+ # of the flags used for the normal LLVM build. To avoid the need for building
+ # a native libLLVM.so (which would fail) we force llvm-config to be linked
+ # statically against the necessary LLVM components always.
+ ../../llvm-config-link-static.patch
+ # Fix llvm being miscompiled by some gccs. See llvm/llvm-project#49955
+ # Fix llvm being miscompiled by some gccs. See https://github.com/llvm/llvm-project/issues/49955
+ ./fix-llvm-issue-49955.patch
+
./gnu-install-dirs.patch
# On older CPUs (e.g. Hydra/wendy) we'd be getting an error in this test.
(fetchpatch {
@@ -72,11 +81,6 @@ in stdenv.mkDerivation (rec {
substituteInPlace cmake/modules/AddLLVM.cmake \
--replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir)" \
--replace 'set(_install_rpath "@loader_path/../''${CMAKE_INSTALL_LIBDIR}''${LLVM_LIBDIR_SUFFIX}" ''${extra_libdir})' ""
- ''
- # Patch llvm-config to return correct library path based on --link-{shared,static}.
- + ''
- substitute '${./outputs.patch}' ./outputs.patch --subst-var lib
- patch -p1 < ./outputs.patch
'' + ''
# FileSystem permissions tests fail with various special bits
substituteInPlace unittests/Support/CMakeLists.txt \
@@ -105,6 +109,33 @@ in stdenv.mkDerivation (rec {
rm test/ExecutionEngine/frem.ll
'' + ''
patchShebangs test/BugPoint/compile-custom.ll.py
+ '' + ''
+ # Tweak tests to ignore namespace part of type to support
+ # gcc-12: https://gcc.gnu.org/PR103598.
+ # The change below mangles strings like:
+ # CHECK-NEXT: Starting llvm::Function pass manager run.
+ # to:
+ # CHECK-NEXT: Starting {{.*}}Function pass manager run.
+ for f in \
+ test/Other/new-pass-manager.ll \
+ test/Other/new-pm-O0-defaults.ll \
+ test/Other/new-pm-defaults.ll \
+ test/Other/new-pm-lto-defaults.ll \
+ test/Other/new-pm-thinlto-defaults.ll \
+ test/Other/pass-pipeline-parsing.ll \
+ test/Transforms/Inline/cgscc-incremental-invalidate.ll \
+ test/Transforms/Inline/clear-analyses.ll \
+ test/Transforms/LoopUnroll/unroll-loop-invalidation.ll \
+ test/Transforms/SCCP/ipsccp-preserve-analysis.ll \
+ test/Transforms/SCCP/preserve-analysis.ll \
+ test/Transforms/SROA/dead-inst.ll \
+ test/tools/gold/X86/new-pm.ll \
+ ; do
+ echo "PATCH: $f"
+ substituteInPlace $f \
+ --replace 'Starting llvm::' 'Starting {{.*}}' \
+ --replace 'Finished llvm::' 'Finished {{.*}}'
+ done
'';
# hacky fix: created binaries need to be run before installation
@@ -116,18 +147,36 @@ in stdenv.mkDerivation (rec {
# E.g. mesa.drivers use the build-id as a cache key (see #93946):
LDFLAGS = optionalString (enableSharedLibraries && !stdenv.isDarwin) "-Wl,--build-id=sha1";
- cmakeFlags = with stdenv; [
- "-DLLVM_INSTALL_CMAKE_DIR=${placeholder "dev"}/lib/cmake/llvm/"
+ cmakeFlags = with stdenv; let
+ # These flags influence llvm-config's BuildVariables.inc in addition to the
+ # general build. We need to make sure these are also passed via
+ # CROSS_TOOLCHAIN_FLAGS_NATIVE when cross-compiling or llvm-config-native
+ # will return different results from the cross llvm-config.
+ #
+ # Some flags don't need to be repassed because LLVM already does so (like
+ # CMAKE_BUILD_TYPE), others are irrelevant to the result.
+ flagsForLlvmConfig = [
+ "-DLLVM_INSTALL_CMAKE_DIR=${placeholder "dev"}/lib/cmake/llvm/"
+ "-DLLVM_ENABLE_RTTI=ON"
+ ] ++ optionals enableSharedLibraries [
+ "-DLLVM_LINK_LLVM_DYLIB=ON"
+ ];
+ in flagsForLlvmConfig ++ [
"-DCMAKE_BUILD_TYPE=${if debugVersion then "Debug" else "Release"}"
"-DLLVM_INSTALL_UTILS=ON" # Needed by rustc
- "-DLLVM_BUILD_TESTS=ON"
+ "-DLLVM_BUILD_TESTS=${if doCheck then "ON" else "OFF"}"
"-DLLVM_ENABLE_FFI=ON"
- "-DLLVM_ENABLE_RTTI=ON"
"-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}"
"-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}"
"-DLLVM_ENABLE_DUMP=ON"
- ] ++ optionals enableSharedLibraries [
- "-DLLVM_LINK_LLVM_DYLIB=ON"
+ ] ++ optionals stdenv.hostPlatform.isStatic [
+ # Disables building of shared libs, -fPIC is still injected by cc-wrapper
+ "-DLLVM_ENABLE_PIC=OFF"
+ "-DLLVM_BUILD_STATIC=ON"
+ # libxml2 needs to be disabled because the LLVM build system ignores its .la
+ # file and doesn't link zlib as well.
+ # https://github.com/ClangBuiltLinux/tc-build/issues/150#issuecomment-845418812
+ "-DLLVM_ENABLE_LIBXML2=OFF"
] ++ optionals enableManpages [
"-DLLVM_BUILD_DOCS=ON"
"-DLLVM_ENABLE_SPHINX=ON"
@@ -153,7 +202,21 @@ in stdenv.mkDerivation (rec {
"-DCMAKE_STRIP=${nativeBintools}/bin/${nativeBintools.targetPrefix}strip"
"-DCMAKE_RANLIB=${nativeBintools}/bin/${nativeBintools.targetPrefix}ranlib"
];
- in "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list=${lib.concatStringsSep ";" nativeToolchainFlags}"
+ # We need to repass the custom GNUInstallDirs values, otherwise CMake
+ # will choose them for us, leading to wrong results in llvm-config-native
+ nativeInstallFlags = [
+ "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}"
+ "-DCMAKE_INSTALL_BINDIR=${placeholder "out"}/bin"
+ "-DCMAKE_INSTALL_INCLUDEDIR=${placeholder "dev"}/include"
+ "-DCMAKE_INSTALL_LIBDIR=${placeholder "lib"}/lib"
+ "-DCMAKE_INSTALL_LIBEXECDIR=${placeholder "lib"}/libexec"
+ ];
+ in "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list="
+ + lib.concatStringsSep ";" (lib.concatLists [
+ flagsForLlvmConfig
+ nativeToolchainFlags
+ nativeInstallFlags
+ ])
)
];
@@ -183,7 +246,8 @@ in stdenv.mkDerivation (rec {
cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native
'';
- doCheck = stdenv.isLinux && (!stdenv.isx86_32) && (!stdenv.hostPlatform.isMusl);
+ doCheck = stdenv.isLinux && (!stdenv.isx86_32) && (!stdenv.hostPlatform.isMusl)
+ && (stdenv.hostPlatform == stdenv.buildPlatform);
checkTarget = "check-all";
diff --git a/pkgs/development/compilers/llvm/12/llvm/fix-llvm-issue-49955.patch b/pkgs/development/compilers/llvm/12/llvm/fix-llvm-issue-49955.patch
new file mode 100644
index 000000000000..b515583a0c42
--- /dev/null
+++ b/pkgs/development/compilers/llvm/12/llvm/fix-llvm-issue-49955.patch
@@ -0,0 +1,13 @@
+diff --git a/lib/CodeGen/AsmPrinter/CMakeLists.txt b/lib/CodeGen/AsmPrinter/CMakeLists.txt
+index eb924282..c77c140b 100644
+--- a/lib/CodeGen/AsmPrinter/CMakeLists.txt
++++ b/lib/CodeGen/AsmPrinter/CMakeLists.txt
+@@ -44,3 +44,8 @@ add_llvm_component_library(LLVMAsmPrinter
+ Support
+ Target
+ )
++
++if (CMAKE_COMPILER_IS_GNUCXX)
++ set_source_files_properties(DwarfCompileUnit.cpp PROPERTIES
++ COMPILE_FLAGS -fno-strict-aliasing)
++endif()
diff --git a/pkgs/development/compilers/llvm/12/llvm/outputs.patch b/pkgs/development/compilers/llvm/12/llvm/outputs.patch
deleted file mode 100644
index 878460e05b8a..000000000000
--- a/pkgs/development/compilers/llvm/12/llvm/outputs.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp
-index 94d426b..37f7794 100644
---- a/tools/llvm-config/llvm-config.cpp
-+++ b/tools/llvm-config/llvm-config.cpp
-@@ -333,6 +333,11 @@ int main(int argc, char **argv) {
- ActiveIncludeOption = "-I" + ActiveIncludeDir;
- }
-
-+ /// Nix-specific multiple-output handling: override ActiveLibDir
-+ if (!IsInDevelopmentTree) {
-+ ActiveLibDir = std::string("@lib@") + "/lib" + LLVM_LIBDIR_SUFFIX;
-+ }
-+
- /// We only use `shared library` mode in cases where the static library form
- /// of the components provided are not available; note however that this is
- /// skipped if we're run from within the build dir. However, once installed,
diff --git a/pkgs/development/compilers/llvm/13/clang/default.nix b/pkgs/development/compilers/llvm/13/clang/default.nix
index 242995839745..6c227f1ae72b 100644
--- a/pkgs/development/compilers/llvm/13/clang/default.nix
+++ b/pkgs/development/compilers/llvm/13/clang/default.nix
@@ -22,7 +22,6 @@ let
"-DCMAKE_CXX_FLAGS=-std=c++14"
"-DCLANGD_BUILD_XPC=OFF"
"-DLLVM_ENABLE_RTTI=ON"
- "-DLLVM_CONFIG_PATH=${libllvm.dev}/bin/llvm-config${lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) "-native"}"
] ++ lib.optionals enableManpages [
"-DCLANG_INCLUDE_DOCS=ON"
"-DLLVM_ENABLE_SPHINX=ON"
diff --git a/pkgs/development/compilers/llvm/13/default.nix b/pkgs/development/compilers/llvm/13/default.nix
index a89c6dabe391..be5e9404cdd4 100644
--- a/pkgs/development/compilers/llvm/13/default.nix
+++ b/pkgs/development/compilers/llvm/13/default.nix
@@ -93,7 +93,11 @@ let
# python3 = pkgs.python3; # don't use python-boot
# });
- clang = if stdenv.cc.isGNU then tools.libstdcxxClang else tools.libcxxClang;
+ # pick clang appropriate for package set we are targeting
+ clang =
+ /**/ if stdenv.targetPlatform.useLLVM or false then tools.clangUseLLVM
+ else if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU then tools.libstdcxxClang
+ else tools.libcxxClang;
libstdcxxClang = wrapCCWith rec {
cc = tools.clang-unwrapped;
diff --git a/pkgs/development/compilers/llvm/13/llvm/default.nix b/pkgs/development/compilers/llvm/13/llvm/default.nix
index 115b56396e8d..abfb2b36d18f 100644
--- a/pkgs/development/compilers/llvm/13/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/13/llvm/default.nix
@@ -52,6 +52,12 @@ in stdenv.mkDerivation (rec {
checkInputs = [ which ];
patches = [
+ # When cross-compiling we configure llvm-config-native with an approximation
+ # of the flags used for the normal LLVM build. To avoid the need for building
+ # a native libLLVM.so (which would fail) we force llvm-config to be linked
+ # statically against the necessary LLVM components always.
+ ../../llvm-config-link-static.patch
+
./gnu-install-dirs.patch
# Fix random compiler crashes: https://bugs.llvm.org/show_bug.cgi?id=50611
@@ -66,11 +72,6 @@ in stdenv.mkDerivation (rec {
substituteInPlace cmake/modules/AddLLVM.cmake \
--replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir)" \
--replace 'set(_install_rpath "@loader_path/../''${CMAKE_INSTALL_LIBDIR}''${LLVM_LIBDIR_SUFFIX}" ''${extra_libdir})' ""
- ''
- # Patch llvm-config to return correct library path based on --link-{shared,static}.
- + ''
- substitute '${./outputs.patch}' ./outputs.patch --subst-var lib
- patch -p1 < ./outputs.patch
'' + ''
# FileSystem permissions tests fail with various special bits
substituteInPlace unittests/Support/CMakeLists.txt \
@@ -109,18 +110,36 @@ in stdenv.mkDerivation (rec {
# E.g. mesa.drivers use the build-id as a cache key (see #93946):
LDFLAGS = optionalString (enableSharedLibraries && !stdenv.isDarwin) "-Wl,--build-id=sha1";
- cmakeFlags = with stdenv; [
- "-DLLVM_INSTALL_CMAKE_DIR=${placeholder "dev"}/lib/cmake/llvm/"
+ cmakeFlags = with stdenv; let
+ # These flags influence llvm-config's BuildVariables.inc in addition to the
+ # general build. We need to make sure these are also passed via
+ # CROSS_TOOLCHAIN_FLAGS_NATIVE when cross-compiling or llvm-config-native
+ # will return different results from the cross llvm-config.
+ #
+ # Some flags don't need to be repassed because LLVM already does so (like
+ # CMAKE_BUILD_TYPE), others are irrelevant to the result.
+ flagsForLlvmConfig = [
+ "-DLLVM_INSTALL_CMAKE_DIR=${placeholder "dev"}/lib/cmake/llvm/"
+ "-DLLVM_ENABLE_RTTI=ON"
+ ] ++ optionals enableSharedLibraries [
+ "-DLLVM_LINK_LLVM_DYLIB=ON"
+ ];
+ in flagsForLlvmConfig ++ [
"-DCMAKE_BUILD_TYPE=${if debugVersion then "Debug" else "Release"}"
"-DLLVM_INSTALL_UTILS=ON" # Needed by rustc
- "-DLLVM_BUILD_TESTS=ON"
+ "-DLLVM_BUILD_TESTS=${if doCheck then "ON" else "OFF"}"
"-DLLVM_ENABLE_FFI=ON"
- "-DLLVM_ENABLE_RTTI=ON"
"-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}"
"-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}"
"-DLLVM_ENABLE_DUMP=ON"
- ] ++ optionals enableSharedLibraries [
- "-DLLVM_LINK_LLVM_DYLIB=ON"
+ ] ++ optionals stdenv.hostPlatform.isStatic [
+ # Disables building of shared libs, -fPIC is still injected by cc-wrapper
+ "-DLLVM_ENABLE_PIC=OFF"
+ "-DLLVM_BUILD_STATIC=ON"
+ # libxml2 needs to be disabled because the LLVM build system ignores its .la
+ # file and doesn't link zlib as well.
+ # https://github.com/ClangBuiltLinux/tc-build/issues/150#issuecomment-845418812
+ "-DLLVM_ENABLE_LIBXML2=OFF"
] ++ optionals enableManpages [
"-DLLVM_BUILD_DOCS=ON"
"-DLLVM_ENABLE_SPHINX=ON"
@@ -146,7 +165,21 @@ in stdenv.mkDerivation (rec {
"-DCMAKE_STRIP=${nativeBintools}/bin/${nativeBintools.targetPrefix}strip"
"-DCMAKE_RANLIB=${nativeBintools}/bin/${nativeBintools.targetPrefix}ranlib"
];
- in "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list=${lib.concatStringsSep ";" nativeToolchainFlags}"
+ # We need to repass the custom GNUInstallDirs values, otherwise CMake
+ # will choose them for us, leading to wrong results in llvm-config-native
+ nativeInstallFlags = [
+ "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}"
+ "-DCMAKE_INSTALL_BINDIR=${placeholder "out"}/bin"
+ "-DCMAKE_INSTALL_INCLUDEDIR=${placeholder "dev"}/include"
+ "-DCMAKE_INSTALL_LIBDIR=${placeholder "lib"}/lib"
+ "-DCMAKE_INSTALL_LIBEXECDIR=${placeholder "lib"}/libexec"
+ ];
+ in "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list="
+ + lib.concatStringsSep ";" (lib.concatLists [
+ flagsForLlvmConfig
+ nativeToolchainFlags
+ nativeInstallFlags
+ ])
)
];
@@ -176,7 +209,8 @@ in stdenv.mkDerivation (rec {
cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native
'';
- doCheck = stdenv.isLinux && (!stdenv.isx86_32) && (!stdenv.hostPlatform.isMusl);
+ doCheck = stdenv.isLinux && (!stdenv.isx86_32) && (!stdenv.hostPlatform.isMusl)
+ && (stdenv.hostPlatform == stdenv.buildPlatform);
checkTarget = "check-all";
diff --git a/pkgs/development/compilers/llvm/13/llvm/outputs.patch b/pkgs/development/compilers/llvm/13/llvm/outputs.patch
deleted file mode 100644
index 878460e05b8a..000000000000
--- a/pkgs/development/compilers/llvm/13/llvm/outputs.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp
-index 94d426b..37f7794 100644
---- a/tools/llvm-config/llvm-config.cpp
-+++ b/tools/llvm-config/llvm-config.cpp
-@@ -333,6 +333,11 @@ int main(int argc, char **argv) {
- ActiveIncludeOption = "-I" + ActiveIncludeDir;
- }
-
-+ /// Nix-specific multiple-output handling: override ActiveLibDir
-+ if (!IsInDevelopmentTree) {
-+ ActiveLibDir = std::string("@lib@") + "/lib" + LLVM_LIBDIR_SUFFIX;
-+ }
-+
- /// We only use `shared library` mode in cases where the static library form
- /// of the components provided are not available; note however that this is
- /// skipped if we're run from within the build dir. However, once installed,
diff --git a/pkgs/development/compilers/llvm/5/default.nix b/pkgs/development/compilers/llvm/5/default.nix
index 4593580b72fd..ef9886fb5ea7 100644
--- a/pkgs/development/compilers/llvm/5/default.nix
+++ b/pkgs/development/compilers/llvm/5/default.nix
@@ -65,7 +65,11 @@ let
python3 = pkgs.python3; # don't use python-boot
});
- clang = if stdenv.cc.isGNU then tools.libstdcxxClang else tools.libcxxClang;
+ # pick clang appropriate for package set we are targeting
+ clang =
+ /**/ if stdenv.targetPlatform.useLLVM or false then tools.clangUseLLVM
+ else if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU then tools.libstdcxxClang
+ else tools.libcxxClang;
libstdcxxClang = wrapCCWith rec {
cc = tools.clang-unwrapped;
diff --git a/pkgs/development/compilers/llvm/5/llvm/default.nix b/pkgs/development/compilers/llvm/5/llvm/default.nix
index 339c7a36931e..cf668cd566a6 100644
--- a/pkgs/development/compilers/llvm/5/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/5/llvm/default.nix
@@ -27,7 +27,7 @@ let
imap (i: _: concatStringsSep "." (take i parts)) parts;
in
-stdenv.mkDerivation ({
+stdenv.mkDerivation (rec {
pname = "llvm";
inherit version;
@@ -65,6 +65,13 @@ stdenv.mkDerivation ({
# sha256 = "0injj1hqgrbcbihhwp2nbal88jfykad30r54f2cdcx7gws2fcy8i";
# stripLen = 1;
#})
+
+ # When cross-compiling we configure llvm-config-native with an approximation
+ # of the flags used for the normal LLVM build. To avoid the need for building
+ # a native libLLVM.so (which would fail) we force llvm-config to be linked
+ # statically against the necessary LLVM components always.
+ ../../llvm-config-link-static.patch
+
./gnu-install-dirs.patch
# Fix invalid std::string(nullptr) for GCC 12
@@ -80,11 +87,6 @@ stdenv.mkDerivation ({
substituteInPlace cmake/modules/AddLLVM.cmake \
--replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir)" \
--replace 'set(_install_rpath "@loader_path/../''${CMAKE_INSTALL_LIBDIR}" ''${extra_libdir})' ""
- ''
- # Patch llvm-config to return correct library path based on --link-{shared,static}.
- + ''
- substitute '${./outputs.patch}' ./outputs.patch --subst-var lib
- patch -p1 < ./outputs.patch
'' + ''
# FileSystem permissions tests fail with various special bits
substituteInPlace unittests/Support/CMakeLists.txt \
@@ -100,6 +102,27 @@ stdenv.mkDerivation ({
substituteInPlace unittests/Support/CMakeLists.txt \
--replace "add_subdirectory(DynamicLibrary)" ""
rm unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp
+ '' + ''
+ # Tweak tests to ignore namespace part of type to support
+ # gcc-12: https://gcc.gnu.org/PR103598.
+ # The change below mangles strings like:
+ # CHECK-NEXT: Starting llvm::Function pass manager run.
+ # to:
+ # CHECK-NEXT: Starting {{.*}}Function pass manager run.
+ for f in \
+ test/Other/new-pass-manager.ll \
+ test/Other/new-pm-defaults.ll \
+ test/Other/new-pm-lto-defaults.ll \
+ test/Other/new-pm-thinlto-defaults.ll \
+ test/Other/pass-pipeline-parsing.ll \
+ test/Transforms/Inline/cgscc-incremental-invalidate.ll \
+ test/Transforms/Inline/clear-analyses.ll \
+ ; do
+ echo "PATCH: $f"
+ substituteInPlace $f \
+ --replace 'Starting llvm::' 'Starting {{.*}}' \
+ --replace 'Finished llvm::' 'Finished {{.*}}'
+ done
'';
# hacky fix: created binaries need to be run before installation
@@ -108,20 +131,30 @@ stdenv.mkDerivation ({
ln -sv $PWD/lib $out
'';
- cmakeFlags = with stdenv; [
- "-DLLVM_INSTALL_CMAKE_DIR=${placeholder "dev"}/lib/cmake/llvm/"
+ cmakeFlags = with stdenv; let
+ # These flags influence llvm-config's BuildVariables.inc in addition to the
+ # general build. We need to make sure these are also passed via
+ # CROSS_TOOLCHAIN_FLAGS_NATIVE when cross-compiling or llvm-config-native
+ # will return different results from the cross llvm-config.
+ #
+ # Some flags don't need to be repassed because LLVM already does so (like
+ # CMAKE_BUILD_TYPE), others are irrelevant to the result.
+ flagsForLlvmConfig = [
+ "-DLLVM_INSTALL_CMAKE_DIR=${placeholder "dev"}/lib/cmake/llvm/"
+ "-DLLVM_ENABLE_RTTI=ON"
+ ] ++ optionals enableSharedLibraries [
+ "-DLLVM_LINK_LLVM_DYLIB=ON"
+ ];
+ in flagsForLlvmConfig ++ [
"-DCMAKE_BUILD_TYPE=${if debugVersion then "Debug" else "Release"}"
"-DLLVM_INSTALL_UTILS=ON" # Needed by rustc
- "-DLLVM_BUILD_TESTS=ON"
+ "-DLLVM_BUILD_TESTS=${if doCheck then "ON" else "OFF"}"
"-DLLVM_ENABLE_FFI=ON"
- "-DLLVM_ENABLE_RTTI=ON"
"-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}"
"-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}"
"-DTARGET_TRIPLE=${stdenv.hostPlatform.config}"
]
- ++ lib.optional enableSharedLibraries
- "-DLLVM_LINK_LLVM_DYLIB=ON"
++ lib.optionals enableManpages [
"-DLLVM_BUILD_DOCS=ON"
"-DLLVM_ENABLE_SPHINX=ON"
@@ -148,7 +181,21 @@ stdenv.mkDerivation ({
"-DCMAKE_STRIP=${nativeBintools}/bin/${nativeBintools.targetPrefix}strip"
"-DCMAKE_RANLIB=${nativeBintools}/bin/${nativeBintools.targetPrefix}ranlib"
];
- in "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list=${lib.concatStringsSep ";" nativeToolchainFlags}"
+ # We need to repass the custom GNUInstallDirs values, otherwise CMake
+ # will choose them for us, leading to wrong results in llvm-config-native
+ nativeInstallFlags = [
+ "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}"
+ "-DCMAKE_INSTALL_BINDIR=${placeholder "out"}/bin"
+ "-DCMAKE_INSTALL_INCLUDEDIR=${placeholder "dev"}/include"
+ "-DCMAKE_INSTALL_LIBDIR=${placeholder "lib"}/lib"
+ "-DCMAKE_INSTALL_LIBEXECDIR=${placeholder "lib"}/libexec"
+ ];
+ in "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list="
+ + lib.concatStringsSep ";" (lib.concatLists [
+ flagsForLlvmConfig
+ nativeToolchainFlags
+ nativeInstallFlags
+ ])
)
];
@@ -179,7 +226,8 @@ stdenv.mkDerivation ({
cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native
'';
- doCheck = stdenv.isLinux && (!stdenv.isi686);
+ doCheck = stdenv.isLinux && (!stdenv.isi686)
+ && (stdenv.hostPlatform == stdenv.buildPlatform);
checkTarget = "check-all";
diff --git a/pkgs/development/compilers/llvm/5/llvm/outputs.patch b/pkgs/development/compilers/llvm/5/llvm/outputs.patch
deleted file mode 100644
index 878460e05b8a..000000000000
--- a/pkgs/development/compilers/llvm/5/llvm/outputs.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp
-index 94d426b..37f7794 100644
---- a/tools/llvm-config/llvm-config.cpp
-+++ b/tools/llvm-config/llvm-config.cpp
-@@ -333,6 +333,11 @@ int main(int argc, char **argv) {
- ActiveIncludeOption = "-I" + ActiveIncludeDir;
- }
-
-+ /// Nix-specific multiple-output handling: override ActiveLibDir
-+ if (!IsInDevelopmentTree) {
-+ ActiveLibDir = std::string("@lib@") + "/lib" + LLVM_LIBDIR_SUFFIX;
-+ }
-+
- /// We only use `shared library` mode in cases where the static library form
- /// of the components provided are not available; note however that this is
- /// skipped if we're run from within the build dir. However, once installed,
diff --git a/pkgs/development/compilers/llvm/6/default.nix b/pkgs/development/compilers/llvm/6/default.nix
index 9b1caf410bc2..4acfe6cd85d7 100644
--- a/pkgs/development/compilers/llvm/6/default.nix
+++ b/pkgs/development/compilers/llvm/6/default.nix
@@ -66,7 +66,11 @@ let
python3 = pkgs.python3; # don't use python-boot
});
- clang = if stdenv.cc.isGNU then tools.libstdcxxClang else tools.libcxxClang;
+ # pick clang appropriate for package set we are targeting
+ clang =
+ /**/ if stdenv.targetPlatform.useLLVM or false then tools.clangUseLLVM
+ else if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU then tools.libstdcxxClang
+ else tools.libcxxClang;
libstdcxxClang = wrapCCWith rec {
cc = tools.clang-unwrapped;
diff --git a/pkgs/development/compilers/llvm/6/llvm/default.nix b/pkgs/development/compilers/llvm/6/llvm/default.nix
index 5847d50a6f9a..61f9234274d3 100644
--- a/pkgs/development/compilers/llvm/6/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/6/llvm/default.nix
@@ -27,7 +27,7 @@ let
imap (i: _: concatStringsSep "." (take i parts)) parts;
in
-stdenv.mkDerivation ({
+stdenv.mkDerivation (rec {
pname = "llvm";
inherit version;
@@ -63,6 +63,13 @@ stdenv.mkDerivation ({
includes = [ "test/tools/gold/X86/common.ll" ];
sha256 = "0fxgrxmfnjx17w3lcq19rk68b2xksh1bynz3ina784kma7hp4wdb";
})
+
+ # When cross-compiling we configure llvm-config-native with an approximation
+ # of the flags used for the normal LLVM build. To avoid the need for building
+ # a native libLLVM.so (which would fail) we force llvm-config to be linked
+ # statically against the necessary LLVM components always.
+ ../../llvm-config-link-static.patch
+
./gnu-install-dirs.patch
# Fix invalid std::string(nullptr) for GCC 12
@@ -78,11 +85,6 @@ stdenv.mkDerivation ({
substituteInPlace cmake/modules/AddLLVM.cmake \
--replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir)" \
--replace 'set(_install_rpath "@loader_path/../''${CMAKE_INSTALL_LIBDIR}" ''${extra_libdir})' ""
- ''
- # Patch llvm-config to return correct library path based on --link-{shared,static}.
- + ''
- substitute '${./outputs.patch}' ./outputs.patch --subst-var lib
- patch -p1 < ./outputs.patch
'' + ''
# FileSystem permissions tests fail with various special bits
substituteInPlace unittests/Support/CMakeLists.txt \
@@ -93,6 +95,29 @@ stdenv.mkDerivation ({
substituteInPlace unittests/Support/CMakeLists.txt \
--replace "add_subdirectory(DynamicLibrary)" ""
rm unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp
+ '' + ''
+ # Tweak tests to ignore namespace part of type to support
+ # gcc-12: https://gcc.gnu.org/PR103598.
+ # The change below mangles strings like:
+ # CHECK-NEXT: Starting llvm::Function pass manager run.
+ # to:
+ # CHECK-NEXT: Starting {{.*}}Function pass manager run.
+ for f in \
+ test/Other/new-pass-manager.ll \
+ test/Other/new-pm-defaults.ll \
+ test/Other/new-pm-lto-defaults.ll \
+ test/Other/new-pm-thinlto-defaults.ll \
+ test/Other/pass-pipeline-parsing.ll \
+ test/Transforms/Inline/cgscc-incremental-invalidate.ll \
+ test/Transforms/Inline/clear-analyses.ll \
+ test/Transforms/LoopUnroll/unroll-loop-invalidation.ll \
+ test/Transforms/SROA/dead-inst.ll \
+ ; do
+ echo "PATCH: $f"
+ substituteInPlace $f \
+ --replace 'Starting llvm::' 'Starting {{.*}}' \
+ --replace 'Finished llvm::' 'Finished {{.*}}'
+ done
'';
# hacky fix: created binaries need to be run before installation
@@ -101,19 +126,29 @@ stdenv.mkDerivation ({
ln -sv $PWD/lib $out
'';
- cmakeFlags = with stdenv; [
- "-DLLVM_INSTALL_CMAKE_DIR=${placeholder "dev"}/lib/cmake/llvm/"
+ cmakeFlags = with stdenv; let
+ # These flags influence llvm-config's BuildVariables.inc in addition to the
+ # general build. We need to make sure these are also passed via
+ # CROSS_TOOLCHAIN_FLAGS_NATIVE when cross-compiling or llvm-config-native
+ # will return different results from the cross llvm-config.
+ #
+ # Some flags don't need to be repassed because LLVM already does so (like
+ # CMAKE_BUILD_TYPE), others are irrelevant to the result.
+ flagsForLlvmConfig = [
+ "-DLLVM_INSTALL_CMAKE_DIR=${placeholder "dev"}/lib/cmake/llvm/"
+ "-DLLVM_ENABLE_RTTI=ON"
+ ] ++ optionals enableSharedLibraries [
+ "-DLLVM_LINK_LLVM_DYLIB=ON"
+ ];
+ in flagsForLlvmConfig ++ [
"-DCMAKE_BUILD_TYPE=${if debugVersion then "Debug" else "Release"}"
"-DLLVM_INSTALL_UTILS=ON" # Needed by rustc
- "-DLLVM_BUILD_TESTS=ON"
+ "-DLLVM_BUILD_TESTS=${if doCheck then "ON" else "OFF"}"
"-DLLVM_ENABLE_FFI=ON"
- "-DLLVM_ENABLE_RTTI=ON"
"-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}"
"-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}"
"-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=WebAssembly"
"-DLLVM_ENABLE_DUMP=ON"
- ] ++ optionals enableSharedLibraries [
- "-DLLVM_LINK_LLVM_DYLIB=ON"
] ++ optionals enableManpages [
"-DLLVM_BUILD_DOCS=ON"
"-DLLVM_ENABLE_SPHINX=ON"
@@ -139,7 +174,21 @@ stdenv.mkDerivation ({
"-DCMAKE_STRIP=${nativeBintools}/bin/${nativeBintools.targetPrefix}strip"
"-DCMAKE_RANLIB=${nativeBintools}/bin/${nativeBintools.targetPrefix}ranlib"
];
- in "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list=${lib.concatStringsSep ";" nativeToolchainFlags}"
+ # We need to repass the custom GNUInstallDirs values, otherwise CMake
+ # will choose them for us, leading to wrong results in llvm-config-native
+ nativeInstallFlags = [
+ "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}"
+ "-DCMAKE_INSTALL_BINDIR=${placeholder "out"}/bin"
+ "-DCMAKE_INSTALL_INCLUDEDIR=${placeholder "dev"}/include"
+ "-DCMAKE_INSTALL_LIBDIR=${placeholder "lib"}/lib"
+ "-DCMAKE_INSTALL_LIBEXECDIR=${placeholder "lib"}/libexec"
+ ];
+ in "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list="
+ + lib.concatStringsSep ";" (lib.concatLists [
+ flagsForLlvmConfig
+ nativeToolchainFlags
+ nativeInstallFlags
+ ])
)
];
@@ -170,7 +219,8 @@ stdenv.mkDerivation ({
cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native
'';
- doCheck = stdenv.isLinux && (!stdenv.isi686);
+ doCheck = stdenv.isLinux && (!stdenv.isi686)
+ && (stdenv.hostPlatform == stdenv.buildPlatform);
checkTarget = "check-all";
diff --git a/pkgs/development/compilers/llvm/6/llvm/outputs.patch b/pkgs/development/compilers/llvm/6/llvm/outputs.patch
deleted file mode 100644
index 878460e05b8a..000000000000
--- a/pkgs/development/compilers/llvm/6/llvm/outputs.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp
-index 94d426b..37f7794 100644
---- a/tools/llvm-config/llvm-config.cpp
-+++ b/tools/llvm-config/llvm-config.cpp
-@@ -333,6 +333,11 @@ int main(int argc, char **argv) {
- ActiveIncludeOption = "-I" + ActiveIncludeDir;
- }
-
-+ /// Nix-specific multiple-output handling: override ActiveLibDir
-+ if (!IsInDevelopmentTree) {
-+ ActiveLibDir = std::string("@lib@") + "/lib" + LLVM_LIBDIR_SUFFIX;
-+ }
-+
- /// We only use `shared library` mode in cases where the static library form
- /// of the components provided are not available; note however that this is
- /// skipped if we're run from within the build dir. However, once installed,
diff --git a/pkgs/development/compilers/llvm/7/default.nix b/pkgs/development/compilers/llvm/7/default.nix
index d014c043a80d..f0908f30775d 100644
--- a/pkgs/development/compilers/llvm/7/default.nix
+++ b/pkgs/development/compilers/llvm/7/default.nix
@@ -96,7 +96,11 @@ let
python3 = pkgs.python3; # don't use python-boot
});
- clang = if stdenv.cc.isGNU then tools.libstdcxxClang else tools.libcxxClang;
+ # pick clang appropriate for package set we are targeting
+ clang =
+ /**/ if stdenv.targetPlatform.useLLVM or false then tools.clangUseLLVM
+ else if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU then tools.libstdcxxClang
+ else tools.libcxxClang;
libstdcxxClang = wrapCCWith rec {
cc = tools.clang-unwrapped;
diff --git a/pkgs/development/compilers/llvm/7/llvm/default.nix b/pkgs/development/compilers/llvm/7/llvm/default.nix
index cfa4fdf7ac33..b324e1a0e4d6 100644
--- a/pkgs/development/compilers/llvm/7/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/7/llvm/default.nix
@@ -31,7 +31,7 @@ let
let parts = splitVersion release_version; in
imap (i: _: concatStringsSep "." (take i parts)) parts;
-in stdenv.mkDerivation ({
+in stdenv.mkDerivation (rec {
pname = "llvm";
inherit version;
@@ -67,6 +67,13 @@ in stdenv.mkDerivation ({
url = "https://github.com/llvm-mirror/llvm/commit/cc1f2a595ead516812a6c50398f0f3480ebe031f.patch";
sha256 = "0k6k1p5yisgwx417a67s7sr9930rqh1n0zv5jvply8vjjy4b3kf8";
})
+
+ # When cross-compiling we configure llvm-config-native with an approximation
+ # of the flags used for the normal LLVM build. To avoid the need for building
+ # a native libLLVM.so (which would fail) we force llvm-config to be linked
+ # statically against the necessary LLVM components always.
+ ../../llvm-config-link-static.patch
+
./gnu-install-dirs.patch
# Fix invalid std::string(nullptr) for GCC 12
@@ -82,11 +89,6 @@ in stdenv.mkDerivation ({
substituteInPlace cmake/modules/AddLLVM.cmake \
--replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir)" \
--replace 'set(_install_rpath "@loader_path/../''${CMAKE_INSTALL_LIBDIR}" ''${extra_libdir})' ""
- ''
- # Patch llvm-config to return correct library path based on --link-{shared,static}.
- + ''
- substitute '${./outputs.patch}' ./outputs.patch --subst-var lib
- patch -p1 < ./outputs.patch
'' + ''
# FileSystem permissions tests fail with various special bits
substituteInPlace unittests/Support/CMakeLists.txt \
@@ -110,6 +112,31 @@ in stdenv.mkDerivation ({
rm test/ExecutionEngine/frem.ll
'' + ''
patchShebangs test/BugPoint/compile-custom.ll.py
+ '' + ''
+ # Tweak tests to ignore namespace part of type to support
+ # gcc-12: https://gcc.gnu.org/PR103598.
+ # The change below mangles strings like:
+ # CHECK-NEXT: Starting llvm::Function pass manager run.
+ # to:
+ # CHECK-NEXT: Starting {{.*}}Function pass manager run.
+ for f in \
+ test/Other/new-pass-manager.ll \
+ test/Other/new-pm-defaults.ll \
+ test/Other/new-pm-lto-defaults.ll \
+ test/Other/new-pm-thinlto-defaults.ll \
+ test/Other/pass-pipeline-parsing.ll \
+ test/Transforms/Inline/cgscc-incremental-invalidate.ll \
+ test/Transforms/Inline/clear-analyses.ll \
+ test/Transforms/LoopUnroll/unroll-loop-invalidation.ll \
+ test/Transforms/SCCP/preserve-analysis.ll \
+ test/Transforms/SROA/dead-inst.ll \
+ test/tools/gold/X86/new-pm.ll \
+ ; do
+ echo "PATCH: $f"
+ substituteInPlace $f \
+ --replace 'Starting llvm::' 'Starting {{.*}}' \
+ --replace 'Finished llvm::' 'Finished {{.*}}'
+ done
'';
# hacky fix: created binaries need to be run before installation
@@ -118,19 +145,29 @@ in stdenv.mkDerivation ({
ln -sv $PWD/lib $out
'';
- cmakeFlags = with stdenv; [
- "-DLLVM_INSTALL_CMAKE_DIR=${placeholder "dev"}/lib/cmake/llvm/"
+ cmakeFlags = with stdenv; let
+ # These flags influence llvm-config's BuildVariables.inc in addition to the
+ # general build. We need to make sure these are also passed via
+ # CROSS_TOOLCHAIN_FLAGS_NATIVE when cross-compiling or llvm-config-native
+ # will return different results from the cross llvm-config.
+ #
+ # Some flags don't need to be repassed because LLVM already does so (like
+ # CMAKE_BUILD_TYPE), others are irrelevant to the result.
+ flagsForLlvmConfig = [
+ "-DLLVM_INSTALL_CMAKE_DIR=${placeholder "dev"}/lib/cmake/llvm/"
+ "-DLLVM_ENABLE_RTTI=ON"
+ ] ++ optionals enableSharedLibraries [
+ "-DLLVM_LINK_LLVM_DYLIB=ON"
+ ];
+ in flagsForLlvmConfig ++ [
"-DCMAKE_BUILD_TYPE=${if debugVersion then "Debug" else "Release"}"
"-DLLVM_INSTALL_UTILS=ON" # Needed by rustc
- "-DLLVM_BUILD_TESTS=ON"
+ "-DLLVM_BUILD_TESTS=${if doCheck then "ON" else "OFF"}"
"-DLLVM_ENABLE_FFI=ON"
- "-DLLVM_ENABLE_RTTI=ON"
"-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}"
"-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}"
"-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=WebAssembly"
"-DLLVM_ENABLE_DUMP=ON"
- ] ++ optionals enableSharedLibraries [
- "-DLLVM_LINK_LLVM_DYLIB=ON"
] ++ optionals enableManpages [
"-DLLVM_BUILD_DOCS=ON"
"-DLLVM_ENABLE_SPHINX=ON"
@@ -156,7 +193,21 @@ in stdenv.mkDerivation ({
"-DCMAKE_STRIP=${nativeBintools}/bin/${nativeBintools.targetPrefix}strip"
"-DCMAKE_RANLIB=${nativeBintools}/bin/${nativeBintools.targetPrefix}ranlib"
];
- in "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list=${lib.concatStringsSep ";" nativeToolchainFlags}"
+ # We need to repass the custom GNUInstallDirs values, otherwise CMake
+ # will choose them for us, leading to wrong results in llvm-config-native
+ nativeInstallFlags = [
+ "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}"
+ "-DCMAKE_INSTALL_BINDIR=${placeholder "out"}/bin"
+ "-DCMAKE_INSTALL_INCLUDEDIR=${placeholder "dev"}/include"
+ "-DCMAKE_INSTALL_LIBDIR=${placeholder "lib"}/lib"
+ "-DCMAKE_INSTALL_LIBEXECDIR=${placeholder "lib"}/libexec"
+ ];
+ in "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list="
+ + lib.concatStringsSep ";" (lib.concatLists [
+ flagsForLlvmConfig
+ nativeToolchainFlags
+ nativeInstallFlags
+ ])
)
];
@@ -187,7 +238,8 @@ in stdenv.mkDerivation ({
cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native
'';
- doCheck = stdenv.isLinux && (!stdenv.isx86_32);
+ doCheck = stdenv.isLinux && (!stdenv.isx86_32)
+ && (stdenv.hostPlatform == stdenv.buildPlatform);
checkTarget = "check-all";
diff --git a/pkgs/development/compilers/llvm/7/llvm/outputs.patch b/pkgs/development/compilers/llvm/7/llvm/outputs.patch
deleted file mode 100644
index 878460e05b8a..000000000000
--- a/pkgs/development/compilers/llvm/7/llvm/outputs.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp
-index 94d426b..37f7794 100644
---- a/tools/llvm-config/llvm-config.cpp
-+++ b/tools/llvm-config/llvm-config.cpp
-@@ -333,6 +333,11 @@ int main(int argc, char **argv) {
- ActiveIncludeOption = "-I" + ActiveIncludeDir;
- }
-
-+ /// Nix-specific multiple-output handling: override ActiveLibDir
-+ if (!IsInDevelopmentTree) {
-+ ActiveLibDir = std::string("@lib@") + "/lib" + LLVM_LIBDIR_SUFFIX;
-+ }
-+
- /// We only use `shared library` mode in cases where the static library form
- /// of the components provided are not available; note however that this is
- /// skipped if we're run from within the build dir. However, once installed,
diff --git a/pkgs/development/compilers/llvm/8/clang/default.nix b/pkgs/development/compilers/llvm/8/clang/default.nix
index 5cb7720d026f..1d6a5b7d74df 100644
--- a/pkgs/development/compilers/llvm/8/clang/default.nix
+++ b/pkgs/development/compilers/llvm/8/clang/default.nix
@@ -30,7 +30,6 @@ let
"-DCMAKE_CXX_FLAGS=-std=c++11"
"-DCLANGD_BUILD_XPC=OFF"
"-DLLVM_ENABLE_RTTI=ON"
- "-DLLVM_CONFIG_PATH=${libllvm.dev}/bin/llvm-config${lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) "-native"}"
] ++ lib.optionals enableManpages [
"-DCLANG_INCLUDE_DOCS=ON"
"-DLLVM_ENABLE_SPHINX=ON"
diff --git a/pkgs/development/compilers/llvm/8/default.nix b/pkgs/development/compilers/llvm/8/default.nix
index 7252b75a3397..43050a72b922 100644
--- a/pkgs/development/compilers/llvm/8/default.nix
+++ b/pkgs/development/compilers/llvm/8/default.nix
@@ -97,7 +97,11 @@ let
python3 = pkgs.python3; # don't use python-boot
});
- clang = if stdenv.cc.isGNU then tools.libstdcxxClang else tools.libcxxClang;
+ # pick clang appropriate for package set we are targeting
+ clang =
+ /**/ if stdenv.targetPlatform.useLLVM or false then tools.clangUseLLVM
+ else if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU then tools.libstdcxxClang
+ else tools.libcxxClang;
libstdcxxClang = wrapCCWith rec {
cc = tools.clang-unwrapped;
diff --git a/pkgs/development/compilers/llvm/8/llvm/default.nix b/pkgs/development/compilers/llvm/8/llvm/default.nix
index 902a379b7aad..efd1707eb337 100644
--- a/pkgs/development/compilers/llvm/8/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/8/llvm/default.nix
@@ -30,7 +30,7 @@ let
shortVersion = with lib;
concatStringsSep "." (take 1 (splitVersion release_version));
-in stdenv.mkDerivation ({
+in stdenv.mkDerivation (rec {
pname = "llvm";
inherit version;
@@ -57,6 +57,12 @@ in stdenv.mkDerivation ({
propagatedBuildInputs = [ ncurses zlib ];
patches = [
+ # When cross-compiling we configure llvm-config-native with an approximation
+ # of the flags used for the normal LLVM build. To avoid the need for building
+ # a native libLLVM.so (which would fail) we force llvm-config to be linked
+ # statically against the necessary LLVM components always.
+ ../../llvm-config-link-static.patch
+
# Fix missing includes for GCC 10
(fetchpatch {
url = "https://bugs.gentoo.org/attachment.cgi?id=612792";
@@ -85,11 +91,6 @@ in stdenv.mkDerivation ({
substituteInPlace cmake/modules/AddLLVM.cmake \
--replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir)" \
--replace 'set(_install_rpath "@loader_path/../''${CMAKE_INSTALL_LIBDIR}" ''${extra_libdir})' ""
- ''
- # Patch llvm-config to return correct library path based on --link-{shared,static}.
- + ''
- substitute '${./outputs.patch}' ./outputs.patch --subst-var lib
- patch -p1 < ./outputs.patch
'' + ''
# FileSystem permissions tests fail with various special bits
substituteInPlace unittests/Support/CMakeLists.txt \
@@ -104,6 +105,32 @@ in stdenv.mkDerivation ({
rm test/CodeGen/AArch64/wineh4.mir
'' + ''
patchShebangs test/BugPoint/compile-custom.ll.py
+ '' + ''
+ # Tweak tests to ignore namespace part of type to support
+ # gcc-12: https://gcc.gnu.org/PR103598.
+ # The change below mangles strings like:
+ # CHECK-NEXT: Starting llvm::Function pass manager run.
+ # to:
+ # CHECK-NEXT: Starting {{.*}}Function pass manager run.
+ for f in \
+ test/Other/new-pass-manager.ll \
+ test/Other/new-pm-defaults.ll \
+ test/Other/new-pm-lto-defaults.ll \
+ test/Other/new-pm-thinlto-defaults.ll \
+ test/Other/pass-pipeline-parsing.ll \
+ test/Transforms/Inline/cgscc-incremental-invalidate.ll \
+ test/Transforms/Inline/clear-analyses.ll \
+ test/Transforms/LoopUnroll/unroll-loop-invalidation.ll \
+ test/Transforms/SCCP/ipsccp-preserve-analysis.ll \
+ test/Transforms/SCCP/preserve-analysis.ll \
+ test/Transforms/SROA/dead-inst.ll \
+ test/tools/gold/X86/new-pm.ll \
+ ; do
+ echo "PATCH: $f"
+ substituteInPlace $f \
+ --replace 'Starting llvm::' 'Starting {{.*}}' \
+ --replace 'Finished llvm::' 'Finished {{.*}}'
+ done
'';
# hacky fix: created binaries need to be run before installation
@@ -112,18 +139,28 @@ in stdenv.mkDerivation ({
ln -sv $PWD/lib $out
'';
- cmakeFlags = with stdenv; [
- "-DLLVM_INSTALL_CMAKE_DIR=${placeholder "dev"}/lib/cmake/llvm/"
+ cmakeFlags = with stdenv; let
+ # These flags influence llvm-config's BuildVariables.inc in addition to the
+ # general build. We need to make sure these are also passed via
+ # CROSS_TOOLCHAIN_FLAGS_NATIVE when cross-compiling or llvm-config-native
+ # will return different results from the cross llvm-config.
+ #
+ # Some flags don't need to be repassed because LLVM already does so (like
+ # CMAKE_BUILD_TYPE), others are irrelevant to the result.
+ flagsForLlvmConfig = [
+ "-DLLVM_INSTALL_CMAKE_DIR=${placeholder "dev"}/lib/cmake/llvm/"
+ "-DLLVM_ENABLE_RTTI=ON"
+ ] ++ optionals enableSharedLibraries [
+ "-DLLVM_LINK_LLVM_DYLIB=ON"
+ ];
+ in flagsForLlvmConfig ++ [
"-DCMAKE_BUILD_TYPE=${if debugVersion then "Debug" else "Release"}"
"-DLLVM_INSTALL_UTILS=ON" # Needed by rustc
- "-DLLVM_BUILD_TESTS=ON"
+ "-DLLVM_BUILD_TESTS=${if doCheck then "ON" else "OFF"}"
"-DLLVM_ENABLE_FFI=ON"
- "-DLLVM_ENABLE_RTTI=ON"
"-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}"
"-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}"
"-DLLVM_ENABLE_DUMP=ON"
- ] ++ optionals enableSharedLibraries [
- "-DLLVM_LINK_LLVM_DYLIB=ON"
] ++ optionals enableManpages [
"-DLLVM_BUILD_DOCS=ON"
"-DLLVM_ENABLE_SPHINX=ON"
@@ -149,7 +186,21 @@ in stdenv.mkDerivation ({
"-DCMAKE_STRIP=${nativeBintools}/bin/${nativeBintools.targetPrefix}strip"
"-DCMAKE_RANLIB=${nativeBintools}/bin/${nativeBintools.targetPrefix}ranlib"
];
- in "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list=${lib.concatStringsSep ";" nativeToolchainFlags}"
+ # We need to repass the custom GNUInstallDirs values, otherwise CMake
+ # will choose them for us, leading to wrong results in llvm-config-native
+ nativeInstallFlags = [
+ "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}"
+ "-DCMAKE_INSTALL_BINDIR=${placeholder "out"}/bin"
+ "-DCMAKE_INSTALL_INCLUDEDIR=${placeholder "dev"}/include"
+ "-DCMAKE_INSTALL_LIBDIR=${placeholder "lib"}/lib"
+ "-DCMAKE_INSTALL_LIBEXECDIR=${placeholder "lib"}/libexec"
+ ];
+ in "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list="
+ + lib.concatStringsSep ";" (lib.concatLists [
+ flagsForLlvmConfig
+ nativeToolchainFlags
+ nativeInstallFlags
+ ])
)
];
@@ -179,7 +230,8 @@ in stdenv.mkDerivation ({
cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native
'';
- doCheck = stdenv.isLinux && (!stdenv.isx86_32);
+ doCheck = stdenv.isLinux && (!stdenv.isx86_32)
+ && (stdenv.hostPlatform == stdenv.buildPlatform);
checkTarget = "check-all";
diff --git a/pkgs/development/compilers/llvm/8/llvm/outputs.patch b/pkgs/development/compilers/llvm/8/llvm/outputs.patch
deleted file mode 100644
index 878460e05b8a..000000000000
--- a/pkgs/development/compilers/llvm/8/llvm/outputs.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp
-index 94d426b..37f7794 100644
---- a/tools/llvm-config/llvm-config.cpp
-+++ b/tools/llvm-config/llvm-config.cpp
-@@ -333,6 +333,11 @@ int main(int argc, char **argv) {
- ActiveIncludeOption = "-I" + ActiveIncludeDir;
- }
-
-+ /// Nix-specific multiple-output handling: override ActiveLibDir
-+ if (!IsInDevelopmentTree) {
-+ ActiveLibDir = std::string("@lib@") + "/lib" + LLVM_LIBDIR_SUFFIX;
-+ }
-+
- /// We only use `shared library` mode in cases where the static library form
- /// of the components provided are not available; note however that this is
- /// skipped if we're run from within the build dir. However, once installed,
diff --git a/pkgs/development/compilers/llvm/9/clang/default.nix b/pkgs/development/compilers/llvm/9/clang/default.nix
index c98b4a830c42..ee124b43bfce 100644
--- a/pkgs/development/compilers/llvm/9/clang/default.nix
+++ b/pkgs/development/compilers/llvm/9/clang/default.nix
@@ -30,7 +30,6 @@ let
"-DCMAKE_CXX_FLAGS=-std=c++11"
"-DCLANGD_BUILD_XPC=OFF"
"-DLLVM_ENABLE_RTTI=ON"
- "-DLLVM_CONFIG_PATH=${libllvm.dev}/bin/llvm-config${lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) "-native"}"
] ++ lib.optionals enableManpages [
"-DCLANG_INCLUDE_DOCS=ON"
"-DLLVM_ENABLE_SPHINX=ON"
diff --git a/pkgs/development/compilers/llvm/9/default.nix b/pkgs/development/compilers/llvm/9/default.nix
index 9126a614b106..7efe8486a387 100644
--- a/pkgs/development/compilers/llvm/9/default.nix
+++ b/pkgs/development/compilers/llvm/9/default.nix
@@ -97,7 +97,11 @@ let
python3 = pkgs.python3; # don't use python-boot
});
- clang = if stdenv.cc.isGNU then tools.libstdcxxClang else tools.libcxxClang;
+ # pick clang appropriate for package set we are targeting
+ clang =
+ /**/ if stdenv.targetPlatform.useLLVM or false then tools.clangUseLLVM
+ else if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU then tools.libstdcxxClang
+ else tools.libcxxClang;
libstdcxxClang = wrapCCWith rec {
cc = tools.clang-unwrapped;
diff --git a/pkgs/development/compilers/llvm/9/llvm/default.nix b/pkgs/development/compilers/llvm/9/llvm/default.nix
index ed21ac74a1a1..1dd1455ed6d6 100644
--- a/pkgs/development/compilers/llvm/9/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/9/llvm/default.nix
@@ -57,6 +57,12 @@ in stdenv.mkDerivation (rec {
propagatedBuildInputs = [ ncurses zlib ];
patches = [
+ # When cross-compiling we configure llvm-config-native with an approximation
+ # of the flags used for the normal LLVM build. To avoid the need for building
+ # a native libLLVM.so (which would fail) we force llvm-config to be linked
+ # statically against the necessary LLVM components always.
+ ../../llvm-config-link-static.patch
+
./gnu-install-dirs.patch
# Force a test to evaluate the saved benchmark for a CPU for which LLVM has
# an execution model. See NixOS/nixpkgs#119673.
@@ -83,11 +89,6 @@ in stdenv.mkDerivation (rec {
substituteInPlace cmake/modules/AddLLVM.cmake \
--replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir)" \
--replace 'set(_install_rpath "@loader_path/../''${CMAKE_INSTALL_LIBDIR}" ''${extra_libdir})' ""
- ''
- # Patch llvm-config to return correct library path based on --link-{shared,static}.
- + ''
- substitute '${./outputs.patch}' ./outputs.patch --subst-var lib
- patch -p1 < ./outputs.patch
'' + ''
# FileSystem permissions tests fail with various special bits
substituteInPlace unittests/Support/CMakeLists.txt \
@@ -119,6 +120,32 @@ in stdenv.mkDerivation (rec {
# Fix x86 gold test on non-x86 platforms
# (similar fix made to others in this directory previously, FWIW)
patch -p1 -i ${./fix-test-on-non-x86-like-others.patch}
+ '' + ''
+ # Tweak tests to ignore namespace part of type to support
+ # gcc-12: https://gcc.gnu.org/PR103598.
+ # The change below mangles strings like:
+ # CHECK-NEXT: Starting llvm::Function pass manager run.
+ # to:
+ # CHECK-NEXT: Starting {{.*}}Function pass manager run.
+ for f in \
+ test/Other/new-pass-manager.ll \
+ test/Other/new-pm-defaults.ll \
+ test/Other/new-pm-lto-defaults.ll \
+ test/Other/new-pm-thinlto-defaults.ll \
+ test/Other/pass-pipeline-parsing.ll \
+ test/Transforms/Inline/cgscc-incremental-invalidate.ll \
+ test/Transforms/Inline/clear-analyses.ll \
+ test/Transforms/LoopUnroll/unroll-loop-invalidation.ll \
+ test/Transforms/SCCP/ipsccp-preserve-analysis.ll \
+ test/Transforms/SCCP/preserve-analysis.ll \
+ test/Transforms/SROA/dead-inst.ll \
+ test/tools/gold/X86/new-pm.ll \
+ ; do
+ echo "PATCH: $f"
+ substituteInPlace $f \
+ --replace 'Starting llvm::' 'Starting {{.*}}' \
+ --replace 'Finished llvm::' 'Finished {{.*}}'
+ done
'';
# hacky fix: created binaries need to be run before installation
@@ -127,18 +154,28 @@ in stdenv.mkDerivation (rec {
ln -sv $PWD/lib $out
'';
- cmakeFlags = with stdenv; [
- "-DLLVM_INSTALL_CMAKE_DIR=${placeholder "dev"}/lib/cmake/llvm/"
+ cmakeFlags = with stdenv; let
+ # These flags influence llvm-config's BuildVariables.inc in addition to the
+ # general build. We need to make sure these are also passed via
+ # CROSS_TOOLCHAIN_FLAGS_NATIVE when cross-compiling or llvm-config-native
+ # will return different results from the cross llvm-config.
+ #
+ # Some flags don't need to be repassed because LLVM already does so (like
+ # CMAKE_BUILD_TYPE), others are irrelevant to the result.
+ flagsForLlvmConfig = [
+ "-DLLVM_INSTALL_CMAKE_DIR=${placeholder "dev"}/lib/cmake/llvm/"
+ "-DLLVM_ENABLE_RTTI=ON"
+ ] ++ optionals enableSharedLibraries [
+ "-DLLVM_LINK_LLVM_DYLIB=ON"
+ ];
+ in flagsForLlvmConfig ++ [
"-DCMAKE_BUILD_TYPE=${if debugVersion then "Debug" else "Release"}"
"-DLLVM_INSTALL_UTILS=ON" # Needed by rustc
- "-DLLVM_BUILD_TESTS=ON"
+ "-DLLVM_BUILD_TESTS=${if doCheck then "ON" else "OFF"}"
"-DLLVM_ENABLE_FFI=ON"
- "-DLLVM_ENABLE_RTTI=ON"
"-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}"
"-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}"
"-DLLVM_ENABLE_DUMP=ON"
- ] ++ optionals enableSharedLibraries [
- "-DLLVM_LINK_LLVM_DYLIB=ON"
] ++ optionals enableManpages [
"-DLLVM_BUILD_DOCS=ON"
"-DLLVM_ENABLE_SPHINX=ON"
@@ -164,7 +201,21 @@ in stdenv.mkDerivation (rec {
"-DCMAKE_STRIP=${nativeBintools}/bin/${nativeBintools.targetPrefix}strip"
"-DCMAKE_RANLIB=${nativeBintools}/bin/${nativeBintools.targetPrefix}ranlib"
];
- in "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list=${lib.concatStringsSep ";" nativeToolchainFlags}"
+ # We need to repass the custom GNUInstallDirs values, otherwise CMake
+ # will choose them for us, leading to wrong results in llvm-config-native
+ nativeInstallFlags = [
+ "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}"
+ "-DCMAKE_INSTALL_BINDIR=${placeholder "out"}/bin"
+ "-DCMAKE_INSTALL_INCLUDEDIR=${placeholder "dev"}/include"
+ "-DCMAKE_INSTALL_LIBDIR=${placeholder "lib"}/lib"
+ "-DCMAKE_INSTALL_LIBEXECDIR=${placeholder "lib"}/libexec"
+ ];
+ in "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list="
+ + lib.concatStringsSep ";" (lib.concatLists [
+ flagsForLlvmConfig
+ nativeToolchainFlags
+ nativeInstallFlags
+ ])
)
];
@@ -194,7 +245,8 @@ in stdenv.mkDerivation (rec {
cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native
'';
- doCheck = stdenv.isLinux && (!stdenv.isx86_32) && (!stdenv.hostPlatform.isRiscV);
+ doCheck = stdenv.isLinux && (!stdenv.isx86_32) && (!stdenv.hostPlatform.isRiscV)
+ && (stdenv.hostPlatform == stdenv.buildPlatform);
checkTarget = "check-all";
diff --git a/pkgs/development/compilers/llvm/9/llvm/outputs.patch b/pkgs/development/compilers/llvm/9/llvm/outputs.patch
deleted file mode 100644
index 878460e05b8a..000000000000
--- a/pkgs/development/compilers/llvm/9/llvm/outputs.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp
-index 94d426b..37f7794 100644
---- a/tools/llvm-config/llvm-config.cpp
-+++ b/tools/llvm-config/llvm-config.cpp
-@@ -333,6 +333,11 @@ int main(int argc, char **argv) {
- ActiveIncludeOption = "-I" + ActiveIncludeDir;
- }
-
-+ /// Nix-specific multiple-output handling: override ActiveLibDir
-+ if (!IsInDevelopmentTree) {
-+ ActiveLibDir = std::string("@lib@") + "/lib" + LLVM_LIBDIR_SUFFIX;
-+ }
-+
- /// We only use `shared library` mode in cases where the static library form
- /// of the components provided are not available; note however that this is
- /// skipped if we're run from within the build dir. However, once installed,
diff --git a/pkgs/development/compilers/llvm/git/clang/default.nix b/pkgs/development/compilers/llvm/git/clang/default.nix
index de2eff9f3e37..3873bda2b6d5 100644
--- a/pkgs/development/compilers/llvm/git/clang/default.nix
+++ b/pkgs/development/compilers/llvm/git/clang/default.nix
@@ -22,7 +22,6 @@ let
"-DCMAKE_CXX_FLAGS=-std=c++14"
"-DCLANGD_BUILD_XPC=OFF"
"-DLLVM_ENABLE_RTTI=ON"
- "-DLLVM_CONFIG_PATH=${libllvm.dev}/bin/llvm-config${lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) "-native"}"
] ++ lib.optionals enableManpages [
"-DCLANG_INCLUDE_DOCS=ON"
"-DLLVM_ENABLE_SPHINX=ON"
diff --git a/pkgs/development/compilers/llvm/git/default.nix b/pkgs/development/compilers/llvm/git/default.nix
index 666e9be3cd89..890270c851db 100644
--- a/pkgs/development/compilers/llvm/git/default.nix
+++ b/pkgs/development/compilers/llvm/git/default.nix
@@ -93,7 +93,11 @@ let
# python3 = pkgs.python3; # don't use python-boot
# });
- clang = if stdenv.cc.isGNU then tools.libstdcxxClang else tools.libcxxClang;
+ # pick clang appropriate for package set we are targeting
+ clang =
+ /**/ if stdenv.targetPlatform.useLLVM or false then tools.clangUseLLVM
+ else if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU then tools.libstdcxxClang
+ else tools.libcxxClang;
libstdcxxClang = wrapCCWith rec {
cc = tools.clang-unwrapped;
diff --git a/pkgs/development/compilers/llvm/git/llvm/default.nix b/pkgs/development/compilers/llvm/git/llvm/default.nix
index 4c895f81dbba..fc7030810c5b 100644
--- a/pkgs/development/compilers/llvm/git/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/git/llvm/default.nix
@@ -51,6 +51,12 @@ in stdenv.mkDerivation (rec {
checkInputs = [ which ];
patches = [
+ # When cross-compiling we configure llvm-config-native with an approximation
+ # of the flags used for the normal LLVM build. To avoid the need for building
+ # a native libLLVM.so (which would fail) we force llvm-config to be linked
+ # statically against the necessary LLVM components always.
+ ../../llvm-config-link-static.patch
+
./gnu-install-dirs.patch
] ++ lib.optional enablePolly ./gnu-install-dirs-polly.patch;
@@ -58,11 +64,6 @@ in stdenv.mkDerivation (rec {
substituteInPlace cmake/modules/AddLLVM.cmake \
--replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir)" \
--replace 'set(_install_rpath "@loader_path/../''${CMAKE_INSTALL_LIBDIR}''${LLVM_LIBDIR_SUFFIX}" ''${extra_libdir})' ""
- ''
- # Patch llvm-config to return correct library path based on --link-{shared,static}.
- + ''
- substitute '${./outputs.patch}' ./outputs.patch --subst-var lib
- patch -p1 < ./outputs.patch
'' + ''
# FileSystem permissions tests fail with various special bits
substituteInPlace unittests/Support/CMakeLists.txt \
@@ -101,18 +102,36 @@ in stdenv.mkDerivation (rec {
# E.g. mesa.drivers use the build-id as a cache key (see #93946):
LDFLAGS = optionalString (enableSharedLibraries && !stdenv.isDarwin) "-Wl,--build-id=sha1";
- cmakeFlags = with stdenv; [
- "-DLLVM_INSTALL_CMAKE_DIR=${placeholder "dev"}/lib/cmake/llvm/"
+ cmakeFlags = with stdenv; let
+ # These flags influence llvm-config's BuildVariables.inc in addition to the
+ # general build. We need to make sure these are also passed via
+ # CROSS_TOOLCHAIN_FLAGS_NATIVE when cross-compiling or llvm-config-native
+ # will return different results from the cross llvm-config.
+ #
+ # Some flags don't need to be repassed because LLVM already does so (like
+ # CMAKE_BUILD_TYPE), others are irrelevant to the result.
+ flagsForLlvmConfig = [
+ "-DLLVM_INSTALL_CMAKE_DIR=${placeholder "dev"}/lib/cmake/llvm/"
+ "-DLLVM_ENABLE_RTTI=ON"
+ ] ++ optionals enableSharedLibraries [
+ "-DLLVM_LINK_LLVM_DYLIB=ON"
+ ];
+ in flagsForLlvmConfig ++ [
"-DCMAKE_BUILD_TYPE=${if debugVersion then "Debug" else "Release"}"
"-DLLVM_INSTALL_UTILS=ON" # Needed by rustc
- "-DLLVM_BUILD_TESTS=ON"
+ "-DLLVM_BUILD_TESTS=${if doCheck then "ON" else "OFF"}"
"-DLLVM_ENABLE_FFI=ON"
- "-DLLVM_ENABLE_RTTI=ON"
"-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}"
"-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}"
"-DLLVM_ENABLE_DUMP=ON"
- ] ++ optionals enableSharedLibraries [
- "-DLLVM_LINK_LLVM_DYLIB=ON"
+ ] ++ optionals stdenv.hostPlatform.isStatic [
+ # Disables building of shared libs, -fPIC is still injected by cc-wrapper
+ "-DLLVM_ENABLE_PIC=OFF"
+ "-DLLVM_BUILD_STATIC=ON"
+ # libxml2 needs to be disabled because the LLVM build system ignores its .la
+ # file and doesn't link zlib as well.
+ # https://github.com/ClangBuiltLinux/tc-build/issues/150#issuecomment-845418812
+ "-DLLVM_ENABLE_LIBXML2=OFF"
] ++ optionals enableManpages [
"-DLLVM_BUILD_DOCS=ON"
"-DLLVM_ENABLE_SPHINX=ON"
@@ -138,7 +157,21 @@ in stdenv.mkDerivation (rec {
"-DCMAKE_STRIP=${nativeBintools}/bin/${nativeBintools.targetPrefix}strip"
"-DCMAKE_RANLIB=${nativeBintools}/bin/${nativeBintools.targetPrefix}ranlib"
];
- in "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list=${lib.concatStringsSep ";" nativeToolchainFlags}"
+ # We need to repass the custom GNUInstallDirs values, otherwise CMake
+ # will choose them for us, leading to wrong results in llvm-config-native
+ nativeInstallFlags = [
+ "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}"
+ "-DCMAKE_INSTALL_BINDIR=${placeholder "out"}/bin"
+ "-DCMAKE_INSTALL_INCLUDEDIR=${placeholder "dev"}/include"
+ "-DCMAKE_INSTALL_LIBDIR=${placeholder "lib"}/lib"
+ "-DCMAKE_INSTALL_LIBEXECDIR=${placeholder "lib"}/libexec"
+ ];
+ in "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list="
+ + lib.concatStringsSep ";" (lib.concatLists [
+ flagsForLlvmConfig
+ nativeToolchainFlags
+ nativeInstallFlags
+ ])
)
];
@@ -168,7 +201,8 @@ in stdenv.mkDerivation (rec {
cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native
'';
- doCheck = stdenv.isLinux && (!stdenv.isx86_32) && (!stdenv.hostPlatform.isMusl);
+ doCheck = stdenv.isLinux && (!stdenv.isx86_32) && (!stdenv.hostPlatform.isMusl)
+ && (stdenv.hostPlatform == stdenv.buildPlatform);
checkTarget = "check-all";
diff --git a/pkgs/development/compilers/llvm/git/llvm/outputs.patch b/pkgs/development/compilers/llvm/git/llvm/outputs.patch
deleted file mode 100644
index 878460e05b8a..000000000000
--- a/pkgs/development/compilers/llvm/git/llvm/outputs.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp
-index 94d426b..37f7794 100644
---- a/tools/llvm-config/llvm-config.cpp
-+++ b/tools/llvm-config/llvm-config.cpp
-@@ -333,6 +333,11 @@ int main(int argc, char **argv) {
- ActiveIncludeOption = "-I" + ActiveIncludeDir;
- }
-
-+ /// Nix-specific multiple-output handling: override ActiveLibDir
-+ if (!IsInDevelopmentTree) {
-+ ActiveLibDir = std::string("@lib@") + "/lib" + LLVM_LIBDIR_SUFFIX;
-+ }
-+
- /// We only use `shared library` mode in cases where the static library form
- /// of the components provided are not available; note however that this is
- /// skipped if we're run from within the build dir. However, once installed,
diff --git a/pkgs/development/compilers/llvm/llvm-config-link-static.patch b/pkgs/development/compilers/llvm/llvm-config-link-static.patch
new file mode 100644
index 000000000000..3881cc5206e2
--- /dev/null
+++ b/pkgs/development/compilers/llvm/llvm-config-link-static.patch
@@ -0,0 +1,12 @@
+diff --git llvm/tools/llvm-config/CMakeLists.txt llvm/tools/llvm-config/CMakeLists.txt
+index 16ba54c0cf2f..20b017195e84 100644
+--- llvm/tools/llvm-config/CMakeLists.txt
++++ llvm/tools/llvm-config/CMakeLists.txt
+@@ -6,6 +6,7 @@ set(BUILDVARIABLES_OBJPATH ${CMAKE_CURRENT_BINARY_DIR}/BuildVariables.inc)
+ # Add the llvm-config tool.
+ add_llvm_tool(llvm-config
+ llvm-config.cpp
++ DISABLE_LLVM_LINK_LLVM_DYLIB
+ )
+
+ # Compute the substitution values for various items.
diff --git a/pkgs/development/compilers/orc/default.nix b/pkgs/development/compilers/orc/default.nix
index 2d56d461627a..fa4bf686a2ac 100644
--- a/pkgs/development/compilers/orc/default.nix
+++ b/pkgs/development/compilers/orc/default.nix
@@ -15,6 +15,9 @@ in stdenv.mkDerivation rec {
postPatch = lib.optionalString stdenv.isAarch32 ''
# https://gitlab.freedesktop.org/gstreamer/orc/-/issues/20
sed -i '/exec_opcodes_sys/d' testsuite/meson.build
+ '' + lib.optionalString (stdenv.isDarwin && stdenv.isx86_64) ''
+ # This benchmark times out on Hydra.nixos.org
+ sed -i '/memcpy_speed/d' testsuite/meson.build
'';
outputs = [ "out" "dev" ]
diff --git a/pkgs/development/compilers/rust/rustc.nix b/pkgs/development/compilers/rust/rustc.nix
index 187127cfbfb3..1087ac059082 100644
--- a/pkgs/development/compilers/rust/rustc.nix
+++ b/pkgs/development/compilers/rust/rustc.nix
@@ -100,6 +100,9 @@ in stdenv.mkDerivation rec {
"${setHost}.musl-root=${pkgsBuildHost.targetPackages.stdenv.cc.libc}"
] ++ optionals stdenv.targetPlatform.isMusl [
"${setTarget}.musl-root=${pkgsBuildTarget.targetPackages.stdenv.cc.libc}"
+ ] ++ optionals (stdenv.isDarwin && stdenv.isx86_64) [
+ # https://github.com/rust-lang/rust/issues/92173
+ "--set rust.jemalloc"
];
# The bootstrap.py will generated a Makefile that then executes the build.
diff --git a/pkgs/development/compilers/vala/default.nix b/pkgs/development/compilers/vala/default.nix
index 9a1365d0c964..17ba5b14214c 100644
--- a/pkgs/development/compilers/vala/default.nix
+++ b/pkgs/development/compilers/vala/default.nix
@@ -97,8 +97,8 @@ in rec {
};
vala_0_54 = generic {
- version = "0.54.3";
- sha256 = "7R1f5MvAzShF0N5PH/77Fa+waJLSMMfMppV4FnLo+2A=";
+ version = "0.54.6";
+ sha256 = "SdYNlqP99sQoc5dEK8bW2Vv0CqffZ47kkSjEsRum5Gk=";
};
vala = vala_0_54;
diff --git a/pkgs/development/interpreters/python/default.nix b/pkgs/development/interpreters/python/default.nix
index b6d60ba8a807..5cdba9d3204b 100644
--- a/pkgs/development/interpreters/python/default.nix
+++ b/pkgs/development/interpreters/python/default.nix
@@ -219,6 +219,7 @@ in {
sqlite = null;
configd = null;
tzdata = null;
+ libffi = pkgs.libffiBoot; # without test suite
stripConfig = true;
stripIdlelib = true;
stripTests = true;
diff --git a/pkgs/development/interpreters/spidermonkey/78.nix b/pkgs/development/interpreters/spidermonkey/78.nix
index b4ed171eb78c..4f525c8f0a5b 100644
--- a/pkgs/development/interpreters/spidermonkey/78.nix
+++ b/pkgs/development/interpreters/spidermonkey/78.nix
@@ -35,6 +35,15 @@ stdenv.mkDerivation rec {
url = "https://salsa.debian.org/mozilla-team/firefox/commit/fd6847c9416f9eebde636e21d794d25d1be8791d.patch";
sha256 = "02b7zwm6vxmk61aj79a6m32s1k5sr0hwm3q1j4v6np9jfyd10g1j";
})
+
+ # Remove this when updating to 79 - The patches are already applied upstream
+ # https://bugzilla.mozilla.org/show_bug.cgi?id=1318905
+
+ # Combination of 3 changesets, modified to apply on 78:
+ # - https://hg.mozilla.org/mozilla-central/rev/06d7e1b6b7e7
+ # - https://hg.mozilla.org/mozilla-central/rev/ec48f15d085c
+ # - https://hg.mozilla.org/mozilla-central/rev/6803dda74d33
+ ./add-riscv64-support.patch
];
outputs = [ "out" "dev" ];
@@ -98,6 +107,10 @@ stdenv.mkDerivation rec {
depsBuildBuild = [ buildPackages.stdenv.cc ];
+ # cc-rs insists on using -mabi=lp64 (soft-float) for riscv64,
+ # while we have a double-float toolchain
+ NIX_CFLAGS_COMPILE = lib.optionalString (with stdenv.hostPlatform; isRiscV && is64bit) "-mabi=lp64d";
+
# Remove unnecessary static lib
preFixup = ''
moveToOutput bin/js78-config "$dev"
diff --git a/pkgs/development/interpreters/spidermonkey/add-riscv64-support.patch b/pkgs/development/interpreters/spidermonkey/add-riscv64-support.patch
new file mode 100644
index 000000000000..9d5d7c5507dc
--- /dev/null
+++ b/pkgs/development/interpreters/spidermonkey/add-riscv64-support.patch
@@ -0,0 +1,123 @@
+# HG changeset patch
+# User John Paul Adrian Glaubitz
+# Date 1592464269 0
+# Thu Jun 18 07:11:09 2020 +0000
+# Node ID 5de7d747a962df5f8aefc016a62d7270ac18879e
+# Parent e4b11f027efc1f8c2710ae3f52487a8f10a8fb39
+Bug 1318905 - build: Add riscv64 as target architecture to mozbuild r=glandium
+
+Adds the basic definitions for riscv64 to mozbuild, allowing to build Spidermonkey.
+
+Differential Revision: https://phabricator.services.mozilla.com/D78623
+
+diff -r e4b11f027efc -r 5de7d747a962 build/moz.configure/init.configure
+--- a/build/moz.configure/init.configure Sun May 31 17:11:57 2020 +0000
++++ b/build/moz.configure/init.configure Thu Jun 18 07:11:09 2020 +0000
+@@ -741,6 +741,9 @@
+ elif cpu.startswith('aarch64'):
+ canonical_cpu = 'aarch64'
+ endianness = 'little'
++ elif cpu in ('riscv64', 'riscv64gc'):
++ canonical_cpu = 'riscv64'
++ endianness = 'little'
+ elif cpu == 'sh4':
+ canonical_cpu = 'sh4'
+ endianness = 'little'
+diff -r e4b11f027efc -r 5de7d747a962 python/mozbuild/mozbuild/configure/constants.py
+--- a/python/mozbuild/mozbuild/configure/constants.py Sun May 31 17:11:57 2020 +0000
++++ b/python/mozbuild/mozbuild/configure/constants.py Thu Jun 18 07:11:09 2020 +0000
+@@ -49,6 +49,7 @@
+ 'mips64': 64,
+ 'ppc': 32,
+ 'ppc64': 64,
++ 'riscv64': 64,
+ 's390': 32,
+ 's390x': 64,
+ 'sh4': 32,
+@@ -87,6 +88,7 @@
+ ('sparc', '__sparc__'),
+ ('mips64', '__mips64'),
+ ('mips32', '__mips__'),
++ ('riscv64', '__riscv && __riscv_xlen == 64'),
+ ('sh4', '__sh__'),
+ ))
+
+diff -r e4b11f027efc -r 5de7d747a962 python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py
+--- a/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py Sun May 31 17:11:57 2020 +0000
++++ b/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py Thu Jun 18 07:11:09 2020 +0000
+@@ -1208,6 +1208,10 @@
+ 'mips-unknown-linux-gnu': big_endian + {
+ '__mips__': 1,
+ },
++ 'riscv64-unknown-linux-gnu': little_endian + {
++ '__riscv': 1,
++ '__riscv_xlen': 64,
++ },
+ 'sh4-unknown-linux-gnu': little_endian + {
+ '__sh__': 1,
+ },
+# HG changeset patch
+# User John Paul Adrian Glaubitz
+# Date 1592464269 0
+# Thu Jun 18 07:11:09 2020 +0000
+# Node ID e3d924797cb2d508ff938414168e98ccf66f07fe
+# Parent 5de7d747a962df5f8aefc016a62d7270ac18879e
+Bug 1318905 - js:jit: Enable AtomicOperations-feeling-lucky.h on riscv64 r=lth
+
+This allows the build on riscv64 to use the atomic operations provided by GCC.
+
+Differential Revision: https://phabricator.services.mozilla.com/D78624
+
+diff -r 5de7d747a962 -r e3d924797cb2 js/src/jit/AtomicOperations.h
+--- a/js/src/jit/AtomicOperations.h Thu Jun 18 07:11:09 2020 +0000
++++ b/js/src/jit/AtomicOperations.h Thu Jun 18 07:11:09 2020 +0000
+@@ -391,7 +391,7 @@
+ #elif defined(__ppc__) || defined(__PPC__) || defined(__sparc__) || \
+ defined(__ppc64__) || defined(__PPC64__) || defined(__ppc64le__) || \
+ defined(__PPC64LE__) || defined(__alpha__) || defined(__hppa__) || \
+- defined(__sh__) || defined(__s390__) || defined(__s390x__)
++ defined(__sh__) || defined(__s390__) || defined(__s390x__) || defined(__riscv)
+ # include "jit/shared/AtomicOperations-feeling-lucky.h"
+ #else
+ # error "No AtomicOperations support provided for this platform"
+diff -r 5de7d747a962 -r e3d924797cb2 js/src/jit/shared/AtomicOperations-feeling-lucky-gcc.h
+--- a/js/src/jit/shared/AtomicOperations-feeling-lucky-gcc.h Thu Jun 18 07:11:09 2020 +0000
++++ b/js/src/jit/shared/AtomicOperations-feeling-lucky-gcc.h Thu Jun 18 07:11:09 2020 +0000
+@@ -63,6 +63,11 @@
+ # define HAS_64BIT_LOCKFREE
+ #endif
+
++#if defined(__riscv) && __riscv_xlen == 64
++# define HAS_64BIT_ATOMICS
++# define HAS_64BIT_LOCKFREE
++#endif
++
+ #ifdef __sparc__
+ # ifdef __LP64__
+ # define HAS_64BIT_ATOMICS
+# HG changeset patch
+# User John Paul Adrian Glaubitz
+# Date 1592464269 0
+# Thu Jun 18 07:11:09 2020 +0000
+# Node ID 3f652d12b8bc0bd213020d488ecb4d3710bb11fa
+# Parent e3d924797cb2d508ff938414168e98ccf66f07fe
+Bug 1318905 - mfbt:tests: Define RETURN_INSTR for riscv64 in TestPoisonArea r=glandium
+
+Define RETURN_INSTR for riscv64 in TestPoisonArea, i.e. the riscv64 assembly
+opcodes for "ret ; ret".
+
+Differential Revision: https://phabricator.services.mozilla.com/D78625
+
+diff -r e3d924797cb2 -r 3f652d12b8bc mfbt/tests/TestPoisonArea.cpp
+--- a/mfbt/tests/TestPoisonArea.cpp Thu Jun 18 07:11:09 2020 +0000
++++ b/mfbt/tests/TestPoisonArea.cpp Thu Jun 18 07:11:09 2020 +0000
+@@ -132,6 +132,9 @@
+ #elif defined _ARCH_PPC || defined _ARCH_PWR || defined _ARCH_PWR2
+ # define RETURN_INSTR 0x4E800020 /* blr */
+
++#elif defined __riscv
++# define RETURN_INSTR 0x80828082 /* ret; ret */
++
+ #elif defined __sparc || defined __sparcv9
+ # define RETURN_INSTR 0x81c3e008 /* retl */
+
diff --git a/pkgs/development/libraries/aws-sdk-cpp/default.nix b/pkgs/development/libraries/aws-sdk-cpp/default.nix
index c2ad242b47aa..769cc2d3bd29 100644
--- a/pkgs/development/libraries/aws-sdk-cpp/default.nix
+++ b/pkgs/development/libraries/aws-sdk-cpp/default.nix
@@ -18,13 +18,13 @@ in
stdenv.mkDerivation rec {
pname = "aws-sdk-cpp";
- version = "1.9.121";
+ version = "1.9.150";
src = fetchFromGitHub {
owner = "aws";
repo = "aws-sdk-cpp";
rev = version;
- sha256 = "sha256-VQpWauk0tdJ1QU0HmtdTwQdKbiAuTTXXsUo2cqpqmdU=";
+ sha256 = "sha256-fgLdXWQKHaCwulrw9KV3vpQ71DjnQAL4heIRW7Rk7UY=";
};
postPatch = ''
diff --git a/pkgs/development/libraries/ffmpeg-full/default.nix b/pkgs/development/libraries/ffmpeg-full/default.nix
index 77bd473485b0..e4a5d908d263 100644
--- a/pkgs/development/libraries/ffmpeg-full/default.nix
+++ b/pkgs/development/libraries/ffmpeg-full/default.nix
@@ -132,6 +132,7 @@
, xavs ? null # AVS encoder
, xvidcore ? null # Xvid encoder, native encoder exists
, zeromq4 ? null # Message passing
+, zimg ? null
, zlib ? null
, vulkan-loader ? null
, glslang ? null
@@ -403,6 +404,7 @@ stdenv.mkDerivation rec {
(enableFeature (xavs != null && gplLicensing) "libxavs")
(enableFeature (xvidcore != null && gplLicensing) "libxvid")
(enableFeature (zeromq4 != null) "libzmq")
+ (enableFeature (zimg != null) "libzimg")
(enableFeature (zlib != null) "zlib")
(enableFeature (isLinux && vulkan-loader != null) "vulkan")
(enableFeature (isLinux && vulkan-loader != null && glslang != null) "libglslang")
@@ -431,7 +433,7 @@ stdenv.mkDerivation rec {
libogg libopus librsvg libssh libtheora libvdpau libvorbis libvpx libwebp libX11
libxcb libXv libXext xz openal openjpeg libpulseaudio rav1e svt-av1 rtmpdump opencore-amr
samba SDL2 soxr speex srt vid-stab vo-amrwbenc x264 x265 xavs xvidcore
- zeromq4 zlib
+ zeromq4 zimg zlib
] ++ optionals openglExtlib [ libGL libGLU ]
++ optionals nonfreeLicensing [ fdk_aac openssl ]
++ optional ((isLinux || isFreeBSD) && libva != null) libva
diff --git a/pkgs/development/libraries/ffmpeg/generic.nix b/pkgs/development/libraries/ffmpeg/generic.nix
index 8f74fbd5a3d5..e3b0534d2af9 100644
--- a/pkgs/development/libraries/ffmpeg/generic.nix
+++ b/pkgs/development/libraries/ffmpeg/generic.nix
@@ -1,7 +1,7 @@
{ lib, stdenv, buildPackages, fetchurl, pkg-config, addOpenGLRunpath, perl, texinfo, yasm
, alsa-lib, bzip2, fontconfig, freetype, gnutls, libiconv, lame, libass, libogg
, libssh, libtheora, libva, libdrm, libvorbis, libvpx, xz, libpulseaudio, soxr
-, x264, x265, xvidcore, zlib, libopus, speex, nv-codec-headers, dav1d
+, x264, x265, xvidcore, zimg, zlib, libopus, speex, nv-codec-headers, dav1d
, srt ? null
, openglSupport ? false, libGLU ? null, libGL ? null
, libmfxSupport ? false, intel-media-sdk ? null
@@ -154,6 +154,7 @@ stdenv.mkDerivation rec {
(ifMinVer "1.2" "--enable-libsoxr")
"--enable-libx264"
"--enable-libxvid"
+ "--enable-libzimg"
"--enable-zlib"
(ifMinVer "2.8" "--enable-libopus")
"--enable-libspeex"
@@ -176,7 +177,7 @@ stdenv.mkDerivation rec {
buildInputs = [
bzip2 fontconfig freetype gnutls libiconv lame libass libogg libssh libtheora
- libvorbis xz soxr x264 x265 xvidcore zlib libopus speex srt nv-codec-headers
+ libvorbis xz soxr x264 x265 xvidcore zimg zlib libopus speex srt nv-codec-headers
] ++ optionals openglSupport [ libGL libGLU ]
++ optional libmfxSupport intel-media-sdk
++ optional libaomSupport libaom
diff --git a/pkgs/development/libraries/glibc/2.33-master.patch.gz b/pkgs/development/libraries/glibc/2.33-master.patch.gz
index 50f74b15822e..aecf1550feff 100644
Binary files a/pkgs/development/libraries/glibc/2.33-master.patch.gz and b/pkgs/development/libraries/glibc/2.33-master.patch.gz differ
diff --git a/pkgs/development/libraries/glibc/common.nix b/pkgs/development/libraries/glibc/common.nix
index 6fa46d6d6c10..1bc5bf08ee46 100644
--- a/pkgs/development/libraries/glibc/common.nix
+++ b/pkgs/development/libraries/glibc/common.nix
@@ -44,7 +44,7 @@
let
version = "2.33";
- patchSuffix = "-59";
+ patchSuffix = "-62";
sha256 = "sha256-LiVWAA4QXb1X8Layoy/yzxc73k8Nhd/8z9i35RoGd/8=";
in
@@ -63,7 +63,7 @@ stdenv.mkDerivation ({
[
/* No tarballs for stable upstream branch, only https://sourceware.org/git/glibc.git and using git would complicate bootstrapping.
$ git fetch --all -p && git checkout origin/release/2.33/master && git describe
- glibc-2.33-59-gf9592d65f2
+ glibc-2.33-62-gc493f6a0e4
$ git show --minimal --reverse glibc-2.33.. | gzip -9n --rsyncable - > 2.33-master.patch.gz
To compare the archive contents zdiff can be used.
diff --git a/pkgs/development/libraries/grilo-plugins/default.nix b/pkgs/development/libraries/grilo-plugins/default.nix
index ed8f8edd656f..db968f4730f8 100644
--- a/pkgs/development/libraries/grilo-plugins/default.nix
+++ b/pkgs/development/libraries/grilo-plugins/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
# * chromaprint (gst-plugins-bad)
(substituteAll {
src = ./chromaprint-gst-plugins.patch;
- load_plugins = lib.concatMapStrings (plugin: ''gst_registry_scan_path(gst_registry_get(), "${plugin}/lib/gstreamer-1.0");'') (with gst_all_1; [
+ load_plugins = lib.concatMapStrings (plugin: ''gst_registry_scan_path(gst_registry_get(), "${lib.getLib plugin}/lib/gstreamer-1.0");'') (with gst_all_1; [
gstreamer
gst-plugins-base
gst-plugins-bad
diff --git a/pkgs/development/libraries/gstreamer/bad/default.nix b/pkgs/development/libraries/gstreamer/bad/default.nix
index 8c6a8b056781..016a7a992ed9 100644
--- a/pkgs/development/libraries/gstreamer/bad/default.nix
+++ b/pkgs/development/libraries/gstreamer/bad/default.nix
@@ -1,7 +1,6 @@
{ lib
, stdenv
, fetchurl
-, fetchpatch
, meson
, ninja
, gettext
@@ -93,26 +92,18 @@
stdenv.mkDerivation rec {
pname = "gst-plugins-bad";
- version = "1.18.2";
+ version = "1.18.5";
outputs = [ "out" "dev" ];
src = fetchurl {
url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
- sha256 = "06ildd4rl6cynirv3p00d2ddf5is9svj4i7mkahldzhq24pq5mca";
+ sha256 = "sha256-oWSSO5Tw0IV4pvyuqsbgwF2niKRpA6EIaHDpykWtZ44=";
};
patches = [
# Use pkgconfig to inject the includedirs
./fix_pkgconfig_includedir.patch
- # Fix “error: cannot initialize a parameter of type 'unsigned long *' with an rvalue of type 'typename std::remove_reference::type *' (aka 'volatile unsigned long *')” on Darwin.
- (fetchpatch {
- url = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/commit/640a65bf966df065d41a511e2d76d1f26a2e770c.patch";
- sha256 = "E5pig+qEfR58Jticr6ydFxZOhM3ZJ8zgrf5K4BdiB/Y=";
- includes = [
- "ext/opencv/gstcvdilateerode.cpp"
- ];
- })
];
nativeBuildInputs = [
diff --git a/pkgs/development/libraries/gstreamer/base/default.nix b/pkgs/development/libraries/gstreamer/base/default.nix
index 1edadf0a51bc..8b6073cb9588 100644
--- a/pkgs/development/libraries/gstreamer/base/default.nix
+++ b/pkgs/development/libraries/gstreamer/base/default.nix
@@ -41,13 +41,13 @@
stdenv.mkDerivation rec {
pname = "gst-plugins-base";
- version = "1.18.4";
+ version = "1.18.5";
outputs = [ "out" "dev" ];
src = fetchurl {
url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
- sha256 = "08w3ivbc6n4vdds2ap6q7l8zdk9if8417nznyqidf0adm0lk5r99";
+ sha256 = "sha256-lgt69FhXANsP3VuENVThHiVk/tngYfWR+uiKe+ZEb6M=";
};
patches = [
diff --git a/pkgs/development/libraries/gstreamer/core/default.nix b/pkgs/development/libraries/gstreamer/core/default.nix
index 9cc1675de3ae..268da0171630 100644
--- a/pkgs/development/libraries/gstreamer/core/default.nix
+++ b/pkgs/development/libraries/gstreamer/core/default.nix
@@ -21,20 +21,20 @@
stdenv.mkDerivation rec {
pname = "gstreamer";
- version = "1.18.4";
+ version = "1.18.5";
outputs = [
+ "bin"
"out"
"dev"
# "devdoc" # disabled until `hotdoc` is packaged in nixpkgs, see:
# - https://github.com/NixOS/nixpkgs/pull/98767
# - https://github.com/NixOS/nixpkgs/issues/98769#issuecomment-702296551
];
- outputBin = "dev";
src = fetchurl {
url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
- sha256 = "1igv9l4hm21kp1jmlwlagzs7ly1vaxv1sbda29q8247372dwkvls";
+ sha256 = "sha256-VYYiMqY0Wbv1ar694whcqa7CEbR46JHazqTW34yv6Ao=";
};
patches = [
@@ -94,14 +94,14 @@ stdenv.mkDerivation rec {
'';
postInstall = ''
- for prog in "$dev/bin/"*; do
+ for prog in "$bin/bin/"*; do
# We can't use --suffix here due to quoting so we craft the export command by hand
wrapProgram "$prog" --run 'export GST_PLUGIN_SYSTEM_PATH_1_0=$GST_PLUGIN_SYSTEM_PATH_1_0''${GST_PLUGIN_SYSTEM_PATH_1_0:+:}$(unset _tmp; for profile in $NIX_PROFILES; do _tmp="$profile/lib/gstreamer-1.0''${_tmp:+:}$_tmp"; done; printf '%s' "$_tmp")'
done
'';
preFixup = ''
- moveToOutput "share/bash-completion" "$dev"
+ moveToOutput "share/bash-completion" "$bin"
'';
setupHook = ./setup-hook.sh;
diff --git a/pkgs/development/libraries/gstreamer/devtools/default.nix b/pkgs/development/libraries/gstreamer/devtools/default.nix
index 12cb6dac6f31..0b7be2bd03ec 100644
--- a/pkgs/development/libraries/gstreamer/devtools/default.nix
+++ b/pkgs/development/libraries/gstreamer/devtools/default.nix
@@ -12,11 +12,11 @@
stdenv.mkDerivation rec {
pname = "gst-devtools";
- version = "1.18.4";
+ version = "1.18.5";
src = fetchurl {
url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
- sha256 = "1kvcabcfzm7wqih3lzgrg9xjbn4xpx43d1m2zkkvab4i8161kggz";
+ sha256 = "sha256-/s/8hkR9r1wqBoQ8dXqZHXRcqiBpRGoNdG6ZsT98sHk=";
};
patches = [
diff --git a/pkgs/development/libraries/gstreamer/ges/default.nix b/pkgs/development/libraries/gstreamer/ges/default.nix
index 840b0f252857..0bfe6f3e0e2f 100644
--- a/pkgs/development/libraries/gstreamer/ges/default.nix
+++ b/pkgs/development/libraries/gstreamer/ges/default.nix
@@ -16,7 +16,7 @@
stdenv.mkDerivation rec {
pname = "gst-editing-services";
- version = "1.18.4";
+ version = "1.18.5";
outputs = [
"out"
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
- sha256 = "010xg960qsh5dwmf0y9l1q13h0cymmrgapzla2zsw66ylxqbi1s6";
+ sha256 = "sha256-ivSoOU0FHz4YKAaG20mm76zMlcDFmhfw9WTjIABZDfU=";
};
patches = [
diff --git a/pkgs/development/libraries/gstreamer/good/default.nix b/pkgs/development/libraries/gstreamer/good/default.nix
index bc1656c191a4..a6ed248b663d 100644
--- a/pkgs/development/libraries/gstreamer/good/default.nix
+++ b/pkgs/development/libraries/gstreamer/good/default.nix
@@ -48,13 +48,13 @@ assert raspiCameraSupport -> (stdenv.isLinux && stdenv.isAarch64);
stdenv.mkDerivation rec {
pname = "gst-plugins-good";
- version = "1.18.4";
+ version = "1.18.5";
outputs = [ "out" "dev" ];
src = fetchurl {
url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
- sha256 = "1c1rpq709cy8maaykyn1n0kckj9c6fl3mhvixkk6xmdwkcx0xrdn";
+ sha256 = "sha256-Oq7up3Zfv4gBrM5KUDqbBfc/BOijU1Lp0AIyz9VVeWs=";
};
nativeBuildInputs = [
diff --git a/pkgs/development/libraries/gstreamer/libav/default.nix b/pkgs/development/libraries/gstreamer/libav/default.nix
index 009a1555f770..7f2828253c88 100644
--- a/pkgs/development/libraries/gstreamer/libav/default.nix
+++ b/pkgs/development/libraries/gstreamer/libav/default.nix
@@ -15,11 +15,11 @@
stdenv.mkDerivation rec {
pname = "gst-libav";
- version = "1.18.4";
+ version = "1.18.5";
src = fetchurl {
url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
- sha256 = "15n3x3vhshqa3icw93g4vqmqd46122anzqvfxwn6q8famlxlcjil";
+ sha256 = "sha256-gi4AipEOndE67b3Y3GP+3vQEDA7i6Se6sxEuneaTpUg=";
};
outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/gstreamer/rtsp-server/default.nix b/pkgs/development/libraries/gstreamer/rtsp-server/default.nix
index d66376b64996..a75af25224a0 100644
--- a/pkgs/development/libraries/gstreamer/rtsp-server/default.nix
+++ b/pkgs/development/libraries/gstreamer/rtsp-server/default.nix
@@ -12,11 +12,11 @@
stdenv.mkDerivation rec {
pname = "gst-rtsp-server";
- version = "1.18.4";
+ version = "1.18.5";
src = fetchurl {
url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
- sha256 = "153c78klvzlmi86d0gmdf7w9crv11rkd4y82b14a0wdr83gbhsx4";
+ sha256 = "sha256-BNY79IgWxvQcc/beD5EqfO8KqznEQWKnvOzhkj38nR8=";
};
outputs = [
diff --git a/pkgs/development/libraries/gstreamer/ugly/default.nix b/pkgs/development/libraries/gstreamer/ugly/default.nix
index 049e8a99f095..7c4b21f7c833 100644
--- a/pkgs/development/libraries/gstreamer/ugly/default.nix
+++ b/pkgs/development/libraries/gstreamer/ugly/default.nix
@@ -23,13 +23,13 @@
stdenv.mkDerivation rec {
pname = "gst-plugins-ugly";
- version = "1.18.4";
+ version = "1.18.5";
outputs = [ "out" "dev" ];
src = fetchurl {
url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
- sha256 = "0g6i4db1883q3j0l2gdv46fcqwiiaw63n6mhvsfcms1i1p7g1391";
+ sha256 = "sha256-3zKAPpj4qZeTc/osp+BeYvl3sQl1dtOoBhnZ9cafZtk=";
};
nativeBuildInputs = [
diff --git a/pkgs/development/libraries/gstreamer/vaapi/default.nix b/pkgs/development/libraries/gstreamer/vaapi/default.nix
index 19e65c5a75eb..5de9a247a527 100644
--- a/pkgs/development/libraries/gstreamer/vaapi/default.nix
+++ b/pkgs/development/libraries/gstreamer/vaapi/default.nix
@@ -21,11 +21,11 @@
stdenv.mkDerivation rec {
pname = "gstreamer-vaapi";
- version = "1.18.4";
+ version = "1.18.5";
src = fetchurl {
url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
- sha256 = "1sia4l88z7kkxm2z9j20l43rqkrnsa47xccski10s5gkhsprinwj";
+ sha256 = "sha256-SkYPuVVZ9BRE6ySGStLZ43kitu6pQVEDEDGfw+C6cns=";
};
outputs = [
diff --git a/pkgs/development/libraries/gtk/3.x.nix b/pkgs/development/libraries/gtk/3.x.nix
index 82bcad0b9856..bb1451594475 100644
--- a/pkgs/development/libraries/gtk/3.x.nix
+++ b/pkgs/development/libraries/gtk/3.x.nix
@@ -44,6 +44,7 @@
, cups
, AppKit
, Cocoa
+, QuartzCore
, broadwaySupport ? true
}:
@@ -59,7 +60,7 @@ in
stdenv.mkDerivation rec {
pname = "gtk+3";
- version = "3.24.30";
+ version = "3.24.31";
outputs = [ "out" "dev" ] ++ lib.optional withGtkDoc "devdoc";
outputBin = "dev";
@@ -71,7 +72,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "mirror://gnome/sources/gtk+/${lib.versions.majorMinor version}/gtk+-${version}.tar.xz";
- sha256 = "sha256-unW//zIK0fTPvukrqBPsM2MizDxmDUBqrQFLBwh6O6k=";
+ sha256 = "sha256-Qjw+f9tMRZ7oieNf1Ncf0mI1YlQcEEGxHAflrR/xC/k=";
};
patches = [
@@ -83,6 +84,12 @@ stdenv.mkDerivation rec {
# e.g. https://gitlab.gnome.org/GNOME/gtk/blob/3.24.4/gtk/gtk-launch.c#L31-33
# https://gitlab.gnome.org/GNOME/gtk/merge_requests/536
./patches/3.0-darwin-x11.patch
+
+ # 3.24.31 does not declare QuartzCore dependency properly and fails to link
+ (fetchpatch {
+ url = "https://gitlab.gnome.org/GNOME/gtk/-/commit/0ac61443694b477c41fc246cb387ef86aba441de.patch";
+ sha256 = "sha256-KaMeIdV/gfM4xzN9lIkY99E7bzAfTM6VETk5DEunB2w=";
+ })
];
nativeBuildInputs = [
@@ -104,7 +111,7 @@ stdenv.mkDerivation rec {
buildInputs = [
libxkbcommon
- libepoxy
+ (libepoxy.override { inherit x11Support; })
isocodes
] ++ lib.optionals stdenv.isDarwin [
AppKit
@@ -133,6 +140,7 @@ stdenv.mkDerivation rec {
] ++ lib.optionals stdenv.isDarwin [
# explicitly propagated, always needed
Cocoa
+ QuartzCore
] ++ lib.optionals waylandSupport [
libGL
wayland
diff --git a/pkgs/development/libraries/gtk/4.x.nix b/pkgs/development/libraries/gtk/4.x.nix
index d763c99882e0..2b6dfc8fb52c 100644
--- a/pkgs/development/libraries/gtk/4.x.nix
+++ b/pkgs/development/libraries/gtk/4.x.nix
@@ -23,6 +23,9 @@
, xorg
, libepoxy
, libxkbcommon
+, libpng
+, libtiff
+, libjpeg
, libxml2
, gnome
, gsettings-desktop-schemas
@@ -59,7 +62,7 @@ in
stdenv.mkDerivation rec {
pname = "gtk4";
- version = "4.4.1";
+ version = "4.6.0";
outputs = [ "out" "dev" ] ++ lib.optionals x11Support [ "devdoc" ];
outputBin = "dev";
@@ -71,7 +74,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "mirror://gnome/sources/gtk/${lib.versions.majorMinor version}/gtk-${version}.tar.xz";
- sha256 = "D6ramD3GsLxAnLNMFxPB8yZ+Z8CT+GseOxfbYQCj3fQ=";
+ sha256 = "eC1ZUfv9WF/J7HbAnQfijmAUxy2wAftWf/8hf7luTYw=";
};
nativeBuildInputs = [
@@ -89,7 +92,10 @@ stdenv.mkDerivation rec {
buildInputs = [
libxkbcommon
- libepoxy
+ libpng
+ libtiff
+ libjpeg
+ (libepoxy.override { inherit x11Support; })
isocodes
] ++ lib.optionals vulkanSupport [
vulkan-headers
@@ -130,6 +136,8 @@ stdenv.mkDerivation rec {
glib
graphene
pango
+ ] ++ lib.optionals waylandSupport [
+ wayland
] ++ lib.optionals vulkanSupport [
vulkan-loader
] ++ [
diff --git a/pkgs/development/libraries/hunspell/default.nix b/pkgs/development/libraries/hunspell/default.nix
index fe4fc1e6d338..44f49adbd3a6 100644
--- a/pkgs/development/libraries/hunspell/default.nix
+++ b/pkgs/development/libraries/hunspell/default.nix
@@ -1,12 +1,14 @@
-{ lib, stdenv, fetchurl, fetchpatch, ncurses, readline, autoreconfHook }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, ncurses, readline, autoreconfHook }:
stdenv.mkDerivation rec {
version = "1.7.0";
pname = "hunspell";
- src = fetchurl {
- url = "https://github.com/hunspell/hunspell/archive/v${version}.tar.gz";
- sha256 = "12mwwqz6qkx7q1lg9vpjiiwh4fk4c8xs6g6g0xa2ia0hp5pbh9xv";
+ src = fetchFromGitHub {
+ owner = "hunspell";
+ repo = "hunspell";
+ rev = "v${version}";
+ sha256 = "sha256-YSJztik0QTZFNR8k8Xu1hakyE16NziDavYVkEUCbtGM=";
};
outputs = [ "bin" "dev" "out" "man" ];
diff --git a/pkgs/development/libraries/iso-codes/default.nix b/pkgs/development/libraries/iso-codes/default.nix
index 75ace8097c9b..1b4396bfee07 100644
--- a/pkgs/development/libraries/iso-codes/default.nix
+++ b/pkgs/development/libraries/iso-codes/default.nix
@@ -1,12 +1,12 @@
-{lib, stdenv, fetchurl, gettext, python3}:
+{ lib, stdenv, fetchurl, gettext, python3 }:
stdenv.mkDerivation rec {
pname = "iso-codes";
- version = "4.6.0";
+ version = "4.9.0";
src = fetchurl {
- url = "https://salsa.debian.org/iso-codes-team/iso-codes/-/archive/${pname}-${version}/${pname}-${pname}-${version}.tar.bz2";
- sha256 = "sha256-Ivd5538QpTFXP2r6ca/g12IZ0ZW1nduu0z4kiSb9Mxs=";
+ url = "https://salsa.debian.org/iso-codes-team/iso-codes/-/archive/v${version}/${pname}-v${version}.tar.gz";
+ sha256 = "02lq602ghws423w04jsyjr92p0nmrfp59n1m5hbbi1c6fhxryghc";
};
patchPhase = ''
diff --git a/pkgs/development/libraries/libadwaita/default.nix b/pkgs/development/libraries/libadwaita/default.nix
index 6a519841d70a..0e1a0036dd16 100644
--- a/pkgs/development/libraries/libadwaita/default.nix
+++ b/pkgs/development/libraries/libadwaita/default.nix
@@ -5,7 +5,7 @@
, gi-docgen
, gtk-doc
, libxml2
-, meson_0_60
+, meson
, ninja
, pkg-config
, sassc
@@ -21,7 +21,7 @@
stdenv.mkDerivation rec {
pname = "libadwaita";
- version = "1.0.0.alpha.4";
+ version = "1.0.1";
outputs = [ "out" "dev" "devdoc" ];
outputBin = "devdoc"; # demo app
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
owner = "GNOME";
repo = "libadwaita";
rev = version;
- sha256 = "sha256-3aVeBaKSl6SaPQLodsyJHwnNOlXlWfIaLnbbl3+mlDA=";
+ sha256 = "sha256-2+elMEZwDPWkPDrmvLH5rxulh1tq6fgsMhbTdbrWe54=";
};
nativeBuildInputs = [
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
gi-docgen
gtk-doc
libxml2 # for xmllint
- meson_0_60
+ meson
ninja
pkg-config
sassc
@@ -95,7 +95,7 @@ stdenv.mkDerivation rec {
description = "Library to help with developing UI for mobile devices using GTK/GNOME";
homepage = "https://gitlab.gnome.org/GNOME/libadwaita";
license = licenses.lgpl21Plus;
- maintainers = with maintainers; [ dotlambda ];
+ maintainers = teams.gnome.members ++ (with maintainers; [ dotlambda ]);
platforms = platforms.linux;
};
}
diff --git a/pkgs/development/libraries/libepoxy/default.nix b/pkgs/development/libraries/libepoxy/default.nix
index bb6d6a14232f..c54c3c86d232 100644
--- a/pkgs/development/libraries/libepoxy/default.nix
+++ b/pkgs/development/libraries/libepoxy/default.nix
@@ -10,6 +10,7 @@
, libX11
, Carbon
, OpenGL
+, x11Support ? !stdenv.isDarwin
}:
let
@@ -40,7 +41,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ meson ninja pkg-config utilmacros python3 ];
- buildInputs = [
+ buildInputs = lib.optionals x11Support [
libGL
libX11
] ++ lib.optionals stdenv.isDarwin [
@@ -50,10 +51,10 @@ stdenv.mkDerivation rec {
mesonFlags = [
"-Dtests=${if doCheck then "true" else "false"}"
- ]
- ++ optional stdenv.isDarwin "-Dglx=yes";
+ "-Dglx=${if x11Support then "yes" else "no"}"
+ ];
- NIX_CFLAGS_COMPILE = ''-DLIBGL_PATH="${getLib libGL}/lib"'';
+ NIX_CFLAGS_COMPILE = lib.optionalString x11Support ''-DLIBGL_PATH="${getLib libGL}/lib"'';
# cgl_epoxy_api fails in darwin sandbox and on Hydra (because it's headless?)
preCheck = lib.optionalString stdenv.isDarwin ''
diff --git a/pkgs/development/libraries/libextractor/default.nix b/pkgs/development/libraries/libextractor/default.nix
index cef1fbc512ae..7251e5b645be 100644
--- a/pkgs/development/libraries/libextractor/default.nix
+++ b/pkgs/development/libraries/libextractor/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
(substituteAll {
src = ./gst-hardcode-plugins.patch;
load_gst_plugins = lib.concatMapStrings
- (plugin: ''gst_registry_scan_path(gst_registry_get(), "${plugin}/lib/gstreamer-1.0");'')
+ (plugin: ''gst_registry_scan_path(gst_registry_get(), "${lib.getLib plugin}/lib/gstreamer-1.0");'')
(gstPlugins gst_all_1);
})
];
diff --git a/pkgs/development/libraries/libfabric/default.nix b/pkgs/development/libraries/libfabric/default.nix
index c1c6ef7032ae..38c88fe70f3c 100644
--- a/pkgs/development/libraries/libfabric/default.nix
+++ b/pkgs/development/libraries/libfabric/default.nix
@@ -3,7 +3,7 @@
stdenv.mkDerivation rec {
pname = "libfabric";
- version = "1.13.2";
+ version = "1.14.0";
enableParallelBuilding = true;
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
owner = "ofiwg";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-ydMZP83keUGDYDw9i/SCa4U1KEgfuqkFklwRKbfLoK8=";
+ sha256 = "sha256-MmvJV3Pne+bJtC91rdpNMZovoqMgm3gHFJwGH3tchgI=";
};
nativeBuildInputs = [ pkg-config autoreconfHook ];
diff --git a/pkgs/development/libraries/libffi/default.nix b/pkgs/development/libraries/libffi/default.nix
index 4332f43c5afb..6a22d585fbc8 100644
--- a/pkgs/development/libraries/libffi/default.nix
+++ b/pkgs/development/libraries/libffi/default.nix
@@ -1,6 +1,8 @@
{ lib, stdenv, fetchurl, fetchpatch
, autoreconfHook
+, doCheck ? true # test suite depends on dejagnu which cannot be used during bootstrapping
+, dejagnu
}:
# Note: this package is used for bootstrapping fetchurl, and thus
@@ -39,6 +41,10 @@ stdenv.mkDerivation rec {
dontStrip = stdenv.hostPlatform != stdenv.buildPlatform; # Don't run the native `strip' when cross-compiling.
+ inherit doCheck;
+
+ checkInputs = [ dejagnu ];
+
meta = with lib; {
description = "A foreign function call interface library";
longDescription = ''
diff --git a/pkgs/development/libraries/libfprint-tod/default.nix b/pkgs/development/libraries/libfprint-tod/default.nix
index 8d7df57896d4..bffafc5e44f4 100644
--- a/pkgs/development/libraries/libfprint-tod/default.nix
+++ b/pkgs/development/libraries/libfprint-tod/default.nix
@@ -19,7 +19,9 @@ in {
sha256 = "0cj7iy5799pchyzqqncpkhibkq012g3bdpn18pfb19nm43svhn4j";
};
- mesonFlags = mesonFlags ++ [
+ mesonFlags = [
+ # Include virtual drivers for fprintd tests
+ "-Ddrivers=all"
"-Dudev_hwdb_dir=${placeholder "out"}/lib/udev/hwdb.d"
];
diff --git a/pkgs/development/libraries/libgda/default.nix b/pkgs/development/libraries/libgda/default.nix
index 63acabb320e4..a9993b7255a9 100644
--- a/pkgs/development/libraries/libgda/default.nix
+++ b/pkgs/development/libraries/libgda/default.nix
@@ -11,8 +11,6 @@
, gobject-introspection
, vala
, libgee
-, overrideCC
-, gcc6
, fetchpatch
, autoreconfHook
, gtk-doc
@@ -27,7 +25,7 @@
assert mysqlSupport -> libmysqlclient != null;
assert postgresSupport -> postgresql != null;
-(if stdenv.isAarch64 then overrideCC stdenv gcc6 else stdenv).mkDerivation rec {
+stdenv.mkDerivation rec {
pname = "libgda";
version = "5.2.10";
diff --git a/pkgs/development/libraries/libhttpseverywhere/default.nix b/pkgs/development/libraries/libhttpseverywhere/default.nix
index 975ad2258131..80bc73e9a043 100644
--- a/pkgs/development/libraries/libhttpseverywhere/default.nix
+++ b/pkgs/development/libraries/libhttpseverywhere/default.nix
@@ -15,12 +15,17 @@ in stdenv.mkDerivation rec {
nativeBuildInputs = [ vala gobject-introspection meson ninja pkg-config ];
buildInputs = [ glib libgee json-glib libsoup libarchive ];
- # Fixes build with vala >=0.42
patches = [
+ # Fixes build with vala >=0.42
(fetchpatch {
url = "https://gitlab.gnome.org/GNOME/libhttpseverywhere/commit/6da08ef1ade9ea267cecf14dd5cb2c3e6e5e50cb.patch";
sha256 = "1nwjlh8iqgjayccwdh0fbpq2g1h8bg1k1g9i324f2bhhvyhmpq8f";
})
+ # fix build with meson 0.60
+ (fetchpatch {
+ url = "https://gitlab.gnome.org/GNOME/libhttpseverywhere/-/commit/4c38b2ca25802c464f3204a62815201d8cf549fd.patch";
+ sha256 = "sha256-1+fmR0bpvJ9ISN2Hr+BTIQz+Bf6VfY1RdVZ/OohUlWU=";
+ })
];
mesonFlags = [ "-Denable_valadoc=true" ];
diff --git a/pkgs/development/libraries/libhwy/default.nix b/pkgs/development/libraries/libhwy/default.nix
new file mode 100644
index 000000000000..7656e063822d
--- /dev/null
+++ b/pkgs/development/libraries/libhwy/default.nix
@@ -0,0 +1,47 @@
+{ lib, stdenv, cmake, ninja, gtest, fetchpatch, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ pname = "libhwy";
+ version = "0.15.0";
+
+ src = fetchFromGitHub {
+ owner = "google";
+ repo = "highway";
+ rev = version;
+ sha256 = "sha256-v2HyyHtBydr7QiI83DW1yRv2kWjUOGxFT6mmdrN9XPo=";
+ };
+
+ patches = [
+ # Remove on next release
+ # https://github.com/google/highway/issues/460
+ (fetchpatch {
+ name = "hwy-add-missing-includes.patch";
+ url = "https://github.com/google/highway/commit/8ccab40c2f931aca6004d175eec342cc60f6baec.patch";
+ sha256 = "sha256-wlp5gIvK2+OlKtsZwxq/pXTbESkUtimHXaYDjcBzmQ0=";
+ })
+ ];
+
+ nativeBuildInputs = [ cmake ninja ];
+
+ checkInputs = [ gtest ];
+
+ # Required for case-insensitive filesystems ("BUILD" exists)
+ dontUseCmakeBuildDir = true;
+
+ cmakeFlags = [
+ "-GNinja"
+ "-DCMAKE_INSTALL_LIBDIR=lib"
+ "-DCMAKE_INSTALL_INCLUDEDIR=include"
+ ] ++ lib.optional doCheck "-DHWY_SYSTEM_GTEST:BOOL=ON";
+
+ # hydra's darwin machines run into https://github.com/libjxl/libjxl/issues/408
+ doCheck = !stdenv.hostPlatform.isDarwin;
+
+ meta = with lib; {
+ description = "Performance-portable, length-agnostic SIMD with runtime dispatch";
+ homepage = "https://github.com/google/highway";
+ license = licenses.asl20;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ zhaofengli ];
+ };
+}
diff --git a/pkgs/development/libraries/libjxl/default.nix b/pkgs/development/libraries/libjxl/default.nix
index 828090875e86..081ddaf4988a 100644
--- a/pkgs/development/libraries/libjxl/default.nix
+++ b/pkgs/development/libraries/libjxl/default.nix
@@ -8,6 +8,7 @@
, giflib
, gperftools
, gtest
+, libhwy
, libjpeg
, libpng
, libwebp
@@ -37,14 +38,16 @@ stdenv.mkDerivation rec {
url = "https://github.com/libjxl/libjxl/commit/88fe3fff3dc70c72405f57c69feffd9823930034.patch";
sha256 = "1419fyiq4srpj72cynwyvqy8ldi7vn9asvkp5fsbmiqkyhb15jpk";
})
- ];
- # hydra's darwin machines run into https://github.com/libjxl/libjxl/issues/408
- # unless we disable highway's tests
- postPatch = lib.optional stdenv.isDarwin ''
- substituteInPlace third_party/highway/CMakeLists.txt \
- --replace 'if(BUILD_TESTING)' 'if(false)'
- '';
+ # "robust statistics" have been removed in upstream mainline as they are
+ # conidered to cause "interoperability problems". sure enough the tests
+ # fail with precision issues on aarch64.
+ (fetchpatch {
+ name = "remove-robust-and-descriptive-statistics.patch";
+ url = "https://github.com/libjxl/libjxl/commit/204f87a5e4d684544b13900109abf040dc0b402b.patch";
+ sha256 = "sha256-DoAaYWLmQ+R9GZbHMTYGe0gBL9ZesgtB+2WhmbARna8=";
+ })
+ ];
nativeBuildInputs = [
asciidoc # for docs
@@ -76,6 +79,7 @@ stdenv.mkDerivation rec {
brotli
giflib
gperftools # provides `libtcmalloc`
+ libhwy
libjpeg
libpng
libwebp
@@ -91,6 +95,9 @@ stdenv.mkDerivation rec {
# using the vendorered ones is easier.
"-DJPEGXL_FORCE_SYSTEM_BROTLI=ON"
+ # Use our version of highway, though it is still statically linked in
+ "-DJPEGXL_FORCE_SYSTEM_HWY=ON"
+
# TODO: Update this package to enable this (overridably via an option):
# Viewer tools for evaluation.
# "-DJPEGXL_ENABLE_VIEWERS=ON"
@@ -102,13 +109,17 @@ stdenv.mkDerivation rec {
# "-DJPEGXL_ENABLE_PLUGINS=ON"
];
+ LDFLAGS = lib.optionalString stdenv.hostPlatform.isRiscV "-latomic";
+
doCheck = true;
# The test driver runs a test `LibraryCLinkageTest` which without
# LD_LIBRARY_PATH setting errors with:
# /build/source/build/tools/tests/libjxl_test: error while loading shared libraries: libjxl.so.0
# The required file is in the build directory (`$PWD`).
- preCheck = ''
+ preCheck = if stdenv.isDarwin then ''
+ export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH''${DYLD_LIBRARY_PATH:+:}$PWD
+ '' else ''
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$PWD
'';
@@ -118,6 +129,5 @@ stdenv.mkDerivation rec {
license = licenses.bsd3;
maintainers = with maintainers; [ nh2 ];
platforms = platforms.all;
- broken = stdenv.hostPlatform.isAarch64; # `internal compiler error`, see https://github.com/NixOS/nixpkgs/pull/103160#issuecomment-866388610
};
}
diff --git a/pkgs/development/libraries/libmodulemd/default.nix b/pkgs/development/libraries/libmodulemd/default.nix
index 79f590af5ffd..8f59975a5967 100644
--- a/pkgs/development/libraries/libmodulemd/default.nix
+++ b/pkgs/development/libraries/libmodulemd/default.nix
@@ -56,7 +56,6 @@ stdenv.mkDerivation rec {
];
mesonFlags = [
- "-Ddeveloper_build=false"
"-Dgobject_overrides_dir_py3=${placeholder "py"}/${python3.sitePackages}/gi/overrides"
];
diff --git a/pkgs/development/libraries/libnice/default.nix b/pkgs/development/libraries/libnice/default.nix
index 87f2d7327125..42fb795d38ed 100644
--- a/pkgs/development/libraries/libnice/default.nix
+++ b/pkgs/development/libraries/libnice/default.nix
@@ -13,6 +13,7 @@
, gupnp-igd
, gst_all_1
, gnutls
+, graphviz
}:
stdenv.mkDerivation rec {
@@ -48,6 +49,7 @@ stdenv.mkDerivation rec {
gtk-doc
docbook_xsl
docbook_xml_dtd_412
+ graphviz
];
buildInputs = [
diff --git a/pkgs/development/libraries/libportal/default.nix b/pkgs/development/libraries/libportal/default.nix
index 97c5303eabe7..b261c0395e6d 100644
--- a/pkgs/development/libraries/libportal/default.nix
+++ b/pkgs/development/libraries/libportal/default.nix
@@ -4,42 +4,66 @@
, meson
, ninja
, pkg-config
-, gtk-doc
-, docbook-xsl-nons
-, docbook_xml_dtd_45
+, gobject-introspection
+, vala
+, gi-docgen
, glib
+, gtk3
+, gtk4
+, libsForQt5
+, variant ? null
}:
+assert variant == null || variant == "gtk3" || variant == "gtk4" || variant == "qt5";
+
stdenv.mkDerivation rec {
- pname = "libportal";
- version = "0.4";
+ pname = "libportal" + lib.optionalString (variant != null) "-${variant}";
+ version = "0.5";
outputs = [ "out" "dev" "devdoc" ];
src = fetchFromGitHub {
owner = "flatpak";
- repo = pname;
+ repo = "libportal";
rev = version;
- sha256 = "fuYZWGkdazq6H0rThqpF6KIcvwgc17o+CiISb1LjBso=";
+ sha256 = "oPPO2f6NNeok0SGh4jELkkOP6VUxXZiwPM/n6CUHm0Q=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
- gtk-doc
- docbook-xsl-nons
- docbook_xml_dtd_45
+ gi-docgen
+ ] ++ lib.optionals (variant != "qt5") [
+ gobject-introspection
+ vala
];
propagatedBuildInputs = [
glib
+ ] ++ lib.optionals (variant == "gtk3") [
+ gtk3
+ ] ++ lib.optionals (variant == "gtk4") [
+ gtk4
+ ] ++ lib.optionals (variant == "qt5") [
+ libsForQt5.qtbase
];
+ mesonFlags = [
+ "-Dbackends=${lib.optionalString (variant != null) variant}"
+ "-Dvapi=${if variant != "qt5" then "true" else "false"}"
+ "-Dintrospection=${if variant != "qt5" then "true" else "false"}"
+ ];
+
+ postFixup = ''
+ # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back.
+ moveToOutput "share/doc" "$devdoc"
+ '';
+
meta = with lib; {
description = "Flatpak portal library";
homepage = "https://github.com/flatpak/libportal";
- license = licenses.lgpl2Plus;
+ license = licenses.lgpl3Plus;
maintainers = with maintainers; [ jtojnar ];
platforms = platforms.linux;
};
diff --git a/pkgs/development/libraries/libseccomp/default.nix b/pkgs/development/libraries/libseccomp/default.nix
index 0a76e59e5b7c..d0e8bd163ddd 100644
--- a/pkgs/development/libraries/libseccomp/default.nix
+++ b/pkgs/development/libraries/libseccomp/default.nix
@@ -1,12 +1,12 @@
-{ lib, stdenv, fetchurl, getopt, util-linux, gperf }:
+{ lib, stdenv, fetchurl, getopt, util-linux, gperf, nix-update-script }:
stdenv.mkDerivation rec {
pname = "libseccomp";
- version = "2.5.2";
+ version = "2.5.3";
src = fetchurl {
url = "https://github.com/seccomp/libseccomp/releases/download/v${version}/libseccomp-${version}.tar.gz";
- sha256 = "sha256-F6ZS37SR2Wvok5YOm3kZFJNu4WwTt3ejyvVi/kjLh98=";
+ sha256 = "sha256-WQZchzM2RyXpchukjDqZu8Uq+SHa9I30seAS+8exCnY=";
};
outputs = [ "out" "lib" "dev" "man" "pythonsrc" ];
@@ -31,6 +31,12 @@ stdenv.mkDerivation rec {
tar -zcf $pythonsrc --mtime="@$SOURCE_DATE_EPOCH" --sort=name --transform s/tmp-pythonsrc/python-foundationdb/ ./tmp-pythonsrc/
'';
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = pname;
+ };
+ };
+
meta = with lib; {
description = "High level library for the Linux Kernel seccomp filter";
homepage = "https://github.com/seccomp/libseccomp";
diff --git a/pkgs/development/libraries/libsoup/3.x.nix b/pkgs/development/libraries/libsoup/3.x.nix
index ef87c5f20337..454a1cdf40a2 100644
--- a/pkgs/development/libraries/libsoup/3.x.nix
+++ b/pkgs/development/libraries/libsoup/3.x.nix
@@ -21,13 +21,13 @@
stdenv.mkDerivation rec {
pname = "libsoup";
- version = "3.0.3";
+ version = "3.0.4";
outputs = [ "out" "dev" ];
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "sha256-UWWwTa2uMCfpoogthoaUtFhq/9d4wZSYKuTeI3PS4l4=";
+ sha256 = "sha256-W9OLXgkfcH/X+j7Xw3qsyj+OFsZXh/HMF9w40dzeVns=";
};
nativeBuildInputs = [
diff --git a/pkgs/development/libraries/libthai/default.nix b/pkgs/development/libraries/libthai/default.nix
index 97745813ef26..7755fffc7a97 100644
--- a/pkgs/development/libraries/libthai/default.nix
+++ b/pkgs/development/libraries/libthai/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "libthai";
- version = "0.1.28";
+ version = "0.1.29";
outputs = [ "out" "dev" ];
src = fetchurl {
url = "https://github.com/tlwg/libthai/releases/download/v${version}/libthai-${version}.tar.xz";
- sha256 = "04g93bgxrcnay9fglpq2lj9nr7x1xh06i60m7haip8as9dxs3q7z";
+ sha256 = "sha256-/IDMfctQ4RMCtBfOvSTy0wqLmHKS534AMme5EA0PS80=";
};
strictDeps = true;
diff --git a/pkgs/development/libraries/libtiff/default.nix b/pkgs/development/libraries/libtiff/default.nix
index 2fe6159556f6..5f34a80d253a 100644
--- a/pkgs/development/libraries/libtiff/default.nix
+++ b/pkgs/development/libraries/libtiff/default.nix
@@ -8,11 +8,6 @@
, libjpeg
, xz
, zlib
-
-, Cocoa
-, GLUT
-, libGL
-, libGLU
}:
#FIXME: fix aarch64-darwin build and get rid of ./aarch64-darwin.nix
@@ -52,8 +47,7 @@ stdenv.mkDerivation rec {
propagatedBuildInputs = [ libjpeg xz zlib ]; #TODO: opengl support (bogus configure detection)
- buildInputs = [ libdeflate ] # TODO: move all propagatedBuildInputs to buildInputs.
- ++ lib.optionals (stdenv.isDarwin) [ Cocoa GLUT libGL libGLU ];
+ buildInputs = [ libdeflate ];
enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/libuv/default.nix b/pkgs/development/libraries/libuv/default.nix
index a3de139fb440..1d9354d48e1a 100644
--- a/pkgs/development/libraries/libuv/default.nix
+++ b/pkgs/development/libraries/libuv/default.nix
@@ -1,14 +1,14 @@
{ stdenv, lib, fetchFromGitHub, autoconf, automake, libtool, pkg-config, ApplicationServices, CoreServices }:
stdenv.mkDerivation rec {
- version = "1.42.0";
+ version = "1.43.0";
pname = "libuv";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = "v${version}";
- sha256 = "0f6mfbg750q26fa85nhmw2m0gyp8jcp1kyx9zn6lgi8bha5b7kny";
+ sha256 = "sha256-AsXJb2AGNx+SARPmY8uRFRLfX5vqTPNjwL8njSw/e7o=";
};
postPatch = let
diff --git a/pkgs/development/libraries/mesa/default.nix b/pkgs/development/libraries/mesa/default.nix
index cb1d99aff2ca..69f43d31da71 100644
--- a/pkgs/development/libraries/mesa/default.nix
+++ b/pkgs/development/libraries/mesa/default.nix
@@ -33,7 +33,7 @@ with lib;
let
# Release calendar: https://www.mesa3d.org/release-calendar.html
# Release frequency: https://www.mesa3d.org/releasing.html#schedule
- version = "21.3.3";
+ version = "21.3.4";
branch = versions.major version;
self = stdenv.mkDerivation {
@@ -47,18 +47,20 @@ self = stdenv.mkDerivation {
"ftp://ftp.freedesktop.org/pub/mesa/${version}/mesa-${version}.tar.xz"
"ftp://ftp.freedesktop.org/pub/mesa/older-versions/${branch}.x/${version}/mesa-${version}.tar.xz"
];
- sha256 = "08c118j440xpfbjjxmwzm6dfnv4y35q540mmzkchhpbwx89lczxd";
+ sha256 = "0zd6skf9qcwlk1k1ljgwijwlyz5si3pgi0h97gd6kkivm7a4y43p";
};
# TODO:
# revive ./dricore-gallium.patch when it gets ported (from Ubuntu), as it saved
# ~35 MB in $drivers; watch https://launchpad.net/ubuntu/+source/mesa/+changelog
patches = [
- # fixes pkgsMusl.mesa build
+ # To fix flickering on Intel GPUs (iris), see https://github.com/NixOS/nixpkgs/issues/153377:
(fetchpatch {
- url = "https://raw.githubusercontent.com/void-linux/void-packages/b9f58f303ae23754c95d5d1fe87a98b5a2d8f271/srcpkgs/mesa/patches/musl.patch";
- sha256 = "sha256-Jyl7ILLhn8hBJG7afnEjE8H56Wz/1bxkvlqfrXK5U7I=";
+ url = "https://gitlab.freedesktop.org/mesa/mesa/-/commit/07dc3d4238e57901ccf98e0b506d9aad2c86b9d9.diff";
+ sha256 = "sha256-3fa1qHJes3x1/iXsxfjgy9HnEGlOyFtJatSkU1a3XDI=";
})
+ # fixes pkgsMusl.mesa build
+ ./musl.patch
(fetchpatch {
url = "https://raw.githubusercontent.com/void-linux/void-packages/b9f58f303ae23754c95d5d1fe87a98b5a2d8f271/srcpkgs/mesa/patches/musl-endian.patch";
sha256 = "sha256-eRc91qCaFlVzrxFrNUPpAHd1gsqKsLCCN0IW8pBQcqk=";
diff --git a/pkgs/development/libraries/mesa/musl.patch b/pkgs/development/libraries/mesa/musl.patch
new file mode 100644
index 000000000000..687a159c1788
--- /dev/null
+++ b/pkgs/development/libraries/mesa/musl.patch
@@ -0,0 +1,59 @@
+diff --git a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.h b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.h
+index 06ca90564f0..bb244f8f358 100644
+--- a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.h
++++ b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.h
+@@ -30,6 +30,7 @@
+
+ #include
+ #include
++#include
+ #include "util/list.h"
+ #include "util/rwlock.h"
+ #include "ac_gpu_info.h"
+diff --git a/src/gallium/drivers/freedreno/freedreno_util.h b/src/gallium/drivers/freedreno/freedreno_util.h
+index 22f99c41909..2f3195926be 100644
+--- a/src/gallium/drivers/freedreno/freedreno_util.h
++++ b/src/gallium/drivers/freedreno/freedreno_util.h
+@@ -108,6 +108,8 @@ extern bool fd_binning_enabled;
+ #include
+ #include
+
++#define gettid() ((pid_t)syscall(SYS_gettid))
++
+ #define DBG(fmt, ...) \
+ do { \
+ if (FD_DBG(MSGS)) \
+diff --git a/src/gallium/frontends/nine/nine_debug.c b/src/gallium/frontends/nine/nine_debug.c
+index f3a6a945025..f4a6c41a612 100644
+--- a/src/gallium/frontends/nine/nine_debug.c
++++ b/src/gallium/frontends/nine/nine_debug.c
+@@ -65,7 +65,7 @@ _nine_debug_printf( unsigned long flag,
+ {
+ static boolean first = TRUE;
+ static unsigned long dbg_flags = DBG_ERROR | DBG_WARN;
+- unsigned long tid = 0;
++ pthread_t tid = 0;
+
+ if (first) {
+ first = FALSE;
+@@ -74,7 +74,7 @@ _nine_debug_printf( unsigned long flag,
+
+ #if defined(HAVE_PTHREAD)
+ if (dbg_flags & DBG_TID)
+- tid = (unsigned long)pthread_self();
++ tid = pthread_self();
+ #endif
+
+ if (dbg_flags & flag) {
+diff --git a/src/util/rand_xor.c b/src/util/rand_xor.c
+index 81b64f1ea71..56ebd2eccdf 100644
+--- a/src/util/rand_xor.c
++++ b/src/util/rand_xor.c
+@@ -28,6 +28,7 @@
+ #if defined(HAVE_GETRANDOM)
+ #include
+ #endif
++#include /* size_t, ssize_t */
+ #include
+ #include
+ #endif
diff --git a/pkgs/development/libraries/ncurses/default.nix b/pkgs/development/libraries/ncurses/default.nix
index bdce5f48efd7..6c97b37a25fe 100644
--- a/pkgs/development/libraries/ncurses/default.nix
+++ b/pkgs/development/libraries/ncurses/default.nix
@@ -12,7 +12,7 @@
stdenv.mkDerivation rec {
# Note the revision needs to be adjusted.
- version = "6.2";
+ version = "6.3";
name = "ncurses-${version}" + lib.optionalString (abiVersion == "5") "-abi5-compat";
# We cannot use fetchFromGitHub (which calls fetchzip)
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
rev = "v${version}";
in fetchurl {
url = "https://github.com/mirror/ncurses/archive/${rev}.tar.gz";
- sha256 = "15r2456g0mlq2q7gh2z52vl6zv6y0z8sdchrs80kg4idqd8sm8fd";
+ sha256 = "1mawdjhzl2na2j0dylwc37f5w95rhgyvlwnfhww5rz2r7fgkvayv";
};
outputs = [ "out" "dev" "man" ];
diff --git a/pkgs/development/libraries/nss/default.nix b/pkgs/development/libraries/nss/default.nix
index e5819e1d75ee..e92b3dec07be 100644
--- a/pkgs/development/libraries/nss/default.nix
+++ b/pkgs/development/libraries/nss/default.nix
@@ -27,7 +27,7 @@ let
# It will rebuild itself using the version of this package (NSS) and if
# an update is required do the required changes to the expression.
# Example: nix-shell ./maintainers/scripts/update.nix --argstr package cacert
- version = "3.73.1";
+ version = "3.74";
in
stdenv.mkDerivation rec {
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "mirror://mozilla/security/nss/releases/NSS_${lib.replaceStrings [ "." ] [ "_" ] version}_RTM/src/${pname}-${version}.tar.gz";
- sha256 = "x2j5/jEp6LzC6WeUVtft2UU6IleEqPx9xFAYBvH+mr4=";
+ sha256 = "0mnhdkm4galhpvfz4rv0918jwmjlwkvcvb1f5va8f3zlz48qi4l8";
};
depsBuildBuild = [ buildPackages.stdenv.cc ];
diff --git a/pkgs/development/libraries/openexr/3.nix b/pkgs/development/libraries/openexr/3.nix
index 24af4e429a02..3cfe173875c0 100644
--- a/pkgs/development/libraries/openexr/3.nix
+++ b/pkgs/development/libraries/openexr/3.nix
@@ -1,6 +1,7 @@
{ lib
, stdenv
, fetchFromGitHub
+, fetchpatch
, zlib
, cmake
, imath
@@ -19,9 +20,26 @@ stdenv.mkDerivation rec {
sha256 = "sha256-Bi6yTcZBWTsWWMm3A7FVYblvSXKLSkHmhGvpNYGiOzE=";
};
+ patches = [
+ (fetchpatch {
+ name = "CVE-2021-45942.patch";
+ url = "https://github.com/AcademySoftwareFoundation/openexr/commit/11cad77da87c4fa2aab7d58dd5339e254db7937e.patch";
+ sha256 = "1qa8662ga5i0lyfi9mkj9s9bygdg7h1i6ahki28c664kxrlsakch";
+ })
+ ];
+
+ # tests are determined to use /var/tmp on unix
+ postPatch = ''
+ cat <(find . -name tmpDir.h) <(echo src/test/OpenEXRCoreTest/main.cpp) | while read -r f ; do
+ substituteInPlace $f --replace '/var/tmp' "$TMPDIR"
+ done
+ '';
+
nativeBuildInputs = [ cmake ];
propagatedBuildInputs = [ imath zlib ];
+ doCheck = true;
+
meta = with lib; {
description = "A high dynamic-range (HDR) image file format";
homepage = "https://www.openexr.com/";
diff --git a/pkgs/development/libraries/openexr/default.nix b/pkgs/development/libraries/openexr/default.nix
index d60b7b7fc436..31ca48552755 100644
--- a/pkgs/development/libraries/openexr/default.nix
+++ b/pkgs/development/libraries/openexr/default.nix
@@ -26,6 +26,13 @@ stdenv.mkDerivation rec {
url = "https://github.com/AcademySoftwareFoundation/openexr/commit/2f19a01923885fda75ec9d19332de080ec7102bd.patch";
sha256 = "1yxmrdzq1x1911wdzwnzr29jmg2r4wd4yx3vhjn0y5dpny0ri5y5";
})
+ (fetchpatch {
+ name = "CVE-2021-45942.patch";
+ url = "https://github.com/AcademySoftwareFoundation/openexr/commit/11cad77da87c4fa2aab7d58dd5339e254db7937e.patch";
+ stripLen = 4;
+ extraPrefix = "OpenEXR/IlmImf/";
+ sha256 = "1wa2jn6sa0n3phaqvklnlbgk1bz60y756ad4jk4d757pzpnannsy";
+ })
];
nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/pango/default.nix b/pkgs/development/libraries/pango/default.nix
index a70a19e93141..964a3640871f 100644
--- a/pkgs/development/libraries/pango/default.nix
+++ b/pkgs/development/libraries/pango/default.nix
@@ -24,14 +24,14 @@
stdenv.mkDerivation rec {
pname = "pango";
- version = "1.50.0";
+ version = "1.50.3";
outputs = [ "bin" "out" "dev" ]
++ lib.optionals withDocs [ "devdoc" ];
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "26i2Ld+G4Q9z+Tw9Ila3MjiyvK+HA3yiKbQL3AQOs/M=";
+ sha256 = "St0F7fUcH7N1oczedJiRQSDiPLKA3XOVsa60QfGDikw=";
};
strictDeps = !withIntrospection;
diff --git a/pkgs/development/libraries/pangomm/2.48.nix b/pkgs/development/libraries/pangomm/2.48.nix
index f3fa6acec736..cdc644ec9cd9 100644
--- a/pkgs/development/libraries/pangomm/2.48.nix
+++ b/pkgs/development/libraries/pangomm/2.48.nix
@@ -14,13 +14,13 @@
stdenv.mkDerivation rec {
pname = "pangomm";
- version= "2.48.2";
+ version= "2.50.0";
outputs = [ "out" "dev" ];
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
- sha256 = "sha256-4ddVIsU/RieZh1zSR/m0nJHO1LGr5oOHrDWycTktTqU=";
+ sha256 = "sha256-onqnfgF7mvzp51HYW9HPiQq7s6WL9Z0PrJF+74LbO1s=";
};
nativeBuildInputs = [
diff --git a/pkgs/development/libraries/qt-5/5.12/default.nix b/pkgs/development/libraries/qt-5/5.12/default.nix
index 6b213567ad44..ef053eba9cb7 100644
--- a/pkgs/development/libraries/qt-5/5.12/default.nix
+++ b/pkgs/development/libraries/qt-5/5.12/default.nix
@@ -148,7 +148,7 @@ let
inherit (srcs.qtbase) src version;
patches = patches.qtbase;
inherit bison cups harfbuzz libGL;
- withGtk3 = true; inherit dconf gtk3;
+ withGtk3 = !stdenv.isDarwin; inherit dconf gtk3;
inherit debug developerBuild decryptSslTraffic;
inherit (darwin.apple_sdk.frameworks) AGL AppKit ApplicationServices Carbon Cocoa CoreAudio CoreBluetooth
CoreLocation CoreServices DiskArbitration Foundation OpenGL MetalKit IOKit;
diff --git a/pkgs/development/libraries/qt-5/5.14/default.nix b/pkgs/development/libraries/qt-5/5.14/default.nix
index f12aadea7380..1f893fb05191 100644
--- a/pkgs/development/libraries/qt-5/5.14/default.nix
+++ b/pkgs/development/libraries/qt-5/5.14/default.nix
@@ -149,7 +149,7 @@ let
inherit (srcs.qtbase) src version;
patches = patches.qtbase;
inherit bison cups harfbuzz libGL;
- withGtk3 = true; inherit dconf gtk3;
+ withGtk3 = !stdenv.isDarwin; inherit dconf gtk3;
inherit debug developerBuild decryptSslTraffic;
inherit (darwin.apple_sdk.frameworks) AGL AppKit ApplicationServices Carbon Cocoa CoreAudio CoreBluetooth
CoreLocation CoreServices DiskArbitration Foundation OpenGL MetalKit IOKit;
diff --git a/pkgs/development/libraries/qt-5/5.15/default.nix b/pkgs/development/libraries/qt-5/5.15/default.nix
index 19cca4237f95..2a76409ce4bc 100644
--- a/pkgs/development/libraries/qt-5/5.15/default.nix
+++ b/pkgs/development/libraries/qt-5/5.15/default.nix
@@ -111,7 +111,7 @@ let
inherit (srcs.qtbase) src version;
patches = patches.qtbase;
inherit bison cups harfbuzz libGL;
- withGtk3 = true; inherit dconf gtk3;
+ withGtk3 = !stdenv.isDarwin; inherit dconf gtk3;
inherit developerBuild decryptSslTraffic;
inherit (darwin.apple_sdk.frameworks) AGL AppKit ApplicationServices Carbon Cocoa CoreAudio CoreBluetooth
CoreLocation CoreServices DiskArbitration Foundation OpenGL MetalKit IOKit;
diff --git a/pkgs/development/libraries/re2/default.nix b/pkgs/development/libraries/re2/default.nix
index a70ad0f69e03..22d803c17be6 100644
--- a/pkgs/development/libraries/re2/default.nix
+++ b/pkgs/development/libraries/re2/default.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, nix-update-script }:
stdenv.mkDerivation rec {
pname = "re2";
- version = "2021-09-01";
+ version = "2021-11-01";
src = fetchFromGitHub {
owner = "google";
repo = "re2";
rev = version;
- sha256 = "1fyhypw345xz8zdh53gz6j1fwgrx0gszk1d349ja37dpxh4jp2jh";
+ sha256 = "sha256-q8u7xNp6n17F6twPoVkix8iCKPWUN+qg6rhSR4Dv+bI=";
};
patches = [
@@ -39,6 +39,12 @@ stdenv.mkDerivation rec {
doInstallCheck = true;
installCheckTarget = "testinstall";
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = pname;
+ };
+ };
+
meta = {
homepage = "https://github.com/google/re2";
description = "An efficient, principled regular expression library";
diff --git a/pkgs/development/libraries/retro-gtk/default.nix b/pkgs/development/libraries/retro-gtk/default.nix
index e1385f7a3ef0..113143311edf 100644
--- a/pkgs/development/libraries/retro-gtk/default.nix
+++ b/pkgs/development/libraries/retro-gtk/default.nix
@@ -1,6 +1,7 @@
{ lib
, stdenv
, fetchurl
+, fetchpatch
, cmake
, meson
, ninja
@@ -27,6 +28,11 @@ stdenv.mkDerivation rec {
patches = [
# https://gitlab.gnome.org/GNOME/retro-gtk/-/merge_requests/150
./gio-unix.patch
+ # fix build with meson 0.60 (https://gitlab.gnome.org/GNOME/retro-gtk/-/merge_requests/167)
+ (fetchpatch {
+ url = "https://gitlab.gnome.org/GNOME/retro-gtk/-/commit/8016c10e7216394bc66281f2d9be740140b6fad6.patch";
+ sha256 = "sha256-HcQnqadK5sJM5mMqi4KERkJM3H+MUl8AJAorpFDsJ68=";
+ })
];
nativeBuildInputs = [
diff --git a/pkgs/development/libraries/science/math/openblas/default.nix b/pkgs/development/libraries/science/math/openblas/default.nix
index 964cadbb6195..d61b6ee3acb0 100644
--- a/pkgs/development/libraries/science/math/openblas/default.nix
+++ b/pkgs/development/libraries/science/math/openblas/default.nix
@@ -129,7 +129,7 @@ let
in
stdenv.mkDerivation rec {
pname = "openblas";
- version = "0.3.18";
+ version = "0.3.19";
outputs = [ "out" "dev" ];
@@ -137,7 +137,7 @@ stdenv.mkDerivation rec {
owner = "xianyi";
repo = "OpenBLAS";
rev = "v${version}";
- sha256 = "sha256-b5i52rjsH65qAIlYGXQrzVxChi8/fwbD4eJTrxVq7Z8=";
+ sha256 = "sha256-EqA6oFM2theuvvuDOWeOx0Bv6AEFffmpWHJBzp23br0=";
};
inherit blas64;
diff --git a/pkgs/development/libraries/sqlite/default.nix b/pkgs/development/libraries/sqlite/default.nix
index de433ba5008d..6704d894f5a2 100644
--- a/pkgs/development/libraries/sqlite/default.nix
+++ b/pkgs/development/libraries/sqlite/default.nix
@@ -11,12 +11,13 @@ in
stdenv.mkDerivation rec {
pname = "sqlite";
- version = "3.37.0";
+ version = "3.37.2";
+ # nixpkgs-update: no auto update
# NB! Make sure to update ./tools.nix src (in the same directory).
src = fetchurl {
- url = "https://sqlite.org/2021/sqlite-autoconf-${archiveVersion version}.tar.gz";
- sha256 = "sha256-cxpGUdTUs2/H0h21hrLeTdAK8x/VT7WppLf0kgV0efc=";
+ url = "https://sqlite.org/2022/sqlite-autoconf-${archiveVersion version}.tar.gz";
+ sha256 = "sha256-QImo2bRnU3s/JG8he4TNduALHRqXH+WsoeMOIw5Gstg=";
};
outputs = [ "bin" "dev" "out" ];
diff --git a/pkgs/development/libraries/sqlite/tools.nix b/pkgs/development/libraries/sqlite/tools.nix
index 7309e1de0b68..d8d3735fe3d8 100644
--- a/pkgs/development/libraries/sqlite/tools.nix
+++ b/pkgs/development/libraries/sqlite/tools.nix
@@ -4,11 +4,12 @@ let
archiveVersion = import ./archive-version.nix lib;
mkTool = { pname, makeTarget, description, homepage }: stdenv.mkDerivation rec {
inherit pname;
- version = "3.37.0";
+ version = "3.37.2";
+ # nixpkgs-update: no auto update
src = assert version == sqlite.version; fetchurl {
- url = "https://sqlite.org/2021/sqlite-src-${archiveVersion version}.zip";
- sha256 = "sha256-cJd/s5Qhh9RidBOv3pqUkvoCuVSFCBK1OXS2ox7Oj68=";
+ url = "https://sqlite.org/2022/sqlite-src-${archiveVersion version}.zip";
+ sha256 = "sha256-SGdwtNX4i1uw26VA3W7hdjBn11Od/uGKfGb+m7A9Ftk=";
};
nativeBuildInputs = [ unzip ];
diff --git a/pkgs/development/libraries/tracker/default.nix b/pkgs/development/libraries/tracker/default.nix
index 7dbe0d410f75..727634a9fd5d 100644
--- a/pkgs/development/libraries/tracker/default.nix
+++ b/pkgs/development/libraries/tracker/default.nix
@@ -1,6 +1,7 @@
{ stdenv
, lib
, fetchurl
+, fetchpatch
, gettext
, meson
, ninja
@@ -44,6 +45,13 @@ stdenv.mkDerivation rec {
src = ./fix-paths.patch;
inherit asciidoc;
})
+
+ # Filter out hidden (wrapped) subcommands
+ # https://gitlab.gnome.org/GNOME/tracker/-/merge_requests/481
+ (fetchpatch {
+ url = "https://gitlab.gnome.org/GNOME/tracker/-/commit/8c28c24e447f13da8cf804cd7a00f9b909c5d3f9.patch";
+ sha256 = "EYo1nOtEr4semaPC5wk6A7bliRXu8qsBHaltd0DEI6Y=";
+ })
];
nativeBuildInputs = [
diff --git a/pkgs/development/libraries/wlroots/0.15.nix b/pkgs/development/libraries/wlroots/0.15.nix
index e7cf7bc9b4ce..7b7ff1816d75 100644
--- a/pkgs/development/libraries/wlroots/0.15.nix
+++ b/pkgs/development/libraries/wlroots/0.15.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitLab, meson_0_60, ninja, pkg-config, wayland-scanner
+{ lib, stdenv, fetchFromGitLab, meson, ninja, pkg-config, wayland-scanner
, libGL, wayland, wayland-protocols, libinput, libxkbcommon, pixman
, xcbutilwm, libX11, libcap, xcbutilimage, xcbutilerrors, mesa
, libpng, ffmpeg, xcbutilrenderutil, seatd, vulkan-loader, glslang
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
depsBuildBuild = [ pkg-config ];
- nativeBuildInputs = [ meson_0_60 ninja pkg-config wayland-scanner ];
+ nativeBuildInputs = [ meson ninja pkg-config wayland-scanner ];
buildInputs = [
libGL wayland wayland-protocols libinput libxkbcommon pixman
diff --git a/pkgs/development/libraries/xxHash/default.nix b/pkgs/development/libraries/xxHash/default.nix
index fbeadc2b353a..f4fa06112814 100644
--- a/pkgs/development/libraries/xxHash/default.nix
+++ b/pkgs/development/libraries/xxHash/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "xxHash";
- version = "0.8.0";
+ version = "0.8.1";
src = fetchFromGitHub {
owner = "Cyan4973";
repo = "xxHash";
rev = "v${version}";
- sha256 = "0hpbzdd6kfki5f61g103vp7pfczqkdj0js63avl0ss552jfb8h96";
+ sha256 = "sha256-2WoYCO6QRHWrbGP2mK04/sLNTyQLOuL3urVktilAwMA=";
};
# Upstream Makefile does not anticipate that user may not want to
@@ -22,6 +22,11 @@ stdenv.mkDerivation rec {
makeFlags = [ "PREFIX=$(dev)" "EXEC_PREFIX=$(out)" ];
+ # pkgs/build-support/setup-hooks/compress-man-pages.sh hook fails
+ # to compress symlinked manpages. Avoid compressing manpages until
+ # it's fixed.
+ dontGzipMan = true;
+
meta = with lib; {
description = "Extremely fast hash algorithm";
longDescription = ''
diff --git a/pkgs/development/ocaml-modules/ca-certs/default.nix b/pkgs/development/ocaml-modules/ca-certs/default.nix
index acf869dbd275..ce8993b465eb 100644
--- a/pkgs/development/ocaml-modules/ca-certs/default.nix
+++ b/pkgs/development/ocaml-modules/ca-certs/default.nix
@@ -18,7 +18,8 @@ buildDunePackage rec {
propagatedBuildInputs = [ bos fpath rresult ptime mirage-crypto x509 astring logs ];
- doCheck = true;
+ # Assumes nss-cacert < 3.74 https://github.com/mirage/ca-certs/issues/21
+ doCheck = false;
checkInputs = [
cacert # for /etc/ssl/certs/ca-bundle.crt
alcotest
diff --git a/pkgs/development/python-modules/adal/default.nix b/pkgs/development/python-modules/adal/default.nix
index d3826013c8ee..45c256b6647b 100644
--- a/pkgs/development/python-modules/adal/default.nix
+++ b/pkgs/development/python-modules/adal/default.nix
@@ -1,19 +1,47 @@
-{ lib, buildPythonPackage, fetchPypi
-, requests, pyjwt, python-dateutil }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, httpretty
+, pyjwt
+, pytestCheckHook
+, python-dateutil
+, requests
+}:
buildPythonPackage rec {
pname = "adal";
version = "1.2.7";
+ format = "setuptools";
- src = fetchPypi {
- inherit pname version;
- sha256 = "d74f45b81317454d96e982fd1c50e6fb5c99ac2223728aea8764433a39f566f1";
+ src = fetchFromGitHub {
+ owner = "AzureAD";
+ repo = "azure-activedirectory-library-for-python";
+ rev = version;
+ hash = "sha256-HE8/P0aohoZNeMdcQVKdz6M31FMrjsd7oVytiaD0idI=";
};
- propagatedBuildInputs = [ requests pyjwt python-dateutil ];
+ propagatedBuildInputs = [
+ pyjwt
+ python-dateutil
+ requests
+ ];
+
+ checkInputs = [
+ httpretty
+ pytestCheckHook
+ ];
+
+ disabledTests = [
+ # AssertionError: 'Mex [23 chars]tp error:...
+ "test_failed_request"
+ ];
+
+ pythonImportsCheck = [
+ "adal"
+ ];
meta = with lib; {
- description = "Library to make it easy for python application to authenticate to Azure Active Directory (AAD) in order to access AAD protected web resources";
+ description = "Python module to authenticate to Azure Active Directory (AAD) in order to access AAD protected web resources";
homepage = "https://github.com/AzureAD/azure-activedirectory-library-for-python";
license = licenses.mit;
maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/attrs/default.nix b/pkgs/development/python-modules/attrs/default.nix
index 08730e3d689e..4b10f4203e8b 100644
--- a/pkgs/development/python-modules/attrs/default.nix
+++ b/pkgs/development/python-modules/attrs/default.nix
@@ -6,14 +6,17 @@
buildPythonPackage rec {
pname = "attrs";
- version = "21.2.0";
+ version = "21.4.0";
src = fetchPypi {
inherit pname version;
- sha256 = "ef6aaac3ca6cd92904cdd0d83f629a15f18053ec84e6432106f7a4d04ae4f5fb";
+ hash = "sha256-YmuoI0IR25joad92IwoTfExAoS1yRFxF1fW3FvB24v0=";
};
- outputs = [ "out" "testout" ];
+ outputs = [
+ "out"
+ "testout"
+ ];
postInstall = ''
# Install tests as the tests output.
@@ -21,7 +24,9 @@ buildPythonPackage rec {
cp -R tests $testout/tests
'';
- pythonImportsCheck = [ "attr" ];
+ pythonImportsCheck = [
+ "attr"
+ ];
# pytest depends on attrs, so we can't do this out-of-the-box.
# Instead, we do this as a passthru.tests test.
@@ -35,5 +40,6 @@ buildPythonPackage rec {
description = "Python attributes without boilerplate";
homepage = "https://github.com/hynek/attrs";
license = licenses.mit;
+ maintainers = with maintainers; [ ];
};
}
diff --git a/pkgs/development/python-modules/charset-normalizer/default.nix b/pkgs/development/python-modules/charset-normalizer/default.nix
index 7f7f54b73d91..ba7dd1db3b9a 100644
--- a/pkgs/development/python-modules/charset-normalizer/default.nix
+++ b/pkgs/development/python-modules/charset-normalizer/default.nix
@@ -2,17 +2,21 @@
, buildPythonPackage
, fetchFromGitHub
, pytestCheckHook
+, pythonOlder
}:
buildPythonPackage rec {
pname = "charset-normalizer";
- version = "2.0.8";
+ version = "2.0.10";
+ format = "setuptools";
+
+ disabled = pythonOlder "3.5";
src = fetchFromGitHub {
owner = "Ousret";
repo = "charset_normalizer";
rev = version;
- sha256 = "sha256-+acnzdDcujnMa0FYlWaAX7Ga9APMRlvBLKoogIyY8YM=";
+ hash = "sha256-QsUqrC2oycvyCbOzGmHahgNi40YZ0sujb3Cj8EnsGS8=";
};
checkInputs = [
@@ -24,7 +28,9 @@ buildPythonPackage rec {
--replace " --cov=charset_normalizer --cov-report=term-missing" ""
'';
- pythonImportsCheck = [ "charset_normalizer" ];
+ pythonImportsCheck = [
+ "charset_normalizer"
+ ];
meta = with lib; {
description = "Python module for encoding and language detection";
diff --git a/pkgs/development/python-modules/dbus/default.nix b/pkgs/development/python-modules/dbus/default.nix
index 599c911b9990..0685ca6fcca5 100644
--- a/pkgs/development/python-modules/dbus/default.nix
+++ b/pkgs/development/python-modules/dbus/default.nix
@@ -24,7 +24,7 @@ buildPythonPackage rec {
'' else null;
configureFlags = [
- "PYTHON_VERSION=${lib.versions.major python.version}"
+ "PYTHON=${python.pythonForBuild.interpreter}"
];
nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/development/python-modules/django-redis/default.nix b/pkgs/development/python-modules/django-redis/default.nix
index b088876b3e4a..1ad52e22d0ff 100644
--- a/pkgs/development/python-modules/django-redis/default.nix
+++ b/pkgs/development/python-modules/django-redis/default.nix
@@ -19,7 +19,7 @@
let
pname = "django-redis";
- version = "5.1.0";
+ version = "5.2.0";
in
buildPythonPackage {
inherit pname version;
@@ -30,7 +30,7 @@ buildPythonPackage {
owner = "jazzband";
repo = "django-redis";
rev = version;
- sha256 = "sha256-S94qH2W5e65yzGfPxpwBUKhvvVS0Uc/zSyo66bnvzf4=";
+ sha256 = "sha256-e8wCgfxBT+WKFY4H83CTMirTpQym3QAoeWnXbRCDO90=";
};
postPatch = ''
@@ -53,6 +53,11 @@ buildPythonPackage {
preCheck = ''
${pkgs.redis}/bin/redis-server &
+ REDIS_PID=$!
+ '';
+
+ postCheck = ''
+ kill $REDIS_PID
'';
checkInputs = [
diff --git a/pkgs/development/python-modules/django/2.nix b/pkgs/development/python-modules/django/2.nix
index 9a0d98034c66..f20eb49c0233 100644
--- a/pkgs/development/python-modules/django/2.nix
+++ b/pkgs/development/python-modules/django/2.nix
@@ -6,13 +6,13 @@
buildPythonPackage rec {
pname = "Django";
- version = "2.2.25";
+ version = "2.2.26";
disabled = !isPy3k;
src = fetchPypi {
inherit pname version;
- sha256 = "sha256-seZerzcTR9SxPrfgYbCXhslzBh3pU5DDJ8hcHiqiNJw=";
+ sha256 = "sha256-36U3Jn1SxiQ6YrMoVadEyoPDfHBgCqz/v9mLxdbYUY8=";
};
patches = lib.optional withGdal
diff --git a/pkgs/development/python-modules/django/3.nix b/pkgs/development/python-modules/django/3.nix
index fdcb8129f27d..a7bafcfb2707 100644
--- a/pkgs/development/python-modules/django/3.nix
+++ b/pkgs/development/python-modules/django/3.nix
@@ -13,13 +13,13 @@
buildPythonPackage rec {
pname = "Django";
- version = "3.2.10";
+ version = "3.2.11";
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
- sha256 = "sha256-B06IGLS0Cs3CNp5n3NZVXVWDKXhUCNzSU0DumPHx1cQ=";
+ sha256 = "sha256-aclKvl1rGwiL9HXgm3t0QD+UPjTaEH55hGXSBF2ifnU=";
};
patches = lib.optional withGdal
diff --git a/pkgs/development/python-modules/flit-core/default.nix b/pkgs/development/python-modules/flit-core/default.nix
index 7cb9ed2c6c45..35bba06f1f36 100644
--- a/pkgs/development/python-modules/flit-core/default.nix
+++ b/pkgs/development/python-modules/flit-core/default.nix
@@ -2,12 +2,11 @@
, buildPythonPackage
, callPackage
, flit
-, toml
}:
buildPythonPackage rec {
pname = "flit-core";
- version = "3.2.0";
+ version = "3.6.0";
format = "pyproject";
outputs = [
@@ -21,10 +20,6 @@ buildPythonPackage rec {
cd flit_core
'';
- propagatedBuildInputs = [
- toml
- ];
-
postInstall = ''
mkdir $testsout
cp -R ../tests $testsout/tests
diff --git a/pkgs/development/python-modules/flit/default.nix b/pkgs/development/python-modules/flit/default.nix
index 0a6d1ba3158a..830ed2702b89 100644
--- a/pkgs/development/python-modules/flit/default.nix
+++ b/pkgs/development/python-modules/flit/default.nix
@@ -3,13 +3,12 @@
, fetchFromGitHub
, docutils
, requests
-, requests_download
-, zipfile36
-, pythonOlder
, pytest
, testpath
, responses
, flit-core
+, tomli
+, tomli-w
}:
# Flit is actually an application to build universal wheels.
@@ -19,14 +18,14 @@
buildPythonPackage rec {
pname = "flit";
- version = "3.2.0";
+ version = "3.6.0";
format = "pyproject";
src = fetchFromGitHub {
owner = "takluyver";
repo = "flit";
rev = version;
- sha256 = "sha256-zN+/oAyXBo6Ho7n/xhOQ2mjtPGKA1anCvl3sVf7t+Do=";
+ sha256 = "sha256-D3q/1g6njrrmizooGmzNd9g2nKs00dMGj9jrrv3Y6HQ=";
};
nativeBuildInputs = [
@@ -36,10 +35,9 @@ buildPythonPackage rec {
propagatedBuildInputs = [
docutils
requests
- requests_download
flit-core
- ] ++ lib.optionals (pythonOlder "3.6") [
- zipfile36
+ tomli
+ tomli-w
];
checkInputs = [ pytest testpath responses ];
diff --git a/pkgs/development/python-modules/hiredis/default.nix b/pkgs/development/python-modules/hiredis/default.nix
index 00ce786b005d..eea5e5bf8043 100644
--- a/pkgs/development/python-modules/hiredis/default.nix
+++ b/pkgs/development/python-modules/hiredis/default.nix
@@ -1,25 +1,30 @@
{ lib
, buildPythonPackage
, fetchPypi
-, redis
+, pythonOlder
+
+# tested using
, python
}:
buildPythonPackage rec {
pname = "hiredis";
version = "2.0.0";
+ format = "setuptools";
+
+ disabled = pythonOlder "3.6";
src = fetchPypi {
inherit pname version;
sha256 = "81d6d8e39695f2c37954d1011c0480ef7cf444d4e3ae24bc5e89ee5de360139a";
};
- propagatedBuildInputs = [ redis ];
+
+ pythonImportsCheck = [ "hiredis" ];
checkPhase = ''
mv hiredis _hiredis
${python.interpreter} test.py
'';
- pythonImportsCheck = [ "hiredis" ];
meta = with lib; {
description = "Wraps protocol parsing code in hiredis, speeds up parsing of multi bulk replies";
diff --git a/pkgs/development/python-modules/html-sanitizer/default.nix b/pkgs/development/python-modules/html-sanitizer/default.nix
index 546f1acad094..ef029586bebf 100644
--- a/pkgs/development/python-modules/html-sanitizer/default.nix
+++ b/pkgs/development/python-modules/html-sanitizer/default.nix
@@ -8,13 +8,13 @@
buildPythonPackage rec {
pname = "html-sanitizer";
- version = "1.9.1";
+ version = "1.9.2";
src = fetchFromGitHub {
owner = "matthiask";
repo = pname;
rev = version;
- sha256 = "0nnv34924r0yn01rwlk749j5ijy7yxyj302s1i57yjrkqr3zlvas";
+ sha256 = "sha256-ZPyGF7N+EZHfgqZfRQx4x1r83BMur+Zg2kdtVISn3I8=";
};
propagatedBuildInputs = [
@@ -26,9 +26,17 @@ buildPythonPackage rec {
pytestCheckHook
];
- pytestFlagsArray = [ "html_sanitizer/tests.py" ];
+ pytestFlagsArray = [
+ "html_sanitizer/tests.py"
+ ];
- pythonImportsCheck = [ "html_sanitizer" ];
+ disabledTests = [
+ "test_billion_laughs"
+ ];
+
+ pythonImportsCheck = [
+ "html_sanitizer"
+ ];
meta = with lib; {
description = "Allowlist-based and very opinionated HTML sanitizer";
diff --git a/pkgs/development/python-modules/html5lib/default.nix b/pkgs/development/python-modules/html5lib/default.nix
index 08ea5a2b3e98..58da63d02edd 100644
--- a/pkgs/development/python-modules/html5lib/default.nix
+++ b/pkgs/development/python-modules/html5lib/default.nix
@@ -1,6 +1,7 @@
{ lib
, buildPythonPackage
, fetchPypi
+, fetchpatch
, six
, webencodings
, mock
@@ -17,6 +18,15 @@ buildPythonPackage rec {
sha256 = "b2e5b40261e20f354d198eae92afc10d750afb487ed5e50f9c4eaf07c184146f";
};
+ patches = [
+ # Fix compatibility with pytest 6.
+ # Will be included in the next release after 1.1.
+ (fetchpatch {
+ url = "https://github.com/html5lib/html5lib-python/commit/2c19b9899ab3a3e8bd0ca35e5d78544334204169.patch";
+ sha256 = "sha256-VGCeB6o2QO/skeCZs8XLPfgEYVOSRL8cCpG7ajbZWEs=";
+ })
+ ];
+
propagatedBuildInputs = [
six
webencodings
diff --git a/pkgs/development/python-modules/importlib-metadata/default.nix b/pkgs/development/python-modules/importlib-metadata/default.nix
index e13f73616775..a607de5eb114 100644
--- a/pkgs/development/python-modules/importlib-metadata/default.nix
+++ b/pkgs/development/python-modules/importlib-metadata/default.nix
@@ -10,15 +10,15 @@
buildPythonPackage rec {
pname = "importlib-metadata";
- version = "4.8.2";
+ version = "4.10.0";
format = "setuptools";
- disabled = pythonOlder "3.6";
+ disabled = pythonOlder "3.7";
src = fetchPypi {
pname = "importlib_metadata";
inherit version;
- sha256 = "sha256-db3sFMOX9ShyTBv9lwnWYLM6TS53OHozWPILhIu15fs=";
+ hash = "sha256-kqi1jOc0sqRJSHjg7PfXnM16EotfxgFMQB4LYfAG8PY=";
};
nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/lz4/default.nix b/pkgs/development/python-modules/lz4/default.nix
index cc84fa75c699..9e2cc9b31e15 100644
--- a/pkgs/development/python-modules/lz4/default.nix
+++ b/pkgs/development/python-modules/lz4/default.nix
@@ -1,41 +1,68 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
-, future
-, isPy3k
+, pythonOlder
+
+# native inputs
, pkgconfig
-, psutil
-, pytest
-, pytest-cov
-, pytest-runner
, setuptools-scm
+
+# tests
+, psutil
+, pytestCheckHook
}:
buildPythonPackage rec {
pname = "python-lz4";
- version = "3.1.10";
+ version = "3.1.12";
+ format = "setuptools";
- # get full repository inorder to run tests
+ disabled = pythonOlder "3.5";
+
+ # get full repository in order to run tests
src = fetchFromGitHub {
owner = pname;
repo = pname;
- rev = version;
- sha256 = "0a4gic8xh3simkk5k8302rxwf765pr6y63k3js79mkl983vpxcim";
+ rev = "v${version}";
+ sha256 = "sha256-fqt9aJGqZpfbiYtU8cmm7UQaixZwbTKFBwRfR1B/qic=";
};
- nativeBuildInputs = [ setuptools-scm pkgconfig pytest-runner ];
- checkInputs = [ pytest pytest-cov psutil ];
- propagatedBuildInputs = lib.optionals (!isPy3k) [ future ];
+ SETUPTOOLS_SCM_PRETEND_VERSION = version;
- # give a hint to setuptools-scm on package version
- preBuild = ''
- export SETUPTOOLS_SCM_PRETEND_VERSION="v${version}"
+ postPatch = ''
+ sed -i '/pytest-cov/d' setup.py
'';
- meta = {
- description = "LZ4 Bindings for Python";
- homepage = "https://github.com/python-lz4/python-lz4";
- license = lib.licenses.bsd3;
- maintainers = with lib.maintainers; [ costrouc ];
+ nativeBuildInputs = [
+ setuptools-scm
+ pkgconfig
+ ];
+
+ pythonImportsCheck = [
+ "lz4"
+ "lz4.block"
+ "lz4.frame"
+ "lz4.stream"
+ ];
+
+ checkInputs = [
+ pytestCheckHook
+ psutil
+ ];
+
+ # leave build directory, so the installed library gets imported
+ preCheck = ''
+ pushd tests
+ '';
+
+ postCheck = ''
+ popd
+ '';
+
+ meta = with lib; {
+ description = "LZ4 Bindings for Python";
+ homepage = "https://github.com/python-lz4/python-lz4";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ costrouc ];
};
}
diff --git a/pkgs/development/python-modules/matplotlib-inline/default.nix b/pkgs/development/python-modules/matplotlib-inline/default.nix
index 9ee23b87ee81..d863239430dc 100644
--- a/pkgs/development/python-modules/matplotlib-inline/default.nix
+++ b/pkgs/development/python-modules/matplotlib-inline/default.nix
@@ -1,5 +1,4 @@
{ lib, buildPythonPackage, fetchPypi
-, matplotlib
, traitlets
# tests
@@ -16,7 +15,6 @@ buildPythonPackage rec {
};
propagatedBuildInputs = [
- matplotlib # not documented, but required
traitlets
];
diff --git a/pkgs/development/python-modules/mypy/default.nix b/pkgs/development/python-modules/mypy/default.nix
index 149aefb9a57f..5c5e985641ff 100644
--- a/pkgs/development/python-modules/mypy/default.nix
+++ b/pkgs/development/python-modules/mypy/default.nix
@@ -14,14 +14,14 @@
buildPythonPackage rec {
pname = "mypy";
- version = "0.930";
+ version = "0.931";
disabled = pythonOlder "3.6";
src = fetchFromGitHub {
owner = "python";
repo = "mypy";
rev = "v${version}";
- sha256 = "sha256-0yo6f9hRYFfwdfukOGNNTgPCIFO2MZdfMvzbci7FWRs=";
+ sha256 = "1v83flrdxh8grcp40qw04q4hzjflih9xwib64078vsxv2w36f817";
};
patches = [
diff --git a/pkgs/development/python-modules/packaging/default.nix b/pkgs/development/python-modules/packaging/default.nix
index d76b5b1723ef..648a548e521b 100644
--- a/pkgs/development/python-modules/packaging/default.nix
+++ b/pkgs/development/python-modules/packaging/default.nix
@@ -10,12 +10,12 @@
buildPythonPackage rec {
pname = "packaging";
- version = "20.9";
+ version = "21.3";
format = "pyproject";
src = fetchPypi {
inherit pname version;
- sha256 = "sha256-WzJ6wTINyGPcpy9FFOzAhvMRhnRLhKIwN0zB/Xdv6uU=";
+ sha256 = "sha256-3UfEKSfYmrkR5gZRiQfMLTofOLvQJjhZcGQ/nFuOz+s=";
};
nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/paramiko/default.nix b/pkgs/development/python-modules/paramiko/default.nix
index 86154554b692..d271111d58f2 100644
--- a/pkgs/development/python-modules/paramiko/default.nix
+++ b/pkgs/development/python-modules/paramiko/default.nix
@@ -1,48 +1,65 @@
-{ pkgs
-, buildPythonPackage
-, fetchPypi
-, cryptography
+{ lib
, bcrypt
+, buildPythonPackage
+, cryptography
+, fetchPypi
, invoke
-, pynacl
-, pyasn1
-, pytestCheckHook
-, pytest-relaxed
, mock
+, pyasn1
+, pynacl
+, pytest-relaxed
+, pytestCheckHook
}:
buildPythonPackage rec {
pname = "paramiko";
- version = "2.8.1";
+ version = "2.9.1";
+ format = "setuptools";
src = fetchPypi {
inherit pname version;
- sha256 = "85b1245054e5d7592b9088cc6d08da22445417912d3a3e48138675c7a8616438";
+ hash = "sha256-of3e07VfYdIzieT+UtmuQolgrJWNLt9QNz+qXYkm7dA=";
};
- propagatedBuildInputs = [ bcrypt cryptography pynacl pyasn1 ];
+ propagatedBuildInputs = [
+ bcrypt
+ cryptography
+ pyasn1
+ pynacl
+ ];
+
+ checkInputs = [
+ invoke
+ mock
+ pytest-relaxed
+ pytestCheckHook
+ ];
# with python 3.9.6+, the deprecation warnings will fail the test suite
# see: https://github.com/pyinvoke/invoke/issues/829
doCheck = false;
- checkInputs = [ invoke pytestCheckHook pytest-relaxed mock ];
disabledTestPaths = [
"tests/test_sftp.py"
"tests/test_config.py"
];
+ pythonImportsCheck = [
+ "paramiko"
+ ];
+
__darwinAllowLocalNetworking = true;
- meta = with pkgs.lib; {
+ meta = with lib; {
homepage = "https://github.com/paramiko/paramiko/";
description = "Native Python SSHv2 protocol library";
license = licenses.lgpl21Plus;
longDescription = ''
- This is a library for making SSH2 connections (client or server).
- Emphasis is on using SSH2 as an alternative to SSL for making secure
- connections between python scripts. All major ciphers and hash methods
- are supported. SFTP client and server mode are both supported too.
+ Library for making SSH2 connections (client or server). Emphasis is
+ on using SSH2 as an alternative to SSL for making secure connections
+ between python scripts. All major ciphers and hash methods are
+ supported. SFTP client and server mode are both supported too.
'';
+ maintainers = with maintainers; [ ];
};
}
diff --git a/pkgs/development/python-modules/platformdirs/default.nix b/pkgs/development/python-modules/platformdirs/default.nix
index 062295a4eada..f2e865991487 100644
--- a/pkgs/development/python-modules/platformdirs/default.nix
+++ b/pkgs/development/python-modules/platformdirs/default.nix
@@ -11,14 +11,16 @@
buildPythonPackage rec {
pname = "platformdirs";
- version = "2.4.0";
- disabled = pythonOlder "3.6";
+ version = "2.4.1";
+ format = "setuptools";
+
+ disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = version;
- sha256 = "sha256-Ox1CVq2M2eddZtpuZx0IfvuOm6RPsAs27WkMdZSeh0E=";
+ sha256 = "sha256-Ce1dwE2g/7o91NPkmlM0uv0eMB7WzFCExV/8ZCAn22Y=";
};
SETUPTOOLS_SCM_PRETEND_VERSION = version;
@@ -33,7 +35,9 @@ buildPythonPackage rec {
pytestCheckHook
];
- pythonImportsCheck = [ "platformdirs" ];
+ pythonImportsCheck = [
+ "platformdirs"
+ ];
meta = with lib; {
description = "Python module for determining appropriate platform-specific directories";
diff --git a/pkgs/development/python-modules/poetry/default.nix b/pkgs/development/python-modules/poetry/default.nix
index 2375800e3a75..5efbe56ac5bd 100644
--- a/pkgs/development/python-modules/poetry/default.nix
+++ b/pkgs/development/python-modules/poetry/default.nix
@@ -15,6 +15,7 @@
, intreehooks
, keyring
, lockfile
+, packaging
, pexpect
, pkginfo
, poetry-core
@@ -45,9 +46,10 @@ buildPythonPackage rec {
postPatch = ''
substituteInPlace pyproject.toml \
- --replace 'importlib-metadata = {version = "^1.6.0", python = "<3.8"}' \
+ --replace 'importlib-metadata = {version = "^1.6.0", python = "<3.8"}' \
'importlib-metadata = {version = ">=1.6", python = "<3.8"}' \
- --replace 'version = "^21.2.0"' 'version = ">=21.2"'
+ --replace 'version = "^21.2.0"' 'version = ">=21.2"' \
+ --replace 'packaging = "^20.4"' 'packaging = "*"'
'';
nativeBuildInputs = [
@@ -64,6 +66,7 @@ buildPythonPackage rec {
html5lib
keyring
lockfile
+ packaging
pexpect
pkginfo
poetry-core
diff --git a/pkgs/development/python-modules/pybind11/default.nix b/pkgs/development/python-modules/pybind11/default.nix
index d33d9ffc575d..d93bfe149cb8 100644
--- a/pkgs/development/python-modules/pybind11/default.nix
+++ b/pkgs/development/python-modules/pybind11/default.nix
@@ -13,13 +13,13 @@
buildPythonPackage rec {
pname = "pybind11";
- version = "2.8.1";
+ version = "2.9.0";
src = fetchFromGitHub {
owner = "pybind";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-Gk4ZN/g6SRWFm0ALCvyald/9zq3wBd48mGdqdGCeGYI=";
+ hash = "sha256-zYDgXXpn8Z1Zti8Eje8qxDvbQV70/LmezG3AtxzDG+o=";
};
nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/python-modules/pycryptodome-test-vectors/default.nix b/pkgs/development/python-modules/pycryptodome-test-vectors/default.nix
new file mode 100644
index 000000000000..4fbc259c188e
--- /dev/null
+++ b/pkgs/development/python-modules/pycryptodome-test-vectors/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+ pname = "pycryptodome-test-vectors";
+ version = "1.0.4";
+ format = "setuptools";
+
+ src = fetchPypi {
+ inherit pname version;
+ hash = "sha256-2+ZL8snmaB0tNxGZRbUM6SdfXZf4CM0nh3/wTOu9R50=";
+ extension = "zip";
+ };
+
+ # Module has no tests
+ doCheck = false;
+
+ pythonImportsCheck = [
+ "pycryptodome_test_vectors"
+ ];
+
+ meta = with lib; {
+ description = "Test vectors for PyCryptodome cryptographic library";
+ homepage = "https://www.pycryptodome.org/";
+ license = with licenses; [ bsd2 /* and */ asl20 ];
+ maintainers = with maintainers; [ fab ];
+ };
+}
diff --git a/pkgs/development/python-modules/pycryptodome/default.nix b/pkgs/development/python-modules/pycryptodome/default.nix
index 19b2447acb11..44e7ed0ad4aa 100644
--- a/pkgs/development/python-modules/pycryptodome/default.nix
+++ b/pkgs/development/python-modules/pycryptodome/default.nix
@@ -1,17 +1,29 @@
-{ lib, fetchPypi, buildPythonPackage }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pycryptodome-test-vectors
+}:
buildPythonPackage rec {
- version = "3.11.0";
pname = "pycryptodome";
+ version = "3.12.0";
+ format = "setuptools";
src = fetchPypi {
inherit pname version;
- sha256 = "428096bbf7a77e207f418dfd4d7c284df8ade81d2dc80f010e92753a3e406ad0";
+ hash = "sha256-Esc0OuxaOz31xHJlKBsSthHybsk2e2EpGZ1n2lS3aME=";
+ extension = "zip";
};
+ pythonImportsCheck = [
+ "Crypto"
+ ];
+
meta = with lib; {
- homepage = "https://www.pycryptodome.org/";
description = "Python Cryptography Toolkit";
+ homepage = "https://www.pycryptodome.org/";
+ license = with licenses; [ bsd2 /* and */ asl20 ];
+ maintainers = with maintainers; [ fab ];
platforms = platforms.unix;
};
}
diff --git a/pkgs/development/python-modules/pycryptodomex/default.nix b/pkgs/development/python-modules/pycryptodomex/default.nix
index eab3a6b0bbd5..c9f622d6c699 100644
--- a/pkgs/development/python-modules/pycryptodomex/default.nix
+++ b/pkgs/development/python-modules/pycryptodomex/default.nix
@@ -1,23 +1,28 @@
{ lib
, buildPythonPackage
, fetchPypi
+, pycryptodome-test-vectors
}:
buildPythonPackage rec {
pname = "pycryptodomex";
- version = "3.11.0";
+ version = "3.12.0";
+ format = "setuptools";
src = fetchPypi {
inherit pname version;
- sha256 = "0398366656bb55ebdb1d1d493a7175fc48ade449283086db254ac44c7d318d6d";
+ hash = "sha256-ki6drAFm5GF+XHmA0s/2kSputctcE+fs4iJDhlC9f2Y=";
+ extension = "zip";
};
- pythonImportsCheck = [ "Cryptodome" ];
+ pythonImportsCheck = [
+ "Cryptodome"
+ ];
meta = with lib; {
description = "A self-contained cryptographic library for Python";
homepage = "https://www.pycryptodome.org";
- license = licenses.bsd2;
+ license = with licenses; [ bsd2 /* and */ asl20 ];
maintainers = with maintainers; [ fab ];
};
}
diff --git a/pkgs/development/python-modules/pytenable/default.nix b/pkgs/development/python-modules/pytenable/default.nix
index af3c2c9b6514..e4417139bfa3 100644
--- a/pkgs/development/python-modules/pytenable/default.nix
+++ b/pkgs/development/python-modules/pytenable/default.nix
@@ -9,6 +9,7 @@
, pytestCheckHook
, python-box
, python-dateutil
+, pythonOlder
, requests
, requests-pkcs12
, responses
@@ -19,13 +20,16 @@
buildPythonPackage rec {
pname = "pytenable";
- version = "1.4.2";
+ version = "1.4.3";
+ format = "setuptools";
+
+ disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "tenable";
repo = "pyTenable";
rev = version;
- sha256 = "sha256-qljoJ+nYFVS5VHr/M4mITtO9Czuyb4HLzVjhprhyJIs=";
+ hash = "sha256-p9d3wZkOMhNQWJN6tCNUlW15A3irU8QN/nm7PLGTE/M=";
};
propagatedBuildInputs = [
@@ -59,7 +63,9 @@ buildPythonPackage rec {
"test_uploads_docker_push_cs_tag_typeerror"
];
- pythonImportsCheck = [ "tenable" ];
+ pythonImportsCheck = [
+ "tenable"
+ ];
meta = with lib; {
description = "Python library for the Tenable.io and TenableSC API";
diff --git a/pkgs/development/python-modules/redis/default.nix b/pkgs/development/python-modules/redis/default.nix
index 35109e836fa4..0731487575b1 100644
--- a/pkgs/development/python-modules/redis/default.nix
+++ b/pkgs/development/python-modules/redis/default.nix
@@ -1,14 +1,49 @@
-{ lib, fetchPypi, buildPythonPackage }:
+{ lib
+, fetchPypi
+, buildPythonPackage
+, pythonOlder
+
+# propagates
+, cryptography
+, deprecated
+, hiredis
+, importlib-metadata
+, packaging
+, requests
+}:
buildPythonPackage rec {
pname = "redis";
- version = "3.5.3";
+ version = "4.1.0";
+ format = "setuptools";
+
+ disabled = pythonOlder "3.6";
src = fetchPypi {
inherit pname version;
- sha256 = "0e7e0cfca8660dea8b7d5cd8c4f6c5e29e11f31158c0b0ae91a397f00e5a05a2";
+ sha256 = "sha256-IfCiO85weQkHbmuizgdsulm/9g0qsily4GR/32IP/kc=";
};
+ propagatedBuildInputs = [
+ cryptography
+ deprecated
+ hiredis
+ packaging
+ requests
+ ] ++ lib.optionals (pythonOlder "3.8") [
+ importlib-metadata
+ ];
+
+ pythonImportsCheck = [
+ "redis"
+ "redis.client"
+ "redis.cluster"
+ "redis.connection"
+ "redis.exceptions"
+ "redis.sentinel"
+ "redis.utils"
+ ];
+
# tests require a running redis
doCheck = false;
diff --git a/pkgs/development/python-modules/restfly/default.nix b/pkgs/development/python-modules/restfly/default.nix
index 83d50cf1346c..d153a5f3c753 100644
--- a/pkgs/development/python-modules/restfly/default.nix
+++ b/pkgs/development/python-modules/restfly/default.nix
@@ -6,18 +6,22 @@
, pytest-vcr
, pytestCheckHook
, python-box
+, pythonOlder
, requests
}:
buildPythonPackage rec {
pname = "restfly";
version = "1.4.5";
+ format = "setuptools";
+
+ disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "stevemcgrath";
repo = pname;
rev = version;
- sha256 = "sha256-wWFf8LFZkwzbHX545tA5w2sB3ClL7eFuF+jGX0fSiSc=";
+ hash = "sha256-wWFf8LFZkwzbHX545tA5w2sB3ClL7eFuF+jGX0fSiSc=";
};
propagatedBuildInputs = [
@@ -37,7 +41,9 @@ buildPythonPackage rec {
"test_session_ssl_error"
];
- pythonImportsCheck = [ "restfly" ];
+ pythonImportsCheck = [
+ "restfly"
+ ];
meta = with lib; {
description = "Python RESTfly API Library Framework";
diff --git a/pkgs/development/python-modules/typing-extensions/default.nix b/pkgs/development/python-modules/typing-extensions/default.nix
index 939ca25eb1a3..1e29bc9a6160 100644
--- a/pkgs/development/python-modules/typing-extensions/default.nix
+++ b/pkgs/development/python-modules/typing-extensions/default.nix
@@ -1,27 +1,41 @@
-{ lib, buildPythonPackage, fetchPypi, pythonOlder, isPy3k, python, typing }:
-let
- testDir = if isPy3k then "src_py3" else "src_py2";
+{ lib
+, buildPythonPackage
+, fetchPypi
+, flit-core
+, python
+, pythonOlder
+}:
-in buildPythonPackage rec {
- pname = "typing_extensions";
- version = "3.10.0.2";
+buildPythonPackage rec {
+ pname = "typing-extensions";
+ version = "4.0.1";
+ format = "pyproject";
+
+ disabled = pythonOlder "3.6";
src = fetchPypi {
- inherit pname version;
- sha256 = "49f75d16ff11f1cd258e1b988ccff82a3ca5570217d7ad8c5f48205dd99a677e";
+ pname = "typing_extensions";
+ inherit version;
+ hash = "sha256-TKCR3qFJ+UXsVq+0ja5xTyHoaS7yKjlSI7zTKJYbag4=";
};
- checkInputs = lib.optional (pythonOlder "3.5") typing;
+ nativeBuildInputs = [
+ flit-core
+ ];
- # Error for Python3.6: ImportError: cannot import name 'ann_module'
- # See https://github.com/python/typing/pull/280
- doCheck = pythonOlder "3.6";
-
- checkPhase = ''
- cd ${testDir}
- ${python.interpreter} -m unittest discover
+ postPatch = ''
+ # Remove metadata for README which are outdated
+ sed -i -e '11,24d' pyproject.toml
'';
+ # Tests are not part of PyPI releases. GitHub source can't be used
+ # as it ends with an infinite recursion
+ doCheck = false;
+
+ pythonImportsCheck = [
+ "typing_extensions"
+ ];
+
meta = with lib; {
description = "Backported and Experimental Type Hints for Python 3.5+";
homepage = "https://github.com/python/typing";
diff --git a/pkgs/development/python-modules/tzdata/default.nix b/pkgs/development/python-modules/tzdata/default.nix
index 7f1803d12c62..cfc46a658d34 100644
--- a/pkgs/development/python-modules/tzdata/default.nix
+++ b/pkgs/development/python-modules/tzdata/default.nix
@@ -1,28 +1,32 @@
{ lib
, buildPythonPackage
, fetchPypi
-, pythonOlder
-, pytestCheckHook
-, pytest-subtests
, importlib-resources
+, pytest-subtests
+, pytestCheckHook
+, pythonOlder
}:
buildPythonPackage rec {
pname = "tzdata";
- version = "2021.1";
+ version = "2021.5";
format = "pyproject";
src = fetchPypi {
inherit pname version;
- sha256 = "sha256-4ZxzUfiHUioaxznSEEHlkt3ebdG3ZP3vqPeys1UdPTg=";
+ hash = "sha256-aNvkGv0BuGeJS739VPoD9GjPpPAIa/tK3NjejyTz7iE=";
};
checkInputs = [
pytestCheckHook
pytest-subtests
- ] ++ lib.optional (pythonOlder "3.7") importlib-resources;
+ ] ++ lib.optional (pythonOlder "3.7") [
+ importlib-resources
+ ];
- pythonImportsCheck = [ "tzdata" ];
+ pythonImportsCheck = [
+ "tzdata"
+ ];
meta = with lib; {
description = "Provider of IANA time zone data";
diff --git a/pkgs/development/python-modules/unicodedata2/default.nix b/pkgs/development/python-modules/unicodedata2/default.nix
index 565f0f557208..a14895fa7996 100644
--- a/pkgs/development/python-modules/unicodedata2/default.nix
+++ b/pkgs/development/python-modules/unicodedata2/default.nix
@@ -1,18 +1,17 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pytest }:
+{ lib, buildPythonPackage, fetchPypi, pytestCheckHook, isPy27 }:
buildPythonPackage rec {
pname = "unicodedata2";
- version = "13.0.0-2";
+ version = "14.0.0";
- src = fetchFromGitHub {
- owner = "mikekap";
- repo = pname;
- rev = version;
- sha256 = "0p9brbiwyg98q52y0gfyps52xv57fwqfpq0mn18p1xc1imip3h2b";
+ disabled = isPy27;
+
+ src = fetchPypi {
+ inherit version pname;
+ sha256 = "110nnvh02ssp92xbmswy39aa186jrmb7m41x4220wigl8c0dzxs1";
};
- checkInputs = [ pytest ];
- checkPhase = "pytest tests";
+ checkInputs = [ pytestCheckHook ];
meta = with lib; {
description = "Backport and updates for the unicodedata module";
diff --git a/pkgs/development/python-modules/wrapt/default.nix b/pkgs/development/python-modules/wrapt/default.nix
index e567a8a672ef..b53c52d6098a 100644
--- a/pkgs/development/python-modules/wrapt/default.nix
+++ b/pkgs/development/python-modules/wrapt/default.nix
@@ -1,23 +1,33 @@
{ lib
, buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
+, pytestCheckHook
}:
buildPythonPackage rec {
pname = "wrapt";
version = "1.13.3";
+ format = "setuptools";
- # No tests in archive
- doCheck = false;
-
- src = fetchPypi {
- inherit pname version;
- sha256 = "1fea9cd438686e6682271d36f3481a9f3636195578bab9ca3382e2f5f01fc185";
+ src = fetchFromGitHub {
+ owner = "GrahamDumpleton";
+ repo = pname;
+ rev = version;
+ hash = "sha256-kq3Ujkn4HzonzjuQfVnPNnQV+2Rnbr3ZfYmrnY3upxU=";
};
- meta = {
+ checkInputs = [
+ pytestCheckHook
+ ];
+
+ pythonImportsCheck = [
+ "wrapt"
+ ];
+
+ meta = with lib; {
description = "Module for decorators, wrappers and monkey patching";
- license = lib.licenses.bsd2;
homepage = "https://github.com/GrahamDumpleton/wrapt";
+ license = licenses.bsd2;
+ maintainers = with maintainers; [ ];
};
}
diff --git a/pkgs/development/python-modules/yapf/default.nix b/pkgs/development/python-modules/yapf/default.nix
index 9c759f3a2b7e..2d6fc9520ccd 100644
--- a/pkgs/development/python-modules/yapf/default.nix
+++ b/pkgs/development/python-modules/yapf/default.nix
@@ -6,11 +6,11 @@
buildPythonPackage rec {
pname = "yapf";
- version = "0.31.0";
+ version = "0.32.0";
src = fetchPypi {
inherit pname version;
- hash = "sha256-QI+5orJUwwL0nbg8WfmqC0sP0OwlvjpcURgTJ5Iv9j0=";
+ hash = "sha256-o/UIXTfvfj4ATEup+bPkDFT/GQHNER8FFFrjE6fGfRs=";
};
checkInputs = [
diff --git a/pkgs/development/tools/ashpd-demo/default.nix b/pkgs/development/tools/ashpd-demo/default.nix
index 9e24309d984a..a52a6ca8179b 100644
--- a/pkgs/development/tools/ashpd-demo/default.nix
+++ b/pkgs/development/tools/ashpd-demo/default.nix
@@ -86,6 +86,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Tool for playing with XDG desktop portals";
homepage = "https://github.com/bilelmoussaoui/ashpd/tree/master/ashpd-demo";
+ broken = true; # requires older libadwaita
license = licenses.mit;
maintainers = with maintainers; [ jtojnar ];
platforms = platforms.linux;
diff --git a/pkgs/development/tools/build-managers/gnumake/default.nix b/pkgs/development/tools/build-managers/gnumake/default.nix
index 3b9f0add8796..183548f5e31b 100644
--- a/pkgs/development/tools/build-managers/gnumake/default.nix
+++ b/pkgs/development/tools/build-managers/gnumake/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
++ lib.optional stdenv.isDarwin "ac_cv_struct_st_mtim_nsec=no";
outputs = [ "out" "man" "info" ];
+ separateDebugInfo = true;
meta = with lib; {
homepage = "https://www.gnu.org/software/make/";
diff --git a/pkgs/development/tools/build-managers/meson/0.57/boost-Do-not-add-system-paths-on-nix.patch b/pkgs/development/tools/build-managers/meson/0.57/boost-Do-not-add-system-paths-on-nix.patch
deleted file mode 100644
index 5b9020b3d540..000000000000
--- a/pkgs/development/tools/build-managers/meson/0.57/boost-Do-not-add-system-paths-on-nix.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 536108b10271f2f42d41c7d9ddb4ce2ea1851f4f Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Niklas=20Hamb=C3=BCchen?=
-Date: Sat, 17 Oct 2020 19:27:08 +0200
-Subject: [PATCH] boost: Do not add system paths on nix
-
----
- mesonbuild/dependencies/boost.py | 17 +----------------
- 1 file changed, 1 insertion(+), 16 deletions(-)
-
-diff --git a/mesonbuild/dependencies/boost.py b/mesonbuild/dependencies/boost.py
-index 907c0c275..ecaf11b18 100644
---- a/mesonbuild/dependencies/boost.py
-+++ b/mesonbuild/dependencies/boost.py
-@@ -643,22 +643,7 @@ class BoostDependency(ExternalDependency):
- roots += [x for x in candidates if x.name.lower().startswith('boost') and x.is_dir()]
- else:
- tmp = [] # type: T.List[Path]
--
-- # Homebrew
-- brew_boost = Path('/usr/local/Cellar/boost')
-- if brew_boost.is_dir():
-- tmp += [x for x in brew_boost.iterdir()]
--
-- # Add some default system paths
-- tmp += [Path('/opt/local')]
-- tmp += [Path('/usr/local/opt/boost')]
-- tmp += [Path('/usr/local')]
-- tmp += [Path('/usr')]
--
-- # Cleanup paths
-- tmp = [x for x in tmp if x.is_dir()]
-- tmp = [x.resolve() for x in tmp]
-- roots += tmp
-+ # Do not add any non-explicit paths on nix
-
- return roots
-
---
-2.25.4
-
diff --git a/pkgs/development/tools/build-managers/meson/0.57/default.nix b/pkgs/development/tools/build-managers/meson/0.57/default.nix
deleted file mode 100644
index 6fd93e8f86b1..000000000000
--- a/pkgs/development/tools/build-managers/meson/0.57/default.nix
+++ /dev/null
@@ -1,94 +0,0 @@
-{ lib
-, python3
-, writeTextDir
-, substituteAll
-, fetchpatch
-, installShellFiles
-}:
-
-python3.pkgs.buildPythonApplication rec {
- pname = "meson";
- version = "0.57.1";
-
- src = python3.pkgs.fetchPypi {
- inherit pname version;
- sha256 = "19n8alcpzv6npgp27iqljkmvdmr7s2c7zm8y997j1nlvpa1cgqbj";
- };
-
- patches = [
- # Upstream insists on not allowing bindir and other dir options
- # outside of prefix for some reason:
- # https://github.com/mesonbuild/meson/issues/2561
- # We remove the check so multiple outputs can work sanely.
- ./allow-dirs-outside-of-prefix.patch
-
- # Meson is currently inspecting fewer variables than autoconf does, which
- # makes it harder for us to use setup hooks, etc. Taken from
- # https://github.com/mesonbuild/meson/pull/6827
- ./more-env-vars.patch
-
- # Unlike libtool, vanilla Meson does not pass any information
- # about the path library will be installed to to g-ir-scanner,
- # breaking the GIR when path other than ${!outputLib}/lib is used.
- # We patch Meson to add a --fallback-library-path argument with
- # library install_dir to g-ir-scanner.
- ./gir-fallback-path.patch
-
- # In common distributions, RPATH is only needed for internal libraries so
- # meson removes everything else. With Nix, the locations of libraries
- # are not as predictable, therefore we need to keep them in the RPATH.
- # At the moment we are keeping the paths starting with /nix/store.
- # https://github.com/NixOS/nixpkgs/issues/31222#issuecomment-365811634
- (substituteAll {
- src = ./fix-rpath.patch;
- inherit (builtins) storeDir;
- })
-
- # When Meson removes build_rpath from DT_RUNPATH entry, it just writes
- # the shorter NUL-terminated new rpath over the old one to reduce
- # the risk of potentially breaking the ELF files.
- # But this can cause much bigger problem for Nix as it can produce
- # cut-in-half-by-\0 store path references.
- # Let’s just clear the whole rpath and hope for the best.
- ./clear-old-rpath.patch
-
- # Patch out default boost search paths to avoid impure builds on
- # unsandboxed non-NixOS builds, see:
- # https://github.com/NixOS/nixpkgs/issues/86131#issuecomment-711051774
- ./boost-Do-not-add-system-paths-on-nix.patch
- ];
-
- setupHook = ./setup-hook.sh;
-
- # 0.45 update enabled tests but they are failing
- doCheck = false;
- # checkInputs = [ ninja pkg-config ];
- # checkPhase = "python ./run_project_tests.py";
-
- postFixup = ''
- pushd $out/bin
- # undo shell wrapper as meson tools are called with python
- for i in *; do
- mv ".$i-wrapped" "$i"
- done
- popd
-
- # Do not propagate Python
- rm $out/nix-support/propagated-build-inputs
- '';
-
- nativeBuildInputs = [ installShellFiles ];
-
- postInstall = ''
- installShellCompletion --zsh data/shell-completions/zsh/_meson
- installShellCompletion --bash data/shell-completions/bash/meson
- '';
-
- meta = with lib; {
- homepage = "https://mesonbuild.com";
- description = "SCons-like build system that use python as a front-end language and Ninja as a building backend";
- license = licenses.asl20;
- maintainers = with maintainers; [ jtojnar mbe ];
- platforms = platforms.all;
- };
-}
diff --git a/pkgs/development/tools/build-managers/meson/0.57/gir-fallback-path.patch b/pkgs/development/tools/build-managers/meson/0.57/gir-fallback-path.patch
deleted file mode 100644
index 0c924bacf73f..000000000000
--- a/pkgs/development/tools/build-managers/meson/0.57/gir-fallback-path.patch
+++ /dev/null
@@ -1,16 +0,0 @@
---- a/mesonbuild/modules/gnome.py
-+++ b/mesonbuild/modules/gnome.py
-@@ -807,6 +807,13 @@ class GnomeModule(ExtensionModule):
- if fatal_warnings:
- scan_command.append('--warn-error')
-
-+ if len(set([girtarget.get_custom_install_dir()[0] for girtarget in girtargets])) > 1:
-+ raise MesonException('generate_gir tries to build multiple libraries with different install_dir at once: {}'.format(','.join([str(girtarget) for girtarget in girtargets])))
-+
-+ fallback_libpath = girtargets[0].get_custom_install_dir()[0]
-+ if fallback_libpath is not None and isinstance(fallback_libpath, str) and len(fallback_libpath) > 0 and fallback_libpath[0] == "/":
-+ scan_command += ['--fallback-library-path=' + fallback_libpath]
-+
- scan_target = self._make_gir_target(state, girfile, scan_command, depends, kwargs)
-
- typelib_output = '%s-%s.typelib' % (ns, nsversion)
diff --git a/pkgs/development/tools/build-managers/meson/0.57/more-env-vars.patch b/pkgs/development/tools/build-managers/meson/0.57/more-env-vars.patch
deleted file mode 100644
index 4b2606e2d694..000000000000
--- a/pkgs/development/tools/build-managers/meson/0.57/more-env-vars.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py
-index 756dd8193..a5cc6ef8b 100644
---- a/mesonbuild/environment.py
-+++ b/mesonbuild/environment.py
-@@ -151,7 +151,7 @@ def _get_env_var(for_machine: MachineChoice, is_cross: bool, var_name: str) -> T
- # compiling we fall back on the unprefixed host version. This
- # allows native builds to never need to worry about the 'BUILD_*'
- # ones.
-- ([var_name + '_FOR_BUILD'] if is_cross else [var_name]),
-+ [var_name + '_FOR_BUILD'] + ([] if is_cross else [var_name]),
- # Always just the unprefixed host verions
- [var_name]
- )[for_machine]
diff --git a/pkgs/development/tools/build-managers/meson/0.60/allow-dirs-outside-of-prefix.patch b/pkgs/development/tools/build-managers/meson/0.60/allow-dirs-outside-of-prefix.patch
deleted file mode 100644
index 4eb292a2e529..000000000000
--- a/pkgs/development/tools/build-managers/meson/0.60/allow-dirs-outside-of-prefix.patch
+++ /dev/null
@@ -1,19 +0,0 @@
---- a/mesonbuild/coredata.py
-+++ b/mesonbuild/coredata.py
-@@ -506,7 +506,6 @@ class CoreData:
- return value
- if option.name.endswith('dir') and value.is_absolute() and \
- option not in BULITIN_DIR_NOPREFIX_OPTIONS:
-- # Value must be a subdir of the prefix
- # commonpath will always return a path in the native format, so we
- # must use pathlib.PurePath to do the same conversion before
- # comparing.
-@@ -518,7 +517,7 @@ class CoreData:
- try:
- value = value.relative_to(prefix)
- except ValueError:
-- raise MesonException(msg.format(option, value, prefix))
-+ pass
- if '..' in str(value):
- raise MesonException(msg.format(option, value, prefix))
- return value.as_posix()
diff --git a/pkgs/development/tools/build-managers/meson/0.60/clear-old-rpath.patch b/pkgs/development/tools/build-managers/meson/0.60/clear-old-rpath.patch
deleted file mode 100644
index f1e3c76e8b53..000000000000
--- a/pkgs/development/tools/build-managers/meson/0.60/clear-old-rpath.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff --git a/mesonbuild/scripts/depfixer.py b/mesonbuild/scripts/depfixer.py
-index 4176b9a03..faaabf616 100644
---- a/mesonbuild/scripts/depfixer.py
-+++ b/mesonbuild/scripts/depfixer.py
-@@ -336,6 +336,15 @@ class Elf(DataSizes):
- if not new_rpath:
- self.remove_rpath_entry(entrynum)
- else:
-+ # Clear old rpath to avoid stale references,
-+ # not heeding the warning above about de-duplication
-+ # since it does not seem to cause issues for us
-+ # and not doing so trips up Nix’s reference checker.
-+ # See https://github.com/NixOS/nixpkgs/pull/46020
-+ # and https://github.com/NixOS/nixpkgs/issues/95163
-+ self.bf.seek(rp_off)
-+ self.bf.write(b'\0'*len(old_rpath))
-+
- self.bf.seek(rp_off)
- self.bf.write(new_rpath)
- self.bf.write(b'\0')
diff --git a/pkgs/development/tools/build-managers/meson/0.60/fix-rpath.patch b/pkgs/development/tools/build-managers/meson/0.60/fix-rpath.patch
deleted file mode 100644
index d34b6c4c4345..000000000000
--- a/pkgs/development/tools/build-managers/meson/0.60/fix-rpath.patch
+++ /dev/null
@@ -1,24 +0,0 @@
---- a/mesonbuild/backend/backends.py
-+++ b/mesonbuild/backend/backends.py
-@@ -456,6 +456,21 @@ class Backend:
- args.extend(self.environment.coredata.get_external_link_args(target.for_machine, lang))
- except Exception:
- pass
-+
-+ nix_ldflags = os.environ.get('NIX_LDFLAGS', '').split()
-+ next_is_path = False
-+ # Try to add rpaths set by user or ld-wrapper so that they are not removed.
-+ # Based on https://github.com/NixOS/nixpkgs/blob/69711a2f5ffe8cda208163be5258266172ff527f/pkgs/build-support/bintools-wrapper/ld-wrapper.sh#L148-L177
-+ for flag in nix_ldflags:
-+ if flag == '-rpath' or flag == '-L':
-+ next_is_path = True
-+ elif next_is_path or flag.startswith('-L/'):
-+ if flag.startswith('-L/'):
-+ flag = flag[2:]
-+ if flag.startswith('@storeDir@'):
-+ dirs.add(flag)
-+ next_is_path = False
-+
- # Match rpath formats:
- # -Wl,-rpath=
- # -Wl,-rpath,
diff --git a/pkgs/development/tools/build-managers/meson/0.60/setup-hook.sh b/pkgs/development/tools/build-managers/meson/0.60/setup-hook.sh
deleted file mode 100644
index 3d946fcffd52..000000000000
--- a/pkgs/development/tools/build-managers/meson/0.60/setup-hook.sh
+++ /dev/null
@@ -1,37 +0,0 @@
-mesonConfigurePhase() {
- runHook preConfigure
-
- if [ -z "${dontAddPrefix-}" ]; then
- mesonFlags="--prefix=$prefix $mesonFlags"
- fi
-
- # See multiple-outputs.sh and meson’s coredata.py
- mesonFlags="\
- --libdir=${!outputLib}/lib --libexecdir=${!outputLib}/libexec \
- --bindir=${!outputBin}/bin --sbindir=${!outputBin}/sbin \
- --includedir=${!outputInclude}/include \
- --mandir=${!outputMan}/share/man --infodir=${!outputInfo}/share/info \
- --localedir=${!outputLib}/share/locale \
- -Dauto_features=${mesonAutoFeatures:-enabled} \
- -Dwrap_mode=${mesonWrapMode:-nodownload} \
- $mesonFlags"
-
- mesonFlags="${crossMesonFlags+$crossMesonFlags }--buildtype=${mesonBuildType:-plain} $mesonFlags"
-
- echo "meson flags: $mesonFlags ${mesonFlagsArray[@]}"
-
- meson build $mesonFlags "${mesonFlagsArray[@]}"
- cd build
-
- if ! [[ -v enableParallelBuilding ]]; then
- enableParallelBuilding=1
- echo "meson: enabled parallel building"
- fi
-
- runHook postConfigure
-}
-
-if [ -z "${dontUseMesonConfigure-}" -a -z "${configurePhase-}" ]; then
- setOutputFlags=
- configurePhase=mesonConfigurePhase
-fi
diff --git a/pkgs/development/tools/build-managers/meson/0.57/allow-dirs-outside-of-prefix.patch b/pkgs/development/tools/build-managers/meson/allow-dirs-outside-of-prefix.patch
similarity index 100%
rename from pkgs/development/tools/build-managers/meson/0.57/allow-dirs-outside-of-prefix.patch
rename to pkgs/development/tools/build-managers/meson/allow-dirs-outside-of-prefix.patch
diff --git a/pkgs/development/tools/build-managers/meson/0.60/boost-Do-not-add-system-paths-on-nix.patch b/pkgs/development/tools/build-managers/meson/boost-Do-not-add-system-paths-on-nix.patch
similarity index 100%
rename from pkgs/development/tools/build-managers/meson/0.60/boost-Do-not-add-system-paths-on-nix.patch
rename to pkgs/development/tools/build-managers/meson/boost-Do-not-add-system-paths-on-nix.patch
diff --git a/pkgs/development/tools/build-managers/meson/0.57/clear-old-rpath.patch b/pkgs/development/tools/build-managers/meson/clear-old-rpath.patch
similarity index 100%
rename from pkgs/development/tools/build-managers/meson/0.57/clear-old-rpath.patch
rename to pkgs/development/tools/build-managers/meson/clear-old-rpath.patch
diff --git a/pkgs/development/tools/build-managers/meson/0.60/default.nix b/pkgs/development/tools/build-managers/meson/default.nix
similarity index 95%
rename from pkgs/development/tools/build-managers/meson/0.60/default.nix
rename to pkgs/development/tools/build-managers/meson/default.nix
index a5efccfac9ca..aeddf457f48d 100644
--- a/pkgs/development/tools/build-managers/meson/0.60/default.nix
+++ b/pkgs/development/tools/build-managers/meson/default.nix
@@ -57,6 +57,10 @@ python3.pkgs.buildPythonApplication rec {
# unsandboxed non-NixOS builds, see:
# https://github.com/NixOS/nixpkgs/issues/86131#issuecomment-711051774
./boost-Do-not-add-system-paths-on-nix.patch
+
+ # Meson tries to update ld.so.cache which breaks when the target architecture
+ # differs from the build host's.
+ ./do-not-update-ldconfig-cache.patch
];
setupHook = ./setup-hook.sh;
diff --git a/pkgs/development/tools/build-managers/meson/do-not-update-ldconfig-cache.patch b/pkgs/development/tools/build-managers/meson/do-not-update-ldconfig-cache.patch
new file mode 100644
index 000000000000..884023aaa7eb
--- /dev/null
+++ b/pkgs/development/tools/build-managers/meson/do-not-update-ldconfig-cache.patch
@@ -0,0 +1,12 @@
+diff --git a/mesonbuild/minstall.py b/mesonbuild/minstall.py
+index cb87faf5c..878ec4cd6 100644
+--- a/mesonbuild/minstall.py
++++ b/mesonbuild/minstall.py
+@@ -551,7 +551,6 @@ class Installer:
+ self.install_emptydir(d, dm, destdir, fullprefix)
+ self.install_data(d, dm, destdir, fullprefix)
+ self.restore_selinux_contexts(destdir)
+- self.apply_ldconfig(dm, destdir)
+ self.run_install_script(d, destdir, fullprefix)
+ if not self.did_install_something:
+ self.log('Nothing to install.')
diff --git a/pkgs/development/tools/build-managers/meson/0.57/fix-rpath.patch b/pkgs/development/tools/build-managers/meson/fix-rpath.patch
similarity index 100%
rename from pkgs/development/tools/build-managers/meson/0.57/fix-rpath.patch
rename to pkgs/development/tools/build-managers/meson/fix-rpath.patch
diff --git a/pkgs/development/tools/build-managers/meson/0.60/gir-fallback-path.patch b/pkgs/development/tools/build-managers/meson/gir-fallback-path.patch
similarity index 100%
rename from pkgs/development/tools/build-managers/meson/0.60/gir-fallback-path.patch
rename to pkgs/development/tools/build-managers/meson/gir-fallback-path.patch
diff --git a/pkgs/development/tools/build-managers/meson/0.60/more-env-vars.patch b/pkgs/development/tools/build-managers/meson/more-env-vars.patch
similarity index 100%
rename from pkgs/development/tools/build-managers/meson/0.60/more-env-vars.patch
rename to pkgs/development/tools/build-managers/meson/more-env-vars.patch
diff --git a/pkgs/development/tools/build-managers/meson/0.57/setup-hook.sh b/pkgs/development/tools/build-managers/meson/setup-hook.sh
similarity index 100%
rename from pkgs/development/tools/build-managers/meson/0.57/setup-hook.sh
rename to pkgs/development/tools/build-managers/meson/setup-hook.sh
diff --git a/pkgs/development/tools/misc/intel-gpu-tools/default.nix b/pkgs/development/tools/misc/intel-gpu-tools/default.nix
index eca59819ba09..40cf1e14e94d 100644
--- a/pkgs/development/tools/misc/intel-gpu-tools/default.nix
+++ b/pkgs/development/tools/misc/intel-gpu-tools/default.nix
@@ -1,6 +1,7 @@
{ lib
, stdenv
, fetchurl
+, fetchpatch
, pkg-config
, libdrm
, libpciaccess
@@ -45,6 +46,14 @@ stdenv.mkDerivation rec {
sha256 = "1dwvxh1yplsh1a7h3gpp40g91v12cfxy6yy99s1v9yr2kwxikm1n";
};
+ patches = [
+ # fix build with meson 0.60
+ (fetchpatch {
+ url = "https://github.com/freedesktop/xorg-intel-gpu-tools/commit/963917a3565466832a3b2fc22e9285d34a0bf944.patch";
+ sha256 = "sha256-goO2N7aK2dJYMhFGS1DlvjEYMSijN6stV6Q5z/RP8Ko=";
+ })
+ ];
+
nativeBuildInputs = [ pkg-config utilmacros meson ninja flex bison gtk-doc docutils docbook_xsl ];
buildInputs = [
libdrm
diff --git a/pkgs/development/tools/pandoc/default.nix b/pkgs/development/tools/pandoc/default.nix
index 475fa6a93e4e..a61f39c15b67 100644
--- a/pkgs/development/tools/pandoc/default.nix
+++ b/pkgs/development/tools/pandoc/default.nix
@@ -26,7 +26,7 @@ in
# This should ideally be fixed in haskellPackages (or even Cabal),
# but a minimal pandoc is important enough to patch it manually.
disallowedReferences = [ haskellPackages.pandoc-types haskellPackages.HTTP ];
- postInstall = ''
+ postInstall = drv.postInstall or "" + ''
remove-references-to \
-t ${haskellPackages.pandoc-types} \
$out/bin/pandoc
diff --git a/pkgs/games/rogue/default.nix b/pkgs/games/rogue/default.nix
index 127d65ff362f..4865b85bbe38 100644
--- a/pkgs/games/rogue/default.nix
+++ b/pkgs/games/rogue/default.nix
@@ -15,9 +15,6 @@ stdenv.mkDerivation rec {
buildInputs = [ ncurses ];
- # Fix build for recent ncurses versions
- NIX_CFLAGS_COMPILE = "-DNCURSES_INTERNALS=1";
-
meta = with lib; {
homepage = "http://rogue.rogueforge.net/rogue-5-4/";
description = "The final version of the original Rogue game developed for the UNIX operating system";
diff --git a/pkgs/games/vdrift/default.nix b/pkgs/games/vdrift/default.nix
index 04f65cf79379..19397794649b 100644
--- a/pkgs/games/vdrift/default.nix
+++ b/pkgs/games/vdrift/default.nix
@@ -12,7 +12,7 @@
, bullet
, curl
, gettext
-, writeTextFile
+, writeShellScriptBin
, data ? fetchsvn {
url = "svn://svn.code.sf.net/p/vdrift/code/vdrift-data";
@@ -54,21 +54,15 @@ let
};
};
wrappedName = "vdrift-${version}-with-data-${toString data.rev}";
-in writeTextFile {
+in
+(writeShellScriptBin "vdrift" ''
+ export VDRIFT_DATA_DIRECTORY="${data}"
+ exec ${bin}/bin/vdrift "$@"
+'').overrideAttrs (_: {
name = wrappedName;
- text = ''
- export VDRIFT_DATA_DIRECTORY="${data}"
- exec ${bin}/bin/vdrift "$@"
- '';
- destination = "/bin/vdrift";
- executable = true;
- checkPhase = ''
- ${stdenv.shell} -n $out/bin/vdrift
- '';
-} // {
meta = bin.meta // {
hydraPlatforms = [ ];
};
unwrapped = bin;
inherit bin data;
-}
+})
diff --git a/pkgs/misc/cups/default.nix b/pkgs/misc/cups/default.nix
index bbada33054d3..0e9977f564b1 100644
--- a/pkgs/misc/cups/default.nix
+++ b/pkgs/misc/cups/default.nix
@@ -28,14 +28,14 @@ stdenv.mkDerivation rec {
pname = "cups";
# After 2.2.6, CUPS requires headers only available in macOS 10.12+
- version = if stdenv.isDarwin then "2.2.6" else "2.3.3op2";
+ version = if stdenv.isDarwin then "2.2.6" else "2.4.0";
src = fetchurl (if stdenv.isDarwin then {
url = "https://github.com/apple/cups/releases/download/v${version}/cups-${version}-source.tar.gz";
sha256 = "16qn41b84xz6khrr2pa2wdwlqxr29rrrkjfi618gbgdkq9w5ff20";
} else {
url = "https://github.com/OpenPrinting/cups/releases/download/v${version}/cups-${version}-source.tar.gz";
- sha256 = "1pwndz4gwkm7311wkhhzlw2diy7wbck7yy026jbaxh3rprdmgcyy";
+ sha256 = "1pm6lf08z8vgs62g5b5rjw32qy3vr0q3sgidpg2lfs6a530wxgls";
});
outputs = [ "out" "lib" "dev" "man" ];
diff --git a/pkgs/misc/ghostscript/default.nix b/pkgs/misc/ghostscript/default.nix
index 5e27e5573c58..e80ad8a839fb 100644
--- a/pkgs/misc/ghostscript/default.nix
+++ b/pkgs/misc/ghostscript/default.nix
@@ -30,22 +30,18 @@ let
in
stdenv.mkDerivation rec {
pname = "ghostscript";
- version = "9.53.3";
+ version = "9.55.0";
src = fetchurl {
url = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs9${lib.versions.minor version}${lib.versions.patch version}/${pname}-${version}.tar.xz";
- sha512 = "2vif3vgxa5wma16yxvhhkymk4p309y5204yykarq94r5rk890556d2lj5w7acnaa2ymkym6y0zd4vq9sy9ca2346igg2c6dxqkjr0zb";
+ sha512 = "27g72152mlwlalg232jxdhaf3ykgmqwi2pccbkwfygql1h9iz40plfbwbs1n0fkvm4zwzg5r9cr8g7w2dxih4jldiidv7rflxdy1is2";
};
patches = [
(fetchpatch {
- url = "https://github.com/ArtifexSoftware/ghostpdl/commit/41ef9a0bc36b9db7115fbe9623f989bfb47bbade.patch";
- sha256 = "1qpc6q1fpxshqc0mqgg36kng47kgljk50bmr8p7wn21jgfkh7m8w";
- })
- (fetchpatch {
- url = "https://git.ghostscript.com/?p=ghostpdl.git;a=patch;h=a9bd3dec9fde";
- name = "CVE-2021-3781.patch";
- sha256 = "FvbH7cb3ZDCbNRz9DF0kDmLdF7OWNYk90wv44pimU58=";
+ name = "fix-non-vendored-lcms2-typo.patch";
+ url = "https://github.com/ArtifexSoftware/ghostpdl/commit/830afae5454dea3bff903869d82022306890a96c.patch";
+ sha256 = "1w9yspsgxyabvrw9ld6pv6pb7708c44ihjqvag7qqh9v1lhm48j0";
})
./urw-font-files.patch
./doc-no-ref.diff
@@ -88,6 +84,7 @@ stdenv.mkDerivation rec {
configureFlags = [
"--with-system-libtiff"
"--enable-dynamic"
+ "--without-tesseract"
]
++ lib.optional x11Support "--with-x"
++ lib.optionals cupsSupport [
diff --git a/pkgs/misc/scrcpy/default.nix b/pkgs/misc/scrcpy/default.nix
index 871e5bff6c94..594561593e5a 100644
--- a/pkgs/misc/scrcpy/default.nix
+++ b/pkgs/misc/scrcpy/default.nix
@@ -47,7 +47,6 @@ stdenv.mkDerivation rec {
echo -n > server/meson.build
'';
- mesonFlags = [ "-Doverride_server_path=${prebuilt_server}" ];
postInstall = ''
mkdir -p "$out/share/scrcpy"
ln -s "${prebuilt_server}" "$out/share/scrcpy/scrcpy-server"
diff --git a/pkgs/os-specific/bsd/netbsd/compat-setup-hook.sh b/pkgs/os-specific/bsd/netbsd/compat-setup-hook.sh
index 3c49337a937c..acd90b7aa2f0 100644
--- a/pkgs/os-specific/bsd/netbsd/compat-setup-hook.sh
+++ b/pkgs/os-specific/bsd/netbsd/compat-setup-hook.sh
@@ -3,4 +3,3 @@ getHostRole
export NIX_LDFLAGS${role_post}+=" -lnbcompat"
export NIX_CFLAGS_COMPILE${role_post}+=" -DHAVE_NBTOOL_CONFIG_H"
-export NIX_CFLAGS_COMPILE${role_post}+=" -include nbtool_config.h"
diff --git a/pkgs/os-specific/bsd/netbsd/default.nix b/pkgs/os-specific/bsd/netbsd/default.nix
index beaa176dae15..25ac9ce451cc 100644
--- a/pkgs/os-specific/bsd/netbsd/default.nix
+++ b/pkgs/os-specific/bsd/netbsd/default.nix
@@ -120,7 +120,17 @@ in lib.makeScopeWithSplicing
} // lib.optionalAttrs (attrs.headersOnly or false) {
installPhase = "includesPhase";
dontBuild = true;
- } // attrs));
+ } // attrs // {
+ postPatch = lib.optionalString (!stdenv'.hostPlatform.isNetBSD) ''
+ # Files that use NetBSD-specific macros need to have nbtool_config.h
+ # included ahead of them on non-NetBSD platforms.
+ set +e
+ grep -Zlr "^__RCSID
+ ^__BEGIN_DECLS" | xargs -0r grep -FLZ nbtool_config.h |
+ xargs -0tr sed -i '0,/^#/s//#include \n\0/'
+ set -e
+ '' + attrs.postPatch or "";
+ }));
##
## START BOOTSTRAPPING
@@ -182,6 +192,12 @@ in lib.makeScopeWithSplicing
configurePlatforms = [ "build" "host" ];
configureFlags = [
"--cache-file=config.cache"
+ ] ++ lib.optionals stdenv.hostPlatform.isMusl [
+ # We include this header in our musl package only for legacy
+ # compatibility, and compat works fine without it (and having it
+ # know about sys/cdefs.h breaks packages like glib when built
+ # statically).
+ "ac_cv_header_sys_cdefs_h=no"
];
nativeBuildInputs = with buildPackages.netbsd; commonDeps ++ [
diff --git a/pkgs/os-specific/darwin/apple-source-releases/configd/default.nix b/pkgs/os-specific/darwin/apple-source-releases/configd/default.nix
index 879d3a7b5f79..37830c0665e1 100644
--- a/pkgs/os-specific/darwin/apple-source-releases/configd/default.nix
+++ b/pkgs/os-specific/darwin/apple-source-releases/configd/default.nix
@@ -1,14 +1,15 @@
-{ stdenv, appleDerivation', launchd, bootstrap_cmds, xnu, ppp, IOKit, eap8021x, Security }:
+{ lib, stdenv, appleDerivation', launchd, bootstrap_cmds, xnu, ppp, IOKit, eap8021x, Security
+, headersOnly ? false }:
appleDerivation' stdenv {
meta.broken = stdenv.cc.nativeLibc;
- nativeBuildInputs = [ bootstrap_cmds ];
- buildInputs = [ launchd ppp IOKit eap8021x ];
+ nativeBuildInputs = lib.optionals (!headersOnly) [ bootstrap_cmds ];
+ buildInputs = lib.optionals (!headersOnly) [ launchd ppp IOKit eap8021x ];
- propagatedBuildInputs = [ Security ];
+ propagatedBuildInputs = lib.optionals (!headersOnly) [ Security ];
- patchPhase = ''
+ patchPhase = lib.optionalString (!headersOnly) ''
HACK=$PWD/hack
mkdir $HACK
cp -r ${xnu}/Library/Frameworks/System.framework/Versions/B/PrivateHeaders/net $HACK
@@ -63,6 +64,8 @@ appleDerivation' stdenv {
EOF
'';
+ dontBuild = headersOnly;
+
buildPhase = ''
pushd SystemConfiguration.fproj >/dev/null
@@ -206,7 +209,7 @@ appleDerivation' stdenv {
installPhase = ''
mkdir -p $out/include
cp dnsinfo/*.h $out/include/
-
+ '' + lib.optionalString (!headersOnly) ''
mkdir -p $out/Library/Frameworks/
mv SystemConfiguration.fproj/SystemConfiguration.framework $out/Library/Frameworks
'';
diff --git a/pkgs/os-specific/darwin/apple-source-releases/default.nix b/pkgs/os-specific/darwin/apple-source-releases/default.nix
index f0e852ca199a..d2d21cc9d6cb 100644
--- a/pkgs/os-specific/darwin/apple-source-releases/default.nix
+++ b/pkgs/os-specific/darwin/apple-source-releases/default.nix
@@ -299,6 +299,12 @@ developerToolsPackages_11_3_1 // macosPackages_11_0_1 // {
top = applePackage "top" "osx-10.11.6" "0i9120rfwapgwdvjbfg0ya143i29s1m8zbddsxh39pdc59xnsg5l" {};
PowerManagement = applePackage "PowerManagement" "osx-10.11.6" "1llimhvp0gjffd47322lnjq7cqwinx0c5z7ikli04ad5srpa68mh" {};
+ # `configdHeaders` can’t use an override because `pkgs.darwin.configd` on aarch64-darwin will
+ # be replaced by SystemConfiguration.framework from the macOS SDK.
+ configdHeaders = applePackage "configd" "osx-10.8.5" "1gxakahk8gallf16xmhxhprdxkh3prrmzxnmxfvj0slr0939mmr2" {
+ headersOnly = true;
+ Security = null;
+ };
libutilHeaders = pkgs.darwin.libutil.override { headersOnly = true; };
hfsHeaders = pkgs.darwin.hfs.override { headersOnly = true; };
libresolvHeaders= pkgs.darwin.libresolv.override { headersOnly = true; };
diff --git a/pkgs/os-specific/darwin/apple-source-releases/libresolv/default.nix b/pkgs/os-specific/darwin/apple-source-releases/libresolv/default.nix
index 53fc019768dd..2a8a609472a2 100644
--- a/pkgs/os-specific/darwin/apple-source-releases/libresolv/default.nix
+++ b/pkgs/os-specific/darwin/apple-source-releases/libresolv/default.nix
@@ -1,9 +1,9 @@
-{ lib, appleDerivation', stdenv, stdenvNoCC, Libinfo, configd, mDNSResponder
+{ lib, appleDerivation', stdenv, stdenvNoCC, Libinfo, configdHeaders, mDNSResponder
, headersOnly ? false
}:
appleDerivation' (if headersOnly then stdenvNoCC else stdenv) {
- buildInputs = lib.optionals (!headersOnly) [ Libinfo configd mDNSResponder ];
+ buildInputs = lib.optionals (!headersOnly) [ Libinfo configdHeaders mDNSResponder ];
buildPhase = lib.optionalString (!headersOnly) ''
$CC -I. -c dns_util.c
diff --git a/pkgs/os-specific/darwin/apple-source-releases/text_cmds/default.nix b/pkgs/os-specific/darwin/apple-source-releases/text_cmds/default.nix
index 9e3d6e49204a..672bb443242b 100644
--- a/pkgs/os-specific/darwin/apple-source-releases/text_cmds/default.nix
+++ b/pkgs/os-specific/darwin/apple-source-releases/text_cmds/default.nix
@@ -20,6 +20,8 @@ appleDerivation {
done
'';
+ NIX_CFLAGS_COMPILE=[ "-Wno-error=format-security" ]; # hardeningDisable doesn't cut it
+
meta = {
platforms = lib.platforms.darwin;
maintainers = with lib.maintainers; [ matthewbauer ];
diff --git a/pkgs/os-specific/linux/alsa-project/alsa-lib/alsa-plugin-conf-multilib.patch b/pkgs/os-specific/linux/alsa-project/alsa-lib/alsa-plugin-conf-multilib.patch
deleted file mode 100644
index b17df9a492e5..000000000000
--- a/pkgs/os-specific/linux/alsa-project/alsa-lib/alsa-plugin-conf-multilib.patch
+++ /dev/null
@@ -1,232 +0,0 @@
-diff --git a/src/control/control.c b/src/control/control.c
-index d66ed75..42cecad 100644
---- a/src/control/control.c
-+++ b/src/control/control.c
-@@ -838,6 +838,10 @@ static int snd_ctl_open_conf(snd_ctl_t **ctlp, const char *name,
- #ifndef PIC
- extern void *snd_control_open_symbols(void);
- #endif
-+
-+ snd_config_t *libs = NULL;
-+ const char *libs_lib = NULL;
-+
- if (snd_config_get_type(ctl_conf) != SND_CONFIG_TYPE_COMPOUND) {
- if (name)
- SNDERR("Invalid type for CTL %s definition", name);
-@@ -879,6 +883,19 @@ static int snd_ctl_open_conf(snd_ctl_t **ctlp, const char *name,
- SNDERR("Invalid type for %s", id);
- goto _err;
- }
-+
-+ continue;
-+ }
-+ // Handle an array of extra libs.
-+ if (strcmp(id, "libs") == 0) {
-+ if (snd_config_get_type(n) != SND_CONFIG_TYPE_COMPOUND) {
-+ SNDERR("Invalid type for libs definition in CTL %s definition",
-+ str);
-+ goto _err;
-+ }
-+
-+ libs = n;
-+
- continue;
- }
- if (strcmp(id, "open") == 0) {
-@@ -903,7 +920,62 @@ static int snd_ctl_open_conf(snd_ctl_t **ctlp, const char *name,
- open_name = buf;
- sprintf(buf, "_snd_ctl_%s_open", str);
- }
-- if (!lib) {
-+
-+#ifndef PIC
-+ snd_control_open_symbols();
-+#endif
-+
-+ // Normal alsa behaviour when there is no libs array.
-+ if (!libs) {
-+ if (lib) {
-+ open_func = snd_dlobj_cache_get(lib, open_name,
-+ SND_DLSYM_VERSION(SND_CONTROL_DLSYM_VERSION), 1);
-+ }
-+ }
-+ // Handle libs array.
-+ // Suppresses error messages if any function is loaded successfully.
-+ else {
-+ if (lib) {
-+ open_func = snd_dlobj_cache_get(lib, open_name,
-+ SND_DLSYM_VERSION(SND_CONTROL_DLSYM_VERSION), 0);
-+ }
-+
-+ if (!open_func) {
-+ snd_config_for_each(i, next, libs) {
-+ snd_config_t *n = snd_config_iterator_entry(i);
-+
-+ err = snd_config_get_string(n, &libs_lib);
-+ if (err < 0) {
-+ SNDERR("Invalid entry in CTL %s libs definition", str);
-+ goto _err;
-+ }
-+
-+ if (!open_func) {
-+ open_func = snd_dlobj_cache_get(libs_lib, open_name,
-+ SND_DLSYM_VERSION(SND_CONTROL_DLSYM_VERSION), 0);
-+ }
-+ }
-+ }
-+
-+ // Print error messages.
-+ if (!open_func) {
-+ if (lib) {
-+ SNDERR("Either %s cannot be opened or %s was not defined inside",
-+ lib, open_name);
-+ }
-+
-+ snd_config_for_each(i, next, libs) {
-+ snd_config_t *n = snd_config_iterator_entry(i);
-+
-+ snd_config_get_string(n, &libs_lib);
-+ SNDERR("Either %s cannot be opened or %s was not defined inside",
-+ libs_lib, open_name);
-+ }
-+ }
-+ }
-+
-+ // Look in ALSA_PLUGIN_DIR iff we found nowhere else to look.
-+ if (!lib && (!libs || !libs_lib)) {
- const char *const *build_in = build_in_ctls;
- while (*build_in) {
- if (!strcmp(*build_in, str))
-@@ -919,12 +991,11 @@ static int snd_ctl_open_conf(snd_ctl_t **ctlp, const char *name,
- lib = buf1;
- sprintf(buf1, "%s/libasound_module_ctl_%s.so", ALSA_PLUGIN_DIR, str);
- }
-- }
--#ifndef PIC
-- snd_control_open_symbols();
--#endif
-- open_func = snd_dlobj_cache_get(lib, open_name,
-+
-+ open_func = snd_dlobj_cache_get(lib, open_name,
- SND_DLSYM_VERSION(SND_CONTROL_DLSYM_VERSION), 1);
-+ }
-+
- if (open_func) {
- err = open_func(ctlp, name, ctl_root, ctl_conf, mode);
- if (err >= 0) {
-diff --git a/src/pcm/pcm.c b/src/pcm/pcm.c
-index 2e24338..7f489f4 100644
---- a/src/pcm/pcm.c
-+++ b/src/pcm/pcm.c
-@@ -2116,6 +2116,10 @@ static int snd_pcm_open_conf(snd_pcm_t **pcmp, const char *name,
- #ifndef PIC
- extern void *snd_pcm_open_symbols(void);
- #endif
-+
-+ snd_config_t *libs = NULL;
-+ const char *libs_lib = NULL;
-+
- if (snd_config_get_type(pcm_conf) != SND_CONFIG_TYPE_COMPOUND) {
- char *val;
- id = NULL;
-@@ -2160,6 +2164,19 @@ static int snd_pcm_open_conf(snd_pcm_t **pcmp, const char *name,
- SNDERR("Invalid type for %s", id);
- goto _err;
- }
-+
-+ continue;
-+ }
-+ // Handle an array of extra libs.
-+ if (strcmp(id, "libs") == 0) {
-+ if (snd_config_get_type(n) != SND_CONFIG_TYPE_COMPOUND) {
-+ SNDERR("Invalid type for libs definition in PCM %s definition",
-+ str);
-+ goto _err;
-+ }
-+
-+ libs = n;
-+
- continue;
- }
- if (strcmp(id, "open") == 0) {
-@@ -2184,7 +2201,62 @@ static int snd_pcm_open_conf(snd_pcm_t **pcmp, const char *name,
- open_name = buf;
- sprintf(buf, "_snd_pcm_%s_open", str);
- }
-- if (!lib) {
-+
-+#ifndef PIC
-+ snd_pcm_open_symbols(); /* this call is for static linking only */
-+#endif
-+
-+ // Normal alsa behaviour when there is no libs array.
-+ if (!libs) {
-+ if (lib) {
-+ open_func = snd_dlobj_cache_get(lib, open_name,
-+ SND_DLSYM_VERSION(SND_PCM_DLSYM_VERSION), 1);
-+ }
-+ }
-+ // Handle libs array.
-+ // Suppresses error messages if any function is loaded successfully.
-+ else {
-+ if (lib) {
-+ open_func = snd_dlobj_cache_get(lib, open_name,
-+ SND_DLSYM_VERSION(SND_PCM_DLSYM_VERSION), 0);
-+ }
-+
-+ if (!open_func) {
-+ snd_config_for_each(i, next, libs) {
-+ snd_config_t *n = snd_config_iterator_entry(i);
-+
-+ err = snd_config_get_string(n, &libs_lib);
-+ if (err < 0) {
-+ SNDERR("Invalid entry in PCM %s libs definition", str);
-+ goto _err;
-+ }
-+
-+ if (!open_func) {
-+ open_func = snd_dlobj_cache_get(libs_lib, open_name,
-+ SND_DLSYM_VERSION(SND_PCM_DLSYM_VERSION), 0);
-+ }
-+ }
-+ }
-+
-+ // Print error messages.
-+ if (!open_func) {
-+ if (lib) {
-+ SNDERR("Either %s cannot be opened or %s was not defined inside",
-+ lib, open_name);
-+ }
-+
-+ snd_config_for_each(i, next, libs) {
-+ snd_config_t *n = snd_config_iterator_entry(i);
-+
-+ snd_config_get_string(n, &libs_lib);
-+ SNDERR("Either %s cannot be opened or %s was not defined inside",
-+ libs_lib, open_name);
-+ }
-+ }
-+ }
-+
-+ // Look in ALSA_PLUGIN_DIR iff we found nowhere else to look.
-+ if (!lib && (!libs || !libs_lib)) {
- const char *const *build_in = build_in_pcms;
- while (*build_in) {
- if (!strcmp(*build_in, str))
-@@ -2200,12 +2272,11 @@ static int snd_pcm_open_conf(snd_pcm_t **pcmp, const char *name,
- lib = buf1;
- sprintf(buf1, "%s/libasound_module_pcm_%s.so", ALSA_PLUGIN_DIR, str);
- }
-- }
--#ifndef PIC
-- snd_pcm_open_symbols(); /* this call is for static linking only */
--#endif
-- open_func = snd_dlobj_cache_get(lib, open_name,
-+
-+ open_func = snd_dlobj_cache_get(lib, open_name,
- SND_DLSYM_VERSION(SND_PCM_DLSYM_VERSION), 1);
-+ }
-+
- if (open_func) {
- err = open_func(pcmp, name, pcm_root, pcm_conf, stream, mode);
- if (err >= 0) {
diff --git a/pkgs/os-specific/linux/alsa-project/alsa-lib/default.nix b/pkgs/os-specific/linux/alsa-project/alsa-lib/default.nix
index a23502714827..445d171d31fd 100644
--- a/pkgs/os-specific/linux/alsa-project/alsa-lib/default.nix
+++ b/pkgs/os-specific/linux/alsa-project/alsa-lib/default.nix
@@ -7,24 +7,15 @@
stdenv.mkDerivation rec {
pname = "alsa-lib";
- version = "1.2.5.1";
+ version = "1.2.6.1";
src = fetchurl {
url = "mirror://alsa/lib/${pname}-${version}.tar.bz2";
- sha256 = "sha256-YoQh2VDOyvI03j+JnVIMCmkjMTyWStdR/6wIHfMxQ44=";
+ hash = "sha256-rVgpk9Us21+xWaC+q2CmrFfqsMwb34XcTbbWGX8CMz8=";
};
- patches = [
- ./alsa-plugin-conf-multilib.patch
- ];
-
enableParallelBuilding = true;
- # Fix pcm.h file in order to prevent some compilation bugs
- postPatch = ''
- sed -i -e 's|//int snd_pcm_mixer_element(snd_pcm_t \*pcm, snd_mixer_t \*mixer, snd_mixer_elem_t \*\*elem);|/\*int snd_pcm_mixer_element(snd_pcm_t \*pcm, snd_mixer_t \*mixer, snd_mixer_elem_t \*\*elem);\*/|' include/pcm.h
- '';
-
postInstall = ''
ln -s ${alsa-ucm-conf}/share/alsa/{ucm,ucm2} $out/share/alsa
ln -s ${alsa-topology-conf}/share/alsa/topology $out/share/alsa
@@ -43,5 +34,6 @@ stdenv.mkDerivation rec {
license = licenses.lgpl21Plus;
platforms = platforms.linux;
+ maintainers = with maintainers; [ l-as ];
};
}
diff --git a/pkgs/os-specific/linux/cryptsetup/default.nix b/pkgs/os-specific/linux/cryptsetup/default.nix
index 9bbd6ddafedf..939a7115e89b 100644
--- a/pkgs/os-specific/linux/cryptsetup/default.nix
+++ b/pkgs/os-specific/linux/cryptsetup/default.nix
@@ -24,12 +24,14 @@ stdenv.mkDerivation rec {
substituteInPlace tests/unit-utils-io.c --replace "| O_DIRECT" ""
'';
- NIX_LDFLAGS = "-lgcc_s";
+ NIX_LDFLAGS = lib.optionalString (stdenv.cc.isGNU && !stdenv.hostPlatform.isStatic) "-lgcc_s";
configureFlags = [
"--enable-cryptsetup-reencrypt"
"--with-crypto_backend=openssl"
"--disable-ssh-token"
+ ] ++ lib.optionals stdenv.hostPlatform.isStatic [
+ "--enable-static-cryptsetup"
];
nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/os-specific/linux/firmware/fwupd/default.nix b/pkgs/os-specific/linux/firmware/fwupd/default.nix
index 71f6da0d13b1..077c37a72cb3 100644
--- a/pkgs/os-specific/linux/firmware/fwupd/default.nix
+++ b/pkgs/os-specific/linux/firmware/fwupd/default.nix
@@ -214,7 +214,7 @@ let
"-Dc_link_args=-Wl,-rpath,${placeholder "out"}/lib"
] ++ lib.optionals (!haveDell) [
"-Dplugin_dell=false"
- "-Dplugin_synaptics=false"
+ "-Dplugin_synaptics_mst=false"
] ++ lib.optionals (!haveRedfish) [
"-Dplugin_redfish=false"
] ++ lib.optionals haveFlashrom [
diff --git a/pkgs/os-specific/linux/iputils/default.nix b/pkgs/os-specific/linux/iputils/default.nix
index c949069885df..0ca6d8aa187f 100644
--- a/pkgs/os-specific/linux/iputils/default.nix
+++ b/pkgs/os-specific/linux/iputils/default.nix
@@ -6,7 +6,7 @@
}:
let
- version = "20210722";
+ version = "20211215";
sunAsIsLicense = {
fullName = "AS-IS, SUN MICROSYSTEMS license";
url = "https://github.com/iputils/iputils/blob/s${version}/rdisc.c";
@@ -19,14 +19,9 @@ in stdenv.mkDerivation rec {
owner = pname;
repo = pname;
rev = version;
- sha256 = "139fyifsjm0i012rhcx3ra3pxx2wxh77dfd551d8lgiv2mqd742j";
+ sha256 = "1vzdch1xi2x2j8mvnsr4wwwh7kdkgf926xafw5kkb74yy1wac5qv";
};
- postPatch = lib.optionalString (!doCheck) ''
- # There isn't a Meson option for this yet:
- sed -i '/##### TESTS #####/q' ping/meson.build
- '';
-
outputs = ["out" "apparmor"];
# We don't have the required permissions inside the build sandbox:
@@ -35,11 +30,10 @@ in stdenv.mkDerivation rec {
mesonFlags = [
"-DBUILD_RARPD=true"
- "-DBUILD_TRACEROUTE6=true"
- "-DBUILD_TFTPD=true"
"-DNO_SETCAP_OR_SUID=true"
"-Dsystemdunitdir=etc/systemd/system"
"-DINSTALL_SYSTEMD_UNITS=true"
+ "-DSKIP_TESTS=${lib.boolToString (!doCheck)}"
]
# Disable idn usage w/musl (https://github.com/iputils/iputils/pull/111):
++ lib.optional stdenv.hostPlatform.isMusl "-DUSE_IDN=false";
@@ -87,9 +81,7 @@ in stdenv.mkDerivation rec {
ping
rarpd
rdisc
- tftpd
tracepath
- traceroute6
'';
};
}
diff --git a/pkgs/os-specific/linux/libbpf/default.nix b/pkgs/os-specific/linux/libbpf/default.nix
index daee83e61dbc..81e86fe77efc 100644
--- a/pkgs/os-specific/linux/libbpf/default.nix
+++ b/pkgs/os-specific/linux/libbpf/default.nix
@@ -21,12 +21,16 @@ stdenv.mkDerivation rec {
sha256 = "sha256-/MLPflnfooe7Wjy8M3CTowAi5oYpscruSkDsaVzhmYQ=";
};
+ patches = [(fetchpatch {
+ url = "https://github.com/libbpf/libbpf/pull/41.diff";
+ sha256 = "sha256-pg5WARqh6z0nkTHMBhftxwdV2SyswC2lfaCXCpez0VA=";
+ })];
+
nativeBuildInputs = [ pkg-config ];
buildInputs = [ libelf zlib ];
- sourceRoot = "source/src";
enableParallelBuilding = true;
- makeFlags = [ "PREFIX=$(out)" ];
+ makeFlags = [ "PREFIX=$(out)" "-C src" ];
passthru.tests = {
bpf = nixosTests.bpf;
@@ -34,7 +38,7 @@ stdenv.mkDerivation rec {
postInstall = ''
# install linux's libbpf-compatible linux/btf.h
- install -Dm444 ../include/uapi/linux/btf.h -t $out/include/linux
+ install -Dm444 include/uapi/linux/btf.h -t $out/include/linux
'';
# FIXME: Multi-output requires some fixes to the way the pkg-config file is
diff --git a/pkgs/os-specific/linux/lvm2/common.nix b/pkgs/os-specific/linux/lvm2/common.nix
index 2c8014d700a0..0749292531bb 100644
--- a/pkgs/os-specific/linux/lvm2/common.nix
+++ b/pkgs/os-specific/linux/lvm2/common.nix
@@ -9,7 +9,8 @@
, libaio
, enableCmdlib ? false
, enableDmeventd ? false
-, udev ? null
+, udevSupport ? !stdenv.targetPlatform.isStatic, udev ? null
+, onlyLib ? stdenv.targetPlatform.isStatic
, nixosTests
}:
@@ -26,7 +27,13 @@ stdenv.mkDerivation rec {
};
nativeBuildInputs = [ pkg-config ];
- buildInputs = [ udev libuuid libaio ];
+ buildInputs = [
+ libaio
+ ] ++ lib.optionals udevSupport [
+ udev
+ ] ++ lib.optionals (!onlyLib) [
+ libuuid
+ ];
configureFlags = [
"--disable-readline"
@@ -46,10 +53,11 @@ stdenv.mkDerivation rec {
] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
"ac_cv_func_malloc_0_nonnull=yes"
"ac_cv_func_realloc_0_nonnull=yes"
- ] ++
- lib.optionals (udev != null) [
+ ] ++ lib.optionals udevSupport [
"--enable-udev_rules"
"--enable-udev_sync"
+ ] ++ lib.optionals stdenv.targetPlatform.isStatic [
+ "--enable-static_link"
];
preConfigure = ''
@@ -58,9 +66,13 @@ stdenv.mkDerivation rec {
substituteInPlace scripts/lvm2_activation_generator_systemd_red_hat.c \
--replace /usr/bin/udevadm /run/current-system/systemd/bin/udevadm
# https://github.com/lvmteam/lvm2/issues/36
+ '' + lib.optionalString (lib.versionOlder version "2.03.14") ''
+ substituteInPlace udev/69-dm-lvm-metad.rules.in \
+ --replace "(BINDIR)/systemd-run" /run/current-system/systemd/bin/systemd-run
+ '' + lib.optionalString (lib.versionAtLeast version "2.03.14") ''
substituteInPlace udev/69-dm-lvm.rules.in \
--replace "/usr/bin/systemd-run" /run/current-system/systemd/bin/systemd-run
-
+ '' + ''
substituteInPlace make.tmpl.in --replace "@systemdsystemunitdir@" "$out/lib/systemd/system"
'' + lib.optionalString (lib.versionAtLeast version "2.03") ''
substituteInPlace libdm/make.tmpl.in --replace "@systemdsystemunitdir@" "$out/lib/systemd/system"
@@ -78,30 +90,41 @@ stdenv.mkDerivation rec {
url = "https://git.alpinelinux.org/aports/plain/main/lvm2/mallinfo.patch?h=3.7-stable&id=31bd4a8c2dc00ae79a821f6fe0ad2f23e1534f50";
sha256 = "0g6wlqi215i5s30bnbkn8w7axrs27y3bnygbpbnf64wwx7rxxlj0";
})
+ ] ++ lib.optionals stdenv.targetPlatform.isStatic [
+ ./no-shared.diff
];
doCheck = false; # requires root
- makeFlags = lib.optionals (udev != null) [
+ makeFlags = lib.optionals udevSupport [
"SYSTEMD_GENERATOR_DIR=$(out)/lib/systemd/system-generators"
+ ] ++ lib.optionals onlyLib [
+ "libdm.device-mapper"
];
# To prevent make install from failing.
installFlags = [ "OWNER=" "GROUP=" "confdir=$(out)/etc" ];
# Install systemd stuff.
- installTargets = [ "install" ] ++ lib.optionals (udev != null) [
+ installTargets = [ "install" ] ++ lib.optionals udevSupport [
"install_systemd_generators"
"install_systemd_units"
"install_tmpfiles_configuration"
];
+ installPhase = lib.optionalString onlyLib ''
+ install -D -t $out/lib libdm/ioctl/libdevmapper.${if stdenv.targetPlatform.isStatic then "a" else "so"}
+ make -C libdm install_include
+ make -C libdm install_pkgconfig
+ '';
+
# only split bin and lib out from out if cmdlib isn't enabled
outputs = [
"out"
+ ] ++ lib.optionals (!onlyLib) [
"dev"
"man"
- ] ++ lib.optionals (enableCmdlib != true) [
+ ] ++ lib.optionals (!onlyLib && !enableCmdlib) [
"bin"
"lib"
];
diff --git a/pkgs/os-specific/linux/lvm2/no-shared.diff b/pkgs/os-specific/linux/lvm2/no-shared.diff
new file mode 100644
index 000000000000..d40dd85dfc62
--- /dev/null
+++ b/pkgs/os-specific/linux/lvm2/no-shared.diff
@@ -0,0 +1,25 @@
+diff --git a/libdm/Makefile.in b/libdm/Makefile.in
+index 66ec39513..ab7123dae 100644
+--- a/libdm/Makefile.in
++++ b/libdm/Makefile.in
+@@ -44,7 +44,6 @@ endif
+
+ LIB_SHARED = $(interface)/libdevmapper.$(LIB_SUFFIX)
+ LIB_VERSION = $(LIB_VERSION_DM)
+-TARGETS = libdevmapper.$(LIB_SUFFIX) libdevmapper.$(LIB_SUFFIX).$(LIB_VERSION)
+
+ CFLOW_LIST = $(SOURCES)
+ CFLOW_LIST_TARGET = libdevmapper.cflow
+diff --git a/make.tmpl.in b/make.tmpl.in
+index e7780e8d4..ca4aa9fdd 100644
+--- a/make.tmpl.in
++++ b/make.tmpl.in
+@@ -346,7 +346,7 @@ SUBDIRS.cflow := $(SUBDIRS:=.cflow)
+ SUBDIRS.clean := $(SUBDIRS:=.clean)
+ SUBDIRS.distclean := $(SUBDIRS:=.distclean)
+
+-TARGETS += $(LIB_SHARED) $(LIB_STATIC)
++TARGETS += $(LIB_STATIC)
+
+ all: $(SUBDIRS) $(TARGETS)
+
diff --git a/pkgs/os-specific/linux/pam/default.nix b/pkgs/os-specific/linux/pam/default.nix
index 12ff9f493a37..33ab4f784fcb 100644
--- a/pkgs/os-specific/linux/pam/default.nix
+++ b/pkgs/os-specific/linux/pam/default.nix
@@ -23,18 +23,6 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
- postInstall = ''
- mv -v $out/sbin/unix_chkpwd{,.orig}
- ln -sv /run/wrappers/bin/unix_chkpwd $out/sbin/unix_chkpwd
- ''; /*
- rm -rf $out/etc
- mkdir -p $modules/lib
- mv $out/lib/security $modules/lib/
- '';*/
- # don't move modules, because libpam needs to (be able to) find them,
- # which is done by dlopening $out/lib/security/pam_foo.so
- # $out/etc was also missed: pam_env(login:session): Unable to open config file
-
preConfigure = lib.optionalString (stdenv.hostPlatform.libc == "musl") ''
# export ac_cv_search_crypt=no
# (taken from Alpine linux, apparently insecure but also doesn't build O:))
diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix
index 3c11c03dfdc2..f17dd02e7c03 100644
--- a/pkgs/os-specific/linux/systemd/default.nix
+++ b/pkgs/os-specific/linux/systemd/default.nix
@@ -415,7 +415,7 @@ stdenv.mkDerivation {
"-Dnetworkd=${lib.boolToString withNetworkd}"
"-Doomd=${lib.boolToString withOomd}"
"-Dpolkit=${lib.boolToString withPolkit}"
- "-Dcryptsetup=${lib.boolToString withCryptsetup}"
+ "-Dlibcryptsetup=${lib.boolToString withCryptsetup}"
"-Dportabled=${lib.boolToString withPortabled}"
"-Dhwdb=${lib.boolToString withHwdb}"
"-Dremote=${lib.boolToString withRemote}"
@@ -453,7 +453,6 @@ stdenv.mkDerivation {
"-Dsysvinit-path="
"-Dsysvrcnd-path="
- "-Dkill-path=${coreutils}/bin/kill"
"-Dkmod-path=${kmod}/bin/kmod"
"-Dsulogin-path=${util-linux}/bin/sulogin"
"-Dmount-path=${util-linux}/bin/mount"
@@ -471,7 +470,6 @@ stdenv.mkDerivation {
] ++ lib.optionals withEfi [
"-Defi-libdir=${toString gnu-efi}/lib"
"-Defi-includedir=${toString gnu-efi}/include/efi"
- "-Defi-ldsdir=${toString gnu-efi}/lib"
] ++ lib.optionals (withShellCompletions == false) [
"-Dbashcompletiondir=no"
"-Dzshcompletiondir=no"
diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix
index 0cb5e13fbd27..e26c38bc87f3 100644
--- a/pkgs/servers/home-assistant/default.nix
+++ b/pkgs/servers/home-assistant/default.nix
@@ -206,17 +206,26 @@ in python.pkgs.buildPythonApplication rec {
./patches/tests-ignore-OSErrors-in-hass-fixture.patch
];
- postPatch = ''
- substituteInPlace setup.py \
- --replace "aiohttp==3.8.1" "aiohttp" \
- --replace "async_timeout==4.0.0" "async_timeout" \
- --replace "bcrypt==3.1.7" "bcrypt" \
- --replace "cryptography==35.0.0" "cryptography" \
- --replace "httpx==0.21.0" "httpx" \
- --replace "pip>=8.0.3,<20.3" "pip" \
- --replace "PyJWT==2.1.0" "PyJWT" \
- --replace "pyyaml==6.0" "pyyaml" \
- --replace "yarl==1.6.3" "yarl"
+ postPatch = let
+ relaxedConstraints = [
+ "aiohttp"
+ "async_timeout"
+ "attrs"
+ "awesomeversion"
+ "bcrypt"
+ "cryptography"
+ "httpx"
+ "pip"
+ "PyJWT"
+ "requests"
+ "yarl"
+ ];
+ in ''
+ sed -r -i \
+ ${lib.concatStringsSep "\n" (map (package:
+ ''-e 's@${package}[<>=]+.*@${package}",@g' \''
+ ) relaxedConstraints)}
+ setup.py
substituteInPlace tests/test_config.py --replace '"/usr"' '"/build/media"'
'';
diff --git a/pkgs/servers/pulseaudio/default.nix b/pkgs/servers/pulseaudio/default.nix
index f8eecf491693..664d9ef9f753 100644
--- a/pkgs/servers/pulseaudio/default.nix
+++ b/pkgs/servers/pulseaudio/default.nix
@@ -26,7 +26,7 @@
, # Whether to build only the library.
libOnly ? false
-, AudioUnit, Cocoa, CoreServices, Libc
+, AudioUnit, Cocoa, CoreServices
}:
stdenv.mkDerivation rec {
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
buildInputs =
[ libtool libsndfile soxr speexdsp fftwFloat ]
++ lib.optionals stdenv.isLinux [ glib dbus ]
- ++ lib.optionals stdenv.isDarwin [ AudioUnit Cocoa CoreServices Libc ]
+ ++ lib.optionals stdenv.isDarwin [ AudioUnit Cocoa CoreServices ]
++ lib.optionals (!libOnly) (
[ libasyncns webrtc-audio-processing ]
++ lib.optional jackaudioSupport libjack2
@@ -101,8 +101,6 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
- NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-I${Libc}";
-
installFlags =
[ "sysconfdir=${placeholder "out"}/etc"
"pulseconfdir=${placeholder "out"}/etc/pulse"
diff --git a/pkgs/stdenv/booter.nix b/pkgs/stdenv/booter.nix
index 51d617354e86..f1d07e6461a9 100644
--- a/pkgs/stdenv/booter.nix
+++ b/pkgs/stdenv/booter.nix
@@ -124,7 +124,13 @@ stageFuns: let
if buildPackages.stdenv.hasCC
then
if buildPackages.stdenv.cc.isClang or false
- then buildPackages.clang
+ # buildPackages.clang checks targetPackages.stdenv.cc (i. e. this
+ # attribute) to get a sense of the its set's default compiler and
+ # chooses between libc++ and libstdc++ based on that. If we hit this
+ # code here, we'll cause an infinite recursion. Since a set with
+ # clang as its default compiler always means libc++, we can infer this
+ # decision statically.
+ then buildPackages.llvmPackages.libcxxClang
else buildPackages.gcc
else
# This will blow up if anything uses it, but that's OK. The `if
diff --git a/pkgs/stdenv/cross/default.nix b/pkgs/stdenv/cross/default.nix
index 613b8d5304c0..e01ac74599ae 100644
--- a/pkgs/stdenv/cross/default.nix
+++ b/pkgs/stdenv/cross/default.nix
@@ -70,7 +70,7 @@ in lib.init bootStages ++ [
# when there is a C compiler and everything should be fine.
then throw "no C compiler provided for this platform"
else if crossSystem.isDarwin
- then buildPackages.llvmPackages.clang
+ then buildPackages.llvmPackages.libcxxClang
else if crossSystem.useLLVM or false
then buildPackages.llvmPackages.clangUseLLVM
else buildPackages.gcc;
diff --git a/pkgs/stdenv/darwin/default.nix b/pkgs/stdenv/darwin/default.nix
index 24ad0cb6959f..a6f927c287da 100644
--- a/pkgs/stdenv/darwin/default.nix
+++ b/pkgs/stdenv/darwin/default.nix
@@ -399,6 +399,8 @@ rec {
persistent = self: super: with prevStage; {
cmake = super.cmakeMinimal;
+ curl = super.curlMinimal;
+
inherit pbzx cpio;
python3 = super.python3Minimal;
@@ -755,6 +757,9 @@ rec {
darwin.binutils
darwin.binutils.bintools
curl.out
+ zstd.out
+ libidn2.out
+ libunistring.out
openssl.out
libssh2.out
nghttp2.lib
diff --git a/pkgs/stdenv/generic/default.nix b/pkgs/stdenv/generic/default.nix
index 49ebc67f854e..4fb98e5e8013 100644
--- a/pkgs/stdenv/generic/default.nix
+++ b/pkgs/stdenv/generic/default.nix
@@ -112,7 +112,7 @@ let
# are absolute unless we go out of our way to make them relative (like with CF)
# TODO: This really wants to be in stdenv/darwin but we don't have hostPlatform
# there (yet?) so it goes here until then.
- preHook = preHook+ lib.optionalString buildPlatform.isDarwin ''
+ preHook = preHook + lib.optionalString buildPlatform.isDarwin ''
export NIX_DONT_SET_RPATH_FOR_BUILD=1
'' + lib.optionalString (hostPlatform.isDarwin || (hostPlatform.parsed.kernel.execFormat != lib.systems.parse.execFormats.elf && hostPlatform.parsed.kernel.execFormat != lib.systems.parse.execFormats.macho)) ''
export NIX_DONT_SET_RPATH=1
@@ -168,6 +168,11 @@ let
inherit overrides;
inherit cc hasCC;
+
+ # Convenience for doing some very basic shell syntax checking by parsing a script
+ # without running any commands. Because this will also skip `shopt -s extglob`
+ # commands and extglob affects the Bash parser, we enable extglob always.
+ shellDryRun = "${stdenv.shell} -n -O extglob";
}
# Propagate any extra attributes. For instance, we use this to
diff --git a/pkgs/stdenv/linux/bootstrap-files/aarch64.nix b/pkgs/stdenv/linux/bootstrap-files/aarch64.nix
index 592f8ee6bef5..aa81cbd84af3 100644
--- a/pkgs/stdenv/linux/bootstrap-files/aarch64.nix
+++ b/pkgs/stdenv/linux/bootstrap-files/aarch64.nix
@@ -1,11 +1,11 @@
{
busybox = import {
- url = "http://tarballs.nixos.org/stdenv-linux/aarch64/bb3ef8a95c9659596b8a34d27881cd30ffea2f9f/busybox";
- sha256 = "12qcml1l67skpjhfjwy7gr10nc86gqcwjmz9ggp7knss8gq8pv7f";
+ url = "http://tarballs.nixos.org/stdenv-linux/aarch64/c7c997a0662bf88264db52cbc41e67884eb7a1ff/busybox";
+ sha256 = "sha256-4EN2vLvXUkelZZR2eKaAQA5kCEuHNvRZN6dcohxVY+c=";
executable = true;
};
bootstrapTools = import {
- url = "http://tarballs.nixos.org/stdenv-linux/aarch64/c5aabb0d603e2c1ea05f5a93b3be82437f5ebf31/bootstrap-tools.tar.xz";
- sha256 = "d3f1bf2a1495b97f45359d5623bdb1f8eb75db43d3bf2059fc127b210f059358";
+ url = "http://tarballs.nixos.org/stdenv-linux/aarch64/c7c997a0662bf88264db52cbc41e67884eb7a1ff/bootstrap-tools.tar.xz";
+ sha256 = "sha256-AjOvmaW8JFVZaBSRUMKufr9kJozg/tsZr7PvUEBQyi4=";
};
}
diff --git a/pkgs/tools/admin/azure-cli/python-packages.nix b/pkgs/tools/admin/azure-cli/python-packages.nix
index a917112cc5f0..0339caa72ce8 100644
--- a/pkgs/tools/admin/azure-cli/python-packages.nix
+++ b/pkgs/tools/admin/azure-cli/python-packages.nix
@@ -466,6 +466,8 @@ let
inherit version;
sha256 = "sha256-109FuBMXRU2W6YL9HFDm+1yZrCIjcorqh2RDOjn1ZvE=";
};
+ # sdist lacks tests
+ doCheck = false;
});
semver = super.semver.overridePythonAttrs(oldAttrs: rec {
diff --git a/pkgs/tools/audio/yabridge/default.nix b/pkgs/tools/audio/yabridge/default.nix
index c468a845a1a6..688906e684d9 100644
--- a/pkgs/tools/audio/yabridge/default.nix
+++ b/pkgs/tools/audio/yabridge/default.nix
@@ -105,11 +105,7 @@ in multiStdenv.mkDerivation rec {
"-Dwith-bitbridge=true"
# Requires CMake and is unnecessary
- "-Dtomlplusplus:GENERATE_CMAKE_CONFIG=disabled"
-
- # tomlplusplus examples and tests don't build with winegcc
- "-Dtomlplusplus:BUILD_EXAMPLES=disabled"
- "-Dtomlplusplus:BUILD_TESTS=disabled"
+ "-Dtomlplusplus:generate_cmake_config=false"
];
installPhase = ''
diff --git a/pkgs/tools/compression/zstd/default.nix b/pkgs/tools/compression/zstd/default.nix
index 1f9b4a505ac4..a3184f6d1ede 100644
--- a/pkgs/tools/compression/zstd/default.nix
+++ b/pkgs/tools/compression/zstd/default.nix
@@ -7,17 +7,18 @@
# these need to be ran on the host, thus disable when cross-compiling
, buildContrib ? stdenv.hostPlatform == stdenv.buildPlatform
, doCheck ? stdenv.hostPlatform == stdenv.buildPlatform
+, nix-update-script
}:
stdenv.mkDerivation rec {
pname = "zstd";
- version = "1.5.0";
+ version = "1.5.1";
src = fetchFromGitHub {
owner = "facebook";
repo = "zstd";
rev = "v${version}";
- sha256 = "0icc0x89c35rq5bxd4d241vqxnz2i1qj2wwy01xls63p0z93brj7";
+ sha256 = "sha256-D9+kuIjPYnmg5ht/ezIeYCpyiLkrtdiH3fwpmemIPGM=";
};
nativeBuildInputs = [ cmake ]
@@ -28,12 +29,6 @@ stdenv.mkDerivation rec {
# This patches makes sure we do not attempt to use the MD5 implementation
# of the host platform when running the tests
./playtests-darwin.patch
-
- # Fixes linking for static builds
- (fetchpatch {
- url = "https://github.com/facebook/zstd/pull/2724/commits/e1f85dbca3a0ed5ef06c8396912a0914db8dea6a.patch";
- sha256 = "sha256-PuYAqnJWAE+L9bsroOnnBGJhERW8LHrGSLtIEkKU9vg=";
- })
];
postPatch = lib.optionalString (!static) ''
@@ -90,6 +85,12 @@ stdenv.mkDerivation rec {
++ lib.optional stdenv.hostPlatform.isUnix "man"
++ [ "out" ];
+ passthru = {
+ updateScript = nix-update-script {
+ attrPath = pname;
+ };
+ };
+
meta = with lib; {
description = "Zstandard real-time compression algorithm";
longDescription = ''
diff --git a/pkgs/tools/compression/zstd/playtests-darwin.patch b/pkgs/tools/compression/zstd/playtests-darwin.patch
index bcb895a697ca..454489a24a12 100644
--- a/pkgs/tools/compression/zstd/playtests-darwin.patch
+++ b/pkgs/tools/compression/zstd/playtests-darwin.patch
@@ -1,6 +1,6 @@
--- a/tests/playTests.sh
+++ b/tests/playTests.sh
-@@ -112,22 +112,12 @@ case "$OS" in
+@@ -112,29 +112,19 @@ case "$OS" in
esac
case "$UNAME" in
@@ -16,6 +16,13 @@
- Darwin | FreeBSD | OpenBSD | NetBSD) MTIME="stat -f %m" ;;
-esac
+ assertSameMTime() {
+ MT1=$($MTIME "$1")
+ MT2=$($MTIME "$2")
+ echo MTIME $MT1 $MT2
+ [ "$MT1" = "$MT2" ] || die "mtime on $1 doesn't match mtime on $2 ($MT1 != $MT2)"
+ }
+
GET_PERMS="stat -c %a"
-case "$UNAME" in
- Darwin | FreeBSD | OpenBSD | NetBSD) GET_PERMS="stat -f %Lp" ;;
diff --git a/pkgs/tools/misc/wyrd/default.nix b/pkgs/tools/misc/wyrd/default.nix
index 491c362eed40..d1244cc73c47 100644
--- a/pkgs/tools/misc/wyrd/default.nix
+++ b/pkgs/tools/misc/wyrd/default.nix
@@ -9,8 +9,6 @@ stdenv.mkDerivation rec {
sha256 = "0zlrg602q781q8dij62lwdprpfliyy9j1rqfqcz8p2wgndpivddj";
};
- NIX_CFLAGS_COMPILE = "-DNCURSES_INTERNALS=1";
-
preConfigure = ''
substituteInPlace curses/curses.ml --replace 'pp gcc' "pp $CC"
'';
diff --git a/pkgs/tools/networking/curl/default.nix b/pkgs/tools/networking/curl/default.nix
index a5abbc26a741..bfd48893165c 100644
--- a/pkgs/tools/networking/curl/default.nix
+++ b/pkgs/tools/networking/curl/default.nix
@@ -1,12 +1,8 @@
-{ stdenv, lib, fetchurl, pkg-config, perl
-, http2Support ? true, nghttp2
-, idnSupport ? false, libidn ? null
-, ldapSupport ? false, openldap ? null
-, zlibSupport ? true, zlib ? null
-, opensslSupport ? zlibSupport, openssl ? null
+{ lib, stdenv, fetchurl, pkg-config, perl
+, brotliSupport ? false, brotli ? null
+, c-aresSupport ? false, c-ares ? null
, gnutlsSupport ? false, gnutls ? null
-, wolfsslSupport ? false, wolfssl ? null
-, scpSupport ? zlibSupport && !stdenv.isSunOS && !stdenv.isCygwin, libssh2 ? null
+, gsaslSupport ? false, gsasl ? null
, gssSupport ? with stdenv.hostPlatform; (
!isWindows &&
# disable gss becuase of: undefined reference to `k5_bcmp'
@@ -17,8 +13,17 @@
# not worth the effort.
!(isDarwin && (stdenv.buildPlatform != stdenv.hostPlatform))
), libkrb5 ? null
-, c-aresSupport ? false, c-ares ? null
-, brotliSupport ? false, brotli ? null
+, http2Support ? true, nghttp2 ? null
+, http3Support ? false, nghttp3, ngtcp2 ? null
+, idnSupport ? false, libidn2 ? null
+, ldapSupport ? false, openldap ? null
+, opensslSupport ? zlibSupport, openssl ? null
+, pslSupport ? false, libpsl ? null
+, rtmpSupport ? false, rtmpdump ? null
+, scpSupport ? zlibSupport && !stdenv.isSunOS && !stdenv.isCygwin, libssh2 ? null
+, wolfsslSupport ? false, wolfssl ? null
+, zlibSupport ? true, zlib ? null
+, zstdSupport ? false, zstd ? null
}:
# Note: this package is used for bootstrapping fetchurl, and thus
@@ -26,31 +31,37 @@
# cgit) that are needed here should be included directly in Nixpkgs as
# files.
-assert http2Support -> nghttp2 != null;
-assert idnSupport -> libidn != null;
-assert ldapSupport -> openldap != null;
-assert zlibSupport -> zlib != null;
-assert opensslSupport -> openssl != null;
assert !(gnutlsSupport && opensslSupport);
assert !(gnutlsSupport && wolfsslSupport);
assert !(opensslSupport && wolfsslSupport);
-assert gnutlsSupport -> gnutls != null;
-assert wolfsslSupport -> wolfssl != null;
-assert scpSupport -> libssh2 != null;
-assert c-aresSupport -> c-ares != null;
assert brotliSupport -> brotli != null;
+assert c-aresSupport -> c-ares != null;
+assert gnutlsSupport -> gnutls != null;
+assert gsaslSupport -> gsasl != null;
assert gssSupport -> libkrb5 != null;
+assert http2Support -> nghttp2 != null;
+assert http3Support -> nghttp3 != null;
+assert http3Support -> ngtcp2 != null;
+assert idnSupport -> libidn2 != null;
+assert ldapSupport -> openldap != null;
+assert opensslSupport -> openssl != null;
+assert pslSupport -> libpsl !=null;
+assert rtmpSupport -> rtmpdump !=null;
+assert scpSupport -> libssh2 != null;
+assert wolfsslSupport -> wolfssl != null;
+assert zlibSupport -> zlib != null;
+assert zstdSupport -> zstd != null;
stdenv.mkDerivation rec {
pname = "curl";
- version = "7.80.0";
+ version = "7.81.0";
src = fetchurl {
urls = [
"https://curl.haxx.se/download/${pname}-${version}.tar.bz2"
"https://github.com/curl/curl/releases/download/${lib.replaceStrings ["."] ["_"] pname}-${version}/${pname}-${version}.tar.bz2"
];
- sha256 = "170qb2w2p5fga0vqhhnzi417z4h4vy764sz16pzhm5fd9471a3fx";
+ sha256 = "sha256-Hno41wGOwGDx8W34OYVPCInpThIsTPpdOjfC3Fbx4lg=";
};
patches = [
@@ -70,17 +81,22 @@ stdenv.mkDerivation rec {
# "-lz -lssl", which aren't necessary direct build inputs of
# applications that use Curl.
propagatedBuildInputs = with lib;
- optional http2Support nghttp2 ++
- optional idnSupport libidn ++
- optional ldapSupport openldap ++
- optional zlibSupport zlib ++
- optional gssSupport libkrb5 ++
+ optional brotliSupport brotli ++
optional c-aresSupport c-ares ++
- optional opensslSupport openssl ++
optional gnutlsSupport gnutls ++
- optional wolfsslSupport wolfssl ++
+ optional gsaslSupport gsasl ++
+ optional gssSupport libkrb5 ++
+ optional http2Support nghttp2 ++
+ optionals http3Support [ nghttp3 ngtcp2 ] ++
+ optional idnSupport libidn2 ++
+ optional ldapSupport openldap ++
+ optional opensslSupport openssl ++
+ optional pslSupport libpsl ++
+ optional rtmpSupport rtmpdump ++
optional scpSupport libssh2 ++
- optional brotliSupport brotli;
+ optional wolfsslSupport wolfssl ++
+ optional zlibSupport zlib ++
+ optional zstdSupport zstd;
# for the second line see https://curl.haxx.se/mail/tracker-2014-03/0087.html
preConfigure = ''
@@ -89,23 +105,28 @@ stdenv.mkDerivation rec {
'';
configureFlags = [
+ # Build without manual
+ "--disable-manual"
# Disable default CA bundle, use NIX_SSL_CERT_FILE or fallback
# to nss-cacert from the default profile.
"--without-ca-bundle"
"--without-ca-path"
- # The build fails when using wolfssl with --with-ca-fallback
- (lib.withFeature (!wolfsslSupport) "ca-fallback")
- "--disable-manual"
- (lib.withFeatureAs opensslSupport "openssl" (lib.getDev openssl))
- (lib.withFeatureAs gnutlsSupport "gnutls" (lib.getDev gnutls))
- (lib.withFeatureAs scpSupport "libssh2" (lib.getDev libssh2))
+ (lib.enableFeature c-aresSupport "ares")
(lib.enableFeature ldapSupport "ldap")
(lib.enableFeature ldapSupport "ldaps")
- (lib.withFeatureAs idnSupport "libidn" (lib.getDev libidn))
- (lib.withFeature brotliSupport "brotli")
+ # The build fails when using wolfssl with --with-ca-fallback
+ (lib.withFeature (!wolfsslSupport) "ca-fallback")
+ (lib.withFeature http3Support "nghttp3")
+ (lib.withFeature http3Support "ngtcp2")
+ (lib.withFeature rtmpSupport "librtmp")
+ (lib.withFeature zstdSupport "zstd")
+ (lib.withFeatureAs brotliSupport "brotli" (lib.getDev brotli))
+ (lib.withFeatureAs gnutlsSupport "gnutls" (lib.getDev gnutls))
+ (lib.withFeatureAs idnSupport "libidn2" (lib.getDev libidn2))
+ (lib.withFeatureAs opensslSupport "openssl" (lib.getDev openssl))
+ (lib.withFeatureAs scpSupport "libssh2" (lib.getDev libssh2))
+ (lib.withFeatureAs wolfsslSupport "wolfssl" (lib.getDev wolfssl))
]
- ++ lib.optional wolfsslSupport "--with-wolfssl=${lib.getDev wolfssl}"
- ++ lib.optional c-aresSupport "--enable-ares=${c-ares}"
++ lib.optional gssSupport "--with-gssapi=${lib.getDev libkrb5}"
# For the 'urandom', maybe it should be a cross-system option
++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform)
diff --git a/pkgs/tools/networking/gmrender-resurrect/default.nix b/pkgs/tools/networking/gmrender-resurrect/default.nix
index d4fc1b22e8f1..28125ce113da 100644
--- a/pkgs/tools/networking/gmrender-resurrect/default.nix
+++ b/pkgs/tools/networking/gmrender-resurrect/default.nix
@@ -4,9 +4,7 @@
let
version = "0.0.9";
- makePluginPath = plugins: builtins.concatStringsSep ":" (map (p: p + "/lib/gstreamer-1.0") plugins);
-
- pluginPath = makePluginPath [ gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav ];
+ pluginPath = lib.makeSearchPathOutput "lib" "lib/gstreamer-1.0" [ gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav ];
in
stdenv.mkDerivation {
pname = "gmrender-resurrect";
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index fccd9174f7f9..b14a4cef28f1 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -2549,6 +2549,8 @@ with pkgs;
comma = callPackage ../tools/package-management/comma { };
+ commitizen = python3Packages.callPackage ../applications/version-management/commitizen { };
+
common-licenses = callPackage ../data/misc/common-licenses {};
compactor = callPackage ../applications/networking/compactor { };
@@ -3392,9 +3394,7 @@ with pkgs;
merriweather-sans = callPackage ../data/fonts/merriweather-sans { };
- # TODO: call a sprintable to deprecate Meson 0.57 as soon as possible
- meson = callPackage ../development/tools/build-managers/meson/0.57 { };
- meson_0_60 = callPackage ../development/tools/build-managers/meson/0.60 { };
+ meson = callPackage ../development/tools/build-managers/meson { };
meson-tools = callPackage ../misc/meson-tools { };
@@ -4480,10 +4480,19 @@ with pkgs;
curlFull = curl.override {
ldapSupport = true;
+ gsaslSupport = true;
+ rtmpSupport = true;
+ pslSupport = true;
+ };
+
+ curlHTTP3 = curl.override {
+ openssl = quictls;
+ http3Support = true;
};
curl = curlMinimal.override ({
idnSupport = true;
+ zstdSupport = true;
} // lib.optionalAttrs (!stdenv.hostPlatform.isStatic) {
gssSupport = true;
brotliSupport = true;
@@ -7430,6 +7439,9 @@ with pkgs;
libpointmatcher = callPackage ../development/libraries/libpointmatcher { };
libportal = callPackage ../development/libraries/libportal { };
+ libportal-gtk3 = libportal.override { variant = "gtk3"; };
+ libportal-gtk4 = libportal.override { variant = "gtk4"; };
+ libportal-qt5 = libportal.override { variant = "qt5"; };
libmicrodns = callPackage ../development/libraries/libmicrodns { };
@@ -13299,7 +13311,11 @@ with pkgs;
# Others should instead delegate to the next stage's choice with
# `targetPackages.stdenv.cc.bintools`. This one is different just to
# provide the default choice, avoiding infinite recursion.
- bintools ? if stdenv.targetPlatform.isDarwin then darwin.binutils else binutils
+ # See the bintools attribute for the logic and reasoning. We need to provide
+ # a default here, since eval will hit this function when bootstrapping
+ # stdenv where the bintools attribute doesn't exist, but will never actually
+ # be evaluated -- callPackage ends up being too eager.
+ bintools ? pkgs.bintools
, libc ? bintools.libc
, # libc++ from the default LLVM version is bound at the top level, but we
# want the C++ library to be explicitly chosen by the caller, and null by
@@ -17011,7 +17027,7 @@ with pkgs;
gtkextra = callPackage ../development/libraries/gtkextra { };
gtk3 = callPackage ../development/libraries/gtk/3.x.nix {
- inherit (darwin.apple_sdk.frameworks) AppKit Cocoa;
+ inherit (darwin.apple_sdk.frameworks) AppKit Cocoa QuartzCore;
};
gtk4 = callPackage ../development/libraries/gtk/4.x.nix {
@@ -17929,6 +17945,9 @@ with pkgs;
libffcall = callPackage ../development/libraries/libffcall { };
libffi = callPackage ../development/libraries/libffi { };
+ libffiBoot = libffi.override {
+ doCheck = false;
+ };
libfreeaptx = callPackage ../development/libraries/libfreeaptx { };
@@ -17995,6 +18014,8 @@ with pkgs;
libhugetlbfs = callPackage ../development/libraries/libhugetlbfs { };
+ libhwy = callPackage ../development/libraries/libhwy { };
+
libHX = callPackage ../development/libraries/libHX { };
libibmad = callPackage ../development/libraries/libibmad { };
@@ -18521,9 +18542,7 @@ with pkgs;
libtiff = if stdenv.isDarwin && stdenv.isAarch64
then callPackage ../development/libraries/libtiff/aarch64-darwin.nix { }
- else callPackage ../development/libraries/libtiff {
- inherit (darwin.apple_sdk.frameworks) Cocoa GLUT;
- };
+ else callPackage ../development/libraries/libtiff { };
libtiger = callPackage ../development/libraries/libtiger { };
@@ -21415,7 +21434,6 @@ with pkgs;
};
pulseaudio = callPackage ../servers/pulseaudio ({
- inherit (darwin) Libc;
inherit (darwin.apple_sdk.frameworks) CoreServices AudioUnit Cocoa;
} // lib.optionalAttrs stdenv.isDarwin {
# Default autoreconfHook (2.70) fails on darwin,
@@ -22365,7 +22383,7 @@ with pkgs;
iproute_mptcp = callPackage ../os-specific/linux/iproute/mptcp.nix { };
iputils = hiPrio (callPackage ../os-specific/linux/iputils { });
- # hiPrio for collisions with inetutils (ping and tftpd.8.gz)
+ # hiPrio for collisions with inetutils (ping)
iptables = callPackage ../os-specific/linux/iptables { };
iptables-legacy = callPackage ../os-specific/linux/iptables { nftablesCompat = false; };
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 148e3946f9d8..5244fb8caf10 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -6630,6 +6630,8 @@ in {
pycryptodome = callPackage ../development/python-modules/pycryptodome { };
+ pycryptodome-test-vectors = callPackage ../development/python-modules/pycryptodome-test-vectors { };
+
pycryptodomex = callPackage ../development/python-modules/pycryptodomex { };
pyct = callPackage ../development/python-modules/pyct { };