Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 679736 - sys-fs/e2fsprogs-1.45.0: Mishandling of system crontab directory, systemd system unit directory
Summary: sys-fs/e2fsprogs-1.45.0: Mishandling of system crontab directory, systemd sys...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All All
: Normal normal
Assignee: Gentoo's Team for Core System packages
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-03-08 06:49 UTC by Arfrever Frehtes Taifersar Arahesis
Modified: 2019-03-13 14:31 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments
Patch (e2fsprogs.patch,1.27 KB, patch)
2019-03-08 07:15 UTC, Arfrever Frehtes Taifersar Arahesis
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Arfrever Frehtes Taifersar Arahesis 2019-03-08 06:49:42 UTC
On one system where cron and systemd are not installed, I get:

In src_configure() phase:

checking for udev... yes
checking for udev rules dir... /lib/udev/rules.d
checking for system crontab dir... yes
checking for systemd... no
checking for systemd system unit dir... no

In src_install() phase:

making install in scrub
make[1]: Entering directory '/var/tmp/portage/sys-fs/e2fsprogs-1.45.0/work/e2fsprogs-1.45.0/scrub'
        MKDIR_P /lib/udev/rules.d
        MKDIR_P yes
        MKDIR_P /usr/lib64/e2fsprogs
        MKDIR_P //sbin /usr/share/man/man8 /etc
        INSTALL /lib/udev/rules.d/e2scrub.rules
        INSTALL yes/e2scrub_all
        INSTALL /usr/lib64/e2fsprogs/e2scrub_all_cron
        INSTALL //sbin/e2scrub
        INSTALL //sbin/e2scrub_all
        INSTALL_DATA /usr/share/man/man8/e2scrub.8
        INSTALL_DATA /usr/share/man/man8/e2scrub_all.8
        INSTALL_DATA /etc/e2scrub.conf


This actually means that build system created /var/tmp/portage/sys-fs/e2fsprogs-1.45.0/imageyes directory with e2scrub_all regular file.

# cat /var/tmp/portage/sys-fs/e2fsprogs-1.45.0/imageyes/e2scrub_all
30 3 * * 0 root test -e /run/systemd/system || /usr/lib64/e2fsprogs/e2scrub_all_cron
10 3 * * * root test -e /run/systemd/system || //sbin/e2scrub_all -A -r
# sed -ne "48,+5p" /var/tmp/portage/sys-fs/e2fsprogs-1.45.0/work/e2fsprogs-1.45.0/scrub/Makefile
HAVE_UDEV = yes
UDEV_RULES_DIR = /lib/udev/rules.d
HAVE_CROND = yes
CROND_DIR = yes
HAVE_SYSTEMD = no
SYSTEMD_SYSTEM_UNIT_DIR =
Comment 1 Arfrever Frehtes Taifersar Arahesis 2019-03-08 07:15:13 UTC
Created attachment 568162 [details, diff]
Patch

Passing explicit paths avoids wrong code in configure.
(The policy is to install small files (e.g. systemd system units) unconditionally.)
(--with-udev-rules-dir is passed for consistency.)
(multilib.eclass is not used.)


Results with patch:

checking for udev rules dir... /lib/udev/rules.d
checking for system crontab dir... /etc/cron.d
checking for systemd system unit dir... /lib/systemd/system
...
making install in scrub
make[1]: Entering directory '/var/tmp/portage/sys-fs/e2fsprogs-1.45.0/work/e2fsprogs-1.45.0/scrub'
        MKDIR_P /lib/udev/rules.d
        MKDIR_P /etc/cron.d
        MKDIR_P /usr/lib64/e2fsprogs
        MKDIR_P /lib/systemd/system
        MKDIR_P //sbin /usr/share/man/man8 /etc
        INSTALL /lib/udev/rules.d/e2scrub.rules
        INSTALL /etc/cron.d/e2scrub_all
        INSTALL /usr/lib64/e2fsprogs/e2scrub_all_cron
        INSTALL /usr/lib64/e2fsprogs/e2scrub_fail
        INSTALL_DATA /lib/systemd/system/e2scrub@.service
        INSTALL_DATA /lib/systemd/system/e2scrub_all.service
        INSTALL_DATA /lib/systemd/system/e2scrub_all.timer
        INSTALL_DATA /lib/systemd/system/e2scrub_fail@.service
        INSTALL_DATA /lib/systemd/system/e2scrub_reap.service
        INSTALL //sbin/e2scrub
        INSTALL //sbin/e2scrub_all
        INSTALL_DATA /usr/share/man/man8/e2scrub.8
        INSTALL_DATA /usr/share/man/man8/e2scrub_all.8
        INSTALL_DATA /etc/e2scrub.conf
Comment 2 Larry the Git Cow gentoo-dev 2019-03-08 07:22:22 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=322787981b8123de14adbb033eb485552d24423c

commit 322787981b8123de14adbb033eb485552d24423c
Author:     Arfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org>
AuthorDate: 2019-03-08 06:54:34 +0000
Commit:     Lars Wendler <polynomial-c@gentoo.org>
CommitDate: 2019-03-08 07:20:32 +0000

    sys-fs/e2fsprogs: Fix installation of crontab file and systemd system units.
    
    Closes: https://bugs.gentoo.org/679736
    Signed-off-by: Arfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org>
    Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>

 .../{e2fsprogs-1.45.0.ebuild => e2fsprogs-1.45.0-r1.ebuild}          | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
Comment 3 Guilherme Amadio gentoo-dev 2019-03-13 12:39:30 UTC
The fix for this bug broke prefix:

>>> Completed installing e2fsprogs-1.45.0-r1 into /var/cache/portage/sys-fs/e2fsprogs-1.45.0-r1/image/

 * Final size of build directory: 53004 KiB (51.7 MiB)
 * Final size of installed tree:   2516 KiB ( 2.4 MiB)

 * QA Notice: the following files are outside of the prefix:
 * /lib
 * /lib/udev
 * /lib/udev/rules.d
 * /lib/udev/rules.d/96-e2scrub.rules
 * ERROR: sys-fs/e2fsprogs-1.45.0-r1::gentoo failed:
 *   Aborting due to QA concerns: there are files installed outside the prefix
 * 
 * Call stack:
 *   misc-functions.sh, line 586:  Called install_qa_check
 *   misc-functions.sh, line 132:  Called source 'install_symlink_html_docs'
 *            05prefix, line 114:  Called install_qa_check_prefix
 *            05prefix, line  27:  Called die
 * The specific snippet of code:
 *   			die "Aborting due to QA concerns: there are files installed outside the prefix"

How should this be fixed? I see two options, install the files in the right prefixed directory, or do not install at all, since on prefix it doesn't matter.
Comment 4 Larry the Git Cow gentoo-dev 2019-03-13 14:31:28 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=860222a76acdf4a664a3bd829e17c04d24b416f9

commit 860222a76acdf4a664a3bd829e17c04d24b416f9
Author:     Lars Wendler <polynomial-c@gentoo.org>
AuthorDate: 2019-03-13 13:04:20 +0000
Commit:     Lars Wendler <polynomial-c@gentoo.org>
CommitDate: 2019-03-13 14:31:14 +0000

    sys-fs/e2fsprogs: Make paths prefix-aware
    
    Bug: https://bugs.gentoo.org/679736
    Package-Manager: Portage-2.3.62, Repoman-2.3.12
    Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>

 sys-fs/e2fsprogs/e2fsprogs-1.45.0-r1.ebuild | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)