This is an update to the lang/ici port to bring it up to the most recent release of ICI and to form a basis for correct port issues on non-x86 architectures. The existing lang/ici port uses a rather old version of the ici interpreter and was seriously out of date. The newer version of the language includes numerous extra features and provides for a simpler port (e.g. fewer installed files) as well as making issue fixing somewhat more beneficial and simpler. Note that as I currently have no access to a CURRENT machine this port may have issues. Mail to freebsd-ports asking for testers will be forth coming however I felt it was necessary to at least get this submitted as a PR to show the port has some life in it. Fix: The "replacement" port files are included in the shell archive below.
State Changed From-To: open->feedback Please submit diff in unified format.
As requsted here's a unidiff between the current ports entry and the new one. Note that the patches get trunacted as they are either no longer valid or have been incorporated into the mainline sources. diff -rNu /usr/ports/lang/ici/Makefile ./Makefile --- /usr/ports/lang/ici/Makefile Sat Feb 14 22:01:40 2004 +++ ./Makefile Thu Mar 18 07:58:43 2004 @@ -6,7 +6,7 @@ # PORTNAME= ici -PORTVERSION= 3.0.1 +PORTVERSION= 4.1.1 CATEGORIES= lang MASTER_SITES= http://www.zeta.org.au/~atrn/ici/distfiles/ @@ -14,53 +14,38 @@ COMMENT= An interpretive language with C's feel and high level data types MAKEFILE= Makefile.bsd -MAN1= ici3.1 -MANCOMPRESSED= yes - -USE_REINPLACE= yes -USE_BZIP2= yes -ICIHDRS= alloc.h array.h buf.h catch.h cfunc.h conf-bsd.h exec.h file.h \ - float.h forall.h func.h fwd.h ici.h int.h mark.h mem.h \ - method.h null.h object.h op.h parse.h pc.h primes.h ptr.h re.h \ - set.h skt.h src.h str.h struct.h trace.h win.h wrap.h +MAN1= ici.1 icifuncs.1 icioo.1 iciops.1 icire.1\ + icistmt.1 icitypes.1 -ICIPCREHDRS= pcre/internal.h pcre/pcre.h +MANCOMPRESSED= yes -ICIDOCS= doc/ici-a4.ps doc/ici-ltr.ps doc/ici.txt doc/ici.pdf +ALL_TARGET= all ici.h -.include <bsd.port.pre.mk> +ICIHDRS= ici.h icistr-setup.h -.if ${OSVERSION} >= 502000 -BROKEN= "Does not compile" -.endif - -post-patch: - ${REINPLACE_CMD} -e 's/float_t/floats_t/g' ${WRKSRC}/*.[ch] +ICIDOCS= doc/ici.pdf do-install: - cd ${WRKSRC} && ${MAKE} -f ${MAKEFILE} libici3.a - ${INSTALL_PROGRAM} ${WRKSRC}/ici3 ${PREFIX}/bin - ${INSTALL_DATA} ${WRKSRC}/libici3.a ${PREFIX}/lib - ${INSTALL_MAN} ${WRKSRC}/ici3.1.gz ${PREFIX}/man/man1 - ${MKDIR} ${PREFIX}/lib/ici3 - ${INSTALL_DATA} ${WRKSRC}/ici3core.ici ${PREFIX}/lib/ici3 - ${INSTALL_DATA} ${WRKSRC}/ici3core1.ici ${PREFIX}/lib/ici3 - ${INSTALL_DATA} ${WRKSRC}/ici3core2.ici ${PREFIX}/lib/ici3 - ${INSTALL_DATA} ${WRKSRC}/ici3core3.ici ${PREFIX}/lib/ici3 - ${MKDIR} ${PREFIX}/include/ici3 - ${MKDIR} ${PREFIX}/include/ici3/pcre -.for f in ${ICIHDRS} - ${INSTALL_DATA} ${WRKSRC}/$f ${PREFIX}/include/ici3 + ${INSTALL_PROGRAM} ${WRKSRC}/ici ${PREFIX}/bin + ${INSTALL_DATA} ${WRKSRC}/libici4.a ${PREFIX}/lib +.for f in ${MAN1} + ${INSTALL_MAN} ${WRKSRC}/${f}.gz ${PREFIX}/man/man1 .endfor -.for f in ${ICIPCREHDRS} - ${INSTALL_DATA} ${WRKSRC}/$f ${PREFIX}/include/ici3/pcre + ${MKDIR} ${PREFIX}/lib/ici4 + ${INSTALL_DATA} ${WRKSRC}/ici4core.ici ${PREFIX}/lib/ici4 + ${INSTALL_DATA} ${WRKSRC}/ici4core1.ici ${PREFIX}/lib/ici4 + ${INSTALL_DATA} ${WRKSRC}/ici4core2.ici ${PREFIX}/lib/ici4 + ${INSTALL_DATA} ${WRKSRC}/ici4core3.ici ${PREFIX}/lib/ici4 + ${MKDIR} ${PREFIX}/include +.for f in ${ICIHDRS} + ${INSTALL_DATA} ${WRKSRC}/$f ${PREFIX}/include .endfor .if !defined(NOPORTDOCS) - ${MKDIR} ${PREFIX}/share/doc/ici3 + ${MKDIR} ${PREFIX}/share/doc/ici4 .for f in ${ICIDOCS} - ${INSTALL_MAN} ${WRKSRC}/$f ${PREFIX}/share/doc/ici3 + ${INSTALL_MAN} ${WRKSRC}/$f ${PREFIX}/share/doc/ici4 .endfor .endif -.include <bsd.port.post.mk> +.include <bsd.port.mk> diff -rNu /usr/ports/lang/ici/distinfo ./distinfo --- /usr/ports/lang/ici/distinfo Fri Apr 5 07:08:27 2002 +++ ./distinfo Wed Mar 17 20:47:39 2004 @@ -1 +1 @@ -MD5 (ici-3.0.1.tar.bz2) = 6750eb9c8efc6a4d11cfb7554df7f10c +MD5 (ici-4.1.1.tar.gz) = 4511baa2731ed327b5730f414b3623ba diff -rNu /usr/ports/lang/ici/files/patch-Makefile.bsd ./files/patch-Makefile.bsd --- /usr/ports/lang/ici/files/patch-Makefile.bsd Fri Feb 13 15:17:05 2004 +++ ./files/patch-Makefile.bsd Thu Jan 1 10:00:00 1970 @@ -1,29 +0,0 @@ ---- Makefile.bsd Thu Apr 19 19:31:12 2001 -+++ Makefile.bsd Mon Jan 26 10:39:43 2004 -@@ -21,7 +21,7 @@ - findpath.c float.c forall.c\ - func.c icimain.c init.c int.c lex.c load.c main.c mark.c mem.c\ - method.c mkvar.c nptrs.c null.c object.c oofuncs.c op.c parse.c pc.c\ -- ptr.c refuncs.o regexp.c set.c\ -+ ptr.c refuncs.c regexp.c set.c\ - sfile.c signals.c skt.c smash.c src.c sstring.c string.c\ - struct.c syscall.c syserr.c ti.c trace.c unary.c uninit.c win.c\ - wrap.c buf.c strtol.c idb.c idb2.c profile.c win32err.c -@@ -59,16 +59,13 @@ - DOCS=\ - doc/ici-a4.ps doc/ici-ltr.ps doc/ici.txt - --beforeinstall: ici3.1.gz -+beforeinstall: - @echo '==========================================' - @echo 'Installing ici interpreter and manual page' - @echo '==========================================' - - ici3.1: $(MAN1) - ln -sf $(MAN1) $@ -- --ici3.1.gz: ici3.1 -- gzip -c ici3.1 > $@ - - libici3.a: $(OBJS) - $(AR) r libici3.a $(OBJS) diff -rNu /usr/ports/lang/ici/files/patch-cfunc.c ./files/patch-cfunc.c --- /usr/ports/lang/ici/files/patch-cfunc.c Fri Feb 13 15:17:05 2004 +++ ./files/patch-cfunc.c Thu Jan 1 10:00:00 1970 @@ -1,20 +0,0 @@ ---- cfunc.c Mon Jan 26 10:37:06 2004 -+++ cfunc.c Mon Jan 26 10:41:23 2004 -@@ -1378,7 +1378,7 @@ - register char *p; - register int i; /* Where we are up to in buf. */ - register int j; -- int which; -+ long which; - int nargs; - char subfmt[40]; /* %...? portion of string. */ - int stars[2]; /* Precision and field widths. */ -@@ -1395,7 +1395,7 @@ - #define IPLUSEQ i += - #endif - -- which = (int)CF_ARG1(); /* sprintf, printf, fprintf */ -+ which = (long)CF_ARG1(); /* sprintf, printf, fprintf */ - if (which != 0 && NARGS() > 0 && isfile(ARG(0))) - { - which = 2; diff -rNu /usr/ports/lang/ici/files/patch-syscall.c ./files/patch-syscall.c --- /usr/ports/lang/ici/files/patch-syscall.c Fri Feb 13 15:17:05 2004 +++ ./files/patch-syscall.c Thu Jan 1 10:00:00 1970 @@ -1,17 +0,0 @@ ---- syscall.c Mon Jan 26 10:37:06 2004 -+++ syscall.c Mon Jan 26 10:40:55 2004 -@@ -510,9 +510,13 @@ - f_ctime(void) - { - long timev; -+ time_t timet; - string_t *s; - -- if (ici_typecheck("i", &timev) || (s = new_cname(ctime(&timev))) == NULL) -+ if (ici_typecheck("i", &timev)) -+ return 1; -+ timet = timev; -+ if ((s = new_cname(ctime(&timet))) == NULL) - return 1; - return ici_ret_with_decref(objof(s)); - } diff -rNu /usr/ports/lang/ici/pkg-descr ./pkg-descr --- /usr/ports/lang/ici/pkg-descr Thu Feb 15 20:55:01 2001 +++ ./pkg-descr Sun Jan 26 22:27:04 2003 @@ -1,16 +1,20 @@ ICI is a C-like, high level language originally developed by Tim Long and placed into the public domain. ICI marries C's expression syntax, control structures and overall feel, with a dynamic, garbage -collected, object-based, data model. Version introduces a cleaner -class system for OO programming and refines the language. +collected, object-based, data model. Version 4 incorporates numerous +performance enhancements, refinements to existing features and new +features including native support for threads, a cleaner, more well +defined API for extension module authors and those embedding ICI +within other programs, and new documentation that is superior to +that provided in previous releases. ICI is typically used as a scripting-like language in the fashion of -Perl, Python, TCL and other such languages. ICI can be called from C -and the language itself can be extended allowing applications to -provide domain specific functions, types and operators for use in -their ICI programs. Embedding in an application also allows the -application to make use of ICI's efficient object system which -provides many useful facilities. +Perl, Python, Ruby, Lua, TCL and other such languages. ICI can be +called from C and the language itself can be extended allowing +applications to provide domain specific functions, types and +operators for use in their ICI programs. Embedding within applications +allows application authors to make use of ICI's efficient object +system which provides many useful facilities. ICI is in the public domain, there is no copyright on it. diff -rNu /usr/ports/lang/ici/pkg-plist ./pkg-plist --- /usr/ports/lang/ici/pkg-plist Fri Apr 5 07:08:27 2002 +++ ./pkg-plist Wed Mar 17 21:05:50 2004 @@ -1,49 +1,17 @@ -bin/ici3 -include/ici3/pcre/internal.h -include/ici3/pcre/pcre.h -include/ici3/alloc.h -include/ici3/array.h -include/ici3/buf.h -include/ici3/catch.h -include/ici3/cfunc.h -include/ici3/conf-bsd.h -include/ici3/exec.h -include/ici3/file.h -include/ici3/float.h -include/ici3/forall.h -include/ici3/func.h -include/ici3/fwd.h -include/ici3/ici.h -include/ici3/int.h -include/ici3/mark.h -include/ici3/mem.h -include/ici3/method.h -include/ici3/null.h -include/ici3/object.h -include/ici3/op.h -include/ici3/parse.h -include/ici3/pc.h -include/ici3/primes.h -include/ici3/ptr.h -include/ici3/re.h -include/ici3/set.h -include/ici3/skt.h -include/ici3/src.h -include/ici3/str.h -include/ici3/struct.h -include/ici3/trace.h -include/ici3/win.h -include/ici3/wrap.h -lib/ici3/ici3core.ici -lib/ici3/ici3core1.ici -lib/ici3/ici3core2.ici -lib/ici3/ici3core3.ici -lib/libici3.a -%%PORTDOCS%%share/doc/ici3/ici-a4.ps -%%PORTDOCS%%share/doc/ici3/ici-ltr.ps -%%PORTDOCS%%share/doc/ici3/ici.txt -%%PORTDOCS%%share/doc/ici3/ici.pdf -%%PORTDOCS%%@dirrm share/doc/ici3 -@dirrm include/ici3/pcre -@dirrm include/ici3 -@unexec rmdir %D/lib/ici3 2>/dev/null || true +bin/ici +include/ici.h +include/icistr-setup.h +lib/libici4.a +lib/ici4/ici4core.ici +lib/ici4/ici4core1.ici +lib/ici4/ici4core2.ici +lib/ici4/ici4core3.ici +man/man1/ici.1.gz +man/man1/icifuncs.1.gz +man/man1/icioo.1.gz +man/man1/iciops.1.gz +man/man1/icire.1.gz +man/man1/icistmt.1.gz +man/man1/icitypes.1.gz +%%DOCSDIR%%/ici4/ici.pdf +@unexec rmdir %D/lib/ici4 2>/dev/null || true
State Changed From-To: feedback->closed Committed, thanks!