Cross package maker. DEB/RPM generation or conversion. Derived from jordansissel/fpm.

⌈⌋ ⎇ branch:  cross package maker


Artifact [d49d4d52e7]

Artifact d49d4d52e7182ce984a6c8ebe0752ad75063713d:

  • File lib/fpm/source/rpm.rb — part of check-in [0625c31623] at 2011-01-20 20:45:22 on branch trunk — - fix method signatures (user: jls@semicomplete.com size: 914)

require "fpm/source"

class FPM::Source::RPM < FPM::Source
  def get_metadata
    self[:name] = %x{rpm -q --qf '%{name}' -p #{@paths.first}}

    self[:version] = %x{rpm -q --qf '%{version}' -p #{@paths.first}}
    self[:iteration] = %x{rpm -q --qf '%{release}' -p #{@paths.first}}
    self[:summary] = %x{rpm -q --qf '%{summary}' -p #{@paths.first}}
    #self[:description] = %x{rpm -q --qf '%{description}' -p #{@paths.first}}
    self[:dependencies] = %x{rpm -qRp #{@paths.first}}.split("\n")\
      .collect { |line| line.strip }

    @rpm = @paths.first
    @paths = %x{rpm -qlp #{@paths.first}}.split("\n")

  end

  def make_tarball!(tar_path, builddir)
    tmpdir = "#{tar_path}.dir"
    ::Dir.mkdir(tmpdir)
    system("rpm2cpio #{@rpm} | (cd #{tmpdir}; cpio -i --make-directories)")
    tar(tar_path, ".", tmpdir)

    # TODO(sissel): Make a helper method.
    system(*["gzip", "-f", tar_path])
  end
end