Bug 45539 - [4.2] join qualimock@
Summary: [4.2] join qualimock@
Status: REOPENED
Alias: None
Product: Team Accounts
Classification: Development
Component: join (show other bugs)
Version: unspecified
Hardware: all Linux
: P5 normal
Assignee: Gleb F-Malinovskiy
QA Contact: Andrey Cherepanov
URL: https://altlinux.org/Team/Join
Keywords:
Depends on:
Blocks:
 
Reported: 2023-03-13 23:36 MSK by Alexey Volkov
Modified: 2025-04-01 16:52 MSK (History)
4 users (show)

See Also:


Attachments
Add GPG public key (1.61 KB, application/pgp-encrypted)
2023-03-13 23:36 MSK, Alexey Volkov
no flags Details
Add SSH public key (744 bytes, text/plain)
2023-03-13 23:36 MSK, Alexey Volkov
no flags Details
nautilus-backspace-allow-override-datadir.diff (632 bytes, patch)
2025-02-19 01:43 MSK, Arseny Maslennikov
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Alexey Volkov 2023-03-13 23:36:15 MSK
Created attachment 12735 [details]
Add GPG public key

Имя пользователя: qualimock
Почта для пересылки: qualimock@yandex.ru
Намерения: хочу научиться собирать пакеты
Имя ментора: ancieg

Подписка: ancieg@altlinux.org
Comment 1 Alexey Volkov 2023-03-13 23:36:53 MSK
Created attachment 12736 [details]
Add SSH public key
Comment 2 Anton Zhukharev 2023-03-14 20:07:05 MSK
(Ответ для QualiMock на комментарий #0)
> Имя ментора: ancieg
Ок, берусь.

> Подписка: ancieg@altlinux.org
Но в подписку не добавил :)
Comment 3 Gleb F-Malinovskiy 2023-03-21 10:03:16 MSK
Ключи в порядке.
Comment 4 Gleb F-Malinovskiy 2023-11-08 19:40:57 MSK
Актуально ли ещё?
Comment 5 Alexey Volkov 2023-11-10 23:27:13 MSK
(In reply to Gleb F-Malinovskiy from comment #4)
> Актуально ли ещё?

Да, актуально, но пока времени нет
Comment 6 Alexey Volkov 2023-11-12 20:37:07 MSK
В общем, время появилось, собрал один пакет на локальной машине.
Желаю вернуться к процедуре Join'а.
Comment 7 Anton Zhukharev 2023-11-12 20:39:30 MSK
Прошу зарегистрировать ключи на gitery и выдать доступ к gyle.
Comment 8 Gleb F-Malinovskiy 2023-12-05 20:08:29 MSK
ssh ключ на gitery.alt зарегистрирован.
Адрес для пересылки создан.

T/J/S -> 2.3.
Comment 9 Anton Zhukharev 2023-12-05 20:10:00 MSK
(In reply to Anton Zhukharev from comment #7)
> Прошу зарегистрировать ключи на gitery и выдать доступ к gyle.
Прошу выдать доступ к gyle.
Comment 10 Gleb F-Malinovskiy 2023-12-07 22:21:01 MSK
ssh ключ на gyle.alt зарегистрирован.
Пакет alt-gpgkeys обновлён.
Адрес подписан на devel@.

T/J/S -> 3.6.
Comment 12 Anton Zhukharev 2024-10-07 18:23:42 MSK
Я думаю, что можно пробовать двигаться дальше.
Comment 13 Gleb F-Malinovskiy 2025-01-27 14:34:04 MSK
Призван рецензент (arseny@) для независимой оценки готовности кандидата.

T/J/S -> 4.2.
Comment 14 Arseny Maslennikov 2025-01-28 16:17:20 MSK
(In reply to Gleb F-Malinovskiy from comment #13)
> Призван рецензент (arseny@) для независимой оценки готовности кандидата.
> 
> T/J/S -> 4.2.

ACK.
Взгляну на выходных.
Comment 15 Arseny Maslennikov 2025-02-19 01:43:20 MSK
Created attachment 17774 [details]
nautilus-backspace-allow-override-datadir.diff
Comment 16 Arseny Maslennikov 2025-02-19 01:45:54 MSK
Недавно взглянул.
Кое-что я уже посмотрел, но ответы пока в столе и ещё нуждаются в редактуре. Скоро опубликую их пачкой.

Немного о nautilus-backspace.

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

Если взглянуть на makefile апстрима, то видно, что апстрим на момент авторства немного не умел писать фазу `make install` для своего поделия. Позаботился о цикле разработки, но не о упаковывающих мейнтейнерах. :(
Хороший мейнтейнер установит правильно (как вы и сделали в спеке), а отличный ещё и заапстримит правильную установку, благо makefile несложный, а патч небольшой.
Предлагаю ув. кандидату это сделать; интуиция мне подсказывает, что апстрим будет договороспособен. :)

Они там сверяют UID 0; понятно, что из `geteuid() == 0` никак не следует префикс, куда нужно ставить файлы, но и понятно, что хотелось поддерживать запуск `make install` на живой системе, где умолчания для uid 0 и != 0 _не_ неразумны и даже близки к устойчивой практике.
В текущем виде такой код показывает мейнтейнеру пакетов кукиш. Апстриму стоило бы:
- ввести что-нибудь вроде `datadir = /usr/share` в самом начале файла, тем самым добавив ручку для переопределения datadir;
  - да-да, при вызове `make datadir=$HOME/.local/share` установка переменной в командной строке _одерживает верх_ над установкой переменной в тексте!
    https://www.gnu.org/software/make/manual/make.html, "Overriding Variables"
    То есть, неосторожному оператору очень легко сломать аккуратный Makefile неаккуратным вызовом make(1). Не баг, а фича! (впрочем, неважно)
- ветку `geteuid() != 0` посвятить изменению зн. `datadir` по умолчанию. И волки будут сыты, и овцы будут целы, см. приложенный патч.
- поддержать переменную DESTDIR (может как отсутствовать, так и содержать путь к каталогу; писать после обращения к ней / не требуется);
- совсем дальновидно: вызывать в рецептах `$(INSTALL)` вместо явного `install`.
А ещё у них `make` без аргументов командной строки будет что-то куда-то устанавливать, так как `install` — первая цель по тексту. К такому поведению жизнь пользователей make(1) не готовила, это неприятный сюрприз. :) Ну, и `.PHONY: install schemas`, конечно; ни о каких файлах по именам "install" и "schemas" речи не идёт.

Патч получится порядка 14 insertions(+), 11 deletions(-).
Вам останется написать в spec:
  %makeinstall_std datadir=%datadir
Танцы с ifneq чего-то 0 вас как мейнтейнера пакета не затронут.

Я не помню, пригодна ли ~/.local (согласно спецификации на неё) для того, чтобы быть префиксом (т. е. содержать всё актуальное, что бывает в /usr/local или /usr). Если да, то возможен вариант
  prefix = /usr
  datadir = $(prefix)/share
и далее аналогично. Но, с учётом того, что проект маленький, тут могут быть разные решения приняты.
Comment 17 Arseny Maslennikov 2025-02-24 18:55:23 MSK
Общее замечание.

Если апстрим сопровождает свой проект в гите, делает релизы и вешает на релизные ревизии подписанные теги, то их можно тоже запушить на gitery. Тогда при сборке пакетного тега, от которого можно до них дойти по цепочке коммитов, они попадут и на git.a.o/gears, что удобно читателям.

gyle так делает много лет, но я об этом узнал только в прошлом году — т. е. менторы об этом вообще не говорят. Надо эту практику по возможности популяризировать. :)
Comment 18 Arseny Maslennikov 2025-02-24 18:56:10 MSK
nautilus-backspace:

В спеке нет:
  %define _unpackaged_files_terminate_build 1
Почему?

Вопрос и на понимание, и из моего личного любопытства (я никогда не собирал всякий гном).
Нужно ли glib-compile-schemas вызывать в %post пакета? Почему нельзя в файлтриггере?
Comment 19 Arseny Maslennikov 2025-02-24 18:57:01 MSK
cassette:

объективно придраться не к чему. :)
Comment 20 Arseny Maslennikov 2025-02-24 18:57:13 MSK
python3-module-aria2p:

Вопрос к кандидату:
я вижу, что в -alt2 добавлена явная зависимость на aria2. Пожалуйста, обоснуйте это добавление.

Кроме этого, нет вопросов.
Comment 21 Arseny Maslennikov 2025-02-24 18:57:32 MSK
org.adishatz.Screenshot:

А ему точно нужны и meson, и cmake в качестве BR?

Кроме этого, нет вопросов.
Comment 22 Arseny Maslennikov 2025-02-24 18:59:38 MSK
opendoas:

Пакет в целом сложный, с существенной долей системной интеграции. Значит, и поговорить есть о чём!

>  %description -l ru_RU.UTF-8
>  doas — это минимальная замена почтенного sudo. Первоначально она была написана
>  Тедом Унангстом из проекта OpenBSD, чтобы обеспечить 95%% функций sudo
>  с частью кодовой базы

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

> Summary(ru_RU.UTF-8): Портативная версия команды doas из OpenBSD
Здесь слово portable употреблено в особом смысле, который ему придаёт сообщество OpenBSD: имеется в виду вариант программы, совместимый не только с OpenBSD.
В английском языке словосоч. "portable program" имеет два устойчивых смысла:
* "работающий везде", толстый исполнимый (в мире windows — бинарный) дистрибутив приложения, не требующий установки в окружение (в т. ч. упаковки в альт для будущей установки);
* более уместное значение из литературы вокруг POSIX, языка Си и комплектного библиотечного окружения: программа, которую можно без изменений собрать под произвольную машину и ОС.
Эти два варианта — омонимы; второй из них — это "портируемая" программа, которую можно куда-то портировать, to port, например, под линукс. Проект OpenBSD употребляет "portable", ссылаясь на второй вариант употребления (у них portable — программа, совместимая не только с OpenBSD).
Я бы в свете всего этого, если уж заниматься переводом этих описаний, вообще избежал намёков на то, что кто-то что-то куда-то портирует. Мы упаковываем вариант opendoas, совместимый с нами (другой упаковывать в альт смысла мало); об этом надо и написать. Навроде "Команда doas из OpenBSD, портированная для Linux". Конечно, ни в коем разе не навязываю стиль и выбор слов. :)

>  50 mkdir -p %buildroot%_sysconfdir
>  51 cat > %buildroot%_sysconfdir/doas.conf << EOF
>  52 # Allow wheel by default
>  53 permit :wheel
>  54 EOF
1) Для других повышалок привилегий у нас предусмотрены control(8) facilities. Предлагаю взглянуть на семантику и варианты состояний у sudo и предоставить такие же варианты для opendoas (соответственно, упаковать эти контролы в пакет).
2) Если комментарии в конфиге выступают в том числе документацией для пользователя, то, IMHO, прилично писать такие заметки как документацию — книжным стилем; т. е. заканчивать предложения точкой и т. п.

>  42 %build
>  43 # Non standard build script
>  44 ./configure --prefix=%prefix --with-timestamp --with-pam
>  45 export CFLAGS="%optflags"
>  46 %make_build
Что означает запись non-standard build script?

Nit: "/bin:/sbin:" в начале safepath в файле doas.c стоило бы, на мой вкус, выпатчить; в альте это симлинки на другие каталоги, входящие в safepath. Впрочем, не настаиваю.
Comment 23 Alexey Volkov 2025-04-01 16:52:30 MSK
(In reply to Arseny Maslennikov from comment #20)
> python3-module-aria2p:
> 
> Вопрос к кандидату:
> я вижу, что в -alt2 добавлена явная зависимость на aria2. Пожалуйста,
> обоснуйте это добавление.
> 
> Кроме этого, нет вопросов.

aria2p - это утилита, работающая с aria2, автогенератор не находит такие зависимости, поэтому пришлось указать явно.

(In reply to Arseny Maslennikov from comment #21)
> org.adishatz.Screenshot:
> 
> А ему точно нужны и meson, и cmake в качестве BR?
> 
> Кроме этого, нет вопросов.

cmake был добавлен, поскольку он потребовался в процессе сборки. Однако, потом оказалось, что все собирается и без него. В https://packages.altlinux.org/en/tasks/379880/ я его убрал из BR.

С nautilus-backspace и opendoas в ближайшее время разберусь.