[pkg-boost-devel] Bug#824043: Bug#824043: this should be a dependency package, instead of containing all headers
Steve M. Robbins
steve at sumost.ca
Mon May 16 03:31:18 UTC 2016
On May 11, 2016 06:08:37 PM Joachim Wuttke wrote:
> The way Boost is currently packaged in Debian is non-standard, and
> inconvenient.
I agree it is a bit unusual. I am sorry that you find it inconvenient.
> Standard is that -dev packages contain header files. This is violated by
> packages like libboost-date-time1.58-dev that contain no headers, but
> binary libraries.
>
> These libraries should go to libboost-date-time1.58.0.
This is incorrect. Debian's -dev packages always contain the link-time
libraries (.a and .so). Please see Section 8.4 of the Policy Manual [1]
> libboost-date-time1.58-dev should contain /usr/include/boost/date_time.hpp.
What the Policy Manual says is:
Installing the development package must result in installation of all the
development files necessary for compiling programs against that shared
library.
This is true of libboost-date-time1.58-dev. No policy is violated.
Now, of course, your complaint is that it installs *more* than strictly
necessary and that is unusual; it is true. Years ago, boost was split as you
describe. I tried partitioning the boost headers into the various -dev
packages. But Boost was not very good at encapsulation so it happened that
Boost.X would be using headers that normally "belong" to Boost.Y. This
resulted in bug reports including #548503, #553281, #550006. I did fix some
such using inter-component dependencies (i.e. boostX-dev depends on boostY-
dev) but then I would get bugs rightly complaining that there should be no
such dependency. The best compromise I came up with was to put all *headers*
in one place and have all -dev packages depend on that.
I have had essentially no complaint (before yours) about this practice in the
intervening 6.5 years.
> libboost1.58-dev currently contains header files for _all_ components of
> Boost, which precludes selective (de)installation. It should become a
> dependency package, and leave it to packages like
> libboost-date-time1.58-dev to actually contain specific headers.
If we are going to return to this practice, we should be convinced that (a)
Boost is now better at encapsulation and (b) provides a mechanism to produce
the required partition of header files.
Best,
-Steve
[1] https://www.debian.org/doc/debian-policy/ch-sharedlibs.html
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.alioth.debian.org/pipermail/pkg-boost-devel/attachments/20160515/9f17a3d2/attachment.sig>
More information about the pkg-boost-devel
mailing list