Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 933479

Summary: dev-util/vulkan-utility-libraries-1.3.280.0[test] configure fail : tests/CMakeLists.txt:8 : cannot find magic_enumConfig.cmake
Product: Gentoo Linux Reporter: Arniii <lg3dx6fd>
Component: Current packagesAssignee: Vulkan Gentoo Project <vulkan>
Status: CONFIRMED ---    
Severity: normal CC: lg3dx6fd, sam, sarnex
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
See Also: https://github.com/Neargye/magic_enum/pull/374
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: /etc/portage/make.conf // profile default/linux/amd64/17.1/desktop/plasma gcc-13 O3 pipe march=native(verbose) lto graphite ggdb3 testing FEATUREs : testing

Description Arniii 2024-06-03 15:50:32 UTC
I've tried `emerge -avtq1 magic_enum` , but it didn't help.

build.log: 
 * Package:    dev-util/vulkan-utility-libraries-1.3.280.0:0
 * Repository: gentoo
 * Maintainer: x11@gentoo.org sarnex@gentoo.org
 * USE:        abi_x86_32 abi_x86_64 amd64 elibc_glibc kernel_linux test
 * FEATURES:   installsources network-sandbox nostrip preserve-libs sandbox test userpriv usersandbox
 * Checking whether python3_12 is suitable ...
 *   dev-lang/python:3.12[xml(+)] ...                                                                                                                                                                                                                    [ ok ]
 * Using python3.12 to build (via PYTHON_COMPAT iteration)
>>> Unpacking source...
>>> Unpacking vulkan-utility-libraries-1.3.280.0.tar.gz to /var/tmp/portage/dev-util/vulkan-utility-libraries-1.3.280.0/work
>>> Source unpacked in /var/tmp/portage/dev-util/vulkan-utility-libraries-1.3.280.0/work
>>> Preparing source in /var/tmp/portage/dev-util/vulkan-utility-libraries-1.3.280.0/work/Vulkan-Utility-Libraries-vulkan-sdk-1.3.280.0 ...
 * Source directory (CMAKE_USE_DIR): "/var/tmp/portage/dev-util/vulkan-utility-libraries-1.3.280.0/work/Vulkan-Utility-Libraries-vulkan-sdk-1.3.280.0"
 * Build directory  (BUILD_DIR):     "/var/tmp/portage/dev-util/vulkan-utility-libraries-1.3.280.0/work/Vulkan-Utility-Libraries-vulkan-sdk-1.3.280.0_build"
>>> Source prepared.
>>> Configuring source in /var/tmp/portage/dev-util/vulkan-utility-libraries-1.3.280.0/work/Vulkan-Utility-Libraries-vulkan-sdk-1.3.280.0 ...
 * abi_x86_32.x86: running multilib-minimal_abi_src_configure
 * Source directory (CMAKE_USE_DIR): "/var/tmp/portage/dev-util/vulkan-utility-libraries-1.3.280.0/work/Vulkan-Utility-Libraries-vulkan-sdk-1.3.280.0"
 * Build directory  (BUILD_DIR):     "/var/tmp/portage/dev-util/vulkan-utility-libraries-1.3.280.0/work/Vulkan-Utility-Libraries-vulkan-sdk-1.3.280.0_build-abi_x86_32.x86"
cmake -C /var/tmp/portage/dev-util/vulkan-utility-libraries-1.3.280.0/work/Vulkan-Utility-Libraries-vulkan-sdk-1.3.280.0_build-abi_x86_32.x86/gentoo_common_config.cmake -G Ninja -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_TESTS=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_TOOLCHAIN_FILE=/var/tmp/portage/dev-util/vulkan-utility-libraries-1.3.280.0/work/Vulkan-Utility-Libraries-vulkan-sdk-1.3.280.0_build-abi_x86_32.x86/gentoo_toolchain.cmake /var/tmp/portage/dev-util/vulkan-utility-libraries-1.3.280.0/work/Vulkan-Utility-Libraries-vulkan-sdk-1.3.280.0
loading initial cache file /var/tmp/portage/dev-util/vulkan-utility-libraries-1.3.280.0/work/Vulkan-Utility-Libraries-vulkan-sdk-1.3.280.0_build-abi_x86_32.x86/gentoo_common_config.cmake
-- The CXX compiler identification is GNU 13.2.1
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/x86_64-pc-linux-gnu-g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
CMake Error at tests/CMakeLists.txt:8 (find_package):
  Could not find a package configuration file provided by "magic_enum" with
  any of the following names:

    magic_enumConfig.cmake
    magic_enum-config.cmake

  Add the installation prefix of "magic_enum" to CMAKE_PREFIX_PATH or set
  "magic_enum_DIR" to a directory containing one of the above files.  If
  "magic_enum" provides a separate development package or SDK, be sure it has
  been installed.


-- Configuring incomplete, errors occurred!
 * ERROR: dev-util/vulkan-utility-libraries-1.3.280.0::gentoo failed (configure phase):
 *   cmake failed
 *
 * Call stack:
 *     ebuild.sh, line  136:  Called src_configure
 *   environment, line 3486:  Called cmake-multilib_src_configure
 *   environment, line 1251:  Called multilib-minimal_src_configure
 *   environment, line 2439:  Called multilib_foreach_abi 'multilib-minimal_abi_src_configure'
 *   environment, line 2689:  Called multibuild_foreach_variant '_multilib_multibuild_wrapper' 'multilib-minimal_abi_src_configure'
 *   environment, line 2394:  Called _multibuild_run '_multilib_multibuild_wrapper' 'multilib-minimal_abi_src_configure'
 *   environment, line 2392:  Called _multilib_multibuild_wrapper 'multilib-minimal_abi_src_configure'
 *   environment, line  578:  Called multilib-minimal_abi_src_configure
 *   environment, line 2433:  Called multilib_src_configure
 *   environment, line 2914:  Called cmake_src_configure
 *   environment, line 1521:  Called die
 * The specific snippet of code:
 *       "${CMAKE_BINARY}" "${cmakeargs[@]}" "${CMAKE_USE_DIR}" || die "cmake failed";
 *
 * If you need support, post the output of `emerge --info '=dev-util/vulkan-utility-libraries-1.3.280.0::gentoo'`,
 * the complete build log and the output of `emerge -pqv '=dev-util/vulkan-utility-libraries-1.3.280.0::gentoo'`.
 * The complete build log is located at '/var/tmp/portage/dev-util/vulkan-utility-libraries-1.3.280.0/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/dev-util/vulkan-utility-libraries-1.3.280.0/temp/environment'.
 * Working directory: '/var/tmp/portage/dev-util/vulkan-utility-libraries-1.3.280.0/work/Vulkan-Utility-Libraries-vulkan-sdk-1.3.280.0_build-abi_x86_32.x86'
 * S: '/var/tmp/portage/dev-util/vulkan-utility-libraries-1.3.280.0/work/Vulkan-Utility-Libraries-vulkan-sdk-1.3.280.0'
Comment 1 Arniii 2024-06-03 15:53:12 UTC
installed dev-cpp/magic_enum-0.9.5::gentoo[test]
Comment 2 Arniii 2024-06-03 15:54:54 UTC
  │  ~  equery f magic_enum                                                                                                                                                                                           ✔ │  12s │ root@localhost │ 15:52:27
 * Searching for magic_enum ...
 * Contents of dev-cpp/magic_enum-0.9.5:
/usr
/usr/include
/usr/include/magic_enum.hpp
/usr/include/magic_enum_all.hpp
/usr/include/magic_enum_containers.hpp
/usr/include/magic_enum_flags.hpp
/usr/include/magic_enum_format.hpp
/usr/include/magic_enum_fuse.hpp
/usr/include/magic_enum_iostream.hpp
/usr/include/magic_enum_switch.hpp
/usr/include/magic_enum_utility.hpp
/usr/lib64
/usr/lib64/cmake
/usr/lib64/cmake/magic_enum
/usr/lib64/cmake/magic_enum/magic_enumConfig.cmake
/usr/lib64/cmake/magic_enum/magic_enumConfigVersion.cmake
/usr/lib64/pkgconfig
/usr/lib64/pkgconfig/magic_enum.pc
/usr/share
/usr/share/doc
/usr/share/doc/magic_enum-0.9.5
/usr/share/doc/magic_enum-0.9.5/README.md.bz2
/usr/share/magic_enum
/usr/share/magic_enum/package.xml
Comment 3 Arniii 2024-06-03 15:58:25 UTC
Created attachment 894995 [details]
/etc/portage/make.conf // profile default/linux/amd64/17.1/desktop/plasma gcc-13 O3 pipe march=native(verbose) lto graphite ggdb3 testing FEATUREs : testing
Comment 4 Nick Sarnie gentoo-dev 2024-06-05 02:47:50 UTC
I was able to reproduce this with FEATURES=test USE="test abi_x86_32" and installing the ABI32 of gtest. 

@Sam, It looks like magic_enum is header only, but it's installing cmake files to the ABI dependent cmake dir (lib64) and that is causing the cmake on abi32 to fail.

Should it be installing the cmake files in an ABI independent directory?

I tried modifying the magic_enum ebuild to set CMAKE_INSTALL_LIBDIR to install to /usr/share and that fixed it.
Comment 5 Arniii 2024-08-14 18:40:29 UTC
https://github.com/Neargye/magic_enum/blob/dae6bbf16c363e9ead4e628a47fdb02956a634f3/CMakeLists.txt#L60C4-L60C111
```
 string(REPLACE "/${CMAKE_LIBRARY_ARCHITECTURE}" "" CMAKE_INSTALL_LIBDIR_ARCHIND "${CMAKE_INSTALL_LIBDIR}")
```

https://github.com/Neargye/magic_enum/blob/dae6bbf16c363e9ead4e628a47fdb02956a634f3/CMakeLists.txt#L102
```
    install(EXPORT "${PROJECT_NAME}"
        FILE "${CMAKE_CONFIG_FILE_BASENAME}"
        NAMESPACE "${EXPORT_NAMESPACE}"
        DESTINATION "${CMAKE_INSTALL_LIBDIR_ARCHIND}/cmake/${PROJECT_NAME}"
    )
```

I guess magic_enum is ABI-independent, but idk how to check it
Comment 6 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2024-08-14 18:41:17 UTC
Sorry, I'd missed this. Looking.
Comment 7 Arniii 2024-08-14 18:45:12 UTC
(In reply to Arniii from comment #5)
> https://github.com/Neargye/magic_enum/blob/
> dae6bbf16c363e9ead4e628a47fdb02956a634f3/CMakeLists.txt#L60C4-L60C111
> ```
>  string(REPLACE "/${CMAKE_LIBRARY_ARCHITECTURE}" ""
> CMAKE_INSTALL_LIBDIR_ARCHIND "${CMAKE_INSTALL_LIBDIR}")
> ```
> 
> https://github.com/Neargye/magic_enum/blob/
> dae6bbf16c363e9ead4e628a47fdb02956a634f3/CMakeLists.txt#L102
> ```
>     install(EXPORT "${PROJECT_NAME}"
>         FILE "${CMAKE_CONFIG_FILE_BASENAME}"
>         NAMESPACE "${EXPORT_NAMESPACE}"
>         DESTINATION "${CMAKE_INSTALL_LIBDIR_ARCHIND}/cmake/${PROJECT_NAME}"
>     )
> ```
> 
> I guess magic_enum is ABI-independent, but idk how to check it

 https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html
    If it's ABI-independent, a simple patch to replace the destination to `"${CMAKE_INSTALL_DATAROOTDIR}/cmake/${PROJECT_NAME}"` would be enough I guess.


    In another case, I guess we need to change magic_enum to another multilib package...
Comment 8 Matt Turner gentoo-dev 2024-08-15 03:46:13 UTC
> I guess magic_enum is ABI-independent, but idk how to check it

It installs only header files, so it should be ABI independent. But, it installs its pkgconfig and cmake files into /usr/lib64 so that probably breaks ABI-independence.
Comment 9 Arniii 2024-08-15 05:26:23 UTC
(In reply to Matt Turner from comment #8)
> > I guess magic_enum is ABI-independent, but idk how to check it
> 
> It installs only header files, so it should be ABI independent. But, it
> installs its pkgconfig and cmake files into /usr/lib64 so that probably
> breaks ABI-independence.

I guess you are right. Then, I'll go try solve it upstream.
Comment 10 Matt Turner gentoo-dev 2024-08-15 15:43:42 UTC
Thanks a bunch!