Hello all,
I have just uploaded gem2deb 0.4.0 to unstable. This new release adds
support for multi-binary packages to dh_ruby. I will quote here the
associated documentation in dh_ruby(1).
----------------8<----------------8<----------------8<-----------------
SOURCE PACKAGE LAYOUT
dh_ruby supports two different source package styles: single-binary
source packages, and multi-binary source packages.
Single-binary layout
The default layout is the single-binary layout. This is the layout used
by most Ruby packages upstream, i.e. Ruby code in *lib*/, executable
programs in *bin*/, etc. Packages imported from Rubygems using
gem2deb(1) will have this layout.
When using this layout, dh_ruby will install files (Ruby code,
executables, gemspecs) to the *first binary package* listed in
*debian/control*.
Multi-binary layout
gem2deb version *0.4.0* introduced support for the multi-binary layout.
This layout should be used when you have a set of different Ruby
packages maintained upstream in a single VCS, and you decide that you
also want to maintain a single source package in Debian producing the
different components as separate binary packages.
In this layout, the source package contains the separate components in
subdirectories where each of them will use the standard Ruby layout
(*lib*/, *bin*/, etc).
To indicate that you want to use a multi-binary layout, we have to 1)
list your multiple binary packages in *debian/control* as usual, and add
an extra-field called *X-DhRuby-Root* to each binary package stanza,
indicating which directory has to be used as the root for that binary
package.
An example:
Source: mymultibinarypackage
[...]
Package: ruby-foo
X-DhRuby-Root: path/to/foo
[...]
Package: ruby-bar
X-DhRuby-Root: path/to/bar
The corresponding source package should be layed out like this:
foo/
foo.gemspec
lib/
foo.rb
bin/foo
bar/
bar.gemspec
lib/
bar.rb
bin/
bar
Important notes about multi-binary packages and the usage of
*X-DhRuby-Root*:
* If your package uses the multi-binary layout, it must include
`*gem2deb* (>= 0.4.0~)` in *Build-Depends*.
* The path indicated in *X-DhRuby-Root*, as you have probably guessed
by now, must be relative to the root of the source package.
* If any binary package declares a *X-DhRuby-Root* field, all other
binary packages that don't have one will be ignored by dh_ruby.
----------------8<----------------8<----------------8<-----------------
I have taken special care to not break compatibility, so this feature
should not bring any noticeable behaviour change for packages that don't
actually use it. That's why I am uploading directly to unstable instead
of uploading it to experimental first.
If you notice any regression, please report a bug.
If you have any quations, just reply.
Cheers,
--
Antonio Terceiro <terceiro@debian.org>
Attachment:
signature.asc
Description: Digital signature