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