Source: scalapack
Version: 2.2.1-2
Severity: serious
Hi,
I'm building a package that can use scalapack; it uses cmake as build
system and fails configuring as such:
|dh_auto_configure -- \
| -DCMAKE_BUILD_TYPE= \
| -DBUILD_SHARED_LIBS=NO \
| -DBUILD_TESTING=YES \
| -DENABLE_SCALAPACK_MPI=YES
| cd obj-x86_64-linux-gnu && DEB_PYTHON_INSTALL_LAYOUT=deb cmake
|-DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=None
|-DCMAKE_INSTALL_SYSCONFDIR=/etc -DCMAKE_INSTALL_LOCALSTATEDIR=/var
|-DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON
|-DCMAKE_FIND_USE_PACKAGE_REGISTRY=OFF
|-DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON
|-DFETCHCONTENT_FULLY_DISCONNECTED=ON -DCMAKE_INSTALL_RUNSTATEDIR=/run
|"-GUnix Makefiles" -DCMAKE_VERBOSE_MAKEFILE=ON
|-DCMAKE_INSTALL_LIBDIR=lib/x86_64-linux-gnu -DCMAKE_BUILD_TYPE=
|-DBUILD_SHARED_LIBS=NO -DBUILD_TESTING=YES -DENABLE_SCALAPACK_MPI=YES ..
|-- Setting build type to Release as none was set
|-- Will use the mpi_f08 Fortran module
|CMake Error at
|/usr/lib/cmake/scalapack-2.2.1.openmpi/scalapack-targets.cmake:93
|(message):
| The imported target "scalapack" references the file
|
| "/usr/lib/libscalapack-openmpi.so.2.2.1"
|
| but this file does not exist. Possible reasons include:
|
| * The file was deleted, renamed, or moved to another location.
|
| * An install or uninstall procedure did not complete successfully.
|
| * The installation package was faulty and contained
|
| "/usr/lib/cmake/scalapack-2.2.1.openmpi/scalapack-targets.cmake"
|
| but not all the files it references.
|
|Call Stack (most recent call first):
| /usr/lib/cmake/scalapack-2.2.1.openmpi/scalapack-config.cmake:2
|(include)
| CMakeLists.txt:61 (find_package)
Looking at
/usr/lib/cmake/scalapack-2.2.1.openmpi/scalapack-targets-none.cmake it
does not take multiarch into account:
|# grep PREFIX.*openmpi
/usr/lib/cmake/scalapack-2.2.1.openmpi/scalapack-targets-none.cmake
| IMPORTED_LOCATION_NONE "${_IMPORT_PREFIX}/lib/libscalapack-openmpi.so.2.2.1"
|list(APPEND _cmake_import_check_files_for_scalapack
"${_IMPORT_PREFIX}/lib/libscalapack-openmpi.so.2.2.1" )
If I add (see attached patch), the build goes fine. I have not looked so
far at what it would take to change in the scalapack build system to fix
this.
Michael
-- System Information:
Debian Release: 10.13
APT prefers oldoldstable-updates
APT policy: (500, 'oldoldstable-updates'), (500, 'oldoldstable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 4.19.0-22-amd64 (SMP w/2 CPU cores)
Kernel taint flags: TAINT_UNSIGNED_MODULE
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8),
LANGUAGE=en_US:en (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
--- /usr/lib/cmake/scalapack-2.2.1.openmpi/scalapack-targets-none.cmake 2023-09-15 11:27:13.423032655 +0000
+++ /usr/lib/cmake/scalapack-2.2.1.openmpi/scalapack-targets-none.cmake.new 2023-09-15 11:26:56.347447809 +0000
@@ -8,12 +8,12 @@
# Import target "scalapack" for configuration "None"
set_property(TARGET scalapack APPEND PROPERTY IMPORTED_CONFIGURATIONS NONE)
set_target_properties(scalapack PROPERTIES
- IMPORTED_LOCATION_NONE "${_IMPORT_PREFIX}/lib/libscalapack-openmpi.so.2.2.1"
+ IMPORTED_LOCATION_NONE "${_IMPORT_PREFIX}/lib/${CMAKE_LIBRARY_ARCHITECTURE}/libscalapack-openmpi.so.2.2.1"
IMPORTED_SONAME_NONE "libscalapack-openmpi.so.2.2"
)
list(APPEND _cmake_import_check_targets scalapack )
-list(APPEND _cmake_import_check_files_for_scalapack "${_IMPORT_PREFIX}/lib/libscalapack-openmpi.so.2.2.1" )
+list(APPEND _cmake_import_check_files_for_scalapack "${_IMPORT_PREFIX}/lib/${CMAKE_LIBRARY_ARCHITECTURE}/libscalapack-openmpi.so.2.2.1" )
# Commands beyond this point should not need to know the version.
set(CMAKE_IMPORT_FILE_VERSION)