Hello community,

here is the log from the commit of package openSUSE-release-tools for 
openSUSE:Leap:15.2 checked in at 2020-02-25 12:19:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Leap:15.2/openSUSE-release-tools (Old)
 and      /work/SRC/openSUSE:Leap:15.2/.openSUSE-release-tools.new.26092 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "openSUSE-release-tools"

Tue Feb 25 12:19:01 2020 rev:302 rq:778991 version:20200224.7a060087

Changes:
--------
--- 
/work/SRC/openSUSE:Leap:15.2/openSUSE-release-tools/openSUSE-release-tools.changes
  2020-02-21 10:54:14.539537371 +0100
+++ 
/work/SRC/openSUSE:Leap:15.2/.openSUSE-release-tools.new.26092/openSUSE-release-tools.changes
       2020-02-25 12:20:44.496874932 +0100
@@ -1,0 +2,14 @@
+Mon Feb 24 07:50:27 UTC 2020 - opensuse-releaset...@opensuse.org
+
+- Update to version 20200224.7a060087:
+  * Fix typos
+  * Some refactoring
+  * Add support for DoD repos to installcheck
+
+-------------------------------------------------------------------
+Thu Feb 20 10:07:59 UTC 2020 - opensuse-releaset...@opensuse.org
+
+- Update to version 20200220.3b5f8650:
+  * fcc_submitter: update to 15.2
+
+-------------------------------------------------------------------

Old:
----
  openSUSE-release-tools-20200219.c0ab2c6b.obscpio

New:
----
  openSUSE-release-tools-20200224.7a060087.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ openSUSE-release-tools.spec ++++++
--- /var/tmp/diff_new_pack.CY4ibm/_old  2020-02-25 12:20:47.576881315 +0100
+++ /var/tmp/diff_new_pack.CY4ibm/_new  2020-02-25 12:20:47.576881315 +0100
@@ -20,7 +20,7 @@
 %define source_dir openSUSE-release-tools
 %define announcer_filename factory-package-news
 Name:           openSUSE-release-tools
-Version:        20200219.c0ab2c6b
+Version:        20200224.7a060087
 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.CY4ibm/_old  2020-02-25 12:20:47.616881398 +0100
+++ /var/tmp/diff_new_pack.CY4ibm/_new  2020-02-25 12:20:47.616881398 +0100
@@ -1,6 +1,6 @@
 <servicedata>
   <service name="tar_scm">
     <param 
name="url">https://github.com/openSUSE/openSUSE-release-tools.git</param>
-    <param 
name="changesrevision">c0ab2c6b6ce0c0c6a663795e651e12aff3de353e</param>
+    <param 
name="changesrevision">7a06008735f42340124b2072e53164e287330667</param>
   </service>
 </servicedata>

++++++ openSUSE-release-tools-20200219.c0ab2c6b.obscpio -> 
openSUSE-release-tools-20200224.7a060087.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20200219.c0ab2c6b/fcc_submitter.py 
new/openSUSE-release-tools-20200224.7a060087/fcc_submitter.py
--- old/openSUSE-release-tools-20200219.c0ab2c6b/fcc_submitter.py       
2020-02-19 13:40:39.000000000 +0100
+++ new/openSUSE-release-tools-20200224.7a060087/fcc_submitter.py       
2020-02-24 08:48:25.000000000 +0100
@@ -1,8 +1,9 @@
-#!/usr/bin/python
+#!/usr/bin/python3
 
 import argparse
 import logging
 import sys
+import time
 
 try:
     from urllib.error import HTTPError, URLError
@@ -22,9 +23,10 @@
 from osc import oscerr
 from osclib.memoize import memoize
 
-OPENSUSE = 'openSUSE:Leap:15.1'
-OPENSUSE_PREVERSION = 'openSUSE:Leap:15.0'
-FCC = '{}:Staging:FactoryCandidates'.format(OPENSUSE)
+OPENSUSE = 'openSUSE:Leap:15.2'
+OPENSUSE_PREVERSION = 'openSUSE:Leap:15.1'
+OPENSUSE_RELEASED_VERSION = ['openSUSE:Leap:15.0', 'openSUSE:Leap:15.1']
+FCC = '{}:FactoryCandidates'.format(OPENSUSE)
 
 makeurl = osc.core.makeurl
 http_GET = osc.core.http_GET
@@ -133,7 +135,10 @@
         self.apiurl = osc.conf.config['apiurl']
         self.debug = osc.conf.config['debug']
         self.sle_base_prjs = [
+                'SUSE:SLE-15-SP2:GA',
+                'SUSE:SLE-15-SP1:Update',
                 'SUSE:SLE-15-SP1:GA',
+                'SUSE:SLE-15:Update',
                 'SUSE:SLE-15:GA',
                 'SUSE:SLE-12-SP4:Update',
                 'SUSE:SLE-12-SP4:GA',
@@ -309,7 +314,8 @@
         target_packages = self.get_source_packages(self.to_prj)
         deleted_packages = self.get_deleted_packages(self.to_prj)
         if self.to_prj.startswith("openSUSE:"):
-            deleted_packages = deleted_packages + 
self.get_deleted_packages(OPENSUSE_PREVERSION)
+            for prd in OPENSUSE_RELEASED_VERSION:
+                deleted_packages = deleted_packages + 
self.get_deleted_packages(prd)
 
         pseudometa_project, pseudometa_package = 
project_pseudometa_package(self.apiurl, 'openSUSE:Factory')
         skip_pkgs_list = self.load_skip_pkgs_list(pseudometa_project, 
pseudometa_package).splitlines()
@@ -381,7 +387,7 @@
                     # check package does not in the skip list
                     match = None
                     for elem in skip_pkgs_list:
-                        m = re.search(elem, package)
+                        m = re.search(str(elem), package)
                         if m is not None:
                             match = True
 
@@ -398,6 +404,7 @@
                         logging.error('Error occurred when creating submit 
request')
             else:
                 logging.debug('%s is exist in %s, skip!' % (package, 
self.to_prj))
+            time.sleep(5)
 
         # dump multi specs packages
         print("Multi-specfile packages:")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20200219.c0ab2c6b/osclib/repochecks.py 
new/openSUSE-release-tools-20200224.7a060087/osclib/repochecks.py
--- old/openSUSE-release-tools-20200219.c0ab2c6b/osclib/repochecks.py   
2020-02-19 13:40:39.000000000 +0100
+++ new/openSUSE-release-tools-20200224.7a060087/osclib/repochecks.py   
2020-02-24 08:48:25.000000000 +0100
@@ -1,9 +1,13 @@
 import logging
 import os
 import re
+import requests
 import subprocess
 import tempfile
+import glob
 from fnmatch import fnmatch
+from lxml import etree as ETL
+from osc.core import http_GET
 
 import yaml
 
@@ -87,7 +91,7 @@
     line = re.sub(r'(provided by [^ ]*\-[^-]*)\-[^-]*(\.\w+)$', r'\1\2', line)
     return line
 
-def parsed_installcheck(pfile, arch, target_packages, whitelist):
+def parsed_installcheck(repos, arch, target_packages, whitelist):
     reported_problems = dict()
 
     if not len(target_packages):
@@ -100,7 +104,10 @@
             return _mapping[arch]
         return arch
 
-    p = subprocess.run(['/usr/bin/installcheck', maparch2installarch(arch), 
pfile],
+    if not isinstance(repos, list):
+        repos = [repos]
+
+    p = subprocess.run(['/usr/bin/installcheck', maparch2installarch(arch)] + 
repos,
                        stdout=subprocess.PIPE, errors='backslashreplace', 
text=True)
     if p.returncode:
         in_problem = False
@@ -162,15 +169,47 @@
 
         return parts
 
+def mirrorRepomd(cachedir, url):
+    # Use repomd.xml to get the location of primary.xml.gz
+    repoindex = 
ETL.fromstring(requests.get('{}/repodata/repomd.xml'.format(url)).content)
+    primarypath = 
repoindex.xpath("string(./repo:data[@type='primary']/repo:location/@href)",
+                                  namespaces={'repo': 
'http://linux.duke.edu/metadata/repo'})
+    if not primarypath.endswith(".xml.gz"):
+        raise Exception('unsupported primary format')
+
+    primarydest = os.path.join(cachedir, os.path.basename(primarypath))
+    if not os.path.exists(primarydest):
+        # Delete the old files first
+        for oldfile in glob.glob(glob.escape(cachedir) + "/*.xml.gz"):
+            os.unlink(oldfile)
+
+        with tempfile.NamedTemporaryFile(dir=cachedir) as primarytemp:
+            primarytemp.write(requests.get(url + '/' + primarypath).content)
+            os.link(primarytemp.name, primarydest)
+    return primarydest
 
 def mirror(apiurl, project, repository, arch):
     """Call bs_mirrorfull script to mirror packages."""
     directory = os.path.join(CACHEDIR, project, repository, arch)
-    # return directory
 
     if not os.path.exists(directory):
         os.makedirs(directory)
 
+    meta = ETL.parse(http_GET('{}/public/source/{}/_meta'.format(apiurl, 
project))).getroot()
+    repotag = 
meta.xpath("/project/repository[@name='{}']".format(repository))[0]
+    if arch not in repotag.xpath("./arch/text()"):
+        # Arch not in this project, skip mirroring
+        return directory
+
+    download = repotag.xpath("./download[@arch='{}']".format(arch))
+    if download is not None and len(download) > 0:
+        if len(download) > 1:
+            raise Exception('Multiple download urls unsupported')
+        repotype = download[0].get('repotype')
+        if repotype != 'rpmmd':
+            raise Exception('repotype {} not supported'.format(repotype))
+        return mirrorRepomd(directory, download[0].get('url'))
+
     script = os.path.join(SCRIPT_PATH, '..', 'bs_mirrorfull')
     path = '/'.join((project, repository, arch))
     logger.info('mirroring {}'.format(path))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openSUSE-release-tools-20200219.c0ab2c6b/project-installcheck.py 
new/openSUSE-release-tools-20200224.7a060087/project-installcheck.py
--- old/openSUSE-release-tools-20200219.c0ab2c6b/project-installcheck.py        
2020-02-19 13:40:39.000000000 +0100
+++ new/openSUSE-release-tools-20200224.7a060087/project-installcheck.py        
2020-02-24 08:48:25.000000000 +0100
@@ -126,8 +126,13 @@
 
         repository_pairs = repository_path_expand(self.apiurl, project, 
repository)
         directories = []
+        primaryxmls = []
         for pair_project, pair_repository in repository_pairs:
-            directories.append(mirror(self.apiurl, pair_project, 
pair_repository, arch))
+            mirrored = mirror(self.apiurl, pair_project, pair_repository, arch)
+            if os.path.isdir(mirrored):
+                directories.append(mirrored)
+            else:
+                primaryxmls.append(mirrored)
 
         parsed = dict()
         with tempfile.TemporaryDirectory(prefix='repochecker') as dir:
@@ -148,7 +153,7 @@
                 catalog = yaml.safe_load(file)
                 target_packages = catalog.get(directories[0], [])
 
-            parsed = parsed_installcheck(pfile, arch, target_packages, [])
+            parsed = parsed_installcheck([pfile] + primaryxmls, arch, 
target_packages, [])
             for package in parsed:
                 parsed[package]['output'] = 
"\n".join(parsed[package]['output'])
 

++++++ openSUSE-release-tools.obsinfo ++++++
--- /var/tmp/diff_new_pack.CY4ibm/_old  2020-02-25 12:20:48.148882501 +0100
+++ /var/tmp/diff_new_pack.CY4ibm/_new  2020-02-25 12:20:48.148882501 +0100
@@ -1,5 +1,5 @@
 name: openSUSE-release-tools
-version: 20200219.c0ab2c6b
-mtime: 1582116039
-commit: c0ab2c6b6ce0c0c6a663795e651e12aff3de353e
+version: 20200224.7a060087
+mtime: 1582530505
+commit: 7a06008735f42340124b2072e53164e287330667
 


Reply via email to