createrepo: Only create delta RPMs for binary repos
It does not make much sense to have deltas for source and debug repos. No one benefits from it really and it takes a long time. Relates: https://pagure.io/pungi/issue/715 Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
This commit is contained in:
parent
b81e94e808
commit
90be25c14c
@ -119,6 +119,9 @@ def create_variant_repo(compose, arch, variant, pkg_type):
|
|||||||
|
|
||||||
compose.log_info("[BEGIN] %s" % msg)
|
compose.log_info("[BEGIN] %s" % msg)
|
||||||
|
|
||||||
|
# We only want delta RPMs for binary repos.
|
||||||
|
with_deltas = compose.conf['createrepo_deltas'] and pkg_type == 'rpm'
|
||||||
|
|
||||||
rpms = set()
|
rpms = set()
|
||||||
rpm_nevras = set()
|
rpm_nevras = set()
|
||||||
|
|
||||||
@ -144,7 +147,8 @@ def create_variant_repo(compose, arch, variant, pkg_type):
|
|||||||
for rel_path in sorted(rpms):
|
for rel_path in sorted(rpms):
|
||||||
f.write("%s\n" % rel_path)
|
f.write("%s\n" % rel_path)
|
||||||
|
|
||||||
old_package_dirs = _get_old_package_dirs(compose, repo_dir)
|
# Only find last compose when we actually want delta RPMs.
|
||||||
|
old_package_dirs = _get_old_package_dirs(compose, repo_dir) if with_deltas else None
|
||||||
if old_package_dirs:
|
if old_package_dirs:
|
||||||
# If we are creating deltas, we can not reuse existing metadata, as
|
# If we are creating deltas, we can not reuse existing metadata, as
|
||||||
# that would stop deltas from being created.
|
# that would stop deltas from being created.
|
||||||
@ -158,7 +162,7 @@ def create_variant_repo(compose, arch, variant, pkg_type):
|
|||||||
pkglist=file_list, outputdir=repo_dir, workers=3,
|
pkglist=file_list, outputdir=repo_dir, workers=3,
|
||||||
groupfile=comps_path, update_md_path=repo_dir_arch,
|
groupfile=comps_path, update_md_path=repo_dir_arch,
|
||||||
checksum=createrepo_checksum,
|
checksum=createrepo_checksum,
|
||||||
deltas=compose.conf['createrepo_deltas'],
|
deltas=with_deltas,
|
||||||
oldpackagedirs=old_package_dirs,
|
oldpackagedirs=old_package_dirs,
|
||||||
use_xz=compose.conf['createrepo_use_xz'])
|
use_xz=compose.conf['createrepo_use_xz'])
|
||||||
log_file = compose.paths.log.log_file(arch, "createrepo-%s.%s" % (variant, pkg_type))
|
log_file = compose.paths.log.log_file(arch, "createrepo-%s.%s" % (variant, pkg_type))
|
||||||
|
@ -400,6 +400,7 @@ class TestCreateVariantRepo(PungiTestCase):
|
|||||||
@mock.patch('pungi.phases.createrepo.run')
|
@mock.patch('pungi.phases.createrepo.run')
|
||||||
@mock.patch('pungi.phases.createrepo.CreaterepoWrapper')
|
@mock.patch('pungi.phases.createrepo.CreaterepoWrapper')
|
||||||
def test_variant_repo_source_with_deltas(self, CreaterepoWrapperCls, run):
|
def test_variant_repo_source_with_deltas(self, CreaterepoWrapperCls, run):
|
||||||
|
# This should not actually create deltas, only binary repos do.
|
||||||
compose = DummyCompose(self.topdir, {
|
compose = DummyCompose(self.topdir, {
|
||||||
'createrepo_checksum': 'sha256',
|
'createrepo_checksum': 'sha256',
|
||||||
'createrepo_deltas': True,
|
'createrepo_deltas': True,
|
||||||
@ -423,9 +424,8 @@ class TestCreateVariantRepo(PungiTestCase):
|
|||||||
database=True, groupfile=None, workers=3,
|
database=True, groupfile=None, workers=3,
|
||||||
outputdir=self.topdir + '/compose/Server/source/tree',
|
outputdir=self.topdir + '/compose/Server/source/tree',
|
||||||
pkglist=list_file, skip_stat=True, update=True,
|
pkglist=list_file, skip_stat=True, update=True,
|
||||||
update_md_path=None, deltas=True,
|
update_md_path=self.topdir + '/work/global/repo',
|
||||||
oldpackagedirs=self.topdir + '/old/test-1.0-20151203.0/compose/Server/source/tree/Packages',
|
deltas=False, oldpackagedirs=None, use_xz=False)])
|
||||||
use_xz=False)])
|
|
||||||
self.assertItemsEqual(
|
self.assertItemsEqual(
|
||||||
repo.get_modifyrepo_cmd.mock_calls,
|
repo.get_modifyrepo_cmd.mock_calls,
|
||||||
[])
|
[])
|
||||||
@ -437,6 +437,7 @@ class TestCreateVariantRepo(PungiTestCase):
|
|||||||
@mock.patch('pungi.phases.createrepo.run')
|
@mock.patch('pungi.phases.createrepo.run')
|
||||||
@mock.patch('pungi.phases.createrepo.CreaterepoWrapper')
|
@mock.patch('pungi.phases.createrepo.CreaterepoWrapper')
|
||||||
def test_variant_repo_debug_with_deltas(self, CreaterepoWrapperCls, run):
|
def test_variant_repo_debug_with_deltas(self, CreaterepoWrapperCls, run):
|
||||||
|
# This should not actually create deltas, only binary repos do.
|
||||||
compose = DummyCompose(self.topdir, {
|
compose = DummyCompose(self.topdir, {
|
||||||
'createrepo_checksum': 'sha256',
|
'createrepo_checksum': 'sha256',
|
||||||
'createrepo_deltas': True,
|
'createrepo_deltas': True,
|
||||||
@ -460,9 +461,8 @@ class TestCreateVariantRepo(PungiTestCase):
|
|||||||
database=True, groupfile=None, workers=3,
|
database=True, groupfile=None, workers=3,
|
||||||
outputdir=self.topdir + '/compose/Server/x86_64/debug/tree',
|
outputdir=self.topdir + '/compose/Server/x86_64/debug/tree',
|
||||||
pkglist=list_file, skip_stat=True, update=True,
|
pkglist=list_file, skip_stat=True, update=True,
|
||||||
update_md_path=None, deltas=True,
|
update_md_path=self.topdir + '/work/x86_64/repo',
|
||||||
oldpackagedirs=self.topdir + '/old/test-1.0-20151203.0/compose/Server/x86_64/debug/tree/Packages',
|
deltas=False, oldpackagedirs=None, use_xz=False)])
|
||||||
use_xz=False)])
|
|
||||||
self.assertItemsEqual(
|
self.assertItemsEqual(
|
||||||
repo.get_modifyrepo_cmd.mock_calls,
|
repo.get_modifyrepo_cmd.mock_calls,
|
||||||
[])
|
[])
|
||||||
|
Loading…
Reference in New Issue
Block a user