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

Re: Newbie packaging questions



Brett Cundal <bcundal@cundal.net> writes:

> Basically, when I build my package it makes the correct packages,
> but the docs are included in both packages. [...] I'm sure that's
> totally vague, but if someone could point me in the right direction
> or let me know what info is required to help out that would be
> great.

The usual way people do multiple binary packages is that debian/rules
calls the package's install method with one target directory and then
for each package, it moves this package's files from that directory
into the package's staging directory. A simple example:

  # everything into debian/tmp
  $(MAKE) install DESTDIR=debian/tmp
  # docs into foo-doc's dir
  mv debian/tmp/usr/share/doc debian/foo-doc/usr/share/doc
  # the rest into foo's dir
  mv debian/tmp debian/foo

(For real world examples, peruse your favourite package which has a
-doc or -dev. You could also try dh_make, selecting the multi-binary
package option.)

dh_movefiles may be used instead of the "mv"s.

> Should I just read up on automake/autoconf, or is there some simple
> way to do this?

If your upstream uses this, that would be certainly no bad idea. It's
not strictly necessary for your problem, though.

> It looks like the current maintainer just commented out the docs
> installs and moved them into debian/rules,

That breaks of course when the Makefile changes. If patches to
upstream Makefiles can be avoided, that's better.

> but what if the split was more complicated?

See above. The moving method breaks only when some files or
directories get added that belong in the -doc, but which you do not
yet handle. They will end up in the "catch-all" package instead.

> I've gathered that debhelper throws the docs into the -doc
> package because it's marked arch-indep, [...]

I don't know of such a thing. Which dh_* command would do this?

> How does debian/rules know what goes in which package?

Debhelper expects that a subdirectory in the debian directory exists
for each package which will hold the files belonging to that package.

(Your rules should contain "export DH_COMPAT=2" or a higher number,
or the paragraph above is not entirely correct. See debhelper(1) for
details.)

> It's all magic to me at the moment...  I haven't seen any
> docs that cover this stuff yet - if anyone can point them out...

I found that the debhelper manpages were a fine description of the
steps necessary to create packages. Even if one does not use debhelper
they are a good read.

-- 
Robbe

Attachment: signature.ng
Description: PGP signature


Reply to: