Hello community,
here is the log from the commit of package openSUSE-release-tools for
openSUSE:Factory checked in at 2019-02-08 12:13:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openSUSE-release-tools (Old)
and /work/SRC/openSUSE:Factory/.openSUSE-release-tools.new.28833 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openSUSE-release-tools"
Fri Feb 8 12:13:02 2019 rev:163 rq:672351 version:20190207.b99d841
Changes:
--------
---
/work/SRC/openSUSE:Factory/openSUSE-release-tools/openSUSE-release-tools.changes
2019-01-28 20:49:19.853849099 +0100
+++
/work/SRC/openSUSE:Factory/.openSUSE-release-tools.new.28833/openSUSE-release-tools.changes
2019-02-08 12:13:30.657466849 +0100
@@ -1,0 +2,46 @@
+Thu Feb 07 05:50:13 UTC 2019 - [email protected]
+
+- Update to version 20190207.b99d841:
+ * Fix arch-whitelist to apply to staging projects
+ * Filter the repositories_pairs depending on the target archs
+ * Don't try to filter staging archs
+ * Calculcate the whitelist for letter stagings purely on config
+ * Expand all repositories but ignore archs with 404
+ * repo_checker: remove explicit target project repository layer for letter
stagings.
+ * repo_checker: provide repo_checker-binary-whitelist-ring config option.
+
+-------------------------------------------------------------------
+Wed Feb 06 04:45:10 UTC 2019 - [email protected]
+
+- Update to version 20190206.61c0f67:
+ * Map i686 packages to i586 to find kernel-pae-devel
+
+-------------------------------------------------------------------
+Tue Feb 05 07:30:47 UTC 2019 - [email protected]
+
+- Update to version 20190205.ee7cdc2:
+ * ReviewBot: catch exception for adding devel project review
+ * conf: use backports-reviewers for backports
+
+-------------------------------------------------------------------
+Wed Jan 30 15:58:44 UTC 2019 - [email protected]
+
+- Update to version 20190130.7d1fa2f:
+ * Fix E117: over-indented (flake8 update on TW)
+ * Fix format in rabbitmq debug
+
+-------------------------------------------------------------------
+Wed Jan 30 15:08:47 UTC 2019 - [email protected]
+
+- Update to version 20190130.f66fd52:
+ * fix incompatible repo id tagging for openSUSE products
+
+-------------------------------------------------------------------
+Sat Jan 26 17:26:37 UTC 2019 - [email protected]
+
+- Update to version 20190126.da4ba5d:
+ * Support connecting suse in PubSubConsumer
+ * Only use amqp_prefix as config
+ * Reduce debug level for channel close
+
+-------------------------------------------------------------------
@@ -169 +215 @@
-Tue Nov 27 05:34:07 UTC 2018 - [email protected]
+Tue Nov 27 05:34:07 UTC 2018 - [email protected]
@@ -232 +278 @@
-Wed Nov 21 09:07:22 UTC 2018 - [email protected]
+Wed Nov 21 09:07:22 UTC 2018 - [email protected]
Old:
----
openSUSE-release-tools-20190124.535533d.obscpio
New:
----
openSUSE-release-tools-20190207.b99d841.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ openSUSE-release-tools.spec ++++++
--- /var/tmp/diff_new_pack.aRGXUz/_old 2019-02-08 12:13:31.389466575 +0100
+++ /var/tmp/diff_new_pack.aRGXUz/_new 2019-02-08 12:13:31.397466572 +0100
@@ -20,7 +20,7 @@
%define source_dir openSUSE-release-tools
%define announcer_filename factory-package-news
Name: openSUSE-release-tools
-Version: 20190124.535533d
+Version: 20190207.b99d841
Release: 0
Summary: Tools to aid in staging and release work for openSUSE/SUSE
License: GPL-2.0-or-later AND MIT
++++++ _service ++++++
--- /var/tmp/diff_new_pack.aRGXUz/_old 2019-02-08 12:13:31.433466559 +0100
+++ /var/tmp/diff_new_pack.aRGXUz/_new 2019-02-08 12:13:31.433466559 +0100
@@ -6,6 +6,7 @@
<param name="changesgenerate">enable</param>
<param name="extract">dist/package/openSUSE-release-tools.spec</param>
<param name="filename">openSUSE-release-tools</param>
+ <param name="changesauthor">[email protected]</param>
</service>
<service name="set_version" mode="disabled" />
<service name="tar" mode="buildtime" />
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.aRGXUz/_old 2019-02-08 12:13:31.453466551 +0100
+++ /var/tmp/diff_new_pack.aRGXUz/_new 2019-02-08 12:13:31.453466551 +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">be05e42da82321679b12cfd898b0b239740e3434</param>
+ <param
name="changesrevision">5d70263e89c8580d57bff08f1afdad3b286f2c32</param>
</service>
-</servicedata>
+</servicedata>
\ No newline at end of file
++++++ openSUSE-release-tools-20190124.535533d.obscpio ->
openSUSE-release-tools-20190207.b99d841.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20190124.535533d/CreatePackageDescr.pm
new/openSUSE-release-tools-20190207.b99d841/CreatePackageDescr.pm
--- old/openSUSE-release-tools-20190124.535533d/CreatePackageDescr.pm
2019-01-24 12:39:50.000000000 +0100
+++ new/openSUSE-release-tools-20190207.b99d841/CreatePackageDescr.pm
2019-02-07 06:43:02.000000000 +0100
@@ -69,8 +69,11 @@
Build::Rpm::add_flagsvers(\%qq, 5052, 5054, 5053) if $qq{5052}; #
supplements
Build::Rpm::add_flagsvers(\%qq, 5055, 5057, 5056) if $qq{5055}; # enhances
+ $arch = $qq{'ARCH'}[0];
+ # some packages are more equal than others
+ $arch = 'i586' if $arch eq 'i686';
$out .= sprintf( "=Pkg: %s %s %s %s\n",
- $name, $qq{'VERSION'}[0], $qq{'RELEASE'}[0], $qq{'ARCH'}[0] );
+ $name, $qq{'VERSION'}[0], $qq{'RELEASE'}[0], $arch );
$out .= "+Flx:\n";
my @modes = @{ $qq{1030} || [] };
my @basenames = @{ $qq{BASENAMES} || [] };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20190124.535533d/PubSubConsumer.py
new/openSUSE-release-tools-20190207.b99d841/PubSubConsumer.py
--- old/openSUSE-release-tools-20190124.535533d/PubSubConsumer.py
2019-01-24 12:39:50.000000000 +0100
+++ new/openSUSE-release-tools-20190207.b99d841/PubSubConsumer.py
2019-02-07 06:43:02.000000000 +0100
@@ -1,6 +1,6 @@
import logging
import pika
-
+import sys
class PubSubConsumer(object):
"""This is an example consumer that will handle unexpected interactions
@@ -16,7 +16,7 @@
"""
- def __init__(self, amqp_url, logger):
+ def __init__(self, amqp_prefix, logger):
"""Create a new instance of the consumer class, passing in the AMQP
URL used to connect to RabbitMQ.
@@ -27,7 +27,7 @@
self._channel = None
self._closing = False
self._consumer_tag = None
- self._url = amqp_url
+ self._prefix = amqp_prefix
self.logger = logger
def connect(self):
@@ -38,8 +38,15 @@
:rtype: pika.SelectConnection
"""
- self.logger.info('Connecting to %s', self._url)
- return pika.SelectConnection(pika.URLParameters(self._url),
+ self.logger.info('Connecting to %s', self._prefix)
+ account = 'opensuse'
+ server = 'rabbit.opensuse.org'
+ if self._prefix == 'suse':
+ account = 'suse'
+ server = 'rabbit.suse.de'
+ credentials = pika.PlainCredentials(account, account)
+ parameters = pika.ConnectionParameters(server, 5671, '/', credentials,
ssl=True, socket_timeout=10)
+ return pika.SelectConnection(parameters,
self.on_connection_open,
stop_ioloop_on_close=False)
@@ -122,7 +129,7 @@
:param str reply_text: The text reason the channel was closed
"""
- self.logger.warning('Channel %i was closed: (%s) %s',
+ self.logger.info('Channel %i was closed: (%s) %s',
channel, reply_code, reply_text)
self._connection.close()
@@ -321,8 +328,10 @@
'-35s %(lineno) -5d: %(message)s')
logging.basicConfig(level=logging.INFO, format=LOG_FORMAT)
- example = PubSubConsumer('amqps://opensuse:[email protected]',
- logging.getLogger(__name__))
+ amqp_prefix = 'opensuse'
+ if len(sys.argv) > 1:
+ amqp_prefix = sys.argv[1]
+ example = PubSubConsumer(amqp_prefix, logging.getLogger(__name__))
try:
example.run()
except KeyboardInterrupt:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/openSUSE-release-tools-20190124.535533d/ReviewBot.py
new/openSUSE-release-tools-20190207.b99d841/ReviewBot.py
--- old/openSUSE-release-tools-20190124.535533d/ReviewBot.py 2019-01-24
12:39:50.000000000 +0100
+++ new/openSUSE-release-tools-20190207.b99d841/ReviewBot.py 2019-02-07
06:43:02.000000000 +0100
@@ -309,7 +309,15 @@
self.logger.warning('no devel project found for
{}/{}'.format(project, package))
return False
- self.add_review(request, by_project=devel_project,
by_package=devel_package, msg=message)
+ try:
+ self.add_review(request, by_project=devel_project,
by_package=devel_package, msg=message)
+ except HTTPError as e:
+ # could happen when the bot is not actually a reviewer and has no
permissions
+ if e.code != 403:
+ raise e
+ self.logger.error('failed to add devel project review for
{}/{}'.format(devel_project, devel_package))
+ return False
+
return True
def devel_project_review_ensure(self, request, project, package,
message='submitter not devel maintainer'):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20190124.535533d/build-fail-reminder.py
new/openSUSE-release-tools-20190207.b99d841/build-fail-reminder.py
--- old/openSUSE-release-tools-20190124.535533d/build-fail-reminder.py
2019-01-24 12:39:50.000000000 +0100
+++ new/openSUSE-release-tools-20190207.b99d841/build-fail-reminder.py
2019-02-07 06:43:02.000000000 +0100
@@ -34,7 +34,7 @@
return '{} {} {} {}'.format(self.firstfail, self.reminded, self.bug,
self.remindCount)
def jdefault(o):
- return o.__dict__
+ return o.__dict__
MAIL_TEMPLATES = ( u"""Dear %(recepient)s,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/openSUSE-release-tools-20190124.535533d/deptool.py
new/openSUSE-release-tools-20190207.b99d841/deptool.py
--- old/openSUSE-release-tools-20190124.535533d/deptool.py 2019-01-24
12:39:50.000000000 +0100
+++ new/openSUSE-release-tools-20190207.b99d841/deptool.py 2019-02-07
06:43:02.000000000 +0100
@@ -301,22 +301,22 @@
logger.error("%s not found", n)
continue
for s in sel.solvables():
- prov = s.lookup_deparray(solv.SOLVABLE_PROVIDES, 0)
- if not prov:
- logger.error("%s doesn't provide anything")
+ prov = s.lookup_deparray(solv.SOLVABLE_PROVIDES, 0)
+ if not prov:
+ logger.error("%s doesn't provide anything")
+ continue
+ for p in prov:
+ sel = self.pool.matchdepid(p,
solv.Selection.SELECTION_REL | solv.Selection.SELECTION_FLAT, kindid)
+ if sel.isempty():
+ logger.debug('nothing %s %s', kind.lower(), p)
continue
- for p in prov:
- sel = self.pool.matchdepid(p,
solv.Selection.SELECTION_REL | solv.Selection.SELECTION_FLAT, kindid)
- if sel.isempty():
- logger.debug('nothing %s %s',
kind.lower(), p)
+ for r in sel.solvables():
+ if kindid == solv.SOLVABLE_PROVIDES and r == s:
continue
- for r in sel.solvables():
- if kindid == solv.SOLVABLE_PROVIDES and r
== s:
- continue
- if not kindprinted:
- print(kind)
- kindprinted = True
- print(' {}: {}-{}@{}'.format(p, r.name,
r.evr, r.arch))
+ if not kindprinted:
+ print(kind)
+ kindprinted = True
+ print(' {}: {}-{}@{}'.format(p, r.name,
r.evr, r.arch))
@cmdln.option("-r", "--repo", dest="repo", action="append",
help="repo to use")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/openSUSE-release-tools-20190124.535533d/leaper.py
new/openSUSE-release-tools-20190207.b99d841/leaper.py
--- old/openSUSE-release-tools-20190124.535533d/leaper.py 2019-01-24
12:39:50.000000000 +0100
+++ new/openSUSE-release-tools-20190207.b99d841/leaper.py 2019-02-07
06:43:02.000000000 +0100
@@ -443,9 +443,9 @@
# disabled for reference. Needed again for 16.0 probably
if False and self.source_in_factory and
target_project.startswith('openSUSE:Leap:15.0') \
and self.is_package_in_project('openSUSE:Leap:42.3'+subprj,
package):
- self.logger.info('package was in 42.3')
- self.do_check_maintainer_review = False
- return True
+ self.logger.info('package was in 42.3')
+ self.do_check_maintainer_review = False
+ return True
is_fine_if_factory = True
self.needs_release_manager = True
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20190124.535533d/osclib/conf.py
new/openSUSE-release-tools-20190207.b99d841/osclib/conf.py
--- old/openSUSE-release-tools-20190124.535533d/osclib/conf.py 2019-01-24
12:39:50.000000000 +0100
+++ new/openSUSE-release-tools-20190207.b99d841/osclib/conf.py 2019-02-07
06:43:02.000000000 +0100
@@ -132,7 +132,7 @@
'lock': 'openSUSE:%(project)s:Staging',
'lock-ns': 'openSUSE',
'onlyadi': True,
- 'leaper-override-group': 'leap-reviewers',
+ 'leaper-override-group': 'backports-reviewers',
'review-team': 'opensuse-review-team',
'legal-review-group': 'legal-auto',
# review-team optionally added by leaper.py.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20190124.535533d/osclib/core.py
new/openSUSE-release-tools-20190207.b99d841/osclib/core.py
--- old/openSUSE-release-tools-20190124.535533d/osclib/core.py 2019-01-24
12:39:50.000000000 +0100
+++ new/openSUSE-release-tools-20190207.b99d841/osclib/core.py 2019-02-07
06:43:02.000000000 +0100
@@ -393,7 +393,13 @@
# just checking the mtimes of the repository's binaries
url = makeurl(apiurl, ['build', project, repository, arch, '_repository'])
from osclib.util import sha1_short
- return sha1_short(http_GET(url).read())
+ try:
+ return sha1_short(http_GET(url).read())
+ except HTTPError as e:
+ # e.g. staging projects inherit the project config from 'ports'
repository.
+ # but that repository does not contain the archs we want, as such it
has no state
+ if e.code != 404:
+ raise e
def repository_state(apiurl, project, repository, archs=[]):
if not len(archs):
@@ -403,7 +409,9 @@
# binaries published in repository. As such request binary list and hash.
combined_state = []
for arch in archs:
- combined_state.append(repository_arch_state(apiurl, project,
repository, arch))
+ state = repository_arch_state(apiurl, project, repository, arch)
+ if state:
+ combined_state.append(state)
from osclib.util import sha1_short
return sha1_short(combined_state)
@@ -411,7 +419,9 @@
states = []
for project, repository in repository_pairs:
- states.append(repository_state(apiurl, project, repository, archs))
+ state = repository_state(apiurl, project, repository, archs)
+ if state:
+ states.append(state)
return states
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20190124.535533d/pkglistgen/cli.py
new/openSUSE-release-tools-20190207.b99d841/pkglistgen/cli.py
--- old/openSUSE-release-tools-20190124.535533d/pkglistgen/cli.py
2019-01-24 12:39:50.000000000 +0100
+++ new/openSUSE-release-tools-20190207.b99d841/pkglistgen/cli.py
2019-02-07 06:43:02.000000000 +0100
@@ -77,9 +77,12 @@
main_repo = target_config['main-repo']
+ # used by product converter
+ # these needs to be kept in sync with OBS config
if apiurl.find('suse.de') > 0:
- # used by product converter
os.environ['OBS_NAME'] = 'build.suse.de'
+ if apiurl.find('opensuse.org') > 0:
+ os.environ['OBS_NAME'] = 'build.opensuse.org'
# special case for all
if opts.scope == ['all']:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20190124.535533d/rabbit-openqa.py
new/openSUSE-release-tools-20190207.b99d841/rabbit-openqa.py
--- old/openSUSE-release-tools-20190124.535533d/rabbit-openqa.py
2019-01-24 12:39:50.000000000 +0100
+++ new/openSUSE-release-tools-20190207.b99d841/rabbit-openqa.py
2019-02-07 06:43:02.000000000 +0100
@@ -160,8 +160,8 @@
class Listener(PubSubConsumer):
- def __init__(self, amqp_prefix, amqp_url, openqa_url):
- super(Listener, self).__init__(amqp_url, logging.getLogger(__name__))
+ def __init__(self, amqp_prefix, openqa_url):
+ super(Listener, self).__init__(amqp_prefix,
logging.getLogger(__name__))
self.projects = []
self.amqp_prefix = amqp_prefix
self.openqa_url = openqa_url
@@ -214,7 +214,7 @@
p.check_published_repo(str(payload['project']),
str(payload['repo']), str(payload['buildid']))
def on_openqa_job(self, iso):
- self.logger.debug('openqa_job_change', iso)
+ self.logger.debug('openqa_job_change %s', iso)
for p in self.projects:
p.openqa_job_change(iso)
@@ -249,16 +249,14 @@
if apiurl.endswith('suse.de'):
amqp_prefix = 'suse'
- amqp_url = "amqps://suse:[email protected]"
openqa_url = 'https://openqa.suse.de'
else:
amqp_prefix = 'opensuse'
- amqp_url = "amqps://opensuse:[email protected]"
openqa_url = 'https://openqa.opensuse.org'
logging.basicConfig(level=logging.INFO)
- l = Listener(amqp_prefix, amqp_url, openqa_url)
+ l = Listener(amqp_prefix, openqa_url)
url = makeurl(apiurl, ['search', 'project', 'id'], {'match':
'attribute/@name="OSRT:OpenQAMapping"'})
f = http_GET(url)
root = ET.parse(f).getroot()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/openSUSE-release-tools-20190124.535533d/repo_checker.py
new/openSUSE-release-tools-20190207.b99d841/repo_checker.py
--- old/openSUSE-release-tools-20190124.535533d/repo_checker.py 2019-01-24
12:39:50.000000000 +0100
+++ new/openSUSE-release-tools-20190207.b99d841/repo_checker.py 2019-02-07
06:43:02.000000000 +0100
@@ -29,6 +29,7 @@
from osclib.core import repository_path_search
from osclib.core import repository_path_expand
from osclib.core import repositories_states
+from osclib.core import repository_arch_state
from osclib.core import repositories_published
from osclib.core import target_archs
from osclib.cycle import CycleDetector
@@ -63,9 +64,12 @@
self.logger.error(ERROR_REPO_SPECIFIED.format(project))
return
+ config = Config.get(self.apiurl, project)
+ arch_whitelist = config.get('repo_checker-arch-whitelist')
+
repository_pairs = repository_path_expand(self.apiurl, project,
repository)
state_hash = self.repository_state(repository_pairs, False)
- self.repository_check(repository_pairs, state_hash, False,
bool(post_comments))
+ self.repository_check(repository_pairs, state_hash, False,
bool(post_comments), arch_whitelist=arch_whitelist)
def package_comments(self, project, repository):
self.logger.info('{} package
comments'.format(len(self.package_results)))
@@ -106,26 +110,16 @@
self.comment_write(state='seen', result=reference,
bot_name_suffix=bot_name_suffix,
project=comment_project,
package=comment_package, message=message)
- def target_archs(self, project, repository):
+ def target_archs(self, project, repository, arch_whitelist=None):
archs = target_archs(self.apiurl, project, repository)
# Check for arch whitelist and use intersection.
- whitelist = Config.get(self.apiurl,
project).get('repo_checker-arch-whitelist')
- if whitelist:
- archs = list(set(whitelist.split(' ')).intersection(set(archs)))
+ if arch_whitelist:
+ archs = list(set(arch_whitelist.split('
')).intersection(set(archs)))
# Trick to prioritize x86_64.
return sorted(archs, reverse=True)
- @memoize(session=True)
- def target_archs_from_prairs(self, repository_pairs, simulate_merge):
- if simulate_merge:
- # Restrict top layer archs to the whitelisted archs from merge
layer.
- return set(target_archs(self.apiurl, repository_pairs[0][0],
repository_pairs[0][1])).intersection(
- set(self.target_archs(repository_pairs[1][0],
repository_pairs[1][1])))
-
- return self.target_archs(repository_pairs[0][0],
repository_pairs[0][1])
-
@memoize(ttl=60, session=True, add_invalidate=True)
def mirror(self, project, repository, arch):
"""Call bs_mirrorfull script to mirror packages."""
@@ -357,7 +351,7 @@
@memoize(ttl=60, session=True)
def repository_state(self, repository_pairs, simulate_merge):
- archs = self.target_archs_from_prairs(repository_pairs, simulate_merge)
+ archs = self.target_archs(repository_pairs[0][0],
repository_pairs[0][1])
states = repositories_states(self.apiurl, repository_pairs, archs)
if simulate_merge:
@@ -381,13 +375,25 @@
return None
@memoize(session=True)
- def repository_check(self, repository_pairs, state_hash, simulate_merge,
post_comments=False):
+ def repository_check(self, repository_pairs, state_hash, simulate_merge,
whitelist=None, arch_whitelist=None, post_comments=False):
comment = []
project, repository = repository_pairs[0]
self.logger.info('checking {}/{}@{}[{}]'.format(
project, repository, state_hash, len(repository_pairs)))
- archs = self.target_archs_from_prairs(repository_pairs, simulate_merge)
+ archs = self.target_archs(project, repository, arch_whitelist)
+ new_pairs = []
+ for pair in repository_pairs:
+ has_all = True
+ for arch in archs:
+ if not repository_arch_state(self.apiurl, pair[0], pair[1],
arch):
+ has_all = False
+ break
+ # ignore repositories only inherited for config
+ if has_all:
+ new_pairs.append(pair)
+ repository_pairs = new_pairs
+
published = repositories_published(self.apiurl, repository_pairs,
archs)
if not self.force:
@@ -428,7 +434,8 @@
if simulate_merge:
ignore = self.simulated_merge_ignore(repository_pairs[0],
repository_pairs[1], arch)
- whitelist = self.binary_whitelist(repository_pairs[0],
repository_pairs[1], arch)
+ if not whitelist:
+ whitelist = self.binary_whitelist(repository_pairs[0],
repository_pairs[1], arch)
results = {
'cycle': self.cycle_check(repository_pairs[0],
repository_pairs[1], arch),
@@ -546,12 +553,7 @@
self.logger.info('{} not ready due to staging build
failure(s)'.format(request.reqid))
return None
- # Staging setup is convoluted and thus the repository setup does
not
- # contain a path to the target project. Instead the ports
repository
- # is used to import the target prjconf. As such the staging group
- # repository must be explicitly layered on top of target project.
- repository_pairs.append([stage_info['prj'], repository])
- repository_pairs.extend(repository_path_expand(self.apiurl,
action.tgt_project, repository))
+ repository_pairs.extend(repository_path_expand(self.apiurl,
stage_info['prj'], repository))
else:
# Find a repository which links to target project "main"
repository.
repository = repository_path_search(
@@ -569,8 +571,21 @@
if not isinstance(repository_pairs, list):
return repository_pairs
+ # use project_only results by default as reference
+ whitelist = None
+ config = Config.get(self.apiurl, action.tgt_project)
+ staging = config.get('staging')
+ arch_whitelist = config.get('repo_checker-arch-whitelist')
+ if staging:
+ api = self.staging_api(staging)
+ if not api.is_adi_project(repository_pairs[0][0]):
+ # For "leaky" ring packages in letter stagings, where the
+ # repository setup does not include the target project, that
are
+ # not intended to to have all run-time dependencies satisfied.
+ whitelist = config.get('repo_checker-binary-whitelist-ring',
'').split(' ')
+
state_hash = self.repository_state(repository_pairs, True)
- if not self.repository_check(repository_pairs, state_hash, True):
+ if not self.repository_check(repository_pairs, state_hash, True,
arch_whitelist=arch_whitelist, whitelist=whitelist):
return None
self.review_messages['accepted'] = 'cycle and install check passed'
++++++ openSUSE-release-tools.obsinfo ++++++
--- /var/tmp/diff_new_pack.aRGXUz/_old 2019-02-08 12:13:32.053466326 +0100
+++ /var/tmp/diff_new_pack.aRGXUz/_new 2019-02-08 12:13:32.057466326 +0100
@@ -1,5 +1,5 @@
name: openSUSE-release-tools
-version: 20190124.535533d
-mtime: 1548329990
-commit: 535533d62c27ea85d89ad417445b1cf01b229455
+version: 20190207.b99d841
+mtime: 1549518182
+commit: b99d841e96482efa1775eb6aaccf471814f29d70