summaryrefslogtreecommitdiff
blob: 45919bd0e70d7b192d119182d690b6a8776332c5 (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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
# Copyright 1999-2009 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/games-simulation/secondlife/secondlife-1.23.2_rc2.ebuild,v 1.1 2009/05/26 22:49:36 lavajoe Exp $

inherit eutils multilib games versionator

SECONDLIFE_REVISION=120719
SECONDLIFE_RELEASE_DIR=2009/05
SECONDLIFE_MAJOR_VER=$(get_version_component_range 1-2)
SECONDLIFE_MINOR_VER=$(get_version_component_range 3)
SECONDLIFE_MINOR_VER=${SECONDLIFE_MINOR_VER/rc/}
MY_P="slviewer-src-viewer-${SECONDLIFE_MAJOR_VER}.${SECONDLIFE_MINOR_VER}-r${SECONDLIFE_REVISION}"

DESCRIPTION="The Second Life (an online, 3D virtual world) viewer"
HOMEPAGE="http://secondlife.com/"
SRC_URI="http://secondlife.com/developers/opensource/downloads/${SECONDLIFE_RELEASE_DIR}/${MY_P}.tar.gz http://secondlife.com/developers/opensource/downloads/${SECONDLIFE_RELEASE_DIR}/slviewer-artwork-viewer-${SECONDLIFE_MAJOR_VER}.${SECONDLIFE_MINOR_VER}-r${SECONDLIFE_REVISION}.zip http://secondlife.com/developers/opensource/downloads/${SECONDLIFE_RELEASE_DIR}/slviewer-linux-libs-viewer-${SECONDLIFE_MAJOR_VER}.${SECONDLIFE_MINOR_VER}-r${SECONDLIFE_REVISION}.tar.gz mirror://sourceforge/xmlrpc-epi/xmlrpc-epi-0.54.tar.gz http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/glh_linear-linux-20080613.tar.bz2"

LICENSE="GPL-2-with-Linden-Lab-FLOSS-exception Epinions"
SLOT="0"
KEYWORDS="~amd64"
IUSE=""

DEPEND="sys-libs/glibc
	sys-apps/dbus
	x11-libs/libX11
	x11-libs/libXau
	x11-libs/libXdmcp
	x11-libs/libXext
	>=x11-libs/gtk+-2.0
	x11-libs/libXinerama
	dev-libs/libgcrypt
	dev-libs/libgpg-error
	dev-libs/openssl
	dev-libs/apr
	dev-libs/apr-util
	dev-libs/boost
	dev-libs/elfio
	dev-libs/expat
	dev-util/cmake
	media-libs/freetype
	media-libs/libogg
	media-libs/libsdl
	media-libs/libvorbis
	media-libs/gstreamer
	media-plugins/gst-plugins-meta
	media-libs/fmod
	media-libs/jpeg
	media-libs/openjpeg
	net-libs/gnutls
	net-misc/curl
	net-dns/c-ares
	sys-libs/zlib
	virtual/libstdc++
	virtual/glu
	virtual/opengl
	media-libs/openal
	media-libs/freealut"
RDEPEND="${DEPEND}"

S="${WORKDIR}/linden"

use amd64 && ARCH_LIBS_DIR="x86_64-linux"
use x86 && ARCH_LIBS_DIR="i686-linux"

src_unpack() {
	unpack ${A}
	cd "${S}"

	# Fix cmake include path (so it can find xmlrpc includes)
	epatch "${FILESDIR}/${PN}-fix-cmake-include-path.patch"

	# Disable NDOF (joystick) that will not compile
	epatch "${FILESDIR}/${PN}-disable-ndof.patch"

	# Fix uninitialized GdkColor
	epatch "${FILESDIR}/${P}-fix-uninitialized-gdkcolor.patch"

	# Fix memset used with constant zero length parameter error
	epatch "${FILESDIR}/${P}-fix-memset-error.patch"

	# Fix printf format type error
	epatch "${FILESDIR}/${P}-fix-printf-format-error.patch"

	# Move extra glh include file into place.
	# NOTE: This is hackish, since it had to be downloaded from the SL site
	#       separately as part of the batch used when *not* building the
	#       viewer standalone (this ebuild *does* build it standalone).
	mv ../indra/llwindow/glh indra/llwindow || die
	rm -r ../indra || die

	# Add local paths to the xmlrpc-epi cmake files.
	# NOTE: This lib is downloaded separately, since it is
	#       not available in Gentoo.
	sed -i -e"s:/usr/local/include:${S}/libraries/${ARCH_LIBS_DIR}/include /usr/local/include:" indra/cmake/FindXmlRpcEpi.cmake || die
	sed -i -e"s:/usr/lib:${S}/libraries/${ARCH_LIBS_DIR}/lib_release_client /usr/lib:" indra/cmake/FindXmlRpcEpi.cmake || die

	# Make 3rd party package area for xmlrpc-epi
	mkdir -p libraries/${ARCH_LIBS_DIR}/include || die
	mkdir libraries/${ARCH_LIBS_DIR}/lib_release_client || die
}

src_compile() {
	# First, build xmlrpc-epi
	cd "${WORKDIR}/xmlrpc-epi-"*

	econf
	emake || die

	# Copy relevant files from xmlrpc-epi to 3rd party package area
	rm src/.libs/libxmlrpc-epi.la || die
	cp src/libxmlrpc-epi.la src/.libs || die
	mkdir "${S}"/libraries/${ARCH_LIBS_DIR}/include/xmlrpc-epi || die
	cp -dR src/*.h "${S}"/libraries/${ARCH_LIBS_DIR}/include/xmlrpc-epi || die
	cp -dR src/.libs/libxmlrpc* "${S}"/libraries/${ARCH_LIBS_DIR}/lib_release_client || die

	# Now build the Second Life viewer
	cd "${S}/indra"

	./develop.py --standalone configure || die
	./develop.py --standalone build || die
}

src_install() {
	cd "${S}"/indra/viewer-*/newview/packaged || die

	dodoc README-*.txt licenses.txt || die
	rm README-*.txt licenses.txt || die

	dodir /usr/lib/${PN} || die
	cp -dR "${S}"/libraries/${ARCH_LIBS_DIR}/lib_release_client/libxml* "${D}"/usr/lib/${PN} || die
	#cp -dR bin secondlife *.sh "${D}"/usr/lib/${PN} || die
	#rm -r bin secondlife *.sh || die
	cp -dR * "${D}"/usr/lib/${PN} || die
	chmod o-x "${D}"/usr/lib/${PN}/bin/* "${D}"/usr/lib/${PN}/secondlife "${D}"/usr/lib/${PN}/*.sh || die
	chgrp games "${D}"/usr/lib/${PN}/bin/* "${D}"/usr/lib/${PN}/secondlife "${D}"/usr/lib/${PN}/*.sh || die

	games_make_wrapper secondlife "./secondlife --set VersionChannelName Gentoo" /usr/lib/${PN} /usr/lib/${PN}
	make_desktop_entry secondlife "Second Life" /usr/share/${PN}/secondlife_icon.png

	prepgamesdirs
}