diff --git a/conf/armv7l/entropy/packages/packages.server.dep_blacklist b/conf/armv7l/entropy/packages/packages.server.dep_blacklist new file mode 120000 index 0000000..edd66db --- /dev/null +++ b/conf/armv7l/entropy/packages/packages.server.dep_blacklist @@ -0,0 +1 @@ +../../../noarch/entropy/packages.server.dep_blacklist \ No newline at end of file diff --git a/conf/armv7l/entropy/packages/packages.server.dep_rewrite b/conf/armv7l/entropy/packages/packages.server.dep_rewrite new file mode 120000 index 0000000..db2b83d --- /dev/null +++ b/conf/armv7l/entropy/packages/packages.server.dep_rewrite @@ -0,0 +1 @@ +../../../noarch/entropy/packages.server.dep_rewrite \ No newline at end of file diff --git a/conf/armv7l/entropy/packages/packages.server.qa.exec b/conf/armv7l/entropy/packages/packages.server.qa.exec deleted file mode 100755 index af832c9..0000000 --- a/conf/armv7l/entropy/packages/packages.server.qa.exec +++ /dev/null @@ -1,146 +0,0 @@ -#!/usr/bin/python -# -# Entropy Server QA executable hook. -# This file doesn't strictly need to be a shell script, but just an executable -# file (r-xr-xr-x) and (mandatory) owned by root:root. -# Please rename this file by stripping the .example part -# -# It is used by Entropy Server QA routines to perform package metadata -# validation. -# Metadata is export in environmental variables form, and include: -# -# REPOSITORY_ID = repository identifier -# PKG_ID = package identifier -# PKG_ATOM = package atom -# PKG_NAME = package name -# PKG_VERSION = package version -# PKG_TAG = package version tag -# PKG_DESCRIPTION = package description -# PKG_CATEGORY = package category -# PKG_CHOST = package CHOST -# PKG_CFLAGS = package CFLAGS -# PKG_CXXFLAGS = package CXXFLAGS -# PKG_HOMEPAGE = package homepage -# PKG_LICENSE = package license -# PKG_BRANCH = package license -# PKG_DOWNLOAD = package relative download URL -# PKG_KEYWORDS = package keywords, space separated -# PKG_MD5 = package file md5 hash -# PKG_SLOT = package slot -# PKG_ETPAPI = package Entropy API -# PKG_DATE = package creation date (in unix time) -# PKG_SIZE = package size, in bytes -# PKG_REVISION = package entropy revision -# PKG_DEPS = list (\n separated) of package dependencies and conflicts -# PKG_NEEDED_LIBS = list (\n separated) of SONAMES required by package, -# including ELF class, so each item will look like this: -# | -# PKG_PROVIDED_LIBS = list (\n separated) of SONAMES provided by package, -# note: elf class and path are also provided, -# so each item will look like this: -# || -# -# The executable must return 0 for success, 1 for warning, 2 for critical error - -import sys -import os -import entropy.dep - -def write_attention_msg(msg): - sys.stderr.write("\nATTENTION ATTENTION ATTENTION\n") - sys.stderr.write(msg + "\n") - sys.stderr.write("ATTENTION ATTENTION ATTENTION\n\n") - -def write_warning_msg(msg): - sys.stderr.write("\nWARNING WARNING WARNING\n") - sys.stderr.write(msg + "\n") - sys.stderr.write("\nWARNING WARNING WARNING\n") - -def check_unwanted_deps(): - """ - Check against forbidden dependencies, those we consider meta packages, - placeholders just to keep Gentoo compatibility, which, if listed as dep in, - would cause the whole world to be pulled in. - """ - pkg_deps = os.getenv("PKG_DEPS", "") - pkg_deps = pkg_deps.split() - if not pkg_deps: - return 0 - - pkg_atom = os.getenv("PKG_ATOM") - pkg_keywords = os.getenv("PKG_KEYWORDS") - - unwanted_deps = ["app-admin/packagekit", "app-text/poppler", - "kde-base/kde-l10n", "net-dns/avahi", "net-p2p/transmission", - "app-crypt/pinentry"] - warning_deps = ["media-libs/libjpeg-turbo", "media-libs/jpeg", - "dev-lang/gnat-gcc"] - func_rc = 0 - - pkg_deps_map = dict((entropy.dep.dep_getkey(x), x) for x in pkg_deps if \ - not x.startswith("!")) - for unwanted_dep in unwanted_deps: - if unwanted_dep in pkg_deps_map: - write_attention_msg( - "%s contains forbidden dependency against %s" % ( - pkg_atom, pkg_deps_map[unwanted_dep])) - func_rc = 2 - - for warning_dep in warning_deps: - if warning_dep in pkg_deps_map: - write_attention_msg( - "%s contains a weirdo dependency against %s" % ( - pkg_atom, pkg_deps_map[warning_dep])) - if func_rc == 0: - func_rc = 1 - - if pkg_keywords is not None: - keywords = pkg_keywords.split() - if not keywords or ("**" in keywords and len(keywords) == 1): - write_attention_msg("%s is masked by default, keywords: %s" % ( - pkg_atom, pkg_keywords)) - if func_rc == 0: - func_rc = 1 - - return func_rc - -def warn_perl5_bump(): - """ - Warn in case of bumping dev-lang/perl. Developer should not - forget about running perl-cleaner. - """ - pkg_key = "%s/%s" % (os.getenv("PKG_CATEGORY", ""), - os.getenv("PKG_NAME", "")) - pkg_version = os.getenv("PKG_VERSION", "") - - if pkg_key == "dev-lang/perl" and pkg_version.startswith("5"): - perl_dir = "/usr/lib/perl5/vendor_perl" - try: - perl_versions = os.listdir(perl_dir) - except (OSError, IOError): - perl_versions = [] - - if len(perl_versions) > 1: - write_warning_msg( - "Adding dev-lang/perl but you forgot to run perl-cleaner?\n" - "These are the versions detected in %s:\n" - "%s" % (perl_dir, ", ".join(perl_versions))) - return 1 - - return 0 - - -if __name__ == "__main__": - - exit_st = 0 - rc = check_unwanted_deps() - if rc != 0: - exit_st = rc - - rc = warn_perl5_bump() - if rc != 0 and rc > exit_st: - exit_st = rc - - # more tests here - - raise SystemExit(exit_st) diff --git a/conf/armv7l/entropy/packages/packages.server.qa.exec b/conf/armv7l/entropy/packages/packages.server.qa.exec new file mode 120000 index 0000000..c053ec5 --- /dev/null +++ b/conf/armv7l/entropy/packages/packages.server.qa.exec @@ -0,0 +1 @@ +../../../noarch/entropy/packages.server.qa.exec \ No newline at end of file diff --git a/conf/intel/entropy/packages/packages.server.dep_blacklist b/conf/intel/entropy/packages/packages.server.dep_blacklist deleted file mode 100644 index eae8f0f..0000000 --- a/conf/intel/entropy/packages/packages.server.dep_blacklist +++ /dev/null @@ -1,12 +0,0 @@ -# Server side packages.server.dep_rewrite file (this has to stay in /etc/entropy/packages) -# Using this file, you can blacklist arbitrary broken dependencies -# detected by Entropy broken libraries QA routine. - -# LINE CONSTRUCTION: -# [ ...] -# pkg = package containing dependency to match -# blacklisted_dependency_n = blacklisted dependency string -# See examples below - -# EXAMPLES: -app-admin/anaconda x11-libs/libXmu:0 x11-libs/gtk+:2 x11-libs/gdk-pixbuf:2 x11-libs/libXrender:0 x11-libs/pixman:0 x11-libs/pango:0 media-libs/mesa:0 diff --git a/conf/intel/entropy/packages/packages.server.dep_blacklist b/conf/intel/entropy/packages/packages.server.dep_blacklist new file mode 120000 index 0000000..edd66db --- /dev/null +++ b/conf/intel/entropy/packages/packages.server.dep_blacklist @@ -0,0 +1 @@ +../../../noarch/entropy/packages.server.dep_blacklist \ No newline at end of file diff --git a/conf/intel/entropy/packages/packages.server.dep_rewrite b/conf/intel/entropy/packages/packages.server.dep_rewrite deleted file mode 100644 index 83324d7..0000000 --- a/conf/intel/entropy/packages/packages.server.dep_rewrite +++ /dev/null @@ -1,183 +0,0 @@ -# Fix poppler dependencies, we provide our own split deps -media-gfx/pdf2svg (.*)app-text/poppler-(.*)(\[.*\]) \1app-text/poppler-glib-\2 -kde-base/okular (.*)app-text/poppler-(.*)(\[.*\]) \1app-text/poppler-qt4-\2 -media-gfx/inkscape (.*)app-text/poppler-(.*)(\[.*\]) \1app-text/poppler-glib-\2 -gnustep-libs/popplerkit (.*)app-text/poppler-(.*)(\[.*\])? \1app-text/poppler-base-\2 -app-text/texlive-core (.*)app-text/poppler-(.*)(\[.*\])? \1app-text/poppler-base-\2 -media-gfx/gimp (.*)app-text/poppler-(.*)(\[.*\]) \1app-text/poppler-glib-\2 -net-print/cups (.*)app-text/poppler-(.*)(\[.*\])? \1app-text/poppler-base-\2 -app-text/calibre (.*)app-text/poppler-(.*)(\[.*\]) \1app-text/poppler-qt4-\2 -app-text/dvipdfmx (.*)app-text/poppler-(\d.*)(\[.*\])? \1app-text/poppler-base-\2 -dev-tex/luatex (.*)app-text/poppler-(.*)(\[.*\])? \1app-text/poppler-base-\2 -app-misc/beagle (.*)app-text/poppler-(.*)(\[.*\])? \1app-text/poppler-base-\2 -app-misc/tracker (.*)app-text/poppler-(.*)(\[.*\]) \1app-text/poppler-glib-\2 -app-office/krita (.*)app-text/poppler-(.*)(\[.*\]) \1app-text/poppler-qt4-\2 -app-office/openoffice (.*)app-text/poppler-(.*)(\[.*\])? \1app-text/poppler-base-\2 -app-text/evince (.*)app-text/poppler-(.*)(\[.*\]) \1app-text/poppler-glib-\2 -kde-misc/tellico (.*)app-text/poppler-(.*)(\[.*\]) \1app-text/poppler-qt4-\2 -app-text/epdfview (.*)app-text/poppler-(.*)(\[.*\]) \1app-text/poppler-glib-\2 -app-text/xpdf (.*)app-text/poppler-(.*)(\[.*\])? \1app-text/poppler-base-\2 -app-text/xournal app-text/poppler(\[.*\]) app-text/poppler-glib -media-gfx/keyjnote (.*)app-text/poppler-(.*)(\[.*\])? \1app-text/poppler-base-\2 -dev-games/openscenegraph (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-glib\2 -xfce-extra/tumbler (.*)app-text/poppler-(.*)(\[.*\]) \1app-text/poppler-glib-\2 -app-office/texmaker (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-qt4\2 -app-editors/gummi (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-glib\2 -app-office/calligra (.*)app-text/poppler(.*) \1app-text/poppler-base\2 -x11-misc/qcomicbook (.*)app-text/poppler(.*) \1app-text/poppler\2 -app-office/texmakerx (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-qt4\2 -app-office/libreoffice (.*)app-text/poppler-(.*)(\[.*\])? \1app-text/poppler-base-\2 -app-office/impressive (.*)app-text/poppler-(.*)(\[.*\])? \1app-text/poppler-base-\2 -dev-python/python-poppler (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-glib\2 -sci-libs/gdal (.*)app-text/poppler(.*) \1app-text/poppler-base\2 -dev-ruby/ruby-poppler (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-glib\2 -www-apps/dotproject (.*)app-text/poppler-(.*)(\[.*\])? \1app-text/poppler-base-\2 -www-apps/swish-e (.*)app-text/poppler-(.*)(\[.*\])? \1app-text/poppler-base-\2 -app-text/apvlv (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-glib\2 -app-text/diffpdf (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-qt4\2 -app-text/pdf2djvu (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-base\2 -app-text/pdf2oo (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-base\2 -app-text/pdfgrep (.*)app-text/poppler(.*) \1app-text/poppler-base\2 -app-text/zathura (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-glib\2 -dev-tex/pstplus (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-qt4\2 -app-text/kbibtex (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-qt4\2 - -# Fix enigmail deps, to point to our split pinentry packages -x11-plugins/enigmail (.*)app-crypt/pinentry(.*)\[gtk\] \1app-crypt/pinentry-gtk2\2 -x11-plugins/enigmail (.*)app-crypt/pinentry(.*)\[qt4\] \1app-crypt/pinentry-qt4\2 -mail-client/thunderbird (.*)app-crypt/pinentry(.*)\[gtk\] \1app-crypt/pinentry-gtk2\2 -app-crypt/gnupg (.*)app-crypt/pinentry(.*) app-crypt/pinentry-base -mail-client/evolution (.*)app-crypt/pinentry(.*)(\[.*\]) \1app-crypt/pinentry-gtk2\2 - -# Fix virtualbox shitty dependencies -app-emulation/virtualbox-guest-additions#2.6.31-sabayon (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#2.6.31-sabayon -app-emulation/virtualbox-guest-additions#2.6.32-sabayon (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#2.6.32-sabayon -app-emulation/virtualbox-guest-additions#2.6.33-sabayon (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#2.6.33-sabayon -app-emulation/virtualbox-guest-additions#2.6.34-sabayon (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#2.6.34-sabayon -app-emulation/virtualbox-guest-additions#2.6.35-sabayon (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#2.6.35-sabayon -app-emulation/virtualbox-guest-additions#2.6.36-sabayon (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#2.6.36-sabayon -app-emulation/virtualbox-guest-additions#2.6.37-sabayon (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#2.6.37-sabayon -app-emulation/virtualbox-guest-additions#2.6.38-sabayon (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#2.6.38-sabayon -app-emulation/virtualbox-guest-additions#2.6.39-sabayon (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#2.6.39-sabayon -app-emulation/virtualbox-guest-additions#3.0.0-sabayon (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#3.0.0-sabayon -app-emulation/virtualbox-guest-additions#3.1.0-sabayon (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#3.1.0-sabayon -app-emulation/virtualbox-guest-additions#3.2.0-sabayon (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#3.2.0-sabayon -app-emulation/virtualbox-guest-additions#3.3.0-sabayon (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#3.3.0-sabayon -# Fix virtualbox shitty dependencies, fusion sources -app-emulation/virtualbox-guest-additions#3.0.0-fusion (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#3.0.0-fusion -app-emulation/virtualbox-guest-additions#3.1.0-fusion (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#3.1.0-fusion -app-emulation/virtualbox-guest-additions#3.2.0-fusion (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#3.2.0-fusion -app-emulation/virtualbox-guest-additions#3.3.0-fusion (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#3.3.0-fusion - - -# drop virtualbox-modules dep from virtualbox-bin -# 2011-02-08: DISABLED because vboxusers group is required but not created by virtualbox-bin -# app-emulation/virtualbox-bin (.*)app-emulation/virtualbox-modules-(.*) dev-libs/glib - -# Add conflict to net-im/ejabberd for ejabberd-babel -# net-im/ejabberd ++!net-im/ejabberd-babel<2> - -# Force netbeans-ide to use our split subversion-java package -dev-java/netbeans-ide (.*)dev-vcs/subversion(.*):0\[java\] \1dev-vcs/subversion-java\2:0 - -# Drop kde-l10n* deps -kde-misc/customizable-weather (.*)kde-base/kde-l10n(.*) -media-gfx/digikam (.*)kde-base/kde-l10n(.*) -dev-util/kdevelop (.*)kde-base/kde-l10n(.*) -dev-util/kdevplatform (.*)kde-base/kde-l10n(.*) -net-p2p/ktorrent (.*)kde-base/kde-l10n(.*) -kde-misc/konq-plugins (.*)kde-base/kde-l10n(.*) -net-wireless/bluedevil (.*)kde-base/kde-l10n(.*) -net-libs/libktorrent (.*)kde-base/kde-l10n(.*) -kde-misc/kcm-grub2 (.*)kde-base/kde-l10n(.*) -kde-misc/wacomtablet (.*)kde-base/kde-l10n(.*) -media-video/kaffeine (.*)kde-base/kde-l10n(.*) -kde-misc/krename (.*)kde-base/kde-l10n(.*) -kde-misc/tellico (.*)kde-base/kde-l10n(.*) -media-sound/kwave (.*)kde-base/kde-l10n(.*) -media-video/bangarang (.*)kde-base/kde-l10n(.*) -media-video/kdenlive (.*)kde-base/kde-l10n(.*) -kde-misc/kcm-gtk-config (.*)kde-base/kde-l10n(.*) -kde-misc/plasma-smoothtasks (.*)kde-base/kde-l10n(.*) -kde-misc/plasma-mpd-nowplayin (.*)kde-base/kde-l10n(.*) -kde-misc/wicd-client-kde (.*)kde-base/kde-l10n(.*) -media-video/2mandvd (.*)kde-base/kde-l10n(.*) -app-cdr/k9copy (.*)kde-base/kde-l10n(.*) -net-misc/smb4k (.*)kde-base/kde-l10n(.*) -kde-misc/synaptiks (.*)kde-base/kde-l10n(.*) -kde-base/kdepim-runtime (.*)kde-base/kde-l10n(.*) -kde-misc/kgtk (.*)kde-base/kde-l10n(.*) -kde-misc/skanlite (.*)kde-base/kde-l10n(.*) -media-plugins/kipi-plugins (.*)kde-base/kde-l10n(.*) -kde-misc/krusader (.*)kde-base/kde-l10n(.*) -dev-util/kdevelop-php-docs (.*)kde-base/kde-l10n(.*) -games-board/knights (.*)kde-base/kde-l10n(.*) -kde-misc/kshutdown (.*)kde-base/kde-l10n(.*) -kde-misc/plasma-mpd-nowplaying (.*)kde-base/kde-l10n(.*) -media-sound/kid3 (.*)kde-base/kde-l10n(.*) -media-video/loopy (.*)kde-base/kde-l10n(.*) -x11-themes/nitrogen (.*)kde-base/kde-l10n(.*) -media-sound/amarok (.*)kde-base/kde-l10n(.*) -net-nntp/kwooty (.*)kde-base/kde-l10n(.*) -app-office/skrooge (.*)kde-base/kde-l10n(.*) -app-office/kmymoney (.*)kde-base/kde-l10n(.*) -kde-misc/kdesudo (.*)kde-base/kde-l10n(.*) -dev-vcs/kdesvn (.*)kde-base/kde-l10n(.*) -media-video/kplayer (.*)kde-base/kde-l10n(.*) -kde-misc/yawp (.*)kde-base/kde-l10n(.*) -app-cdr/k3b (.*)kde-base/kde-l10n(.*) -net-misc/knemo (.*)kde-base/kde-l10n(.*) -net-im/choqok (.*)kde-base/kde-l10n(.*) -media-video/kmplayer (.*)kde-base/kde-l10n(.*) -sci-calculators/keurocalc (.*)kde-base/kde-l10n(.*) -media-sound/kradio (.*)kde-base/kde-l10n(.*) -kde-misc/networkmanagement (.*)kde-base/kde-l10n(.*) -kde-misc/eventlist (.*)kde-base/kde-l10n(.*) -net-irc/konversation (.*)kde-base/kde-l10n(.*) - net-wireless/bluedevil (.*)kde-base/kde-l10n(.*) - -# net-dns/avahi dep rewrites -app-crypt/seahorse (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 -app-emulation/libvirt (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 -dev-db/desktopcouch (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 -dev-python/kaa-base (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 -gnome-base/gnome-vfs:2 (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 -gnome-base/gvfs:0 (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 -gnustep-base/gnustep-base (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 -kde-base/kdelibs (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 -kde-base/krdc (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 -media-gfx/sane-backends (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 -media-libs/libgphoto2 (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 -media-plugins/gmpc-avahi (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 -media-sound/ario (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 -media-sound/mpd (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 -media-sound/mt-daapd (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 -media-sound/mumble (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 -media-sound/pulseaudio (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 -media-sound/xmms2 (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 -media-video/vlc (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 -media-tv/xbmc (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 -net-fs/samba (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 -net-im/pidgin (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 -net-libs/libepc (.*)net-dns/avahi(.*)(\[.*\]) \1net-dns/avahi-gtk3\2 -net-libs/obby (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 -net-misc/networkmanager (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 -net-misc/remmina (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 -net-misc/vino (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 -net-voip/ekiga (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 -net-voip/telepathy-salut (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 -sys-auth/nss-mdns (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 -sys-fs/owfs (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 -www-apache/mod_dnssd (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 -www-client/epiphany (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 -x11-misc/service-discovery-applet (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 -x11-misc/x11vnc (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 - -# Fix gtk-3 deps -media-video/kino (.*)x11-libs/gtk(.*) \1x11-libs/gtk\2:2 - -# gnome-session-3.0.2 should pull in notification-daemon or it won't start ->=gnome-base/gnome-session-3.0 ++>=x11-misc/notification-daemon-0.7.1<2> - -# We provide media-video/libav and we want systems to have it pulled in -virtual/ffmpeg (.*)media-video/ffmpeg(.*) \1media-video/libav\2 diff --git a/conf/intel/entropy/packages/packages.server.dep_rewrite b/conf/intel/entropy/packages/packages.server.dep_rewrite new file mode 120000 index 0000000..db2b83d --- /dev/null +++ b/conf/intel/entropy/packages/packages.server.dep_rewrite @@ -0,0 +1 @@ +../../../noarch/entropy/packages.server.dep_rewrite \ No newline at end of file diff --git a/conf/intel/entropy/packages/packages.server.qa.exec b/conf/intel/entropy/packages/packages.server.qa.exec deleted file mode 100755 index af832c9..0000000 --- a/conf/intel/entropy/packages/packages.server.qa.exec +++ /dev/null @@ -1,146 +0,0 @@ -#!/usr/bin/python -# -# Entropy Server QA executable hook. -# This file doesn't strictly need to be a shell script, but just an executable -# file (r-xr-xr-x) and (mandatory) owned by root:root. -# Please rename this file by stripping the .example part -# -# It is used by Entropy Server QA routines to perform package metadata -# validation. -# Metadata is export in environmental variables form, and include: -# -# REPOSITORY_ID = repository identifier -# PKG_ID = package identifier -# PKG_ATOM = package atom -# PKG_NAME = package name -# PKG_VERSION = package version -# PKG_TAG = package version tag -# PKG_DESCRIPTION = package description -# PKG_CATEGORY = package category -# PKG_CHOST = package CHOST -# PKG_CFLAGS = package CFLAGS -# PKG_CXXFLAGS = package CXXFLAGS -# PKG_HOMEPAGE = package homepage -# PKG_LICENSE = package license -# PKG_BRANCH = package license -# PKG_DOWNLOAD = package relative download URL -# PKG_KEYWORDS = package keywords, space separated -# PKG_MD5 = package file md5 hash -# PKG_SLOT = package slot -# PKG_ETPAPI = package Entropy API -# PKG_DATE = package creation date (in unix time) -# PKG_SIZE = package size, in bytes -# PKG_REVISION = package entropy revision -# PKG_DEPS = list (\n separated) of package dependencies and conflicts -# PKG_NEEDED_LIBS = list (\n separated) of SONAMES required by package, -# including ELF class, so each item will look like this: -# | -# PKG_PROVIDED_LIBS = list (\n separated) of SONAMES provided by package, -# note: elf class and path are also provided, -# so each item will look like this: -# || -# -# The executable must return 0 for success, 1 for warning, 2 for critical error - -import sys -import os -import entropy.dep - -def write_attention_msg(msg): - sys.stderr.write("\nATTENTION ATTENTION ATTENTION\n") - sys.stderr.write(msg + "\n") - sys.stderr.write("ATTENTION ATTENTION ATTENTION\n\n") - -def write_warning_msg(msg): - sys.stderr.write("\nWARNING WARNING WARNING\n") - sys.stderr.write(msg + "\n") - sys.stderr.write("\nWARNING WARNING WARNING\n") - -def check_unwanted_deps(): - """ - Check against forbidden dependencies, those we consider meta packages, - placeholders just to keep Gentoo compatibility, which, if listed as dep in, - would cause the whole world to be pulled in. - """ - pkg_deps = os.getenv("PKG_DEPS", "") - pkg_deps = pkg_deps.split() - if not pkg_deps: - return 0 - - pkg_atom = os.getenv("PKG_ATOM") - pkg_keywords = os.getenv("PKG_KEYWORDS") - - unwanted_deps = ["app-admin/packagekit", "app-text/poppler", - "kde-base/kde-l10n", "net-dns/avahi", "net-p2p/transmission", - "app-crypt/pinentry"] - warning_deps = ["media-libs/libjpeg-turbo", "media-libs/jpeg", - "dev-lang/gnat-gcc"] - func_rc = 0 - - pkg_deps_map = dict((entropy.dep.dep_getkey(x), x) for x in pkg_deps if \ - not x.startswith("!")) - for unwanted_dep in unwanted_deps: - if unwanted_dep in pkg_deps_map: - write_attention_msg( - "%s contains forbidden dependency against %s" % ( - pkg_atom, pkg_deps_map[unwanted_dep])) - func_rc = 2 - - for warning_dep in warning_deps: - if warning_dep in pkg_deps_map: - write_attention_msg( - "%s contains a weirdo dependency against %s" % ( - pkg_atom, pkg_deps_map[warning_dep])) - if func_rc == 0: - func_rc = 1 - - if pkg_keywords is not None: - keywords = pkg_keywords.split() - if not keywords or ("**" in keywords and len(keywords) == 1): - write_attention_msg("%s is masked by default, keywords: %s" % ( - pkg_atom, pkg_keywords)) - if func_rc == 0: - func_rc = 1 - - return func_rc - -def warn_perl5_bump(): - """ - Warn in case of bumping dev-lang/perl. Developer should not - forget about running perl-cleaner. - """ - pkg_key = "%s/%s" % (os.getenv("PKG_CATEGORY", ""), - os.getenv("PKG_NAME", "")) - pkg_version = os.getenv("PKG_VERSION", "") - - if pkg_key == "dev-lang/perl" and pkg_version.startswith("5"): - perl_dir = "/usr/lib/perl5/vendor_perl" - try: - perl_versions = os.listdir(perl_dir) - except (OSError, IOError): - perl_versions = [] - - if len(perl_versions) > 1: - write_warning_msg( - "Adding dev-lang/perl but you forgot to run perl-cleaner?\n" - "These are the versions detected in %s:\n" - "%s" % (perl_dir, ", ".join(perl_versions))) - return 1 - - return 0 - - -if __name__ == "__main__": - - exit_st = 0 - rc = check_unwanted_deps() - if rc != 0: - exit_st = rc - - rc = warn_perl5_bump() - if rc != 0 and rc > exit_st: - exit_st = rc - - # more tests here - - raise SystemExit(exit_st) diff --git a/conf/intel/entropy/packages/packages.server.qa.exec b/conf/intel/entropy/packages/packages.server.qa.exec new file mode 120000 index 0000000..c053ec5 --- /dev/null +++ b/conf/intel/entropy/packages/packages.server.qa.exec @@ -0,0 +1 @@ +../../../noarch/entropy/packages.server.qa.exec \ No newline at end of file diff --git a/conf/noarch/entropy/packages.server.dep_blacklist b/conf/noarch/entropy/packages.server.dep_blacklist new file mode 100644 index 0000000..eae8f0f --- /dev/null +++ b/conf/noarch/entropy/packages.server.dep_blacklist @@ -0,0 +1,12 @@ +# Server side packages.server.dep_rewrite file (this has to stay in /etc/entropy/packages) +# Using this file, you can blacklist arbitrary broken dependencies +# detected by Entropy broken libraries QA routine. + +# LINE CONSTRUCTION: +# [ ...] +# pkg = package containing dependency to match +# blacklisted_dependency_n = blacklisted dependency string +# See examples below + +# EXAMPLES: +app-admin/anaconda x11-libs/libXmu:0 x11-libs/gtk+:2 x11-libs/gdk-pixbuf:2 x11-libs/libXrender:0 x11-libs/pixman:0 x11-libs/pango:0 media-libs/mesa:0 diff --git a/conf/noarch/entropy/packages.server.dep_rewrite b/conf/noarch/entropy/packages.server.dep_rewrite new file mode 100644 index 0000000..83324d7 --- /dev/null +++ b/conf/noarch/entropy/packages.server.dep_rewrite @@ -0,0 +1,183 @@ +# Fix poppler dependencies, we provide our own split deps +media-gfx/pdf2svg (.*)app-text/poppler-(.*)(\[.*\]) \1app-text/poppler-glib-\2 +kde-base/okular (.*)app-text/poppler-(.*)(\[.*\]) \1app-text/poppler-qt4-\2 +media-gfx/inkscape (.*)app-text/poppler-(.*)(\[.*\]) \1app-text/poppler-glib-\2 +gnustep-libs/popplerkit (.*)app-text/poppler-(.*)(\[.*\])? \1app-text/poppler-base-\2 +app-text/texlive-core (.*)app-text/poppler-(.*)(\[.*\])? \1app-text/poppler-base-\2 +media-gfx/gimp (.*)app-text/poppler-(.*)(\[.*\]) \1app-text/poppler-glib-\2 +net-print/cups (.*)app-text/poppler-(.*)(\[.*\])? \1app-text/poppler-base-\2 +app-text/calibre (.*)app-text/poppler-(.*)(\[.*\]) \1app-text/poppler-qt4-\2 +app-text/dvipdfmx (.*)app-text/poppler-(\d.*)(\[.*\])? \1app-text/poppler-base-\2 +dev-tex/luatex (.*)app-text/poppler-(.*)(\[.*\])? \1app-text/poppler-base-\2 +app-misc/beagle (.*)app-text/poppler-(.*)(\[.*\])? \1app-text/poppler-base-\2 +app-misc/tracker (.*)app-text/poppler-(.*)(\[.*\]) \1app-text/poppler-glib-\2 +app-office/krita (.*)app-text/poppler-(.*)(\[.*\]) \1app-text/poppler-qt4-\2 +app-office/openoffice (.*)app-text/poppler-(.*)(\[.*\])? \1app-text/poppler-base-\2 +app-text/evince (.*)app-text/poppler-(.*)(\[.*\]) \1app-text/poppler-glib-\2 +kde-misc/tellico (.*)app-text/poppler-(.*)(\[.*\]) \1app-text/poppler-qt4-\2 +app-text/epdfview (.*)app-text/poppler-(.*)(\[.*\]) \1app-text/poppler-glib-\2 +app-text/xpdf (.*)app-text/poppler-(.*)(\[.*\])? \1app-text/poppler-base-\2 +app-text/xournal app-text/poppler(\[.*\]) app-text/poppler-glib +media-gfx/keyjnote (.*)app-text/poppler-(.*)(\[.*\])? \1app-text/poppler-base-\2 +dev-games/openscenegraph (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-glib\2 +xfce-extra/tumbler (.*)app-text/poppler-(.*)(\[.*\]) \1app-text/poppler-glib-\2 +app-office/texmaker (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-qt4\2 +app-editors/gummi (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-glib\2 +app-office/calligra (.*)app-text/poppler(.*) \1app-text/poppler-base\2 +x11-misc/qcomicbook (.*)app-text/poppler(.*) \1app-text/poppler\2 +app-office/texmakerx (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-qt4\2 +app-office/libreoffice (.*)app-text/poppler-(.*)(\[.*\])? \1app-text/poppler-base-\2 +app-office/impressive (.*)app-text/poppler-(.*)(\[.*\])? \1app-text/poppler-base-\2 +dev-python/python-poppler (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-glib\2 +sci-libs/gdal (.*)app-text/poppler(.*) \1app-text/poppler-base\2 +dev-ruby/ruby-poppler (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-glib\2 +www-apps/dotproject (.*)app-text/poppler-(.*)(\[.*\])? \1app-text/poppler-base-\2 +www-apps/swish-e (.*)app-text/poppler-(.*)(\[.*\])? \1app-text/poppler-base-\2 +app-text/apvlv (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-glib\2 +app-text/diffpdf (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-qt4\2 +app-text/pdf2djvu (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-base\2 +app-text/pdf2oo (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-base\2 +app-text/pdfgrep (.*)app-text/poppler(.*) \1app-text/poppler-base\2 +app-text/zathura (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-glib\2 +dev-tex/pstplus (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-qt4\2 +app-text/kbibtex (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-qt4\2 + +# Fix enigmail deps, to point to our split pinentry packages +x11-plugins/enigmail (.*)app-crypt/pinentry(.*)\[gtk\] \1app-crypt/pinentry-gtk2\2 +x11-plugins/enigmail (.*)app-crypt/pinentry(.*)\[qt4\] \1app-crypt/pinentry-qt4\2 +mail-client/thunderbird (.*)app-crypt/pinentry(.*)\[gtk\] \1app-crypt/pinentry-gtk2\2 +app-crypt/gnupg (.*)app-crypt/pinentry(.*) app-crypt/pinentry-base +mail-client/evolution (.*)app-crypt/pinentry(.*)(\[.*\]) \1app-crypt/pinentry-gtk2\2 + +# Fix virtualbox shitty dependencies +app-emulation/virtualbox-guest-additions#2.6.31-sabayon (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#2.6.31-sabayon +app-emulation/virtualbox-guest-additions#2.6.32-sabayon (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#2.6.32-sabayon +app-emulation/virtualbox-guest-additions#2.6.33-sabayon (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#2.6.33-sabayon +app-emulation/virtualbox-guest-additions#2.6.34-sabayon (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#2.6.34-sabayon +app-emulation/virtualbox-guest-additions#2.6.35-sabayon (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#2.6.35-sabayon +app-emulation/virtualbox-guest-additions#2.6.36-sabayon (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#2.6.36-sabayon +app-emulation/virtualbox-guest-additions#2.6.37-sabayon (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#2.6.37-sabayon +app-emulation/virtualbox-guest-additions#2.6.38-sabayon (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#2.6.38-sabayon +app-emulation/virtualbox-guest-additions#2.6.39-sabayon (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#2.6.39-sabayon +app-emulation/virtualbox-guest-additions#3.0.0-sabayon (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#3.0.0-sabayon +app-emulation/virtualbox-guest-additions#3.1.0-sabayon (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#3.1.0-sabayon +app-emulation/virtualbox-guest-additions#3.2.0-sabayon (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#3.2.0-sabayon +app-emulation/virtualbox-guest-additions#3.3.0-sabayon (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#3.3.0-sabayon +# Fix virtualbox shitty dependencies, fusion sources +app-emulation/virtualbox-guest-additions#3.0.0-fusion (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#3.0.0-fusion +app-emulation/virtualbox-guest-additions#3.1.0-fusion (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#3.1.0-fusion +app-emulation/virtualbox-guest-additions#3.2.0-fusion (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#3.2.0-fusion +app-emulation/virtualbox-guest-additions#3.3.0-fusion (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#3.3.0-fusion + + +# drop virtualbox-modules dep from virtualbox-bin +# 2011-02-08: DISABLED because vboxusers group is required but not created by virtualbox-bin +# app-emulation/virtualbox-bin (.*)app-emulation/virtualbox-modules-(.*) dev-libs/glib + +# Add conflict to net-im/ejabberd for ejabberd-babel +# net-im/ejabberd ++!net-im/ejabberd-babel<2> + +# Force netbeans-ide to use our split subversion-java package +dev-java/netbeans-ide (.*)dev-vcs/subversion(.*):0\[java\] \1dev-vcs/subversion-java\2:0 + +# Drop kde-l10n* deps +kde-misc/customizable-weather (.*)kde-base/kde-l10n(.*) +media-gfx/digikam (.*)kde-base/kde-l10n(.*) +dev-util/kdevelop (.*)kde-base/kde-l10n(.*) +dev-util/kdevplatform (.*)kde-base/kde-l10n(.*) +net-p2p/ktorrent (.*)kde-base/kde-l10n(.*) +kde-misc/konq-plugins (.*)kde-base/kde-l10n(.*) +net-wireless/bluedevil (.*)kde-base/kde-l10n(.*) +net-libs/libktorrent (.*)kde-base/kde-l10n(.*) +kde-misc/kcm-grub2 (.*)kde-base/kde-l10n(.*) +kde-misc/wacomtablet (.*)kde-base/kde-l10n(.*) +media-video/kaffeine (.*)kde-base/kde-l10n(.*) +kde-misc/krename (.*)kde-base/kde-l10n(.*) +kde-misc/tellico (.*)kde-base/kde-l10n(.*) +media-sound/kwave (.*)kde-base/kde-l10n(.*) +media-video/bangarang (.*)kde-base/kde-l10n(.*) +media-video/kdenlive (.*)kde-base/kde-l10n(.*) +kde-misc/kcm-gtk-config (.*)kde-base/kde-l10n(.*) +kde-misc/plasma-smoothtasks (.*)kde-base/kde-l10n(.*) +kde-misc/plasma-mpd-nowplayin (.*)kde-base/kde-l10n(.*) +kde-misc/wicd-client-kde (.*)kde-base/kde-l10n(.*) +media-video/2mandvd (.*)kde-base/kde-l10n(.*) +app-cdr/k9copy (.*)kde-base/kde-l10n(.*) +net-misc/smb4k (.*)kde-base/kde-l10n(.*) +kde-misc/synaptiks (.*)kde-base/kde-l10n(.*) +kde-base/kdepim-runtime (.*)kde-base/kde-l10n(.*) +kde-misc/kgtk (.*)kde-base/kde-l10n(.*) +kde-misc/skanlite (.*)kde-base/kde-l10n(.*) +media-plugins/kipi-plugins (.*)kde-base/kde-l10n(.*) +kde-misc/krusader (.*)kde-base/kde-l10n(.*) +dev-util/kdevelop-php-docs (.*)kde-base/kde-l10n(.*) +games-board/knights (.*)kde-base/kde-l10n(.*) +kde-misc/kshutdown (.*)kde-base/kde-l10n(.*) +kde-misc/plasma-mpd-nowplaying (.*)kde-base/kde-l10n(.*) +media-sound/kid3 (.*)kde-base/kde-l10n(.*) +media-video/loopy (.*)kde-base/kde-l10n(.*) +x11-themes/nitrogen (.*)kde-base/kde-l10n(.*) +media-sound/amarok (.*)kde-base/kde-l10n(.*) +net-nntp/kwooty (.*)kde-base/kde-l10n(.*) +app-office/skrooge (.*)kde-base/kde-l10n(.*) +app-office/kmymoney (.*)kde-base/kde-l10n(.*) +kde-misc/kdesudo (.*)kde-base/kde-l10n(.*) +dev-vcs/kdesvn (.*)kde-base/kde-l10n(.*) +media-video/kplayer (.*)kde-base/kde-l10n(.*) +kde-misc/yawp (.*)kde-base/kde-l10n(.*) +app-cdr/k3b (.*)kde-base/kde-l10n(.*) +net-misc/knemo (.*)kde-base/kde-l10n(.*) +net-im/choqok (.*)kde-base/kde-l10n(.*) +media-video/kmplayer (.*)kde-base/kde-l10n(.*) +sci-calculators/keurocalc (.*)kde-base/kde-l10n(.*) +media-sound/kradio (.*)kde-base/kde-l10n(.*) +kde-misc/networkmanagement (.*)kde-base/kde-l10n(.*) +kde-misc/eventlist (.*)kde-base/kde-l10n(.*) +net-irc/konversation (.*)kde-base/kde-l10n(.*) + net-wireless/bluedevil (.*)kde-base/kde-l10n(.*) + +# net-dns/avahi dep rewrites +app-crypt/seahorse (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 +app-emulation/libvirt (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 +dev-db/desktopcouch (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 +dev-python/kaa-base (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 +gnome-base/gnome-vfs:2 (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 +gnome-base/gvfs:0 (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 +gnustep-base/gnustep-base (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 +kde-base/kdelibs (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 +kde-base/krdc (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 +media-gfx/sane-backends (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 +media-libs/libgphoto2 (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 +media-plugins/gmpc-avahi (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 +media-sound/ario (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 +media-sound/mpd (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 +media-sound/mt-daapd (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 +media-sound/mumble (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 +media-sound/pulseaudio (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 +media-sound/xmms2 (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 +media-video/vlc (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 +media-tv/xbmc (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 +net-fs/samba (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 +net-im/pidgin (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 +net-libs/libepc (.*)net-dns/avahi(.*)(\[.*\]) \1net-dns/avahi-gtk3\2 +net-libs/obby (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 +net-misc/networkmanager (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 +net-misc/remmina (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 +net-misc/vino (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 +net-voip/ekiga (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 +net-voip/telepathy-salut (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 +sys-auth/nss-mdns (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 +sys-fs/owfs (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 +www-apache/mod_dnssd (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 +www-client/epiphany (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 +x11-misc/service-discovery-applet (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 +x11-misc/x11vnc (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2 + +# Fix gtk-3 deps +media-video/kino (.*)x11-libs/gtk(.*) \1x11-libs/gtk\2:2 + +# gnome-session-3.0.2 should pull in notification-daemon or it won't start +>=gnome-base/gnome-session-3.0 ++>=x11-misc/notification-daemon-0.7.1<2> + +# We provide media-video/libav and we want systems to have it pulled in +virtual/ffmpeg (.*)media-video/ffmpeg(.*) \1media-video/libav\2 diff --git a/conf/noarch/entropy/packages.server.qa.exec b/conf/noarch/entropy/packages.server.qa.exec new file mode 100755 index 0000000..af832c9 --- /dev/null +++ b/conf/noarch/entropy/packages.server.qa.exec @@ -0,0 +1,146 @@ +#!/usr/bin/python +# +# Entropy Server QA executable hook. +# This file doesn't strictly need to be a shell script, but just an executable +# file (r-xr-xr-x) and (mandatory) owned by root:root. +# Please rename this file by stripping the .example part +# +# It is used by Entropy Server QA routines to perform package metadata +# validation. +# Metadata is export in environmental variables form, and include: +# +# REPOSITORY_ID = repository identifier +# PKG_ID = package identifier +# PKG_ATOM = package atom +# PKG_NAME = package name +# PKG_VERSION = package version +# PKG_TAG = package version tag +# PKG_DESCRIPTION = package description +# PKG_CATEGORY = package category +# PKG_CHOST = package CHOST +# PKG_CFLAGS = package CFLAGS +# PKG_CXXFLAGS = package CXXFLAGS +# PKG_HOMEPAGE = package homepage +# PKG_LICENSE = package license +# PKG_BRANCH = package license +# PKG_DOWNLOAD = package relative download URL +# PKG_KEYWORDS = package keywords, space separated +# PKG_MD5 = package file md5 hash +# PKG_SLOT = package slot +# PKG_ETPAPI = package Entropy API +# PKG_DATE = package creation date (in unix time) +# PKG_SIZE = package size, in bytes +# PKG_REVISION = package entropy revision +# PKG_DEPS = list (\n separated) of package dependencies and conflicts +# PKG_NEEDED_LIBS = list (\n separated) of SONAMES required by package, +# including ELF class, so each item will look like this: +# | +# PKG_PROVIDED_LIBS = list (\n separated) of SONAMES provided by package, +# note: elf class and path are also provided, +# so each item will look like this: +# || +# +# The executable must return 0 for success, 1 for warning, 2 for critical error + +import sys +import os +import entropy.dep + +def write_attention_msg(msg): + sys.stderr.write("\nATTENTION ATTENTION ATTENTION\n") + sys.stderr.write(msg + "\n") + sys.stderr.write("ATTENTION ATTENTION ATTENTION\n\n") + +def write_warning_msg(msg): + sys.stderr.write("\nWARNING WARNING WARNING\n") + sys.stderr.write(msg + "\n") + sys.stderr.write("\nWARNING WARNING WARNING\n") + +def check_unwanted_deps(): + """ + Check against forbidden dependencies, those we consider meta packages, + placeholders just to keep Gentoo compatibility, which, if listed as dep in, + would cause the whole world to be pulled in. + """ + pkg_deps = os.getenv("PKG_DEPS", "") + pkg_deps = pkg_deps.split() + if not pkg_deps: + return 0 + + pkg_atom = os.getenv("PKG_ATOM") + pkg_keywords = os.getenv("PKG_KEYWORDS") + + unwanted_deps = ["app-admin/packagekit", "app-text/poppler", + "kde-base/kde-l10n", "net-dns/avahi", "net-p2p/transmission", + "app-crypt/pinentry"] + warning_deps = ["media-libs/libjpeg-turbo", "media-libs/jpeg", + "dev-lang/gnat-gcc"] + func_rc = 0 + + pkg_deps_map = dict((entropy.dep.dep_getkey(x), x) for x in pkg_deps if \ + not x.startswith("!")) + for unwanted_dep in unwanted_deps: + if unwanted_dep in pkg_deps_map: + write_attention_msg( + "%s contains forbidden dependency against %s" % ( + pkg_atom, pkg_deps_map[unwanted_dep])) + func_rc = 2 + + for warning_dep in warning_deps: + if warning_dep in pkg_deps_map: + write_attention_msg( + "%s contains a weirdo dependency against %s" % ( + pkg_atom, pkg_deps_map[warning_dep])) + if func_rc == 0: + func_rc = 1 + + if pkg_keywords is not None: + keywords = pkg_keywords.split() + if not keywords or ("**" in keywords and len(keywords) == 1): + write_attention_msg("%s is masked by default, keywords: %s" % ( + pkg_atom, pkg_keywords)) + if func_rc == 0: + func_rc = 1 + + return func_rc + +def warn_perl5_bump(): + """ + Warn in case of bumping dev-lang/perl. Developer should not + forget about running perl-cleaner. + """ + pkg_key = "%s/%s" % (os.getenv("PKG_CATEGORY", ""), + os.getenv("PKG_NAME", "")) + pkg_version = os.getenv("PKG_VERSION", "") + + if pkg_key == "dev-lang/perl" and pkg_version.startswith("5"): + perl_dir = "/usr/lib/perl5/vendor_perl" + try: + perl_versions = os.listdir(perl_dir) + except (OSError, IOError): + perl_versions = [] + + if len(perl_versions) > 1: + write_warning_msg( + "Adding dev-lang/perl but you forgot to run perl-cleaner?\n" + "These are the versions detected in %s:\n" + "%s" % (perl_dir, ", ".join(perl_versions))) + return 1 + + return 0 + + +if __name__ == "__main__": + + exit_st = 0 + rc = check_unwanted_deps() + if rc != 0: + exit_st = rc + + rc = warn_perl5_bump() + if rc != 0 and rc > exit_st: + exit_st = rc + + # more tests here + + raise SystemExit(exit_st)