Hello community, here is the log from the commit of package spec-cleaner for openSUSE:Factory checked in at 2018-08-20 16:21:46 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/spec-cleaner (Old) and /work/SRC/openSUSE:Factory/.spec-cleaner.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "spec-cleaner" Mon Aug 20 16:21:46 2018 rev:55 rq:630463 version:1.1.1 Changes: -------- --- /work/SRC/openSUSE:Factory/spec-cleaner/spec-cleaner.changes 2018-07-02 23:33:10.617269600 +0200 +++ /work/SRC/openSUSE:Factory/.spec-cleaner.new/spec-cleaner.changes 2018-08-20 16:22:00.149041432 +0200 @@ -1,0 +2,11 @@ +Mon Aug 20 07:15:54 UTC 2018 - [email protected] + +- Version update to 1.1.1 bsc#1099674: + * Fix help message not working + * Make libexecdir opt-in rather than opt-out + * Account for LICENCE string not just LICENSE + * Warn about direct qmake/meson usage + * Use https when mentioning bugzilla in header + * Use tuples on some places rather than lists + +------------------------------------------------------------------- Old: ---- spec-cleaner-1.1.0.tar.gz New: ---- spec-cleaner-1.1.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ spec-cleaner.spec ++++++ --- /var/tmp/diff_new_pack.47oCE4/_old 2018-08-20 16:22:01.029042678 +0200 +++ /var/tmp/diff_new_pack.47oCE4/_new 2018-08-20 16:22:01.033042684 +0200 @@ -18,14 +18,13 @@ Name: spec-cleaner -Version: 1.1.0 +Version: 1.1.1 Release: 0 Summary: .spec file cleaner License: BSD-3-Clause Group: Development/Tools/Other URL: http://github.com/openSUSE/spec-cleaner Source0: https://github.com/openSUSE/%{name}/archive/%{name}-%{version}.tar.gz -BuildRequires: python3-devel BuildRequires: python3-pytest BuildRequires: python3-pytest-cov BuildRequires: python3-pytest-runner ++++++ spec-cleaner-1.1.0.tar.gz -> spec-cleaner-1.1.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec-cleaner-spec-cleaner-1.1.0/.travis.yml new/spec-cleaner-spec-cleaner-1.1.1/.travis.yml --- old/spec-cleaner-spec-cleaner-1.1.0/.travis.yml 2018-07-01 17:58:44.000000000 +0200 +++ new/spec-cleaner-spec-cleaner-1.1.1/.travis.yml 2018-08-20 09:08:50.000000000 +0200 @@ -1,13 +1,12 @@ -sudo: false +sudo: required addons: apt: packages: - rpm language: python python: - - "3.4" - - "3.5" - "3.6" + - "3.7" install: - pip install tox tox-travis coveralls script: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec-cleaner-spec-cleaner-1.1.0/setup.cfg new/spec-cleaner-spec-cleaner-1.1.1/setup.cfg --- old/spec-cleaner-spec-cleaner-1.1.0/setup.cfg 2018-07-01 17:58:44.000000000 +0200 +++ new/spec-cleaner-spec-cleaner-1.1.1/setup.cfg 2018-08-20 09:08:50.000000000 +0200 @@ -1,2 +1,6 @@ [aliases] test=pytest + +[flake8] +ignore = E402,E501,E502,W503,W504 +import-order-style = google diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec-cleaner-spec-cleaner-1.1.0/setup.py new/spec-cleaner-spec-cleaner-1.1.1/setup.py --- old/spec-cleaner-spec-cleaner-1.1.0/setup.py 2018-07-01 17:58:44.000000000 +0200 +++ new/spec-cleaner-spec-cleaner-1.1.1/setup.py 2018-08-20 09:08:50.000000000 +0200 @@ -2,8 +2,9 @@ # -*- coding: utf-8 -*- """Setup file for easy installation.""" +from glob import glob + from setuptools import setup -import glob from spec_cleaner import __version__ setup( @@ -45,8 +46,8 @@ packages=['spec_cleaner'], data_files=[ - ('lib/obs/service/', glob.glob('obs/*')), - ('share/spec-cleaner', glob.glob('data/*')), + ('lib/obs/service/', glob('obs/*')), + ('share/spec-cleaner', glob('data/*')), ], entry_points={ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec-cleaner-spec-cleaner-1.1.0/spec_cleaner/__init__.py new/spec-cleaner-spec-cleaner-1.1.1/spec_cleaner/__init__.py --- old/spec-cleaner-spec-cleaner-1.1.0/spec_cleaner/__init__.py 2018-07-01 17:58:44.000000000 +0200 +++ new/spec-cleaner-spec-cleaner-1.1.1/spec_cleaner/__init__.py 2018-08-20 09:08:50.000000000 +0200 @@ -4,16 +4,16 @@ # All rights reserved. # See COPYING for details. -import os -import sys import argparse from datetime import datetime +import os +import sys -from .rpmexception import RpmWrongArgs, RpmException from .rpmcleaner import RpmSpecCleaner +from .rpmexception import RpmException, RpmWrongArgs -__version__ = '1.1.0' +__version__ = '1.1.1' def process_args(argv): @@ -47,8 +47,8 @@ help='do not convert variables bracketing (%%{macro}) and keep it as it was on the input') parser.add_argument('--no-copyright', action='store_true', help='do not include official SUSE copyright hear and just keep what is present') - parser.add_argument('--no-libexecdir', action='store_true', - help='do not convert /usr/lib to %{_libexecdir}, ie if platform is having different libexecdir') + parser.add_argument('--libexecdir', action='store_true', + help='convert /usr/lib to %%{_libexecdir}') parser.add_argument('--copyright-year', metavar='YYYY', type=int, default=datetime.now().year, help='year to insert into the copyright header when re-generating it') output_group.add_argument('-o', '--output', default='', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec-cleaner-spec-cleaner-1.1.0/spec_cleaner/__main__.py new/spec-cleaner-spec-cleaner-1.1.1/spec_cleaner/__main__.py --- old/spec-cleaner-spec-cleaner-1.1.0/spec_cleaner/__main__.py 2018-07-01 17:58:44.000000000 +0200 +++ new/spec-cleaner-spec-cleaner-1.1.1/spec_cleaner/__main__.py 2018-08-20 09:08:50.000000000 +0200 @@ -1,5 +1,5 @@ -import sys import os +import sys path = os.path.dirname(os.path.dirname(__file__)) sys.path.insert(0, path) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec-cleaner-spec-cleaner-1.1.0/spec_cleaner/dependency_parser.py new/spec-cleaner-spec-cleaner-1.1.1/spec_cleaner/dependency_parser.py --- old/spec-cleaner-spec-cleaner-1.1.0/spec_cleaner/dependency_parser.py 2018-07-01 17:58:44.000000000 +0200 +++ new/spec-cleaner-spec-cleaner-1.1.1/spec_cleaner/dependency_parser.py 2018-08-20 09:08:50.000000000 +0200 @@ -1,13 +1,14 @@ -import re import logging +import re + from .rpmexception import NoMatchException from .rpmrequirestoken import RpmRequiresToken -chunk_types = [ +chunk_types = ( 'text', 'space', 'macro', 'operator', 'version' -] +) -state_types = ['start', 'name', 'operator', 'version'] +state_types = ('start', 'name', 'operator', 'version') re_brackets = {} re_brackets['('] = re.compile( @@ -32,7 +33,7 @@ re_macro_unbraced = re.compile('%[A-Za-z0-9_]{3,}') re_version_operator = re.compile('(>=|<=|=>|=<|>|<|=)') -logger = logging.getLogger("DepParser") +logger = logging.getLogger('DepParser') # Switch to logging.DEBUG if needed logger.setLevel(logging.ERROR) @@ -80,8 +81,8 @@ return '}' elif bracket == '(': return ')' - raise Exception("Undefined bracket matching - add defintion of '%s' to " - "matching_bracket()" % bracket) + raise Exception('Undefined bracket matching - add defintion of "%s" to ' + 'matching_bracket()' % bracket) def read_macro(string): @@ -98,12 +99,12 @@ if not string: return '', '', 'text' - if string[0:2] in ['>=', '<=', '=>', '=<']: + if string[0:2] in ('>=', '<=', '=>', '=<'): chunk = string[0:2] chunk_type = 'operator' rest = string[2:] - elif string[0:1] in ['<', '>', '=']: + elif string[0:1] in ('<', '>', '='): chunk = string[0:1] chunk_type = 'operator' rest = string[1:] @@ -118,7 +119,7 @@ chunk_type = 'text' rest = string[2:] - elif string[0:2] in ['%{', '%(']: + elif string[0:2] in ('%{', '%('): chunk, rest = read_macro(string) chunk_type = 'macro' @@ -144,7 +145,7 @@ class DependencyParser: def __init__(self, line): # adding comma will cause flush in the end of line - self.string = line + ", " + self.string = line + ', ' self.parsed = [] self.token = [] self.state = 'start' @@ -214,7 +215,7 @@ self.space = True elif self.next_type == 'operator': if self.space: - raise DepParserError("found operator after operator") + raise DepParserError('found operator after operator') self.token.append(self.next) @@ -229,7 +230,7 @@ elif self.next_type == 'macro': pass elif self.next_type == 'operator': - raise DepParserError("found operator after version") + raise DepParserError('found operator after version') self.token.append(self.next) @@ -241,7 +242,7 @@ elif self.next_type == 'macro': self.state = 'name' elif self.next_type == 'operator': - raise DepParserError("found operator when name expected") + raise DepParserError('found operator when name expected') self.token.append(self.next) @@ -254,4 +255,4 @@ self.version_state_change() elif self.state == 'start': self.start_state_change() - logger.debug("new state: %s", self.state) + logger.debug('new state: %s', self.state) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec-cleaner-spec-cleaner-1.1.0/spec_cleaner/fileutils.py new/spec-cleaner-spec-cleaner-1.1.1/spec_cleaner/fileutils.py --- old/spec-cleaner-spec-cleaner-1.1.0/spec_cleaner/fileutils.py 2018-07-01 17:58:44.000000000 +0200 +++ new/spec-cleaner-spec-cleaner-1.1.1/spec_cleaner/fileutils.py 2018-08-20 09:08:50.000000000 +0200 @@ -1,11 +1,10 @@ # vim: set ts=4 sw=4 et: coding=UTF-8 +from io import StringIO import os import sys import sysconfig -from io import StringIO - from .rpmexception import RpmException @@ -16,12 +15,12 @@ """ homedir = os.getenv('HOME', '~') + '/.local/' - possible_paths = [ + possible_paths = ( '{0}/../data/{1}'.format(os.path.dirname(os.path.realpath(__file__)), name), '{0}/share/spec-cleaner/{1}'.format(homedir, name), '{0}/share/spec-cleaner/{1}'.format(sysconfig.get_path('data'), name), '{0}/share/spec-cleaner/{1}'.format(sys.prefix, name), - ] + ) for path in possible_paths: try: @@ -41,9 +40,9 @@ data = StringIO() try: - with open(name, mode="r") as f: + with open(name, mode='r') as f: data.write(f.read()) - data.seek(0,0) + data.seek(0, 0) except (IOError, UnicodeDecodeError) as error: raise RpmException(str(error)) return data diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec-cleaner-spec-cleaner-1.1.0/spec_cleaner/rpmbuild.py new/spec-cleaner-spec-cleaner-1.1.1/spec_cleaner/rpmbuild.py --- old/spec-cleaner-spec-cleaner-1.1.0/spec_cleaner/rpmbuild.py 2018-07-01 17:58:44.000000000 +0200 +++ new/spec-cleaner-spec-cleaner-1.1.1/spec_cleaner/rpmbuild.py 2018-08-20 09:08:50.000000000 +0200 @@ -29,6 +29,10 @@ msg = '# FIXME: you should use the %%configure macro' elif self.reg.re_cmake.match(line): msg = '# FIXME: you should use %%cmake macros' + elif self.reg.re_meson.match(line): + msg = '# FIXME: you should use %%meson macros' + elif self.reg.re_qmake_qt5.match(line): + msg = '# FIXME: you should use %qmake_qt5 macro' else: return diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec-cleaner-spec-cleaner-1.1.0/spec_cleaner/rpmcleaner.py new/spec-cleaner-spec-cleaner-1.1.1/spec_cleaner/rpmcleaner.py --- old/spec-cleaner-spec-cleaner-1.1.0/spec_cleaner/rpmcleaner.py 2018-07-01 17:58:44.000000000 +0200 +++ new/spec-cleaner-spec-cleaner-1.1.1/spec_cleaner/rpmcleaner.py 2018-08-20 09:08:50.000000000 +0200 @@ -1,28 +1,27 @@ # vim: set ts=4 sw=4 et: coding=UTF-8 +import os.path +import shlex +import subprocess import sys import tempfile -import subprocess -import shlex -import os.path from .fileutils import open_stringio_spec -from .rpmsection import Section -from .rpmexception import RpmException +from .rpmbuild import RpmBuild +from .rpmcheck import RpmCheck from .rpmcopyright import RpmCopyright from .rpmdescription import RpmDescription -from .rpmprune import RpmClean -from .rpmprune import RpmChangelog -from .rpmpreamble import RpmPreamble +from .rpmexception import RpmException +from .rpmfiles import RpmFiles +from .rpmhelpers import find_macros_with_arg, load_keywords_whitelist, parse_rpm_showrc, read_cmake_changes, read_group_changes, read_licenses_changes, read_perl_changes, read_pkgconfig_changes, read_tex_changes +from .rpminstall import RpmInstall from .rpmpackage import RpmPackage +from .rpmpreamble import RpmPreamble from .rpmprep import RpmPrep -from .rpmbuild import RpmBuild -from .rpmcheck import RpmCheck -from .rpminstall import RpmInstall -from .rpmscriplets import RpmScriptlets -from .rpmfiles import RpmFiles +from .rpmprune import RpmChangelog, RpmClean from .rpmregexp import Regexp -from .rpmhelpers import load_keywords_whitelist, parse_rpm_showrc, find_macros_with_arg, read_group_changes, read_licenses_changes, read_pkgconfig_changes, read_perl_changes, read_tex_changes, read_cmake_changes +from .rpmscriplets import RpmScriptlets +from .rpmsection import Section class RpmSpecCleaner(object): @@ -65,8 +64,8 @@ self.options['allowed_groups'] = read_group_changes() self.options['reg'] = Regexp(self.options['unbrace_keywords']) # run gvim(diff) in foreground mode - if self.options['diff_prog'].startswith("gvim") and " -f" not in self.options['diff_prog']: - self.options['diff_prog'] += " -f" + if self.options['diff_prog'].startswith('gvim') and ' -f' not in self.options['diff_prog']: + self.options['diff_prog'] += ' -f' self.reg = self.options['reg'] self.fin = open_stringio_spec(self.options['specfile']) @@ -284,7 +283,7 @@ self.fout.flush() if self.options['diff']: - cmd = shlex.split(self.options['diff_prog'] + " " + self.options['specfile'].replace(" ", "\\ ") + " " + self.fout.name.replace(" ", "\\ ")) + cmd = shlex.split(self.options['diff_prog'] + ' ' + self.options['specfile'].replace(' ', '\\ ') + ' ' + self.fout.name.replace(' ', '\\ ')) try: subprocess.call(cmd, shell=False) except OSError as error: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec-cleaner-spec-cleaner-1.1.0/spec_cleaner/rpmcopyright.py new/spec-cleaner-spec-cleaner-1.1.1/spec_cleaner/rpmcopyright.py --- old/spec-cleaner-spec-cleaner-1.1.0/spec_cleaner/rpmcopyright.py 2018-07-01 17:58:44.000000000 +0200 +++ new/spec-cleaner-spec-cleaner-1.1.1/spec_cleaner/rpmcopyright.py 2018-08-20 09:08:50.000000000 +0200 @@ -24,9 +24,9 @@ def _add_pkg_header(self): specname = os.path.splitext(os.path.basename(self.spec))[0] - self.lines.append('''# + self.lines.append("""# # spec file for package {0} -#'''.format(specname)) +#""".format(specname)) def _create_default_copyright(self): self.my_copyright = '# Copyright (c) {0} SUSE LINUX GmbH, Nuernberg, Germany.'.format(self.year) @@ -39,7 +39,7 @@ self.lines.append(i) def _add_default_license(self): - self.lines.append('''# + self.lines.append("""# # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the @@ -49,8 +49,8 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ -#''') +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +#""") def _add_buildrules(self): for i in sorted(self.buildrules): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec-cleaner-spec-cleaner-1.1.0/spec_cleaner/rpmexception.py new/spec-cleaner-spec-cleaner-1.1.1/spec_cleaner/rpmexception.py --- old/spec-cleaner-spec-cleaner-1.1.0/spec_cleaner/rpmexception.py 2018-07-01 17:58:44.000000000 +0200 +++ new/spec-cleaner-spec-cleaner-1.1.1/spec_cleaner/rpmexception.py 2018-08-20 09:08:50.000000000 +0200 @@ -34,4 +34,3 @@ """ Exception raised by not matching corresponding brackets/etc """ - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec-cleaner-spec-cleaner-1.1.0/spec_cleaner/rpmfiles.py new/spec-cleaner-spec-cleaner-1.1.1/spec_cleaner/rpmfiles.py --- old/spec-cleaner-spec-cleaner-1.1.0/spec_cleaner/rpmfiles.py 2018-07-01 17:58:44.000000000 +0200 +++ new/spec-cleaner-spec-cleaner-1.1.1/spec_cleaner/rpmfiles.py 2018-08-20 09:08:50.000000000 +0200 @@ -37,8 +37,8 @@ """ Remove all %doc %_mandir to -> %_mandir as it is pointless to do twice """ - line = line.replace("%doc %{_mandir}", "%{_mandir}", 1) - line = line.replace("%doc %{_infodir}", "%{_infodir}", 1) + line = line.replace('%doc %{_mandir}', '%{_mandir}', 1) + line = line.replace('%doc %{_infodir}', '%{_infodir}', 1) return line def _set_man_compression(self, line): @@ -46,17 +46,17 @@ Set proper compression suffix on man/info pages, instead of .gz/.* use the proper macro variable """ - if line.startswith("%{_mandir}"): + if line.startswith('%{_mandir}'): line = self.reg.re_man_compression.sub(r'\1%{?ext_man}', line) - if line.startswith("%{_infodir}"): + if line.startswith('%{_infodir}'): line = self.reg.re_info_compression.sub('.info%{?ext_info}', line) return line def _move_license_from_doc(self, line): - if line.startswith("%doc") and self.reg.re_doclicense.search(line): + if line.startswith('%doc') and self.reg.re_doclicense.search(line): match = '' while self.reg.re_doclicense.search(line): match += self.reg.re_doclicense.search(line).group() line = self.reg.re_doclicense.sub('', line, 1) - Section.add(self, "%license {}".format(match)) + Section.add(self, '%license {}'.format(match)) return line diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec-cleaner-spec-cleaner-1.1.0/spec_cleaner/rpmhelpers.py new/spec-cleaner-spec-cleaner-1.1.1/spec_cleaner/rpmhelpers.py --- old/spec-cleaner-spec-cleaner-1.1.0/spec_cleaner/rpmhelpers.py 2018-07-01 17:58:44.000000000 +0200 +++ new/spec-cleaner-spec-cleaner-1.1.1/spec_cleaner/rpmhelpers.py 2018-08-20 09:08:50.000000000 +0200 @@ -44,10 +44,11 @@ macrofuncs += [found_macro] return macrofuncs + def read_conversion_changes(conversion_file): with open_datafile(conversion_file) as f: # the values are split by ': ' - return {key: value for key, value in (line.split(": ") for line in f)} + return {key: value for key, value in (line.split(': ') for line in f)} def read_tex_changes(): @@ -73,7 +74,7 @@ # file has format # correct license string<tab>known bad license string # tab is used as separator - return {old: correct for correct, old in (line.rstrip("\n").split("\t") for line in f)} + return {old: correct for correct, old in (line.rstrip('\n').split('\t') for line in f)} def read_group_changes(): @@ -106,8 +107,8 @@ # create back new string with replaced licenses s = ' '.join(licenses).replace( - "( ", "(").replace( - " )", ")").replace( + '( ', '(').replace( + ' )', ')').replace( ' and ', ' AND ').replace( ' or ', ' OR ').replace( ' with ', ' WITH ') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec-cleaner-spec-cleaner-1.1.0/spec_cleaner/rpminstall.py new/spec-cleaner-spec-cleaner-1.1.1/spec_cleaner/rpminstall.py --- old/spec-cleaner-spec-cleaner-1.1.0/spec_cleaner/rpminstall.py 2018-07-01 17:58:44.000000000 +0200 +++ new/spec-cleaner-spec-cleaner-1.1.1/spec_cleaner/rpminstall.py 2018-08-20 09:08:50.000000000 +0200 @@ -5,10 +5,10 @@ class RpmInstall(Section): - ''' + """ Remove commands that wipe out the build root. Replace %makeinstall (suse-ism). - ''' + """ def add(self, line): line = self._complete_cleanup(line) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec-cleaner-spec-cleaner-1.1.0/spec_cleaner/rpmpackage.py new/spec-cleaner-spec-cleaner-1.1.1/spec_cleaner/rpmpackage.py --- old/spec-cleaner-spec-cleaner-1.1.0/spec_cleaner/rpmpackage.py 2018-07-01 17:58:44.000000000 +0200 +++ new/spec-cleaner-spec-cleaner-1.1.1/spec_cleaner/rpmpackage.py 2018-08-20 09:08:50.000000000 +0200 @@ -1,7 +1,7 @@ # vim: set ts=4 sw=4 et: coding=UTF-8 -from .rpmsection import Section from .rpmpreamble import RpmPreamble +from .rpmsection import Section class RpmPackage(RpmPreamble): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec-cleaner-spec-cleaner-1.1.0/spec_cleaner/rpmpreamble.py new/spec-cleaner-spec-cleaner-1.1.1/spec_cleaner/rpmpreamble.py --- old/spec-cleaner-spec-cleaner-1.1.0/spec_cleaner/rpmpreamble.py 2018-07-01 17:58:44.000000000 +0200 +++ new/spec-cleaner-spec-cleaner-1.1.1/spec_cleaner/rpmpreamble.py 2018-08-20 09:08:50.000000000 +0200 @@ -4,11 +4,11 @@ import re from urllib import parse -from .rpmsection import Section -from .rpmpreambleelements import RpmPreambleElements from .dependency_parser import DependencyParser from .rpmhelpers import fix_license +from .rpmpreambleelements import RpmPreambleElements from .rpmrequirestoken import RpmRequiresToken +from .rpmsection import Section class RpmPreamble(Section): @@ -137,12 +137,12 @@ """ # check if we start with if if len(self.paragraph.items['conditions']) == 2 and \ - ((isinstance(self.paragraph.items['conditions'][0], list) and \ - self.paragraph.items['conditions'][0][-1].startswith("%if")) or \ - self.paragraph.items['conditions'][0].startswith("%if")): + ((isinstance(self.paragraph.items['conditions'][0], list) and \ + self.paragraph.items['conditions'][0][-1].startswith('%if')) or \ + self.paragraph.items['conditions'][0].startswith('%if')): self.paragraph.items['conditions'] = [] - PYPI_SOURCE_HOSTS = ("pypi.io", "files.pythonhosted.org", "pypi.python.org") + PYPI_SOURCE_HOSTS = ('pypi.io', 'files.pythonhosted.org', 'pypi.python.org') def _fix_pypi_source(self, url): """ @@ -166,14 +166,14 @@ return url filename = os.path.basename(parsed.path) - modname = filename[:filename.rfind("-")] + modname = filename[:filename.rfind('-')] # TODO the following condition checks if the filename starts with a macro, # and expects that if it does, the macro is called "modname". This is not # always the case. It would be better to detect the name of the macro and # browse local definitions to find its value. - if modname[0] == "%": - if (modname == "%modname" or modname == "%{modname}") \ + if modname[0] == '%': + if (modname == '%modname' or modname == '%{modname}') \ and self.modname: modname = self.modname else: @@ -345,7 +345,7 @@ self._add_line_to('conditions', line) self.condition = True # check for possibility of the bcond conditional - if "%{with" in line or "%{without" in line: + if '%{with' in line or '%{without' in line: self._condition_bcond = True self.start_subparagraph() self.previous_line = line @@ -447,14 +447,14 @@ self.multiline = True # if we are kernel and not multiline we need to be at bottom, so # lets use misc section, otherwise go for define - if not self.multiline and line.find("kernel_module") >= 0: + if not self.multiline and line.find('kernel_module') >= 0: self._add_line_to('misc', line) else: self._add_line_to('define', line) # catch "modname" for use in pypi url rewriting - if (line.startswith("%define") or line.startswith("%global")) and \ - line.find("modname") >= 0: + if (line.startswith('%define') or line.startswith('%global')) and \ + line.find('modname') >= 0: define, name, value = line.split(None, 2) self.modname = value @@ -530,7 +530,7 @@ # do not require special attention else: # cleanup - for (category, regexp) in self.category_to_clean.items(): + for (_category, regexp) in self.category_to_clean.items(): match = regexp.match(line) if match: return diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec-cleaner-spec-cleaner-1.1.0/spec_cleaner/rpmpreambleelements.py new/spec-cleaner-spec-cleaner-1.1.1/spec_cleaner/rpmpreambleelements.py --- old/spec-cleaner-spec-cleaner-1.1.0/spec_cleaner/rpmpreambleelements.py 2018-07-01 17:58:44.000000000 +0200 +++ new/spec-cleaner-spec-cleaner-1.1.1/spec_cleaner/rpmpreambleelements.py 2018-08-20 09:08:50.000000000 +0200 @@ -1,7 +1,7 @@ # vim: set ts=4 sw=4 et: coding=UTF-8 -from .rpmhelpers import sort_uniq, add_group, find_pkgconfig_statement, find_pkgconfig_declaration, fix_license from .rpmexception import RpmException +from .rpmhelpers import add_group, find_pkgconfig_declaration, find_pkgconfig_statement, fix_license, sort_uniq from .rpmrequirestoken import RpmRequiresToken @@ -42,7 +42,7 @@ 'excludearch': 'ExcludeArch', } - categories_order = [ + categories_order = ( 'define', 'bconds', 'bcond_conditions', @@ -81,7 +81,7 @@ 'build_conditions', 'conditions', 'tail', - ] + ) # categories that are sorted based on value in them categories_with_sorted_package_tokens = [ @@ -102,10 +102,10 @@ ] # categories that are sorted based on key value (eg Patch0 before Patch1) - categories_with_sorted_keyword_tokens = [ + categories_with_sorted_keyword_tokens = ( 'source', 'patch', - ] + ) def __init__(self, options): self.items = {} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec-cleaner-spec-cleaner-1.1.0/spec_cleaner/rpmprep.py new/spec-cleaner-spec-cleaner-1.1.1/spec_cleaner/rpmprep.py --- old/spec-cleaner-spec-cleaner-1.1.0/spec_cleaner/rpmprep.py 2018-07-01 17:58:44.000000000 +0200 +++ new/spec-cleaner-spec-cleaner-1.1.1/spec_cleaner/rpmprep.py 2018-08-20 09:08:50.000000000 +0200 @@ -5,10 +5,10 @@ class RpmPrep(Section): - ''' + """ Try to simplify to %setup -q when possible. Replace %patch with %patch0 - ''' + """ def add(self, line): line = self._complete_cleanup(line) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec-cleaner-spec-cleaner-1.1.0/spec_cleaner/rpmprune.py new/spec-cleaner-spec-cleaner-1.1.1/spec_cleaner/rpmprune.py --- old/spec-cleaner-spec-cleaner-1.1.0/spec_cleaner/rpmprune.py 2018-07-01 17:58:44.000000000 +0200 +++ new/spec-cleaner-spec-cleaner-1.1.1/spec_cleaner/rpmprune.py 2018-08-20 09:08:50.000000000 +0200 @@ -24,4 +24,4 @@ This translates to adding just %changelog """ if len(self.lines) == 0: - Section.add(self, "%changelog") + Section.add(self, '%changelog') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec-cleaner-spec-cleaner-1.1.0/spec_cleaner/rpmregexp.py new/spec-cleaner-spec-cleaner-1.1.1/spec_cleaner/rpmregexp.py --- old/spec-cleaner-spec-cleaner-1.1.0/spec_cleaner/rpmregexp.py 2018-07-01 17:58:44.000000000 +0200 +++ new/spec-cleaner-spec-cleaner-1.1.1/spec_cleaner/rpmregexp.py 2018-08-20 09:08:50.000000000 +0200 @@ -96,6 +96,8 @@ re_suseupdateconfig = re.compile(r'(%{?suse_update_config|${?\?suse_update_config:)') re_configure = re.compile(r'(^|(.*\s)?)./configure(\s.*|)$') re_cmake = re.compile(r'(^|(.*\s)?)cmake(\s.*|)$') + re_qmake_qt5 = re.compile(r'(^|(.*\s)?)qmake-qt5(\s.*|)$') + re_meson = re.compile(r'(^|(.*\s)?)meson(\s.*|)$') # rpmcopyright re_copyright = re.compile(r'^#\s*Copyright\ \(c\)\s*(.*)', re.IGNORECASE) @@ -124,8 +126,10 @@ re_man_compression = re.compile(r'(\d)(\.?\*|\.gz|%{?ext_man}?)$') re_info_compression = re.compile(r'\.info(\.?\*|\.gz|%{?ext_info}?)$') re_defattr = re.compile(r'^\s*%defattr\s*\(\s*-\s*,\s*root\s*,\s*root\s*(,\s*-\s*)?\)\s*') - re_doclicense = re.compile(r'(\S+)?(LICENSE|COPYING)(\*|\.(\*|\S+))?($|\s)', re.IGNORECASE) + re_doclicense = re.compile(r'(\S+)?(LICEN(S|C)E|COPYING)(\*|\.(\*|\S+))?($|\s)', re.IGNORECASE) + # rpmscriptlets + re_ldconfig = re.compile(r'(^|(.*\s)?)%{?run_ldconfig}?(\s.*|)$', re.IGNORECASE) # patches/sources re_ptch = re.compile(r'%{P:(\d+)}') re_src = re.compile(r'%{S:(\d+)}') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec-cleaner-spec-cleaner-1.1.0/spec_cleaner/rpmscriplets.py new/spec-cleaner-spec-cleaner-1.1.1/spec_cleaner/rpmscriplets.py --- old/spec-cleaner-spec-cleaner-1.1.0/spec_cleaner/rpmscriplets.py 2018-07-01 17:58:44.000000000 +0200 +++ new/spec-cleaner-spec-cleaner-1.1.1/spec_cleaner/rpmscriplets.py 2018-08-20 09:08:50.000000000 +0200 @@ -5,9 +5,18 @@ class RpmScriptlets(Section): - ''' + """ Do %post -p /sbin/ldconfig when only scriplet command is /sbin/ldconfig - ''' + """ + + def add(self, line): + line = self._complete_cleanup(line) + line = self._remove_deprecated_ldconfig(line) + Section.add(self, line) + + def _remove_deprecated_ldconfig(self, line): + line = self.reg.re_ldconfig.sub('/sbin/ldconfig', line) + return line def output(self, fout, newline=True, new_class=None): if not self.minimal: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec-cleaner-spec-cleaner-1.1.0/spec_cleaner/rpmsection.py new/spec-cleaner-spec-cleaner-1.1.1/spec_cleaner/rpmsection.py --- old/spec-cleaner-spec-cleaner-1.1.0/spec_cleaner/rpmsection.py 2018-07-01 17:58:44.000000000 +0200 +++ new/spec-cleaner-spec-cleaner-1.1.1/spec_cleaner/rpmsection.py 2018-08-20 09:08:50.000000000 +0200 @@ -19,7 +19,7 @@ self.spec = options['specfile'] self.minimal = options['minimal'] self.no_curlification = options['no_curlification'] - self.no_libexecdir = options['no_libexecdir'] + self.libexecdir = options['libexecdir'] self.reg = options['reg'] # Are we inside of conditional or not self.condition = False @@ -165,7 +165,7 @@ line = self.reg.re_prefix.sub(r'%{_prefix}\1', line) line = self.reg.re_bindir.sub(r'%{_bindir}\1', line) line = self.reg.re_sbindir.sub(r'%{_sbindir}\1', line) - if not self.minimal and not self.no_libexecdir: + if not self.minimal and self.libexecdir: line = self.reg.re_libexecdir.sub(r'%{_libexecdir}\1', line) line = self.reg.re_includedir.sub(r'%{_includedir}\1', line) line = self.reg.re_datadir.sub(r'%{_datadir}\1', line) @@ -192,7 +192,7 @@ if self.minimal: line = line.replace('%__' + i, r[i]) - for i in ['aclocal', 'ar', 'as', 'autoconf', 'autoheader', 'automake', 'bzip2', 'cat', 'chgrp', 'chmod', 'chown', 'cp', 'cpio', 'file', 'gpg', 'grep', 'gzip', 'id', 'install', 'ld', 'libtoolize', 'make', 'mkdir', 'mv', 'nm', 'objcopy', 'objdump', 'patch', 'perl', 'python', 'python2', 'python3', 'pypy3', 'ranlib', 'restorecon', 'rm', 'rsh', 'sed', 'semodule', 'ssh', 'strip', 'tar', 'unzip', 'xz']: + for i in ('aclocal', 'ar', 'as', 'autoconf', 'autoheader', 'automake', 'bzip2', 'cat', 'chgrp', 'chmod', 'chown', 'cp', 'cpio', 'file', 'gpg', 'grep', 'gzip', 'id', 'install', 'ld', 'libtoolize', 'make', 'mkdir', 'mv', 'nm', 'objcopy', 'objdump', 'patch', 'perl', 'python', 'python2', 'python3', 'pypy3', 'ranlib', 'restorecon', 'rm', 'rsh', 'sed', 'semodule', 'ssh', 'strip', 'tar', 'unzip', 'xz'): line = line.replace('%{__' + i + '}', i) if self.minimal: line = line.replace('%__' + i, i) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec-cleaner-spec-cleaner-1.1.0/tests/acceptance-tests.py new/spec-cleaner-spec-cleaner-1.1.1/tests/acceptance-tests.py --- old/spec-cleaner-spec-cleaner-1.1.0/tests/acceptance-tests.py 2018-07-01 17:58:44.000000000 +0200 +++ new/spec-cleaner-spec-cleaner-1.1.1/tests/acceptance-tests.py 2018-08-20 09:08:50.000000000 +0200 @@ -1,11 +1,11 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -import glob +from glob import glob import os from shutil import copyfile -import pytest +import pytest from spec_cleaner import RpmException from spec_cleaner import RpmSpecCleaner @@ -16,7 +16,7 @@ Generate list of tests we are going to use according to what is on hdd """ testglob = os.path.join('tests', 'in', '*.spec') - return [os.path.basename(f) for f in glob.glob(testglob)] + return [os.path.basename(f) for f in glob(testglob)] @pytest.fixture(scope='session') @@ -25,7 +25,7 @@ Generate list of tests we are going to use according to what is on hdd """ testglob = os.path.join('tests', 'keep-space', '*.spec') - return [os.path.basename(f) for f in glob.glob(testglob)] + return [os.path.basename(f) for f in glob(testglob)] class TestCompare(object): @@ -42,7 +42,7 @@ 'minimal': False, 'no_curlification': False, 'no_copyright': True, - 'no_libexecdir': False, + 'libexecdir': True, 'copyright_year': 2013, 'tex': False, 'perl': False, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec-cleaner-spec-cleaner-1.1.0/tests/fileutils-tests.py new/spec-cleaner-spec-cleaner-1.1.1/tests/fileutils-tests.py --- old/spec-cleaner-spec-cleaner-1.1.0/tests/fileutils-tests.py 2018-07-01 17:58:44.000000000 +0200 +++ new/spec-cleaner-spec-cleaner-1.1.1/tests/fileutils-tests.py 2018-08-20 09:08:50.000000000 +0200 @@ -2,9 +2,8 @@ # -*- coding: utf-8 -*- import pytest - -from spec_cleaner.fileutils import open_datafile, open_stringio_spec from spec_cleaner import RpmException +from spec_cleaner.fileutils import open_datafile, open_stringio_spec class TestFileutils(object): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec-cleaner-spec-cleaner-1.1.0/tests/header/header.spec new/spec-cleaner-spec-cleaner-1.1.1/tests/header/header.spec --- old/spec-cleaner-spec-cleaner-1.1.0/tests/header/header.spec 2018-07-01 17:58:44.000000000 +0200 +++ new/spec-cleaner-spec-cleaner-1.1.1/tests/header/header.spec 2018-08-20 09:08:50.000000000 +0200 @@ -14,7 +14,7 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # # icecream # needsbinariesforbuild diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec-cleaner-spec-cleaner-1.1.0/tests/in/doc2license.spec new/spec-cleaner-spec-cleaner-1.1.1/tests/in/doc2license.spec --- old/spec-cleaner-spec-cleaner-1.1.0/tests/in/doc2license.spec 2018-07-01 17:58:44.000000000 +0200 +++ new/spec-cleaner-spec-cleaner-1.1.1/tests/in/doc2license.spec 2018-08-20 09:08:50.000000000 +0200 @@ -8,7 +8,7 @@ %doc COPYING.* %files c -%doc COPYING LICENSE* +%doc COPYING LICENCE* %files d %doc acknow.txt license.txt readme.txt diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec-cleaner-spec-cleaner-1.1.0/tests/in/macros.spec new/spec-cleaner-spec-cleaner-1.1.1/tests/in/macros.spec --- old/spec-cleaner-spec-cleaner-1.1.0/tests/in/macros.spec 2018-07-01 17:58:44.000000000 +0200 +++ new/spec-cleaner-spec-cleaner-1.1.1/tests/in/macros.spec 2018-08-20 09:08:50.000000000 +0200 @@ -18,3 +18,7 @@ ./configure \ CFLAGS="-g" ./configure + +qmake-qt5 %{name}.pro -spec linux-g++ + +meson diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec-cleaner-spec-cleaner-1.1.0/tests/in/scriplets.spec new/spec-cleaner-spec-cleaner-1.1.1/tests/in/scriplets.spec --- old/spec-cleaner-spec-cleaner-1.1.0/tests/in/scriplets.spec 2018-07-01 17:58:44.000000000 +0200 +++ new/spec-cleaner-spec-cleaner-1.1.1/tests/in/scriplets.spec 2018-08-20 09:08:50.000000000 +0200 @@ -8,7 +8,7 @@ someothercommand %post -n %{_libname} -/sbin/ldconfig +%{run_ldconfig} %filetriggerin tools -- %{_datadir}/icons if [ "$(realpath %{_bindir}/gtk-update-icon-cache)" = "%{_bindir}/gtk-update-icon-cache-2.0" ]; then diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec-cleaner-spec-cleaner-1.1.0/tests/out/doc2license.spec new/spec-cleaner-spec-cleaner-1.1.1/tests/out/doc2license.spec --- old/spec-cleaner-spec-cleaner-1.1.0/tests/out/doc2license.spec 2018-07-01 17:58:44.000000000 +0200 +++ new/spec-cleaner-spec-cleaner-1.1.1/tests/out/doc2license.spec 2018-08-20 09:08:50.000000000 +0200 @@ -10,7 +10,7 @@ %license COPYING.* %files c -%license COPYING LICENSE* +%license COPYING LICENCE* %files d %license license.txt diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec-cleaner-spec-cleaner-1.1.0/tests/out/macros.spec new/spec-cleaner-spec-cleaner-1.1.1/tests/out/macros.spec --- old/spec-cleaner-spec-cleaner-1.1.0/tests/out/macros.spec 2018-07-01 17:58:44.000000000 +0200 +++ new/spec-cleaner-spec-cleaner-1.1.1/tests/out/macros.spec 2018-08-20 09:08:50.000000000 +0200 @@ -20,4 +20,10 @@ # FIXME: you should use the %%configure macro CFLAGS="-g" ./configure +# FIXME: you should use %qmake_qt5 macro +qmake-qt5 %{name}.pro -spec linux-g++ + +# FIXME: you should use %%meson macros +meson + %changelog diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec-cleaner-spec-cleaner-1.1.0/tests/out-minimal/doc2license.spec new/spec-cleaner-spec-cleaner-1.1.1/tests/out-minimal/doc2license.spec --- old/spec-cleaner-spec-cleaner-1.1.0/tests/out-minimal/doc2license.spec 2018-07-01 17:58:44.000000000 +0200 +++ new/spec-cleaner-spec-cleaner-1.1.1/tests/out-minimal/doc2license.spec 2018-08-20 09:08:50.000000000 +0200 @@ -10,7 +10,7 @@ %license COPYING.* %files c -%license COPYING LICENSE* +%license COPYING LICENCE* %files d %license license.txt diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec-cleaner-spec-cleaner-1.1.0/tests/out-minimal/macros.spec new/spec-cleaner-spec-cleaner-1.1.1/tests/out-minimal/macros.spec --- old/spec-cleaner-spec-cleaner-1.1.0/tests/out-minimal/macros.spec 2018-07-01 17:58:44.000000000 +0200 +++ new/spec-cleaner-spec-cleaner-1.1.1/tests/out-minimal/macros.spec 2018-08-20 09:08:50.000000000 +0200 @@ -16,4 +16,8 @@ CFLAGS="-g" ./configure +qmake-qt5 %{name}.pro -spec linux-g++ + +meson + %changelog diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec-cleaner-spec-cleaner-1.1.0/tox.ini new/spec-cleaner-spec-cleaner-1.1.1/tox.ini --- old/spec-cleaner-spec-cleaner-1.1.0/tox.ini 2018-07-01 17:58:44.000000000 +0200 +++ new/spec-cleaner-spec-cleaner-1.1.1/tox.ini 2018-08-20 09:08:50.000000000 +0200 @@ -1,5 +1,5 @@ [tox] -envlist = py34,py35,py36 +envlist = py36,py37 minversion = 1.6 skipsdist = True @@ -14,9 +14,15 @@ pytest_runner pytest-cov coverage + flake8 + flake8-import-order + flake8-bugbear + flake8-quotes + pep8-naming commands = pytest + flake8 [testenv:venv] commands = {posargs}
