> какая тебе разница, что там в ебилдах и на чем они написаны? Потому, что в них придется разбираться и править. Как я сказал - мне нужна система идеально подогнана под мои задачи.
> В твоем примере я не увидел ни условий,
packMeta("xorg");
p.dep = ["xf86-input-keyboard", "xkeyboard-config", "xf86-input-mouse", "fonts", "xset", "xsetroot", "xmodmap", "xlsfonts"];
if (video == "i915")
p.dep ~= ["xf86-video-intel"];
if (video == "radeon")
p.dep ~= ["xf86-video-ati"];
if (video == "fglrx")
p.dep ~= ["amd-catalyst"];
> ни циклов. В ебилдах я правда тоже не припомню циклы (зачем они там?),
Если нужно сделать однотипное действие для нескольких объектов (пакетов, архивов, конфигов).
> Да, задача ебилда - покрыть максимально возможное количество
> вариантов использования. В каком месте это недостаток?
Сложнее и дольше модифицировать под свои нужды. Теряется прозрачность и понимание работы системы. Да и сама система абстрагирования от опций через USE флаги мне не нравится: для каждого пакета нужно описывать все опции вместо того, что бы напрямую их указать.
На phoronix (https://www.phoronix.com/forums/forum/phoronix/latest-phoron...) правду говорят, что gentoo до сих пор привязан к gcc-4.9.4? Как у gentoo вообще toolchain собирается/обновляется? Что нужно сделать, чтобы пресобрать систему с другой стандартной библиотекой C (musl)?
> Взять тот же вайн. Что нужно сделать, чтобы в твоем примере добавить
> поддержку alsa
-p.dep = ["xorg", "flex", "bison"];
+p.dep = ["xorg", "flex", "bison", "alsa-lib"];
> И мне не совсем понятно, где в твоем примере патчи (которые нужно применять
> в зависимости от условий).
Патчи (как и исходники и конфиги) хранятся либо в общей директории для всех сборок, либо в директории конкретной сборки. Сперва применяются патчи из общей директории, затем из специфичной для сборки. При необходимости можно вообще отключить автоматическое наложение патчей и прописать все вручную (с условиями или без).
> По поводу static - есть USE-флаг. Да, он есть далеко не у
> всех пакетов.
Вот и я о том же. Все равно все руками править и перепроверять.
> Но ты и не забывай, что далекое не всё
> можно статически слинковать.
Из распространенного - mesa и ff. Или что-то забыл?
> Да и не совсем понятно, зачем это нужно
> - память девать некуда?
Наоборот - если библиотека используется только одним приложением, то статика выгоднее.
https://www.linux.org.ru/news/opensource/12463464/page5#comm...
https://www.linux.org.ru/news/opensource/12463464/page6#comm...
> А выйти за рамки "заранее определенных" USE-флагов легко. Нет никаких "заранее определенных"
> - каждый ebuild описывает те флаги, которые он использует и может
> добавлять те, которых нет ни в одном другом ebuild. Поэтому если
> тебе нужно - копируешь ebuild в локальный репозиторий и делаешь там
> с ним всё, что тебе хочется (хоть с нуля переписывай, если
> тебя вообще всё не устраивает)
У меня все конфиги сборки пакетов - ~800 строк lfs + ~1800 blfs. Что проще по-вашему править?
Если пакет собирается через ./configure --prefix=/usr && make && make install, я просто добавляю одну строку в конфиг (и + одну если есть зависимости):
pack("gtkperf");
p.dep = ["gtk+"];