[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