Bug#993498: Checkinstall should use dpkg-shlibdeps

2021-09-09 Thread Stephen Gelman
 I will look into adding this, but due to the way checkinstall manually
creates debs, dpkg-shlibdeps doesn’t like its control file so there is
likely some extra work that would need to be done.

Stephen

On Sep 2, 2021 at 3:55:39 AM, chrysn  wrote:

> Package: checkinstall
> Version: 1.6.2+git20170426.d24a630-2
> Severity: wishlist
> Tags: upstream
>
> When creating a deb on Debian using checkinstall (eg. to get a working
> distributable version of software whose build dependencies are so
> compilcated[1] it stands little chances in regular packaging), several
> dependencies could be detected automatically using shlibdeps, as is done
> eg. by debhelper dh_shlibdeps. When binaries are installed, that would
> detect the necessary libc versions as well as any other shared libraries
> the installed binaries depend on.
>
> The correct dependency information would help both cleaning up the local
> system (otherwise uninstalling the -dev packages might autoremove also
> the libraries that are now depended on) and using it on a different
> system (where now one has to read linker errors and add files on demand).
>
> [1]: https://github.com/immunant/c2rust/issues/326
>
>
> Minimal test case:
>
> $ fakeroot checkinstall --pkgname test --default --install=no -- cp -a
> /usr/bin/ssh /bin
> $ dpkg-deb --info test_20??-1_*.deb | grep Depends
> (no results)
>
> If shlibdeps were extracted, it should print at least something about
> libc.
>
> A minimal working example of how to arrive at the relevant shlibdeps is:
>
> $ mkdir debian
> $ touch debian/control
> $ dpkg-shlibdeps /usr/bin/ssh
> $ cat debian/substvars
> shlibs:Depends=libc6 (>= 2.26), libgssapi-krb5-2 (>= 1.17), libselinux1
> (>= 3.1~), libssl1.1 (>= 1.1.0), zlib1g (>= 1:1.1.4)
>
>
> -- System Information:
> Debian Release: bookworm/sid
>  APT prefers unstable
>  APT policy: (500, 'unstable'), (1, 'experimental')
> Architecture: amd64 (x86_64)
> Foreign Architectures: i386
>
> Kernel: Linux 5.13.0 (SMP w/8 CPU threads)
> Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
> Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8),
> LANGUAGE=en_GB:en
> Shell: /bin/sh linked to /bin/dash
> Init: systemd (via /run/systemd/system)
> LSM: AppArmor: enabled
>
> Versions of packages checkinstall depends on:
> ii  dpkg-dev1.20.9
> ii  file1:5.39-3
> ii  libc6   2.31-17
> ii  sensible-utils  0.0.17
>
> Versions of packages checkinstall recommends:
> ii  make  4.3-4.1
>
> Versions of packages checkinstall suggests:
> ii  gettext  0.21-4
>
> -- no debconf information
>


Bug#993498: Checkinstall should use dpkg-shlibdeps

2021-09-02 Thread chrysn
Package: checkinstall
Version: 1.6.2+git20170426.d24a630-2
Severity: wishlist
Tags: upstream

When creating a deb on Debian using checkinstall (eg. to get a working
distributable version of software whose build dependencies are so
compilcated[1] it stands little chances in regular packaging), several
dependencies could be detected automatically using shlibdeps, as is done
eg. by debhelper dh_shlibdeps. When binaries are installed, that would
detect the necessary libc versions as well as any other shared libraries
the installed binaries depend on.

The correct dependency information would help both cleaning up the local
system (otherwise uninstalling the -dev packages might autoremove also
the libraries that are now depended on) and using it on a different
system (where now one has to read linker errors and add files on demand).

[1]: https://github.com/immunant/c2rust/issues/326


Minimal test case:

$ fakeroot checkinstall --pkgname test --default --install=no -- cp -a 
/usr/bin/ssh /bin
$ dpkg-deb --info test_20??-1_*.deb | grep Depends
(no results)

If shlibdeps were extracted, it should print at least something about
libc.

A minimal working example of how to arrive at the relevant shlibdeps is:

$ mkdir debian
$ touch debian/control
$ dpkg-shlibdeps /usr/bin/ssh
$ cat debian/substvars
shlibs:Depends=libc6 (>= 2.26), libgssapi-krb5-2 (>= 1.17), libselinux1 (>= 
3.1~), libssl1.1 (>= 1.1.0), zlib1g (>= 1:1.1.4)


-- System Information:
Debian Release: bookworm/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 5.13.0 (SMP w/8 CPU threads)
Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_GB:en
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages checkinstall depends on:
ii  dpkg-dev1.20.9
ii  file1:5.39-3
ii  libc6   2.31-17
ii  sensible-utils  0.0.17

Versions of packages checkinstall recommends:
ii  make  4.3-4.1

Versions of packages checkinstall suggests:
ii  gettext  0.21-4

-- no debconf information


signature.asc
Description: PGP signature