D: [iurt_root_command] chroot Building target platforms: noarch Building for target noarch Installing /home/pterjan/rpmbuild/SRPMS/python-webunit-1.3.10-8.mga10.src.rpm Executing(%mkbuilddir): /bin/sh -e /home/pterjan/rpmbuild/tmp/rpm-tmp.uSuLzA + umask 022 + cd /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build + test -d /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build + /usr/bin/rm -rf /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build + /usr/bin/mkdir -p /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build + /usr/bin/mkdir -p /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build/SPECPARTS + RPM_EC=0 ++ jobs -p + exit 0 Executing(%prep): /bin/sh -e /home/pterjan/rpmbuild/tmp/rpm-tmp.KDZeYJ + umask 022 + cd /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build + '[' 1 -eq 1 ']' + '[' 1 -eq 1 ']' + '[' 1 -eq 1 ']' + cd /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build + rm -rf webunit-1.3.10 + /usr/lib/rpm/rpmuncompress -x /home/pterjan/rpmbuild/SOURCES/webunit-1.3.10.tar.gz + STATUS=0 + '[' 0 -ne 0 ']' + cd webunit-1.3.10 + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + chmod 644 CHANGES.txt README.txt + 2to3 -w . /usr/bin/2to3:3: DeprecationWarning: lib2to3 package is deprecated and may not be able to parse Python 3.10+ from lib2to3.main import main RefactoringTool: Skipping optional fixer: buffer RefactoringTool: Skipping optional fixer: idioms RefactoringTool: Skipping optional fixer: set_literal RefactoringTool: Skipping optional fixer: ws_comma RefactoringTool: No changes to ./setup.py RefactoringTool: No changes to ./demo/__init__.py RefactoringTool: No changes to ./demo/google.py RefactoringTool: No changes to ./demo/python_org.py RefactoringTool: Refactored ./webunit/HTMLParser.py RefactoringTool: Refactored ./webunit/IMGSucker.py RefactoringTool: Refactored ./webunit/SimpleDOM.py RefactoringTool: No changes to ./webunit/__init__.py RefactoringTool: Refactored ./webunit/config.py RefactoringTool: Refactored ./webunit/cookie.py --- ./webunit/HTMLParser.py (original) +++ ./webunit/HTMLParser.py (refactored) @@ -183,7 +183,7 @@ else: if i < n-1: raise HTMLParseError( - "invalid '<' construct: %s" % `rawdata[i:i+2]`, + "invalid '<' construct: %s" % repr(rawdata[i:i+2]), self.getpos()) k = -1 if k < 0: @@ -274,7 +274,7 @@ j = m.end() else: raise HTMLParseError( - "unexpected char in declaration: %s" % `rawdata[j]`, + "unexpected char in declaration: %s" % repr(rawdata[j]), self.getpos()) return -1 # incomplete @@ -330,7 +330,7 @@ else: offset = offset + len(self.__starttag_text) raise HTMLParseError("junk characters in start tag: %s" - % `rawdata[k:endpos][:20]`, + % repr(rawdata[k:endpos][:20]), (lineno, offset)) if end[-2:] == '/>': # XHTML-style empty tag: @@ -384,7 +384,7 @@ j = match.end() match = endtagfind.match(rawdata, i) # if not match: - raise HTMLParseError("bad end tag: %s" % `rawdata[i:j]`, + raise HTMLParseError("bad end tag: %s" % repr(rawdata[i:j]), self.getpos()) tag = match.group(1) self.handle_endtag(string.lower(tag)) --- ./webunit/IMGSucker.py (original) +++ ./webunit/IMGSucker.py (refactored) @@ -7,7 +7,7 @@ # # $Id$ -import htmllib, formatter, urlparse +import htmllib, formatter, urllib.parse class IMGSucker(htmllib.HTMLParser): '''Suck in all the images and linked stylesheets for an HTML page. @@ -67,10 +67,10 @@ newattributes = [] for name, value in attributes: if name == 'src': - url = urlparse.urljoin(self.base, value) + url = urllib.parse.urljoin(self.base, value) # TODO: figure the re-write path # newattributes.append((name, path)) - if not self.session.images.has_key(url): + if url not in self.session.images: self.session.images[url] = self.session.fetch(url) else: newattributes.append((name, value)) @@ -81,7 +81,7 @@ newattributes = [('rel', 'stylesheet'), ('type', 'text/css')] for name, value in attributes: if name == 'href': - url = urlparse.urljoin(self.base, value) + url = urllib.parse.urljoin(self.base, value) # TODO: figure the re-write path # newattributes.append((name, path)) self.session.fetch(url) --- ./webunit/SimpleDOM.py (original) +++ ./webunit/SimpleDOM.py (refactored) @@ -35,8 +35,8 @@ import sys, string # NOTE this is using a modified HTMLParser -from HTMLParser import HTMLParser, HTMLParseError -from utility import Upload +from .HTMLParser import HTMLParser, HTMLParseError +from .utility import Upload BOOLEAN_HTML_ATTRS = [ # List of Boolean attributes in HTML that may be given in @@ -139,7 +139,7 @@ for entry in l: if hasattr(entry, 'id') and entry.id == id: return entry - raise ValueError, 'No %r with id %r'%(name, id) + raise ValueError('No %r with id %r'%(name, id)) def getByNameFlat(self, name): '''Return all nodes of type "name" from the contents of this node. @@ -182,21 +182,21 @@ return self.getContents()[item] def hasattr(self, attr): - return self.__dict__['__attributes'].has_key(attr) + return attr in self.__dict__['__attributes'] def getattr(self, attr, default=_marker): - if self.__dict__['__attributes'].has_key(attr): + if attr in self.__dict__['__attributes']: return self.__dict__['__attributes'][attr] if default is _marker: - raise AttributeError, attr + raise AttributeError(attr) return default def __getattr__(self, attr): - if self.__dict__['__attributes'].has_key(attr): + if attr in self.__dict__['__attributes']: return self.__dict__['__attributes'][attr] - if self.__dict__.has_key(attr): + if attr in self.__dict__: return self.__dict__[attr] - raise AttributeError, attr + raise AttributeError(attr) def __len__(self): return len(self.getContents()) @@ -209,7 +209,7 @@ def __str__(self): attrs = [] - for attr in self.__dict__['__attributes'].items(): + for attr in list(self.__dict__['__attributes'].items()): if attr[0] in BOOLEAN_HTML_ATTRS: attrs.append(attr[0]) else: @@ -339,8 +339,8 @@ def handle_starttag(self, tag, attrs): if self.__debug: - print '\n>handle_starttag', tag - print self.tagstack + print('\n>handle_starttag', tag) + print(self.tagstack) self.close_para_tags(tag) self.tagstack.append(tag) d = {} @@ -352,8 +352,8 @@ def handle_startendtag(self, tag, attrs): if self.__debug: - print '> etc. in the source is an error raise EmptyTagError(tag, self.getpos()) @@ -375,7 +375,7 @@ if tag in EMPTY_HTML_TAGS: return close_to = -1 - if BLOCK_CLOSING_TAG_MAP.has_key(tag): + if tag in BLOCK_CLOSING_TAG_MAP: blocks_to_close = BLOCK_CLOSING_TAG_MAP[tag] for i in range(len(self.tagstack)): t = self.tagstack[i] @@ -404,8 +404,8 @@ def implied_endtag(self, tag, implied): if self.__debug: - print ' 1 and request_path[-1] == '/': request_path = request_path[:-1] - hdrcookies = Cookie.SimpleCookie("\n".join(map(lambda x: x.strip(), - headers.getallmatchingheaders('set-cookie')))) - for cookie in hdrcookies.values(): + hdrcookies = http.cookies.SimpleCookie("\n".join([x.strip() for x in headers.getallmatchingheaders('set-cookie')])) + for cookie in list(hdrcookies.values()): # XXX: there doesn't seem to be a way to determine if the # cookie was set or defaulted to an empty string :( if cookie['domain']: @@ -60,7 +59,7 @@ # reject if The value for the Domain attribute contains no # embedded dots or does not start with a dot. if '.' not in domain: - raise Error, 'Cookie domain "%s" has no "."'%domain + raise Error('Cookie domain "%s" has no "."'%domain) if domain[0] != '.': # per RFC2965 cookie domains with no leading '.' will have # one added @@ -73,16 +72,16 @@ # but not: # - someexample.com if not server.endswith(domain) and domain[1:] != server: - raise Error, 'Cookie domain "%s" doesn\'t match '\ - 'request host "%s"'%(domain, server) + raise Error('Cookie domain "%s" doesn\'t match '\ + 'request host "%s"'%(domain, server)) # reject if the request-host is a FQDN (not IP address) and # has the form HD, where D is the value of the Domain # attribute, and H is a string that contains one or more dots. if re.search(r'[a-zA-Z]', server): H = server[:-len(domain)] if '.' in H: - raise Error, 'Cookie domain "%s" too short '\ - 'for request host "%s"'%(domain, server) + raise Error('Cookie domain "%s" too short '\ + 'for request host "%s"'%(domain, server)) else: domain = server @@ -92,8 +91,8 @@ # (noting that empty request path and '/' are often synonymous, yay) if not (request_path.startswith(path) or (request_path == '' and cookie['path'] == '/')): - raise Error, 'Cookie path "%s" doesn\'t match '\ - 'request url "%s"'%(path, request_path) + raise Error('Cookie path "%s" doesn\'t match '\ + 'request url "%s"'%(path, request_path)) bydom = cookies.setdefault(domain, {}) bypath = bydom.setdefault(path, {}) --- ./webunit/utility.py (original) +++ ./webunit/utility.py (refactored) @@ -7,7 +7,7 @@ # # $Id$ -import cStringIO +import io import os.path class Upload: @@ -27,8 +27,8 @@ '''Take the mapping of data and construct the body of a multipart/form-data message with it using the indicated boundaries. ''' - ret = cStringIO.StringIO() - for key, value in data.items(): + ret = io.StringIO() + for key, value in list(data.items()): if not key: continue # handle multiple entries for the same name --- ./webunit/webunittest.py (original) +++ ./webunit/webunittest.py (refactored) @@ -7,18 +7,18 @@ # # $Id: webunittest.py,v 1.13 2004/08/26 02:50:19 richard Exp $ -import os, base64, urllib, urlparse, unittest, cStringIO, time, re, sys -import httplib +import os, base64, urllib.request, urllib.parse, urllib.error, urllib.parse, unittest, io, time, re, sys +import http.client #try: # from M2Crypto import httpslib #except ImportError: # httpslib = None -from SimpleDOM import SimpleDOMParser -from IMGSucker import IMGSucker -from utility import Upload, mimeEncode, boundary, log -import cookie +from .SimpleDOM import SimpleDOMParser +from .IMGSucker import IMGSucker +from .utility import Upload, mimeEncode, boundary, log +from . import cookie VERBOSE = os.environ.get('VERBOSE', '') @@ -155,9 +155,9 @@ WebTestCase.result_count = WebTestCase.result_count + 1 try: response = self.fetch(url, params, ok_codes=code, **kw) - except HTTPError, error: - self.log('post'+`(url, params)`, error.response.body) - raise self.failureException, str(error.response) + except HTTPError as error: + self.log('post'+repr((url, params)), error.response.body) + raise self.failureException(str(error.response)) return response def postAssertCode(self, url, params, code=None, **kw): @@ -170,10 +170,10 @@ code = [code] try: response = self.fetch(url, params, ok_codes = code, **kw) - except HTTPError, error: - self.log('postAssertCode'+`(url, params, code)`, + except HTTPError as error: + self.log('postAssertCode'+repr((url, params, code)), error.response.body) - raise self.failureException, str(error.response) + raise self.failureException(str(error.response)) return response def postAssertContent(self, url, params, content, code=None, **kw): @@ -186,14 +186,14 @@ code = [code] try: response = self.fetch(url, params, ok_codes = code, **kw) - except HTTPError, error: - self.log('postAssertContent'+`(url, params, code)`, + except HTTPError as error: + self.log('postAssertContent'+repr((url, params, code)), error.response.body) - raise self.failureException, str(error) + raise self.failureException(str(error)) if response.body.find(content) == -1: - self.log('postAssertContent'+`(url, params, content)`, + self.log('postAssertContent'+repr((url, params, content)), response.body) - raise self.failureException, 'Expected content not in response' + raise self.failureException('Expected content not in response') return response def postAssertNotContent(self, url, params, content, code=None, **kw): @@ -206,14 +206,14 @@ code = [code] try: response = self.fetch(url, params, ok_codes = code, **kw) - except HTTPError, error: - self.log('postAssertNotContent'+`(url, params, code)`, + except HTTPError as error: + self.log('postAssertNotContent'+repr((url, params, code)), error.response.body) - raise self.failureException, str(error) + raise self.failureException(str(error)) if response.body.find(content) != -1: - self.log('postAssertNotContent'+`(url, params, content)`, + self.log('postAssertNotContent'+repr((url, params, content)), response.body) - raise self.failureException, 'Expected content was in response' + raise self.failureException('Expected content was in response') return response def postPage(self, url, params, code=None, **kw): @@ -225,20 +225,20 @@ WebTestCase.result_count = WebTestCase.result_count + 1 try: response = self.fetch(url, params, ok_codes=code, **kw) - except HTTPError, error: + except HTTPError as error: self.log('postPage %r'%((url, params),), error.response.body) - raise self.failureException, str(error) + raise self.failureException(str(error)) # Check return code for redirect while response.code in (301, 302): try: # Figure the location - which may be relativeRefactoringTool: Files that were modified: RefactoringTool: ./setup.py RefactoringTool: ./demo/__init__.py RefactoringTool: ./demo/google.py RefactoringTool: ./demo/python_org.py RefactoringTool: ./webunit/HTMLParser.py RefactoringTool: ./webunit/IMGSucker.py RefactoringTool: ./webunit/SimpleDOM.py RefactoringTool: ./webunit/__init__.py RefactoringTool: ./webunit/config.py RefactoringTool: ./webunit/cookie.py RefactoringTool: ./webunit/utility.py RefactoringTool: ./webunit/webunittest.py newurl = response.headers['Location'] - url = urlparse.urljoin(url, newurl) + url = urllib.parse.urljoin(url, newurl) response = self.fetch(url, ok_codes=code) - except HTTPError, error: + except HTTPError as error: self.log('postPage %r'%url, error.response.body) - raise self.failureException, str(error) + raise self.failureException(str(error)) # read and parse the content page = response.body @@ -246,8 +246,8 @@ self.writeResult(url, page) try: self.pageImages(url, page) - except HTTPError, error: - raise self.failureException, str(error) + except HTTPError as error: + raise self.failureException(str(error)) return response # @@ -310,7 +310,7 @@ Returns a HTTPReponse object wrapping the response from the server. ''' # see if the url is fully-qualified (not just a path) - t_protocol, t_server, t_url, x, t_args, x = urlparse.urlparse(url) + t_protocol, t_server, t_url, x, t_args, x = urllib.parse.urlparse(url) if t_server: protocol = t_protocol if ':' in t_server: @@ -332,13 +332,13 @@ # see if there's a base URL to use. base = self.get_base_url() if base: - t_protocol, t_server, t_url, x, x, x = urlparse.urlparse(base) + t_protocol, t_server, t_url, x, x, x = urllib.parse.urlparse(base) if t_protocol: protocol = t_protocol if t_server: server = t_server if t_url: - url = urlparse.urljoin(t_url, url) + url = urllib.parse.urljoin(t_url, url) # TODO: allow override of the server and port from the URL! if server is None: server = self.server @@ -347,7 +347,7 @@ if ok_codes is None: ok_codes = self.expect_codes if protocol == 'http': - h = httplib.HTTP(server, int(port)) + h = http.client.HTTP(server, int(port)) if int(port) == 80: host_header = server else: @@ -355,21 +355,21 @@ elif protocol == 'https': #if httpslib is None: #raise ValueError, "Can't fetch HTTPS: M2Crypto not installed" - h = httplib.HTTPS(server, int(port)) + h = http.client.HTTPS(server, int(port)) if int(port) == 443: host_header = server else: host_header = '%s:%s'%(server, port) else: - raise ValueError, protocol + raise ValueError(protocol) headers = [] params = None if postdata: - for field,value in postdata.items(): + for field,value in list(postdata.items()): if type(value) == type({}): postdata[field] = [] - for k,selected in value.items(): + for k,selected in list(value.items()): if selected: postdata[field].append(k) # Do a post with the data file @@ -392,17 +392,17 @@ # (http://www.ietf.org/rfc/rfc2109.txt) cookies_used = [] cookie_list = [] - for domain, cookies in self.cookies.items(): + for domain, cookies in list(self.cookies.items()): # check cookie domain if not server.endswith(domain): continue - for path, cookies in cookies.items(): + for path, cookies in list(cookies.items()): # check that the path matches - urlpath = urlparse.urlparse(url)[2] + urlpath = urllib.parse.urlparse(url)[2] if not urlpath.startswith(path) and not (path == '/' and urlpath == ''): continue - for sendcookie in cookies.values(): + for sendcookie in list(cookies.values()): # and that the cookie is or isn't secure if sendcookie['secure'] and protocol != 'https': continue @@ -436,7 +436,7 @@ # get the body and save it f = h.getfile() - g = cStringIO.StringIO() + g = io.StringIO() d = f.read() while d: g.write(d) @@ -467,15 +467,15 @@ data = response.body for content in self.error_content: if data.find(content) != -1: - url = urlparse.urlunparse((protocol, server, url, '','','')) + url = urllib.parse.urlunparse((protocol, server, url, '','','')) msg = "URL %r matched error: %s"%(url, content) if hasattr(self, 'results') and self.results: self.writeError(url, msg) - self.log('Matched error'+`(url, content)`, data) + self.log('Matched error'+repr((url, content)), data) if VERBOSE: sys.stdout.write('c') sys.stdout.flush() - raise self.failureException, msg + raise self.failureException(msg) if VERBOSE: sys.stdout.write('_') @@ -541,8 +541,8 @@ try: parser.parseString(self.body) except: - log('HTTPResponse.getDOM'+`(self.url, self.code, self.message, - self.headers)`, self.body) + log('HTTPResponse.getDOM'+repr((self.url, self.code, self.message, + self.headers)), self.body) raise self.dom = parser.getDOM() return self.dom @@ -589,14 +589,14 @@ # whack on the url params l = [] - for k, v in formData.items(): + for k, v in list(formData.items()): if isinstance(v, type([])): for item in v: - l.append('%s=%s'%(urllib.quote(k), - urllib.quote_plus(item, safe=''))) + l.append('%s=%s'%(urllib.parse.quote(k), + urllib.parse.quote_plus(item, safe=''))) else: - l.append('%s=%s'%(urllib.quote(k), - urllib.quote_plus(v, safe=''))) + l.append('%s=%s'%(urllib.parse.quote(k), + urllib.parse.quote_plus(v, safe=''))) if l: url = url + '?' + '&'.join(l) @@ -645,16 +645,16 @@ # assert formData.has_key(k), (formData, k) formData.update(postargs) - for k,v in postargs.items(): + for k,v in list(postargs.items()): if v is None: del formData[k] # transmogrify select/checkbox/radio select options from dicts # (key:'selected') to lists of values - for k,v in formData.items(): + for k,v in list(formData.items()): if isinstance(v, type({})): l = [] - for kk,vv in v.items(): + for kk,vv in list(v.items()): if vv in ('selected', 'checked'): l.append(kk) formData[k] = l @@ -673,7 +673,7 @@ url = '/%s/' % '/'.join(self.url.split('/')[:-1]) elif not (url.startswith('/') or url.startswith('http')): - url = urlparse.urljoin(base, url) + url = urllib.parse.urljoin(base, url) else: url = self.url + RPM_EC=0 ++ jobs -p + exit 0 Executing(%generate_buildrequires): /bin/sh -e /home/pterjan/rpmbuild/tmp/rpm-tmp.BXq8bC + umask 022 + cd /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build + cd webunit-1.3.10 + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(packaging)' + echo 'python3dist(pip) >= 19' + '[' -f pyproject.toml ']' + '[' -f setup.py ']' + echo 'python3dist(setuptools) >= 40.8' + for f in pyproject.toml setup.py setup.cfg + '[' -f pyproject.toml ']' + for f in pyproject.toml setup.py setup.cfg + '[' -f setup.py ']' + sed -i -E -e '/^requires/s/(['\''"]\s*flit_core\s*>=\s*[0-9]+(\.[0-9]+)+)\s*,\s*<\s*[0-9]+(\.[0-9]+)*(\s*['\''"])/\1\4/' setup.py + sed -i -E -e '/python_requires/s/(['\''"]?\s*\S*\s*>=\s*[0-9]+(\.[0-9]+)*)\s*(,\s*(<|!=)\s*[0-9]+(\.[0-9]+)*(\.\*)*)+(\s*['\''"]?)/\1\7/' setup.py + sed -i -E -e 's/(['\''"]?\s*\S*\s*>=\s*[0-9]+(\.[0-9a-z]+)*)\s*,\s*(<|!=|<=)\s*[0-9]+(\.[0-9a-z]+)*(-?dev[0-9]*)?(\.\*)*(\s*['\''"]?)/\1\7/g' setup.py + sed -i -E -e 's/(['\''"]\w+\s*)!=(\s*([0-9])+(\.[0-9]+)*\s*['\''"])/\1>\2/g' setup.py + sed -i -E -e 's/(['\''"]\s*>=\s*[0-9]+(\.[0-9]+)*)\s*,\s*(<|!=)\s*[0-9]+(\.[0-9]+)*(\s*['\''"])/\1\5/g' setup.py + sed -i -E -e 's/(['\''"]?\s*\S*\s*>=\s*[0-9]+(\.[0-9]+)*)\s*(,\s*(<|!=)\s*[0-9]+(\.[0-9]+)*(\.\*)*)+(\s*['\''"]?)/\1\7/g' setup.py + sed -i -E -e 's/(['\''"]\s*)\^(\s*[0-9]+(\.[0-9]+)*\s*['\''"])/\1>=\2/g' setup.py + sed -i -e 's/~=/>=/g' setup.py + sed -i -E -e 's/(['\''"]\s*\S*\s*)==(\s*[0-9]+(\.[0-9]+)*)\.\*(\s*['\''"])/\1>=\2\4/g' setup.py + sed -i -E -e 's/(['\''"]?\w*\s*>=\s*[0-9]+(\.[0-9]+)*)\s*,\s*(<|!=)[0-9]+(\.[0-9]+)*\s*(['\''"]?)/\1\5/g' setup.py + for f in pyproject.toml setup.py setup.cfg + '[' -f setup.cfg ']' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + mkdir -p /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build/webunit-1.3.10/.pyproject-builddir + echo -n + CFLAGS='-O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full' + CXXFLAGS='-O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full' + FFLAGS='-O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full ' + FCFLAGS='-O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full ' + VALAFLAGS=-g + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none --cap-lints=warn' + LDFLAGS='-Wl,--as-needed -Wl,--no-undefined -Wl,-z,relro -Wl,-z,now -Wl,-O1 -Wl,--build-id=sha1 -Wl,--enable-new-dtags -specs=/usr/lib/rpm/redhat/redhat-hardened-ld' + LT_SYS_LIBRARY_PATH=/usr/lib: + export LT_SYS_LIBRARY_PATH + CC=gcc + CXX=g++ + TMPDIR=/home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build/webunit-1.3.10/.pyproject-builddir + RPM_TOXENV=py312 + HOSTNAME=rpmbuild + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build/webunit-1.3.10/pyproject-wheeldir --output /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build/python-webunit-1.3.10-8.mga10.noarch-pyproject-buildrequires Handling setuptools >= 40.8 from default build backend Requirement satisfied: setuptools >= 40.8 (installed: setuptools 75.6.0) + cat /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build/python-webunit-1.3.10-8.mga10.noarch-pyproject-buildrequires + rm -rfv webunit-1.3.10.dist-info/ removed 'webunit-1.3.10.dist-info/top_level.txt' removed 'webunit-1.3.10.dist-info/METADATA' removed directory 'webunit-1.3.10.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Executing(%build): /bin/sh -e /home/pterjan/rpmbuild/tmp/rpm-tmp.lRZWwf + umask 022 + cd /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build + CFLAGS='-O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full' + export CFLAGS + CXXFLAGS='-O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full' + export CXXFLAGS + FFLAGS='-O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full ' + export FFLAGS + FCFLAGS='-O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none --cap-lints=warn' + export RUSTFLAGS + LDFLAGS='-Wl,--as-needed -Wl,--no-undefined -Wl,-z,relro -Wl,-z,now -Wl,-O1 -Wl,--build-id=sha1 -Wl,--enable-new-dtags -specs=/usr/lib/rpm/redhat/redhat-hardened-ld' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd webunit-1.3.10 + '[' 1 -eq 1 ']' + '[' 1 -eq 1 ']' + mkdir -p /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build/webunit-1.3.10/.pyproject-builddir + CFLAGS='-O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full' + CXXFLAGS='-O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full' + FFLAGS='-O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full ' + FCFLAGS='-O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full ' + VALAFLAGS=-g + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none --cap-lints=warn' + LDFLAGS='-Wl,--as-needed -Wl,--no-undefined -Wl,-z,relro -Wl,-z,now -Wl,-O1 -Wl,--build-id=sha1 -Wl,--enable-new-dtags -specs=/usr/lib/rpm/redhat/redhat-hardened-ld' + LT_SYS_LIBRARY_PATH=/usr/lib: + export LT_SYS_LIBRARY_PATH + CC=gcc + CXX=g++ + TMPDIR=/home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build/webunit-1.3.10/.pyproject-builddir + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_wheel.py /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build/webunit-1.3.10/pyproject-wheeldir Processing /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build/webunit-1.3.10 Preparing metadata (pyproject.toml): started Running command Preparing metadata (pyproject.toml) Preparing metadata (pyproject.toml): finished with status 'done' Building wheels for collected packages: webunit Building wheel for webunit (pyproject.toml): started Running command Building wheel for webunit (pyproject.toml) Building wheel for webunit (pyproject.toml): finished with status 'done' Created wheel for webunit: filename=webunit-1.3.10-py3-none-any.whl size=23334 sha256=4458125cc1f93c435a89d9237af3b9db12bb9b10f0c9b24690df5e72f209e89e Stored in directory: /home/pterjan/.cache/pip/wheels/c3/70/7b/8645d4a8503c15d82f467781f0f7d4c10c65d0225bf82a9260 Successfully built webunit + RPM_EC=0 ++ jobs -p + exit 0 Executing(%install): /bin/sh -e /home/pterjan/rpmbuild/tmp/rpm-tmp.1BPaDM + umask 022 + cd /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build + '[' 1 -eq 1 ']' + '[' /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build/BUILDROOT '!=' / ']' + rm -rf /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build/BUILDROOT ++ dirname /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build/BUILDROOT + mkdir -p /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build + mkdir /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build/BUILDROOT + CFLAGS='-O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full' + export CFLAGS + CXXFLAGS='-O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full' + export CXXFLAGS + FFLAGS='-O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full ' + export FFLAGS + FCFLAGS='-O2 -g -pipe -Wformat -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -m64 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection=full ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none --cap-lints=warn' + export RUSTFLAGS + LDFLAGS='-Wl,--as-needed -Wl,--no-undefined -Wl,-z,relro -Wl,-z,now -Wl,-O1 -Wl,--build-id=sha1 -Wl,--enable-new-dtags -specs=/usr/lib/rpm/redhat/redhat-hardened-ld' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd webunit-1.3.10 + '[' 1 -eq 1 ']' ++ ls /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build/webunit-1.3.10/pyproject-wheeldir/webunit-1.3.10-py3-none-any.whl ++ xargs basename --multiple ++ sed -E 's/([^-]+)-([^-]+)-.+\.whl/\1==\2/' + specifier=webunit==1.3.10 + '[' -z webunit==1.3.10 ']' + TMPDIR=/home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build/webunit-1.3.10/.pyproject-builddir + /usr/bin/python3 -m pip install --root /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build/BUILDROOT --prefix /usr --no-deps --disable-pip-version-check --progress-bar off --verbose --ignore-installed --no-warn-script-location --no-index --no-cache-dir --find-links /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build/webunit-1.3.10/pyproject-wheeldir webunit==1.3.10 Using pip 24.3.1 from /usr/lib/python3.12/site-packages/pip (python 3.12) Looking in links: /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build/webunit-1.3.10/pyproject-wheeldir Processing ./pyproject-wheeldir/webunit-1.3.10-py3-none-any.whl Installing collected packages: webunit Successfully installed webunit-1.3.10 + '[' -d /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build/BUILDROOT/usr/bin ']' + rm -f /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build/python-webunit-1.3.10-8.mga10.noarch-pyproject-ghost-distinfo + site_dirs=() + '[' -d /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build/BUILDROOT/usr/lib/python3.12/site-packages ']' + site_dirs+=("/usr/lib/python3.12/site-packages") + '[' /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build/BUILDROOT/usr/lib64/python3.12/site-packages '!=' /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build/BUILDROOT/usr/lib/python3.12/site-packages ']' + '[' -d /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build/BUILDROOT/usr/lib64/python3.12/site-packages ']' + for site_dir in ${site_dirs[@]} + for distinfo in /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build/BUILDROOT$site_dir/*.dist-info + echo '%ghost /usr/lib/python3.12/site-packages/webunit-1.3.10.dist-info' + sed -i s/pip/rpm/ /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build/BUILDROOT/usr/lib/python3.12/site-packages/webunit-1.3.10.dist-info/INSTALLER + PYTHONPATH=/usr/lib/rpm/redhat + /usr/bin/python3 -B /usr/lib/rpm/redhat/pyproject_preprocess_record.py --buildroot /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build/BUILDROOT --record /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build/BUILDROOT/usr/lib/python3.12/site-packages/webunit-1.3.10.dist-info/RECORD --output /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build/python-webunit-1.3.10-8.mga10.noarch-pyproject-record + rm -fv /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build/BUILDROOT/usr/lib/python3.12/site-packages/webunit-1.3.10.dist-info/RECORD removed '/home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build/BUILDROOT/usr/lib/python3.12/site-packages/webunit-1.3.10.dist-info/RECORD' + rm -fv /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build/BUILDROOT/usr/lib/python3.12/site-packages/webunit-1.3.10.dist-info/REQUESTED removed '/home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build/BUILDROOT/usr/lib/python3.12/site-packages/webunit-1.3.10.dist-info/REQUESTED' ++ wc -l /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build/python-webunit-1.3.10-8.mga10.noarch-pyproject-ghost-distinfo ++ cut -f1 '-d ' + lines=1 + '[' 1 -ne 1 ']' + RPM_FILES_ESCAPE=4.19 + /usr/bin/python3 /usr/lib/rpm/redhat/pyproject_save_files.py --output-files /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build/python-webunit-1.3.10-8.mga10.noarch-pyproject-files --output-modules /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build/python-webunit-1.3.10-8.mga10.noarch-pyproject-modules --buildroot /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build/BUILDROOT --sitelib /usr/lib/python3.12/site-packages --sitearch /usr/lib64/python3.12/site-packages --python-version 3.12 --pyproject-record /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build/python-webunit-1.3.10-8.mga10.noarch-pyproject-record --prefix /usr webunit + rm -rf /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build/BUILDROOT/usr/lib/python3.12/site-packages/demo + /usr/lib/rpm/check-buildroot + '[' -n '' ']' + /usr/share/spec-helper/clean_files + '[' -n '' ']' + /usr/share/spec-helper/compress_files .xz + '[' -n '' ']' + /usr/share/spec-helper/relink_symlinks + '[' -n '' ']' + /usr/share/spec-helper/clean_perl + '[' -n '' ']' + /usr/share/spec-helper/lib_symlinks + '[' -n '' ']' + /usr/share/spec-helper/gprintify + '[' -n '' ']' + /usr/share/spec-helper/fix_mo + '[' -n '' ']' + /usr/share/spec-helper/fix_pamd + '[' -n '' ']' + /usr/share/spec-helper/remove_info_dir + '[' -n '' ']' + /usr/share/spec-helper/fix_eol + '[' -n '' ']' + /usr/share/spec-helper/check_desktop_files + '[' -n '' ']' + /usr/share/spec-helper/check_elf_files + /usr/lib/rpm/brp-strip /usr/bin/strip + /usr/lib/rpm/brp-strip-comment-note /usr/bin/strip /usr/bin/objdump + /usr/lib/rpm/brp-strip-static-archive /usr/bin/strip + /usr/lib/rpm/check-rpaths + /usr/lib/rpm/brp-remove-la-files + /usr/lib/rpm/redhat/brp-mangle-shebangs + env -u SOURCE_DATE_EPOCH /usr/lib/rpm/redhat/brp-python-bytecompile '' 1 0 -j16 Bytecompiling .py files below /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build/BUILDROOT/usr/lib/python3.12 using python3.12 Not clamping source mtimes, $SOURCE_DATE_EPOCH not set /usr/lib/python3.12/site-packages/webunit/HTMLParser.py:52: SyntaxWarning: invalid escape sequence '\s' /usr/lib/python3.12/site-packages/webunit/HTMLParser.py:52: SyntaxWarning: invalid escape sequence '\s' + /usr/lib/rpm/redhat/brp-python-hardlink Processing files: python3-webunit-1.3.10-8.mga10.noarch Executing(%doc): /bin/sh -e /home/pterjan/rpmbuild/tmp/rpm-tmp.WsVoHh + umask 022 + cd /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build + cd webunit-1.3.10 + DOCDIR=/home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build/BUILDROOT/usr/share/doc/python3-webunit + export LC_ALL=C + LC_ALL=C + export DOCDIR + /usr/bin/mkdir -p /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build/BUILDROOT/usr/share/doc/python3-webunit + cp -pr /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build/webunit-1.3.10/CHANGES.txt /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build/BUILDROOT/usr/share/doc/python3-webunit + cp -pr /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build/webunit-1.3.10/README.txt /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build/BUILDROOT/usr/share/doc/python3-webunit + RPM_EC=0 ++ jobs -p + exit 0 Provides: python-webunit = 1.3.10-8.mga10 python3-webunit = 1.3.10-8.mga10 python3.12-webunit = 1.3.10-8.mga10 python3.12dist(webunit) = 1.3.10 python3dist(webunit) = 1.3.10 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PartialHardlinkSets) <= 4.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires: python(abi) = 3.12 Obsoletes: python-webunit < 1.3.10-8.mga10 Checking for unpackaged file(s): /usr/lib/rpm/check-files /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build/BUILDROOT Wrote: /home/pterjan/rpmbuild/RPMS/noarch/python3-webunit-1.3.10-8.mga10.noarch.rpm Executing(rmbuild): /bin/sh -e /home/pterjan/rpmbuild/tmp/rpm-tmp.542ALx + umask 022 + cd /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build + test -d /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build + rm -rf /home/pterjan/rpmbuild/BUILD/python-webunit-1.3.10-build + RPM_EC=0 ++ jobs -p + exit 0 D: [iurt_root_command] Success!