Shared Libs Policy Versioning Example: различия между версиями
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...») |
Fidel (обсуждение | вклад) (Форматирование текста) |
||
Строка 1: | Строка 1: | ||
[[Category:Devel]] | [[Category:Devel]] | ||
'''Цель:''' | '''Цель:''' | ||
обновить libpaper 1.1.28 до 2.1.1 без пересборки множества зависящих от libpaper.so.1 пакетов (рассматривается только принцип разделения) | обновить libpaper 1.1.28 до 2.1.1 без пересборки множества зависящих от libpaper.so.1 пакетов (рассматривается только принцип разделения) | ||
== Действия с версией 1.1.28: == | == Действия с версией 1.1.28: == | ||
отключаем пакет devel (что бы все пакеты собирались уже с новой версией):<br> | * переименовываем старый пакет в libpaper1: | ||
%if_enabled devel | %define soname 1 | ||
%package devel | %def_disable devel | ||
Summary: Header files for %name | Name: libpaper%soname | ||
Group: Development/Other | Version: 1.1.28 | ||
Requires: libpaper = %EVR | Release: alt4 | ||
%description devel | |||
Header files for %name library. | * оставляем бинарник со старым названием libpaper: | ||
%endif | |||
%package -n libpaper | |||
удаляем | Summary: Library for handling papersize | ||
Group: System/Legacy libraries | |||
%if_disabled devel | Provides: libpaper1 = %EVR | ||
rm -rv %buildroot%_libdir/libpaper.so | Obsoletes: libpaper1 < %EVR | ||
rm -rv %buildroot%_includedir/paper.h | |||
rm -rv %buildroot%_man3dir/ | * отключаем пакет devel (что бы все пакеты собирались уже с новой версией):<br> | ||
%endif | |||
%if_enabled devel | |||
исключаем раздел %files для devel пакета: | %package devel | ||
Summary: Header files for %name | |||
%if_enabled devel | Group: Development/Other | ||
%files devel | Requires: libpaper = %EVR | ||
%_libdir/libpaper.so | %description devel | ||
%_includedir/paper.h | Header files for %name library. | ||
%_man3dir/* | %endif | ||
%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: == | == Действия с версией 2.2.1: == | ||
берем еще один старый пакет libpaper и переименовываем ТОЛЬКО БИНАРНИК в libpaper2 с обновление исходников до нужной версии и правкой спека, при необходимости): | * берем еще один старый пакет libpaper и переименовываем ТОЛЬКО БИНАРНИК в libpaper2 с обновление исходников до нужной версии и правкой спека, при необходимости): | ||
%define soname 2 | %define soname 2 | ||
Name: libpaper | Name: libpaper | ||
Version: 2.1.1 | Version: 2.1.1 | ||
Release: alt2 | Release: alt2 | ||
Epoch: 2 | 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 | |||
%package -n libpaper-devel | |||
Summary: Header files for %name | |||
Group: Development/Other | |||
Requires: %name%soname = %EVR | |||
=== Смотри также === | === Смотри также === | ||
* https://www.altlinux.org/Shared_Libs_Policy | * https://www.altlinux.org/Shared_Libs_Policy |
Версия от 21:47, 25 июля 2023
Цель:
обновить 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