Shared Libs Policy Versioning Example: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
Нет описания правки
Строка 2: Строка 2:
'''Цель:'''<br>
'''Цель:'''<br>
выполнить версионирование пакета с библиотекой согласно [[Shared Libs Policy]] с тем, чтобы обеспечить сосуществование разных версий.
выполнить версионирование пакета с библиотекой согласно [[Shared Libs Policy]] с тем, чтобы обеспечить сосуществование разных версий.
[[Файл:Libpaper1.png|безрамки|центр|схема версионирования]]


== Действия с версией 1.1.28: ==
== Действия с версией 1.1.28: ==
Строка 12: Строка 14:
  Version: 1.1.28
  Version: 1.1.28
  Release: alt4
  Release: alt4
  Provides: libpaper = %EVR
  Group: System/Legacy libraries


* оставляем бинарник со старым названием libpaper и обязательно меняем группу на '''System/Legacy libraries''':
* оставляем бинарник со старым названием libpaper и обязательно меняем группу на '''System/Legacy libraries''':
Строка 60: Строка 62:
  Summary: Library and tools for handling papersize
  Summary: Library and tools for handling papersize
  Group: System/Libraries
  Group: System/Libraries
Conflicts: libpaper < 1.1.28-alt4


* добавляем новый предоставляемый пакет paper в libpaper2:
* добавляем новый предоставляемый пакет paper в libpaper2:
Строка 68: Строка 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 что бы все пакеты, зависящие от него, собирались с новой версией:
Строка 80: Строка 82:
=== Смотри также ===
=== Смотри также ===
* 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/Soname
* https://www.altlinux.org/Filesystem_coherency_and_conflicts
* https://www.altlinux.org/Filesystem_coherency_and_conflicts

Версия от 00:17, 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: alt2
%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

Собираем оба пакета в одном задании.

Смотри также