Ticket #1533: mythtv-0.19-r2.ebuild

File mythtv-0.19-r2.ebuild, 7.9 KB (added by luud.heck@…, 20 years ago)

Gentoo ebuild for mythtv-0.19

Line 
1# Copyright 1999-2006 Gentoo Foundation
2# Distributed under the terms of the GNU General Public License v2
3# $Header: /var/cvsroot/gentoo-x86/media-tv/mythtv/mythtv-0.19_p9163-r1.ebuild,v 1.3 2006/03/16 18:09:13 herbs Exp $
4
5inherit flag-o-matic multilib eutils debug qt3
6
7PATCHREV=9163
8MY_PV="${PV%_*}"
9
10DESCRIPTION="Homebrew PVR project"
11HOMEPAGE="http://www.mythtv.org/"
12SRC_URI="http://www.mythtv.org/mc/${PN}-${MY_PV}.tar.bz2
13 http://dev.gentoo.org/~cardoe/files/${PN}-${MY_PV}-rev${PATCHREV}.patch.bz2"
14
15LICENSE="GPL-2"
16SLOT="0"
17KEYWORDS="~amd64 ~ppc ~x86"
18
19IUSE_VIDEO_CARDS="video_cards_i810 video_cards_nvidia video_cards_via"
20
21IUSE="alsa altivec arts backendonly debug dbox2 dvb dvd frontendonly ieee1394 jack joystick lcd
22lirc mmx oggvorbis opengl xvmc ${IUSE_VIDEO_CARDS}"
23
24RDEPEND=">=media-libs/freetype-2.0
25 >=media-sound/lame-3.93.1
26 || ( ( x11-libs/libX11
27 x11-libs/libXext
28 x11-libs/libXinerama
29 x11-libs/libXv
30 x11-libs/libXrandr
31 x11-libs/libXxf86vm
32 )
33 virtual/x11 )
34 xvmc? (
35 || ( x11-libs/libXvMC virtual/x11 )
36 video_cards_nvidia? ( media-video/nvidia-glx )
37 video_cards_via? ( || ( x11-drivers/xf86-video-via virtual/x11 ) )
38 video_cards_i810? ( || ( x11-drivers/xf86-video-i810 virtual/x11 ) )
39 )
40 $(qt_min_version 3.3)
41 dev-db/mysql
42 alsa? ( >=media-libs/alsa-lib-0.9 )
43 arts? ( kde-base/arts )
44 dvd? ( media-libs/libdvdnav
45 media-libs/libdts )
46 dvb? ( media-libs/libdvb )
47 jack? ( media-sound/jack-audio-connection-kit )
48 lcd? ( app-misc/lcdproc )
49 lirc? ( app-misc/lirc )
50 oggvorbis? ( media-libs/libvorbis )
51 opengl? ( virtual/opengl )
52 ieee1394? ( >=sys-libs/libraw1394-1.2.0
53 >=sys-libs/libavc1394-0.5.0
54 >=media-libs/libiec61883-1.0.0 )
55 || ( >=net-misc/wget-1.9.1 >=media-tv/xmltv-0.5.34 )
56 !<x11-base/xorg-x11-6.8"
57
58DEPEND="${RDEPEND}
59 || ( x11-apps/xinit virtual/x11 )"
60
61PDEPEND="=x11-themes/mythtv-themes-${MY_PV}*"
62
63S="${WORKDIR}/${PN}-${MY_PV}"
64
65MYTHTV_GROUPS="video,audio,plugdev,tty"
66
67pkg_setup() {
68
69 if ! built_with_use x11-libs/qt mysql ; then
70 eerror "Qt is missing MySQL support. Please add"
71 eerror "'mysql' to your USE flags, and re-emerge Qt."
72 die "Qt needs MySQL support"
73 fi
74
75 if ! built_with_use x11-libs/qt opengl ; then
76 eerror "Qt requires OpenGL support. Please add"
77 eerror "'opengl' to your USE flags, and re-emerge Qt."
78 die "Qt needs OpenGL support."
79 fi
80
81 if ! has_version x11-libs/libXv && ! built_with_use x11-base/xorg-x11 xv; then
82 eerror "xorg-x11 is missing XV support. Please add"
83 eerror "'xv' to your USE flags, and re-emerge xorg-x11."
84 die "xorg-x11 needs XV support"
85 fi
86
87 if use xvmc && use video_cards_nvidia; then
88 echo
89 ewarn "You enabled the 'xvmc' USE flag, you must have a GeForce 4 or"
90 ewarn "greater to use this. Otherwise, you'll have crashes with MythTV"
91 echo
92 fi
93
94 if built_with_use dev-db/mysql utf8; then
95 echo
96 ewarn "Your MySQL installation on this machine most likely won't work"
97 ewarn "because you compiled it with USE=utf8. Either use another mysql"
98 ewarn "server (on another machine) or recompile MySQL without utf8."
99 echo
100 fi
101
102 if has x11-libs/libX11 virtual/x11; then
103 echo
104 eerror "Congratulations. You've unmasked modular X but somehow managed"
105 eerror "to royally screw up its installation. This means you've broke"
106 eerror "dependancy checking for ALL your X based apps. You don't have"
107 eerror "to believe me but don't insist the dependancies for MythTV are"
108 eerror "broken, because it is you that is broken."
109 die "You are broken"
110 fi
111
112 einfo
113 einfo "This ebuild now uses a heavily stripped down version of your CFLAGS"
114 einfo "Don't complain because your -momfg-fast-speed CFLAG is being stripped"
115 einfo "Only additional CFLAG issues that will be addressed are for binary"
116 einfo "package building."
117 einfo
118}
119
120src_unpack() {
121 unpack ${A}
122 cd ${S}
123
124 #Fixes of the bugs found in the 0.19 release
125
126 # Disable these patches to see if those cause trouble
127 #epatch "${WORKDIR}"/${PN}-${MY_PV}-rev${PATCHREV}.patch
128
129 # Support installing in libdir != lib
130 epatch "${FILESDIR}/mythtv-0.19-libdir.patch"
131}
132
133src_compile() {
134 local myconf="--prefix=/usr
135 --mandir=/usr/share/man
136 --libdir-name=$(get_libdir)"
137 use alsa || myconf="${myconf} --disable-audio-alsa"
138 use arts || myconf="${myconf} --disable-audio-arts"
139 use jack || myconf="${myconf} --disable-audio-jack"
140 use altivec || myconf="${myconf} --disable-altivec"
141 use xvmc && myconf="${myconf} --enable-xvmc"
142 myconf="${myconf}
143 $(use_enable lirc)
144 $(use_enable joystick joystick-menu)
145 $(use_enable dbox2)
146 $(use_enable dvb)
147 $(use_enable dvb dvb-eit)
148 --dvb-path=/usr/include
149 $(use_enable dvd)
150 $(use_enable opengl opengl-vsync)
151 $(use_enable ieee1394 firewire)
152 --enable-xrandr
153 --enable-xv
154 --disable-directfb
155 --enable-x11
156 --enable-proc-opt"
157
158 if use mmx || use amd64; then
159 myconf="${myconf} --enable-mmx"
160 else
161 myconf="${myconf} --disable-mmx"
162 fi
163
164 if use debug; then
165 myconf="${myconf} --compile-type=debug"
166 else
167 myconf="${myconf} --compile-type=release"
168 fi
169
170 ## CFLAG cleaning so it compiles
171 MARCH=$(get-flag "march")
172 MTUNE=$(get-flag "mtune")
173 MCPU=$(get-flag "mcpu")
174 strip-flags
175 filter-flags "-march=*" "-mtune=*" "-mcpu=*"
176 filter-flags "-O" "-O?"
177
178 if [[ -n "${MARCH}" ]]; then
179 myconf="${myconf} --arch=${MARCH}"
180 fi
181 if [[ -n "${MTUNE}" ]]; then
182 myconf="${myconf} --tune=${MTUNE}"
183 fi
184 if [[ -n "${MCPU}" ]]; then
185 myconf="${myconf} --cpu=${MCPU}"
186 fi
187
188# myconf="${myconf} --extra-cxxflags=\"${CXXFLAGS}\" --extra-cflags=\"${CFLAGS}\""
189 hasq distcc ${FEATURES} || myconf="${myconf} --disable-distcc"
190 hasq ccache ${FEATURES} || myconf="${myconf} --disable-ccache"
191
192 if use frontendonly; then
193 ##Backend Removal
194 ewarn
195 ewarn "You are using the experimental feature for only installing the frontend."
196 ewarn "You will not get Gentoo support nor support from MythTV upstream for this."
197 ewarn "If this breaks, you own both pieces."
198 ewarn
199 myconf="${myconf} --disable-backend"
200 fi
201
202 if use backendonly; then
203 ##Frontend Removal
204 ewarn
205 ewarn "You are using the experimental feature for only installing the backend."
206 ewarn "You will not get Gentoo support nor support from MythTV upstream for this."
207 ewarn "If this breaks, you own both pieces."
208 ewarn
209 myconf="${myconf} --disable-frontend"
210 fi
211
212 # let MythTV come up with our CFLAGS. Upstream will support this
213 CFLAGS=""
214 CXXFLAGS=""
215 einfo "Running ./configure ${myconf}"
216 ./configure ${myconf} || die "configure died"
217
218 ${QTDIR}/bin/qmake QMAKE=${QTDIR}/bin/qmake -o "Makefile" mythtv.pro || die "qmake failed"
219 emake || die "emake failed"
220
221}
222
223src_install() {
224
225 einstall INSTALL_ROOT="${D}" || die "install failed"
226 for doc in AUTHORS COPYING FAQ UPGRADING ChangeLog README; do
227 test -e "${doc}" && dodoc ${doc}
228 done
229
230 if ! use frontendonly; then
231 insinto /usr/share/mythtv/database
232 doins database/*
233
234 exeinto /usr/share/mythtv
235 doexe "${FILESDIR}/mythfilldatabase.cron"
236
237 newinitd ${FILESDIR}/mythbackend-0.18.2.rc mythbackend
238 newconfd ${FILESDIR}/mythbackend-0.18.2.conf mythbackend
239 fi
240
241 if ! use backendonly; then
242 dobin ${FILESDIR}/runmythfe
243
244 ewarn "Want MythFrontend to always? Add the following to your"
245 ewarn "myth user. i.e. My user is mythtv"
246 echo "crontab -e -u mythtv"
247 echo "* * * * * /usr/bin/runmythfe &"
248 ewarn "And you're all set."
249 fi
250 dodoc keys.txt docs/*.{txt,pdf}
251 dohtml docs/*.html
252
253 keepdir /etc/mythtv
254 chown -R mythtv "${D}"/etc/mythtv
255 keepdir /var/log/mythtv
256 chown -R mythtv "${D}"/var/log/mythtv
257
258 insinto /usr/share/mythtv/contrib
259 doins contrib/*
260}
261
262pkg_preinst() {
263 enewuser mythtv -1 "-1" -1 ${MYTHTV_GROUPS} || die "Problem adding mythtv user"
264 usermod -G ${MYTHTV_GROUPS} mythtv
265}
266
267pkg_postinst() {
268 einfo "Want MythFrontend to alway run? Run the following:"
269 echo " #crontab -e -u mythtv"
270 einfo "And add the following:"
271 echo "* * * * * /usr/bin/runmythfe &"
272 echo
273 echo
274 einfo "To always have MythBackend running and available run the following:"
275 echo "rc-update add mythbackend default"
276 echo
277 ewarn "Your recordings folder must be owned by the user 'mythtv' now"
278 echo "chown -R mythtv /path/to/store"
279}
280