commit 6c4f902eaaa4897fa3ec82f185fd00a067183163
Author: Jan Palus <[email protected]>
Date:   Mon Mar 27 16:11:59 2023 +0200

    upstream fix for parallel doc build

 jasper.spec              |  2 ++
 parallel-doc-build.patch | 45 +++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 47 insertions(+)
---
diff --git a/jasper.spec b/jasper.spec
index 709bacc..2809237 100644
--- a/jasper.spec
+++ b/jasper.spec
@@ -13,6 +13,7 @@ Group:                Libraries
 #Source0Download: https://github.com/jasper-software/jasper/releases
 Source0:       
https://github.com/jasper-software/jasper/releases/download/version-%{version}/%{name}-%{version}.tar.gz
 # Source0-md5: f9388d52a6220303141a42d4c2c81e62
+Patch0:                parallel-doc-build.patch
 URL:           https://www.ece.uvic.ca/~frodo/jasper/
 %{?with_opengl:BuildRequires:  OpenGL-glut-devel}
 BuildRequires: cmake >= 2.8.11
@@ -96,6 +97,7 @@ kolorów powinna jednak wystarczyć.
 
 %prep
 %setup -q
+%patch0 -p1
 
 %build
 # there is upstream directory named "build", use different name
diff --git a/parallel-doc-build.patch b/parallel-doc-build.patch
new file mode 100644
index 0000000..64a3dd6
--- /dev/null
+++ b/parallel-doc-build.patch
@@ -0,0 +1,45 @@
+From f2d2e5d6f06bdd60d3be8277726e238659bc56b5 Mon Sep 17 00:00:00 2001
+From: Jan Palus <[email protected]>
+Date: Mon, 27 Mar 2023 13:55:04 +0200
+Subject: [PATCH] doc/CMakeLists.txt: fix prallel build of api docs and pdf
+ manual
+
+according to cmake docs DEPENDS in add_custom_command with file being
+output of other custom command:
+
+> If any dependency is an OUTPUT of another custom command in the same
+> directory (CMakeLists.txt file), CMake automatically brings the other
+> custom command into the target in which this command is built.
+
+this means "manual_pdf" target will not wait for previous doxygen
+invocation but will trigger its own. in case of parallel build two
+doxygen invocations with same input parameters might overwrite each
+other's output resulting in broken files. it could be verified with just
+grepping cmake output:
+
+```
+$ grep -r 'doxygen Doxyfile' builddir/doc
+builddir/doc/CMakeFiles/doc.dir/build.make:    cd 
/home/users/builder/rpm/BUILD/jasper-3.0.6/builddir/doc && /usr/bin/doxygen 
Doxyfile
+builddir/doc/CMakeFiles/manual_pdf.dir/build.make:     cd 
/home/users/builder/rpm/BUILD/jasper-3.0.6/builddir/doc && /usr/bin/doxygen 
Doxyfile
+```
+
+instead of putting dependency on "latex/index.tex" file, use "doc"
+target as dependency resulting in ordering "doc" before "manual_pdf" and
+single doxygen invocation.
+---
+ doc/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt
+index 1db63e64..02055555 100644
+--- a/doc/CMakeLists.txt
++++ b/doc/CMakeLists.txt
+@@ -44,7 +44,7 @@ if(DOXYGEN_FOUND)
+               add_custom_command(OUTPUT "latex/refman.pdf"
+                 COMMAND "${PDFLATEX_COMPILER}" refman.tex
+                 WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/latex"
+-                DEPENDS "latex/index.tex"
++                DEPENDS "doc"
+               )
+ 
+               add_custom_target(manual_pdf ALL
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/jasper.git/commitdiff/391f5b5a6320d7d3528be4b24afe55905d4eafcb

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to