From a79ed0daec90cfe0e053fd3f5be8c84fca865e48 Mon Sep 17 00:00:00 2001 From: Randy Eckenrode Date: Fri, 16 Aug 2024 20:15:45 -0400 Subject: [PATCH] gnutar: make sure libiconv is linked MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit gnutar’s `configure` detects libiconv but fails to link it on Darwin. --- pkgs/tools/archivers/gnutar/default.nix | 13 ++++------- .../archivers/gnutar/link-libiconv.patch | 23 +++++++++++++++++++ 2 files changed, 28 insertions(+), 8 deletions(-) create mode 100644 pkgs/tools/archivers/gnutar/link-libiconv.patch diff --git a/pkgs/tools/archivers/gnutar/default.nix b/pkgs/tools/archivers/gnutar/default.nix index f9b5415b4f8e..292b39738dfc 100644 --- a/pkgs/tools/archivers/gnutar/default.nix +++ b/pkgs/tools/archivers/gnutar/default.nix @@ -17,12 +17,9 @@ stdenv.mkDerivation rec { sha256 = "sha256-TWL/NzQux67XSFNTI5MMfPlKz3HDWRiCsmp+pQ8+3BY="; }; - # avoid retaining reference to CF during stdenv bootstrap - configureFlags = lib.optionals stdenv.hostPlatform.isDarwin [ - "gt_cv_func_CFPreferencesCopyAppValue=no" - "gt_cv_func_CFLocaleCopyCurrent=no" - "gt_cv_func_CFLocaleCopyPreferredLanguages=no" - ]; + # GNU tar fails to link libiconv even though the configure script detects it. + # https://savannah.gnu.org/bugs/index.php?64441 + patches = [ ./link-libiconv.patch ]; # gnutar tries to call into gettext between `fork` and `exec`, # which is not safe on darwin. @@ -33,8 +30,8 @@ stdenv.mkDerivation rec { outputs = [ "out" "info" ]; - nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin autoreconfHook - ++ lib.optional (!stdenv.hostPlatform.isDarwin) updateAutotoolsGnuConfigScriptsHook; + nativeBuildInputs = [ autoreconfHook ]; + # Add libintl on Darwin specifically as it fails to link (or skip) # NLS on it's own: # "_libintl_textdomain", referenced from: diff --git a/pkgs/tools/archivers/gnutar/link-libiconv.patch b/pkgs/tools/archivers/gnutar/link-libiconv.patch new file mode 100644 index 000000000000..a515c37c39ca --- /dev/null +++ b/pkgs/tools/archivers/gnutar/link-libiconv.patch @@ -0,0 +1,23 @@ +From 8632df398b2f548465ebe68b8f494c0d6f8d913d Mon Sep 17 00:00:00 2001 +From: Sergey Poznyakoff +Date: Tue, 18 Jul 2023 17:02:23 +0300 +Subject: Fix savannah bug #64441 + +* src/Makefile.am (tar_LDADD): Add libiconv libraries. +--- + src/Makefile.am | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/Makefile.am b/src/Makefile.am +index 36c9543..e2ec58d 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -52,4 +52,5 @@ AM_CFLAGS = $(WARN_CFLAGS) $(WERROR_CFLAGS) + tar_LDADD = $(LIBS) ../lib/libtar.a ../gnu/libgnu.a\ + $(LIB_ACL) $(LIB_CLOCK_GETTIME) $(LIB_EACCESS)\ + $(LIB_GETRANDOM) $(LIB_HARD_LOCALE) $(FILE_HAS_ACL_LIB) $(LIB_MBRTOWC)\ +- $(LIB_SELINUX) $(LIB_SETLOCALE_NULL) ++ $(LIB_SELINUX) $(LIB_SETLOCALE_NULL) \ ++ $(LIBINTL) $(LIBICONV) +-- +cgit v1.1