[MacPorts] #17216: cgilib port enhancement
#17216: cgilib port enhancement ---------------------------+------------------------------------------------ Reporter: mike@flyn.org | Owner: macports-tickets@lists.macosforge.org Type: enhancement | Status: new Priority: Normal | Milestone: Port Enhancements Component: ports | Version: 1.6.0 Keywords: | Port: ---------------------------+------------------------------------------------ This modifies cgilib so that it builds using GNU autotools. It then uses configure to determine if a system provides strndup (Mac OS X does not), fixing bug #15453. The pre-configure block requires some explanation. I want to keep the autotools patch small. As a result, things like "missing" are not included. I need to run aclocal, libtoolize, etc. in the proper order. -- Ticket URL: <http://trac.macports.org/ticket/17216> MacPorts <http://www.macports.org/> Ports system for Mac OS
#17216: cgilib port enhancement ----------------------------+----------------------------------------------- Reporter: mike@flyn.org | Owner: macports-tickets@lists.macosforge.org Type: enhancement | Status: new Priority: Normal | Milestone: Port Enhancements Component: ports | Version: 1.6.0 Resolution: | Keywords: Port: | ----------------------------+----------------------------------------------- Comment(by mike@flyn.org): Trac doesn't seem to be accepting attachments. Here is Portfile- cgilib.patch: --- Portfile.orig 2008-05-16 17:23:36.000000000 -0400 +++ Portfile 2008-11-12 20:46:53.000000000 -0500 @@ -5,7 +5,7 @@ name cgilib version 0.6 categories www devel -maintainers nomaintainer +maintainers mikep description CGI Library @@ -21,19 +21,19 @@ master_sites http://www.infodrom.org/projects/cgilib/download/ checksums md5 392f00a4ce90426606efcb6ce705fd75 -use_configure no -build.target "" -build.args CFLAGS="-O3 -fPIC -I." -post-build { - system "ranlib ${worksrcpath}/libcgi.a" -} +patchfiles cgilib-autotools.patch \ + cgilib-strndup.patch -destroot.args INSTALL_OPTS_LIB='-m 644 -p' -destroot { - xinstall -d -m 755 ${destroot}${prefix}/include \ - ${destroot}${prefix}/lib ${destroot}${prefix}/man/man3 - eval xinstall -m 644 [glob ${worksrcpath}/*.h] ${destroot}${prefix}/include - eval xinstall -m 755 [glob ${worksrcpath}/libcgi*] ${destroot}${prefix}/lib - eval xinstall -m 755 [glob ${worksrcpath}/*.3] ${destroot}${prefix}/share/man/man3 +pre-configure { + # Need to do this manually because of ordering of libtoolize + exec aclocal + exec libtoolize --force + # No idea why exec does not work here. Execution stops after + # automake as if it exits with non-zero, but I confirmed that + # it is exiting with 0. + open "| automake --add-missing --foreign" + exec autoconf + # Patch leaves configure as non-executable. + exec chmod +x configure } -- Ticket URL: <http://trac.macports.org/ticket/17216#comment:1> MacPorts <http://www.macports.org/> Ports system for Mac OS
#17216: cgilib port enhancement ----------------------------+----------------------------------------------- Reporter: mike@flyn.org | Owner: macports-tickets@lists.macosforge.org Type: enhancement | Status: new Priority: Normal | Milestone: Port Enhancements Component: ports | Version: 1.6.0 Resolution: | Keywords: Port: | ----------------------------+----------------------------------------------- Comment(by mike@flyn.org): {{{ --- Portfile.orig 2008-05-16 17:23:36.000000000 -0400 +++ Portfile 2008-11-12 20:46:53.000000000 -0500 @@ -5,7 +5,7 @@ name cgilib version 0.6 categories www devel -maintainers nomaintainer +maintainers mikep description CGI Library @@ -21,19 +21,19 @@ master_sites http://www.infodrom.org/projects/cgilib/download/ checksums md5 392f00a4ce90426606efcb6ce705fd75 -use_configure no -build.target "" -build.args CFLAGS="-O3 -fPIC -I." -post-build { - system "ranlib ${worksrcpath}/libcgi.a" -} +patchfiles cgilib-autotools.patch \ + cgilib-strndup.patch -destroot.args INSTALL_OPTS_LIB='-m 644 -p' -destroot { - xinstall -d -m 755 ${destroot}${prefix}/include \ - ${destroot}${prefix}/lib ${destroot}${prefix}/man/man3 - eval xinstall -m 644 [glob ${worksrcpath}/*.h] ${destroot}${prefix}/include - eval xinstall -m 755 [glob ${worksrcpath}/libcgi*] ${destroot}${prefix}/lib - eval xinstall -m 755 [glob ${worksrcpath}/*.3] ${destroot}${prefix}/share/man/man3 +pre-configure { + # Need to do this manually because of ordering of libtoolize + exec aclocal + exec libtoolize --force + # No idea why exec does not work here. Execution stops after + # automake as if it exits with non-zero, but I confirmed that + # it is exiting with 0. + open "| automake --add-missing --foreign" + exec autoconf + # Patch leaves configure as non-executable. + exec chmod +x configure } }}} -- Ticket URL: <http://trac.macports.org/ticket/17216#comment:2> MacPorts <http://www.macports.org/> Ports system for Mac OS
#17216: cgilib port enhancement ----------------------------+----------------------------------------------- Reporter: mike@flyn.org | Owner: macports-tickets@lists.macosforge.org Type: enhancement | Status: new Priority: Normal | Milestone: Port Enhancements Component: ports | Version: 1.6.0 Resolution: | Keywords: Port: | ----------------------------+----------------------------------------------- Comment(by mike@flyn.org): cgilib-autotools.patch {{{ diff -u --recursive --new-file ../cgilib-0.6-vanilla/configure.ac ./configure.ac --- ../cgilib-0.6-vanilla/configure.ac 1969-12-31 19:00:00.000000000 -0500 +++ ./configure.ac 2008-11-12 19:27:37.000000000 -0500 @@ -0,0 +1,9 @@ +AC_INIT(cgi.c) + +AM_INIT_AUTOMAKE(cgilib, 0.6) + +AC_PROG_CC +AC_PROG_INSTALL +AC_PROG_LIBTOOL + +AC_OUTPUT(Makefile) diff -u --recursive --new-file ../cgilib-0.6-vanilla/Makefile ./Makefile --- ../cgilib-0.6-vanilla/Makefile 2008-11-12 19:27:31.000000000 -0500 +++ ./Makefile 1969-12-31 19:00:00.000000000 -0500 @@ -1,46 +0,0 @@ -# Copyright (c) 1998,9,2001,7,8 by Martin Schulze <joey@infodrom.org> -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software Foundation -# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -CFLAGS = -Wall -O2 -g -IFLAGS = -I. -LDFLAGS = -L. -#LIBS = -lcgi - -OBJS = cgi.o cookies.o aux.o - -CC += $(IFLAGS) - -libcgi.a: $(OBJS) - ar rc $@ $^ - -cgitest: cgitest.o libcgi.a - $(CC) $(CFLAGS) $(IFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS) - -jumpto: jumpto.o libcgi.a - $(CC) $(CFLAGS) $(IFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS) - -all: libcgi.a cgitest jumpto - -install: cgitest - install -m 755 cgitest /usr/lib/cgi-bin - -clean: - rm -f cgitest cgitest.o jumpto jumpto.o libcgi.a $(OBJS) *.[35].html - -htmlman: - for f in *.[35]; do \ - man -l $$f|rman -f HTML --title $$f -r "%s.%s.html" > $$f.html; \ - done diff -u --recursive --new-file ../cgilib-0.6-vanilla/Makefile.am ./Makefile.am --- ../cgilib-0.6-vanilla/Makefile.am 1969-12-31 19:00:00.000000000 -0500 +++ ./Makefile.am 2008-11-12 19:27:37.000000000 -0500 @@ -0,0 +1,32 @@ + +# Copyright (c) 1998,9,2001,7,8 by Martin Schulze <joey@infodrom.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +lib_LTLIBRARIES = libcgi.la + +libcgi_la_SOURCES = cgi.c cookies.c aux.c + +bin_PROGRAMS = cgitest jumpto + +cgitest_SOURCES = cgitest.c +cgitest_LDADD = libcgi.la + +jumpto_SOURCES = cgitest.c +jumpto_LDADD = libcgi.la + +include_HEADERS = aux.h cgi.h + +man_MANS = cgi.5 cgiDebug.3 cgiEscape.3 cgiFree.3 cgiFreeList.3 cgiGetCookie.3 cgiGetCookies.3 cgiGetFile.3 cgiGetFiles.3 cgiGetValue.3 cgiGetVariables.3 cgiHeader.3 cgiInit.3 cgiRedirect.3 cgiSetHeader.3 cgiSetType.3 }}} -- Ticket URL: <http://trac.macports.org/ticket/17216#comment:3> MacPorts <http://www.macports.org/> Ports system for Mac OS
#17216: cgilib port enhancement ----------------------------+----------------------------------------------- Reporter: mike@flyn.org | Owner: macports-tickets@lists.macosforge.org Type: enhancement | Status: new Priority: Normal | Milestone: Port Enhancements Component: ports | Version: 1.6.0 Resolution: | Keywords: Port: | ----------------------------+----------------------------------------------- Comment(by mike@flyn.org): cgilib-strndup.patch {{{ diff -u --recursive ../cgilib-0.6-vanilla/cgi.c ./cgi.c --- ../cgilib-0.6-vanilla/cgi.c 2008-11-12 18:42:35.000000000 -0500 +++ ./cgi.c 2008-11-12 19:03:45.000000000 -0500 @@ -841,6 +841,18 @@ } } +#ifndef HAVE_STRNDUP +char *strndup(const char *s, size_t n) { + char *fnval; + + if ((fnval = (char *)malloc (n + 1)) == NULL) + return NULL; + strncpy(fnval, s, n); + fnval[n] = '\0'; + return fnval; +} +#endif + /* * Local variables: * c-indent-level: 4 diff -u --recursive ../cgilib-0.6-vanilla/cgi.h ./cgi.h --- ../cgilib-0.6-vanilla/cgi.h 2008-11-12 18:42:35.000000000 -0500 +++ ./cgi.h 2008-11-12 18:58:03.000000000 -0500 @@ -142,6 +142,10 @@ */ char *cgiEscape (char *string); +#ifndef HAVE_STRNDUP +char *strndup(const char *s, size_t n); +#endif + #ifdef __cplusplus extern } #endif diff -u --recursive ../cgilib-0.6-vanilla/configure.ac ./configure.ac --- ../cgilib-0.6-vanilla/configure.ac 2008-11-12 19:04:09.000000000 -0500 +++ ./configure.ac 2008-11-12 18:57:10.000000000 -0500 @@ -6,4 +6,6 @@ AC_PROG_INSTALL AC_PROG_LIBTOOL +AC_CHECK_FUNCS(strndup) + AC_OUTPUT(Makefile) }}} -- Ticket URL: <http://trac.macports.org/ticket/17216#comment:4> MacPorts <http://www.macports.org/> Ports system for Mac OS
#17216: cgilib port enhancement ----------------------------+----------------------------------------------- Reporter: mike@flyn.org | Owner: macports-tickets@lists.macosforge.org Type: enhancement | Status: new Priority: Normal | Milestone: Port Enhancements Component: ports | Version: 1.6.0 Resolution: | Keywords: Port: | ----------------------------+----------------------------------------------- Changes (by raimue@macports.org): * cc: raimue@macports.org (added) Comment: Trac usually accepts attachment. What error message did you get? Preferred way to run additional tools would be `system`: {{{ system "cd ${worksrcpath} && aclocal" }}} Thanks for your interest in becoming maintainer of this port, but please add your full email address ([http://guide.macports.org/#reference.keywords.maintainers you can use obfuscation]). -- Ticket URL: <http://trac.macports.org/ticket/17216#comment:5> MacPorts <http://www.macports.org/> Ports system for Mac OS
#17216: cgilib port enhancement ---------------------------+------------------------------------------------ Reporter: mike@… | Owner: macports-tickets@… Type: enhancement | Status: new Priority: Normal | Milestone: Port Enhancements Component: ports | Version: 1.6.0 Keywords: | Port: cgilib ---------------------------+------------------------------------------------ Changes (by macsforever2000@…): * port: => cgilib -- Ticket URL: <http://trac.macports.org/ticket/17216#comment:6> MacPorts <http://www.macports.org/> Ports system for Mac OS
#17216: cgilib port enhancement ----------------------------+----------------------------------------------- Reporter: mike@… | Owner: macports-tickets@… Type: enhancement | Status: closed Priority: Normal | Milestone: Port Enhancements Component: ports | Version: 1.6.0 Resolution: wontfix | Keywords: Port: cgilib | ----------------------------+----------------------------------------------- Changes (by raimue@…): * status: new => closed * resolution: => wontfix Comment: The current cgilib port builds fine for me so I don't see a need for these patches. -- Ticket URL: <http://trac.macports.org/ticket/17216#comment:7> MacPorts <http://www.macports.org/> Ports system for Mac OS
#17216: cgilib port enhancement ----------------------------+----------------------------------------------- Reporter: mike@… | Owner: macports-tickets@… Type: enhancement | Status: closed Priority: Normal | Milestone: Port Enhancements Component: ports | Version: 1.6.0 Resolution: wontfix | Keywords: Port: cgilib | ----------------------------+----------------------------------------------- Comment(by mike@…): Yes, cgilib 0.6 now compiles again. I have no idea what fixed bug number #15453. -- Ticket URL: <http://trac.macports.org/ticket/17216#comment:8> MacPorts <http://www.macports.org/> Ports system for Mac OS
participants (1)
-
MacPorts