Message ID | 3094ea0169f5d37b90a1fccb4d495bdaa6ab6158.1725174170.git.atai@atai.org |
---|---|
State | New |
Headers | show |
Series | [bug#72885,v2] gnu: screen: Update to 5.0.0 | expand |
Hello, Andy Tai <atai@atai.org> skribis: > * gnu/packages/patches/screen-hurd-path-max.patch: Update for screen 5.0.0. > * gnu/packages/screen.scm (screen): Update to 5.0.0. > [arguments]<#:configure-flags: Add "CFLAGS=-D_GNU_SOURCE=1". > [inputs]: Add linux-pam. > > Change-Id: Iebc5eff0128ff7f4d27a22cca1bd4a025aca3244 [...] > -+ * Define PATH_MAX to 4096 if it's not defined, like on GNU/Hurd Did you confirm that it still builds for GNU/Hurd? You can test by cross-compiling with ‘--target=i586-pc-gnu’ or by compiling natively, if you have configured the ‘hurd-vm’ service, with ‘--system=i586-gnu’. > (arguments > `(#:configure-flags > + ;; GNU_SOURCE must be defined for mallocmock_reset() to be defined > + '("CFLAGS=-D_GNU_SOURCE=1" This very likely removes the default flags, “-O2 -g”, which is something we should not do (we’d get an unoptimized build and ‘--with-debug-info’ wouldn’t have the intended effect). I think you need to have: "CFLAGS=-O2 -g -D_GNU_SOURCE=1" instead. Please check the build log to make sure it has the intended effect. Could you send an updated patch? Thanks, Ludo’.
Updated patch sent, CFLAGS updated, Hurd cross compiling OK. On Tue, Sep 3, 2024 at 4:48 AM Ludovic Courtès <ludo@gnu.org> wrote: > > Hello, > > Andy Tai <atai@atai.org> skribis: > > > * gnu/packages/patches/screen-hurd-path-max.patch: Update for screen 5.0.0. > > * gnu/packages/screen.scm (screen): Update to 5.0.0. > > [arguments]<#:configure-flags: Add "CFLAGS=-D_GNU_SOURCE=1". > > [inputs]: Add linux-pam. > > > > Change-Id: Iebc5eff0128ff7f4d27a22cca1bd4a025aca3244 > > [...] > > > -+ * Define PATH_MAX to 4096 if it's not defined, like on GNU/Hurd > > Did you confirm that it still builds for GNU/Hurd? > > You can test by cross-compiling with ‘--target=i586-pc-gnu’ or by > compiling natively, if you have configured the ‘hurd-vm’ service, with > ‘--system=i586-gnu’. > > > (arguments > > `(#:configure-flags > > + ;; GNU_SOURCE must be defined for mallocmock_reset() to be defined > > + '("CFLAGS=-D_GNU_SOURCE=1" > > This very likely removes the default flags, “-O2 -g”, which is something > we should not do (we’d get an unoptimized build and ‘--with-debug-info’ > wouldn’t have the intended effect). I think you need to have: > > "CFLAGS=-O2 -g -D_GNU_SOURCE=1" > > instead. Please check the build log to make sure it has the intended > effect. > > Could you send an updated patch? > > Thanks, > Ludo’.
diff --git a/gnu/packages/patches/screen-hurd-path-max.patch b/gnu/packages/patches/screen-hurd-path-max.patch index e906f154f3..338666aa09 100644 --- a/gnu/packages/patches/screen-hurd-path-max.patch +++ b/gnu/packages/patches/screen-hurd-path-max.patch @@ -6,30 +6,17 @@ Description: Set PATH_MAX to 4096 if undefined Fixes FTBFS since 4.4.0 on GNU/Hurd. Updated to add one more occurrence for 4.5.0. Author: Axel Beckert <abe@debian.org> Bug: https://savannah.gnu.org/bugs/?50089 -Last-Updated: 2017-01-18 +Updated: 2017-01-18 +Updated: 2024-08-30 Update for Screen 5.0.0 ---- a/tty.sh -+++ b/tty.sh -@@ -1478,6 +1478,13 @@ - return 0; - } - -+/* -+ * Define PATH_MAX to 4096 if it's not defined, like on GNU/Hurd -+ */ -+ -+#ifndef PATH_MAX -+#define PATH_MAX 4096 -+#endif - - int CheckTtyname (char *tty) - { +diff --git a/screen.h b/screen.h +index 308c365..bda05b4 100644 --- a/screen.h +++ b/screen.h -@@ -109,6 +109,13 @@ - # define DEFAULT_BUFFERFILE "/tmp/screen-exchange" +@@ -63,6 +63,13 @@ struct mode { #endif - + }; + +/* + * Define PATH_MAX to 4096 if it's not defined, like on GNU/Hurd + */ @@ -37,6 +24,6 @@ Last-Updated: 2017-01-18 +#ifndef PATH_MAX +#define PATH_MAX 4096 +#endif - - #if defined(hpux) && !(defined(VSUSP) && defined(VDSUSP) && defined(VWERASE) && defined(VLNEXT)) - # define HPUX_LTCHARS_HACK + + #include "ansi.h" + #include "image.h" diff --git a/gnu/packages/screen.scm b/gnu/packages/screen.scm index 095f18d85e..30fd2783a8 100644 --- a/gnu/packages/screen.scm +++ b/gnu/packages/screen.scm @@ -37,6 +37,7 @@ (define-module (gnu packages screen) #:use-module (gnu packages bash) #:use-module (gnu packages crypto) #:use-module (gnu packages hurd) + #:use-module (gnu packages linux) #:use-module (gnu packages ncurses) #:use-module (gnu packages perl) #:use-module (gnu packages python) @@ -46,24 +47,27 @@ (define-module (gnu packages screen) (define-public screen (package (name "screen") - (version "4.9.1") + (version "5.0.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/screen/screen-" version ".tar.gz")) (patches (search-patches "screen-hurd-path-max.patch")) (sha256 - (base32 "0sdc0ms6qxm4gbx0caw7pwghj5aw1h8syvxdhkac0w95qkiz7ki6")))) + (base32 "0wa9v6p7cna2scpimpvk9pgxaah80f4q0f2kln37qp0f1b83jjph")))) (build-system gnu-build-system) (native-inputs (list autoconf automake texinfo)) (inputs - (list libxcrypt ncurses perl)) + (list libxcrypt linux-pam ncurses perl)) (arguments `(#:configure-flags + ;; GNU_SOURCE must be defined for mallocmock_reset() to be defined + '("CFLAGS=-D_GNU_SOURCE=1" + ;; By default, screen supports 16 colors, but we want 256 when ;; ~/.screenrc contains 'term xterm-256color'. - '("--enable-colors256"))) + "--enable-colors256"))) (home-page "https://www.gnu.org/software/screen/") (synopsis "Full-screen window manager providing multiple terminals") (description