Skip to content

Draft: Revise dependencies

Jakub Klinkovský requested to merge depends into main

I've recently adopted the package to help with the maintenance and this is my first attempt to solve the problem with dependencies. It does not change the status quo much, but provides some numbers and it should improve the user experience at least a little.

I wrote a script for generating a list of dependencies along with numbers of VTK libraries that need them. It has some quirk and does not find the package for libjawt.so properly, but otherwise it reports useful info. I'll share the script itself later when I clean it up.

unknown pkgname for lib libjawt.so
glibc                   # [...] (418 direct libs, 418 total libs)
gcc-libs                # [...] (407 direct libs, 407 total libs)
onetbb                  # [...] (57 direct libs, 388 total libs)
double-conversion       # libvtkCommonCore.so.1 (1 direct libs, 372 total libs)
pugixml                 # libvtkIOADIOS2.so.1, libvtkCommonDataModel.so.1, libvtkIOCityGML.so.1, libvtkIOImage.so.1 (4 direct libs, 351 total libs)
zlib                    # libvtkIOCore.so.1, libvtkmetaio.so.1, libvtkIOOMF.so.1, libvtkIOGeometry.so.1, libvtkIOImage.so.1 (5 direct libs, 204 total libs)
verdict                 # libvtkFiltersVerdict.so.1 (1 direct libs, 192 total libs)
fmt                     # libvtkRenderingCellGrid.so.1, libvtkIOEnSight.so.1, libvtkioss.so.1, libvtkIOIOSS.so.1, libvtkFiltersGeneral.so.1 (5 direct libs, 189 total libs)
lz4                     # libvtkIOCore.so.1 (1 direct libs, 172 total libs)
xz                      # libvtkIOCore.so.1 (1 direct libs, 172 total libs)
expat                   # libvtkIOXMLParser.so.1 (1 direct libs, 101 total libs)
libjpeg-turbo           # libvtkIOImage.so.1 (1 direct libs, 97 total libs)
libpng                  # libvtkIOImage.so.1 (1 direct libs, 97 total libs)
libtiff                 # libvtkIOImage.so.1 (1 direct libs, 97 total libs)
openmpi                 # [...] (13 direct libs, 67 total libs)
libx11                  # libvtkRenderingOpenGL2.so.1, libvtkglad.so.1, libvtkRenderingUI.so.1, libvtkRenderingTk.so.1 (4 direct libs, 58 total libs)
freetype2               # libvtkRenderingFreeType.so.1, libvtkRenderingFreeTypeFontConfig.so.1 (2 direct libs, 55 total libs)
libxcursor              # libvtkRenderingOpenGL2.so.1 (1 direct libs, 51 total libs)
hdf5                    # [...] (16 direct libs, 39 total libs)
jsoncpp                 # [...] (7 direct libs, 26 total libs)
netcdf                  # libvtkioss.so.1, libvtkIOParallelNetCDF.so.1, libvtkIOMINC.so.1, libvtkexodusII.so.1, libvtkIONetCDF.so.1 (5 direct libs, 14 total libs)
libxml2                 # libvtkxdmf2.so.1, libvtkIOInfovis.so.1, libvtkxdmfcore.so.1 (3 direct libs, 13 total libs)
sqlite                  # libvtkIOSQL.so.1 (1 direct libs, 10 total libs)
qt5-base                # libvtkGUISupportQtSQL.so.1, libvtkRenderingQt.so.1, libvtkGUISupportQt.so.1, libvtkViewsQt.so.1, libvtkGUISupportQtQuick.so.1 (5 direct libs, 6 total libs)
adios2                  # libvtkIOADIOS2.so.1, libvtkfides.so.1 (2 direct libs, 5 total libs)
cgns                    # libvtkioss.so.1, libvtkIOCGNSReader.so.1 (2 direct libs, 5 total libs)
gdal                    # libvtkGeovisGDAL.so.1, libvtkIOGDAL.so.1 (2 direct libs, 4 total libs)
gl2ps                   # libvtkRenderingGL2PSOpenGL2.so.1, libvtkIOExportGL2PS.so.1 (2 direct libs, 4 total libs)
proj                    # libvtkGeovisCore.so.1, libvtkIOCesium3DTiles.so.1 (2 direct libs, 4 total libs)
alembic                 # libvtkIOAlembic.so.1 (1 direct libs, 2 total libs)
anari-sdk               # libvtkRenderingAnari.so.1 (1 direct libs, 2 total libs)
ffmpeg                  # libvtkIOFFMPEG.so.1 (1 direct libs, 2 total libs)
imath                   # libvtkIOOpenVDB.so.1 (1 direct libs, 2 total libs)
libarchive              # libvtkCommonArchive.so.1 (1 direct libs, 2 total libs)
libharu                 # libvtkIOExportPDF.so.1 (1 direct libs, 2 total libs)
liblas                  # libvtkIOLAS.so.1 (1 direct libs, 2 total libs)
libogg                  # libvtkIOOggTheora.so.1 (1 direct libs, 2 total libs)
libtheora               # libvtkIOOggTheora.so.1 (1 direct libs, 2 total libs)
mariadb-libs            # libvtkIOMySQL.so.1 (1 direct libs, 2 total libs)
opencascade             # libvtkIOOCCT.so.1 (1 direct libs, 2 total libs)
openimagedenoise        # libvtkRenderingRayTracing.so.1 (1 direct libs, 2 total libs)
openvdb                 # libvtkIOOpenVDB.so.1 (1 direct libs, 2 total libs)
openvr                  # libvtkRenderingOpenVR.so.1 (1 direct libs, 2 total libs)
openxr                  # libvtkRenderingOpenXR.so.1 (1 direct libs, 2 total libs)
ospray                  # libvtkRenderingRayTracing.so.1 (1 direct libs, 2 total libs)
pdal                    # libvtkIOPDAL.so.1 (1 direct libs, 2 total libs)
postgresql-libs         # libvtkIOPostgreSQL.so.1 (1 direct libs, 2 total libs)
unixodbc                # libvtkIOODBC.so.1 (1 direct libs, 2 total libs)
fontconfig              # libvtkRenderingFreeTypeFontConfig.so.1 (1 direct libs, 1 total libs)
qt5-declarative         # libvtkGUISupportQtQuick.so.1 (1 direct libs, 1 total libs)
tcl                     # libvtkRenderingTk.so.1 (1 direct libs, 1 total libs)
tk                      # libvtkRenderingTk.so.1 (1 direct libs, 1 total libs)

Besides some initial cleanup, the last two commits are shuffling packages based on this report. The main reasons for the changes are:

  • packages required by many VTK libs go directly to depends
  • also libarchive (required by pacman already) and common data libraries (expat, jsoncpp, libxml2) go to depends
  • the list of makedepends is split into categories (build system, bindings, graphical toolkits, other direct dependencies of VTK libs/modules, and header-only libraries)
  • the list of optdepends is reordered accordingly, some missing packages were added and all items have a human-readable comments for users

I left the comments from the generated report in the PKGBUILD for now, though it will likely become outdated after more upstream releases. But we could adapt the script to be able to easily update the comments...

Fixes #2 and #5

cc @archange, @alerque, @arojas, @toolybird

Edited by Jakub Klinkovský

Merge request reports

Loading