* bug#41498: sed fails to build on kernels with selinux @ 2020-05-24 8:14 Chris Marusich 2020-05-30 8:06 ` Chris Marusich 0 siblings, 1 reply; 5+ messages in thread From: Chris Marusich @ 2020-05-24 8:14 UTC (permalink / raw) To: 41498 [-- Attachment #1: Type: text/plain, Size: 2300 bytes --] Hi, I noticed that sed fails to build on my Fedora machine, but it builds successfully on Guix System. The error is: --8<---------------cut here---------------start------------->8--- ERROR: testsuite/inplace-selinux ================================ inplace-selinux.sh: set-up failure: CONFIG_HEADER not defined ERROR testsuite/inplace-selinux.sh (exit status: 99) --8<---------------cut here---------------end--------------->8--- It appears related to this issue: https://lists.gnu.org/archive/html/bug-sed/2019-06/msg00022.html "This error comes from 'init.cfg' in the 'require_selinux_' function. It happens when the system supports SELinux (based on /proc/filesystems), but during the './configure' step, somehow the generated Makefile did not contain a 'CONFIG_HEADER = config.h' statement (very strange)." Indeed, /proc/filesystems within the Guix sandbox on my Fedora system looks like this: --8<---------------cut here---------------start------------->8--- nodev sysfs nodev tmpfs nodev bdev nodev proc nodev cgroup nodev cgroup2 nodev cpuset nodev devtmpfs nodev configfs nodev debugfs nodev tracefs nodev securityfs nodev sockfs nodev bpf nodev pipefs nodev ramfs nodev hugetlbfs nodev devpts ext3 ext2 ext4 nodev autofs nodev mqueue nodev selinuxfs nodev pstore fuseblk nodev fuse nodev fusectl nodev rpc_pipefs iso9660 --8<---------------cut here---------------end--------------->8--- However, on a vanilla Guix System (gnu/system/examples/vm-image.tmpl) it looks like this: --8<---------------cut here---------------start------------->8--- nodev sysfs nodev tmpfs nodev bdev nodev proc nodev cgroup nodev cgroup2 nodev cpuset nodev devtmpfs nodev debugfs nodev tracefs nodev securityfs nodev sockfs nodev bpf nodev pipefs nodev ramfs nodev hugetlbfs nodev devpts ext3 ext2 ext4 vfat nodev ecryptfs nodev mqueue nodev pstore nodev 9p --8<---------------cut here---------------end--------------->8--- Note that "selinuxfs" is present in the Fedora case, but missing in the Guix System case. It seems very likely that this is causing the failure. We probably need to modify something in the sed build logic to make it succeed even when "selinuxfs" is present. -- Chris [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 832 bytes --] ^ permalink raw reply [flat|nested] 5+ messages in thread
* bug#41498: sed fails to build on kernels with selinux 2020-05-24 8:14 bug#41498: sed fails to build on kernels with selinux Chris Marusich @ 2020-05-30 8:06 ` Chris Marusich 2020-06-10 7:14 ` Chris Marusich 0 siblings, 1 reply; 5+ messages in thread From: Chris Marusich @ 2020-05-30 8:06 UTC (permalink / raw) To: 41498 [-- Attachment #1: Type: text/plain, Size: 330 bytes --] Chris Marusich <cmmarusich@gmail.com> writes: > It appears related to this issue: > > https://lists.gnu.org/archive/html/bug-sed/2019-06/msg00022.html There is actually a bug report for this here: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=36150 I have submitted a patch upstream to fix the issue. -- Chris [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 832 bytes --] ^ permalink raw reply [flat|nested] 5+ messages in thread
* bug#41498: sed fails to build on kernels with selinux 2020-05-30 8:06 ` Chris Marusich @ 2020-06-10 7:14 ` Chris Marusich 2020-06-12 5:43 ` Chris Marusich 0 siblings, 1 reply; 5+ messages in thread From: Chris Marusich @ 2020-06-10 7:14 UTC (permalink / raw) To: 41498 [-- Attachment #1.1: Type: text/plain, Size: 634 bytes --] Chris Marusich <cmmarusich@gmail.com> writes: > There is actually a bug report for this here: > > https://debbugs.gnu.org/cgi/bugreport.cgi?bug=36150 > > I have submitted a patch upstream to fix the issue. Upstream hasn't replied yet, but it's only been a week and a few days. In the meantime, here are some patches to pull the fix into Guix. While I was here, I also taught "guix lint" to correctly check the file name of patches when they come from an origin record. I'll commit the sed change to core-updates, and the lint change to master, in the next couple days if nobody has any other comments. -- Chris [-- Attachment #1.2: 0001-gnu-sed-Make-it-build-on-SELinux-enabled-kernels.patch --] [-- Type: text/x-patch, Size: 2132 bytes --] From 5686aa71488b7ba060b94f8e0c3a857016c0fa9c Mon Sep 17 00:00:00 2001 From: Chris Marusich <cmmarusich@gmail.com> Date: Tue, 9 Jun 2020 23:35:56 -0700 Subject: [PATCH 1/2] gnu: sed: Make it build on SELinux-enabled kernels. Fixes: <https://bugs.gnu.org/41498>. * gnu/packages/base.scm (sed)[origin][patches]: New field. This adds a patch that was submitted upstream which fixes an issue that prevents sed from building on SELinux-enabled kernels. --- gnu/packages/base.scm | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 279fe9e3d8..f075ee8f74 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -15,6 +15,7 @@ ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2020 Vitaliy Shatrov <D0dyBo0D0dyBo0@protonmail.com> +;;; Copyright © 2020 Chris Marusich <cmmarusich@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -141,7 +142,21 @@ including, for example, recursive directory searching.") ".tar.gz")) (sha256 (base32 - "0alqagh0nliymz23kfjg6g9w3cr086k0sfni56gi8fhzqwa3xksk")))) + "0alqagh0nliymz23kfjg6g9w3cr086k0sfni56gi8fhzqwa3xksk")) + ;; Remove this patch once upstream releases a fixed version. + (patches + (list + (origin + (method url-fetch) + (uri (string-append + "https://debbugs.gnu.org/cgi/bugreport.cgi?" + "att=1;msg=16;bug=36150;filename=0001-tests-" + "Export-CONFIG_HEADER-to-test-scripts.patch")) + (file-name + "sed-Export-CONFIG_HEADER-to-test-scripts.patch") + (sha256 + (base32 + "0q78qzc0mv4bmsf7wnqj9fjbrwb71xz18v07h0jz2cwnbbj1nwm9"))))))) (build-system gnu-build-system) (synopsis "Stream editor") (native-inputs -- 2.26.2 [-- Attachment #1.3: 0002-guix-lint-Support-origins-in-check-patch-file-names.patch --] [-- Type: text/x-patch, Size: 1947 bytes --] From 770051777637f2026bcc56a57d30272e082099e6 Mon Sep 17 00:00:00 2001 From: Chris Marusich <cmmarusich@gmail.com> Date: Wed, 10 Jun 2020 00:01:50 -0700 Subject: [PATCH 2/2] guix: lint: Support origins in check-patch-file-names. * guix/lint.scm (check-patch-file-names)[starts-with-package-name?]: New procedure, extracted from the existing logic. Using it, add a clause to the match-lambda to handle origin records. --- guix/lint.scm | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/guix/lint.scm b/guix/lint.scm index 6271894360..627016fae0 100644 --- a/guix/lint.scm +++ b/guix/lint.scm @@ -9,6 +9,7 @@ ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017, 2018, 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2018, 2019 Arun Isaac <arunisaac@systemreboot.net> +;;; Copyright © 2020 Chris Marusich <cmmarusich@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -669,13 +670,17 @@ patch could not be found." (or (and=> (package-source package) origin-patches) '())) + (define (starts-with-package-name? file-name) + (and=> (string-contains file-name (package-name package)) + zero?)) + (append (if (every (match-lambda ;patch starts with package name? ((? string? patch) - (and=> (string-contains (basename patch) - (package-name package)) - zero?)) - (_ #f)) ;must be an <origin> or something like that. + (starts-with-package-name? (basename patch))) + ((? origin? patch) + (starts-with-package-name? (origin-file-name patch))) + (_ #f)) ;must be some other file-like object patches) '() (list -- 2.26.2 [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 832 bytes --] ^ permalink raw reply related [flat|nested] 5+ messages in thread
* bug#41498: sed fails to build on kernels with selinux 2020-06-10 7:14 ` Chris Marusich @ 2020-06-12 5:43 ` Chris Marusich 2020-06-13 20:13 ` Ludovic Courtès 0 siblings, 1 reply; 5+ messages in thread From: Chris Marusich @ 2020-06-12 5:43 UTC (permalink / raw) To: 41498-close [-- Attachment #1.1: Type: text/plain, Size: 2742 bytes --] Hi, With the attached patch, sed builds on my Fedora machine. Yay! There was a small mistake in my prior email to this bug report, so you can ignore that patch. Chris Marusich <cmmarusich@gmail.com> writes: > diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm > index 279fe9e3d8..f075ee8f74 100644 > --- a/gnu/packages/base.scm > +++ b/gnu/packages/base.scm > @@ -15,6 +15,7 @@ > ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> > ;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net> > ;;; Copyright © 2020 Vitaliy Shatrov <D0dyBo0D0dyBo0@protonmail.com> > +;;; Copyright © 2020 Chris Marusich <cmmarusich@gmail.com> > ;;; > ;;; This file is part of GNU Guix. > ;;; > @@ -141,7 +142,21 @@ including, for example, recursive directory searching.") > ".tar.gz")) > (sha256 > (base32 > - "0alqagh0nliymz23kfjg6g9w3cr086k0sfni56gi8fhzqwa3xksk")))) > + "0alqagh0nliymz23kfjg6g9w3cr086k0sfni56gi8fhzqwa3xksk")) > + ;; Remove this patch once upstream releases a fixed version. > + (patches > + (list > + (origin > + (method url-fetch) > + (uri (string-append > + "https://debbugs.gnu.org/cgi/bugreport.cgi?" > + "att=1;msg=16;bug=36150;filename=0001-tests-" > + "Export-CONFIG_HEADER-to-test-scripts.patch")) > + (file-name > + "sed-Export-CONFIG_HEADER-to-test-scripts.patch") > + (sha256 > + (base32 > + "0q78qzc0mv4bmsf7wnqj9fjbrwb71xz18v07h0jz2cwnbbj1nwm9"))))))) > (build-system gnu-build-system) > (synopsis "Stream editor") > (native-inputs > -- > 2.26.2 Even though this patch is appropriate for the sed maintainers, it is not appropriate for use in Guix's sed package definition. This is because the patch changes testsuite/local.mk, which is used only when creating the release distribution of sed (via an include directive in Makefile.am), and Guix builds sed from a release distribution tarball. As a result, even if Guix modifies the file, it does not have the desired effect, and the test still fails for the same reason as before. One way to work around this is to modify the Makefile.in, which is generated by Automake and included in the release distribution. I have gone ahead and committed the sed patch to core-updates in a48a3f0640d76cb5e5945557c9aae6dabce39d93. I have committed the guix lint improvement to master in 21887021b9acf60157b1b0a39c16f2ec6498021b. I am closing this bug report. -- Chris [-- Attachment #1.2: 0001-gnu-sed-Make-it-build-on-SELinux-enabled-kernels.patch --] [-- Type: text/x-patch, Size: 2141 bytes --] From 24edab1ef4ecedd2d9971a96a516d800d6933201 Mon Sep 17 00:00:00 2001 From: Chris Marusich <cmmarusich@gmail.com> Date: Tue, 9 Jun 2020 23:35:56 -0700 Subject: [PATCH] gnu: sed: Make it build on SELinux-enabled kernels. Fixes: <https://bugs.gnu.org/41498>. * gnu/packages/base.scm (sed)[origin][snippet]: New field. This adds a snippet, equivalent to the patch submitted upstream, which fixes an issue that prevents sed from building on SELinux-enabled kernels. --- gnu/packages/base.scm | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 279fe9e3d8..2c7b4e6882 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -15,6 +15,7 @@ ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2020 Vitaliy Shatrov <D0dyBo0D0dyBo0@protonmail.com> +;;; Copyright © 2020 Chris Marusich <cmmarusich@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -141,7 +142,19 @@ including, for example, recursive directory searching.") ".tar.gz")) (sha256 (base32 - "0alqagh0nliymz23kfjg6g9w3cr086k0sfni56gi8fhzqwa3xksk")))) + "0alqagh0nliymz23kfjg6g9w3cr086k0sfni56gi8fhzqwa3xksk")) + ;; Remove this snippet once upstream releases a fixed version. + ;; This snippet changes Makefile.in, even though the upstream + ;; patch changes testsuite/local.mk, since we build sed from a + ;; release tarball. See: https://bugs.gnu.org/36150 + (snippet + '(begin + (substitute* "Makefile.in" + (("^ abs_srcdir='\\$\\(abs_srcdir\\)'.*" previous-line) + (string-append + previous-line + " CONFIG_HEADER='$(CONFIG_HEADER)'\t\t\\\n"))))) + (modules '((guix build utils))))) (build-system gnu-build-system) (synopsis "Stream editor") (native-inputs -- 2.26.2 [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 832 bytes --] ^ permalink raw reply related [flat|nested] 5+ messages in thread
* bug#41498: sed fails to build on kernels with selinux 2020-06-12 5:43 ` Chris Marusich @ 2020-06-13 20:13 ` Ludovic Courtès 0 siblings, 0 replies; 5+ messages in thread From: Ludovic Courtès @ 2020-06-13 20:13 UTC (permalink / raw) To: 41498 Hi, Chris Marusich <cmmarusich@gmail.com> skribis: > From 24edab1ef4ecedd2d9971a96a516d800d6933201 Mon Sep 17 00:00:00 2001 > From: Chris Marusich <cmmarusich@gmail.com> > Date: Tue, 9 Jun 2020 23:35:56 -0700 > Subject: [PATCH] gnu: sed: Make it build on SELinux-enabled kernels. > > Fixes: <https://bugs.gnu.org/41498>. > > * gnu/packages/base.scm (sed)[origin][snippet]: New field. This adds a > snippet, equivalent to the patch submitted upstream, which fixes an > issue that prevents sed from building on SELinux-enabled kernels. LGTM, you can push to ‘core-updates’. Thank you! Ludo’. ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2020-06-13 20:14 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-05-24 8:14 bug#41498: sed fails to build on kernels with selinux Chris Marusich 2020-05-30 8:06 ` Chris Marusich 2020-06-10 7:14 ` Chris Marusich 2020-06-12 5:43 ` Chris Marusich 2020-06-13 20:13 ` Ludovic Courtès
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/guix.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).