Skip to content

Commit

Permalink
add support for rpm %attr
Browse files Browse the repository at this point in the history
  • Loading branch information
glensc committed Aug 26, 2015
1 parent 0de5f8c commit 9b00b47
Show file tree
Hide file tree
Showing 2 changed files with 61 additions and 1 deletion.
4 changes: 3 additions & 1 deletion fpm-cookery.spec
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,13 @@
Summary: A tool for building software packages with fpm
Name: fpm-cookery
Version: 0.29.0
Release: 0.2
Release: 0.5
License: BSD
Group: Development/Languages
Source0: http://rubygems.org/downloads/%{name}-%{version}.gem
# Source0-md5: bd210d6acb6a0519f8d940200917eefe
Patch0: svn-ignore-externals.patch
Patch1: rpm-attributes.patch
URL: https://github.com/bernd/fpm-cookery
BuildRequires: rpm-rubyprov
BuildRequires: rpmbuild(macros) >= 1.656
Expand Down Expand Up @@ -40,6 +41,7 @@ A tool for building software packages with fpm.
%prep
%setup -q
%patch0 -p1
%patch1 -p1
%{__sed} -i -e '1 s,#!.*ruby,#!%{__ruby},' bin/*

%build
Expand Down
58 changes: 58 additions & 0 deletions rpm-attributes.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
diff --git a/lib/fpm/cookery/package/package.rb b/lib/fpm/cookery/package/package.rb
index 4d80344..38ec07a 100644
--- a/lib/fpm/cookery/package/package.rb
+++ b/lib/fpm/cookery/package/package.rb
@@ -42,6 +42,9 @@ module FPM
# overwrite the values from package_setup().
@fpm.attributes.merge!(recipe.fpm_attributes)

+ # also merge fpm.attrs (for %attr flags, rpm specific)
+ @fpm.attrs.merge!(recipe.rpm_attributes)
+
# The input for the FPM package will be set here.
package_input

diff --git a/lib/fpm/cookery/recipe.rb b/lib/fpm/cookery/recipe.rb
index ab23ca3..628b4a2 100644
--- a/lib/fpm/cookery/recipe.rb
+++ b/lib/fpm/cookery/recipe.rb
@@ -42,6 +42,7 @@ module FPM
# class variable.
klass.instance_variable_set(:@fpm_attributes, self.fpm_attributes.dup)
klass.instance_variable_set(:@environment, self.environment.dup)
+ klass.instance_variable_set(:@rpm_attributes, self.rpm_attributes.dup)
end

def self.platforms(valid_platforms)
@@ -101,11 +102,23 @@ module FPM
@fpm_attributes
end

+ # record attributes[foo] = bar
+ # Supports both hash and argument assignment
+ # rpm_attributes[:attr1] = xxxx
+ # rpm_attributes :xxxx=>1, :yyyy=>2
+ def rpm_attributes(args=nil)
+ if args.is_a?(Hash)
+ @rpm_attributes.merge!(args)
+ end
+ @rpm_attributes
+ end
+
def environment
@environment
end
end
@fpm_attributes = {}
+ @rpm_attributes = {}
@environment = FPM::Cookery::Environment.new

def initialize(filename, config)
@@ -132,6 +145,7 @@ module FPM
def pkgdir(path = nil) (@pkgdir || workdir('pkg'))/path end
def cachedir(path = nil) (@cachedir || workdir('cache'))/path end
def fpm_attributes() self.class.fpm_attributes end
+ def rpm_attributes() self.class.rpm_attributes end
def environment() self.class.environment end

# Resolve dependencies from omnibus package.

0 comments on commit 9b00b47

Please sign in to comment.