Libtool/versioning

Материал из ALT Linux Wiki

(Различия между версиями)
Перейти к: навигация, поиск
(Import from freesource.info)
 
(3 промежуточные версии не показаны)
Строка 1: Строка 1:
-
[[Category:Devel]]
+
== Обновление версий библиотеки ==
-
{{MovedFromFreesourceInfo|AltLinux/Sisyphus/devel/libtool/versioning}}
+
-
 
+
-
=== Обновление версий библиотеки ===
+
Хихин Руслан (aka ruslanh@) [http://lists.altlinux.org/pipermail/sisyphus/2007-March/094557.html перевёл] раздел Updating version info из <tt>info libtool</tt>:
Хихин Руслан (aka ruslanh@) [http://lists.altlinux.org/pipermail/sisyphus/2007-March/094557.html перевёл] раздел Updating version info из <tt>info libtool</tt>:
-
<pre>Здесь установлены правила, которые помогут вам правильно задать информацию о версиях библиотеки:
+
Здесь установлены правила, которые помогут вам правильно задать информацию о версиях библиотеки:
 +
 
 +
# Стартовая версия для любой libtool библиотеки - `0:0:0' (CURRENT=0, REVISION=0, AGE=0). Формат версии C:R:A.
 +
# Изменяйте информацию о версии библиотеки только перед публичным релизом вашего программного обеспечения. Более частое изменение версии является ненужным, и только увеличит скорость изменения номера интерфейса.
 +
# Если исходный код библиотеки был изменён после последнего обновления, тогда увеличиваем REVISION (`C:R:A' становится `C:r+1:A').
 +
# Если какой-нибудь программный интерфейс был добавлен, удалён или изменён после последнего обновления, то увеличивается CURRENT, а REVISION устанавливается в 0 (`C:R:' становится `C+1:0:')
 +
# Если какой-нибудь программный интерфейс был добавлен после последнего обновления, то увеличивается AGE.
 +
# Если какой-нибудь программный интерфейс был удалён после последнего обновления, то АGE устанавливается в 0.
-
1. Стартовая версия для любой libtool библиотеки - `0:0:0'
+
'''Никогда''' не устанавливайте версию библиотеки так, чтобы она соответствовала версии вашего пакета. Это злоупотребление только поощряет недоразумения, связанные с нумерацией версий библиотек и версий пакетов (у них разная политика нумерации
-
    (CURRENT=0, REVISION=0, AGE=0). Формат версии C:R:A.
+
версий). Вместо этого, используйте ключ `-relеase' (смотрите про нумерацию релизов), но не ждите, что каждый релиз вашего пакета будет бинарно совместим с любым другим релизом.
-
2. Изменяйте информацию о версии библиотеки только перед публичным релизом вашего
 
-
    программного обеспечения. Более частое изменение версии является ненужным,
 
-
    и только увеличит скорость изменения номера интерфейса.
 
-
3. Если исходный код библиотеки , был изменён после последнего обновления, тогда
+
То же самое, сказанное несколько другими словами (попроще), взято из комментария в
-
    увеличиваем REVISION (`C:R:A' становится `C:r+1:A').
+
файле configure.ac пакета libsexymm:
-
4. Если какой-нибудь программный интерфейс был добавлен, удалён или изменён после
+
{| class="standard"
-
    последнего обновления, то увеличивается CURRENT, а REVISION устанавливается
+
! CURRENT
-
    в 0 (`C:R:' становится `C+1:0:')
+
! REVISION
 +
! AGE
 +
! Изменение
 +
|-
 +
| +1
 +
| 0
 +
| +1
 +
| Добавлен новый интерфейс, не нарушающий совместимости.
 +
|-
 +
| +1
 +
| 0
 +
| 0
 +
| Удалён интерфейс. Совместимость со старыми версиями нарушена.
 +
|-
 +
|?
 +
| +1
 +
|?
 +
| Внутренние изменения, не нарушающие ничего
 +
|}
-
5. Если какой-нибудь программный интерфейс был добавлен после последнего обновления,
+
=== Ссылки ===
-
    то увеличивается AGE.
+
-
6. Если какой-нибудь программный интерфейс был удалён после последнего обновления,
+
http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
-
  то АGE устанавливается в 0.
+
-
**Никогда** не устанавливайте версию библиотеки так, чтобы она соответствовала
+
[[Категория:Devel]]
-
версии вашего пакета. Это злоупотребление только поощряет недоразумения связанные
+
-
с нумерацией версий библиотек и версий пакетов (у них разная политика нумерации
+
-
версий). Вместо этого, используйте ключ `-relеase'  (смотрите про нумерацию релизов),
+
-
но не ждите, что каждый релиз вашего пакета будет бинарно совместим с любым другим
+
-
релизом.</pre>
+

Текущая версия на 21:30, 25 января 2011

Обновление версий библиотеки

Хихин Руслан (aka ruslanh@) перевёл раздел Updating version info из info libtool:

Здесь установлены правила, которые помогут вам правильно задать информацию о версиях библиотеки:

  1. Стартовая версия для любой libtool библиотеки - `0:0:0' (CURRENT=0, REVISION=0, AGE=0). Формат версии C:R:A.
  2. Изменяйте информацию о версии библиотеки только перед публичным релизом вашего программного обеспечения. Более частое изменение версии является ненужным, и только увеличит скорость изменения номера интерфейса.
  3. Если исходный код библиотеки был изменён после последнего обновления, тогда увеличиваем REVISION (`C:R:A' становится `C:r+1:A').
  4. Если какой-нибудь программный интерфейс был добавлен, удалён или изменён после последнего обновления, то увеличивается CURRENT, а REVISION устанавливается в 0 (`C:R:' становится `C+1:0:')
  5. Если какой-нибудь программный интерфейс был добавлен после последнего обновления, то увеличивается AGE.
  6. Если какой-нибудь программный интерфейс был удалён после последнего обновления, то АGE устанавливается в 0.

Никогда не устанавливайте версию библиотеки так, чтобы она соответствовала версии вашего пакета. Это злоупотребление только поощряет недоразумения, связанные с нумерацией версий библиотек и версий пакетов (у них разная политика нумерации версий). Вместо этого, используйте ключ `-relеase' (смотрите про нумерацию релизов), но не ждите, что каждый релиз вашего пакета будет бинарно совместим с любым другим релизом.


То же самое, сказанное несколько другими словами (попроще), взято из комментария в файле configure.ac пакета libsexymm:

CURRENT REVISION AGE Изменение
+1 0 +1 Добавлен новый интерфейс, не нарушающий совместимости.
+1 0 0 Удалён интерфейс. Совместимость со старыми версиями нарушена.
? +1 ? Внутренние изменения, не нарушающие ничего

Ссылки

http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html

 
Личные инструменты