Package Details: codevis-db-git r259.f8ca242-1

Git Clone URL: https://aur.archlinux.org/codevis-db-git.git (read-only, click to copy)
Package Base: codevis-db-git
Description: an analysis and visualization tool designed to assist in code maintenance for C++ codebases
Upstream URL: https://invent.kde.org/sdk/codevis
Licenses: Apache
Conflicts: codevis-db
Provides: codevis-db
Submitter: silverhikari
Maintainer: silverhikari
Last Packager: silverhikari
Votes: 0
Popularity: 0.000000
First Submitted: 2023-07-16 11:12 (UTC)
Last Updated: 2023-10-22 03:28 (UTC)

Latest Comments

Eidokan commented on 2023-10-21 14:11 (UTC)

Hi again,

I tinkered some more with this and managed to replace the bundled with the AUR packaged versions of both backward-cpp and SOCI. This way this package does not conflict with the soci package any more. It builds, checks and - during a quick test - runs fine for me.

prepare() {
    cd "$srcdir/${pkgname%-db-git}"

#   Make sure we don't use the bundled versions of Soci and backward-cpp
    rm -rf ./thirdparty/soci ./submodules/backward-cpp

#   Find packaged version of backward-cpp instead of including the bundled one
    patch ./desktopapp/CMakeLists.txt <<PATCH
4c4
< include_directories(\${CMAKE_CURRENT_SOURCE_DIR}/../submodules/backward-cpp)
---
> find_package(Backward REQUIRED)
PATCH

#   Find packaged version of SOCI instead of including the bundled one
    patch ./thirdparty/CMakeLists.txt <<PATCH
16c16
< add_subdirectory(soci \${SOCI_BINARY_DIR})
---
> find_package(SOCI REQUIRED)
PATCH

#   Fix names of SOCI libraries to match those of the AUR package
    sed -i -e 's/Soci::core/soci_core/' ./lvt{ldr,mdb}/CMakeLists.txt
    sed -i -e 's/Soci::sqlite3/soci_sqlite3/' ./lvt{ldr,mdb}/CMakeLists.txt
}

Obviously this adds dependencies to soci and backward-cpp, the later of which you already added. As backward-cpp is header-only, it can be in makedepends.
There also should be no need for a direct sqlite dependency anymore, as it is soci linking to it.
The other git repositories can be removed from source and checksums with or without that change, as they are not used anymore.

Thank you, again, for the package

Eidokan commented on 2023-10-18 17:28 (UTC)

Hi,

I was working on the dependency issues as well and noticed a couple more things.

  • Most notably upstream does not use git submodules any more. They still have a .gitmodules file and a submodules directory for some reason, but all necessary files are checked in directly, so the other repositories and the submodule setup in prepare can simply be dropped from this package. configuration-parser was completely replaced by kconfig5 and is gone for good.
  • bash, gcc-libs and glibc should probably not be a dependency as they are covered by base. I could have sworn there was a rule about that somewhere but I can't find it at the moment.
  • catch2 is a header-only unit test framework only needed to build the tests, so it should be in makedepends.
  • boost-libs is not needed as a dependency according to namcap.
  • the new dependencies feature a small typo: ktexteditor should be ktexteditor5.
  • Running the test suite also unveiled a dependency not currently listed, python-jinja-time. Without it I received a python related crash due to a module not being found. As the source of the test does not contain the string jinja, I assume that this is a dependency of codevis itself and not the test.

In addition to the dependency changes I came up with a check function that should work in containers and on headless systems. All tests are passing for me in a container with the changes from above.

check() {
        QT_QPA_PLATFORM='offscreen' ctest --test-dir build
}

The major remaining issue is that codevis ships a global soci installation that will likely conflict with others like the soci AUR package.

Thanks for making and maintaining this package!

hikmet1517 commented on 2023-10-14 19:14 (UTC)

kdoctools5 should be a build dependency.