BuildSRPMFromSCMTask: Support auto-selecting a matching specfile name
There are cases where having two files with the .spec suffix in the same dist-git repository makes sense, such as maintaining a common dist-git structure for different distributions where the package name might be different. This patch would allow the build-system to use the matching spec file name for the current SCM checkout path if it exists. Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
This commit is contained in:
parent
2d27453ac1
commit
47696c8895
1 changed files with 22 additions and 2 deletions
|
|
@ -4989,8 +4989,28 @@ class BuildSRPMFromSCMTask(BaseBuildTask):
|
|||
if len(spec_files) == 0:
|
||||
raise koji.BuildError("No spec file found")
|
||||
elif len(spec_files) > 1:
|
||||
raise koji.BuildError("Multiple spec files found: %s" % spec_files)
|
||||
spec_file = spec_files[0]
|
||||
# If there are multiple spec files, check whether one of them
|
||||
# matches the SCM repo name
|
||||
scm_spec_options = [
|
||||
"%s/%s.spec".format(
|
||||
sourcedir, os.path.basename(sourcedir)),
|
||||
|
||||
"%s/SPECS/%s.spec".format(
|
||||
sourcedir, os.path.basename(sourcedir))
|
||||
]
|
||||
|
||||
for scm_spec in scm_spec_options:
|
||||
if scm_spec in specs:
|
||||
# We have a match, so use this one.
|
||||
spec_file = scm_spec
|
||||
break
|
||||
|
||||
if not spec_file:
|
||||
# We didn't find an exact match, so throw an error
|
||||
raise koji.BuildError(
|
||||
"Multiple spec files found: %s" % spec_files)
|
||||
else:
|
||||
spec_file = spec_files[0]
|
||||
|
||||
# Run spec file sanity checks. Any failures will throw a BuildError
|
||||
self.spec_sanity_checks(spec_file)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue