[newbies] Сборка пакетов и безопасность кода (пакет uudeview)
Leonid Znamenok
respublica на altlinux.org
Сб Окт 11 00:54:58 MSK 2025
Привет!
В таких случаях стоит посмотреть, как это сделано в других дистрибутивах.
Например, найти этот пакет в fedora:
https://src.fedoraproject.org/rpms/uudeview
Видим следующую версию:
- 0.5.20^20241111git7ef9e26-5.fc43
Здесь:
- 0.5.20 - основная версия
- ^ - обозначение пост-релиза (версия с ^ будет больше,
чем без него. 1.2 > 1.1^201601 > 1.1)
(В альте не работает :) ). Вместо этого
используем сквозные релизы:
https://www.altlinux.org/Spec#Release
- 20241111 - дата сборки. Не интересно.
- git7ef9e26 - а вот это важно. Указано что идёт сборка из гита и указан
хэш коммита.
Проверяем апстрим на гитхабе. И там такой тег есть. Значит можно брать :)
Я посмотрел текущую схему сборки в альте, мне кажется, что стоит
перевести всё на сборку из master
(почти как из тега, только вместо тега используется просто upstream/HEAD)
Примерный алгоритм действий (похоже стоит написать статью на вики, но
пока так):
* Удалить старые исходники и патчи (лучше сделать явным коммитом, с
подписью о том, что меняется
схема сборки. Но это вкусовщина.).
* Добавить remote upstream на github: git remote add upstream ...
* git fetch upstream
* Выполнить merge с upstream/master
* Сохранить информацию об upstream в gear: gear-remotes-save
* Сохранить тег в gear: gear-update-tag master upstream/HEAD
* Прописать .gear/rules вида:
tar: master:.
spec: .gear/specname.spec
* Установить соответствующий релиз (с указание хеша коммита, из которого
идёт сборка):
https://www.altlinux.org/Spec#Release
Это самый удобный способ поддерживать промежуточные релизы.
Хэш придётся копипастить ручками, тут автоматизации нет :(
Команда:
git rev-parse --short upstream/master
Это достаточно сложная система сборки, но будет возможность разобраться
и помучаться с gear.
10.10.2025 23:32, Alexander Lubyagin:
> Добрый день.
>
> Я выбрал пакет из списка тех, которые не собрались в Сизифе: uudeview.
> Не догадался сразу посмотреть на github-е, и устранил в коде 2004 года
> все ошибки компиляции.
>
> Проект собрался.
>
> Но осталось много предупреждений компилятора.
> Основная масса - это типы char*/const char* и неиспользуемые
> переменные/результаты возврата.
>
> На устранение всех warnings уйдёт масса времени.
> И, по-идее, тут нужна полная интроспекция кода и погружение в него.
>
> Но... обнаружил развитие проекта на GitHub, где последние комитты - от
> марта 2025 года, и куча контрибьюторов. Есть там и ссылка на автора
> исходного кода (1994-2004):
> https://github.com/hannob/uudeview
>
> Наверное, правильным будет заменить дерево кода сразу на версию от
> 2025-го?
>
> Права на пакет: nobody@
> https://packages.altlinux.org/ru/sisyphus/binary/uudeview/x86_64/
--
---
WBR, Leonid (respublica на altlinux.org)
Подробная информация о списке рассылки devel-newbies