diff options
author | Alyssa Ross <hi@alyssa.is> | 2021-09-08 17:57:14 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2021-09-13 11:31:47 +0000 |
commit | ee7984efa14902a2ddd820c937457667a4f40c6a (patch) | |
tree | c9c1d046733cefe5e21fdd8a52104175d47b2443 /nixpkgs/pkgs/development/libraries/libgpg-error | |
parent | ffc9d4ba381da62fd08b361bacd1e71e2a3d934d (diff) | |
parent | b3c692172e5b5241b028a98e1977f9fb12eeaf42 (diff) | |
download | nixlib-ee7984efa14902a2ddd820c937457667a4f40c6a.tar nixlib-ee7984efa14902a2ddd820c937457667a4f40c6a.tar.gz nixlib-ee7984efa14902a2ddd820c937457667a4f40c6a.tar.bz2 nixlib-ee7984efa14902a2ddd820c937457667a4f40c6a.tar.lz nixlib-ee7984efa14902a2ddd820c937457667a4f40c6a.tar.xz nixlib-ee7984efa14902a2ddd820c937457667a4f40c6a.tar.zst nixlib-ee7984efa14902a2ddd820c937457667a4f40c6a.zip |
Merge commit 'b3c692172e5b5241b028a98e1977f9fb12eeaf42'
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/libgpg-error')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/libgpg-error/default.nix | 8 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/libraries/libgpg-error/fix-1.42-cross-compilation.patch | 142 |
2 files changed, 148 insertions, 2 deletions
diff --git a/nixpkgs/pkgs/development/libraries/libgpg-error/default.nix b/nixpkgs/pkgs/development/libraries/libgpg-error/default.nix index 1f6fd4835afa..e46e25593365 100644 --- a/nixpkgs/pkgs/development/libraries/libgpg-error/default.nix +++ b/nixpkgs/pkgs/development/libraries/libgpg-error/default.nix @@ -17,13 +17,17 @@ }; in stdenv.mkDerivation (rec { pname = "libgpg-error"; - version = "1.41"; + version = "1.42"; src = fetchurl { url = "mirror://gnupg/${pname}/${pname}-${version}.tar.bz2"; - sha256 = "0hi7jbcs1l9kxzhiqcs2iivsb048642mwaimgqyh1hy3bas7ic34"; + sha256 = "sha256-/AfnD2xhX4xPWQqON6m43S4soelAj45gRZxnRSuSXiM="; }; + # 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) '' diff --git a/nixpkgs/pkgs/development/libraries/libgpg-error/fix-1.42-cross-compilation.patch b/nixpkgs/pkgs/development/libraries/libgpg-error/fix-1.42-cross-compilation.patch new file mode 100644 index 000000000000..6c3099f72144 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/libgpg-error/fix-1.42-cross-compilation.patch @@ -0,0 +1,142 @@ +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 |