summaryrefslogtreecommitdiff
blob: 559c829e1a5a3c087607112b67d0e9f0d87b7c11 (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
120
121
122
123
# Copyright 1999-2003 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/x11-misc/rss-glx/rss-glx-0.7.5.ebuild,v 1.4 2003/09/04 08:06:05 msterret Exp $

inherit flag-o-matic
filter-flags -fPIC
use kde && inherit kde

MY_P=${PN/-/_}-${PV}
S=${WORKDIR}/${MY_P}
DESCRIPTION="Really Slick Screensavers using OpenGL for XScreenSaver"
HOMEPAGE="http://rss-glx.sourceforge.net/"
SRC_URI="mirror://sourceforge/rss-glx/${MY_P}.tar.bz2"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~x86 ~ppc"
IUSE="kde sse 3dnow"

DEPEND="virtual/x11
	virtual/opengl
	>=sys-apps/sed-4
	media-gfx/imagemagick
	kde? ( kde-base/kdeartwork ) : ( x11-misc/xscreensaver )"

src_unpack() {
	unpack ${A}
	cd ${S}
	epatch ${FILESDIR}/${P}-kdedesktop.patch
}

src_compile() {
	local myconf

	myconf="${myconf} --bindir=/usr/lib/xscreensaver" \
	myconf="${myconf} --with-configdir=/usr/share/control-center/screensavers/" \

	if [ -n "`use kde`" ]; then
		find . -name '*.desktop' -exec \
			sed -i \
				-e 's:Exec=kxsrun \(.*\):Exec=kxsrun /usr/lib/xscreensaver/\1:g' \
				-e 's:Exec=kxsconfig \(.*\):Exec=kxsconfig /usr/lib/xscreensaver/\1:g' \
				'{}' \
			\; \
			|| die "couldnt sed desktop files"
		[ -n "${KDEDIR}" ] \
			&& myconf="${myconf} --with-kdessconfigdir=${KDEDIR}/share/applnk/System/ScreenSavers"
	fi

	econf \
		`use_enable sse` \
		`use_enable 3dnow` \
		${myconf} || die
	emake || die
}

src_install() {
	make DESTDIR=${D} install || die "install failed"
	dodoc COPYING INSTALL README README.xscreensaver

	# symlink to satisfy kde's kxs*
	use kde && dosym /usr/share/control-center/screensavers /usr/lib/xscreensaver/config
}

pkg_postinst() {
	if [ -f ${ROOT}/usr/X11R6/lib/X11/app-defaults/XScreenSaver ]; then
		[ -n "`grep 'euphoria --root' /usr/X11R6/lib/X11/app-defaults/XScreenSaver`" ] && return 0
		einfo "Adding Really Slick Screensavers to XScreenSaver"

		sed -i '/*programs:/a\
    GL:       \"Cyclone\"  cyclone --root     \\n\\\
    GL:      \"Euphoria\"  euphoria --root    \\n\\\
    GL:    \"Fieldlines\"  fieldlines --root  \\n\\\
    GL:        \"Flocks\"  flocks --root      \\n\\\
    GL:          \"Flux\"  flux --root        \\n\\\
    GL:        \"Helios\"  helios --root      \\n\\\
    GL:       \"Lattice\"  lattice --root     \\n\\\
    GL:        \"Plasma\"  plasma --root      \\n\\\
    GL:     \"Skyrocket\"  skyrocket --root   \\n\\\
    GL:    \"Solarwinds\"  solarwinds --root  \\n\\\
    GL:     \"Colorfire\"  colorfire --root   \\n\\\
    GL:   \"Hufos Smoke\"  hufo_smoke --root  \\n\\\
    GL:  \"Hufos Tunnel\"  hufo_tunnel --root \\n\\\
    GL:    \"Sundancer2\"  sundancer2 --root  \\n\\\
    GL:          \"BioF\"  biof --root        \\n\\\
    GL:    \"MatrixView\"  matrixview --root  \\n\\\
    GL:   \"Spirographx\"  spirographx --root \\n\\\
    GL:   \"BusySpheres\"  busyspheres --root \\n\\' \
	${ROOT}/usr/X11R6/lib/X11/app-defaults/XScreenSaver

	else
		einfo "Unable to add these to XScreenSaver configuration"
		einfo "Read /usr/share/doc/${PF}/README.xscreensaver.gz for"
		einfo "entries to add to your ~/.xscreensaver file to enable these hacks"
	fi
}

pkg_postrm() {
	has_version rss-glx && return 0
	if [ -f ${ROOT}/usr/X11R6/lib/X11/app-defaults/XScreenSaver ]; then
		einfo "Removing Really Slick Screensavers from XScreenSaver configuration."
		sed \
			-e '/\"Cyclone\"  cyclone/d' \
			-e '/\"Euphoria\"  euphoria/d' \
			-e '/\"Fieldlines\"  fieldlines/d' \
			-e '/\"Flocks\"  flocks/d' \
			-e '/\"Flux\"  flux/d' \
			-e '/\"Helios\"  helios/d' \
			-e '/\"Lattice\"  lattice/d' \
			-e '/\"Plasma\"  plasma/d' \
			-e '/\"Skyrocket\"  skyrocket/d' \
			-e '/\"Solarwinds\"  solarwinds/d' \
			-e '/\"Colorfire\"  colorfire/d' \
			-e '/\"Hufos Smoke\"  hufo_smoke/d' \
			-e '/\"Hufos Tunnel\"  hufo_tunnel/d' \
			-e '/\"Sundancer2\"  sundancer2/d' \
			-e '/\"BioF\"  biof/d' \
			-e '/\"MatrixView\"  matrixview/d' \
			-e '/\"Spirographx\"  spirographx/d' \
			-e '/\"BusySpheres\"  busyspheres/d' -i \
			${ROOT}/usr/X11R6/lib/X11/app-defaults/XScreenSaver
	fi
}