Hello community,

here is the log from the commit of package spec-cleaner for openSUSE:Factory 
checked in at 2017-02-15 10:07:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/spec-cleaner (Old)
 and      /work/SRC/openSUSE:Factory/.spec-cleaner.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "spec-cleaner"

Changes:
--------
--- /work/SRC/openSUSE:Factory/spec-cleaner/spec-cleaner.changes        
2017-01-04 19:37:15.617425183 +0100
+++ /work/SRC/openSUSE:Factory/.spec-cleaner.new/spec-cleaner.changes   
2017-02-15 10:07:34.986245519 +0100
@@ -1,0 +2,7 @@
+Mon Feb 13 12:02:34 UTC 2017 - tchva...@suse.com
+
+- Version update to 0.9.2:
+  * More minimal fixes
+  * Add option to keep vertical space in preamble if desired
+
+-------------------------------------------------------------------

Old:
----
  spec-cleaner-0.9.1.tar.gz

New:
----
  spec-cleaner-0.9.2.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ spec-cleaner.spec ++++++
--- /var/tmp/diff_new_pack.YLR1OI/_old  2017-02-15 10:07:35.498173410 +0100
+++ /var/tmp/diff_new_pack.YLR1OI/_new  2017-02-15 10:07:35.498173410 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package spec-cleaner
 #
-# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
 # Copyright (c) 2012 Vincent Untz <vu...@opensuse.org>
 #
 # All modifications and additions to the file contributed by third parties
@@ -20,7 +20,7 @@
 # This is used for Fedora, we need to sync this
 %{!?py3_ver: %define py3_ver %{python3_version}}
 Name:           spec-cleaner
-Version:        0.9.1
+Version:        0.9.2
 Release:        0
 Summary:        .spec file cleaner
 License:        BSD-3-Clause
@@ -82,6 +82,7 @@
 %{_libexecdir}/obs/service/clean_spec_file.service
 %dir %{python3_sitelib}/spec_cleaner/
 %{python3_sitelib}/spec_cleaner/__init__.py
+%{python3_sitelib}/spec_cleaner/__main__.py
 %{python3_sitelib}/spec_cleaner/dependency_parser.py
 %{python3_sitelib}/spec_cleaner/fileutils.py
 %{python3_sitelib}/spec_cleaner/rpmbuild.py


++++++ spec-cleaner-0.9.1.tar.gz -> spec-cleaner-0.9.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/spec-cleaner-spec-cleaner-0.9.1/.travis.yml 
new/spec-cleaner-spec-cleaner-0.9.2/.travis.yml
--- old/spec-cleaner-spec-cleaner-0.9.1/.travis.yml     2016-12-30 
14:10:32.000000000 +0100
+++ new/spec-cleaner-spec-cleaner-0.9.2/.travis.yml     2017-02-13 
12:58:57.000000000 +0100
@@ -8,8 +8,14 @@
   include:
   - python: 2.7
     env: TOX_ENV=py27
+  - python: 3.3
+    env: TOX_ENV=py33
+  - python: 3.4
+    env: TOX_ENV=py34
   - python: 3.5
     env: TOX_ENV=py35
+  - python: 3.6
+    env: TOX_ENV=py36
 install:
 - pip install tox
 script:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/spec-cleaner-spec-cleaner-0.9.1/README.md 
new/spec-cleaner-spec-cleaner-0.9.2/README.md
--- old/spec-cleaner-spec-cleaner-0.9.1/README.md       2016-12-30 
14:10:32.000000000 +0100
+++ new/spec-cleaner-spec-cleaner-0.9.2/README.md       2017-02-13 
12:58:57.000000000 +0100
@@ -225,6 +225,7 @@
 NASA-1.3 | NASA Open Source Agreement 1.3
 Naumen | Naumen Public License
 NBPL-1.0 | Net Boolean Public License v1
+Net-SNMP | Net-SNMP License
 NetCDF | NetCDF license
 NGPL | Nethack General Public License
 NOSL | Netizen Open Source License
@@ -310,16 +311,20 @@
 SPL-1.0 | Sun Public License v1.0
 Watcom-1.0 | Sybase Open Watcom Public License 1.0
 TCL | TCL/TK License
+TCP-wrappers | TCP Wrappers License
 Unlicense | The Unlicense
 TMate | TMate Open Source License
 TORQUE-1.1 | TORQUE v2.5+ Software License v1.1
 TOSL | Trusster Open Source License
+Unicode-DFS-2015 | Unicode License Agreement - Data Files and Software (2015)
+Unicode-DFS-2016 | Unicode License Agreement - Data Files and Software (2016)
 Unicode-TOU | Unicode Terms of Use
 UPL-1.0 | Universal Permissive License v1.0
 NCSA | University of Illinois/NCSA Open Source License
 Vim | Vim License
 VOSTROM | VOSTROM Public License for Open Source
 VSL-1.0 | Vovida Software License v1.0
+W3C-20150513 | W3C Software Notice and Document License (2015-05-13)
 W3C-19980720 | W3C Software Notice and License (1998-07-20)
 W3C | W3C Software Notice and License (2002-12-31)
 Wsuipa | Wsuipa License
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/spec-cleaner-spec-cleaner-0.9.1/data/excludes-bracketing.txt 
new/spec-cleaner-spec-cleaner-0.9.2/data/excludes-bracketing.txt
--- old/spec-cleaner-spec-cleaner-0.9.1/data/excludes-bracketing.txt    
2016-12-30 14:10:32.000000000 +0100
+++ new/spec-cleaner-spec-cleaner-0.9.2/data/excludes-bracketing.txt    
2017-02-13 12:58:57.000000000 +0100
@@ -45,8 +45,7 @@
 gpg_verify
 icon_theme_cache_post[^\s]*
 if(\s*\(.*\))?
-ifarch
-ifnarch
+if[^\s]*
 include
 insserv_[^\s]*
 install
@@ -87,6 +86,19 @@
 pretrans
 preun
 py_compile
+python_alternative
+python_install_alternative
+python_uninstall_alternative
+python(.?)_only
+pypy(.?)_only
+pycache_only
+python(.?)_build
+python(.?)_install
+pypy3_build
+pypy3_install
+python_exec
+python_expand
+python_subpackages
 qmake
 qmake5
 qmake5_install
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/spec-cleaner-spec-cleaner-0.9.1/data/licenses_changes.txt 
new/spec-cleaner-spec-cleaner-0.9.2/data/licenses_changes.txt
--- old/spec-cleaner-spec-cleaner-0.9.1/data/licenses_changes.txt       
2016-12-30 14:10:32.000000000 +0100
+++ new/spec-cleaner-spec-cleaner-0.9.2/data/licenses_changes.txt       
2017-02-13 12:58:57.000000000 +0100
@@ -592,6 +592,8 @@
 NTP+   NTP+
 Naumen Naumen
 Naumen+        Naumen+
+Net-SNMP       Net-SNMP
+Net-SNMP+      Net-SNMP+
 NetCDF NetCDF
 NetCDF SUSE-NetCDF
 NetCDF+        NetCDF+
@@ -931,6 +933,8 @@
 TCL    SUSE-TCL
 TCL    TCL
 TCL+   TCL+
+TCP-wrappers   TCP-wrappers
+TCP-wrappers+  TCP-wrappers+
 TMate  TMate
 TMate+ TMate+
 TORQUE-1.1     TORQUE-1.1
@@ -940,6 +944,10 @@
 UPL-1.0        UPL-1.0
 UPL-1.0+       UPL-1.0+
 Unicode        http://www.unicode.org/copyright.html
+Unicode-DFS-2015       Unicode-DFS-2015
+Unicode-DFS-2015+      Unicode-DFS-2015+
+Unicode-DFS-2016       Unicode-DFS-2016
+Unicode-DFS-2016+      Unicode-DFS-2016+
 Unicode-TOU    Unicode-TOU
 Unicode-TOU+   Unicode-TOU+
 Unlicense      Unlicense
@@ -956,6 +964,8 @@
 W3C+   W3C+
 W3C-19980720   W3C-19980720
 W3C-19980720+  W3C-19980720+
+W3C-20150513   W3C-20150513
+W3C-20150513+  W3C-20150513+
 WTFPL  SUSE-WTFPL-2.0
 WTFPL  WTFPL
 WTFPL+ WTFPL+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/spec-cleaner-spec-cleaner-0.9.1/spec_cleaner/__init__.py 
new/spec-cleaner-spec-cleaner-0.9.2/spec_cleaner/__init__.py
--- old/spec-cleaner-spec-cleaner-0.9.1/spec_cleaner/__init__.py        
2016-12-30 14:10:32.000000000 +0100
+++ new/spec-cleaner-spec-cleaner-0.9.2/spec_cleaner/__init__.py        
2017-02-13 12:58:57.000000000 +0100
@@ -12,7 +12,7 @@
 from .rpmcleaner import RpmSpecCleaner
 
 
-__version__ = '0.9.1'
+__version__ = '0.9.2'
 
 
 def process_args(argv):
@@ -30,30 +30,32 @@
 
     parser.add_argument('spec', metavar='SPEC', type=str,
                         help='spec file to beautify')
-    parser.add_argument('-c', '--cmake', action='store_true', default=False,
+    parser.add_argument('-c', '--cmake', action='store_true',
                         help='convert dependencies to their cmake() 
counterparts, requires bit more of cleanup in spec afterwards.')
-    output_group.add_argument('-d', '--diff', action='store_true', 
default=False,
+    output_group.add_argument('-d', '--diff', action='store_true',
                               help='run the diff program to show differences 
between new and original specfile.')
     parser.add_argument('--diff-prog', default='vimdiff',
                         help='specify the diff binary to call with diff 
option.')
-    parser.add_argument('-f', '--force', action='store_true', default=False,
+    parser.add_argument('-f', '--force', action='store_true',
                         help='overwrite the output file if already exist.')
-    output_group.add_argument('-i', '--inline', action='store_true', 
default=False,
+    output_group.add_argument('-i', '--inline', action='store_true',
                               help='inline the changes directly to the parsed 
file.')
-    parser.add_argument('-m', '--minimal', action='store_true', default=False,
+    parser.add_argument('-m', '--minimal', action='store_true',
                         help='run in minimal mode that does not do anything 
intrusive (ie. just sets the Copyright)')
-    parser.add_argument('--no-copyright', action='store_true', default=False,
+    parser.add_argument('--no-copyright', action='store_true',
                         help='do not include official SUSE copyright hear and 
just keep what is present')
     output_group.add_argument('-o', '--output', default='',
                               help='specify the output file for the cleaned 
spec content.')
-    parser.add_argument('-p', '--pkgconfig', action='store_true', 
default=False,
+    parser.add_argument('-p', '--pkgconfig', action='store_true',
                         help='convert dependencies to their pkgconfig() 
counterparts, requires bit more of cleanup in spec afterwards.')
-    parser.add_argument('--perl', action='store_true', default=False,
+    parser.add_argument('--perl', action='store_true',
                         help='convert dependencies to their perl() 
counterparts, highly expansive because most main packages provide some perl 
symbols, use carefully')
-    parser.add_argument('-t', '--tex', action='store_true', default=False,
+    parser.add_argument('-t', '--tex', action='store_true',
                         help='convert dependencies to their tex() 
counterparts, requires verification of the output afterwards.')
     parser.add_argument('-v', '--version', action='version', 
version=__version__,
                         help='show package version and exit')
+    parser.add_argument('-k', '--keep-space', action='store_true',
+                        help='keep empty lines in preamble intact.')
 
     # print help if there is no argument
     if len(argv) < 1:
@@ -86,6 +88,7 @@
         'perl': options.perl,
         'tex': options.tex,
         'cmake': options.cmake,
+        'keep_space': options.keep_space,
     }
 
     return options_dict
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/spec-cleaner-spec-cleaner-0.9.1/spec_cleaner/__main__.py 
new/spec-cleaner-spec-cleaner-0.9.2/spec_cleaner/__main__.py
--- old/spec-cleaner-spec-cleaner-0.9.1/spec_cleaner/__main__.py        
1970-01-01 01:00:00.000000000 +0100
+++ new/spec-cleaner-spec-cleaner-0.9.2/spec_cleaner/__main__.py        
2017-02-13 12:58:57.000000000 +0100
@@ -0,0 +1,18 @@
+from __future__ import absolute_import
+
+import os
+import sys
+
+# If we are running from a wheel, add the wheel to sys.path.
+if __package__ == '':
+    # __file__ is spec-cleaner-*.whl/spec_cleaner/__main__.py.
+    # First dirname call strips of '/__main__.py', second strips off 
'/spec_cleaner'.
+    # Resulting path is the name of the wheel itself.
+    # Add that to sys.path so we can import spec_cleaner.
+    path = os.path.dirname(os.path.dirname(__file__))
+    sys.path.insert(0, path)
+
+import spec_cleaner
+
+if __name__ == '__main__':
+    sys.exit(spec_cleaner.main())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/spec-cleaner-spec-cleaner-0.9.1/spec_cleaner/rpmcleaner.py 
new/spec-cleaner-spec-cleaner-0.9.2/spec_cleaner/rpmcleaner.py
--- old/spec-cleaner-spec-cleaner-0.9.1/spec_cleaner/rpmcleaner.py      
2016-12-30 14:10:32.000000000 +0100
+++ new/spec-cleaner-spec-cleaner-0.9.2/spec_cleaner/rpmcleaner.py      
2017-02-13 12:58:57.000000000 +0100
@@ -41,6 +41,7 @@
     fin = None
     fout = None
     current_section = None
+    skip_run = False
     _previous_line = None
     _previous_nonempty_line = None
 
@@ -87,7 +88,10 @@
             (self.reg.re_spec_changelog, RpmChangelog)
         ]
 
+        # Find all the present licenses
         self._load_licenses()
+        # Determine if we need to skip the spec
+        self._find_skip_parser()
 
         if self.options['output']:
             self.fout = open(self.options['output'], 'w')
@@ -114,12 +118,22 @@
         spec_macrofuncs = find_macros_with_arg(self.options['specfile'])
         return keywords + global_macrofuncs + spec_macrofuncs
 
+    def _find_skip_parser(self):
+        """
+        Try to figure out if user defined that this file should not be
+        ever parsed by spec-cleaner
+        """
+        for line in self.fin:
+            if self.reg.re_skipcleaner.match(line):
+                self.skip_run = True
+                break
+        self.fin.seek(0)
+
     def _load_licenses(self):
         # detect all present licenses in the spec and detect if we have more
         # than one. If we do put license to each subpkg
         licenses = []
-        filecontent = open(self.options['specfile'])
-        for line in filecontent:
+        for line in self.fin:
             if self.reg.re_license.match(line):
                 line = line.rstrip('\n')
                 line = line.rstrip('\r')
@@ -128,12 +142,11 @@
                 value = match.groups()[len(match.groups()) - 1]
                 if value not in licenses:
                     licenses.append(value)
-        filecontent.close()
-        filecontent = None
         if len(licenses) > 1:
             self.options['subpkglicense'] = True
             # put first license as placeholder if main preamble is missing one
             self.options['license'] = licenses[0]
+        self.fin.seek(0)
 
     def _detect_preamble_section(self, line):
         # This is seriously ugly but can't think of cleaner way
@@ -166,6 +179,12 @@
                 return True
         return False
 
+    def _detect_condition_change(self, line):
+        if any([re.match(line) for re in [
+               self.reg.re_endif, self.reg.re_else, 
self.reg.re_endcodeblock]]):
+            return True
+        return False
+
     def _detect_new_section(self, line):
         # Detect if we have multiline value from preamble
         if hasattr(self.current_section, 'multiline') and 
self.current_section.multiline:
@@ -178,10 +197,11 @@
         #   if previous non-empty-uncommented line was starting the condition
         # we end up the condition section in preamble (if applicable) and
         # proceed to output
-        if self.reg.re_else.match(line) or self.reg.re_endif.match(line) or \
-           (type(self.current_section) is Section and 
self.reg.re_if.match(line)):
+        if self._detect_condition_change(line) or \
+               (type(self.current_section) is Section and 
(self.reg.re_if.match(line)
+               or self.reg.re_codeblock.match(line))):
             if not hasattr(self.current_section, 'condition') or \
-               (hasattr(self.current_section, 'condition') and not 
self.current_section.condition):
+                   (hasattr(self.current_section, 'condition') and not 
self.current_section.condition):
                 # If we have to break out we go ahead with small class
                 # which just print the one evil line
                 return Section
@@ -221,7 +241,25 @@
         # we are staying in the section
         return None
 
+    def _check_for_newline(self, detected_class, line):
+        """
+        Check if by default we want newline or not after the end of section 
detected
+        """
+        # We don't want to print newlines before %else and %endif
+        if detected_class == Section and self._detect_condition_change(line):
+            return False
+        else:
+            return True
+
     def run(self):
+        # If we are skipping we should do nothing
+        if self.skip_run:
+            sys.stderr.write(".spec file {0} is not being processed due to 
definiton of 'nospeccleaner'\n".format(self.options['specfile']))
+            for line in self.fin:
+                self.fout.write(line)
+            self.fout.flush()
+            return 0
+
         # We always start with Copyright
         self.current_section = RpmCopyright(self.options)
 
@@ -239,12 +277,7 @@
             # USE: 'spec-cleaner file > /dev/null' to see the stderr output
             # sys.stderr.write("class: '{0}' line: '{1}'\n".format(new_class, 
line))
             if new_class:
-                # We don't want to print newlines before %else and %endif
-                if new_class == Section and (self.reg.re_else.match(line) or 
self.reg.re_endif.match(line)):
-                    newline = False
-                else:
-                    newline = True
-                self.current_section.output(self.fout, newline, 
new_class.__name__)
+                self.current_section.output(self.fout, 
self._check_for_newline(new_class, line), new_class.__name__)
                 # start new class
                 self.current_section = new_class(self.options)
                 # skip empty line adding if we are switching sections
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/spec-cleaner-spec-cleaner-0.9.1/spec_cleaner/rpmpackage.py 
new/spec-cleaner-spec-cleaner-0.9.2/spec_cleaner/rpmpackage.py
--- old/spec-cleaner-spec-cleaner-0.9.1/spec_cleaner/rpmpackage.py      
2016-12-30 14:10:32.000000000 +0100
+++ new/spec-cleaner-spec-cleaner-0.9.2/spec_cleaner/rpmpackage.py      
2017-02-13 12:58:57.000000000 +0100
@@ -12,7 +12,7 @@
     def add(self, line):
         # The first line (%package) should always be added and is different
         # from the lines we handle in RpmPreamble.
-        if not self.previous_line:
+        if self.previous_line is None:
             Section.add(self, line)
             return
         # If the package is lang package we add here comment about the lang
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/spec-cleaner-spec-cleaner-0.9.1/spec_cleaner/rpmpreamble.py 
new/spec-cleaner-spec-cleaner-0.9.2/spec_cleaner/rpmpreamble.py
--- old/spec-cleaner-spec-cleaner-0.9.1/spec_cleaner/rpmpreamble.py     
2016-12-30 14:10:32.000000000 +0100
+++ new/spec-cleaner-spec-cleaner-0.9.2/spec_cleaner/rpmpreamble.py     
2017-02-13 12:58:57.000000000 +0100
@@ -59,7 +59,6 @@
 
     categories_order = [
         'define',
-        'define_conditions',
         'bconds',
         'bcond_conditions',
         'name',
@@ -127,6 +126,8 @@
         self.perl = options['perl']
         self.cmake = options['cmake']
         self.tex = options['tex']
+        # are we supposed to keep empty lines intact?
+        self.keep_space = options['keep_space']
         # dict of license replacement options
         self.license_conversions = options['license_conversions']
         # dict of pkgconfig and other conversions
@@ -263,8 +264,10 @@
                 # the switches do not have any effect
                 if self._condition_bcond:
                     self.paragraph['bcond_conditions'] += 
self.paragraph['conditions']
+                elif len(self.paragraph['define']) == 0:
+                    self.paragraph['bconds'] += self.paragraph['conditions']
                 else:
-                    self.paragraph['define_conditions'] += 
self.paragraph['conditions']
+                    self.paragraph['define'] += self.paragraph['conditions']
                 # in case the nested condition contains define we consider all 
parents
                 # to require to be on top too;
                 if len(self._oldstore) == 0:
@@ -514,9 +517,9 @@
 
     def add(self, line):
         line = self._complete_cleanup(line)
-        # if the line is empty just skip it we don't need new section for it
-        # we do this only in headers so it must be here
-        if len(line) == 0:
+
+        # if the line is empty, just skip it, unless keep_space is true
+        if not self.keep_space and len(line) == 0:
             return
 
         # if it is multiline variable then we need to append to previous 
content
@@ -534,7 +537,7 @@
         # else where we mark end of paragraph or endif
         # which mark the end of our subclass and that we can
         # return the data to our main class for at-bottom placement
-        elif self.reg.re_if.match(line):
+        elif self.reg.re_if.match(line) or self.reg.re_codeblock.match(line):
             self._add_line_to('conditions', line)
             self.condition = True
             # check for possibility of the bcond conditional
@@ -552,7 +555,7 @@
             self.previous_line = line
             return
 
-        elif self.reg.re_endif.match(line):
+        elif self.reg.re_endif.match(line) or 
self.reg.re_endcodeblock.match(line):
             self._add_line_to('conditions', line)
             # Set conditions to false only if we are
             # closing last of the nested ones
@@ -563,8 +566,9 @@
             return
 
         elif self.reg.re_comment.match(line):
-            self.current_group.append(line)
-            self.previous_line = line
+            if line or self.previous_line:
+                self.current_group.append(line)
+                self.previous_line = line
             return
 
         elif self.reg.re_source.match(line):
@@ -607,7 +611,7 @@
             if not self.minimal:
                 # add the comment about using proper macro which needs
                 # investingaton
-                if self.previous_line and not 
self.previous_line.startswith('#') and not 
self.previous_line.startswith('PreReq'):
+                if self.previous_line is not None and not 
self.previous_line.startswith('#') and not 
self.previous_line.startswith('PreReq'):
                     self.current_group.append('# FIXME: use proper 
Requires(pre/post/preun/...)')
             self._add_line_value_to('prereq', match.group(1))
             return
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/spec-cleaner-spec-cleaner-0.9.1/spec_cleaner/rpmregexp.py 
new/spec-cleaner-spec-cleaner-0.9.2/spec_cleaner/rpmregexp.py
--- old/spec-cleaner-spec-cleaner-0.9.1/spec_cleaner/rpmregexp.py       
2016-12-30 14:10:32.000000000 +0100
+++ new/spec-cleaner-spec-cleaner-0.9.2/spec_cleaner/rpmregexp.py       
2017-02-13 12:58:57.000000000 +0100
@@ -24,9 +24,11 @@
 
     # rpmpreamble
     # WARNING: keep in sync with rpmcleaner Section change detection
-    re_if = re.compile(r'^\s*(?:%{?if\s|%{?ifarch\s|%{?ifnarch\s)', 
re.IGNORECASE)
+    re_if = 
re.compile(r'^\s*(?:%{?if\s|%{?ifarch\s|%{?ifnarch\s|%{?if\S*}?(\s.*|)$)', 
re.IGNORECASE)
+    re_codeblock = re.compile(r'^\s*(### COMMON-([a-zA-Z0-9]+)-BEGIN ###|# 
MANUAL|# SECTION)(\s.*|)$', re.IGNORECASE)
     re_else = re.compile(r'^\s*%else(\s.*|)$', re.IGNORECASE)
     re_endif = re.compile(r'^\s*%endif(\s.*|)$', re.IGNORECASE)
+    re_endcodeblock = re.compile(r'^\s*(### COMMON-([a-zA-Z0-9]+)-END ###|# 
/MANUAL|# (END|/)SECTION)(\s.*|)$', re.IGNORECASE)
     re_name = re.compile(r'^Name:\s*(\S*)', re.IGNORECASE)
     re_version = re.compile(r'^Version:\s*(.*)', re.IGNORECASE)
     re_release = re.compile(r'^Release:\s*(\S*)', re.IGNORECASE)
@@ -82,8 +84,8 @@
     re_optflags_quotes = re.compile(r'=\s*\${?RPM_OPT_FLAGS}?\s*$')
     re_optflags = re.compile(r'\${?RPM_OPT_FLAGS}?')
     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_configure = re.compile(r'(^|(.*\s)?)./configure(\s.*|)$')
+    re_cmake = re.compile(r'(^|(.*\s)?)cmake(\s.*|)$')
 
     # rpmcopyright
     re_copyright = re.compile(r'^#\s*Copyright\ \(c\)\s*(.*)', re.IGNORECASE)
@@ -93,7 +95,8 @@
     re_nodebuginfo = re.compile(r'^#\s*nodebuginfo\s*$', re.IGNORECASE)
     re_sslcerts = re.compile(r'^#\s*needssslcertforbuild\s*$', re.IGNORECASE)
     re_icecream = re.compile(r'^#\s*icecream\s*$', re.IGNORECASE)
-    re_vimmodeline = re.compile(r'^# vim:', re.IGNORECASE)
+    re_vimmodeline = re.compile(r'^#\s*vim:', re.IGNORECASE)
+    re_skipcleaner = re.compile(r'^#\s*nospeccleaner\s*$', re.IGNORECASE)
 
     # rpminstall
     re_clean = re.compile(r'rm\s+(-?\w?\ ?)*"?(%{buildroot}|\$b)"?$')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/spec-cleaner-spec-cleaner-0.9.1/spec_cleaner/rpmsection.py 
new/spec-cleaner-spec-cleaner-0.9.2/spec_cleaner/rpmsection.py
--- old/spec-cleaner-spec-cleaner-0.9.1/spec_cleaner/rpmsection.py      
2016-12-30 14:10:32.000000000 +0100
+++ new/spec-cleaner-spec-cleaner-0.9.2/spec_cleaner/rpmsection.py      
2017-02-13 12:58:57.000000000 +0100
@@ -48,9 +48,9 @@
         """
         Check if we are in condition that is contained or not
         """
-        if self.reg.re_if.match(line):
+        if self.reg.re_if.match(line) or self.reg.re_codeblock.match(line):
             self._condition_counter += 1
-        if self.reg.re_endif.match(line):
+        if self.reg.re_endif.match(line) or 
self.reg.re_endcodeblock.match(line):
             self._condition_counter -= 1
 
         if self._condition_counter > 0:
@@ -188,7 +188,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', '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-0.9.1/tests/acceptance-tests.py 
new/spec-cleaner-spec-cleaner-0.9.2/tests/acceptance-tests.py
--- old/spec-cleaner-spec-cleaner-0.9.1/tests/acceptance-tests.py       
2016-12-30 14:10:32.000000000 +0100
+++ new/spec-cleaner-spec-cleaner-0.9.2/tests/acceptance-tests.py       
2017-02-13 12:58:57.000000000 +0100
@@ -1,6 +1,7 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
 
+import glob
 import os
 import shutil
 import tempfile
@@ -25,27 +26,18 @@
     We run individual tests to verify the content compared to expected results
     """
 
-    def __init__(self):
-        """
-        Declare global scope variables for further use.
-        """
-
-        self.input_dir = self._get_input_dir()
-        self.fixtures_dir = self._get_fixtures_dir()
-        self.header_dir = self._get_header_dir()
-        self.tex_dir = self._get_tex_dir()
-        self.perl_dir = self._get_perl_dir()
-        self.cmake_dir = self._get_cmake_dir()
-        self.minimal_fixtures_dir = self._get_minimal_fixtures_dir()
-        self.tmp_dir = tempfile.mkdtemp()
-        self.tmp_file_rerun = tempfile.NamedTemporaryFile()
-
-    def __del__(self):
-        """
-        Remove the tmp directory
-        """
-        if shutil:
-            shutil.rmtree(self.tmp_dir, ignore_errors=True)
+    option_presets = {
+        'pkgconfig': False,
+        'inline': False,
+        'diff': False,
+        'diff_prog': 'vimdiff',
+        'minimal': False,
+        'no_copyright': True,
+        'tex': False,
+        'perl': False,
+        'cmake': False,
+        'keep_space': False,
+    }
 
     def _difftext(self, lines1, lines2, junk=None):
         junk = junk or (' ', '\t')
@@ -70,339 +62,89 @@
         # ocmpare
         self._difftext(stream1.readlines(), stream2.readlines(), junk)
 
-    def _get_input_dir(self):
-        """
-        Return path for input files used by tests
-        """
-        return os.path.join(os.getcwd(), 'tests/in/')
-
-    def _get_header_dir(self):
-        """
-        Return path for output files used by header tests
-        """
-        return os.path.join(os.getcwd(), 'tests/header/')
-
-    def _get_tex_dir(self):
-        """
-        Return path for output files used by tex tests
-        """
-        return os.path.join(os.getcwd(), 'tests/tex/')
-
-    def _get_perl_dir(self):
-        """
-        Return path for output files used by perl tests
-        """
-        return os.path.join(os.getcwd(), 'tests/perl/')
-
-    def _get_cmake_dir(self):
-        """
-        Return path for output files used by cmake tests
-        """
-        return os.path.join(os.getcwd(), 'tests/cmake/')
-
-    def _get_fixtures_dir(self):
-        """
-        Return path for representative output specs
-        """
-        return os.path.join(os.getcwd(), 'tests/out/')
-
-    def _get_minimal_fixtures_dir(self):
-        """
-        Return path for representative output specs
-        """
-        return os.path.join(os.getcwd(), 'tests/out-minimal/')
-
-    def _obtain_list_of_tests(self):
+    def _list_tests(self, directory='in'):
         """
         Generate list of tests we are going to use according to what is on hdd
         """
-        test_files = list()
-
-        for spec in os.listdir(self.fixtures_dir):
-            if spec.endswith(".spec"):
-                test_files.append(spec)
+        testglob = os.path.join('tests', directory, '*.spec')
+        return [os.path.basename(f) for f in glob.glob(testglob)]
 
-        return test_files
-
-    def _run_individual_test(self, options):
+    def _run_individual_test(self, test, compare_dir, infile=None, 
outfile=None, options={}, **kwargs):
         """
         Run the cleaner as specified and store the output for further 
comparison.
         """
-        cleaner = RpmSpecCleaner(options)
-        cleaner.run()
+        with tempfile.NamedTemporaryFile() as default_tmp_file:
+            if infile is None:
+                infile = os.path.join('tests', 'in', test)
+
+            if outfile is None:
+                outfile = default_tmp_file.name
+
+            full_options = {
+                'specfile': infile,
+                'output': outfile,
+            }
+            full_options.update(self.option_presets)
+            full_options.update(kwargs)
+            full_options.update(options)
+
+            cleaner = RpmSpecCleaner(full_options)
+            cleaner.run()
+
+            if compare_dir is not None:
+                compare  = os.path.join('tests', compare_dir, test)
+                testfile = full_options['inline'] and infile or outfile
+                with open(compare) as ref, open(testfile) as test:
+                    self.assertStreamEqual(ref, test)
+
+    def _compare_and_rerun(self, compare_dir, **kwargs):
+        for test in self._list_tests():
+            with tempfile.NamedTemporaryFile(suffix="-"+test) as tmpfile:
+                tmp = tmpfile.name
+                yield self._run_individual_test, test, compare_dir, None, tmp, 
kwargs
+                yield self._run_individual_test, test, compare_dir, tmp, None, 
kwargs
 
     def test_normal_outputs(self):
-        for test in self._obtain_list_of_tests():
-            tmp_file = os.path.join(self.tmp_dir, test)
-            # This is to run twice to check we are not breaking in concurent 
runs
-            yield self.check_normal_output, test, tmp_file
-            yield self.check_normal_output_rerun, test, tmp_file
-
-    def check_normal_output(self, test, tmp_file):
-        infile = os.path.join(self.input_dir, test)
-        compare = os.path.join(self.fixtures_dir, test)
-
-        options = {
-            'specfile': infile,
-            'output': tmp_file,
-            'pkgconfig': True,
-            'inline': False,
-            'diff': False,
-            'diff_prog': 'vimdiff',
-            'minimal': False,
-            'no_copyright': True,
-            'tex': False,
-            'perl': False,
-            'cmake': False,
-        }
-        self._run_individual_test(options)
-        with open(compare) as ref, open(tmp_file) as test:
-            self.assertStreamEqual(ref, test)
-
-    def check_normal_output_rerun(self, test, infile):
-        compare = os.path.join(self.fixtures_dir, test)
-        tmp_file = self.tmp_file_rerun.name
-
-        options = {
-            'specfile': infile,
-            'output': tmp_file,
-            'pkgconfig': True,
-            'inline': False,
-            'diff': False,
-            'diff_prog': 'vimdiff',
-            'minimal': False,
-            'no_copyright': True,
-            'tex': False,
-            'perl': False,
-            'cmake': False,
-        }
-        self._run_individual_test(options)
-        with open(compare) as ref, open(tmp_file) as test:
-            self.assertStreamEqual(ref, test)
+        for testcase in self._compare_and_rerun('out', pkgconfig=True):
+            yield testcase
 
     def test_minimal_outputs(self):
-        for test in self._obtain_list_of_tests():
-            tmp_file = os.path.join(self.tmp_dir, test)
-            # This is to run twice to check we are not breaking in concurent 
runs
-            yield self.check_minimal_output, test, tmp_file
-            yield self.check_minimal_output_rerun, test, tmp_file
-
-    def check_minimal_output(self, test, tmp_file):
-        infile = os.path.join(self.input_dir, test)
-        compare = os.path.join(self.minimal_fixtures_dir, test)
-
-        options = {
-            'specfile': infile,
-            'output': tmp_file,
-            'pkgconfig': True,
-            'inline': False,
-            'diff': False,
-            'diff_prog': 'vimdiff',
-            'minimal': True,
-            'no_copyright': True,
-            'tex': False,
-            'perl': False,
-            'cmake': False,
-        }
-        self._run_individual_test(options)
-        with open(compare) as ref, open(tmp_file) as test:
-            self.assertStreamEqual(ref, test)
-
-    def check_minimal_output_rerun(self, test, infile):
-        compare = os.path.join(self.minimal_fixtures_dir, test)
-        tmp_file = self.tmp_file_rerun.name
-
-        options = {
-            'specfile': infile,
-            'output': tmp_file,
-            'pkgconfig': True,
-            'inline': False,
-            'diff': False,
-            'diff_prog': 'vimdiff',
-            'minimal': True,
-            'no_copyright': True,
-            'tex': False,
-            'perl': False,
-            'cmake': False,
-        }
-        self._run_individual_test(options)
-        with open(compare) as ref, open(tmp_file) as test:
-            self.assertStreamEqual(ref, test)
+        for testcase in self._compare_and_rerun('out-minimal', pkgconfig=True, 
minimal=True):
+            yield testcase
 
     def test_copyright_output(self):
-        test = 'header.spec'
-        infile = os.path.join(self.input_dir, test)
-        compare = os.path.join(self.header_dir, test)
-        tmp_file = os.path.join(self.tmp_dir, test)
-
-        options = {
-            'specfile': infile,
-            'output': tmp_file,
-            'pkgconfig': True,
-            'inline': False,
-            'diff': False,
-            'diff_prog': 'vimdiff',
-            'minimal': True,
-            'no_copyright': False,
-            'tex': False,
-            'perl': False,
-            'cmake': False,
-        }
-        self._run_individual_test(options)
-        with open(compare) as ref, open(tmp_file) as test:
-            self.assertStreamEqual(ref, test)
+        self._run_individual_test('header.spec', 'header', minimal=True, 
no_copyright=False)
+
+    def test_keep_space_output(self):
+        for test in self._list_tests('keep-space'):
+            self._run_individual_test(test, 'keep-space', keep_space=True)
 
     def test_pkgconfig_disabled_output(self):
-        test = 'pkgconfrequires.spec'
-        infile = os.path.join(self.input_dir, test)
-        compare = os.path.join(self.fixtures_dir, test)
-        tmp_file = os.path.join(self.tmp_dir, test)
-
-        options = {
-            'specfile': infile,
-            'output': tmp_file,
-            'pkgconfig': False,
-            'inline': False,
-            'diff': False,
-            'diff_prog': 'vimdiff',
-            'minimal': False,
-            'no_copyright': True,
-            'tex': False,
-            'perl': False,
-            'cmake': False,
-        }
-        self._run_individual_test(options)
-        with open(compare) as ref, open(tmp_file) as test:
-            self.assertStreamEqual(ref, test)
+        self._run_individual_test('pkgconfrequires.spec', 'out', 
pkgconfig=False)
 
     def test_inline_function(self):
-        test = self._obtain_list_of_tests()[0]
-        infile = os.path.join(self.input_dir, test)
-        compare = os.path.join(self.fixtures_dir, test)
-        tmp_file = os.path.join(self.tmp_dir, test)
-        shutil.copyfile(infile, tmp_file)
-
-        options = {
-            'specfile': tmp_file,
-            'output': '',
-            'pkgconfig': True,
-            'inline': True,
-            'diff': False,
-            'diff_prog': 'vimdiff',
-            'minimal': False,
-            'no_copyright': True,
-            'tex': False,
-            'perl': False,
-            'cmake': False,
-        }
-        self._run_individual_test(options)
-        with open(compare) as ref, open(tmp_file) as test:
-            self.assertStreamEqual(ref, test)
+        test = self._list_tests()[0]
+        infile = os.path.join('tests', 'in', test)
+        with tempfile.NamedTemporaryFile() as tmpfile:
+            shutil.copyfile(infile, tmpfile.name)
+            self._run_individual_test(test, None,
+                    infile=tmpfile.name, outfile='',
+                    pkgconfig=True, inline=True)
 
     def test_regular_output(self):
-        test = self._obtain_list_of_tests()[0]
-        infile = os.path.join(self.input_dir, test)
-
-        options = {
-            'specfile': infile,
-            'output': '',
-            'pkgconfig': True,
-            'inline': False,
-            'diff': False,
-            'diff_prog': 'gvimdiff',
-            'minimal': False,
-            'no_copyright': False,
-            'tex': False,
-            'perl': False,
-            'cmake': False,
-        }
-        self._run_individual_test(options)
+        test = self._list_tests()[0]
+        self._run_individual_test(test, None, outfile='')
 
     @raises(RpmException)
     def test_diff_function(self):
-        test = self._obtain_list_of_tests()[0]
-        infile = os.path.join(self.input_dir, test)
-
-        options = {
-            'specfile': infile,
-            'output': '',
-            'pkgconfig': True,
-            'inline': False,
-            'diff': True,
-            'diff_prog': 'error',
-            'minimal': False,
-            'no_copyright': False,
-            'tex': False,
-            'perl': False,
-            'cmake': False,
-        }
-        self._run_individual_test(options)
+        test = self._list_tests()[0]
+        self._run_individual_test(test, None, outfile='', diff=True, 
diff_prog='error')
 
     def test_tex_output(self):
-        test = 'tex.spec'
-        infile = os.path.join(self.input_dir, test)
-        compare = os.path.join(self.tex_dir, test)
-        tmp_file = os.path.join(self.tmp_dir, test)
-
-        options = {
-            'specfile': infile,
-            'output': tmp_file,
-            'pkgconfig': False,
-            'inline': False,
-            'diff': False,
-            'diff_prog': 'vimdiff',
-            'minimal': False,
-            'no_copyright': True,
-            'tex': True,
-            'perl': False,
-            'cmake': False,
-        }
-        self._run_individual_test(options)
-        with open(compare) as ref, open(tmp_file) as test:
-            self.assertStreamEqual(ref, test)
+        self._run_individual_test('tex.spec', 'tex', tex=True)
 
     def test_perl_output(self):
-        test = 'perl.spec'
-        infile = os.path.join(self.input_dir, test)
-        compare = os.path.join(self.perl_dir, test)
-        tmp_file = os.path.join(self.tmp_dir, test)
-
-        options = {
-            'specfile': infile,
-            'output': tmp_file,
-            'pkgconfig': False,
-            'inline': False,
-            'diff': False,
-            'diff_prog': 'vimdiff',
-            'minimal': False,
-            'no_copyright': True,
-            'tex': False,
-            'perl': True,
-            'cmake': False,
-        }
-        self._run_individual_test(options)
-        with open(compare) as ref, open(tmp_file) as test:
-            self.assertStreamEqual(ref, test)
+        self._run_individual_test('perl.spec', 'perl', perl=True)
 
     def test_cmake_output(self):
-        test = 'cmake.spec'
-        infile = os.path.join(self.input_dir, test)
-        compare = os.path.join(self.cmake_dir, test)
-        tmp_file = os.path.join(self.tmp_dir, test)
-
-        options = {
-            'specfile': infile,
-            'output': tmp_file,
-            'pkgconfig': False,
-            'inline': False,
-            'diff': False,
-            'diff_prog': 'vimdiff',
-            'minimal': False,
-            'no_copyright': True,
-            'tex': True,
-            'perl': False,
-            'cmake': False,
-        }
-        self._run_individual_test(options)
-        with open(compare) as ref, open(tmp_file) as test:
-            self.assertStreamEqual(ref, test)
+        self._run_individual_test('cmake.spec', 'cmake', cmake=True)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/spec-cleaner-spec-cleaner-0.9.1/tests/cmake/cmake.spec 
new/spec-cleaner-spec-cleaner-0.9.2/tests/cmake/cmake.spec
--- old/spec-cleaner-spec-cleaner-0.9.1/tests/cmake/cmake.spec  2016-12-30 
14:10:32.000000000 +0100
+++ new/spec-cleaner-spec-cleaner-0.9.2/tests/cmake/cmake.spec  2017-02-13 
12:58:57.000000000 +0100
@@ -1,3 +1,3 @@
-BuildRequires:  Vc-devel
+BuildRequires:  cmake(Vc)
 
 %changelog
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/spec-cleaner-spec-cleaner-0.9.1/tests/in/codeblock.spec 
new/spec-cleaner-spec-cleaner-0.9.2/tests/in/codeblock.spec
--- old/spec-cleaner-spec-cleaner-0.9.1/tests/in/codeblock.spec 1970-01-01 
01:00:00.000000000 +0100
+++ new/spec-cleaner-spec-cleaner-0.9.2/tests/in/codeblock.spec 2017-02-13 
12:58:57.000000000 +0100
@@ -0,0 +1,67 @@
+Name:           codeblock
+# MANUAL
+BuildRequires:  aaa
+BuildRequires:  bbb
+# /MANUAL
+# SECTION the testing dependencies
+BuildRequires:  python-nose
+BuildRequires:  python-mock
+# /SECTION
+### COMMON-PATCH-BEGIN ###
+# implement "--record-rpm" option for distutils installations
+Patch01:        Python-3.0b1-record-rpm.patch
+# support lib-vs-lib64 distinction
+Patch02:        Python-3.5.0-multilib.patch
+# securing usage of readlink/realpath in PySys_SetArgv
+Patch03:        python-2.6b1-canonicalize2.patch
+# support finding packages in /usr/local, install to /usr/local by default
+Patch04:        python-3.3.0b1-localpath.patch
+# replace DATE, TIME and COMPILER by fixed definitions to aid reproducible
+# builds
+Patch06:        python-3.3.0b1-fix_date_time_compiler.patch
+# fix wrong include path in curses-panel module
+Patch15:        python-3.3.0b1-curses-panel.patch
+# POSIX_FADV_WILLNEED throws EINVAL. Use a different constant in test
+Patch09:        python-3.3.0b1-test-posix_fadvise.patch
+# Disable global and distutils sysconfig comparison test, we deviate from the
+# default depending on optflags
+Patch12:        python-3.3.3-skip-distutils-test_sysconfig_module.patch
+# Raise timeout value for test_subprocess
+Patch07:        subprocess-raise-timeout.patch
+# PATCH-FIX-UPSTREAM Fix argument passing in libffi for aarch64
+Patch19:        python-2.7-libffi-aarch64.patch
+# PATCH-FIX-UPSTREAM python3-ncurses-6.0-accessors.patch dims...@opensuse.org
+# -- Fix build with NCurses 6.0 and OPAQUE_WINDOW set to 1
+Patch20:        python3-ncurses-6.0-accessors.patch
+# PATCH-FIX-UPSTREAM Python-3.5.1-fix_lru_cache_copying.patch -- Fix copying
+# the lru_cache() wrapper object -- https://bugs.python.org/issue25447
+Patch30:        Python-3.5.1-fix_lru_cache_copying.patch
+### COMMON-PATCH-END ###
+BuildRequires:  test
+Patch05:        somepatch.patch
+%build
+### COMMON-CONFIG-BEGIN ###
+export PATH=$PATH:/sbin:%{_prefix}/sbin
+sed -ie "s/%{device_mapper_version}/1.03.01/g" VERSION_DM
+%configure \
+    --enable-dmeventd --enable-cmdlib \
+    --enable-udev_rules --enable-udev_sync \
+    --with-udev-prefix="%{_prefix}/" \
+    --enable-selinux \
+    --enable-pkgconfig \
+    --with-usrlibdir=%{_libdir} \
+    --with-usrsbindir=%{_sbindir} \
+    --with-default-dm-run-dir=/run \
+    --with-tmpfilesdir=%{_tmpfilesdir} \
+    --with-thin=internal \
+    --with-device-gid=6 \
+    --with-device-mode=0640 \
+    --with-device-uid=0 \
+    --with-dmeventd-path=%{_sbindir}/dmeventd \
+    --with-thin-check=%{_sbindir}/thin_check \
+    --with-thin-dump=%{_sbindir}/thin_dump \
+    --with-thin-repair=%{_sbindir}/thin_repair \
+    $extra_opts
+### COMMON-CONFIG-END ###
+
+%changelog
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/spec-cleaner-spec-cleaner-0.9.1/tests/in/conditions.spec 
new/spec-cleaner-spec-cleaner-0.9.2/tests/in/conditions.spec
--- old/spec-cleaner-spec-cleaner-0.9.1/tests/in/conditions.spec        
2016-12-30 14:10:32.000000000 +0100
+++ new/spec-cleaner-spec-cleaner-0.9.2/tests/in/conditions.spec        
2017-02-13 12:58:57.000000000 +0100
@@ -1,5 +1,7 @@
 Version:        2.8.2
+%ifpython2
 Release:        0
+%endif
 Summary:        AppArmor userlevel parser utility
 License:        GPL-2.0+
 Group:          Productivity/Networking/Security
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/spec-cleaner-spec-cleaner-0.9.1/tests/in/excludes-bracketing.spec 
new/spec-cleaner-spec-cleaner-0.9.2/tests/in/excludes-bracketing.spec
--- old/spec-cleaner-spec-cleaner-0.9.1/tests/in/excludes-bracketing.spec       
2016-12-30 14:10:32.000000000 +0100
+++ new/spec-cleaner-spec-cleaner-0.9.2/tests/in/excludes-bracketing.spec       
2017-02-13 12:58:57.000000000 +0100
@@ -40,10 +40,9 @@
 %ghc_pkg_recache
 %ghost
 %glib2_gsettings_schema_[^\s]*
-%global
 %gpg_verify
 %icon_theme_cache_post[^\s]*
-%if(\s*\(.*)?
+%if something
 %ifarch
 %ifnarch
 %include
@@ -84,6 +83,20 @@
 %pretrans
 %preun
 %py_compile
+%python_alternative
+%python_install_alternative
+%python_uninstall_alternative
+%python2_only
+%python3_only
+%pypy3_only
+%pycache_only
+%python3_build
+%python2_install
+%pypy3_build
+%pypy3_install
+%python_exec
+%python_expand
+%python_subpackages
 %qmake
 %qmake5
 %qmake5_install
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/spec-cleaner-spec-cleaner-0.9.1/tests/in/fixme-with-space.spec 
new/spec-cleaner-spec-cleaner-0.9.2/tests/in/fixme-with-space.spec
--- old/spec-cleaner-spec-cleaner-0.9.1/tests/in/fixme-with-space.spec  
1970-01-01 01:00:00.000000000 +0100
+++ new/spec-cleaner-spec-cleaner-0.9.2/tests/in/fixme-with-space.spec  
2017-02-13 12:58:57.000000000 +0100
@@ -0,0 +1,5 @@
+Requires: abcd
+Requires: efgh
+
+PreReq:   abcd
+PreReq:   efgh
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/spec-cleaner-spec-cleaner-0.9.1/tests/in/keep-condition-ordering.spec 
new/spec-cleaner-spec-cleaner-0.9.2/tests/in/keep-condition-ordering.spec
--- old/spec-cleaner-spec-cleaner-0.9.1/tests/in/keep-condition-ordering.spec   
1970-01-01 01:00:00.000000000 +0100
+++ new/spec-cleaner-spec-cleaner-0.9.2/tests/in/keep-condition-ordering.spec   
2017-02-13 12:58:57.000000000 +0100
@@ -0,0 +1,19 @@
+%if 0%{?suse_version} > 1230
+%bcond_without systemd
+%else
+%bcond_with    systemd
+%endif
+%bcond_with self_hosting
+
+%define root %version
+%if %{?xyz}
+%define foobar foobar
+%endif
+%define complexthing %{root}-complex-%{?foobar}baz
+
+%if %{?abc}
+%define ahoj babi
+%bcond_without hamster
+%endif
+
+%global test somethingelse
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/spec-cleaner-spec-cleaner-0.9.1/tests/in/skipped.spec 
new/spec-cleaner-spec-cleaner-0.9.2/tests/in/skipped.spec
--- old/spec-cleaner-spec-cleaner-0.9.1/tests/in/skipped.spec   1970-01-01 
01:00:00.000000000 +0100
+++ new/spec-cleaner-spec-cleaner-0.9.2/tests/in/skipped.spec   2017-02-13 
12:58:57.000000000 +0100
@@ -0,0 +1,38 @@
+#
+# spec file for package skipped
+#
+# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+#
+# 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
+# file, is the same license as for the pristine package itself (unless the
+# license for the pristine package is not an Open Source License, in which
+# case the license is the MIT License). An "Open Source License" is a
+# 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/
+#
+# nospeccleaner
+
+
+Name:           garbage
+Version: a
+Release:  fgf >= 1.0
+
+%prep
+%setup -q
+
+%build
+%configure
+make %{?_smp_mflags}
+
+%install
+make install DESTDIR=%{buildroot} %{?_smp_mflags}
+
+%files
+%defattr(-,root,root)
+%doc ChangeLog README COPYING
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/spec-cleaner-spec-cleaner-0.9.1/tests/keep-space/fixme-with-space.spec 
new/spec-cleaner-spec-cleaner-0.9.2/tests/keep-space/fixme-with-space.spec
--- old/spec-cleaner-spec-cleaner-0.9.1/tests/keep-space/fixme-with-space.spec  
1970-01-01 01:00:00.000000000 +0100
+++ new/spec-cleaner-spec-cleaner-0.9.2/tests/keep-space/fixme-with-space.spec  
2017-02-13 12:58:57.000000000 +0100
@@ -0,0 +1,8 @@
+Requires:       abcd
+Requires:       efgh
+
+# FIXME: use proper Requires(pre/post/preun/...)
+PreReq:         abcd
+PreReq:         efgh
+
+%changelog
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/spec-cleaner-spec-cleaner-0.9.1/tests/keep-space/keep-condition-ordering.spec
 
new/spec-cleaner-spec-cleaner-0.9.2/tests/keep-space/keep-condition-ordering.spec
--- 
old/spec-cleaner-spec-cleaner-0.9.1/tests/keep-space/keep-condition-ordering.spec
   1970-01-01 01:00:00.000000000 +0100
+++ 
new/spec-cleaner-spec-cleaner-0.9.2/tests/keep-space/keep-condition-ordering.spec
   2017-02-13 12:58:57.000000000 +0100
@@ -0,0 +1,21 @@
+
+%define root %{version}
+%if %{?xyz}
+%define foobar foobar
+%endif
+%define complexthing %{root}-complex-%{?foobar}baz
+
+%if %{?abc}
+%define ahoj babi
+%bcond_without hamster
+%endif
+
+%global test somethingelse
+%if 0%{?suse_version} > 1230
+%bcond_without systemd
+%else
+%bcond_with    systemd
+%endif
+%bcond_with self_hosting
+
+%changelog
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/spec-cleaner-spec-cleaner-0.9.1/tests/out/codeblock.spec 
new/spec-cleaner-spec-cleaner-0.9.2/tests/out/codeblock.spec
--- old/spec-cleaner-spec-cleaner-0.9.1/tests/out/codeblock.spec        
1970-01-01 01:00:00.000000000 +0100
+++ new/spec-cleaner-spec-cleaner-0.9.2/tests/out/codeblock.spec        
2017-02-13 12:58:57.000000000 +0100
@@ -0,0 +1,68 @@
+Name:           codeblock
+Patch05:        somepatch.patch
+BuildRequires:  test
+# MANUAL
+BuildRequires:  aaa
+BuildRequires:  bbb
+# /MANUAL
+# SECTION the testing dependencies
+BuildRequires:  python-mock
+BuildRequires:  python-nose
+# /SECTION
+### COMMON-PATCH-BEGIN ###
+# implement "--record-rpm" option for distutils installations
+Patch01:        Python-3.0b1-record-rpm.patch
+# support lib-vs-lib64 distinction
+Patch02:        Python-3.5.0-multilib.patch
+# securing usage of readlink/realpath in PySys_SetArgv
+Patch03:        python-2.6b1-canonicalize2.patch
+# support finding packages in /usr/local, install to /usr/local by default
+Patch04:        python-3.3.0b1-localpath.patch
+# replace DATE, TIME and COMPILER by fixed definitions to aid reproducible
+# builds
+Patch06:        python-3.3.0b1-fix_date_time_compiler.patch
+# Raise timeout value for test_subprocess
+Patch07:        subprocess-raise-timeout.patch
+# POSIX_FADV_WILLNEED throws EINVAL. Use a different constant in test
+Patch09:        python-3.3.0b1-test-posix_fadvise.patch
+# Disable global and distutils sysconfig comparison test, we deviate from the
+# default depending on optflags
+Patch12:        python-3.3.3-skip-distutils-test_sysconfig_module.patch
+# fix wrong include path in curses-panel module
+Patch15:        python-3.3.0b1-curses-panel.patch
+# PATCH-FIX-UPSTREAM Fix argument passing in libffi for aarch64
+Patch19:        python-2.7-libffi-aarch64.patch
+# PATCH-FIX-UPSTREAM python3-ncurses-6.0-accessors.patch dims...@opensuse.org
+# -- Fix build with NCurses 6.0 and OPAQUE_WINDOW set to 1
+Patch20:        python3-ncurses-6.0-accessors.patch
+# PATCH-FIX-UPSTREAM Python-3.5.1-fix_lru_cache_copying.patch -- Fix copying
+# the lru_cache() wrapper object -- https://bugs.python.org/issue25447
+Patch30:        Python-3.5.1-fix_lru_cache_copying.patch
+### COMMON-PATCH-END ###
+
+%build
+### COMMON-CONFIG-BEGIN ###
+export PATH=$PATH:/sbin:%{_prefix}/sbin
+sed -ie "s/%{device_mapper_version}/1.03.01/g" VERSION_DM
+%configure \
+    --enable-dmeventd --enable-cmdlib \
+    --enable-udev_rules --enable-udev_sync \
+    --with-udev-prefix="%{_prefix}/" \
+    --enable-selinux \
+    --enable-pkgconfig \
+    --with-usrlibdir=%{_libdir} \
+    --with-usrsbindir=%{_sbindir} \
+    --with-default-dm-run-dir=/run \
+    --with-tmpfilesdir=%{_tmpfilesdir} \
+    --with-thin=internal \
+    --with-device-gid=6 \
+    --with-device-mode=0640 \
+    --with-device-uid=0 \
+    --with-dmeventd-path=%{_sbindir}/dmeventd \
+    --with-thin-check=%{_sbindir}/thin_check \
+    --with-thin-dump=%{_sbindir}/thin_dump \
+    --with-thin-repair=%{_sbindir}/thin_repair \
+    $extra_opts
+### COMMON-CONFIG-END ###
+
+%changelog
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/spec-cleaner-spec-cleaner-0.9.1/tests/out/conditions.spec 
new/spec-cleaner-spec-cleaner-0.9.2/tests/out/conditions.spec
--- old/spec-cleaner-spec-cleaner-0.9.1/tests/out/conditions.spec       
2016-12-30 14:10:32.000000000 +0100
+++ new/spec-cleaner-spec-cleaner-0.9.2/tests/out/conditions.spec       
2017-02-13 12:58:57.000000000 +0100
@@ -1,5 +1,4 @@
 Version:        2.8.2
-Release:        0
 Summary:        AppArmor userlevel parser utility
 License:        GPL-2.0+
 Group:          Productivity/Networking/Security
@@ -11,6 +10,9 @@
 BuildRequires:  python
 Requires:       insserv
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
+%ifpython2
+Release:        0
+%endif
 %if %{distro} == "suse"
 # FIXME: use proper Requires(pre/post/preun/...)
 PreReq:         %insserv_prereq
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/spec-cleaner-spec-cleaner-0.9.1/tests/out/excludes-bracketing.spec 
new/spec-cleaner-spec-cleaner-0.9.2/tests/out/excludes-bracketing.spec
--- old/spec-cleaner-spec-cleaner-0.9.1/tests/out/excludes-bracketing.spec      
2016-12-30 14:10:32.000000000 +0100
+++ new/spec-cleaner-spec-cleaner-0.9.2/tests/out/excludes-bracketing.spec      
2017-02-13 12:58:57.000000000 +0100
@@ -45,11 +45,9 @@
 %ghc_pkg_recache
 %ghost
 %glib2_gsettings_schema_[^\s]*
-
-%global
 %gpg_verify
 %icon_theme_cache_post[^\s]*
-%if(\s*\(.*)?
+%if something
 %ifarch
 %ifnarch
 %include
@@ -94,6 +92,20 @@
 %pretrans
 %preun
 %py_compile
+%python_alternative
+%python_install_alternative
+%python_uninstall_alternative
+%python2_only
+%python3_only
+%pypy3_only
+%pycache_only
+%python3_build
+%python2_install
+%pypy3_build
+%pypy3_install
+%python_exec
+%python_expand
+%python_subpackages
 %qmake
 %qmake5
 %qmake5_install
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/spec-cleaner-spec-cleaner-0.9.1/tests/out/fixme-with-space.spec 
new/spec-cleaner-spec-cleaner-0.9.2/tests/out/fixme-with-space.spec
--- old/spec-cleaner-spec-cleaner-0.9.1/tests/out/fixme-with-space.spec 
1970-01-01 01:00:00.000000000 +0100
+++ new/spec-cleaner-spec-cleaner-0.9.2/tests/out/fixme-with-space.spec 
2017-02-13 12:58:57.000000000 +0100
@@ -0,0 +1,7 @@
+Requires:       abcd
+Requires:       efgh
+# FIXME: use proper Requires(pre/post/preun/...)
+PreReq:         abcd
+PreReq:         efgh
+
+%changelog
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/spec-cleaner-spec-cleaner-0.9.1/tests/out/keep-condition-ordering.spec 
new/spec-cleaner-spec-cleaner-0.9.2/tests/out/keep-condition-ordering.spec
--- old/spec-cleaner-spec-cleaner-0.9.1/tests/out/keep-condition-ordering.spec  
1970-01-01 01:00:00.000000000 +0100
+++ new/spec-cleaner-spec-cleaner-0.9.2/tests/out/keep-condition-ordering.spec  
2017-02-13 12:58:57.000000000 +0100
@@ -0,0 +1,18 @@
+%define root %{version}
+%if %{?xyz}
+%define foobar foobar
+%endif
+%define complexthing %{root}-complex-%{?foobar}baz
+%if %{?abc}
+%define ahoj babi
+%bcond_without hamster
+%endif
+%global test somethingelse
+%if 0%{?suse_version} > 1230
+%bcond_without systemd
+%else
+%bcond_with    systemd
+%endif
+%bcond_with self_hosting
+
+%changelog
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/spec-cleaner-spec-cleaner-0.9.1/tests/out/skipped.spec 
new/spec-cleaner-spec-cleaner-0.9.2/tests/out/skipped.spec
--- old/spec-cleaner-spec-cleaner-0.9.1/tests/out/skipped.spec  1970-01-01 
01:00:00.000000000 +0100
+++ new/spec-cleaner-spec-cleaner-0.9.2/tests/out/skipped.spec  2017-02-13 
12:58:57.000000000 +0100
@@ -0,0 +1,38 @@
+#
+# spec file for package skipped
+#
+# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+#
+# 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
+# file, is the same license as for the pristine package itself (unless the
+# license for the pristine package is not an Open Source License, in which
+# case the license is the MIT License). An "Open Source License" is a
+# 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/
+#
+# nospeccleaner
+
+
+Name:           garbage
+Version: a
+Release:  fgf >= 1.0
+
+%prep
+%setup -q
+
+%build
+%configure
+make %{?_smp_mflags}
+
+%install
+make install DESTDIR=%{buildroot} %{?_smp_mflags}
+
+%files
+%defattr(-,root,root)
+%doc ChangeLog README COPYING
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/spec-cleaner-spec-cleaner-0.9.1/tests/out-minimal/codeblock.spec 
new/spec-cleaner-spec-cleaner-0.9.2/tests/out-minimal/codeblock.spec
--- old/spec-cleaner-spec-cleaner-0.9.1/tests/out-minimal/codeblock.spec        
1970-01-01 01:00:00.000000000 +0100
+++ new/spec-cleaner-spec-cleaner-0.9.2/tests/out-minimal/codeblock.spec        
2017-02-13 12:58:57.000000000 +0100
@@ -0,0 +1,68 @@
+Name:           codeblock
+Patch05:        somepatch.patch
+BuildRequires:  test
+# MANUAL
+BuildRequires:  aaa
+BuildRequires:  bbb
+# /MANUAL
+# SECTION the testing dependencies
+BuildRequires:  python-mock
+BuildRequires:  python-nose
+# /SECTION
+### COMMON-PATCH-BEGIN ###
+# implement "--record-rpm" option for distutils installations
+Patch01:        Python-3.0b1-record-rpm.patch
+# support lib-vs-lib64 distinction
+Patch02:        Python-3.5.0-multilib.patch
+# securing usage of readlink/realpath in PySys_SetArgv
+Patch03:        python-2.6b1-canonicalize2.patch
+# support finding packages in /usr/local, install to /usr/local by default
+Patch04:        python-3.3.0b1-localpath.patch
+# replace DATE, TIME and COMPILER by fixed definitions to aid reproducible
+# builds
+Patch06:        python-3.3.0b1-fix_date_time_compiler.patch
+# Raise timeout value for test_subprocess
+Patch07:        subprocess-raise-timeout.patch
+# POSIX_FADV_WILLNEED throws EINVAL. Use a different constant in test
+Patch09:        python-3.3.0b1-test-posix_fadvise.patch
+# Disable global and distutils sysconfig comparison test, we deviate from the
+# default depending on optflags
+Patch12:        python-3.3.3-skip-distutils-test_sysconfig_module.patch
+# fix wrong include path in curses-panel module
+Patch15:        python-3.3.0b1-curses-panel.patch
+# PATCH-FIX-UPSTREAM Fix argument passing in libffi for aarch64
+Patch19:        python-2.7-libffi-aarch64.patch
+# PATCH-FIX-UPSTREAM python3-ncurses-6.0-accessors.patch dims...@opensuse.org
+# -- Fix build with NCurses 6.0 and OPAQUE_WINDOW set to 1
+Patch20:        python3-ncurses-6.0-accessors.patch
+# PATCH-FIX-UPSTREAM Python-3.5.1-fix_lru_cache_copying.patch -- Fix copying
+# the lru_cache() wrapper object -- https://bugs.python.org/issue25447
+Patch30:        Python-3.5.1-fix_lru_cache_copying.patch
+### COMMON-PATCH-END ###
+
+%build
+### COMMON-CONFIG-BEGIN ###
+export PATH=$PATH:/sbin:%{_prefix}/sbin
+sed -ie "s/%{device_mapper_version}/1.03.01/g" VERSION_DM
+%configure \
+    --enable-dmeventd --enable-cmdlib \
+    --enable-udev_rules --enable-udev_sync \
+    --with-udev-prefix="%{_prefix}/" \
+    --enable-selinux \
+    --enable-pkgconfig \
+    --with-usrlibdir=%{_libdir} \
+    --with-usrsbindir=%{_sbindir} \
+    --with-default-dm-run-dir=/run \
+    --with-tmpfilesdir=%{_tmpfilesdir} \
+    --with-thin=internal \
+    --with-device-gid=6 \
+    --with-device-mode=0640 \
+    --with-device-uid=0 \
+    --with-dmeventd-path=%{_sbindir}/dmeventd \
+    --with-thin-check=%{_sbindir}/thin_check \
+    --with-thin-dump=%{_sbindir}/thin_dump \
+    --with-thin-repair=%{_sbindir}/thin_repair \
+    $extra_opts
+### COMMON-CONFIG-END ###
+
+%changelog
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/spec-cleaner-spec-cleaner-0.9.1/tests/out-minimal/conditions.spec 
new/spec-cleaner-spec-cleaner-0.9.2/tests/out-minimal/conditions.spec
--- old/spec-cleaner-spec-cleaner-0.9.1/tests/out-minimal/conditions.spec       
2016-12-30 14:10:32.000000000 +0100
+++ new/spec-cleaner-spec-cleaner-0.9.2/tests/out-minimal/conditions.spec       
2017-02-13 12:58:57.000000000 +0100
@@ -1,5 +1,4 @@
 Version:        2.8.2
-Release:        0
 Summary:        AppArmor userlevel parser utility
 License:        GPL-2.0+
 Group:          Productivity/Networking/Security
@@ -11,6 +10,9 @@
 BuildRequires:  python
 Requires:       insserv
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
+%ifpython2
+Release:        0
+%endif
 %if %{distro} == "suse"
 PreReq:         %{insserv_prereq}
 PreReq:         aaa_base
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/spec-cleaner-spec-cleaner-0.9.1/tests/out-minimal/excludes-bracketing.spec 
new/spec-cleaner-spec-cleaner-0.9.2/tests/out-minimal/excludes-bracketing.spec
--- 
old/spec-cleaner-spec-cleaner-0.9.1/tests/out-minimal/excludes-bracketing.spec  
    2016-12-30 14:10:32.000000000 +0100
+++ 
new/spec-cleaner-spec-cleaner-0.9.2/tests/out-minimal/excludes-bracketing.spec  
    2017-02-13 12:58:57.000000000 +0100
@@ -44,11 +44,9 @@
 %ghc_pkg_recache
 %ghost
 %glib2_gsettings_schema_[^\s]*
-
-%global
 %gpg_verify
 %icon_theme_cache_post[^\s]*
-%if(\s*\(.*)?
+%if something
 %ifarch
 %ifnarch
 %include
@@ -93,6 +91,20 @@
 %pretrans
 %preun
 %py_compile
+%python_alternative
+%python_install_alternative
+%python_uninstall_alternative
+%python2_only
+%python3_only
+%pypy3_only
+%pycache_only
+%python3_build
+%python2_install
+%pypy3_build
+%pypy3_install
+%python_exec
+%python_expand
+%python_subpackages
 %qmake
 %qmake5
 %qmake5_install
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/spec-cleaner-spec-cleaner-0.9.1/tests/out-minimal/fixme-with-space.spec 
new/spec-cleaner-spec-cleaner-0.9.2/tests/out-minimal/fixme-with-space.spec
--- old/spec-cleaner-spec-cleaner-0.9.1/tests/out-minimal/fixme-with-space.spec 
1970-01-01 01:00:00.000000000 +0100
+++ new/spec-cleaner-spec-cleaner-0.9.2/tests/out-minimal/fixme-with-space.spec 
2017-02-13 12:58:57.000000000 +0100
@@ -0,0 +1,6 @@
+Requires:       abcd
+Requires:       efgh
+PreReq:         abcd
+PreReq:         efgh
+
+%changelog
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/spec-cleaner-spec-cleaner-0.9.1/tests/out-minimal/keep-condition-ordering.spec
 
new/spec-cleaner-spec-cleaner-0.9.2/tests/out-minimal/keep-condition-ordering.spec
--- 
old/spec-cleaner-spec-cleaner-0.9.1/tests/out-minimal/keep-condition-ordering.spec
  1970-01-01 01:00:00.000000000 +0100
+++ 
new/spec-cleaner-spec-cleaner-0.9.2/tests/out-minimal/keep-condition-ordering.spec
  2017-02-13 12:58:57.000000000 +0100
@@ -0,0 +1,18 @@
+%define root %version
+%if %{?xyz}
+%define foobar foobar
+%endif
+%define complexthing %{root}-complex-%{?foobar}baz
+%if %{?abc}
+%define ahoj babi
+%bcond_without hamster
+%endif
+%global test somethingelse
+%if 0%{?suse_version} > 1230
+%bcond_without systemd
+%else
+%bcond_with    systemd
+%endif
+%bcond_with self_hosting
+
+%changelog
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/spec-cleaner-spec-cleaner-0.9.1/tests/out-minimal/skipped.spec 
new/spec-cleaner-spec-cleaner-0.9.2/tests/out-minimal/skipped.spec
--- old/spec-cleaner-spec-cleaner-0.9.1/tests/out-minimal/skipped.spec  
1970-01-01 01:00:00.000000000 +0100
+++ new/spec-cleaner-spec-cleaner-0.9.2/tests/out-minimal/skipped.spec  
2017-02-13 12:58:57.000000000 +0100
@@ -0,0 +1,38 @@
+#
+# spec file for package skipped
+#
+# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+#
+# 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
+# file, is the same license as for the pristine package itself (unless the
+# license for the pristine package is not an Open Source License, in which
+# case the license is the MIT License). An "Open Source License" is a
+# 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/
+#
+# nospeccleaner
+
+
+Name:           garbage
+Version: a
+Release:  fgf >= 1.0
+
+%prep
+%setup -q
+
+%build
+%configure
+make %{?_smp_mflags}
+
+%install
+make install DESTDIR=%{buildroot} %{?_smp_mflags}
+
+%files
+%defattr(-,root,root)
+%doc ChangeLog README COPYING
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/spec-cleaner-spec-cleaner-0.9.1/tox.ini 
new/spec-cleaner-spec-cleaner-0.9.2/tox.ini
--- old/spec-cleaner-spec-cleaner-0.9.1/tox.ini 2016-12-30 14:10:32.000000000 
+0100
+++ new/spec-cleaner-spec-cleaner-0.9.2/tox.ini 2017-02-13 12:58:57.000000000 
+0100
@@ -1,5 +1,5 @@
 [tox]
-envlist = py27,py35
+envlist = py27,py33,py34,py35,py36
 minversion = 1.6
 skipsdist = True
 

++++++ spec-cleaner.dsc ++++++
--- /var/tmp/diff_new_pack.YLR1OI/_old  2017-02-15 10:07:35.710143552 +0100
+++ /var/tmp/diff_new_pack.YLR1OI/_new  2017-02-15 10:07:35.710143552 +0100
@@ -1,6 +1,6 @@
 Format: 3.0 (quilt)
 Source: spec-cleaner
-Version: 0.9.1-1
+Version: 0.9.2-1
 Binary: spec-cleaner
 Maintainer: Přemysl Janouch <pjano...@suse.com>
 Architecture: all


Reply via email to