Hi!

On Sat, 2026-02-07 at 17:02:20 -0800, Russ Allbery wrote:
> Here is a proposed change incorporating this change and Guillem's
> feedback. Does this look good to everyone? (I moved one footnote because
> we now try to keep footnotes immediately after the paragraph they refer to
> and the added footnote would otherwise be out of order.)

Great, thanks!

> >From 19414e709a7dd38f35e621474c94a0931c2f6835 Mon Sep 17 00:00:00 2001
> From: Russ Allbery <[email protected]>
> Date: Sat, 7 Feb 2026 16:58:35 -0800
> Subject: [PATCH] Allow *.so files to be linker scripts
> 
> In some cases, *.so files installed by binary development packages
> for libraries are linker scripts instead of symlinks. Document that,
> and document the constraints imposed by ldconfig on linker scripts.
> Based on wording from Aurelien Jarno and feedback from Guillem Jover.
> 
> Closes: #1095039
> ---
>  policy/ch-sharedlibs.rst | 32 +++++++++++++++++++++-----------
>  1 file changed, 21 insertions(+), 11 deletions(-)
> 
> diff --git a/policy/ch-sharedlibs.rst b/policy/ch-sharedlibs.rst
> index 69b79d3..cdd2e37 100644
> --- a/policy/ch-sharedlibs.rst
> +++ b/policy/ch-sharedlibs.rst
> @@ -247,29 +247,39 @@ at a time, librarynameapiversion-dev. Installing the 
> development package
>  must result in installation of all the development files necessary for
>  compiling programs against that shared library.  [#]_
>  
> +.. [#] This wording allows the development files to be split into several
> +       packages, such as a separate architecture-independent
> +       libraryname-headers, provided that the development package depends
> +       on all the required additional packages.
> +
>  In case several development versions of a library exist, you may need to
>  use ``dpkg``'s Conflicts mechanism (see :ref:`s-conflicts`) to ensure that
>  the user only installs one development version at a time (as different
>  development versions are likely to have the same header files in them,
>  which would cause a filename clash if both were unpacked).
>  
> -The development package should contain a symlink for the associated
> -shared library without a version number. For example, the libgdbm-dev
> -package should include a symlink from ``/usr/lib/libgdbm.so`` to
> -``libgdbm.so.3.0.0``. This symlink is needed by the linker (``ld``) when
> -compiling packages, as it will only look for ``libgdbm.so`` when
> -compiling dynamically.
> +The development package should contain either a symlink or a linker script
> +[#]_ for the associated shared library without a version number. For
> +example, the ``libgdbm-dev`` package should include a symlink from
> +:file:`/usr/lib/libgdbm.so` to :file:`libgdbm.so.3.0.0`, or a linker
> +script that achieves the same effect. This symlink or linker script is
> +needed by the linker (:command:`ld`) when compiling packages, as it will
> +only look for :file:`libgdbm.so` when compiling dynamically.
> +
> +.. [#] Linker scripts are used when more flexible linking strategies are
> +       desired, such as conditionally linking with an additional library
> +       or falling back to a static library for some symbols.
> +
> +If the package installs a linker script, be aware that :command:`ldconfig`
> +requires the linker script be shorter than 32 bytes, or contain either the

(As a non-native speaker, I'm not sure whether "script be shorter" is
missing a "to" in front of the "be"?)

> +``GROUP`` directive or the string ``GNU ld script`` in a comment in the
> +first 512 bytes.
>  
>  If the package provides Ada Library Information (``*.ali``) files for use
>  with GNAT, these files must be installed read-only (mode 0444) so that
>  GNAT will not attempt to recompile them. This overrides the normal file
>  mode requirements given in :ref:`s-permissions-owners`.
>  
> -.. [#] This wording allows the development files to be split into several
> -       packages, such as a separate architecture-independent
> -       libraryname-headers, provided that the development package depends
> -       on all the required additional packages.
> -
>  .. _s-sharedlibs-intradeps:
>  
>  Dependencies between the packages of the same library

Seconded, with or without the s/desired/required/ change suggested
elsethread and the perhaps missing "to".

Thanks,
Guillem

Reply via email to