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

Re: where find multiple packages from one source guide



On Tuesday 03 April 2007 19:07, andremachado wrote:
> I am trying to create a multiple binaries debian package.
> Unable to find enough documentation at policy, maintainers guide and site.
> Examined some source packages and then found clamav, that seems to leverage
> debhelper. Tried to modify my previous monolithic package to split.
> But found some weird things.

It's not too hard. Read the manpages for the debhelper commands and learn what 
the -i, -a, and -p<package> parameters do.

For clarity, create one .install file, one .docs file etc. per binary package. 
A file named just "install" or "docs", without a package name, applies to the 
first package in debian/control. I don't think it's good packaging style to 
mix "file-lists-in-files" and "file-lists-on-commandline" too much (except 
for specifying the upstream changelog name to dh_installchangelogs). But if 
you do specify files to install on the command line, dh_install* will 
generally operate on the first package specified.

> 1- why the "dh_install java.ini mono.ini etc/php5/conf.d" line cross rule
> limits when in multiple packages Found that must be one file and one dest
> per line.

"dh_install java.ini mono.ini etc/php5/conf.d" should work. Can you explain 
more what happens when you try?

> 2- unable to find yet documentation about phony rules not having "-"
> character in name. Maybe I misunderstood or did not read some fine print.

That shouldn't be a problem either.

> 3- why -p$@ sometimes is needed sometimes is not.
> the lintian seems to not catch this thing. If I use -p$@, do I need to
> create the package_name.dir, .docs, .install files. obscure for me. Is
> there documentation.

I think clamav might be unnecessarily complicated as an example. It has one 
make target per package, which explains the -p$@. The reason it's not on all 
the debhelper command lines has to do with what the various debhelpers *do*. 
Please read the manual pages (man debhelper, man dh_install, man dh_checkroot 
etc.). But usually you just need two targets: binary-arch and binary-indep. 
In the binary-arch target, all the debhelpers should be called with -a, and 
in the binary-indep target they should be called with -i.

> Please, examine the /debian directory of
> http://php-java-bridge.cvs.sourceforge.net/php-java-bridge/php-java-bridge/
>debian/

First, I don't think the -docs packages contain any architecture-specific 
files. At least they shouldn't. Thus they must have Architecture: all in 
debian/control. Second, you should remove all the unneeded, commented-out 
debhelper commands. And third, if you put the lists of files to install in 
files instead of on the command line, you only need two targets and 
debian/rules becomes cleaner (on the other hand, providing a way to build 
just a single binary package, just compiling exactly what's needed, is a nice 
service to users that want to build a customized package, especially if the 
source package is big).

-- 
Magnus Holmgren        holmgren@lysator.liu.se
                       (No Cc of list mail needed, thanks)

Attachment: pgpHPPf2cRMZw.pgp
Description: PGP signature


Reply to: