Closed seanwh1te closed 10 years ago
Interesting! That saves me from having to do it as it was on my soft "to-do" list. Was this based on the openjdk7 patches? I see the important PlatformInfo patch made it. So none of other openjdk7 dragonfly/ patches are needed for openjdk8?
i misread the archive file. the platform patch was not part of the openjdk8 port. It looks like it got included in the tarball accidently.
also the openjdk7 makefile on DragonFly is different than the one on FreeBSD, mainly due to bootstrap differences. It looks like your version is stock. It probably needs similar modfifications that were necessary for openjdk7
I started with FBSD's port and fixed and applied the openjdk7 DF patches as needed.
--- /usr/freebsd-ports/java/openjdk8/Makefile 2014-07-05 05:57:02.732141000 +0000
+++ Makefile 2014-07-09 12:29:59.209885000 +0000
@@ -54,6 +54,7 @@
.else
JRE_IMAGEDIR= ${JDK_BUILDDIR}/images/j2re-image
.endif
+JDK_ARCH= ${ARCH:S/x86_64/amd64/}
JDK_OSARCH= bsd-${ARCH:S/i386/x86/:S/amd64/x86_64/}
INSTALLDIR= ${PREFIX}/${PKGBASE}
@@ -229,13 +230,13 @@
@cd ${JDK_IMAGEDIR} && ${COPYTREE_SHARE} . ${STAGEDIR}${INSTALLDIR}
@cd ${STAGEDIR}${INSTALLDIR} && \
${FIND} bin jre/bin -type f -exec ${CHMOD} ${BINMODE} {} \; && \
- ${CHMOD} ${BINMODE} jre/lib/${ARCH}/jexec \
- jre/lib/${ARCH}/jspawnhelper lib/${ARCH}/jexec
+ ${CHMOD} ${BINMODE} jre/lib/${JDK_ARCH}/jexec \
+ jre/lib/${JDK_ARCH}/jspawnhelper lib/${JDK_ARCH}/jexec
.else
@cd ${JRE_IMAGEDIR} && ${COPYTREE_SHARE} . ${STAGEDIR}${INSTALLDIR}
@cd ${STAGEDIR}${INSTALLDIR} && \
${FIND} bin -type f -exec ${CHMOD} ${BINMODE} {} \; && \
- ${CHMOD} ${BINMODE} lib/${ARCH}/jexec lib/${ARCH}/jspawnhelper
+ ${CHMOD} ${BINMODE} lib/${JDK_ARCH}/jexec lib/${JDK_ARCH}/jspawnhelper
.endif
@${ECHO} "@unexec ${LOCALBASE}/bin/unregistervm ${INSTALLDIR}/bin/java" >> ${TMPPLIST}
@${FIND} -s ${STAGEDIR}${INSTALLDIR} -not -type d | ${SORT} | \
there are some configure differences between jdk7 & 8 and the PlatformInfo patch is no longer applicable and I believe it is superseded by patch-common-autoconf-platform.m4
okay. The important patch is to jdk/src/solaris/native/java/lang/java_props_md.c which you maintained.
My starting assumption is that the patches are ok but the port Makefile probably needs some work along these lines; https://github.com/DragonFlyBSD/DeltaPorts/tree/master/ports/java/openjdk7/diffs
It looks like most of the openjdk7 diffs are not needed, but the parallel build and duplicate header stuff probably still is.
I took a quick look at the Makefile patch. I'm assuming that the bootstrap jdk stuff needs to be added, right? (I had built openjdk7 first and I'm guessing my build picked that up).
The parallel build stuff has changed in openjdk8, the configure script is being passed --with-jobs=${MAKE_JOBS_NUMBER}
I agree about --with-jobs, I noticed that later. I think bootstrap stuff is okay as it is as well.
That leaves the JDK_ARCH changes you added and the symlinking of dragonfly headers to freebsd headers. I'm testing all this now.
Okay, thanks, it's in dports now. When the generation run occurs, the priority with match freebsd means openjdk7, then openjdk8, and finally openjdk6.
https://github.com/DragonFlyBSD/DeltaPorts/commit/4172507bd584cf1f05f57a74db6981e9fba5d4ce https://github.com/DragonFlyBSD/DPorts/commit/a20019755a50e08301c17dac50a50d33e6d4f247
Hello, The tarball builds and works fine for me. https://s3.amazonaws.com/swhite_public/openjdk8.tar.gz Let me know if there are any problems or if this should be in a different format.
Thanks, -Sean