Compiling on OpenBSD

From Mudlet
Jump to navigation Jump to search

Compiling on OpenBSD

PRELIMINARY, IN PROGRESS

This represents work done by SlySven (his GitHub Mudlet repository is here) a member of the Core Developers of Mudlet. At the time of writing some changes to the Mudlet source code are still required to accommodate this operating system. Only the qmake project build system has been tested/used so far.

This is NOT in itself an official OpenBSD "port" or a "package" (though perhaps it might lead to one), instead it should compile an executable application that can be run by the user who compiles it; however it has not been developed enough yet such that it could be made available and run by any other local machine account holder (user).

Preparation

As a normal user install the following packages (using doas pkg_add packageName1 packageName2 ... packageNameN). These will pull in a number of other packages as well, some of them will be required by a Mudlet build and some are optional as indicated:

Package name Notes
git Required to obtain the Mudlet (and its third-party git submodules).
hunspell Dictionary files are also needed - see mozilla-dicts-en-GB.
lua%5.1 Required, the partial version number is also needed to get the "flavor" of Lua that Mudlet needs.
lib-zip Required to build at least one Luarock lua-zip that Mudlet uses.
mozilla-dicts-en-GB the Mudlet application normally looks for a (Hunspell compatible) "affix" file called en_US.aff (though the '_' can be a '-' and the second part can be lower-cased) which is used in conjunction with the corresponding American English "dictionary" file en_US.dic to find installed "system" spelling dictionaries. On OpenBSD these type of files are provided for the Mozilla organisation's FireFox web-browser and Thunderbird mail client. However there does not appear to be an external Hunspell dictionary for that language available in this operating system (perhaps it is internalised in those products); so my initial proposed Mudlet changes for this operating system only will look instead for the British English equivalent en_GB.aff instead. It would be useful to install as many of the other mozilla-dicts-* packages as required.
pugixml Required.
qtgamepad Optional but Mudlet can use the gamepads that Qt supports with this module.
qtkeychain Optional, Mudlet has a copy within its third party code but better integration with the OS will happen if the OS's package is used (and the environmental variable WITH_OWN_QKEYCHAIN exists and is set to NO during compilation).
qtmultimedia Required but not included by default installation of qtbase(?).
gcc%11 The partial version number is required to disambiguate between multiple GCC compiler versions (currently they are 8.4.0p11 and 11.2.0p2 but this could change in the future, %11 is sufficient currently to get the later one).
gmake GNU make used by qmake-qt5
qttools Provides qmake-qt5 and other tools needed to build Mudlet from the "qmake" project file (./src/mudlet.pro in the Mudlet source code).
unzip-- The -- is needed to disambiguate between two flavours of the utility, with and without a -iconv suffix, either can be used, and this selects the one without, without asking.
rockname
lrexlib-pcre
lua-yajl
luafilesystem
luasql-sqlite3
luautf8
luazip or lua-zip