Packaging VCMI

I’m trying to make a nice package for Debian/Ubuntu. After patching a few files I now have a decent package for the binaries.

So I’m focusing on packaging the data. I want to extract the data from the original windows packages and recombine them into a single package.

  • data1.cab the game cdrom
  • vcmi_074.zip from the VCMI windows release
  • allinone_358f.zip for WoG

The first two are easy. The last one however extracts to about ~4400 files. I assume that most of these files are recombined by the WoG installer into the LOD files, possibly replacing some existing ones. So that leave me with 2 options:

  • do the same thing as the WoG installer or
  • install these files under the right directories and they take precedence over the files in the LOD containers.

I think the 2nd option is partialy implemented with the support of the Sprites/ directory. That’s also what I prefer, but I may need to implement some code to do that and/or reorganize the existing superceding system.

Both solutions should be portable to windows too.

Any thought ?

perhaps you should ommit data1.cab as its copyrighted (part of oryginal heroes3), but i think the second and the third you can pack nice

EDIT: and often data1.cab on installs isn’t usual cab - they are void header and valid header is in separate file (the package under common compression tools look empty but it isn’t)

Interesting idea, but I see a few legal issues:

  1. we don’t have permission to distribute data from original game’s CD-ROM. I know there are other games that distribute copyrighted materials (ie. Spring engine contains units from Total Annihilation) but I think we shouldn’t follow this path.
  2. WoG files - firstly we should ask WoG team for permission to distribute WoG. Additionally, it contains files whose legal status is questionable - some graphics come from other games, WoG binaries are edited original binaries what is (AFAIK) illegal in certain countries. If graphics are not the problem, we should distribute them without WoG binaries (if WoG team agrees). Ideally We should have two options: installing VCMI on WoG (just VCMI files) or installing it on SoD (all WoG files are in a new lod file). Support for it in the code shouldn’t be hard to implement.

I never talked about redistribution. If I wanted to do that I would simply tar my own installation. The current install on linux is just a pain and error prone. Look at README.linux.

What I want is to create a script to automatically extract the necessary data from the 3 windows packages (H3, WoG and VCMI), bypassing the need to run windows executables, and combine them into one package that can be locally installed and managed by the OS (ie. create a .deb or .rpm).

The problem I have is with WoG and its gazillion files. At that point I either have to redo what the windows WoG installer is doing or let VCMI pick the right file.
So I was asking for some guidance here.

Done. It was much easier than expected since VCMI already handle well the extra WoG files.
For the curious I’ve attached the list of the content created.
fileslist.txt.zip (12.4 KB)