Bug#1120310: What are the gir1.2 package naming conventions?

Seyed Mohamad Amin Modaresi <[email protected]> Thu, 11 Dec 2025 03:13:21 +0000
Newsgroups gmane.linux.debian.devel.bugs.general,gmane.linux.debian.devel.mentors,gmane.linux.debian.devel.gtk-gnome
Message-ID <Y4FJSGo-KYsopTgPpbA_D3__AI0rdm27yhUBBVhGNGPUATg284qMcO1p2UR3rerxXWAZVCsKlWq0Xj4yRwdgenHg0tcYU_B0_89tajDJmrs=@proton.me>
There are two types of ABI changes: ones that are backward-compatible and o=
nes that are not. An ABI change is backward-compatible if any reasonable pr=
ogram or library that was linked with the previous version of the shared li=
brary will still work correctly with the new version of the shared library.=
 15 Adding new symbols to the shared library is a backward-compatible chang=
e. Removing symbols from the shared library is not. Changing the behavior o=
f a symbol may or may not be backward-compatible depending on the change; f=
or example, changing a function to accept a new enum constant not previousl=
y used by the library is generally backward-compatible, but changing the me=
mbers of a struct that is passed into library functions is generally not un=
less the library takes special precautions to accept old versions of the da=
ta structure.

ABI changes that are not backward-compatible normally require changing the =
SONAME of the library and therefore the shared library package name, which =
forces rebuilding all packages using that shared library to update their de=
pendencies and allow them to use the new version of the shared library. For=
 more information, see Run-time shared libraries.

----
The run-time shared library must be placed in a package whose name changes =
whenever the SONAME of the shared library changes. This allows several vers=
ions of the shared library to be installed at the same time, allowing insta=
llation of the new version of the shared library without immediately breaki=
ng binaries that depend on the old version. 2

Normally, the run-time shared library and its SONAME symlink should be plac=
ed in a package named librarynamesoversion, where soversion is the version =
number in the SONAME of the shared library. Alternatively, if it would be c=
onfusing to directly append soversion to libraryname (if, for example, libr=
aryname itself ends in a number), you should use libraryname-soversion inst=
ead. 3


https://www.debian.org/doc/debian-policy/ch-sharedlibs.html