Devuan bug report logs -
#598
eudev: regex in preinst script prevents installation
Reported by: David Paul <davidpaul@librem.one>
Date: Fri, 6 Aug 2021 02:52:01 UTC
Severity: grave
Tags: patch
Found in version 3.2.9-9
Fixed in version 3.2.9-10
Done: dak@devuan.org
Full log
🔗
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
This is an automatic notification regarding your bug report
which was filed against the eudev package:
#598: eudev: regex in preinst script prevents installation
It has been closed by dak@devuan.org.
Their explanation is attached below along with your original report.
If this explanation is unsatisfactory and you have not received a
better one in a separate message then please contact dak@devuan.org by
replying to this email.
--
598: https://bugs.devuan.org/cgi/bugreport.cgi?bug=598
Devuan Bug Tracking System
Contact owner@bugs.devuan.org with problems
[Message part 2 (message/rfc822, inline)]
Version: 3.2.9-10
Source package eudev (3.2.9-10) added to Devuan suite unstable.
This closes bug report 598.
Thanks
DAK managing the Devuan archive
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Format: 1.8
Date: Sat, 04 Sep 2021 13:05:24 +0200
Source: eudev
Architecture: source
Version: 3.2.9-10
Distribution: unstable
Urgency: high
Maintainer: Devuan Dev Team <devuan-dev@lists.dyne.org>
Changed-By: Svante Signell <svante.signell@gmail.com>
Closes: 407 598 600
Changes:
eudev (3.2.9-10) unstable; urgency=high
.
* debian/eudev.maintscript: Remove. Fixes build with debhelper 13.5.
* debian/changelog: Fix indentation and long lines.
* debian/eudev.preinst: Fix detection of needed kernel features for
recent kernels. (Closes: #407, #598)
* debian/control: Remove dependency on debconf.
* debian/eudev.postrm: Remove db_purge since we no longer use debconf.
(Closes: #600)
Checksums-Sha1:
5ce112896d9724eaa7b38fa98987e9c7a088b4c4 2349 eudev_3.2.9-10.dsc
7828272d2f41b7934340975d0e1c4d788780060b 62388 eudev_3.2.9-10.debian.tar.xz
33c9448e580a35ff8d503846fc70814b36194f98 5158 eudev_3.2.9-10_source.buildinfo
Checksums-Sha256:
6edeac63382214a78eb0ee2267021ef32617155c20aea71cbdeff22e65e20e6d 2349 eudev_3.2.9-10.dsc
3a9198b282ae092f28a4f0766c35d8369f5ac7a2e41b48842bd2cd5a655d8838 62388 eudev_3.2.9-10.debian.tar.xz
0f218435c089746fa805aed6eda76705c944b2081e7e51a6d7e8bd35ae104e3b 5158 eudev_3.2.9-10_source.buildinfo
Files:
3fd2203af8cb37e2d5a2f3deffbddace 2349 admin optional eudev_3.2.9-10.dsc
1aebdadfe119630c4aa38925e6487428 62388 admin optional eudev_3.2.9-10.debian.tar.xz
e2621664cfd62622da0206b953c1ac27 5158 admin optional eudev_3.2.9-10_source.buildinfo
-----BEGIN PGP SIGNATURE-----
iQEzBAEBCgAdFiEEcuPLdzMV36LkZHQ9lFMhJFQZIvsFAmE1NJsACgkQlFMhJFQZ
Ivs69Af/TUwf4pYpmE7aF1LYzrctBqPEXhCenKB7urP9SEGjK4cMnxg+bS6C0Zty
jDzuuPOhjEjqtbNw00j4xQ8nTeaME6kCctV8yonygjM/OuzqlrknZQNW5le6H36g
k9lhi78QSkp39BIQI+OUUwuQSMPbpMG82i0JIiSKCue2JaN0pXHZeiCAubQrx0TY
jIxHrqDZOqBXGJFJkF+/ch912ssaHQ/IsrUZ1q/WKeikO9/c+q4Qo9VK13TWGBEl
DG6t4RHv2bfaodWWr2dNPEOp7g74isXU7VWXcMkobvMAgnr4Da+/XRhwjHGfndZd
XtSz//BYKdpCJMSHGAXVgbm4dQRT7w==
=jlhk
-----END PGP SIGNATURE-----
[Message part 3 (message/rfc822, inline)]
[Message part 4 (text/plain, inline)]
Package: eudev
Version: 3.2.9-9
Severity: grave
Tags: patch
Justification: renders package unusable
Dear Maintainer,
### Summary:
Please apply the attached patch to the eudev source package. A
similar change should also be made to Debian's systemd source package.
### Details:
Last week a user on the Devuan support IRC reported an inability to
upgrade eudev while attempting to perform an upgrade from ASCII to
Beowulf. After much back and forth, I was able to determine the cause
to be a regular expression in the preinst script for the eudev package.
(For the full
conversion see the IRC log beginning at
http://reisenweber.net/irclogs/freenode/_devuan/_devuan.2021-07-27.log.html#t2021-07-27T18:25:49
and ending at
http://reisenweber.net/irclogs/freenode/_devuan/_devuan.2021-07-28.log.html#t2021-07-28T05:01:23)
The regex in question is responsible for verifying the presence of six
kernel system call symbols required for eudev to function.
Unfortunately, because of prefixes on the names of the symbols in
the /proc/kallsyms file, the current version of the regex fails to
identify the presence of all the needed symbols. As can be seen in the
timeline that follows, this same issue was discovered November of
2018 and the problematic regular expression was modified accordingly.
Unfortunately, when the eudev maintainer scripts were modified in
January of 2020 to more closely match those of the udev binary package
from the Debian systemd source package, the regex in the check was
inadvertently reverted to the pre-2018 problematic version. The
attached patch modifies the regex back to its fixed version.
For the sake of completeness, it should be noted that the issue
mentioned in Debian bug #552778 (see 2009-11-10 in the timeline that
follows) is left unaddressed by this patch. Given that it involves a
processor architecture no longer supported by Debian (never supported
by Devuan) and applies to an issue with a 12 year old kernel, I think
it can be safely ignored. I will nevertheless be preforming experiments
with a Power Mac G5 to determine if this issue was every resolved
merely through the use of newer kernels. If an additional patch is
required as a result of these tests I will file a separate bug report.
### Timeline (reverse chronological order):
https://git.devuan.org/devuan/eudev/commit/243adc9487e06a928558628f5e0bf3f647c1a3c4
2020-01-08
The eudev.{init,preinst,postinst,prerm} scripts are modified to more
closely match the udev.{init,preinst,postinst,prerm} scripts in the
Debian package systemd 243-8 (see
https://salsa.debian.org/systemd-team/systemd/-/tree/debian/243-8). In
the process the regex in question in the eudev.preinst is inadvertently
reverted to the earlier problematic version.
https://git.devuan.org/devuan/eudev/commit/893574a43ab9cc9779dbbc7deab591b72b92ab59
https://git.devuan.org/devuan/eudev/commit/c5e67ec148a250ab432c565ccd08a386154fc5ee
2018-11-02
The regex in the kernel symbol check in eudev.preinst is changed to
contain "(_+.*_)" in place of "\.?" for detecting prefixed symbol
names. This change is the result of a conversation on IRC spanning from
http://reisenweber.net/irclogs/freenode/_devuan-dev/_devuan-dev.2018-11-02.log.html#t2018-11-02T16:47:03
to
http://reisenweber.net/irclogs/freenode/_devuan-dev/_devuan-dev.2018-11-02.log.html#t2018-11-02T18:49:16
https://git.devuan.org/devuan/eudev/commit/3529a42fc1c80a147ee0b6abd46e8175e5fe6bc7
2017-06-01
The eudev.preinst symlink to udev.preinst is replaced with a standard
file and udev.preinst is deleted.
https://git.devuan.org/devuan/eudev/commit/53a6f64a81a04a14a3fd44b294a3668ca483b9f4
2017-04-29
eudev.preinst is added as a symlink to udev.preinst
https://git.devuan.org/devuan/eudev/commit/8c34e95b65648801ec93959a3a8fc706d23d4abe
2017-04-22
The first commit with a debian/ directory is added to the current eudev
packaging repository. Included is a udev.preinst file. Prior early
debian packaging work is referenced in the included debian/changelog
file, but as far as I can tell that early work is not publicly
preserved, though I'd be happy to be proved wrong about that.
https://salsa.debian.org/systemd-team/systemd/-/commit/681aaee461212681c7efa4aed932cd93a03ec8e7
2016-02-05
The explicit checks in udev.preinst and udev.postinst for linux kernel
versions >= 2.6.32, which was released in 2009, are dropped. Support
for forcing udev upgrades via /etc/udev/kernel-upgrade to kernels known
to not be compatible is also dropped. check_kernel_features() remains
in udev.preinst but is simplified.
https://salsa.debian.org/systemd-team/systemd/-/commit/d4751047810b64f5a23c55cd04d2c7cf568dd9f5
2014-04-26
A check is added to udev.preinst for the syscall symbol accept4,
resolving Debian bug #648325.
https://salsa.debian.org/systemd-team/systemd/-/commit/aa9ec4cdf2f0e2c97cc61f295b348e17735a9fc7
2014-04-26
Checks are added to udev.preinst for the syscall symbols
open_by_handle_at, timerfd_create, and epoll_create.
https://salsa.debian.org/systemd-team/systemd/-/commit/b56f8637a1e03ac6a45af7820287159df9b506b9
2013-07-17
Following the merging of udev into systemd upstream, debian/ files from
udev 175-7 are incorporated into the systemd source package.
https://salsa.debian.org/systemd-team/systemd/-/commit/7ffbf10c801a5fa0adf60d57d634e0b7d28efb62
2013-07-17
The explicit kernel version incompatibilities are removed in
debian/control from the udev package stanza.
https://snapshot.debian.org/package/udev/147%7Egit20091109-1/
2009-11-10
The regex in the udev preinst script is changed to also match kernel
symbols with a leading dot to address Debian bug #552778 involving a
powerpc64 system.
https://snapshot.debian.org/package/udev/146-5/
2009-10-08
The check_kernel_features() function is first added to the udev.preinst
script. The function checks for the inotify_init and signalfd system
call symbols.
[eudev-preinst-fix.patch (text/x-patch, attachment)]
Send a report that this bug log contains spam.