You are not logged in.

#1 2023-02-05 03:13:43

GoluDholu
Member
Registered: 2022-11-05
Posts: 23

How to upgrade AUR packages properly?

My boost installation upgraded from 1.80 to 1.81. Several of my AUR packages are now broken because of it. I was wondering what is the best practice in upgrading packages with dependencies. I searched forums and found that I will need to rebuild packages. Below are the things I have tried.

Using paru

  1. paru -R <package>
  2. rm -r ~/.cache/paru/clone/<package>
  3. paru -S <package>

Using makepkg

  1. git clone <url>
  2. cd <dir>
  3. makepkg -si

However, I still had issues when rebuilding.

Output of checkrebuild -v
https://pastebin.com/1N8D1rsV

Output when I run makepkg -si for pcl, which is one of the broken packages:

==> Making package: pcl 1.13.0-1 (Sat 04 Feb 2023 10:26:07 PM EST)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
  -> Found pcl-1.13.0.tar.gz
==> Validating source files with sha256sums...
    pcl-1.13.0.tar.gz ... Passed
==> Extracting sources...
  -> Extracting pcl-1.13.0.tar.gz with bsdtar
==> Removing existing $pkgdir/ directory...
==> Starting build()...
-- Adding target 'format'
-- Found OpenMP, spec date 201511
-- Eigen found (include: /usr/include/eigen3, version: 3.4.0)
-- Found flann version 1.9.2
-- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/libOpenNI2.so;libusb::libusb)
-- Checking for module 'metslib'
--   Package 'metslib', required by 'virtual:world', not found
-- Found Qhull version 8.0.2
-- Found CUDA Toolkit v11.8
-- CMAKE_CUDA_ARCHITECTURES: 35;37;50;52;53;60;61;62;70;72;75;80;86;87;89;90
-- Found Embree v3.13.5: /usr/lib/libembree3.so.3.13.5
-- Found Open VKL v1.3.1: /usr/lib/libopenvkl.so.1.3.1
-- Could NOT find Boost: Found unsuitable version "1.81.0", but required is exact version "1.80.0" (found /usr/include, )
-- Could not find the VTK package due to a missing dependency: Boost
COMPONENT = openvdb
-- OpenVDB ABI Version: 10
CMake Error at /usr/lib/cmake/Boost-1.81.0/BoostConfig.cmake:141 (find_package):
  Found package configuration file:

    /usr/lib/cmake/boost_iostreams-1.81.0/boost_iostreams-config.cmake

  but it set boost_iostreams_FOUND to FALSE so package "boost_iostreams" is
  considered to be NOT FOUND.  Reason given by package:

  No suitable build variant has been found.

  The following variants have been tried and rejected:

  * libboost_iostreams.so.1.81.0 (release runtime,
  Boost_USE_DEBUG_RUNTIME=TRUE)

  * libboost_iostreams.a (static, Boost_USE_STATIC_LIBS=OFF)

Call Stack (most recent call first):
  /usr/lib/cmake/Boost-1.81.0/BoostConfig.cmake:262 (boost_find_component)
  /usr/share/cmake/Modules/FindBoost.cmake:594 (find_package)
  /usr/share/cmake/Modules/FindOpenVDB.cmake:504 (find_package)
  /usr/lib/cmake/vtk/VTK-vtk-module-find-packages.cmake:650 (find_package)
  /usr/lib/cmake/vtk/vtk-config.cmake:150 (include)
  cmake/pcl_find_vtk.cmake:31 (find_package)
  CMakeLists.txt:388 (include)


-- Configuring incomplete, errors occurred!
See also "/home/---/opt/AURpkgs/pcl/src/build/CMakeFiles/CMakeOutput.log".
See also "/home/---/opt/AURpkgs/pcl/src/build/CMakeFiles/CMakeError.log".
==> ERROR: A failure occurred in build().
    Aborting...
---@Desktop:pcl$ makepkg -si > log
    pcl-1.13.0.tar.gz ... Passed
COMPONENT = openvdb
CMake Error at /usr/lib/cmake/Boost-1.81.0/BoostConfig.cmake:141 (find_package):
  Found package configuration file:

    /usr/lib/cmake/boost_iostreams-1.81.0/boost_iostreams-config.cmake

  but it set boost_iostreams_FOUND to FALSE so package "boost_iostreams" is
  considered to be NOT FOUND.  Reason given by package:

  No suitable build variant has been found.

  The following variants have been tried and rejected:

  * libboost_iostreams.so.1.81.0 (release runtime,
  Boost_USE_DEBUG_RUNTIME=TRUE)

  * libboost_iostreams.a (static, Boost_USE_STATIC_LIBS=OFF)

Call Stack (most recent call first):
  /usr/lib/cmake/Boost-1.81.0/BoostConfig.cmake:262 (boost_find_component)
  /usr/share/cmake/Modules/FindBoost.cmake:594 (find_package)
  /usr/share/cmake/Modules/FindOpenVDB.cmake:504 (find_package)
  /usr/lib/cmake/vtk/VTK-vtk-module-find-packages.cmake:650 (find_package)
  /usr/lib/cmake/vtk/vtk-config.cmake:150 (include)
  cmake/pcl_find_vtk.cmake:31 (find_package)
  CMakeLists.txt:388 (include)


==> ERROR: A failure occurred in build().
    Aborting...

Last edited by GoluDholu (2023-02-05 17:59:42)

Offline

#2 2023-02-05 03:47:39

Trilby
Inspector Parrot
Registered: 2011-11-29
Posts: 29,447
Website

Re: How to upgrade AUR packages properly?

That error really has nothing to do with AUR packaging / updating but is an upstream source issue.  The upstream-provided pcl_find_boost.cmake file does not include the current boost version as an acceptable alternative.  That's most likely an error and could be fixed simply by adding the current version number to the alternatives lists - but that should be reported upstream.

Last edited by Trilby (2023-02-05 03:56:27)


"UNIX is simple and coherent..." - Dennis Ritchie, "GNU's Not UNIX" -  Richard Stallman

Offline

#3 2023-02-05 08:17:53

seth
Member
Registered: 2012-09-03
Posts: 49,992

Re: How to upgrade AUR packages properly?

Please edit your post and wrap the output in "code" tags, https://bbs.archlinux.org/help.php#bbcode
The error is mentioned in the pinned comments of the package, attributed to vtk (which as of now is probably built againts 1.80) and two workarounds suggested (one being simply rebuilding vtk on the current boost)

Online

#4 2023-02-05 10:48:51

WorMzy
Forum Moderator
From: Scotland
Registered: 2010-06-16
Posts: 11,787
Website

Re: How to upgrade AUR packages properly?

Mod note: moving to AUR Issues


Sakura:-
Mobo: MSI MAG X570S TORPEDO MAX // Processor: AMD Ryzen 9 5950X @4.9GHz // GFX: AMD Radeon RX 5700 XT // RAM: 32GB (4x 8GB) Corsair DDR4 (@ 3000MHz) // Storage: 1x 3TB HDD, 6x 1TB SSD, 2x 120GB SSD, 1x 275GB M2 SSD

Making lemonade from lemons since 2015.

Offline

#5 2023-02-05 14:08:36

Trilby
Inspector Parrot
Registered: 2011-11-29
Posts: 29,447
Website

Re: How to upgrade AUR packages properly?

seth that's a slightly different error from last year.  The current error is due to the boost upgrade just a couple days ago and is due to the cmake requirements listing only older versions of boost.


"UNIX is simple and coherent..." - Dennis Ritchie, "GNU's Not UNIX" -  Richard Stallman

Offline

#6 2023-02-05 14:25:38

loqs
Member
Registered: 2014-03-06
Posts: 17,196

Re: How to upgrade AUR packages properly?

Trilby wrote:

seth that's a slightly different error from last year.  The current error is due to the boost upgrade just a couple days ago and is due to the cmake requirements listing only older versions of boost.

Trilby it is the same issue as seth linked to apart from the version numbers.  After rebuilding vtk against boost 1.81 the issue is resolved.  The boost 1.81 rebuild only covered packages that linked to boost,  missing those that added a version requirement in other installed files.
Edit:
The package fails to build in a clean chroot due to missing qt5-base required by vtk (again as that was what it was built with) while pcl can use either 5 or 6.

Last edited by loqs (2023-02-05 15:20:05)

Offline

#7 2023-02-05 16:29:45

Trilby
Inspector Parrot
Registered: 2011-11-29
Posts: 29,447
Website

Re: How to upgrade AUR packages properly?

How could that work as vtk doesn't depend on or link to boost.

EDIT: I guess boost is a makedepends, but not a depends nor even optional dependency which is odd.  Still, no binaries in vtk seem to link to boost.

Last edited by Trilby (2023-02-05 16:38:48)


"UNIX is simple and coherent..." - Dennis Ritchie, "GNU's Not UNIX" -  Richard Stallman

Offline

#8 2023-02-05 16:45:40

seth
Member
Registered: 2012-09-03
Posts: 49,992

Re: How to upgrade AUR packages properly?

Trily wrote:

boost is a makedepends

static link or inlined?

Online

#9 2023-02-05 16:55:17

Trilby
Inspector Parrot
Registered: 2011-11-29
Posts: 29,447
Website

Re: How to upgrade AUR packages properly?

In those cases, the upgrade of the system-wide boost libs would be irrelevant.


"UNIX is simple and coherent..." - Dennis Ritchie, "GNU's Not UNIX" -  Richard Stallman

Offline

#10 2023-02-05 17:34:02

seth
Member
Registered: 2012-09-03
Posts: 49,992

Re: How to upgrade AUR packages properly?

It's not a runtime failure.
CMake looks for some stuff and the vtk module tells you "yeah, there - but wrong version. Not the one I was compiled against."

Online

#11 2023-02-05 18:18:44

loqs
Member
Registered: 2014-03-06
Posts: 17,196

Re: How to upgrade AUR packages properly?

vtk has been rebuilt for boost 1.81 (9.1.0-26) currently in testing.

Offline

#12 2023-02-05 22:34:35

Trilby
Inspector Parrot
Registered: 2011-11-29
Posts: 29,447
Website

Re: How to upgrade AUR packages properly?

If it's statically linked, then the lib it was built against is present as it is built in to the binary.  If cmake is looking for shared objects to satisfy statically linked content, that'd be a cmake bug (and / or an improper cmake config from upstream which was my claim from the start).

While rebuilding vtk may make the error go away, that appears to just be sweeping it under the rug rather than addressing the root cause which is bound to crop up repeatedly until the root cause is addressed.


"UNIX is simple and coherent..." - Dennis Ritchie, "GNU's Not UNIX" -  Richard Stallman

Offline

#13 2023-02-06 07:48:34

seth
Member
Registered: 2012-09-03
Posts: 49,992

Re: How to upgrade AUR packages properly?

The rejection is from boost via openvdb

1. openvdb is an optional dependency for vtk and seems (we'll just assume, feel free to download and ldd it) to link boost, also because
2. openvdb is also a build dependency for vtk, so it's not just dlopened.
3. vtk has boost as a build dependency and given the .*Boost.* headers, might be inlining and statically linking ("copy") some boost code.

a) pcl looks for vtk
b) vtk looks whether openvdb is installed.
c) openvdb is installed, but was built against a different version of boost.

So by any chance at this point you run a risk of two versions of boost code slushing around in your binary:
The one that vtk was built against and the one that openvdb was built against and that gets sucked in w/ vtk
The necessary assumption is that they're incompatible (because it's boost)
So the module detection errors out.

=> vtk needs to be rebuilt along openvdb because of the boost double-inheritence.

* On top of that pcl itself links boost, but that's irrelevant at this point. It just needs to be rebuild everytime after boost and with it vtk and openvdb have been updated.

Online

#14 2023-02-07 13:48:56

kino
Member
Registered: 2021-08-21
Posts: 2

Re: How to upgrade AUR packages properly?

I recommend you an archlinux repository for education. There are lots of packages (such as ros1, ros2 and so on) that are widely used for students and researchers.
The github url: https://github.com/arch4edu/arch4edu
The packages' status: https://arch4edu.github.io

Last edited by kino (2023-02-09 15:35:14)

Offline

#15 2023-02-07 13:59:54

seth
Member
Registered: 2012-09-03
Posts: 49,992

Re: How to upgrade AUR packages properly?

loqs wrote:

vtk has been rebuilt for boost 1.81 (9.1.0-26) currently in testing.

Online

Board footer

Powered by FluxBB