Re: Update lang/jruby 1.7.4 - 1.7.5
On Wed, Oct 09, 2013 at 06:26:55PM -0700, Jeremy Evans wrote: There were many changes in this update, more than you would expect in a tiny release, including: 243 issues fixed Many many encoding/M17n issues resolved. Improved transcoding support Fiber fixes Ripper support Faster pathname implementation Faster date/time implementations Improved call performance for magic globals ($~ and $_) Block/proc creation and dispatch performance improvements Moved build to Maven from Ant. See BUILDING.md. Updated RubyGems to version 2.1.5 Moved several standard libraries out as default gems Portswise, the main change is the change from the ant to maven based build system. Unfortunately, with this new build system, maven downloads almost 200 separate .jar files totalling over 30M during build. The only way to get it to build with systrace is to run it first without systrace, and then tar up the maven repository with the cached .jar files, use that tarball as a separate distfile, and run maven in offline mode. I actually had a diff that did that, but after talking to upstream, it turns out that there is a much easier way. There's actually no reason to use a src tarball, since that just involves compiling java source files to java bytecode files. We can just use the java bytecode files directly via the bin tarball. So this diff switches the port to use the bin tarball. The bin tarball doesn't include jruby-launcher, so that is used as a separate distfile. jffi still needs to be recompiled with ant, since that uses native code, so that part hasn't changed. Our patched jnr-posix library is included by overriding the jnr/posix directory inside the lib/jruby.jar file. The bin tarball doesn't include the tests, so remove the test code and set NO_TEST. Cant we fetch them in a different way ? Usually it's nice to have tests available, especially when its a compiler/interpreter/VM Other than that, yay for building less stuff! Landry
Re: Update lang/jruby 1.7.4 - 1.7.5
On Wed, Oct 9, 2013 at 11:57 PM, Landry Breuil lan...@rhaalovely.netwrote: On Wed, Oct 09, 2013 at 06:26:55PM -0700, Jeremy Evans wrote: The bin tarball doesn't include the tests, so remove the test code and set NO_TEST. Cant we fetch them in a different way ? Usually it's nice to have tests available, especially when its a compiler/interpreter/VM I don't think upstream provides a separate distfile for the tests. I can probably manually create such a distfile and add a test target. I'll work on that later today. Thanks, Jeremy
Re: Update lang/jruby 1.7.4 - 1.7.5
On 10/09 06:26, Jeremy Evans wrote: There were many changes in this update, more than you would expect in a tiny release, including: 243 issues fixed Many many encoding/M17n issues resolved. Improved transcoding support Fiber fixes Ripper support Faster pathname implementation Faster date/time implementations Improved call performance for magic globals ($~ and $_) Block/proc creation and dispatch performance improvements Moved build to Maven from Ant. See BUILDING.md. Updated RubyGems to version 2.1.5 Moved several standard libraries out as default gems Portswise, the main change is the change from the ant to maven based build system. Unfortunately, with this new build system, maven downloads almost 200 separate .jar files totalling over 30M during build. The only way to get it to build with systrace is to run it first without systrace, and then tar up the maven repository with the cached .jar files, use that tarball as a separate distfile, and run maven in offline mode. I actually had a diff that did that, but after talking to upstream, it turns out that there is a much easier way. There's actually no reason to use a src tarball, since that just involves compiling java source files to java bytecode files. We can just use the java bytecode files directly via the bin tarball. So this diff switches the port to use the bin tarball. The bin tarball doesn't include jruby-launcher, so that is used as a separate distfile. jffi still needs to be recompiled with ant, since that uses native code, so that part hasn't changed. Our patched jnr-posix library is included by overriding the jnr/posix directory inside the lib/jruby.jar file. The bin tarball doesn't include the tests, so remove the test code and set NO_TEST. Here's a new diff file. This uses both the -src and -bin distfiles, with the -src distfile being used for just the tests (which it doesn't pass cleanly and has never passed cleanly). Personally, I don't think it's a good idea, but I'm not strongly opposed to it. Only other change from previous diff is this includes a new patch that fixes a bug in rubygems where it wouldn't install ruby gem ports that had files starting with '.'. This is necessary in order for it to install the gems needed to run the regress tests. Still planning on committing this in a couple days if I don't hear objections. Thanks, Jeremy Index: Makefile === RCS file: /cvs/ports/lang/jruby/Makefile,v retrieving revision 1.38 diff -u -p -r1.38 Makefile --- Makefile22 Aug 2013 21:35:57 - 1.38 +++ Makefile10 Oct 2013 16:34:08 - @@ -4,25 +4,27 @@ SHARED_ONLY = Yes COMMENT = pure-Java implementation of the Ruby language -V =1.7.4 -REVISION = 0 -DISTNAME = jruby-src-${V} +V =1.7.5 +DISTNAME = jruby-bin-${V} PKGNAME = jruby-${V} CATEGORIES = lang lang/ruby DISTFILES =${DISTNAME}.tar.gz \ + jruby-src-${V}.tar.gz \ jnr-jffi-1.2.2-0-g4c196bb.tar.gz:0 \ - jnr-posix.20130822.tar.gz:1 + jnr-posix.20130822.tar.gz:1 \ + ${JRUBY_LAUNCHER_GEM}:2 HOMEPAGE = http://www.jruby.org/ MAINTAINER = Jeremy Evans jer...@openbsd.org -# CPL/GPLv2/LGPLv2.1/GPLv3/LGPLv3 +# EPLv1/GPLv2/LGPLv2.1/Ruby/MIT/BSD/Apache/CPL PERMIT_PACKAGE_CDROM = Yes MASTER_SITES = http://jruby.org.s3.amazonaws.com/downloads/${V}/ MASTER_SITES0 =http://www.distfiles.nl/ MASTER_SITES1 =http://spacehopper.org/mirrors/ +MASTER_SITES2 =${MASTER_SITE_RUBYGEMS} MODULES = java MODJAVA_VER = 1.7+ @@ -31,7 +33,9 @@ USE_GMAKE = Yes WANTLIB = c m pthread stdc++ -BUILD_DEPENDS =devel/apache-ant \ +BUILD_DEPENDS =archivers/unzip \ + archivers/zip \ + devel/apache-ant \ shells/bash \ ${RUN_DEPENDS} RUN_DEPENDS = java/javaPathHelper @@ -46,56 +50,46 @@ ANT_CMD = ${SETENV} ${MAKE_ENV} PATH=${J JFFI_HOME =${WRKDIST}/jffi JFFI_ARCH =${MACHINE_ARCH:S/amd64/x86_64/}-OpenBSD FFI_ARCH = ${JFFI_ARCH:L} -RAKE_V = 10.0.3 -JRUBY_LAUNCHER_V = 1.0.15 -SUBST_VARS = JRUBY_HOME JFFI_ARCH FFI_ARCH RAKE_V JRUBY_LAUNCHER_V +RAKE_V = 10.1.0 +JRUBY_LAUNCHER_GEM = jruby-launcher-1.0.19-java.gem +SUBST_VARS = JRUBY_HOME JFFI_ARCH FFI_ARCH RAKE_V post-extract: mv ${WRKDIR}/jnr-jffi* ${JFFI_HOME} - mv ${WRKDIR}/jnr-posix.jar ${WRKSRC}/build_lib/ + cd ${WRKSRC} unzip ${WRKDIR}/jnr-posix.jar # Unpack the jruby-launcher gem, since it needs to be patched - cp ${WRKSRC}/build_lib/jruby-launcher-${JRUBY_LAUNCHER_V}-java{,-orig}.gem - cd ${WRKSRC} mkdir jruby-launcher tar xf \ - build_lib/jruby-launcher-${JRUBY_LAUNCHER_V}-java.gem \ -cd jruby-launcher tar zxf ../data.tar.gz + cd ${WRKSRC} mkdir
Update lang/jruby 1.7.4 - 1.7.5
There were many changes in this update, more than you would expect in a tiny release, including: 243 issues fixed Many many encoding/M17n issues resolved. Improved transcoding support Fiber fixes Ripper support Faster pathname implementation Faster date/time implementations Improved call performance for magic globals ($~ and $_) Block/proc creation and dispatch performance improvements Moved build to Maven from Ant. See BUILDING.md. Updated RubyGems to version 2.1.5 Moved several standard libraries out as default gems Portswise, the main change is the change from the ant to maven based build system. Unfortunately, with this new build system, maven downloads almost 200 separate .jar files totalling over 30M during build. The only way to get it to build with systrace is to run it first without systrace, and then tar up the maven repository with the cached .jar files, use that tarball as a separate distfile, and run maven in offline mode. I actually had a diff that did that, but after talking to upstream, it turns out that there is a much easier way. There's actually no reason to use a src tarball, since that just involves compiling java source files to java bytecode files. We can just use the java bytecode files directly via the bin tarball. So this diff switches the port to use the bin tarball. The bin tarball doesn't include jruby-launcher, so that is used as a separate distfile. jffi still needs to be recompiled with ant, since that uses native code, so that part hasn't changed. Our patched jnr-posix library is included by overriding the jnr/posix directory inside the lib/jruby.jar file. The bin tarball doesn't include the tests, so remove the test code and set NO_TEST. Tested on i386, compiles fine on amd64. I plan to commit this in a couple days if I hear no objections. Thanks, Jeremy Index: Makefile === RCS file: /cvs/ports/lang/jruby/Makefile,v retrieving revision 1.38 diff -u -p -r1.38 Makefile --- Makefile22 Aug 2013 21:35:57 - 1.38 +++ Makefile10 Oct 2013 01:10:49 - @@ -4,25 +4,26 @@ SHARED_ONLY = Yes COMMENT = pure-Java implementation of the Ruby language -V =1.7.4 -REVISION = 0 -DISTNAME = jruby-src-${V} +V =1.7.5 +DISTNAME = jruby-bin-${V} PKGNAME = jruby-${V} CATEGORIES = lang lang/ruby DISTFILES =${DISTNAME}.tar.gz \ jnr-jffi-1.2.2-0-g4c196bb.tar.gz:0 \ - jnr-posix.20130822.tar.gz:1 + jnr-posix.20130822.tar.gz:1 \ + ${JRUBY_LAUNCHER_GEM}:2 HOMEPAGE = http://www.jruby.org/ MAINTAINER = Jeremy Evans jer...@openbsd.org -# CPL/GPLv2/LGPLv2.1/GPLv3/LGPLv3 +# EPLv1/GPLv2/LGPLv2.1/Ruby/MIT/BSD/Apache/CPL PERMIT_PACKAGE_CDROM = Yes MASTER_SITES = http://jruby.org.s3.amazonaws.com/downloads/${V}/ MASTER_SITES0 =http://www.distfiles.nl/ MASTER_SITES1 =http://spacehopper.org/mirrors/ +MASTER_SITES2 =${MASTER_SITE_RUBYGEMS} MODULES = java MODJAVA_VER = 1.7+ @@ -31,7 +32,9 @@ USE_GMAKE = Yes WANTLIB = c m pthread stdc++ -BUILD_DEPENDS =devel/apache-ant \ +BUILD_DEPENDS =archivers/unzip \ + archivers/zip \ + devel/apache-ant \ shells/bash \ ${RUN_DEPENDS} RUN_DEPENDS = java/javaPathHelper @@ -46,74 +49,52 @@ ANT_CMD = ${SETENV} ${MAKE_ENV} PATH=${J JFFI_HOME =${WRKDIST}/jffi JFFI_ARCH =${MACHINE_ARCH:S/amd64/x86_64/}-OpenBSD FFI_ARCH = ${JFFI_ARCH:L} -RAKE_V = 10.0.3 -JRUBY_LAUNCHER_V = 1.0.15 -SUBST_VARS = JRUBY_HOME JFFI_ARCH FFI_ARCH RAKE_V JRUBY_LAUNCHER_V +RAKE_V = 10.1.0 +JRUBY_LAUNCHER_GEM = jruby-launcher-1.0.19-java.gem +SUBST_VARS = JRUBY_HOME JFFI_ARCH FFI_ARCH RAKE_V post-extract: mv ${WRKDIR}/jnr-jffi* ${JFFI_HOME} - mv ${WRKDIR}/jnr-posix.jar ${WRKSRC}/build_lib/ + cd ${WRKSRC} unzip ${WRKDIR}/jnr-posix.jar # Unpack the jruby-launcher gem, since it needs to be patched - cp ${WRKSRC}/build_lib/jruby-launcher-${JRUBY_LAUNCHER_V}-java{,-orig}.gem - cd ${WRKSRC} mkdir jruby-launcher tar xf \ - build_lib/jruby-launcher-${JRUBY_LAUNCHER_V}-java.gem \ -cd jruby-launcher tar zxf ../data.tar.gz + cd ${WRKSRC} mkdir jruby-launcher \ +cd jruby-launcher tar zxf ../../data.tar.gz \ +rm -f ../../data.tar.gz -pre-configure: +do-configure: ${SUBST_CMD} ${WRKSRC}/jruby-launcher/jrubyexe.cpp \ ${WRKSRC}/jruby-launcher/unixlauncher.cpp - # Rebuild the jruby-launcher gem - cd ${WRKSRC}/jruby-launcher find . -type f \! -name '*.orig' -print | \ - pax -wz -s '/^\.\///' -f ../data.tar.gz - cd ${WRKSRC} tar cf \ - build_lib/jruby-launcher-${JRUBY_LAUNCHER_V}-java.gem \ - data.tar.gz metadata.gz + cd