Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 736080

Summary: sys-fs/eudev-3.2.9: No support for /usr merge
Product: Gentoo Linux Reporter: Andreas Sturmlechner <asturm>
Component: Current packagesAssignee: eudev team <eudev>
Status: RESOLVED FIXED    
Severity: normal CC: hydrapolic
Priority: Normal Keywords: PullRequest
Version: unspecified   
Hardware: All   
OS: Linux   
See Also: https://github.com/gentoo/gentoo/pull/27700
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 690294    
Attachments: build.log

Description Andreas Sturmlechner gentoo-dev 2020-08-05 19:32:33 UTC
Created attachment 653310 [details]
build.log

* Final size of build directory: 17876 KiB (17.4 MiB)
 * Final size of installed tree:   1876 KiB ( 1.8 MiB)
./
./lib/
./lib/udev/
./lib/udev/cdrom_id
./lib/udev/rules.d/
./lib/udev/rules.d/60-persistent-storage.rules
./lib/udev/rules.d/70-mouse.rules
./lib/udev/rules.d/70-touchpad.rules
./lib/udev/rules.d/60-serial.rules
./lib/udev/rules.d/60-block.rules
./lib/udev/rules.d/70-joystick.rules
./lib/udev/rules.d/50-udev-default.rules
./lib/udev/rules.d/60-persistent-v4l.rules
./lib/udev/rules.d/60-input-id.rules
./lib/udev/rules.d/75-probe_mtd.rules
./lib/udev/rules.d/64-btrfs.rules
./lib/udev/rules.d/40-gentoo.rules
./lib/udev/rules.d/80-drivers.rules
./lib/udev/rules.d/60-cdrom_id.rules
./lib/udev/rules.d/60-persistent-alsa.rules
./lib/udev/rules.d/60-persistent-input.rules
./lib/udev/rules.d/60-sensor.rules
./lib/udev/rules.d/60-persistent-storage-tape.rules
./lib/udev/rules.d/60-evdev.rules
./lib/udev/rules.d/80-net-name-slot.rules
./lib/udev/rules.d/60-drm.rules
./lib/udev/rules.d/78-sound-card.rules
./lib/udev/rules.d/75-net-description.rules
./lib/udev/scsi_id
./lib/udev/collect
./lib/udev/v4l_id
./lib/udev/ata_id
./lib/udev/mtd_probe
./lib64/
./lib64/libudev.so.1.6.3
./lib64/libudev.so.1
./etc/
./etc/udev/
./etc/udev/rules.d/
./etc/udev/udev.conf
./usr/
./usr/include/
./usr/include/udev.h
./usr/include/libudev.h
./usr/include/x86_64-pc-linux-gnu/
./usr/include/x86_64-pc-linux-gnu/udev.h
./usr/lib64/
./usr/lib64/libudev.so
./usr/lib64/pkgconfig/
./usr/lib64/pkgconfig/libudev.pc
./usr/share/
./usr/share/pkgconfig/
./usr/share/pkgconfig/udev.pc
./usr/share/man/
./usr/share/man/man7/
./usr/share/man/man7/udev.7.bz2
./usr/share/man/man5/
./usr/share/man/man5/udev.conf.5.bz2
./usr/share/man/man8/
./usr/share/man/man8/udevd.8.bz2
./usr/share/man/man8/udevadm.8.bz2
./sbin/
./sbin/udevadm
./sbin/udevd
./bin/
./bin/udevadm
 * Package 'sys-fs/eudev-3.2.9' has internal collisions between non-
 * identical files (located in separate directories in the installation
 * image (${D}) corresponding to merged directories in the target
 * filesystem (${ROOT})):
 * 
 *      /usr/bin/udevadm
 *              /bin/udevadm
 *              /sbin/udevadm
 *                      Differences: type, mode
 * 
 * Package 'sys-fs/eudev-3.2.9' NOT merged due to internal collisions
 * between non-identical files. If necessary, refer to your elog messages
 * for the whole content of the above message.
Comment 1 Anthony Basile gentoo-dev 2020-08-06 15:14:59 UTC
Can you explain what usrmerge is and why eudev fails?  I'm not familiar with this.
Comment 2 Andreas Sturmlechner gentoo-dev 2020-08-06 15:32:05 UTC
usrmerge is merging /bin, /sbin and /lib* into their counterparts in /usr. It is supported by baselayout for some time but there is no properly tested migration path yet.[1]

Ebuilds installing into one of the affected dirs provide a flag IUSE="split-usr" that is by default globally enforced. I un-forced "split-usr" and ran the script.[1] Compatibility symlinks are then made from /bin, /sbin and /lib* to their /usr subdirs.

eudev fails because it installs into /usr/bin/udevadm and links to it from /bin/udevadm (and apparently also /sbin/udevadm). sys-fs/udev installed without problems.


[1] https://archives.gentoo.org/gentoo-dev/message/b3cd286057755c46e85ed947aad87377
Comment 3 William Hubbs gentoo-dev 2020-08-17 14:31:11 UTC
/bin is the cannonical location for udevadm.
I'm not sure why you have symlinks to it in /sbin and /usr/bin. I would
look into that and possibly drop them.
Comment 4 Andreas Sturmlechner gentoo-dev 2020-08-18 07:56:19 UTC
(In reply to William Hubbs from comment #3)
> /bin is the cannonical location for udevadm.
> I'm not sure why you have symlinks to it in /sbin and /usr/bin. I would
> look into that and possibly drop them.

You can find the /sbin/udevadm symlink in a current stage3 tarball.
Comment 5 Larry the Git Cow gentoo-dev 2022-10-30 09:34:55 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=75b02a79f8717694050c317553e02fd25fdfd046

commit 75b02a79f8717694050c317553e02fd25fdfd046
Author:     Mike Gilbert <floppym@gentoo.org>
AuthorDate: 2022-10-08 21:58:07 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2022-10-30 09:33:29 +0000

    sys-fs/eudev: wire up 'split-usr' USE flag
    
    Closes: https://bugs.gentoo.org/736080
    Signed-off-by: Mike Gilbert <floppym@gentoo.org>
    Closes: https://github.com/gentoo/gentoo/pull/27700
    Signed-off-by: Sam James <sam@gentoo.org>

 sys-fs/eudev/eudev-3.2.11-r3.ebuild   | 245 ++++++++++++++++++++++++++++++++++
 sys-fs/eudev/eudev-3.2.12_pre3.ebuild |  25 ++--
 sys-fs/eudev/eudev-9999.ebuild        |  25 ++--
 3 files changed, 279 insertions(+), 16 deletions(-)