[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

limitation in build-depends



Hello,

The build-depends is limited when it comes to compiling a package
based on a number of different and incompatible libraries.

Take Kerberos for an example - it has two implementations MIT and
Heimdal. Currently, this requires two separate source packages, in
order to set the build-depends correctly. This is despite the fact
that most of the code is exactly the same.

Ideally, you need to be able to do something like:

----- cut -----
Source: libpam-heimdal
Section: non-US/main
Priority: optional
Maintainer: Brian May <bam@debian.org>
Standards-Version: 3.0.1
Build-Depends: debhelper

Package: libpam-heimdal
Architecture: any
Depends: ${shlibs:Depends}
Build-Depends: heimdal-dev
Description: PAM module for Heimdal
 A Kerberos v5 pam module for use with Heimdal kerberos. This
 module should only be used for local logins unless you really know
 what you are doing.

Package: libpam-krb5
Architecture: any
Depends: ${shlibs:Depends}
Build-Depends: libkrb5-dev
Description: PAM module for MIT Kerberos 5
 A Kerberos v5 pam module for use with MIT Kerberos 5 kerberos. This
 module should only be used for local logins unless you really know
 what you are doing.
----- cut -----

So, if heimdal-dev is installed the libpam-heimdal will get built,
otherwise if libkrb5-dev is installed, then libpam-krb5 will get
built. (Note: heimdal-dev and libkrb5-dev can not be installed at the
same time).

The list of packages which can be built would need to be passed
somehow to debian/rules, so it does not have to duplicate this logic.

The only disadvantage I can see in this is if the package must be
rebuilt, say for Heimdal because of library changes in Heimdal. If the
maintainer forces the package to be rebuilt by uploading a new
version, then it would have to be rebuilt for the MIT version, too.

Perhaps this is a problem with using the debian release number to
reflect the version of the source *and* the version of the build.  Or,
put another way, just recompiling the source shouldn't change the
source version, but the version of the binary package must be higher
or it won't get installed.

Comments?
-- 
Brian May <bam@debian.org>



Reply to: