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 - [email protected]
+
+- Update to version 20200224.7a060087:
+ * Fix typos
+ * Some refactoring
+ * Add support for DoD repos to installcheck
+
+-------------------------------------------------------------------
+Thu Feb 20 10:07:59 UTC 2020 - [email protected]
+
+- 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