summaryrefslogtreecommitdiff
path: root/conf/noarch
diff options
context:
space:
mode:
authorBlackNoxis <steven.darklight@gmail.com>2014-12-03 03:21:05 +0200
committerBlackNoxis <steven.darklight@gmail.com>2014-12-03 03:21:05 +0200
commit81900ddf398dba3915b748f6adc729a8aa902ae0 (patch)
treef42c2a66e49d5d2246fa8dd091e3e0b35dd586de /conf/noarch
parent58ae5bbf25835bd30fa385275ff4486dbc31f0a2 (diff)
Making our Kogaion configs public
Diffstat (limited to 'conf/noarch')
-rw-r--r--conf/noarch/entropy/packages/packages.server.dep_blacklist18
-rw-r--r--conf/noarch/entropy/packages/packages.server.dep_rewrite207
-rwxr-xr-xconf/noarch/entropy/packages/packages.server.qa.exec272
3 files changed, 497 insertions, 0 deletions
diff --git a/conf/noarch/entropy/packages/packages.server.dep_blacklist b/conf/noarch/entropy/packages/packages.server.dep_blacklist
new file mode 100644
index 0000000..c568ea4
--- /dev/null
+++ b/conf/noarch/entropy/packages/packages.server.dep_blacklist
@@ -0,0 +1,18 @@
+# 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> <blacklisted_dependency_1> [<blacklisted_dependency_1> ...]
+# 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/gtk+:3 x11-libs/gdk-pixbuf:2 x11-libs/libXrender:0 x11-libs/pixman:0 x11-libs/pango:0 media-libs/mesa:0 sys-libs/libselinux:0 sys-process/audit:0
+
+# it provides its own libwine.so.1
+net-misc/teamviewer app-emulation/wine:0
+
+# libcli.so
+media-sound/pulseaudio dev-db/fastdb:0
diff --git a/conf/noarch/entropy/packages/packages.server.dep_rewrite b/conf/noarch/entropy/packages/packages.server.dep_rewrite
new file mode 100644
index 0000000..9260769
--- /dev/null
+++ b/conf/noarch/entropy/packages/packages.server.dep_rewrite
@@ -0,0 +1,207 @@
+# Fix poppler dependencies, we provide our own split deps
+app-editors/gummi (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-glib\2
+app-leechcraft/lc-monocle (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-qt4\2
+app-misc/beagle (.*)app-text/poppler(.*)(\[.*\])? \1app-text/poppler-base\2
+app-misc/pdfpc (.*)app-text/poppler(.*) app-text/poppler-glib
+app-misc/recoll (.*)app-text/poppler(.*) \1app-text/poppler-base\2
+app-misc/tracker (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-glib\2
+app-office/calligra (.*)app-text/poppler(.*) \1app-text/poppler-base\2
+app-office/impressive (.*)app-text/poppler(.*)(\[.*\])? \1app-text/poppler-base\2
+app-office/krita (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-qt4\2
+app-office/libreoffice (.*)app-text/poppler(.*)(\[.*\])? \1app-text/poppler-base\2
+app-office/openoffice (.*)app-text/poppler(.*)(\[.*\])? \1app-text/poppler-base\2
+app-office/texmaker (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-qt4\2
+app-office/texmakerx (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-qt4\2
+app-office/texstudio (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-qt4\2
+app-text/apvlv (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-glib\2
+app-text/atril (.*)app-text/poppler(.*)(\[.*\])? \1app-text/poppler-glib\2
+app-text/calibre (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-qt4\2
+app-text/diffpdf (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-qt4\2
+app-text/dvipdfmx (.*)app-text/poppler(\d.*)(\[.*\])? \1app-text/poppler-base\2
+app-text/epdfview (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-glib\2
+app-text/evince (.*)app-text/poppler-(.*)(\[.*\]) \1app-text/poppler-glib-\2
+app-text/kbibtex (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-qt4\2
+app-text/mate-document-viewer (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-glib\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/qpdfview (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-qt4\2
+app-text/referencer (.*)app-text/poppler(.*) app-text/poppler-glib
+app-text/texlive-core (.*)app-text/poppler(.*)(\[.*\])? \1app-text/poppler-base\2
+app-text/xournal app-text/poppler(\[.*\]) app-text/poppler-glib
+app-text/xpdf (.*)app-text/poppler(.*)(\[.*\])? \1app-text/poppler-base\2
+app-text/zathura-pdf-poppler (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-glib\2
+dev-games/openscenegraph (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-glib\2
+dev-python/python-poppler (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-glib\2
+dev-python/python-poppler-qt4 (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-qt4\2
+dev-ruby/ruby-poppler (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-glib\2
+dev-tex/luatex (.*)app-text/poppler(.*)(\[.*\])? \1app-text/poppler-base\2
+dev-tex/pstplus (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-qt4\2
+gnome-extra/gnome-commander (.*)app-text/poppler(.*) \1app-text/poppler-base\2
+gnustep-libs/popplerkit (.*)app-text/poppler(.*)(\[.*\])? \1app-text/poppler-base\2
+kde-base/kfilemetadata (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-qt4\2
+kde-base/nepomuk-core (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-qt4\2
+kde-base/okular (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-qt4\2
+kde-misc/tellico (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-qt4\2
+mail-client/claws-mail (.*)app-text/poppler(.*)(\[.*\])? \1app-text/poppler-glib\2
+media-gfx/gimp (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-glib\2
+media-gfx/graphviz (.*)app-text/poppler(.*)(\[.*\])? \1app-text/poppler-glib\2
+media-gfx/inkscape (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-glib\2
+media-gfx/keyjnote (.*)app-text/poppler(.*)(\[.*\])? \1app-text/poppler-base\2
+media-gfx/pdf2svg (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-glib\2
+net-print/cups (.*)app-text/poppler(.*)(\[.*\])? \1app-text/poppler-base\2
+net-print/cups-filters (.*)app-text/poppler(.*)(\[.*\])? \1app-text/poppler-base\2
+sci-libs/gdal (.*)app-text/poppler(.*) \1app-text/poppler-base\2
+www-apps/dotproject (.*)app-text/poppler(.*)(\[.*\])? \1app-text/poppler-base\2
+www-apps/swish-e (.*)app-text/poppler(.*)(\[.*\])? \1app-text/poppler-base\2
+x11-misc/qcomicbook (.*)app-text/poppler(.*) \1app-text/poppler\2
+xfce-extra/tumbler (.*)app-text/poppler(.*)(\[.*\]) \1app-text/poppler-glib\2
+
+# lightdm split rewrite
+razorqt-base/razorqt-lightdm-greeter (.*)x11-misc/lightdm(.*)\[qt4\] \1x11-misc/lightdm-qt4\2
+x11-misc/lightdm-gtk-greeter (.*)x11-misc/lightdm(.*) \1x11-misc/lightdm-base\2
+x11-misc/lightdm-kde (.*)x11-misc/lightdm(.*)\[qt4\] \1x11-misc/lightdm-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-kogaion (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#2.6.31-kogaion
+app-emulation/virtualbox-guest-additions#2.6.32-kogaion (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#2.6.32-kogaion
+app-emulation/virtualbox-guest-additions#2.6.33-kogaion (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#2.6.33-kogaion
+app-emulation/virtualbox-guest-additions#2.6.34-kogaion (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#2.6.34-kogaion
+app-emulation/virtualbox-guest-additions#2.6.35-kogaion (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#2.6.35-kogaion
+app-emulation/virtualbox-guest-additions#2.6.36-kogaion (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#2.6.36-kogaion
+app-emulation/virtualbox-guest-additions#2.6.37-kogaion (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#2.6.37-kogaion
+app-emulation/virtualbox-guest-additions#2.6.38-kogaion (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#2.6.38-kogaion
+app-emulation/virtualbox-guest-additions#2.6.39-kogaion (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#2.6.39-kogaion
+app-emulation/virtualbox-guest-additions#3.0.0-kogaion (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#3.0.0-kogaion
+app-emulation/virtualbox-guest-additions#3.1.0-kogaion (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#3.1.0-kogaion
+app-emulation/virtualbox-guest-additions#3.2.0-kogaion (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#3.2.0-kogaion
+app-emulation/virtualbox-guest-additions#3.3.0-kogaion (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#3.3.0-kogaion
+app-emulation/virtualbox-guest-additions#3.4.0-kogaion (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#3.4.0-kogaion
+app-emulation/virtualbox-guest-additions#3.5.0-kogaion (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#3.5.0-kogaion
+app-emulation/virtualbox-guest-additions#3.6.0-kogaion (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#3.6.0-kogaion
+app-emulation/virtualbox-guest-additions#3.7.0-kogaion (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#3.7.0-kogaion
+app-emulation/virtualbox-guest-additions#3.8.0-kogaion (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#3.8.0-kogaion
+app-emulation/virtualbox-guest-additions#3.9.0-kogaion (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#3.9.0-kogaion
+app-emulation/virtualbox-guest-additions#3.10.0-kogaion (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#3.10.0-kogaion
+app-emulation/virtualbox-guest-additions#3.11.0-kogaion (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#3.11.0-kogaion
+app-emulation/virtualbox-guest-additions#3.12.0-kogaion (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#3.12.0-kogaion
+app-emulation/virtualbox-guest-additions#3.13.0-kogaion (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#3.13.0-kogaion
+app-emulation/virtualbox-guest-additions#3.14.0-kogaion (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#3.14.0-kogaion
+app-emulation/virtualbox-guest-additions#3.15.0-kogaion (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#3.15.0-kogaion
+app-emulation/virtualbox-guest-additions#3.16.0-kogaion (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#3.16.0-kogaion
+app-emulation/virtualbox-guest-additions#3.17.0-kogaion (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#3.17.0-kogaion
+app-emulation/virtualbox-guest-additions#3.18.0-kogaion (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#3.18.0-kogaion
+app-emulation/virtualbox-guest-additions#3.19.0-kogaion (.*)x11-drivers/xf86-video-virtualbox-(.*) \1x11-drivers/xf86-video-virtualbox-\2#3.19.0-kogaion
+
+# 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, always
+* (.*)kde-base/kde-l10n(.*)
+
+# Drop x11-libs/cairo PDEPEND from dev-libs/gobject-introspection
+# cairo pulls in mesa (through virtual/opengl) and this is very
+# bad for SpinBase and friends.
+dev-libs/gobject-introspection (.*)x11-libs/cairo(.*)
+
+# dev-lang/gcc dep rewrites (drop dep)
+dev-java/icedtea-bin (.*)sys-devel/gcc(.*)
+dev-java/icedtea (.*)sys-devel/gcc(.*)
+
+# 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-gtk3\2
+net-misc/vino (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2
+net-print/cups (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2
+net-print/cups-filters (.*)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
+sci-physics/root (.*)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
+sys-power/nut (.*)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-libs/libqxt (.*)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
+net-ftp/qshare (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2
+net-fs/netatalk (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2
+gnome-base/libgdu (.*)net-dns/avahi(.*)(\[.*\]) \1net-dns/avahi-gtk3\2
+media-video/miro (.*)net-dns/avahi(.*) \1net-dns/avahi-base\2
+kde-misc/kdeconnect (.*)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>
+
+# pygobject-cairo rewrite, simple catch-all rewrite
+# this might not catch all the strings
+* (.*)dev-python/pygobject(.*)\[cairo(.*)\] \1dev-python/pygobject-cairo\2
+# Rewrite almost every standard dev-python/pygobject dependency
+* (.*)dev-python/pygobject(?!.*-base.*)(?!.*-cairo.*)((?=-[0-9]\.)?)(?!.*-2\*)(?!.*:2)((.*:3)?)(?!.*\[.*cairo.*\].*) \1dev-python/pygobject-base\2\3
+
+# ati-drivers, nvidia-drivers rewrites
+virtual/opencl (.*)x11-drivers/ati-drivers(.*) \1x11-drivers/ati-userspace\2
+virtual/opencl (.*)x11-drivers/nvidia-drivers(.*) \1x11-drivers/nvidia-userspace\2
+dev-util/nvidia-cuda-sdk (.*)x11-drivers/nvidia-drivers(.*) \1x11-drivers/nvidia-userspace\2
+dev-python/pycuda (.*)x11-drivers/nvidia-drivers(.*) \1x11-drivers/nvidia-userspace\2
+
+# Drop dracut dependency from plymouth, not needed atm
+sys-boot/plymouth (.*)sys-kernel/dracut(.*)
+
+# drop PyQt4 dependency from pyudev, let runtime stuff deal with it
+dev-python/pyudev (.*)dev-python/PyQt4(.*)
+
+# Steam, don't pull in gcc directly
+games-util/steam-launcher (.*)sys-devel/gcc-(.*) \1sys-devel/base-gcc-\2
+games-util/steam-client-meta (.*)sys-devel/gcc-(.*) \1sys-devel/base-gcc-\2
+
+# Add conflict to systemd-sysv-utils for eselect-init
+sys-apps/systemd-sysv-utils ++!app-admin/eselect-init<2>
+
+# Replace x11-drivers/ati-drivers with ati-userspace from xvba-video
+x11-libs/xvba-video (.*)x11-drivers/ati-drivers(.*) \1x11-drivers/ati-userspace\2
+
+# Ensure a smooth migration from libgcrypt-1.5 to 1.6
+=dev-libs/libgcrypt-1.6* ++dev-libs/libgcrypt:11<2>
diff --git a/conf/noarch/entropy/packages/packages.server.qa.exec b/conf/noarch/entropy/packages/packages.server.qa.exec
new file mode 100755
index 0000000..7ec8f1a
--- /dev/null
+++ b/conf/noarch/entropy/packages/packages.server.qa.exec
@@ -0,0 +1,272 @@
+#!/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:
+# <soname>|<elfclass>
+# 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:
+# <soname>|<path of soname>|<elfclass>
+#
+# The executable must return 0 for success, 1 for warning, 2 for critical error
+
+import sys
+sys.path.insert(0, "/usr/lib/entropy/lib")
+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")
+
+ # You can only declare key or key:slot
+ unwanted_deps = ["app-admin/packagekit", "app-text/poppler",
+ "kde-base/kde-l10n", "net-dns/avahi", "net-p2p/transmission",
+ "app-crypt/pinentry", "dev-python/pygobject:3", "x11-misc/lightdm"]
+ warning_deps = ["media-libs/jpeg",
+ "dev-lang/gnat-gcc", "dev-lang/gcc", "x11-drivers/nvidia-drivers",
+ "x11-drivers/ati-drivers"]
+ func_rc = 0
+
+ pkg_deps_map = dict(
+ (entropy.dep.dep_getkey(x), (entropy.dep.dep_getslot(x), x)) \
+ for x in pkg_deps if not x.startswith("!"))
+
+ pkg_deps_map = {}
+ for pkg_dep in pkg_deps:
+ if pkg_dep.startswith("!"):
+ continue
+ key = entropy.dep.dep_getkey(pkg_dep)
+ obj = pkg_deps_map.setdefault(key, [])
+ val = entropy.dep.dep_getslot(pkg_dep), pkg_dep
+ obj.append(val)
+
+ for unwanted_dep in unwanted_deps:
+ unwanted_slot = entropy.dep.dep_getslot(unwanted_dep)
+ if unwanted_slot:
+ unwanted_dep = entropy.dep.remove_slot(unwanted_dep)
+
+ dep_data_list = pkg_deps_map.get(unwanted_dep)
+ if dep_data_list is None:
+ continue
+
+ for dep_data in dep_data_list:
+ dep_slot, dep = dep_data
+
+ if not unwanted_slot:
+ unwanted_slot = dep_slot
+
+ if dep_slot == unwanted_slot:
+ write_attention_msg(
+ "%s contains forbidden dependency against %s" % (
+ pkg_atom, dep))
+ func_rc = 2
+
+ for warning_dep in warning_deps:
+
+ warning_slot = entropy.dep.dep_getslot(warning_dep)
+ if warning_slot:
+ warning_dep = entropy.dep.remove_slot(warning_dep)
+
+ dep_data_list = pkg_deps_map.get(warning_dep)
+ if dep_data_list is None:
+ continue
+
+ for dep_data in dep_data_list:
+ dep_slot, dep = dep_data
+
+ if not warning_slot:
+ unwanted_slot = dep_slot
+
+ if dep_slot == warning_slot:
+ write_attention_msg(
+ "%s contains a weirdo dependency against %s" % (
+ pkg_atom, 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
+
+def warn_portage_bump():
+ """
+ Wheneger Portage is bumped, its packages.db.critical entry in build.git
+ must be raised.
+ """
+ pkg_key = "%s/%s" % (os.getenv("PKG_CATEGORY", ""),
+ os.getenv("PKG_NAME", ""))
+
+ if pkg_key == "sys-apps/portage":
+ write_warning_msg(
+ "So you bumped Portage they told me...\n"
+ "Have you raised the portage version in packages.db.critical?\n"
+ "It is inside build.git.")
+ return 1
+
+ return 0
+
+def warn_sip_bump():
+ """
+ Wheneger Sip is bumped, we need to manually bump the reverse dependencies.
+ """
+ pkg_key = "%s/%s" % (os.getenv("PKG_CATEGORY", ""),
+ os.getenv("PKG_NAME", ""))
+
+ if pkg_key == "dev-python/sip":
+ write_warning_msg(
+ "So you bumped Sip they told me...\n"
+ "Have you rebuilt its reverse dependencies?\n"
+ "# qfile -e /usr/lib/python2.7/site-packages/PyQt4")
+ return 1
+
+ return 0
+
+def warn_binutils_bump():
+ """
+ Whenever binutils is bumped, we should rebuild packages
+ linking explicitly to libbfd-<ver>.so :( sigh.
+ """
+ pkg_key = "%s/%s" % (os.getenv("PKG_CATEGORY", ""),
+ os.getenv("PKG_NAME", ""))
+
+ if pkg_key == "sys-devel/binutils":
+ write_warning_msg(
+ "So you bumped binutils they told me...\n"
+ "Please, no wait... FUCKING CHECK that packages linking to\n"
+ "libbfd-<old_ver>.so have been rebuilt. You can use:\n"
+ " # eit query required libbfd-*.so\n")
+ return 1
+
+ return 0
+
+def warn_haskell_bump():
+ """
+ Warn in case of bumping dev-lang/ghc. Developer should not
+ forget about running haskell-updater.
+ """
+ pkg_key = "%s/%s" % (os.getenv("PKG_CATEGORY", ""),
+ os.getenv("PKG_NAME", ""))
+ pkg_version = os.getenv("PKG_VERSION", "")
+
+ if pkg_key == "dev-lang/ghc":
+ write_warning_msg(
+ "Bumping dev-lang/ghc !!!\n"
+ "Make sure to run 'haskell-updater' !\n")
+ return 1
+
+ return 0
+
+if __name__ == "__main__":
+
+ exit_st = 0
+ rc = check_unwanted_deps()
+ if rc != 0:
+ exit_st = rc
+
+ rc = warn_portage_bump()
+ if rc != 0 and rc > exit_st:
+ exit_st = rc
+
+ rc = warn_perl5_bump()
+ if rc != 0 and rc > exit_st:
+ exit_st = rc
+
+ rc = warn_haskell_bump()
+ if rc != 0 and rc > exit_st:
+ exit_st = rc
+
+ rc = warn_binutils_bump()
+ if rc != 0 and rc > exit_st:
+ exit_st = rc
+
+ rc = warn_sip_bump()
+ if rc != 0 and rc > exit_st:
+ exit_st = rc
+
+ # more tests here
+
+ raise SystemExit(exit_st)