build flag "-create" leads to undesired dependencies

Bug #1362043 reported by Eugene Crosser
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
haskell-publicsuffixlist (Ubuntu)
New
Undecided
Unassigned

Bug Description

In the (upstream debian) debian/rules, build flags are defined as such:

DEB_SETUP_GHC_CONFIGURE_ARGS := -fruntimelist -fcreate

The flag "-create" is "false" in the original cabal. Turning it on creates dependency on conduit and most importantly on idna. In great majority of cases, packages that use "publicsuffixlist" module do not need the "create" functionality, but because the package is built with -create, they too become dependent on conduit and idna.

The "idna" package is the biggest offender here. It is bindings to a library written in C++. Fist, the fact makes it next to impossible to build statically, which makes your program depend on a shared library that is part of a (C++) idna package. Second, the (C++) idna package is a moving target, the versions of .so that are installed in different releases of Ubuntu are incompatible (unlike, say, glibc). It makes your compiled Haskell program dependent on the version of the distribution due to a feature of the library that is not necessary for your program.

I suggest to either build the package without -fruntimelist -fcreate flags, or build two versions of the package:

1. "minimal", that the users will depend upon, built with -fruntimelist and with DEB_ENABLE_TESTS = no.
   This "minimal" package will have "full" package as _build_ (but not runtime) dependency.
2. "full", with -fruntimelist -fcreate and with DEB_ENABLE_TESTS = yes.
   This package which is capable of creating the "effective_tld_names.dat" file needed by the "minimal" package.

Please consider.

Debian upstream package is https://tracker.debian.org/pkg/haskell-publicsuffixlist
I will notify the debian uploader about this ticket.

Eugene

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.