diff --git a/py-tsid/Makefile b/py-tsid/Makefile
index 21b1afa397b438719d3d6af466ae0836ba6ff91e..bdc90ec85f9913958ab733dcd7b5430695b63120 100644
--- a/py-tsid/Makefile
+++ b/py-tsid/Makefile
@@ -4,14 +4,7 @@
 
 ORG=			stack-of-tasks
 NAME=			tsid
-VERSION=		1.2.0
-
-DISTNAME=		${NAME}-${VERSION}
-PKGNAME=		${PKGTAG.python-}${DISTNAME}
-
-MASTER_SITES=		${MASTER_SITE_OPENROBOTS:=${NAME}/}
-MASTER_REPOSITORY=	${MASTER_REPOSITORY_GITHUB}${ORG}/${NAME}.git
-CHECKOUT_VCS_OPTS+=	--recursive
+VERSION=		1.2.1
 
 CATEGORIES=		wip
 COMMENT=		Efficient Inverse Dynamics based on Pinocchio (python bindings)
@@ -19,7 +12,16 @@ LICENSE=		2-clause-bsd
 MAINTAINER=		gepetto-soft@laas.fr
 
 USE_BOOST_LIBS=		unit_test_framework
+USE_PYTHON=		yes
+
+# this does not support multiple parallel python version
+CONFLICTS+=		py[0-9][0-9]-${NAME}-[0-9]*
 
+CMAKE_ARGS+=		-DINSTALL_DOCUMENTATION=OFF
+CMAKE_ARGS+=		-DINSTALL_GENERATED_HEADERS=OFF
+CMAKE_ARGS+=		-DINSTALL_PKG_CONFIG_FILE=OFF
+
+include ../../wip/jrl-cmakemodules/Makefile.common
 include ../../${CATEGORIES}/${NAME}/depend.mk
 include ../../devel/boost-headers/depend.mk
 include ../../devel/boost-libs/depend.mk
@@ -37,7 +39,4 @@ include ../../mk/sysdep/python.mk
 include ../../mk/language/c.mk
 include ../../mk/language/c++.mk
 
-DEPEND_ABI.python +=		python<3
-DEPEND_ABI.eigen3 += eigen3>=3.2.0
-
 include ../../mk/robotpkg.mk
diff --git a/py-tsid/PLIST b/py-tsid/PLIST
index 452f3b03341c93e6af8449b305a0da86b2f9f5de..4198148c3e577d6c9c9af71a6bcffba9de148e6d 100644
--- a/py-tsid/PLIST
+++ b/py-tsid/PLIST
@@ -15,7 +15,9 @@ include/tsid/bindings/python/solvers/HQPOutput.hpp
 include/tsid/bindings/python/solvers/expose-solvers.hpp
 include/tsid/bindings/python/solvers/solver-HQP-eiquadprog.hpp
 include/tsid/bindings/python/tasks/expose-tasks.hpp
+include/tsid/bindings/python/tasks/task-actuation-bounds.hpp
 include/tsid/bindings/python/tasks/task-com-equality.hpp
+include/tsid/bindings/python/tasks/task-joint-bounds.hpp
 include/tsid/bindings/python/tasks/task-joint-posture.hpp
 include/tsid/bindings/python/tasks/task-se3-equality.hpp
 include/tsid/bindings/python/trajectories/expose-trajectories.hpp
diff --git a/py-tsid/distinfo b/py-tsid/distinfo
index fdcde5bba6aacf78742d612426f8541923cf492b..e7545609f080e8ad18c870633b101ee61a51181a 100644
--- a/py-tsid/distinfo
+++ b/py-tsid/distinfo
@@ -1,6 +1,4 @@
-SHA1 (tsid-1.2.0.tar.gz) = a237402536c915dc3ec71f23e18d4ed00f1e97f1
-RMD160 (tsid-1.2.0.tar.gz) = 2438abb62df5ffb979cf361cfcb2f107063d1bb7
-Size (tsid-1.2.0.tar.gz) = 8775466 bytes
-SHA1 (patch-aa) = 8b3fbbfa2be7bcdf0620c2525424fda2fd4561e6
-SHA1 (patch-ab) = 65531cbbc1ea697e9f4f63f864fd811a99e955ae
-SHA1 (patch-ad) = 9731f90f2c33abec026a1d34cfaa653316b84427
+SHA1 (tsid-1.2.1.tar.gz) = de3861c98d40270fefed74062ac9ba03cb50fb65
+RMD160 (tsid-1.2.1.tar.gz) = 031f4ac6fd593b85bb7ee0051c1d13c2cccbfe59
+Size (tsid-1.2.1.tar.gz) = 9247070 bytes
+SHA1 (patch-aa) = 5794c89861c6a84d47428939af6d19da36930631
diff --git a/py-tsid/patches/patch-aa b/py-tsid/patches/patch-aa
index 7a04af3d099cabdb4aa458d5c288ed37c1d1caa7..e5fb3eb407066f28fe8a027eaa506ba56f736011 100644
--- a/py-tsid/patches/patch-aa
+++ b/py-tsid/patches/patch-aa
@@ -1,29 +1,16 @@
---- CMakeLists.txt.orig	2019-03-04 14:39:35.000000000 +0100
-+++ CMakeLists.txt	2019-03-04 14:58:09.524505851 +0100
-@@ -184,26 +184,11 @@
- 
- LIST(REMOVE_DUPLICATES HEADERS)
- 
--SET(HEADERS_FULL_PATH "")
--FOREACH(header ${HEADERS})
--  LIST(APPEND HEADERS_FULL_PATH "${CMAKE_SOURCE_DIR}/${header}")
--  GET_FILENAME_COMPONENT(headerName ${header} NAME)
--  GET_FILENAME_COMPONENT(headerPath ${header} PATH)
+--- CMakeLists.txt.orig	2019-09-16 11:12:22.000000000 +0200
++++ CMakeLists.txt	2019-09-16 11:39:57.606237235 +0200
+@@ -189,13 +189,9 @@
+   LIST(APPEND HEADERS_FULL_PATH "${CMAKE_SOURCE_DIR}/${header}")
+   GET_FILENAME_COMPONENT(headerName ${header} NAME)
+   GET_FILENAME_COMPONENT(headerPath ${header} PATH)
 -  INSTALL(FILES ${${PROJECT_NAME}_SOURCE_DIR}/${header}
 -    DESTINATION ${CMAKE_INSTALL_PREFIX}/${headerPath}
 -          PERMISSIONS OWNER_READ GROUP_READ WORLD_READ OWNER_WRITE)
--ENDFOREACH(header ${HEADERS})
--
--# --- MAIN LIBRARY -------------------------------------------------------------
+ ENDFOREACH(header ${HEADERS})
+ 
+ # --- MAIN LIBRARY -------------------------------------------------------------
 -ADD_SUBDIRECTORY(src)
--
+ 
  # --- BINDINGS ----------------------------------------------------------------
  IF(BUILD_PYTHON_INTERFACE)
-   SET(PYWRAP ${PROJECT_NAME}_pywrap)
-   ADD_SUBDIRECTORY(bindings)
- ENDIF(BUILD_PYTHON_INTERFACE)
--# --- UNIT TESTS ---------------------------------------------------------------
--ADD_SUBDIRECTORY(unittest)
- 
- # --- PACKAGING ----------------------------------------------------------------
- PKG_CONFIG_APPEND_LIBS(${PROJECT_NAME})
diff --git a/py-tsid/patches/patch-ab b/py-tsid/patches/patch-ab
deleted file mode 100644
index 72ef67639f1b9e60ce3968c5a25c71c6c48a2607..0000000000000000000000000000000000000000
--- a/py-tsid/patches/patch-ab
+++ /dev/null
@@ -1,14 +0,0 @@
-Don't install main .pc
-
---- cmake/base.cmake~	2017-10-26 15:25:19.000000000 +0200
-+++ cmake/base.cmake	2018-04-26 18:06:07.322011937 +0200
-@@ -226,9 +226,7 @@
- #   finalize the project setup.
- #
- MACRO(SETUP_PROJECT_FINALIZE)
--  _SETUP_PROJECT_PKG_CONFIG_FINALIZE()
-   _SETUP_PROJECT_DOCUMENTATION_FINALIZE()
--  _SETUP_PROJECT_HEADER_FINAlIZE()
-   _SETUP_DEBIAN()
-   # Install data if needed
-   _INSTALL_PROJECT_DATA()
diff --git a/py-tsid/patches/patch-ad b/py-tsid/patches/patch-ad
deleted file mode 100644
index 83ef8fe0054c7c19212a59d6abe3cc57a3f10707..0000000000000000000000000000000000000000
--- a/py-tsid/patches/patch-ad
+++ /dev/null
@@ -1,40 +0,0 @@
-Don't install main headers
-
---- cmake/header.cmake~	2017-10-26 15:25:19.000000000 +0200
-+++ cmake/header.cmake	2018-04-26 18:37:42.582417765 +0200
-@@ -92,11 +92,6 @@
-     ${CMAKE_CURRENT_BINARY_DIR}/include/${HEADER_DIR}/deprecated.${PROJECT_CUSTOM_HEADER_EXTENSION}
-     @ONLY
-     )
--  INSTALL(FILES
--    ${CMAKE_CURRENT_BINARY_DIR}/include/${HEADER_DIR}/deprecated.${PROJECT_CUSTOM_HEADER_EXTENSION}
--    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${HEADER_DIR}
--    PERMISSIONS OWNER_READ GROUP_READ WORLD_READ OWNER_WRITE
--    )
-   # Generate warning.hh header.
-   CONFIGURE_FILE(
-     ${PROJECT_SOURCE_DIR}/cmake/warning.hh.cmake
-@@ -104,11 +99,6 @@
-     @ONLY
-     )
- 
--  INSTALL(FILES
--    ${CMAKE_CURRENT_BINARY_DIR}/include/${HEADER_DIR}/warning.${PROJECT_CUSTOM_HEADER_EXTENSION}
--    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${HEADER_DIR}
--    PERMISSIONS OWNER_READ GROUP_READ WORLD_READ OWNER_WRITE
--    )
- 
- 
-   # Generate config.h header.
-@@ -150,11 +140,6 @@
-     @ONLY
-     )
-   # Install it.
--  INSTALL(FILES
--    ${CMAKE_CURRENT_BINARY_DIR}/include/${HEADER_DIR}/${FILENAME}
--    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${HEADER_DIR}
--    PERMISSIONS OWNER_READ GROUP_READ WORLD_READ OWNER_WRITE
--    )
- ENDFUNCTION(GENERATE_CONFIGURATION_HEADER)
- 
- 
diff --git a/tsid/Makefile b/tsid/Makefile
index 801125a97f302267aeb8d643f775784daf7f2a99..48704c3c63430da14a29210ee27b34a685da536e 100644
--- a/tsid/Makefile
+++ b/tsid/Makefile
@@ -4,13 +4,7 @@
 
 ORG=			stack-of-tasks
 NAME=			tsid
-VERSION=		1.2.0
-
-DISTNAME=		${NAME}-${VERSION}
-
-MASTER_SITES=		${MASTER_SITE_OPENROBOTS:=${NAME}/}
-MASTER_REPOSITORY=	${MASTER_REPOSITORY_GITHUB}${ORG}/${NAME}.git
-CHECKOUT_VCS_OPTS+=	--recursive
+VERSION=		1.2.1
 
 CATEGORIES=		wip
 COMMENT=		Efficient Inverse Dynamics based on Pinocchio
@@ -19,10 +13,9 @@ MAINTAINER=		gepetto-soft@laas.fr
 
 CMAKE_ARGS+=		-DBUILD_PYTHON_INTERFACE=OFF
 
-DYNAMIC_PLIST_DIRS+=	share/doc/${NAME}
-
 USE_BOOST_LIBS=		unit_test_framework
 
+include ../../wip/jrl-cmakemodules/Makefile.common
 include ../../devel/boost-headers/depend.mk
 include ../../devel/boost-libs/depend.mk
 include ../../graphics/urdfdom/depend.mk
@@ -36,7 +29,4 @@ include ../../mk/sysdep/doxygen.mk
 include ../../mk/language/c.mk
 include ../../mk/language/c++.mk
 
-DEPEND_ABI.python +=		python<3
-DEPEND_ABI.eigen3 += eigen3>=3.2.0
-
 include ../../mk/robotpkg.mk
diff --git a/tsid/distinfo b/tsid/distinfo
index cee8984207f86fd9162a9242e80133010ff289fd..41ac12042327188d73aba6faf91ef8d11f4ed690 100644
--- a/tsid/distinfo
+++ b/tsid/distinfo
@@ -1,3 +1,3 @@
-SHA1 (tsid-1.2.0.tar.gz) = a237402536c915dc3ec71f23e18d4ed00f1e97f1
-RMD160 (tsid-1.2.0.tar.gz) = 2438abb62df5ffb979cf361cfcb2f107063d1bb7
-Size (tsid-1.2.0.tar.gz) = 8775466 bytes
+SHA1 (tsid-1.2.1.tar.gz) = de3861c98d40270fefed74062ac9ba03cb50fb65
+RMD160 (tsid-1.2.1.tar.gz) = 031f4ac6fd593b85bb7ee0051c1d13c2cccbfe59
+Size (tsid-1.2.1.tar.gz) = 9247070 bytes