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

Transition of Ruby packages to the new Ruby policy



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@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@zombino.com>
   libbz2-ruby

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

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

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

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

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

Alex Pennace <alex@pennace.org>
   raspell

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

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

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

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

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

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

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

Benjamin Drung <bdrung@debian.org>
   xmms2

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

Bram Senders <bram@luon.net>
   shoes

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

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

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

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

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

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

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

Daigo Moriwaki <daigo@debian.org>
   tdiary

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

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

David Claughton <dave@eclecticdave.com>
   graphviz

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Janos Guljas <janos@resenje.org>
   uwsgi

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

Joey Schulze <joey@debian.org>
   vpim

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

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

Kenshi Muto <kmuto@debian.org>
   quickml

KURASHIKI Satoru <lurdan@gmail.com>
   hyperestraier
   qdbm

Kurt Roeckx <kurt@roeckx.be>
   epic5

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

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

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

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

Michael Janssen <jamuraa@debian.org>
   player

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

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

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

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

Nico Golde <nion@debian.org>
   stfl
   tpp

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

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

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

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

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

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

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

Peter Samuelson <peter@p12n.org>
   subversion

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

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

Russ Allbery <rra@debian.org>
   remctl

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

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

Sebastien Delafond <seb@debian.org>
   god

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

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

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

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

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

Sylvestre Ledru <sylvestre@debian.org>
   ohcount

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

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

TANIGUCHI Takaki <takaki@debian.org>
   amrita2
   aswiki

Tatsuki Sugiura <sugi@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@debian.org>
   mhc

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

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

Todd Troxell <ttroxell@debian.org>
   flvtool2

Tomas Pospisek <tpo_deb@sourcepole.ch>
   posixlock

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

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

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

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

YAEGASHI Takeshi <yaegashi@debian.org>
   rubyfilter

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

Yukiharu YABUKI <yyabuki@debian.org>
   td2planet


Reply to: