diff --git a/py-sot-pattern-generator-v3/Makefile b/py-sot-pattern-generator-v3/Makefile
index 7831acfa5dde1b7131d05a5a243cc9e5fbf2e013..d8e3a39d93bd29efa51a129043b07e0e4c2045ed 100644
--- a/py-sot-pattern-generator-v3/Makefile
+++ b/py-sot-pattern-generator-v3/Makefile
@@ -4,15 +4,10 @@
 
 ORG=			stack-of-tasks
 NAME=			sot-pattern-generator
-VERSION=		3.1.0
+VERSION=		3.2.1
 
-DISTNAME=		${NAME}-${VERSION}
 PKGNAME=		${PKGTAG.python-}${NAME}-v3-${VERSION}
 
-MASTER_SITES=		${MASTER_SITE_OPENROBOTS:=${NAME}/}
-MASTER_REPOSITORY=	${MASTER_REPOSITORY_GITHUB}${ORG}/${NAME}
-CHECKOUT_VCS_OPTS+=	--recursive
-
 CATEGORIES=		wip
 COMMENT=		Walking Pattern Generator (python bindings)
 LICENSE=		2-clause-bsd
@@ -20,10 +15,9 @@ MAINTAINER=		gepetto@laas.fr
 
 CONFLICTS+=		py[0-9][0-9]-${NAME}
 
-CMAKE_ARGS+=	-DCMAKE_INSTALL_DOCDIR=share/doc/${PKGBASE}
-
-DYNAMIC_PLIST_DIRS+=	share/doc/${PKGBASE}
+USE_PYTHON_ONLY=	true
 
+include ../../wip/jrl-cmakemodules/Makefile.common
 include ../../${CATEGORIES}/${NAME}-v3/depend.mk
 include ../../devel/boost-headers/depend.mk
 include ../../devel/boost-libs/depend.mk
diff --git a/py-sot-pattern-generator-v3/PLIST b/py-sot-pattern-generator-v3/PLIST
index 8221fb05b9b5953e093f2c8e1331506b683cd9e3..2099becd992dea3652166df081a63b3a392778b2 100644
--- a/py-sot-pattern-generator-v3/PLIST
+++ b/py-sot-pattern-generator-v3/PLIST
@@ -31,4 +31,3 @@ ${PYTHON_SITELIB}/dynamic_graph/sot/pattern_generator/step_time_line/wrap.so
 ${PYTHON_SITELIB}/dynamic_graph/sot/pattern_generator/walking.py
 ${PYTHON_SITELIB}/dynamic_graph/sot/pattern_generator/which_foot_upper/__init__.py
 ${PYTHON_SITELIB}/dynamic_graph/sot/pattern_generator/which_foot_upper/wrap.so
-${PYTHON_SITELIB}/dynamic_graph/tutorial/walkromeo.py
diff --git a/py-sot-pattern-generator-v3/distinfo b/py-sot-pattern-generator-v3/distinfo
index ffe6fa494003bd3c7018783d2856918f1a846d71..74d43753309ca8d03f5edad1637723a71164f27e 100644
--- a/py-sot-pattern-generator-v3/distinfo
+++ b/py-sot-pattern-generator-v3/distinfo
@@ -1,6 +1,3 @@
-SHA1 (sot-pattern-generator-3.1.0.tar.gz) = dde74b7fe668b2d1ed0a6b2249f8de8caccef32f
-RMD160 (sot-pattern-generator-3.1.0.tar.gz) = 6463c19039fe6bfa0d2e2b784da3bec7eb083c02
-Size (sot-pattern-generator-3.1.0.tar.gz) = 840593 bytes
-SHA1 (patch-aa) = 10814c463d993c1d7e0052d67f06fde13622afd7
-SHA1 (patch-ab) = f1efb5610f3933cf0a79b23c7a8a5d15a29b5fe3
-SHA1 (patch-ac) = 9cd3c3409c9853b88b06777c9af34e5014224049
+SHA1 (sot-pattern-generator-3.2.1.tar.gz) = 0600310a53036a597e0b0953d3f77eb149795cb2
+RMD160 (sot-pattern-generator-3.2.1.tar.gz) = dcb5ba7d9c195bb71972850be2cd06424de0fa51
+Size (sot-pattern-generator-3.2.1.tar.gz) = 850401 bytes
diff --git a/py-sot-pattern-generator-v3/patches/patch-aa b/py-sot-pattern-generator-v3/patches/patch-aa
deleted file mode 100644
index 5cf6d1d54ce1ec8b0e16fe8628733121dc20c287..0000000000000000000000000000000000000000
--- a/py-sot-pattern-generator-v3/patches/patch-aa
+++ /dev/null
@@ -1,13 +0,0 @@
-Don't install plugins that are already installed by sot-pattern-generator-v3
-
---- src/CMakeLists.txt.orig	2018-08-17 15:19:12.000000000 +0200
-+++ src/CMakeLists.txt	2018-12-13 11:07:17.868523867 +0100
-@@ -106,7 +106,7 @@
-   PKG_CONFIG_USE_DEPENDENCY(${LIBRARY_NAME} pinocchio)
-   PKG_CONFIG_USE_DEPENDENCY(${LIBRARY_NAME} sot-core)
- 
--  INSTALL(TARGETS ${LIBRARY_NAME} DESTINATION ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/plugin)
-+  #INSTALL(TARGETS ${LIBRARY_NAME} DESTINATION ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/plugin)
- 
-   # --- PY ---
-   IF(BUILD_PYTHON_INTERFACE)
diff --git a/py-sot-pattern-generator-v3/patches/patch-ab b/py-sot-pattern-generator-v3/patches/patch-ab
deleted file mode 100644
index 45752bda09420c9e5d6e87b17057309e92eb15cb..0000000000000000000000000000000000000000
--- a/py-sot-pattern-generator-v3/patches/patch-ab
+++ /dev/null
@@ -1,13 +0,0 @@
-Don't install the .pc file, that is already installed by sot-pattern-generator
-
---- cmake/base.cmake.orig	2018-07-23 03:38:57.000000000 +0200
-+++ cmake/base.cmake	2018-12-13 11:13:28.177001824 +0100
-@@ -226,7 +226,7 @@
- #   finalize the project setup.
- #
- MACRO(SETUP_PROJECT_FINALIZE)
--  _SETUP_PROJECT_PKG_CONFIG_FINALIZE()
-+  #_SETUP_PROJECT_PKG_CONFIG_FINALIZE()
-   _SETUP_PROJECT_DOCUMENTATION_FINALIZE()
-   _SETUP_PROJECT_HEADER_FINAlIZE()
-   _SETUP_DEBIAN()
diff --git a/py-sot-pattern-generator-v3/patches/patch-ac b/py-sot-pattern-generator-v3/patches/patch-ac
deleted file mode 100644
index 7e46eb817ee5bafc7ba16dce464c766adf2fde7d..0000000000000000000000000000000000000000
--- a/py-sot-pattern-generator-v3/patches/patch-ac
+++ /dev/null
@@ -1,27 +0,0 @@
-don't install headers that are already here
-
---- include/CMakeLists.txt.orig	2018-08-17 15:19:12.000000000 +0200
-+++ include/CMakeLists.txt	2018-12-13 11:55:15.693566494 +0100
-@@ -46,7 +46,7 @@
- #----------------------------------------------------
- # Install procedure for the header files
- #----------------------------------------------------
--INSTALL(FILES ${fullpath_${PROJECT_NAME}_HEADERS}
--	DESTINATION include/${PROJECT_NAME}
--        PERMISSIONS OWNER_READ GROUP_READ WORLD_READ OWNER_WRITE
--)
-+#INSTALL(FILES ${fullpath_${PROJECT_NAME}_HEADERS}
-+#	DESTINATION include/${PROJECT_NAME}
-+#        PERMISSIONS OWNER_READ GROUP_READ WORLD_READ OWNER_WRITE
-+#)
---- cmake/base.cmake.orig	2018-12-13 11:57:57.000000000 +0100
-+++ cmake/base.cmake	2018-12-13 12:01:12.105987185 +0100
-@@ -206,7 +206,7 @@
- 
-   #FIXME: normalize naming to <MODULE>_SETUP()
-   _SETUP_PROJECT_WARNINGS()
--  _SETUP_PROJECT_HEADER()
-+  #_SETUP_PROJECT_HEADER()
-   _SETUP_PROJECT_DIST()
-   DISTCHECK_SETUP()
-   RELEASE_SETUP()
diff --git a/sot-pattern-generator-v3/Makefile b/sot-pattern-generator-v3/Makefile
index d24b021076d1ecc712619816130493df5ad0b153..38eb3b05986a40bd28df067cc46bfd63d6613bc5 100644
--- a/sot-pattern-generator-v3/Makefile
+++ b/sot-pattern-generator-v3/Makefile
@@ -4,15 +4,9 @@
 
 ORG=			stack-of-tasks
 NAME=			sot-pattern-generator
-VERSION=		3.2.0
+VERSION=		3.2.1
 
-DISTNAME=		${NAME}-${VERSION}
 PKGNAME=		${NAME}-v3-${VERSION}
-PKGREVISION=		1
-
-MASTER_SITES=		${MASTER_SITE_OPENROBOTS:=${NAME}/}
-MASTER_REPOSITORY=	${MASTER_REPOSITORY_GITHUB}${ORG}/${NAME}.git
-CHECKOUT_VCS_OPTS+=	--recursive
 
 CATEGORIES=		wip
 COMMENT=		Walking Pattern Generator
@@ -22,18 +16,13 @@ MAINTAINER=		gepetto-soft@laas.fr
 CONFLICTS+=		${NAME}
 
 CMAKE_ARGS+=		-DBUILD_PYTHON_INTERFACE=OFF
-CMAKE_ARGS+=		-DCMAKE_INSTALL_LIBDIR=lib
-
-DYNAMIC_PLIST_DIRS+=	share/doc/${NAME}
-
-DEPEND_ABI.pinocchio=	pinocchio>2
 
+include ../../wip/jrl-cmakemodules/Makefile.common
 include ../../devel/boost-headers/depend.mk
 include ../../devel/boost-libs/depend.mk
 include ../../math/pinocchio/depend.mk
 include ../../wip/jrl-walkgen-v3/depend.mk
 include ../../wip/dynamic-graph-v3/depend.mk
-include ../../wip/py-dynamic-graph-v3/depend.mk
 include ../../wip/sot-core-v3/depend.mk
 include ../../pkgtools/pkg-config/depend.mk
 include ../../mk/sysdep/cmake.mk
diff --git a/sot-pattern-generator-v3/distinfo b/sot-pattern-generator-v3/distinfo
index 22f8db24909d8201209b03c03243f220e23ca0a1..74d43753309ca8d03f5edad1637723a71164f27e 100644
--- a/sot-pattern-generator-v3/distinfo
+++ b/sot-pattern-generator-v3/distinfo
@@ -1,3 +1,3 @@
-SHA1 (sot-pattern-generator-3.2.0.tar.gz) = 999481265d195ec5b69139fafbca3f664956f0d0
-RMD160 (sot-pattern-generator-3.2.0.tar.gz) = 4dadeabb1a197733b15ac983a8cf3857e21a74ec
-Size (sot-pattern-generator-3.2.0.tar.gz) = 852965 bytes
+SHA1 (sot-pattern-generator-3.2.1.tar.gz) = 0600310a53036a597e0b0953d3f77eb149795cb2
+RMD160 (sot-pattern-generator-3.2.1.tar.gz) = dcb5ba7d9c195bb71972850be2cd06424de0fa51
+Size (sot-pattern-generator-3.2.1.tar.gz) = 850401 bytes