Shared Libs Policy Versioning Example: различия между версиями
Fidel (обсуждение | вклад) Нет описания правки |
м (VitalyLipatov переименовал страницу ExampleOfPacketPeparation в Shared Libs Policy Versioning Example) |
||
(не показано 9 промежуточных версий 2 участников) | |||
Строка 1: | Строка 1: | ||
[[Category:Devel]] | [[Category:Devel]] | ||
'''Цель:'''<br> | '''Цель:'''<br> | ||
выполнить версионирование пакета с библиотекой согласно [[Shared Libs Policy]] с тем, чтобы обеспечить сосуществование разных версий. | |||
[[Файл: | [[Файл:Libpaper0.png|безрамки|центр|Схема версионирования]] | ||
== Действия с версией 1.1.28: == | == Действия с версией 1.1.28: == | ||
Строка 14: | Строка 14: | ||
Version: 1.1.28 | Version: 1.1.28 | ||
Release: alt4 | Release: alt4 | ||
Group: System/Legacy libraries | |||
* оставляем бинарник со старым названием libpaper: | * оставляем бинарник со старым названием libpaper и обязательно меняем группу на '''System/Legacy libraries''': | ||
%package -n libpaper | %package -n libpaper | ||
Summary: Library for handling papersize | Summary: Library for handling papersize | ||
Group: System/Legacy libraries | Group: System/Legacy libraries | ||
* отключаем пакет devel ( | * отключаем пакет devel (чтобы все пакеты собирались уже с новой версией):<br> | ||
%if_enabled devel | %if_enabled devel | ||
Строка 53: | Строка 52: | ||
== Действия с версией 2.2.1: == | == Действия с версией 2.2.1: == | ||
* | * обновляем пакет libpaper, добавляя использование soname в бинарном пакете: | ||
%define soname 2 | %define soname 2 | ||
Name: libpaper | Name: libpaper | ||
Version: 2.1.1 | Version: 2.1.1 | ||
Release: | Release: alt3 | ||
%package -n %name%soname | %package -n %name%soname | ||
Summary: Library and tools for handling papersize | Summary: Library and tools for handling papersize | ||
Group: System/Libraries | Group: System/Libraries | ||
* добавляем новый предоставляемый пакет paper в libpaper2: | * добавляем новый предоставляемый пакет paper в libpaper2: | ||
Строка 72: | Строка 69: | ||
Group: Text tools | Group: Text tools | ||
Requires: %name%soname = %EVR | Requires: %name%soname = %EVR | ||
Conflicts: libpaper < 1.1.28-alt3 | |||
* создаем libpaper-devel | * создаем libpaper-devel, чтобы все пакеты, зависящие от него, собирались с новой версией: | ||
%package -n libpaper-devel | %package -n libpaper-devel | ||
Строка 79: | Строка 77: | ||
Group: Development/Other | Group: Development/Other | ||
Requires: %name%soname = %EVR | Requires: %name%soname = %EVR | ||
'''Собираем оба пакета в одном задании.''' | |||
=== Смотри также === | === Смотри также === | ||
* https://www.altlinux.org/Shared_Libs_Policy | * https://www.altlinux.org/Shared_Libs_Policy | ||
* https://www.altlinux.org/Shared_Libs_Policy_Example | |||
* https://www.altlinux.org/Soname | |||
* https://www.altlinux.org/Filesystem_coherency_and_conflicts |
Текущая версия от 03:28, 2 августа 2023
Цель:
выполнить версионирование пакета с библиотекой согласно Shared Libs Policy с тем, чтобы обеспечить сосуществование разных версий.
Действия с версией 1.1.28:
- переименовываем старый пакет в libpaper1:
%define soname 1 %def_disable devel Name: libpaper%soname Version: 1.1.28 Release: alt4 Group: System/Legacy libraries
- оставляем бинарник со старым названием libpaper и обязательно меняем группу на System/Legacy libraries:
%package -n libpaper Summary: Library for handling papersize Group: System/Legacy libraries
- отключаем пакет 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, добавляя использование soname в бинарном пакете:
%define soname 2 Name: libpaper Version: 2.1.1 Release: alt3
%package -n %name%soname Summary: Library and tools for handling papersize Group: System/Libraries
- добавляем новый предоставляемый пакет paper в libpaper2:
%package -n paper Summary: Query paper size database and retrieve the preferred size Group: Text tools Requires: %name%soname = %EVR Conflicts: libpaper < 1.1.28-alt3
- создаем libpaper-devel, чтобы все пакеты, зависящие от него, собирались с новой версией:
%package -n libpaper-devel Summary: Header files for %name Group: Development/Other Requires: %name%soname = %EVR
Собираем оба пакета в одном задании.