summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAmadeusz Piotr Żołnowski <aidecoe@gentoo.org>2011-02-21 21:08:17 +0000
committerAmadeusz Piotr Żołnowski <aidecoe@gentoo.org>2011-02-21 21:08:17 +0000
commit79d1d75f6de6e419710d574a4247475a7da2baaf (patch)
tree3f6b0b7161911f4d736f94ad8c0437983338b0d2 /sys-boot
parentBump to 1.6.6, fix slot-deps, do only one inherit: avoids DESCRIPTION and oth... (diff)
downloadgentoo-2-79d1d75f6de6e419710d574a4247475a7da2baaf.tar.gz
gentoo-2-79d1d75f6de6e419710d574a4247475a7da2baaf.tar.bz2
gentoo-2-79d1d75f6de6e419710d574a4247475a7da2baaf.zip
sys-boot/plymouth: Initial ebuild - 0.8.3. See bug #274065.
(Portage version: 2.1.9.40/cvs/Linux x86_64)
Diffstat (limited to 'sys-boot')
-rw-r--r--sys-boot/plymouth/ChangeLog38
-rw-r--r--sys-boot/plymouth/files/0.8.3-drm-reduce-minimum-build-requirements.patch422
-rw-r--r--sys-boot/plymouth/files/0.8.3-gentoo-fb-path.patch25
-rw-r--r--sys-boot/plymouth/files/0.8.3-image-replace-deprecated-libpng-function.patch24
-rw-r--r--sys-boot/plymouth/files/gentoo-logo.pngbin0 -> 14501 bytes
-rw-r--r--sys-boot/plymouth/files/plymouth.initd23
-rw-r--r--sys-boot/plymouth/metadata.xml23
-rw-r--r--sys-boot/plymouth/plymouth-0.8.3.ebuild77
8 files changed, 632 insertions, 0 deletions
diff --git a/sys-boot/plymouth/ChangeLog b/sys-boot/plymouth/ChangeLog
new file mode 100644
index 000000000000..48cb14e5fdb2
--- /dev/null
+++ b/sys-boot/plymouth/ChangeLog
@@ -0,0 +1,38 @@
+# ChangeLog for sys-boot/plymouth
+# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/plymouth/ChangeLog,v 1.1 2011/02/21 21:08:17 aidecoe Exp $
+
+*plymouth-0.8.3 (21 Feb 2011)
+
+ 21 Feb 2011; Amadeusz Żołnowski <aidecoe@gentoo.org>
+ +files/0.8.3-drm-reduce-minimum-build-requirements.patch,
+ +files/0.8.3-gentoo-fb-path.patch, +plymouth-0.8.3.ebuild,
+ +files/0.8.3-image-replace-deprecated-libpng-function.patch,
+ +files/gentoo-logo.png, +files/plymouth.initd, +metadata.xml:
+ Initial ebuild is derived from attachment #208174[0] (by Christoph Brill
+ <egore@gmx.de> in year 2009) and has gone through major modifications (see
+ bug #274065[1] for its history) to eventually see the light of day.
+
+ I'd like to thank to all contributors for improving the ebuild (in time
+ order):
+
+ Christoph Brill <egore@gmx.de>
+ jcat <jcat@nysasounds.co.uk>
+ Martin Benz <benson@gmx.ch>
+ Anton Bolshakov <anton.bugs@gmail.com>
+ Favero Francesco <francbilug@gmail.com>
+ Lucian Muresan <lucianm@users.sourceforge.net>
+
+ Thanks to Lucian Muresan also for patch making DRM drivers optional (already
+ applied upstream).
+
+ Special thanks to people who helped me with testing (alphabetical order):
+
+ Michael "brot" Groh <brot@minad.de>
+ Szymon "chaos" Szypulski <ch4os@gen2.org> (who also provided me with
+ hardware to continue testing)
+
+ Gentoo Logo was customized by Michael Groh.
+
+ [0] https://bugs.gentoo.org/attachment.cgi?id=208174
+ [1] https://bugs.gentoo.org/274065
diff --git a/sys-boot/plymouth/files/0.8.3-drm-reduce-minimum-build-requirements.patch b/sys-boot/plymouth/files/0.8.3-drm-reduce-minimum-build-requirements.patch
new file mode 100644
index 000000000000..8c9bb5ab3f32
--- /dev/null
+++ b/sys-boot/plymouth/files/0.8.3-drm-reduce-minimum-build-requirements.patch
@@ -0,0 +1,422 @@
+drm: reduce minimum build requirements
+
+This patch adds the respective configure options to make it possible to disable
+libdrm_intel, libdrm_radeon, libdrm_nouveau independently from each other.
+
+NOTE:
+
+The patch is based on work of Lucian Muresan <lucianm@users.sourceforge.net>
+that fixes bug report:
+
+ https://bugs.freedesktop.org/show_bug.cgi?id=29804
+
+This one is adjusted to version 0.8.3 which doesn't support libkms yet.
+
+---
+diff -Naur plymouth-0.8.3/configure.ac plymouth-0.8.3.new/configure.ac
+--- plymouth-0.8.3/configure.ac 2010-05-06 19:32:20.000000000 +0200
++++ plymouth-0.8.3.new/configure.ac 2011-02-03 18:45:11.749557708 +0100
+@@ -56,49 +56,150 @@
+ AC_SUBST(GTK_CFLAGS)
+ AC_SUBST(GTK_LIBS)
+
+-PKG_CHECK_MODULES(DRM, [libdrm libdrm_intel libdrm_radeon libdrm_nouveau])
++AC_ARG_ENABLE(libdrm_intel, AS_HELP_STRING([--enable-libdrm_intel],[enable building with libdrm_intel support]),enable_libdrm_intel=$enableval,enable_libdrm_intel=yes)
++AM_CONDITIONAL(ENABLE_LIBDRM_INTEL, [test "$enable_libdrm_intel" = yes])
+
+-OLD_CFLAGS="$CFLAGS"
+-CFLAGS="$CFLAGS $DRM_CFLAGS"
+-AC_MSG_CHECKING([if i915_drm.h, radeon_drm.h and nouveau_drm.h are in include path])
+-AC_COMPILE_IFELSE(AC_LANG_PROGRAM(
+-[[
+- #include <stdint.h>
+- #include <stdlib.h>
+- #include "i915_drm.h"
+- #include "radeon_drm.h"
+- #include "nouveau_drm.h"
+-]],[[]]),[found_drm_kernel_headers=yes],[found_drm_kernel_headers=no])
+-
+-if test "$found_drm_kernel_headers" = "yes"; then
+- AC_MSG_RESULT([yes])
+-else
+- AC_MSG_RESULT([no])
+- AC_MSG_CHECKING([if we can find them anyway])
++if test x$enable_libdrm_intel = xyes; then
++ PKG_CHECK_MODULES(DRM_INTEL, [libdrm libdrm_intel])
++ OLD_CFLAGS="$CFLAGS"
++ CFLAGS="$CFLAGS $DRM_INTEL_CFLAGS"
++ AC_MSG_CHECKING([if i915_drm.h is in include path])
++ AC_COMPILE_IFELSE(AC_LANG_PROGRAM(
++ [[
++ #include <stdint.h>
++ #include <stdlib.h>
++ #include "i915_drm.h"
++ ]],[[]]),[found_drm_intel_kernel_headers=yes],[found_drm_intel_kernel_headers=no])
++
++ if test "$found_drm_intel_kernel_headers" = "yes"; then
++ AC_MSG_RESULT([yes])
++ else
++ AC_MSG_RESULT([no])
++ AC_MSG_CHECKING([if we can find them anyway])
++
++ MORE_DRM_CFLAGS="-I`$PKG_CONFIG --variable includedir libdrm`/drm"
++ CFLAGS="$CFLAGS $MORE_DRM_CFLAGS"
++ AC_COMPILE_IFELSE(AC_LANG_PROGRAM(
++ [[
++ #include <stdint.h>
++ #include <stdlib.h>
++ #include "i915_drm.h"
++ ]],[[]]),[found_drm_intel_kernel_headers=yes],[found_drm_intel_kernel_headers=no])
++
++ if test "$found_drm_intel_kernel_headers" = "yes"; then
++ AC_MSG_RESULT([yes])
++ DRM_INTEL_CFLAGS="$DRM_INTEL_CFLAGS $MORE_DRM_CFLAGS"
++ else
++ AC_MSG_RESULT([no])
++ AC_MSG_ERROR([Could not find i915_drm.h])
++ fi
++ fi
++
++ AC_SUBST(DRM_INTEL_CFLAGS)
++ AC_SUBST(DRM_INTEL_LIBS)
++ AC_DEFINE(PLY_ENABLE_LIBDRM_INTEL, 1, [Enable support for libdrm_intel driver])
++fi
++
++AC_ARG_ENABLE(libdrm_radeon, AS_HELP_STRING([--enable-libdrm_radeon],[enable building with libdrm_radeon support]),enable_libdrm_radeon=$enableval,enable_libdrm_radeon=yes)
++AM_CONDITIONAL(ENABLE_LIBDRM_RADEON, [test "$enable_libdrm_radeon" = yes])
+
+- MORE_DRM_CFLAGS="-I`$PKG_CONFIG --variable includedir libdrm`/drm"
+- CFLAGS="$CFLAGS $MORE_DRM_CFLAGS"
++if test x$enable_libdrm_radeon = xyes; then
++ PKG_CHECK_MODULES(DRM_RADEON, [libdrm libdrm_radeon])
++ OLD_CFLAGS="$CFLAGS"
++ CFLAGS="$CFLAGS $DRM_RADEON_CFLAGS"
++ AC_MSG_CHECKING([if radeon_drm.h is in include path])
+ AC_COMPILE_IFELSE(AC_LANG_PROGRAM(
+ [[
+ #include <stdint.h>
+ #include <stdlib.h>
+ #include "i915_drm.h"
+ #include "radeon_drm.h"
++ ]],[[]]),[found_drm_radeon_kernel_headers=yes],[found_drm_radeon_kernel_headers=no])
++
++ if test "$found_drm_radeon_kernel_headers" = "yes"; then
++ AC_MSG_RESULT([yes])
++ else
++ AC_MSG_RESULT([no])
++ AC_MSG_CHECKING([if we can find them anyway])
++
++ MORE_DRM_CFLAGS="-I`$PKG_CONFIG --variable includedir libdrm`/drm"
++ CFLAGS="$CFLAGS $MORE_DRM_RADEON_CFLAGS"
++ AC_COMPILE_IFELSE(AC_LANG_PROGRAM(
++ [[
++ #include <stdint.h>
++ #include <stdlib.h>
++ #include "radeon_drm.h"
++ ]],[[]]),[found_drm_radeon_kernel_headers=yes],[found_drm_radeon_kernel_headers=no])
++
++ if test "$found_drm_radeon_kernel_headers" = "yes"; then
++ AC_MSG_RESULT([yes])
++ DRM_RADEON_CFLAGS="$DRM_RADEON_CFLAGS $MORE_DRM_CFLAGS"
++ else
++ AC_MSG_RESULT([no])
++ AC_MSG_ERROR([Could not find radeon_drm.h])
++ fi
++ fi
++
++ AC_SUBST(DRM_RADEON_CFLAGS)
++ AC_SUBST(DRM_RADEON_LIBS)
++ AC_DEFINE(PLY_ENABLE_LIBDRM_RADEON, 1, [Enable support for libdrm_radeon driver])
++fi
++
++AC_ARG_ENABLE(libdrm_nouveau, AS_HELP_STRING([--enable-libdrm_nouveau],[enable building with libdrm_nouveau support]),enable_libdrm_nouveau=$enableval,enable_libdrm_nouveau=yes)
++AM_CONDITIONAL(ENABLE_LIBDRM_NOUVEAU, [test "$enable_libdrm_nouveau" = yes])
++
++if test x$enable_libdrm_nouveau = xyes; then
++ PKG_CHECK_MODULES(DRM_NOUVEAU, [libdrm libdrm_nouveau])
++ OLD_CFLAGS="$CFLAGS"
++ CFLAGS="$CFLAGS $DRM_NOUVEAU_CFLAGS"
++ AC_MSG_CHECKING([if nouveau_drm.h is in include path])
++ AC_COMPILE_IFELSE(AC_LANG_PROGRAM(
++ [[
++ #include <stdint.h>
++ #include <stdlib.h>
+ #include "nouveau_drm.h"
+- ]],[[]]),[found_drm_kernel_headers=yes],[found_drm_kernel_headers=no])
++ ]],[[]]),[found_drm_nouveau_kernel_headers=yes],[found_drm_nouveau_kernel_headers=no])
+
+- if test "$found_drm_kernel_headers" = "yes"; then
++ if test "$found_drm_nouveau_kernel_headers" = "yes"; then
+ AC_MSG_RESULT([yes])
+ DRM_CFLAGS="$DRM_CFLAGS $MORE_DRM_CFLAGS"
+ else
+ AC_MSG_RESULT([no])
+- AC_MSG_ERROR([Could not find i915_drm.h, radeon_drm.h and/or nouveau_drm.h])
++ AC_MSG_CHECKING([if we can find them anyway])
++
++ MORE_DRM_CFLAGS="-I`$PKG_CONFIG --variable includedir libdrm`/drm"
++ CFLAGS="$CFLAGS $MORE_DRM_CFLAGS"
++ AC_COMPILE_IFELSE(AC_LANG_PROGRAM(
++ [[
++ #include <stdint.h>
++ #include <stdlib.h>
++ #include "nouveau_drm.h"
++ ]],[[]]),[found_drm_nouveau_kernel_headers=yes],[found_drm_nouveau_kernel_headers=no])
++
++ if test "$found_drm_nouveau_kernel_headers" = "yes"; then
++ AC_MSG_RESULT([yes])
++ DRM_NOUVEAU_CFLAGS="$DRM_NOUVEAU_CFLAGS $MORE_DRM_CFLAGS"
++ else
++ AC_MSG_RESULT([no])
++ AC_MSG_ERROR([Could not find nouveau_drm.h])
++ fi
+ fi
++
++ AC_SUBST(DRM_NOUVEAU_CFLAGS)
++ AC_SUBST(DRM_NOUVEAU_LIBS)
++ AC_DEFINE(PLY_ENABLE_LIBDRM_NOUVEAU, 1, [Enable support for libdrm_nouveau driver])
+ fi
+-CFLAGS="$OLD_CFLAGS"
++
++DRM_CFLAGS="$DRM_INTEL_CFLAGS $DRM_RADEON_CFLAGS $DRM_NOUVEAU_CFLAGS"
++DRM_LIBS="$DRM_INTEL_LIBS $DRM_RADEON_LIBS $DRM_NOUVEAU_LIBS"
+ AC_SUBST(DRM_CFLAGS)
+ AC_SUBST(DRM_LIBS)
+
++AM_CONDITIONAL(ENABLE_DRM_RENDERER,
++ [test x$enable_libdrm_intel = xyes \
++ -o x$enable_libdrm_radeon = xyes \
++ -o x$enable_libdrm_nouveau = xyes])
++
+ AC_ARG_ENABLE(tracing, AS_HELP_STRING([--enable-tracing],[enable verbose tracing code]),enable_tracing=$enableval,enable_tracing=yes)
+
+ if test x$enable_tracing = xyes; then
+diff -Naur plymouth-0.8.3/scripts/plymouth-populate-initrd.in plymouth-0.8.3.new/scripts/plymouth-populate-initrd.in
+--- plymouth-0.8.3/scripts/plymouth-populate-initrd.in 2010-05-06 19:32:20.000000000 +0200
++++ plymouth-0.8.3.new/scripts/plymouth-populate-initrd.in 2011-02-03 19:14:06.316946754 +0100
+@@ -97,7 +97,7 @@
+
+ inst ${PLYMOUTH_PLUGIN_PATH}/${PLYMOUTH_MODULE_NAME}.so $INITRDDIR
+
+-inst ${PLYMOUTH_PLUGIN_PATH}/renderers/drm.so $INITRDDIR
++[ -f "${PLYMOUTH_PLUGIN_PATH}/renderers/drm.so" ] && inst ${PLYMOUTH_PLUGIN_PATH}/renderers/drm.so $INITRDDIR
+ inst ${PLYMOUTH_PLUGIN_PATH}/renderers/frame-buffer.so $INITRDDIR
+
+ if [ -d ${PLYMOUTH_DATADIR}/plymouth/themes/${PLYMOUTH_THEME_NAME} ]; then
+diff -Naur plymouth-0.8.3/scripts/plymouth-populate-initrd.in.orig plymouth-0.8.3.new/scripts/plymouth-populate-initrd.in.orig
+--- plymouth-0.8.3/scripts/plymouth-populate-initrd.in.orig 1970-01-01 01:00:00.000000000 +0100
++++ plymouth-0.8.3.new/scripts/plymouth-populate-initrd.in.orig 2010-05-06 19:32:20.000000000 +0200
+@@ -0,0 +1,114 @@
++#!/bin/bash
++
++[ -z "$DESTDIR" ] || exit 0
++
++[ -z "$PLYMOUTH_LIBEXECDIR" ] && PLYMOUTH_LIBEXECDIR="@PLYMOUTH_LIBEXECDIR@"
++[ -z "$PLYMOUTH_DATADIR" ] && PLYMOUTH_DATADIR="@PLYMOUTH_DATADIR@"
++[ -z "$PLYMOUTH_PLUGIN_PATH" ] && PLYMOUTH_PLUGIN_PATH="$(plymouth --get-splash-plugin-path)"
++[ -z "$PLYMOUTH_LOGO_FILE" ] && PLYMOUTH_LOGO_FILE="@logofile@"
++[ -z "$PLYMOUTH_THEME_NAME" ] && PLYMOUTH_THEME_NAME=$(plymouth-set-default-theme)
++[ -z "$PLYMOUTH_CONFDIR" ] && PLYMOUTH_CONFDIR="@PLYMOUTH_CONF_DIR@"
++[ -z "$PLYMOUTH_POLICYDIR" ] && PLYMOUTH_POLICYDIR="@PLYMOUTH_POLICY_DIR@"
++
++if [ -z "$PLYMOUTH_POPULATE_SOURCE_FUNCTIONS" ]; then
++
++ if [ -f "${PLYMOUTH_LIBEXECDIR}/initrd-functions" ]; then
++ PLYMOUTH_POPULATE_SOURCE_FUNCTIONS="${PLYMOUTH_LIBEXECDIR}/initrd-functions"
++ fi
++
++ if [ -f "${PLYMOUTH_DATADIR}/dracut/dracut-functions" ]; then
++ PLYMOUTH_POPULATE_SOURCE_FUNCTIONS="${PLYMOUTH_DATADIR}/dracut/dracut-functions"
++ fi
++fi
++
++if [ -n "$PLYMOUTH_POPULATE_SOURCE_FUNCTIONS" ]; then
++ source $PLYMOUTH_POPULATE_SOURCE_FUNCTIONS
++fi
++
++if [ " $(type -t inst) " != " function " ]; then
++ echo "Need 'inst' function, try setting PLYMOUTH_POPULATE_SOURCE_FUNCTIONS to a file that defines it" 1>&2
++ exit 1
++fi
++
++if [ " $(type -t set_verbose) " != " function " ]; then
++ function set_verbose { true; }
++fi
++
++function usage() {
++ local output="/dev/stdout"
++ local rc=0
++ if [ "$1" == "error" ]; then
++ output="/dev/stderr"
++ rc=1
++ fi
++
++ echo "usage: plymouth [ --verbose | -v ] { --targetdir | -t } <initrd_directory>" > $output
++ exit $rc
++}
++
++verbose=false
++INITRDDIR=""
++while [ $# -gt 0 ]; do
++ case $1 in
++ --verbose|-v)
++ verbose=true
++ ;;
++ --targetdir|-t)
++ shift
++ INITRDDIR="$1"
++ ;;
++ --help|-h)
++ usage normal
++ ;;
++ *)
++ usage error
++ break
++ ;;
++ esac
++ shift
++done
++set_verbose $verbose || :
++
++[ -z "$INITRDDIR" ] && usage error
++
++mkdir -p ${INITRDDIR}${PLYMOUTH_DATADIR}/plymouth/themes
++inst /sbin/plymouthd $INITRDDIR /bin/plymouthd
++inst /bin/plymouth $INITRDDIR
++inst ${PLYMOUTH_DATADIR}/plymouth/themes/text/text.plymouth $INITRDDIR
++inst ${PLYMOUTH_PLUGIN_PATH}/text.so $INITRDDIR
++inst ${PLYMOUTH_DATADIR}/plymouth/themes/details/details.plymouth $INITRDDIR
++inst ${PLYMOUTH_PLUGIN_PATH}/details.so $INITRDDIR
++inst ${PLYMOUTH_LOGO_FILE} $INITRDDIR
++inst @RELEASE_FILE@ $INITRDDIR
++inst ${PLYMOUTH_POLICYDIR}/plymouthd.defaults $INITRDDIR
++inst ${PLYMOUTH_CONFDIR}/plymouthd.conf $INITRDDIR
++
++if [ -z "$PLYMOUTH_THEME_NAME" ]; then
++ echo "No default plymouth plugin is set" > /dev/stderr
++ exit 1
++fi
++
++PLYMOUTH_MODULE_NAME=$(grep "ModuleName *= *" ${PLYMOUTH_DATADIR}/plymouth/themes/${PLYMOUTH_THEME_NAME}/${PLYMOUTH_THEME_NAME}.plymouth | sed 's/ModuleName *= *//')
++
++if [ ! -f ${PLYMOUTH_PLUGIN_PATH}/${PLYMOUTH_MODULE_NAME}.so ]; then
++ echo "The default plymouth plugin (${PLYMOUTH_MODULE_NAME}) doesn't exist" > /dev/stderr
++ exit 1
++fi
++
++inst ${PLYMOUTH_PLUGIN_PATH}/${PLYMOUTH_MODULE_NAME}.so $INITRDDIR
++
++inst ${PLYMOUTH_PLUGIN_PATH}/renderers/drm.so $INITRDDIR
++inst ${PLYMOUTH_PLUGIN_PATH}/renderers/frame-buffer.so $INITRDDIR
++
++if [ -d ${PLYMOUTH_DATADIR}/plymouth/themes/${PLYMOUTH_THEME_NAME} ]; then
++ for x in ${PLYMOUTH_DATADIR}/plymouth/themes/${PLYMOUTH_THEME_NAME}/* ; do
++ [ ! -f "$x" ] && break
++ inst $x $INITRDDIR
++ done
++fi
++
++if [ -L ${PLYMOUTH_DATADIR}/plymouth/themes/default.plymouth ]; then
++ cp -a ${PLYMOUTH_DATADIR}/plymouth/themes/default.plymouth $INITRDDIR${PLYMOUTH_DATADIR}/plymouth/themes
++fi
++
++# vim:ts=8:sw=4:sts=4:et
+diff -Naur plymouth-0.8.3/src/plugins/renderers/drm/Makefile.am plymouth-0.8.3.new/src/plugins/renderers/drm/Makefile.am
+--- plymouth-0.8.3/src/plugins/renderers/drm/Makefile.am 2010-05-06 19:32:20.000000000 +0200
++++ plymouth-0.8.3.new/src/plugins/renderers/drm/Makefile.am 2011-02-03 19:07:04.811686193 +0100
+@@ -1,3 +1,4 @@
++if ENABLE_DRM_RENDERER
+ INCLUDES = -I$(top_srcdir) \
+ -I$(srcdir)/../../../libply \
+ -I$(srcdir)/../../../libply-splash-core \
+@@ -16,12 +17,22 @@
+ ../../../libply/libply.la \
+ ../../../libply-splash-core/libply-splash-core.la
+ drm_la_SOURCES = $(srcdir)/plugin.c \
+- $(srcdir)/ply-renderer-driver.h \
+- $(srcdir)/ply-renderer-i915-driver.h \
+- $(srcdir)/ply-renderer-i915-driver.c \
+- $(srcdir)/ply-renderer-radeon-driver.h \
+- $(srcdir)/ply-renderer-radeon-driver.c \
+- $(srcdir)/ply-renderer-nouveau-driver.h \
+- $(srcdir)/ply-renderer-nouveau-driver.c
++ $(srcdir)/ply-renderer-driver.h
++if ENABLE_LIBDRM_INTEL
++drm_la_SOURCES += $(srcdir)/ply-renderer-i915-driver.h \
++ $(srcdir)/ply-renderer-i915-driver.c
++endif
++
++if ENABLE_LIBDRM_RADEON
++drm_la_SOURCES += $(srcdir)/ply-renderer-radeon-driver.h \
++ $(srcdir)/ply-renderer-radeon-driver.c
++endif
++
++if ENABLE_LIBDRM_NOUVEAU
++drm_la_SOURCES += $(srcdir)/ply-renderer-nouveau-driver.h \
++ $(srcdir)/ply-renderer-nouveau-driver.c
++endif
++
++endif
+
+ MAINTAINERCLEANFILES = Makefile.in
+diff -Naur plymouth-0.8.3/src/plugins/renderers/drm/plugin.c plymouth-0.8.3.new/src/plugins/renderers/drm/plugin.c
+--- plymouth-0.8.3/src/plugins/renderers/drm/plugin.c 2010-05-06 19:32:20.000000000 +0200
++++ plymouth-0.8.3.new/src/plugins/renderers/drm/plugin.c 2011-02-03 19:13:35.083078444 +0100
+@@ -57,9 +57,15 @@
+ #include "ply-renderer.h"
+ #include "ply-renderer-plugin.h"
+ #include "ply-renderer-driver.h"
++#ifdef PLY_ENABLE_LIBDRM_INTEL
+ #include "ply-renderer-i915-driver.h"
++#endif
++#ifdef PLY_ENABLE_LIBDRM_RADEON
+ #include "ply-renderer-radeon-driver.h"
++#endif
++#ifdef PLY_ENABLE_LIBDRM_NOUVEAU
+ #include "ply-renderer-nouveau-driver.h"
++#endif
+
+ #define BYTES_PER_PIXEL (4)
+
+@@ -443,22 +449,29 @@
+ free (driver_name);
+ return false;
+ }
+-
+- if (strcmp (driver_name, "i915") == 0)
++ backend->driver_interface = NULL;
++#ifdef PLY_ENABLE_LIBDRM_INTEL
++ if (backend->driver_interface == NULL && strcmp (driver_name, "i915") == 0)
+ {
+ backend->driver_interface = ply_renderer_i915_driver_get_interface ();
+ backend->driver_supports_mapping_console = true;
+ }
+- else if (strcmp (driver_name, "radeon") == 0)
++#endif
++#ifdef PLY_ENABLE_LIBDRM_RADEON
++ if (backend->driver_interface == NULL && strcmp (driver_name, "radeon") == 0)
+ {
+ backend->driver_interface = ply_renderer_radeon_driver_get_interface ();
+ backend->driver_supports_mapping_console = false;
+ }
+- else if (strcmp (driver_name, "nouveau") == 0)
++#endif
++#ifdef PLY_ENABLE_LIBDRM_NOUVEAU
++ if (backend->driver_interface == NULL && strcmp (driver_name, "nouveau") == 0)
+ {
+ backend->driver_interface = ply_renderer_nouveau_driver_get_interface ();
+ backend->driver_supports_mapping_console = false;
+ }
++#endif
++
+ free (driver_name);
+
+ if (backend->driver_interface == NULL)
+diff -Naur plymouth-0.8.3/src/plugins/renderers/Makefile.am plymouth-0.8.3.new/src/plugins/renderers/Makefile.am
+--- plymouth-0.8.3/src/plugins/renderers/Makefile.am 2010-05-06 19:32:20.000000000 +0200
++++ plymouth-0.8.3.new/src/plugins/renderers/Makefile.am 2011-02-03 19:14:06.316946754 +0100
+@@ -1,2 +1,3 @@
+-SUBDIRS = frame-buffer drm x11
++SUBDIRS = frame-buffer x11 drm
++
+ MAINTAINERCLEANFILES = Makefile.in
diff --git a/sys-boot/plymouth/files/0.8.3-gentoo-fb-path.patch b/sys-boot/plymouth/files/0.8.3-gentoo-fb-path.patch
new file mode 100644
index 000000000000..cb0f0d5af3bb
--- /dev/null
+++ b/sys-boot/plymouth/files/0.8.3-gentoo-fb-path.patch
@@ -0,0 +1,25 @@
+From 5fd3ed5a1f661eb1d99e1d4df5edad8410cc54e3 Mon Sep 17 00:00:00 2001
+From: root <root@christoph.egore.lan>
+Date: Sun, 25 Oct 2009 03:55:54 +0100
+Subject: [PATCH] Gentoo does not have /dev/fb, but /dev/fb0 (at least on i915 KMS)
+
+---
+ src/plugins/renderers/frame-buffer/plugin.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/src/libply/ply-frame-buffer.c b/src/libply/ply-frame-buffer.c
+index a1e4fcd..19aab4b 100644
+--- a/src/plugins/renderers/frame-buffer/plugin.c
++++ b/src/plugins/renderers/frame-buffer/plugin.c
+@@ -46,7 +46,7 @@
+ #include <linux/fb.h>
+
+ #ifndef PLY_FRAME_BUFFER_DEFAULT_FB_DEVICE_NAME
+-#define PLY_FRAME_BUFFER_DEFAULT_FB_DEVICE_NAME "/dev/fb"
++#define PLY_FRAME_BUFFER_DEFAULT_FB_DEVICE_NAME "/dev/fb0"
+ #endif
+
+ struct _ply_frame_buffer
+--
+1.6.5
+
diff --git a/sys-boot/plymouth/files/0.8.3-image-replace-deprecated-libpng-function.patch b/sys-boot/plymouth/files/0.8.3-image-replace-deprecated-libpng-function.patch
new file mode 100644
index 000000000000..42985c5b04ca
--- /dev/null
+++ b/sys-boot/plymouth/files/0.8.3-image-replace-deprecated-libpng-function.patch
@@ -0,0 +1,24 @@
+From 07329b72687ccc7a9015de4a48fae297d6d5ff96 Mon Sep 17 00:00:00 2001
+From: Brett Witherspoon <spoonb@cdspooner.com>
+Date: Tue, 12 Oct 2010 03:23:47 +0000
+Subject: image: replace deprecated libpng function
+
+The png_set_gray_1_2_4_to_8 function is deprecated and has been removed
+from libpng14. Now png_set_expand_gray_1_2_4_to_8 is used instead which
+is compatible with libpng-1.2.9 and greater.
+---
+diff --git a/src/libply-splash-graphics/ply-image.c b/src/libply-splash-graphics/ply-image.c
+index 9369242..4b16783 100644
+--- a/src/libply-splash-graphics/ply-image.c
++++ b/src/libply-splash-graphics/ply-image.c
+@@ -151,7 +151,7 @@ ply_image_load (ply_image_t *image)
+ png_set_palette_to_rgb (png);
+
+ if ((color_type == PNG_COLOR_TYPE_GRAY) && (bits_per_pixel < 8))
+- png_set_gray_1_2_4_to_8 (png);
++ png_set_expand_gray_1_2_4_to_8 (png);
+
+ if (png_get_valid (png, info, PNG_INFO_tRNS))
+ png_set_tRNS_to_alpha (png);
+--
+cgit v0.8.3-6-g21f6
diff --git a/sys-boot/plymouth/files/gentoo-logo.png b/sys-boot/plymouth/files/gentoo-logo.png
new file mode 100644
index 000000000000..cbfaf78637de
--- /dev/null
+++ b/sys-boot/plymouth/files/gentoo-logo.png
Binary files differ
diff --git a/sys-boot/plymouth/files/plymouth.initd b/sys-boot/plymouth/files/plymouth.initd
new file mode 100644
index 000000000000..5c986e871bd6
--- /dev/null
+++ b/sys-boot/plymouth/files/plymouth.initd
@@ -0,0 +1,23 @@
+#!/sbin/runscript
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/plymouth/files/plymouth.initd,v 1.1 2011/02/21 21:08:17 aidecoe Exp $
+
+depend() {
+ before xdm
+}
+
+start() {
+ ebegin "Hiding plymouth splash"
+ if pgrep plymouthd >/dev/null; then
+ /bin/plymouth --quit
+ chvt 7
+ fi
+ eend $?
+}
+
+stop() {
+ ebegin "Showing plymouth splash"
+ /sbin/plymouthd && /bin/plymouth --show-splash
+ eend $?
+}
diff --git a/sys-boot/plymouth/metadata.xml b/sys-boot/plymouth/metadata.xml
new file mode 100644
index 000000000000..fd47d75317f4
--- /dev/null
+++ b/sys-boot/plymouth/metadata.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>no-herd</herd>
+ <maintainer>
+ <email>aidecoe@gentoo.org</email>
+ <name>Amadeusz Żołnowski</name>
+ </maintainer>
+ <use>
+ <flag name="gdm">Enable smooth transition to GDM</flag>
+ <flag name="pango">Adds support for printing text on splash screen and
+ text prompts, e.g. for password</flag>
+ </use>
+ <longdescription lang="en">
+ Plymouth is an application that runs very early in the boot process
+ (even before the root filesystem is mounted!) that provides a graphical
+ boot animation while the boot process happens in the background.
+
+ It is designed to work on systems with DRM modesetting drivers. Ideally,
+ the goal is to get rid of all flicker during startup. For systems that
+ don't have DRM mode settings drivers, plymouth falls back to text mode.
+ </longdescription>
+</pkgmetadata>
diff --git a/sys-boot/plymouth/plymouth-0.8.3.ebuild b/sys-boot/plymouth/plymouth-0.8.3.ebuild
new file mode 100644
index 000000000000..d3bc0b02164f
--- /dev/null
+++ b/sys-boot/plymouth/plymouth-0.8.3.ebuild
@@ -0,0 +1,77 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-boot/plymouth/plymouth-0.8.3.ebuild,v 1.1 2011/02/21 21:08:17 aidecoe Exp $
+
+EAPI="3"
+
+inherit autotools-utils
+
+DESCRIPTION="Graphical boot animation (splash) and logger"
+HOMEPAGE="http://cgit.freedesktop.org/plymouth/"
+SRC_URI="http://cgit.freedesktop.org/${PN}/snapshot/${P}.tar.bz2"
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64"
+
+IUSE_VIDEO_CARDS="video_cards_intel video_cards_nouveau video_cards_radeon"
+IUSE="${IUSE_VIDEO_CARDS} +branding gdm +pango"
+
+DEPEND=">=media-libs/libpng-1.2.16
+ >=x11-libs/gtk+-2.12
+ pango? ( >=x11-libs/pango-1.21 )
+ video_cards_intel? ( x11-libs/libdrm[video_cards_intel] )
+ video_cards_nouveau? ( x11-libs/libdrm[video_cards_nouveau] )
+ video_cards_radeon? ( x11-libs/libdrm[video_cards_radeon] )
+ "
+RDEPEND="${DEPEND}
+ >=sys-kernel/dracut-007
+ "
+
+PATCHES=(
+ "${FILESDIR}"/${PV}-drm-reduce-minimum-build-requirements.patch
+ "${FILESDIR}"/${PV}-image-replace-deprecated-libpng-function.patch
+ "${FILESDIR}"/${PV}-gentoo-fb-path.patch
+ )
+
+src_prepare() {
+ autotools-utils_src_prepare
+ eautoreconf || die "eautoreconf failed"
+}
+
+src_configure() {
+ econf \
+ --enable-static=no \
+ $(use_enable pango) \
+ $(use_enable gdm gdm-transition) \
+ $(use_enable video_cards_intel libdrm_intel) \
+ $(use_enable video_cards_nouveau libdrm_nouveau) \
+ $(use_enable video_cards_radeon libdrm_radeon) \
+ || die "econf failed"
+}
+
+src_install() {
+ autotools-utils_src_install
+
+ mv "${D}/$(get_libdir)"/libply{,-splash-core}.la \
+ "${D}/usr/${get_libdir}"/ || die 'mv *.la files failed'
+
+ newinitd "${FILESDIR}"/plymouth.initd plymouth || die 'initd failed'
+
+ if use branding ; then
+ insinto /usr/share/plymouth
+ newins "${FILESDIR}"/gentoo-logo.png bizcom.png \
+ || die 'branding failed'
+ fi
+}
+
+pkg_postinst() {
+ elog "Plymouth initramfs utilities scripts are located in"
+ elog "/usr/libexec/plymouth"
+ elog ""
+ elog "Follow instructions on <http://en.gentoo-wiki.com/wiki/Plymouth> to"
+ elog "setup Plymouth."
+ echo
+ ewarn "You need to disable 'interactive' feature either in /etc/conf.d/rc"
+ ewarn "(baselayout-1) or /etc/rc.conf (OpenRC) to make Plymouth work"
+ ewarn "properly with init system."
+}