--- Begin Message ---
Subject: |
sed fails to build on kernels with selinux |
Date: |
Sun, 24 May 2020 01:14:48 -0700 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) |
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
signature.asc
Description: PGP signature
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#41498: sed fails to build on kernels with selinux |
Date: |
Thu, 11 Jun 2020 22:43:43 -0700 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) |
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
0001-gnu-sed-Make-it-build-on-SELinux-enabled-kernels.patch
Description: Text Data
signature.asc
Description: PGP signature
--- End Message ---