summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--www/cgic/DESCR17
-rw-r--r--www/cgic/Makefile16
-rw-r--r--www/cgic/PLIST14
-rw-r--r--www/cgic/distinfo10
-rw-r--r--www/cgic/patches/patch-aa65
-rw-r--r--www/cgic/patches/patch-ab13
-rw-r--r--www/cgic/patches/patch-ac56
-rw-r--r--www/cgic/patches/patch-ad13
-rw-r--r--www/cgic/patches/patch-ae34
-rw-r--r--www/cgic/patches/patch-af19
10 files changed, 257 insertions, 0 deletions
diff --git a/www/cgic/DESCR b/www/cgic/DESCR
new file mode 100644
index 00000000000..263da45c7f6
--- /dev/null
+++ b/www/cgic/DESCR
@@ -0,0 +1,17 @@
+This is the code written to accompany Thomas Boutell's book "CGI
+Programming in C & Perl". It provides a library of routines for use
+in CGI programming, and unlike cgilib-0.5, this library handles the
+"multipart/form-data" encoding required to use the FILE input control
+type as defined in the HTML specification.
+
+NOTE: It should be aware that there were a few developer visible changes
+made from Thomas Boutell's original distribution when integrating it
+with the NetBSD packages environment. They are:
+
+1) Instead of being yet another source file which is used in building
+ the application, the package have been converted totally into a
+ library format. This library is linked using "-lcgic".
+2) As a result of the first item, the developer no longer writes their
+ entry point under the function name of cgiMain(). Instead, the
+ user will provide their own main(), and will need to call cgiInit()
+ before any other cgic function is called.
diff --git a/www/cgic/Makefile b/www/cgic/Makefile
new file mode 100644
index 00000000000..d7c87968cef
--- /dev/null
+++ b/www/cgic/Makefile
@@ -0,0 +1,16 @@
+# $NetBSD: Makefile,v 1.1.1.1 2004/07/20 21:44:29 jmmv Exp $
+#
+
+DISTNAME= cgic202
+PKGNAME= cgic-2.02
+CATEGORIES= www
+MASTER_SITES= http://www.boutell.com/cgic/
+
+MAINTAINER= cinnion@ka8zrt.com
+HOMEPAGE= http://www.boutell.com/cgic/
+COMMENT= Thomas Boutell's ANSI C library for CGI Programming
+
+USE_BUILDLINK3= yes
+USE_LIBTOOL= yes
+
+.include "../../mk/bsd.pkg.mk"
diff --git a/www/cgic/PLIST b/www/cgic/PLIST
new file mode 100644
index 00000000000..c40789c4a29
--- /dev/null
+++ b/www/cgic/PLIST
@@ -0,0 +1,14 @@
+@comment $NetBSD: PLIST,v 1.1.1.1 2004/07/20 21:44:29 jmmv Exp $
+include/cgic.h
+lib/libcgic.a
+lib/libcgic.la
+lib/libcgic.so
+lib/libcgic.so.0
+lib/libcgic.so.0.0
+libexec/cgi-bin/capture
+libexec/cgi-bin/cgictest
+share/doc/html/cgiclib/cgic.html
+share/examples/cgiclib/capture.c
+share/examples/cgiclib/cgictest.c
+@dirrm share/examples/cgiclib
+@dirrm share/doc/html/cgiclib
diff --git a/www/cgic/distinfo b/www/cgic/distinfo
new file mode 100644
index 00000000000..6b00c3bc7bd
--- /dev/null
+++ b/www/cgic/distinfo
@@ -0,0 +1,10 @@
+$NetBSD: distinfo,v 1.1.1.1 2004/07/20 21:44:29 jmmv Exp $
+
+SHA1 (cgic202.tar.gz) = 8db924f00a7443f8953ea37a084025332e0efbb1
+Size (cgic202.tar.gz) = 49531 bytes
+SHA1 (patch-aa) = 1799e30492707962a9fdf927697657021e7afdce
+SHA1 (patch-ab) = 42e8ee71eeb363e702dfab66344811a8967d382d
+SHA1 (patch-ac) = 948ba16e838bb50c60b14e75ccffc942ec01144a
+SHA1 (patch-ad) = 6ef230a6cc265121dbcbaef392bc1d9c43d167b0
+SHA1 (patch-ae) = 30c7170033e3fce8dea2991456d76cdd26e5cae2
+SHA1 (patch-af) = e143b77cabe7cb8ac44bd74419ed875800dc1d1d
diff --git a/www/cgic/patches/patch-aa b/www/cgic/patches/patch-aa
new file mode 100644
index 00000000000..12168fe243d
--- /dev/null
+++ b/www/cgic/patches/patch-aa
@@ -0,0 +1,65 @@
+$NetBSD: patch-aa,v 1.1.1.1 2004/07/20 21:44:29 jmmv Exp $
+
+--- Makefile.orig Sun Jan 12 13:59:43 2003
++++ Makefile
+@@ -1,27 +1,42 @@
+-CFLAGS=-g -Wall
++CFLAGS += -g -Wall
+ CC=gcc
+ AR=ar
+-LIBS=-L./ -lcgic
++LIBS = libcgic.la
+
+-all: libcgic.a cgictest.cgi capture
++OBJS = cgic.o
+
+-install: libcgic.a
+- cp libcgic.a /usr/local/lib
+- cp cgic.h /usr/local/include
+- @echo libcgic.a is in /usr/local/lib. cgic.h is in /usr/local/include.
++all: libcgic.la cgictest capture
+
+-libcgic.a: cgic.o cgic.h
+- rm -f libcgic.a
+- $(AR) rc libcgic.a cgic.o
++.SUFFIXES: .lo
+
+-#mingw32 and cygwin users: replace .cgi with .exe
+-
+-cgictest.cgi: cgictest.o libcgic.a
+- gcc cgictest.o -o cgictest.cgi ${LIBS}
+-
+-capture: capture.o libcgic.a
+- gcc capture.o -o capture ${LIBS}
++.c.lo:
++ ${LIBTOOL} --mode=compile ${CC} ${CFLAGS} -o $@ -c $<
++
++libcgic.la: $(OBJS:.o=.lo)
++ ${LIBTOOL} --mode=link ${CC} -o $@ ${OBJS:.o=.lo} \
++ -rpath ${PREFIX}/lib \
++ -version-info 0:0
++
++cgictest: cgictest.lo libcgic.la
++ ${LIBTOOL} --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -o $@ cgictest.lo $(LIBS)
++
++capture: capture.lo libcgic.la
++ ${LIBTOOL} --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -o $@ cgictest.lo $(LIBS)
++
++install: libcgic.la cgictest
++ -mkdir -p ${PREFIX}/libexec/cgi-bin
++ -mkdir -p ${PREFIX}/share/examples/cgiclib
++ ${INSTALL} -c -m 444 capture.c ${PREFIX}/share/examples/cgiclib
++ ${INSTALL} -c -m 444 cgictest.c ${PREFIX}/share/examples/cgiclib
++ ${LIBTOOL} --mode=install ${INSTALL} -c -m 444 libcgic.la ${PREFIX}/lib
++ ${LIBTOOL} --mode=install ${INSTALL} -c -m 755 capture ${PREFIX}/libexec/cgi-bin
++ ${LIBTOOL} --mode=install ${INSTALL} -c -m 755 cgictest ${PREFIX}/libexec/cgi-bin
++ ${INSTALL} -c -m 444 cgic.h ${PREFIX}/include
++ -mkdir -p ${PREFIX}/share/doc/html/cgiclib
++ for i in *.html; do \
++ ${INSTALL} -c -m 444 $$i ${PREFIX}/share/doc/html/cgiclib ; \
++ done
+
+ clean:
+- rm -f *.o *.a cgictest.cgi capture
++ rm -f *.o *.la cgictest capture
+
diff --git a/www/cgic/patches/patch-ab b/www/cgic/patches/patch-ab
new file mode 100644
index 00000000000..8b782376587
--- /dev/null
+++ b/www/cgic/patches/patch-ab
@@ -0,0 +1,13 @@
+$NetBSD: patch-ab,v 1.1.1.1 2004/07/20 21:44:29 jmmv Exp $
+
+--- capture.c.orig Sun Jan 12 13:59:43 2003
++++ capture.c
+@@ -1,6 +1,7 @@
+ #include "cgic.h"
+
+-int cgiMain() {
++int main() {
++ cgiInit();
+ cgiWriteEnvironment("/CHANGE/THIS/PATH/capcgi.dat");
+ cgiHeaderContentType("text/html");
+ fprintf(cgiOut, "<title>Captured</title>\n");
diff --git a/www/cgic/patches/patch-ac b/www/cgic/patches/patch-ac
new file mode 100644
index 00000000000..eb7a2089d20
--- /dev/null
+++ b/www/cgic/patches/patch-ac
@@ -0,0 +1,56 @@
+$NetBSD: patch-ac,v 1.1.1.1 2004/07/20 21:44:29 jmmv Exp $
+
+--- cgic.c.orig Sun Jan 12 13:59:43 2003
++++ cgic.c
+@@ -124,8 +124,9 @@ static int cgiStrBeginsNc(char *s1, char
+
+ static int firstCookie = 1;
+
+-int main(int argc, char *argv[]) {
+- int result;
++int
++cgiInit(void)
++{
+ char *cgiContentLengthString;
+ char *e;
+ cgiSetupConstants();
+@@ -211,17 +212,6 @@ int main(int argc, char *argv[]) {
+ cgiOut = stdout;
+ cgiRestored = 0;
+
+-
+- /* These five lines keep compilers from
+- producing warnings that argc and argv
+- are unused. They have no actual function. */
+- if (argc) {
+- if (argv[0]) {
+- cgiRestored = 0;
+- }
+- }
+-
+-
+ if (cgiStrEqNc(cgiRequestMethod, "post")) {
+ #ifdef CGICDEBUG
+ CGICDEBUGSTART
+@@ -290,9 +280,9 @@ int main(int argc, char *argv[]) {
+ }
+ }
+ firstCookie = 1;
+- result = cgiMain();
+- cgiFreeResources();
+- return result;
++
++ atexit(cgiFreeResources);
++ return(0);
+ }
+
+ static void cgiGetenv(char **s, char *var){
+@@ -1995,7 +1985,7 @@ cgiEnvironmentResultType cgiReadEnvironm
+ FILE *in;
+ cgiFormEntry *e = 0, *p;
+ char *version;
+- cgiEnvironmentResultType result;
++ cgiEnvironmentResultType result = cgiEnvironmentSuccess;
+ /* Free any existing data first */
+ cgiFreeResources();
+ /* Be sure to open in binary mode */
diff --git a/www/cgic/patches/patch-ad b/www/cgic/patches/patch-ad
new file mode 100644
index 00000000000..8b516985c99
--- /dev/null
+++ b/www/cgic/patches/patch-ad
@@ -0,0 +1,13 @@
+$NetBSD: patch-ad,v 1.1.1.1 2004/07/20 21:44:29 jmmv Exp $
+
+--- cgic.h.orig Sun Jan 12 13:59:43 2003
++++ cgic.h
+@@ -90,6 +90,8 @@ typedef enum {
+ /* These functions are used to retrieve form data. See
+ cgic.html for documentation. */
+
++extern int cgiInit(void);
++
+ extern cgiFormResultType cgiFormString(
+ char *name, char *result, int max);
+
diff --git a/www/cgic/patches/patch-ae b/www/cgic/patches/patch-ae
new file mode 100644
index 00000000000..d548a8f53aa
--- /dev/null
+++ b/www/cgic/patches/patch-ae
@@ -0,0 +1,34 @@
+$NetBSD: patch-ae,v 1.1.1.1 2004/07/20 21:44:29 jmmv Exp $
+
+--- cgic.html.orig Sun Jan 12 13:59:43 2003
++++ cgic.html
+@@ -365,6 +365,29 @@ cgic.c to your project?</strong>
+ If none of the above proves effective, please see the
+ section regarding <a href="#support">support</a>.
+ <h3><a name="howto">How to write a cgic application</a></h3>
++
++<strong><em>Important Note for NetBSD packages users from the package maintainer: </em>
++<p>
++This section does not work for users of cgic who have it installed via
++a NetBSD package. While mostly true, there are several very important
++differences which were created during the port to the NetBSD pkgsrc
++environment:
++
++<ul>
++<li> Linking is now done against libcgic instead of cgic.c itself. This
++ is done by adding a "-lcgic" and other command line options as needed
++ when linking.
++<li> The application must now provide its own main() function, which calls the
++ cgiInit() function before any of the other functions are called. This
++ function returns 0 upon success, and -1 upon failure. It also registers
++ a function, cgiFreeResources(), via atexit() to be called at exit time.
++</ul>
++
++While this removes the ability to compile cgic with DEBUG defined, it
++aligns the cgic library with the model followed by other libraries.
++</strong>
++<p>
++
+ <em>Note: </em> All cgic applications must be linked to the cgic.c module
+ itself. How to do this depends on your operating system; under Unix,
+ just use the provided Makefile as an example.
diff --git a/www/cgic/patches/patch-af b/www/cgic/patches/patch-af
new file mode 100644
index 00000000000..0fc93cd0c7c
--- /dev/null
+++ b/www/cgic/patches/patch-af
@@ -0,0 +1,19 @@
+$NetBSD: patch-af,v 1.1.1.1 2004/07/20 21:44:29 jmmv Exp $
+
+--- cgictest.c.orig Sun Jan 12 13:59:43 2003
++++ cgictest.c
+@@ -33,7 +33,13 @@ void Cookies();
+ void LoadEnvironment();
+ void SaveEnvironment();
+
+-int cgiMain() {
++int main() {
++
++ /*
++ * Initialize the library environment.
++ */
++ cgiInit();
++
+ #ifdef DEBUG
+ LoadEnvironment();
+ #endif /* DEBUG */