Loading reprotest/presets.py +37 −0 Original line number Diff line number Diff line Loading @@ -72,7 +72,18 @@ PRESET_DEB_DIR = ReprotestPreset( diffoscope_args=[], ) PRESET_RPM_DIR = ReprotestPreset( build_command='rpmbuild --rebuild', artifact_pattern='*[^src].rpm', testbed_pre=None, testbed_init=None, testbed_build_pre=None, source_pattern='*.src.rpm', diffoscope_args=[], ) # DEB def preset_deb_schroot(fn, preset): return preset.set.testbed_init( # need to symlink /etc/mtab to work around a fusermount(1) deficiency Loading @@ -99,6 +110,25 @@ def parse_dsc_aux(path): return [x.split()[-1].decode("utf-8") for x in dscfiles.splitlines()] # RPM def preset_rpm_rpmbuild(fn): # We ensure to have generated RPMs into temporary HOME folder and not in # rpmbuild/RPMS/%%{ARCH}/ extra_build_command = [ '--define "_build_name_fmt %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm"', '--define "_topdir $PWD/rpmbuild"', '--define "_rpmdir $PWD"', '%s' % fn ] # rpmbuild needs to be told to use reproducible specific options extra_build_command += ['--define "source_date_epoch_from_changelog Y"'] extra_build_command += ['--define "clamp_mtime_to_source_date_epoch Y"'] extra_build_command += ['--define "use_source_date_epoch_as_buildtime Y"'] return PRESET_RPM_DIR.append.build_command(' %s' % ' '.join(extra_build_command)) ### def get_presets(buildfile, virtual_server): fn = os.path.basename(buildfile) parts = os.path.splitext(fn) Loading @@ -114,5 +144,12 @@ def get_presets(buildfile, virtual_server): return preset_deb_dsc(fn, parse_dsc_aux(buildfile)) else: return preset_deb_schroot(fn, preset_deb_dsc(fn, parse_dsc_aux(buildfile))) elif parts[1] == '.rpm': if os.path.splitext(parts[0])[1] != '.src': raise ValueError('cannot determine .src.rpm') if virtual_server == "null": return preset_rpm_rpmbuild(fn) else: raise ValueError("only 'null' virtual_server is currently available for source RPM") raise ValueError('unrecognised file type: "%s"; try giving ' 'an appropriate --build-command' % buildfile) Loading
reprotest/presets.py +37 −0 Original line number Diff line number Diff line Loading @@ -72,7 +72,18 @@ PRESET_DEB_DIR = ReprotestPreset( diffoscope_args=[], ) PRESET_RPM_DIR = ReprotestPreset( build_command='rpmbuild --rebuild', artifact_pattern='*[^src].rpm', testbed_pre=None, testbed_init=None, testbed_build_pre=None, source_pattern='*.src.rpm', diffoscope_args=[], ) # DEB def preset_deb_schroot(fn, preset): return preset.set.testbed_init( # need to symlink /etc/mtab to work around a fusermount(1) deficiency Loading @@ -99,6 +110,25 @@ def parse_dsc_aux(path): return [x.split()[-1].decode("utf-8") for x in dscfiles.splitlines()] # RPM def preset_rpm_rpmbuild(fn): # We ensure to have generated RPMs into temporary HOME folder and not in # rpmbuild/RPMS/%%{ARCH}/ extra_build_command = [ '--define "_build_name_fmt %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm"', '--define "_topdir $PWD/rpmbuild"', '--define "_rpmdir $PWD"', '%s' % fn ] # rpmbuild needs to be told to use reproducible specific options extra_build_command += ['--define "source_date_epoch_from_changelog Y"'] extra_build_command += ['--define "clamp_mtime_to_source_date_epoch Y"'] extra_build_command += ['--define "use_source_date_epoch_as_buildtime Y"'] return PRESET_RPM_DIR.append.build_command(' %s' % ' '.join(extra_build_command)) ### def get_presets(buildfile, virtual_server): fn = os.path.basename(buildfile) parts = os.path.splitext(fn) Loading @@ -114,5 +144,12 @@ def get_presets(buildfile, virtual_server): return preset_deb_dsc(fn, parse_dsc_aux(buildfile)) else: return preset_deb_schroot(fn, preset_deb_dsc(fn, parse_dsc_aux(buildfile))) elif parts[1] == '.rpm': if os.path.splitext(parts[0])[1] != '.src': raise ValueError('cannot determine .src.rpm') if virtual_server == "null": return preset_rpm_rpmbuild(fn) else: raise ValueError("only 'null' virtual_server is currently available for source RPM") raise ValueError('unrecognised file type: "%s"; try giving ' 'an appropriate --build-command' % buildfile)