D: [iurt_root_command] chroot Installing /home/iurt/rpmbuild/SRPMS/parley-19.12.0-2.mga8.src.rpm Building target platforms: aarch64 Building for target aarch64 Executing(%prep): /bin/sh -e /home/iurt/rpmbuild/tmp/rpm-tmp.2PQeeg + umask 022 + cd /home/iurt/rpmbuild/BUILD + '[' 1 -eq 1 ']' + '[' 1 -eq 1 ']' + '[' 1 -eq 1 ']' + cd /home/iurt/rpmbuild/BUILD + rm -rf parley-19.12.0 + /usr/bin/xz -dc /home/iurt/rpmbuild/SOURCES/parley-19.12.0.tar.xz + /usr/bin/tar -xof - + STATUS=0 + '[' 0 -ne 0 ']' + cd parley-19.12.0 + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + find . -name '*.py' + xargs 2to3 -w 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 ./plugins/example.py RefactoringTool: Refactored ./plugins/google_dictionary.py RefactoringTool: Refactored ./plugins/wiktionary/wiktionary_sound.py RefactoringTool: No changes to ./plugins/wiktionary/mwclient/sleep.py RefactoringTool: No changes to ./plugins/wiktionary/mwclient/errors.py RefactoringTool: No changes to ./plugins/wiktionary/mwclient/image.py RefactoringTool: Refactored ./plugins/wiktionary/mwclient/requests_oauthlib/oauth2_auth.py RefactoringTool: No changes to ./plugins/wiktionary/mwclient/requests_oauthlib/compliance_fixes/fitbit.py RefactoringTool: No changes to ./plugins/wiktionary/mwclient/requests_oauthlib/compliance_fixes/douban.py RefactoringTool: Refactored ./plugins/wiktionary/mwclient/requests_oauthlib/compliance_fixes/slack.py RefactoringTool: Refactored ./plugins/wiktionary/mwclient/requests_oauthlib/compliance_fixes/facebook.py RefactoringTool: No changes to ./plugins/wiktionary/mwclient/requests_oauthlib/compliance_fixes/linkedin.py RefactoringTool: Refactored ./plugins/wiktionary/mwclient/requests_oauthlib/compliance_fixes/__init__.py RefactoringTool: No changes to ./plugins/wiktionary/mwclient/requests_oauthlib/compliance_fixes/mailchimp.py RefactoringTool: No changes to ./plugins/wiktionary/mwclient/requests_oauthlib/compliance_fixes/weibo.py RefactoringTool: Refactored ./plugins/wiktionary/mwclient/requests_oauthlib/oauth1_session.py RefactoringTool: No changes to ./plugins/wiktionary/mwclient/requests_oauthlib/__init__.py RefactoringTool: Refactored ./plugins/wiktionary/mwclient/requests_oauthlib/oauth1_auth.py --- ./plugins/google_dictionary.py (original) +++ ./plugins/google_dictionary.py (refactored) @@ -1,8 +1,8 @@ #!/usr/bin/env kf5kross import socket -import urllib2 -import urllib +import urllib.request, urllib.error, urllib.parse +import urllib.request, urllib.parse, urllib.error from sgmllib import SGMLParser import Parley import re @@ -16,10 +16,10 @@ url = "http://translate.google.com/translate_dict" param_word_trn = ("q",word) #set query parameter param_lang_pair = ("langpair",from_lang+"|"+to_lang) - request_url = url + "?" + urllib.urlencode([param_word_trn,param_lang_pair]) + request_url = url + "?" + urllib.parse.urlencode([param_word_trn,param_lang_pair]) #print request_url try: - results = urllib2.urlopen(request_url) + results = urllib.request.urlopen(request_url) return results.read() except: #in case of error not to return incompleted results @@ -50,7 +50,7 @@ # called by Parley to translate the word def translateWord(word,from_lang,to_lang): - print "google_dictionary.py - Translating",word,from_lang,to_lang + print("google_dictionary.py - Translating",word,from_lang,to_lang) data = fetchData(word,locale(from_lang),locale(to_lang)) parser = parseData(data,word,from_lang,to_lang) #return parser.words @@ -60,7 +60,7 @@ def getLanguagePairs(): data = fetchData("ignorethis","en","fr") parser = parseData(data) - return map(split_langpair,parser.langpairs) + return list(map(split_langpair,parser.langpairs)) # function to split a language pair string into a tuple def split_langpair(s): --- ./plugins/wiktionary/wiktionary_sound.py (original) +++ ./plugins/wiktionary/wiktionary_sound.py (refactored) @@ -17,26 +17,26 @@ from os import path import string import Kross -import urllib -from urlparse import urlparse +import urllib.request, urllib.parse, urllib.error +from urllib.parse import urlparse T = Kross.module("kdetranslation") # fetch http_content def fetch_http_content(url, params, method): - params = urllib.urlencode(params) + params = urllib.parse.urlencode(params) if method=='POST': - f = urllib.urlopen(url, params) + f = urllib.request.urlopen(url, params) else: - f = urllib.urlopen(url+'?'+params) + f = urllib.request.urlopen(url+'?'+params) return (f.read(), f.code) # Connected to the action menu def fetchSound(): - print "fetching sound" + print("fetching sound") tr = Parley.selectedTranslations() for word in tr: - print "checking sound for " + word.text + print("checking sound for " + word.text) fetchSoundForTranslation(word) def fetchSoundForTranslation(word): @@ -45,7 +45,7 @@ bFound = 0 for wikiLocale in wikiLocales: if (bFound == 0): - print 'Language:', wikiLocale, ' Word: ', word.text + print('Language:', wikiLocale, ' Word: ', word.text) soundfile = getWikiObject(wikiLocale, word.text, None) # check for specific pronunciation for nouns if soundfile == None: @@ -57,9 +57,9 @@ url = downloadFromWiki(soundfile) word.soundUrl = url bFound = 1 - print "setting url for word " + word.text + ":" + word.soundUrl + print("setting url for word " + word.text + ":" + word.soundUrl) else: - print "No translation found for: ", word.text + print("No translation found for: ", word.text) # locale of the given translation def getLocale(trans): @@ -94,7 +94,7 @@ query += '.ogg' soundfile = commons.Images[query] - print 'Query: ', query, 'File: ', soundfile.name.encode('utf-8'), ' Exists: ', soundfile.exists + print('Query: ', query, 'File: ', soundfile.name.encode('utf-8'), ' Exists: ', soundfile.exists) if soundfile.exists: return soundfile return None @@ -104,7 +104,7 @@ if not path.exists(filesdir): os.mkdir(filesdir) filename = filesdir + wikiObject.name.encode('utf-8') - print filename + print(filename) saveas = open(filename,'w') # remote = wikiObject.download() # workaround: because download method results with http response code 404 @@ -113,7 +113,7 @@ {}, 'GET' ) - print 'HTTP Response code: ', response_code + print('HTTP Response code: ', response_code) if(response_code == 200): saveas.write(content) saveas.close() --- ./plugins/wiktionary/mwclient/requests_oauthlib/oauth2_auth.py (original) +++ ./plugins/wiktionary/mwclient/requests_oauthlib/oauth2_auth.py (refactored) @@ -1,4 +1,4 @@ -from __future__ import unicode_literals + from oauthlib.oauth2 import WebApplicationClient, InsecureTransportError from oauthlib.oauth2 import is_secure_transport from requests.auth import AuthBase @@ -19,7 +19,7 @@ """ self._client = client or WebApplicationClient(client_id, token=token) if token: - for k, v in token.items(): + for k, v in list(token.items()): setattr(self._client, k, v) def __call__(self, r): --- ./plugins/wiktionary/mwclient/requests_oauthlib/compliance_fixes/slack.py (original) +++ ./plugins/wiktionary/mwclient/requests_oauthlib/compliance_fixes/slack.py (refactored) @@ -1,5 +1,5 @@ try: - from urlparse import urlparse, parse_qs + from urllib.parse import urlparse, parse_qs except ImportError: from urllib.parse import urlparse, parse_qs --- ./plugins/wiktionary/mwclient/requests_oauthlib/compliance_fixes/facebook.py (original) +++ ./plugins/wiktionary/mwclient/requests_oauthlib/compliance_fixes/facebook.py (refactored) @@ -1,6 +1,6 @@ from json import dumps try: - from urlparse import parse_qsl + from urllib.parse import parse_qsl except ImportError: from urllib.parse import parse_qsl --- ./plugins/wiktionary/mwclient/requests_oauthlib/compliance_fixes/__init__.py (original) +++ ./plugins/wiktionary/mwclient/requests_oauthlib/compliance_fixes/__init__.py (refactored) @@ -1,4 +1,4 @@ -from __future__ import absolute_import + from .facebook import facebook_compliance_fix from .fitbit import fitbit_compliance_fix --- ./plugins/wiktionary/mwclient/requests_oauthlib/oauth1_session.py (original) +++ ./plugins/wiktionary/mwclient/requests_oauthlib/oauth1_session.py (refactored) @@ -1,7 +1,7 @@ -from __future__ import unicode_literals + try: - from urlparse import urlparse + from urllib.parse import urlparse except ImportError: from urllib.parse import urlparse @@ -18,7 +18,7 @@ import sys if sys.version > "3": - unicode = str + str = str log = logging.getLogger(__name__) @@ -236,7 +236,7 @@ """ kwargs['oauth_token'] = request_token or self._client.client.resource_owner_key log.debug('Adding parameters %s to url %s', kwargs, url) - return add_params_to_uri(url, kwargs.items()) + return add_params_to_uri(url, list(kwargs.items())) def fetch_request_token(self, url, realm=None, **request_kwargs): """Fetch a request token. --- ./plugins/wiktionary/mwclient/requests_oauthlib/oauth1_auth.py (original) +++ ./plugins/wiktionary/mwclient/requests_oauthlib/oauth1_auth.py (refactored) @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -from __future__ import unicode_literals + import logging @@ -14,7 +14,7 @@ CONTENT_TYPE_MULTI_PART = 'multipart/form-data' if is_py3: - unicode = str + str = str log = logging.getLogger(__name__) @@ -66,7 +66,7 @@ if (not content_type and extract_params(r.body) or self.client.signature_type == SIGNATURE_TYPE_BODY): content_type = CONTENT_TYPE_FORM_URLENCODED - if not isinstance(content_type, unicode): + if not isinstance(content_type, str): content_type = content_type.decode('utf-8') is_form_encoded = (CONTENT_TYPE_FORM_URLENCODED in content_type) @@ -77,15 +77,15 @@ if is_form_encoded: r.headers['Content-Type'] = CONTENT_TYPE_FORM_URLENCODED RefactoringTool: Refactored ./plugins/wiktionary/mwclient/requests_oauthlib/oauth2_session.py RefactoringTool: Refactored ./plugins/wiktionary/mwclient/page.py RefactoringTool: Refactored ./plugins/wiktionary/mwclient/listing.py RefactoringTool: No changes to ./plugins/wiktionary/mwclient/util.py RefactoringTool: Refactored ./plugins/wiktionary/mwclient/client.py r.url, headers, r.body = self.client.sign( - unicode(r.url), unicode(r.method), r.body or '', r.headers) + str(r.url), str(r.method), r.body or '', r.headers) elif self.force_include_body: # To allow custom clients to work on non form encoded bodies. r.url, headers, r.body = self.client.sign( - unicode(r.url), unicode(r.method), r.body or '', r.headers) + str(r.url), str(r.method), r.body or '', r.headers) else: # Omit body data in the signing of non form-encoded requests r.url, headers, _ = self.client.sign( - unicode(r.url), unicode(r.method), None, r.headers) + str(r.url), str(r.method), None, r.headers) r.prepare_headers(headers) r.url = to_native_string(r.url) --- ./plugins/wiktionary/mwclient/requests_oauthlib/oauth2_session.py (original) +++ ./plugins/wiktionary/mwclient/requests_oauthlib/oauth2_session.py (refactored) @@ -1,4 +1,4 @@ -from __future__ import unicode_literals + import logging --- ./plugins/wiktionary/mwclient/page.py (original) +++ ./plugins/wiktionary/mwclient/page.py (refactored) @@ -1,5 +1,5 @@ -import six -from six import text_type +from . import six +from .six import text_type import time import warnings from mwclient.util import parse_timestamp @@ -37,7 +37,7 @@ self._info = info self.namespace = info.get('ns', 0) - self.name = info.get('title', u'') + self.name = info.get('title', '') if self.namespace: self.page_title = self.strip_namespace(self.name) else: @@ -145,7 +145,7 @@ if not self.can('read'): raise mwclient.errors.InsufficientPermission(self) if not self.exists: - return u'' + return '' if section is not None: section = text_type(section) @@ -160,7 +160,7 @@ text = rev['*'] self.last_rev_time = rev['timestamp'] except StopIteration: - text = u'' + text = '' self.last_rev_time = None if not expandtemplates: self.edit_time = time.gmtime() @@ -169,7 +169,7 @@ self._textcache[key] = text return text - def save(self, text, summary=u'', minor=False, bot=True, section=None, **kwargs): + def save(self, text, summary='', minor=False, bot=True, section=None, **kwargs): """Update the text of a section or the whole page by performing an edit operation. """ if not self.site.logged_in and self.site.force_login: @@ -222,7 +222,7 @@ self.handle_edit_error(e, summary) # 'newtimestamp' is not included if no change was made - if 'newtimestamp' in result['edit'].keys(): + if 'newtimestamp' in list(result['edit'].keys()): self.last_rev_time = parse_timestamp(result['edit'].get('newtimestamp')) # clear the page text cache --- ./plugins/wiktionary/mwclient/listing.py (original) +++ ./plugins/wiktionary/mwclient/listing.py (refactored) @@ -1,6 +1,6 @@ -import six -import six.moves -from six import text_type +from . import six +from . import six.moves +from .six import text_type from mwclient.util import parse_timestamp import mwclient.page import mwclient.image @@ -169,10 +169,10 @@ def __next__(self): info = super(GeneratorList, self).__next__() if info['ns'] == 14: - return Category(self.site, u'', info) + return Category(self.site, '', info) if info['ns'] == 6: - return mwclient.image.Image(self.site, u'', info) - return mwclient.page.Page(self.site, u'', info) + return mwclient.image.Image(self.site, '', info) + return mwclient.page.Page(self.site, '', info) def load_chunk(self): # Put this here so that the constructor does not fail @@ -234,7 +234,7 @@ One of Category, Image or Page (default), according to namespace. """ if self.namespace != 0: - full_page_name = u"{namespace}:{name}".format( + full_page_name = "{namespace}:{name}".format( namespace=self.site.namespaces[self.namespace], name=name, ) @@ -269,10 +269,10 @@ for ns in self.site.namespaces: if ns == 0: continue - if name.startswith(u'%s:' % self.site.namespaces[ns].replace(' ', '_')): + if name.startswith('%s:' % self.site.namespaces[ns].replace(' ', '_')): return ns elif ns in self.site.default_namespaces: - if name.startswith(u'%s:' % self.site.default_namespaces[ns].replace(' ', '_')): + if name.startswith('%s:' % self.site.default_namespaces[ns].replace(' ', '_')): return ns return 0 --- ./plugins/wiktionary/mwclient/client.py (original) +++ ./plugins/wiktionary/mwclient/client.py (refactored) @@ -1,8 +1,8 @@ # encoding=utf-8 import warnings import logging -from six import text_type -import six +from .six import text_type +from . import six from collections import OrderedDict @@ -12,7 +12,7 @@ import simplejson as json import requests from requests.auth import HTTPBasicAuth, AuthBase -from requests_oauthlib import OAuth1 +from .requests_oauthlib import OAuth1 import mwclient.errors as errors import mwclient.listing as listing @@ -68,7 +68,7 @@ auth = OAuth1(consumer_token, consumer_secret, access_token, access_secret) elif isinstance(httpauth, (list, tuple)): auth = HTTPBasicAuth(*httpauth) - elif httpauth is None or isinstance(httpauth, (AuthBase,)): + elif httpauth is None or isinstance(httpauth, AuthBase): auth = httpauth else: raise RuntimeError('Authentication is not a tuple or an instance of AuthBase') @@ -127,7 +127,7 @@ raise errors.OAuthAuthorizationError(e.code, e.info) # Private wiki, do init after login - if e.args[0] not in {u'unknown_action', u'readapidenied'}: + if e.args[0] not in {'unknown_action', 'readapidenied'}: raise def site_init(self): @@ -206,11 +206,11 @@ return version_tuple default_namespaces = { - 0: u'', 1: u'Talk', 2: u'User', 3: u'User talk', 4: u'Project', - 5: u'Project talk', 6: u'Image', 7: u'Image talk', 8: u'MediaWiki', - 9: u'MediaWiki talk', 10: u'Template', 11: u'Template talk', 12: u'Help', - 13: u'Help talk', 14: u'Category', 15: u'Category talk', - -1: u'Special', -2: u'Media' + 0: '', 1: 'Talk', 2: 'User', 3: 'User talk', 4: 'Project', + 5: 'Project talk', 6: 'Image', 7: 'Image talk', 8: 'MediaWiki', + 9: 'MediaWiki talk', 10: 'Template', 11: 'Template talk', 12: 'Help', + 13: 'Help talk', 14: 'Category', 15: 'Category talk', + -1: 'Special', -2: 'Media' } def __repr__(self): @@ -291,14 +291,14 @@ except KeyError: userinfo = () if 'blockedby' in userinfo: - self.blocked = (userinfo['blockedby'], userinfo.get('blockreason', u'')) + self.blocked = (userinfo['blockedby'], userinfo.get('blockreason', '')) else: self.blocked = False self.hasmsg = 'messages' in userinfo self.logged_in = 'anon' not in userinfo if 'error' in info: - if info['error']['code'] in {u'internal_api_error_DBConnectionError', - u'internal_api_error_DBQueryError'}: + if info['error']['code'] in {'internal_api_error_DBConnectionError', + 'internal_api_error_DBQueryError'}: sleeper.sleep() return False if '*' in info['error']: @@ -462,7 +462,7 @@ info = self.post('emailuser', target=user, subject=subject, text=text, ccme=cc, token=token) except errors.APIError as e:RefactoringTool: No changes to ./plugins/wiktionary/mwclient/__init__.py RefactoringTool: Refactored ./plugins/wiktionary/mwclient/six.py RefactoringTool: Refactored ./plugins/wiktionary/mwclient/ex.py RefactoringTool: Refactored ./plugins/leo-dict.py RefactoringTool: Refactored ./plugins/test.py - if e.args[0] == u'noemail': + if e.args[0] == 'noemail': raise errors.NoSpecifiedEmail(user, e.args[1]) raise errors.EmailError(*e) @@ -844,7 +844,7 @@ kwargs['rvdiffto'] = diffto revisions = [] - pages = self.get('query', **kwargs).get('query', {}).get('pages', {}).values() + pages = list(self.get('query', **kwargs).get('query', {}).get('pages', {}).values()) for page in pages: for revision in page.get('revisions', ()): revision['pageid'] = page.get('pageid') --- ./plugins/wiktionary/mwclient/six.py (original) +++ ./plugins/wiktionary/mwclient/six.py (refactored) @@ -20,7 +20,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. -from __future__ import absolute_import + import functools import itertools @@ -46,10 +46,10 @@ MAXSIZE = sys.maxsize else: - string_types = basestring, - integer_types = (int, long) - class_types = (type, types.ClassType) - text_type = unicode + string_types = str, + integer_types = (int, int) + class_types = (type, type) + text_type = str binary_type = str if sys.platform.startswith("java"): @@ -521,7 +521,7 @@ advance_iterator = next except NameError: def advance_iterator(it): - return it.next() + return it.__next__() next = advance_iterator @@ -544,7 +544,7 @@ Iterator = object else: def get_unbound_function(unbound): - return unbound.im_func + return unbound.__func__ def create_bound_method(func, obj): return types.MethodType(func, obj, obj.__class__) @@ -554,7 +554,7 @@ class Iterator(object): - def next(self): + def __next__(self): return type(self).__next__(self) callable = callable @@ -621,7 +621,7 @@ def u(s): return s - unichr = chr + chr = chr import struct int2byte = struct.Struct(">B").pack del struct @@ -644,8 +644,8 @@ # Workaround for standalone backslash def u(s): - return unicode(s.replace(r'\\', r'\\\\'), "unicode_escape") - unichr = unichr + return str(s.replace(r'\\', r'\\\\'), "unicode_escape") + chr = chr int2byte = chr def byte2int(bs): @@ -654,8 +654,8 @@ def indexbytes(buf, i): return ord(buf[i]) iterbytes = functools.partial(itertools.imap, ord) - import StringIO - StringIO = BytesIO = StringIO.StringIO + import io + StringIO = BytesIO = io.StringIO _assertCountEqual = "assertItemsEqual" _assertRaisesRegex = "assertRaisesRegexp" _assertRegex = "assertRegexpMatches" @@ -727,11 +727,11 @@ return def write(data): - if not isinstance(data, basestring): + if not isinstance(data, str): data = str(data) # If the file has an encoding, encode unicode with it. if (isinstance(fp, file) and - isinstance(data, unicode) and + isinstance(data, str) and fp.encoding is not None): errors = getattr(fp, "errors", None) if errors is None: @@ -741,13 +741,13 @@ want_unicode = False sep = kwargs.pop("sep", None) if sep is not None: - if isinstance(sep, unicode): + if isinstance(sep, str): want_unicode = True elif not isinstance(sep, str): raise TypeError("sep must be None or a string") end = kwargs.pop("end", None) if end is not None: - if isinstance(end, unicode): + if isinstance(end, str): want_unicode = True elif not isinstance(end, str): raise TypeError("end must be None or a string") @@ -755,12 +755,12 @@ raise TypeError("invalid keyword arguments to print()") if not want_unicode: for arg in args: - if isinstance(arg, unicode): + if isinstance(arg, str): want_unicode = True break if want_unicode: - newline = unicode("\n") - space = unicode(" ") + newline = str("\n") + space = str(" ") else: newline = "\n" space = " " --- ./plugins/wiktionary/mwclient/ex.py (original) +++ ./plugins/wiktionary/mwclient/ex.py (refactored) @@ -1,4 +1,4 @@ -import client +from . import client import requests @@ -15,10 +15,10 @@ exec(_file, globals(), predata) _file.close() - for _k, _v in predata.iteritems(): + for _k, _v in predata.items(): if not _k.startswith('_'): yield _k, _v - for _k, _v in locals().iteritems(): + for _k, _v in locals().items(): if not _k.startswith('_'): yield _k, _v @@ -34,7 +34,7 @@ return self.sites[key] def __iter__(self): - return self.sites.itervalues() + return iter(self.sites.values()) class ConfiguredSite(client.Site): @@ -67,7 +67,7 @@ self.config = read_config(config_files, sites=SiteList()) self.pool = requests.Session() - config = dict([(k, v) for k, v in self.config.iteritems() + config = dict([(k, v) for k, v in self.config.items() if k != 'sites']) for site in self.config['sites']: --- ./plugins/leo-dict.py (original) +++ ./plugins/leo-dict.py (refactored) @@ -2,8 +2,8 @@ # -*- coding: utf-8 -*- import socket -import urllib2 -import urllib +import urllib.request, urllib.error, urllib.parse +import urllib.request, urllib.parse, urllib.error from sgmllib import SGMLParser import Parley import re @@ -27,7 +27,7 @@ def languageString(from_lang,to_lang): combined = from_lang + "-" + to_lang A = { 'es-de': 'esde', 'de-es':'esde', 'fr-de':'frde', 'de-fr':'frde', 'en-de':'ende', 'de-en':'ende', 'it-de':'itde', 'de-it':'itde', 'ch-de':'chde', 'de-ch':'chde' } - if (A.has_key(combined)): + if (combined in A): return A[combined] else: return None @@ -48,10 +48,10 @@ #param_word_trn = ("q",word) #set query parameter #param_lang_pair = ("langpair",from_lang+"|"+to_lang) - request_url = url + "?" + urllib.urlencode(params) + request_url = url + "?" + urllib.parse.urlencode(params) #print request_url try: - results = urllib2.urlopen(request_url) + results = urllib.request.urlopen(request_url) return results.read() except: #in case of error not to return incompleted results @@ -84,10 +84,10 @@ # called by Parley to translate the word def translateWord(word,from_lang,to_lang): - print "dict-leo.py - Translating:",word, "from", from_lang, "to", to_lang + print("dict-leo.py - Translating:",word, "from", from_lang, "to", to_lang) data = fetchData(word,locale(from_lang),locale(to_lang)) if data != None: - print "Data Fetched for:",word + print("Data Fetched for:",word) #print data #print data parser = parseData(data,word,from_lang,to_lang) @@ -98,7 +98,7 @@ def getLanguagePairs(): data = fetchData("ignorethis","en","fr") parser = parseData(data) - return map(split_langpair,parser.langpairs) + return list(map(split_langpair,parser.langpairs)) # function to split a language pair string into a tuple def split_langpair(s): --- ./plugins/test.py (original) +++ ./plugins/test.py (refactored) @@ -9,7 +9,7 @@ def testPyQt(): - print "Testing pyQt" + print("Testing pyQt") #app = QtGui.QApplication(sys.argv) #(formClass, baseClassu) = uic.loadUiType(Parley.pluginDirs()[0]+"./mywidget.ui") @@ -30,7 +30,7 @@ forms = Kross.module("forms") dialog = forms.createDialog("My Dialog") dialog.setButtons("Ok|Cancel") - print dir(dialog) + print(dir(dialog)) page = dialog.addPage("Picture Selector","Select an image","document-open") #l = forms.createLayout(dialog,"QVBoxLayout") #label = forms.createWidget(page,"QLabel") @@ -38,13 +38,13 @@ btn = forms.createWidget(page,"QPushButton") btn.text = "Next Picture" gview = forms.createWidget(page,"QGraphicsView") - print dir(gview) + print(dir(gview)) if dialog.exec_loop(): forms.showMessageBox("Information", "Okay...", "The Ok-button was pressed") def click(): - print "click" + print("click") def testUI2(): #print Parley.dataDirs() @@ -55,7 +55,7 @@ mydialog.setButtons("Ok|Cancel") mydialog.setFaceType("Plain") #Auto Plain List Tree Tabbed - print dir(mydialog) + print(dir(mydialog)) #for attr in dir(mydialog): #print attr, getattr(mydialog,attr) mywidget = forms.createWidgetFromUIFile(mydialog, Parley.pluginDirs()[0]+"./mywidget.ui") @@ -66,21 +66,21 @@ #mywidget.textEdit.setText("soooome string") Parley.connect(mywidget["QPushButton"],"pressed()",click) #print mywidget - print dir(mywidget) + print(dir(mywidget)) if mydialog.exec_loop(): if mydialog.result() == "Ok": - print mywidget["QTextEdit"].text + print(mywidget["QTextEdit"].text) def init(): - print "init: myscript1" + print("init: myscript1") def translateWord(word,fromLang,toLang): - print "myscript1: Translating Word ...", word, fromLang, toLang + print("myscript1: Translating Word ...", word, fromLang, toLang) Parley.addTranslation("Hello","en_US","fr","bonbon") def addNewEntry(): - print "Adding new entry" + print("Adding new entry") newEntry = Parley.activeLesson.newEntry() newEntry.translation(0).text = "boy" newEntry.translation(1).text = "hijo" @@ -98,7 +98,7 @@ for entry in Parley.doc.rootLesson.entries(True): for tr in entry.translations(): Parley.doc.setWordType(tr,"Noun") - print tr.wordType() + print(tr.wordType()) def addNewTenses(): for ident in Parley.doc.identifiers(): @@ -107,16 +107,16 @@ T.append("Past Simple") T.append("Past Perfect") ident.setTenses(T) - print ident.tenses() + print(ident.tenses()) def conjugations(): Parley.doc.setTenses(["present","past"]) - print Parley.doc.tenses() + print(Parley.doc.tenses()) for entry in Parley.doc.rootLesson.entries(True): for tr in entry.translations(): if tr.wordType() == "Verb": - print "setting conjugation" - print tr.text + print("setting conjugation") + print(tr.text) #tr.setConjugation("first","present","Plural","First") tr.setConjugation("first","present",Parley.Plural,Parley.First) tr.setConjugation("third","present",Parley.Plural,Parley.Third) @@ -126,22 +126,22 @@ #tr.setConjugation("se","present","Plural","Second") #tr.setConjugation("dualthird","present","Dual","Third") #print tr.conjugation("past","plural","Third") - print tr.conjugation("present") - print tr.conjugation("present",Parley.Plural) + print(tr.conjugation("present")) + print(tr.conjugation("present",Parley.Plural)) def testKUrl(): l = Parley.activeLesson - print l.name - print l.imageUrl + print(l.name) + print(l.imageUrl) l.imageUrl = "/home/kde-devel/" - print l.imageUrl + print(l.imageUrl) #print l.imageUrl() #l.setImageUrl("/home/kde-devel/image.jpg"); #print l.imageUrl() def registerActions(): newaction = Parley.newAction("my_script1") - print newaction + print(newaction) newaction.text="My script 1" Parley.connect(newaction,"triggered()",actionFunction) @@ -164,10 +164,10 @@ def appendChildrenToAllLessons(): children = Parley.activeLesson.childLessons() - print children + print(children) i = 1 for child in children: - print dir(child) + print(dir(child)) newlesson = Parley.document.newLesson("Testa!! " + str(i)) child.appendChildLesson(newlesson) i = i + 1 @@ -176,7 +176,7 @@ def testcode(): new_entry = Parley.activeLesson.newEntry() new_entry.setTranslations(["good morning","bonjour"]) - print new_entry.active + print(new_entry.active) new_entry.active = False Parley.activeLesson.appendEntry(new_entry) return @@ -184,7 +184,7 @@ #Parley.doc.setTenseName(1,"past simple") for entry in Parley.doc.rootLesson.entries(True): for tr in entry.translations(): - print tr.wordType() + print(tr.wordType()) if tr.text == "play": Parley.doc.setWordType(tr,"Verb") tr.setConjugation("plays","present","singular","third") @@ -192,9 +192,9 @@ return for entry in Parley.document.rootLesson.entries(True): for translation in entry.translations(): - print translation.text - print translation.practiceDate() - print translation.practiceDate("dd/MM/yyyy") + print(translation.text) + print(translation.practiceDate()) + print(translation.practiceDate("dd/MM/yyyy")) def newDocument(): @@ -247,8 +247,8 @@ newid.setArticle("h",Parley.Singular,Parley.Definite,Parley.Feminine) newid.setArticle("to",Parley.Singular,Parley.Definite,Parley.Neutral) newid.setPersonalPronoun("oi",Parley.Plural,Parley.First) - print newid.personalPronoun(Parley.Plural,Parley.First) - print newid.article(Parley.Singular,Parley.Definite,Parley.Neutral) + print(newid.personalPronoun(Parley.Plural,Parley.First)) + print(newid.article(Parley.Singular,Parley.Definite,Parley.Neutral)) index = Parley.doc.appendIdentifier(newid) def tryArticle2(): @@ -262,7 +262,7 @@ newid.setArticle("ta",Parley.Singular|Parley.Indefinite|Parley.Masculine) #newid.setPersonalPronoun("oi",Parley.Plural,Parley.First) #print newid.personalPronoun(Parley.Plural,Parley.First) - print newid.article(Parley.Singular|Parley.Definite|Parley.Neuter) + print(newid.article(Parley.Singular|Parley.Definite|Parley.Neuter)) index = Parley.doc.appendIdentifier(newid) def GermanArticles(): @@ -283,7 +283,7 @@ newid.setPersonalPronoun("wir",Parley.Plural,Parley.First) newid.setPersonalPronoun("ihr",Parley.Plural,Parley.Second) newid.setPersonalPronoun("sie",Parley.Plural,Parley.Third) - print newid.personalPronouns() + print(newid.personalPronouns()) index = Parley.doc.appendIdentifier(newid) #how to specify the articles and personal pronouns of a language (German in this example) @@ -311,11 +311,11 @@ def testEnums(): for entry in Parley.doc.rootLesson.entries(True): tr = entry.translation(0) - print tr + print(tr) tr.setDeclension("Paizontas",Parley.Singular,Parley.Genitive) tr.setDeclension("Paizomenos",Parley.Singular,Parley.Accusative) - print tr.declension(Parley.Singular,Parley.Genitive).text - print tr.declension(Parley.Singular,Parley.Accusative).text + print(tr.declension(Parley.Singular,Parley.Genitive).text) + print(tr.declension(Parley.Singular,Parley.Accusative).text) return def testSetEntries(): @@ -323,11 +323,11 @@ entries = [] #entries.append(l.newEntry(["good morning","bonjoura"])) entries.append(l.newEntry(["ela","paenne"])) - print entries + print(entries) l.setEntries(entries) def actionFunction(): - print "Action called!!" + print("Action called!!") #addNewTenses() GermanArticlesNew() #for entry in Parley.doc.rootLesson.entries(True): @@ -355,41 +355,41 @@ def actionFunction_old(): - print "Action called!!" + print("Action called!!") entries = Parley.activeLesson.entries(True) for entry in entries: s = "" for tr in entry.translations: - print tr + print(tr) if tr.text: s += tr.text + " " - print s; + print(s); - print "sublessons" + print("sublessons") for sublesson in Parley.activeLesson.childLessons: - print sublesson.name + print(sublesson.name) return def actionFunction2(): - print "Action2 called!!" + print("Action2 called!!") tenses = Parley.doc.tenses() - print tenses + print(tenses) tenses.append("Present Perfect") tenses.append("Past Simple") Parley.doc.setTenses(tenses) - print Parley.doc.tenses() + print(Parley.doc.tenses()) return def test(): - print "Test from myscript1.py" + print("Test from myscript1.py") testAction() def test_old(): - print "Test from myscript1.py"RefactoringTool: Refactored ./scripts_test/google_translation.py RefactoringTool: Refactored ./scripts_test/myscript.py RefactoringTool: Refactored ./scripts_test/ectaco.py RefactoringTool: Files that were modified: RefactoringTool: ./plugins/example.py RefactoringTool: ./plugins/google_dictionary.py RefactoringTool: ./plugins/wiktionary/wiktionary_sound.py RefactoringTool: ./plugins/wiktionary/mwclient/sleep.py RefactoringTool: ./plugins/wiktionary/mwclient/errors.py RefactoringTool: ./plugins/wiktionary/mwclient/image.py RefactoringTool: ./plugins/wiktionary/mwclient/requests_oauthlib/oauth2_auth.py RefactoringTool: ./plugins/wiktionary/mwclient/requests_oauthlib/compliance_fixes/fitbit.py RefactoringTool: ./plugins/wiktionary/mwclient/requests_oauthlib/compliance_fixes/douban.py RefactoringTool: ./plugins/wiktionary/mwclient/requests_oauthlib/compliance_fixes/slack.py RefactoringTool: ./plugins/wiktionary/mwclient/requests_oauthlib/compliance_fixes/facebook.py RefactoringTool: ./plugins/wiktionary/mwclient/requests_oauthlib/compliance_fixes/linkedin.py RefactoringTool: ./plugins/wiktionary/mwclient/requests_oauthlib/compliance_fixes/__init__.py RefactoringTool: ./plugins/wiktionary/mwclient/requests_oauthlib/compliance_fixes/mailchimp.py RefactoringTool: ./plugins/wiktionary/mwclient/requests_oauthlib/compliance_fixes/weibo.py RefactoringTool: ./plugins/wiktionary/mwclient/requests_oauthlib/oauth1_session.py RefactoringTool: ./plugins/wiktionary/mwclient/requests_oauthlib/__init__.py RefactoringTool: ./plugins/wiktionary/mwclient/requests_oauthlib/oauth1_auth.py RefactoringTool: ./plugins/wiktionary/mwclient/requests_oauthlib/oauth2_session.py RefactoringTool: ./plugins/wiktionary/mwclient/page.py RefactoringTool: ./plugins/wiktionary/mwclient/listing.py RefactoringTool: ./plugins/wiktionary/mwclient/util.py RefactoringTool: ./plugins/wiktionary/mwclient/client.py RefactoringTool: ./plugins/wiktionary/mwclient/__init__.py RefactoringTool: ./plugins/wiktionary/mwclient/six.py RefactoringTool: ./plugins/wiktionary/mwclient/ex.py RefactoringTool: ./plugins/leo-dict.py RefactoringTool: ./plugins/test.py RefactoringTool: ./scripts_test/google_translation.py RefactoringTool: ./scripts_test/myscript.py RefactoringTool: ./scripts_test/ectaco.py RefactoringTool: Warnings/messages while refactoring: RefactoringTool: ### In file ./plugins/wiktionary/mwclient/six.py ### RefactoringTool: Line 525: Calls to builtin next() possibly shadowed by global binding - print Parley.document.rootLesson.name + print("Test from myscript1.py") + print(Parley.document.rootLesson.name) #addNewEntry() testKUrl() #Parley.open('/home/kde-devel/My\ Vocabularies/test2.kvtml') @@ -398,36 +398,36 @@ lesson = Parley.activeLesson #print lesson.getEntries() - print lesson.name - print "Child lessons" - print lesson.childLessonCount() + print(lesson.name) + print("Child lessons") + print(lesson.childLessonCount()) for i in range(0,lesson.childLessonCount()): - print " ",lesson.childLesson(i).name + print(" ",lesson.childLesson(i).name) - print lesson.entry(0,True).translationIndices - print lesson.entry(0,True).translation(0).text - print lesson.entry(0,True).translation(1).text - print lesson.entry(0,True).translation(1).practiceDate - print "Listing" - print dir(lesson.entry(0,True).translation(1)) - - print "Translation attributes" - print len(dir(lesson.entry(0,True).translation(1))) + print(lesson.entry(0,True).translationIndices) + print(lesson.entry(0,True).translation(0).text) + print(lesson.entry(0,True).translation(1).text) + print(lesson.entry(0,True).translation(1).practiceDate) + print("Listing") + print(dir(lesson.entry(0,True).translation(1))) + + print("Translation attributes") + print(len(dir(lesson.entry(0,True).translation(1)))) for attr in dir(lesson.entry(0,True).translation(1)): a = getattr(lesson.entry(0,True).translation(1),attr) - print attr, a + print(attr, a) for entry in lesson.entries(true): - print entry.translation(0).text,lesson.entry(i,True).translation(1).grade + print(entry.translation(0).text,lesson.entry(i,True).translation(1).grade) for i in range(0,lesson.entryCount(True)): entry = lesson.entry(i,True) if entry.translation(0).text == "girl": entry.translation(0).text = "boy" - print lesson.entryCount() + print(lesson.entryCount()) lesson.removeEntry(0) - print lesson.entryCount() + print(lesson.entryCount()) #print Parley.locales() #print Parley.localeName("en_US") @@ -442,11 +442,11 @@ #doc.printName() def translateFromInternet(word,fromLang,toLang): - print "Translating from Internet!!.." + print("Translating from Internet!!..") Parley.connect("translateWord(const QString &,const QString &,const QString &)",translateFromInternet) -print "TEST ACTION" +print("TEST ACTION") registerActions() --- ./scripts_test/google_translation.py (original) +++ ./scripts_test/google_translation.py (refactored) @@ -1,5 +1,5 @@ -import urllib2 -import urllib +import urllib.request, urllib.error, urllib.parse +import urllib.request, urllib.parse, urllib.error from sgmllib import SGMLParser # fetches the html document for the given word and language pair @@ -7,9 +7,9 @@ url = "http://translate.google.com/translate_dict" param_word_trn = ("q",word) #set query parameter param_lang_pair = ("langpair",from_lang+"|"+to_lang) - request_url = url + "?" + urllib.urlencode([param_word_trn,param_lang_pair]) + request_url = url + "?" + urllib.parse.urlencode([param_word_trn,param_lang_pair]) #print request_url - results = urllib2.urlopen(request_url) + results = urllib.request.urlopen(request_url) return results.read() #parses data and returns the parser object (that contains the translations/langpairs found) @@ -30,7 +30,7 @@ def getLanguagePairs(): data = fetchData("ignorethis","en","fr") parser = parseData(data) - return map(split_langpair,parser.langpairs) + return list(map(split_langpair,parser.langpairs)) # function to split a language pair string into a tuple def split_langpair(s): --- ./scripts_test/myscript.py (original) +++ ./scripts_test/myscript.py (refactored) @@ -1,5 +1,5 @@ -import urllib2 -import urllib +import urllib.request, urllib.error, urllib.parse +import urllib.request, urllib.parse, urllib.error import re from sgmllib import SGMLParser @@ -22,7 +22,7 @@ def unknown_starttag(self,tag,attrs): self.mystack.append(tag) - print "unknown : ", tag, " ", len(self.mystack) + print("unknown : ", tag, " ", len(self.mystack)) def start_span(self, attrs): found = False @@ -34,51 +34,51 @@ self.mystack.append("span") def report_unbalanced(self,tag): - print "unbalanced : ",tag + print("unbalanced : ",tag) return def handle_data(self,data): if self.mystack[len(self.mystack)-1] == "": - print "data: ", data + print("data: ", data) self.words.append(data) def unknown_endtag(self,tag): #make it remove if self.mystack[len(self.mystack)-1] != tag if len(self.mystack) > 0: if self.mystack[len(self.mystack)-1] == tag: - print "end tag: ", self.mystack[len(self.mystack)-1] + print("end tag: ", self.mystack[len(self.mystack)-1]) self.mystack.pop() def parserTest(data): p = myParser() p.feed(data) - print p.words + print(p.words) p.close() def googleTranslation(word): param_word_trn = ("q",word) - request_url = google_url + "?" + urllib.urlencode([param_version,param_word_trn,param_lang_pair]) - print request_url - headers = urllib.urlencode([header_referer]) - results = urllib2.urlopen(request_url,headers) + request_url = google_url + "?" + urllib.parse.urlencode([param_version,param_word_trn,param_lang_pair]) + print(request_url) + headers = urllib.parse.urlencode([header_referer]) + results = urllib.request.urlopen(request_url,headers) data = results.read() def googleTranslation2(word): param_word_trn = ("q",word) - request_url = google_url + "?" + urllib.urlencode([param_version,param_word_trn,param_lang_pair]) - print request_url - r = urllib2.Request(request_url) + request_url = google_url + "?" + urllib.parse.urlencode([param_version,param_word_trn,param_lang_pair]) + print(request_url) + r = urllib.request.Request(request_url) r.add_header("Referer",referer_url) - results = urllib2.urlopen(r) + results = urllib.request.urlopen(r) data = results.read() return data def fetchTranslation(word): param_word_trn = ("q",word) - request_url = url + "?" + urllib.urlencode([param_word_trn,param_lang_pair]) - print request_url - results = urllib2.urlopen(request_url) + request_url = url + "?" + urllib.parse.urlencode([param_word_trn,param_lang_pair]) + print(request_url) + results = urllib.request.urlopen(request_url) data = results.read() #p = re.compile('(?:.*)*([^<>]*)',re.IGNORECASE) p = re.compile('([^<>]*)',re.IGNORECASE) @@ -93,4 +93,4 @@ def testTuple(): return [("first","second"),("first1","second1")] -print fetchTranslation("love") +print(fetchTranslation("love")) --- ./scripts_test/ectaco.py (original) +++ ./scripts_test/ectaco.py (refactored) @@ -1,5 +1,5 @@ -import urllib2 -import urllib +import urllib.request, urllib.error, urllib.parse +import urllib.request, urllib.parse, urllib.error from sgmllib import SGMLParser #"http://online-old.ectaco.com/online/diction.php3?lang=7&q=2&refid=316&pagelang=23&word=test&direction=1" @@ -10,9 +10,9 @@ params = [("lang",7),("q",2),("refid",31),("pagelang",23),("word",word),("direction",1)] #param_word_trn = ("q",word) #set query parameter #param_lang_pair = ("langpair",from_lang+"|"+to_lang) - request_url = url + "?" + urllib.urlencode(params) + request_url = url + "?" + urllib.parse.urlencode(params) #print request_url - results = urllib2.urlopen(request_url) + results = urllib.request.urlopen(request_url) #results.encoding = 'windows-1250' return results.read().decode("cp1250") #return unicode(results.read(),'iso-8859-1') + /usr/bin/cat /home/iurt/rpmbuild/SOURCES/parley-18.04.2-python-3.7.patch + /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch + RPM_EC=0 ++ jobs -p + exit 0 Executing(%build): /bin/sh -e /home/iurt/rpmbuild/tmp/rpm-tmp.MH6Jeg + umask 022 + cd /home/iurt/rpmbuild/BUILD + cd parley-19.12.0 + '[' 1 -eq 1 ']' + '[' 1 -eq 1 ']' + QTDIR=/usr + export QTDIR + PATH=/usr/lib64/qt5/bin:/usr/local/bin:/usr/bin:/usr/local/games:/usr/games:/usr/lib64/qt5/bin:/home/iurt/.local/bin:/home/iurt/bin + export PATH + CFLAGS='-O2 -g -pipe -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -fasynchronous-unwind-tables' + export CFLAGS + CXXFLAGS='-O2 -g -pipe -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -fasynchronous-unwind-tables' + export CXXFLAGS + FFLAGS='-O2 -g -pipe -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -fasynchronous-unwind-tables ' + export FFLAGS + FCFLAGS='-O2 -g -pipe -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -fasynchronous-unwind-tables ' + export FCFLAGS + LDFLAGS=' -Wl,--as-needed -Wl,--no-undefined -Wl,-z,relro -Wl,-O1 -Wl,--build-id -Wl,--enable-new-dtags' + export LDFLAGS + /usr/bin/cmake -S . -B build -DCMAKE_INSTALL_PREFIX:PATH=/usr -DCMAKE_INSTALL_LIBDIR:PATH=/usr/lib64 -DCMAKE_INSTALL_LIBEXECDIR:PATH=/usr/libexec -DCMAKE_INSTALL_RUNSTATEDIR:PATH=/run -DCMAKE_INSTALL_SYSCONFDIR:PATH=/etc -DINCLUDE_INSTALL_DIR:PATH=/usr/include -DLIB_INSTALL_DIR:PATH=/usr/lib64 -DSYSCONF_INSTALL_DIR:PATH=/etc -DSHARE_INSTALL_PREFIX:PATH=/usr/share -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-DNDEBUG -DCMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-DNDEBUG -DLIB_SUFFIX=64 -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON '-DCMAKE_MODULE_LINKER_FLAGS=-Wl,--as-needed -Wl,-z,relro -Wl,-O1 -Wl,--build-id -Wl,--enable-new-dtags' -DBUILD_SHARED_LIBS:BOOL=ON -DBUILD_STATIC_LIBS:BOOL=OFF -DBUILD_SHARED_LIBS:BOOL=ON -DBUILD_TESTING:BOOL=FALSE -DCMAKE_INSTALL_PREFIX:PATH=/usr -DCMAKE_INSTALL_FULL_BINDIR=/usr/bin -DCMAKE_INSTALL_FULL_LIBEXECDIR=/usr/libexec -DCMAKE_INSTALL_FULL_LIBEXECDIR_KF5=/usr/libexec/kf5 -DCMAKE_USE_RELATIVE_PATHS:BOOL=ON -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DBIN_INSTALL_DIR:PATH=/usr/bin -DINCLUDE_INSTALL_DIR:PATH=/usr/include -DLIB_INSTALL_DIR:PATH=lib64 -DKCFG_INSTALL_DIR:PATH=/usr/share/config.kcfg -DPLUGIN_INSTALL_DIR:PATH=/usr/lib64/qt5/plugins -DQT_PLUGIN_INSTALL_DIR:PATH=/usr/lib64/qt5/plugins -DQML_INSTALL_DIR:PATH=/usr/lib64/qt5/qml -DIMPORTS_INSTALL_DIR:PATH=/usr/lib64/qt5/imports -DECM_MKSPECS_INSTALL_DIR:PATH=/usr/lib64/qt5/mkspecs/modules -DSYSCONF_INSTALL_DIR:PATH=/etc -DLIBEXEC_INSTALL_DIR:PATH=/usr/libexec -DKF5_LIBEXEC_INSTALL_DIR=/usr/libexec/kf5 -DKF5_INCLUDE_INSTALL_DIR=/usr/include/KF5 -DDBUS_INTERFACES_INSTALL_DIR=share/dbus-1/interfaces -DKDE_INSTALL_USE_QT_SYS_PATHS:BOOL=ON -DKDE_INSTALL_BINDIR:PATH=/usr/bin -DKDE_INSTALL_INCLUDEDIR:PATH=/usr/include -DKDE_INSTALL_KCFGDIR:PATH=/usr/share/config.kcfg -DKDE_INSTALL_LIBDIR:PATH=/usr/lib64 -DKDE_INSTALL_LIBEXECDIR:PATH=/usr/libexec -DKDE_INSTALL_METAINFODIR:PATH=/usr/share/appdata -DKDE_INSTALL_PLUGINDIR:PATH=/usr/lib64/qt5/plugins -DKDE_INSTALL_QMLDIR:PATH=/usr/lib64/qt5/qml -DKDE_INSTALL_QTPLUGINDIR:PATH=/usr/lib64/qt5/plugins -DKDE_INSTALL_QTQUICKIMPORTSDIR:PATH=/usr/lib64/qt5/imports -DKDE_INSTALL_SYSCONFDIR:PATH=/etc -- The C compiler identification is GNU 9.2.1 -- The CXX compiler identification is GNU 9.2.1 -- Check for working C compiler: /usr/bin/cc -- Check for working C compiler: /usr/bin/cc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done CMake Deprecation Warning at /usr/share/ECM/kde-modules/KDEInstallDirs.cmake:356 (message): SHARE_INSTALL_PREFIX is deprecated, use KDE_INSTALL_DATAROOTDIR instead. Call Stack (most recent call first): /usr/share/ECM/kde-modules/KDEInstallDirs.cmake:411 (_define_relative) /usr/share/ECM/kde-modules/KDEInstallDirs.cmake:550 (_define_absolute) CMakeLists.txt:17 (include) CMake Deprecation Warning at /usr/share/ECM/kde-modules/KDEInstallDirs.cmake:356 (message): DBUS_INTERFACES_INSTALL_DIR is deprecated, use KDE_INSTALL_DBUSINTERFACEDIR instead. Call Stack (most recent call first): /usr/share/ECM/kde-modules/KDEInstallDirs.cmake:640 (_define_relative) CMakeLists.txt:17 (include) -- Looking for __GLIBC__ -- Looking for __GLIBC__ - found -- Performing Test _OFFT_IS_64BIT -- Performing Test _OFFT_IS_64BIT - Success -- Performing Test HAVE_DATE_TIME -- Performing Test HAVE_DATE_TIME - Success -- Found KF5DocTools: /usr/lib64/cmake/KF5DocTools/KF5DocToolsConfig.cmake (found version "5.65.0") -- Found KF5CoreAddons: /usr/lib64/cmake/KF5CoreAddons/KF5CoreAddonsConfig.cmake (found version "5.65.0") -- Found KF5Config: /usr/lib64/cmake/KF5Config/KF5ConfigConfig.cmake (found version "5.65.0") -- Found KF5Crash: /usr/lib64/cmake/KF5Crash/KF5CrashConfig.cmake (found version "5.65.0") -- Found Gettext: /usr/bin/msgmerge (found version "0.20.1") -- Found KF5I18n: /usr/lib64/cmake/KF5I18n/KF5I18nConfig.cmake (found version "5.65.0") -- Found KF5KIO: /usr/lib64/cmake/KF5KIO/KF5KIOConfig.cmake (found version "5.65.0") -- Found KF5NewStuff: /usr/lib64/cmake/KF5NewStuff/KF5NewStuffConfig.cmake (found version "5.65.0") -- Found KF5Kross: /usr/lib64/cmake/KF5Kross/KF5KrossConfig.cmake (found version "5.65.0") -- Found KF5Sonnet: /usr/lib64/cmake/KF5Sonnet/KF5SonnetConfig.cmake (found version "5.65.0") -- Found KF5KCMUtils: /usr/lib64/cmake/KF5KCMUtils/KF5KCMUtilsConfig.cmake (found version "5.65.0") -- Found KF5XmlGui: /usr/lib64/cmake/KF5XmlGui/KF5XmlGuiConfig.cmake (found version "5.65.0") -- Found KF5Notifications: /usr/lib64/cmake/KF5Notifications/KF5NotificationsConfig.cmake (found version "5.65.0") -- Found KF5: success (found suitable version "5.65.0", minimum required is "5.22.0") found components: DocTools CoreAddons Config Crash I18n KIO NewStuff Kross Sonnet KCMUtils XmlGui Notifications -- Found LibXslt: /usr/lib64/libxslt.so (found version "1.1.34") -- Found LibXml2: /usr/lib64/libxml2.so (found version "2.9.10") -- cmake cflags -O2 -g -pipe -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -fasynchronous-unwind-tables -fno-common -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wmissing-format-attribute -Wwrite-strings -Werror=implicit-function-declaration -- cmake link flags -Wl,--enable-new-dtags -Wl,--as-needed -Wl,--no-undefined -Wl,-z,relro -Wl,-O1 -Wl,--build-id -Wl,--enable-new-dtags -- XLST found -- X11 Xrender not found, but not required -- kdoctools installing handbook in /usr/share/doc/HTML/en/parley -- The following OPTIONAL packages have been found: * KF5Attica (required version >= 5.65.0) * KF5NewStuffCore (required version >= 5.65.0) * KF5IconThemes (required version >= 5.65.0) * KF5Completion (required version >= 5.65.0) * KF5ItemViews (required version >= 5.65.0) * KF5JobWidgets (required version >= 5.65.0) * KF5Solid (required version >= 5.65.0) * KF5TextWidgets (required version >= 5.65.0) * KF5Parts (required version >= 5.65.0) * KF5Service (required version >= 5.65.0) * KF5Auth (required version >= 5.65.0) * KF5Codecs (required version >= 5.65.0) * KF5WidgetsAddons (required version >= 5.65.0) * KF5ConfigWidgets (required version >= 5.65.0) * LibXslt, Required to build HTML export for Parley. * PkgConfig * LibXml2, Required to build HTML export for Parley. -- The following REQUIRED packages have been found: * ECM (required version >= 5.22.0) * Qt5Gui (required version >= 5.13.1) * Qt5Svg * Qt5Multimedia * Qt5Qml (required version >= 5.13.1) * Qt5Quick (required version >= 5.13.1) * Qt5WebChannel (required version >= 5.13.1) * Qt5Positioning (required version >= 5.13.1) * Qt5WebEngineCore (required version >= 5.13.1) * Qt5PrintSupport (required version >= 5.13.1) * Qt5WebEngineWidgets * Qt5 (required version >= 5.2.0) * KF5DocTools (required version >= 5.22.0) * KF5Crash (required version >= 5.22.0) * KF5NewStuff (required version >= 5.22.0) * Qt5Network (required version >= 5.11.0) * Qt5Concurrent (required version >= 5.11.0) * Gettext * KF5I18n (required version >= 5.65.0) * KF5Kross (required version >= 5.22.0) * KF5Sonnet (required version >= 5.22.0) * KF5KCMUtils (required version >= 5.22.0) * KF5CoreAddons (required version >= 5.65.0) * Qt5Core (required version >= 5.11.0) * KF5XmlGui (required version >= 5.22.0) * Qt5Widgets (required version >= 5.11.0) * KF5Notifications (required version >= 5.22.0) * KF5 (required version >= 5.22.0) * LibKEduVocDocument Required to manipulate the KDE word files. -- Configuring done -- Generating done CMake Warning: Manually-specified variables were not used by the project: BUILD_STATIC_LIBS CMAKE_C_FLAGS_RELWITHDEBINFO CMAKE_INSTALL_RUNSTATEDIR CMAKE_USE_RELATIVE_PATHS ECM_MKSPECS_INSTALL_DIR LIB_SUFFIX -- Build files have been written to: /home/iurt/rpmbuild/BUILD/parley-19.12.0/build + /usr/bin/make -O -j8 V=1 VERBOSE=1 make: *** No targets specified and no makefile found. Stop. error: Bad exit status from /home/iurt/rpmbuild/tmp/rpm-tmp.MH6Jeg (%build) RPM build errors: Bad exit status from /home/iurt/rpmbuild/tmp/rpm-tmp.MH6Jeg (%build) I: [iurt_root_command] ERROR: chroot