From 4e36bf2225d2b6e7a7ac1821e1d00ac72abb5856 Mon Sep 17 00:00:00 2001 From: Joshua Harlow Date: Tue, 25 Sep 2012 13:19:36 -0700 Subject: Add the ability to pass patches to the rpm builder utility. --- packages/brpm | 7 +++++++ packages/redhat/cloud-init.spec.in | 7 +++++++ 2 files changed, 14 insertions(+) (limited to 'packages') diff --git a/packages/brpm b/packages/brpm index 77de0cf2..616ae021 100755 --- a/packages/brpm +++ b/packages/brpm @@ -149,6 +149,7 @@ def generate_spec_contents(args, tmpl_fn, arc_fn): subs['systemd'] = False subs['init_sys'] = args.boot + subs['patches'] = [os.path.basename(p) for p in args.patches] return templater.render_from_file(tmpl_fn, params=subs) @@ -164,6 +165,10 @@ def main(): " (default: %(default)s)"), default=False, action='store_true') + parser.add_argument("-p", "--patch", dest="patches", + help=("include the following patch when building"), + default=[], + action='append') args = parser.parse_args() capture = True if args.verbose: @@ -197,6 +202,8 @@ def main(): spec_fn = util.abs_join(root_dir, 'cloud-init.spec') util.write_file(spec_fn, contents) print("Created spec file at %r" % (spec_fn)) + for p in args.patches: + util.copy(p, util.abs_join(arc_dir, os.path.basename(p)) # Now build it! print("Running 'rpmbuild' in %r" % (root_dir)) diff --git a/packages/redhat/cloud-init.spec.in b/packages/redhat/cloud-init.spec.in index 35b27beb..6604b1ac 100644 --- a/packages/redhat/cloud-init.spec.in +++ b/packages/redhat/cloud-init.spec.in @@ -36,6 +36,13 @@ Requires: shadow-utils Requires: ${r} #end for +# Custom patches +#set $size 0 +#for $p in $patches +Patch${size}: $p +#set $size += 1 +#end for + #if $sysvinit Requires(post): chkconfig Requires(postun): initscripts -- cgit v1.2.3 From f74c738fa76db65e45d2bdb19257fe0a78dcd0e0 Mon Sep 17 00:00:00 2001 From: Joshua Harlow Date: Tue, 25 Sep 2012 13:20:33 -0700 Subject: Fix syntax error. --- packages/brpm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'packages') diff --git a/packages/brpm b/packages/brpm index 616ae021..3870e188 100755 --- a/packages/brpm +++ b/packages/brpm @@ -203,7 +203,7 @@ def main(): util.write_file(spec_fn, contents) print("Created spec file at %r" % (spec_fn)) for p in args.patches: - util.copy(p, util.abs_join(arc_dir, os.path.basename(p)) + util.copy(p, util.abs_join(arc_dir, os.path.basename(p))) # Now build it! print("Running 'rpmbuild' in %r" % (root_dir)) -- cgit v1.2.3 From ca9251d74a18b47abacff2b63328061b9e484246 Mon Sep 17 00:00:00 2001 From: Joshua Harlow Date: Tue, 25 Sep 2012 13:37:09 -0700 Subject: Fix cheetah syntax error. --- packages/redhat/cloud-init.spec.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'packages') diff --git a/packages/redhat/cloud-init.spec.in b/packages/redhat/cloud-init.spec.in index 6604b1ac..9cfe56f5 100644 --- a/packages/redhat/cloud-init.spec.in +++ b/packages/redhat/cloud-init.spec.in @@ -37,7 +37,7 @@ Requires: ${r} #end for # Custom patches -#set $size 0 +#set $size = 0 #for $p in $patches Patch${size}: $p #set $size += 1 -- cgit v1.2.3 From 018ec6faa0a9d0c8aa584bae2e0798ed7e3e021a Mon Sep 17 00:00:00 2001 From: Joshua Harlow Date: Tue, 25 Sep 2012 18:12:26 -0700 Subject: Add a top_dir define. --- packages/brpm | 5 +++-- packages/redhat/cloud-init.spec.in | 4 ++++ 2 files changed, 7 insertions(+), 2 deletions(-) (limited to 'packages') diff --git a/packages/brpm b/packages/brpm index 3870e188..e344926f 100755 --- a/packages/brpm +++ b/packages/brpm @@ -91,7 +91,7 @@ def format_change_line(ds, who, comment=None): return "* %s" % (d) -def generate_spec_contents(args, tmpl_fn, arc_fn): +def generate_spec_contents(args, tmpl_fn, top_dir, arc_fn): # Figure out the version and revno cmd = [util.abs_join(find_root(), 'tools', 'read-version')] @@ -148,6 +148,7 @@ def generate_spec_contents(args, tmpl_fn, arc_fn): else: subs['systemd'] = False + subs['defines'] = ["_topdir %s" % (top_dir)] subs['init_sys'] = args.boot subs['patches'] = [os.path.basename(p) for p in args.patches] return templater.render_from_file(tmpl_fn, params=subs) @@ -197,7 +198,7 @@ def main(): # Form the spec file to be used tmpl_fn = util.abs_join(find_root(), 'packages', 'redhat', 'cloud-init.spec.in') - contents = generate_spec_contents(args, tmpl_fn, + contents = generate_spec_contents(args, tmpl_fn, root_dir, os.path.basename(archive_fn)) spec_fn = util.abs_join(root_dir, 'cloud-init.spec') util.write_file(spec_fn, contents) diff --git a/packages/redhat/cloud-init.spec.in b/packages/redhat/cloud-init.spec.in index 9cfe56f5..f5339640 100644 --- a/packages/redhat/cloud-init.spec.in +++ b/packages/redhat/cloud-init.spec.in @@ -5,6 +5,10 @@ # Or: http://fedoraproject.org/wiki/Packaging:ScriptletSnippets # Or: http://www.rpm.org/max-rpm/ch-rpm-inside.html +#for $d in $defines +%define ${d} +#end for + Name: cloud-init Version: ${version} Release: ${release}%{?dist} -- cgit v1.2.3 From c62675900a96dd645a1ff2ee0c316ef9232f443d Mon Sep 17 00:00:00 2001 From: Joshua Harlow Date: Tue, 25 Sep 2012 18:28:12 -0700 Subject: Clean doesn't seem needed. --- packages/brpm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'packages') diff --git a/packages/brpm b/packages/brpm index e344926f..1735f5bb 100755 --- a/packages/brpm +++ b/packages/brpm @@ -208,8 +208,7 @@ def main(): # Now build it! print("Running 'rpmbuild' in %r" % (root_dir)) - cmd = ['rpmbuild', '--clean', - '-ba', spec_fn] + cmd = ['rpmbuild', '-ba', spec_fn] util.subp(cmd, capture=capture) # Copy the items built to our local dir -- cgit v1.2.3 From 179f48250952501c8ad36ac0ed6389159a25bf82 Mon Sep 17 00:00:00 2001 From: Joshua Harlow Date: Wed, 26 Sep 2012 16:59:28 -0700 Subject: Ensure the patches get activated. --- packages/redhat/cloud-init.spec.in | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'packages') diff --git a/packages/redhat/cloud-init.spec.in b/packages/redhat/cloud-init.spec.in index f5339640..90e85a05 100644 --- a/packages/redhat/cloud-init.spec.in +++ b/packages/redhat/cloud-init.spec.in @@ -69,6 +69,13 @@ ssh keys and to let the user run various scripts. %prep %setup -q -n %{name}-%{version}~${release} +# Custom patches activation +#set $size = 0 +#for $p in $patches +%patch${size} +#set $size += 1 +#end for + %build %{__python} setup.py build -- cgit v1.2.3 From 68114a57d776585865056ad5fb71d41bb741cd06 Mon Sep 17 00:00:00 2001 From: Joshua Harlow Date: Wed, 26 Sep 2012 17:03:07 -0700 Subject: Add a nice '-p1' --- packages/redhat/cloud-init.spec.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'packages') diff --git a/packages/redhat/cloud-init.spec.in b/packages/redhat/cloud-init.spec.in index 90e85a05..12f0b144 100644 --- a/packages/redhat/cloud-init.spec.in +++ b/packages/redhat/cloud-init.spec.in @@ -72,7 +72,7 @@ ssh keys and to let the user run various scripts. # Custom patches activation #set $size = 0 #for $p in $patches -%patch${size} +%patch${size} -p1 #set $size += 1 #end for -- cgit v1.2.3