Gentoo Archives: gentoo-user

From: Mick <michaelkintzios@×××××.com>
To: gentoo-user@l.g.o
Subject: Re: Aw: Re: [gentoo-user] upgrading (profiles, too)
Date: Thu, 30 May 2019 14:38:43
Message-Id: 51988872.gfSko5mJis@dell_xps
In Reply to: Re: Aw: Re: [gentoo-user] upgrading (profiles, too) by Dale
1 On Thursday, 30 May 2019 02:18:01 BST Dale wrote:
2
3 > I haven't tested the 17.1 profile yet. If you are unsure, I'd just use
4 > 17.0 and wait until 17.1 is released.
5 >
6 > Dale
7 >
8 > :-) :-)
9
10 The 17.1 profile does away with separate /lib directories as explained here:
11
12 https://wiki.gentoo.org/wiki/Project:AMD64/Multilib_layout
13
14 From the relevant enews item:
15
16 ===========================================
17 2017-12-26-experimental-amd64-17-1-profiles
18 Title Experimental amd64 17.1 profiles up for testing
19 Author Michał Górny <mgorny@g.o>
20 Posted 2017-12-26
21 Revision 3
22
23 A new set of 17.1 amd64 profiles has been added to the Gentoo
24 repository. Those profiles switch to a more standard 'no SYMLINK_LIB'
25 multilib layout, and require explicit migration as described below. They
26 are considered experimental at the moment, and have a fair risk
27 of breaking your system. We would therefore like to ask our users to
28 test them on their non-production ~amd64 systems.
29
30 In those profiles, the lib->lib64 compatibility symlink is removed.
31 The 'lib' directory becomes a separate directory, that is used
32 for cross-arch and native non-library packages (gcc, clang) and 32-bit
33 libraries on the multilib profile (for better compatibility with
34 prebuilt x86 packages).
35
36 Migration from both 13.0 and 17.0 profiles is supported. In case
37 of the former, please read the news item for 17.0 upgrade first
38 and enable gcc 6.4.0 or newer first as explained there.
39
40 The migration is performed using app-portage/unsymlink-lib tool.
41 The following steps can be used to upgrade your system:
42
43 1. Sync and upgrade your system to the newest package versions
44 to reduce the risk of issues.
45
46 2. Install the tool, e.g. via 'emerge -1v app-portage/unsymlink-lib'
47
48 3. Run 'unsymlink-lib --analyze' and check the output for obvious
49 mistakes. If you need to perform any changes to the system, remember
50 to run 'unsymlink-lib --analyze' again afterwards.
51
52 [past this point do not call emerge or modify /usr manually]
53
54 4. This is a very good time to make a backup.
55
56 5. Run 'unsymlink-lib --migrate'. You can add '--pretend' first to see
57 what is going to happen.
58
59 6. Reboot your system and see if it still boots. Check if important
60 programs work. In particular, check if e.g. 'emerge --info' works
61 (but do not install anything). If you hit any serious problems,
62 you can use 'unsymlink-lib --rollback' to revert the changes
63 and return to step 3.
64
65 7. Run 'unsymlink-lib --finish'. You can add '--pretend' first to see
66 what is going to happen but note that you're going to see a very long
67 list of files to remove.
68
69 8. Switch the profile, e.g.:
70
71 eselect profile set --force default/linux/amd64/17.1/desktop
72
73 [at this point you can start using emerge again]
74
75 9. Rebuild sys-devel/gcc. If you are switching from 13.0 profiles,
76 rebuild sys-devel/binutils and sys-libs/glibc afterwards.
77
78 10. If you are using a multilib profile, rebuild all 32-bit packages.
79 This can be done using:
80
81 emerge -1v /lib32 /usr/lib32
82
83 Alternatively, if you are switching from one of the 13.0 profiles
84 you can rebuild all packages as detailed in the 17.0 news item.
85
86 11. Once the last 32-bit package is rebuilt, your package manager
87 should remove the orphaned /lib32 and /usr/lib32 symlinks. If that
88 does not happen, remove them manually.
89
90 For known issues, please see bug #506276 [1]. If you have any problems
91 with the new profiles or the migration procedure, please report a bug
92 and make it block the tracker.
93
94 For more information on the layout, please see the wiki article
95 on AMD64 multilib layouts [2].
96
97 [1]:https://bugs.gentoo.org/506276
98 [2]:https://wiki.gentoo.org/wiki/Project:AMD64/Multilib_layout
99 ==============================================================
100
101
102 BTW, the OP may want to read the enews item for upgrading to 17.0 profile
103 first, just in case he needs to make any changes to his gcc and rebuild his
104 toolchain:
105
106 ==========================
107 2017-11-30-new-17-profiles
108 Title New 17.0 profiles in the Gentoo repository
109 Author Andreas K. Hüttel <dilfridge@g.o>
110 Posted 2017-11-30
111 Revision 1
112
113 We have just added (for all arches except arm and mips, these follow
114 later) a new set of profiles with release version 17.0 to the Gentoo
115 repository. These bring three changes:
116 1) The default C++ language version for applications is now C++14.
117 This change is mostly relevant to Gentoo developers. It also
118 means, however, that compilers earlier than GCC 6 are masked
119 and not supported for use as a system compiler anymore. Feel
120 free to unmask them if you need them for specific applications.
121 2) Where supported, GCC will now build position-independent
122 executables (PIE) by default. This improves the overall
123 security fingerprint. The switch from non-PIE to PIE binaries,
124 however, requires some steps by users, as detailed below.
125 3) Up to now, hardened profiles were separate from the default
126 profile tree. Now they are moving into the 17.0 profile
127 as a feature there, similar to "no-multilib" and "systemd".
128
129 Please migrate away from the 13.0 profiles within the six weeks after
130 GCC 6.4.0 has been stabilized on your architecture. The 13.0 profiles
131 will be deprecated then and removed in half a year.
132
133 If you are not already running a hardened setup with PIE enabled, then
134 switching the profile involves the following steps:
135 If not already done,
136 * Use gcc-config to select gcc-6.4.0 or later as system compiler
137 * Re-source /etc/profile:
138 . /etc/profile
139 * Re-emerge libtool
140 emerge -1 sys-devel/libtool
141 Then,
142 * Select the new profile with eselect
143 * Re-emerge, in this sequence, gcc, binutils, and glibc
144 emerge -1 sys-devel/gcc:6.4.0
145 emerge -1 sys-devel/binutils
146 emerge -1 sys-libs/glibc
147 * Rebuild your entire system
148 emerge -e @world
149
150 Switching the profile from 13.0 to 17.0 modifies the settings of
151 GCC 6 to generate PIE executables by default; thus, you need to do
152 the rebuilds even if you have already used GCC 6 beforehand.
153 If you do not follow these steps you may get spurious build
154 failures when the linker tries unsuccessfully to combine non-PIE
155 and PIE code.
156 =============
157
158 HTH.
159 --
160 Regards,
161 Mick

Attachments

File name MIME type
signature.asc application/pgp-signature

Replies

Subject Author
[gentoo-user] Re: upgrading (profiles, too) "»Q«" <boxcars@×××.net>
Re: Aw: Re: [gentoo-user] upgrading (profiles, too) Dale <rdalek1967@×××××.com>