# Building TaskWarrior on AlmaLinux 9 and similar RHEL-style OS's This directory contains 2 different ways to build and install TaskWarrior. These builders were designed to run on a basic AlmaLinux 9 VM. I downloaded the "boot" ISO, spawned a VM using it as the install media and everything else is provided by the builder. Note that TaskWarrior has two special requirements to build: 1. The Fish shell must be installed. It is not one of the standard shells, but can be installed from the EPEL repository. 1. The Rust language system provided with AlmaLinux 9 is too old to build. If you have the stock Rust RPM installed, uninstall it and use the ``rustup`` process to get the latest one. Both of these issues are resolved in the brute_build script. The "brute_build" file is a shell script that builds and installs by brute force. If you have trouble building the RPM, use it. Obsolete **Note** that the RPM uses an explicit file list and rpmbuild will complain if you build a release that adds or removes files from this list. In that case, just edit the ``%files`` section of the RPM spec file. Case in point: bash completions are not present in the 3.5.0 build but present in the current devel build. The ``makebuilder`` script witll setup for rpmbuild. It downloads the source code to the rpmbuild SOURCES directory and creates a custom spec file in the SPECS directory. Select the version of TaskWarrior you want to build by editng the version variable in ``makebuilder``. By default the RPM will build your $HOME/rpmbuild directory, but you can change that in the makebuilder. All necessary directories will be created automatically, including the rpmbuild directory. ## IMPORTANT NOTE The build process invokes git to pull submodules. Therefore, whether using the brute-force builder or the RPM builder it is essential that the source code directory is a git project directory and not just bare source!