From 1a0509e7fa1caeb5c56e936849e3b574ef27aa53 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Wed, 5 Jun 2024 20:46:20 -0400 Subject: [PATCH] gnu: gnulib: Update to 2024-05-30-1.ac4b301. Also fix the commands, which would fail due to not finding their implementation scripts. * gnu/packages/patches/gnulib-bootstrap.patch: New patch. * gnu/local.mk (dist_patch_DATA): Register it. * gnu/packages/build-tools.scm (gnulib): Update to 2024-05-30-1.ac4b301. [source]: Apply patch. [phases] {patch-source-shebangs, patch-generated-file-shebangs} {patch-usr-bin-file, restore-shebangs}: Delete phases. {disable-failing-tests}: Disable sc_error_message_warn_fatal, sc_prefer_angle_bracket_headers, sc_check_config_h_reminder, sc_prohibit_sc_omitted_at, sc_readme_link_copying, sc_readme_link_install, sc_unsigned_char, sc_unsigned_int, sc_unsigned_long and sc_unsigned_short checks. {regenerate-unicode}: Register BidiMirroring.txt unicode data file. Change-Id: I154b2c5980b671f1e73e7a1f74d926ea080a7aa0 --- gnu/local.mk | 1 + gnu/packages/build-tools.scm | 55 ++++++++------- gnu/packages/patches/gnulib-bootstrap.patch | 75 +++++++++++++++++++++ 3 files changed, 107 insertions(+), 24 deletions(-) create mode 100644 gnu/packages/patches/gnulib-bootstrap.patch diff --git a/gnu/local.mk b/gnu/local.mk index 6a436dd1b8..282cf30f7f 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1394,6 +1394,7 @@ dist_patch_DATA = \ %D%/packages/patches/gnome-settings-daemon-gc.patch \ %D%/packages/patches/gnome-session-support-elogind.patch \ %D%/packages/patches/gnome-tweaks-search-paths.patch \ + %D%/packages/patches/gnulib-bootstrap.patch \ %D%/packages/patches/gnumach-support-noide.patch \ %D%/packages/patches/gnupg-default-pinentry.patch \ %D%/packages/patches/gnupg-1-build-with-gcc10.patch \ diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm index 35b16f0045..c0cba8076f 100644 --- a/gnu/packages/build-tools.scm +++ b/gnu/packages/build-tools.scm @@ -13,7 +13,7 @@ ;;; Copyright © 2020 Jakub Kądziołka ;;; Copyright © 2020, 2023 Efraim Flashner ;;; Copyright © 2021 qblade -;;; Copyright © 2021, 2023 Maxim Cournoyer +;;; Copyright © 2021, 2023, 2024 Maxim Cournoyer ;;; Copyright © 2022, 2023 Juliana Sims ;;; ;;; This file is part of GNU Guix. @@ -853,12 +853,15 @@ Makefiles, JSON Compilation Database, and experimentally Ninja.") ;; FIXME: tests/uniname/HangulSyllableNames.txt ;; seems like a UCD file but it is not distributed ;; with UCD. - "tests/uniwbrk/WordBreakTest.txt"))))))) + "tests/uniwbrk/WordBreakTest.txt"))))) + (patches (search-patches "gnulib-bootstrap.patch")))) (build-system copy-build-system) (arguments (list #:install-plan #~'(("./gnulib-tool" "bin/") + ("./gnulib-tool.py" "bin/") + ("./gnulib-tool.sh" "bin/") ("." "src/gnulib" #:exclude-regexp ("\\.git.*"))) #:modules '((ice-9 match) (guix build utils) @@ -866,6 +869,13 @@ Makefiles, JSON Compilation Database, and experimentally Ninja.") ((guix build gnu-build-system) #:prefix gnu:)) #:phases #~(modify-phases %standard-phases + ;; Since this package is intended to be used in source form, it + ;; should not retain references to tools (with the exception for the + ;; commands we install, which should be wrapper for proper + ;; execution). + (delete 'patch-source-shebangs) + (delete 'patch-generated-file-shebangs) + (delete 'patch-usr-bin-file) (add-before 'install 'check (assoc-ref gnu:%standard-phases 'check)) (add-before 'check 'fix-tests @@ -889,8 +899,10 @@ Makefiles, JSON Compilation Database, and experimentally Ninja.") sc_Wundef_boolean \\ sc_copyright_check \\ sc_file_system \\ + sc_error_message_warn_fatal \\ sc_indent \\ sc_keep_gnulib_texi_files_mostly_ascii \\ + sc_prefer_angle_bracket_headers \\ sc_prohibit_assert_without_use \\ sc_prohibit_close_stream_without_use \\ sc_prohibit_defined_have_decl_tests \\ @@ -899,15 +911,22 @@ Makefiles, JSON Compilation Database, and experimentally Ninja.") sc_prohibit_intprops_without_use \\ sc_prohibit_openat_without_use \\ sc_prohibit_test_minus_ao \\ - sc_unportable_grep_q")) + sc_readme_link_copying \\ + sc_readme_link_install \\ + sc_unportable_grep_q \\ + sc_unsigned_char \\ + sc_unsigned_int \\ + sc_unsigned_long \\ + sc_unsigned_short")) (substitute* "Makefile" - (("sc_check_(sym_list|copyright)" rule) + (("sc_check_(sym_list|copyright|config_h_reminder)" rule) (string-append "disabled_check_" rule)) (("sc_cpp_indent_check") "disabled_cpp_indent_check") (("sc_prefer_ac_check_funcs_once") "disabled_prefer_ac_check_funcs_once") - (("sc_prohibit_(AC_LIBOBJ_in_m4|leading_TABs)" rule) + (("sc_prohibit_(AC_LIBOBJ_in_m4|leading_TABs\ +|sc_omitted_at)" rule) (string-append "disabled_prohibit_" rule))))) (add-before 'check 'regenerate-unicode (lambda* (#:key inputs #:allow-other-keys) @@ -939,7 +958,8 @@ Makefiles, JSON Compilation Database, and experimentally Ninja.") (sha256 (base32 "0k6wyijyzdl5g3nibcwfm898kfydx1pqaz28v7fdvnzdvd5fz7lh")))) - (find-ucd-files "EastAsianWidth.txt" + (find-ucd-files "BidiMirroring.txt" + "EastAsianWidth.txt" "LineBreak.txt" "auxiliary/WordBreakProperty.txt" "auxiliary/GraphemeBreakProperty.txt" @@ -962,22 +982,9 @@ Makefiles, JSON Compilation Database, and experimentally Ninja.") ("NormalizationTest.txt" . "uninorm") ("auxiliary/GraphemeBreakTest.txt" . "unigbrk") ("auxiliary/WordBreakTest.txt" . "uniwbrk"))) - (delete-file "gen-uni-tables")))) - (add-after 'install 'restore-shebangs - (lambda _ - (substitute* (find-files - (string-append #$output "/src/gnulib") - (lambda (fname stat) - (and (not (string-suffix? "/lib/javaversion.class" fname)) - (not (string-suffix? ".mo" fname))))) - (("^#! ?(.*)/bin/sh" _ prefix) - "#!/bin/sh") - (("^#! ?(.*)/bin/python3" _ prefix) - "#!/usr/bin/env python3") - (("^#! ?(.*)/bin/([a-zA-Z0-9-]+)" _ prefix program) - (string-append "#!/usr/bin/" program)))))))) + (delete-file "gen-uni-tables"))))))) (inputs - (list bash-minimal)) ;shebang for gnulib-tool + (list bash-minimal)) ;shebang for gnulib-tool (native-inputs (list bash-minimal python perl clisp @@ -1005,9 +1012,9 @@ maintenance-related files, for convenience.") (define-public gnulib (gnulib-checkout - #:version "2022-12-31" - #:commit "875461ffdf58ac04677957b4ae4160465b83b940" - #:hash (base32 "0bf7a6wdns9c5wwv60qfcn9llg0j6jz5ryd2qgsqqx2i6xkmp77c"))) + #:version "2024-05-30" + #:commit "ac4b301ae15223c98b51cd5a0eda2e2cf57c817b" + #:hash (base32 "0f4w56fc97clg13mmdghx84dh9xqmaqr3j672ppfh3h66gmmmvzs"))) (define-public pdpmake (package diff --git a/gnu/packages/patches/gnulib-bootstrap.patch b/gnu/packages/patches/gnulib-bootstrap.patch new file mode 100644 index 0000000000..c0c9a5e732 --- /dev/null +++ b/gnu/packages/patches/gnulib-bootstrap.patch @@ -0,0 +1,75 @@ +From adbf7ce2c2b03ce5ee25d4c68f9bb247b0dcbc2b Mon Sep 17 00:00:00 2001 +From: Maxim Cournoyer +Date: Thu, 30 May 2024 14:48:04 -0400 +Subject: [PATCH] bootstrap: Use gnulib-tool from PATH if available. + +Some distributions such as GNU Guix include in their package for +gnulib a 'gnulib-tool' command under their $bindir +prefix (e.g. '/bin') for users to use, along the unmodified full +sources. The idea is that any wrapping or distribution modifications +for the *execution* of the script at run time is done on these +commands, while the rest of the source should be in their +pristine (unmodified) version. Adjust the 'gnulib-tool' discovery +mechanism to support such installation layout. + +* build-aux/bootstrap (autogen) : Prefer to use from +PATH, else from $GNULIB_SRCDIR/../../bin/gnulib-tool, else from +$GNULIB_SRCDIR/gnulib-tool. +* gnulib-tool.sh (func_gnulib_dir): Honor GNULIB_SRCDIR to locate +gnulib's main directory. +--- + build-aux/bootstrap | 11 +++++++++-- + gnulib-tool.sh | 6 +++++- + 2 files changed, 14 insertions(+), 3 deletions(-) + +diff --git a/build-aux/bootstrap b/build-aux/bootstrap +index 6295b8a128..06271eea8b 100755 +--- a/build-aux/bootstrap ++++ b/build-aux/bootstrap +@@ -3,7 +3,7 @@ + + # Bootstrap this package from checked-out sources. + +-scriptversion=2024-04-13.15; # UTC ++scriptversion=2024-05-30.20; # UTC + + # Copyright (C) 2003-2024 Free Software Foundation, Inc. + # +@@ -1164,7 +1164,14 @@ autogen() + fi + + if $use_gnulib; then +- gnulib_tool=$GNULIB_SRCDIR/gnulib-tool ++ gnulib_tool=$(command -v gnulib-tool) ++ if test -x "$gnulib_tool"; then ++ : # done ++ elif test -x $GNULIB_SRCDIR/../../bin/gnulib-tool; then ++ gnulib_tool=$GNULIB_SRCDIR/../../bin/gnulib-tool ++ else ++ gnulib_tool=$GNULIB_SRCDIR/gnulib-tool ++ fi + <$gnulib_tool || return + fi + +diff --git a/gnulib-tool.sh b/gnulib-tool.sh +index 12f0b82461..0aefbe2b2b 100755 +--- a/gnulib-tool.sh ++++ b/gnulib-tool.sh +@@ -518,7 +518,11 @@ func_gnulib_dir () + * ) self_abspathname=`echo "$self_abspathname" | sed -e 's,/[^/]*$,,'`/"$linkval" ;; + esac + done +- gnulib_dir=`echo "$self_abspathname" | sed -e 's,/[^/]*$,,'` ++ if test -n "$GNULIB_SRCDIR"; then ++ gnulib_dir=$GNULIB_SRCDIR ++ else ++ gnulib_dir=`echo "$self_abspathname" | sed -e 's,/[^/]*$,,'` ++ fi + } + + # func_tmpdir + +base-commit: ac4b301ae15223c98b51cd5a0eda2e2cf57c817b +-- +2.41.0 +