Date: Tue, 22 Oct 2013 15:36:43 GMT From: Pietro Cerutti <gahr@FreeBSD.org> To: freebsd-gnats-submit@FreeBSD.org Subject: ports/183205: [patch] devel/tcltls -- refactoring Message-ID: <201310221536.r9MFahWM086324@oldred.freebsd.org> Resent-Message-ID: <201310221540.r9MFe1Kr025114@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 183205 >Category: ports >Synopsis: [patch] devel/tcltls -- refactoring >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Tue Oct 22 15:40:01 UTC 2013 >Closed-Date: >Last-Modified: >Originator: Pietro Cerutti >Release: >Organization: The FreeBSD Project >Environment: >Description: The following patch is a general refactor to the devel/tcltls port, which brings these (imho) enhancements: - no more custom Makefile; use the bundled TEA-based configure script instead, as most Tcl extensions do - USE_TCL --> USES+=tcl - Use PLIST_FILES and PLIST_DIRS, instead of a pkg-plist file for just a bunch of entries - Switch to new OPTIONS framework (DOCS) - A few other cleanups Also, I'd be happy to take this port under the maintainership of tcltk@FreeBSD.org, if you agree. Thanks. >How-To-Repeat: >Fix: Patch attached with submission follows: Index: Makefile =================================================================== --- Makefile (revision 331258) +++ Makefile (working copy) @@ -11,55 +11,40 @@ MAINTAINER= mi@aldan.algebra.com COMMENT= SSL extensions for TCL; dynamicly loadable -LIB_DEPENDS+= tcl${TCLVND}:${PORTSDIR}/lang/tcl${TCLVND} +OPTIONS_DEFINE= DOCS -USE_TCL= 84+ +USES+= tcl USE_OPENSSL= yes +GNU_CONFIGURE= yes +CONFIGURE_ARGS+=--with-tcl=${TCL_LIBDIR} \ + --with-ssl-dir=${OPENSSLBASE} -WRKSRC= ${WRKDIR}/tls${PORTVERSION} +TCLPKG= tls${PORTVERSION} +WRKSRC= ${WRKDIR}/${TCLPKG} +PLIST_FILES= lib/${TCLPKG}/lib${TCLPKG}.so \ + lib/${TCLPKG}/pkgIndex.tcl \ + lib/${TCLPKG}/tls.tcl +PLIST_DIRS= lib/${TCLPKG} +PORTDOCS= * -PLIST_SUB+= TCL_VER=${TCL_VER} DISTNAME="${DISTNAME}" -MAKEFILE= ${FILESDIR}/Makefile.bsd -MAKE_ENV= TCL_VER=${TCL_VER} MKDIR="${MKDIR}" \ - INSTALL_DATA="${INSTALL_DATA}" \ - SHLIB_NAME=libtls.so.1 \ - PORTVERSION="${PORTVERSION}" SED="${SED}" -REINPLACE_ARGS= -i "" -ALL_TARGET= -j`${SYSCTL} -n hw.ncpu` all -PLIST_SUB= TLS_VERSION=${PORTVERSION} +.include <bsd.port.options.mk> -NO_STAGE= yes post-patch: ${REINPLACE_CMD} -e \ - 's,package require tls.*,load ${WRKSRC}/libtls.so;\ + 's,package require tls.*,load ${WRKSRC}/lib${TCLPKG}.so;\ source ${WRKSRC}/tls.tcl,' \ ${WRKSRC}/tests/*.test # The tests in ciphers.test are meaningless so far: ${MV} ${WRKSRC}/tests/ciphers.test ${WRKSRC}/tests/ciphers.test.broken -.if !defined(NOPORTDOCS) +.if ${PORT_OPTIONS:MDOCS} post-install: - ${MKDIR} ${PREFIX}/share/doc/tls - ${INSTALL_DATA} ${WRKSRC}/tls.htm ${PREFIX}/share/doc/tls/ + ${MKDIR} ${STAGEDIR}${DOCSDIR} + ${INSTALL_DATA} ${WRKSRC}/tls.htm ${STAGEDIR}${DOCSDIR} .endif -post-build: - # - # - # Please, try performing `make test' now and report any failures - # to the ${PORTNAME} developers: - # http://sourceforge.net/tracker/?group_id=13248&atid=113248 - # and/or ${MAINTAINER}. - # - # - -test: +regression-test: cd ${WRKSRC}/tests && env TCL_LIBRARY="${WRKSRC}" \ tclsh${TCL_VER} all.tcl -TCLVND= ${TCL_VER:S/.//} - .include <bsd.port.mk> - -PLIST_SUBP!= ${SETENV} ${MAKE_ENV} ${MAKE} -f ${MAKEFILE} environ -PLIST_SUB+= ${PLIST_SUBP} Index: files/Makefile.bsd =================================================================== --- files/Makefile.bsd (revision 331258) +++ files/Makefile.bsd (working copy) @@ -1,52 +0,0 @@ -PACKAGE = tls -VERSION ?= ${PORTVERSION} -.ifndef(SHLIB_NAME) -LIB = ${PACKAGE} -SHLIB_MAJOR = ${VERSION:R} -SHLIB_MINOR = ${VERSION:E} -.endif - -SRCS = tls.c tlsIO.c tlsBIO.c tlsX509.c # fixstrtod.c strncasecmp.c - -PREFIX ?=/usr/local -TCL_VER ?=8.3 - -.if exists(${PREFIX}/lib/tcl${TCL_VER}/tclConfig.sh) -# If for some reason the file does not exist -- make the best guess. In -# reality, it will exist by the time we are actually doing the build, so -# the quality of the guess does not matter. But we still try well. -mi -TCL_STUB_LIB_SPEC!= . ${PREFIX}/lib/tcl${TCL_VER}/tclConfig.sh; \ - echo $$TCL_STUB_LIB_SPEC -.else -TCL_STUB_LIB_SPEC= -L${PREFIX}/lib -ltclstub${TCL_VER:S/.//} -.endif - -LDADD += ${TCL_STUB_LIB_SPEC} -L${OPENSSLLIB} -lcrypto -lssl - -CFLAGS +=-I${PREFIX}/include/tcl${TCL_VER} -I${OPENSSLINC} -CFLAGS +=-DNDEBUG -I. -DUSE_TCL_STUBS -I${PREFIX}/include -CFLAGS +=-DPACKAGE_VERSION=\"${VERSION}\" -DPACKAGE_NAME=\"${PACKAGE}\" - -all: ${SHLIB_NAME} pkgIndex.tcl - -pkgIndex.tcl: - (echo 'package ifneeded $(PACKAGE) $(VERSION) \ - "[list source [file join $$dir tls.tcl]] ; \ - [list tls::initlib ${LIBDIR} ${SHLIB_NAME}]"'\ - ) > pkgIndex.tcl - -SCRIPTDIR = lib/tls -SCRIPTPATH = ${PREFIX}/${SCRIPTDIR} -LIBDIR = ${PREFIX}/lib - -${SCRIPTPATH}: - ${MKDIR} ${SCRIPTPATH} - -environ: - @${ECHO} SHLIB_NAME="${SHLIB_NAME}" SHLIB_LINK="${SHLIB_LINK}" \ - SCRIPTDIR="${SCRIPTDIR}" - -beforeinstall: ${SCRIPTPATH} - ${INSTALL_DATA} pkgIndex.tcl ${.CURDIR}/tls.tcl ${SCRIPTPATH} - -.include <bsd.lib.mk> Index: files/patch-warnings =================================================================== --- files/patch-warnings (revision 331258) +++ files/patch-warnings (working copy) @@ -84,9 +84,11 @@ + dprintf(stderr,"\nWaitForConnect(%p)", (void *)statePtr); for (;;) { ---- tls.c Thu Feb 12 21:09:21 2004 -+++ tls.c Mon Jun 20 10:23:44 2005 -@@ -459,5 +459,5 @@ + +--- tls.c.orig 2008-03-19 23:06:13.000000000 +0100 ++++ tls.c 2013-10-22 14:32:14.000000000 +0200 +@@ -468,7 +468,7 @@ + "ssl2", "ssl3", "tls1", NULL }; enum protocol { - TLS_SSL2, TLS_SSL3, TLS_TLS1, TLS_NONE @@ -93,10 +95,34 @@ + TLS_SSL2, TLS_SSL3, TLS_TLS1 }; Tcl_Obj *objPtr; -@@ -1168,5 +1168,5 @@ + SSL_CTX *ctx = NULL; +@@ -1225,7 +1225,7 @@ + Tcl_Obj *CONST objv[]; { - const char *commands [] = { "req", NULL }; + CONST84 char *commands [] = { "req", NULL }; - enum command { C_REQ, C_DUMMY }; + enum command { C_REQ }; int cmd; + if (objc < 2) { +@@ -1329,13 +1329,13 @@ + + name=X509_get_subject_name(cert); + +- X509_NAME_add_entry_by_txt(name,"C", MBSTRING_ASC, k_C, -1, -1, 0); +- X509_NAME_add_entry_by_txt(name,"ST", MBSTRING_ASC, k_ST, -1, -1, 0); +- X509_NAME_add_entry_by_txt(name,"L", MBSTRING_ASC, k_L, -1, -1, 0); +- X509_NAME_add_entry_by_txt(name,"O", MBSTRING_ASC, k_O, -1, -1, 0); +- X509_NAME_add_entry_by_txt(name,"OU", MBSTRING_ASC, k_OU, -1, -1, 0); +- X509_NAME_add_entry_by_txt(name,"CN", MBSTRING_ASC, k_CN, -1, -1, 0); +- X509_NAME_add_entry_by_txt(name,"Email", MBSTRING_ASC, k_Email, -1, -1, 0); ++ X509_NAME_add_entry_by_txt(name,"C", MBSTRING_ASC, (const unsigned char *)k_C, -1, -1, 0); ++ X509_NAME_add_entry_by_txt(name,"ST", MBSTRING_ASC, (const unsigned char *)k_ST, -1, -1, 0); ++ X509_NAME_add_entry_by_txt(name,"L", MBSTRING_ASC, (const unsigned char *)k_L, -1, -1, 0); ++ X509_NAME_add_entry_by_txt(name,"O", MBSTRING_ASC, (const unsigned char *)k_O, -1, -1, 0); ++ X509_NAME_add_entry_by_txt(name,"OU", MBSTRING_ASC, (const unsigned char *)k_OU, -1, -1, 0); ++ X509_NAME_add_entry_by_txt(name,"CN", MBSTRING_ASC, (const unsigned char *)k_CN, -1, -1, 0); ++ X509_NAME_add_entry_by_txt(name,"Email", MBSTRING_ASC, (const unsigned char *)k_Email, -1, -1, 0); + + X509_set_subject_name(cert,name); + Index: pkg-descr =================================================================== --- pkg-descr (revision 331258) +++ pkg-descr (working copy) @@ -2,7 +2,4 @@ This extension can be used to utilize SSL encryption on top of any valid Tcl Channel - not just sockets! -Note, that Scriptics has released this newer version (1.4), but the -author's web-site listed below still only lists 1.3. - WWW: http://www.sensus.org/tcl/tls.htm Index: pkg-plist =================================================================== --- pkg-plist (revision 331258) +++ pkg-plist (working copy) @@ -1,7 +0,0 @@ -%%SCRIPTDIR%%/pkgIndex.tcl -%%SCRIPTDIR%%/tls.tcl -@dirrm %%SCRIPTDIR%% -lib/%%SHLIB_NAME%% -lib/%%SHLIB_LINK%% -%%PORTDOCS%%share/doc/tls/tls.htm -%%PORTDOCS%%@dirrm share/doc/tls >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201310221536.r9MFahWM086324>