summaryrefslogtreecommitdiff
blob: 73e060185554d3c5632604af17f4298e529bc840 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/media-gfx/splashutils/splashutils-0.9_rc1.ebuild,v 1.4 2005/01/16 13:57:27 spock Exp $

MISCSPLASH="miscsplashutils-0.1.2"
GENTOOSPLASH="splashutils-gentoo-0.1.3"
KLIBC_VERSION="0.179"

DESCRIPTION="Framebuffer splash utilities."
HOMEPAGE="http://dev.gentoo.org/~spock/"
SRC_URI="mirror://gentoo/${P/_/-}.tar.bz2
	 mirror://gentoo/${MISCSPLASH}.tar.bz2
	 mirror://gentoo/${GENTOOSPLASH}.tar.bz2
	 mirror://gentoo/fbsplash-theme-emergence-r2.tar.bz2
	 mirror://gentoo/fbsplash-theme-gentoo-r1.tar.bz2"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="x86 ~amd64 ~ppc"
IUSE="hardened"
RDEPEND=">=media-libs/freetype-2
	media-libs/libpng
	media-libs/jpeg
	>=sys-apps/baselayout-1.9.4-r5
	!media-gfx/bootsplash"
DEPEND="${RDEPEND}
	virtual/linux-sources"

S="${WORKDIR}/${P/_/-}"
SM="${WORKDIR}/${MISCSPLASH}"
SG="${WORKDIR}/${GENTOOSPLASH}"

pkg_setup() {
	if use hardened; then
		ewarn "Due to problems with klibc, it is currently impossible to compile splashutils"
		ewarn "with 'hardened' GCC flags. As a workaround, the package will be compiled with"
		ewarn "-fno-stack-protector. Hardened GCC features will not be used while building"
		ewarn "the fbsplash kernel helper."
	fi
}

src_unpack() {
	unpack ${A}
	ln -s /usr/src/linux ${S}/linux
	if [ ! -e /usr/src/linux/include/linux/console_splash.h ]; then
		eerror "Your kernel in /usr/src/linux has not been patched with a compatible version"
		eerror "of fbsplash. Please download the latest patch from http://dev.gentoo.org/~spock/"
		eerror "and patch your kernel."
		die "Fbsplash not found"
	fi

	if [ ! -e /usr/src/linux/include/asm ]; then

		t=$(readlink /usr/src/linux)
		t=${t#/usr/src/}

		if [ -z "${KBUILD_OUTPUT_PREFIX}" ] ||
		   [ ! -e "${KBUILD_OUTPUT_PREFIX}/${t/linux-}/include/asm" ]; then
			eerror "It appears that your kernel has not been configured. Please run at least"
			eerror "\`make prepare\` before merging splashutils."
			die "Kernel not configured"
		else
			t2=$(readlink ${KBUILD_OUTPUT_PREFIX}/${t/linux-}/include/asm)
			ln -s /usr/src/linux/include/${t2} ${T}/asm
			sed -e "s@#CHANGEME#@${T}/@" -i ${S}/libs/klibc-${KLIBC_VERSION}/klibc/makeerrlist.pl
		fi
	fi

	# this should make this version of splashutils compile with hardened systems
	if use hardened; then
		sed -e 's@K_CFLAGS =@K_CFLAGS = -fno-stack-protector@' -i ${S}/Makefile
		sed -e 's@CFLAGS  =@CFLAGS  = -fno-stack-protector@' -i ${S}/libs/klibc-${KLIBC_VERSION}/klibc/MCONFIG
	fi
}

src_compile() {

	local miscincs

	if [ -n "${KBUILD_OUTPUT_PREFIX}" ]; then
		t=$(readlink /usr/src/linux)
		t=${t#/usr/src/}
		miscincs="-I${T} -I${KBUILD_OUTPUT_PREFIX}/${t/linux-}/include"
	fi

	emake -j1 MISCINCS="${miscincs}"

	cd ${SM}
	emake
}

src_install() {
	cd ${SM}
	make DESTDIR=${D} install || die

	cd ${S}
	make DESTDIR=${D} install || die

	exeinto /sbin
	doexe ${SG}/splash

	exeinto /etc/init.d
	newexe ${SG}/init-splash splash

	insinto /sbin
	doins ${SG}/splash-functions.sh

	insinto /etc/conf.d
	newins ${SG}/splash.conf splash

	dodir /etc/splash/{emergence,gentoo}
	cp -pR ${WORKDIR}/{emergence,gentoo} ${D}/etc/splash
	ln -s emergence ${D}/etc/splash/default
	dodoc docs/* README AUTHORS

	if [ ! -e ${ROOT}/etc/splash/default ]; then
		dosym /etc/splash/emergence /etc/splash/default
	fi
}