Hello community,

here is the log from the commit of package rpmlint for openSUSE:Factory
checked in at Mon May 2 17:31:26 CEST 2011.



--------
--- rpmlint/rpmlint.changes     2011-04-23 11:26:24.000000000 +0200
+++ rpmlint/rpmlint.changes     2011-05-02 16:17:12.000000000 +0200
@@ -1,0 +2,21 @@
+Mon May  2 14:17:04 UTC 2011 - lnus...@suse.de
+
+- add account services (bnc#676638)
+
+-------------------------------------------------------------------
+Mon May  2 11:56:25 UTC 2011 - lnus...@suse.de
+
+- another try to fix InitScriptCheck.py (bnc#690961)
+
+-------------------------------------------------------------------
+Wed Apr 27 15:09:54 CEST 2011 - dmuel...@suse.de
+
+- implement setFilterException()
+- rediff noarch-lib64.diff and enable it again (bnc#663885)
+
+-------------------------------------------------------------------
+Tue Apr 26 15:19:36 CEST 2011 - dmuel...@suse.de
+
+- make error description more clearn (bnc#686328)
+
+-------------------------------------------------------------------

calling whatdependson for head-i586


New:
----
  suse-filter-exception.diff
  suse-speccheck-utf8.diff

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

Other differences:
------------------
++++++ rpmlint.spec ++++++
--- /var/tmp/diff_new_pack.dQQ8aG/_old  2011-05-02 17:29:24.000000000 +0200
+++ /var/tmp/diff_new_pack.dQQ8aG/_new  2011-05-02 17:29:24.000000000 +0200
@@ -23,7 +23,7 @@
 BuildRequires:  rpm-python
 Summary:        Rpm correctness checker
 Version:        1.1
-Release:        29
+Release:        31
 Source0:        %{name}-%{version}.tar.bz2
 Source1:        config
 Source1001:     config.in
@@ -74,6 +74,7 @@
 Patch12:        usr-arch.diff
 Patch13:        script-interpreter-only-for-exec-scripts.diff
 Patch14:        sourced-dirs.diff
+Patch15:        suse-filter-exception.diff
 Patch17:        docdata-examples.diff
 Patch19:        yast-provides.diff
 Patch20:        xdg-paths-update.diff
@@ -122,6 +123,7 @@
 Patch86:        suse-rclink-check.diff
 # already upstream
 Patch87:        rpmlint-add-details.diff
+Patch88:        suse-speccheck-utf8.diff
 %py_requires
 
 %description
@@ -152,6 +154,7 @@
 %patch12
 %patch13
 %patch14
+%patch15
 %patch17
 %patch19
 %patch20
@@ -171,7 +174,7 @@
 #%patch41
 %patch42
 #%patch46
-#%patch47
+%patch47
 #%patch49
 %patch50
 %patch51
@@ -199,6 +202,7 @@
 %patch85
 %patch86
 %patch87 -p1
+%patch88
 cp -p %{SOURCE1} .
 cp -p %{SOURCE2} .
 cp -p %{SOURCE3} .

++++++ config ++++++
--- /var/tmp/diff_new_pack.dQQ8aG/_old  2011-05-02 17:29:25.000000000 +0200
+++ /var/tmp/diff_new_pack.dQQ8aG/_new  2011-05-02 17:29:25.000000000 +0200
@@ -414,6 +414,9 @@
     # urfkill (bnc#688328) 
     "org.freedesktop.URfkill.service",
     "org.freedesktop.URfkill.conf",
+    # account services (bnc#676638)
+    "org.freedesktop.Accounts.service",
+    "org.freedesktop.Accounts.conf",
 ))
 
 # Output filters

++++++ noarch-lib64.diff ++++++
--- /var/tmp/diff_new_pack.dQQ8aG/_old  2011-05-02 17:29:25.000000000 +0200
+++ /var/tmp/diff_new_pack.dQQ8aG/_new  2011-05-02 17:29:25.000000000 +0200
@@ -1,43 +1,39 @@
 --- BinariesCheck.py
 +++ BinariesCheck.py
-@@ -153,6 +153,7 @@ class BinariesCheck(AbstractCheck.AbstractCheck):
-         binary=0
-         binary_in_usr_lib=0
-         has_usr_lib_file=0
-+        file_in_lib64=0
+@@ -223,6 +223,7 @@
+         binary = False
+         binary_in_usr_lib = False
+         has_usr_lib_file = False
++        file_in_lib64 = False
  
+         multi_pkg = False
          res = srcname_regex.search(pkg[rpm.RPMTAG_SOURCERPM] or '')
-         if res:
-@@ -161,10 +162,13 @@ class BinariesCheck(AbstractCheck.AbstractCheck):
-             multi_pkg=0
- 
-         for f in files:
--            if usr_lib_regex.search(f) and not 
usr_lib_exception_regex.search(f) and not stat.S_ISDIR(files[f][0]):
-+            if stat.S_ISREG(files[f][0]) and usr_lib_regex.search(f) and not 
usr_lib_exception_regex.search(f):
-                 has_usr_lib_file=f
-                 break
- 
-+            if stat.S_ISREG(files[f][0]) and (f.startswith("/usr/lib64") or 
f.startswith("/lib64")):
-+                file_in_lib64=1
+@@ -239,6 +240,10 @@
+                     # only-non-binary-in-usr-lib false positives
+                     binary_in_usr_lib = True
+ 
++            if stat.S_ISREG(pkgfile.mode) and \
++                    (fname.startswith("/usr/lib64") or 
fname.startswith("/lib64")):
++                file_in_lib64 = True
 +
-         for i in info:
-             is_elf = string.find(i[1], 'ELF') != -1
-             is_ar = string.find(i[1], 'current ar archive') != -1
-@@ -316,9 +320,12 @@ class BinariesCheck(AbstractCheck.AbstractCheck):
+             is_elf = 'ELF' in pkgfile.magic
+             is_ar = 'current ar archive' in pkgfile.magic
+             is_ocaml_native = 'Objective caml native' in pkgfile.magic
+@@ -433,9 +438,12 @@
+             if version and version != -1 and version not in pkg.name:
                  printError(pkg, 'incoherent-version-in-name', version)
  
-         if pkg.arch != 'noarch' and not multi_pkg:
--            if binary == 0:
-+            if binary == 0 and not file_in_lib64:
-                 printError(pkg, 'no-binary')
+-        if not binary and not multi_pkg and pkg.arch != 'noarch':
++        if not binary and not multi_pkg and not file_in_lib64 and pkg.arch != 
'noarch':
+             printError(pkg, 'no-binary')
  
 +        if pkg.arch == 'noarch' and file_in_lib64:
 +            printError(pkg, 'noarch-with-lib64')
 +
          if has_usr_lib_file and not binary_in_usr_lib:
-             printError(pkg, 'only-non-binary-in-usr-lib')
+             printWarning(pkg, 'only-non-binary-in-usr-lib')
  
-@@ -343,6 +350,11 @@ FHS and the FSSTND forbid this.''',
+@@ -459,6 +467,11 @@
  # 'non-sparc32-binary',
  # '',
  

++++++ suse-filter-exception.diff ++++++
--- Config.py
+++ Config.py
@@ -115,6 +115,8 @@
 # List of filters
 _filters = []
 _filters_re = None
+_filters_except = []
+_filters_except_re = None
 
 def addFilter(s):
     global _filters
@@ -137,8 +139,14 @@
 _scoring = {}
 
 def setBadness(s, score):
+    global _scoring
     _scoring[s] = score
 
+def setFilterException(s):
+    global _filters_except
+
+    _filters_except.append(s)
+
 def badness(s):
     return _scoring.get(s, 0)
 
@@ -146,6 +154,8 @@
 def isFiltered(s):
     global _filters
     global _filters_re
+    global _filters_except
+    global _filters_except_re
 
     if _filters_re == None:
         # no filter
@@ -162,7 +172,21 @@
             _filters_re = _filters_re + '|(?:' + _filters[idx] +')'
         _filters_re = re.compile(_filters_re)
 
+    if _filters_except_re == None and len(_filters_except):
+        _filters_except_re = '(?:' + _filters_except[0] + ')'
+
+        for idx in range(1, len(_filters_except)):
+            # to prevent named group overflow that happen when there is too
+            # many () in a single regexp: AssertionError: sorry, but this
+            # version only supports 100 named groups
+            if '(' in _filters_except[idx]:
+                _non_named_group_re.subn('(:?', _filters_except[idx])
+            _filters_except_re = _filters_except_re + '|(?:' + 
_filters_except[idx] +')'
+        _filters_except_re = re.compile(_filters_except_re)
+
     if not no_exception:
+        if _filters_except_re and _filters_except_re.search(s):
+            return False
         if _filters_re.search(s):
             return True
     return False
++++++ suse-rclink-check.diff ++++++
--- /var/tmp/diff_new_pack.dQQ8aG/_old  2011-05-02 17:29:25.000000000 +0200
+++ /var/tmp/diff_new_pack.dQQ8aG/_new  2011-05-02 17:29:25.000000000 +0200
@@ -1,6 +1,8 @@
---- InitScriptCheck.py
+Index: InitScriptCheck.py
+===================================================================
+--- InitScriptCheck.py.orig
 +++ InitScriptCheck.py
-@@ -51,7 +51,7 @@
+@@ -50,7 +50,7 @@ class InitScriptCheck(AbstractCheck.Abst
              return
  
          initscript_list = []
@@ -9,17 +11,18 @@
  
          # check chkconfig call in %post and %preun
          postin = pkg[rpm.RPMTAG_POSTIN] or pkg[rpm.RPMTAG_POSTINPROG]
-@@ -60,6 +60,9 @@
+@@ -59,6 +59,10 @@ class InitScriptCheck(AbstractCheck.Abst
  
          for fname, pkgfile in pkg.files().items():
  
-+            if stat.S_ISLNK(pkgfile.mode) and 
fname.startswith("/usr/sbin/rc"):
++            if stat.S_ISLNK(pkgfile.mode) and 
(fname.startswith("/usr/sbin/rc") \
++                    or fname.startswith("/sbin/rc")):
 +                rclinks.add(fname.partition('/rc')[2])
 +
              if not fname.startswith('/etc/init.d/') and \
                      not fname.startswith('/etc/rc.d/init.d/'):
                  continue
-@@ -199,6 +202,12 @@
+@@ -194,6 +198,12 @@ class InitScriptCheck(AbstractCheck.Abst
              if not subsys_regex_found:
                  printError(pkg, 'subsys-not-used', fname)
  
@@ -32,13 +35,13 @@
          goodnames = (pkg.name.lower(), pkg.name.lower() + 'd')
          if len(initscript_list) == 1 and initscript_list[0] not in goodnames:
              printWarning(pkg, 'incoherent-init-script-name', 
initscript_list[0],
-@@ -229,6 +238,10 @@
- '''The package contains an init script but doesn't contain a %postun
- with a call to %insserv_cleanup-postun''',
+@@ -216,6 +226,10 @@ a call to chkconfig.''',
+ '''The package contains an init script but doesn't contain a %preun with
+ a call to chkconfig.''',
  
 +'suse-missing-rclink',
 +'''The package contains an init script with the given name but does not
-+have contain the SUSE policy symlink /usr/sbin/rcFOO -> /etc/init.d/FOO''',
++contain the SUSE policy symlink /usr/sbin/rcFOO -> /etc/init.d/FOO''',
 +
  'preun-without-chkconfig',
  '''The package contains an init script but doesn't call chkconfig in its

++++++ suse-speccheck-utf8.diff ++++++
--- SpecCheck.py
+++ SpecCheck.py
@@ -597,8 +597,8 @@
 ("Name:" tag). Either rename your package or the specfile.''',
 
 'non-utf8-spec-file',
-'''The character encoding of the spec file is not UTF-8.  Convert it for
-example using iconv(1).''',
+'''The character encoding of the spec file (or the merged bits from the 
.changes file)
+is not UTF-8.  Convert it for example using iconv(1).''',
 
 'use-of-RPM_SOURCE_DIR',
 '''You use $RPM_SOURCE_DIR or %{_sourcedir} in your spec file. If you have to
++++++ sysv5-init-checks.diff ++++++
--- /var/tmp/diff_new_pack.dQQ8aG/_old  2011-05-02 17:29:25.000000000 +0200
+++ /var/tmp/diff_new_pack.dQQ8aG/_new  2011-05-02 17:29:25.000000000 +0200
@@ -1,17 +1,18 @@
---- InitScriptCheck.py
+Index: InitScriptCheck.py
+===================================================================
+--- InitScriptCheck.py.orig
 +++ InitScriptCheck.py
-@@ -29,6 +29,10 @@
+@@ -29,6 +29,9 @@ dot_in_name_regex = re.compile('.*\..*')
  use_deflevels = Config.getOption('UseDefaultRunlevels', True)
  lsb_tags_regex = re.compile('^# ([\w-]+):\s*(.*?)\s*$')
  lsb_cont_regex = re.compile('^#(?:\t|  )(.*?)\s*$')
-+insserv_regex=re.compile('^\s*sbin/insserv', re.MULTILINE)
-+stop_on_removal_regex=re.compile('^\s*%stop_on_removal\s+\S+', re.MULTILINE)
-+restart_on_update_regex=re.compile('^\s*%restart_on_update\s\S+', 
re.MULTILINE)
-+insserv_cleanup_regex=re.compile('^\s*%insserv_cleanup', re.MULTILINE)
++stop_on_removal_regex=re.compile('/etc/init.d/\$service stop > /dev/null')
++restart_on_update_regex=re.compile('/etc/init.d/\$service try-restart > 
/dev/null')
++insserv_cleanup_regex=re.compile('^\s*/sbin/insserv /etc/init.d$', 
re.MULTILINE)
  
  LSB_KEYWORDS = ('Provides', 'Required-Start', 'Required-Stop', 'Should-Start',
                  'Should-Stop', 'Default-Start', 'Default-Stop',
-@@ -47,6 +51,13 @@
+@@ -47,6 +50,13 @@ class InitScriptCheck(AbstractCheck.Abst
              return
  
          initscript_list = []
@@ -25,7 +26,7 @@
          for fname, pkgfile in pkg.files().items():
  
              if not fname.startswith('/etc/init.d/') and \
-@@ -60,18 +71,19 @@
+@@ -60,18 +70,15 @@ class InitScriptCheck(AbstractCheck.Abst
  
              if dot_in_name_regex.match(basename):
                  printError(pkg, 'init-script-name-with-dot', fname)
@@ -35,47 +36,25 @@
 -                printError(pkg, 'init-script-without-chkconfig-postin', fname)
 -            elif not chkconfig_regex.search(postin):
 -                printError(pkg, 'postin-without-chkconfig', fname)
- 
+-
 -            preun = pkg[rpm.RPMTAG_PREUN] or pkg[rpm.RPMTAG_PREUNPROG]
-             if not preun:
+-            if not preun:
 -                printError(pkg, 'init-script-without-chkconfig-preun', fname)
 -            elif not chkconfig_regex.search(preun):
 -                printError(pkg, 'preun-without-chkconfig', fname)
++
++            if not preun or not stop_on_removal_regex.search(preun):
 +                printError(pkg, 'init-script-without-%stop_on_removal-preun', 
fname)
-+            elif not stop_on_removal_regex.search(preun):
-+                printError(pkg, 'preun-without-%stop_on_removal-preun', fname)
 +
-+            if not postun:
++            if not postun or not restart_on_update_regex.search(postun):
 +                printError(pkg, 
'init-script-without-%restart_on_update-postun', fname)
-+            else:
-+                if not restart_on_update_regex.search(postun):
-+                    printError(pkg, 'postun-without-%restart_on_update', 
fname)
-+                if not insserv_cleanup_regex.search(postun):
-+                    printError(pkg, 'postun-without-%insserv_cleanup', fname)
++
++            if not postun or not insserv_cleanup_regex.search(postun):
++                printError(pkg, 
'init-script-without-%insserv_cleanup-postun', fname)
  
              status_found = False
              reload_found = False
-@@ -202,10 +214,18 @@
- '''The package contains an init script but doesn't call chkconfig in its
- %post script.''',
- 
--'init-script-without-chkconfig-preun',
-+'init-script-without-%stop_on_removal-preun',
- '''The package contains an init script but doesn't contain a %preun with
- a call to chkconfig.''',
- 
-+'init-script-without-%insserv_cleanup-postun',
-+'''The package contains an init script but doesn't contain a %postun
-+with a call to %insserv_cleanup-postun''',
-+
-+'postun-without-%insserv_cleanup',
-+'''The package contains an init script but doesn't contain a %postun
-+with a call to %insserv_cleanup-postun''',
-+
- 'preun-without-chkconfig',
- '''The package contains an init script but doesn't call chkconfig in its
- %preun script.''',
-@@ -264,6 +284,24 @@
+@@ -264,6 +271,17 @@ of chkconfig don't work as expected with
  'init-script-non-executable',
  '''The init script should have at least the execution bit set for root
  in order for it to run at boot time.''',
@@ -83,16 +62,9 @@
 +'init-script-without-%stop_on_removal-preun',
 +'''The init script should have a %preun script that calls 
%stop_on_removal.''',
 +
-+'preun-without-%stop_on_removal-preun',
-+'''The init script is not listed in %stop_on_removal in %preun.''',
-+
 +'init-script-without-%insserv_cleanup-postun',
 +'''The package doesn't have a %insserv_cleanup call in %postun''',
 +
-+'postun-without-%insserv_cleanup',
-+'''The package has an init script that is inserted with insserv but
-+doesn't have a %insserv_cleanup call in %postun''',
-+
 +'init-script-without-%restart_on_update-postun',
 +''' The package has an init script but is missing the %restart_on_update
 +call in %postun to automatically restart the daemon. This is optional,


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



Remember to have fun...

-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to