Transition of Ruby packages to the new Ruby policy

Cédric Boutillier cedric.boutillier at gmail.com
Fri Apr 27 12:08:34 UTC 2012


Hi!

In a few weeks from now, Wheezy will be frozen. One of the goals of the
Ruby Team for Wheezy is to try to push as far as possible the transition
to a new policy for Ruby library.

You receive this email because you are listed as the maintainer or
uploader of a Ruby package which has been detected as not using this new
policy. See the list of maintainers/packages at the end of this email.

The Debian Ruby Team have put a lot of effort on this goal, converting
(most of) the packages they maintain to this policy. The success of this
effort can be measured on the graph [0].

    0: http://pkg-ruby-extras.alioth.debian.org/wheezy/

The data used for this graph taken into account *all* Ruby libraries
contained in Debian, and not only those maintained by the Ruby packaging
team. In order to improve the overall quality of Ruby packages in Debian
and to ensure consistency in the way Ruby packages are installed and
used, we need to finish the transition, and therefore we strongly
encourage all maintainers of Ruby packages in Debian to update their
packages to reflect these changes. These changes concern three
different aspects: the package naming convention, the path where
libraries are installed, and the execution of test suites at build time.
These aspects are briefly described below and detailed in the draft of
the Ruby policy [1], most of which being taken care of automatically by
our packaging tool gem2deb.

    1: http://anonscm.debian.org/gitweb/?p=pkg-ruby-extras/ruby-policy.git;=summary
    2: http://packages.debian.org/sid/gem2deb

Naming conventions
==================

The source packages libfoo-ruby should be renamed ruby-foo. If these
packages provide extensions needing to be compiled for the various Ruby
versions, these should nevertheless be shipped in the same binary
package, also called ruby-foo. If the package is mainly used as an
application, then it can be named just "foo". The naming convention can
be of course adapted in the case of the packaging of utilities (chef,
rails, redmine...).

With the convention we used before, not only were we shipping distinct
Ruby packages per interpreter version (i.e. libfoo-ruby1.8 and
libfoo-ruby1.9.1) and needed to hold large-scale repackaging on ABI
jumpis (as in the latest 1.9 → 1.9.1 change). With this new convention
(and build system – read on for details) only one binary package will be
built, and will carry all of the needed components, either in a common
place or in the version-specific directories.

For more extensive information see our guidelines for Ruby packaging [3].

    3: http://wiki.debian.org/Teams/Ruby/Packaging#Guidelines_for_Ruby_packaging


Install locations for libraries
===============================

Libraries not bundled with the Ruby interpreters should be installed
somewhere in /usr/lib/ruby/vendor_ruby directory, instead of
/usr/lib/ruby/1.8 or /usr/lib/ruby/1.9.1. A Pure Ruby library working
for all Ruby version would go in /usr/lib/ruby/vendor_ruby.  Files
specific to a version of the interpreter should go in
/usr/lib/ruby/vendor_ruby/$RUBYVER (vendorlibdir). Code compiled
specifically for the host architecture should go to
/usr/lib/ruby/vendor_ruby/$RUBYVER/$ARCH (vendorarchdir).

For the moment, MRI Ruby 1.8 and 1.9 can use the libraries installed in
these directories. JRuby would need to have theses directories added to
$LOAD_PATH and advertised by RbConfig (see #663342).


Running test suites during package build
========================================

A large number of Ruby libraries provide a test suite. It is recommended
to run these tests during the construction of the package in order to
check that the package will (at least partially) work with the
interpreters and other libraries included in the distribution.


A new packaging tool: gem2deb
=============================

The "gem2deb" tool takes care of most of the points mentioned above in
an automatised way. Running gem2deb on your orig tarball or a gem
package from your upstream will get you most of the way towards making
your package compatible with the new draft Ruby policy.  Instructions
for the transition to gem2deb are available on the wiki page [4] of the
team.

    4: http://wiki.debian.org/Teams/Ruby/Packaging#Howto:_converting_a_package_from_ruby-pkg-tools_to_gem2deb

gem2deb builds binary packages which are amenable to all of the
currently existing Ruby interpreters, and is future-proofed so that when
a new one is included in Debian, all of our packages will gain support
with just a rebuild. It also adds niceties such as proper Gem following
via debian/watch or packaging with simple, current practices for
debian/*. Please do consider repackaging using it!

To conclude, we encourage you to update these Ruby packages
packages so that they follow the guidelines above. Everyone willing to
team maintain their Ruby packages is of course welcome to join the Ruby
Packaging team (pkg-ruby-extras on alioth) and import their packages in
the team repository. We would be happy to answer your questions and hear
your comments on debian-ruby at lists.debian.org or on the #debian-ruby IRC
channel.

Cédric Boutillier, for the Ruby Team.


________

List of Ruby packages needing to be converted to the new policy, sorted
by maintainer/uploader:


Adam Majer <adamm at zombino.com>
   libbz2-ruby

akira yamada <akira at debian.org>
   bsfilter
   libeb-ruby
   libkakasi-ruby
   libshadow-ruby
   libuconv-ruby
   racc
   rdtool

Alan Boudreault <aboudreault at mapgears.com>
   mapserver (U)

Aleksey Kravchenko <rhash.admin at gmail.com>
   rhash

Alessandro Ghedini <ghedo at debian.org>
   ecasound (U)

Alessio Treglia <alessio at debian.org>
   ecasound (U)

Alex Pennace <alex at pennace.org>
   raspell

Alexander Wirt <formorer at debian.org>
   rrdtool (U)

Andreas Tille <tille at debian.org>
   libsbml (U)

Andrew Pollock <apollock at debian.org>
   puppet (U)

ARAKI Yasuhiro <ar at debian.org>
   gonzui
   mod-ruby (U)

Arnaud Cornet <acornet at debian.org>
   ruby-prof

Athena Capital Research <acr-debian at athenacr.com>
   quickfix
   rubyluabridge

Aurélien GÉRÔME <ag at roxor.cx>
   libnet-irc-ruby
   libsnmp-ruby

Benjamin Drung <bdrung at debian.org>
   xmms2

Bernd Zeimetz <bzed at debian.org>
   rrdtool (U)

Bram Senders <bram at luon.net>
   shoes

Bryan McLellan <btm at loftninjas.org>
   libabstract-ruby

C.J. Adams-Collier <cjac at colliertech.org>
   dlr-languages (U)

Cajus Pollmeier <cajus at debian.org>
   qpid-cpp

Changyan Xie <panchoat at gmail.com>
   libsbml (U)

Christoph Egger <christoph at debian.org>
   graphviz (U)

Cleto Martín <cleto.martin at gmail.com>
   zeroc-ice (U)

Dafydd Harries <daf at debian.org>
   rbbr
   ruby-amazon

Daigo Moriwaki <daigo at debian.org>
   tdiary

Daniel Watkins <daniel at daniel-watkins.co.uk>
   ditz

Dave Beckett <dajobe at debian.org>
   redland-bindings

David Claughton <dave at eclecticdave.com>
   graphviz

David Palacio <dpalacio at orbitalibre.org>
   korundum (U)
   qtruby (U)

Debian CLI Libraries Team <pkg-cli-libs-team at lists.alioth.debian.org>
   dlr-languages

Debian GIS Project <pkg-grass-devel at lists.alioth.debian.org>
   gdal
   geos
   mapserver
   ruby-hdfeos5

Debian Med Packaging Team <debian-med-packaging at lists.alioth.debian.org>
   libsbml

Debian Multimedia Maintainers
<pkg-multimedia-maintainers at lists.alioth.debian.org>
   ecasound

Debian Qt/KDE Maintainers <debian-qt-kde at lists.debian.org>
   korundum
   qtruby

Debian RRDtool Team <rrdtool at ml.snow-crash.org>
   rrdtool

Debian Vim Maintainers <pkg-vim-maintainers at lists.alioth.debian.org>
   vim

Decklin Foster <decklin at red-bean.com>
   libchronic-ruby
   liblockfile-ruby
   libtrollop-ruby

Deepak Tripathi <apenguinlinux at gmail.com>
   libhtml-htmltokenizer-ruby
   libxml-simple-ruby

Dirk Eddelbuettel <edd at debian.org>
   quantlib-swig

Esteban Manchado Velázquez <zoso at debian.org>
   dhelp

Francesco Paolo Lovergine <frankie at debian.org>
   gdal (U)
   geos (U)
   mapserver (U)

Francesco Poli (wintermute) <invernomuto at paranoici.org>
   apt-listbugs

Francisco Moya <paco at debian.org>
   zeroc-ice

Georgios M. Zarkadas <gz at member.fsf.org>
   dhelp (U)

Gudjon I. Gudjonsson <gudjon at gudjon.org>
   comedilib

Guilherme de S. Pastore <gpastore at debian.org>
   subversion (U)

Gustavo Franco <stratus at debian.org>
   ruby-mp3info

Hendrik Sattler <debian at hendrik-sattler.de>
   obexftp

Ivo Maintz <ivo at maintz.de>
   libsbml (U)

James McCoy <jamessan at debian.org>
   vim (U)

Janos Guljas <janos at resenje.org>
   uwsgi

Jesse van den Kieboom <jesse at icecrew.nl>
   gnoemoe

Joey Schulze <joey at debian.org>
   vpim

Jon Bernard <jbernard at debian.org>
   libfam-ruby
   libimlib2-ruby

Jérémy Bobbio <lunar at debian.org>
   schleuder

Kenshi Muto <kmuto at debian.org>
   quickml

KURASHIKI Satoru <lurdan at gmail.com>
   hyperestraier
   qdbm

Kurt Roeckx <kurt at roeckx.be>
   epic5

Masahito Omote <omote at debian.org>
   prime
   prime-dict
   sary-ruby
   suikyo

Matt Palmer <mpalmer at debian.org>
   dns323-firmware-tools
   libaugeas-ruby

Matthias Klose <doko at debian.org>
   dlr-languages (U)

Micah Anderson <micah at debian.org>
   puppet (U)

Michael Janssen <jamuraa at debian.org>
   player

Michael Meskes <meskes at debian.org>
   korundum (U)
   qtruby (U)

Mirco Bauer <meebey at debian.org>
   dlr-languages (U)

Moritz Muehlenhoff <jmm at debian.org>
   elinks (U)

Moriyoshi Koizumi <mozo at sfc.keio.ac.jp>
   libsbml (U)

Nico Golde <nion at debian.org>
   stfl
   tpp

Nicolas Valcárcel Scerpella (Canonical) <nvalcarcel at canonical.com>
   libaugeas-ruby (U)

Nigel Kersten <nigel at explanatorygap.net>
   puppet (U)

NIIBE Yutaka <gniibe at fsij.org>
   gonzui (U)
   htree
   langscan
   libescape-ruby
   libwebapp-ruby
   samidare
   tomoe
   treil
   wfo

Nobuhiro IMAI <nov at debian.or.jp>
   rubilicious

Olly Betts <olly at survex.com>
   xapian-bindings

Pablo Lorenzzoni <spectra at debian.org>
   html-template

Paul van Tilburg <paulvt at debian.org>
   gnoemoe (U)
   shoes (U)

Peter Samuelson <peter at p12n.org>
   subversion

Puppet Package Maintainers <pkg-puppet-devel at lists.alioth.debian.org>
   puppet

Roberto C. Sanchez <roberto at connexer.com>
   quickfix (U)
   rubyluabridge (U)

Russ Allbery <rra at debian.org>
   remctl

Ryan Niebur <ryanryan52 at gmail.com>
   libxml-simple-ruby (U)

Sebastian Harl <tokkee at debian.org>
   graphviz (U)
   rrdtool (U)

Sebastien Delafond <seb at debian.org>
   god

Shugo Maeda <shugo at debian.org>
   eruby
   librmail-ruby
   libwrap-ruby
   mod-ruby
   mod-ruby (U)

Siegfried-Angel Gevatter Pujals <rainct at ubuntu.com>
   screenruler

Stefan Hornburg (Racke) <racke at linuxia.de>
   dhelp (U)

Stig Sandbeck Mathisen <ssm at debian.org>
   puppet (U)

Sune Vuorela <sune at debian.org>
   korundum (U)
   qtruby (U)

Sylvestre Ledru <sylvestre at debian.org>
   ohcount

Taku YASUI <tach at debian.or.jp>
   libgettext-ruby (U)
   libimage-size-ruby (U)
   librd-html-ext-ruby (U)
   libzip-ruby (U)

Taku YASUI <tach at debian.org>
   hiki
   libexif-ruby
   libfilesystem-ruby (U)
   libmp3tag-ruby
   nadoka
   ruby-exif (U)

TANIGUCHI Takaki <takaki at debian.org>
   amrita2
   aswiki

Tatsuki Sugiura <sugi at nemui.org>
   libfcgi-ruby
   libfilesystem-ruby
   libgettext-ruby
   libimage-size-ruby
   libneedle-extras-ruby
   libneedle-ruby
   libnet-netrc-ruby
   libnora-ruby
   librd-html-ext-ruby
   libvorbisfile-ruby
   libzip-ruby

Tatsuya Kinoshita <tats at debian.org>
   mhc

Thomas Mueller <thomas.mueller at tmit.eu>
   apt-listbugs (U)

Thorsten Alteholz <debian at alteholz.de>
   libsbml (U)

Todd Troxell <ttroxell at debian.org>
   flvtool2

Tomas Pospisek <tpo_deb at sourcepole.ch>
   posixlock

Torsten Marek <shlomme at debian.org>
   korundum (U)
   qtruby (U)

Torsten Werner <twerner at debian.org>
   ohcount (U)

Troy Heber <troyh at debian.org>
   subversion (U)

Y Giridhar Appaji Nag <appaji at debian.org>
   elinks

YAEGASHI Takeshi <yaegashi at debian.org>
   rubyfilter

Youhei SASAKI <uwabami at gfd-dennou.org>
   rttool
   ruby-hdfeos5 (U)

Yukiharu YABUKI <yyabuki at debian.org>
   td2planet



More information about the Pkg-grass-devel mailing list