On 2024-04-06 19:49 +0200, Santiago Vila wrote:
>> Patch attached, I have tested that it builds on amd64 and i386. looked
>> at the generated Dependencies and verified that lintian does not go
>> crazy, but that's it. Note that I had to add libtool-bin rather than
>> just libtool to Build-Depends to prevent configure from complaining, and
>> also pacify dh_missing considering the not installed .la file.
>
> Awesome, thanks a lot!
>
> Regarding the static library, I can see now that keeping it does not
> really make the package more complex, so we'll keep it.
>
> A few questions:
>
> - Does this require a "transition"? I think not, because the API has not
> changed. On the other hand, packages which build-depend on libdialog-dev
> should be rebuilt with the shared library anyway, and this is usually done
> as part of a transition.
Considering that there are currently no packages in unstable which
build-depend on libdialog-dev (or on dialog, for that matter), a
transition seems unnecessary.
> - Regarding the Breaks field, I think it's not actually required and
> we should not add it (i.e. Replaces is enough).
Policy disagrees, and the piuparts maintainer might come after you if
they detect that.
> I tried creating the packages without the Breaks field, installing the
> libdialog and libdialog-dev packages on a system where dialog was
> already installed, and this is what happened:
>
> # dpkg -i libdialog-dev_1.3-20240101-2_amd64.deb
> libdialog15_1.3-20240101-2_amd64.deb
> (Reading database ... 14174 files and directories currently installed.)
> Preparing to unpack libdialog-dev_1.3-20240101-2_amd64.deb ...
> Unpacking libdialog-dev:amd64 (1.3-20240101-2) ...
> Replacing files in old package dialog (1.3-20240101-1) ...
> Preparing to unpack libdialog15_1.3-20240101-2_amd64.deb ...
> Unpacking libdialog15:amd64 (1.3-20240101-2) over (1.3-20240101-2) ...
> Setting up libdialog15:amd64 (1.3-20240101-2) ...
> Setting up libdialog-dev:amd64 (1.3-20240101-2) ...
> Processing triggers for man-db (2.12.1-1) ...
> Not building database; man-db/auto-update is not 'true'.
> Processing triggers for libc-bin (2.37-15.1) ...
>
> i.e. no errors, dpkg takes note of the moved files, and the old dialog
> is still functional, because it's still linked statically.
Yes, but if you then decide to remove the libdialog-dev package, the
libdialog.a file is gone, although the old dialog package supposedly
still provides libdialog-dev. That is the reason why Policy recommends
to use "Replaces" in combination with "Breaks"[1].
Cheers,
Sven
1. https://www.debian.org/doc/debian-policy/ch-relationships.html#id11