When using LVM and /usr is on a LV, a proper system start is not possible in case that ncurses had been built with GPM support. This is because LVM depends on ncurses which again depends on GPM: As `libgpm' is installed into /usr/lib which is not available at boot time, the boot process will fail. Once you actually tried to boot into the new system, you will be confronted with a b0rken system that you can't easily (as in non-trivially) repair. For the case that anyone reads this who is in search for a solution, here is how I fixed my system: I booted from the live cd, loaded in the device mapper module (modprobe dm-mod), initialized LVM and activated the necessary VGs (vgchange -ay), mounted the necessary LVs to their right place in /chroot/ (e.g. /dev/vg-FOO/usr to /chroot/usr), chrooted into that directory and emerged ncurses from there. But beware that you have to turn off gpm support (for example, by USE=-gpm emerge ncurses). Reproducible: Didn't try Steps to Reproduce: 1. 2. 3.
Perhaps a notice message in the ebuild that lvm should be emerge'd with USE=static if you intend to have /usr on a LV. But else from that there isn't much to say, expect perhaps libgpm and libcurses should be on the same /foo/lib directory.
Stian Skjelstad wrote > Perhaps a notice message in the ebuild that lvm should be emerge'd with > USE=static if you intend to have /usr on a LV. I'd consider this a bad idea, because those messages are easily missed. Especially when emerge --updates compiles several packages in a row---and, in fact, this b0rkeness had been introduced by such an update and I didn't observed it until I restarted (and then I was kind of baffled, as I hadn't changed anything on my own.) > But else from that there isn't much to say, expect perhaps libgpm and libcurses > should be on the same /foo/lib directory. Yes, this seems to be the right solution. At first I thought that gpm should check for the `lvm' USE flag and, if set, libgpm should be installed to /lib. On deeper reflection, this occured to me as being a bad (as in halfway) solution, because it would surely solve this particular case, but just _this_ case. When ncurses is compiled with GPM support, libgpm should always be installed where libncurses is, because quite some system and admin tools depend on it (for instance `ls' and editors as vi, Emacs or nano). Those tools are crucial for a basic rescue system, which the root partition should probably be. And as a libgpm in /usr/lib would render these tools useless, the solution to place libgpm where libncurses is, seems to be right.
*** Bug 84841 has been marked as a duplicate of this bug. ***
*** This bug has been marked as a duplicate of 80403 ***