Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package buildstream for openSUSE:Factory checked in at 2022-10-16 16:09:38 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/buildstream (Old) and /work/SRC/openSUSE:Factory/.buildstream.new.2275 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "buildstream" Sun Oct 16 16:09:38 2022 rev:24 rq:1011153 version:1.6.8 Changes: -------- --- /work/SRC/openSUSE:Factory/buildstream/buildstream.changes 2022-08-22 12:15:55.095144313 +0200 +++ /work/SRC/openSUSE:Factory/.buildstream.new.2275/buildstream.changes 2022-10-16 16:09:39.902817908 +0200 @@ -1,0 +2,11 @@ +Thu Oct 13 08:28:21 UTC 2022 - Bj??rn Lie <bjorn....@gmail.com> + +- Update to version 1.6.8: + + Only test remote CAS push capabilities if push is enabled. This + improves compatibility with new grpcio releases. + + Dummy sandbox for checking out from dirrefernt arches. Ability + to check out build artifacts with incompatible arch assuming no + commands need to be run. + + Backport regex flags fix to support newer versions of Python. + +------------------------------------------------------------------- Old: ---- buildstream-1.6.7.tar.gz New: ---- buildstream-1.6.8.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ buildstream.spec ++++++ --- /var/tmp/diff_new_pack.4PoT9x/_old 2022-10-16 16:09:40.686819747 +0200 +++ /var/tmp/diff_new_pack.4PoT9x/_new 2022-10-16 16:09:40.694819766 +0200 @@ -17,7 +17,7 @@ Name: buildstream -Version: 1.6.7 +Version: 1.6.8 Release: 0 Summary: A framework for modelling build pipelines in YAML License: LGPL-2.1-or-later ++++++ buildstream-1.6.7.tar.gz -> buildstream-1.6.8.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/buildstream-1.6.7/NEWS new/buildstream-1.6.8/NEWS --- old/buildstream-1.6.7/NEWS 2022-08-11 15:43:09.000000000 +0200 +++ new/buildstream-1.6.8/NEWS 2022-10-12 17:13:38.000000000 +0200 @@ -1,4 +1,15 @@ ================= +buildstream 1.6.8 +================= + + o Only test remote CAS push capabilities if push is enabled. + This improves compatibility with new grpcio releases. + o Dummy sandbox for checking out from dirrefernt arches. + Ability to check out build artifacts with incompatible arch + assuming no commands need to be run. + o Backport regex flags fix to support newer versions of Python + +================= buildstream 1.6.7 ================= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/buildstream-1.6.7/README.rst new/buildstream-1.6.8/README.rst --- old/buildstream-1.6.7/README.rst 2022-08-11 15:43:09.000000000 +0200 +++ new/buildstream-1.6.8/README.rst 2022-10-12 17:13:38.000000000 +0200 @@ -1,11 +1,8 @@ About ----- -.. image:: https://gitlab.com/BuildStream/buildstream/badges/master/pipeline.svg - :target: https://gitlab.com/BuildStream/buildstream/commits/master - -.. image:: https://gitlab.com/BuildStream/buildstream/badges/master/coverage.svg?job=coverage - :target: https://gitlab.com/BuildStream/buildstream/commits/master - +.. image:: https://img.shields.io/github/workflow/status/apache/buildstream/PR%20Checks/bst-1 + :alt: GitHub Workflow Status + :target: https://github.com/apache/buildstream/actions/workflows/ci.yml?query=branch%3Abst-1 What is BuildStream? ==================== diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/buildstream-1.6.7/buildstream/_artifactcache/cascache.py new/buildstream-1.6.8/buildstream/_artifactcache/cascache.py --- old/buildstream-1.6.7/buildstream/_artifactcache/cascache.py 2022-08-11 15:43:09.000000000 +0200 +++ new/buildstream-1.6.8/buildstream/_artifactcache/cascache.py 2022-10-12 17:13:38.000000000 +0200 @@ -1118,19 +1118,6 @@ if e.code() != grpc.StatusCode.UNIMPLEMENTED: raise - # Check whether the server supports BatchUpdateBlobs() - self.batch_update_supported = False - try: - request = remote_execution_pb2.BatchUpdateBlobsRequest() - for attempt in _retry(): - with attempt: - response = self.cas.BatchUpdateBlobs(request) - self.batch_update_supported = True - except grpc.RpcError as e: - if (e.code() != grpc.StatusCode.UNIMPLEMENTED and - e.code() != grpc.StatusCode.PERMISSION_DENIED): - raise - self.asset_fetch_supported = False try: request = remote_asset_pb2.FetchDirectoryRequest() @@ -1144,18 +1131,35 @@ elif e.code() != grpc.StatusCode.UNIMPLEMENTED: raise + self.batch_update_supported = False self.asset_push_supported = False - try: - request = remote_asset_pb2.PushDirectoryRequest() - for attempt in _retry(): - with attempt: - response = self.remote_asset_push.PushDirectory(request) - except grpc.RpcError as e: - if e.code() == grpc.StatusCode.INVALID_ARGUMENT: - # Expected error as the request doesn't specify any URIs. - self.asset_push_supported = True - elif e.code() != grpc.StatusCode.UNIMPLEMENTED: - raise + + if self.spec.push: + # Check whether the server supports BatchUpdateBlobs() + try: + request = remote_execution_pb2.BatchUpdateBlobsRequest() + for attempt in _retry(): + with attempt: + response = self.cas.BatchUpdateBlobs(request) + self.batch_update_supported = True + except grpc.RpcError as e: + if (e.code() != grpc.StatusCode.UNIMPLEMENTED and + e.code() != grpc.StatusCode.PERMISSION_DENIED): + raise + + # Check whether the server supports PushDirectory() + try: + request = remote_asset_pb2.PushDirectoryRequest() + for attempt in _retry(): + with attempt: + response = self.remote_asset_push.PushDirectory(request) + except grpc.RpcError as e: + if e.code() == grpc.StatusCode.INVALID_ARGUMENT: + # Expected error as the request doesn't specify any URIs. + self.asset_push_supported = True + elif (e.code() != grpc.StatusCode.UNIMPLEMENTED and + e.code() != grpc.StatusCode.PERMISSION_DENIED): + raise self._initialized = True diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/buildstream-1.6.7/buildstream/_platform/linux.py new/buildstream-1.6.8/buildstream/_platform/linux.py --- old/buildstream-1.6.7/buildstream/_platform/linux.py 2022-08-11 15:43:09.000000000 +0200 +++ new/buildstream-1.6.8/buildstream/_platform/linux.py 2022-10-12 17:13:38.000000000 +0200 @@ -22,13 +22,21 @@ from .. import _site from .. import utils -from ..sandbox import SandboxBwrap +from ..sandbox import SandboxBwrap, SandboxDummy from . import Platform class Linux(Platform): + ARCHITECTURES = { + 'amd64': 'x86_64', + 'arm64': 'aarch64', + 'i386': 'i686', + 'armhf': 'armv7l', + 'ppc64el': 'ppc64le', + } + def __init__(self): super().__init__() @@ -43,6 +51,39 @@ # Inform the bubblewrap sandbox as to whether it can use user namespaces or not kwargs['user_ns_available'] = self._user_ns_available kwargs['die_with_parent_available'] = self._die_with_parent_available + kwargs['linux32'] = False + + host_os, _, _, _, host_arch = os.uname() + config = kwargs['config'] + + # We can't do builds for another host OS + if config.build_os != host_os: + return SandboxDummy("Configured and host OS don't match.", *args, **kwargs) + + if config.build_arch != host_arch: + try: + archtest = utils.get_host_tool('arch-test') + supported = subprocess.getoutput(archtest).splitlines() + supported_architectures = map(self.ARCHITECTURES.get, supported, supported) + except utils.ProgramNotFoundError: + supported_architectures = [] + if host_arch == "x86_64": + supported_architectures = ["i686"] + elif host_arch == "aarch64": + supported_architectures = ["armv7l"] + + if config.build_arch not in supported_architectures: + return SandboxDummy("Configured and host architecture don't match.", *args, **kwargs) + + if ((config.build_arch == "i686" and host_arch == "x86_64") or + (config.build_arch == "armv7l" and host_arch == "aarch64")): + # check whether linux32 is available + try: + utils.get_host_tool('linux32') + kwargs['linux32'] = True + except utils.ProgramNotFoundError: + return SandboxDummy("Configured and host architecture don't match.", *args, **kwargs) + return SandboxBwrap(*args, **kwargs) def check_sandbox_config(self, config): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/buildstream-1.6.7/buildstream/_version.py new/buildstream-1.6.8/buildstream/_version.py --- old/buildstream-1.6.7/buildstream/_version.py 2022-08-11 15:43:09.000000000 +0200 +++ new/buildstream-1.6.8/buildstream/_version.py 2022-10-12 17:13:38.000000000 +0200 @@ -24,9 +24,9 @@ # setup.py/versioneer.py will grep for the variable names, so they must # each be defined on a line of their own. _version.py will just call # get_keywords(). - git_refnames = " (tag: 1.6.7)" - git_full = "e70e11235c68c3b91f0867f877892df9a34c9bca" - git_date = "2022-08-11 22:43:09 +0900" + git_refnames = " (tag: 1.6.8, bst-1)" + git_full = "0f431178ffa5a6d3e385378660ba574f5f5fb17e" + git_date = "2022-10-13 00:13:38 +0900" keywords = {"refnames": git_refnames, "full": git_full, "date": git_date} return keywords diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/buildstream-1.6.7/buildstream/sandbox/__init__.py new/buildstream-1.6.8/buildstream/sandbox/__init__.py --- old/buildstream-1.6.7/buildstream/sandbox/__init__.py 2022-08-11 15:43:09.000000000 +0200 +++ new/buildstream-1.6.8/buildstream/sandbox/__init__.py 2022-10-12 17:13:38.000000000 +0200 @@ -20,3 +20,4 @@ from .sandbox import Sandbox, SandboxFlags from ._sandboxchroot import SandboxChroot from ._sandboxbwrap import SandboxBwrap +from ._sandboxdummy import SandboxDummy diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/buildstream-1.6.7/buildstream/sandbox/_sandboxbwrap.py new/buildstream-1.6.8/buildstream/sandbox/_sandboxbwrap.py --- old/buildstream-1.6.7/buildstream/sandbox/_sandboxbwrap.py 2022-08-11 15:43:09.000000000 +0200 +++ new/buildstream-1.6.8/buildstream/sandbox/_sandboxbwrap.py 2022-10-12 17:13:38.000000000 +0200 @@ -49,50 +49,11 @@ '/dev/zero' ] - ARCHITECTURES = { - 'amd64': 'x86_64', - 'arm64': 'aarch64', - 'i386': 'i686', - 'armhf': 'armv7l', - 'ppc64el': 'ppc64le', - } - def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.user_ns_available = kwargs['user_ns_available'] self.die_with_parent_available = kwargs['die_with_parent_available'] - self._linux32 = False - - host_os, _, _, _, host_arch = os.uname() - config = self._get_config() - - # We can't do builds for another host OS - if config.build_os != host_os: - raise SandboxError("Configured and host OS don't match.") - - if config.build_arch != host_arch: - try: - archtest = utils.get_host_tool('arch-test') - supported = subprocess.getoutput(archtest).splitlines() - supported_architectures = map(self.ARCHITECTURES.get, supported, supported) - except utils.ProgramNotFoundError: - supported_architectures = [] - if host_arch == "x86_64": - supported_architectures = ["i686"] - elif host_arch == "aarch64": - supported_architectures = ["armv7l"] - - if config.build_arch not in supported_architectures: - raise SandboxError("Configured and host architecture don't match.") - - if ((config.build_arch == "i686" and host_arch == "x86_64") or - (config.build_arch == "armv7l" and host_arch == "aarch64")): - # check whether linux32 is available - try: - utils.get_host_tool('linux32') - self._linux32 = True - except utils.ProgramNotFoundError as e: - raise SandboxError("Configured and host architecture don't match.") from e + self._linux32 = kwargs['linux32'] def run(self, command, flags, *, cwd=None, env=None): stdout, stderr = self._get_output() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/buildstream-1.6.7/buildstream/sandbox/_sandboxdummy.py new/buildstream-1.6.8/buildstream/sandbox/_sandboxdummy.py --- old/buildstream-1.6.7/buildstream/sandbox/_sandboxdummy.py 1970-01-01 01:00:00.000000000 +0100 +++ new/buildstream-1.6.8/buildstream/sandbox/_sandboxdummy.py 2022-10-12 17:13:38.000000000 +0200 @@ -0,0 +1,15 @@ +from .._exceptions import SandboxError +from . import Sandbox + + +# SandboxDummy() +# +# Dummy sandbox to use on a different. +# +class SandboxDummy(Sandbox): + def __init__(self, reason, *args, **kwargs): + super().__init__(*args, **kwargs) + self._reason = reason + + def run(self, command, flags, *, cwd=None, env=None): + raise SandboxError(self._reason) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/buildstream-1.6.7/buildstream/utils.py new/buildstream-1.6.8/buildstream/utils.py --- old/buildstream-1.6.7/buildstream/utils.py 2022-08-11 15:43:09.000000000 +0200 +++ new/buildstream-1.6.8/buildstream/utils.py 2022-10-12 17:13:38.000000000 +0200 @@ -1138,7 +1138,7 @@ # def _glob2re(pat): i, n = 0, len(pat) - res = '' + res = '(?ms)' while i < n: c = pat[i] i = i + 1 @@ -1175,7 +1175,7 @@ res = '{}[{}]'.format(res, stuff) else: res = res + re.escape(c) - return res + r'\Z(?ms)' + return res + r'\Z' # _deduplicate()