On Mon, Aug 3, 2015 at 6:21 AM, Helmut Jarausch <jarau...@skynet.be> wrote: > Hi, > > some update yesterday which was not yet available on August, 1st, complete > broke my system. > (Probably systemd-224) > > I couldn't do anything, especially no downgrading a package. > I had to revert to a backup from July, 29th. > > It turned out that something has installed /lib/udev while removing the > symlink /lib -> /lib64 on my machine. > Therefore /lib did contains nothing but udev which broke my system completely. > > Has anybody made a similar experience or does anybody have explanation for > that? >
My guess is that portage's directory symlink removal check killed it. Whenever portage unmerges a package, it looks for any symlinked directories when it is removing files. If it finds a symlink to a directory for which there are no remaining entries in /var/db/pkg/*/*/CONTENTS, it will remove the symlink. Lots of people ran into this when /var/run was turned into a symlink to /run; as ebuilds moved away from installing things into /var/run, portage started to "randomly" remove the /var/run symlink. I wouldn't call this a portage "bug" since the behavior is intentional. However, we should probably have a keepdir file in some of the more important directories that get created by baselayout to avoid removing important symlinks.