From 7cf0b81f436dcfd0278e9661cda65af4353cc29c Mon Sep 17 00:00:00 2001 From: Steve Wills Date: Sun, 28 Apr 2019 12:10:00 +0000 Subject: [PATCH] lang/J: Update to j807-release MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR: 236454 Submitted by: João Neves (maintainer) --- lang/J/Makefile | 32 +++++++++--- lang/J/distinfo | 6 +-- lang/J/files/jconsole.in | 2 - lang/J/files/patch-Makefile | 7 +-- .../patch-jlibrary_system_config_base.cfg | 22 ++++---- .../patch-jlibrary_system_main_regex.ijs | 27 ++++++---- .../patch-jlibrary_system_main_stdlib.ijs | 18 +++++-- lang/J/files/patch-jsrc_jeload.c | 11 ++++ lang/J/files/patch-make_build__jconsole.sh | 18 +++---- lang/J/files/patch-make_build__libj.sh | 50 +++++++++---------- lang/J/files/patch-make_build__tsdll.sh | 30 +++++++---- lang/J/files/patch-make_domake.sh | 24 +++------ lang/J/files/patch-make_jvars.sh | 27 ++++++---- lang/J/files/patch-make_makefile | 12 +++-- lang/J/files/patch-netdefs_netdefs.c | 16 +++--- lang/J/files/profile.ijs.in | 1 - lang/J/pkg-plist | 14 ++++-- 17 files changed, 186 insertions(+), 131 deletions(-) create mode 100644 lang/J/files/patch-jsrc_jeload.c diff --git a/lang/J/Makefile b/lang/J/Makefile index 25311d00147c..0f3ae613a7ab 100644 --- a/lang/J/Makefile +++ b/lang/J/Makefile @@ -1,25 +1,24 @@ # $FreeBSD$ PORTNAME= J -DISTVERSIONPREFIX= j -DISTVERSION= 808 -DISTVERSIONSUFFIX= -release +PORTVERSION= ${JVERSION:S/^j//:S/-release//} +PORTEPOCH= 1 CATEGORIES= lang math MAINTAINER= sevenjp@gmail.com COMMENT= J programming language LICENSE= GPLv3 -LICENSE_FILE= ${WRKSRC}/license.txt +LICENSE_FILE= ${WRKDIR}/jsource-${JVERSION}/license.txt -ONLY_FOR_ARCHS= amd64 -ONLY_FOR_ARCHS_REASON_i386= i386 needs hostdefs and netdefs files to be generated. +ONLY_FOR_ARCHS_REASON_amd64= Not built or tested for other archs. i386 needs hostdefs and netdefs files to be generated. BUILD_DEPENDS= bash:shells/bash -LIB_DEPENDS= libpcreposix.so:devel/pcre \ +LIB_DEPENDS= libpcre2-8.so:devel/pcre2 \ libsqlite3.so:databases/sqlite3 USES+= libedit gmake shebangfix uidfix + SHEBANG_GLOB= *.sh SUB_FILES= jconsole profile.ijs @@ -27,10 +26,29 @@ SUB_FILES= jconsole profile.ijs USE_GITHUB= yes GH_ACCOUNT= jsoftware GH_PROJECT= jsource +GH_TAGNAME= ${JVERSION} + +# J is released with ports-unfriendly versioning +JVERSION= j807-release BIN_FILES= jconsole LIB_FILES= libj.so libtsdll.so +OPTIONS_DEFINE= OPENMP + +OPENMP_DESC= Build with OpenMP support +OPENMP_USES= compiler:openmp +OPENMP_MAKE_ENV= USE_OPENMP=1 +OPENMP_LIB_DEPENDS= libgomp.so:lang/gcc7 + +# J wants to install jconsole, also provided by openjdk +CONFLICTS_INSTALL= openjdk6 \ + openjdk6-jre \ + openjdk7 \ + openjdk7-jre \ + openjdk8 \ + openjdk8-jre + do-install: ${MKDIR} ${STAGEDIR}${PREFIX}/lib/j/bin ${MKDIR} ${STAGEDIR}${PREFIX}/share/j/system diff --git a/lang/J/distinfo b/lang/J/distinfo index 908e8c3edb94..206da8ed1fa5 100644 --- a/lang/J/distinfo +++ b/lang/J/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1528123249 -SHA256 (jsoftware-jsource-j808-release_GH0.tar.gz) = 1c7335e0d705bfc630da230ee8d196487627eed6f9374728bcac6b9ffbb1fd1d -SIZE (jsoftware-jsource-j808-release_GH0.tar.gz) = 2128876 +TIMESTAMP = 1546772563 +SHA256 (jsoftware-jsource-807-j807-release_GH0.tar.gz) = 324ff0b046c9f7f24f18a72fa8a4253ad54c99a48c397fd2c724392f5e097d7f +SIZE (jsoftware-jsource-807-j807-release_GH0.tar.gz) = 2398318 diff --git a/lang/J/files/jconsole.in b/lang/J/files/jconsole.in index 0c70d925f898..f1ce5aa2f6f5 100644 --- a/lang/J/files/jconsole.in +++ b/lang/J/files/jconsole.in @@ -1,5 +1,3 @@ #!/bin/sh -# $FreeBSD$ - exec %%LOCALBASE%%/lib/j/bin/jconsole -jprofile %%LOCALBASE%%/share/j/profile.ijs diff --git a/lang/J/files/patch-Makefile b/lang/J/files/patch-Makefile index 3d78596e1887..51baac860247 100644 --- a/lang/J/files/patch-Makefile +++ b/lang/J/files/patch-Makefile @@ -1,6 +1,6 @@ --- Makefile.orig 2018-04-09 18:07:38 UTC +++ Makefile -@@ -0,0 +1,21 @@ +@@ -0,0 +1,18 @@ +.PHONY: all +all: make-${ARCH} + @@ -10,11 +10,8 @@ +.PHONY: make-i386 +make-i386: build-j32 + -+.PHONY: init -+init: ++build-%: + make/install.sh -+ -+build-%: init + make/build_jconsole.sh $* + make/build_libj.sh $* + make/build_tsdll.sh $* diff --git a/lang/J/files/patch-jlibrary_system_config_base.cfg b/lang/J/files/patch-jlibrary_system_config_base.cfg index 3570bb64a0f5..fc2f35366713 100644 --- a/lang/J/files/patch-jlibrary_system_config_base.cfg +++ b/lang/J/files/patch-jlibrary_system_config_base.cfg @@ -1,21 +1,21 @@ ---- jlibrary/system/config/base.cfg.orig 2016-11-25 19:04:24 UTC +--- jlibrary/system/config/base.cfg.orig 2019-01-06 11:06:00 UTC +++ jlibrary/system/config/base.cfg -@@ -93,6 +93,18 @@ case. 'Linux' do. - XDiff=: '/usr/bin/meld' - Editor=: 'geany +%l %f' - Editor_nox=: 'vi -c%l %f' +@@ -90,6 +90,18 @@ case. 'Linux' do. + XDiff=: '' + Editor=: '' + Editor_nox=: '' +case. 'FreeBSD' do. + BoxForm=: 0 + Browser=: '' -+ Browser_nox=: '/usr/bin/w3m' -+ EPSReader=: '/usr/bin/evince' ++ Browser_nox=: '' ++ EPSReader=: '' + ImageViewer=: '' + ImageViewer_nox=: '' -+ PDFReader=: '/usr/bin/evince' ++ PDFReader=: '' + PDFReader_nox=: '' -+ XDiff=: '/usr/bin/meld' -+ Editor=: 'geany +%l %f' -+ Editor_nox=: 'vi -c%l %f' ++ XDiff=: '' ++ Editor=: '' ++ Editor_nox=: '' case. 'Win' do. BoxForm=: 1 Browser=: '' diff --git a/lang/J/files/patch-jlibrary_system_main_regex.ijs b/lang/J/files/patch-jlibrary_system_main_regex.ijs index f93061a5bf9a..95bb4c9cfe75 100644 --- a/lang/J/files/patch-jlibrary_system_main_regex.ijs +++ b/lang/J/files/patch-jlibrary_system_main_regex.ijs @@ -1,10 +1,19 @@ ---- jlibrary/system/main/regex.ijs.orig 2018-03-07 18:59:01 UTC +--- jlibrary/system/main/regex.ijs.orig 2019-01-06 11:11:14 UTC +++ jlibrary/system/main/regex.ijs -@@ -101,6 +101,7 @@ NB. rxdll is in bin or tools/regex - select. UNAME - case. 'Win' do. t=. 'jpcre.dll' - case. 'Darwin' do. t=. 'libjpcre.dylib' -+case. 'FreeBSD' do. t=. 'libpcreposix.so' - fcase. 'Linux' do. - if. 2 0-:('libpcreposix.so.3 dummyfunction n')&(15!:0) ::(15!:10) '' do. - rxdll=: 'libpcreposix.so.3' +@@ -179,6 +179,7 @@ select. UNAME + case. 'Win' do. t=. 'jpcre2.dll' + case. 'Darwin' do. t=. 'libjpcre2.dylib' + case. 'Linux' do. t=. 'libjpcre2.so' ++case. 'FreeBSD' do. t=. 'libjpcre2.so' + case. 'Android' do. t=. 'libjpcre2.so' + end. + +@@ -191,6 +192,8 @@ NB. fall back one more time + if. ('Android'-:UNAME) *. 0 = 1!:4 :: 0: '/'e.LIBFILE) *. 0 = 1!:4 :: 0: '/'e.LIBFILE) *. 0 = 1!:4 :: 0: '/'e.LIBFILE + end. + 'libc.so.6 setlocale > x i *c'&(15!:0)^:(UNAME-:'Linux') 1;,'C' ++'libc.so.7 setlocale > x i *c'&(15!:0)^:(UNAME-:'FreeBSD') 1;,'C' + if. notdef 'IFRASPI' do. + if. UNAME -: 'Linux' do. + cpu=. 2!:0 'cat /proc/cpuinfo' +@@ -106,6 +107,7 @@ if. (<'home') -.@e. {."1 SystemFolders do. elseif. 'Android'-:UNAME do. t=. '/sdcard' elseif. 'Darwin'-:UNAME do. t=. (0-:t){::'';~t=. 2!:5'HOME' elseif. 'Linux'-:UNAME do. t=. (0-:t){::'';~t=. 2!:5'HOME' @@ -8,7 +16,7 @@ elseif. do. t=. '' end. if. (''-:t)+.((,'/')-:t)+.('/root'-:t)+.('/usr/'-:5{.t) do. -@@ -107,6 +108,7 @@ if. (<'temp') -.@e. {."1 SystemFolders d +@@ -120,6 +122,7 @@ if. (<'temp') -.@e. {."1 SystemFolders do. elseif. 'Android'-:UNAME do. t=. '/sdcard' elseif. 'Darwin'-:UNAME do. 1!:5 ::] = 7 | bc) ++if [ $OVER_GCC_VER7 -eq 1 ] ; then ++common="$common -Wno-implicit-fallthrough" ++fi ++OVER_GCC_VER8=$(echo `$CC -dumpversion | cut -f1 -d.` \>= 8 | bc) ++if [ $OVER_GCC_VER8 -eq 1 ] ; then ++common="$common -Wno-cast-function-type" ++fi ++fi ++ case $jplatform\_$1 in -@@ -33,6 +32,16 @@ TARGET=libtsdll.dylib + linux_j32) +@@ -35,6 +48,16 @@ darwin_j64) + TARGET=libtsdll.dylib COMPILE="$common " LINK=" -dynamiclib -o libtsdll.dylib " - ;; ++;; +freebsd_j32) +TARGET=libtsdll.so +COMPILE="$common -m32 " @@ -25,7 +38,6 @@ +TARGET=libtsdll.so +COMPILE="$common " +LINK=" -shared -Wl,-soname,libtsdll.so -o libtsdll.so " -+;; + ;; *) echo no case for those parameters - exit diff --git a/lang/J/files/patch-make_domake.sh b/lang/J/files/patch-make_domake.sh index 881ba0478490..6b77cd9186d4 100644 --- a/lang/J/files/patch-make_domake.sh +++ b/lang/J/files/patch-make_domake.sh @@ -1,19 +1,11 @@ ---- make/domake.sh.orig 2018-04-09 18:08:56 UTC +--- make/domake.sh.orig 2019-01-06 11:36:39 UTC +++ make/domake.sh -@@ -3,8 +3,7 @@ - # run by build_jconsole and build_libj - # $1 is j32 or j64 +@@ -15,7 +15,7 @@ if [ $1 = "j64nonavx" ] ; then + avx=-nonavx + fi --cd ~ --. jvars.sh -+. make/jvars.sh - - echo $TARGET - echo $COMPILE -@@ -12,5 +11,5 @@ echo $LINK - mkdir -p $jbld/jout/$TARGET/$1 - cd $jbld/jout/$TARGET/$1 - --make -f $jmake/makefile +-echo "building $jbld/$targ/bin/$TARGET $avx" +gmake -f $jmake/makefile - cp $TARGET $jbld/$1/bin + echo "output in $jbld/$targ/bin/build_$TARGET$avx.txt" + make -f $jmake/makefile >$jbld/$targ/bin/build_$TARGET$avx.txt 2>&1 + echo `egrep -w 'warning|error|note' $jbld/$targ/bin/build_$TARGET$avx.txt` diff --git a/lang/J/files/patch-make_jvars.sh b/lang/J/files/patch-make_jvars.sh index 2a76845f23d0..946183ac9f82 100644 --- a/lang/J/files/patch-make_jvars.sh +++ b/lang/J/files/patch-make_jvars.sh @@ -1,16 +1,25 @@ ---- make/jvars.sh.orig 2018-04-09 18:05:09 UTC +--- make/jvars.sh.orig 2019-03-10 15:55:44 UTC +++ make/jvars.sh -@@ -1,11 +1,11 @@ +@@ -2,7 +2,7 @@ # source shell script (read with . jvars.sh) so stuff is easy to find # edit following if your install is not standard --jgit=~/gitdev/jsource # git jsource folder -+jgit=~/jsource-j808-release # git jsource folder - jbld=~/jbld # test libraries and binaries will be put here +-jgit=~/git/jsource # git jsource folder ++jgit=~/jsource-j807-release # git jsource folder + jbld=~/jbld # test libraries and binaries will be put here - # edit platform to build - linux darwin raspberry --jplatform=linux -+jplatform=freebsd + # platform and shared library suffix +@@ -10,7 +10,12 @@ jplatform=`uname|tr '[:upper:]' '[:lower:]'` + jsuffix=so + if [ $jplatform = "darwin" ] ; then jsuffix=dylib ; fi + +-CC=clang # compiler ++USE_OPENMP="${USE_OPENMP:=0}" ++if [ $USE_OPENMP -eq 1 ] ; then ++ CC=gcc8 ++else ++ CC=clang # compiler ++fi # should not be necessary to edit after here - j32=$jbld/j32/bin/jconsole + tsu=$jgit/test/tsu.ijs diff --git a/lang/J/files/patch-make_makefile b/lang/J/files/patch-make_makefile index dde7365c7252..5a618610997b 100644 --- a/lang/J/files/patch-make_makefile +++ b/lang/J/files/patch-make_makefile @@ -1,9 +1,11 @@ ---- make/makefile.orig 2016-11-25 19:04:24 UTC +--- make/makefile.orig 2018-10-02 13:24:06 UTC +++ make/makefile -@@ -1,5 +1,5 @@ - vpath % $(jgit)/jsrc +@@ -3,7 +3,7 @@ vpath % $(jgit)/jsrc + %.o: %.c + $(CC) -c $(CFLAGS) $(CFLAGS_FMA) -o$@ $^ -CFLAGS=$(COMPILE) +CFLAGS+=$(COMPILE) - $(TARGET) : $(OBJS) - $(CC) $(OBJS) $(LINK) + $(OBJS_FMA) : CFLAGS_FMA := -mfma + $(TARGET) : $(OBJS) $(OBJS_FMA) + $(CC) $(OBJS) $(OBJS_FMA) $(LINK) diff --git a/lang/J/files/patch-netdefs_netdefs.c b/lang/J/files/patch-netdefs_netdefs.c index cafbfc75f2fc..0e43838d1216 100644 --- a/lang/J/files/patch-netdefs_netdefs.c +++ b/lang/J/files/patch-netdefs_netdefs.c @@ -1,11 +1,11 @@ ---- netdefs/netdefs.c.orig 2016-11-25 19:04:24 UTC +--- netdefs/netdefs.c.orig 2019-01-06 15:19:53 UTC +++ netdefs/netdefs.c -@@ -147,7 +147,7 @@ int main(){ - printf ("msg_iov_sz=: %d\n",sizeof(((struct msghdr*)0)->msg_iov)); - printf ("msg_iovlen_off=: %d\n",offset(struct msghdr,msg_iovlen)); - printf ("msg_iovlen_sz=: %d\n",sizeof(((struct msghdr*)0)->msg_iovlen)); +@@ -152,7 +152,7 @@ int main(){ + printf ("msg_iov_sz=: " FMTI "\n",sizeof(((struct msghdr*)0)->msg_iov)); + printf ("msg_iovlen_off=: " FMTI "\n",offset(struct msghdr,msg_iovlen)); + printf ("msg_iovlen_sz=: " FMTI "\n",sizeof(((struct msghdr*)0)->msg_iovlen)); -#if defined(linux) || defined(Darwin) +#if defined(linux) || defined(Darwin) || defined(__FreeBSD__) - printf ("msg_control_off=: %d\n",offset(struct msghdr,msg_control)); - printf ("msg_control_sz=: %d\n",sizeof(((struct msghdr*)0)->msg_control)); - printf ("msg_controllen_off=: %d\n",offset(struct msghdr,msg_controllen)); + printf ("msg_control_off=: " FMTI "\n",offset(struct msghdr,msg_control)); + printf ("msg_control_sz=: " FMTI "\n",sizeof(((struct msghdr*)0)->msg_control)); + printf ("msg_controllen_off=: " FMTI "\n",offset(struct msghdr,msg_controllen)); diff --git a/lang/J/files/profile.ijs.in b/lang/J/files/profile.ijs.in index 8a85a66649ed..da4a9a1a689c 100644 --- a/lang/J/files/profile.ijs.in +++ b/lang/J/files/profile.ijs.in @@ -1,7 +1,6 @@ NB. J profile NB. JFE sets BINPATH_z_ and ARGV_z_ NB. add your sentences in startup.ijs -NB. $FreeBSD$ systype=. 9!:12'' jpathsep_z_=: '/'&(('\' I.@:= ])}) diff --git a/lang/J/pkg-plist b/lang/J/pkg-plist index ed4ac18228e8..f5aa80988b24 100644 --- a/lang/J/pkg-plist +++ b/lang/J/pkg-plist @@ -2,6 +2,13 @@ bin/jconsole lib/j/bin/jconsole lib/j/bin/libj.so lib/j/bin/libtsdll.so +share/j/addons/data/jfiles/history.txt +share/j/addons/data/jfiles/jfiles.ijs +share/j/addons/data/jfiles/jfiles.txt +share/j/addons/data/jfiles/keyfiles.txt +share/j/addons/data/jfiles/manifest.ijs +share/j/addons/data/jfiles/test/test0.ijs +share/j/addons/data/jfiles/test/test1.ijs share/j/addons/data/jmf/history.txt share/j/addons/data/jmf/jmf.ijs share/j/addons/data/jmf/manifest.ijs @@ -109,6 +116,7 @@ share/j/system/config/folders.cfg share/j/system/config/version.txt share/j/system/defs/hostdefs_aix.ijs share/j/system/defs/hostdefs_android.ijs +share/j/system/defs/hostdefs_android_64.ijs share/j/system/defs/hostdefs_darwin.ijs share/j/system/defs/hostdefs_darwin_64.ijs share/j/system/defs/hostdefs_freebsd_64.ijs @@ -120,6 +128,7 @@ share/j/system/defs/hostdefs_win.ijs share/j/system/defs/hostdefs_win_64.ijs share/j/system/defs/netdefs_aix.ijs share/j/system/defs/netdefs_android.ijs +share/j/system/defs/netdefs_android_64.ijs share/j/system/defs/netdefs_darwin.ijs share/j/system/defs/netdefs_darwin_64.ijs share/j/system/defs/netdefs_freebsd_64.ijs @@ -129,7 +138,6 @@ share/j/system/defs/netdefs_linux_64.ijs share/j/system/defs/netdefs_sunos.ijs share/j/system/defs/netdefs_win.ijs share/j/system/defs/netdefs_win_64.ijs -share/j/system/main/ctag.ijs share/j/system/main/regex.ijs share/j/system/main/regex.ijs.orig share/j/system/main/socket.ijs @@ -138,13 +146,9 @@ share/j/system/main/stdlib.ijs.orig share/j/system/main/task.ijs share/j/system/util/boot.ijs share/j/system/util/configure.ijs -share/j/system/util/edit.png -share/j/system/util/edit.svg -share/j/system/util/jadetag.ijs share/j/system/util/pacman.ijs share/j/system/util/pm.ijs share/j/system/util/pp.ijs share/j/system/util/project.ijs share/j/system/util/scripts.ijs share/j/system/util/tar.ijs -share/j/system/util/term.png