LINUX.ORG.RU

New 17.0 profiles in the Gentoo repository

 , ,


1

4

Прилетело вот такое в eselect news

2017-11-30-new-17-profiles
  Title                     New 17.0 profiles in the Gentoo repository
  Author                    Andreas K. Hüttel <dilfridge@gentoo.org>
  Posted                    2017-11-30
  Revision                  1

We have just added (for all arches except arm and mips, these follow
later) a new set of profiles with release version 17.0 to the Gentoo 
repository. These bring three changes:
1) The default C++ language version for applications is now C++14.
   This change is mostly relevant to Gentoo developers. It also
   means, however, that compilers earlier than GCC 6 are masked 
   and not supported for use as a system compiler anymore. Feel 
   free to unmask them if you need them for specific applications.
2) Where supported, GCC will now build position-independent
   executables (PIE) by default. This improves the overall
   security fingerprint. The switch from non-PIE to PIE binaries,
   however, requires some steps by users, as detailed below.
3) Up to now, hardened profiles were separate from the default
   profile tree. Now they are moving into the 17.0 profile
   as a feature there, similar to "no-multilib" and "systemd".

Please migrate away from the 13.0 profiles within the six weeks after
GCC 6.4.0 has been stabilized on your architecture. The 13.0 profiles
will be deprecated then and removed in half a year.

If you are not already running a hardened setup with PIE enabled, then
switching the profile involves the following steps: 
If not already done,
* Use gcc-config to select gcc-6.4.0 or later as system compiler
* Re-source /etc/profile:
    . /etc/profile
* Re-emerge libtool
    emerge -1 sys-devel/libtool
Then, 
* Select the new profile with eselect
* Re-emerge, in this sequence, gcc, binutils, and glibc
    emerge -1 sys-devel/gcc:6.4.0
    emerge -1 sys-devel/binutils
    emerge -1 sys-libs/glibc
* Rebuild your entire system
    emerge -e @world

Switching the profile from 13.0 to 17.0 modifies the settings of 
GCC 6 to generate PIE executables by default; thus, you need to do 
the rebuilds even if you have already used GCC 6 beforehand.
If you do not follow these steps you may get spurious build
failures when the linker tries unsuccessfully to combine non-PIE
and PIE code.

В общем, всё в принципе понятно, я сделал всё до последнего шага, а именно до

emerge -e @world
. Насколько действительно необходимо это делать? Что будет, если я это пропущу, и буду обновлять мир также, как и прежде?.. что может сломаться? Не очень понимаю.

Не хочется пересобирать действительно всё - может, достаточно пересобрать то, что необходимо - какие-то средства сборки, библиотеки?.. Что ещё, кроме gcc, binutils, glibc?

Ответ на: комментарий от GAMer

Только проприетарщина и wine?

По памяти: wine, grub2, steam и зоопарк разнообразный игорей. Вообще можно жить на nomultilib с multilib chroot для зоопарка ну или наоборот. Главное не это а то, что multilib на amd64 считай что дефолт, потому что мало кто гонится за nomultilib-ом, и менно на этом самом дефолте официальный 17й профиль ломает не какую-то некому не нужную ерунда а просто сам sys-libs/glibc.

Не помню писал я здесь или нет... но за прошедшую неделю я трижды пересобирал систему с нуля. И каждый раз всё заходило в неразрешимые тупики. Последний раз меня, как и автора бага, спас откат профиля.

init_6 ★★★★★
()
Ответ на: комментарий от init_6

Так что, мне откатываться, пока не поломал? Или таки подождать, пока исправят?

Кстати, gcc у меня версии 6.4.0, я как-то не гнался за 7.2.0... может, версия gcc таки имеет значение?

BattleCoder ★★★★★
() автор топика
Последнее исправление: BattleCoder (всего исправлений: 1)
Ответ на: комментарий от BattleCoder

Так что, мне откатываться, пока не поломал? Или таки подождать, пока исправят?

Если последние дней 15 ничего не обновлял и на 17е профили не начинал мигрировать то сиди спокойно дальше и следи за тем ^ багом. Если уже перешел на 17е профили гарантрированное решение откатить на коммит раньше приведенного - в том месте последняя точка в которой 17е профили были рабочими с остальными портежами всё ок.

Кстати, gcc у меня версии 6.4.0, я как-то не гнался за 7.2.0... может, версия gcc таки имеет значение?

Версии gcc/glibc не играют никакой роли потому что ломает их настройки профиля.

init_6 ★★★★★
()
Ответ на: комментарий от init_6

Перешёл и обновил весь мир скорее всего до того злополучного коммита. Мне самому откатить, или всё-таки подождать, пока откатят в дереве?.. Я как бы привык через emerge --sync обновляться (это все мои откаты будет стирать).

BattleCoder ★★★★★
() автор топика
Ответ на: комментарий от BattleCoder

Мне самому откатить, или всё-таки подождать, пока откатят в дереве?

Предупреждён слодовательно вооружен. А как поступать решать тебе. Я делаю микс из старых профилей и новых портежей и жду фикса.

init_6 ★★★★★
()
Ответ на: комментарий от init_6

Я так понял, ничего не выстрелит, если прямо сейчас я не решусь пересобрать gcc/glibc - а я этого делать не собираюсь, пока новая версия не выйдет как минимум. Предупреждён, значит, вооружён.

А остальные пакеты наверное обновлять безопасно, ломается только glibc (ну во всяком случае его разрушение более фатально и сложнее восстановимо).

BattleCoder ★★★★★
() автор топика
Ответ на: комментарий от init_6

Переключился на 17 профиль и пересобрал всё 9-го числа, то есть уже с этим коммитом, всё работает. Флаг multilib у glibc и gcc установлен. /lib32/libc-2.25.so на месте. ЧЯДНТ?

anonymous
()
Ответ на: комментарий от anonymous

Поздравляю ты выиграл в эту лотерею.

init_6 ★★★★★
()

17.1 уже подоспел. на одном компе с мультилиб перешёл, отвалился nfs, но всё вылечилось симлинком.

Deleted
()
Ответ на: комментарий от Deleted

А больше ничего не поломалось?.. Каким symlink? Случайно не тем самым, что lib64 -> lib ? trollface.png который вроде как удалить надо при обновлении профиля? https://wiki.gentoo.org/wiki/Project:AMD64/Multilib_layout

BattleCoder ★★★★★
() автор топика
Ответ на: комментарий от BattleCoder

А больше ничего не поломалось?

нет

Каким symlink? Случайно не тем самым, что lib64 -> lib ?

да, примерно таким. /usr/lib64/foo/ > /usr/lib/

trollface.png который вроде как удалить надо при обновлении профиля?

нет, удаляются lib32

Deleted
()

действительно необходимо это делать?

Придётся, так или иначе. В противном случае у тебя больше половины пакетов просто перестанут собираться из-за ошибок линковки, и ты руками будешь пересобирать большую часть пакетов

XMs ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.