unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
* 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).