Gentoo Archives: gentoo-commits

From: "Miroslav Šulc" <fordfrog@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-java/swt/
Date: Fri, 16 Jul 2021 06:30:04
Message-Id: 1626416668.8d042dab2a9e0106ea309e343dafdf58b9cb55f3.fordfrog@gentoo
1 commit: 8d042dab2a9e0106ea309e343dafdf58b9cb55f3
2 Author: Volkmar W. Pogatzki <gentoo <AT> pogatzki <DOT> net>
3 AuthorDate: Thu Jul 15 12:50:16 2021 +0000
4 Commit: Miroslav Šulc <fordfrog <AT> gentoo <DOT> org>
5 CommitDate: Fri Jul 16 06:24:28 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8d042dab
7
8 dev-java/swt: jdk[-headless-awt]
9
10 Closes: https://bugs.gentoo.org/801277
11 Package-Manager: Portage-3.0.20, Repoman-3.0.2
12 Signed-off-by: Volkmar W. Pogatzki <gentoo <AT> pogatzki.net>
13 Closes: https://github.com/gentoo/gentoo/pull/21651
14 Signed-off-by: Miroslav Šulc <fordfrog <AT> gentoo.org>
15
16 dev-java/swt/swt-4.10-r2.ebuild | 174 ++++++++++++++++++++++++++++++++++++++++
17 1 file changed, 174 insertions(+)
18
19 diff --git a/dev-java/swt/swt-4.10-r2.ebuild b/dev-java/swt/swt-4.10-r2.ebuild
20 new file mode 100644
21 index 00000000000..8c3986977db
22 --- /dev/null
23 +++ b/dev-java/swt/swt-4.10-r2.ebuild
24 @@ -0,0 +1,174 @@
25 +# Copyright 1999-2021 Gentoo Authors
26 +# Distributed under the terms of the GNU General Public License v2
27 +
28 +EAPI=7
29 +
30 +inherit flag-o-matic java-pkg-2 java-ant-2 toolchain-funcs java-osgi
31 +
32 +MY_PV="${PV/_rc/RC}"
33 +MY_DMF="http://download.eclipse.org/eclipse/downloads/drops4/R-${MY_PV}-201812060815"
34 +MY_P="${PN}-${MY_PV}"
35 +
36 +DESCRIPTION="GTK based SWT Library"
37 +HOMEPAGE="http://www.eclipse.org/"
38 +SRC_URI="
39 + amd64? ( ${MY_DMF}/${MY_P}-gtk-linux-x86_64.zip )
40 + ppc64? ( ${MY_DMF}/${MY_P}-gtk-linux-ppc64le.zip )"
41 +
42 +LICENSE="CPL-1.0 LGPL-2.1 MPL-1.1"
43 +SLOT="4.10"
44 +KEYWORDS="~amd64 ~ppc64"
45 +IUSE="cairo opengl webkit"
46 +
47 +COMMON_DEP="
48 + >=dev-libs/atk-1.10.2
49 + >=dev-libs/glib-2.32
50 + >=x11-libs/gtk+-2.6.8:2
51 + x11-libs/libXtst
52 + cairo? ( >=x11-libs/cairo-1.4.14 )
53 + opengl? (
54 + virtual/glu
55 + virtual/opengl
56 + )
57 + webkit? (
58 + net-libs/webkit-gtk:4
59 + )"
60 +DEPEND="${COMMON_DEP}
61 + >=virtual/jdk-1.8:*[-headless-awt]
62 + x11-base/xorg-proto
63 + x11-libs/libX11
64 + x11-libs/libXrender
65 + x11-libs/libXt
66 + >=x11-libs/libXtst-1.1.0"
67 +RDEPEND="${COMMON_DEP}
68 + >=virtual/jre-1.8:*"
69 +BDEPEND="
70 + app-arch/unzip
71 + virtual/pkgconfig
72 +"
73 +
74 +S="${WORKDIR}"
75 +
76 +# JNI libraries don't need SONAME, bug #253756
77 +QA_SONAME='usr/lib[^/]*/libswt-[^/]+.so'
78 +
79 +PATCHES=(
80 + "${FILESDIR}"/${P}-as-needed-and-flag-fixes.patch
81 +)
82 +
83 +src_unpack() {
84 + local DISTFILE=${A}
85 + unzip -jq "${DISTDIR}"/${DISTFILE} swt.jar src.zip || die "Unable to extract distfile"
86 + unpack "./src.zip"
87 +
88 + # Cleanup the redirtied directory structure
89 + rm -rf about_files/ || die
90 +}
91 +
92 +src_prepare() {
93 + # Replace the build.xml to allow compilation without Eclipse tasks
94 + cp "${FILESDIR}/build.xml" "${S}/build.xml" || die "Unable to update build.xml"
95 + mkdir "${S}/src" && mv "${S}/org" "${S}/src" || die "Unable to restructure SWT sources"
96 +
97 + # Apply patches
98 + default
99 +
100 + # Define missing g_thread_supported() to be already started.
101 + sed -i '1s/^/#define g_thread_supported() 1\n\n/' "${S}"/os_custom.h || die
102 +
103 + # Webext is also in the library directory
104 + sed -i 's|findResource([^,]\+|findResource("swt"|' \
105 + "${S}"/src/org/eclipse/swt/browser/WebKit.java || die
106 +}
107 +
108 +src_compile() {
109 + append-cflags -fcommon # https://bugs.gentoo.org/707838
110 +
111 + # Drop jikes support as it seems to be unfriendly with SWT
112 + java-pkg_filter-compiler jikes
113 +
114 + local AWT_ARCH
115 + local JAWTSO="libjawt.so"
116 + if [[ $(tc-arch) == 'ppc64' ]] ; then
117 + # no big-endian support
118 + AWT_ARCH="ppc64le"
119 + else
120 + AWT_ARCH="amd64"
121 + fi
122 + if [[ -f "${JAVA_HOME}/jre/lib/${AWT_ARCH}/${JAWTSO}" ]]; then
123 + export AWT_LIB_PATH="${JAVA_HOME}/jre/lib/${AWT_ARCH}"
124 + elif [[ -f "${JAVA_HOME}/jre/bin/${JAWTSO}" ]]; then
125 + export AWT_LIB_PATH="${JAVA_HOME}/jre/bin"
126 + elif [[ -f "${JAVA_HOME}/$(get_libdir)/${JAWTSO}" ]] ; then
127 + export AWT_LIB_PATH="${JAVA_HOME}/$(get_libdir)"
128 + elif [[ -f "${JAVA_HOME}/lib/${JAWTSO}" ]] ; then
129 + export AWT_LIB_PATH="${JAVA_HOME}/lib"
130 + else
131 + eerror "${JAWTSO} not found in the JDK being used for compilation!"
132 + die "cannot build AWT library"
133 + fi
134 +
135 + # Fix the pointer size for AMD64
136 + export SWT_PTR_CFLAGS=-DJNI64
137 +
138 + # Bug #461784, g_thread_init is deprecated since glib-2.32.
139 + append-cflags -DNO__1g_1thread_1init
140 +
141 + local make="emake -f make_linux.mak NO_STRIP=y CC=$(tc-getCC) CXX=$(tc-getCXX)"
142 +
143 + einfo "Building AWT library"
144 + ${make} make_awt AWT_LIBS="-L\$(AWT_LIB_PATH) -Wl,-rpath,\$(AWT_LIB_PATH) -ljawt \`pkg-config --libs x11\`"
145 +
146 + einfo "Building SWT library"
147 + ${make} make_swt
148 +
149 + einfo "Building JAVA-AT-SPI bridge"
150 + ${make} make_atk
151 +
152 + if use cairo ; then
153 + einfo "Building CAIRO support"
154 + ${make} make_cairo
155 + fi
156 +
157 + if use opengl ; then
158 + einfo "Building OpenGL component"
159 + ${make} make_glx
160 + fi
161 +
162 + if use webkit ; then
163 + einfo "Building WebKit component"
164 + ${make} make_webkit make_webkit2extension
165 + fi
166 +
167 + einfo "Building JNI libraries"
168 + eant compile
169 +
170 + einfo "Copying missing files"
171 + cp -i "${S}/version.txt" "${S}/build/version.txt" || die
172 + cp -i "${S}/src/org/eclipse/swt/internal/SWTMessages.properties" \
173 + "${S}/build/org/eclipse/swt/internal/" || die
174 + unzip swt.jar 'org/eclipse/swt/internal/gtk/*.css' -d build || die
175 +
176 + einfo "Packing JNI libraries"
177 + eant jar
178 +}
179 +
180 +src_install() {
181 + local swtArch=${ARCH}
182 + use amd64 && swtArch=x86_64
183 +
184 + sed "s/SWT_ARCH/${swtArch}/" "${FILESDIR}/${PN}-${SLOT}-manifest" > "MANIFEST_TMP.MF" || die
185 + remove_from_manifest() {
186 + local subpkg=$1
187 + sed -i -e "/ org.eclipse.swt.internal.$subpkg; x-internal:=true,/d" "MANIFEST_TMP.MF" || die
188 + }
189 + use cairo || remove_from_manifest cairo
190 + use opengl || remove_from_manifest opengl.glx
191 + use webkit || remove_from_manifest webkit
192 + java-osgi_newjar-fromfile "swt.jar" "MANIFEST_TMP.MF" "Standard Widget Toolkit for GTK 2.0"
193 +
194 + java-pkg_sointo "/usr/$(get_libdir)/swt"
195 + java-pkg_doso *.so
196 +
197 + dodoc about.html
198 +}