From 2775dc0f0c26424819a047a117c85c85bbda900f Mon Sep 17 00:00:00 2001 From: Erik Price Date: Thu, 18 Apr 2013 03:02:09 +0000 Subject: Initial Gentoo support --- diff --git a/config/packages/deps.json b/config/packages/deps.json index 2adc13c..4d0fa52 100644 --- a/config/packages/deps.json +++ b/config/packages/deps.json @@ -2,1038 +2,1275 @@ "Adwaita": { "debian": [ "gnome-themes-standard" - ], + ], "fedora": [ "gnome-themes-standard" - ], + ], "ubuntu": [ "gnome-themes-standard" + ], + "gentoo": [ + "gnome-themes-standard" ] - }, + }, "X": { "debian": [ "xserver-xorg" - ], + ], "fedora": [ "xorg-x11-server-Xorg" - ], + ], "ubuntu": [ "xserver-xorg" + ], + "gentoo": [ + "xorg-server" ] - }, + }, "Xephyr": { "debian": [ "xserver-xephyr" - ], + ], "fedora": [ "xorg-x11-server-Xephyr" - ], + ], "ubuntu": [ "xserver-xephyr" + ], + "gentoo": [ + "#you need to set the xephyr USE flag on xorg-server" ] - }, + }, "Xvfb": { "debian": [ "xvfb" - ], + ], "fedora": [ "xorg-x11-server-Xvfb" - ], + ], "ubuntu": [ "xvfb" + ], + "gentoo": [ + "#you need to set the xvfb USE flag on xorg-server" ] - }, + }, "aclocal": { "debian": [ "automake" - ], + ], "fedora": [ "automake" - ], + ], "ubuntu": [ "automake" + ], + "gentoo": [ + "automake" ] - }, + }, "alsa": { "debian": [ "libasound2-dev" - ], + ], "fedora": [ "alsa-lib-devel" - ], + ], "ubuntu": [ "libasound2-dev" + ], + "gentoo": [ + "alsa-lib" ] - }, + }, "asn1Parser": { "debian": [ "libtasn1-3-bin" - ], + ], "fedora": [ "libtasn1-tools" + ], + "gentoo": [ + "libtasn1" ] - }, + }, "atk-bridge": { "debian": [ "libatk-adaptor" - ], + ], "fedora": [ "at-spi2-atk" - ], + ], "ubuntu": [ "libatk-adaptor" + ], + "gentoo": [ + "atk" ] - }, + }, "atspi typelib": { "debian": [ "gir1.2-atspi-2.0" - ], + ], "fedora": [ "at-spi2-core" - ], + ], "ubuntu": [ "gir1.2-atspi-2.0" + ], + "gentoo": [ + "at-spi2-core" ] - }, + }, "autodetect gstreamer": { "fedora": [ "gstreamer1-plugins-good" - ], + ], "ubuntu": [ "gstreamer1.0-plugins-good" ] - }, + }, "autoreconf": { "debian": [ "autoconf" - ], + ], "fedora": [ "autoconf" - ], + ], "ubuntu": [ "autoconf" + ], + "gentoo": [ + "sys-devel/autoconf" ] - }, + }, "bison": { "debian": [ "bison" - ], + ], "fedora": [ "bison" - ], + ], "ubuntu": [ "bison" + ], + "gentoo": [ + "sys-devel/bison" ] - }, + }, "c++": { "debian": [ "g++" - ], + ], "fedora": [ "gcc-c++" - ], + ], "ubuntu": [ "g++" ] - }, + }, "cairo foreign": { "debian": [ "python-gi-cairo" - ], + ], "fedora": [ "pygobject3" - ], + ], "ubuntu": [ "python-gi-cairo" + ], + "gentoo": [ + "dev-python/pycairo" ] - }, + }, "cairo typelib": { "debian": [ "gir1.2-freedesktop" - ], + ], "fedora": [ "gobject-introspection" - ], + ], "ubuntu": [ "gir1.2-freedesktop" + ], + "gentoo": [ + "dev-libs/gobject-introspection" ] - }, + }, "cairo-gobject": { "debian": [ "libcairo2-dev" - ], + ], "fedora": [ "cairo-gobject-devel" - ], + ], "ubuntu": [ "libcairo2-dev" + ], + "gentoo": [ + "x11-libs/cairo" ] - }, + }, "ccache": { "debian": [ "ccache" - ], + ], "fedora": [ "ccache" - ], + ], "ubuntu": [ "ccache" + ], + "gentoo": [ + "dev-util/ccache" ] - }, + }, "dateutil python": { "debian": [ "python-dateutil" - ], + ], "fedora": [ "python-dateutil" - ], + ], "ubuntu": [ "python-dateutil" + ], + "gentoo": [ + "python-dateutil" ] - }, + }, "dbus-glib-1": { "debian": [ "libdbus-glib-1-dev" - ], + ], "fedora": [ "dbus-glib-devel" - ], + ], "ubuntu": [ "libdbus-glib-1-dev" + ], + "gentoo": [ + "dbus-glib" ] - }, + }, "dbus-launch": { "debian": [ "dbus-x11" - ], + ], "fedora": [ "dbus-x11" - ], + ], "ubuntu": [ "dbus-x11" + ], + "gentoo": [ + "sys-apps/dbus" ] - }, + }, "dconf": { "debian": [ "dconf-tools" - ], + ], "fedora": [ "dconf" - ], + ], "ubuntu": [ "dconf" + ], + "gentoo": [ + "gnome-base/dconf" ] - }, + }, "decorator python": { "debian": [ "python-decorator" - ], + ], "fedora": [ "python-decorator" - ], + ], "ubuntu": [ "python-decorator" + ], + "gentoo": [ + "dev-python/decorator" ] - }, + }, "espeak": { "debian": [ "espeak" - ], + ], "fedora": [ "espeak" - ], + ], "ubuntu": [ "espeak" + ], + "gentoo": [ + "app-accessibility/espeak" ] - }, + }, "espeak devel": { "debian": [ "libespeak-dev" - ], + ], "fedora": [ "espeak-devel" - ], + ], "ubuntu": [ "libespeak-dev" ] - }, + }, "evince typelib": { "debian": [ "gir1.2-evince-3.0" - ], + ], "fedora": [ "evince-libs" - ], + ], "ubuntu": [ "gir1.2-evince-3.0" + ], + "gentoo": [ + "dev-python/evince-python" ] - }, + }, "flex": { "debian": [ "flex" - ], + ], "fedora": [ "flex" - ], + ], "ubuntu": [ "flex" + ], + "gentoo": [ + "sys-devel/flex" ] - }, + }, "gail gtkmodule": { "debian": [ "libgail-common" - ], + ], "fedora": [ "gtk2" - ], + ], "ubuntu": [ "libgail-common" + ], + "gentoo": [ + "gnome-extra/libgail-gnome" ] - }, + }, "gcc": { "debian": [ "gcc" - ], + ], "fedora": [ "gcc" - ], + ], "ubuntu": [ "gcc" ] - }, + }, "gconf python": { "debian": [ "python-gconf" - ], + ], "fedora": [ "gnome-python2-gconf" - ], + ], "ubuntu": [ "python-gconf" + ], + "gentoo": [ + "dev-python/gconf-python" ] - }, + }, "gconf typelib": { "debian": [ "gir1.2-gconf-2.0" - ], + ], "fedora": [ "GConf2" - ], + ], "ubuntu": [ "gir1.2-gconf-2.0" + ], + "gentoo": [ + "gnome-base/gconf" ] - }, + }, "gconf-2.0": { "debian": [ "libgconf2-dev" - ], + ], "fedora": [ "GConf2-devel" - ], + ], "ubuntu": [ "libgconf2-dev" ] - }, + }, "gi python": { "debian": [ "python-gobject-2" - ], + ], "fedora": [ "pygobject3" - ], + ], "ubuntu": [ "python-gobject-2" + ], + "gentoo": [ + "dev-python/pygobject:3" ] - }, + }, "glib-2.0": { "debian": [ "libglib2.0-dev" - ], + ], "fedora": [ "glib2-devel" - ], + ], "ubuntu": [ "libglib2.0-dev" ] - }, + }, "gnome-doc-common": { "debian": [ "gnome-common" - ], + ], "fedora": [ "gnome-common" - ], + ], "ubuntu": [ "gnome-common" + ], + "gentoo": [ + "gnome-base/gnome-common" ] - }, + }, "gnome-keyring-daemon": { "debian": [ "gnome-keyring" - ], + ], "fedora": [ "gnome-keyring" - ], + ], "ubuntu": [ "gnome-keyring" + ], + "gentoo": [ + "gnome-base/gnome-keyring" ] - }, + }, "gobject-introspection-1.0": { "debian": [ "libgirepository1.0-dev" - ], + ], "fedora": [ "gobject-introspection-devel" - ], + ], "ubuntu": [ "libgirepository1.0-dev" + ], + "gentoo": [ + "dev-libs/gobject-introspection" ] - }, + }, "gsettings-desktop-schemas": { "debian": [ "gsettings-desktop-schemas-dev" - ], + ], "fedora": [ "gsettings-desktop-schemas-devel" - ], + ], "ubuntu": [ "gsettings-desktop-schemas-dev" + ], + "gentoo": [ + "gnome-base/gsettings-desktop-schemas" ] - }, + }, "gst typelib": { "fedora": [ "gstreamer1" - ], + ], "ubuntu": [ "gir1.2-gstreamer-1.0" ] - }, + }, "gstreamer-1.0": { "fedora": [ "gstreamer1-devel" - ], + ], "ubuntu": [ "libgstreamer1.0-dev" ] - }, + }, "gstreamer-plugins-base-1.0": { "fedora": [ "gstreamer1-plugins-base-devel" - ], + ], "ubuntu": [ "libgstreamer-plugins-base1.0-dev" ] - }, + }, "gtk+-3.0": { "debian": [ "libgtk-3-dev" - ], + ], "fedora": [ "gtk3-devel" - ], + ], "ubuntu": [ "libgtk-3-dev" + ], + "gentoo": [ + "x11-libs/gtk+:3" ] - }, + }, "gtk-doc": { "debian": [ "gtk-doc-tools" - ], + ], "fedora": [ "gtk-doc" - ], + ], "ubuntu": [ "gtk-doc-tools" + ], + "gentoo": [ + "dev-util/gtk-doc" ] - }, + }, "gtksource typelib": { "debian": [ "gir1.2-gtksource-3.0" - ], + ], "fedora": [ "gtksourceview3" - ], + ], "ubuntu": [ "gir1.2-gtksource-3.0" + ], + "gentoo": [ + "x11-libs/gtksourceview" ] - }, + }, "gtksourceview2 python": { "debian": [ "python-gtksourceview2" - ], + ], "fedora": [ "pygtksourceview" - ], + ], "ubuntu": [ "python-gtksourceview2" + ], + "gentoo": [ + "dev-python/pygtksourceview" ] - }, + }, "hippo python": { "debian": [ "python-hippocanvas" - ], + ], "fedora": [ "hippo-canvas-python" - ], + ], "ubuntu": [ "python-hippocanvas" + ], + "gentoo": [ + "x11-libs/hippo-canvas" ] - }, + }, "ice": { "debian": [ "libice-dev" - ], + ], "fedora": [ "libICE-devel" - ], + ], "ubuntu": [ "libice-dev" + ], + "gentoo": [ + "x11-libs/libICE" ] - }, + }, "icon-naming-utils": { "debian": [ "icon-naming-utils" - ], + ], "fedora": [ "icon-naming-utils" - ], + ], "ubuntu": [ "icon-naming-utils" + ], + "gentoo": [ + "x11-misc/icon-naming-utils" ] - }, + }, "icon-slicer": { "debian": [ "icon-slicer" - ], + ], "fedora": [ "icon-slicer" - ], + ], "ubuntu": [ "icon-slicer" + ], + "gentoo": [ + "media-gfx/icon-slicer" ] - }, + }, "intltoolize": { "debian": [ "intltool" - ], + ], "fedora": [ "intltool" - ], + ], "ubuntu": [ "intltool" + ], + "gentoo": [ + "dev-util/intltool" ] - }, + }, "iso-codes": { "debian": [ "iso-codes" - ], + ], "fedora": [ "iso-codes-devel" - ], + ], "ubuntu": [ "iso-codes" + ], + "gentoo": [ + "app-text/iso-codes" ] - }, + }, "libcanberra-gtk": { "debian": [ "libcanberra-gtk-dev" - ], + ], "fedora": [ "libcanberra-devel" - ], + ], "ubuntu": [ "libcanberra-gtk-dev" + ], + "gentoo": [ + "media-libs/libcanberra" ] - }, + }, "libgcr": { "debian": [ "libgcr-3-dev" - ], + ], "fedora": [ "gcr-devel" + ], + "gentoo": [ + "app-crypt/gcr" ] - }, + }, "libgcrypt": { "debian": [ "libgcrypt11-dev" - ], + ], "fedora": [ "libgcrypt-devel" + ], + "gentoo": [ + "dev-libs/libgcrypt" ] - }, + }, "librsvg-2.0": { "debian": [ "librsvg2-dev" - ], + ], "fedora": [ "librsvg2-devel" - ], + ], "ubuntu": [ "librsvg2-dev" + ], + "gentoo": [ + "gnome-base/librsvg" ] - }, + }, "libtasn1": { "debian": [ "libtasn1-3-dev" - ], + ], "fedora": [ "libtasn1-devel" ] - }, + }, "libtool": { "debian": [ "libtool" - ], + ], "fedora": [ "libtool" - ], + ], "ubuntu": [ "libtool" + ], + "gentoo": [ + "sys-devl/libtool" ] - }, + }, "libxml-2.0": { "debian": [ "libxml2-dev" - ], + ], "fedora": [ "libxml2-devel" - ], + ], "ubuntu": [ "libxml2-dev" + ], + "gentoo": [ + "dev-libs/libxml2" ] - }, + }, "makeinfo": { "debian": [ "texinfo" - ], + ], "fedora": [ "texinfo" - ], + ], "ubuntu": [ "texinfo" + ], + "gentoo": [ + "sys-apps/texinfo" ] - }, + }, "metacity": { "debian": [ "metacity" - ], + ], "fedora": [ "metacity" - ], + ], "ubuntu": [ "metacity" + ], + "gentoo": [ + "x11-wm/metacity" ] - }, + }, "org.freedesktop.Telepathy.AccountManager": { "debian": [ "telepathy-mission-control-5" - ], + ], "fedora": [ "telepathy-mission-control" - ], + ], "ubuntu": [ "telepathy-mission-control-5" + ], + "gentoo": [ + "net-im/telepathy-mission-control" ] - }, + }, "org.freedesktop.Telepathy.ConnectionManager.gabble": { "debian": [ "telepathy-gabble" - ], + ], "fedora": [ "telepathy-gabble" - ], + ], "ubuntu": [ "telepathy-gabble" + ], + "gentoo": [ + "net-voip/telepathy-gabble" ] - }, + }, "org.freedesktop.Telepathy.ConnectionManager.salut": { "debian": [ "telepathy-salut" - ], + ], "fedora": [ "telepathy-salut" - ], + ], "ubuntu": [ "telepathy-salut" + ], + "gentoo": [ + "net-voip/telepathy-salut" ] - }, + }, "pango gstreamer": { "fedora": [ "gstreamer1-plugins-base" - ], + ], "ubuntu": [ "gstreamer1.0-x" ] - }, + }, "pep8": { "debian": [ "pep8" - ], + ], "fedora": [ "python-pep8" - ], + ], "ubuntu": [ "pep8" + ], + "gentoo": [ + "dev-python/pep8" ] - }, + }, "pkg-config": { "debian": [ "pkg-config" - ], + ], "fedora": [ "pkgconfig" - ], + ], "ubuntu": [ "pkg-config" ] - }, + }, "playback gstreamer": { "fedora": [ "gstreamer1-plugins-base" - ], + ], "ubuntu": [ "gstreamer1.0-plugins-base" ] - }, + }, "pycairo": { "debian": [ "python-cairo-dev" - ], + ], "fedora": [ "pycairo-devel" - ], + ], "ubuntu": [ "python-cairo-dev" + ], + "gentoo": [ + "dev-python/pycairo" ] - }, + }, "pygtk-2.0": { "debian": [ "python-gtk2-dev" - ], + ], "fedora": [ "pygtk2-devel" - ], + ], "ubuntu": [ "python-gtk2-dev" + ], + "gentoo": [ + "dev-python/pygtk" ] - }, + }, "pylint": { "debian": [ "pylint" - ], + ], "fedora": [ "pylint" - ], + ], "ubuntu": [ "pylint" + ], + "gentoo": [ + "dev-python/pylint" ] - }, + }, "python": { "debian": [ "python-dev" - ], + ], "fedora": [ "python-devel" - ], + ], "ubuntu": [ "python-dev" ] - }, + }, "rsvg python": { "debian": [ "python-rsvg" - ], + ], "fedora": [ "gnome-python2-rsvg" - ], + ], "ubuntu": [ "python-rsvg" + ], + "gentoo": [ + "dev-python/librsvg-python" ] - }, + }, "simplejson python": { "debian": [ "python-simplejson" - ], + ], "fedora": [ "python-simplejson" - ], + ], "ubuntu": [ "python-simplejson" + ], + "gentoo": [ + "dev-python/simplejson" ] - }, + }, "sm": { "debian": [ "libsm-dev" - ], + ], "fedora": [ "libSM-devel" - ], + ], "ubuntu": [ "libsm-dev" + ], + "gentoo": [ + "x11-libs/libSM" ] - }, + }, "sphinx-build": { "debian": [ "python-sphinx" - ], + ], "fedora": [ "python-sphinx" - ], + ], "ubuntu": [ "python-sphinx" + ], + "gentoo": [ + "dev-python/sphinx" ] - }, + }, "ssh": { "debian": [ "openssh-client" - ], + ], "fedora": [ "openssh-clients" - ], + ], "ubuntu": [ "openssh-client" + ], + "gentoo": [ + "net-misc/openssh" ] - }, + }, "tar": { "debian": [ "tar" - ], + ], "fedora": [ "tar" - ], + ], "ubuntu": [ "tar" ] - }, + }, "telepathy python": { "debian": [ "python-telepathy" - ], + ], "fedora": [ "python-telepathy" - ], + ], "ubuntu": [ "python-telepathy" + ], + "gentoo": [ + "dev-python/telepathy-python" ] - }, + }, "telepathy-glib": { "debian": [ "libtelepathy-glib-dev" - ], + ], "fedora": [ "telepathy-glib-devel" - ], + ], "ubuntu": [ "libtelepathy-glib-dev" + ], + "gentoo": [ + "net-libs/telepathy-glib" ] - }, + }, "time": { "debian": [ "time" - ], + ], "fedora": [ "time" - ], + ], "ubuntu": [ "time" + ], + "gentoo": [ + "sys-process/time" ] - }, + }, "virtualenv": { "debian": [ "python-virtualenv" - ], + ], "fedora": [ "python-virtualenv" - ], + ], "ubuntu": [ "python-virtualenv" + ], + "gentoo": [ + "dev-python/virtualenv" ] - }, + }, "vte python": { "debian": [ "python-vte" - ], + ], "fedora": [ "vte" - ], + ], "ubuntu": [ "python-vte" + ], + "gentoo": [ + "x11-libs/vte" ] - }, + }, "vte typelib": { "debian": [ "gir1.2-vte-2.90" - ], + ], "fedora": [ "vte3" - ], + ], "ubuntu": [ "gir1.2-vte-2.90" ] - }, + }, "webkit typelib": { "debian": [ "gir1.2-webkit-3.0" - ], + ], "fedora": [ "webkitgtk3" - ], + ], "ubuntu": [ "gir1.2-webkit-3.0" + ], + "gentoo": [ + "dev-python/pywebkitgtk" ] - }, + }, "wnck python": { "debian": [ "python-wnck" - ], + ], "fedora": [ "gnome-python2-libwnck" - ], + ], "ubuntu": [ "python-wnck" + ], + "gentoo": [ + "net-libs/webkit-gtk" ] - }, + }, "wnck typelib": { "debian": [ "gir1.2-wnck-3.0" - ], + ], "fedora": [ "libwnck3" - ], + ], "ubuntu": [ "gir1.2-wnck-3.0" + ], + "gentoo": [ + "x11-libs/libwnck" ] - }, + }, "x11": { "debian": [ "libx11-dev" - ], + ], "fedora": [ "libX11-devel" - ], + ], "ubuntu": [ "libx11-dev" ] - }, + }, "xapian python": { "debian": [ "python-xapian" - ], + ], "fedora": [ "xapian-bindings-python" - ], + ], "ubuntu": [ "python-xapian" + ], + "gentoo": [ + "dev-libs/xapian-bindings" ] - }, + }, "xcursorgen": { "debian": [ "x11-apps" - ], + ], "fedora": [ "xorg-x11-apps" - ], + ], "ubuntu": [ "x11-apps" + ], + "gentoo": [ + "x11-apps/xcursorgen" ] - }, + }, "xdg-user-dirs-update": { "debian": [ "xdg-user-dirs" - ], + ], "fedora": [ "xdg-user-dirs" - ], + ], "ubuntu": [ "xdg-user-dirs" + ], + "gentoo": [ + "x11-misc/xdg-user-dirs" ] - }, + }, "xdpyinfo": { "debian": [ "x11-utils" - ], + ], "fedora": [ "xorg-x11-utils" - ], + ], "ubuntu": [ "x11-utils" + ], + "gentoo": [ + "x11-apps/xdpyinfo" ] - }, + }, "xinit": { "debian": [ "xinit" - ], + ], "fedora": [ "xorg-x11-xinit" - ], + ], "ubuntu": [ "xinit" ] - }, + }, "xkbfile": { "debian": [ "libxkbfile-dev" - ], + ], "fedora": [ "libxkbfile-devel" - ], + ], "ubuntu": [ "libxkbfile-dev" + ], + "gentoo": [ + "x11-libs/libxkbfile" ] - }, + }, "xrandr": { "debian": [ "libxrandr-dev" - ], + ], "fedora": [ "libXrandr-devel" - ], + ], "ubuntu": [ "libxrandr-dev" + ], + "gentoo": [ + "x11-libs/libXrandr" ] - }, + }, "xrdb": { "debian": [ "x11-xserver-utils" - ], + ], "fedora": [ "xorg-x11-server-utils" - ], + ], "ubuntu": [ "x11-xserver-utils" + ], + "gentoo": [ + "x11-apps/xrdb" ] - }, + }, "xtst": { "debian": [ "libxtst-dev" - ], + ], "fedora": [ "libXtst-devel" - ], + ], "ubuntu": [ "libxtst-dev" + ], + "gentoo": [ + "x11-libs/libXtst" ] - }, + }, "xz": { "debian": [ "xz-utils" - ], + ], "fedora": [ "xz" - ], + ], "ubuntu": [ "xz-utils" + ], + "gentoo": [ + "app-arch/xz-utils" ] - }, + }, "yasm": { "debian": [ "yasm" - ], + ], "fedora": [ "yasm" - ], + ], "ubuntu": [ "yasm" + ], + "gentoo": [ + "dev-lang/yasm" ] } } diff --git a/devbot/plugins/gentoo.py b/devbot/plugins/gentoo.py new file mode 100644 index 0000000..a9c3509 --- /dev/null +++ b/devbot/plugins/gentoo.py @@ -0,0 +1,125 @@ +import os +import subprocess + +from devbot import command +from devbot import distro +from devbot.plugins import interfaces + +class PackageManager(interfaces.PackageManager): + def __init__(self, test=False, interactive=True): + self._test = test + self._interactive = interactive + + def install_packages(self, packages): + args = ["emerge", "-vu"] + + if self._interactive: + args.append("-a") + + args.extend(packages) + + command.run_with_sudo(args, test=self._test, + interactive=self._interactive) + + def remove_packages(self, packages): + args = ["emerge", "-vc"] + args.extend(packages) + + if self._interactive: + args.append("-a") + + print(args) + + command.run_with_sudo(args, test=self._test) + + def update(self): + args = ["emerge", "-uvDN"] + + if self._interactive: + args.append("-a") + + command.run_with_sudo(args, test=self._test, + interactive=self._interactive) + + # TODO: This currently uses eix, which is non-standard (but common) + def find_all(self): + packages = subprocess.check_output(["eix", "-I", "--only-names"]) + + return packages.split(" ") + + # TODO + def find_with_deps(self, packages): + result = [] + + for package in packages: + if package not in result: + result.append(package) + + self._find_deps(package, result) + + return result + + def _find_deps(self, package, result): + + # Ensure that package exists first + try: + print('_find_deps1') + subprocess.check_output(["eix", "-IAe", package, "--format", + '']) + except subprocess.CalledProcessError: + print("Package %s not installed" % package) + return + print('_find_deps') + # FIXME: This command is horrifying + f = os.popen("""equery --quiet list emacs | + xargs equery --no-color --quiet depgraph -UAMl | + perl -pe 's/\[.*?\]\s+(.*?\/.*?)(-[0-9].*)?$/\1/' | + tail -n +2""") + + dependencies = f.read().strip().split() + for dep in dependencies: + if dep not in result: + result.append(dep) + + + + pass + +distro.register_package_manager("gentoo", PackageManager) + +class DistroInfo(interfaces.DistroInfo): + _GENTOO_RELEASE_PATH = "/etc/gentoo-release" + + def __init__(self): + arch = self._get_architecture() + + self.name = "gentoo" + self.version = None + self.gnome_version = "TODO" + self.gstreamer_version = "TODO" + self.valid = True + + # TODO: Confirm validity of this + self.supported = (arch in [b'i386', b'i686', b'x86_64']) + + self.lib_dir = None + + if arch == "x86_64": + self.lib_dir = "lib64" + + try: + release = subprocess.check_output(["lsb_release", "-r"]) + release = release.split()[1].strip() + except: + release = None + self.valid = False + + if release == b'2.1': + self.version = "2.1" + else: + self.supported = False + + def _get_architecture(self): + return subprocess.check_output(["uname", "-m"]).strip() + +distro.register_distro_info(DistroInfo) -- cgit v0.9.1