[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