On Sat, Jun 04, 2022 at 11:19:20AM +0200, Sven Joachim wrote:
> Control: tags -1 + patch
>
> On 2022-06-04 09:52 +0200, Sven Joachim wrote:
>
> > Package: dialog
> > Version: 1.3-20211214-1
> > Severity: normal
> > User:
multiar...@lists.alioth.debian.org
> > Usertags: multiarch
> >
> > The dialog package is marked Multi-Arch: foreign, but contains the
> > static library /usr/lib/<triplet>/libdialog.a. This is flagged as an
> > error by lintian.
actually, a shared library is generally preferred for development packages.
This is what I build for my own use (scripts in the package/debian directory),
as "cdialog-dev":
/usr/bin/cdialog-config*
/usr/include/cdialog/dlg_colors.h
/usr/include/cdialog/dlg_config.h
/usr/include/cdialog/dlg_keys.h
/usr/include/cdialog.h
/usr/share/doc/cdialog-dev/changelog.Debian.gz
/usr/share/doc/cdialog-dev/changelog.gz
/usr/share/doc/cdialog-dev/copyright
/usr/share/man/man3/cdialog.3.gz
/lib/x86_64-linux-gnu/libcdialog.so@
Adding a static library is helpful, of course.
> > ,----
> > | $ lintian-explain-tags multiarch-foreign-static-library
> > | N:
> > | E: multiarch-foreign-static-library
> > | N:
> > | N: The package is architecture-dependent, ships a static library in a public, architecture-dependent library search path
> > | N: and is marked Multi-Arch: foreign. A compiler will be unable to find this file, unless it is installed for a matching
> > | N: architecture, but the foreign marking says that the architecture should not matter.
> > | N:
> > | N: Please remove the Multi-Arch: foreign stanza.
> > `----
> >
> > The lintian diagnosis looks correct to me, but I do not think the
> > suggested remedy is what we want here. Rather, the correct fix should
> > be to split out libdialog.a and the header files into a separate
> > libdialog-dev package (which probably could be marked Multi-Arch: same).
>
> See the attached patch which is build-time tested. The package
> description for libdialog-dev might have to be tweaked, and if
> 1.3-20211214-2 is not the version that first applies the patch, the
> Breaks/Replaces relationships need to be adjusted.
>
> I also noticed that dialog.h #includes curses.h, so added a dependency
> on libncurses-dev to libdialog-dev.
>
> Cheers,
> Sven
>
> diff --git a/debian/control b/debian/control
> index 14ddb48..a38a59b 100644
> --- a/debian/control
> +++ b/debian/control
> @@ -9,7 +9,6 @@ Homepage:
https://invisible-island.net/dialog/dialog.html
> Package: dialog
> Architecture: any
> Depends: ${shlibs:Depends}, debianutils (>= 1.6)
> -Provides: libdialog-dev
> Multi-Arch: foreign
> Description: Displays user-friendly dialog boxes from shell scripts
> This application provides a method of displaying several different types
> @@ -29,3 +28,17 @@ Description: Displays user-friendly dialog boxes from shell scripts
> tail Allows viewing the end of files (tail) that auto updates
> background tail Similar to tail but runs in the background.
> editbox Allows editing an existing file
> +
> +Package: libdialog-dev
> +Architecture: any
> +Section: libdevel
> +Depends: ${misc:Depends}, libncurses-dev
> +Multi-Arch: same
> +Replaces: dialog (<< 1.3-20211214-2~)
> +Breaks: dialog (<< 1.3-20211214-2~)
> +Description: Displays user-friendly dialog boxes -- development files
> + The dialog application provides a method of displaying several different
> + types of dialog boxes from shell scripts. This allows a developer of a
> + script to interact with the user in a much friendlier manner.
> + .
> + This package contains the header files and the static library.
> diff --git a/debian/dialog.install b/debian/dialog.install
> index 891ffa2..7186321 100644
> --- a/debian/dialog.install
> +++ b/debian/dialog.install
> @@ -1 +1,4 @@
>
dialog.pl usr/share/perl5
> +usr/bin
> +usr/share/locale
> +usr/share/man/man1
> diff --git a/debian/libdialog-dev.install b/debian/libdialog-dev.install
> new file mode 100644
> index 0000000..95c4b91
> --- /dev/null
> +++ b/debian/libdialog-dev.install
> @@ -0,0 +1,3 @@
> +usr/include
> +usr/lib
> +usr/share/man/man3
--
Thomas E. Dickey <
dic...@invisible-island.net>
https://invisible-island.net
ftp://ftp.invisible-island.net