Compare commits

...

4 Commits

Author SHA1 Message Date
Louis Abel 01a6696adc
processor fix 2024-03-04 17:27:16 -07:00
Louis Abel 99035af3e9
regex fixes 2024-03-04 17:09:33 -07:00
Louis Abel 90aa3e2016
add autochangelog logic 2024-03-04 17:06:59 -07:00
Louis Abel 3e925ca471
add autochangelog logic 2024-03-04 17:06:07 -07:00
1 changed files with 33 additions and 0 deletions

View File

@ -22,6 +22,13 @@ from pv2.util import uploader as upload
#except ImportError:
# HAS_GI = False
try:
from rpmautospec.subcommands import process_distgit as rpmautocl
HAS_RPMAUTOSPEC = True
except ImportError:
HAS_RPMAUTOSPEC = False
print('WARNING! rpmautospec was not found on this system and is not loaded.')
__all__ = [
'Import',
'SrpmImport',
@ -688,6 +695,7 @@ class GitImport(Import):
check_dest_repo = gitutil.lsremote(self.dest_git_url)
source_git_repo_path = f'/var/tmp/{self.rpm_name}-source'
source_git_repo_spec = f'{source_git_repo_path}/{self.rpm_name}.spec'
source_git_repo_changelog = f'{source_git_repo_path}/changelog'
dest_git_repo_path = f'/var/tmp/{self.rpm_name}'
metadata_file = f'{source_git_repo_path}/.{self.rpm_name}.metadata'
sources_file = f'{source_git_repo_path}/sources'
@ -802,6 +810,31 @@ class GitImport(Import):
if not os.path.exists(source_git_repo_spec) and len(self.alternate_spec_name) == 0:
source_git_repo_spec = self.find_spec_file(source_git_repo_path)
# do rpm autochangelog logic here
if HAS_RPMAUTOSPEC and os.path.exists(source_git_repo_changelog):
# Check that the spec file really has %autochangelog
AUTOCHANGELOG = False
with open(source_git_repo_spec, 'r') as spec_file:
for line in spec_file:
if re.match(r'^%autochangelog', line):
print('autochangelog found')
AUTOCHANGELOG = True
spec_file.close()
# It was easier to do this then reimplement logic
if AUTOCHANGELOG:
try:
rpmautocl.process_distgit(
source_git_repo_spec,
f'/tmp/{self.rpm_name}.spec'
)
except Exception as exc:
raise err.GenericError('There was an error with autospec.') from exc
shutil.copy(f'/tmp/{self.rpm_name}.spec',
f'{source_git_repo_path}/{self.rpm_name}.spec')
os.remove(f'/tmp/{self.rpm_name}.spec')
# attempt to pack up the RPM, get metadata
packed_srpm = self.pack_srpm(source_git_repo_path,
source_git_repo_spec,