[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