[med-svn] [mia] 01/04: d/p/correct... patch to fix buil dependencies Closes:#844140
Gert Wollny
gert-guest at moszumanska.debian.org
Fri Nov 25 14:54:49 UTC 2016
This is an automated email from the git hooks/post-receive script.
gert-guest pushed a commit to branch master
in repository mia.
commit 1fd90ab08a744b8c5c6c9b2c22ec82ad6703f62d
Author: Gert Wollny <gw.fossdev at gmail.com>
Date: Fri Nov 25 12:31:19 2016 +0000
d/p/correct... patch to fix buil dependencies Closes:#844140
---
debian/patches/correct_depenency_handling.patch | 96 +++++++++++++++++++++++++
debian/patches/series | 1 +
2 files changed, 97 insertions(+)
diff --git a/debian/patches/correct_depenency_handling.patch b/debian/patches/correct_depenency_handling.patch
new file mode 100644
index 0000000..7778580
--- /dev/null
+++ b/debian/patches/correct_depenency_handling.patch
@@ -0,0 +1,96 @@
+Description: Correct the dependencies to alliviate a parallel build failure
+ If more threads are available then targets to be build the old
+ dependency chain might invoke building of the man page and the
+ nipype interface at the same time wich may result in running two
+ instances of building the helper xml files first and as a result a race
+ condition occurs that sometimes lets the build fail because the
+ xml helper file is empty.
+Origin: upstream
+Forwarded: yes
+Last-Changed: Fri Nov 25 12:56:17 2016 +0100
+Bug-Debian: https://bugs.debian.org/844140
+
+diff --git a/cmake/macros.cmake b/cmake/macros.cmake
+index f70e00b..25c6462 100644
+--- a/cmake/macros.cmake
++++ b/cmake/macros.cmake
+@@ -122,34 +122,24 @@ ENDMACRO(ASSERT_SIZE)
+
+
+
+-#
+-# This macro runs the program to create the XMLprogram descrition
+-# that is used to create documentation and interfaced
+-#
+-MACRO(CREATE_EXE_XML_HELP name)
+- ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_BINARY_DIR}/doc/mia-${name}.xml
+- COMMAND MIA_PLUGIN_TESTPATH=${PLUGIN_TEST_ROOT}/${PLUGIN_INSTALL_PATH}
+- ./mia-${name} --help-xml ${CMAKE_BINARY_DIR}/doc/mia-${name}.xml
+- COMMAND rm -f ${CMAKE_SOURCE_DIR}/doc/userref.stamp
+- DEPENDS mia-${name} )
+-
+- ADD_CUSTOM_TARGET(mia-${name}-xml DEPENDS ${CMAKE_BINARY_DIR}/doc/mia-${name}.xml)
+- ADD_DEPENDENCIES(XMLDOC mia-${name}-xml)
+-ENDMACRO(CREATE_EXE_XML_HELP)
+-
+-
+ MACRO(CREATE_NIPYPE_FROM_XML name)
+ IF(CREATE_NIPYPE_INTERFACES)
+ STRING(REPLACE "-" "_" PythonName ${name})
+
+ SET(${name}-nipype-interface ${CMAKE_CURRENT_BINARY_DIR}/mia_${PythonName}.py)
+-
++
++ # depending on mia-${name}-man is only a measure to make sure
+ ADD_CUSTOM_COMMAND(OUTPUT ${${name}-nipype-interface}
+ COMMAND ${PYTHON_EXECUTABLE} ARGS ${CMAKE_SOURCE_DIR}/doc/miaxml2nipype.py
+ -i ${CMAKE_BINARY_DIR}/doc/mia-${name}.xml -o ${${name}-nipype-interface}
+- MAIN_DEPENDENCY ${CMAKE_BINARY_DIR}/doc/mia-${name}.xml)
+-
+- ADD_CUSTOM_TARGET(mia-${name}-nipype DEPENDS ${${name}-nipype-interface})
++ MAIN_DEPENDENCY ${CMAKE_BINARY_DIR}/doc/mia-${name}.xml
++ )
++
++ # depending on mia-${name}-man is done to persuade cmake/make to create
++ # a dependecy chain that will not try to build the *.xml file twice inparallel builds
++ # because without this dependency the man page and the nipype interface may be build
++ # at the same time and then *.xml file build will run twice, creating a race condition
++ ADD_CUSTOM_TARGET(mia-${name}-nipype DEPENDS ${${name}-nipype-interface} mia-${name}-man)
+ ADD_DEPENDENCIES(nipypeinterfaces mia-${name}-nipype)
+
+ INSTALL(FILES ${${name}-nipype-interface} DESTINATION ${NIPYPE_INTERFACE_DIR}/mia)
+diff --git a/doc/MiaDoctools.cmake b/doc/MiaDoctools.cmake
+index 332a5fe..8c4e12b 100644
+--- a/doc/MiaDoctools.cmake
++++ b/doc/MiaDoctools.cmake
+@@ -111,9 +111,11 @@ MACRO(MIA_CREATE_NIPYPE_FROM_XML prefix name)
+ COMMAND ${PYTHON_EXECUTABLE} ${MIA_DOCTOOLS_ROOT}/miaxml2nipype.py -i ${CMAKE_BINARY_DIR}/doc/${prefix}-${name}.xml -o ${${prefix}-${name}-nipype-interface}
+ MAIN_DEPENDENCY ${CMAKE_BINARY_DIR}/doc/${prefix}-${name}.xml)
+
++
+ FILE(APPEND ${NIPYPE_INTERFACE_INIT_FILE} "from .${prefix}_${PythonName} import ${prefix}_${PythonName}\n")
+
+ ADD_CUSTOM_TARGET(${prefix}-${name}-nipype DEPENDS ${${prefix}-${name}-nipype-interface})
++ ADD_DEPENDENCIES(${prefix}-${name}-nipype ${prefix}-${name}-xml)
+ ADD_DEPENDENCIES(nipypeinterfaces ${prefix}-${name}-nipype)
+
+ INSTALL(FILES ${${prefix}-${name}-nipype-interface} DESTINATION ${NIPYPE_INTERFACE_DIR})
+@@ -128,11 +130,13 @@ MACRO(MIA_CREATE_MANPAGE_FROM_XML prefix name)
+ SET(${prefix}-${name}-manfile ${CMAKE_CURRENT_BINARY_DIR}/${prefix}-${name}.1)
+ ADD_CUSTOM_COMMAND(OUTPUT ${${prefix}-${name}-manfile}
+ COMMAND ${PYTHON_EXECUTABLE} ${MIA_DOCTOOLS_ROOT}/miaxml2man.py ${CMAKE_BINARY_DIR}/doc/${prefix}-${name}.xml >${${prefix}-${name}-manfile}
+- MAIN_DEPENDENCY ${CMAKE_BINARY_DIR}/doc/${prefix}-${name}.xml
+- )
+- ADD_CUSTOM_TARGET(${prefix}-${name}-man DEPENDS ${${prefix}-${name}-manfile})
+- add_dependencies(manpages ${prefix}-${name}-man)
+- INSTALL(FILES ${${prefix}-${name}-manfile} DESTINATION "share/man/man1")
++ MAIN_DEPENDENCY ${CMAKE_BINARY_DIR}/doc/${prefix}-${name}.xml
++ DEPENDS ${prefix}-${name}-xml
++ )
++ ADD_CUSTOM_TARGET(${prefix}-${name}-man DEPENDS ${${prefix}-${name}-manfile})
++ ADD_DEPENDENCIES(${prefix}-${name}-man ${prefix}-${name}-xml)
++ add_dependencies(manpages ${prefix}-${name}-man)
++ INSTALL(FILES ${${prefix}-${name}-manfile} DESTINATION "share/man/man1")
+ ENDMACRO(MIA_CREATE_MANPAGE_FROM_XML)
+
+
diff --git a/debian/patches/series b/debian/patches/series
index ba4019e..4b95100 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,3 +1,4 @@
path_max.patch
mia_243_scoped_lock_no_copy.patch
mia_243_check_help_xml_success.patch
+correct_depenency_handling.patch
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/mia.git
More information about the debian-med-commit
mailing list