LINUX.ORG.RU

30
Всего сообщений: 324

portage и go.mod

А есть какой тулз для генерации ebuild или типа того из файла go.mod? Для CPAN вроде что-то было похожее. Надо нагенерировать ebuild'ов из портянки

require (
        cloud.google.com/go v0.34.0
        github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6 // indirect
        github.com/aws/aws-sdk-go v1.16.17
        github.com/bitly/go-simplejson v0.5.0 // indirect
        github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869 // indirect
....

но такой объем тащить - сдохнуть можно.

 ,

macumazan ()

Если изменился .eclass-файл

то какой командой пересобрать всё [потенциально] задетые таким изменением .ebuild-файлы ?

 ,

Einstok_Fair ()

use custom filter mask in emerge

Knowledge Base:Masking a package

Хотелось бы вместо

# grep pre package.mask

=media-libs/glm-0.9.9.5_pre
=media-gfx/gimp-2.10.10_pre
=sys-apps/busybox-1.30.0_pre

написать

*/*_pre
или даже точнее
*/*_pre$

но увы не работают оба фильтра возможно ли прописать подобный фильтр в package.mask?

 , , ,

perestoronin ()

Как промёржить eselect-repository?

# emerge -av eselect-repository

These are the packages that would be merged, in order:

Calculating dependencies /

!!! Problem resolving dependencies for app-eselect/eselect-repository
... done!

!!! The ebuild selected to satisfy "eselect-repository" has unmet requirements.
- app-eselect/eselect-repository-6::gentoo USE="" ABI_X86="(64)" PYTHON_SINGLE_TARGET="python3_6 -python3_4 -python3_5 -python3_7" PYTHON_TARGETS="python3_4 python3_5 -python3_6 -python3_7"

  The following REQUIRED_USE flag constraints are unsatisfied:
    python_single_target_python3_6? ( python_targets_python3_6 )

  The above constraints are a subset of the following complete expression:
    exactly-one-of ( python_single_target_python3_4 python_single_target_python3_5 python_single_target_python3_6 python_single_target_python3_7 ) python_single_target_python3_4? ( python_targets_python3_4 ) python_single_target_python3_5? ( python_targets_python3_5 ) python_single_target_python3_6? ( python_targets_python3_6 ) python_single_target_python3_7? ( python_targets_python3_7 )

Он же показывает, что в PYTHON_SINGLE_TARGET и так ровно одно значение - python3_6, что ему не нравится? Слава понятным диагностическим сообщениям!

 ,

Einstok_Fair ()

emerge --ask увидеть в списке имя оверлея

У emerge есть опция --ask показывает список какой пакет и чем обновляться будет. Хотелось бы видеть дополнительно в этом списке и имя оверлея.

Это возможно? Если нет, то может кто-то уже подпиливал эту опцию до желаемого мною ?

 , ,

perestoronin ()

Как правильно использовать IUSE, USE_MYAPP и MYAPP_TARGETS ?

продолжение топика как опакечивать плагины к программе

https://github.com/gentoo/gentoo/blob/master/app-misc/pip3line/pip3line-3.5.4...
Почему в этом билде обработка идёт для всех третьих питонов, а не только для тех, которые были выбраны пользователем
(т.е. почему нет проверки if use ${target}; then ... fi )

Нужна ли мне в моём пакете вот такая проверка:
https://github.com/gentoo/gentoo/blob/master/dev-lang/python/python-3.7.0.ebu...
И соответственно, должен ли я делать программу myapp-updater?

https://wiki.gentoo.org/wiki/Project:Python/PYTHON_TARGETS
для чего PYTHON_SINGLE_TARGET является USE_EXPAND-переменной, она же SINGLE! ???
я бы ещё понял, если бы у них значения совпадали, так ведь нет - разные получаются:
python_targets_python3_5
python_single_target_python3_5

Как лучше делать - использовать подход как у PYTHON_SINGLE_TARGET, или как у RUBY_TARGETS_PREFERENCE
https://github.com/gentoo/gentoo/blob/master/eclass/ruby-utils.eclass#L21
?
Они вообще одну и ту же задачу решают, или есть разница? В чём она заключается?

Почему .eclass для Ruby
https://github.com/gentoo/gentoo/blob/master/eclass/ruby-ng.eclass#L388
не следует гайдлайнам (которые говорят, что если ничего не указано, то нужно устанавливать для всех версий)?
Как делать мне - как написано делать, или как делают некоторые остальные? (postgres)

Что проверяют такой зверской проверкой при помощи awk:
https://github.com/gentoo/gentoo/blob/master/www-apps/redmine/redmine-3.3.7.e...
можно ли было обойтись без awk? Для чего эта проверка вообще и нужна ли она мне?

И самое главное, в чём разница между переменной MYAPP_TARGETS внутри .ebuild-а для плагина, и переменной MYAPP_TARGETS на уровне /etc/portage/make.conf ?
Почему в одних случаях переменная называется MYAPP_TARGETS, а в других случаях USE_MYAPP? В чём разница между ними?
Если бы переменная называлась IUSE_MYAPP, этих вопросов бы не было (наверное).

Как emerge понимает, что в списке USE-флагов нужно показывать сокращённые флаги из какой-то конкретной USE_EXPAND-переменной? Ведь таких переменных много разных, а к пакету относится одна (хотя может быть и не одна, теоретически, а по количеству зависимостей).
(и вообще, видны ли эти USE-флаги? а то может их и вовсе не видно)

Как потом этим пользоваться?

Здесь
https://devmanual.gentoo.org/ebuild-writing/variables/
написано, что

IUSE A list of all USE flags (excluding arch flags, but including USE_EXPAND flags) used within the ebuild.

Что мне надо писать, чтобы сдержимое MYAPP_TARGETS попало в состав IUSE в развёрнутом виде?
(читал вывод команды grep -R «IUSE.*TARGETS» /usr/portage, не нашел ничего подходящего)
вот это:
https://github.com/gentoo/gentoo/blob/master/app-i18n/tomoe/tomoe-0.6.0-r3.eb...

IUSE=«hyperestraier mysql python ruby ${USE_RUBY//ruby/ruby_targets_ruby} static-libs subversion»

Это так и надо, или это неправильный кусочек кода?

Если бы это делал я, я бы сделал функцию в каком-нибудь .eclass-файле, которая удлинняет или оставляет флаги как есть, в зависимости от настроек системы. Т.е. если MYAPP_TARGETS добавлена в USE_EXPAND, то надо удлинять название USE-флага, а если нет, то нет. Есть ли такая функция, в каком eclass-файле и как эта функция называется?

Чего я в итоге хочу добиться? Понимания того, какие шаги нужно выполнить, для того, чтобы сделать пакеты для плагинов «по всем правилам». Мне плевать на правила написания ебилдов (плевать это модно и молодёжно в среде, подобной LOR-у), но нужно покрыть все частые сценарии использования, чтобы потом не лезли баги. Оговорка про наплевательство написана специально, чтобы не было (вообще говоря, хамских) комментариев "не парься" от разных неумёх.

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

 , ,

Einstok_Fair ()

В каком пакетном менеджере можно произвольно объединять профили?

Пакетных менеджеров примерно два-с-половиной - portage, paludis и что-то там из funtoo.

Позволяет ли какой-нибудь из них не только наследовать профили друг от друга, но и просто накладывать одни на другие по списку?

Мне это нужно для того, чтобы запихнуть свой профиль незаметно в середину.

 ,

Einstok_Fair ()

Gentoo Зависает emerge

Зависает emerge на установке.

Completed installing screen-4.6.1 into /var/tmp/portage/app-misc/screen-4.6.1/image/ * Final size of build directory: 4928 KiB (4.8 MiB) * Final size of installed tree: 1504 KiB (1.4 MiB)

 ,

nillerusr ()

Проблемы со сборкой пакетов в префиксе в Gentoo

Мне нужна пара статически слинкованных пакетов для initramfs, в частности cryptsetup и lvm. Я не хочу загаживать систему, так что хотелось бы пособирать их в чистом префиксе. Есть две проблемы.

Во-первых, мой конфиг из $PREFIX/etc/portage/make.conf не читается, а берётся системный из /etc. Хотелось бы, чтобы он читался, а то задавать use-флаги вручную через переменные окружения как-то не очень.

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

Я пробовал разные комбинации ROOT и SYSROOT, но кажется, что их недостаточно для достижения нужного мне поведения. Portage вообще так умеет? Вроде должна, т.к. процесс очень напоминает банальный бутстрэп.

 

tsmx ()

Дебужные и релизные версии всего или выбранного софта.

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

Как разные пакетные менеджеры помогают решить такую задачу?
интересуют portage, nix

И при этом я хочу продолжать пользоваться релизным вариантом предыдущей версии этой программы.

Слоты! говорят гентушники. Ноо, блин... Не подходят они для этого сценария использования.

ставить в chroot всю систему целиком в дебужном варианте? Хотелось бы не всю, а только для одной программы. Как прописать дебужные USE-флаги для всех зависимостей указанного пакета? (В смысле автоматизированно, а не руками).

 ,

Einstok_Fair ()

На какие цели portage при обновлении съедает всю память?

...
* Manifest timestamp: 2018-11-02 22:38:39 UTC
 * Valid OpenPGP signature found:
 * - primary key: DCD05B71EAB94199527F44ACDB6B8C1F96D8BF6D
 * - subkey: E1D6ABB63BFCFB4BA02FDF1CEC590EEAC9189250
 * - timestamp: 2018-11-02 22:38:39 UTC
 * Verifying /usr/portage/.tmp-unverified-download-quarantine ...                                                                                                                                                  [ ok ]
Traceback (most recent call last):
  File "/usr/lib64/python2.7/site-packages/portage/util/_async/AsyncFunction.py", line 39, in _run
    result = self.target(*(self.args or []), **(self.kwargs or {}))
  File "/usr/lib64/python2.7/site-packages/portage/sync/controller.py", line 168, in sync
    taskmaster.run_tasks(tasks, func, status, options=task_opts)
  File "/usr/lib64/python2.7/site-packages/portage/sync/controller.py", line 67, in run_tasks
    result = getattr(inst, func)(**kwargs)
  File "/usr/lib64/python2.7/site-packages/portage/sync/syncbase.py", line 253, in sync
    return self.update()
  File "/usr/lib64/python2.7/site-packages/portage/sync/modules/rsync/rsync.py", line 458, in update
    self._remove_download(download_dir)
  File "/usr/lib64/python2.7/site-packages/portage/sync/modules/rsync/rsync.py", line 108, in _remove_download
    exitcode = subprocess.call(['rm', '-rf', download_dir])
  File "/usr/lib64/python2.7/subprocess.py", line 172, in call
    return Popen(*popenargs, **kwargs).wait()
  File "/usr/lib64/python2.7/subprocess.py", line 394, in __init__
    errread, errwrite)
  File "/usr/lib64/python2.7/subprocess.py", line 938, in _execute_child
    self.pid = os.fork()
OSError: [Errno 12] Cannot allocate memory

Action: sync for repo: gentoo, returned code = 1

 ,

Einstok_Fair ()

app-portage/pfl

А как/откуда/'у кого' можно базу файлов забрать к себе в оффлайн?

 ,

macumazan ()

Gentoo и ccache

Кто-нибудь может поделиться настройками для использования ccache в portage? Как ни пытаюсь настроить использование (для определённого пакета), на этапе установки всё равно пытается создать /root/.ccache или что-то записать туда и вываливается с ошибкой.

Ещё зачем-то создаёт каталог /var/tmp/portage/.ccache со своим конфигом при этом

 , ,

grem ()

Portage затеял массовую пересборку

Сегодня portage просто так предлагает пересобрать более 200 пакетов, среди которых простая пересборка gcc, не вызванная изменениями каких-либо USE-флагов.

Последнее полное обновление происходило 2-3 дня назад. Никаких изменений в /etc/portage не проводилось.

Выглядит так, как будто обновление не производилось уже недели три.

Вопрос: чем может быть вызвана попытка массовой пересбоки пакетов?

sync-uri = rsync://rsync.gentoo.org/gentoo-portage

 ,

early_britney_fun ()

Разъясните про wayland в свежих апдейтах генты.

Обновил тут portage, смотрю, а многие пакеты в частности из кде хотят пересобраться с применением wayland. А оно само еще и пытается выпилить у меня mesa (а в игоры я играю как раз). Но к счастью есть флаг -wayland. Только я в раздумии стоит ли его глобально ставить? Нужен ли вейланд вообще и какая с него польза? В частности на другом компе где федора, этот самый вейланд мне попортил жизнь несовместимостью с невидивскими дровами (и соответственно тормозами у достаточно слабой видюхи, которая на родных справлялась с видео без лагов, а тут ютуб слайдшоу стал). Я особо не вникал, ибо исповедую принцип «работает и не трогай», но может в нем есть какая польза (польза это кроме «новое» и «стильно-модно-молодежно»)? Поясните вкратце - что в нем хорошего и ЧЕМ он лучше с точки зрения пользователя?

 , ,

justin_case ()

Проблемы с обновлением мира (Gentoo)

Всем привет. Проблема в следующем: не обновлял мир целый год. Сейчас пришло самое время - получаю кучу конфликтов, и как проще поступить во всем этом, пока не знаю.

Вывод Portage: https://pastebin.com/Zw6403MZ package.use: https://pastebin.com/VbyyN52B Вывод emerge --info: https://pastebin.com/196yUfmz

 , ,

msdnna ()

pbzip2 binhost

Есть какие-то доки/маны, как прикрутить pbzip2 к portage? Если через PORTAGE_BINPKG_TAR_OPTS, то на сжатие работает норм, но распаковка валится.

 

macumazan ()

Подсветка синтаксиса конфигов portage в Kate

Сабж.

Для nano недавно добавили - стало удобнее. Хочу и для kate. Может кто-то уже делал? Ничего не нагуглилось.

 , ,

RazrFalcon ()

Расчёт зависимостей ebuild-ов на GPU

Говорят, что нет большой разницы между paludis и portage по производительности, потому что алгоритмическая сложность задачи высока сама-по-себе, и переход с питона на C++ почти ничего не даёт.

Знаачит, надо переходить с CPU на GPU. Там много процессоров, вот пусть они зависимости и считают.

Интересные ссылки из связанных топиков:
2017-08-18, Реклама https://github.com/gunrock/gunrock
2015-09-25, где алгоритм? - где-то там
2014-10-28, Оценка влияния количества ebuild-ов в дереве на скорость выполнения emerge
2013-11-09, Идея считать на GPU
2013-07-05, про визуализацию зависимостей
2013-02-28, в squashfs запаковать или в базу sqlite, eix

Если бы не расчёт зависимостей у портежа, гента была бы самым фичастым и стабильным дистрибутивом.

- (q) vurdalak

 , ,

Einstok_Fair ()

Как сделать билд-сервер?

Хочется, чтобы пакетный менеджер управлял слоями файловой системы. Т.е. смотрим, какие у пакета зависимости и подкладываем ему подходящие слои, чтобы эти зависимости не компилировать каждый раз, а компилировать только один конкретный пакет. Бы было удобно, если бы это ещё работало при чекинах. Т.е. запушили какой-то коммит и пересобираться стал только один пакет, а не целиком весь оверлей (что гораздо дольше).

Некоторые энтузиасты думают, что я собираюсь заменять пакеты в средних слоях, и при этом рассчитываю, что мне не придётся пересобирать пакеты, которые зависят от них. Это не мои мысли. Это фантазии этих энтузиастов.

Две проблемы России - это энтузиасты и рельеф.

Продемонстрирую на примере одного пакета:
https://github.com/rindeal/rindeal-ebuild-repo/issues/233
https://github.com/rindeal/rindeal-ebuild-repo/issues/234
https://github.com/rindeal/rindeal-ebuild-repo/issues/235

Здесь мы видим, что если бы была возможность пособирать один пакет с разными флагами, то не было бы подряд несколько ошибок.
Я имею в виду пособирать быстро, не собирая все зависимости каждый раз. Для этого и нужны слои.

 ,

Einstok_Fair ()