dev-java/openjfx: bump to 11.0.7_p1
authorGeorgy Yakovlev <gyakovlev@gentoo.org>
Tue, 21 Apr 2020 22:58:19 +0000 (15:58 -0700)
committerGeorgy Yakovlev <gyakovlev@gentoo.org>
Tue, 21 Apr 2020 22:59:47 +0000 (15:59 -0700)
modify patch in place to fix rpath issue

Bug: https://bugs.gentoo.org/704738
Package-Manager: Portage-2.3.89, Repoman-2.3.20
Signed-off-by: Georgy Yakovlev <gyakovlev@gentoo.org>
dev-java/openjfx/Manifest
dev-java/openjfx/files/11/respect-user-cflags.patch
dev-java/openjfx/openjfx-11.0.7_p1.ebuild [new file with mode: 0644]

index 123ba264c19087849e51803f62da17e2eeafdf62..2a58e0d3b3db4d0a0174b11508a8b0bac42c4551 100644 (file)
@@ -9,3 +9,4 @@ DIST lucene-queryparser-7.1.0.jar 384680 BLAKE2B adce2572de9f534323eead31dd30f97
 DIST lucene-sandbox-7.1.0.jar 182914 BLAKE2B 70c795f84d8f0908abe47db77f632eeb6571a77e1445b8ab04a75080cea40e3b8171071965ff7fd9f6d39a450dd33144e922d19c1f07c605de54b45e3e881323 SHA512 6faf9fd9c7c082bf062adb6a28d89447e6e27152eb3f0a325081e5f791196e5440334632ccbf9c458940220676f7e73390a174889d9b7a656d088b3dade5d500
 DIST openjfx-11.0.6_p2.tar.bz2 63971065 BLAKE2B e68cebef34c39b163bf9de5f7184a363553650921bcf86ea338d6cbb583cc66056c3f5d8ff593b320ee38afd9daf738ffe041de6a90062e35e59274ad0242c9d SHA512 7112a7f4a02f36c131892953d76f6a8d82bdce69b67479091187045d78c090f6b4bc8f21b6df259f154c3d0ae87866566eca50ef2741ed440d62655c36e20f3c
 DIST openjfx-11.0.7_p0.tar.bz2 63969275 BLAKE2B 50f30cf736ff8713f0be5c4404d6494a96bdaf23082eff8b83ecd704fb417d7e54502f0e0fff9a993d814d9ed9cec98f152487bc96bf929a67b74ec08615f053 SHA512 54b1b010800d3edfc9bb1319860fceab2083d77cbcb45ebe4baefbecf7e0ac2756cb24470cf4c9e7f53d44d7bf345c5f869f9d50748da6bb9d8be8bf1e325ec3
+DIST openjfx-11.0.7_p1.tar.bz2 64302415 BLAKE2B 1a0705b5a668025dd73cc92af35b9e33d698adb1130dace1c079e20f6f6a848517102fe28f7e5e62a141fdfbd6f8086e9a2bb96573a597245d935e5d80918c4c SHA512 ff2b0af1d4b18963bd8ce26c20ab1def268fec8e6030732336edec3aedf58f8bdc25b61b3cd1d70c7d814a3ee96413965f26fba2426c083338c62d8483e93564
index 2339f905b7fa14cba52288836190b149c9bceef6..6ffb039467c311a788ab8c810aa214686f136e0d 100644 (file)
@@ -202,7 +202,7 @@ index ecbd859f..5881cf53 100644
                  $(PACKAGES_INCLUDES)
  
 -      LDFLAGS = -Wl,-rpath,\$$ORIGIN -L$(BUILD_DIR) -lgstreamer-lite $(PACKAGES_LIBS) \
-+      LDFLAGS := -Wl,-rpath,\$$ORIGIN -L$(BUILD_DIR) -lgstreamer-lite $(PACKAGES_LIBS) \
++      LDFLAGS := -Wl,-rpath-link,\$$ORIGIN -L$(BUILD_DIR) -lgstreamer-lite $(PACKAGES_LIBS) \
              -z relro \
 -            -static-libgcc -static-libstdc++ -Wl,--gc-sections
 +            -static-libgcc -static-libstdc++ -Wl,--gc-sections \
diff --git a/dev-java/openjfx/openjfx-11.0.7_p1.ebuild b/dev-java/openjfx/openjfx-11.0.7_p1.ebuild
new file mode 100644 (file)
index 0000000..957104f
--- /dev/null
@@ -0,0 +1,221 @@
+# Copyright 2019-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+MY_PV="${PV/_p/+}"
+SLOT="${MY_PV%%[.+]*}"
+EGRADLE_VER="4.8"
+
+inherit flag-o-matic java-pkg-2 multiprocessing
+
+DESCRIPTION="Java OpenJFX client application platform"
+HOMEPAGE="https://openjfx.io"
+
+SRC_URI="https://hg.openjdk.java.net/${PN}/${SLOT}-dev/rt/archive/${MY_PV}.tar.bz2 -> ${P}.tar.bz2
+       https://downloads.gradle.org/distributions/gradle-${EGRADLE_VER}-bin.zip
+       https://repo.maven.apache.org/maven2/org/apache/lucene/lucene-sandbox/7.1.0/lucene-sandbox-7.1.0.jar
+       https://repo.maven.apache.org/maven2/org/apache/lucene/lucene-grouping/7.1.0/lucene-grouping-7.1.0.jar
+       https://repo.maven.apache.org/maven2/org/apache/lucene/lucene-queryparser/7.1.0/lucene-queryparser-7.1.0.jar
+       https://repo.maven.apache.org/maven2/org/apache/lucene/lucene-queries/7.1.0/lucene-queries-7.1.0.jar
+       https://repo.maven.apache.org/maven2/org/apache/lucene/lucene-core/7.1.0/lucene-core-7.1.0.jar
+       https://repo.maven.apache.org/maven2/org/antlr/gunit/3.5.2/gunit-3.5.2.jar
+       https://repo1.maven.org/maven2/org/antlr/antlr4/4.7.2/antlr4-4.7.2-complete.jar
+       https://repo.maven.apache.org/maven2/org/antlr/ST4/4.0.8/ST4-4.0.8.jar
+"
+
+LICENSE="GPL-2-with-classpath-exception"
+KEYWORDS="-* ~amd64"
+
+IUSE="cpu_flags_x86_sse2 debug doc source +media"
+
+RDEPEND="
+       dev-java/swt:4.10[cairo,opengl]
+       dev-libs/atk
+       dev-libs/glib:2
+       dev-libs/libxml2:2
+       dev-libs/libxslt
+       media-libs/freetype:2
+       media-libs/fontconfig:1.0
+       media-video/ffmpeg:0=
+       x11-libs/gdk-pixbuf
+       x11-libs/gtk+:2
+       x11-libs/gtk+:3
+       x11-libs/cairo[glib]
+       x11-libs/libX11
+       x11-libs/libXtst
+       x11-libs/libXxf86vm
+       x11-libs/pango
+       virtual/jpeg
+       virtual/opengl
+       || (
+               dev-java/openjdk-bin:${SLOT}[doc?]
+               dev-java/openjdk:${SLOT}[doc?]
+       )
+"
+
+DEPEND="${RDEPEND}
+       app-arch/unzip
+       app-arch/zip
+       >=dev-java/ant-core-1.10.7-r1:0
+       dev-java/antlr:0
+       dev-java/antlr:3.5
+       dev-java/hamcrest-core:0
+       dev-java/stringtemplate:0
+       virtual/ttf-fonts
+       virtual/pkgconfig
+"
+
+REQUIRED_USE="cpu_flags_x86_sse2"
+
+PATCHES=(
+       "${FILESDIR}"/11/disable-buildSrc-tests.patch
+       "${FILESDIR}"/11/glibc-compatibility.patch
+       "${FILESDIR}"/11/respect-user-cflags.patch
+       "${FILESDIR}"/11/use-system-swt-jar.patch
+       "${FILESDIR}"/11/wno-error.patch
+)
+
+S="${WORKDIR}/rt-${MY_PV}"
+
+egradle() {
+       local GRADLE_HOME="${WORKDIR}/gradle-${EGRADLE_VER}"
+       local gradle="${GRADLE_HOME}/bin/gradle"
+       local gradle_args=(
+               --info
+               --stacktrace
+               --no-build-cache
+               --no-daemon
+               --offline
+               --gradle-user-home "${T}/gradle_user_home"
+               --project-cache-dir "${T}/gradle_project_cache"
+       )
+
+       export GRADLE_HOME
+
+       # FIXME: build.gradle believes $ANT_HOME/bin/ant shoud exist
+       unset ANT_HOME
+
+       einfo "gradle "${gradle_args[@]}" ${@}"
+       "${gradle}" "${gradle_args[@]}" ${@} || die "gradle failed"
+}
+
+pkg_setup() {
+       JAVA_PKG_WANT_BUILD_VM="openjdk-${SLOT} openjdk-bin-${SLOT}"
+       JAVA_PKG_WANT_SOURCE="${SLOT}"
+       JAVA_PKG_WANT_TARGET="${SLOT}"
+
+       # The nastiness below is necessary while the gentoo-vm USE flag is
+       # masked. First we call java-pkg-2_pkg_setup if it looks like the
+       # flag was unmasked against one of the possible build VMs. If not,
+       # we try finding one of them in their expected locations. This would
+       # have been slightly less messy if openjdk-bin had been installed to
+       # /opt/${PN}-${SLOT} or if there was a mechanism to install a VM env
+       # file but disable it so that it would not normally be selectable.
+
+       local vm
+       for vm in ${JAVA_PKG_WANT_BUILD_VM}; do
+               if [[ -d ${EPREFIX}/usr/lib/jvm/${vm} ]]; then
+                       java-pkg-2_pkg_setup
+                       return
+               fi
+       done
+
+       if has_version --host-root dev-java/openjdk:${SLOT}; then
+               export JAVA_HOME=${EPREFIX}/usr/$(get_libdir)/openjdk-${SLOT}
+               export JDK_HOME="${JAVA_HOME}"
+               export ANT_RESPECT_JAVA_HOME=ture
+
+       else
+               if [[ ${MERGE_TYPE} != "binary" ]]; then
+                       JDK_HOME=$(best_version --host-root dev-java/openjdk-bin:${SLOT})
+                       [[ -n ${JDK_HOME} ]] || die "Build VM not found!"
+                       JDK_HOME=${JDK_HOME#*/}
+                       JDK_HOME=${EPREFIX}/opt/${JDK_HOME%-r*}
+                       export JDK_HOME
+                       export JAVA_HOME="${JDK_HOME}"
+                       export ANT_RESPECT_JAVA_HOME=ture
+               fi
+       fi
+}
+
+src_unpack() {
+       unpack "${P}.tar.bz2"
+       unpack "gradle-${EGRADLE_VER}-bin.zip"
+
+       mkdir "${T}/jars" || die
+
+       local line jar
+       for line in ${SRC_URI}; do
+               if [[ ${line} =~ (http|https)://[a-zA-Z0-9.-_]*/(maven2|m2|eclipse)/(.*[.]jar)$ ]]; then
+                       jar=$(basename "${BASH_REMATCH[-1]}")
+                       cp -v "${DISTDIR}/${jar}" "${T}/jars/" || die
+               fi
+       done
+}
+
+src_prepare() {
+       default
+
+       local d="${T}/jars"
+
+       java-pkg_jar-from --build-only --with-dependencies --into "${d}" antlr
+       java-pkg_jar-from --build-only --with-dependencies --into "${d}" antlr-3.5
+       java-pkg_jar-from --build-only --with-dependencies --into "${d}" stringtemplate
+       java-pkg_jar-from --build-only --with-dependencies --into "${d}" hamcrest-core
+
+       sed -i "s#__gentoo_swt_jar__#$(java-pkg_getjars swt-4.10)#" "${S}"/build.gradle || die
+}
+
+src_configure() {
+       append-flags -Wno-error
+
+       #FIXME: still calls gcc, pkg-config etc by name without chost prefix
+       #FIXME: should we enable webkit? doubt so
+
+       # build is very sensetive to doc presense, take extra steps
+       if use doc; then
+               local jdk_doc
+               if has_version --host-root dev-java/openjdk:${SLOT}[doc]; then
+                       jdk_doc="${EROOT%/}/usr/share/doc/openjdk-${SLOT}/html/api"
+               elif has_version --host-root dev-java/java-sdk-docs:${SLOT}; then
+                       jdk_doc="${EROOT%/}/usr/share/doc/java-sdk-docs-${SLOT}/html/api"
+               fi
+               [[ -r ${jdk_doc}/element-list ]] || die "JDK Docs not found, terminating build early"
+       fi
+
+       cat <<- _EOF_ > "${S}"/gradle.properties
+               COMPILE_TARGETS = linux
+               COMPILE_WEBKIT = false
+               COMPILE_MEDIA = $(usex media true false)
+               JDK_DOCS = https://docs.oracle.com/en/java/javase/${SLOT}/docs/api
+               JDK_DOCS_LINK = $(usex doc "${jdk_doc}" "")
+               BUILD_LIBAV_STUBS = false
+               GRADLE_VERSION_CHECK = false
+               LINT = none
+               CONF = $(usex debug DebugNative Release)
+               NUM_COMPILE_THREADS = $(makeopts_jobs)
+               JFX_DEPS_URL = ${T}/jars
+               COMPANY_NAME = "Gentoo"
+       _EOF_
+}
+
+src_compile() {
+       egradle zips $(usex doc "" "--exclude-task javadoc")
+}
+
+src_install() {
+       if ! use source ; then
+               rm -v build/sdk/lib/src.zip || die
+       fi
+
+       insinto "/usr/$(get_libdir)/${PN}-${SLOT}"
+       doins -r build/sdk/.
+       doins build/javafx-exports.zip
+
+       if use doc; then
+               docinto html
+               dodoc -r build/javadoc/.
+               dosym ../../../usr/share/doc/"${PF}" /usr/share/doc/"${PN}-${SLOT}"
+       fi
+}