summaryrefslogtreecommitdiff
blob: 67123069346064717754c3cb0440d6a3184b5451 (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
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$

EAPI="4"
inherit eutils java-pkg-2 java-ant-2

DESCRIPTION="Netbeans IDE"
HOMEPAGE="http://netbeans.org/"
SLOT="8.0"
SOURCE_URL="http://download.netbeans.org/netbeans/8.0.2/final/zip/netbeans-8.0.2-201411181905-src.zip"
PATCHES_URL="https://dev.gentoo.org/~fordfrog/distfiles/netbeans-8.0.2-build.xml.patch.bz2"
L10N_URL="https://dev.gentoo.org/~fordfrog/distfiles/netbeans-l10n-8.0.1-20141110.tar.bz2"
ALL_URLS="${SOURCE_URL} ${PATCHES_URL} ${L10N_URL}"
SRC_URI="linguas_af? ( ${ALL_URLS} )
	linguas_ar? ( ${ALL_URLS} )
	linguas_bg? ( ${ALL_URLS} )
	linguas_ca? ( ${ALL_URLS} )
	linguas_cs? ( ${ALL_URLS} )
	linguas_de? ( ${ALL_URLS} )
	linguas_el? ( ${ALL_URLS} )
	linguas_es? ( ${ALL_URLS} )
	linguas_fr? ( ${ALL_URLS} )
	linguas_gl? ( ${ALL_URLS} )
	linguas_hi_IN? ( ${ALL_URLS} )
	linguas_id? ( ${ALL_URLS} )
	linguas_it? ( ${ALL_URLS} )
	linguas_ja? ( ${ALL_URLS} )
	linguas_ko? ( ${ALL_URLS} )
	linguas_lt? ( ${ALL_URLS} )
	linguas_nl? ( ${ALL_URLS} )
	linguas_pl? ( ${ALL_URLS} )
	linguas_pt_BR? ( ${ALL_URLS} )
	linguas_pt_PT? ( ${ALL_URLS} )
	linguas_ro? ( ${ALL_URLS} )
	linguas_ru? ( ${ALL_URLS} )
	linguas_si? ( ${ALL_URLS} )
	linguas_sq? ( ${ALL_URLS} )
	linguas_sr? ( ${ALL_URLS} )
	linguas_sv? ( ${ALL_URLS} )
	linguas_ta_IN? ( ${ALL_URLS} )
	linguas_tl? ( ${ALL_URLS} )
	linguas_tr? ( ${ALL_URLS} )
	linguas_vi? ( ${ALL_URLS} )
	linguas_zh_CN? ( ${ALL_URLS} )
	linguas_zh_TW? ( ${ALL_URLS} )
"
LICENSE="|| ( CDDL GPL-2-with-linking-exception )"
KEYWORDS="amd64 x86"
IUSE_NETBEANS_MODULES="
	+netbeans_modules_apisupport
	netbeans_modules_cnd
	netbeans_modules_dlight
	netbeans_modules_enterprise
	netbeans_modules_ergonomics
	netbeans_modules_extide
	netbeans_modules_groovy
	+netbeans_modules_java
	netbeans_modules_javacard
	+netbeans_modules_javafx
	netbeans_modules_mobility
	netbeans_modules_php
	+netbeans_modules_profiler
	netbeans_modules_webcommon
	+netbeans_modules_websvccommon"
IUSE_LINGUAS="
	linguas_af
	linguas_ar
	linguas_bg
	linguas_ca
	linguas_cs
	linguas_de
	linguas_el
	linguas_es
	linguas_fr
	linguas_gl
	linguas_hi_IN
	linguas_id
	linguas_it
	linguas_ja
	linguas_ko
	linguas_lt
	linguas_nl
	linguas_pl
	linguas_pt_BR
	linguas_pt_PT
	linguas_ro
	linguas_ru
	linguas_si
	linguas_sq
	linguas_sr
	linguas_sv
	linguas_ta_IN
	linguas_tl
	linguas_tr
	linguas_vi
	linguas_zh_CN
	linguas_zh_TW"
IUSE="doc ${IUSE_NETBEANS_MODULES} ${IUSE_LINGUAS}"
S="${WORKDIR}"

DEPEND="virtual/jdk:1.7
	dev-java/javahelp:0"
RDEPEND=">=virtual/jdk-1.7
	~dev-java/netbeans-harness-${PV}
	~dev-java/netbeans-ide-${PV}
	~dev-java/netbeans-nb-${PV}
	~dev-java/netbeans-platform-${PV}
	netbeans_modules_apisupport? ( ~dev-java/netbeans-apisupport-${PV} )
	netbeans_modules_cnd? ( ~dev-java/netbeans-cnd-${PV} )
	netbeans_modules_dlight? ( ~dev-java/netbeans-dlight-${PV} )
	netbeans_modules_enterprise? ( ~dev-java/netbeans-enterprise-${PV} )
	netbeans_modules_ergonomics? ( ~dev-java/netbeans-ergonomics-${PV} )
	netbeans_modules_extide? ( ~dev-java/netbeans-extide-${PV} )
	netbeans_modules_groovy? ( ~dev-java/netbeans-groovy-${PV} )
	netbeans_modules_java? ( ~dev-java/netbeans-java-${PV} )
	netbeans_modules_javacard? ( ~dev-java/netbeans-javacard-${PV} )
	netbeans_modules_javafx? ( ~dev-java/netbeans-javafx-${PV} )
	netbeans_modules_mobility? ( ~dev-java/netbeans-mobility-${PV} )
	netbeans_modules_php? ( ~dev-java/netbeans-php-${PV} )
	netbeans_modules_profiler? ( ~dev-java/netbeans-profiler-${PV} )
	netbeans_modules_webcommon? ( ~dev-java/netbeans-webcommon-${PV} )
	netbeans_modules_websvccommon? ( ~dev-java/netbeans-websvccommon-${PV} )
	doc? ( ~dev-java/netbeans-javadoc-${PV} )"
JAVA_PKG_BSFIX="off"
NBLOCALES=""

pkg_setup() {
	for lingua in ${IUSE_LINGUAS} ; do
		local lang=${lingua/linguas_/}

		if [[ "${lang}" = "ar" ]] ; then
			lang="ar_EG,ar_SA"
		elif [[ "${lang}" = "es" ]] ; then
			lang="es,es_CO"
		elif [[ "${lang}" = "gl" ]] ; then
			lang="gl_ES"
		elif [[ "${lang}" = "id" ]] ; then
			lang="in_ID"
		elif [[ "${lang}" = "nl" ]] ; then
			lang="nl_BE,nl_NL"
		elif [[ "${lang}" = "tl" ]] ; then
			lang="fil_PH"
		fi

		if use ${lingua} ; then
			if [ -z "${NBLOCALES}" ] ; then
				NBLOCALES="${lang}"
			else
				NBLOCALES="${NBLOCALES},${lang}"
			fi
		fi
	done

	java-pkg-2_pkg_setup
}

src_unpack() {
	if [ -n "${NBLOCALES}" ] ; then
		unpack $(basename ${SOURCE_URL})
		unpack $(basename ${L10N_URL})

		einfo "Deleting bundled jars..."
		find -name "*.jar" -type f -delete

		unpack netbeans-8.0.2-build.xml.patch.bz2
	fi
}

src_prepare() {
	if [ -n "${NBLOCALES}" ] ; then
		einfo "Deleting bundled class files..."
		find -name "*.class" -type f | xargs rm -vf

		epatch netbeans-8.0.2-build.xml.patch

		# Support for custom patches
		if [ -n "${NETBEANS80_PATCHES_DIR}" -a -d "${NETBEANS80_PATCHES_DIR}" ] ; then
			local files=`find "${NETBEANS80_PATCHES_DIR}" -type f`

			if [ -n "${files}" ] ; then
				einfo "Applying custom patches:"

				for file in ${files} ; do
					epatch "${file}"
				done
			fi
		fi

		einfo "Symlinking external libraries..."
		java-pkg_jar-from --build-only --into javahelp/external javahelp jhall.jar jhall-2.0_05.jar
	fi

	java-pkg-2_src_prepare
}

src_compile() {
	if [ -n "${NBLOCALES}" ] ; then
		einfo "Compiling support for locales: ${NBLOCALES}"
		eant -f nbbuild/build.xml bootstrap || die
		eant -Dlocales=${NBLOCALES} -Ddist.dir=../nbbuild/netbeans -Dnbms.dir="" -Dnbms.dist.dir="" \
			-Dpermit.jdk7.builds=true -f l10n/build.xml build || die
	fi
}

src_install() {
	if [ -n "${NBLOCALES}" ] ; then
		pushd "${S}"/nbbuild/netbeans >/dev/null || die

		for cluster in apisupport cnd dlight enterprise ergonomics groovy harness ide java javacard javafx mobility php platform profiler webcommon websvccommon ; do
			if [ -d "${cluster}" ] ; then
				insinto /usr/share/netbeans-${cluster}-${SLOT}
				doins -r ${cluster}/*
			fi
		done

		if [ -d nb ] ; then
			insinto /usr/share/netbeans-nb-${SLOT}/nb
			doins -r nb/*
		fi

		popd >/dev/null || die
	fi
}

pkg_postinst() {
	if [ -n "${NBLOCALES}" ] ; then
		einfo "Netbeans automatically starts with the locale you have set in your user profile, if"
		einfo "the locale is built for Netbeans."
		einfo "If you want to force specific locale, use --locale argument, for example:"
		einfo "${PN}-${SLOT} --locale de"
		einfo "${PN}-${SLOT} --locale pt:BR"
	fi

	if use linguas_ar ; then
		einfo
		einfo "You selected Arabic locale so you can choose either ar:EG or ar:SA variant."
	fi

	if use linguas_es ; then
		einfo
		einfo "You selected Spanish locale so you can choose either es or es:CO variant."
	fi

	if use linguas_gl ; then
		einfo
		einfo "You selected Galician locale which has locale code gl:ES in Netbeans."
	fi

	if use linguas_id ; then
		einfo
		einfo "You selected Indonesian locale which has locale code in:ID in Netbeans."
	fi

	if use linguas_nl ; then
		einfo
		einfo "You selected Dutch locale so you can choose either nl:BE or nl:NL variant."
	fi

	if use linguas_tl ; then
		einfo
		einfo "You selected Tagalog locale which has for Filipino locale code fil:PH in Netbeans."
	fi
}