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 |