Package Details: vcmi 0.99-1

Git Clone URL: https://aur.archlinux.org/vcmi.git (read-only)
Package Base: vcmi
Description: Open-source engine for Heroes of Might and Magic III
Upstream URL: http://vcmi.eu
Keywords: homm3
Licenses: GPL2
Submitter: Raziel23
Maintainer: bwrsandman
Last Packager: bwrsandman
Votes: 27
Popularity: 3.133731
First Submitted: 2013-03-12 14:11
Last Updated: 2016-11-01 23:44

Latest Comments

argarak commented on 2016-10-23 22:51

@gonciarz I've documented the problem on your VCMI issues page (http://bugs.vcmi.eu/view.php?id=2511) so see the most recent note for more details.

And @bwrsandman, please remove the `minizip` dependency (also in vcmi-git), as currently, one has to remove it to get any mods to install.

gonciarz commented on 2016-10-04 22:18

I retested the newest vcmi package. I'm able to compile it but when I try to install WOG from vcmilauncher I got Segmentation fault:

vcmilauncher
Failed to open file /home/ruppertus/.config/vcmi/modSettings.json
File <unknown> is not a valid JSON file!
At line 21, position 2 warning: Comma expected!
At line 36, position 1 warning: Comma expected!

File <unknown> is not a valid JSON file!
At line 21, position 2 warning: Comma expected!
At line 36, position 1 warning: Comma expected!

Segmentation fault (core dumped)

gonciarz commented on 2016-10-03 22:32

I'm sorry for a mess. I've checked vcmi-git package. I'll retest it against vcmi soon.

bwrsandman commented on 2016-10-03 15:23

There seems to be a bug in builder, it doesn't exist in the vcmi-git package.

When I have the time, I will try and find the patch which fixes it.

For the meantime, you can try installing the vcmi-git package, running vcmibuilder, then installing the vcmi package.

gonciarz commented on 2016-10-03 15:19

Thanks, anyway I'm not able to install anything from vcmilauncher. Example scenario:
1. rm -rf ~/.local/share/vcmi ~/.cache/vcmi ~/.config/vcmi ~/.local/share/vcmi/Saves
2. vcmibuilder --data ~/heroes3_complete_installation
3. vcmilauncher
4. From Launcher, install WOG
causes crash.
If you are able to recreate it on your arch, then please add the proper comment in http://bugs.vcmi.eu/view.php?id=2511 otherwise please let me know if I'm doing something wrong.

bwrsandman commented on 2016-09-24 14:39

Fixed the compile issues.

Your issue was an ambiguity with boost and std's make_shared()
There also was an issue with ffmpeg.

gonciarz commented on 2016-09-24 11:03

Does not compile:
[ 30%] Building CXX object lib/CMakeFiles/vcmi.dir/Connection.cpp.o
/home/ruppertus/work/src/archlinux/vcmi/src/vcmi-0.98/lib/Connection.cpp: In member function ‘CTypeList::TypeInfoPtr CTypeList::registerType(const std::type_info*)’:
/home/ruppertus/work/src/archlinux/vcmi/src/vcmi-0.98/lib/Connection.cpp:443:45: error: call of overloaded ‘make_shared()’ is ambiguous
auto newType = make_shared<TypeDescriptor>();
^
In file included from /usr/include/c++/6.2.1/memory:82:0,
from /home/ruppertus/work/src/archlinux/vcmi/src/vcmi-0.98/lib/../Global.h:114,
from /home/ruppertus/work/src/archlinux/vcmi/src/vcmi-0.98/lib/StdInc.h:3,
from /home/ruppertus/work/src/archlinux/vcmi/src/vcmi-0.98/lib/cotire/vcmi_CXX_prefix.cxx:4,
from /home/ruppertus/work/src/archlinux/vcmi/src/vcmi-0.98/lib/cotire/vcmi_CXX_prefix.hxx:4:
/usr/include/c++/6.2.1/bits/shared_ptr.h:632:5: note: candidate: std::shared_ptr<_Tp1> std::make_shared(_Args&& ...) [with _Tp = CTypeList::TypeDescriptor; _Args = {}]
make_shared(_Args&&... __args)
^~~~~~~~~~~
In file included from /usr/include/boost/smart_ptr/make_shared.hpp:15:0,
from /usr/include/boost/thread/future.hpp:61,
from /usr/include/boost/thread.hpp:24,
from /home/ruppertus/work/src/archlinux/vcmi/src/vcmi-0.98/lib/../Global.h:157,
from /home/ruppertus/work/src/archlinux/vcmi/src/vcmi-0.98/lib/StdInc.h:3,
from /home/ruppertus/work/src/archlinux/vcmi/src/vcmi-0.98/lib/cotire/vcmi_CXX_prefix.cxx:4,
from /home/ruppertus/work/src/archlinux/vcmi/src/vcmi-0.98/lib/cotire/vcmi_CXX_prefix.hxx:4:
/usr/include/boost/smart_ptr/make_shared_object.hpp:246:87: note: candidate: typename boost::detail::sp_if_not_array<T>::type boost::make_shared(Args&& ...) [with T = CTypeList::TypeDescriptor; Args = {}; typename boost::detail::sp_if_not_array<T>::type = boost::shared_ptr<CTypeList::TypeDescriptor>]
template< class T, class... Args > typename boost::detail::sp_if_not_array< T >::type make_shared( Args && ... args )
^~~~~~~~~~~
make[2]: *** [lib/CMakeFiles/vcmi.dir/build.make:2102: lib/CMakeFiles/vcmi.dir/Connection.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:190: lib/CMakeFiles/vcmi.dir/all] Error 2
make: *** [Makefile:150: all] Error 2
==> ERROR: A failure occurred in build().
Aborting...

KozRoss commented on 2016-01-10 00:36

Does not build for me:

[ 61%] Building CXX object lib/CMakeFiles/vcmi.dir/NetPacksLib.cpp.o
/tmp/yaourt-tmp-koz/aur-vcmi/src/vcmi-0.98/lib/Connection.cpp: In member function ‘CTypeList::TypeInfoPtr CTypeList::registerType(const std::type_info*)’:
/tmp/yaourt-tmp-koz/aur-vcmi/src/vcmi-0.98/lib/Connection.cpp:443:45: error: call of overloaded ‘make_shared()’ is ambiguous
auto newType = make_shared<TypeDescriptor>();
^

Raziel23 commented on 2015-06-10 13:57

@oppsig: You are not using current 0.98-2 tarball which include a compile fix for this (precisely
speaking 0001-Fix-building-with-Boost-1.58.patch file), but you are using the old 0.98-1 tarball.
I suspect that this is an AUR wrapper (yaourt) fault which you are using. It simply use the
tarball from the old AUR (aur.archlinux.org), not from new one (aur4.archlinux.org). You can
manually download the new tarball and manually build the package by using makepkg.

oppsig commented on 2015-06-10 07:45

0.98-2 Does not build for me.

[ 20%] Building CXX object lib/CMakeFiles/vcmi.dir/CArtHandler.cpp.o
/tmp/yaourt-tmp-judas/aur-vcmi/src/vcmi-0.98/lib/CArtHandler.cpp: In member function ‘boost::optional<std::vector<CArtifact*>&> CArtHandler::listFromClass(CArtifact::EartClass)’:
/tmp/yaourt-tmp-judas/aur-vcmi/src/vcmi-0.98/lib/CArtHandler.cpp:674:10: error: could not convert ‘nullptr’ from ‘std::nullptr_t’ to ‘boost::optional<std::vector<CArtifact*>&>’
return nullptr;
^
In file included from /tmp/yaourt-tmp-judas/aur-vcmi/src/vcmi-0.98/lib/spells/CSpellHandler.h:15:0,
from /tmp/yaourt-tmp-judas/aur-vcmi/src/vcmi-0.98/lib/CArtHandler.cpp:18:
/tmp/yaourt-tmp-judas/aur-vcmi/src/vcmi-0.98/lib/spells/../int3.h: At global scope:
/tmp/yaourt-tmp-judas/aur-vcmi/src/vcmi-0.98/lib/spells/../int3.h:157:19: warning: ‘dirs’ defined but not used [-Wunused-variable]
static const int3 dirs[] = { int3(0,1,0),int3(0,-1,0),int3(-1,0,0),int3(+1,0,0),
^
lib/CMakeFiles/vcmi.dir/build.make:1343: recipe for target 'lib/CMakeFiles/vcmi.dir/CArtHandler.cpp.o' failed
make[2]: *** [lib/CMakeFiles/vcmi.dir/CArtHandler.cpp.o] Error 1
CMakeFiles/Makefile2:145: recipe for target 'lib/CMakeFiles/vcmi.dir/all' failed
make[1]: *** [lib/CMakeFiles/vcmi.dir/all] Error 2
Makefile:136: recipe for target 'all' failed
make: *** [all] Error 2
==> ERROR: A failure occurred in build().
Aborting...
==> ERROR: Makepkg was unable to build vcmi.
==> Restart building vcmi ? [y/N]
==> -----------------------------
==>

Raziel23 commented on 2015-04-01 13:50

[Bump to version 0.98-1]. New upstream release. The changelog is as follows:
http://forum.vcmi.eu/viewtopic.php?p=14153#14153

Also the PKGBUILD was cleaned up.

Raziel23 commented on 2014-11-02 10:47

[Bump to version 0.97-1]. New upstream release. The changelog is as follows:
http://forum.vcmi.eu/viewtopic.php?p=13381#13381

I switched from SDL 1 to SDL 2, added minizip dependency and updated the installation instructions.

Raziel23 commented on 2014-10-11 06:17

@salviati: Why you flag this package out of date? There isn't newer stable version of vcmi than 0.96.
Version 0.96b is a development version (not stable one). If you want use it please use vcmi-git package.

Raziel23 commented on 2014-08-24 14:22

[Update without bump the pkgver]. Set MAKEFLAGS="-j1" in the PKGBUILD in order to avoid running out of
memory during compilation, because some people have problems with exceeding their memory during compilation
with more than one job. Better safe than sorry. This change doesn't affect the package (only compilation)
so I didn't bump the pkgver to avoid recompilation for other people.

Raziel23 commented on 2014-08-24 14:03

[Update without bump the pkgver]. Set MAKEFLAGS="-j1" in the PKGBUILD in order to avoid running out of
memory during compilation, because some people have problems with exceeding their memory during compilation
with more than one job. Better safe than sorry. This change don't affect the package (only compilation)
so I didn't bump the pkgver to avoid recompilation for other people.

Raziel23 commented on 2014-08-24 13:51

@bladedglove: Good catch. Thank you for the tip. With my 2 cores (2 threads) memory usage doesn't exceed
my 8 GB. I think that instead of changing /etc/makepkg.conf I will set the variable MAKEFLAGS="-j1" in
the PKGBUILD to avoid such situations. The compilation time will take longer (for me with -j1 it takes
about 40 minutes), but at least more people will be able build the vcmi successfully.

Raziel23 commented on 2014-08-24 13:51

bladedglove: Good catch. Thank you for the tip. With my 2 cores (2 threads) memory usage doesn't exceed
my 8 GB. I think that instead of changing /etc/makepkg.conf I will set the variable MAKEFLAGS="-j1" in
the PKGBUILD to avoid such situations. The compilation time will take longer (for me with -j1 it takes
about 40 minutes), but at least more people will be able build the vcmi successfully.

bladedglove commented on 2014-08-24 08:15

To avoid running out of memory and freezing your system on multicore computers, set a lower value for MAKEFLAGS="-jX" in /etc/makepkg.conf before running makepkg -s. Compiling with "-j4" (forcing the compiler to use all 4 cores of my i5 CPU) resulted in running out of memory (8GB) and failing at 56%, but the "-j1" value forced the compiler to use only 1 core and the top memory usage was at around ~3-4GB. Of course, using a huge swap partition/file is also a solution, but that's another story.

Raziel23 commented on 2014-08-02 12:56

@KlavKalashj: I've experienced freezing the system during compilation vcmi version 0.95.
Even with the frozen system I was able successfully compile vcmi 0.95. For me with vcmi version
0.96 and with vcmi-git this issue not exist. I can only speak for myself, because the problem
doesn't exist for me. I presume that this issue may that exist during compilation registerTypes.
This part of compilation takes most memory and time compilation. I'm not vcmi developer, I'm
only the package maintainer and I don't know how solve this problem. You can write about this
issue in the vcmi forum. Here it is the related topic about this problem:
http://forum.vcmi.eu/viewtopic.php?p=11612

Raziel23 commented on 2014-08-02 12:51

@KlavKalashj: I've experienced freezing the system during compilation vcmi version 0.95.
Even with the frozen system I was able successfully compile vcmi 0.95. For me in vcmi version
0.96 and with vcmi-git this issue not exist. I can only speak for myself, because the problem
doesn't exist for me. I presume that this issue may that exist during compilation registerTypes.
This part of compilation takes most memory and time compilation. I'm not vcmi developer, I'm
only the package maintainer and I don't know how solve this problem. You can write about this
issue in the vcmi forum. Here it is the related topic about this problem:
http://forum.vcmi.eu/viewtopic.php?p=11612

Raziel23 commented on 2014-08-02 12:49

@KlavKalashj: I've experienced freezing the system during compilation vcmi version 0.95.
Even with the frozen system I was able successfully compile vcmi 0.95. For me in vcmi version
0.96 and with vcmi-git this issue not exist. I can only speak for myself, because the problem
doesn't exist for me. I presume that this issue that exist during compilation registerTypes.
This part of compilation takes most memory and time compilation. I'm not vcmi developer, I'm
only the package maintainer and I don't know how solve this problem. You can write about this
issue in the vcmi forum. Here it is the related topic about this problem:
http://forum.vcmi.eu/viewtopic.php?p=11612

KlavKalashj commented on 2014-07-27 14:42

@Raziel23: I am also experiencing freezes when compiling, and I also have 8gb ram. Are you saying that your compilation is finishing even though your computer is frozen? Also, I get this with both this package and vcmi-git.

Raziel23 commented on 2014-07-02 07:44

[Bump to version 0.96-1]. New upstream release. The changelog is as follows:
http://forum.vcmi.eu/viewtopic.php?p=12595#12595

I have added libxkbcommon-x11 dependency in order to run properly the vcmilauncher.

Starting from version 0.96 vcmi supports XDG filesystem specifications.

This transition mean that all user data has been moved according to specs:
- Game data (H3 files and mods) and saves: from ~/.vcmi to ~/.local/share/vcmi
- Temporary files, including logs: from ~/.vcmi to ~/.cache/vcmi
- Config files: from ~/.vcmi/config to ~/.config/vcmi

This transition affect users who have already installed previous version of vcmi than 0.96.
New users who have not previously installed vcmi are not affected by this transition because those
directories will be created automatically during data preparation by vcmibuilder script.

Users who have already installed previous version of vcmi have to:
- move game data to ~/.local/share/vcmi with command:
mkdir ~/.local/share/vcmi && mv ~/.vcmi/{Data,Games,Maps,Mp3,Mods,Saves} ~/.local/share/vcmi/
- move temporary files to ~/.cache/vcmi with command:
mkdir ~/.cache/vcmi && mv ~/.vcmi/{*log.txt,downloads} ~/.cache/vcmi/
- remove remaining config files because they are not compatible in vcmi version 0.96 with command:
rm -rf ~/.vcmi

Here is the appropriate announcement about this:
http://forum.vcmi.eu/viewtopic.php?p=11696#11696

Raziel23 commented on 2014-06-16 19:58

@Tjuh: I have to admit that I've also experienced this situation, even with my 8 GB of memory.
I can successfully compile the vcmi but like you said its freezing the system during compilation.
I can't do anything with this. This issue not occur with the vcmi-git package so you should use it.
In the future in the vcmi version 0.96 this issue should not exist.

Raziel23 commented on 2014-06-16 19:39

@Tjuh: I have to admit that I've also experienced this situation, even with my 8 GB of memory.
I can successfully compiled the vcmi but like you said its freezing the system during compilation.
I can't do anything with this. This issue not occur with the vcmi-git package so you should use it.
In the future in the vcmi version 0.96 this issue should not exist.

Tjuh commented on 2014-06-16 13:10

I am not able to compile this, I can't get past 3% due to it freezing up my system. I have 4GB of mem, yet it keeps draining them and crashing.

Raziel23 commented on 2014-05-11 07:17

@salviati: I'm aware that there is already the development version of vcmi (0.95b), but this version
is mainly intended for testers and it isn't considered as the stable version. This package however
contain the stable version.

If you want follow more closely the project you can use vcmi-git which is in fact the development
version of vcmi (precisely speaking vcmi 0.95b was announced in git commit 1dbc0c7).

Raziel23 commented on 2014-03-02 12:58

[Bump to version 0.95-1]. New upstream release. The changelog is as follows:
http://forum.vcmi.eu/viewtopic.php?p=11664#11664

I've also removed -DENABLE_LAUNCHER='Yes' option. Now it's enabled by default.

Raziel23 commented on 2013-12-27 14:43

@Arhat: Vcmi has many configuration files written in json data format. You can list with command:
pacman -Ql vcmi |grep json

The best way to change theme is to copy appropriate configuration files to corresponding directories
within ~/.vcmi directory and there modify them (in this manner the original configuration files remain
intact and your modified configuration files will not be overwritten when you install new version of vcmi
in the future).

So to answer your question, simply copy defaultMods.json file to ~/.vcmi/config directory with command:
cp /usr/share/vcmi/config/defaultMods.json ~/.vcmi/config/
Edit it and change "STACK_EXPERIENCE" and "COMMANDERS" options from false to true value.

BTW. This question should be directed to the vcmi forum :)

Arhat commented on 2013-12-27 10:22

Thanks for your work here.

Following the discussions in the vcmi forum, I gathered, that two WoG features should work with vcmi: commanders and stack experience.

However I can't get either of them to work.

I do have the Mods/WoG/Data/zvs Directory and the mod.json file.

vmcilauncher says WoG is installed.

Any ideas what else I need to look for?

Raziel23 commented on 2013-10-02 11:37

[Bump to version 0.94-1]. New upstream release. The changelog is as follows:
http://forum.vcmi.eu/viewtopic.php?p=10538#10538

I've also added qt5-base dependency in order to compile and run properly vcmilauncher (mod manager).
vcmilauncher can automatically download and manage available mods for vcmi.

Raziel23 commented on 2013-06-01 20:48

[Bump to version 0.93-1]. New upstream release. The changelog is as follows:
http://forum.vcmi.eu/viewtopic.php?p=9354

Raziel23 commented on 2013-05-09 07:42

[Bump to version 0.92-2]. I have take advantage of pacman version 4.1 and slightly update
the PKGBUILD. The changes I have made are:
- removed from makedepends subversion (it shouldn't be there)
- added a prepare() function which creates an empty build directory
- added three new dependencies (desktop-file-utils, gtk-update-icon-cache, hicolor-icon-theme)
in order to update icon and desktop files after installing, updating and removing
the vcmi package
- removed two dependencies (sdl, zlib) because they are already satisfied by other packages
(respectively by boost-libs and sdl_image)
- added a post remove message which tells that in order to completely remove the vcmi
package you have to manually remove the ~/.vcmi directory

If you encounter any problems with new PKGBUILD please leave here a comment.