control: tags -1 patch pending Uploaded and git pushed.
G. On Sun, 3 Sep 2023 14:17:09 +0200 Gianfranco Costamagna <[email protected]> wrote:
Source: mfem
Version: 4.5.2+ds-1.1
Severity: serious
Justification: the directories hardcoded in header file points to unexisting
locations.
Hello, I found some issues on the packaging of mfem, and I would like to see
them fixed
because I don't think the package is good for stable in this way, but feel free
to close
if you think this isn't the case!
First issue:
this is passed in configure:
-DINSTALL_LIB_DIR=lib/x86_64-linux-gnu
instead of DEB_HOST_MULTIARCH, causing a lot of pain a little bit after:
dh_fixperms
chrpath -d debian/libmfem4*/usr/lib/*-*/libmfem.so*
# one day this will also work on non x86_64-linux-gnu
# debian/libmfem-dev/usr/lib/cmake/mfem/*.cmake are with absolute wrong/build
paths
sed -i
"s,/.*/lib/.*/libmfem.so.4.5.2,/usr/lib/x86_64-linux-gnu/libmfem.so.4.5.2,g"
debian/libmfem-dev/usr/lib/cmake/mfem/MFEMTargets-*.cmake
# one day someone will fix the -ffile-prefix-map
sed -i "s,/.*/lib/.*x86_64-linux-gnu,/usr/lib/x86_64-linux-gnu,g"
debian/libmfem-dev/usr/lib/cmake/mfem/MFEMConfig.cmake
(for some reasons the DESTDIR contains the full path of the build, not the
relative one, so this causes a lot of other issues)
Second issue:
cat /usr/include/mfem/config/_config.hpp |grep build
#define MFEM_SOURCE_DIR "/build/reproducible-path/mfem-4.5.2+ds"
MFEM_SOURCE_DIR and MFEM_INSTALL_DIR are used in many places in the code, and
this will fail.
fem/ceed/interface/util.cpp: const char *install_dir = MFEM_INSTALL_DIR
"/include/mfem/fem/ceed";
fem/ceed/interface/util.cpp: MFEM_ABORT("Cannot find libCEED kernels in
MFEM_INSTALL_DIR or "
general/device.cpp: if (occa::io::exists(MFEM_INSTALL_DIR "/include/mfem/"))
general/device.cpp: mfemDir = MFEM_INSTALL_DIR "/include/mfem/";
general/device.cpp: MFEM_ABORT("Cannot find OCCA kernels in MFEM_INSTALL_DIR or
MFEM_SOURCE_DIR");
fem/ceed/interface/util.cpp: const char *source_dir = MFEM_SOURCE_DIR
"/fem/ceed";
fem/ceed/interface/util.cpp: "MFEM_SOURCE_DIR");
general/device.cpp: else if (occa::io::exists(MFEM_SOURCE_DIR))
general/device.cpp: mfemDir = MFEM_SOURCE_DIR;
general/device.cpp: MFEM_ABORT("Cannot find OCCA kernels in MFEM_INSTALL_DIR or
MFEM_SOURCE_DIR");
Third issue: the shipped cmake file looks wrong and broken (this is a good
candidate for autopkgtest :) )
cat ../CMakeLists.txt
cmake_minimum_required(VERSION 3.27)
project(foo)
find_package(MFEM)
cmake ..
-- The C compiler identification is GNU 13.2.0
-- The CXX compiler identification is GNU 13.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
OpenPGP_signature.asc
Description: OpenPGP digital signature

