From: Stephen Touset Date: 2007-05-02T02:55:07+09:00 Subject: [ANN] pallet 1.2.1 I've been writing a multiplatform packaging tool for the company I work for, dubbed "pallet". I recently got the go-ahead to release it on RubyForge under the LGPL, so have spent the past day or so getting it up on there. Essentially, pallet lets you use a simple Rakefile stanza (akin to the existing gemspec stanza) to define multiple packaging formats. Right now, gem and dpkg are the only formats supported, although adding .tar.gz should be trivial, and .rpm should be simple enough for anyone who's built an RPM. An example of the format, from pallet's own Rakefile: Pallet.new('pallet', Pallet::VERSION) do |p| p.author = 'Stephen Touset' p.email = 'stouset@damballa.com' p.summary = 'Automated packaging tool for different languages and OSes' p.packages << Pallet::Gem.new(p) do |gem| gem.depends = ['rake'] gem.requirements = ['fakeroot', 'dpkg-dev'] gem.files.include FileList['share/**/*'] end p.packages << Pallet::Deb.new(p) do |deb| deb.architecture = 'all' deb.depends = ['rake', 'fakeroot', 'dpkg-dev'] deb.files = [InstallSpec['lib', '/usr/lib/ruby/1.8'], InstallSpec['share', '/usr/share/pallet'],] deb.commands.document = 'rake doc' end end It doesn't support every single possible feature of every packaging system, but it's close enough for 99% of projects. Nearly thirty of our own internal software projects were ported over to it as part of our build system in a matter of hours by two developers with no previous experience with either the packaging systems or pallet. One nice ability is that it should require no more than maybe ten lines to build a Debian package that simply contains a gem that is installed/uninstalled from rubygems by postinst/prerm scripts in the Debian package. In a future release, I expect to make this a trivial use-case, through something like p.packages << Pallet::Deb.new(p, :include => :gem) It is extensively rdoc'd, available as "pallet" from rubygems, and can be downloaded as a dpkg or a gem from http://rubyforge.org/projects/pallet/ Happy packing! -- Stephen Touset