From 57c6e4877181812ad89d100cd862c8d2142b417f6a77526ea29871f5ca1b84c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20Br=C3=BCns?= Date: Fri, 24 Apr 2020 11:38:20 +0000 Subject: [PATCH 1/3] Accepting request 797095 from home:badshah400:branches:science - Disable building examples to prevent vtkLocalExample.java randomly missing from vtk.jar (boo#1138295, see also upstream recommendation in https://gitlab.kitware.com/vtk/vtk/issues/17619). OBS-URL: https://build.opensuse.org/request/show/797095 OBS-URL: https://build.opensuse.org/package/show/science/vtk?expand=0&rev=152 --- vtk.changes | 8 ++++++++ vtk.spec | 11 ++++++----- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/vtk.changes b/vtk.changes index 234606f..a0be1a0 100644 --- a/vtk.changes +++ b/vtk.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Fri Apr 24 08:28:02 UTC 2020 - Atri Bhattacharya + +- Disable building examples to prevent vtkLocalExample.java + randomly missing from vtk.jar (boo#1138295, see also upstream + recommendation in + https://gitlab.kitware.com/vtk/vtk/issues/17619). + ------------------------------------------------------------------- Wed Mar 11 13:17:49 UTC 2020 - Stefan BrĂ¼ns diff --git a/vtk.spec b/vtk.spec index 8943ba0..da80d36 100644 --- a/vtk.spec +++ b/vtk.spec @@ -378,7 +378,7 @@ export CXXFLAGS="%{optflags}" # since JDK8. %cmake \ -DBUILD_DOCUMENTATION:BOOL=ON \ - -DBUILD_EXAMPLES:BOOL=ON \ + -DBUILD_EXAMPLES:BOOL=OFF \ -DBUILD_TESTING:BOOL=OFF \ -DCMAKE_NO_BUILTIN_CHRPATH:BOOL=ON \ -DJava_JAVAH_EXECUTABLE:PATH=%{_bindir}/true \ @@ -559,9 +559,10 @@ python3 -c "import vtk" %dir %{my_libdir}/qt5/plugins/designer/ %{my_libdir}/qt5/plugins/designer/libQVTKWidgetPlugin.so -%if "%{flavor}" == "" -%files examples -f examples.list -%license Copyright.txt -%endif +# FIXME: UNCOMMENT WHEN VERSION 9.0 IS PACKAGED [https://gitlab.kitware.com/vtk/vtk/issues/17619] +#%%if "%%{flavor}" == "" +#%%files examples -f examples.list +#%%license Copyright.txt +#%%endif %changelog From 2ce443dd832b54a2dea2d861f2fbff619f888e1122aafa8b0b576774fa08ac2a Mon Sep 17 00:00:00 2001 From: Atri Bhattacharya Date: Mon, 27 Apr 2020 11:46:27 +0000 Subject: [PATCH 2/3] Accepting request 798062 from home:bmwiedemann:reproducible:test add reproducible.patch to override build date and to sort entries (boo#1047218, boo#1041090) OBS-URL: https://build.opensuse.org/request/show/798062 OBS-URL: https://build.opensuse.org/package/show/science/vtk?expand=0&rev=153 --- reproducible.patch | 167 +++++++++++++++++++++++++++++++++++++++++++++ vtk.changes | 6 ++ vtk.spec | 4 ++ 3 files changed, 177 insertions(+) create mode 100644 reproducible.patch diff --git a/reproducible.patch b/reproducible.patch new file mode 100644 index 0000000..410610d --- /dev/null +++ b/reproducible.patch @@ -0,0 +1,167 @@ +https://gitlab.kitware.com/vtk/vtk/merge_requests/5633 +https://gitlab.kitware.com/vtk/vtk/merge_requests/5634 + +Index: VTK-8.2.0/Utilities/Doxygen/doc_codematch.pl +=================================================================== +--- VTK-8.2.0.orig/Utilities/Doxygen/doc_codematch.pl ++++ VTK-8.2.0/Utilities/Doxygen/doc_codematch.pl +@@ -249,7 +249,7 @@ foreach my $source (@files) { + + my $preamble = " \@par " . $args{"label"} . ":\n"; + my $doc = $preamble . +- " " . join(" ", keys %{$class2matches{$class}}) . "\n"; ++ " " . join(" ", sort keys %{$class2matches{$class}}) . "\n"; + + if ($block !~ s/($preamble.+?)(\s*\@par|\z)/$doc$2/gms) { + $block .= "\n$doc"; +@@ -282,7 +282,7 @@ my $header; + my (@summary, @credits); + + push @summary, +- " - $nb_files implementation file(s) returning " . scalar (keys %allmatches) . " word(s) for " . scalar (keys %allclasses) . " classe(es) on " . localtime(), ++ " - $nb_files implementation file(s) returning " . scalar (keys %allmatches) . " word(s) for " . scalar (keys %allclasses) . " classe(es) on " . gmtime($ENV{SOURCE_DATE_EPOCH}||time), + " - $nb_replaced_files file(s) updated"; + + push @credits, +Index: VTK-8.2.0/Utilities/Doxygen/doc_index.pl +=================================================================== +--- VTK-8.2.0.orig/Utilities/Doxygen/doc_index.pl ++++ VTK-8.2.0/Utilities/Doxygen/doc_index.pl +@@ -213,7 +213,7 @@ foreach my $source (@files) { + } + } + +-my @words = keys %index; ++my @words = sort keys %index; + print " => ", scalar @words, " word(s) grabbed in $nb_files file(s) in ", time() - $intermediate_time, " s.\n"; + + # ------------------------------------------------------------------------- +@@ -243,7 +243,7 @@ print "Grouping...\n"; + + sub transfer_keys { + my ($rfrom, $rto) = @_; +- foreach my $key (keys %$rfrom) { ++ foreach my $key (sort keys %$rfrom) { + $rto->{$key} += $rfrom->{$key}; + } + } +@@ -350,7 +350,7 @@ foreach my $word (@words) { + # with these extensions that were not found and build a list of similar + # "words" by concatenating both. + +- my @verbs = keys %verbs; ++ my @verbs = sort keys %verbs; + if (@verbs) { + my %try = ("" => 1, + "e" => 1, +@@ -397,7 +397,7 @@ print " => $nb_grouped word(s) grouped.\ + + print "Normalizing...\n"; + +-@words = keys %index; ++@words = sort keys %index; + foreach my $word (@words) { + my $lcw = lc $word; + +@@ -413,7 +413,7 @@ foreach my $word (@words) { + # Normalize group to lowercase + + if (exists $group{$word}) { +- foreach my $gword (keys %{$group{$word}}) { ++ foreach my $gword (sort keys %{$group{$word}}) { + my $lcgw = lc $gword; + if ($gword ne uc($gword) && $gword ne $lcgw) { + $group{$word}{$lcgw} = $group{$word}{$gword}; +@@ -441,7 +441,7 @@ my (@summary, @credits); + + push @summary, + " - $nb_files file(s) indexed by " . scalar @words . " word(s) on " . +- localtime(), ++ gmtime($ENV{SOURCE_DATE_EPOCH}||time), + " - max limit is " . $args{"limit"} . " xref(s) per word"; + + push @credits, +Index: VTK-8.2.0/Utilities/Doxygen/doc_class2example.pl +=================================================================== +--- VTK-8.2.0.orig/Utilities/Doxygen/doc_class2example.pl ++++ VTK-8.2.0/Utilities/Doxygen/doc_class2example.pl +@@ -171,7 +171,7 @@ sub unique { + foreach my $item (@$ref) { + $uniques{$item}++; + } +- return keys %uniques; ++ return sort keys %uniques; + } + + sub parse { +@@ -506,7 +506,7 @@ my (@summary, @credits, @legend); + + push @summary, + " - " . scalar @words . " class(es) in " . +- scalar @parsable . " file(s) from directories matching \@c " . $args{"dirmatch"} . " on " . localtime(); ++ scalar @parsable . " file(s) from directories matching \@c " . $args{"dirmatch"} . " on " . gmtime($ENV{SOURCE_DATE_EPOCH}||time); + + push @summary, + " - " . scalar @parsers . " parser(s) : [" . join(", ", @parsers) . "]"; +Index: VTK-8.2.0/Utilities/Doxygen/doc_contributors.pl +=================================================================== +--- VTK-8.2.0.orig/Utilities/Doxygen/doc_contributors.pl ++++ VTK-8.2.0/Utilities/Doxygen/doc_contributors.pl +@@ -462,7 +462,7 @@ my $nb_removed = 0; + + foreach my $signature (sort { (scalar keys %{$log_revision_by_signature_file{$b}}) <=> (scalar keys %{$log_revision_by_signature_file{$a}}) } + keys %log_revision_by_signature_file) { +- my @files = keys %{$log_revision_by_signature_file{$signature}}; ++ my @files = sort keys %{$log_revision_by_signature_file{$signature}}; + + if (scalar @files > $args{"massive"}) { + print " >> Removed: (" . scalar @files . ")\n " . +@@ -521,7 +521,7 @@ $intermediate_time = time(); + + # Browse each file, each revision and use contribution + +-foreach my $file_name (keys %files_visited) { ++foreach my $file_name (sort keys %files_visited) { + + # Check if file is part of a class group + +@@ -533,7 +533,7 @@ foreach my $file_name (keys %files_visit + $classes{$class_name}{'creators'}{$log_by_file_revision{$file_name}{'1.1'}{'author'}} = 1; + } + +- foreach my $revision (keys %{$log_by_file_revision{$file_name}}) { ++ foreach my $revision (sort keys %{$log_by_file_revision{$file_name}}) { + + my $author = $log_by_file_revision{$file_name}{$revision}{'author'}; + +@@ -603,7 +603,7 @@ while (@classes_names) { + # Find the class header name + + my $source_header_name = undef; +- foreach my $file_name (keys %{$classes{$class_name}{'files'}}) { ++ foreach my $file_name (sort keys %{$classes{$class_name}{'files'}}) { + if ($file_name =~ m/\.h$/) { + $source_header_name = $file_name; + last; +@@ -682,7 +682,7 @@ while (@classes_names) { + + if (exists $args{"cvsweb"}) { + $doc .= "\n \@par CVS logs (CVSweb):\n"; +- foreach my $file (keys %{$classes{$class_name}{'files'}}) { ++ foreach my $file (sort keys %{$classes{$class_name}{'files'}}) { + my $shortname = get_short_relative_name($file, $args{"relativeto"}); + my ($base, $dir, $ext) = fileparse($shortname, '\..*'); + $doc .= ' - @htmlonly + +- add reproducible.patch to override build date and to sort entries + (boo#1047218, boo#1041090) + ------------------------------------------------------------------- Fri Apr 24 08:28:02 UTC 2020 - Atri Bhattacharya diff --git a/vtk.spec b/vtk.spec index da80d36..fb72eb3 100644 --- a/vtk.spec +++ b/vtk.spec @@ -110,6 +110,8 @@ Patch5: 0001-Add-libogg-to-IOMovie-target-link-libraries.patch Patch6: 0001-Make-code-calling-proj4-compatible-with-proj4-5.0-an.patch # PATCH-FIX-UPSTREAM -- Support for python3.8 Patch7: python38.patch +# PATCH-FIX-UPSTREAM https://gitlab.kitware.com/vtk/vtk/merge_requests/5633 + 5634 +Patch8: reproducible.patch BuildRequires: R-base-devel BuildRequires: chrpath BuildRequires: cmake >= 3.4 @@ -352,6 +354,7 @@ languages. %patch5 -p1 %patch6 -p1 %patch7 -p1 +%patch8 -p1 # Replace relative path ../../../../VTKData with %%{_datadir}/vtkdata # otherwise it will break on symlinks. @@ -493,6 +496,7 @@ export PYTHONPATH=$_PYTHON_MPI_PREFIX:$PYTHONPATH export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:%{buildroot}%{my_libdir} export PYTHONPATH=$PYTHONPATH:%{buildroot}%{python3_sitearch} python3 -c "import vtk" +find %{buildroot} . -name vtk.cpython-3*.pyc -delete # drop unreproducible time-based .pyc file %post -n %{shlib} -p /sbin/ldconfig %postun -n %{shlib} -p /sbin/ldconfig From 23082aca720e6e1d98d57ca44214d0f29e353007e5bf0030fb72208328f9f166 Mon Sep 17 00:00:00 2001 From: Atri Bhattacharya Date: Thu, 30 Apr 2020 02:03:15 +0000 Subject: [PATCH 3/3] Accepting request 798237 from home:badshah400:branches:science - Fix serial builds broken due to disabling the building of examples; instead of commenting out sections of the specfile related to examples, use %bcond_with to disable building examples by default and the corresponding conditionals where appropriate. OBS-URL: https://build.opensuse.org/request/show/798237 OBS-URL: https://build.opensuse.org/package/show/science/vtk?expand=0&rev=154 --- vtk.changes | 9 +++++++++ vtk.spec | 20 ++++++++++++++------ 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/vtk.changes b/vtk.changes index e0cf3a5..70382cc 100644 --- a/vtk.changes +++ b/vtk.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Mon Apr 27 11:00:45 UTC 2020 - Atri Bhattacharya + +- Fix serial builds broken due to disabling the building of + examples; instead of commenting out sections of the specfile + related to examples, use %bcond_with to disable building + examples by default and the corresponding conditionals where + appropriate. + ------------------------------------------------------------------- Sun Apr 26 04:21:40 UTC 2020 - Bernhard Wiedemann diff --git a/vtk.spec b/vtk.spec index fb72eb3..891eac9 100644 --- a/vtk.spec +++ b/vtk.spec @@ -18,6 +18,10 @@ %global flavor @BUILD_FLAVOR@%{nil} +# FIXME: ENABLE EXAMPLES BY DEFAULT WHEN VERSION 9.0 IS PACKAGED +# [https://gitlab.kitware.com/vtk/vtk/issues/17619] +%bcond_with examples + %if 0%{?sle_version} >= 150200 %define DisOMPI1 ExclusiveArch: do_not_build %endif @@ -381,7 +385,7 @@ export CXXFLAGS="%{optflags}" # since JDK8. %cmake \ -DBUILD_DOCUMENTATION:BOOL=ON \ - -DBUILD_EXAMPLES:BOOL=OFF \ + -DBUILD_EXAMPLES:BOOL=%{?with_examples:ON}%{!?with_examples:OFF} \ -DBUILD_TESTING:BOOL=OFF \ -DCMAKE_NO_BUILTIN_CHRPATH:BOOL=ON \ -DJava_JAVAH_EXECUTABLE:PATH=%{_bindir}/true \ @@ -433,6 +437,7 @@ find . -name \*.c -o -name \*.cxx -o -name \*.h -o -name \*.hxx -o -name \*.gif %install %cmake_install +%if %{with examples} # List of executable examples cat > examples.list << EOF AmbientSpheres @@ -484,6 +489,8 @@ done perl -pi -e's,^,%{my_bindir}/,' examples.list %endif +%endif + %fdupes -s %{buildroot} %check @@ -563,10 +570,11 @@ find %{buildroot} . -name vtk.cpython-3*.pyc -delete # drop unreproducible time- %dir %{my_libdir}/qt5/plugins/designer/ %{my_libdir}/qt5/plugins/designer/libQVTKWidgetPlugin.so -# FIXME: UNCOMMENT WHEN VERSION 9.0 IS PACKAGED [https://gitlab.kitware.com/vtk/vtk/issues/17619] -#%%if "%%{flavor}" == "" -#%%files examples -f examples.list -#%%license Copyright.txt -#%%endif +%if %{with examples} +%if "%{flavor}" == "" +%files examples -f examples.list +%license Copyright.txt +%endif +%endif %changelog