10.11.2020 08:55, Fabian Groffen пишет:
> On 09-11-2020 19:38:28 +0000, Alexey Sokolov wrote:
>> Hi Fabian
>> I tried to migrate my prefix to 17.1, and there are issues.
>>
>> 1) unsymlink-lib requires "--root ~/gentoo" and otherwise produces an
>> error "/usr/lib is a real directory! was the migration done already?"
> 
> I think unsymlink-lib doesn't have Prefix support, but in addition,
> what unsymlink-lib is trying to achieve, is not a thing perhaps on
> Prefix.
> 
> A prefix system (at least all of mine) doesn't have libXX or lib/XX
> (a.k.a.  multilib) directories.  The /usr-split was long ago removed,
> and thus what we have is:
> 
>   lib -> usr/lib
> 
> Now, SYMLINK_LIB=no seems to split into lib and lib64, but lib64 does
> not exist on Prefix systems.
> 
> Since Prefix is non-multilib by design*, I wonder if unsymlink-lib is
> necessary in the best case, but going to break the Prefix system in the
> worst case.
> 
> What instructed you to perform the migration?  Was it the news-item?  I
> don't think it should apply for Prefix profiles, and perhaps we should
> be happy the tool won't work.

It was the big scary warning about the deprecation whenever I run
emerge. It contains list of steps.

> * non-multilib is a decision dating back a decade or so, which means
>   effectively any Prefix install you encounter should be non-multilib
> 
> 
>> 2) $ unsymlink-lib --root ~/gentoo --migrate --pretend
>> usage: unsymlink-lib [-h] [-p] [--root ROOT] [--analyze] [--migrate]
>>                      [--rollback] [--finish] [--force-rollback]
>>                      [--resume-finish] [-P PREFIX] [--hardlink]
>> unsymlink-lib: error: Requested action requires root privileges
>>
>> Well, I worked it around by adding "is_root = True" to unsymlink-lib
> 
> Did it do anything to your system like creating a lib64 directory?  Does
> anything work (because I have doubts on whether your system can still
> find the libs in there now).

Yes. Attaching logs.

> 
>>
>> 3) Step 9 (Rebuild gcc) fails:
>> configure:4372: checking whether the C compiler works
>>
>>
>>
>> configure:4394: x86_64-pc-linux-gnu-gcc    conftest.c  >&5
>>
>>
>>
>> /home/user/gentoo/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/as:
>> error while loading shared libraries:
>> libopcodes-2.34.0.gentoo-sys-devel-binutils-st.so: cannot open shared
> 
> Something like this I was suspecting.  Can you still rollback?  If you
> can, I'd try that and hope it restores your system in working order.

Yeah, don't worry, this is my ebuild-testing chroot. I just did "lxc
restore".


-- 
Best regards,
Alexey "DarthGandalf" Sokolov
Analyzing files installed into lib & lib64...

directories that will be moved to /home/user/gentoo/lib/:
	(+ 0 files)

directories whose contents will be split between /home/user/gentoo/lib/ and /home/user/gentoo/lib64/:

orphan dirs/files (not owned by any package) that will be moved to /home/user/gentoo/lib/:
	gentoo
	modprobe.d
	systemd

orphan dirs/files (not owned by any package) that will be kept in /home/user/gentoo/lib64/:
	ld-2.31.so
	ld-linux-x86-64.so.2
	libBrokenLocale-2.31.so
	libBrokenLocale.so.1
	libSegFault.so
	libanl-2.31.so
	libanl.so.1
	libc-2.31.so
	libc.so.6
	libcrypt-2.31.so
	libcrypt.so.1
	libdl-2.31.so
	libdl.so.2
	libkmod.so.2
	libkmod.so.2.3.5
	libm-2.31.so
	libm.so.6
	libmemusage.so
	libmvec-2.31.so
	libmvec.so.1
	libnsl-2.31.so
	libnsl.so.1
	libnss_compat-2.31.so
	libnss_compat.so.2
	libnss_db-2.31.so
	libnss_db.so.2
	libnss_dns-2.31.so
	libnss_dns.so.2
	libnss_files-2.31.so
	libnss_files.so.2
	libnss_hesiod-2.31.so
	libnss_hesiod.so.2
	libpcprofile.so
	libpthread-2.31.so
	libpthread.so.0
	libresolv-2.31.so
	libresolv.so.2
	librt-2.31.so
	librt.so.1
	libthread_db-1.0.so
	libthread_db.so.1
	libutil-2.31.so
	libutil.so.1

directories that will be moved to /home/user/gentoo/usr/lib/:
	(+ 0 files)

directories whose contents will be split between /home/user/gentoo/usr/lib/ and /home/user/gentoo/usr/lib64/:

orphan dirs/files (not owned by any package) that will be moved to /home/user/gentoo/usr/lib/:
	Mcrt1.o
	Scrt1.o
	audit
	binutils
	cmake
	crt1.o
	crti.o
	crtn.o
	debug
	engines-1.1
	gawk
	gcc
	gconv
	gcrt1.o
	gettext
	glibc-2.31
	help2man
	libffi
	misc
	perl5
	pkgconfig
	portage
	python-exec
	python3.7
	systemd
	terminfo
	tmpfiles.d
	xml2Conf.sh

orphan dirs/files (not owned by any package) that will be kept in /home/user/gentoo/usr/lib64/:
	libBrokenLocale.a
	libBrokenLocale.so
	libacl.so
	libacl.so.1
	libacl.so.1.1.2253
	libanl.a
	libanl.so
	libasprintf.so
	libasprintf.so.0
	libasprintf.so.0.0.0
	libassuan.so
	libassuan.so.0
	libassuan.so.0.8.3
	libattr.so
	libattr.so.1
	libattr.so.1.1.2448
	libb2.so
	libb2.so.1
	libb2.so.1.0.4
	libblkid.so
	libblkid.so.1
	libblkid.so.1.1.0
	libbz2.so
	libbz2.so.1
	libbz2.so.1.0
	libbz2.so.1.0.6
	libc.a
	libc.so
	libc_nonshared.a
	libcrypt.a
	libcrypt.so
	libcrypto.so
	libcrypto.so.1.1
	libcurl.so
	libcurl.so.4
	libcurl.so.4.6.0
	libcurses.so
	libdb-5.3.a
	libdb-5.3.la
	libdb-5.3.so
	libdb.a
	libdb.so
	libdl.a
	libdl.so
	libexpat.so
	libexpat.so.1
	libexpat.so.1.6.10
	libexpatw.so
	libexpatw.so.1
	libexpatw.so.1.6.10
	libfdisk.so
	libfdisk.so.1
	libfdisk.so.1.1.0
	libffi.so
	libffi.so.7
	libffi.so.7.1.0
	libfl.a
	libform.so
	libform.so.6
	libform.so.6.2
	libformw.so
	libformw.so.6
	libformw.so.6.2
	libg.a
	libgcrypt.so
	libgcrypt.so.20
	libgcrypt.so.20.2.6
	libgdbm.so
	libgdbm.so.6
	libgdbm.so.6.0.0
	libgdbm_compat.so
	libgdbm_compat.so.4
	libgdbm_compat.so.4.0.0
	libgettextlib-0.21.so
	libgettextlib.so
	libgettextpo.so
	libgettextpo.so.0
	libgettextpo.so.0.5.7
	libgettextsrc-0.21.so
	libgettextsrc.so
	libgmp.so
	libgmp.so.10
	libgmp.so.10.4.0
	libgmpxx.so
	libgmpxx.so.4
	libgmpxx.so.4.6.0
	libgnutls-openssl.so
	libgnutls-openssl.so.27
	libgnutls-openssl.so.27.0.2
	libgnutls.so
	libgnutls.so.30
	libgnutls.so.30.28.1
	libgnutlsxx.so
	libgnutlsxx.so.28
	libgnutlsxx.so.28.1.0
	libgpg-error.so
	libgpg-error.so.0
	libgpg-error.so.0.29.0
	libgpgme.so
	libgpgme.so.11
	libgpgme.so.11.22.0
	libgpgmepp.so
	libgpgmepp.so.6
	libgpgmepp.so.6.9.0
	libhistory.so
	libhistory.so.8
	libhistory.so.8.0
	libhogweed.so
	libhogweed.so.6
	libhogweed.so.6.0
	libidn2.so
	libidn2.so.0
	libidn2.so.0.3.7
	libkmod.so
	libksba.so
	libksba.so.8
	libksba.so.8.11.6
	libltdl.la
	libltdl.so
	libltdl.so.7
	libltdl.so.7.3.1
	liblzma.so
	liblzma.so.5
	liblzma.so.5.2.5
	libm.a
	libm.so
	libmagic.so
	libmagic.so.1
	libmagic.so.1.0.0
	libmcheck.a
	libmenu.so
	libmenu.so.6
	libmenu.so.6.2
	libmenuw.so
	libmenuw.so.6
	libmenuw.so.6.2
	libmount.so
	libmount.so.1
	libmount.so.1.1.0
	libmpc.so
	libmpc.so.3
	libmpc.so.3.2.0
	libmpfr.so
	libmpfr.so.6
	libmpfr.so.6.1.0
	libmvec.a
	libmvec.so
	libncurses++.so
	libncurses++.so.6
	libncurses++.so.6.2
	libncurses++w.so
	libncurses++w.so.6
	libncurses++w.so.6.2
	libncurses.so
	libncurses.so.6
	libncurses.so.6.2
	libncursesw.so
	libncursesw.so.6
	libncursesw.so.6.2
	libnettle.so
	libnettle.so.8
	libnettle.so.8.0
	libnghttp2.so
	libnghttp2.so.14
	libnghttp2.so.14.20.0
	libnpth.so
	libnpth.so.0
	libnpth.so.0.1.2
	libnss_compat.so
	libnss_db.so
	libnss_dns.so
	libnss_files.so
	libnss_hesiod.so
	libpanel.so
	libpanel.so.6
	libpanel.so.6.2
	libpanelw.so
	libpanelw.so.6
	libpanelw.so.6.2
	libpcre.so
	libpcre.so.1
	libpcre.so.1.2.12
	libpcre2-8.so
	libpcre2-8.so.0
	libpcre2-8.so.0.10.0
	libpcre2-posix.so
	libpcre2-posix.so.2
	libpcre2-posix.so.2.0.3
	libpcrecpp.so
	libpcrecpp.so.0
	libpcrecpp.so.0.0.2
	libpcreposix.so
	libpcreposix.so.0
	libpcreposix.so.0.0.7
	libperl.so
	libperl.so.5.30
	libperl.so.5.30.3
	libpkgconf.a
	libpkgconf.so
	libpkgconf.so.3
	libpkgconf.so.3.0.0
	libpopt.so
	libpopt.so.0
	libpopt.so.0.0.0
	libprocps.so
	libprocps.so.8
	libprocps.so.8.0.2
	libpthread.a
	libpthread.so
	libpython3.7m.so
	libpython3.7m.so.1.0
	libreadline.so
	libreadline.so.8
	libreadline.so.8.0
	libresolv.a
	libresolv.so
	librt.a
	librt.so
	libsandbox.so
	libseccomp.so
	libseccomp.so.2
	libseccomp.so.2.4.3
	libsmartcols.so
	libsmartcols.so.1
	libsmartcols.so.1.1.0
	libssl.so
	libssl.so.1.1
	libtasn1.so
	libtasn1.so.6
	libtasn1.so.6.6.0
	libtextstyle.so
	libtextstyle.so.0
	libtextstyle.so.0.1.1
	libthread_db.so
	libtinfo.so
	libtinfo.so.6
	libtinfo.so.6.2
	libtinfow.so
	libtinfow.so.6
	libtinfow.so.6.2
	libunistring.so
	libunistring.so.2
	libunistring.so.2.1.0
	libutil.a
	libutil.so
	libuuid.so
	libuuid.so.1
	libuuid.so.1.3.0
	libxml2.so
	libxml2.so.2
	libxml2.so.2.9.10
	libz.so
	libz.so.1
	libz.so.1.2.11
	libzstd.so
	libzstd.so.1
	libzstd.so.1.4.4
	locale
	preloadable_libintl.so

directories that will be moved to /home/user/gentoo/usr/local/lib/:
	(+ 0 files)

directories whose contents will be split between /home/user/gentoo/usr/local/lib/ and /home/user/gentoo/usr/local/lib64/:


Warning: no lib32 paths found. This is fine if you are running no-multilib,
otherwise this is suspicious.


The state has been saved and the migration is ready to proceed.
To initiate it, please run:

	/home/user/gentoo/usr/lib/python-exec/python3.7/unsymlink-lib --migrate

Please do not perform any changes to the system at this point.
If you performed any changes, please rerun the analysis.
total 55928
-rw-r--r-- 1 user user     6533 Nov 10 09:18 analyze.log
drwxr-xr-x 1 user user      790 Oct  6 20:11 bin
drwxr-xr-x 1 user user     1052 Nov 10 09:17 etc
lrwxrwxrwx 1 user user        7 Nov 10 09:19 lib -> lib.new
drwxr-xr-x 1 user user       46 Nov 10 09:19 lib.new
drwxr-xr-x 1 user user     1334 Oct  9 19:44 lib64
-rw-r--r-- 1 user user        0 Nov 10 09:19 ls-l.log
-rw-r--r-- 1 user user     1448 Nov 10 09:19 migrate-pretend.log
-rw-r--r-- 1 user user      838 Nov 10 09:19 migrate.log
drwxr-xr-x 1 user user        0 Jul 20 00:04 run
drwxr-xr-x 1 user user      212 Oct  6 20:11 sbin
-rw-r--r-- 1 user user  1467019 Jul 19 23:48 stage1.log
-rw-r--r-- 1 user user 11120838 Jul 20 00:04 stage2.log
-rw-r--r-- 1 user user 44644530 Jul 20 00:49 stage3.log
-rwxr-xr-x 1 user user     3327 Jul 20 08:18 startprefix
-rwxr-xr-x 1 user user     3332 Sep  1 23:12 startprefix2
drwxr-xr-x 1 user user        0 Jul 20 08:12 tmp
drwxr-xr-x 1 user user      130 Nov 10 09:19 usr
drwxr-xr-x 1 user user       42 Jul 20 00:43 var
[/home/user/gentoo/lib32] & /home/user/gentoo/lib -> /home/user/gentoo/lib.new ...
[/home/user/gentoo/usr/lib32] & /home/user/gentoo/usr/lib -> /home/user/gentoo/usr/lib.new ...
[/home/user/gentoo/usr/local/lib32] & /home/user/gentoo/usr/local/lib -> /home/user/gentoo/usr/local/lib.new ...
Updating: /home/user/gentoo/lib -> lib.new ...
Updating: /home/user/gentoo/usr/lib -> lib.new ...
Updating: /home/user/gentoo/usr/local/lib -> lib.new ...


Initial migration complete. Please now test whether your system works
correctly. It might be a good idea to try rebooting it. Once tested,
complete the migration and clean up backup files via calling:

	/home/user/gentoo/usr/lib/python-exec/python3.7/unsymlink-lib --finish

If you wish to revert the changes, run:

	/home/user/gentoo/usr/lib/python-exec/python3.7/unsymlink-lib --rollback
Those are the actions that would be performed:
mkdir /home/user/gentoo/lib.new
cp -a --reflink=auto -- /home/user/gentoo/lib/systemd /home/user/gentoo/lib/gentoo /home/user/gentoo/lib/modprobe.d /home/user/gentoo/lib.new/
mkdir /home/user/gentoo/usr/lib.new
cp -a --reflink=auto -- /home/user/gentoo/usr/lib/xml2Conf.sh /home/user/gentoo/usr/lib/Scrt1.o /home/user/gentoo/usr/lib/libffi /home/user/gentoo/usr/lib/python-exec /home/user/gentoo/usr/lib/gettext /home/user/gentoo/usr/lib/terminfo /home/user/gentoo/usr/lib/python3.7 /home/user/gentoo/usr/lib/systemd /home/user/gentoo/usr/lib/portage /home/user/gentoo/usr/lib/cmake /home/user/gentoo/usr/lib/Mcrt1.o /home/user/gentoo/usr/lib/gconv /home/user/gentoo/usr/lib/binutils /home/user/gentoo/usr/lib/debug /home/user/gentoo/usr/lib/perl5 /home/user/gentoo/usr/lib/gcc /home/user/gentoo/usr/lib/help2man /home/user/gentoo/usr/lib/gcrt1.o /home/user/gentoo/usr/lib/crtn.o /home/user/gentoo/usr/lib/crt1.o /home/user/gentoo/usr/lib/glibc-2.31 /home/user/gentoo/usr/lib/misc /home/user/gentoo/usr/lib/gawk /home/user/gentoo/usr/lib/tmpfiles.d /home/user/gentoo/usr/lib/pkgconfig /home/user/gentoo/usr/lib/audit /home/user/gentoo/usr/lib/crti.o /home/user/gentoo/usr/lib/engines-1.1 /home/user/gentoo/usr/lib.new/
mkdir /home/user/gentoo/usr/local/lib.new
ln -s -f -T lib.new /home/user/gentoo/lib
ln -s -f -T lib.new /home/user/gentoo/usr/lib
ln -s -f -T lib.new /home/user/gentoo/usr/local/lib

Reply via email to