Re: Update lang/jruby 1.7.4 - 1.7.5

2013-10-10 Thread Landry Breuil
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

2013-10-10 Thread Jeremy Evans
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

2013-10-10 Thread Jeremy Evans
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

2013-10-09 Thread Jeremy Evans
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