Date: Fri, 7 Sep 2001 19:49:27 -0700 From: "George & Sarah Jean Cooper" <sargeo@bmi.net> To: <FreeBSD-gnats-submit@freebsd.org> Cc: <john_m_cooper@yahoo.com> Subject: ports/30428: [PATCH] Upgrade Rexx-IMC to 1.75 and fix rxmathfn breakage Message-ID: <000001c13810$e10025c0$05fea8c0@sargeo>
next in thread | raw e-mail | index | archive | help
>Number: 30428 >Category: ports >Synopsis: [PATCH] Upgrade Rexx-IMC to 1.75 and fix rxmathfn breakage >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Fri Sep 07 19:50:00 PDT 2001 >Closed-Date: >Last-Modified: >Originator: John Merryweather Cooper >Release: FreeBSD 4.4-RC i386 >Organization: <organization of PR author (multiple lines)> >Environment: System: FreeBSD johncoop.MSHOME 4.4-RC FreeBSD 4.4-RC #32: Wed Sep 5 09:17:03 PDT 2001 jmcoopr@johncoop.MSHOME:/usr/obj/usr/src/sys/JOHNCOOP i386 >Description: The current version of Rexx-IMC in ports, version 1.7, is broken with respect to all Rexx math functions because dynamic linking is not properly set up. This fixes it, upgrades to the latest release, cleans up the installation, installs two missing man pages, and enable "queue stuffing"--a feature near-and-dear to Rexx'ers. There are even some examples installed that I've patched to run from the command line. :) I'll also take over as maintainer. I don't have a -CURRENT to play with, but this should build and run on current too. As is becoming a pattern while my ISP figures out how to setup DNS, I'm submitting this from a WinDoze machine. Please CC any follow-up to jmcoopr@webmail.bmi.net and john_m_cooper@yahoo.com so I can read some of it. >How-To-Repeat: With the rexx-imc in ports installed, try running: $ rexx -s 'numeric digits 25;say sqrt(2)' With the currently installed rexx-imc, you'll get a Rexx error and no result. With this update, you'll get a reasonable approximation of the sqrt(2). >Fix: diff -ruN rexx-imc/Makefile rexx-imc.new/Makefile --- rexx-imc/Makefile Sat Oct 28 08:57:59 2000 +++ rexx-imc.new/Makefile Fri Sep 7 18:50:49 2001 @@ -2,27 +2,68 @@ # Date created: Septermber 21 96 # Whom: James FitzGibbon <jfitz@FreeBSD.org> # -# $FreeBSD: ports/lang/rexx-imc/Makefile,v 1.17 2000/10/28 15:57:59 kevlo Exp $ +# $FreeBSD$ # PORTNAME= rexx-imc -PORTVERSION= 1.7 +PORTVERSION= 1.75 CATEGORIES= lang MASTER_SITES= http://users.comlab.ox.ac.uk/ian.collier/distribution/ \ ftp://ftp.sai.msu.su/pub/unix/rexx/ \ ftp://crydee.sai.msu.ru/zeus/unix/rexx/ -PATCH_SITES= ${MASTER_SITES} -PATCHFILES= ${DISTNAME}-19990331.patch -PATCH_DIST_STRIP= -p1 -MAINTAINER= ports@FreeBSD.org +MAINTAINER= jmcoopr@webmail.bmi.net -MAKE_ENV= MKDIR="${MKDIR}" OPTFLAGS="${CFLAGS}" -INSTALLS_SHLIB= yes +HAS_CONFIGURE= yes +CONFIGURE_SCRIPT= Make +CONFIGURE_ENV= CFLAGS="${CFLAGS}" \ + PREFIX="${PREFIX}" +CONFIGURE_ARGS= o all -MAN1= rexx.1 +# configures and builds in one step +NO_BUILD= yes -post-extract: - @${CP} ${FILESDIR}/Makefile ${WRKSRC} +INSTALLS_SHLIB= yes + +MAN1= rexx.1 rxstack.1 rxque.1 + +do-install: +# install interpreter and daemon helpers +.for prog in rexx rxque rxstack + @${INSTALL_PROGRAM} ${WRKSRC}/${prog} ${PREFIX}/bin +.endfor + +# install shared libraries, include file, and rxlib +# DO NOT delete rxlib or you will lose ability to call mathlib!! +.for lib in librexx.so.2 rxmathfn.rxfn + @${INSTALL_PROGRAM} ${WRKSRC}/${lib} ${PREFIX}/lib +.endfor + @${LN} -sf ${PREFIX}/lib/librexx.so.2 ${PREFIX}/lib/librexx.so + @${INSTALL_DATA} ${WRKSRC}/rexxsaa.h ${PREFIX}/include + @${INSTALL_DATA} ${WRKSRC}/rxmathfn.rxlib ${PREFIX}/lib + +# install man pages +.for man in ${MAN1} + @${INSTALL_MAN} ${WRKSRC}/${man} ${PREFIX}/man/man1 +.endfor + +# install documenation and examples +.if !defined(NOPORTDOCS) + @${MKDIR} ${PREFIX}/share/doc/rexx-imc +.for rme in README README.Y2K README.bugreport README.docs README.files \ + README.make README.news README.platforms + @${INSTALL_DATA} ${WRKSRC}/${rme} ${PREFIX}/share/doc/rexx-imc +.endfor + +.for doc in rexx.info rexx.ref rexx.summary rexx.tech + @${INSTALL_DATA} ${WRKSRC}/${doc} ${PREFIX}/share/doc/rexx-imc +.endfor + + @${MKDIR} ${PREFIX}/share/examples/rexx-imc +.for ex in box rexxcps.rexx rexxtest.rexx rxmathfn.rexx shell.rexx + @${INSTALL_SCRIPT} ${WRKSRC}/${ex} ${PREFIX}/share/examples/rexx-imc +.endfor + +.endif .include <bsd.port.mk> diff -ruN rexx-imc/distinfo rexx-imc.new/distinfo --- rexx-imc/distinfo Mon Nov 6 01:58:23 2000 +++ rexx-imc.new/distinfo Fri Sep 7 10:17:53 2001 @@ -1,2 +1 @@ -MD5 (rexx-imc-1.7.tar.gz) = 2b55cbe521819e1edf43139125ced03a -MD5 (rexx-imc-1.7-19990331.patch) = 17f6401cb20fda7facafdaca79080748 +MD5 (rexx-imc-1.75.tar.gz) = bccecc3578deb6d7932b069b1e647ee2 diff -ruN rexx-imc/files/Makefile rexx-imc.new/files/Makefile --- rexx-imc/files/Makefile Sun May 28 19:20:47 2000 +++ rexx-imc.new/files/Makefile Wed Dec 31 16:00:00 1969 @@ -1,91 +0,0 @@ -# $FreeBSD: ports/lang/rexx-imc/files/Makefile,v 1.4 2000/05/29 02:20:47 steve Exp $ -# -# Makefile for REXX/imc-1.7? -# -# Based upon the original by the author -# Heavily hacked by jfitz@FreeBSD.ORG -# - -CC?= gcc -PIC= -fPIC -CCFLAGS= -DHAS_TTYCOM -D_REQUIRED -DRENAME_UNDELETE -c ${PIC} - -OPTFLAGS?= -O2 - -# Release Date Variables -RXDAY= 1 -RXMONTH= 8 -RXYEAR= 96 -DATE= -DDAY=${RXDAY} -DMONTH=${RXMONTH} -DYEAR=${RXYEAR} - -REXXDOCS= README README.bugreport README.docs \ - README.files README.make README.news README.platforms \ - rexx.info rexx.ref rexx.summary rexx.tech - -# Shared Library Version -VER= 2 -SHAREDLIB= librexx.so.${VER} -STATICLIB= librexx.a - -REXXLIB=${STATICLIB} ${SHAREDLIB} - -MATH= rxmathfn.rxfn -REXXIMC= ${PREFIX}/bin -FILEDEFS= -DREXXIMC=\"${REXXIMC}\" -LIBFILES= rexx.o rxfn.o calc.o util.o shell.o interface.o globals.o -HFILES= const.h globals.h functions.h rexxsaa.h - -all: rexx rxque rxstack ${MATH} rexx.1 - -interface.o: interface.c ${HFILES} - ${CC} ${OPTFLAGS} ${CCFLAGS} -c ${DATE} ${FILEDEFS} -o $@ interface.c - -${SHAREDLIB}: ${LIBFILES} - ${CC} -shared -Wl,-soname,$@ -o ${SHAREDLIB} ${LIBFILES} - ln -sf ${SHAREDLIB} librexx.so - -${STATICLIB}: ${LIBFILES} - ar rc ${STATICLIB} ${LIBFILES} - ${RANLIB} ${STATICLIB} - -rexx: main.o ${REXXLIB} - ${CC} ${OPTFLAGS} -o rexx main.o -L. -lrexx - -rxque: rxque.o ${STATICLIB} - ${CC} ${OPTFLAGS} -o rxque rxque.o - -rxstack: rxstack.o ${STATICLIB} - ${CC} ${OPTFLAGS} -o rxstack rxstack.o - -rxmathfn.rxfn: rxmathfn.o ${HFILES} - ${CC} -shared -o rxmathfn.rxfn rxmathfn.o -lm - -interface.o: interface.c ${HFILES} - ${CC} ${OPTFLAGS} ${CCFLAGS} -o interface.o ${FILEDEFS} interface.c - -rexx.1: rexx.1.in - sed -e "s|@REXXLIBDIR@|${PREFIX}/bin|" rexx.1.in > rexx.1 - -install: - @strip rxmathfn.rxfn -.for f in rexx rxque rxstack - ${BSD_INSTALL_PROGRAM} ${f} ${PREFIX}/bin -.endfor -.for f in rxmathfn.rxfn rxmathfn.rxlib - ${BSD_INSTALL_DATA} ${f} ${PREFIX}/bin -.endfor -.for f in ${REXXLIB} - ${BSD_INSTALL_DATA} ${f} ${PREFIX}/lib -.endfor - ln -sf ${SHAREDLIB} ${PREFIX}/lib/librexx.so - ${BSD_INSTALL_DATA} rexxsaa.h ${PREFIX}/include - ${BSD_INSTALL_MAN} rexx.1 ${PREFIX}/man/man1 -.if !defined(NOPORTDOCS) - ${MKDIR} ${PREFIX}/share/doc/rexx-imc -.for f in ${REXXDOCS} - ${BSD_INSTALL_DATA} ${f} ${PREFIX}/share/doc/rexx-imc -.endfor -.endif - -.c.o: - ${CC} ${OPTFLAGS} ${CCFLAGS} -o $@ $< diff -ruN rexx-imc/files/patch-Make rexx-imc.new/files/patch-Make --- rexx-imc/files/patch-Make Wed Dec 31 16:00:00 1969 +++ rexx-imc.new/files/patch-Make Fri Sep 7 16:40:37 2001 @@ -0,0 +1,87 @@ +--- Make Wed Nov 1 10:04:27 2000 ++++ Make.new Fri Sep 7 16:39:54 2001 +@@ -18,7 +18,7 @@ + LD=ld # linker for shared objects + COMPILEFLAG="" # general compilation flags for cc + LINKFLAG="" # general linker flags *for cc* +-#STUFF="-DSTUFF_STACK" # uncomment if you like queuing stack to keyboard ++STUFF="-DSTUFF_STACK" # uncomment if you like queuing stack to keyboard + # (not guaranteed to work on all systems) + SMALL=false # true if you like small executables (not guaranteed + # and not for ELF executables either) +@@ -98,6 +98,9 @@ + SunOS:5.*) + PREFIX="/opt/REXXimc" + ;; ++ FreeBSD:*) ++ PREFIX="${PREFIX}" ++ ;; + *|unknown) + PREFIX="/usr/local" + ;; +@@ -384,14 +387,14 @@ + esac + egrep -q tm_gmtoff /usr/include/time.h && CCFLAG="$CCFLAG -DHAS_GMTOFF" + ;; +- FreeBSD:*) ++ FreeBSD:3.*) + REXXLIB="librexx.so" + RANLIB=ranlib + MATH=rxmathfn.rxfn + LIBRARIES="" + SOFLAG="-Bshareable" + DLLFLAG="-Bshareable" +-# LREXX='$(LIBDIR)/$(SONAME)' ++ LREXX='$(LIBDIR)/$(SONAME)' + # Uncomment above line if you have problems with LD_LIBRARY_PATH + case $CC in + gcc) +@@ -401,6 +404,48 @@ + *) echo "Warning: I don't know the options for $CC"\ + "- trying the gcc ones" >&2 + CCFLAG="-DHAS_TTYCOM -D_REQUIRED -DRENAME_UNDELETE -DHAS_GMTOFF" ++ PIC="-fPIC" ++ ;; ++ esac ++ ;; ++ FreeBSD:4.*) ++ REXXLIB="librexx.so" ++ SOLINK="librexx.so" ++ RANLIB=ranlib ++ MATH=rxmathfn.rxfn ++ LIBRARIES="" ++ SOFLAG="-shared --export-dynamic" ++ : ${RUNLIBS='-L$(LIBDIR) -Wl,-rpath,$(PREFIX)/lib'} ++ DLLFLAG="-shared --export-dynamic" ++ case $CC in ++ gcc) ++ CCFLAG="${CFLAGS} -DHAS_TTYCOM -DRENAME_UNDELETE -DHAS_GMTOFF" ++ PIC="-fPIC" ++ ;; ++ *) echo "Warning: I don't know the options for $CC"\ ++ "- trying the gcc ones" >&2 ++ CCFLAG="${CFLAGS} -DHAS_TTYCOM -DRENAME_UNDELETE -DHAS_GMTOFF" ++ PIC="-fPIC" ++ ;; ++ esac ++ ;; ++ FreeBSD:5.*) ++ REXXLIB="librexx.so" ++ SOLINK="librexx.so" ++ RANLIB=ranlib ++ MATH=rxmathfn.rxfn ++ LIBRARIES="" ++ SOFLAG="-shared --export-dynamic" ++ : ${RUNLIBS='-L$(LIBDIR) -Wl,-rpath,$(PREFIX)/lib'} ++ DLLFLAG="-shared --export-dynamic" ++ case $CC in ++ gcc) ++ CCFLAG="${CFLAGS} -DHAS_TTYCOM -D_REQUIRED -DHAS_GMTOFF" ++ PIC="-fPIC" ++ ;; ++ *) echo "Warning: I don't know the options for $CC"\ ++ "- trying the gcc ones" >&2 ++ CCFLAG="${CFLAGS} -DHAS_TTYCOM -D_REQUIRED -DHAS_GMTOFF" + PIC="-fPIC" + ;; + esac diff -ruN rexx-imc/files/patch-Makefile.REXXimc rexx-imc.new/files/patch-Makefile.REXXimc --- rexx-imc/files/patch-Makefile.REXXimc Wed Dec 31 16:00:00 1969 +++ rexx-imc.new/files/patch-Makefile.REXXimc Fri Sep 7 18:54:42 2001 @@ -0,0 +1,37 @@ +--- Makefile.REXXimc Thu Feb 11 07:05:44 1999 ++++ Makefile.REXXimc.new Fri Sep 7 18:53:43 2001 +@@ -1,7 +1,7 @@ + #Makefile for REXX/imc + + SO = librexx.so +-SONAME= $(SO).$(VER) ++SONAME= $(SO).2 + + DATE = -DDAY=$(RXDAY) -DMONTH=$(RXMONTH) -DYEAR=$(RXYEAR) + +@@ -35,11 +35,13 @@ + + install-fn: $(MATH) + $(VERBOSE) "install-fn:" +- test -f rxmathfn.rxfn && cp -p rxmathfn.rxfn $(SRC)/rxmathfn.rxlib $(REXXLIBDIR) \ +- || cp -p $(SRC)/rxmathfn.rexx $(SRC)/rxmathfn.rxlib $(REXXLIBDIR) ++ test -f rxmathfn.rxfn && \ ++ cp -p rxmathfn.rxfn $(SRC)/rxmathfn.rxlib $(PREFIX)/lib || \ ++ cp -p $(SRC)/rxmathfn.rexx $(SRC)/rxmathfn.rxlib $(PREFIX)/lib + + install-man: rexx.1 + $(VERBOSE) "install-man:" ++ mkdir -p $(MANDIR) + cp -p rexx.1 $(SRC)/rxque.1 $(SRC)/rxstack.1 $(MANDIR) + + uninstall: uninstall-pgm uninstall-fn uninstall-man +@@ -69,8 +71,7 @@ + + $(LIBDIR)/$(SO): $(LIBDIR)/$(SONAME) + $(VERBOSE) "$(LIBDIR)/$(SO):" +- rm -f $(LIBDIR)/$(SO) +- ln -s $(SONAME) $(LIBDIR)/$(SO) ++ ln -sf $(SONAME) $(LIBDIR)/$(SO) + + $(LIBDIR)/librexx.a: $(LIBFILES) + $(VERBOSE) "$(LIBDIR)/librexx.a:" diff -ruN rexx-imc/files/patch-box rexx-imc.new/files/patch-box --- rexx-imc/files/patch-box Wed Dec 31 16:00:00 1969 +++ rexx-imc.new/files/patch-box Fri Sep 7 15:02:53 2001 @@ -0,0 +1,8 @@ +--- box Sat Jan 23 16:51:19 1999 ++++ box.new Fri Sep 7 15:01:36 2001 +@@ -1,4 +1,4 @@ +-/*bin/true;exec rexx -x "$0" "$@";exit# This is a REXX program */ ++/*usr/bin/true;exec rexx -x "$0" "$@";exit# This is a REXX program */ + parse arg args + if args="" then args="/usr/games/fortune"/* default command */ + args "| expand | rxstack" /* stack the command's output */ diff -ruN rexx-imc/files/patch-rexxcps.rexx rexx-imc.new/files/patch-rexxcps.rexx --- rexx-imc/files/patch-rexxcps.rexx Wed Dec 31 16:00:00 1969 +++ rexx-imc.new/files/patch-rexxcps.rexx Fri Sep 7 15:10:31 2001 @@ -0,0 +1,8 @@ +--- rexxcps.rexx Fri Jun 25 05:14:43 1993 ++++ rexxcps.rexx.new Fri Sep 7 15:10:03 2001 +@@ -1,4 +1,4 @@ +-/* ReXX */ ++/*usr/bin/true;exec rexx -x "$0" "$@";exit# ReXX */ + /* Take a measure of REXX clauses-per-second (CPS) */ + /* Mike Cowlishaw (mfc@ibm.com). Multi-platform. */ + /* 1.0 17 Jan 89 Original version */ diff -ruN rexx-imc/files/patch-rexxtest.rexx rexx-imc.new/files/patch-rexxtest.rexx --- rexx-imc/files/patch-rexxtest.rexx Wed Dec 31 16:00:00 1969 +++ rexx-imc.new/files/patch-rexxtest.rexx Fri Sep 7 15:05:13 2001 @@ -0,0 +1,8 @@ +--- rexxtest.rexx Thu Jan 21 16:11:44 1999 ++++ rexxtest.rexx.new Fri Sep 7 15:04:39 2001 +@@ -1,4 +1,4 @@ +-/* test program for interpreter */ ++/*usr/bin/true;exec rexx -x "$0" "$@";exit# test program for interpreter */ + + signal on syntax + parse source sys how me nick env diff -ruN rexx-imc/files/patch-rxmathfn.rexx rexx-imc.new/files/patch-rxmathfn.rexx --- rexx-imc/files/patch-rxmathfn.rexx Wed Dec 31 16:00:00 1969 +++ rexx-imc.new/files/patch-rxmathfn.rexx Fri Sep 7 15:07:15 2001 @@ -0,0 +1,9 @@ +--- rxmathfn.rexx Thu Nov 19 10:25:43 1992 ++++ rxmathfn.rexx.new Fri Sep 7 15:06:45 2001 +@@ -1,4 +1,5 @@ +-/* Example Rexx program to provide mathematical functions */ ++/*usr/bin/true;exec rexx -x "$0" "$@";exit# Example Rexx program */ ++/* to provide mathematical functions */ + trace off + + Ecall=40 /* Incorrect call to routine */ diff -ruN rexx-imc/files/patch-shell.rexx rexx-imc.new/files/patch-shell.rexx --- rexx-imc/files/patch-shell.rexx Wed Dec 31 16:00:00 1969 +++ rexx-imc.new/files/patch-shell.rexx Fri Sep 7 15:08:56 2001 @@ -0,0 +1,8 @@ +--- shell.rexx Wed Feb 10 14:42:33 1999 ++++ shell.rexx.new Fri Sep 7 15:08:23 2001 +@@ -1,4 +1,4 @@ +-/* small shell program. */ ++/*usr/bin/true;exec rexx -x "$0" "$@";exit# small shell program. */ + trace off + signal on halt + signal on syntax diff -ruN rexx-imc/pkg-comment rexx-imc.new/pkg-comment --- rexx-imc/pkg-comment Sat Jun 26 11:38:48 1999 +++ rexx-imc.new/pkg-comment Fri Sep 7 19:09:53 2001 @@ -1 +1 @@ -A procedural programming language designed by IBM's UK Laboratories +A procedural programming language designed by IBM's UK Laboratories. diff -ruN rexx-imc/pkg-descr rexx-imc.new/pkg-descr --- rexx-imc/pkg-descr Sat Oct 28 08:57:59 2000 +++ rexx-imc.new/pkg-descr Fri Sep 7 19:09:12 2001 @@ -5,3 +5,6 @@ functions, and exit handlers. WWW: http://users.comlab.ox.ac.uk/ian.collier/Rexx/rexximc.html + +-- +John Merryweather Cooper <jmcoopr@webmail.bmi.net> diff -ruN rexx-imc/pkg-plist rexx-imc.new/pkg-plist --- rexx-imc/pkg-plist Thu Jun 15 10:59:12 2000 +++ rexx-imc.new/pkg-plist Fri Sep 7 18:55:06 2001 @@ -1,13 +1,13 @@ bin/rexx -bin/rxmathfn.rxfn -bin/rxmathfn.rxlib bin/rxque bin/rxstack include/rexxsaa.h -lib/librexx.a -lib/librexx.so lib/librexx.so.2 +lib/rxmathfn.rxfn +lib/librexx.so +lib/rxmathfn.rxlib share/doc/rexx-imc/README +share/doc/rexx-imc/README.Y2K share/doc/rexx-imc/README.bugreport share/doc/rexx-imc/README.docs share/doc/rexx-imc/README.files @@ -19,3 +19,9 @@ share/doc/rexx-imc/rexx.summary share/doc/rexx-imc/rexx.tech @dirrm share/doc/rexx-imc +share/examples/rexx-imc/box +share/examples/rexx-imc/rexxcps.rexx +share/examples/rexx-imc/rexxtest.rexx +share/examples/rexx-imc/rxmathfn.rexx +share/examples/rexx-imc/shell.rexx +@dirrm share/examples/rexx-imc >Release-Note: >Audit-Trail: >Unformatted: SEND-PR: -*- send-pr -*- SEND-PR: Lines starting with `SEND-PR' will be removed automatically, as SEND-PR: will all comments (text enclosed in `<' and `>'). SEND-PR: SEND-PR: Please consult the send-pr man page `send-pr(1)' or the Texinfo To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-ports" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?000001c13810$e10025c0$05fea8c0>