Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 25 Apr 2013 21:19:01 GMT
From:      John Marino <draco@marino.st>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   ports/178163: www/aws: [MAINTAINER] Support USES+= ada, bug fixes, split out demos
Message-ID:  <201304252119.r3PLJ1w6061297@red.freebsd.org>
Resent-Message-ID: <201304252120.r3PLK0Vv095274@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         178163
>Category:       ports
>Synopsis:       www/aws: [MAINTAINER] Support USES+= ada, bug fixes, split out demos
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Apr 25 21:20:00 UTC 2013
>Closed-Date:
>Last-Modified:
>Originator:     John Marino
>Release:        
>Organization:
>Environment:
>Description:
The www/aws port was always a little rough.  Some issues this update addresses:

1) support USES+= ada
2) Remove demos and put then in another port (they require aws to be installed before they can build)
3) Fix LDAP support
4) Fix PLIST in multiple places
5) Fix RPATH issues (tested in pkgsrc)
6) Fix gcc-aux incompatibilities
7) Use new gprbuild port
8) convert to new options framework
9) support multijob building

make sure ports/178146 is committed first (it has several dependencies as well)


>How-To-Repeat:

>Fix:


Patch attached with submission follows:

--- www/aws/Makefile.orig	2013-04-25 13:04:39.000000000 +0200
+++ www/aws/Makefile	2013-04-26 01:00:48.000000000 +0200
@@ -3,15 +3,14 @@
 
 PORTNAME=	aws
 PORTVERSION=	2.10.0
+PORTREVISION=	1
 CATEGORIES=	www
-MASTER_SITES=	http://downloads.dragonlace.net/src/ \
-		http://dragonlace.mirrors.ada.cx/src/
+MASTER_SITES=	http://downloads.dragonlace.net/src/
 
 MAINTAINER=	draco@marino.st
 COMMENT=	Adacore Ada Web Server and framework
 
-BUILD_DEPENDS=	gnat-aux>=20101204:${PORTSDIR}/lang/gnat-aux \
-		gprbuild-aux>=20101120:${PORTSDIR}/devel/gprbuild-aux \
+BUILD_DEPENDS=	gprbuild>=20120510:${PORTSDIR}/devel/gprbuild \
 		xmlada>=3.2:${PORTSDIR}/textproc/xmlada \
 		gnatpython>=20101207:${PORTSDIR}/devel/gnatpython
 
@@ -19,21 +18,27 @@
 USE_BZIP2=	yes
 GNU_CONFIGURE=	yes
 USE_GMAKE=	yes
-USE_LDCONFIG=	yes
-CC=		gnatgcc
+USES+=		ada
+MAKE_JOBS_SAFE=	yes
 DOTBUILD=	release
-MAKE_ENV+=	ADA_PROJECT_PATH=${PREFIX}/lib/gnat
+ADDL_RPATH=	${LOCALBASE}/lib:${LOCALBASE}/lib/aws/native/relocatable
 
-OPTIONS_DEFINE=	SSL IPV6 DEMOS DEBUG LDAP DSRT RELOC
+OPTIONS_DEFINE=		SSL IPV6 DEBUG LDAP DSRT RELOC
 OPTIONS_DEFAULT=	SSL
-SSL_DESC=	Enable HTTPS/SSL support
-DEMOS_DESC=	Build demo programs in examples/aws/demos
-DSRT_DESC=	Disable shared runtime
-RELOC_DESC=	Build shared libraries (default is static)
+NO_OPTIONS_SORT=	yes
+aws_UNSET=		IPV6
 
-CONF_ARGS=	PROCESSORS=1
-CONF_ARGS+=	GCC=gnatgcc
+SSL_DESC=		Enable HTTPS/SSL support
+DSRT_DESC=		Disable shared runtime
+RELOC_DESC=		Build shared libraries (default is static)
+IPV6_DESC=		Support IPv6 instead of IPv4
+
+CONF_ARGS=	PROCESSORS=${MAKE_JOBS_NUMBER}
+CONF_ARGS+=	GCC=ada
 CONF_ARGS+=	PYTHON=python${PYTHON_VER}
+CONF_ARGS+=	XMLADA=true
+CONF_ARGS+=	PRJ_BUILD=${DOTBUILD}
+CONF_ARGS+=	prefix=${PREFIX}
 
 .include <bsd.port.options.mk>
 
@@ -42,9 +47,8 @@
 ###################
 
 .if ${PORT_OPTIONS:MSSL}
+USE_OPENSSL=	yes
 CONF_ARGS+=	SOCKET=openssl
-BUILD_DEPENDS+=	openssl>=1:${PORTSDIR}/security/openssl
-RUN_DEPENDS+=	openssl>=1:${PORTSDIR}/security/openssl
 PLIST_SUB+=	YSSL=""
 PLIST_SUB+=	NSSL="@comment "
 .else
@@ -57,8 +61,11 @@
 ####################
 
 .if ${PORT_OPTIONS:MLDAP}
+USE_OPENLDAP=	yes
 CONF_ARGS+=	LDAP=true
-RUN_DEPENDS+=	openldap24>=2.4:${PORTSDIR}/net/openldap24-client
+PLIST_SUB+=	LDAP=""
+.else
+PLIST_SUB+=	LDAP="@comment "
 .endif
 
 ####################
@@ -67,6 +74,11 @@
 
 .if ${PORT_OPTIONS:MIPV6}
 CONF_ARGS+=	IPv6=true
+PLIST_SUB+=	NIP6="@comment "
+PLIST_SUB+=	YIP6=""
+.else
+PLIST_SUB+=	YIP6="@comment "
+PLIST_SUB+=	NIP6=""
 .endif
 
 #####################
@@ -97,76 +109,31 @@
 ##  DEMOS Support  ##
 #####################
 
-.if ${PORT_OPTIONS:MDEMOS}
-DEMO_DIRS+=	agent
-DEMO_DIRS+=	auth
-DEMO_DIRS+=	com
-DEMO_DIRS+=	dispatch
-DEMO_DIRS+=	hello_world
-DEMO_DIRS+=	hello_wsdl
-DEMO_DIRS+=	hotplug
-DEMO_DIRS+=	interoplab
-DEMO_DIRS+=	jabber_demo
-DEMO_DIRS+=	multiple_sessions
-DEMO_DIRS+=	res_demo
-DEMO_DIRS+=	runme
-DEMO_DIRS+=	soap_demo
-DEMO_DIRS+=	soap_disp
-DEMO_DIRS+=	soap_vs
-DEMO_DIRS+=	split
-DEMO_DIRS+=	test_mail
-DEMO_DIRS+=	text_input
-DEMO_DIRS+=	vh_demo
-DEMO_DIRS+=	web_block
-DEMO_DIRS+=	web_block_ajax
-DEMO_DIRS+=	web_block_ajax_templates
-DEMO_DIRS+=	web_elements
-DEMO_DIRS+=	web_mail
-DEMO_DIRS+=	wps
-DEMO_DIRS+=	ws
-DEMO_DIRS+=	zdemo
-
-.if ${PORT_OPTIONS:MLDAP}
-DEMO_DIRS+=	test_ldap
-PLIST_SUB+=	LDAP=""
-.else
-PLIST_SUB+=	LDAP="@comment "
-.endif
-PLIST_SUB+=	DEMO=""
-.else
-PLIST_SUB+=	DEMO="@comment "
-PLIST_SUB+=	LDAP="@comment "
-.endif
+# Option removed.
+# Demos require an installed AWS to build.
+# These demos must be moved to a separate port, e.g. www/aws-demos
+
+post-patch:
+	@${REINPLACE_CMD} \
+	   -e 's|@ADDITIONAL_RPATH@|${ADDL_RPATH}|' \
+	   -e 's|@PREFIX@|${LOCALBASE}|g' \
+		${WRKSRC}/src/src.gpr \
+		${WRKSRC}/include/include.gpr
 
 do-configure:
 	cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} \
-	${GMAKE} setup ${CONF_ARGS}
+		${GMAKE} setup ${CONF_ARGS}
 
 do-build:
 	# docs are built, but the .pdf format is intentionally disabled
 	# The taTeX dependency brings in ~100MB so it's not worth it.
-	cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${GMAKE} build build_doc
+	cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} \
+		${GMAKE} build build_doc
 
 test: install
 	cd ${WRKSRC}/regtests && python${PYTHON_VER} testsuite.py
 
 do-install:
 	cd ${WRKSRC} && ${GMAKE} install
-.if ${PORT_OPTIONS:MDEMOS}
-	${MAKE} demos
-	${MAKE} demos-install
-.endif
-
-demos:
-.for dd in ${DEMO_DIRS}
-	cd ${WRKSRC}/demos/${dd} && ${GMAKE}
-.endfor
-
-demos-install:
-	${MKDIR} ${PREFIX}/share/examples/aws/demos
-.for dd in ${DEMO_DIRS}
-	${FIND} ${WRKSRC}/demos/${dd} -type f -perm -0001 \
-	-exec ${INSTALL} {} ${PREFIX}/share/examples/aws/demos/ \;
-.endfor
 
 .include <bsd.port.mk>
--- /dev/null	2013-04-26 01:00:00.000000000 +0200
+++ www/aws/files/patch-include_include.gpr	2013-04-25 13:24:45.000000000 +0200
@@ -0,0 +1,12 @@
+$NetBSD: patch-include_include.gpr,v 1.1 2012/07/08 20:14:28 marino Exp $
+
+--- include/include.gpr.orig	2011-01-25 20:52:57.000000000 +0000
++++ include/include.gpr
+@@ -40,6 +40,7 @@ project Include is
+ 
+    for Library_Name use "aws_include";
+    for Library_Kind use Shared.Library_Type;
++   for Library_Options use ("-R", "-Wl,-R,@ADDITIONAL_RPATH@");
+ 
+    ---------
+    -- Ide --
--- /dev/null	2013-04-26 01:00:00.000000000 +0200
+++ www/aws/files/patch-src_soap_soap-message-xml.adb	2013-04-25 13:23:58.000000000 +0200
@@ -0,0 +1,24 @@
+$NetBSD: patch-src_soap_soap-message-xml.adb,v 1.1 2012/07/08 20:14:28 marino Exp $
+
+--- src/soap/soap-message-xml.adb.orig	2012-07-05 03:56:08.000000000 +0000
++++ src/soap/soap-message-xml.adb
+@@ -437,7 +437,8 @@ package body SOAP.Message.XML is
+             Faultstring => SOAP.Parameters.Get (S.Parameters, "faultstring"));
+       else
+          return Message.Response.Object'
+-           (S.Name_Space, S.Wrapper_Name, S.Parameters);
++           (Message.Object'(S.Name_Space, S.Wrapper_Name, S.Parameters)
++            with null record);
+       end if;
+ 
+    exception
+@@ -483,7 +484,8 @@ package body SOAP.Message.XML is
+             Faultstring => SOAP.Parameters.Get (S.Parameters, "faultstring"));
+       else
+          return Message.Response.Object'
+-           (S.Name_Space, S.Wrapper_Name, S.Parameters);
++           (Message.Object'(S.Name_Space, S.Wrapper_Name, S.Parameters)
++            with null record);
+       end if;
+ 
+    exception
--- /dev/null	2013-04-26 01:00:00.000000000 +0200
+++ www/aws/files/patch-src_src.gpr	2013-04-26 01:01:39.000000000 +0200
@@ -0,0 +1,20 @@
+--- src/src.gpr.orig	2011-01-09 15:47:58.000000000 +0100
++++ src/src.gpr	2013-04-25 20:08:01.000000000 +0200
+@@ -77,7 +77,7 @@
+             when "Windows_NT" =>
+                for Library_Options use ("-lwsock32", "-lws2_32");
+             when others =>
+-               null;
++               for Library_Options use ("-R", "-Wl,-R,@ADDITIONAL_RPATH@");
+          end case;
+ 
+          case Shared.LDAP is
+@@ -88,7 +88,7 @@
+                        Project'Library_Options & ("-lwldap32");
+                   when others =>
+                      for Library_Options use
+-                       Project'Library_Options & ("-lldap");
++                       Project'Library_Options & ("-L@PREFIX@/lib", "-lldap");
+                end case;
+             when "Disabled" =>
+                null;
--- /dev/null	2013-04-26 01:00:00.000000000 +0200
+++ www/aws/files/patch-docs_docs.gpr	2013-04-25 13:24:56.000000000 +0200
@@ -0,0 +1,13 @@
+$NetBSD: patch-docs_docs.gpr,v 1.1 2012/07/08 20:14:28 marino Exp $
+
+--- docs/docs.gpr.orig	2011-01-25 20:53:19.000000000 +0000
++++ docs/docs.gpr
+@@ -55,7 +55,7 @@ project Docs is
+ 
+    package Binder is
+       for Default_Switches ("Ada")
+-         use Shared.Builder'Default_Switches ("Ada") & ("-static");
++         use Shared.Builder'Default_Switches ("Ada");
+    end Binder;
+ 
+    -------------
--- www/aws/pkg-plist.orig	2013-04-25 16:30:09.000000000 +0200
+++ www/aws/pkg-plist	2013-04-26 01:00:54.000000000 +0200
@@ -43,6 +43,9 @@
 lib/aws/native/static/sha-process_data.ali
 lib/aws/native/static/sha.ali
 lib/aws/native/static/memory_streams.ali
+%%LDAP%%lib/aws/native/static/aws-ldap-client.ali
+%%LDAP%%lib/aws/native/static/aws-ldap-thin.ali
+%%LDAP%%lib/aws/native/static/aws-ldap.ali
 lib/aws/native/static/libaws_ssl.a
 lib/aws/native/static/libaws_include.a
 lib/aws/native/static/libaws.a
@@ -117,7 +120,8 @@
 lib/aws/native/static/aws-os_lib.ali
 lib/aws/native/static/aws-net-thin.ali
 lib/aws/native/static/aws-net-stream_io.ali
-lib/aws/native/static/aws-net-std__gnat.ali
+%%NIP6%%lib/aws/native/static/aws-net-std__gnat.ali
+%%YIP6%%lib/aws/native/static/aws-net-std__ipv6.ali
 %%YSSL%%lib/aws/native/static/aws-net-ssl__openssl.ali
 %%NSSL%%lib/aws/native/static/aws-net-ssl__dummy.ali
 %%YSSL%%lib/aws/native/static/aws-net-ssl-certificate__openssl.ali
@@ -206,6 +210,9 @@
 lib/aws/native/relocatable/sha-process_data.ali
 lib/aws/native/relocatable/sha.ali
 lib/aws/native/relocatable/memory_streams.ali
+%%LDAP%%lib/aws/native/relocatable/aws-ldap-client.ali
+%%LDAP%%lib/aws/native/relocatable/aws-ldap-thin.ali
+%%LDAP%%lib/aws/native/relocatable/aws-ldap.ali
 lib/aws/native/relocatable/libaws_ssl.so
 lib/aws/native/relocatable/libaws.so
 lib/aws/native/relocatable/libaws_include.so
@@ -280,7 +287,8 @@
 lib/aws/native/relocatable/aws-os_lib.ali
 lib/aws/native/relocatable/aws-net-thin.ali
 lib/aws/native/relocatable/aws-net-stream_io.ali
-lib/aws/native/relocatable/aws-net-std__gnat.ali
+%%NIP6%%lib/aws/native/relocatable/aws-net-std__gnat.ali
+%%YIP6%%lib/aws/native/relocatable/aws-net-std__ipv6.ali
 %%YSSL%%lib/aws/native/relocatable/aws-net-ssl__openssl.ali
 %%NSSL%%lib/aws/native/relocatable/aws-net-ssl__dummy.ali
 %%YSSL%%lib/aws/native/relocatable/aws-net-ssl-certificate__openssl.ali
@@ -416,6 +424,11 @@
 include/aws/soap-client.adb
 include/aws/soap.ads
 include/aws/native/aws-os_lib.ads
+%%LDAP%%include/aws/aws-ldap-client.ads
+%%LDAP%%include/aws/aws-ldap-client.adb
+%%LDAP%%include/aws/aws-ldap-thin.ads
+%%LDAP%%include/aws/aws-ldap-thin.adb
+%%LDAP%%include/aws/aws-ldap.ads
 include/aws/components/zlib-thin.ads
 include/aws/components/zlib-thin.adb
 include/aws/components/zlib-streams.ads
@@ -736,39 +749,6 @@
 %%EXAMPLESDIR%%/images/aws_up.png
 %%EXAMPLESDIR%%/images/aws_logo.png
 %%EXAMPLESDIR%%/images/aws_down.png
-%%DEMO%%%%EXAMPLESDIR%%/demos/agent
-%%DEMO%%%%EXAMPLESDIR%%/demos/auth
-%%DEMO%%%%EXAMPLESDIR%%/demos/com_1
-%%DEMO%%%%EXAMPLESDIR%%/demos/com_2
-%%DEMO%%%%EXAMPLESDIR%%/demos/dispatch
-%%DEMO%%%%EXAMPLESDIR%%/demos/hello_world
-%%DEMO%%%%EXAMPLESDIR%%/demos/hotplug
-%%DEMO%%%%EXAMPLESDIR%%/demos/interoplab_main
-%%DEMO%%%%EXAMPLESDIR%%/demos/jabber_demo
-%%DEMO%%%%EXAMPLESDIR%%/demos/main
-%%DEMO%%%%EXAMPLESDIR%%/demos/multiple_sessions
-%%DEMO%%%%EXAMPLESDIR%%/demos/res_demo
-%%DEMO%%%%EXAMPLESDIR%%/demos/runme
-%%DEMO%%%%EXAMPLESDIR%%/demos/soap_client
-%%DEMO%%%%EXAMPLESDIR%%/demos/soap_cvs
-%%DEMO%%%%EXAMPLESDIR%%/demos/soap_server
-%%DEMO%%%%EXAMPLESDIR%%/demos/soap_server_disp
-%%DEMO%%%%EXAMPLESDIR%%/demos/soap_svs
-%%DEMO%%%%EXAMPLESDIR%%/demos/split
-%%LDAP%%%%EXAMPLESDIR%%/demos/test_ldap
-%%DEMO%%%%EXAMPLESDIR%%/demos/test_mail
-%%DEMO%%%%EXAMPLESDIR%%/demos/text_input
-%%DEMO%%%%EXAMPLESDIR%%/demos/vh_demo
-%%DEMO%%%%EXAMPLESDIR%%/demos/web_block
-%%DEMO%%%%EXAMPLESDIR%%/demos/web_block_ajax
-%%DEMO%%%%EXAMPLESDIR%%/demos/web_block_ajax_templates
-%%DEMO%%%%EXAMPLESDIR%%/demos/web_elements
-%%DEMO%%%%EXAMPLESDIR%%/demos/web_mail
-%%DEMO%%%%EXAMPLESDIR%%/demos/wps
-%%DEMO%%%%EXAMPLESDIR%%/demos/ws
-%%DEMO%%%%EXAMPLESDIR%%/demos/wsdl_demo_client
-%%DEMO%%%%EXAMPLESDIR%%/demos/wsdl_demo_server
-%%DEMO%%%%EXAMPLESDIR%%/demos/zdemo
 share/gps/plug-ins/ada2wsdl.xml
 share/gps/plug-ins/aws.py
 share/gps/plug-ins/aws.xml
@@ -798,4 +778,3 @@
 @dirrm include/aws
 @dirrmtry lib/gnat
 @dirrmtry share/gps/plug-ins
-@dirrmtry %%EXAMPLESDIR%%/demos


>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201304252119.r3PLJ1w6061297>