1 (2019-07-15 14:19:38 отредактировано alex_q_2000)

Преамбула:
------------------------
Данный репозиторий создан в экспериментальных целях и не является надёжным источником, поскольку его существование зависит сразу от двух сервисов: ЯндексДиска и ресурса-держателя прямой ссылки на его публичный каталог. Однако, для бесплатного, временного решения вариант оказался вполне пригодным. В будущем репу можно безболезненно перенести на настоящий публичный узел с прямыми ссылками.

Содержимое репозитория проходит дополнительную проверку Microsoft Security Essentials (лицензия)

Подключение для i586 и x86_64:

urpmi.addmedia --distrib https://getfile.dokpub.com/yandex/get/https://yadi.sk/d/VJJoFesIEXEOhQ/6/i586
urpmi.addmedia --distrib https://getfile.dokpub.com/yandex/get/https://yadi.sk/d/VJJoFesIEXEOhQ/6/x86_64

Справедливости ради скажу, что структуру каталогов хранилища и файлы media.cfg с описанием привязок путей я нагло спёр у одного из наших админов, из его замечательного хранилища http://packages.gb2bel.ru/mageia6, за что ему большое, полосатое спасибо! Искренне надеюсь, что XliN не обидится на мелкий плагиат со стороны енотов. )) Мог бы "передрать" и у Магии, но там много всего наворочено, а у XliN-a всё по делу.

Поскольку теперь у меня есть наикрутейший RPMCreator, который позволяет быстро и правильно собрать файлы и папки в rpm-пакеты (rpm, src, spec), свои программы я перекомпилил в новом Лазаре 1.8.4 и опакетил. В наличии так же имелись программы других производителей на питонах, перлах и др.

На данный момент в моём "игрушечном" репозитории находятся пакеты:
part-indicator – симпатичный индикатор заполнения раздела на диске
save-indicator - иконка флешки в трее, показывает расход диска сохранения SAVE в MgaRemix
scleaner – программа для очистки Магии от мусора, сирот, старых ядер и т.д.
bbcolor – конвертер цветного текста и композитор ссылок в bb-код
rpmcreator – программа для сборки пакетов из файлов и папок (спеки, src)
patchcreator – программа для снимков объектов файловой системы
vacuum – это какой-то хитрый видео-редактор на питоне. AVOTINI в курсе...
azpainter - шустрый графический редактор
far2l - порт Far Manager (файловый менеджер)
flowblade - многоканальный редактор видео
ekstertera - GUI для Яндекс Диска, работающий через REST API
grive2 - консольный клиент Google Drive с поддержкой REST-API (бэкпортирование x86_64 - Zomby)
grive2folder - GUI для grive2. Настройка, индикация, автосинхронизация
lazarus - Lazarus-1.8.4 для Mageia-6.1 (бэкпортирование x86_64 - saahriktu)
cpu-x - программа для просмотра основной информации о компьютере
ipscan - Angry IP Scanner. Шустрый сетевой сканер
timeshift - программа для создания резервных копий/снятия снэпшотов системы
xnviewmp - просмотрщик изображений
httraqt - программа для скачивания сайтов
qjournalctl - GUI для просмотра логов в реальном времени (journalctl)
windows-10-themes - темы Windows-10 Light и Dark от B00merang
pwgui - GUI для генератора паролей PWGen
ginxi - GUI для консольной утилиты inxi (вывод информации о системе и аппаратной конфигурации)
kodi - v18.2-Leia, профессиональный медиа-центр
deps - скрипт для автоустановки BuildRequires из спека при сборке пакета (команда "deps")
porg - менеджер программ, установленных из исходников
screenpen - электронный карандаш-маркер для рисования «поверх экрана» в Linux
f3 - набор утилит для тестирования емкости и производительности флэш-карт
duc - консольная утилита для отображения информации об использовании диска в текстовом и графическом виде
vboxvdc - программа для создания виртуальных жеских дисков VirtualBox, аналог VBoxVDC из Windows (загрузка VM с флешки)
vdicomp - программа для сжатия VM VirtualBox (компрессор файлов *.vdi)


Как создавался репозиторий
Зашёл в ЯндексДиск через браузер и создал в нем папку REPO. Это будет корень хранилища пакетов. Расшарил её для чтения (общий доступ).

Поскольку для подключения будущего репо через urpmi.addmedia потребуется ПРЯМАЯ ссылка на папку, а не динамическая (на страницу скачивания в облаке Яндекса), воспользовался замечательным ресурсом https://getfile.dokpub.com/yandex. Скопировал ссылку на доступ к папке REPO в буфер и вставил её на вышеуказанном сайте = получил прямую ссылку.

Теперь подготовим систему к созданию репы…
Заходим в терминал с привилегиями root
su (пароль)

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

urpmi --auto gnupg gnupg2 rpm-sign createrepo

Если ранее ключи не использовались, для чистоты эксперимента пересоздадим рабочий каталог gpg с ключами:

rm -rf ~/.gnupg

После генерации связки ключей (секретный и публичный) эту папку нужно заархивировать на случай использования ключей в будущем. Их, конечно можно пересоздать и заново экспортировать публичный ключ в облако + переподписать пакеты, но это лишнее.

Создаём связку ключей (Выбираем 1-позиция, длина 2048 бит, Настоящее имя: aLEX_gRANT (укажите своё), почта alex_q_3000@mail.ru (укажите свою), секретное слово оставить пустым через Enter)

gpg --gen-key

Просмотрим ключи:

gpg --list-key
/root/.gnupg/pubring.gpg
------------------------
pub   2048R/F3419EСA 2018-10-07
uid                  aLEX_gRANT <alex_q_3000@mail.ru>
sub   2048R/091887BD 2018-10-07

Создаём rpm-макрос с данными подписи:

echo "%_signature gpg" > ~/.rpmmacros; 
echo "%_gpg_name aLEX_gRANT <alex_q_3000@mail.ru>" >> ~/.rpmmacros

Возьмёмся за репозиторий... Cоздаём папку /mnt/YandexDisk и монтируем в неё свой ЯндексДиск:

mkdir /mnt/YandexDisk
mount -t davfs https://webdav.yandex.ru /mnt/YandexDisk
(потребуются логин и пароль от облака)

Создаём на сервере структуру хранилища:
/mnt/YandexDisk/REPO/6/SRPMS
/mnt/YandexDisk/REPO/6/RPMS/i586 x86_64 noarch
/mnt/YandexDisk/REPO/6/i586/media/media_info/(файл media.cfg с описанем репо)
/mnt/YandexDisk/REPO/6/x86_64/media/media_info/(файл media.cfg с описанем репо)

В зависимости от архитектуры, распихиваем rpm-пакеты в папки:
/mnt/YandexDisk/REPO/6/SRPMS
/mnt/YandexDisk/REPO/6/RPMS/i586
/mnt/YandexDisk/REPO/6/RPMS/x86_64
/mnt/YandexDisk/REPO/6/RPMS/noarch

Чтобы при установке пакетов из репозитория система не выпендривалась на предмет ключей, пакеты нужно подписать секретным ключом (он индивидуален) и закинуть в хранилище публичный ключ pubkey, который urpmi.addmedia будет импортировать в систему пользователя для "подтверждения личности" устанавливаемого пакета.

Зайдём в каждую из вышеуказанных папок, подпишем наши пакеты и сделаем переиндексацию:

cd /mnt/YandexDisk/REPO/6/SRPMS
rpm --addsign ./*.rpm; genhdlist2 --xml-info ./; createrepo ./
cd /mnt/YandexDisk/REPO/6/RPMS/i586
rpm --addsign ./*.rpm; genhdlist2 --xml-info ./; createrepo ./
cd /mnt/YandexDisk/REPO/6/RPMS/x86_64
rpm --addsign ./*.rpm; genhdlist2 --xml-info ./; createrepo ./
cd /mnt/YandexDisk/REPO/6/RPMS/noarch
rpm --addsign ./*.rpm; genhdlist2 --xml-info ./; createrepo ./

Примечание: если пакеты уже содержат подпись, говорить нужно rpm --resign

В результате в папках с пакетами, будут созданы подпапки media_info с информацией о лежащих в них пакетах и контрольные суммы:
/mnt/YandexDisk/REPO/6/SRPMS/media_info
/mnt/YandexDisk/REPO/6/RPMS/x86_64/media_info
/mnt/YandexDisk/REPO/6/RPMS/i586/media_info
/mnt/YandexDisk/REPO/6/RPMS/noarch/media_info

Экспортируем публичный ключ pubkey в каждую из указанных выше папок:

cd /mnt/YandexDisk/REPO/SRPMS/media_info
gpg --export -a "aLEX_gRANT <alex_q_3000@mail.ru>" > ./pubkey
cd /mnt/YandexDisk/REPO/RPMS/i586/media_info
gpg --export -a "aLEX_gRANT <alex_q_3000@mail.ru>" > ./pubkey
cd /mnt/YandexDisk/REPO/RPMS/x86_64/media_info
gpg --export -a "aLEX_gRANT <alex_q_3000@mail.ru>" > ./pubkey
cd /mnt/YandexDisk/REPO/RPMS/noarch/media_info
gpg --export -a "aLEX_gRANT <alex_q_3000@mail.ru>" > ./pubkey

Здесь мы использовали uid ключа, который видели в выхлопе команды gpg --list-key выше...
uid                  aLEX_gRANT <alex_q_3000@mail.ru>

Очищаем кеш urpmi (вдруг там чего лишнее застряло):

urpmi --clean

Подключаем готовый репозиторий i586 или x86_64:

urpmi.addmedia --distrib https://getfile.dokpub.com/yandex/get/https://yadi.sk/d/VJJoFesIEXEOhQ/6/i586
urpmi.addmedia --distrib https://getfile.dokpub.com/yandex/get/https://yadi.sk/d/VJJoFesIEXEOhQ/6/x86_64

Примечание:
Если пакеты в хранилище добавляются/удаляются/обновляются, требуется вновь их переподписать и переиндексировать их каталоги. Созданный ранее публичный ключ pubkey должен присутствовать во всех каталогах media_info с пакетами:

rpm --resign ./*.rpm; genhdlist2 --clean --xml-info ./; createrepo ./

Дополнительно требуется сделать апдейт зеркал (источников) на компе:

urpmi --clean; urpmi.update -a

Отключить репозиторий можно командой:

urpmi.removemedia -y ENOT

p.s. Репа работает уже 3 дня и вроде ещё не отвалилась. Однако, ни что на Земле не вечно. Благодарю за внимание… yikes


Полезные статьи:
-----------------------
genhdlist2 - Описание утилиты создания репозитория
Развёртывание репозиториев Linux
Игорь Олемской — практические заметки по системному администрированию Linux CentOS

Спасибо сказали: algri14, Vagulo2

2

alex_q_2000, я к сожалению ничего не понимаю в создании репо, поэтому не могу ни критиковать, ни давать нужных советов, иначе сам давно уже сделал бы репозитиорий, он давно требуется форуму. Хорошо ещё что XliN своё репо поддерживает и не перешёл на другой дистр.
Кстати, репо Mageiafriend отключены, а яндекс-зеркало работает до сих пор https://mirror.yandex.ru/mirrors/packag … alinux.ru/
А вообще спасибо, но ведь мало иметь репо, нужно наполнять его софтом, поддерживать пакеты в актуально состоянии, это большая работа

3 (2018-10-10 01:43:41 отредактировано saahriktu)

репозиторий

rpmcreator

А я просто отдельные пакеты потихоньку пилю руками (про них я уже писал, да). Создаю/правлю .spec-файлы в vim'е, а потом скармливаю их rpmbuild'у. Скоро ещё доделаю специфическую структуру содержимого .src.rpm файлов на github'е в соответствии с советом AlexL.

Mageia 7 x86_64 / FVWM

4

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

5

kvv-vp⇓ пишет:

Лучше уберите из спеков все упоминания о MRC, чтобы в случае чего тыкали пальцем в вашу сторону, а не в сторону сообщества

У меня вопрос, почему до пятой версии Магеи в репо у Mageiafriend (на домене форума) были пакеты с MRC, а теперь это нельзя? каковы причины?
Хотя согласен, что пакеты должны быть собраны должным образом, те что по экспериментальным технологиям, те в отдельной ветке и без упоминания MRC
зы: блин, ну почему я профан в этой области, обидно до жути sad

6 (2018-10-10 18:26:07 отредактировано algri14)

Народу в сообществе конечно мало, хотя головастых достаточно. Но репо своего создать и поддерживать некому, XliN пока ещё тянет один свой репо, но уже пора подхватить эстафету.
Дополню: MRC начинался ещё вот на этом домене http://mageia1.ru/ и упоминалось о нём на офф-форуме [COLLECTION] Unofficial Mageia repositories.

7

algri14⇓ пишет:

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

Уберу по факту обновления, если возможно. Пакеты уже подписаны.

algri14⇓ пишет:

и упоминалось о нём на офф-форуме [COLLECTION] Unofficial Mageia repositories.

А вот здесь, в самом низу есть smplayer-18.9.0-1mgr6.x86_64.rpm У Магии крайний smplayer-18.1.0-1.mga6.x86_64.rpm Просто я видел, вы там с AlexL-ем чего-то всё исследуете. Может пригодится...

8

alex_q_2000⇓ пишет:

А вот здесь, в самом низу есть smplayer-18.9.0-1mgr6.x86_64.rpm
Может пригодится...

Ага, как научимся по гречески балакать, так и начнём-с - "в греческом зале, в греческом зале...Мышь белая!" lol
зы: репо то греческий lol
работает всё равно так же, разницы нет

9 (2018-10-12 05:14:21 отредактировано kvv-vp)

algri14⇓ пишет:

почему до пятой версии Магеи в репо у Mageiafriend (на домене форума) были пакеты с MRC, а теперь это нельзя? каковы причины?

Потому, что они соответствовали требованиям Mageia и лицензиям, по которым распространялись. Поэтому и оказались на зеркалах яндекса. Не так давно читал про проблемы с лицензированием  palemoon. А тут, он лежит в "плюшевом" репозитории, ну и решил глянуть. Вот родная лицензия http://www.palemoon.org/redist.shtml в "плюшевом" же  GPLv3+. Исходники изменены, но об этом нет никакой информации. Причем, пакет распространяется от имени MRC (vendor). И это только проблемы с первым по списку пакетом, остальные не смотрел.
P.S. Вот, вспомнил, где читал http://www.alv.me/brauzer-pale-moon-i-ego-litsenziya/

Спасибо сказали: algri141

10

kvv-vp, заловить плюшевого троянчика.

С уважением, руководитель образовательного направления Mageia - EduMagic

11

kvv-vp⇓ пишет:

Исходники изменены, но об этом нет никакой информации.

Обзор snap vs flatpack vs appimage
RPMCreator, так же как и программы, указанные выше - средство распространения портативных программ т.е. переносимых, уже готовых к использованию и не требующих повторных перекомпиляций. Исходный код не затрагивается, поскольку он не нужен, иначе это было бы средством классической сборки/перекомпиляции. В моём случае берётся вся папка с готовыми исходниками + готовыми бинарниками, собирается в rpm и используется. Исходники там лежат для кучи, ибо распространяя программу их нужно предоставлять.

Предоставлять исходники нужно хотя бы для того, чтобы любой желающий мог отыскать для себя нужный ему "троян", "кейлогер", ну или на худой конец кодировщик, который поможет выполнить rm -rf /. Иного применения исходному коду в таком способе распространения ПО не усматриваю.

Однако, если поставить перед собой цель всё же задействовать исходники, можно, например, расспечатать всё содержимое программы, включая патчи на принтере с поддержкой рулонной бумаги. Затем хорошенько размять и использовать по назначению. Но это будет неуважение к автору проекта. Выходит, что причины неиспользования исходников в процессе сборки с помощью RPMCreator, а так же FlatPack, AppImage и др. сугубо этические.

Чтобы нам было, что пообсуждать, предлагаю взглянуть поглубже на всю цепочку свободного лицензирования и не абы как, а сзаду наперёд.
Например:
1. GPLv3+ - это лицензия, под которой распространяется собраный rpm-пакет
2. GPLv2+ - это лицензия нетронутой программы, которая лежит внутри этого rpm (она может быть иной, например GPLv2/0,3)
3. GPLv1+ - это лицензия самого средства разработки [компиляторы/интерпретаторы/эмуляторы или vm (лицензии последних двух так же могут отличаться)]
4. Добавьте к этому сборку пакета внутри MgaRemix неизвестного происхождения внутри VM от Oracle и размещение в частном репозитории

12

alex_q_2000⇓ пишет:

RPMCreator, так же как и программы, указанные выше - средство распространения портативных программ т.е. переносимых, уже готовых к использованию и не требующих повторных перекомпиляций. Исходный код не затрагивается, поскольку он не нужен, иначе это было бы средством классической сборки/перекомпиляции. В моём случае берётся вся папка с готовыми исходниками + готовыми бинарниками, собирается в rpm и используется. Исходники там лежат для кучи, ибо распространяя программу их нужно предоставлять.

Вы похоже не в курсе, что программы в RPM-bazed линуксах распространяются в виде исходников, упакованных в пакеты src.rpm . rpm- это лишь приятное
дополнение для не желающих возиться со сборкой. MRC занималось "традиционной"сборкой, т.е. собирались src.rpm. В вашем же репозитории лежат портативные бинарные сборки, но об этом ни слова, ни слова о то, что  они собраны "нетрадиционным" способом, но собраны они от имени  MRC . Замалчивая этот факт, вы сознательно или нет вводите пользователей в заблуждение.

alex_q_2000⇓ пишет:

Предоставлять исходники нужно хотя бы для того, чтобы любой желающий мог отыскать для себя нужный ему "троян", "кейлогер", ну или на худой конец кодировщик, который поможет выполнить rm -rf /. Иного применения исходному коду в таком способе распространения ПО не усматриваю.

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

Не поверите, я знаю еще один способ использования исходников. Можно сравнить исходники из src.rpm нескольких дистрибутивов  или с теми,что лежат на сайте автора. И по коду не нужно лазить и не нужно проявлять неуважение к автору проекта.

alex_q_2000⇓ пишет:

Обзор snap vs flatpack vs appimage
RPMCreator, так же как и программы, указанные выше - ср

Ваш RPMCreator пока решает только первую часть задачи

Все файлы программы и ее зависимостей упаковываются в один файл,
включая исполняемые файлы, файлы конфигурации и нужные библиотеки.
В этом плане snap vs flatpack мало чем отличаются.

А вот со второй частью

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

проблемы. Бинарники, созданные RPMCreator-ом, при установке требуют рута и лезут в и /usr.  Уж больно напоминает программы из
одной известной ОС.

13 (2018-10-12 18:06:51 отредактировано alex_q_2000)

kvv-vp⇓ пишет:

MRC занималось "традиционной"сборкой, т.е. собирались src.rpm. В вашем же репозитории лежат портативные бинарные сборки, но об этом ни слова, ни слова о то, что  они собраны "нетрадиционным" способом, но собраны они от имени  MRC . Замалчивая этот факт, вы сознательно или нет вводите пользователей в заблуждение.

Уважаемый kvv-vp. Что именно выкладывать и в каком формате - в конечном счете решает администрация форума. По поводу аббревиатуры я её уведомил. Между тем, размещенный контент не противоречит правилам форума, к тому же размещен от имени участника MRC, - то есть меня, любимого. Вы то о чем переживаете? Вашему "заблуждению" была посвещена целая тема - PatchCreator и RPMCreator, о ней же идёт речь в начале этой статьи. Ознакомьтесь и хватит паниковать на ровном месте. Иначе мне останется заявить, что вы сознательно дискриминируете мой труд, как члена сообщества MRC, тем самым провоцируя на флейм.

kvv-vp⇓ пишет:

Не поверите, я знаю еще один способ использования исходников. Можно сравнить исходники из src.rpm нескольких дистрибутивов  или с теми,что лежат на сайте автора. И по коду не нужно лазить и не нужно проявлять неуважение к автору проекта.

Очень рад, что вы человек умный, проявляющий искреннее уважение к окружающим. Это похвально.

kvv-vp⇓ пишет:

А вот со второй частью

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

проблемы. Бинарники, созданные RPMCreator-ом, при установке требуют рута и лезут в и /usr.

По порядку... В качестве контейнера у меня выступает rpm-пакет. Место программы в системе - в /usr/share. Установка под root - очевидна. В чем подвох? Далее... Настройки программ (за исключением PatchCreator, он ещё не закончен) создаются в процессе работы в домашних (скрытых) каталогах. Если вы про scleaner, то вход под рутом необходим, поскольку идёт прямая работа с rpm. Для сравнения возьмите, например, gparted. К gparted у вас есть притензии? Видимо нет.

Размещение программы (именно её бинарного тела, а не настроек) в домашнем каталоге и есть величайшая дыра в системе безопасности системы. Например ставить браузер в домашнее окружение - прямой риск потерять свой профиль в результате слива на комп вредоносного ПО. Система, естественно не нагнётся, а вот свои многолетние труды потеряете на раз. Где же логика?

kvv-vp⇓ пишет:

Уж больно напоминает программы из одной известной ОС.

Ну, тут уже явный призыв к холиварам. Не имею права реагировать. wink

14

Я уже говорил, что профан в сборке пакетов и ничего конкретного сказать не могу, но пять копеек выскажу:
- в своём частном репозитории юзер имеет право делать всё что угодно, но если он хочет доверия, то всё таки даёт поясняющую информацию по способу сборки пакетов, а так же - пакеты не должны быть подписаны от имени MRC, дабы не началось какое-нибудь разбирательство от Mageia с форумом и пр., и т.п.
- в защиту могу сказать что сообщество очень консервативно и какое-нибудь полезное изменение не всегда принимается сразу, иногда в штыки и только по прошествии времени спохватываются - "ах, надо было давно это принять". Но в данном случае способ сборки в широких кругах даже не обсуждался, а потому лучше придерживаться принятых правил сборки пакетов, чтобы всем и всё было понятно.
- пакеты в офф. репо отвечают правилам безопасности и лидеры дистрибутивов за этим следят очень строго, этот пункт является наверное самым главным.
Подытожу, народ, вы тут посовещайтесь и придите пожалуйста к верному и правильному решению, дабы форум не имел проблем от Mageia, а пользователи с безопасностью.
И последнее, я не к тому всё это сказал чтобы закрыть, запретить, а чтобы сообща прийти к правильному решению.
alex_q_2000, Вы не обижайтесь, ибо за последние пару лет заявки на сборку пакетов никто не выполняет, некому стало. Свой репо держит XliN, да Вы, ну ещё человека три что-то иногда собирают для себя, консолидации нет sad

15

Как минимум надо прикладывать в rpm пакет файл описания /usr/share/doc/программа/repack.txt, где указывать как был собран пакет, метод, точное url из чего сделано. Чтобы пользователь мог как минимум сравнить файлы пакета исходника и итогового на совпадение.

С уважением, руководитель образовательного направления Mageia - EduMagic

16

alex_q_2000⇓ пишет:

и в каком формате - в конечном счете решает администрация форума

Раньше сообщество решало(почитайте форум), сейчас не знаю, но вроде бы так и осталось.

alex_q_2000⇓ пишет:

сознательно дискриминируете мой труд, как члена сообщества MRC

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

alex_q_2000⇓ пишет:

В чем подвох?

В том, что у вас нет никакой изоляции.

alex_q_2000⇓ пишет:

Где же логика?

Логика в том, что они работают не в чистом профиле, а в изолированном контейнере. Потеря одного пользователя не страшна Можно удаленкой из дома все восстановить. А вот систему без физического доступа сложновато поднять. А комп может находиться за сотни км от вас. Вот и решайте, где логика.

17

AlexL⇓ пишет:

как минимум сравнить файлы пакета исходника и итогового на совпадение.

Этого мало. Пакет можно собрать с одним исходником, а положить в итоговый совсем другие. Пользователь должен иметь возможность воспроизвести результат. Как э это сделать?

18

algri14⇓ пишет:

Подытожу, народ, вы тут посовещайтесь и придите пожалуйста

Зарядите голосование, sevo44 же прикрутил эту фичу..

19

Конечно, метод имеет право на существование, но надо писать своё имя, а не сообщество.
Именно о воспроизводимости и речь.
Файл repack.txt в любом случае обязателен, разработать его структуру кто, когда, чего, из чего, как и.д. сделал.
Maintainer=
Maintainer[ru]=
Method=
Method[ru]=
Source=полная ссылка на сайт где скачано
Source_copy=ссылка на копию в плюшевом репозитории, нужна на случай пропажи сурса по начальной ссылке
и так далее
В репозитории создать ветку с исходными пакетами.
Не забыть, что архитектур несколько.
Вот тогда и получится воспроизводимость.

С уважением, руководитель образовательного направления Mageia - EduMagic
Спасибо сказали: alex_q_20001

20

kvv-vp⇓ пишет:

В том, что у вас нет никакой изоляции.

Повторюсь, что инсталлируется пакет rpm. Я не копирую технологию других программ, иначе бы просто воспользовался первоисточником. Разработчики Linux пришли к дружному выводу, что программы нужно размещать в /usr/share  и давать полный доступ к их каталогам и содержимому исключительно root-у. Зачем мне изолировать содержимое пакета? Речь идёт о файловом контейнере, в качестве которого выступает rpm-пакет. Достаточно придерживаться общих правил безопасности, пусть и минимальных, но основных. Или вы все программы из скаченных архивов запускаете в своём собственном окружении? )) Поверьте, пользователю, установившему на свой комп программу, такие понятия как jail-s/chroot-s/docker-s/emulator-s/vm-s по барабану. Ему так же по барабану воспроизведение программы из исходного кода. Чтобы что-то воспроизвести из исходного кода, а наипаче создать rpm-пакет по каноническим правилам, нужно пройти 7 кругов ада. А между тем, ни один уважающий себя разработчик не станет доверять результату провторной перекомпиляции через посредника (в лице rpmbuild в частности) и найденный в сети экзотический компилятор времён царя Гороха. Эдак вы до второго пришествия будете править свой спек и запускать бинарь в контейнере. При всём уважении... )))

Про систему, от которой вас воротит... Вот как раз в ней то, родимой, каждый юзер может сделать инсталлятор нужной программы, в течении 5-ти минут. Выбор средств и методов изготовления разный:  автоматический (например, дельфийский InstallShield); если нужна гибкость, есть, например InnoSetup, где стадии "сборки" описаны паскале-подобными скриптами. И только в свободном Линуксе перед распространением нужно найти средство разработки, затем собрать всё это в архив, написать спек, в котором этот архив будет распакован в папку пососедству, вытащить из этого тарбола пути к файлам, которые и так уже лежат на своих местах и т.д. и т.п. Потом нужно упереться в лицензирование и запретить выпуск продукта из за трёх букв. Вы же умный человек. Вы сами то понимаете, что это маразм? А на что вы обрекаете начинающих? Откуда здесь взяться развитию?

Поймите меня правильно. Я никогда не хожу в чужой монастырь со своим уставом. Если вам нужно что-то по 100 раз пересобирать и править ветхозаветные спеки, - делайте это. Но всегда есть другой путь, который, как водится, тщательно отвергают. Попробуйте мыслить шире, мы это уже обсуждали: у вас то в рынок/востребованность всё упирается, то в скурпулёзный анализ того, что и так решено. Извините, если был излишне резок в оценках и суждениях.

AlexL⇓ пишет:

Конечно, метод имеет право на существование, но надо писать своё имя, а не сообщество.

Спасибо за трезвую оценку ситуации. Ребят, у меня сейчас ремонт в квартире. Поменял всю сантехнику. Бедлам. Я исправлю "MRC" по факту обновления софта. Вот сейчас выясняется, что нужен ещё и doc. Я посмотрел, что лежит в /usr/share/doc у других программ. Там какие-то километровые README/COPYRIGHT. Не могли бы Вы уточнить структуру?

AlexL⇓ пишет:

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

Она там есть, но игнорируется по умолчанию, в соответствии с media.cfg

AlexL⇓ пишет:

Не забыть, что архитектур несколько.

src.rpm-ы в этой ветке 32-битные, поскольку их так же "кушает" 64-битный компилятор

Или это уже не мне адресовано? Ок. Если ссылки на репу  раздражают, - удалите. Пересоздам позже.

21

repack.txt просто обычный текстовый файл, любая структура. в гуи форма с полями, заполнили, в файл записали.

С уважением, руководитель образовательного направления Mageia - EduMagic

22

AlexL⇓ пишет:

repack.txt просто обычный текстовый файл, любая структура. в гуи форма с полями, заполнили, в файл записали.

Пазлы начинают складываться. Краска была на ацетоне, по этому осенило. )) Так у меня же всё через проект.prj делается. Изначально выбрал формат обычного ini-шника из соображений простоты и быстродействия. Всякие SDF/DBF-DataSource решил не использовать, я с ними в HTB-ENOT-е намучился да и "категория" не та.

Вот, например, содержимое проекта vacuum.prj:

+ открыть спойлер
[NAME]
name=vacuum

[VERSION]
version=0.2

[RELEASE]
release=1.mga6

[GROUP]
group=Applications/Multimedia

[DESCRIPTION]
0=Vacuum Video-Editor

[MAINTAINER]
maintainer=Alex Kotov

[VENDOR]
vendor=Chocolate Hare Inc.

[url]
url=https://forum.mageia.org.ru/viewtopic.php?pid=27143#p27143

[LICENSE]
license=GPLv3+

[DEPS]
deps=tkinter

[META]
meta=0

[NOARCH]
noarch=1

[AFTERREMOVE]
0=if [ $1 -eq 0 ]; then rm -rf /usr/share/spatial-media-master; fi;

[FILES]
0=/usr/bin/vacuum
1=/usr/share/icons/vacuum.png
2=/usr/share/applications/vacuum.desktop
3=/usr/share/spatial-media-master/

Может его и запихивать в /usr/share/doc/программа/? Или я не в ту стэпь?

23

kvv-vp⇓ пишет:

Зарядите голосование,

В данном случае оно ни к чему.

alex_q_2000⇓ пишет:

Что именно выкладывать и в каком формате - в конечном счете решает администрация форума.

Опять же, выше AlexL  сказал и я присоединяюсь - метод имеет место быть, надо только доставить все точки над "i"
Я хоть и не спец, но интуитивно, по объяснениям, вижу что метод имеет плюсы, облегчает работу и экономит время, но выбивается из общепринятых правил.
Если при сборке всё в порядке с безопасностью, то уже хорошо, остальное доработается.

24

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

С уважением, руководитель образовательного направления Mageia - EduMagic

25

alex_q_2000⇓ пишет:

Повторюсь, что инсталлируется пакет rpm. Я не копирую технологию других программ, иначе бы просто воспользовался первоисточником. Разработчики Linux пришли к дружному выводу, что программы нужно размещать в /usr/share  и давать полный доступ к их каталогам и содержимому исключительно root-у. Зачем мне изолировать содержимое пакета? Речь идёт о файловом контейнере, в качестве которого выступает rpm-пакет. Достаточно придерживаться общих правил безопасности, пусть и миним

/usr/share  для "традиционных" программ, в линукс это исходники. Для всех остальных /opt. Только проприетарный бинарный скайп считает себя истинно
линуксовой программой и лезет  /usr/share. Ну еще и производные rpm creatora.

alex_q_2000⇓ пишет:

Поверьте, пользователю, установившему на свой комп программу, такие понятия как jail-s/chroot-s/docker-s/emulator-s/vm-s по барабану. Ему так же по барабану воспроизведение программы из исходног

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

alex_q_2000⇓ пишет:

А между тем, ни один уважающий себя разработчик не станет доверять результату провторной перекомпиляции через посредника (в лице rpmbuild в частности) и найденный в сети экзотический

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

alex_q_2000⇓ пишет:

Потом нужно упереться в лицензирование и запретить выпуск продукта из за трёх букв. Вы же умный человек. Вы сами то понимаете, что это маразм? А на что вы обрекаете начинающих? Откуда здесь взяться развитию?

Маразм? Под тремя буквами, я так понимаю, вы подразумеваете GPL. Только вот
почему этот маразм вас устраивает, когда вы используете компилятор, созданный благодаря GPL, работаете в ОС, которая возникла и развивается благдаря GPL, пишете на форуме, движок которого также лицензируется GPL, используете интернет, который стал таким как есть во многом благодаря GPL. Но вот когда вам нужно соблюсти условия лицензирования, то развитие останавливается.

alex_q_2000 пишет:

Я никогда не хожу в чужой монастырь со своим уставом

А что, распространение программ в виде бинарников в линуксе стало уже нормой? Да еще от имени пользователей патриархальной mageia.

alex_q_2000 пишет:

у вас то в рынок/востребованность всё упирается,

А как иначе? Маркетологи же не просто так существуют. Ваша программ будет иметь определенный круг пользователей. Нужно заранее определить этот круг, и уже под его требования кодить. Кого вы считаете потенциальным пользователем rpm creatora?