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

Материал из ALT Linux Wiki
(Новая страница: «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...»)
 
(Форматирование текста)
Строка 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: ==
переименовываем старый пакет в libpaper1:<br>
<code>
%define soname 1<br>
%def_disable devel<br>
Name: libpaper%soname<br>
Version: 1.1.28<br>
Release: alt4<br>
</code>
оставляем бинарник со старым названием libpaper:<br>
<code>
%package -n libpaper<br>
Summary: Library for handling papersize<br>
Group: System/Legacy libraries<br>
Provides: libpaper1 = %EVR<br>
Obsoletes: libpaper1 < %EVR<br>
</code><br>


отключаем пакет devel (что бы все пакеты собирались уже с новой версией):<br>
* переименовываем старый пакет в libpaper1:
<code>
 
%if_enabled devel<br>
%define soname 1
%package devel<br>
%def_disable devel
Summary: Header files for %name<br>
Name: libpaper%soname
Group: Development/Other<br>
Version: 1.1.28
Requires: libpaper = %EVR<br>
Release: alt4
%description devel<br>
 
Header files for %name library.<br>
* оставляем бинарник со старым названием libpaper:
%endif<br>
 
</code>
%package -n libpaper
удаляем незапакованные файлы devel пакета в разделе %install:<br>
Summary: Library for handling papersize
<code>
Group: System/Legacy libraries
%if_disabled devel<br>
Provides: libpaper1 = %EVR
rm -rv %buildroot%_libdir/libpaper.so<br>
Obsoletes: libpaper1 < %EVR
rm -rv %buildroot%_includedir/paper.h<br>
 
rm -rv %buildroot%_man3dir/<br>
* отключаем пакет devel (что бы все пакеты собирались уже с новой версией):<br>
%endif<br>
 
</code>
%if_enabled devel
исключаем раздел %files для devel пакета:<br>
%package devel
<code>
Summary: Header files for %name
%if_enabled devel<br>
Group: Development/Other
%files devel<br>
Requires: libpaper = %EVR
%_libdir/libpaper.so<br>
%description devel
%_includedir/paper.h<br>
Header files for %name library.
%_man3dir/*<br>
%endif
%endif<br>
 
</code>
* удаляем не запакованные файлы 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 с обновление исходников до нужной версии и правкой спека, при необходимости):
<code>
 
%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


%package -n %name%soname
* создаем libpaper-devel что бы все пакеты, зависящие от него, собирались с новой версией:
Summary: Library and tools for handling papersize
Group: System/Libraries
Conflicts: libpaper < 1.1.28-alt3
</code>


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


=== Смотри также ===
=== Смотри также ===
* https://www.altlinux.org/Shared_Libs_Policy
* https://www.altlinux.org/Shared_Libs_Policy

Версия от 18: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

Смотри также