2 # vim: syntax=python sw=4 et
3 # Configuration for the rpmlint utility.
4 # Loaded before ~/.rpmlintrc
5 # $Id: config,v 1.39 2003/12/22 11:20:55 flepied Exp $
7 # This line is mandatory to access the configuration functions
9 from Filter import addDetails
11 # Additionale path to look for checks
13 #addCheckDir("~/mandrake/rpmlint")
15 # Configure the checks if you don't want the default ones
19 addCheck("CheckBuildRoot")
20 addCheck("CheckExecDocs")
21 addCheck("CheckPkgConfig")
22 addCheck("CheckCommonFiles")
23 #addCheck("CheckInitScripts")
24 addCheck("DuplicatesCheck")
25 addCheck("LibraryPolicyCheck")
26 addCheck("CheckIconSizes")
27 #addCheck("CheckStaticLibraries")
28 #addCheck("BrandingPolicyCheck")
29 #addCheck("CheckSUIDPermissions")
30 # polkit-default-privs would need to be installed always
31 #addCheck("CheckPolkitPrivs")
32 #addCheck("CheckDBUSServices")
33 #addCheck("CheckDBusPolicy")
34 addCheck("CheckFilelist")
35 addCheck("CheckKDE4Deps")
36 #addCheck("KMPPolicyCheck")
37 addCheck("CheckAlternativesGhostFiles")
38 #addCheck("BashismsCheck")
39 addCheck("CheckBuildDate")
40 #addCheck("CheckLogrotate")
41 addCheck("CheckPAMModules")
43 # stuff autobuild takes care about
44 addFilter(".*no-%clean-section.*")
45 addFilter(".*no-changelogname-tag.*")
46 addFilter(".*binary-or-shlib-calls-gethostbyname.*")
47 addFilter(".*shared-lib-calls-exit.*")
48 addFilter(".*info-files-without-install-info-postin.*")
49 addFilter(".*shlib-legacy-policy-name-error.*")
50 addFilter(".*shlib-policy-name-error.*")
51 addFilter(".*incorrect-fsf-address.*")
52 addFilter(".*files-attr-not-set.*")
53 addFilter(".*suse-dbus-unauthorized-service.*")
54 addFilter(".*no-manual-page-for-binary.*")
55 addFilter(".*invalid-version.*")
56 addFilter(".*invalid-packager.*")
57 addFilter(".*not-standard-release-extension.*")
58 #addFilter(".*non-standard-group.*")
59 addFilter(".*invalid-buildhost.*")
60 addFilter(".*executable-in-library-package.*")
61 addFilter(".*non-versioned-file-in-library-package.*")
62 addFilter(".*incoherent-version-in-name.*")
63 addFilter(".*invalid-vendor.*")
64 addFilter(".*invalid-distribution.*")
65 addFilter(".*hardcoded-path-in-buildroot-tag.*")
66 addFilter(".*no-buildroot-tag.*")
67 addFilter(".*cross-directory-hard-link.*")
69 # Configuration options used by the checks
71 #setOption("Vendor", "MySelf")
72 #setOption("Distribution", "MyDistrib")
73 setOption("UseBzip2", 0)
74 setOption("UseUTF8", 1)
75 #setOption("ReleaseExtension", None)
76 #setOption("ValidGroups", ("Group1", "Group2"))
77 #setOption("KernelModuleRPMsOK", 0)
78 setOption("CompressExtension", None)
79 setOption('UseVarLockSubsys', False)
81 setOption('StandardGroups', (
154 'openstack-keystone',
208 setOption('StandardUsers', (
280 'openstack-keystone',
332 addDetails('non-standard-uid',
333 '''A file in this package is owned by an unregistered user id.
334 To register the user, please branch the devel:openSUSE:Factory:rpmlint rpmlint package,
335 add the user to the "config" file and send a submitrequest.
338 '''A file in this package is owned by an unregistered group id.
339 To register the group, please branch the devel:openSUSE:Factory:rpmlint rpmlint package,
340 add the group to the "config" file and send a submitrequest.
344 setOption('DanglingSymlinkExceptions',
345 (['/usr/share/doc/licenses/', 'licenses'],
346 ['consolehelper$', 'usermode-consoleonly'],
349 setOption("DBUSServices.WhiteList", (
352 "cups.conf", # bnc#515977
353 "org.freedesktop.ConsoleKit.service",
354 "org.freedesktop.PolicyKit.conf",
355 "org.freedesktop.PolicyKit.service",
357 # the following are not audited. We accept them as legacy for now
359 # gnome-settings-daemon
360 "org.gnome.SettingsDaemon.DateTimeMechanism.service",
361 "org.gnome.SettingsDaemon.DateTimeMechanism.conf",
363 "org.freedesktop.UPower.service",
364 "org.freedesktop.UPower.conf",
368 "org.freedesktop.PackageKit.conf",
370 "org.freedesktop.PackageKit.service",
371 # NetworkManager-pptp
372 "nm-pptp-service.conf",
376 "org.freedesktop.UDisks.service",
377 "org.freedesktop.UDisks.conf",
378 # udisks2 (bnc#742751)
379 "org.freedesktop.UDisks2.service",
380 "org.freedesktop.UDisks2.conf",
382 "com.novell.Pkcs11Monitor.conf",
383 # systemd (bnc#641924)
384 "org.freedesktop.systemd1.service",
385 "org.freedesktop.systemd1.conf",
386 "org.freedesktop.hostname1.service",
387 "org.freedesktop.hostname1.conf",
388 "org.freedesktop.login1.conf",
389 "org.freedesktop.login1.service",
390 "org.freedesktop.timedate1.conf",
391 "org.freedesktop.timedate1.service",
392 "org.freedesktop.locale1.conf",
393 "org.freedesktop.locale1.service",
395 "org.gnome.GConf.Defaults.service",
396 "org.gnome.GConf.Defaults.conf",
397 # system-config-printer (bnc#694640)
398 "com.redhat.NewPrinterNotification.conf",
399 "com.redhat.PrinterDriversInstaller.conf",
401 "org.freedesktop.RealtimeKit1.conf",
402 "org.freedesktop.RealtimeKit1.service",
404 "fi.epitest.hostap.WPASupplicant.service",
406 "fi.w1.wpa_supplicant1.service",
407 "wpa_supplicant.conf",
409 "org.kde.fontinst.service",
410 "org.kde.kcontrol.kcmkdm.conf",
411 "org.kde.fontinst.conf",
412 "org.kde.ksysguard.processlisthelper.service",
413 "org.kde.kcontrol.kcmclock.service",
414 "org.kde.kcontrol.kcmclock.conf",
415 "org.kde.kcontrol.kcmkdm.service",
416 "org.kde.ksysguard.processlisthelper.conf",
418 "pulseaudio-system.conf",
420 "org.kde.kcontrol.kcmremotewidgets.service",
421 "org.kde.kcontrol.kcmremotewidgets.conf",
423 "org.kde.kcontrol.k3bsetup.service",
424 "org.kde.kcontrol.k3bsetup.conf",
425 # NetworkManager-novellvpn
426 "nm-novellvpn-service.conf",
429 "org.freedesktop.Avahi.service",
431 "hp-drive-guard-dbus.conf",
433 "nm-dhcp-client.conf",
434 "nm-dispatcher.conf",
435 "nm-avahi-autoipd.conf",
436 "org.freedesktop.nm_dispatcher.service",
438 "org.freedesktop.NetworkManager.conf",
439 "NetworkManager-frontend.conf",
441 "org.freedesktop.NetworkManager.service",
443 "org.freedesktop.ModemManager.service",
444 "org.freedesktop.ModemManager.conf",
452 "org.freedesktop.Gypsy.service",
455 # NetworkManager-openvpn
456 "nm-openvpn-service.conf",
460 "org.freedesktop.PolicyKit1.conf",
461 "org.freedesktop.PolicyKit1.service",
463 "ca.desrt.dconf.service",
467 "org.kde.polkitkde1.helper.conf",
468 "org.kde.polkitkde1.helper.service",
472 "org.opensuse.CupsPkHelper.Mechanism.service",
473 "org.opensuse.CupsPkHelper.Mechanism.conf",
475 "org.opensuse.zoneswitcher.service",
476 "org.opensuse.zoneswitcher.conf",
479 # NetworkManager-vpnc
480 "nm-vpnc-service.conf",
481 # NetworkManager-strongswan, bnc#656222
482 "nm-strongswan-service.conf",
484 "mumble-server.conf",
485 # kdebase4-runtime, bnc#672145
486 "org.kde.powerdevil.backlighthelper.service",
487 "org.kde.powerdevil.backlighthelper.conf",
488 # urfkill (bnc#688328)
489 "org.freedesktop.URfkill.service",
490 "org.freedesktop.URfkill.conf",
491 # account services (bnc#676638)
492 "org.freedesktop.Accounts.service",
493 "org.freedesktop.Accounts.conf",
494 # synche-connector (bnc#683956)
495 "org.synce.dccm.service",
496 "org.synce.dccm.conf",
497 # colord (bnc#698250)
498 "org.freedesktop.ColorManager.service",
499 "org.freedesktop.ColorManager.conf",
500 # colord-sane (bnc#752518)
501 "org.freedesktop.colord-sane.service",
502 "org.freedesktop.colord-sane.conf",
503 # lightdm (bnc#708205)
504 "org.freedesktop.DisplayManager.conf",
505 # kdepim4/kalarm (bnc#707723)
506 "org.kde.kalarmrtcwake.conf",
507 "org.kde.kalarmrtcwake.service",
508 # NetworkManager-openvpn (bnc#732915)
509 "nm-openconnect-service.conf",
511 "de.berlios.smb4k.mounthelper.conf",
512 "de.berlios.smb4k.mounthelper.service",
513 # cdemu-deamon (bnc#764063)
515 # snapper (bnc#759391)
516 "org.opensuse.Snapper.conf",
517 "org.opensuse.Snapper.service",
518 # autofs-udisk interaction (bnc#782691)
519 "org.freedesktop.AutoMount.conf",
522 setOption("PAMModules.WhiteList", (
525 "pam_p11_openssh.so",
532 "pam_gnome_keyring.so",
544 "pam_ck_connector.so",
556 "pam_radius_auth.so",
616 "pam_unix_passwd.so",
617 "pam_unix_session.so",
637 addFilter(".*spurious-bracket-in-.*")
638 addFilter(".*one-line-command-in-.*")
639 addFilter(" dir-or-file-in-opt ") # handled by CheckFilelist.py
640 addFilter(" dir-or-file-in-usr-local ") # handled by CheckFilelist.py
641 addFilter(" non-standard-dir-in-usr ") # handled by CheckFilelist.py
642 addFilter("incoherent-version-in-changelog")
643 addFilter(" no-signature")
644 addFilter(" symlink-crontab-file") #bnc591431
645 addFilter(" without-chkconfig")
646 addFilter("unstripped-binary-or-object.*\.ko")
647 addFilter(" no-chkconfig")
648 addFilter(" subsys-not-used")
649 addFilter(" dangerous-command.*")
650 addFilter(" setuid-binary.*")
651 addFilter(".*FSSTND-dir-in-var /var/adm/.*")
652 addFilter("subdir-in-bin /sbin/conf.d/")
653 addFilter(".* nss_db non-standard-dir-in-var db")
654 addFilter("non-standard-dir-in-usr openwin")
655 addFilter("ibcs2 non-standard-dir-in-usr i486-sysv4")
656 addFilter("shlibs5 non-standard-dir-in-usr i486-linux-libc5")
657 addFilter("filesystem dir-or-file")
658 addFilter("filesystem hidden-")
659 addFilter("explicit-lib-dependency libtool")
662 # suppress any errors about internal packages
663 addFilter("^qa\S+: [EWI]:")
664 addFilter("^\S*(?:INTERNAL|internal)\.\S+: [EWI]:")
667 # exceptions for devel-files
668 addFilter("devel-file-in-non-devel-package.*/boot/vmlinuz-.*autoconf.h")
669 addFilter("devel-file-in-non-devel-package.*/usr/src/linux-")
670 addFilter("devel-file-in-non-devel-package.*/usr/share/systemtap")
671 addFilter("kde4-kapptemplate\.\S+:.*devel-file-in-non-devel-package")
672 addFilter("kdesdk3\.\S+:.*devel-file-in-non-devel-package")
673 addFilter("-(?:examples|doc)\.\S+: \w: devel-file-in-non-devel-package")
674 addFilter("java\S+-demo\.\S+: \w: devel-file-in-non-devel-package")
675 addFilter('avr-libc\.\S+: \w: devel-file-in-non-devel-package')
676 addFilter('dietlibc\.\S+ \w: devel-file-in-non-devel-package')
677 addFilter('cross-.*devel-file-in-non-devel-package')
678 addFilter('cmake.*devel-file-in-non-devel-package')
679 addFilter('gcc\d\d.*devel-file-in-non-devel-package')
680 addFilter('OpenOffice_org-sdk\.\S+: \w: devel-file-in-non-devel-package')
681 addFilter('wnn-sdk\.\S+: \w: devel-file-in-non-devel-package')
682 addFilter('ocaml\.\S+: \w: devel-file-in-non-devel-package')
683 addFilter('xorg-x11-server-sdk\.\S+: \w: devel-file-in-non-devel-package')
684 addFilter('linux-kernel-headers\.\S+: \w: devel-file-in-non-devel-package')
685 addFilter(' devel-file-in-non-devel-package.*-config')
686 addFilter('libtool\.\S+: \w: devel-file-in-non-devel-package')
688 addFilter('update-desktop-files\.\S+: \w: untranslated-desktop-file')
689 addFilter("sdb.* dangling-relative-symlink /usr/share/doc/sdb/.*/gifs ../gifs")
690 addFilter("kernel-modules-not-in-kernel-packages")
691 # SUSE kmp's don't need manual depmod (bnc#456048)
692 addFilter("module-without-depmod-postin")
693 addFilter("postin-with-wrong-depmod")
694 addFilter("module-without-depmod-postun")
695 addFilter("postun-with-wrong-depmod")
697 addFilter("configure-without-libdir-spec")
698 addFilter("conffile-without-noreplace-flag /etc/init.d")
699 addFilter("use-of-RPM_SOURCE_DIR")
700 addFilter("use-tmp-in-")
701 addFilter("symlink-contains-up-and-down-segments /var/lib/named")
702 addFilter("no-ldconfig-symlink")
703 addFilter("aaa_base\.\S+: \w: use-of-home-in-%post")
704 addFilter("description-line-too-long")
705 addFilter("hardcoded-library-path")
706 # addFilter("incoherent-subsys")
707 # doesn't seem to make sense
708 addFilter("invalid-ldconfig-symlink")
709 addFilter("invalid-soname")
710 addFilter("library-not-linked-against-libc")
711 addFilter("only-non-binary-in-usr-lib")
712 addFilter("outside-libdir-files")
713 # we want these files
714 addFilter(" perl-temp-file ")
715 addFilter(" hidden-file-or-dir .*/\.packlist")
716 addFilter(" hidden-file-or-dir .*/\.directory")
717 addFilter("perl-.*no-binary")
718 addFilter(" no-major-in-name ")
719 # we check for that already
720 addFilter("dangling-relative-symlink")
721 addFilter(" lib-package-without-%mklibname")
722 addFilter(" requires-on-release")
723 addFilter(" non-executable-script /etc/profile.d/")
724 addFilter(" non-executable-script /var/adm/fillup-templates/")
725 addFilter(" init-script-name-with-dot ")
726 addFilter('.* statically-linked-binary /sbin/ldconfig')
727 addFilter('.* statically-linked-binary /sbin/init')
728 addFilter('valgrind.* statically-linked-binary')
729 addFilter('ldconfig-post.*/ddiwrapper/wine/')
730 addFilter('glibc\.\S+: \w: statically-linked-binary /usr/sbin/glibc_post_upgrade')
731 addFilter(" symlink-should-be-relative ")
732 addFilter(" binary-or-shlib-defines-rpath .*ORIGIN")
733 addFilter("libzypp.*shlib-policy-name-error.*libzypp")
734 addFilter("libtool.*shlib-policy.*")
736 # stuff that is currently too noisy, but might become relevant in the future
737 addFilter(" prereq-use")
738 addFilter(" file-not-utf8")
739 addFilter(" tag-not-utf8")
740 addFilter(" setup-not-quiet")
741 addFilter(" no-cleaning-of-buildroot ")
742 addFilter(" mixed-use-of-spaces-and-tabs ")
743 addFilter(" prereq-use ")
744 # an issue with OBS, works with autobuild
745 addFilter(" no-packager-tag")
746 addFilter(" unversioned-explicit-provides ")
747 addFilter(" unversioned-explicit-obsoletes ")
748 addFilter(" no-%clean-section")
749 addFilter(" service-default-enabled ")
750 addFilter(" non-standard-dir-perm ")
751 addFilter(" conffile-without-noreplace-flag ")
752 addFilter(" non-standard-executable-perm ")
753 addFilter(" jar-not-indexed ")
754 addFilter(" uncompressed-zip ")
755 addFilter(" %ifarch-applied-patch ")
756 addFilter(" read-error ")
757 addFilter(" init-script-without-chkconfig-postin ")
758 addFilter(" init-script-without-chkconfig-preun ")
759 addFilter(" postin-without-chkconfig ")
760 addFilter(" preun-without-chkconfig ")
761 addFilter(" no-dependency-on locales")
762 addFilter(" incoherent-version-in-name")
763 addFilter(" binary-or-shlib-defines-rpath")
764 addFilter(" executable-marked-as-config-file")
765 addFilter(" log-files-without-logrotate")
766 addFilter(" hardcoded-prefix-tag")
767 addFilter(" no-documentation")
768 addFilter(" multiple-specfiles")
769 addFilter(" apache2-naming-policy-not-applied")
770 addFilter(" no-default-runlevel ")
771 addFilter(" setgid-binary ")
772 addFilter(" non-readable ")
773 addFilter(" manpage-not-bzipped ")
774 addFilter(" postin-without-ghost-file-creation ")
776 addFilter(" file-in-usr-marked-as-conffile")
777 addFilter(" non-remote_fs-dependency.*/boot")
779 # exceptions for non-devel-buildrequires
780 addFilter(" non-devel-buildrequires apache2-mod_perl")
781 addFilter(" non-devel-buildrequires ksh")
782 addFilter(" non-devel-buildrequires perl")
783 addFilter(" non-devel-buildrequires php5")
784 addFilter(" non-devel-buildrequires postfix")
785 addFilter(" non-devel-buildrequires python")
786 addFilter(" non-devel-buildrequires ruby")
787 addFilter(" non-devel-buildrequires valgrind")
788 addFilter(" non-devel-buildrequires yasm")
789 addFilter(" non-devel-buildrequires tcl")
791 addFilter("beagle-index\.\S+: \w: (non-devel|unnecessary)-buildrequires")
792 addFilter("collect-desktop-files\.\S+: \w: (non-devel|unnecessary)-buildrequires")
793 addFilter("installation-images\.\S+: \w: (non-devel|unnecessary)-buildrequires")
795 # exceptions for filelist checks
796 addFilter("nfs-client\.\S+: \w: suse-filelist-forbidden-backup-file /var/lib/nfs/sm.bak ")
797 addFilter("perl\.\S+: \w: suse-filelist-forbidden-perl-dir ")
798 addFilter("info\.\S+: \w: info-dir-file .*/usr/share/info/dir")
800 # suboptimal library packaging
801 addFilter(" non-devel-buildrequires graphviz")
802 addFilter(" non-devel-buildrequires ImageMagick")
803 addFilter(" non-devel-buildrequires aspell")
804 addFilter(" non-devel-buildrequires autotrace")
805 addFilter(" non-devel-buildrequires gettext")
806 addFilter(" non-devel-buildrequires devhelp")
807 addFilter(" non-devel-buildrequires libxml2")
808 addFilter(" non-devel-buildrequires libxslt")
809 addFilter(" non-devel-buildrequires recode")
812 # many places have shorter paths
813 addFilter(" non-coherent-filename ")
815 # mandriva specific stuff that we don't want
816 addFilter(" invalid-build-requires ")
817 addFilter(" no-provides ")