Hello community, here is the log from the commit of package vtk for openSUSE:Leap:15.2 checked in at 2020-05-12 11:40:13 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Leap:15.2/vtk (Old) and /work/SRC/openSUSE:Leap:15.2/.vtk.new.2738 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "vtk" Tue May 12 11:40:13 2020 rev:17 rq:802598 version:8.2.0 Changes: -------- --- /work/SRC/openSUSE:Leap:15.2/vtk/vtk.changes 2020-05-11 08:38:37.510930550 +0200 +++ /work/SRC/openSUSE:Leap:15.2/.vtk.new.2738/vtk.changes 2020-05-12 11:42:30.877019269 +0200 @@ -1,0 +2,38 @@ +Mon Apr 27 11:00:45 UTC 2020 - Atri Bhattacharya <[email protected]> + +- 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 <[email protected]> + +- 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 <[email protected]> + +- 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 <[email protected]> + +- Remove -DVTK_PYTHON_SITE_PACKAGES_SUFFIX silently added with the + last change. As it specifies the path relative to the install + prefix, setting it to the absolute python_sitearch is obviously + wrong. As VTK figures out the correct path by itself, it is + completely unnecessary. + +------------------------------------------------------------------- +Tue Mar 10 14:06:37 UTC 2020 - Tomáš Chvátal <[email protected]> + +- Add patch to fix building with python 3.8: + * python38.patch + +------------------------------------------------------------------- New: ---- python38.patch reproducible.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ vtk.spec ++++++ --- /var/tmp/diff_new_pack.hZWLVU/_old 2020-05-12 11:42:31.425020420 +0200 +++ /var/tmp/diff_new_pack.hZWLVU/_new 2020-05-12 11:42:31.425020420 +0200 @@ -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 @@ -108,6 +112,10 @@ Patch5: 0001-Add-libogg-to-IOMovie-target-link-libraries.patch # PATCH-FIX-UPSTREAM -- Compatibility for proj4 5.x and 6.0, https://gitlab.kitware.com/vtk/vtk/issues/17554 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 @@ -349,6 +357,8 @@ %patch4 -p1 %patch5 -p1 %patch6 -p1 +%patch7 -p1 +%patch8 -p1 # Replace relative path ../../../../VTKData with %%{_datadir}/vtkdata # otherwise it will break on symlinks. @@ -375,7 +385,7 @@ # since JDK8. %cmake \ -DBUILD_DOCUMENTATION:BOOL=ON \ - -DBUILD_EXAMPLES:BOOL=ON \ + -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 \ @@ -399,7 +409,6 @@ -DVTK_INSTALL_LIBRARY_DIR:PATH=%{_lib} \ -DVTK_INSTALL_PACKAGE_DIR:PATH=%{_lib}/cmake/%{pkgname} \ -DVTK_INSTALL_QT_DIR:STRING=%{_lib}/qt5/plugins/designer \ - -DVTK_INSTALL_PYTHON_MODULE_DIR:PATH=%{python3_sitearch} \ -DVTK_PYTHON_VERSION=3 \ -DVTK_QT_VERSION=5 \ -DVTK_USE_OGGTHEORA_ENCODER:BOOL=ON \ @@ -428,6 +437,7 @@ %install %cmake_install +%if %{with examples} # List of executable examples cat > examples.list << EOF AmbientSpheres @@ -479,6 +489,8 @@ perl -pi -e's,^,%{my_bindir}/,' examples.list %endif +%endif + %fdupes -s %{buildroot} %check @@ -491,6 +503,7 @@ 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 @@ -557,9 +570,11 @@ %dir %{my_libdir}/qt5/plugins/designer/ %{my_libdir}/qt5/plugins/designer/libQVTKWidgetPlugin.so +%if %{with examples} %if "%{flavor}" == "" %files examples -f examples.list %license Copyright.txt %endif +%endif %changelog ++++++ python38.patch ++++++ >From 257b9d7b18d5f3db3fe099dc18f230e23f7dfbab Mon Sep 17 00:00:00 2001 From: David Gobbi <[email protected]> Date: Tue, 20 Aug 2019 17:02:24 -0600 Subject: [PATCH] Compatibility for Python 3.8 The PyTypeObject struct was modified in Python 3.8, this change is required to avoid compile errors. --- .../PythonInterpreter/vtkPythonStdStreamCaptureHelper.h | 6 ++++++ Wrapping/PythonCore/PyVTKMethodDescriptor.cxx | 2 +- Wrapping/PythonCore/PyVTKNamespace.cxx | 2 +- Wrapping/PythonCore/PyVTKReference.cxx | 8 ++++---- Wrapping/PythonCore/PyVTKTemplate.cxx | 2 +- Wrapping/PythonCore/vtkPythonCompatibility.h | 8 +++++++- Wrapping/Tools/vtkWrapPythonClass.c | 2 +- Wrapping/Tools/vtkWrapPythonEnum.c | 2 +- Wrapping/Tools/vtkWrapPythonType.c | 2 +- 9 files changed, 23 insertions(+), 11 deletions(-) diff --git a/Utilities/PythonInterpreter/vtkPythonStdStreamCaptureHelper.h b/Utilities/PythonInterpreter/vtkPythonStdStreamCaptureHelper.h index b1c12c83de..14ccfbe928 100644 --- a/Utilities/PythonInterpreter/vtkPythonStdStreamCaptureHelper.h +++ b/Utilities/PythonInterpreter/vtkPythonStdStreamCaptureHelper.h @@ -140,6 +140,12 @@ static PyTypeObject vtkPythonStdStreamCaptureHelperType = { #if PY_VERSION_HEX >= 0x03040000 0, // tp_finalize #endif +#if PY_VERSION_HEX >= 0x03080000 + 0, // tp_vectorcall +#if PY_VERSION_HEX < 0x03090000 + 0, // tp_print +#endif +#endif }; static PyObject* vtkWrite(PyObject* self, PyObject* args) diff --git a/Wrapping/PythonCore/PyVTKMethodDescriptor.cxx b/Wrapping/PythonCore/PyVTKMethodDescriptor.cxx index 2b0d443537..3840038498 100644 --- a/Wrapping/PythonCore/PyVTKMethodDescriptor.cxx +++ b/Wrapping/PythonCore/PyVTKMethodDescriptor.cxx @@ -186,7 +186,7 @@ PyTypeObject PyVTKMethodDescriptor_Type = { sizeof(PyMethodDescrObject), // tp_basicsize 0, // tp_itemsize PyVTKMethodDescriptor_Delete, // tp_dealloc - nullptr, // tp_print + 0, // tp_vectorcall_offset nullptr, // tp_getattr nullptr, // tp_setattr nullptr, // tp_compare diff --git a/Wrapping/PythonCore/PyVTKNamespace.cxx b/Wrapping/PythonCore/PyVTKNamespace.cxx index 71ee2a3516..5cf5bfbe6b 100644 --- a/Wrapping/PythonCore/PyVTKNamespace.cxx +++ b/Wrapping/PythonCore/PyVTKNamespace.cxx @@ -49,7 +49,7 @@ PyTypeObject PyVTKNamespace_Type = { 0, // tp_basicsize 0, // tp_itemsize PyVTKNamespace_Delete, // tp_dealloc - nullptr, // tp_print + 0, // tp_vectorcall_offset nullptr, // tp_getattr nullptr, // tp_setattr nullptr, // tp_compare diff --git a/Wrapping/PythonCore/PyVTKReference.cxx b/Wrapping/PythonCore/PyVTKReference.cxx index 943ac71080..b7104091c0 100644 --- a/Wrapping/PythonCore/PyVTKReference.cxx +++ b/Wrapping/PythonCore/PyVTKReference.cxx @@ -1010,7 +1010,7 @@ PyTypeObject PyVTKReference_Type = { sizeof(PyVTKReference), // tp_basicsize 0, // tp_itemsize PyVTKReference_Delete, // tp_dealloc - nullptr, // tp_print + 0, // tp_vectorcall_offset nullptr, // tp_getattr nullptr, // tp_setattr nullptr, // tp_compare @@ -1067,7 +1067,7 @@ PyTypeObject PyVTKNumberReference_Type = { sizeof(PyVTKReference), // tp_basicsize 0, // tp_itemsize PyVTKReference_Delete, // tp_dealloc - nullptr, // tp_print + 0, // tp_vectorcall_offset nullptr, // tp_getattr nullptr, // tp_setattr nullptr, // tp_compare @@ -1124,7 +1124,7 @@ PyTypeObject PyVTKStringReference_Type = { sizeof(PyVTKReference), // tp_basicsize 0, // tp_itemsize PyVTKReference_Delete, // tp_dealloc - nullptr, // tp_print + 0, // tp_vectorcall_offset nullptr, // tp_getattr nullptr, // tp_setattr nullptr, // tp_compare @@ -1181,7 +1181,7 @@ PyTypeObject PyVTKTupleReference_Type = { sizeof(PyVTKReference), // tp_basicsize 0, // tp_itemsize PyVTKReference_Delete, // tp_dealloc - nullptr, // tp_print + 0, // tp_vectorcall_offset nullptr, // tp_getattr nullptr, // tp_setattr nullptr, // tp_compare diff --git a/Wrapping/PythonCore/PyVTKTemplate.cxx b/Wrapping/PythonCore/PyVTKTemplate.cxx index be200985b3..340fe7953b 100644 --- a/Wrapping/PythonCore/PyVTKTemplate.cxx +++ b/Wrapping/PythonCore/PyVTKTemplate.cxx @@ -268,7 +268,7 @@ PyTypeObject PyVTKTemplate_Type = { 0, // tp_basicsize 0, // tp_itemsize nullptr, // tp_dealloc - nullptr, // tp_print + 0, // tp_vectorcall_offset nullptr, // tp_getattr nullptr, // tp_setattr nullptr, // tp_compare diff --git a/Wrapping/PythonCore/vtkPythonCompatibility.h b/Wrapping/PythonCore/vtkPythonCompatibility.h index 4a767844a6..be208faeef 100644 --- a/Wrapping/PythonCore/vtkPythonCompatibility.h +++ b/Wrapping/PythonCore/vtkPythonCompatibility.h @@ -64,7 +64,13 @@ #endif // PyTypeObject compatibility -#if PY_VERSION_HEX >= 0x03040000 +#if PY_VERSION_HEX >= 0x03090000 +#define VTK_WRAP_PYTHON_SUPPRESS_UNINITIALIZED \ + 0, 0, 0, 0, +#elif PY_VERSION_HEX >= 0x03080000 +#define VTK_WRAP_PYTHON_SUPPRESS_UNINITIALIZED \ + 0, 0, 0, 0, 0, +#elif PY_VERSION_HEX >= 0x03040000 #define VTK_WRAP_PYTHON_SUPPRESS_UNINITIALIZED \ 0, 0, 0, #else diff --git a/Wrapping/Tools/vtkWrapPythonClass.c b/Wrapping/Tools/vtkWrapPythonClass.c index b1e45f8e80..4d558ea081 100644 --- a/Wrapping/Tools/vtkWrapPythonClass.c +++ b/Wrapping/Tools/vtkWrapPythonClass.c @@ -521,7 +521,7 @@ void vtkWrapPython_GenerateObjectType( " sizeof(PyVTKObject), // tp_basicsize\n" " 0, // tp_itemsize\n" " PyVTKObject_Delete, // tp_dealloc\n" - " nullptr, // tp_print\n" + " 0, // tp_vectorcall_offset\n" " nullptr, // tp_getattr\n" " nullptr, // tp_setattr\n" " nullptr, // tp_compare\n" diff --git a/Wrapping/Tools/vtkWrapPythonEnum.c b/Wrapping/Tools/vtkWrapPythonEnum.c index b933702242..1249362854 100644 --- a/Wrapping/Tools/vtkWrapPythonEnum.c +++ b/Wrapping/Tools/vtkWrapPythonEnum.c @@ -145,7 +145,7 @@ void vtkWrapPython_GenerateEnumType( " sizeof(PyIntObject), // tp_basicsize\n" " 0, // tp_itemsize\n" " nullptr, // tp_dealloc\n" - " nullptr, // tp_print\n" + " 0, // tp_vectorcall_offset\n" " nullptr, // tp_getattr\n" " nullptr, // tp_setattr\n" " nullptr, // tp_compare\n" diff --git a/Wrapping/Tools/vtkWrapPythonType.c b/Wrapping/Tools/vtkWrapPythonType.c index 744cb1b9d3..0a1375e541 100644 --- a/Wrapping/Tools/vtkWrapPythonType.c +++ b/Wrapping/Tools/vtkWrapPythonType.c @@ -709,7 +709,7 @@ void vtkWrapPython_GenerateSpecialType( " sizeof(PyVTKSpecialObject), // tp_basicsize\n" " 0, // tp_itemsize\n" " Py%s_Delete, // tp_dealloc\n" - " nullptr, // tp_print\n" + " 0, // tp_vectorcall_offset\n" " nullptr, // tp_getattr\n" " nullptr, // tp_setattr\n" " nullptr, // tp_compare\n" -- 2.21.0 ++++++ reproducible.patch ++++++ 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<A href="' . $args{"cvsweb"} @@ -769,10 +769,10 @@ my %contribution_by_author; my %contribution_by_date; -foreach my $contributor (keys %contribution_by_author_file) { +foreach my $contributor (sort keys %contribution_by_author_file) { foreach my $file_name - (keys %{$contribution_by_author_file{$contributor}}) { + (sort keys %{$contribution_by_author_file{$contributor}}) { $contribution_by_author{$contributor} += $contribution_by_author_file{$contributor}{$file_name}; }
