The first part of the NeoWebScript port I'm working on (hard).

The beast comes as part of one GIANT tarball including the
entire NeoWebScript as well as outdated Apache, gd, Tcl, itcl,
TclX, db-2 (no kidding!), etc.

This part is a set of general purpose commands and procedures,
which can be used (and appreciated) by regular TCL scripting --
not just web-oriented inside NWS.

This port is built without the available LDAP support -- our
openldap2 port used db3, but the db-support in NeoTcl only
works with db2. If some db-expert can send me a patch for the
neoXdb.c, the humanity will remember him/her forev^H^H a while.
This commit is contained in:
Mikhail Teterin 2001-08-17 05:07:16 +00:00
parent 391f2c5251
commit 8335f34f0f
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=46349
11 changed files with 212 additions and 0 deletions

View file

@ -533,6 +533,7 @@
SUBDIR += swigruby
SUBDIR += t1lib
SUBDIR += tcl-memchan
SUBDIR += tcl-neo
SUBDIR += tclcheck
SUBDIR += tclcl
SUBDIR += tclgetopts

44
devel/tcl-neo/Makefile Normal file
View file

@ -0,0 +1,44 @@
# New ports collection makefile for: NeoTcl
# Date created: Auf 17, 2001
# Whom: Mikhail Teterin <mi@aldan.algebra.com>
#
# $FreeBSD$
#
PORTNAME= neotcl
PORTVERSION= 8.2.2
CATEGORIES= devel tcl83
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE}
DISTNAME= neowebscript-3.3
MAINTAINER= mi@aldan.algebra.com
LIB_DEPENDS= tclx82:${PORTSDIR}/lang/tclX82 \
db2:${PORTSDIR}/databases/db
# Not yet -- openldap used db3, neo used db2 :(
# ldap.2:${PORTSDIR}/net/openldap2
SUBDIR= neowebscript-3.3/neotcl8.3.0-lite/neo${PORTVERSION}
WRKSRC= ${WRKDIR}/${SUBDIR}/generic
EXTRACT_AFTER_ARGS?= | ${TAR} -xf - ${SUBDIR}/generic ${SUBDIR}/neolibs
MAKEFILE= ${FILESDIR}/Makefile.bsd
MAKE_ENV+= NEO_LIBRARY=${NEO_LIBRARY}
DDIR= ${PREFIX}/lib/tcl${TCLV}/Trf
post-build:
cd ${WRKSRC}/../neolibs && ${ECHO} 'auto_mkindex . */*.tcl' | tclsh8.3
NEO_LIBRARY= ${PREFIX}/lib/neo8.2
post-install:
${MKDIR} ${NEO_LIBRARY}
${CP} -Rp ${WRKSRC}/../neolibs/[a-z]* ${NEO_LIBRARY}
${SED} -e 's,@NEO_SHARED_LIB_FILE@,libneo82.so,' \
-e 's,@NEO_VERSION@,8.2,' < ${WRKSRC}/pkgIndex.tcl.in > \
${NEO_LIBRARY}/pkgIndex.tcl
.include <bsd.port.mk>

1
devel/tcl-neo/distinfo Normal file
View file

@ -0,0 +1 @@
MD5 (neowebscript-3.3.tar.gz) = 82c440c9997589b2422596be385b91ed

View file

@ -0,0 +1,27 @@
PREFIX?= /usr/local
NEO_LIBRARY?= ${PREFIX}/lib/neo8.2
CFLAGS+= -I${PREFIX}/include/tcl8.3 -I${PREFIX}/include
CFLAGS+= -DNEO_LIBRARY=\"${NEO_LIBRARY}\"
CFLAGS+= -DHAVE_TERMIOS_H -DHAVE_STDLIB_H -DHAVE_SYS_TIME_H -DHAVE_UNISTD_H
CFLAGS+= -DNEO_DB # -DDB_185_COMPAT -- seems broken :-(
CFLAGS+= -DNEOSOFT_TCL_ENCRYPTION -DCUTE
# OpenLDAP requires db3, while the NEO_DB stuff works only with db2.
# Disable NEO_LDAP until the NEW_DB is upgraded
# CFLAGS+= -DNEO_LDAP
SRCS= neoXcrypt.c neoPkgInit.c neoXwww.c neoXgeneral.c \
neoXcute.c neoXcomma.c neoXkdebug.c neoCbuf.c \
neoXlist.c neoXdb.c # neoXldap.c
LIB= neo82
SHLIB_MAJOR= 1
SHLIB_MINOR= 0
INTERNALLIB= Yes, don't need the static version
NOPROFILE= YES, don't need the profiled version
LDADD+= -lcrypt -L${PREFIX}/lib -ltcl83 -lm -lmd -ldb2 # -ldap -llber
SHLIBDIR= ${PREFIX}/lib
.include <bsd.lib.mk>

View file

@ -0,0 +1,4 @@
--- neo.h Thu Apr 20 09:16:00 2000
+++ neo.h Thu Aug 16 20:53:17 2001
@@ -21 +20,0 @@
-#include "neoXconfig.h"

View file

@ -0,0 +1,7 @@
--- neoXcute.c Thu Apr 20 09:16:00 2000
+++ neoXcute.c Fri Aug 17 00:23:11 2001
@@ -98,3 +98,3 @@
fflush (stderr);
- panic ();
+ abort ();
}

View file

@ -0,0 +1,10 @@
--- neoXdb.c Thu Apr 20 09:16:00 2000
+++ neoXdb.c Thu Aug 16 21:03:06 2001
@@ -31,5 +31,5 @@
#ifdef DB_185_COMPAT
-#include <db_185.h>
+#include <db2/db_185.h>
#else
-#include <db.h>
+#include <db2/db.h>
#endif

View file

@ -0,0 +1,27 @@
Everybody and their cat try to ship their own implementation of md5
functions. Force FreeBSD's -lmd here. Also, when creating the resulting
string-object, use our advanced knowledge, that all md5 digests are 32
characters long.
--- neoXgeneral.c Thu Apr 20 09:16:01 2000
+++ neoXgeneral.c Thu Aug 16 20:46:02 2001
@@ -10,1 +10,2 @@
-#include "util_md5.h"
+#include <sys/types.h>
+#include <md5.h>
@@ -94,11 +95,13 @@
{
char *digest;
+ int length;
if (objc != 2) {
- Tcl_SetResult(interp, "usage: md5 string", TCL_STATIC);
+ Tcl_WrongNumArgs(interp, 1, objv, "<string>");
return TCL_ERROR;
}
- digest = md5(Tcl_GetStringFromObj(objv[1], (int*)NULL));
- Tcl_SetObjResult(interp, Tcl_NewStringObj(digest, -1));
+ digest = Tcl_GetStringFromObj(objv[1], &length);
+ digest = MD5Data(digest, length, NULL);
+ Tcl_SetObjResult(interp, Tcl_NewStringObj(digest, 32));
return TCL_OK;
}

View file

@ -0,0 +1 @@
The NeoTCL part of NeoWebScript -- an Apache TCL mod

View file

@ -0,0 +1,22 @@
Part of the NewWebScript an Apache module that allows webpage
developers to embed Tcl code into their HTML, creating webpages
with active content.
This part is a general purpose part of NWS adding many convinience
commands and procedures, including operating with serial devices,
Berkeley DB2, and some client/server databases (Oracle, Postgres --
if you have those installed).
SYNOPSIS: package require Neo
Unfortunately, the authors only distribute a GIANT source tarball
including the entire Apache, db-2, TCL, itcl, gd, TclX, etc. This
port will download the whole beast, but will only extract the neotcl
part of it.
The port is built without the LDAP support. Our port of OpenLDAP2
uses DB3, and linking both DB2 and DB3 into the same executable is
too ugly. Some day, Neo will be updated to use DB3, and we will all
rejoice.
WWW: http://sourceforge.net/projects/nws/

68
devel/tcl-neo/pkg-plist Normal file
View file

@ -0,0 +1,68 @@
lib/libneo82.so.1.0
lib/libneo82.so
lib/neo8.2/pkgIndex.tcl
lib/neo8.2/tclIndex
lib/neo8.2/debugger/README.DEBUG
lib/neo8.2/debugger/ndebug.tcl
lib/neo8.2/irc/Makefile
lib/neo8.2/irc/README
lib/neo8.2/irc/ircbot.tcl
lib/neo8.2/neo_tklib/Makefile
lib/neo8.2/neo_tklib/README
lib/neo8.2/neo_tklib/boxwindow.tcl
lib/neo8.2/neo_tklib/filereq.tcl
lib/neo8.2/neo_tklib/fonts.tcl
lib/neo8.2/neo_tklib/kfilereq.tcl
lib/neo8.2/neo_tklib/listbox-class.tcl
lib/neo8.2/neo_tklib/menus.tcl
lib/neo8.2/neo_tklib/modal.tcl
lib/neo8.2/neo_tklib/modal2.tcl
lib/neo8.2/neo_tklib/neocanvas.tcl
lib/neo8.2/neo_tklib/neoinit.tcl
lib/neo8.2/neo_tklib/neologo.tcl
lib/neo8.2/neo_tklib/neowindow.tcl
lib/neo8.2/neo_tklib/notepad.tcl
lib/neo8.2/neo_tklib/textclass.tcl
lib/neo8.2/neo_tklib/thermometer.tcl
lib/neo8.2/neo_tklib/tkpassword.tcl
lib/neo8.2/neodb/Makefile
lib/neo8.2/neodb/README
lib/neo8.2/neodb/tsv-class.tcl
lib/neo8.2/neolib/Makefile
lib/neo8.2/neolib/README
lib/neo8.2/neolib/arrayutil.tcl
lib/neo8.2/neolib/catchers.tcl
lib/neo8.2/neolib/eventloop.tcl
lib/neo8.2/neolib/getargs.tcl
lib/neo8.2/neolib/libmanager.tcl
lib/neo8.2/neolib/misc.tcl
lib/neo8.2/neolib/prompts.tcl
lib/neo8.2/neolib/rfc822.tcl
lib/neo8.2/neolib/rfc931.tcl
lib/neo8.2/neolib/spawn.tcl
lib/neo8.2/neolib/stanza.tcl
lib/neo8.2/neolib/timedate.tcl
lib/neo8.2/neolib/xkeylget.tcl
lib/neo8.2/oracle/Makefile
lib/neo8.2/oracle/basic.tcl
lib/neo8.2/postgres95/Makefile
lib/neo8.2/postgres95/basic.tcl
lib/neo8.2/rcmp/Makefile
lib/neo8.2/rcmp/README
lib/neo8.2/rcmp/neo-shared-object.tcl
lib/neo8.2/rcmp/neodpClient.tcl
lib/neo8.2/rcmp/neodpServer.tcl
lib/neo8.2/rcmp/rcmpc.tcl
lib/neo8.2/www/Makefile
lib/neo8.2/www/http-helpers.tcl
lib/neo8.2/www/iwebforms.tcl
@dirrm lib/neo8.2/debugger
@dirrm lib/neo8.2/irc
@dirrm lib/neo8.2/neo_tklib
@dirrm lib/neo8.2/neodb
@dirrm lib/neo8.2/neolib
@dirrm lib/neo8.2/oracle
@dirrm lib/neo8.2/postgres95
@dirrm lib/neo8.2/rcmp
@dirrm lib/neo8.2/www
@dirrm lib/neo8.2