Package Details: vcmi 1.5.3-1

Git Clone URL: https://aur.archlinux.org/vcmi.git (read-only, click to copy)
Package Base: vcmi
Description: Open-source engine for Heroes of Might and Magic III
Upstream URL: http://vcmi.eu
Keywords: homm homm3 vcmi
Licenses: GPL-2.0-or-later AND CC-BY-SA-4.0
Conflicts: vcmi
Provides: vcmi
Submitter: Raziel23
Maintainer: Gigas002
Last Packager: Gigas002
Votes: 48
Popularity: 1.86
First Submitted: 2013-03-12 14:11 (UTC)
Last Updated: 2024-06-23 14:21 (UTC)

Pinned Comments

Gigas002 commented on 2024-05-29 15:08 (UTC)

PKGBUILD tweaks

If you want to build with clang, add this part to cmake flags:

    -DCMAKE_CXX_COMPILER='clang++' \
    -DCMAKE_C_COMPILER='clang' \

If you want to use bundled fuzzylite:

    -DFORCE_BUNDLED_FL=ON \

If you want to use innoextract (system-wide installation won't work since vcmi has a temporary? fork of innoextract for now):

    -DENABLE_INNOEXTRACT=ON \

Gigas002 commented on 2024-05-13 03:20 (UTC) (edited on 2024-05-13 13:04 (UTC) by Gigas002)

I think I was able to reproduce the issue in a clean docker container after some experiments. It seems to be caused by qt6 compilation for some reason

qt5-tools builds translation files into ${srcdir}/${pkgname}-${pkgver}/build/launcher/translation/*.qm

But qt6-tools builds translation files into ${srcdir}/${pkgname}-${pkgver}/build/launcher/*.qm which causes make install to fail

I don't know what enforces qt6 build on your machine, but I'm pretty sure it is the reason

I'll report this issue upstream

UPD

You can track this issue up here: https://github.com/vcmi/vcmi/issues/3522. It's said to be merged around the end of may. I think I'll change the dependencies to qt6 with the next release.

Latest Comments

1 2 3 4 5 6 7 Next › Last »

Gigas002 commented on 2024-06-23 14:10 (UTC)

So, about the qt6 compilation... The upstream fix have been merged, however, since it was merged to a wrong branch it's not in a recent release. Hoping to see it in a next one. For now, I think I found out a dirty hack to force compile with qt5, have to live with it.

Gigas002 commented on 2024-05-30 15:40 (UTC)

@michaldybczak The fix is not yet merged upstream, unfortunately. You can track the progress on this issue using the link in pinned post. It's scheduled to be merged somewhere before 1.6.0 release, but no exact schedule

michaldybczak commented on 2024-05-30 15:35 (UTC)

Still can't compile the package in the latest version. The same issue with "translation/chinese.qm" path.

Gigas002 commented on 2024-05-29 15:08 (UTC)

PKGBUILD tweaks

If you want to build with clang, add this part to cmake flags:

    -DCMAKE_CXX_COMPILER='clang++' \
    -DCMAKE_C_COMPILER='clang' \

If you want to use bundled fuzzylite:

    -DFORCE_BUNDLED_FL=ON \

If you want to use innoextract (system-wide installation won't work since vcmi has a temporary? fork of innoextract for now):

    -DENABLE_INNOEXTRACT=ON \

Gigas002 commented on 2024-05-13 03:20 (UTC) (edited on 2024-05-13 13:04 (UTC) by Gigas002)

I think I was able to reproduce the issue in a clean docker container after some experiments. It seems to be caused by qt6 compilation for some reason

qt5-tools builds translation files into ${srcdir}/${pkgname}-${pkgver}/build/launcher/translation/*.qm

But qt6-tools builds translation files into ${srcdir}/${pkgname}-${pkgver}/build/launcher/*.qm which causes make install to fail

I don't know what enforces qt6 build on your machine, but I'm pretty sure it is the reason

I'll report this issue upstream

UPD

You can track this issue up here: https://github.com/vcmi/vcmi/issues/3522. It's said to be merged around the end of may. I think I'll change the dependencies to qt6 with the next release.

Gigas002 commented on 2024-05-12 15:01 (UTC)

Thank you for your reports. I'll try to locate these problems tomorrow in a clean docker container

FreePenguin commented on 2024-05-12 14:36 (UTC)

Have the same issue with chinese.qm

FabioLolix commented on 2024-05-12 11:09 (UTC)

Hello, building with devtools works fine but you either need a local repo for fuzzylte or to pass it by command line


About this pkgbuild

  • please rename source with ${pkgname}-${pkgver}.tar.gz::
Checking PKGBUILD
PKGBUILD (vcmi) W: Non-unique source name (1.5.0.tar.gz). Use a unique filename.
  • change license to SPDX, see licenses package
vcmi E: GPL2 is not a valid SPDX license identifier.
VCMI Project source code is licensed under GPL version 2 or later. VCMI Project assets are licensed under CC-BY-SA 4.0. Assets sources and information about contributors are available under following link: https://github.com/vcmi/vcmi-assets
  • remove not needed stuff from .install, this is already done by pacman hooks by default
vcmi W: .INSTALL file runs a command (update-desktop-database) provided by hooks.
vcmi W: .INSTALL file runs a command (gtk-update-icon-cache) provided by hooks.
vcmi W: unneeded dependency on a package (desktop-file-utils) run when needed by hooks.
  update-desktop-database -q
  gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
vcmi W: Dependency included, but may not be needed ('desktop-file-utils')
vcmi W: Dependency included, but may not be needed ('gtk-update-icon-cache')
  • qt5-tools is typically only needed at build time for translations
vcmi W: Dependency included, but may not be needed ('qt5-tools')

There is difference when building with devtools respect to dirty builds

devtools

-- Found PkgConfig: /usr/bin/pkg-config (found version "2.1.1")
-- Checking for module 'minizip'
--   Package 'minizip', required by 'virtual:world', not found
-- Could NOT find minizip (missing: minizip_LIBRARY minizip_INCLUDE_DIR) 
[...]
[  0%] Building C object lib/minizip/CMakeFiles/minizip.dir/unzip.c.o
-- -- -- Start of Git information
-- GIT_SHA1: GITDIR-NOTFOUND
-- -- -- End of Git information
==> Starting package()...
-- -- -- Start of Git information
-- GIT_SHA1: GITDIR-NOTFOUND
-- -- -- End of Git information

makepkg

-- Found PkgConfig: /usr/bin/pkg-config (found version "2.1.1")
-- Checking for module 'minizip'
--   Found minizip, version 1.3.1
-- Found minizip: /usr/lib/libminizip.so
[...]
-- -- -- Start of Git information
-- GIT_SHA1: 2d8004396c9214abbeae1312d330e416ba60da97
-- -- -- End of Git information
==> Starting package()...
-- -- -- Start of Git information
-- GIT_SHA1: 2d8004396c9214abbeae1312d330e416ba60da97
-- -- -- End of Git information

Crandel commented on 2024-05-12 10:42 (UTC)

@Gigas002 exactly the same issue with translation files using only makepkg. With clang as cxx compiler the same error happens. There are no translation dir in src/build/launcher directory.

Gigas002 commented on 2024-05-12 10:09 (UTC)

@A_Bart, @michaldybczak Can't reproduce your issue. Can you please try to build the package without helpers?

git clone https://aur.archlinux.org/vcmi.git
cd vcmi
makepkg

@Crandel Adding clang should not replace the ccache. Here's how build func would look in this case:

build() {
  cd "${srcdir}/${pkgname}-${pkgver}"
  mkdir -p build && cd build
  cmake -B. -H.. \
    -DCMAKE_INSTALL_PREFIX='/usr' \
    -DCMAKE_INSTALL_RPATH='/usr/lib/vcmi' \
    -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=TRUE \
    -DCMAKE_SKIP_RPATH='FALSE' \
    -DENABLE_TEST=OFF \
    -DFORCE_BUNDLED_FL=OFF \
    -DCMAKE_BUILD_TYPE='Release' \
    -DCMAKE_CXX_COMPILER_LAUNCHER='ccache' \
    -DCMAKE_C_COMPILER_LAUNCHER='ccache' \
    -DENABLE_INNOEXTRACT='FALSE' \
    -DCMAKE_CXX_COMPILER='clang++' \
    -DCMAKE_C_COMPILER='clang' \
    -Wno-dev
  make
}

Anyway, could you also try to build the package the above way? I just want to make sure it doesn't have something with cache or it's not paru-specific problem.