Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package openSUSE-release-tools for
openSUSE:Factory checked in at 2022-02-24 18:21:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openSUSE-release-tools (Old)
and /work/SRC/openSUSE:Factory/.openSUSE-release-tools.new.1958 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openSUSE-release-tools"
Thu Feb 24 18:21:11 2022 rev:383 rq:957378 version:20220224.e679863a
Changes:
--------
---
/work/SRC/openSUSE:Factory/openSUSE-release-tools/openSUSE-release-tools.changes
2022-02-23 16:26:54.927509829 +0100
+++
/work/SRC/openSUSE:Factory/.openSUSE-release-tools.new.1958/openSUSE-release-tools.changes
2022-02-24 18:24:41.374639164 +0100
@@ -1,0 +2,6 @@
+Thu Feb 24 14:09:43 UTC 2022 - [email protected]
+
+- Update to version 20220224.e679863a:
+ * pkglisten: Add option to remove refresh from target
+
+-------------------------------------------------------------------
Old:
----
openSUSE-release-tools-20220223.4d2a5a2e.obscpio
New:
----
openSUSE-release-tools-20220224.e679863a.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ openSUSE-release-tools.spec ++++++
--- /var/tmp/diff_new_pack.stLKTB/_old 2022-02-24 18:24:42.138638966 +0100
+++ /var/tmp/diff_new_pack.stLKTB/_new 2022-02-24 18:24:42.142638965 +0100
@@ -20,7 +20,7 @@
%define source_dir openSUSE-release-tools
%define announcer_filename factory-package-news
Name: openSUSE-release-tools
-Version: 20220223.4d2a5a2e
+Version: 20220224.e679863a
Release: 0
Summary: Tools to aid in staging and release work for openSUSE/SUSE
License: GPL-2.0-or-later AND MIT
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.stLKTB/_old 2022-02-24 18:24:42.186638954 +0100
+++ /var/tmp/diff_new_pack.stLKTB/_new 2022-02-24 18:24:42.186638954 +0100
@@ -1,7 +1,7 @@
<servicedata>
<service name="tar_scm">
<param
name="url">https://github.com/openSUSE/openSUSE-release-tools.git</param>
- <param
name="changesrevision">10cce4466528548c570d0b5ea328cc188d607295</param>
+ <param
name="changesrevision">e679863a8859b710f28e3d3482258d66db70b9e5</param>
</service>
</servicedata>
++++++ openSUSE-release-tools-20220223.4d2a5a2e.obscpio ->
openSUSE-release-tools-20220224.e679863a.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20220223.4d2a5a2e/pkglistgen/cli.py
new/openSUSE-release-tools-20220224.e679863a/pkglistgen/cli.py
--- old/openSUSE-release-tools-20220223.4d2a5a2e/pkglistgen/cli.py
2022-02-22 18:44:22.000000000 +0100
+++ new/openSUSE-release-tools-20220224.e679863a/pkglistgen/cli.py
2022-02-24 15:09:15.000000000 +0100
@@ -13,7 +13,7 @@
from osclib.conf import Config
from osclib.stagingapi import StagingAPI
from pkglistgen.tool import PkgListGen
-from pkglistgen.update_repo_handler import update_project, merge_susetags
+from pkglistgen.update_repo_handler import update_project
class CommandLineInterface(ToolBase.CommandLineInterface):
@@ -31,6 +31,7 @@
return tool
+ @cmdln.option('--fixate', help='Set category to fixed and merge remaining
files')
def do_handle_update_repos(self, subcmd, opts, project):
"""${cmd_name}: Update 00update-repos
@@ -39,15 +40,7 @@
${cmd_usage}
${cmd_option_list}
"""
- return update_project(conf.config['apiurl'], project)
-
- def do_merge_susetags(self, subcmd, opts, output, *files):
- """${cmd_name}: Merge susetags files and output into a new
-
- ${cmd_usage}
- ${cmd_option_list}
- """
- return merge_susetags(output, files)
+ return update_project(conf.config['apiurl'], project, opts.fixate)
@cmdln.option('-f', '--force', action='store_true', help='continue even if
build is in progress')
@cmdln.option('-p', '--project', help='target project')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20220223.4d2a5a2e/pkglistgen/update_repo_handler.py
new/openSUSE-release-tools-20220224.e679863a/pkglistgen/update_repo_handler.py
---
old/openSUSE-release-tools-20220223.4d2a5a2e/pkglistgen/update_repo_handler.py
2022-02-22 18:44:22.000000000 +0100
+++
new/openSUSE-release-tools-20220224.e679863a/pkglistgen/update_repo_handler.py
2022-02-24 15:09:15.000000000 +0100
@@ -10,6 +10,7 @@
import string
import subprocess
import shutil
+import sys
import tempfile
from lxml import etree as ET
@@ -180,18 +181,27 @@
print('-Prv:', file=packages_file)
+def add_susetags(pool, file):
+ oldsysrepo = pool.add_repo(file)
+ defvendorid = oldsysrepo.meta.lookup_id(solv.SUSETAGS_DEFAULTVENDOR)
+ f = tempfile.TemporaryFile()
+ if file.endswith('.xz'):
+ subprocess.call(['xz', '-cd', file], stdout=f.fileno())
+ elif file.endswith('.zst'):
+ subprocess.call(['zstd', '-cd', file], stdout=f.fileno())
+ else:
+ raise Exception("unsupported " + file)
+ os.lseek(f.fileno(), 0, os.SEEK_SET)
+ oldsysrepo.add_susetags(solv.xfopen_fd(None, f.fileno()), defvendorid,
None,
+ solv.Repo.REPO_NO_INTERNALIZE |
solv.Repo.SUSETAGS_RECORD_SHARES)
+
+
def merge_susetags(output, files):
pool = solv.Pool()
pool.setarch()
for file in files:
- oldsysrepo = pool.add_repo(file)
- defvendorid = oldsysrepo.meta.lookup_id(solv.SUSETAGS_DEFAULTVENDOR)
- f = tempfile.TemporaryFile()
- subprocess.call(['xz', '-cd', file], stdout=f.fileno())
- os.lseek(f.fileno(), 0, os.SEEK_SET)
- oldsysrepo.add_susetags(solv.xfopen_fd(None, f.fileno()), defvendorid,
None,
- solv.Repo.REPO_NO_INTERNALIZE |
solv.Repo.SUSETAGS_RECORD_SHARES)
+ add_susetags(pool, file)
packages = dict()
for s in pool.solvables_iter():
@@ -215,7 +225,39 @@
print('-Prv:', file=output_file)
-def update_project(apiurl, project):
+def fixate_target(root, package, fixate):
+ for item in root:
+ key = list(item)[0]
+ opts = item[key]
+ key = str(key)
+ if key == fixate:
+ if not opts.get('refresh', False):
+ print(f"{fixate} is already fix. Please lookup config.yml",
file=sys.stderr)
+ return False
+ del opts['refresh']
+ oldfiles = target_files(package.dir, key)
+ newfile = os.path.join(package.dir, f'{fixate}_package')
+ merge_susetags(newfile, oldfiles)
+ for file in oldfiles:
+ os.unlink(file)
+ package.delete_file(os.path.basename(file))
+ subprocess.check_call(['zstd', '-19', '--rm', newfile])
+ package.addfile(os.path.basename(newfile) + ".zst")
+ ystring = yaml.dump(root, default_flow_style=False)
+ with open(os.path.join(package.dir, 'config.yml'), 'w') as f:
+ f.write(ystring)
+ package.commit(f'Remove refresh from {fixate}')
+ return True
+
+
+def target_files(repo_dir, key):
+ files = list()
+ for suffix in ['xz', 'zst']:
+ files += glob.glob(os.path.join(repo_dir,
f'{key}_*.packages.{suffix}'))
+ return files
+
+
+def update_project(apiurl, project, fixate=None):
# Cache dir specific to hostname and project.
host = urlparse(apiurl).hostname
cache_dir = CacheManager.directory('update_repo_handler', host, project)
@@ -233,6 +275,9 @@
package = osc.core.Package(repo_dir)
root = yaml.safe_load(open(os.path.join(repo_dir, 'config.yml')))
+ if fixate:
+ return fixate_target(root, package, fixate)
+
for item in root:
key = list(item)[0]
opts = item[key]
@@ -249,20 +294,21 @@
packages_file = os.path.join(repo_dir, path)
if opts.get('refresh', False):
- oldfiles = glob.glob(os.path.join(repo_dir,
'{}_*.packages.xz'.format(key)))
+ oldfiles = target_files(repo_dir, key)
if len(oldfiles) > 10:
oldest = oldfiles[-1]
if oldest.count('and_before') > 1:
raise Exception('The oldest is already a compated file')
oldest = oldest.replace('.packages.xz', '_and_before.packages')
+ oldest = oldest.replace('.packages.zst',
'_and_before.packages')
merge_susetags(oldest, oldfiles)
for file in oldfiles:
os.unlink(file)
package.delete_file(os.path.basename(file))
- subprocess.check_call(['xz', oldest])
- package.addfile(os.path.basename(oldest) + ".xz")
+ subprocess.check_call(['zstd', '-19', '--rm', oldest])
+ package.addfile(os.path.basename(oldest) + ".zst")
- if os.path.exists(packages_file + '.xz'):
+ if os.path.exists(packages_file + '.zst') or
os.path.exists(packages_file + '.xz'):
print(path, 'already exists')
continue
@@ -273,24 +319,17 @@
pool.setarch()
if opts.get('refresh', False):
- for file in glob.glob(os.path.join(repo_dir,
'{}_*.packages.xz'.format(key))):
- repo = pool.add_repo(file)
- defvendorid = repo.meta.lookup_id(solv.SUSETAGS_DEFAULTVENDOR)
- f = tempfile.TemporaryFile()
- # FIXME: port to lzma module with python3
- subprocess.call(['xz', '-cd', file], stdout=f.fileno())
- os.lseek(f.fileno(), 0, os.SEEK_SET)
- repo.add_susetags(solv.xfopen_fd(None, f.fileno()),
defvendorid, None,
- solv.Repo.REPO_NO_INTERNALIZE |
solv.Repo.SUSETAGS_RECORD_SHARES)
+ for file in target_files(repo_dir, key):
+ add_susetags(pool, file)
repo1 = pool.add_repo(''.join(random.choice(string.ascii_letters) for
_ in range(5)))
repo1.add_solv(solv_file)
print_repo_delta(pool, repo1, open(packages_file, 'w'))
- subprocess.call(['xz', '-9', packages_file])
+ subprocess.call(['zstd', '-19', '--rm', packages_file])
os.unlink(solv_file)
- package.addfile(os.path.basename(path + '.xz'))
+ package.addfile(os.path.basename(path + '.zst'))
del pool
package.commit('Automatic update')
++++++ openSUSE-release-tools.obsinfo ++++++
--- /var/tmp/diff_new_pack.stLKTB/_old 2022-02-24 18:24:42.750638806 +0100
+++ /var/tmp/diff_new_pack.stLKTB/_new 2022-02-24 18:24:42.754638806 +0100
@@ -1,5 +1,5 @@
name: openSUSE-release-tools
-version: 20220223.4d2a5a2e
-mtime: 1645551862
-commit: 4d2a5a2ed3d5481ac45673332e5c7b5c40e4e694
+version: 20220224.e679863a
+mtime: 1645711755
+commit: e679863a8859b710f28e3d3482258d66db70b9e5