* [bug#61790] [PATCH core-updates 0/5] Package cleanups: Guile, GnuTLS, ncurses @ 2023-02-25 18:55 Ludovic Courtès 2023-02-25 19:00 ` [bug#61790] [PATCH core-updates 1/5] gnu: guile: Remove input labels Ludovic Courtès 2023-02-25 22:14 ` [bug#61790] [PATCH core-updates 0/5] Package cleanups: Guile, GnuTLS, ncurses Ludovic Courtès 0 siblings, 2 replies; 12+ messages in thread From: Ludovic Courtès @ 2023-02-25 18:55 UTC (permalink / raw) To: 61790; +Cc: Ludovic Courtès, andreas Hello! Here’s a patch series that’s hopefully not too late, cleaning up core packages and thus introducing a world rebuild. I realize this will be annoying to people like Andreas who have been testing things much higher in the stack (Chromium!). What we could do is have ci.guix build more than the “core” subset (the current setting); it could build ‘etc/release-manifest.scm’, which contains things up to IceCat. Thoughts? Ludo’. Ludovic Courtès (5): gnu: guile: Remove input labels. gnu: gnutls: Remove Guile dependency. gnu: gnutls: Deprecate 'gnutls-latest'. gnu: gettext: Remove input label. gnu: ncurses: Rewrite using gexps. gnu/packages/base.scm | 4 +- gnu/packages/gettext.scm | 5 +- gnu/packages/guile.scm | 60 ++++---- gnu/packages/ncurses.scm | 301 +++++++++++++++++++-------------------- gnu/packages/tls.scm | 62 +++----- 5 files changed, 200 insertions(+), 232 deletions(-) base-commit: cb3332808f42beb4c08970ed792875ee145b715c -- 2.39.1 ^ permalink raw reply [flat|nested] 12+ messages in thread
* [bug#61790] [PATCH core-updates 1/5] gnu: guile: Remove input labels. 2023-02-25 18:55 [bug#61790] [PATCH core-updates 0/5] Package cleanups: Guile, GnuTLS, ncurses Ludovic Courtès @ 2023-02-25 19:00 ` Ludovic Courtès 2023-02-25 19:00 ` [bug#61790] [PATCH core-updates 2/5] gnu: gnutls: Remove Guile dependency Ludovic Courtès ` (3 more replies) 2023-02-25 22:14 ` [bug#61790] [PATCH core-updates 0/5] Package cleanups: Guile, GnuTLS, ncurses Ludovic Courtès 1 sibling, 4 replies; 12+ messages in thread From: Ludovic Courtès @ 2023-02-25 19:00 UTC (permalink / raw) To: 61790; +Cc: Ludovic Courtès, andreas * gnu/packages/base.scm (libiconv-if-needed): Remove input label. * gnu/packages/guile.scm (guile-2.0)[native-inputs, inputs] [propagated-inputs]: Remove labels. (guile-next)[native-inputs]: Change "self" to "guile". (make-guile-readline): Adjust 'inputs' and 'propagated-inputs' accordingly. --- gnu/packages/base.scm | 4 +-- gnu/packages/guile.scm | 60 ++++++++++++++++++++++-------------------- 2 files changed, 33 insertions(+), 31 deletions(-) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 558abf8492..2fcb02ffd9 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012-2022 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012-2023 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014, 2019 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> ;;; Copyright © 2014, 2015, 2016, 2018 Mark H Weaver <mhw@netris.org> @@ -1546,7 +1546,7 @@ (define* (libiconv-if-needed #:optional (target (%current-target-system))) ;; POSIX C libraries provide iconv. Platforms with an incomplete libc ;; without iconv, such as MinGW, must return the then clause. (if (target-mingw? target) - `(("libiconv" ,libiconv)) + (list libiconv) '())) (define-public (canonical-package package) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 92658a2d69..c2ffbefeec 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -157,32 +157,35 @@ (define-public guile-2.0 (build-system gnu-build-system) ;; When cross-compiling, a native version of Guile itself is needed. - (native-inputs `(,@(if (%current-target-system) - `(("self" ,this-package)) - '()) - ("pkgconfig" ,pkg-config))) - (inputs `(("libffi" ,libffi) - ,@(libiconv-if-needed) + (native-inputs + (append (list pkg-config) + (if (%current-target-system) + (list this-package) + '()))) + (inputs + (append (list libffi) + (libiconv-if-needed) - ;; We need Bash when cross-compiling because some of the scripts - ;; in bin/ refer to it. Use 'bash-minimal' because we don't need - ;; an interactive Bash with Readline and all. - ,@(if (target-mingw?) '() `(("bash" ,bash-minimal))))) + ;; We need Bash when cross-compiling because some of the scripts + ;; in bin/ refer to it. Use 'bash-minimal' because we don't need + ;; an interactive Bash with Readline and all. + (if (target-mingw?) '() (list bash-minimal)))) (propagated-inputs - `( ;; These ones aren't normally needed here, but since `libguile-2.0.la' - ;; reads `-lltdl -lunistring', adding them here will add the needed - ;; `-L' flags. As for why the `.la' file lacks the `-L' flags, see - ;; <http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/18903>. - ("libunistring" ,libunistring) + (list + ;; These ones aren't normally needed here, but since `libguile-2.0.la' + ;; reads `-lltdl -lunistring', adding them here will add the needed + ;; `-L' flags. As for why the `.la' file lacks the `-L' flags, see + ;; <http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/18903>. + libunistring - ;; Depend on LIBLTDL, not LIBTOOL. That way, we avoid some the extra - ;; dependencies that LIBTOOL has, which is helpful during bootstrap. - ("libltdl" ,libltdl) + ;; Depend on LIBLTDL, not LIBTOOL. That way, we avoid some the extra + ;; dependencies that LIBTOOL has, which is helpful during bootstrap. + libltdl - ;; The headers and/or `guile-2.0.pc' refer to these packages, so they - ;; must be propagated. - ("bdw-gc" ,libgc) - ("gmp" ,gmp))) + ;; The headers and/or `guile-2.0.pc' refer to these packages, so they + ;; must be propagated. + libgc + gmp)) (outputs '("out" "debug")) @@ -247,7 +250,8 @@ (define-public guile-2.0 (license license:lgpl3+))) (define-public guile-2.2 - (package (inherit guile-2.0) + (package + (inherit guile-2.0) (name "guile") (version "2.2.7") (source (origin @@ -453,7 +457,7 @@ (define-public guile-next gnu-gettext texinfo gperf) - (replace "self" this-package))) + (replace "guile" this-package))) (synopsis "Development version of GNU Guile")))) (define* (make-guile-readline guile #:optional (name "guile-readline")) @@ -501,11 +505,9 @@ (define* (make-guile-readline guile #:optional (name "guile-readline")) #t))))) (home-page (package-home-page guile)) (native-inputs (package-native-inputs guile)) - (inputs - `(,@(package-inputs guile) ;to placate 'configure' - ,@(package-propagated-inputs guile) - ("guile" ,guile) - ("readline" ,readline))) + (propagated-inputs (package-propagated-inputs guile)) + (inputs (modify-inputs (package-inputs guile) + (prepend guile readline))) (synopsis "Line editing support for GNU Guile") (description "This module provides line editing support via the Readline library for -- 2.39.1 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* [bug#61790] [PATCH core-updates 2/5] gnu: gnutls: Remove Guile dependency. 2023-02-25 19:00 ` [bug#61790] [PATCH core-updates 1/5] gnu: guile: Remove input labels Ludovic Courtès @ 2023-02-25 19:00 ` Ludovic Courtès 2023-02-25 19:00 ` [bug#61790] [PATCH core-updates 3/5] gnu: gnutls: Deprecate 'gnutls-latest' Ludovic Courtès ` (2 subsequent siblings) 3 siblings, 0 replies; 12+ messages in thread From: Ludovic Courtès @ 2023-02-25 19:00 UTC (permalink / raw) To: 61790; +Cc: Ludovic Courtès, andreas * gnu/packages/tls.scm (gnutls)[arguments]: Remove --with-guile-* configure flags. [native-inputs]: Remove GUILE-3.0. [inputs]: Likewise, and add LIBUNISTRING. (gnutls-latest)[inputs, native-inputs]: Remove. (guile2.2-gnutls): Rewrite as a variant of GUILE-GNUTLS. --- gnu/packages/tls.scm | 42 +++++++++++++----------------------------- 1 file changed, 13 insertions(+), 29 deletions(-) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 9b2669e095..7a85cfe5bc 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012-2017, 2019-2022 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012-2017, 2019-2023 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2021 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net> ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr> @@ -232,15 +232,6 @@ (define-public gnutls ;; independently. This seems suboptimal. "--with-default-trust-store-dir=/etc/ssl/certs" - ;; Tell the build system that we want Guile bindings installed to - ;; the output instead of Guiles own module directory. - (string-append "--with-guile-site-dir=" - "$(datarootdir)/guile/site/$(GUILE_EFFECTIVE_VERSION)") - (string-append "--with-guile-site-ccache-dir=" - "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache") - (string-append "--with-guile-extension-dir=" - "$(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/extensions") - (let ((system #$(or (%current-target-system) (%current-system)))) (if (string-prefix? "mips64el" system) @@ -276,17 +267,13 @@ (define-public gnutls (native-inputs (append (list pkg-config texinfo which util-linux) ;one test needs 'setsid' - (if (%current-target-system) ;for cross-build - (list guile-3.0) ;to create .go files - '()) (if (hurd-target?) '() (list net-tools iproute ;for 'ss' socat ;several tests rely on it datefudge)))) ;tests rely on 'datefudge' - (inputs - (list guile-3.0)) + (inputs (list libunistring)) (propagated-inputs ;; These are all in the 'Requires.private' field of gnutls.pc. (append (list libtasn1 libidn2 nettle zlib) @@ -319,14 +306,7 @@ (define-public gnutls-latest "gnutls-cross.patch")) (sha256 (base32 - "01i1gl15k6qwvxmxx0by1mn9nlmcmym18wdpm7dn9awfsp8474dy")))) - - ;; Disable Guile bindings: they are now provided by Guile-GnuTLS. - (inputs (modify-inputs (package-inputs gnutls) - (delete "guile") - (append libunistring))) ;GnuTLS depends on it - (native-inputs (modify-inputs (package-native-inputs gnutls) - (delete "guile"))))) + "01i1gl15k6qwvxmxx0by1mn9nlmcmym18wdpm7dn9awfsp8474dy")))))) (define-public gnutls/dane ;; GnuTLS with build libgnutls-dane, implementing DNS-based @@ -338,12 +318,6 @@ (define-public gnutls/dane (inputs (modify-inputs (package-inputs gnutls) (prepend unbound))))) -(define-public guile2.2-gnutls - (package/inherit gnutls - (name "guile2.2-gnutls") - (inputs (modify-inputs (package-inputs gnutls) - (replace "guile" guile-2.2))))) - (define-public guile-gnutls (package ;; This package supersedes the Guile bindings that came with GnuTLS until @@ -407,6 +381,16 @@ (define-public guile-gnutls bindings that were formerly provided as part of GnuTLS.") (license license:lgpl2.1+))) +(define-public guile2.2-gnutls + (package/inherit guile-gnutls + (name "guile2.2-gnutls") + (native-inputs + (modify-inputs (package-native-inputs guile-gnutls) + (replace "guile" guile-2.2))) + (inputs + (modify-inputs (package-inputs guile-gnutls) + (replace "guile" guile-2.2))))) + (define (target->openssl-target target) "Return the value to set CONFIGURE_TARGET_ARCH to when cross-compiling OpenSSL for TARGET." -- 2.39.1 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* [bug#61790] [PATCH core-updates 3/5] gnu: gnutls: Deprecate 'gnutls-latest'. 2023-02-25 19:00 ` [bug#61790] [PATCH core-updates 1/5] gnu: guile: Remove input labels Ludovic Courtès 2023-02-25 19:00 ` [bug#61790] [PATCH core-updates 2/5] gnu: gnutls: Remove Guile dependency Ludovic Courtès @ 2023-02-25 19:00 ` Ludovic Courtès 2023-02-25 19:00 ` [bug#61790] [PATCH core-updates 4/5] gnu: gettext: Remove input label Ludovic Courtès 2023-02-25 19:00 ` [bug#61790] [PATCH core-updates 5/5] gnu: ncurses: Rewrite using gexps Ludovic Courtès 3 siblings, 0 replies; 12+ messages in thread From: Ludovic Courtès @ 2023-02-25 19:00 UTC (permalink / raw) To: 61790; +Cc: Ludovic Courtès, andreas * gnu/packages/tls.scm (gnutls-latest): Define as a deprecated alias for 'gnutls'. (guile-gnutls)[inputs, native-inputs]: Replace 'gnutls-latest' with 'gnutls'. --- gnu/packages/tls.scm | 22 +++++----------------- 1 file changed, 5 insertions(+), 17 deletions(-) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 7a85cfe5bc..e5e21b5498 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -40,6 +40,7 @@ (define-module (gnu packages tls) #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix deprecation) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) @@ -293,20 +294,7 @@ (define-public gnutls (properties '((ftp-server . "ftp.gnutls.org") (ftp-directory . "/gcrypt/gnutls"))))) -(define-public gnutls-latest - (package - (inherit gnutls) - (version "3.7.7") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnupg/gnutls/v" - (version-major+minor version) - "/gnutls-" version ".tar.xz")) - (patches (search-patches "gnutls-skip-trust-store-test.patch" - "gnutls-cross.patch")) - (sha256 - (base32 - "01i1gl15k6qwvxmxx0by1mn9nlmcmym18wdpm7dn9awfsp8474dy")))))) +(define-deprecated/public-alias gnutls-latest gnutls) (define-public gnutls/dane ;; GnuTLS with build libgnutls-dane, implementing DNS-based @@ -363,14 +351,14 @@ (define-public guile-gnutls libtool pkg-config texinfo - gnutls-latest ;XXX: 'guile-snarf' invokes the native 'cpp' - guile-3.0 + gnutls + guile-3.0 ;XXX: 'guile-snarf' invokes the native 'cpp' (gnulib-checkout #:version "2022-12-06" #:commit "440b528b1d81dd31b2a2e4dde20d5c837c147811" #:hash (base32 "15mq43abbnkbamchc9lynrvrd5ql8qacgyx2ph4kkngxf1bz3pqy")))) (inputs - (list gnutls-latest + (list gnutls guile-3.0)) (properties '((release-tag-prefix . "v") (release-tag-version-delimiter . "."))) -- 2.39.1 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* [bug#61790] [PATCH core-updates 4/5] gnu: gettext: Remove input label. 2023-02-25 19:00 ` [bug#61790] [PATCH core-updates 1/5] gnu: guile: Remove input labels Ludovic Courtès 2023-02-25 19:00 ` [bug#61790] [PATCH core-updates 2/5] gnu: gnutls: Remove Guile dependency Ludovic Courtès 2023-02-25 19:00 ` [bug#61790] [PATCH core-updates 3/5] gnu: gnutls: Deprecate 'gnutls-latest' Ludovic Courtès @ 2023-02-25 19:00 ` Ludovic Courtès 2023-02-25 19:00 ` [bug#61790] [PATCH core-updates 5/5] gnu: ncurses: Rewrite using gexps Ludovic Courtès 3 siblings, 0 replies; 12+ messages in thread From: Ludovic Courtès @ 2023-02-25 19:00 UTC (permalink / raw) To: 61790; +Cc: Ludovic Courtès, andreas * gnu/packages/gettext.scm (gnu-gettext)[native-inputs]: Remove label. --- gnu/packages/gettext.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gnu/packages/gettext.scm b/gnu/packages/gettext.scm index 0cc424acae..193786028b 100644 --- a/gnu/packages/gettext.scm +++ b/gnu/packages/gettext.scm @@ -169,9 +169,8 @@ (define-public gnu-gettext (with-directory-excursion (string-append (assoc-ref outputs "out") "/share/emacs/site-lisp") - (symlink "start-po.el" "gettext-autoloads.el") - #t))))))) - (native-inputs `(("emacs" ,emacs-minimal))) ; for Emacs tools + (symlink "start-po.el" "gettext-autoloads.el")))))))) + (native-inputs (list emacs-minimal)) ;for Emacs tools (synopsis "Tools and documentation for translation"))) (define-public libtextstyle -- 2.39.1 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* [bug#61790] [PATCH core-updates 5/5] gnu: ncurses: Rewrite using gexps. 2023-02-25 19:00 ` [bug#61790] [PATCH core-updates 1/5] gnu: guile: Remove input labels Ludovic Courtès ` (2 preceding siblings ...) 2023-02-25 19:00 ` [bug#61790] [PATCH core-updates 4/5] gnu: gettext: Remove input label Ludovic Courtès @ 2023-02-25 19:00 ` Ludovic Courtès 3 siblings, 0 replies; 12+ messages in thread From: Ludovic Courtès @ 2023-02-25 19:00 UTC (permalink / raw) To: 61790; +Cc: Ludovic Courtès, andreas * gnu/packages/ncurses.scm (ncurses-rollup-patch): New procedure. (ncurses)[arguments]: Rewrite using gexps. [native-inputs]: Remove labels and remove "rollup-patch" input. (ncurses/gpm, ncurses/tinfo): Rewrite using gexps and remove input label. --- gnu/packages/ncurses.scm | 301 +++++++++++++++++++-------------------- 1 file changed, 148 insertions(+), 153 deletions(-) diff --git a/gnu/packages/ncurses.scm b/gnu/packages/ncurses.scm index 5b00da25bb..a191c29854 100644 --- a/gnu/packages/ncurses.scm +++ b/gnu/packages/ncurses.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012, 2013, 2014, 2015, 2017, 2018, 2019, 2023 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014, 2016 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015, 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016 Nikita <nikita@n0.is> @@ -27,6 +27,7 @@ (define-module (gnu packages ncurses) #:use-module (gnu packages) #:use-module (guix licenses) + #:use-module (guix gexp) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu) @@ -37,8 +38,22 @@ (define-module (gnu packages ncurses) #:use-module (gnu packages swig) #:use-module (gnu packages linux) #:use-module (guix utils) + #:use-module ((guix memoization) #:select (mlambda)) #:use-module (ice-9 match)) +(define ncurses-rollup-patch + (mlambda (version) + (origin + (method url-fetch) + (uri (match (string-split (version-major+minor+point version) #\.) + ((major minor point) + (string-append "https://invisible-mirror.net/archives" + "/ncurses/" major "." minor "/ncurses-" + major "." minor "-" point "-patch.sh.bz2")))) + (sha256 + (base32 + "1b6522cvi4066bgh9lp93q8lk93zcjjssvnw1512z447xvazy2y6"))))) + (define-public ncurses (package (name "ncurses") @@ -56,170 +71,152 @@ (define-public ncurses "doc")) ;1 MiB of man pages (arguments (let ((patch-makefile-phase - '(lambda _ - (for-each patch-makefile-SHELL - (find-files "." "Makefile.in")))) + #~(lambda _ + (for-each patch-makefile-SHELL + (find-files "." "Makefile.in")))) (configure-phase ;; The 'configure' script does not understand '--docdir', so we must ;; override that and use '--mandir' instead. - '(lambda* (#:key build target outputs configure-flags - #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (doc (assoc-ref outputs "doc"))) - (apply invoke "./configure" - (string-append "SHELL=" (which "sh")) - (string-append "--build=" build) - (string-append "--prefix=" out) - (string-append "--mandir=" doc "/share/man") - (if target - (cons (string-append "--host=" target) - configure-flags) - configure-flags))))) + #~(lambda* (#:key build target outputs configure-flags + #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (doc (assoc-ref outputs "doc"))) + (apply invoke "./configure" + (string-append "SHELL=" (which "sh")) + (string-append "--build=" build) + (string-append "--prefix=" out) + (string-append "--mandir=" doc "/share/man") + (if target + (cons (string-append "--host=" target) + configure-flags) + configure-flags))))) (apply-rollup-patch-phase ;; Ncurses distributes "stable" patchsets to be applied on top ;; of the release tarball. These are only available as shell ;; scripts(!) so we decompress and apply them in a phase. ;; See <https://invisible-mirror.net/archives/ncurses/6.1/README>. - '(lambda* (#:key inputs native-inputs #:allow-other-keys) - (let ((rollup-patch (assoc-ref (or native-inputs inputs) - "rollup-patch"))) - (when rollup-patch - (copy-file rollup-patch - (string-append (getcwd) "/rollup-patch.sh.bz2")) - (invoke "bzip2" "-d" "rollup-patch.sh.bz2") - (invoke "sh" "rollup-patch.sh"))))) + #~(lambda* (#:key inputs native-inputs #:allow-other-keys) + (let ((rollup-patch #$(ncurses-rollup-patch + (package-version this-package)))) + (copy-file rollup-patch + (string-append (getcwd) "/rollup-patch.sh.bz2")) + (invoke "bzip2" "-d" "rollup-patch.sh.bz2") + (invoke "sh" "rollup-patch.sh")))) (remove-shebang-phase - '(lambda _ - ;; To avoid retaining a reference to the bootstrap Bash via the - ;; shebang of the 'ncursesw6-config' script, simply remove that - ;; shebang: it'll work just as well without it. Likewise, do not - ;; retain a reference to the "doc" output. - (substitute* "misc/ncurses-config.in" - (("#!@SHELL@") - "# No shebang here, use /bin/sh!\n") - (("@SHELL@ \\$0") - "$0") - (("mandir=.*$") - "mandir=share/man")))) + #~(lambda _ + ;; To avoid retaining a reference to the bootstrap Bash via the + ;; shebang of the 'ncursesw6-config' script, simply remove that + ;; shebang: it'll work just as well without it. Likewise, do not + ;; retain a reference to the "doc" output. + (substitute* "misc/ncurses-config.in" + (("#!@SHELL@") + "# No shebang here, use /bin/sh!\n") + (("@SHELL@ \\$0") + "$0") + (("mandir=.*$") + "mandir=share/man")))) (post-install-phase - `(lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - ;; When building a wide-character (Unicode) build, create backward - ;; compatibility links from the the "normal" libraries to the - ;; wide-character ones (e.g. libncurses.so to libncursesw.so). - ,@(if (target-mingw?) - '( ;; TODO: create .la files to link to the .dll? - (with-directory-excursion (string-append out "/bin") - (for-each - (lambda (lib) - (define lib.dll - (string-append "lib" lib ".dll")) - (define libw6.dll - (string-append "lib" lib "w6.dll")) + #~(lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + ;; When building a wide-character (Unicode) build, create backward + ;; compatibility links from the the "normal" libraries to the + ;; wide-character ones (e.g. libncurses.so to libncursesw.so). + #$@(if (target-mingw?) + '( ;; TODO: create .la files to link to the .dll? + (with-directory-excursion (string-append out "/bin") + (for-each + (lambda (lib) + (define lib.dll + (string-append "lib" lib ".dll")) + (define libw6.dll + (string-append "lib" lib "w6.dll")) - (when (file-exists? libw6.dll) - (format #t "creating symlinks for `lib~a'~%" lib) - (symlink libw6.dll lib.dll))) - '("curses" "ncurses" "form" "panel" "menu")))) - '()) - (with-directory-excursion (string-append out "/lib") - (for-each (lambda (lib) - (define libw.a - (string-append "lib" lib "w.a")) - (define lib.a - (string-append "lib" lib ".a")) + (when (file-exists? libw6.dll) + (format #t "creating symlinks for `lib~a'~%" lib) + (symlink libw6.dll lib.dll))) + '("curses" "ncurses" "form" "panel" "menu")))) + #~()) + (with-directory-excursion (string-append out "/lib") + (for-each (lambda (lib) + (define libw.a + (string-append "lib" lib "w.a")) + (define lib.a + (string-append "lib" lib ".a")) - ,@(if (not (target-mingw?)) - '((define libw.so.x - (string-append "lib" lib "w.so.6")) - (define lib.so.x - (string-append "lib" lib ".so.6")) - (define lib.so - (string-append "lib" lib ".so")) - (define packagew.pc - (string-append lib "w.pc")) - (define package.pc - (string-append lib ".pc"))) - '()) + #$@(if (not (target-mingw?)) + #~((define libw.so.x + (string-append "lib" lib "w.so.6")) + (define lib.so.x + (string-append "lib" lib ".so.6")) + (define lib.so + (string-append "lib" lib ".so")) + (define packagew.pc + (string-append lib "w.pc")) + (define package.pc + (string-append lib ".pc"))) + #~()) - (when (file-exists? libw.a) - (format #t "creating symlinks for `lib~a'~%" lib) - (symlink libw.a lib.a) - ,@(if (not (target-mingw?)) - '((symlink libw.so.x lib.so.x) - (false-if-exception (delete-file lib.so)) - (call-with-output-file lib.so - (lambda (p) - (format p "INPUT (-l~aw)~%" lib))) - (with-directory-excursion "pkgconfig" - (format #t "creating symlink for `~a'~%" - package.pc) - (when (file-exists? packagew.pc) - (symlink packagew.pc package.pc)))) - '()))) - '("curses" "ncurses" "form" "panel" "menu"))))))) - `(#:configure-flags - ,(cons* - 'quasiquote - `(("--with-shared" "--without-debug" "--enable-widec" + (when (file-exists? libw.a) + (format #t "creating symlinks for `lib~a'~%" lib) + (symlink libw.a lib.a) + #$@(if (not (target-mingw?)) + '((symlink libw.so.x lib.so.x) + (false-if-exception (delete-file lib.so)) + (call-with-output-file lib.so + (lambda (p) + (format p "INPUT (-l~aw)~%" lib))) + (with-directory-excursion "pkgconfig" + (format #t "creating symlink for `~a'~%" + package.pc) + (when (file-exists? packagew.pc) + (symlink packagew.pc package.pc)))) + #~()))) + '("curses" "ncurses" "form" "panel" "menu"))))))) + (list #:configure-flags + #~`("--with-shared" "--without-debug" "--enable-widec" - "--enable-pc-files" - ,(list 'unquote '(string-append "--with-pkg-config-libdir=" - (assoc-ref %outputs "out") - "/lib/pkgconfig")) + "--enable-pc-files" + ,(string-append "--with-pkg-config-libdir=" + #$output "/lib/pkgconfig") - ;; By default headers land in an `ncursesw' subdir, which is not - ;; what users expect. - ,(list 'unquote '(string-append "--includedir=" (assoc-ref %outputs "out") - "/include")) - "--enable-overwrite" ;really honor --includedir + ;; By default headers land in an `ncursesw' subdir, which is not + ;; what users expect. + ,(string-append "--includedir=" #$output "/include") + "--enable-overwrite" ;really honor --includedir - ;; Make sure programs like 'tic', 'reset', and 'clear' have a - ;; correct RUNPATH. - ,(list 'unquote '(string-append "LDFLAGS=-Wl,-rpath=" (assoc-ref %outputs "out") - "/lib")) + ;; Make sure programs like 'tic', 'reset', and 'clear' have a + ;; correct RUNPATH. + ,(string-append "LDFLAGS=-Wl,-rpath=" #$output "/lib") - ;; Starting from ncurses 6.1, "make install" runs "install -s" - ;; by default, which doesn't work for cross-compiled binaries - ;; because it invokes 'strip' instead of 'TRIPLET-strip'. Work - ;; around this. - ,@(if (%current-target-system) '("--disable-stripping") '()) + ;; Starting from ncurses 6.1, "make install" runs "install -s" + ;; by default, which doesn't work for cross-compiled binaries + ;; because it invokes 'strip' instead of 'TRIPLET-strip'. Work + ;; around this. + #$@(if (%current-target-system) #~("--disable-stripping") #~()) - ;; Do not assume a default search path in ld, even if it is only to - ;; filter it out in ncurses-config. Mainly because otherwise it ends - ;; up using the libdir from binutils, which makes little sense and - ;; causes an unnecessary runtime dependency. - "cf_cv_ld_searchpath=/no-ld-searchpath" + ;; Do not assume a default search path in ld, even if it is only to + ;; filter it out in ncurses-config. Mainly because otherwise it ends + ;; up using the libdir from binutils, which makes little sense and + ;; causes an unnecessary runtime dependency. + "cf_cv_ld_searchpath=/no-ld-searchpath" - ;; MinGW: Use term-driver created for the MinGW port. - ,@(if (target-mingw?) '("--enable-term-driver") '())))) - #:tests? #f ; no "check" target - #:phases (modify-phases %standard-phases - (add-after 'unpack 'apply-rollup-patch - ,apply-rollup-patch-phase) - (replace 'configure ,configure-phase) - (add-after 'install 'post-install - ,post-install-phase) - (add-before 'configure 'patch-makefile-SHELL - ,patch-makefile-phase) - (add-before 'patch-source-shebangs 'remove-unneeded-shebang - ,remove-shebang-phase))))) + ;; MinGW: Use term-driver created for the MinGW port. + #$@(if (target-mingw?) #~("--enable-term-driver") #~())) + #:tests? #f ; no "check" target + #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'apply-rollup-patch + #$apply-rollup-patch-phase) + (replace 'configure #$configure-phase) + (add-after 'install 'post-install + #$post-install-phase) + (add-before 'configure 'patch-makefile-SHELL + #$patch-makefile-phase) + (add-before 'patch-source-shebangs 'remove-unneeded-shebang + #$remove-shebang-phase))))) (native-inputs - `(,@(if (%current-target-system) - `(("self" ,this-package)) ;for `tic' - '()) - ("rollup-patch" - ,(origin - (method url-fetch) - (uri (match (string-split (version-major+minor+point version) #\.) - ((major minor point) - (string-append "https://invisible-mirror.net/archives" - "/ncurses/" major "." minor "/ncurses-" - major "." minor "-" point "-patch.sh.bz2")))) - (sha256 - (base32 - "1b6522cvi4066bgh9lp93q8lk93zcjjssvnw1512z447xvazy2y6")))) - ("pkg-config" ,pkg-config))) + (if (%current-target-system) + (list pkg-config this-package) ;for 'tic' + (list pkg-config))) (native-search-paths (list (search-path-specification (variable "TERMINFO_DIRS") @@ -240,12 +237,11 @@ (define-public ncurses/gpm (arguments (substitute-keyword-arguments (package-arguments ncurses) ((#:configure-flags cf) - `(cons (string-append "--with-gpm=" - (assoc-ref %build-inputs "gpm") - "/lib/libgpm.so.2") - ,cf)))) - (inputs - `(("gpm" ,gpm))))) + #~(cons (string-append "--with-gpm=" + #$(this-package-input "gpm") + "/lib/libgpm.so.2") + #$cf)))) + (inputs (list gpm)))) ;; Needed by u-boot 2022.04+ ;; Consider merging into ncurses for next core-updates cycle. @@ -255,8 +251,7 @@ (define-public ncurses/tinfo (arguments (substitute-keyword-arguments (package-arguments ncurses) ((#:configure-flags cf) - `(cons "--with-termlib=tinfo" - ,cf)))))) + #~(cons "--with-termlib=tinfo" #$cf)))))) (define-public dialog (package -- 2.39.1 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* [bug#61790] [PATCH core-updates 0/5] Package cleanups: Guile, GnuTLS, ncurses 2023-02-25 18:55 [bug#61790] [PATCH core-updates 0/5] Package cleanups: Guile, GnuTLS, ncurses Ludovic Courtès 2023-02-25 19:00 ` [bug#61790] [PATCH core-updates 1/5] gnu: guile: Remove input labels Ludovic Courtès @ 2023-02-25 22:14 ` Ludovic Courtès 2023-02-26 12:29 ` Andreas Enge 2023-02-26 12:31 ` [bug#61790] " Andreas Enge 1 sibling, 2 replies; 12+ messages in thread From: Ludovic Courtès @ 2023-02-25 22:14 UTC (permalink / raw) To: 61790 Cc: Josselin Poiret, Tobias Geerinckx-Rice, Simon Tournier, Mathieu Othacehe, Ludovic Courtès, Christopher Baines, Ricardo Wurmus, andreas Hey! I passed a long list of ‘--add-header="X-Debbugs-Cc: …"’ flags to ‘git format-patch’ in an attempt to reach the whole ‘core’ team + Andreas, but it turns out that only the last ‘--add-header’ option had an effect (or rather it overrode all the previous occurrences). We really need to provide reliable instructions for teams. Anyway, here’s a patch set! https://issues.guix.gnu.org/61790 Ludo’. Ludovic Courtès <ludo@gnu.org> skribis: > Hello! > > Here’s a patch series that’s hopefully not too late, cleaning up core > packages and thus introducing a world rebuild. > > I realize this will be annoying to people like Andreas who have been > testing things much higher in the stack (Chromium!). What we could do > is have ci.guix build more than the “core” subset (the current setting); > it could build ‘etc/release-manifest.scm’, which contains things up > to IceCat. > > Thoughts? > > Ludo’. > > Ludovic Courtès (5): > gnu: guile: Remove input labels. > gnu: gnutls: Remove Guile dependency. > gnu: gnutls: Deprecate 'gnutls-latest'. > gnu: gettext: Remove input label. > gnu: ncurses: Rewrite using gexps. > > gnu/packages/base.scm | 4 +- > gnu/packages/gettext.scm | 5 +- > gnu/packages/guile.scm | 60 ++++---- > gnu/packages/ncurses.scm | 301 +++++++++++++++++++-------------------- > gnu/packages/tls.scm | 62 +++----- > 5 files changed, 200 insertions(+), 232 deletions(-) > > > base-commit: cb3332808f42beb4c08970ed792875ee145b715c ^ permalink raw reply [flat|nested] 12+ messages in thread
* [bug#61790] [PATCH core-updates 0/5] Package cleanups: Guile, GnuTLS, ncurses 2023-02-25 22:14 ` [bug#61790] [PATCH core-updates 0/5] Package cleanups: Guile, GnuTLS, ncurses Ludovic Courtès @ 2023-02-26 12:29 ` Andreas Enge 2023-02-26 17:16 ` Ludovic Courtès 2023-02-26 12:31 ` [bug#61790] " Andreas Enge 1 sibling, 1 reply; 12+ messages in thread From: Andreas Enge @ 2023-02-26 12:29 UTC (permalink / raw) To: Ludovic Courtès Cc: Josselin Poiret, Tobias Geerinckx-Rice, Simon Tournier, Mathieu Othacehe, Christopher Baines, Ricardo Wurmus, 61790 Am Sat, Feb 25, 2023 at 11:14:16PM +0100 schrieb Ludovic Courtès: > Here’s a patch series that’s hopefully not too late, cleaning up core > packages and thus introducing a world rebuild. I am not too worried about a world rebuild, but more about introducing new build failures, leading to indefinite delays. At first glance, the patches do not look like they have a high risk, but who knows? ^ permalink raw reply [flat|nested] 12+ messages in thread
* [bug#61790] [PATCH core-updates 0/5] Package cleanups: Guile, GnuTLS, ncurses 2023-02-26 12:29 ` Andreas Enge @ 2023-02-26 17:16 ` Ludovic Courtès 2023-02-26 17:25 ` Andreas Enge 0 siblings, 1 reply; 12+ messages in thread From: Ludovic Courtès @ 2023-02-26 17:16 UTC (permalink / raw) To: Andreas Enge Cc: Josselin Poiret, Christopher Baines, Simon Tournier, Mathieu Othacehe, Tobias Geerinckx-Rice, Ricardo Wurmus, 61790 Hello! Andreas Enge <andreas@enge.fr> skribis: > I am not too worried about a world rebuild, but more about introducing new > build failures, leading to indefinite delays. At first glance, the patches > do not look like they have a high risk, but who knows? […] > Maybe it would be safer to leave them out for the moment, and to start > a feature branch "core" right after the core-updates merge? There’s always a risk of course, though I think it’s pretty low in this case (I built everything up to guile{,2.2}-gnutls, which includes like 8h spent in ‘nss’ tests). Removing the dependency of GnuTLS on Guile is the most desirable part; the rest is more cosmetic. We can delay that until after ‘core-updates’ too, but that might take a while since <https://ci.guix.gnu.org/eval/228947/dashboard> stills shows quite a bit of red. :-) Thoughts? Tough choices! Ludo’. ^ permalink raw reply [flat|nested] 12+ messages in thread
* [bug#61790] [PATCH core-updates 0/5] Package cleanups: Guile, GnuTLS, ncurses 2023-02-26 17:16 ` Ludovic Courtès @ 2023-02-26 17:25 ` Andreas Enge 2023-02-26 21:50 ` bug#61790: " Ludovic Courtès 0 siblings, 1 reply; 12+ messages in thread From: Andreas Enge @ 2023-02-26 17:25 UTC (permalink / raw) To: Ludovic Courtès Cc: Josselin Poiret, Christopher Baines, Simon Tournier, Mathieu Othacehe, Tobias Geerinckx-Rice, Ricardo Wurmus, 61790 Am Sun, Feb 26, 2023 at 06:16:46PM +0100 schrieb Ludovic Courtès: > There’s always a risk of course, though I think it’s pretty low in this > case (I built everything up to guile{,2.2}-gnutls, which includes like > 8h spent in ‘nss’ tests). Removing the dependency of GnuTLS on Guile is > the most desirable part; the rest is more cosmetic. Okay, if you tried it locally, then I think we can take the risk. Andreas ^ permalink raw reply [flat|nested] 12+ messages in thread
* bug#61790: [PATCH core-updates 0/5] Package cleanups: Guile, GnuTLS, ncurses 2023-02-26 17:25 ` Andreas Enge @ 2023-02-26 21:50 ` Ludovic Courtès 0 siblings, 0 replies; 12+ messages in thread From: Ludovic Courtès @ 2023-02-26 21:50 UTC (permalink / raw) To: Andreas Enge Cc: Josselin Poiret, Christopher Baines, Simon Tournier, Mathieu Othacehe, Tobias Geerinckx-Rice, Ricardo Wurmus, 61790-done Andreas Enge <andreas@enge.fr> skribis: > Am Sun, Feb 26, 2023 at 06:16:46PM +0100 schrieb Ludovic Courtès: >> There’s always a risk of course, though I think it’s pretty low in this >> case (I built everything up to guile{,2.2}-gnutls, which includes like >> 8h spent in ‘nss’ tests). Removing the dependency of GnuTLS on Guile is >> the most desirable part; the rest is more cosmetic. > > Okay, if you tried it locally, then I think we can take the risk. Alright, pushed as 4895846197bd445dd68c832364c667dea4337f8c. Thank you for your understanding! :-) Ludo’. ^ permalink raw reply [flat|nested] 12+ messages in thread
* [bug#61790] [PATCH core-updates 0/5] Package cleanups: Guile, GnuTLS, ncurses 2023-02-25 22:14 ` [bug#61790] [PATCH core-updates 0/5] Package cleanups: Guile, GnuTLS, ncurses Ludovic Courtès 2023-02-26 12:29 ` Andreas Enge @ 2023-02-26 12:31 ` Andreas Enge 1 sibling, 0 replies; 12+ messages in thread From: Andreas Enge @ 2023-02-26 12:31 UTC (permalink / raw) To: Ludovic Courtès Cc: Josselin Poiret, Tobias Geerinckx-Rice, Simon Tournier, Mathieu Othacehe, Christopher Baines, Ricardo Wurmus, 61790 Maybe it would be safer to leave them out for the moment, and to start a feature branch "core" right after the core-updates merge? In any case, having a CI job would be very welcome, so that people could more easily test packages closer to the leaves than the root of the package graph. Andreas ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2023-02-26 21:51 UTC | newest] Thread overview: 12+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-02-25 18:55 [bug#61790] [PATCH core-updates 0/5] Package cleanups: Guile, GnuTLS, ncurses Ludovic Courtès 2023-02-25 19:00 ` [bug#61790] [PATCH core-updates 1/5] gnu: guile: Remove input labels Ludovic Courtès 2023-02-25 19:00 ` [bug#61790] [PATCH core-updates 2/5] gnu: gnutls: Remove Guile dependency Ludovic Courtès 2023-02-25 19:00 ` [bug#61790] [PATCH core-updates 3/5] gnu: gnutls: Deprecate 'gnutls-latest' Ludovic Courtès 2023-02-25 19:00 ` [bug#61790] [PATCH core-updates 4/5] gnu: gettext: Remove input label Ludovic Courtès 2023-02-25 19:00 ` [bug#61790] [PATCH core-updates 5/5] gnu: ncurses: Rewrite using gexps Ludovic Courtès 2023-02-25 22:14 ` [bug#61790] [PATCH core-updates 0/5] Package cleanups: Guile, GnuTLS, ncurses Ludovic Courtès 2023-02-26 12:29 ` Andreas Enge 2023-02-26 17:16 ` Ludovic Courtès 2023-02-26 17:25 ` Andreas Enge 2023-02-26 21:50 ` bug#61790: " Ludovic Courtès 2023-02-26 12:31 ` [bug#61790] " Andreas Enge
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/guix.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.