From 395e15fe3959b58b41d46fcb4be61824d08e98cc Mon Sep 17 00:00:00 2001
From: Anthony Mallet <anthony.mallet@laas.fr>
Date: Fri, 13 Dec 2013 15:14:31 +0100
Subject: [PATCH] [wip/genom3] Update to 2.99.22

Changes since 2.99.21:
 . Support an "extern" parameter in tcl procedure [$component types], returning
   the list of public types of the components interface.
 . Fix version in the genom3.pc file (use @PACKAGE_VERSION@ in instead of
   @VERSION@).
 . Install C client libraries and headers in a middleware-dependent location,
   so that multiple builds can be installed inside the same prefix. .pc files
   are "middlewarized" too, so PKG_CONFIG_PATH must be tuned.
 . Fix skeleton codels Makefile for -l c++ option.
---
 genom3/Makefile         |  5 ++--
 genom3/PLIST.templates  | 18 ++++++-------
 genom3/depend.mk        |  2 +-
 genom3/distinfo         |  7 +++--
 genom3/module.mk        | 27 +++++++++----------
 genom3/patches/patch-aa | 58 -----------------------------------------
 6 files changed, 27 insertions(+), 90 deletions(-)
 delete mode 100644 genom3/patches/patch-aa

diff --git a/genom3/Makefile b/genom3/Makefile
index 435035e8..ed9bee02 100644
--- a/genom3/Makefile
+++ b/genom3/Makefile
@@ -2,8 +2,7 @@
 # Created:			Anthony Mallet on Fri, 19 Oct 2012
 #
 
-PKGREVISION=	1
-VERSION=	2.99.21
+VERSION=	2.99.22
 DISTNAME=	genom-${VERSION}
 PKGNAME=	genom3-${VERSION}
 CATEGORIES=	architecture
@@ -11,7 +10,7 @@ MASTER_SITES=	${MASTER_SITE_OPENROBOTS:=genom/}
 MASTER_REPOSITORY= git ssh://trac.laas.fr/git/robots/genom3
 
 MAINTAINER=	mallet@laas.fr
-HOMEPAGE=	https://homepages.laas.fr/mallet/soft/architecture/genom3
+HOMEPAGE=	http://www.openrobots.org/wiki/genom3
 COMMENT=	Software components generator for robotics architecture.
 
 LICENSE=	2-clause-bsd
diff --git a/genom3/PLIST.templates b/genom3/PLIST.templates
index 2b7a8db3..cffd0faa 100644
--- a/genom3/PLIST.templates
+++ b/genom3/PLIST.templates
@@ -4,21 +4,21 @@
 ${PLIST.pocolibs-server}bin/${GENOM_MODULE}-pocolibs
 
 @comment pocolibs/client/c
-${PLIST.pocolibs-client-c}include/${GENOM_MODULE}/c/client.h
-${PLIST.pocolibs-client-c}lib/genom/client/c/${GENOM_MODULE}.la
-${PLIST.pocolibs-client-c}lib/lib${GENOM_MODULE}-c-client.la
-${PLIST.pocolibs-client-c}lib/pkgconfig/${GENOM_MODULE}-c-client.pc
+${PLIST.pocolibs-client-c}include/genom/pocolibs/${GENOM_MODULE}/c/client.h
+${PLIST.pocolibs-client-c}lib/genom/pocolibs/plugins/${GENOM_MODULE}.la
+${PLIST.pocolibs-client-c}lib/genom/pocolibs/lib${GENOM_MODULE}-c-client.la
+${PLIST.pocolibs-client-c}lib/pkgconfig/genom/pocolibs/${GENOM_MODULE}-c-client.pc
 
 @comment ros/server
 ${PLIST.ros-server}bin/${GENOM_MODULE}-ros
 
 @comment ros/client/c
-${PLIST.ros-client-c}include/${GENOM_MODULE}/c/client.h
-${PLIST.ros-client-c}lib/genom/client/c/${GENOM_MODULE}.la
-${PLIST.ros-client-c}lib/lib${GENOM_MODULE}-c-client.la
-${PLIST.ros-client-c}lib/pkgconfig/${GENOM_MODULE}-c-client.pc
+${PLIST.ros-client-c}include/genom/ros/${GENOM_MODULE}/c/client.h
+${PLIST.ros-client-c}lib/genom/ros/plugins/${GENOM_MODULE}.la
+${PLIST.ros-client-c}lib/genom/ros/lib${GENOM_MODULE}-c-client.la
+${PLIST.ros-client-c}lib/pkgconfig/genom/ros/${GENOM_MODULE}-c-client.pc
 
-@comment ros/client/ros is a dynamic PLIST generated by the template
+@comment ros/client/ros is a dynamic PLIST generated by module.mk
 
 @comment openprs/client
 ${PLIST.openprs}lib/genom/client/openprs/${GENOM_MODULE}-openprs-client.la
diff --git a/genom3/depend.mk b/genom3/depend.mk
index 62f85977..422eeef1 100644
--- a/genom3/depend.mk
+++ b/genom3/depend.mk
@@ -19,7 +19,7 @@ SYSTEM_SEARCH.genom3=\
 	include/genom3/c/client.h		\
 	'lib/pkgconfig/genom3.pc:/Version/s/[^0-9.]//gp'
 
-DEPEND_ABI.genom3?=	genom3>=2.99.21r1
+DEPEND_ABI.genom3?=	genom3>=2.99.22
 DEPEND_DIR.genom3?=	../../wip/genom3
 
 export GENOM3=	${PREFIX.genom3}/bin/genom3
diff --git a/genom3/distinfo b/genom3/distinfo
index a9b86e05..2acecd8c 100644
--- a/genom3/distinfo
+++ b/genom3/distinfo
@@ -1,4 +1,3 @@
-SHA1 (genom-2.99.21.tar.gz) = bf98692dc90598c8e242ac0e25041970eaa8cd26
-RMD160 (genom-2.99.21.tar.gz) = df4fe3bd13884b98fa7d6b6f995b95ff74befc30
-Size (genom-2.99.21.tar.gz) = 1346170 bytes
-SHA1 (patch-aa) = 851080eaba72169eb0df4806822c38acd09bc04e
+SHA1 (genom-2.99.22.tar.gz) = 6cdae22a3f7b4fd84d21e6a5c44654cd7c6ba34d
+RMD160 (genom-2.99.22.tar.gz) = 2a439662c5c5d5fa4e9c15842de58e5958fbeb81
+Size (genom-2.99.22.tar.gz) = 1346320 bytes
diff --git a/genom3/module.mk b/genom3/module.mk
index e0b8fbd3..c4aa4d57 100644
--- a/genom3/module.mk
+++ b/genom3/module.mk
@@ -40,8 +40,6 @@ genom3-autoreconf(%): genom3-generate(%)
 
 # --- options --------------------------------------------------------------
 
-PKG_OPTIONS_OPTIONAL_GROUPS+=	client-c
-
 # codels
 PKG_SUPPORTED_OPTIONS+=		codels
 PKG_SUGGESTED_OPTIONS+=		codels
@@ -65,14 +63,11 @@ define PKG_OPTION_SET.pocolibs-server
   include ../../wip/genom3-pocolibs/depend.mk
 endef
 
-PKG_OPTIONS_GROUP.client-c+=		pocolibs-client-c
+PKG_SUPPORTED_OPTIONS+=			pocolibs-client-c
 PKG_OPTION_DESCR.pocolibs-client-c=	Build a pocolibs C client
 define PKG_OPTION_SET.pocolibs-client-c
   TMPL1_WRKSRC+=	${TEMPLATES_WRKDIR}/pocolibs/client/c
 
-  # XXX temporary
-  MAKE_JOBS_SAFE=no
-
   pre-configure: genom3-autoreconf(pocolibs/client/c)
 
   include ../../middleware/pocolibs/depend.mk
@@ -105,7 +100,7 @@ define PKG_OPTION_SET.ros-server
   include ../../mk/language/c++.mk
 endef
 
-PKG_OPTIONS_GROUP.client-c+=		ros-client-c
+PKG_SUPPORTED_OPTIONS+=			ros-client-c
 PKG_OPTION_DESCR.ros-client-c=		Build a ROS C client
 define PKG_OPTION_SET.ros-client-c
   TMPL1_WRKSRC+=	${TEMPLATES_WRKDIR}/ros/client/c
@@ -137,11 +132,11 @@ define PKG_OPTION_SET.ros-client-ros
 
   # hackish ... but this is for a PLIST.guess anyway, so nothing critical
   PRINT_PLIST_AWK_FILTERS+=\
-	/include\/[$$]{GENOM_MODULE}\// {next}			\
-	/[$$]{PYTHON_SITELIB}\/[$$]{GENOM_MODULE}\// {next}	\
-	/share\/[$$]{GENOM_MODULE}\/manifest.xml$$/ {next}	\
-	/share\/[$$]{GENOM_MODULE}\/msg/ {next}			\
-	/share\/[$$]{GENOM_MODULE}\/srv/ {next}
+	/include\/${GENOM_MODULE}\// {next}				\
+	/$(subst /,\/,${PYTHON_SITELIB})\/${GENOM_MODULE}\// {next}	\
+	/share\/${GENOM_MODULE}\/manifest.xml$$/ {next}			\
+	/share\/${GENOM_MODULE}\/msg/ {next}				\
+	/share\/${GENOM_MODULE}\/srv/ {next}
 
   pre-configure: genom3-autoreconf(ros/client/ros)
 
@@ -188,14 +183,16 @@ GENERATE_PLIST+=	${CAT} ${ROBOTPKG_DIR}/${PLIST_TEMPLATES};
 PRINT_PLIST_AWK_SUBST+=	gsub("${GENOM_MODULE}", "$${GENOM_MODULE}");
 PRINT_PLIST_AWK_FILTERS=
 PRINT_PLIST_FILTER+=\
-	${AWK} '							\
+	| ${AWK} '							\
 	  BEGIN { print "@comment includes ${PLIST_TEMPLATES}" }	\
 	  ${PRINT_PLIST_AWK_FILTERS}					\
 	  NR > FNR {							\
 	     if (!($$0 in filter)) print "$${PLIST.codels}" $$0; next;	\
 	  }								\
-	  { gsub("[$$]{PLIST[^}]*}", ""); filter[$$0] }			\
-	  ' ${ROBOTPKG_DIR}/${PLIST_TEMPLATES} -;
+	  { gsub("[$$]{GENOM_MODULE}", "${GENOM_MODULE}") }		\
+	  { gsub("[$$]{PLIST[^}]*}", "") }				\
+	  { filter[$$0] }						\
+	  ' ${ROBOTPKG_DIR}/${PLIST_TEMPLATES} -
 
 
 # --- common dependencies --------------------------------------------------
diff --git a/genom3/patches/patch-aa b/genom3/patches/patch-aa
deleted file mode 100644
index 70c170d4..00000000
--- a/genom3/patches/patch-aa
+++ /dev/null
@@ -1,58 +0,0 @@
-Support an "extern" parameter in tcl procedure [$component types]
-
-diff --git engine/tcl/object.tcl engine/tcl/object.tcl
-index 61a82f8..8b76321 100644
---- engine/tcl/object.tcl
-+++ engine/tcl/object.tcl
-@@ -32,8 +32,10 @@ namespace eval object {
-     if {[catch {$object class} class]} { error "not a genom object" }
- 
-     switch $visibility {
--      public - private {}
--      default { error "bad parameter $visibility: must be public or private" }
-+      public - extern - private {}
-+      default {
-+        error "bad parameter $visibility: must be public, extern or private"
-+      }
-     }
- 
-     switch $class {
-@@ -86,7 +88,7 @@ namespace eval object {
-       }
-     }
- 
--    if {$visibility == "private"} {
-+    if {$visibility == "private" || $visibility == "extern"} {
-       foreach r [$component remotes] {
-         foreach p [$r parameters] {
-           set r [type-types [$p type] $visibility $filter]
-@@ -96,7 +98,9 @@ namespace eval object {
-           set types [dict merge $types [type-types $t $visibility $filter]]
-         }
-       }
-+    }
- 
-+    if {$visibility == "private"} {
-       if {![catch {$component ids} ids]} {
-         set types [dict merge $types [type-types $ids $visibility $filter]]
-       }
---- configure~	2013-07-22 17:09:40.000000000 +0200
-+++ configure	2013-08-05 16:40:16.583601810 +0200
-@@ -570,7 +570,7 @@
- # Identity of this package.
- PACKAGE_NAME='genom'
- PACKAGE_TARNAME='genom'
--PACKAGE_VERSION='2.99.21'
-+PACKAGE_VERSION='2.99.22'
- PACKAGE_STRING='genom 2.99.21'
- PACKAGE_BUGREPORT='openrobots@laas.fr'
- PACKAGE_URL=''
-@@ -2762,7 +2762,7 @@
- 
- # Define the identity of the package.
-  PACKAGE='genom'
-- VERSION='2.99.21'
-+ VERSION='2.99.22'
- 
- 
- # Some tools Automake needs.
-- 
GitLab