diff options
-rw-r--r-- | pkgs/build-support/bintools-wrapper/default.nix | 2 | ||||
-rw-r--r-- | pkgs/build-support/cc-wrapper/default.nix | 3 | ||||
-rw-r--r-- | pkgs/build-support/setup-hooks/strip.sh | 2 | ||||
-rw-r--r-- | pkgs/development/compilers/gcc/common/strip-attributes.nix | 37 | ||||
-rw-r--r-- | pkgs/development/libraries/glib/default.nix | 21 | ||||
-rw-r--r-- | pkgs/development/libraries/gsm/default.nix | 4 | ||||
-rw-r--r-- | pkgs/development/libraries/libgpg-error/default.nix | 20 | ||||
-rw-r--r-- | pkgs/development/libraries/libgpg-error/fix-1.42-cross-compilation.patch | 142 |
8 files changed, 53 insertions, 178 deletions
diff --git a/pkgs/build-support/bintools-wrapper/default.nix b/pkgs/build-support/bintools-wrapper/default.nix index cdd07d6b2ef..b54983986db 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 047cdf6a491..b9dc9fc9a72 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"; diff --git a/pkgs/build-support/setup-hooks/strip.sh b/pkgs/build-support/setup-hooks/strip.sh index 80bc064ced7..b2d0841888f 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 997c068cba6..9756c468b71 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/<TARGET>/<VERSION>/*.{a,o}: TARGET @@ -17,10 +19,16 @@ # `- libexec/: HOST # `- <TARGET>/: TARGET # - # (host == target) has identical directory layout. + # $out (host == target) has identical directory layout. + # + # $lib (host != target): + # `- <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 ''; diff --git a/pkgs/development/libraries/glib/default.nix b/pkgs/development/libraries/glib/default.nix index 8fb12fc0203..0316deee7bc 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 [ @@ -167,10 +169,25 @@ 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 ''; + # 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 '' diff --git a/pkgs/development/libraries/gsm/default.nix b/pkgs/development/libraries/gsm/default.nix index f70a748a20e..ecf2d0e5ba5 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 = '' diff --git a/pkgs/development/libraries/libgpg-error/default.nix b/pkgs/development/libraries/libgpg-error/default.nix index 181829156c9..4f687d41dd6 100644 --- a/pkgs/development/libraries/libgpg-error/default.nix +++ b/pkgs/development/libraries/libgpg-error/default.nix @@ -17,31 +17,15 @@ }; in stdenv.mkDerivation (rec { pname = "libgpg-error"; - version = "1.42"; + version = "1.45"; src = fetchurl { url = "mirror://gnupg/${pname}/${pname}-${version}.tar.bz2"; - sha256 = "sha256-/AfnD2xhX4xPWQqON6m43S4soelAj45gRZxnRSuSXiM="; + sha256 = "sha256-Vw+O5PtL/3t0lc/5IMJ1ACrqIUfpodIgwGghMmf4CiY="; }; - # 1.42 breaks (some?) cross-compilation (e.g. x86_64 -> aarch64). - # Backporting this fix (merged in upstream master but no release cut) by David Michael <fedora.dm0@gmail.com> https://dev.gnupg.org/rE33593864cd54143db594c4237bba41e14179061c - patches = [ ./fix-1.42-cross-compilation.patch ]; - postPatch = '' sed '/BUILD_TIMESTAMP=/s/=.*/=1970-01-01T00:01+0000/' -i ./configure - '' + lib.optionalString (stdenv.hostPlatform.isAarch32 && stdenv.buildPlatform != stdenv.hostPlatform) '' - ln -s lock-obj-pub.arm-unknown-linux-gnueabi.h src/syscfg/lock-obj-pub.linux-gnueabihf.h - ln -s lock-obj-pub.arm-unknown-linux-gnueabi.h src/syscfg/lock-obj-pub.linux-gnueabi.h - '' + lib.optionalString (stdenv.hostPlatform.isx86_64 && stdenv.hostPlatform.isMusl) '' - ln -s lock-obj-pub.x86_64-pc-linux-musl.h src/syscfg/lock-obj-pub.linux-musl.h - '' + lib.optionalString (stdenv.hostPlatform.isi686 && stdenv.hostPlatform.isMusl) '' - ln -s lock-obj-pub.i686-unknown-linux-gnu.h src/syscfg/lock-obj-pub.linux-musl.h - '' + lib.optionalString (stdenv.hostPlatform.isAarch32 && stdenv.hostPlatform.isMusl) '' - ln -s lock-obj-pub.arm-unknown-linux-gnueabi.h src/syscfg/lock-obj-pub.arm-unknown-linux-musleabihf.h - ln -s lock-obj-pub.arm-unknown-linux-gnueabi.h src/syscfg/lock-obj-pub.linux-musleabihf.h - '' + lib.optionalString (stdenv.hostPlatform.isAarch64 && stdenv.hostPlatform.isMusl) '' - ln -s lock-obj-pub.aarch64-unknown-linux-gnu.h src/syscfg/lock-obj-pub.linux-musl.h ''; outputs = [ "out" "dev" "info" ]; diff --git a/pkgs/development/libraries/libgpg-error/fix-1.42-cross-compilation.patch b/pkgs/development/libraries/libgpg-error/fix-1.42-cross-compilation.patch deleted file mode 100644 index 6c3099f7214..00000000000 --- a/pkgs/development/libraries/libgpg-error/fix-1.42-cross-compilation.patch +++ /dev/null @@ -1,142 +0,0 @@ -diff --git a/src/gen-lock-obj.sh b/src/gen-lock-obj.sh -index a710f0c..258eec6 100755 ---- a/src/gen-lock-obj.sh -+++ b/src/gen-lock-obj.sh -@@ -1,136 +1,136 @@ - #! /bin/sh - # - # gen-lock-obj.sh - Build tool to construct the lock object. - # - # Copyright (C) 2020, 2021 g10 Code GmbH - # - # This file is part of libgpg-error. - # - # libgpg-error is free software; you can redistribute it and/or - # modify it under the terms of the GNU Lesser General Public License - # as published by the Free Software Foundation; either version 2.1 of - # the License, or (at your option) any later version. - # - # libgpg-error is distributed in the hope that it will be useful, but - # WITHOUT ANY WARRANTY; without even the implied warranty of - # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - # Lesser General Public License for more details. - # - # You should have received a copy of the GNU Lesser General Public - # License along with this program; if not, see <https://www.gnu.org/licenses/>. - # - - # - # Following variables should be defined to invoke this script - # - # CC - # OBJDUMP - # AWK - # ac_ext - # ac_object - # host - # LOCK_ABI_VERSION - # - # An example: - # - # LOCK_ABI_VERSION=1 host=x86_64-pc-linux-gnu host_alias=x86_64-linux-gnu \ - # CC=$host_alias-gcc OBJDUMP=$host_alias-objdump ac_ext=c ac_objext=o \ - # AWK=gawk ./gen-lock-obj.sh - # - --if test -n `echo -n`; then -+if test -n "`echo -n`"; then - ECHO_C='\c' - ECHO_N='' - else - ECHO_C='' - ECHO_N='-n' - fi - - if test "$1" = --disable-threads; then - cat <<EOF - ## lock-obj-pub.$host.h - NO LOCK SUPPORT - ## File created by gen-lock-obj.sh - DO NOT EDIT - ## To be included by mkheader into gpg-error.h - - /* Dummy object - no locking available. */ - typedef struct - { - long _vers; - } gpgrt_lock_t; - - #define GPGRT_LOCK_INITIALIZER {-1} - EOF - else - AWK_VERSION_OUTPUT=$($AWK 'BEGIN { print PROCINFO["version"] }') - if test -n "$AWK_VERSION_OUTPUT"; then - # It's GNU awk, which supports PROCINFO. - AWK_OPTION=--non-decimal-data - fi - - cat <<'EOF' >conftest.$ac_ext - #include <pthread.h> - pthread_mutex_t mtx = PTHREAD_MUTEX_INITIALIZER; - EOF - - if $CC -c conftest.$ac_ext; then : - ac_mtx_size=$($OBJDUMP -j .bss -t conftest.$ac_objext \ - | $AWK $AWK_OPTION ' - /mtx$/ { mtx_size = int("0x" $5) } - END { print mtx_size }') - else - echo "Can't determine mutex size" - exit 1 - fi - rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - - cat <<EOF - ## lock-obj-pub.$host.h - ## File created by gen-lock-obj.sh - DO NOT EDIT - ## To be included by mkheader into gpg-error.h - - typedef struct - { - long _vers; - union { - volatile char _priv[$ac_mtx_size]; - long _x_align; - long *_xp_align; - } u; - } gpgrt_lock_t; - - EOF - - # FIXME: Support different alignment conditions of: - # - # USE_16BYTE_ALIGNMENT - # USE_DOUBLE_FOR_ALIGNMENT - # USE_LONG_DOUBLE_FOR_ALIGNMENT - # - - echo ${ECHO_N} "#define GPGRT_LOCK_INITIALIZER {$LOCK_ABI_VERSION,{{${ECHO_C}" - - i=0 - while test "$i" -lt $ac_mtx_size; do - if test "$i" -ne 0 -a "$(( $i % 8 ))" -eq 0; then - echo ' \' - echo ${ECHO_N} " ${ECHO_C}" - fi - echo ${ECHO_N} "0${ECHO_C}" - if test "$i" -lt $(($ac_mtx_size - 1)); then - echo ${ECHO_N} ",${ECHO_C}" - fi - i=$(( i + 1 )) - done - fi - - cat <<'EOF' - }}} - ## - ## Local Variables: - ## mode: c - ## buffer-read-only: t - ## End: - ## - EOF - - exit 0 |