fpm 0.4.2 released!

39 views
Skip to first unread message

Jordan Sissel

unread,
Mar 21, 2012, 3:09:43 AM3/21/12
to fpm-...@googlegroups.com
Wanted to wait a few releases before announcing the 0.4.x series here, and I think 0.4.2 is as good a release as any to be happy with :)

The 0.4.x series brought a major internal code rewrite (from the 0.3.x version). New in 0.4.x is mainly an easier API to program against if you choose to use FPM programmatically. Additionally, you can now input multiple packages of a given type, so you can do crazy things like adding 15 gems into one RPM.

For 0.4.x, I also began writing a pure-ruby RPM read/write library. At this time, read is fully supported and will be used when possible. For writing rpms, rpmbuild is still used (for now!)

Example of API usage:

require "fpm"

package = FPM::Package::Gem.new
package.input("json")
package.input("sinatra")
package.input("rack")
package.input("thin")

# Convert our package to an rpm
rpm = package.convert(FPM::Package::RPM)

# Give it a name and version
rpm.name = "rubygem-manythings"
rpm.version = "1.0"

# Output the new package
begin
  output = "NAME-VERSION.ARCH.rpm"
  rpm.output(rpm.to_s(output))
ensure
  rpm.cleanup
end


Anyway, happy FPMing! Here's the changelist from 0.3.x:

0.4.2 (March 21, 2012)
  - Set default temporary directory to /tmp
  - Improve symlink handling (patch by Aleix Conchillo Flaqué, pull/177))
  - Python package support changes (thanks to input by Luke Macken):
    * New flag: --python-install-bin. Sets the location for python package
      scripts (default: /usr/bin)
    * New flag: --python-install-lib. Sets the location for the python
      package to install libs to, default varies by system. Usually something
      like /usr/lib/python2.7/site-packages.
    * Fix up --prefix support
    * Improve staged package installation

0.4.1 (March 19, 2012)
  - Fix fpm so it works in ruby 1.8 again.
    Tests run, and passing:
      rvm 1.8.7,1.9.2,1.9.3 do bundle exec rspec

0.4.0 (March 18, 2012)
  - Complete rewrite of pretty much everything.
    * Otherwise, the 'fpm' command functionality should be the same
    * Please let me know if something broke!
  - Now has an API (see examples/api directory)
  - Also has a proper test suite
  - Updated the rpm spec generator to disable all the ways I've found rpmbuild
    to molest packages. This means that fpm-generated rpms will no longer
    strip libraries, move files around, randomly mutate jar files, etc.
  - Add --license and --vendor settings (via Pieter Loubser)
  - python support: try to name python packages sanely. Some pypi packages
    are literally called 'python-foo' so make sure we generate packages named
    'python-foo' and not 'python-python-foo' (via Thomas Meson)
  - rpm support: Add --rpm-rpmbuild-define for passing a --define flag to rpmbuild
    (via Naresh V)
  - PHP pear source support (fpm -s pear ...) (via Andrew Gaffney)


-Jordan
Reply all
Reply to author
Forward
0 new messages