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 2023-04-27 20:01:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openSUSE-release-tools (Old)
and /work/SRC/openSUSE:Factory/.openSUSE-release-tools.new.1533 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openSUSE-release-tools"
Thu Apr 27 20:01:32 2023 rev:462 rq:1083184 version:20230420.372c67d
Changes:
--------
---
/work/SRC/openSUSE:Factory/openSUSE-release-tools/openSUSE-release-tools.changes
2023-04-05 21:35:55.830662792 +0200
+++
/work/SRC/openSUSE:Factory/.openSUSE-release-tools.new.1533/openSUSE-release-tools.changes
2023-04-27 20:02:44.278561647 +0200
@@ -1,0 +2,54 @@
+Thu Apr 20 06:13:18 UTC 2023 - [email protected]
+
+- Update to version 20230420.372c67d:
+ * staging-installcheck.py: Detect some edge cases in check_required_by
+
+-------------------------------------------------------------------
+Wed Apr 19 05:45:15 UTC 2023 - [email protected]
+
+- Update to version 20230419.c0f2057:
+ * Filter out access logs with error code
+
+-------------------------------------------------------------------
+Tue Apr 18 07:28:08 UTC 2023 - [email protected]
+
+- Update to version 20230418.aebe39c:
+ * Publish kiwi-templates-Minimal-s390x for SLE15
+
+-------------------------------------------------------------------
+Tue Apr 11 14:06:16 UTC 2023 - [email protected]
+
+- Update to version 20230411.8639ce3:
+ * repo2fileprovides.py: Support file deps in boolean dependencies
+
+-------------------------------------------------------------------
+Tue Apr 11 13:15:13 UTC 2023 - [email protected]
+
+- Update to version 20230411.f596472:
+ * docker_publisher.py: Add 15.5, remove 15.3
+
+-------------------------------------------------------------------
+Tue Apr 11 11:55:53 UTC 2023 - [email protected]
+
+- Update to version 20230411.7f92b23:
+ * Fix the OBS CI workflow (#2950)
+
+-------------------------------------------------------------------
+Tue Apr 11 11:27:15 UTC 2023 - [email protected]
+
+- Update to version 20230411.363c84c:
+ * dist: Package osrt-repo2fileprovides
+
+-------------------------------------------------------------------
+Tue Apr 11 10:51:23 UTC 2023 - [email protected]
+
+- Update to version 20230411.816d0eb:
+ * cleanup_rings.py: Add snobol4 to whitelist
+
+-------------------------------------------------------------------
+Thu Apr 06 08:08:54 UTC 2023 - [email protected]
+
+- Update to version 20230406.c548870:
+ * Add repo2fileprovides.py
+
+-------------------------------------------------------------------
Old:
----
openSUSE-release-tools-20230329.af36a03.obscpio
New:
----
openSUSE-release-tools-20230420.372c67d.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ openSUSE-release-tools.spec ++++++
--- /var/tmp/diff_new_pack.0cZZUg/_old 2023-04-27 20:02:45.238567291 +0200
+++ /var/tmp/diff_new_pack.0cZZUg/_new 2023-04-27 20:02:45.242567314 +0200
@@ -20,7 +20,7 @@
%define source_dir openSUSE-release-tools
%define announcer_filename factory-package-news
Name: openSUSE-release-tools
-Version: 20230329.af36a03
+Version: 20230420.372c67d
Release: 0
Summary: Tools to aid in staging and release work for openSUSE/SUSE
License: GPL-2.0-or-later AND MIT
@@ -396,6 +396,7 @@
%{_bindir}/osrt-issue-diff
%{_bindir}/osrt-legal-auto
%{_bindir}/osrt-openqa-maintenance
+%{_bindir}/osrt-repo2fileprovides
%{_bindir}/osrt-requestfinder
%{_bindir}/osrt-totest-manager
%{_datadir}/%{source_dir}
@@ -494,7 +495,6 @@
%files repo-checker
%{_bindir}/osrt-project-installcheck
%{_bindir}/osrt-staging-installcheck
-%{_bindir}/osrt-maintenance-installcheck
%{_bindir}/osrt-findfileconflicts
%{_bindir}/osrt-maintenance-installcheck
%{_bindir}/osrt-write_repo_susetags_file
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.0cZZUg/_old 2023-04-27 20:02:45.298567643 +0200
+++ /var/tmp/diff_new_pack.0cZZUg/_new 2023-04-27 20:02:45.302567667 +0200
@@ -1,7 +1,7 @@
<servicedata>
<service name="tar_scm">
<param
name="url">https://github.com/openSUSE/openSUSE-release-tools.git</param>
- <param
name="changesrevision">af36a030b3d2e34f24828caf849c463ffeb2db14</param>
+ <param
name="changesrevision">372c67d51607fb0d27e0b2413be79e1ffdabc527</param>
</service>
</servicedata>
++++++ openSUSE-release-tools-20230329.af36a03.obscpio ->
openSUSE-release-tools-20230420.372c67d.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20230329.af36a03/.obs/workflows.yml
new/openSUSE-release-tools-20230420.372c67d/.obs/workflows.yml
--- old/openSUSE-release-tools-20230329.af36a03/.obs/workflows.yml
2023-03-29 11:02:25.000000000 +0200
+++ new/openSUSE-release-tools-20230420.372c67d/.obs/workflows.yml
2023-04-20 08:12:22.000000000 +0200
@@ -1,23 +1,10 @@
---
pr:
steps:
- - link_package:
- source_project: openSUSE:Tools
+ - branch_package:
+ source_project: openSUSE:Tools:OSRT:TestGithub
source_package: openSUSE-release-tools
target_project: openSUSE:Tools:OSRT:TestGithub
- - configure_repositories:
- project: openSUSE:Tools:OSRT:TestGithub
- repositories:
- - name: openSUSE_Tumbleweed
- paths:
- - target_project: openSUSE:Factory
- target_repository: snapshot
- architectures: [ x86_64 ]
- - name: '15.4'
- paths:
- - target_project: openSUSE:Tools
- target_repository: '15.4'
- architectures: [ x86_64 ]
filters:
event: pull_request
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/openSUSE-release-tools-20230329.af36a03/CONTENTS.md
new/openSUSE-release-tools-20230420.372c67d/CONTENTS.md
--- old/openSUSE-release-tools-20230329.af36a03/CONTENTS.md 2023-03-29
11:02:25.000000000 +0200
+++ new/openSUSE-release-tools-20230420.372c67d/CONTENTS.md 2023-04-20
08:12:22.000000000 +0200
@@ -171,6 +171,15 @@
* Package: --
* Usage: ?
+#### repo2fileprovides.py
+
+Script to generate necessary FileProvides lines needed by OBS from repo data.
+
+* Sources: [repo2fileprovides.py](repo2fileprovides.py)
+* Documentation: --
+* Package: --
+* Usage: repo2fileprovides.py primary.xml(.gz)
+
### Bots
#### check_maintenance_incidents
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20230329.af36a03/dist/package/openSUSE-release-tools.spec
new/openSUSE-release-tools-20230420.372c67d/dist/package/openSUSE-release-tools.spec
---
old/openSUSE-release-tools-20230329.af36a03/dist/package/openSUSE-release-tools.spec
2023-03-29 11:02:25.000000000 +0200
+++
new/openSUSE-release-tools-20230420.372c67d/dist/package/openSUSE-release-tools.spec
2023-04-20 08:12:22.000000000 +0200
@@ -396,6 +396,7 @@
%{_bindir}/osrt-issue-diff
%{_bindir}/osrt-legal-auto
%{_bindir}/osrt-openqa-maintenance
+%{_bindir}/osrt-repo2fileprovides
%{_bindir}/osrt-requestfinder
%{_bindir}/osrt-totest-manager
%{_datadir}/%{source_dir}
@@ -494,7 +495,6 @@
%files repo-checker
%{_bindir}/osrt-project-installcheck
%{_bindir}/osrt-staging-installcheck
-%{_bindir}/osrt-maintenance-installcheck
%{_bindir}/osrt-findfileconflicts
%{_bindir}/osrt-maintenance-installcheck
%{_bindir}/osrt-write_repo_susetags_file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20230329.af36a03/docker_publisher.py
new/openSUSE-release-tools-20230420.372c67d/docker_publisher.py
--- old/openSUSE-release-tools-20230329.af36a03/docker_publisher.py
2023-03-29 11:02:25.000000000 +0200
+++ new/openSUSE-release-tools-20230420.372c67d/docker_publisher.py
2023-04-20 08:12:22.000000000 +0200
@@ -377,16 +377,6 @@
},
'publisher': DockerImagePublisherRegistry(drc_tw, "latest"),
},
- 'leap-15.3': {
- 'fetchers': {
- 'x86_64':
DockerImageFetcherOBS(url="https://build.opensuse.org/public/build/openSUSE:Containers:Leap:15.3/containers/x86_64/opensuse-leap-image:docker",
maintenance_release=True), # noqa: E501
- 'aarch64':
DockerImageFetcherOBS(url="https://build.opensuse.org/public/build/openSUSE:Containers:Leap:15.3/containers/aarch64/opensuse-leap-image:docker",
maintenance_release=True), # noqa: E501
- 'armv7l':
DockerImageFetcherOBS(url="https://build.opensuse.org/public/build/openSUSE:Containers:Leap:15.3/containers_armv7/armv7l/opensuse-leap-image:docker",
maintenance_release=True), # noqa: E501
- 'ppc64le':
DockerImageFetcherOBS(url="https://build.opensuse.org/public/build/openSUSE:Containers:Leap:15.3/containers/ppc64le/opensuse-leap-image:docker",
maintenance_release=True), # noqa: E501
- 's390x':
DockerImageFetcherOBS(url="https://build.opensuse.org/public/build/openSUSE:Containers:Leap:15.3/containers/s390x/opensuse-leap-image:docker",
maintenance_release=True), # noqa: E501
- },
- 'publisher': DockerImagePublisherRegistry(drc_leap, "15.3"),
- },
'leap-15.4': {
'fetchers': {
'x86_64':
DockerImageFetcherOBS(url="https://build.opensuse.org/public/build/openSUSE:Containers:Leap:15.4/containers/x86_64/opensuse-leap-image:docker",
maintenance_release=True), # noqa: E501
@@ -396,6 +386,16 @@
},
'publisher': DockerImagePublisherRegistry(drc_leap, "latest",
["15.4", "15"]),
},
+ 'leap-15.5': {
+ 'fetchers': {
+ 'x86_64':
DockerImageFetcherOBS(url="https://build.opensuse.org/public/build/openSUSE:Containers:Leap:15.5/containers/x86_64/opensuse-leap-image:docker",
maintenance_release=True), # noqa: E501
+ 'aarch64':
DockerImageFetcherOBS(url="https://build.opensuse.org/public/build/openSUSE:Containers:Leap:15.5/containers/aarch64/opensuse-leap-image:docker",
maintenance_release=True), # noqa: E501
+ 'armv7l':
DockerImageFetcherOBS(url="https://build.opensuse.org/public/build/openSUSE:Containers:Leap:15.5/containers_armv7/armv7l/opensuse-leap-image:docker",
maintenance_release=True), # noqa: E501
+ 'ppc64le':
DockerImageFetcherOBS(url="https://build.opensuse.org/public/build/openSUSE:Containers:Leap:15.5/containers/ppc64le/opensuse-leap-image:docker",
maintenance_release=True), # noqa: E501
+ 's390x':
DockerImageFetcherOBS(url="https://build.opensuse.org/public/build/openSUSE:Containers:Leap:15.5/containers/s390x/opensuse-leap-image:docker",
maintenance_release=True), # noqa: E501
+ },
+ 'publisher': DockerImagePublisherRegistry(drc_leap, "15.5"),
+ },
}
# Parse args after defining the config - the available distros are included
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20230329.af36a03/gocd/sp.target.gocd.yaml
new/openSUSE-release-tools-20230420.372c67d/gocd/sp.target.gocd.yaml
--- old/openSUSE-release-tools-20230329.af36a03/gocd/sp.target.gocd.yaml
2023-03-29 11:02:25.000000000 +0200
+++ new/openSUSE-release-tools-20230420.372c67d/gocd/sp.target.gocd.yaml
2023-04-20 08:12:22.000000000 +0200
@@ -49,7 +49,7 @@
if [ -z "${PRODUCTS}" ]; then
echo "[WARNNING] There is no cloud image to be released"
fi
- for product in kiwi-templates-Minimal 000product $PRODUCTS; do
+ for product in kiwi-templates-Minimal kiwi-templates-Minimal-s390x
000product $PRODUCTS; do
osc -A https://api.suse.de release SUSE:SLE-15-SP5:GA $product
done
sleep 600
@@ -203,7 +203,7 @@
done
osc -A https://api.suse.de release
--target-project=SUSE:SLE-15-SP5:GA:TEST --target-repository=containers -r
images SUSE:SLE-15-SP5:GA sles15-image
PRODUCTS=$(osc -A https://api.suse.de ls SUSE:SLE-15-SP5:GA
| grep "^SLES15-SP5" | grep -v release)
- for product in kiwi-templates-Minimal 000product $PRODUCTS;
do
+ for product in kiwi-templates-Minimal
kiwi-templates-Minimal-s390x 000product $PRODUCTS; do
osc -A https://api.suse.de release SUSE:SLE-15-SP5:GA
$product
done
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20230329.af36a03/metrics/access/ingest.php
new/openSUSE-release-tools-20230420.372c67d/metrics/access/ingest.php
--- old/openSUSE-release-tools-20230329.af36a03/metrics/access/ingest.php
2023-03-29 11:02:25.000000000 +0200
+++ new/openSUSE-release-tools-20230420.372c67d/metrics/access/ingest.php
2023-04-20 08:12:22.000000000 +0200
@@ -22,6 +22,8 @@
// Only interested in GET or HEAD requests, others are invalid.
if ($match[2] != 'GET' && $match[2] != 'HEAD') continue;
+ // Not interested on errors.
+ if ($match[4] >= '400') continue;
$total++;
// Attempt to determine for which product was the request.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20230329.af36a03/osclib/cleanup_rings.py
new/openSUSE-release-tools-20230420.372c67d/osclib/cleanup_rings.py
--- old/openSUSE-release-tools-20230329.af36a03/osclib/cleanup_rings.py
2023-03-29 11:02:25.000000000 +0200
+++ new/openSUSE-release-tools-20230420.372c67d/osclib/cleanup_rings.py
2023-04-20 08:12:22.000000000 +0200
@@ -29,6 +29,8 @@
'raspberrypi-firmware-config',
# Added manually to notice failures early
'vagrant',
+ # https://github.com/openSUSE/open-build-service/issues/14129
+ 'snobol4',
]
def perform(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20230329.af36a03/repo2fileprovides.py
new/openSUSE-release-tools-20230420.372c67d/repo2fileprovides.py
--- old/openSUSE-release-tools-20230329.af36a03/repo2fileprovides.py
1970-01-01 01:00:00.000000000 +0100
+++ new/openSUSE-release-tools-20230420.372c67d/repo2fileprovides.py
2023-04-20 08:12:22.000000000 +0200
@@ -0,0 +1,57 @@
+#!/usr/bin/python3
+import gzip
+import sys
+from collections import defaultdict
+from lxml import etree
+
+if len(sys.argv) != 2:
+ print("Script to generate necessary FileProvides lines needed by OBS from
repo data.", file=sys.stderr)
+ print("Usage: repo2fileprovides.py primary.xml(.gz)", file=sys.stderr)
+ sys.exit(1)
+
+repofilename = sys.argv[1]
+xmlfile = open(repofilename, 'rb')
+if repofilename.endswith('.gz'):
+ xmlfile = gzip.GzipFile(fileobj=xmlfile)
+
+NS = {'md': 'http://linux.duke.edu/metadata/common',
+ 'rpm': 'http://linux.duke.edu/metadata/rpm'}
+repodata = etree.parse(xmlfile)
+
+# Step 1: Collect all provided files
+# Set of all provided files
+providedfiles = set()
+# Map of filename -> set of packages providing it
+fileprovides = defaultdict(set)
+
+for pkg in repodata.iterfind('/md:package', namespaces=NS):
+ pkgname = pkg.xpath('./md:name/text()', namespaces=NS)[0]
+ # Implicit file provides
+ for f in pkg.iterfind('./md:format/md:file', namespaces=NS):
+ filename = f.text
+ fileprovides[filename].add(pkgname)
+ providedfiles.add(filename)
+
+ # Explicit file provides
+ for filename in
pkg.xpath("./md:format/rpm:provides/rpm:entry[starts-with(@name, '/')]/@name",
+ namespaces=NS):
+ fileprovides[filename].add(pkgname)
+ providedfiles.add(filename)
+
+# Step 2: Collect all required files
+requiredfiles =
set(repodata.xpath("/md:metadata/md:package/md:format/rpm:requires/rpm:entry[starts-with(@name,
'/')]/@name",
+ namespaces=NS))
+
+# Split up boolean deps
+booleandeps =
set(repodata.xpath("/md:metadata/md:package/md:format/rpm:requires/rpm:entry"
+ "[starts-with(@name, '(') and contains(@name,
'/')]/@name",
+ namespaces=NS))
+for dep in booleandeps:
+ for capability in dep.replace('(', ' ').replace(')', ' ').split():
+ if capability[0] == '/':
+ requiredfiles.add(capability)
+
+# Step 3: For all provided files which are also required, print "FileProvides"
+# lines
+for filename in sorted(providedfiles.intersection(requiredfiles)):
+ print(f"FileProvides: {filename} {'
'.join(sorted(fileprovides[filename]))}")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20230329.af36a03/staging-installcheck.py
new/openSUSE-release-tools-20230420.372c67d/staging-installcheck.py
--- old/openSUSE-release-tools-20230329.af36a03/staging-installcheck.py
2023-03-29 11:02:25.000000000 +0200
+++ new/openSUSE-release-tools-20230420.372c67d/staging-installcheck.py
2023-04-20 08:12:22.000000000 +0200
@@ -49,6 +49,17 @@
def check_required_by(self, fileinfo, provides, requiredby,
built_binaries, comments):
if requiredby.get('name') in built_binaries:
return True
+
+ result = True
+
+ # In some cases (boolean deps?) it's possible that fileinfo_ext for A
+ # shows that A provides cap needed by B, but fileinfo_ext for B does
+ # not list cap or A at all... In that case better error out and ask for
+ # human intervention.
+ dep_found = False
+ # In case the dep was not found, give a hint what OBS might have meant.
+ possible_dep = None
+
# extract >= and the like
provide = provides.get('dep')
provide = provide.split(' ')[0]
@@ -57,18 +68,44 @@
url = api.makeurl(['build', api.project, api.cmain_repo, 'x86_64',
'_repository', requiredby.get('name') + '.rpm'],
{'view': 'fileinfo_ext'})
reverse_fileinfo = ET.parse(osc.core.http_GET(url)).getroot()
+
for require in reverse_fileinfo.findall('requires_ext'):
# extract >= and the like here too
dep = require.get('dep').split(' ')[0]
if dep != provide:
+ if provide in require.get('dep'):
+ possible_dep = require.get('dep')
continue
+ dep_found = True
+ # Whether this is provided by something being deleted
+ provided_found = False
+ # Whether this is provided by something not being deleted
+ alternative_found = False
for provided_by in require.findall('providedby'):
if provided_by.get('name') in built_binaries:
- continue
- comments.append(' also provided by {} ->
ignoring'.format(provided_by.get('name')))
- return True
- comments.append('Error: missing alternative provides for
{}'.format(provide))
- return False
+ provided_found = True
+ else:
+ comments.append(' also provided by {} ->
ignoring'.format(provided_by.get('name')))
+ alternative_found = True
+
+ if not alternative_found:
+ result = False
+
+ if not provided_found:
+ comments.append(" OBS doesn't see this in the reverse
resolution though. Not sure what to do.")
+ result = False
+
+ if not dep_found:
+ comments.append(" OBS doesn't see this dep in reverse though. Not
sure what to do.")
+ if possible_dep is not None:
+ comments.append(f' Might be required by {possible_dep}')
+ return False
+
+ if result:
+ return True
+ else:
+ comments.append('Error: missing alternative provides for
{}'.format(provide))
+ return False
@memoize(session=True)
def pkg_with_multibuild_flavors(self, package):
++++++ openSUSE-release-tools.obsinfo ++++++
--- /var/tmp/diff_new_pack.0cZZUg/_old 2023-04-27 20:02:46.346573804 +0200
+++ /var/tmp/diff_new_pack.0cZZUg/_new 2023-04-27 20:02:46.350573827 +0200
@@ -1,5 +1,5 @@
name: openSUSE-release-tools
-version: 20230329.af36a03
-mtime: 1680080545
-commit: af36a030b3d2e34f24828caf849c463ffeb2db14
+version: 20230420.372c67d
+mtime: 1681971142
+commit: 372c67d51607fb0d27e0b2413be79e1ffdabc527