From 871cf9f7b3e5a54b6cc1f08487846ff79c26db83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phan=20Kochen?= Date: Wed, 13 Jul 2022 20:47:36 +0200 Subject: cmake: detect libc location at runtime --- .../build-managers/cmake/001-search-path.diff | 40 ++++++++++++++++------ 1 file changed, 29 insertions(+), 11 deletions(-) diff --git a/pkgs/development/tools/build-managers/cmake/001-search-path.diff b/pkgs/development/tools/build-managers/cmake/001-search-path.diff index b71c2dd44416..c059bf5bffc3 100644 --- a/pkgs/development/tools/build-managers/cmake/001-search-path.diff +++ b/pkgs/development/tools/build-managers/cmake/001-search-path.diff @@ -1,5 +1,5 @@ diff --git a/Modules/Platform/UnixPaths.cmake b/Modules/Platform/UnixPaths.cmake -index b9381c3d7d..cecc40a89e 100644 +index b9381c3d7d..5e944640b5 100644 --- a/Modules/Platform/UnixPaths.cmake +++ b/Modules/Platform/UnixPaths.cmake @@ -26,9 +26,6 @@ get_filename_component(_CMAKE_INSTALL_DIR "${_CMAKE_INSTALL_DIR}" PATH) @@ -12,7 +12,7 @@ index b9381c3d7d..cecc40a89e 100644 # CMake install location "${_CMAKE_INSTALL_DIR}" ) -@@ -47,24 +44,19 @@ endif() +@@ -47,48 +44,46 @@ endif() # Non "standard" but common install prefixes list(APPEND CMAKE_SYSTEM_PREFIX_PATH @@ -22,43 +22,61 @@ index b9381c3d7d..cecc40a89e 100644 ) # List common include file locations not under the common prefixes. ++if(IS_DIRECTORY $ENV{NIX_CC}) ++ file(STRINGS "$ENV{NIX_CC}/nix-support/orig-libc" _nix_cmake_libc) ++ file(STRINGS "$ENV{NIX_CC}/nix-support/orig-libc-dev" _nix_cmake_libc_dev) ++else() ++ set(_nix_cmake_libc @libc_lib@) ++ set(_nix_cmake_libc_dev @libc_dev@) ++endif() ++ list(APPEND CMAKE_SYSTEM_INCLUDE_PATH - # X11 - /usr/include/X11 -+ @libc_dev@/include ++ "${_nix_cmake_libc_dev}/include" ) list(APPEND CMAKE_SYSTEM_LIBRARY_PATH - # X11 - /usr/lib/X11 -+ @libc_lib@/lib ++ "${_nix_cmake_libc}/lib" ) list(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES - /lib /lib32 /lib64 /usr/lib /usr/lib32 /usr/lib64 -+ @libc_lib@/lib ++ "${_nix_cmake_libc}/lib" ) - if(CMAKE_SYSROOT_COMPILE) -@@ -77,15 +69,15 @@ endif() +-if(CMAKE_SYSROOT_COMPILE) +- set(_cmake_sysroot_compile "${CMAKE_SYSROOT_COMPILE}") +-else() +- set(_cmake_sysroot_compile "${CMAKE_SYSROOT}") +-endif() +- + # Default per-language values. These may be later replaced after # parsing the implicit directory information from compiler output. set(_CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES_INIT ${CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES} - "${_cmake_sysroot_compile}/usr/include" -+ @libc_dev@/include ++ "${_nix_cmake_libc_dev}/include" ) set(_CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES_INIT ${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES} - "${_cmake_sysroot_compile}/usr/include" -+ @libc_dev@/include ++ "${_nix_cmake_libc_dev}/include" ) set(_CMAKE_CUDA_IMPLICIT_INCLUDE_DIRECTORIES_INIT ${CMAKE_CUDA_IMPLICIT_INCLUDE_DIRECTORIES} - "${_cmake_sysroot_compile}/usr/include" -+ @libc_dev@/include ++ "${_nix_cmake_libc_dev}/include" ) - unset(_cmake_sysroot_compile) +-unset(_cmake_sysroot_compile) ++unset(_nix_cmake_libc) ++unset(_nix_cmake_libc_dev) + + # Reminder when adding new locations computed from environment variables + # please make sure to keep Help/variable/CMAKE_SYSTEM_PREFIX_PATH.rst diff --git a/Modules/Platform/WindowsPaths.cmake b/Modules/Platform/WindowsPaths.cmake index b9e2f17979..ab517cd4a7 100644 --- a/Modules/Platform/WindowsPaths.cmake -- cgit v1.2.3 From 83a9b3c4155f5da4ba507de5b5a09036b2a77d6e Mon Sep 17 00:00:00 2001 From: Shamrock Lee <44064051+ShamrockLee@users.noreply.github.com> Date: Fri, 22 Jul 2022 22:58:26 +0000 Subject: man-db: use lib.makeBinPath when wrapping --- pkgs/tools/misc/man-db/default.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkgs/tools/misc/man-db/default.nix b/pkgs/tools/misc/man-db/default.nix index 8992e9ff0daf..ff0e84091e8f 100644 --- a/pkgs/tools/misc/man-db/default.nix +++ b/pkgs/tools/misc/man-db/default.nix @@ -68,8 +68,7 @@ stdenv.mkDerivation rec { # make sure that we don't wrap symlinks (since that changes argv[0] to the -wrapped name) find "$out/bin" -type f | while read file; do wrapProgram "$file" \ - --prefix PATH : "${lib.getBin groff}/bin" \ - --prefix PATH : "${lib.getBin zstd}/bin" + --prefix PATH : "${lib.makeBinPath [ groff zstd ]}" done ''; -- cgit v1.2.3 From ba812e56568a0417cfe54df31116588a8e9effcf Mon Sep 17 00:00:00 2001 From: Shamrock Lee <44064051+ShamrockLee@users.noreply.github.com> Date: Fri, 22 Jul 2022 23:00:24 +0000 Subject: man-db: add gzip to the PATH of the executable wrapper --- pkgs/tools/misc/man-db/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/tools/misc/man-db/default.nix b/pkgs/tools/misc/man-db/default.nix index ff0e84091e8f..3e34a81cd4f8 100644 --- a/pkgs/tools/misc/man-db/default.nix +++ b/pkgs/tools/misc/man-db/default.nix @@ -2,6 +2,7 @@ , db , fetchurl , groff +, gzip , lib , libiconv , libpipeline @@ -68,7 +69,7 @@ stdenv.mkDerivation rec { # make sure that we don't wrap symlinks (since that changes argv[0] to the -wrapped name) find "$out/bin" -type f | while read file; do wrapProgram "$file" \ - --prefix PATH : "${lib.makeBinPath [ groff zstd ]}" + --prefix PATH : "${lib.makeBinPath [ groff gzip zstd ]}" done ''; -- cgit v1.2.3 From 8d276aceaf7c9c08eedb009f47f8c0a217b33d8c Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 29 Jul 2022 02:20:25 +0000 Subject: ninja: 1.10.2 -> 1.11.0 --- pkgs/development/tools/build-managers/ninja/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/build-managers/ninja/default.nix b/pkgs/development/tools/build-managers/ninja/default.nix index ddc61ca86d9c..abc3dbefb9c2 100644 --- a/pkgs/development/tools/build-managers/ninja/default.nix +++ b/pkgs/development/tools/build-managers/ninja/default.nix @@ -4,13 +4,13 @@ with lib; stdenv.mkDerivation rec { pname = "ninja"; - version = "1.10.2"; + version = "1.11.0"; src = fetchFromGitHub { owner = "ninja-build"; repo = "ninja"; rev = "v${version}"; - sha256 = "0mspq4mvx41qri2v2zlg2y3znx5gfw6d8s3czbcfpr2218qbpz55"; + sha256 = "sha256-xZwMdwvg29lauHKk9M318Vz7pXZFhf3kFcyOTBdjmJM="; }; nativeBuildInputs = [ python3 re2c ] ++ optionals buildDocs [ asciidoc docbook_xml_dtd_45 docbook_xsl libxslt.bin ]; -- cgit v1.2.3 From e580321b984df7929e851f5e4ea3b515dd9df913 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 31 Jul 2022 08:42:43 +0000 Subject: gsm: 1.0.19 -> 1.0.20 --- pkgs/development/libraries/gsm/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/gsm/default.nix b/pkgs/development/libraries/gsm/default.nix index f70a748a20e7..ecf2d0e5ba5c 100644 --- a/pkgs/development/libraries/gsm/default.nix +++ b/pkgs/development/libraries/gsm/default.nix @@ -10,11 +10,11 @@ in stdenv.mkDerivation rec { pname = "gsm"; - version = "1.0.19"; + version = "1.0.20"; src = fetchurl { url = "http://www.quut.com/gsm/${pname}-${version}.tar.gz"; - sha256 = "1xkha9ss5g5qnfaybi8il0mcvp8knwg9plgh8404vh58d0pna0s9"; + sha256 = "sha256-YxXDhRi4HomcP8LtRjzGI68pxcIxpIwTeyQwIjSukL8="; }; patchPhase = '' -- cgit v1.2.3 From a3cb00e4b2eb44ec2cf2463cd109cf872b7a8582 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 31 Jul 2022 13:41:43 +0000 Subject: isocodes: 4.9.0 -> 4.11.0 --- pkgs/development/libraries/iso-codes/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/iso-codes/default.nix b/pkgs/development/libraries/iso-codes/default.nix index 1b4396bfee07..c38c72ccd04c 100644 --- a/pkgs/development/libraries/iso-codes/default.nix +++ b/pkgs/development/libraries/iso-codes/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "iso-codes"; - version = "4.9.0"; + version = "4.11.0"; src = fetchurl { url = "https://salsa.debian.org/iso-codes-team/iso-codes/-/archive/v${version}/${pname}-v${version}.tar.gz"; - sha256 = "02lq602ghws423w04jsyjr92p0nmrfp59n1m5hbbi1c6fhxryghc"; + sha256 = "sha256-QI95nfQTVGj6fKNetrBcQAS+pEPYHKWLibLkgkAagrs="; }; patchPhase = '' -- cgit v1.2.3 From e6927bd8553da91c8ba5140eb4318aa0a5575890 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 31 Jul 2022 14:22:19 +0000 Subject: inetutils: 2.2 -> 2.3 --- pkgs/tools/networking/inetutils/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/networking/inetutils/default.nix b/pkgs/tools/networking/inetutils/default.nix index f5c9ff00d924..fb5e2aad5cce 100644 --- a/pkgs/tools/networking/inetutils/default.nix +++ b/pkgs/tools/networking/inetutils/default.nix @@ -4,11 +4,11 @@ stdenv.mkDerivation rec { pname = "inetutils"; - version = "2.2"; + version = "2.3"; src = fetchurl { url = "mirror://gnu/${pname}/${pname}-${version}.tar.xz"; - sha256 = "sha256-1Uf2kXLfc6/vaRoPeIYoD9eBrOoo3vT/S0shIIaonYA"; + sha256 = "sha256-CwG7COKWI8TjuUDyM8lhRR2a+MUGYwGt12pSqV1Rdyw="; }; outputs = ["out" "apparmor"]; -- cgit v1.2.3 From 549e08c8e8a0e79952227c3300702d3d0fbb71a8 Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Sun, 31 Jul 2022 16:26:35 +0100 Subject: bintools-wrapper, cc-wrapper: avoid invalid export of 'expand-response-params' POSIX sh (and `bash`) impose a restriction on environment variable name format and disallow hypheps in the names. Normally it's not a problem as nothing usually tries to refer nyphenated names. One exception is `nix develop` (https://github.com/NixOS/nix/issues/6848): $ nix develop -f. gcc -L gcc-wrapper> ...-get-env.sh: line 70: expand-response-params: bad substitution Note that bash usually uses explicitly created `expandResponseParams` variant of the same variable. To work the problem around let's avoid environment variable export and move it to `passthru` for `cc` (used ina few places) and remove it completely for `binutils` (does not seem to be used at all). --- pkgs/build-support/bintools-wrapper/default.nix | 2 +- pkgs/build-support/cc-wrapper/default.nix | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/pkgs/build-support/bintools-wrapper/default.nix b/pkgs/build-support/bintools-wrapper/default.nix index cdd07d6b2efe..b54983986dbe 100644 --- a/pkgs/build-support/bintools-wrapper/default.nix +++ b/pkgs/build-support/bintools-wrapper/default.nix @@ -365,7 +365,7 @@ stdenv.mkDerivation { ## + extraBuildCommands; - inherit dynamicLinker expand-response-params; + inherit dynamicLinker; # for substitution in utils.bash expandResponseParams = "${expand-response-params}/bin/expand-response-params"; diff --git a/pkgs/build-support/cc-wrapper/default.nix b/pkgs/build-support/cc-wrapper/default.nix index f8e28c452c33..ad8104246aa9 100644 --- a/pkgs/build-support/cc-wrapper/default.nix +++ b/pkgs/build-support/cc-wrapper/default.nix @@ -157,6 +157,8 @@ stdenv.mkDerivation { '(${concatStringsSep " " (map (pkg: "\"${pkg}\"") pkgs)})) ''; + inherit expand-response-params; + inherit nixSupport; }; @@ -540,7 +542,6 @@ stdenv.mkDerivation { (name: value: "echo ${toString value} >> $out/nix-support/${name}") nixSupport); - inherit expand-response-params; # for substitution in utils.bash expandResponseParams = "${expand-response-params}/bin/expand-response-params"; -- cgit v1.2.3 From 4697faa87a6d74b9f72a2ea222ba8ad15e0a89f6 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 31 Jul 2022 17:35:02 +0000 Subject: libidn: 1.38 -> 1.41 --- pkgs/development/libraries/libidn/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/libidn/default.nix b/pkgs/development/libraries/libidn/default.nix index a84b617e4c0e..83f69cfaa02b 100644 --- a/pkgs/development/libraries/libidn/default.nix +++ b/pkgs/development/libraries/libidn/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "libidn"; - version = "1.38"; + version = "1.41"; src = fetchurl { url = "mirror://gnu/libidn/${pname}-${version}.tar.gz"; - sha256 = "sha256-3gC4QPdXzTuxTdmiDVk2RzI13cugbUvC2oBGVLi78PY="; + sha256 = "sha256-iE1wY2S4Gr3Re+6Whtj/KudDHFoUZRBHxorfizH9iUU="; }; outputs = [ "bin" "dev" "out" "info" "devdoc" ]; -- cgit v1.2.3 From 8e8bd9977b2b54e20497915065f2c4dea3f7be22 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 31 Jul 2022 19:02:16 +0000 Subject: libvpx: 1.11.0 -> 1.12.0 --- pkgs/development/libraries/libvpx/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/libvpx/default.nix b/pkgs/development/libraries/libvpx/default.nix index 9f916e283299..d78a08852521 100644 --- a/pkgs/development/libraries/libvpx/default.nix +++ b/pkgs/development/libraries/libvpx/default.nix @@ -56,13 +56,13 @@ assert isCygwin -> unitTestsSupport && webmIOSupport && libyuvSupport; stdenv.mkDerivation rec { pname = "libvpx"; - version = "1.11.0"; + version = "1.12.0"; src = fetchFromGitHub { owner = "webmproject"; repo = pname; rev = "v${version}"; - sha256 = "00f1jrclai2b6ys78dpsg6r1mvcyxlna93vxcz8zjyia24c2pjsb"; + sha256 = "sha256-9SFFE2GfYYMgxp1dpmL3STTU2ea1R5vFKA1L0pZwIvQ="; }; postPatch = '' -- cgit v1.2.3 From 1f241270bff7a041c0eeb92ce03d3d0691805526 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 1 Aug 2022 04:06:06 +0000 Subject: pciutils: 3.7.0 -> 3.8.0 --- pkgs/tools/system/pciutils/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/system/pciutils/default.nix b/pkgs/tools/system/pciutils/default.nix index 315321671818..6ede69e2df52 100644 --- a/pkgs/tools/system/pciutils/default.nix +++ b/pkgs/tools/system/pciutils/default.nix @@ -6,11 +6,11 @@ stdenv.mkDerivation rec { pname = "pciutils"; - version = "3.7.0"; # with release-date database + version = "3.8.0"; # with release-date database src = fetchurl { url = "mirror://kernel/software/utils/pciutils/pciutils-${version}.tar.xz"; - sha256 = "1ss0rnfsx8gvqjxaji4mvbhf9xyih4cadmgadbwwv8mnx1xvjh4x"; + sha256 = "sha256-ke29BCmoRwXJrRVtT/OMzHJNQepUxMW4jjjplvijTwU="; }; nativeBuildInputs = [ pkg-config ]; -- cgit v1.2.3 From b408d0f602b63057c7d4b3c60d5de2afa113ca89 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 1 Aug 2022 06:35:57 +0000 Subject: pulseaudio: 15.0 -> 16.1 --- pkgs/servers/pulseaudio/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/servers/pulseaudio/default.nix b/pkgs/servers/pulseaudio/default.nix index 95ee97ef6c87..6847205edaba 100644 --- a/pkgs/servers/pulseaudio/default.nix +++ b/pkgs/servers/pulseaudio/default.nix @@ -34,11 +34,11 @@ stdenv.mkDerivation rec { pname = "${if libOnly then "lib" else ""}pulseaudio"; - version = "15.0"; + version = "16.1"; src = fetchurl { url = "http://freedesktop.org/software/pulseaudio/releases/pulseaudio-${version}.tar.xz"; - sha256 = "pAuIejupjMJpdusRvbZhOYjxRbGQJNG2VVxqA8nLoaA="; + sha256 = "sha256-ju8yzpHUeXn5X9mpNec4zX63RjQw2rxyhjJRdR5QSuQ="; }; patches = [ -- cgit v1.2.3 From ecc304df445bae378c503d9c870683e4fdd45039 Mon Sep 17 00:00:00 2001 From: Michal Sojka Date: Mon, 18 Jul 2022 08:09:10 +0200 Subject: glib: add command man pages This change adds man pages for commands provided by glib. Namely, the $bin output now includes man pages (section 1) for: gapplication gdbus gio gsettings The $dev output for: gdbus-codegen gio-querymodules glib-compile-resources glib-compile-schemas glib-genmarshal glib-gettextize glib-mkenums gobject-query gresource gtester-report gtester --- pkgs/development/libraries/glib/default.nix | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/glib/default.nix b/pkgs/development/libraries/glib/default.nix index 8fb12fc0203a..7d7df5c312c2 100644 --- a/pkgs/development/libraries/glib/default.nix +++ b/pkgs/development/libraries/glib/default.nix @@ -1,5 +1,5 @@ { config, lib, stdenv, fetchurl, gettext, meson, ninja, pkg-config, perl, python3 -, libiconv, zlib, libffi, pcre, libelf, gnome, libselinux, bash, gnum4, gtk-doc, docbook_xsl, docbook_xml_dtd_45 +, libiconv, zlib, libffi, pcre, libelf, gnome, libselinux, bash, gnum4, gtk-doc, docbook_xsl, docbook_xml_dtd_45, libxslt # use util-linuxMinimal to avoid circular dependency (util-linux, systemd, glib) , util-linuxMinimal ? null , buildPackages @@ -124,7 +124,7 @@ stdenv.mkDerivation rec { (buildPackages.meson.override { withDarwinFrameworksGtkDocPatch = stdenv.isDarwin; }) - ninja pkg-config perl python3 gettext gtk-doc docbook_xsl docbook_xml_dtd_45 libxml2 + ninja pkg-config perl python3 gettext gtk-doc docbook_xsl docbook_xml_dtd_45 libxml2 libxslt ]; propagatedBuildInputs = [ zlib libffi gettext libiconv ]; @@ -135,6 +135,8 @@ stdenv.mkDerivation rec { "-Dgtk_doc=${boolToString (stdenv.hostPlatform == stdenv.buildPlatform)}" "-Dnls=enabled" "-Ddevbindir=${placeholder "dev"}/bin" + ] ++ optionals (!stdenv.isDarwin) [ + "-Dman=true" # broken on Darwin ]; NIX_CFLAGS_COMPILE = toString [ @@ -171,6 +173,15 @@ stdenv.mkDerivation rec { cp -r ${buildPackages.glib.devdoc} $devdoc ''; + # Move man pages to the same output as their binaries (needs to be + # done after preFixupHooks which moves man pages too - in + # _multioutDocs) + postFixup = '' + for i in $dev/bin/*; do + moveToOutput "share/man/man1/''${i##*/}.1.*" "$dev" + done + ''; + checkInputs = [ tzdata desktop-file-utils shared-mime-info ]; preCheck = optionalString doCheck '' -- cgit v1.2.3 From 0cbedad03fd3bb506158e1e4b7c93eb49a21c119 Mon Sep 17 00:00:00 2001 From: Michal Sojka Date: Mon, 18 Jul 2022 08:55:55 +0200 Subject: glib: move bash completions to right outputs Previously, bash completion scripts were installed in the "out" output, which didn't contain any binaries. With this change, the completion scripts are installed in the outputs containing the corresponding binaries. Namely, gapplication, gdbus, gio, and gsettings completion scripts go to $bin, and gresource to $dev. The result is that the completions work out of the box, when the binaries are available to the user. --- pkgs/development/libraries/glib/default.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkgs/development/libraries/glib/default.nix b/pkgs/development/libraries/glib/default.nix index 7d7df5c312c2..0316deee7bcc 100644 --- a/pkgs/development/libraries/glib/default.nix +++ b/pkgs/development/libraries/glib/default.nix @@ -169,6 +169,12 @@ stdenv.mkDerivation rec { # This file is *included* in gtk3 and would introduce runtime reference via __FILE__. sed '1i#line 1 "${pname}-${version}/include/glib-2.0/gobject/gobjectnotifyqueue.c"' \ -i "$dev"/include/glib-2.0/gobject/gobjectnotifyqueue.c + for i in $bin/bin/*; do + moveToOutput "share/bash-completion/completions/''${i##*/}" "$bin" + done + for i in $dev/bin/*; do + moveToOutput "share/bash-completion/completions/''${i##*/}" "$dev" + done '' + optionalString (stdenv.hostPlatform != stdenv.buildPlatform) '' cp -r ${buildPackages.glib.devdoc} $devdoc ''; -- cgit v1.2.3 From 2aefcbcab39bff7713e7ab16c174a821868d7931 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 2 Aug 2022 03:08:29 +0000 Subject: speexdsp: 1.2.0 -> 1.2.1 --- pkgs/development/libraries/speexdsp/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/speexdsp/default.nix b/pkgs/development/libraries/speexdsp/default.nix index 643a83c47005..5e6f27f434ad 100644 --- a/pkgs/development/libraries/speexdsp/default.nix +++ b/pkgs/development/libraries/speexdsp/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "speexdsp"; - version = "1.2.0"; + version = "1.2.1"; src = fetchurl { url = "https://downloads.xiph.org/releases/speex/${pname}-${version}.tar.gz"; - sha256 = "0wa7sqpk3x61zz99m7lwkgr6yv62ml6lfgs5xja65vlvdzy44838"; + sha256 = "sha256-jHdzQ+SmOZVpxyq8OKlbJNtWiCyD29tsZCSl9K61TT0="; }; patches = [ ./build-fix.patch ]; -- cgit v1.2.3 From fd031c029969f8efdc1b39d37cbafa252f9d9d0b Mon Sep 17 00:00:00 2001 From: Weijia Wang <9713184+wegank@users.noreply.github.com> Date: Tue, 2 Aug 2022 18:39:28 +0200 Subject: pulseaudio: add darwin support --- .../pulseaudio/0001-Make-gio-2.0-optional-15.patch | 26 ++++++++ .../pulseaudio/0001-Make-gio-2.0-optional-16.patch | 26 ++++++++ ...o-2.0-optional-when-gsettings-is-disabled.patch | 26 -------- .../0002-Ignore-SCM_CREDS-on-darwin.patch | 27 ++++++++ .../0002-Ignore-SCM_CREDS-on-macOS.patch | 27 -------- .../0003-Disable-z-nodelete-on-darwin.patch | 26 -------- ...003-Ignore-HAVE_CPUID_H-on-aarch64-darwin.patch | 26 ++++++++ .../0004-Prefer-HAVE_CLOCK_GETTIME-on-darwin.patch | 13 ++++ .../pulseaudio/0004-Prefer-clock_gettime.patch | 57 ---------------- .../0005-Enable-CoreAudio-on-darwin.patch | 31 +++++++++ .../0005-Include-poll-posix.c-on-darwin.patch | 24 ------- ...0006-Fix-libpulsecommon-sources-on-darwin.patch | 18 ++++++ ...nly-use-version-script-on-GNU-ish-linkers.patch | 29 --------- ...0007-Adapt-undefined-link-args-per-linker.patch | 44 ------------- .../pulseaudio/0007-Fix-link-args-on-darwin.patch | 75 ++++++++++++++++++++++ .../0008-Use-correct-semaphore-on-darwin.patch | 31 --------- pkgs/servers/pulseaudio/default.nix | 47 ++++++++------ pkgs/top-level/all-packages.nix | 2 +- 18 files changed, 272 insertions(+), 283 deletions(-) create mode 100644 pkgs/servers/pulseaudio/0001-Make-gio-2.0-optional-15.patch create mode 100644 pkgs/servers/pulseaudio/0001-Make-gio-2.0-optional-16.patch delete mode 100644 pkgs/servers/pulseaudio/0001-Make-gio-2.0-optional-when-gsettings-is-disabled.patch create mode 100644 pkgs/servers/pulseaudio/0002-Ignore-SCM_CREDS-on-darwin.patch delete mode 100644 pkgs/servers/pulseaudio/0002-Ignore-SCM_CREDS-on-macOS.patch delete mode 100644 pkgs/servers/pulseaudio/0003-Disable-z-nodelete-on-darwin.patch create mode 100644 pkgs/servers/pulseaudio/0003-Ignore-HAVE_CPUID_H-on-aarch64-darwin.patch create mode 100644 pkgs/servers/pulseaudio/0004-Prefer-HAVE_CLOCK_GETTIME-on-darwin.patch delete mode 100644 pkgs/servers/pulseaudio/0004-Prefer-clock_gettime.patch create mode 100644 pkgs/servers/pulseaudio/0005-Enable-CoreAudio-on-darwin.patch delete mode 100644 pkgs/servers/pulseaudio/0005-Include-poll-posix.c-on-darwin.patch create mode 100644 pkgs/servers/pulseaudio/0006-Fix-libpulsecommon-sources-on-darwin.patch delete mode 100644 pkgs/servers/pulseaudio/0006-Only-use-version-script-on-GNU-ish-linkers.patch delete mode 100644 pkgs/servers/pulseaudio/0007-Adapt-undefined-link-args-per-linker.patch create mode 100644 pkgs/servers/pulseaudio/0007-Fix-link-args-on-darwin.patch delete mode 100644 pkgs/servers/pulseaudio/0008-Use-correct-semaphore-on-darwin.patch diff --git a/pkgs/servers/pulseaudio/0001-Make-gio-2.0-optional-15.patch b/pkgs/servers/pulseaudio/0001-Make-gio-2.0-optional-15.patch new file mode 100644 index 000000000000..c087dcd7e7d1 --- /dev/null +++ b/pkgs/servers/pulseaudio/0001-Make-gio-2.0-optional-15.patch @@ -0,0 +1,26 @@ +From 72f3fe059f031f24c5ad026cb2fc16318f227c09 Mon Sep 17 00:00:00 2001 +From: Andrew Childs +Date: Tue, 19 Apr 2022 16:29:58 +0900 +Subject: [PATCH 1/8] Make gio-2.0 optional when gsettings is disabled + +Derived from https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/654 +--- + meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/meson.build b/meson.build +index d7e468cab..f7adf1413 100644 +--- a/meson.build ++++ b/meson.build +@@ -614,7 +614,7 @@ if dbus_dep.found() + cdata.set('HAVE_DBUS', 1) + endif + +-gio_dep = dependency('gio-2.0', version : '>= 2.26.0') ++gio_dep = dependency('gio-2.0', version : '>= 2.26.0', required : false) + if get_option('gsettings').enabled() + assert(gio_dep.found(), 'GSettings support needs glib I/O library (GIO)') + cdata.set('HAVE_GSETTINGS', 1) +-- +2.35.1 + diff --git a/pkgs/servers/pulseaudio/0001-Make-gio-2.0-optional-16.patch b/pkgs/servers/pulseaudio/0001-Make-gio-2.0-optional-16.patch new file mode 100644 index 000000000000..2a5ae040d9d4 --- /dev/null +++ b/pkgs/servers/pulseaudio/0001-Make-gio-2.0-optional-16.patch @@ -0,0 +1,26 @@ +From 72f3fe059f031f24c5ad026cb2fc16318f227c09 Mon Sep 17 00:00:00 2001 +From: Andrew Childs +Date: Tue, 19 Apr 2022 16:29:58 +0900 +Subject: [PATCH 1/8] Make gio-2.0 optional when gsettings is disabled + +Derived from https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/654 +--- + meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/meson.build b/meson.build +index c5135330f..340f58e17 100644 +--- a/meson.build ++++ b/meson.build +@@ -683,7 +683,7 @@ if get_option('daemon') + cdata.set('HAVE_ALSA_UCM', 1) + endif + +- gio_dep = dependency('gio-2.0', version : '>= 2.26.0') ++ gio_dep = dependency('gio-2.0', version : '>= 2.26.0', required : false) + if get_option('gsettings').enabled() + assert(gio_dep.found(), 'GSettings support needs glib I/O library (GIO)') + cdata.set('HAVE_GSETTINGS', 1) +-- +2.35.1 + diff --git a/pkgs/servers/pulseaudio/0001-Make-gio-2.0-optional-when-gsettings-is-disabled.patch b/pkgs/servers/pulseaudio/0001-Make-gio-2.0-optional-when-gsettings-is-disabled.patch deleted file mode 100644 index c087dcd7e7d1..000000000000 --- a/pkgs/servers/pulseaudio/0001-Make-gio-2.0-optional-when-gsettings-is-disabled.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 72f3fe059f031f24c5ad026cb2fc16318f227c09 Mon Sep 17 00:00:00 2001 -From: Andrew Childs -Date: Tue, 19 Apr 2022 16:29:58 +0900 -Subject: [PATCH 1/8] Make gio-2.0 optional when gsettings is disabled - -Derived from https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/654 ---- - meson.build | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/meson.build b/meson.build -index d7e468cab..f7adf1413 100644 ---- a/meson.build -+++ b/meson.build -@@ -614,7 +614,7 @@ if dbus_dep.found() - cdata.set('HAVE_DBUS', 1) - endif - --gio_dep = dependency('gio-2.0', version : '>= 2.26.0') -+gio_dep = dependency('gio-2.0', version : '>= 2.26.0', required : false) - if get_option('gsettings').enabled() - assert(gio_dep.found(), 'GSettings support needs glib I/O library (GIO)') - cdata.set('HAVE_GSETTINGS', 1) --- -2.35.1 - diff --git a/pkgs/servers/pulseaudio/0002-Ignore-SCM_CREDS-on-darwin.patch b/pkgs/servers/pulseaudio/0002-Ignore-SCM_CREDS-on-darwin.patch new file mode 100644 index 000000000000..9196e205dc0c --- /dev/null +++ b/pkgs/servers/pulseaudio/0002-Ignore-SCM_CREDS-on-darwin.patch @@ -0,0 +1,27 @@ +From 39bef695f783614e6175477417298ddf37e2ac13 Mon Sep 17 00:00:00 2001 +From: Andrew Childs +Date: Tue, 19 Apr 2022 16:58:43 +0900 +Subject: [PATCH 2/8] Ignore SCM_CREDS on macOS + +It was added for FreeBSD support, but also enables the +unsupported[citation needed] feature on macOS. +--- + src/pulsecore/creds.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/pulsecore/creds.h b/src/pulsecore/creds.h +index b599b569c..b5b1c9f37 100644 +--- a/src/pulsecore/creds.h ++++ b/src/pulsecore/creds.h +@@ -34,7 +34,7 @@ + typedef struct pa_creds pa_creds; + typedef struct pa_cmsg_ancil_data pa_cmsg_ancil_data; + +-#if defined(SCM_CREDENTIALS) || defined(SCM_CREDS) ++#if defined(SCM_CREDENTIALS) || (defined(SCM_CREDS) && !defined(__APPLE__)) + + #define HAVE_CREDS 1 + +-- +2.35.1 + diff --git a/pkgs/servers/pulseaudio/0002-Ignore-SCM_CREDS-on-macOS.patch b/pkgs/servers/pulseaudio/0002-Ignore-SCM_CREDS-on-macOS.patch deleted file mode 100644 index 9196e205dc0c..000000000000 --- a/pkgs/servers/pulseaudio/0002-Ignore-SCM_CREDS-on-macOS.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 39bef695f783614e6175477417298ddf37e2ac13 Mon Sep 17 00:00:00 2001 -From: Andrew Childs -Date: Tue, 19 Apr 2022 16:58:43 +0900 -Subject: [PATCH 2/8] Ignore SCM_CREDS on macOS - -It was added for FreeBSD support, but also enables the -unsupported[citation needed] feature on macOS. ---- - src/pulsecore/creds.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/pulsecore/creds.h b/src/pulsecore/creds.h -index b599b569c..b5b1c9f37 100644 ---- a/src/pulsecore/creds.h -+++ b/src/pulsecore/creds.h -@@ -34,7 +34,7 @@ - typedef struct pa_creds pa_creds; - typedef struct pa_cmsg_ancil_data pa_cmsg_ancil_data; - --#if defined(SCM_CREDENTIALS) || defined(SCM_CREDS) -+#if defined(SCM_CREDENTIALS) || (defined(SCM_CREDS) && !defined(__APPLE__)) - - #define HAVE_CREDS 1 - --- -2.35.1 - diff --git a/pkgs/servers/pulseaudio/0003-Disable-z-nodelete-on-darwin.patch b/pkgs/servers/pulseaudio/0003-Disable-z-nodelete-on-darwin.patch deleted file mode 100644 index 81b3ab927333..000000000000 --- a/pkgs/servers/pulseaudio/0003-Disable-z-nodelete-on-darwin.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 3f1abb55f4eb985fd0715b2b2ca45dcce3a56824 Mon Sep 17 00:00:00 2001 -From: Andrew Childs -Date: Tue, 19 Apr 2022 17:06:50 +0900 -Subject: [PATCH 3/8] Disable `-z nodelete` on darwin - -Not supported[citation needed]. ---- - meson.build | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/meson.build b/meson.build -index f7adf1413..d4bece11a 100644 ---- a/meson.build -+++ b/meson.build -@@ -404,7 +404,7 @@ cdata.set('MESON_BUILD', 1) - # so we request the nodelete flag to be enabled. - # On other systems, we don't really know how to do that, but it's welcome if somebody can tell. - # Windows doesn't support this flag. --if host_machine.system() != 'windows' -+if host_machine.system() != 'windows' and host_machine.system() != 'darwin' - nodelete_link_args = ['-Wl,-z,nodelete'] - else - nodelete_link_args = [] --- -2.35.1 - diff --git a/pkgs/servers/pulseaudio/0003-Ignore-HAVE_CPUID_H-on-aarch64-darwin.patch b/pkgs/servers/pulseaudio/0003-Ignore-HAVE_CPUID_H-on-aarch64-darwin.patch new file mode 100644 index 000000000000..ce0df74f8771 --- /dev/null +++ b/pkgs/servers/pulseaudio/0003-Ignore-HAVE_CPUID_H-on-aarch64-darwin.patch @@ -0,0 +1,26 @@ +diff --git a/src/pulsecore/core-util.c b/src/pulsecore/core-util.c +index c383a61c0..3d0a68c2e 100644 +--- a/src/pulsecore/core-util.c ++++ b/src/pulsecore/core-util.c +@@ -110,7 +110,7 @@ + #include + #endif + +-#ifdef HAVE_CPUID_H ++#if defined(HAVE_CPUID_H) && !(defined(__APPLE__) && defined(__aarch64__)) + #include + #endif + +diff --git a/src/pulsecore/cpu-x86.c b/src/pulsecore/cpu-x86.c +index 317a0101e..d1eb95d2b 100644 +--- a/src/pulsecore/cpu-x86.c ++++ b/src/pulsecore/cpu-x86.c +@@ -24,7 +24,7 @@ + + #include + +-#ifdef HAVE_CPUID_H ++#if defined(HAVE_CPUID_H) && !(defined(__APPLE__) && defined(__aarch64__)) + #include + #endif + diff --git a/pkgs/servers/pulseaudio/0004-Prefer-HAVE_CLOCK_GETTIME-on-darwin.patch b/pkgs/servers/pulseaudio/0004-Prefer-HAVE_CLOCK_GETTIME-on-darwin.patch new file mode 100644 index 000000000000..0eeaf2a03a12 --- /dev/null +++ b/pkgs/servers/pulseaudio/0004-Prefer-HAVE_CLOCK_GETTIME-on-darwin.patch @@ -0,0 +1,13 @@ +diff --git a/src/pulsecore/core-rtclock.c b/src/pulsecore/core-rtclock.c +index 2c2e28631..b946a3fb1 100644 +--- a/src/pulsecore/core-rtclock.c ++++ b/src/pulsecore/core-rtclock.c +@@ -65,7 +65,7 @@ pa_usec_t pa_rtclock_age(const struct timeval *tv) { + + struct timeval *pa_rtclock_get(struct timeval *tv) { + +-#if defined(OS_IS_DARWIN) ++#if defined(OS_IS_DARWIN) && !defined(HAVE_CLOCK_GETTIME) + uint64_t val, abs_time = mach_absolute_time(); + Nanoseconds nanos; + diff --git a/pkgs/servers/pulseaudio/0004-Prefer-clock_gettime.patch b/pkgs/servers/pulseaudio/0004-Prefer-clock_gettime.patch deleted file mode 100644 index eb7bd1c62708..000000000000 --- a/pkgs/servers/pulseaudio/0004-Prefer-clock_gettime.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 0bd3b613ac3bf16a73b3223fa1b961da3a0db1b2 Mon Sep 17 00:00:00 2001 -From: Andrew Childs -Date: Tue, 19 Apr 2022 17:12:52 +0900 -Subject: [PATCH 4/8] Prefer clock_gettime - -Available in darwin since 10.12 (released in 2016). ---- - src/pulsecore/core-rtclock.c | 26 +++++++++++++------------- - 1 file changed, 13 insertions(+), 13 deletions(-) - -diff --git a/src/pulsecore/core-rtclock.c b/src/pulsecore/core-rtclock.c -index 2c2e28631..a08d4b391 100644 ---- a/src/pulsecore/core-rtclock.c -+++ b/src/pulsecore/core-rtclock.c -@@ -65,19 +65,7 @@ pa_usec_t pa_rtclock_age(const struct timeval *tv) { - - struct timeval *pa_rtclock_get(struct timeval *tv) { - --#if defined(OS_IS_DARWIN) -- uint64_t val, abs_time = mach_absolute_time(); -- Nanoseconds nanos; -- -- nanos = AbsoluteToNanoseconds(*(AbsoluteTime *) &abs_time); -- val = *(uint64_t *) &nanos; -- -- tv->tv_sec = val / PA_NSEC_PER_SEC; -- tv->tv_usec = (val % PA_NSEC_PER_SEC) / PA_NSEC_PER_USEC; -- -- return tv; -- --#elif defined(HAVE_CLOCK_GETTIME) -+#if defined(HAVE_CLOCK_GETTIME) - struct timespec ts; - - #ifdef CLOCK_MONOTONIC -@@ -109,6 +97,18 @@ struct timeval *pa_rtclock_get(struct timeval *tv) { - - return tv; - } -+#elif defined(OS_IS_DARWIN) -+ uint64_t val, abs_time = mach_absolute_time(); -+ Nanoseconds nanos; -+ -+ nanos = AbsoluteToNanoseconds(*(AbsoluteTime *) &abs_time); -+ val = *(uint64_t *) &nanos; -+ -+ tv->tv_sec = val / PA_NSEC_PER_SEC; -+ tv->tv_usec = (val % PA_NSEC_PER_SEC) / PA_NSEC_PER_USEC; -+ -+ return tv; -+ - #endif /* HAVE_CLOCK_GETTIME */ - - return pa_gettimeofday(tv); --- -2.35.1 - diff --git a/pkgs/servers/pulseaudio/0005-Enable-CoreAudio-on-darwin.patch b/pkgs/servers/pulseaudio/0005-Enable-CoreAudio-on-darwin.patch new file mode 100644 index 000000000000..bdf5ff2b9ca3 --- /dev/null +++ b/pkgs/servers/pulseaudio/0005-Enable-CoreAudio-on-darwin.patch @@ -0,0 +1,31 @@ +diff --git a/meson.build b/meson.build +index c5135330f..055567479 100644 +--- a/meson.build ++++ b/meson.build +@@ -185,6 +185,7 @@ endif + # rather than ending up in the config.h file? + if host_machine.system() == 'darwin' + cdata.set('OS_IS_DARWIN', 1) ++ cdata.set('HAVE_COREAUDIO', 1) + cdata.set('_DARWIN_C_SOURCE', '200112L') # Needed to get NSIG on Mac OS + elif host_machine.system() == 'windows' + cdata.set('OS_IS_WIN32', 1) +diff --git a/src/modules/meson.build b/src/modules/meson.build +index 1e12569dc..53a800927 100644 +--- a/src/modules/meson.build ++++ b/src/modules/meson.build +@@ -63,6 +63,14 @@ all_modules = [ + [ 'module-volume-restore', 'module-volume-restore.c' ], + ] + ++if host_machine.system() == 'darwin' ++ coreaudio_dep = dependency('appleframeworks', modules : ['AudioUnit', 'Cocoa', 'CoreServices', 'CoreAudio']) ++ all_modules += [ ++ [ 'module-coreaudio-detect', 'macosx/module-coreaudio-detect.c', [], [], [coreaudio_dep] ], ++ [ 'module-coreaudio-device', 'macosx/module-coreaudio-device.c', [], [], [coreaudio_dep] ], ++ ] ++endif ++ + if host_machine.system() == 'windows' + winmm_dep = meson.get_compiler('c').find_library('winmm') + ksuser_dep = meson.get_compiler('c').find_library('ksuser') diff --git a/pkgs/servers/pulseaudio/0005-Include-poll-posix.c-on-darwin.patch b/pkgs/servers/pulseaudio/0005-Include-poll-posix.c-on-darwin.patch deleted file mode 100644 index 4779fce2afd6..000000000000 --- a/pkgs/servers/pulseaudio/0005-Include-poll-posix.c-on-darwin.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 8dee473920d3a331b73a415b37e7e0b01f014110 Mon Sep 17 00:00:00 2001 -From: Andrew Childs -Date: Tue, 19 Apr 2022 17:22:23 +0900 -Subject: [PATCH 5/8] Include poll-posix.c on darwin - ---- - src/meson.build | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/meson.build b/src/meson.build -index e2860811b..5bd68cb12 100644 ---- a/src/meson.build -+++ b/src/meson.build -@@ -182,6 +182,7 @@ if host_machine.system() == 'windows' - else - libpulsecommon_sources += [ - 'pulsecore/mutex-posix.c', -+ 'pulsecore/poll-posix.c', - 'pulsecore/semaphore-posix.c', - 'pulsecore/thread-posix.c' - ] --- -2.35.1 - diff --git a/pkgs/servers/pulseaudio/0006-Fix-libpulsecommon-sources-on-darwin.patch b/pkgs/servers/pulseaudio/0006-Fix-libpulsecommon-sources-on-darwin.patch new file mode 100644 index 000000000000..67a21af46795 --- /dev/null +++ b/pkgs/servers/pulseaudio/0006-Fix-libpulsecommon-sources-on-darwin.patch @@ -0,0 +1,18 @@ +diff --git a/src/meson.build b/src/meson.build +index 9efb561d8..d181f4867 100644 +--- a/src/meson.build ++++ b/src/meson.build +@@ -179,6 +179,13 @@ if host_machine.system() == 'windows' + 'pulsecore/semaphore-win32.c', + 'pulsecore/thread-win32.c', + ] ++elif host_machine.system() == 'darwin' ++ libpulsecommon_sources += [ ++ 'pulsecore/mutex-posix.c', ++ 'pulsecore/poll-posix.c', ++ 'pulsecore/semaphore-osx.c', ++ 'pulsecore/thread-posix.c' ++ ] + else + libpulsecommon_sources += [ + 'pulsecore/mutex-posix.c', diff --git a/pkgs/servers/pulseaudio/0006-Only-use-version-script-on-GNU-ish-linkers.patch b/pkgs/servers/pulseaudio/0006-Only-use-version-script-on-GNU-ish-linkers.patch deleted file mode 100644 index 8b27b3e5ab77..000000000000 --- a/pkgs/servers/pulseaudio/0006-Only-use-version-script-on-GNU-ish-linkers.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 419258112b9d90d149ebbd5c657a36d8532b78a2 Mon Sep 17 00:00:00 2001 -From: Andrew Childs -Date: Tue, 19 Apr 2022 17:31:36 +0900 -Subject: [PATCH 6/8] Only use version-script on GNU-ish linkers - ---- - src/pulse/meson.build | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/src/pulse/meson.build b/src/pulse/meson.build -index c2128e087..a5e47867e 100644 ---- a/src/pulse/meson.build -+++ b/src/pulse/meson.build -@@ -74,7 +74,11 @@ run_target('update-map-file', - command : [ join_paths(meson.source_root(), 'scripts/generate-map-file.sh'), 'map-file', - [ libpulse_headers, 'simple.h', join_paths(meson.build_root(), 'src', 'pulse', 'version.h') ] ]) - --versioning_link_args = '-Wl,-version-script=' + join_paths(meson.source_root(), 'src', 'pulse', 'map-file') -+if meson.get_compiler('c').get_linker_id().startswith('ld.') -+ versioning_link_args = '-Wl,-version-script=' + join_paths(meson.source_root(), 'src', 'pulse', 'map-file') -+else -+ versioning_link_args = [] -+endif - - libpulse = shared_library('pulse', - libpulse_sources, --- -2.35.1 - diff --git a/pkgs/servers/pulseaudio/0007-Adapt-undefined-link-args-per-linker.patch b/pkgs/servers/pulseaudio/0007-Adapt-undefined-link-args-per-linker.patch deleted file mode 100644 index 6893df8a7e29..000000000000 --- a/pkgs/servers/pulseaudio/0007-Adapt-undefined-link-args-per-linker.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 6f132be835d5acb5db4301ea1818601504e47fae Mon Sep 17 00:00:00 2001 -From: Andrew Childs -Date: Tue, 19 Apr 2022 17:41:34 +0900 -Subject: [PATCH 7/8] Adapt undefined link args per linker - -TODO: Why is this required? Isn't it default? ---- - src/modules/meson.build | 13 ++++++++++++- - 1 file changed, 12 insertions(+), 1 deletion(-) - -diff --git a/src/modules/meson.build b/src/modules/meson.build -index be72c3b9b..0163b583f 100644 ---- a/src/modules/meson.build -+++ b/src/modules/meson.build -@@ -293,6 +293,17 @@ all_modules += [ - # FIXME: meson doesn't support multiple RPATH arguments currently - rpath_dirs = join_paths(privlibdir) + ':' + join_paths(modlibexecdir) - -+if meson.get_compiler('c').get_linker_id().startswith('ld.') -+ no_undefined_link_args = [ '-Wl,--no-undefined' ] -+elif meson.get_compiler('c').get_linker_id() == 'ld64' -+ # TODO: is this required? is this not default? -+ no_undefined_link_args = [ '-Wl,-undefined,error' ] -+else -+ # TODO: what platforms is this? what flag do they use? -+ no_undefined_link_args = [] -+endif -+ -+ - foreach m : all_modules - name = m[0] - sources = m[1] -@@ -310,7 +321,7 @@ foreach m : all_modules - install_rpath : rpath_dirs, - install_dir : modlibexecdir, - dependencies : [thread_dep, libpulse_dep, libpulsecommon_dep, libpulsecore_dep, libintl_dep, platform_dep, platform_socket_dep] + extra_deps, -- link_args : [nodelete_link_args, '-Wl,--no-undefined' ], -+ link_args : [nodelete_link_args, no_undefined_link_args ], - link_with : extra_libs, - name_prefix : '', - implicit_include_directories : false) --- -2.35.1 - diff --git a/pkgs/servers/pulseaudio/0007-Fix-link-args-on-darwin.patch b/pkgs/servers/pulseaudio/0007-Fix-link-args-on-darwin.patch new file mode 100644 index 000000000000..30a11adca085 --- /dev/null +++ b/pkgs/servers/pulseaudio/0007-Fix-link-args-on-darwin.patch @@ -0,0 +1,75 @@ +diff --git a/meson.build b/meson.build +index c5135330f..1b66a1fc4 100644 +--- a/meson.build ++++ b/meson.build +@@ -424,7 +424,7 @@ cdata.set('MESON_BUILD', 1) + # so we request the nodelete flag to be enabled. + # On other systems, we don't really know how to do that, but it's welcome if somebody can tell. + # Windows doesn't support this flag. +-if host_machine.system() != 'windows' ++if host_machine.system() not in ['windows', 'darwin'] + nodelete_link_args = ['-Wl,-z,nodelete'] + else + nodelete_link_args = [] +diff --git a/src/modules/echo-cancel/meson.build b/src/modules/echo-cancel/meson.build +index 641cd35e7..523bffac4 100644 +--- a/src/modules/echo-cancel/meson.build ++++ b/src/modules/echo-cancel/meson.build +@@ -10,12 +10,17 @@ libwebrtc_util_sources = [ + 'webrtc.cc' + ] + ++ignore_unresolved_symbols_link_args = ['-Wl,--unresolved-symbols=ignore-in-object-files'] ++if meson.get_compiler('c').get_linker_id() == 'ld64' ++ ignore_unresolved_symbols_link_args = [ '-Wl,-undefined,dynamic_lookup' ] ++endif ++ + libwebrtc_util = shared_library('webrtc-util', + libwebrtc_util_sources, + cpp_args : [pa_c_args, server_c_args], + include_directories : [configinc, topinc], + dependencies : [libpulse_dep, libpulsecommon_dep, libpulsecore_dep, libatomic_ops_dep, webrtc_dep, libintl_dep], +- link_args : [nodelete_link_args, '-Wl,--unresolved-symbols=ignore-in-object-files'], ++ link_args : [nodelete_link_args, ignore_unresolved_symbols_link_args], + install : true, + install_rpath : privlibdir, + install_dir : modlibexecdir, +diff --git a/src/modules/meson.build b/src/modules/meson.build +index 1e12569dc..66f3e46a4 100644 +--- a/src/modules/meson.build ++++ b/src/modules/meson.build +@@ -298,6 +298,11 @@ all_modules += [ + # FIXME: meson doesn't support multiple RPATH arguments currently + rpath_dirs = join_paths(privlibdir) + ':' + join_paths(modlibexecdir) + ++no_undefined_link_args = ['-Wl,--no-undefined'] ++if meson.get_compiler('c').get_linker_id() == 'ld64' ++ no_undefined_link_args = [ '-Wl,-undefined,error' ] ++endif ++ + foreach m : all_modules + name = m[0] + sources = m[1] +@@ -315,7 +320,7 @@ foreach m : all_modules + install_rpath : rpath_dirs, + install_dir : modlibexecdir, + dependencies : [thread_dep, libpulse_dep, libpulsecommon_dep, libpulsecore_dep, libintl_dep, platform_dep, platform_socket_dep] + extra_deps, +- link_args : [nodelete_link_args, '-Wl,--no-undefined' ], ++ link_args : [nodelete_link_args, no_undefined_link_args ], + link_with : extra_libs, + name_prefix : '', + implicit_include_directories : false) +diff --git a/src/pulse/meson.build b/src/pulse/meson.build +index 1b82c807c..938e4addd 100644 +--- a/src/pulse/meson.build ++++ b/src/pulse/meson.build +@@ -75,6 +75,9 @@ run_target('update-map-file', + [ libpulse_headers, 'simple.h', join_paths(meson.build_root(), 'src', 'pulse', 'version.h') ] ]) + + versioning_link_args = '-Wl,-version-script=' + join_paths(meson.source_root(), 'src', 'pulse', 'map-file') ++if meson.get_compiler('c').get_linker_id() == 'ld64' ++ versioning_link_args = [] ++endif + + libpulse = shared_library('pulse', + libpulse_sources, diff --git a/pkgs/servers/pulseaudio/0008-Use-correct-semaphore-on-darwin.patch b/pkgs/servers/pulseaudio/0008-Use-correct-semaphore-on-darwin.patch deleted file mode 100644 index 274534665628..000000000000 --- a/pkgs/servers/pulseaudio/0008-Use-correct-semaphore-on-darwin.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 1a840b6e517004c902dfbea3d358b344c9588978 Mon Sep 17 00:00:00 2001 -From: Andrew Childs -Date: Tue, 19 Apr 2022 17:49:08 +0900 -Subject: [PATCH 8/8] Use correct semaphore on darwin - ---- - src/meson.build | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/src/meson.build b/src/meson.build -index 5bd68cb12..041e2fab4 100644 ---- a/src/meson.build -+++ b/src/meson.build -@@ -183,9 +183,13 @@ else - libpulsecommon_sources += [ - 'pulsecore/mutex-posix.c', - 'pulsecore/poll-posix.c', -- 'pulsecore/semaphore-posix.c', - 'pulsecore/thread-posix.c' - ] -+ if host_machine.system() == 'darwin' -+ libpulsecommon_sources += [ 'pulsecore/semaphore-osx.c' ] -+ else -+ libpulsecommon_sources += [ 'pulsecore/semaphore-posix.c' ] -+ endif - endif - # FIXME: Do SIMD things - --- -2.35.1 - diff --git a/pkgs/servers/pulseaudio/default.nix b/pkgs/servers/pulseaudio/default.nix index 95ee97ef6c87..2a1bd3c70fbb 100644 --- a/pkgs/servers/pulseaudio/default.nix +++ b/pkgs/servers/pulseaudio/default.nix @@ -9,7 +9,7 @@ , x11Support ? false -, useSystemd ? true +, useSystemd ? stdenv.isLinux , # Whether to support the JACK sound system as a backend. jackaudioSupport ? false @@ -19,17 +19,20 @@ , airtunesSupport ? false -, bluetoothSupport ? true +, bluetoothSupport ? stdenv.isLinux , advancedBluetoothCodecs ? false , remoteControlSupport ? false , zeroconfSupport ? false +, alsaSupport ? stdenv.isLinux +, udevSupport ? stdenv.isLinux + , # Whether to build only the library. libOnly ? false -, AudioUnit, Cocoa, CoreServices +, AudioUnit, Cocoa, CoreServices, CoreAudio }: stdenv.mkDerivation rec { @@ -45,18 +48,15 @@ stdenv.mkDerivation rec { # Install sysconfdir files inside of the nix store, # but use a conventional runtime sysconfdir outside the store ./add-option-for-installation-sysconfdir.patch - ] ++ lib.optionals stdenv.isDarwin [ # https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/654 - ./0001-Make-gio-2.0-optional-when-gsettings-is-disabled.patch - + (./0001-Make-gio-2.0-optional-${lib.versions.major version}.patch) # TODO (not sent upstream) - ./0002-Ignore-SCM_CREDS-on-macOS.patch - ./0003-Disable-z-nodelete-on-darwin.patch - ./0004-Prefer-clock_gettime.patch - ./0005-Include-poll-posix.c-on-darwin.patch - ./0006-Only-use-version-script-on-GNU-ish-linkers.patch - ./0007-Adapt-undefined-link-args-per-linker.patch - ./0008-Use-correct-semaphore-on-darwin.patch + ./0002-Ignore-SCM_CREDS-on-darwin.patch + ./0003-Ignore-HAVE_CPUID_H-on-aarch64-darwin.patch + ./0004-Prefer-HAVE_CLOCK_GETTIME-on-darwin.patch + ./0005-Enable-CoreAudio-on-darwin.patch + ./0006-Fix-libpulsecommon-sources-on-darwin.patch + ./0007-Fix-link-args-on-darwin.patch ]; outputs = [ "out" "dev" ]; @@ -72,7 +72,7 @@ stdenv.mkDerivation rec { buildInputs = [ libtool libsndfile soxr speexdsp fftwFloat check ] ++ lib.optionals stdenv.isLinux [ glib dbus ] - ++ lib.optionals stdenv.isDarwin [ AudioUnit Cocoa CoreServices libintl ] + ++ lib.optionals stdenv.isDarwin [ AudioUnit Cocoa CoreServices CoreAudio libintl ] ++ lib.optionals (!libOnly) ( [ libasyncns webrtc-audio-processing ] ++ lib.optional jackaudioSupport libjack2 @@ -88,7 +88,7 @@ stdenv.mkDerivation rec { ); mesonFlags = [ - "-Dalsa=${if !libOnly then "enabled" else "disabled"}" + "-Dalsa=${if !libOnly && alsaSupport then "enabled" else "disabled"}" "-Dasyncns=${if !libOnly then "enabled" else "disabled"}" "-Davahi=${if zeroconfSupport then "enabled" else "disabled"}" "-Dbluez5=${if !libOnly && bluetoothSupport then "enabled" else "disabled"}" @@ -107,7 +107,7 @@ stdenv.mkDerivation rec { "-Dorc=disabled" "-Dsystemd=${if useSystemd && !libOnly then "enabled" else "disabled"}" "-Dtcpwrap=disabled" - "-Dudev=${if !libOnly then "enabled" else "disabled"}" + "-Dudev=${if !libOnly && udevSupport then "enabled" else "disabled"}" "-Dvalgrind=disabled" "-Dwebrtc-aec=${if !libOnly then "enabled" else "disabled"}" "-Dx11=${if x11Support then "enabled" else "disabled"}" @@ -118,7 +118,7 @@ stdenv.mkDerivation rec { "-Dudevrulesdir=${placeholder "out"}/lib/udev/rules.d" ] ++ lib.optional (stdenv.isLinux && useSystemd) "-Dsystemduserunitdir=${placeholder "out"}/lib/systemd/user" - ++ lib.optionals (stdenv.isDarwin) [ + ++ lib.optionals stdenv.isDarwin [ "-Ddbus=disabled" "-Dglib=disabled" "-Doss-output=disabled" @@ -144,10 +144,21 @@ stdenv.mkDerivation rec { wrapProgram $out/libexec/pulse/gsettings-helper \ --prefix XDG_DATA_DIRS : "$out/share/gsettings-schemas/${pname}-${version}" \ --prefix GIO_EXTRA_MODULES : "${lib.getLib dconf}/lib/gio/modules" + '' + # add .so symlinks for modules to be found under macOS + + lib.optionalString stdenv.isDarwin '' + for file in $out/${passthru.pulseDir}/modules/*.dylib; do + ln -s "''$file" "''${file%.dylib}.so" + ln -s "''$file" "$out/lib/pulseaudio/''$(basename ''$file .dylib).so" + done ''; passthru = { - pulseDir = "lib/pulse-" + lib.versions.majorMinor version; + pulseDir = + if (lib.versionAtLeast version "16.0") then + "lib/pulseaudio" + else + "lib/pulse-" + lib.versions.majorMinor version; }; meta = { diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index ade036609efe..5511bcb39002 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -22681,7 +22681,7 @@ with pkgs; hsphfpd = callPackage ../servers/pulseaudio/hsphfpd.nix { }; pulseaudio = callPackage ../servers/pulseaudio { - inherit (darwin.apple_sdk.frameworks) CoreServices AudioUnit Cocoa; + inherit (darwin.apple_sdk.frameworks) CoreServices AudioUnit Cocoa CoreAudio; }; qpaeq = libsForQt5.callPackage ../servers/pulseaudio/qpaeq.nix { }; -- cgit v1.2.3 From 60514b555d16027ba4f12da72291747e37f38f5d Mon Sep 17 00:00:00 2001 From: Weijia Wang <9713184+wegank@users.noreply.github.com> Date: Tue, 2 Aug 2022 18:39:38 +0200 Subject: libcanberra: fix build on darwin --- pkgs/development/libraries/libcanberra/default.nix | 22 +++++++++++++--------- pkgs/top-level/all-packages.nix | 2 +- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/pkgs/development/libraries/libcanberra/default.nix b/pkgs/development/libraries/libcanberra/default.nix index 91b720303199..6cdadeac296d 100644 --- a/pkgs/development/libraries/libcanberra/default.nix +++ b/pkgs/development/libraries/libcanberra/default.nix @@ -1,7 +1,7 @@ { stdenv, lib, fetchurl, fetchpatch, pkg-config, libtool , gtk2-x11, gtk3-x11 , gtkSupport ? null , libpulseaudio, gst_all_1, libvorbis, libcap -, Carbon, CoreServices +, Carbon, CoreServices, AppKit , withAlsa ? stdenv.isLinux, alsa-lib }: stdenv.mkDerivation rec { @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { ] ++ (with gst_all_1; [ gstreamer gst-plugins-base ]) ++ lib.optional (gtkSupport == "gtk2") gtk2-x11 ++ lib.optional (gtkSupport == "gtk3") gtk3-x11 - ++ lib.optionals stdenv.isDarwin [Carbon CoreServices] + ++ lib.optionals stdenv.isDarwin [ Carbon CoreServices AppKit ] ++ lib.optional stdenv.isLinux libcap ++ lib.optional withAlsa alsa-lib; @@ -33,15 +33,19 @@ stdenv.mkDerivation rec { url = "http://git.0pointer.net/libcanberra.git/patch/?id=c0620e432650e81062c1967cc669829dbd29b310"; sha256 = "0rc7zwn39yxzxp37qh329g7375r5ywcqcaak8ryd0dgvg8m5hcx9"; }) + ] ++ lib.optionals stdenv.isDarwin [ + (fetchpatch { + url = "https://github.com/macports/macports-ports/raw/5a7965dfea7727d1ceedee46c7b0ccee9cb23468/audio/libcanberra/files/patch-configure.diff"; + sha256 = "sha256-pEJy1krciUEg5BFIS8FJ4BubjfS/nt9aqi6BLnS1+4M="; + extraPrefix = ""; + }) + (fetchpatch { + url = "https://github.com/macports/macports-ports/raw/5a7965dfea7727d1ceedee46c7b0ccee9cb23468/audio/libcanberra/files/dynamic_lookup-11.patch"; + sha256 = "sha256-nUjha2pKh5VZl0ZZzcr9NTo1TVuMqF4OcLiztxW+ofQ="; + extraPrefix = ""; + }) ]; - postPatch = lib.optionalString stdenv.isDarwin '' - patch -p0 < ${fetchpatch { - url = "https://raw.githubusercontent.com/macports/macports-ports/master/audio/libcanberra/files/patch-configure.diff"; - sha256 = "1f7h7ifpqvbfhqygn1b7klvwi80zmpv3538vbmq7ql7bkf1q8h31"; - }} - ''; - postInstall = '' for f in $out/lib/*.la; do sed 's|-lltdl|-L${libtool.lib}/lib -lltdl|' -i $f diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 5511bcb39002..e2f29029d051 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -18729,7 +18729,7 @@ with pkgs; libcamera = callPackage ../development/libraries/libcamera { }; libcanberra = callPackage ../development/libraries/libcanberra { - inherit (darwin.apple_sdk.frameworks) Carbon CoreServices; + inherit (darwin.apple_sdk.frameworks) Carbon CoreServices AppKit; }; libcanberra-gtk2 = pkgs.libcanberra.override { gtkSupport = "gtk2"; -- cgit v1.2.3 From aac52a923f909ca282e4f63e3860973e4eb61594 Mon Sep 17 00:00:00 2001 From: Weijia Wang <9713184+wegank@users.noreply.github.com> Date: Tue, 2 Aug 2022 18:39:43 +0200 Subject: gsound: add darwin support --- pkgs/development/libraries/gsound/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/libraries/gsound/default.nix b/pkgs/development/libraries/gsound/default.nix index ddbfc307b2d1..7dbe5cd2bbfc 100644 --- a/pkgs/development/libraries/gsound/default.nix +++ b/pkgs/development/libraries/gsound/default.nix @@ -31,6 +31,6 @@ stdenv.mkDerivation rec { description = "Small library for playing system sounds"; maintainers = teams.gnome.members; license = licenses.gpl2; - platforms = platforms.linux; + platforms = platforms.unix; }; } -- cgit v1.2.3 From ff630bdc67ac5135ecd679c96fe51395dca5467e Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Wed, 3 Aug 2022 01:41:12 +0200 Subject: liblqr1: split outputs Prevent glib.dev reference from ending up in out due to glib being propagated. --- pkgs/development/libraries/liblqr-1/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/development/libraries/liblqr-1/default.nix b/pkgs/development/libraries/liblqr-1/default.nix index 914cc0c2ab69..b9e6eeba0f3f 100644 --- a/pkgs/development/libraries/liblqr-1/default.nix +++ b/pkgs/development/libraries/liblqr-1/default.nix @@ -4,6 +4,8 @@ stdenv.mkDerivation rec { pname = "liblqr-1"; version = "0.4.2"; + outputs = [ "out" "dev" ]; + src = fetchFromGitHub { owner = "carlobaldassi"; repo = "liblqr"; -- cgit v1.2.3 From 4eb32471e07342a43d9c0f11a387fa525e7e0a4c Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Wed, 3 Aug 2022 02:02:21 +0200 Subject: libjxl: split outputs Prevent brotli.dev reference from ending up in out due to brotli being propagated. --- pkgs/development/libraries/libjxl/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/development/libraries/libjxl/default.nix b/pkgs/development/libraries/libjxl/default.nix index be0a4fb91549..6eba2d0112ef 100644 --- a/pkgs/development/libraries/libjxl/default.nix +++ b/pkgs/development/libraries/libjxl/default.nix @@ -23,6 +23,8 @@ stdenv.mkDerivation rec { pname = "libjxl"; version = "0.6.1"; + outputs = [ "out" "dev" ]; + src = fetchFromGitHub { owner = "libjxl"; repo = "libjxl"; -- cgit v1.2.3 From b1b8f456a15561ed92a1ee35f290741b8a7b8b96 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 3 Aug 2022 03:45:28 +0000 Subject: libevdev: 1.12.1 -> 1.13.0 --- pkgs/development/libraries/libevdev/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/libevdev/default.nix b/pkgs/development/libraries/libevdev/default.nix index b757e516573e..6af1e5d87182 100644 --- a/pkgs/development/libraries/libevdev/default.nix +++ b/pkgs/development/libraries/libevdev/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "libevdev"; - version = "1.12.1"; + version = "1.13.0"; src = fetchurl { url = "https://www.freedesktop.org/software/${pname}/${pname}-${version}.tar.xz"; - sha256 = "sha256-HbukG8UW08p6vA2luGLv4+qKcBj6bpuXzp05QBsiQmw="; + sha256 = "sha256-nt8gBsyGpQVSeWR8OOySPRGoIe5NwsMDPo0g6O4jfNk="; }; nativeBuildInputs = [ python3 ]; -- cgit v1.2.3 From c817efe660f035b5533b45fb9ba9962e65fe5209 Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Tue, 2 Aug 2022 23:02:15 +0100 Subject: gcc: extend stripping of .a libraries and .o objects The initial intent was to strip .a and .o files, not .a.o files. While at it expanded stripping for $lib output as well. Without the change `libgcc.a` was not stripped and `.debug*` sections made into final binaries. It's not a problem on it's own, but it's an unintended side-effect. Noticed on `crystal_1_0` test failure where `crystal` was not able to handle `dwarf-5`. While at it allowed absolute file names to be passed to stripDebugList and friends. --- pkgs/build-support/setup-hooks/strip.sh | 2 +- .../compilers/gcc/common/strip-attributes.nix | 37 +++++++++++++++------- 2 files changed, 27 insertions(+), 12 deletions(-) diff --git a/pkgs/build-support/setup-hooks/strip.sh b/pkgs/build-support/setup-hooks/strip.sh index 80bc064ced7d..b2d0841888ff 100644 --- a/pkgs/build-support/setup-hooks/strip.sh +++ b/pkgs/build-support/setup-hooks/strip.sh @@ -44,7 +44,7 @@ stripDirs() { local d for d in ${dirs}; do - if [ -d "$prefix/$d" ]; then + if [ -e "$prefix/$d" ]; then dirsNew="${dirsNew} $prefix/$d " fi done diff --git a/pkgs/development/compilers/gcc/common/strip-attributes.nix b/pkgs/development/compilers/gcc/common/strip-attributes.nix index 997c068cba62..9756c468b71a 100644 --- a/pkgs/development/compilers/gcc/common/strip-attributes.nix +++ b/pkgs/development/compilers/gcc/common/strip-attributes.nix @@ -8,7 +8,9 @@ # Example ARM breakage by x86_64 strip: https://bugs.gentoo.org/697428 # # Let's recap the file layout for directories with object files for a - # cross-compiler (host != target): + # cross-compiler: + # + # $out (host != target) # `- bin: HOST # lib/*.{a,o}: HOST # `- gcc///*.{a,o}: TARGET @@ -17,10 +19,16 @@ # `- libexec/: HOST # `- /: TARGET # - # (host == target) has identical directory layout. + # $out (host == target) has identical directory layout. + # + # $lib (host != target): + # `- /lib/*.{la,so}: TARGET + # + # $lib (host == target): + # `- lib/*.{la,so}: HOST # The rest of stripDebugList{Host,Target} will be populated in - # postInstall. + # postInstall to disambiguate lib/ object files. stripDebugList = [ "bin" "libexec" ]; stripDebugListTarget = [ stdenv.targetPlatform.config ]; @@ -32,21 +40,28 @@ shopt -s nullglob pushd $out - - local -ar hostFiles=( - lib{,32,64}/*.{a.o} + local -ar outHostFiles=( + lib{,32,64}/*.{a,o,so*} lib{,32,64}/gcc/${stdenv.targetPlatform.config}/*/plugin ) - local -ar targetFiles=( - lib{,32,64}/gcc/${stdenv.targetPlatform.config}/*/*.{a.o} + local -ar outTargetFiles=( + lib{,32,64}/gcc/${stdenv.targetPlatform.config}/*/*.{a,o,so*} ) + popd - stripDebugList="$stripDebugList ''${hostFiles[*]}" - stripDebugListTarget="$stripDebugListTarget ''${targetFiles[*]}" - + pushd $lib + local -ar libHostFiles=( + lib{,32,64}/*.{a,o,so*} + ) + local -ar libTargetFiles=( + lib{,32,64}/${stdenv.targetPlatform.config}/*.{a,o,so*} + ) popd eval "$oldOpts" + + stripDebugList="$stripDebugList ''${outHostFiles[*]} ''${libHostFiles[*]}" + stripDebugListTarget="$stripDebugListTarget ''${outTargetFiles[*]} ''${libTargetFiles[*]}" } updateDebugListPaths ''; -- cgit v1.2.3 From cbc80ff32b7c827f6a780688f251a6d592a873d5 Mon Sep 17 00:00:00 2001 From: Adam Joseph Date: Fri, 5 Aug 2022 11:02:47 -0700 Subject: gcc: add linkLib32toLib to create lib32->lib links Our gcc builder creates lib64->lib links to ensure that the "primary" libraries for the targetPlatform wind up in $PREFIX/lib. This is required in order for make-bootstrap-files.nix to work correctly. On mips, gcc follows the somewhat awkward IRIX convention of putting mips32 binaries in `lib` and mips64n32 binaries in `lib32`. So we need similar symlinks there. This may come up on other ILP32 platforms as well, so a general-purpose variable name is provided. --- pkgs/development/compilers/gcc/builder.sh | 5 +++++ pkgs/development/compilers/gcc/common/pre-configure.nix | 10 ++++++++++ 2 files changed, 15 insertions(+) diff --git a/pkgs/development/compilers/gcc/builder.sh b/pkgs/development/compilers/gcc/builder.sh index a9b33d9a3e4f..be0e97dac6cb 100644 --- a/pkgs/development/compilers/gcc/builder.sh +++ b/pkgs/development/compilers/gcc/builder.sh @@ -197,6 +197,11 @@ preInstall() { ln -s lib "$out/${targetConfig}/lib64" ln -s lib "${!outputLib}/${targetConfig}/lib64" fi + # Make ‘lib32’ symlinks to ‘lib’. + if [ -n "$linkLib32toLib" ]; then + ln -s lib "$out/${targetConfig}/lib32" + ln -s lib "${!outputLib}/${targetConfig}/lib32" + fi } diff --git a/pkgs/development/compilers/gcc/common/pre-configure.nix b/pkgs/development/compilers/gcc/common/pre-configure.nix index 180d5f16e91f..01835b9fc107 100644 --- a/pkgs/development/compilers/gcc/common/pre-configure.nix +++ b/pkgs/development/compilers/gcc/common/pre-configure.nix @@ -78,3 +78,13 @@ in lib.optionalString (hostPlatform.isSunOS && hostPlatform.is64bit) '' + lib.optionalString (targetPlatform != hostPlatform && crossStageStatic) '' export inhibit_libc=true '' + +# On mips platforms, gcc follows the IRIX naming convention: +# +# $PREFIX/lib = mips32 +# $PREFIX/lib32 = mips64n32 +# $PREFIX/lib64 = mips64 +# ++ lib.optionalString (targetPlatform.isMips64n32) '' + export linkLib32toLib=1 +'' -- cgit v1.2.3 From dfba0bf93b716a72b107fd182e01e5ba859dc013 Mon Sep 17 00:00:00 2001 From: Adam Joseph Date: Fri, 5 Aug 2022 11:05:07 -0700 Subject: gcc: do not create lib64->lib links on mips64n32 On mips, gcc follows the somewhat awkward IRIX convention of putting mips64 binaries in `lib64` and mips64n32 binaries in `lib32`. So on mips64n32 we do not want the `lib64` symlinks. --- pkgs/development/compilers/gcc/10/default.nix | 2 +- pkgs/development/compilers/gcc/11/default.nix | 2 +- pkgs/development/compilers/gcc/12/default.nix | 2 +- pkgs/development/compilers/gcc/4.8/default.nix | 2 +- pkgs/development/compilers/gcc/4.9/default.nix | 2 +- pkgs/development/compilers/gcc/6/default.nix | 2 +- pkgs/development/compilers/gcc/7/default.nix | 2 +- pkgs/development/compilers/gcc/8/default.nix | 2 +- pkgs/development/compilers/gcc/9/default.nix | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/pkgs/development/compilers/gcc/10/default.nix b/pkgs/development/compilers/gcc/10/default.nix index 1c223fa82f4a..d4230055313a 100644 --- a/pkgs/development/compilers/gcc/10/default.nix +++ b/pkgs/development/compilers/gcc/10/default.nix @@ -268,7 +268,7 @@ stdenv.mkDeri