LINUX.ORG.RU

Сборка пакетов в voidlinux

 ,


0

3

Речь идет об использовании xbps-src. Хочу, например, собрать emacs. Конкретно, emacs-x11.

$ ./xbps-src -N pkg emacs-x11

Казалось бы, все нормально, но кроме чистого emacs ещё будет собираться всякая срань вроде rust, gtk+3 и другой хлам. И уже какой час жду, когда сраст наконец соберется. Причем он нужен для сборки всего лишь одной зависимости - librsvg - которая в итоге даром не нужна.

И это только один пример, подобным образом много какие пакеты собираются.

Почему так плохо сделано? Ещё не успел перейти на void, но начинаю разочаровываться. Сравнивать могу разве что с портами в freebsd, где нет такого безобразия. Да и настраивать их там проще: make config-recursive.

Или я что-то не так делаю?

cast @Iron_Bug.


скорее всего ты не обновил дерево и поэтому собираешь всякую срань из исходников. сделай git pull, ./xbps-src zap и ./xbps-src binary-bootstrap. вся эта срань всё равно подтянется, но в бинарном виде, либо не собирай емакс, либо поправь template чтобы он собирал без librsvg.

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

Дерево-то обновленное. А зависимость от gtk там безусловная:

makedepends="... gtk+-devel gtk+3-devel ..."

Да, это зависимость для сборки, а не для рантайма, но ведь даже для сборки gtk никак не будет нужен совсем.

То есть сама система сборки недостаточно мощная.

Ну и даже если отключить svg для emacs, оно все равно нужно в рекурсивных зависимостях, которые в итоговый пакет(ы) не попадут.

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

по-моему ты не туда смотришь, иди проспись может. librsvg-devel подтягивается когда ты собираешь с опцией svg, её надо отключить. а из исходников ты собираешь потому что xbps-src не может найти бинарные зависимости, поэтому он скачивает исходники и собирает из них. обнови дерево и или переключись на мастер или смержи мастер в ту ветку на которой ты находишься.

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

если тебе gtk не нравится в зависимостях, то сделай патч для сборки без него. что-то типа $(vopt_if gtk gtk+3-devel) и сделай пулл-реквест на гитхабе.

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

$(vopt_if gtk gtk+3-devel)

Тогда будет дублирование. Опция gtk и пакеты emacs-gtk2, emacs-gtk3. Которые суть симлинки на emacs.

Вот в этом дублировании и есть косяк системы сборки.

Нужно сделать так, чтобы можно отключить зависимость не с помощью опций, а зная лишь симлинк, с которого пришли собирать.

А проспаться и правда не помешает, это да.

eve
() автор топика
Последнее исправление: eve (всего исправлений: 2)
Ответ на: комментарий от anonymous

librsvg-devel подтягивается когда ты собираешь с опцией svg

Да, собираю из исходников. Повторюсь, даже если отключить опцию svg для emacs, она librsvg все равно соберется. Уже ответил комментом выше.

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

симлинк нужен для того чтобы из одних исходников собрать сразу несколько пакетов. предположу, что собираются сразу три версии: х11, гтк2 и гтк3. можешь попробовать написать мейнтейнеру и спросить зачем сделано именно так, там есть емейл.

Нужно сделать так, чтобы можно отключить зависимость не с помощью опций, а зная лишь симлинк, с которого пришли собирать.

ну сделай. поспрашивай на #voidlinux можно ли так сделать и если можно, то как.

anonymous
()

xbps-src должен собирать только конечную программу если стоят зависимости и их можно установить. И вообще emacs можно просто установить через xbps-install или xbpsUI.

anonymous
()

Вот так оно выглядит:

[*] Updating repository `https://alpha.de.repo.voidlinux.org/current/musl/x86_64-musl-repodata' ...
x86_64-musl-repodata: 1685KB [avg rate: 12MB/s]
[*] Updating repository `https://alpha.de.repo.voidlinux.org/current/musl/nonfree/x86_64-musl-repodata' ...

Name         Action    Version           New version            Download size
emacs-common install   -                 27.1_1                 37MB
libotf       install   -                 0.9.16_1               68KB
m17n-db      install   -                 1.8.0_1                1271KB
gd           install   -                 2.3.0_2                -
m17n-lib     install   -                 1.8.0_1                264KB
emacs-x11    install   -                 27.1_1                 4438KB

Size to download:               43MB
Size required on disk:         112MB
Space available on disk:        82GB

Do you want to continue? [Y/n]
anonymous
()
Ответ на: комментарий от anonymous

Да это-то понятно :) Emacs я просто как пример привел.

предположу, что собираются сразу три версии: х11, гтк2 и гтк3

Да, именно так. Поэтому зависимости безусловно прописаны, чтобы покрыть все варианты.

написать мейнтейнеру и спросить зачем сделано именно так

И как могло бы быть иначе? Создание симлинков - похоже, единственный способ устранить дублирование в коде шаблонов сборки (файлы template).

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

Похоже, в систему сборки тогда придется внести существенные изменения, и при этом сохранить совместимость. Вряд ли за это кто-то возьмется из разработчиков.

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

это не совсем устранение дублирования, вернее не только это, а сборка сразу нескольких пакетов. ничто не мешает сделать source other/template, это же шелл-скрипт. но пакеты собираются билд-сервером для всех и выкладываются в репу для всех, поэтому наверное есть смысл собрать сразу все варианты, а кому надо скачает тот пакет который ему нужен из репы. пакеты для репы собираются тем же xbps-src.

например gtk+3 и gtk+3-devel собираются одновременно, но заголовки идут в один пакет, а либы в другой.

а gtk+3, да, зависит на librsvg. ну это печалька, ещё один повод не использовать gtk. ну посмотри, может его как-то можно отключить в билде через какие-то флаги. но там наверное месон, короче поспрашивал бы ты лучше на ирц канале.

даже если ты собираешь из исходников, make-зависимости должны поставиться из бинарников. возможно у тебя всё таки не обновлено дерево, ну или в репе ещё нет нужного тебе пакета. -N ты же пробовал убрать, да?

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

Да, без -N подтягиваются бинарные пакеты. Просто мне как раз нужно собирать из исходников, дабы настраивать как надо.

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

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

мейк-зависимости ставятся только в чрут и не попадают к тебе в систему, поэтому нет особого смысла собирать их из исходников. ты вполне можешь поставить их из бинарей, собрать emacs-x11 без свг и после этого поставить его из своей локальной репы чтобы он работал с теми либами которые ты тоже собрал в своей локальной репе из исходников.

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

это не так как в генте, что ты собираешь все зависимости, тут же их устанавливаешь и так по цепочке. ты собираешь свой локальный репозиторий с бинарными пакетами и потом ставишь их из своей локальной репы.

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

мейк-зависимости ставятся только в чрут и не попадают к тебе в систему

О, вот это тот ответ, который я искал, спасибо.

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

Тебе уже говорили чтобы ты просто ставил и зависимости бинарные притянулись.

anonymous
()
19 ноября 2020 г.

Все еще на войде? Ныне xbps-src приказал долго жить и падает.

Главная фишка

config.status: creating Makefile
mv: cannot move './confWOXvTD/out' to 'Makefile': No such file or directory
config.status: error: could not create Makefile
=> ERROR: fluxbox-1.3.7_3: do_configure: '${configure_script} ${configure_args}' exited with 1
=> ERROR:   in do_configure() at common/build-style/gnu-configure.sh:7

В добавок

bash-5.0$ ./xbps-src install bspwm
...
=> bspwm-0.9.10_1: running pre-pkg hook: 05-prepare-32bit ...
=> bspwm-0.9.10_1: running pre-pkg hook: 06-shlib-provides ...
=> bspwm-0.9.10_1: running pre-pkg hook: 90-set-timestamps ...
=> bspwm-0.9.10_1: setting mtimes to Thu Nov 19 18:56:48 MSK 2020
=> bspwm-0.9.10_1: running pre-pkg hook: 99-pkglint-subpkgs ...
=> bspwm-0.9.10_1: running pre-pkg hook: 99-pkglint ...
=> bspwm-0.9.10_1: running pre-pkg hook: 999-collected-rdeps ...
   libxcb>=1.2_1 xcb-util>=0.3.9_1 xcb-util-keysyms>=0.3.9_1 xcb-util-wm>=0.3.9_1 musl>=1.1.21_1

А раньше ругался на проверку, которую нельзя пройти, но резльтат тот же - нет ошибки и нет установленного bspwm.

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

Похоже на косяк сборки самой программы, а не системы сборки как таковой.

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