Date: Sunday, May 15, 2022 @ 20:51:32 Author: arojas Revision: 445851
archrelease: copy trunk to staging-x86_64 Added: avogadrolibs/repos/staging-x86_64/ avogadrolibs/repos/staging-x86_64/PKGBUILD (from rev 445850, avogadrolibs/trunk/PKGBUILD) avogadrolibs/repos/staging-x86_64/vtk9.patch (from rev 445850, avogadrolibs/trunk/vtk9.patch) ------------+ PKGBUILD | 62 +++++++++++++++ vtk9.patch | 242 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 304 insertions(+) Copied: avogadrolibs/repos/staging-x86_64/PKGBUILD (from rev 445850, avogadrolibs/trunk/PKGBUILD) =================================================================== --- staging-x86_64/PKGBUILD (rev 0) +++ staging-x86_64/PKGBUILD 2022-05-15 20:51:32 UTC (rev 445851) @@ -0,0 +1,62 @@ +# Maintainer: Antonio Rojas <aro...@archlinux.org> + +pkgbase=avogadrolibs +pkgname=(avogadrolibs avogadrolibs-qt5) +pkgver=1.95.1 +pkgrel=8 +pkgdesc='Libraries that provide 3D rendering, visualization, analysis and data processing useful in computational chemistry, molecular modeling, bioinformatics, materials science, and related areas' +arch=(x86_64) +url='https://www.openchemistry.org/' +license=(custom) +depends=(molequeue glew spglib hdf5 avogadro-molecules avogadro-crystals) +makedepends=(cmake eigen boost python mmtf-cpp libmsym pybind11 vtk qt5-tools qt5-svg genxrdpattern tbb openmpi) +optdepends=('avogadrolibs-qt5: For the VTK and Qt plugins') +source=(https://github.com/OpenChemistry/avogadrolibs/archive/$pkgver/$pkgname-$pkgver.tar.gz + vtk9.patch) +sha256sums=('52817eebfc0cf700e5f6c0c4455b460618ec0dd7cb4ede5d8fabc5a2d73a7816' + 'a2272c456f1a5dd85bb98fbf5ed9aa5aabaa3fbd8b191bb6d14e6ee57c2789f4') + +prepare() { + mkdir crystals molecules # Dummy dirs to trick cmake, actually provided by avogadro-molecules and avogadro-crystals + patch -d $pkgname-$pkgver -p1 < vtk9.patch # Fix build with VTK 9 +} + +build() { + cmake -B build -S $pkgname-$pkgver \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_C_CLAFS="$CFLAGS -ffat-lto-objects" \ + -DCMAKE_CXX_FLAGS="$CXXFLAGS -ffat-lto-objects" \ + -DENABLE_TRANSLATIONS=ON \ + -DUSE_HDF5=ON \ + -DUSE_VTK=ON \ + -DUSE_PYTHON=ON \ + -DUSE_SYSTEM_GENXRDPATTERN=ON + cmake --build build +} + +package_avogadrolibs() { + DESTDIR="$pkgdir" cmake --install build + rm -r "$pkgdir"/usr/lib/libAvogadroQt* \ + "$pkgdir"/usr/lib/libAvogadroMoleQueue* \ + "$pkgdir"/usr/lib/libAvogadroVtk* \ + "$pkgdir"/usr/include/avogadro/{molequeue,qt*,vtk} \ + "$pkgdir"/usr/lib/avogadro2/{scripts,staticplugins} + + install -Dm644 $pkgname-$pkgver/LICENSE -t "$pkgdir"/usr/share/licenses/$pkgname + +# Move python module to the correct place + local site_packages=$(python -c "import site; print(site.getsitepackages()[0])") + mkdir -p "$pkgdir${site_packages}" + mv "$pkgdir"/usr/lib/avogadro "$pkgdir${site_packages}" +} + +package_avogadrolibs-qt5() { + pkgdesc="Qt 5 modules for Avogadro" + depends=(qt5-svg libarchive libmsym avogadrolibs vtk openmpi fmt libxcursor) + + DESTDIR="$pkgdir" cmake --install build/avogadro/molequeue + DESTDIR="$pkgdir" cmake --install build/avogadro/qtgui + DESTDIR="$pkgdir" cmake --install build/avogadro/qtopengl + DESTDIR="$pkgdir" cmake --install build/avogadro/qtplugins + DESTDIR="$pkgdir" cmake --install build/avogadro/vtk +} Copied: avogadrolibs/repos/staging-x86_64/vtk9.patch (from rev 445850, avogadrolibs/trunk/vtk9.patch) =================================================================== --- staging-x86_64/vtk9.patch (rev 0) +++ staging-x86_64/vtk9.patch 2022-05-15 20:51:32 UTC (rev 445851) @@ -0,0 +1,242 @@ +diff --git a/avogadro/qtplugins/coloropacitymap/coloropacitymap.cpp b/avogadro/qtplugins/coloropacitymap/coloropacitymap.cpp +index 2ec4ea3a..ff412948 100644 +--- a/avogadro/qtplugins/coloropacitymap/coloropacitymap.cpp ++++ b/avogadro/qtplugins/coloropacitymap/coloropacitymap.cpp +@@ -180,7 +180,7 @@ void ColorOpacityMap::render() + auto widget = ActiveObjects::instance().activeWidget(); + auto vtkWidget = qobject_cast<VTK::vtkGLWidget*>(widget); + if (vtkWidget) { +- vtkWidget->GetRenderWindow()->Render(); ++ vtkWidget->renderWindow()->Render(); + vtkWidget->update(); + } + } +diff --git a/avogadro/qtplugins/coloropacitymap/histogramwidget.cpp b/avogadro/qtplugins/coloropacitymap/histogramwidget.cpp +index de4c36ad..dc647145 100644 +--- a/avogadro/qtplugins/coloropacitymap/histogramwidget.cpp ++++ b/avogadro/qtplugins/coloropacitymap/histogramwidget.cpp +@@ -42,8 +42,8 @@ HistogramWidget::HistogramWidget(QWidget* parent) + : QWidget(parent), m_qvtk(new QVTKGLWidget(this)) + { + // Set up our little chart. +- m_histogramView->SetRenderWindow(m_qvtk->GetRenderWindow()); +- m_histogramView->SetInteractor(m_qvtk->GetInteractor()); ++ m_histogramView->SetRenderWindow(m_qvtk->renderWindow()); ++ m_histogramView->SetInteractor(m_qvtk->interactor()); + m_histogramView->GetScene()->AddItem(m_histogramColorOpacityEditor); + + // Connect events from the histogram color/opacity editor. +diff --git a/avogadro/qtplugins/coloropacitymap/qvtkwidget.cpp b/avogadro/qtplugins/coloropacitymap/qvtkwidget.cpp +index 95afd55c..a8936112 100644 +--- a/avogadro/qtplugins/coloropacitymap/qvtkwidget.cpp ++++ b/avogadro/qtplugins/coloropacitymap/qvtkwidget.cpp +@@ -12,12 +12,12 @@ + namespace Avogadro { + + QVTKGLWidget::QVTKGLWidget(QWidget* parent, Qt::WindowFlags f) +- : QVTKOpenGLWidget(parent, f) ++ : QVTKOpenGLStereoWidget(parent, f) + { + // Set some defaults for our render window. + vtkNew<vtkGenericOpenGLRenderWindow> window; +- SetRenderWindow(window); +- auto glFormat = QVTKOpenGLWidget::defaultFormat(); ++ setRenderWindow(window); ++ auto glFormat = QVTKOpenGLStereoWidget::defaultFormat(); + glFormat.setSamples(8); + setFormat(glFormat); + } +diff --git a/avogadro/qtplugins/coloropacitymap/qvtkwidget.h b/avogadro/qtplugins/coloropacitymap/qvtkwidget.h +index a3a6ca42..32d43d4a 100644 +--- a/avogadro/qtplugins/coloropacitymap/qvtkwidget.h ++++ b/avogadro/qtplugins/coloropacitymap/qvtkwidget.h +@@ -4,11 +4,11 @@ + #ifndef AVOGADRO_QTPLUGINS_QVTKGLWidget_H + #define AVOGADRO_QTPLUGINS_QVTKGLWidget_H + +-#include <QVTKOpenGLWidget.h> ++#include <QVTKOpenGLStereoWidget.h> + + namespace Avogadro { + +-class QVTKGLWidget : public QVTKOpenGLWidget ++class QVTKGLWidget : public QVTKOpenGLStereoWidget + { + Q_OBJECT + +@@ -17,7 +17,7 @@ class QVTKGLWidget : public QVTKOpenGLWidget + Qt::WindowFlags f = Qt::WindowFlags()); + ~QVTKGLWidget() override; + +- void setEnableHiDPI(bool enable) override; ++ void setEnableHiDPI(bool enable); + }; + } // namespace Avogadro + +diff --git a/avogadro/vtk/CMakeLists.txt b/avogadro/vtk/CMakeLists.txt +index 3c567d489..afcf59375 100644 +--- a/avogadro/vtk/CMakeLists.txt ++++ b/avogadro/vtk/CMakeLists.txt +@@ -11,13 +11,21 @@ endif() + + find_package(Qt5 COMPONENTS Widgets REQUIRED) + ++find_package(VTK QUIET COMPONENTS CommonCore) ++if(VTK_MAJOR_VERSION GREATER 8) ++ set(VCP "") # shorthand for VTK_COMPONENT_PREFIX ++ set(VMP "VTK::") # shorthand for VTK_MODULE_PREFIX ++else() ++ set(VCP "vtk") ++ set(VMP "vtk") ++ include_directories(SYSTEM ${VTK_INCLUDE_DIRS}) ++endif() ++ + find_package(VTK +- COMPONENTS +- vtkRenderingOpenGL2 vtkGUISupportQt vtkDomainsChemistry +- vtkRenderingVolumeOpenGL2 vtkViewsCore vtkRenderingFreeType +- vtkChartsCore vtkViewsContext2D vtkRenderingContextOpenGL2 +- REQUIRED) +-include_directories(SYSTEM ${VTK_INCLUDE_DIRS}) ++ REQUIRED COMPONENTS ++ ${VCP}RenderingOpenGL2 ${VCP}GUISupportQt ${VCP}DomainsChemistry ++ ${VCP}RenderingVolumeOpenGL2 ${VCP}ViewsCore ${VCP}RenderingFreeType ++ ${VCP}ChartsCore ${VCP}ViewsContext2D ${VCP}RenderingContextOpenGL2) + set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS ${VTK_DEFINITIONS}) + + set(HEADERS +@@ -35,6 +43,6 @@ set(SOURCES + avogadro_add_library(AvogadroVtk ${HEADERS} ${SOURCES}) + set_target_properties(AvogadroVtk PROPERTIES AUTOMOC TRUE) + target_link_libraries(AvogadroVtk AvogadroRendering AvogadroQtGui +- vtkRenderingOpenGL2 vtkGUISupportQt vtkRenderingVolumeOpenGL2 +- vtkRenderingFreeType vtkInteractionStyle vtkChartsCore vtkViewsContext2D +- vtkRenderingContextOpenGL2 vtkDomainsChemistryOpenGL2 Qt5::Widgets) ++ ${VMP}RenderingOpenGL2 ${VMP}GUISupportQt ${VMP}RenderingVolumeOpenGL2 ++ ${VMP}RenderingFreeType ${VMP}InteractionStyle ${VMP}ChartsCore ${VMP}ViewsContext2D ++ ${VMP}RenderingContextOpenGL2 ${VMP}DomainsChemistryOpenGL2 Qt5::Widgets) +diff --git a/avogadro/vtk/vtkglwidget.cpp b/avogadro/vtk/vtkglwidget.cpp +index 7ce08991..0192a2cf 100644 +--- a/avogadro/vtk/vtkglwidget.cpp ++++ b/avogadro/vtk/vtkglwidget.cpp +@@ -123,7 +123,7 @@ void vtkGLWidget::cubeVolume(Core::Cube* cube) + } + + vtkGLWidget::vtkGLWidget(QWidget* p, Qt::WindowFlags f) +- : QVTKOpenGLWidget(p, f), m_activeTool(nullptr), m_defaultTool(nullptr) ++ : QVTKOpenGLStereoWidget(p, f), m_activeTool(nullptr), m_defaultTool(nullptr) + { + setFocusPolicy(Qt::ClickFocus); + connect(&m_scenePlugins, +@@ -131,13 +131,13 @@ vtkGLWidget::vtkGLWidget(QWidget* p, Qt::WindowFlags f) + SLOT(updateScene())); + + // Set up our renderer, window, scene, etc. +- vtkNew<vtkGenericOpenGLRenderWindow> renderWindow; +- SetRenderWindow(renderWindow); +- GetRenderWindow()->AddRenderer(m_vtkRenderer); +- setFormat(QVTKOpenGLWidget::defaultFormat()); +- vtkNew<vtkInteractorStyleTrackballCamera> interactor; +- GetInteractor()->SetInteractorStyle(interactor); +- GetInteractor()->Initialize(); ++ vtkNew<vtkGenericOpenGLRenderWindow> renderWindow_; ++ setRenderWindow(renderWindow_); ++ renderWindow()->AddRenderer(m_vtkRenderer); ++ setFormat(QVTKOpenGLStereoWidget::defaultFormat()); ++ vtkNew<vtkInteractorStyleTrackballCamera> interactor_; ++ interactor()->SetInteractorStyle(interactor_); ++ interactor()->Initialize(); + m_vtkRenderer->SetBackground(1.0, 1.0, 1.0); + + // m_actor->setScene(&this->renderer().scene()); +@@ -175,7 +175,7 @@ void vtkGLWidget::setMolecule(QtGui::Molecule* mol) + updateCube(); + // Reset the camera, re-render. + m_vtkRenderer->ResetCamera(); +- GetRenderWindow()->Render(); ++ renderWindow()->Render(); + } + + void vtkGLWidget::updateCube() +@@ -205,7 +205,7 @@ void vtkGLWidget::moleculeChanged(unsigned int c) + auto changes = static_cast<Molecule::MoleculeChanges>(c); + if (changes & Molecule::Added || changes & Molecule::Removed) { + updateCube(); +- GetRenderWindow()->Render(); ++ renderWindow()->Render(); + } + } + +diff --git a/avogadro/vtk/vtkglwidget.h b/avogadro/vtk/vtkglwidget.h +index 3c3e6046f..93e2e00e8 100644 +--- a/avogadro/vtk/vtkglwidget.h ++++ b/avogadro/vtk/vtkglwidget.h +@@ -19,7 +19,7 @@ + + #include "avogadrovtkexport.h" + +-#include <QVTKOpenGLWidget.h> ++#include <QVTKOpenGLStereoWidget.h> + #include <vtkNew.h> + #include <vtkSmartPointer.h> + +@@ -50,7 +50,7 @@ class ToolPlugin; + + namespace VTK { + +-class AVOGADROVTK_EXPORT vtkGLWidget : public QVTKOpenGLWidget ++class AVOGADROVTK_EXPORT vtkGLWidget : public QVTKOpenGLStereoWidget + { + Q_OBJECT + +diff --git a/avogadro/vtk/vtkplot.cpp b/avogadro/vtk/vtkplot.cpp +index c76a5bf6..a0ec8f75 100644 +--- a/avogadro/vtk/vtkplot.cpp ++++ b/avogadro/vtk/vtkplot.cpp +@@ -34,7 +34,7 @@ + #include <vtkTextProperty.h> + + #include <QSurfaceFormat> +-#include <QVTKOpenGLWidget.h> ++#include <QVTKOpenGLStereoWidget.h> + + #include "vtkplot.h" + +@@ -45,12 +45,12 @@ using std::vector; + namespace Avogadro { + namespace VTK { + +-VtkPlot::VtkPlot() : m_widget(new QVTKOpenGLWidget) ++VtkPlot::VtkPlot() : m_widget(new QVTKOpenGLStereoWidget) + { +- m_widget->SetRenderWindow(m_renderWindow); ++ m_widget->setRenderWindow(m_renderWindow); + + // Set up the view +- m_widget->setFormat(QVTKOpenGLWidget::defaultFormat()); ++ m_widget->setFormat(QVTKOpenGLStereoWidget::defaultFormat()); + m_view->SetRenderWindow(m_renderWindow); + m_view->GetRenderer()->SetBackground(1.0, 1.0, 1.0); + m_view->GetRenderWindow()->SetSize(600, 600); +diff --git a/avogadro/vtk/vtkplot.h b/avogadro/vtk/vtkplot.h +index ef2150ac4..a39508376 100644 +--- a/avogadro/vtk/vtkplot.h ++++ b/avogadro/vtk/vtkplot.h +@@ -26,7 +26,7 @@ + #include <string> + #include <vector> + +-class QVTKOpenGLWidget; ++class QVTKOpenGLStereoWidget; + class vtkAxis; + class vtkChartXY; + class vtkContextView; +@@ -99,7 +99,7 @@ private: + // Get a pointer to a particular axis. Returns nullptr if invalid. + vtkAxis* getAxis(Axis axis); + +- std::unique_ptr<QVTKOpenGLWidget> m_widget; ++ std::unique_ptr<QVTKOpenGLStereoWidget> m_widget; + vtkNew<vtkTable> m_table; + vtkNew<vtkGenericOpenGLRenderWindow> m_renderWindow; + vtkNew<vtkContextView> m_view;