diff options
author | Amadeusz Piotr Żołnowski <aidecoe@gentoo.org> | 2011-02-21 21:08:17 +0000 |
---|---|---|
committer | Amadeusz Piotr Żołnowski <aidecoe@gentoo.org> | 2011-02-21 21:08:17 +0000 |
commit | 79d1d75f6de6e419710d574a4247475a7da2baaf (patch) | |
tree | 3f6b0b7161911f4d736f94ad8c0437983338b0d2 /sys-boot | |
parent | Bump to 1.6.6, fix slot-deps, do only one inherit: avoids DESCRIPTION and oth... (diff) | |
download | gentoo-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/ChangeLog | 38 | ||||
-rw-r--r-- | sys-boot/plymouth/files/0.8.3-drm-reduce-minimum-build-requirements.patch | 422 | ||||
-rw-r--r-- | sys-boot/plymouth/files/0.8.3-gentoo-fb-path.patch | 25 | ||||
-rw-r--r-- | sys-boot/plymouth/files/0.8.3-image-replace-deprecated-libpng-function.patch | 24 | ||||
-rw-r--r-- | sys-boot/plymouth/files/gentoo-logo.png | bin | 0 -> 14501 bytes | |||
-rw-r--r-- | sys-boot/plymouth/files/plymouth.initd | 23 | ||||
-rw-r--r-- | sys-boot/plymouth/metadata.xml | 23 | ||||
-rw-r--r-- | sys-boot/plymouth/plymouth-0.8.3.ebuild | 77 |
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 Binary files differnew file mode 100644 index 000000000000..cbfaf78637de --- /dev/null +++ b/sys-boot/plymouth/files/gentoo-logo.png 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." +} |