[CentOS-devel] [PATCH 2/4] Customize the srpm method, this lets us accommodate the CentOS directory structure
Brian Stinson
bstinson at ksu.edu
Sat Jul 5 04:48:58 UTC 2014
The vanilla rpkg instance dumps all the sources in the toplevel of the
package checkout (everything is flat). CentOS uses the
SOURCES,SPECS,SRPMS directory structure.
---
src/centpkg/__init__.py | 34 +++++++++++++++++++++++++++++++---
1 files changed, 31 insertions(+), 3 deletions(-)
diff --git a/src/centpkg/__init__.py b/src/centpkg/__init__.py
index 7eff083..e6f4e45 100644
--- a/src/centpkg/__init__.py
+++ b/src/centpkg/__init__.py
@@ -142,6 +142,37 @@ class Commands(pyrpkg.Commands):
return
+ def srpm(self, hashtype=None):
+ """Create an srpm using hashtype from content in the module
+
+ Requires sources already downloaded.
+ """
+
+ # This line is what changed for centpkg, in Fedora the directory
+ # structure is flat, in CentOS we use the proper SRPMS/ directory for
+ # our source RPMs
+ self.srpmname = os.path.join(self.path, 'SRPMS',
+ "{0}-{1}-{2}.src.rpm".format(self.module_name,
+ self.ver, self.rel))
+ # See if we need to build the srpm
+ if os.path.exists(self.srpmname):
+ self.log.debug('Srpm found, rewriting it.')
+
+ cmd = ['rpmbuild']
+ cmd.extend(self.rpmdefines)
+ if self.quiet:
+ cmd.append('--quiet')
+ # Figure out which hashtype to use, if not provided one
+ if not hashtype:
+ # Try to determine the dist
+ hashtype = self._guess_hashtype()
+ # This may need to get updated if we ever change our checksum default
+ if not hashtype == 'sha256':
+ cmd.extend(["--define '_source_filedigest_algorithm %s'" % hashtype,
+ "--define '_binary_filedigest_algorithm %s'" % hashtype])
+ cmd.extend(['--nodeps', '-bs', os.path.join(self.path, self.spec)])
+ self._run_command(cmd, shell=True)
+
# These are the commands defined in the base pyrpkg.Commands class
# and have not been implemented here, yet
@@ -199,9 +230,6 @@ class Commands(pyrpkg.Commands):
def prep(self, *args, **kwargs):
raise NotImplementedError("This command is not yet implemented in centpkg")
- def srpm(self, *args, **kwargs):
- raise NotImplementedError("This command is not yet implemented in centpkg")
-
def unused_patches(self, *args, **kwargs):
raise NotImplementedError("This command is not yet implemented in centpkg")
--
1.7.1
More information about the CentOS-devel
mailing list