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

multi-binary support in dh_ruby - new in gem2deb 0.4.0



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


Reply to: