blob: 6cab1553924bed5a78895f5dceddf88225c533ad (
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
|
# Copyright 1999-2009 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/media-video/projectx/projectx-0.90.4.00_p32.ebuild,v 1.1 2009/10/08 18:29:21 billie Exp $
EAPI="2"
inherit eutils toolchain-funcs java-pkg-2 java-ant-2
MY_PN="ProjectX"
MY_P="${MY_PN}_Source_${PV%.*}"
# micro-release == 0 ?
#if [ 0${PV##*.} -eq 0 ]; then
# MY_P="${MY_PN}_Source_${PV%.*}"
#else
# MY_P="${MY_PN}_Source_${PV}"
#fi
DESCRIPTION="Converts, splits and demuxes DVB and other MPEG recordings"
HOMEPAGE="http://project-x.sourceforge.net/"
SRC_URI="mirror://gentoo/${MY_PN}_Source_${PV}.tbz2
mirror://gentoo/${PN}-patches-${PV}.tbz2
mirror://gentoo/${MY_P}-portable.tbz2"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
IUSE="X doc source mmx java5 java6"
COMMON_DEP="dev-java/commons-net
X? ( =dev-java/browserlauncher2-1* )"
RDEPEND="java6? ( >=virtual/jre-1.6 )
!java6? ( java5? ( >=virtual/jre-1.5 ) )
!java6? ( !java5? ( >=virtual/jre-1.4 ) )
${COMMON_DEP}"
DEPEND="java6? ( >=virtual/jdk-1.6 )
!java6? ( java5? ( >=virtual/jdk-1.5 ) )
!java6? ( !java5? ( >=virtual/jdk-1.4 ) )
${COMMON_DEP}
source? ( app-arch/zip )"
S="${WORKDIR}/${MY_P}"
mainclass() {
# read Main-Class from MANIFEST.MF
sed -n "s/^Main-Class: \([^ ]\+\).*/\1/p" "${S}/MANIFEST.MF"
}
src_prepare() {
# copy build.xml
if use java6; then
sed 's:\(value=\"\)1\.4\(\"\):\11.6\2:g' \
"${FILESDIR}/build-${PV%.*}.xml" > build.xml
elif use java5; then
sed 's:\(value=\"\)1\.4\(\"\):\11.5\2:g' \
"${FILESDIR}/build-${PV%.*}.xml" > build.xml
else
cp -f "${FILESDIR}/build-${PV%.*}.xml" build.xml
fi
# patch location of executable
sed -i -e "s:^\(Exec=\).*:\1${PN}:g" *.desktop
# convert CRLF to LF
edos2unix *.txt MANIFEST.MF
# convert docs to utf-8
if [ -x "$(type -p iconv)" ]; then
for X in zutun.txt; do
iconv -f LATIN1 -t UTF8 -o "${X}~" "${X}" && mv -f "${X}~" "${X}" || rm -f "${X}~"
done
fi
# apply stdout corruption patch (zzam@gentoo.org)
epatch "${WORKDIR}/${PN}-stdout-corrupt.diff"
# apply BrowserLauncher2 patch
use X && epatch "${WORKDIR}/${PN}-bl2.diff"
rm -rf src/edu
# apply idctfast patchset
sed -i -e "s:IDCTRefNative:IDCTFast:g" src/net/sourceforge/dvb/projectx/video/MpvDecoder.java
sed -i -e "s:gcc:\$(CC):g" -e "s: -O2::g" lib/PORTABLE/Makefile
# merge/remove resources depending on USE="X"
if use X; then
mv -f htmls resources/
else
rm -rf src/net/sourceforge/dvb/projectx/gui
rm resources/*.gif
fi
# update library packages
cd lib
rm -f {commons-net,jakarta-oro}*.jar
java-pkg_jar-from commons-net
use X && java-pkg_jar-from browserlauncher2-1.0
java-pkg_ensure-no-bundled-jars
}
src_compile() {
local IDCT="idct-mjpeg" # default IDCT implementation
use x86 && use mmx && IDCT="idct-mjpeg-mmx"
eant build $(use_doc) -Dmanifest.mainclass=$(mainclass)
cd lib/PORTABLE
emake CC=$(tc-getCC) IDCT="${IDCT}" LDFLAGS="${LDFLAGS}" \
CPLAT="${CFLAGS} -O3 -ffast-math -fPIC" || die "emake failed"
}
src_install() {
java-pkg_dojar dist/${PN}.jar
java-pkg_doso lib/PORTABLE/libidctfast.so
java-pkg_dolauncher ${PN}_nogui --main $(mainclass) \
--java_args "-Djava.awt.headless=true"
if use X; then
java-pkg_dolauncher ${PN}_gui --main $(mainclass)
dosym ${PN}_gui /usr/bin/${PN}
domenu *.desktop
else
dosym ${PN}_nogui /usr/bin/${PN}
fi
dodoc *.txt
use doc && java-pkg_dojavadoc apidocs
use source && java-pkg_dosrc src
}
|