Shared Libs Policy Versioning Example

Материал из ALT Linux Wiki
Версия от 21:37, 25 июля 2023; Fidel (обсуждение | вклад) (Новая страница: «Category:Devel '''Цель:''' обновить libpaper 1.1.28 до 2.1.1 без пересборки множества зависящих от libpaper.so.1 пакетов (рассматривается только принцип разделения) == Действия с версией 1.1.28: == переименовываем старый пакет в libpaper1:<br> <code> %define soname 1<br> %def_disable devel<br> Name: libpaper%soname<br> V...»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

Цель: обновить libpaper 1.1.28 до 2.1.1 без пересборки множества зависящих от libpaper.so.1 пакетов (рассматривается только принцип разделения)

Действия с версией 1.1.28:

переименовываем старый пакет в libpaper1:
%define soname 1
%def_disable devel
Name: libpaper%soname
Version: 1.1.28
Release: alt4
оставляем бинарник со старым названием libpaper:
%package -n libpaper
Summary: Library for handling papersize
Group: System/Legacy libraries
Provides: libpaper1 = %EVR
Obsoletes: libpaper1 < %EVR

отключаем пакет devel (что бы все пакеты собирались уже с новой версией):
%if_enabled devel
%package devel
Summary: Header files for %name
Group: Development/Other
Requires: libpaper = %EVR
%description devel
Header files for %name library.
%endif
удаляем незапакованные файлы devel пакета в разделе %install:
%if_disabled devel
rm -rv %buildroot%_libdir/libpaper.so
rm -rv %buildroot%_includedir/paper.h
rm -rv %buildroot%_man3dir/
%endif
исключаем раздел %files для devel пакета:
%if_enabled devel
%files devel
%_libdir/libpaper.so
%_includedir/paper.h
%_man3dir/*
%endif

Действия с версией 2.2.1:

берем еще один старый пакет libpaper и переименовываем ТОЛЬКО БИНАРНИК в libpaper2 с обновление исходников до нужной версии и правкой спека, при необходимости): %define soname 2 Name: libpaper Version: 2.1.1 Release: alt2 Epoch: 2

%package -n %name%soname Summary: Library and tools for handling papersize Group: System/Libraries Conflicts: libpaper < 1.1.28-alt3

добавляем новый предоставляемый пакет paper в libpaper2: %package -n paper Summary: Query paper size database and retrieve the preferred size Group: Text tools Requires: %name%soname = %EVR создаем libpaper-devel что бы все пакеты, зависящие от него, собирались с новой версией: %package -n libpaper-devel Summary: Header files for %name Group: Development/Other Requires: %name%soname = %EVR

Смотри также