LINUX.ORG.RU

Удобная работа с оверлеем генту

 , ,


1

1

Привет всем, решил себя попробовать в качестве мейтера пакетов для генту но тут встал вопрос

1)как сделать это удобно, без лишнего гемора, например я создал свою репу закинул нужный пакет собрал работает и потом мог спокойно запушить например в гуру 2)есть ли какие то особые требование для пакетов что бы они прошли проверку или как там гуру

3)ну и советы лично от вас спасибо за внимание



Последнее исправление: SPRATAY (всего исправлений: 2)

Когда ты сделаешь свой оверлей, закидывать что-то куда-то тебе просто не понадобится.

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

Так что все просто заводят персональные оверлеи, добавляют их в список оверлеев (создавая запрос в багтрекере генты) и всё на этом.

Shushundr ★★★
()

И layman (тег, который ты в тему добавил) теперь не модный. Теперь вместо него https://wiki.gentoo.org/wiki/Eselect/Repository

И оверлеи теперь не оверлеи. Они теперь репозитории (тэг #repository).

Shushundr ★★★
()
Последнее исправление: Shushundr (всего исправлений: 2)

https://wiki.gentoo.org/wiki/Project:GURU

Есть несколько статей, посвящённых guru и документации разработчика вообще.

Для забрасывания пакета в guru, в частности, есть одна из них: https://wiki.gentoo.org/wiki/Project:GURU/Information_for_Contributors

В ней описывается, как настроить репу для разработки (она не должна иметь отношения к overlay для установки пакетов по очевидным причичинам - это ветка разработки). Потребуется gpg-ключ для подписи коммитов; ssh-ключ, открытую часть которого нужно будет передать для получения доступа к репозиторию на отправку коммитов. В статье подробнее написано как. Нужно будет указывать в коммитах информацию о себе, анонимы «идут мимо». Баги, связанные с пакетом будут вешаться на тебя, как на ментейнеры.

Для проверки ebuild на ряд ошибок обычно используют команду pkgcheck scan, для генерации Manifest - pkgdev manifest - пакеты pkgcheck, pkgdev.

Начальные приготовления займут некоторое время, но потом даже не вспомнишь как всё это делал. ;)

Что за пакет то хоть? Если что, там либо поправят ebuild, либо подскажут что подправить. В libera irc есть каналы #gentoo-guru и #gentoo-dev-help, где можно задать вопросы по улучшению ebuild.

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

Почему нет?

https://repology.org/project/python:pywal/versions

Для gentoo пакет pywal наверное проще будет собирать на основе tarball из pypi, если получится. Там ebuild очень короткий тогда получается как правило.

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

Наверное, никто пока не заинтересовался.

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

Форкать ничего не нужно, нужно склонировать ветку dev репы https://gitweb.gentoo.org/repo/proj/guru.git и отправлять коммиты в неё после получения доступа с использованием ssh-ключа. Затем через некоторое время коммиты мёрджатся в master.

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

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

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

Не, клонировать по https можно; по ssh клонировать и отправлять коммиты нельзя.

Я обычно в локальной репе проверяю работоспособность, потом перекидываю в репозиторий разработки.

То есть у меня есть основное дерево (portage tree), guru overlay (ветка master для установки пакетов из него), local overlay (локальная репа для своих ebuild и скопированных со стороны). Помимо этого есть каталог разработки, не связанный с оверлеями: guru ветка dev и каталоги других git-проектов.

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

Локальная ветка у меня находится сейчас в /usr/local/portage/local, т.е. все оверлеи лежат в /usr/local/portage/.

В каком смысле выгнали? Соединение иногда пропадает у меня, не знаю зависит это от клиента или нет. Но libera irc (это сторонний сервис) скорее предполагает,что пользователь должен быть зарегистрирован на сервере, емнп.

grem ★★★★★
()

ну и советы лично от вас

Переходишь на арч, заливаешь в aur свои pkgbuild через любимый git. Сам себе хозяин, остальные тебе спасибо говорят. Особые счастливчики, их поделия приютят в официальный extra repository.

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

ну все меня приняли, в групу гуру зашел, локал ветку у себя создал, закинул туда ебилд, проверил через всякие чеки вроде ошибок нет, установил не работает)

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

установил не работает)

«это норма» :)

Чеки скорее на общее оформление проверяют и наличие прописанных зависимостей в дереве или оверлее.

Да,я видел, что тебе ссылку на правила опакечивания приложений python скинули.

Я раньше выходных посмотреть на пакет не смогу, так как компа с генту нет под рукой. Правда что именно делает pywal я не очень понял: ему нужно скормить картинку и он набор цветов её основной палитры выдаст?

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

имено так да, просто у меня imagemagik небыл скомпилирован с флагом юзе, а так вроде заработало O_o к моему удивлению, но мой ебилд сложно сказать что в полне пригоден для повседневного использования, я постараюсь более менее привести его в порядом, а там посмотрите оцените

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

Пуш только через ssh, через что клон был неважно. Попозже свои настройки скину.

Может не запушится в dev (можно только в него), если кто-то успел коммит послать, тогда нужно сделать pull+rebase предварительно

grem ★★★★★
()
Ответ на: комментарий от SPRATAY
  1. Если ты создал ssh-ключ и его добавили для доступа в репозиторий, то можно склонировать dev ветку https guru: https://wiki.gentoo.org/wiki/Project:GURU/Information_for_Contributors

  2. После клонирования, я делаю такой конфиг:

[core]
	repositoryformatversion = 0
	filemode = true
	bare = false
	logallrefupdates = true
	sshCommand = ssh -i ~/.ssh/ssh__key_id -F /dev/null
[remote "origin"]
	url = https://anongit.gentoo.org/git/repo/proj/guru.git
	fetch = +refs/heads/*:refs/remotes/origin/*
	pushurl = git@git.gentoo.org:repo/proj/guru.git
[user]
	name = My_Real_Name My_Real_Surname
	email = my_real@e-mail.org
	signingkey = my_gpg_key_id
[branch "dev"]
	remote = origin
	merge = refs/heads/dev
[push]
	gpgsign = 1
[commit]
	gpgsign = 1
[branch]
	autosetuprebase = always
[pull]
	rebase = true

Каждый коммит в конце подробного описания должен содержать информацию о тебе в виде Signed-off-by: Name <e-mail> - где указываешь твои настоящие имя, фамилию, почту.

Лучше напиши, какую ошибку выдаёт.

Я напрямую через git пушу, pkgdev commit что-то дополнительно дописывает.

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

error: gpg failed to sign the data: [GNUPG:] BEGIN_SIGNING H8 [GNUPG:] PINENTRY_LAUNCHED 2278 curses 1.2.1-unknown - xterm-kitty :0 - 1000/1000 0 gpg: подписать не удалось: Неприменимый к данному устройству ioctl [GNUPG:] FAILURE sign 83918950 gpg: signing failed: Неприменимый к данному устройству ioctl

fatal: сбой записи объекта коммита

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

Так проблемами не в пуше, а в подписи коммита при его создании.

Судя по ошибке, связана она с kitty: https://github.com/kovidgoyal/kitty/issues/3537 если это тот случай.

Kitty то откуда взялся?

Ты, случаем, не пытаешься зайти на сервер репозитория по ssh и создать коммит там?

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

Kitty с официальной репы, да вроде как не пытаюсь зайти, просто хочу сделать коммент и пушануть и все, пробовал через алакрити тоже самое я хз ваще, у меня все работает ключ ssh и подпись gpt в моей репе

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

Мне казалось,что это ssh клиент.

А как именно происходит создание коммита после клонирования репозитория, например, командой git clone -b dev https://gitweb.gentoo.org/repo/proj/guru.git?

Судя по ошибке просто коммит не подписывается вообще, надо сначала с этим разобраться.

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

Gpg ключ с указанием пароля создавался? Возможно, что он не может его запросить.

Можешь попробовать подписать коммит, переключившись в tty. Или попробовать в xterm или терминале, который предоставляет окружение рабочего стола.

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

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

С какими флагами собран gnupg? Установлен ли app-crypt/pinentry?

Что показывает вывод select pinentry list?

В tty просто так тоже не сработает. Какой рабочий стол используется?

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

sudo eselect pinentry list Пароль: Available pinentry binary implementations: [1] pinentry-curses * [2] pinentry-tty

В tty просто так тоже не сработает. Какой рабочий стол используется?

qtile-9999

[I] app-crypt/gnupg
     Доступные версии:      2.2.41^t ~2.4.2-r1^t ~2.4.3^t {bzip2 doc ldap nls readline selinux +smartcard ssl test (+)tofu tools tpm usb user-socket verify-sig wks-server}
     Установленные версии:  2.2.41^t(16:19:38 22.02.2023)(bzip2 nls readline smartcard ssl usb -doc -ldap -selinux -test -tofu -tools -user-socket -verify-sig -wks-server)
     Домашняя страница:     https://gnupg.org/
     Описание:              The GNU Privacy Guard, a GPL OpenPGP implementation
SPRATAY
() автор топика
Последнее исправление: SPRATAY (всего исправлений: 1)
Ответ на: комментарий от SPRATAY

Мне кажется,что это всё же связано с kitty: https://github.com/kovidgoyal/kitty/issues/2451

Возможно, что установки пакета x11-terms/kitty-terminfo будет достаточно. Или потребуется выполнить какие-нибудь действия, описанные в обчужлени бага.

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

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

А судя по приведённой выше ошибке, проблема именно с тем, что gpg-agent не может подписать коммит. Так ведь? Для другого произвольного репозитория подписываются коммиты? Речь пока не о git push, а git commi -s.

Проверь на самом обычном графическом x11-terms/xterm, чтобы не ударяться в экзотику.

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

Для работы с tty напрямую, кажется, надо было выполнить команды

export GPG_TTY=$(tty)
gpg-connect-agent updatestartuptty /bye >/dev/null

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

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

Спасибо, спасибо

Буду теперь потихоньку захломлять гуру, и кстати что там по официальной репе, какие требования, хочу протолкнуть pywal, т.к. он везде есть

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

хочу протолкнуть pywal

С этим сложнее:

  • насчёт «везде», то в официальных репах, судя по repology.org, он есть в arch, guix, nix, alpine - что до популярного востребованного пакета не дотягивает;
  • он почти 2 года не поддерживается и поддержку python 3.12, да и 3.11, нужно проверять, если этого ещё не сделано, например, прогонкой встроенных тестов в ebuild в секции src_test, если тесты не запускаются средствами pytest (его тоже нужно вызвать функцией distutils eclass’а);
  • нужно найти разработчика или убедить proxy-maint, что пакет правда «нужный», что уже сложнее, учитывая 2 предыдущих пункта. Но всегда можно спросить на соответствующих каналах (#gentoo-proxy-maint).

Но это моё мнение. Главное, что при наличии готового ebuild самому себе использование пакета упрощаешь, а заодно и другим заинтересованным в нём.

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

Тесты там уже есть с исходниками, их вызвать нужно только.

Но можно и локально для ознакомления позапускать.

Я до компа всё никак не доберусь по будням :(

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

Только пакет считается неподдерживаемым, более того у него даже metadata.xml нет. В я #gentoo-guru писал об этом.

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

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

grem ★★★★★
()