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 - opensuse-releaset...@opensuse.org
+
+- 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
 

Reply via email to