Bug#976067: libgiac-dev: missing dependencies to scientific development packages

Sébastien Michelland sebastien.michelland at protonmail.com
Sun Nov 29 10:02:48 GMT 2020


Package: libgiac-dev
Version: 1.6.0.31+dfsg1-1
Severity: important
X-Debbugs-Cc: sebastien.michelland at protonmail.com

Installing config.h enables Giac to expose features in its public headers (as
intended by [1]). This also enables preprocessor-guarded includes for a variety
of libraries used by Giac, effectively making them dependencies of libgiac-dev.
Currently only the runtime variants are declared as dependencies, so even
simple programs building against Giac can fail because of missing headers.

The exact list of includes enabled by the install of config.h depends on Giac's
compile options; the packaged version of libgiac-dev in Sid requires
libgmp-dev, libmpfr-dev, libmpfi-dev, libgsl-dev, libntl-dev, and
libfltk1.3-dev for programs to compile.

The dependency to libfltk1.3-dev is unfortunate as FLTK in turn requires a full
graphics stack, which is not expected from libgiac-dev. I am unsure whether
there is a better way to handle it.

## Sample steps to reproduce

Create a minimal Debian Sid install with libgiac-dev but without any of the
packages listed above.

% sudo debootstrap sid libgiac-dev-bugreport/ http://ftp.debian.org/debian/
% sudo chroot libgiac-dev-bugreport/
% apt install build-essential libgiac-dev

Try to build a sample Giac program:

#include <giac/config.h>
#include <giac/giac.h>

int main(void)
{
	giac::context ct;
	std::cout << giac::_factor(giac::gen("x^2-1", &ct), &ct) << "\n";
	return 0;
}

% g++ giac-example.cpp -o giac-example -Wall -Wextra -lgiac
In file included from /usr/include/giac/giac.h:3,
                 from giac-example.cpp:2:
/usr/include/giac/first.h:362:10: fatal error: gmp.h: No such file or directory
  362 | #include "gmp.h"
      |          ^~~~~~~
compilation terminated.

Install the missing package and try again. The following headers will be found
missing before build eventually succeeds:

* gmp.h (libgmp-dev)
* mpfr.h (libmpfr-dev)
* mpfi.h (libmpfi-dev-common, but probably better installed through libmpfi-dev)
* gsl/gsl_vector.h (libgsl-dev)
* NTL/ZZXFactoring.h (libntl-dev)
* FL/Enumerations.H (libfltk1.1-dev or libfltk1.3-dev)

[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=972827

-- System Information:
Debian Release: bullseye/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 5.9.9-arch1-1 (SMP w/2 CPU threads; PREEMPT)
Locale: LANG=C, LC_CTYPE=C.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: unable to detect

Versions of packages libgiac-dev depends on:
ii  libgiac0  1.6.0.31+dfsg1-1

libgiac-dev recommends no packages.

libgiac-dev suggests no packages.

-- no debconf information



More information about the debian-science-maintainers mailing list