Add _copy_extra_sources() method to BuilderBase class.

This method will include extra SOURCE1, SOURCE2, ... SOURCE<N>
files to the source rpm. This fix "No such file or directory" for
included source files.
This commit is contained in:
Daniel Hilst Selli 2018-01-02 15:38:13 -02:00 committed by Jakub Kadlcik
parent 1e70e59cff
commit d9cbc94840

View file

@ -197,6 +197,21 @@ class BuilderBase(object):
mkdir_p(d) mkdir_p(d)
self._check_build_dirs_access(build_dirs) self._check_build_dirs_access(build_dirs)
def _copy_extra_sources(self):
"""
Copy extra %{SOURCEX} files to the SOURCE folder.
"""
with open(self.spec_file, 'r') as spec:
for line in spec.readlines():
match = re.match(r'SOURCE[1-9]\d*:(?P<src>.*)', line, re.I)
if match is None:
continue
src = os.path.join(self.rpmbuild_sourcedir, self.tgz_dir, match.group('src').strip())
debug("Copying %s -> %s" % (src, self.rpmbuild_sourcedir))
shutil.copy(src, self.rpmbuild_sourcedir)
def srpm(self, dist=None): def srpm(self, dist=None):
""" """
Build a source RPM. Build a source RPM.
@ -207,6 +222,8 @@ class BuilderBase(object):
if self.test: if self.test:
self._setup_test_specfile() self._setup_test_specfile()
self._copy_extra_sources()
debug("Creating srpm from spec file: %s" % self.spec_file) debug("Creating srpm from spec file: %s" % self.spec_file)
define_dist = "" define_dist = ""