|
Kitlist
A list manager for maintaining kit lists
|
If building from the git repository:
$ aclocal $ autoheader $ autoreconf –install $ automake –add-missing –copy
Thereafter, or if using the distributed tarball:
$ ./configure $ make $ sudo make install
When compiling on macOS with Clang, you may want to disable the following compiler warning:
./configure CXXFLAGS='-Wno-writable-strings'
When building from source from the git repository, you may get an error similar to the following during make:
kitlist.texi:7: could not find version.texi
Run make dist which will re-create version.texi.
Build with wxWidgets debug enabled:
$ ./configure CPPFLAGS='-DwxDEBUG_LEVEL=1'
Build for development:
$ ./configure –enable-assertions –enable-maintainer-mode
During development you may also like to include the following flags to include more warnings:
CXXFLAGS=-Wall -Wextra
$ make distcheck
On macOS install the following ports using MacPorts:
Note: wxWidgets should be compiled with clang on macOS. Compiling with GCC may cause runtime failures.
During development build with the following options:
$ ./configure CXX=/usr/bin/clang++ PKG_CONFIG_PATH=/usr/local/lib/pkgconfig CXXFLAGS='-Wall -Wformat -Wformat=2 -Wimplicit-fallthrough -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -D_GLIBCXX_ASSERTIONS -fstrict-flex-arrays=3 -fstack-protector-strong -fPIE -fno-delete-null-pointer-checks -fno-strict-overflow -fno-strict-aliasing -ftrivial-auto-var-init=zero -fexceptions -Wno-writable-strings -Wno-deprecated-declarations' –enable-assertions –enable-maintainer-mode –with-finalcut –with-ftxui
Note: Clang version 20.1.8 -mbranch-protection=standard results in exceptions not being caught.
On Debian 13 (Trixie) install the following libraries:
On Debian 12 (Bookworm) and Debian 13 (Trixie)
$ ./configure CXXFLAGS='-g -O0 -Wall -Wformat -Wformat=2 -Wimplicit-fallthrough -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -D_GLIBCXX_ASSERTIONS -fstack-clash-protection -fstack-protector-strong -Wl,-z,nodlopen -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,–as-needed -Wl,–no-copy-dt-needed-entries -Wtrampolines -fPIE -pie -fno-delete-null-pointer-checks -fno-strict-overflow -fno-strict-aliasing -ftrivial-auto-var-init=zero -Wno-write-strings' –with-finalcut –enable-assertions –enable-maintainer-mode –with-finalcut –with-ftxui
The XPM plugin is not included in version 3.0.6 of Gimp for macOS.
Use Gimp on Debian to export:
The man page was created using help2man with the following command:
$ help2man –no-discard-stderr \ –name="A list manager for maintaining kit lists" \ –output=kitlist.1 ./kitlist
Optionally there are two experimental build options for Kitlist providing Text-based User Interfaces.
>Note: Kitlist was developed with version 0.9.1 of FINAL CUT which requires patches from ./3rdparty/finalcut/patches/ to be applied to a custom build of that version. If FINAL CUT is installed with the --prefix=/usr/local/, kitlist will need to be configured with PKG_CONFIG_PATH=/usr/local/lib/pkgconfig, e.g.
$ ./configure PKG_CONFIG_PATH=/usr/local/lib/pkgconfig --with-finalcut
Debian 13 (Trixie) includes version 0.9.1 of FINAL CUT which is likely to require the above mentioned patches. You can download and unpack the source from Debian with:
$ mkdir work $ cd work $ apt-get source libfinal-dev
On a Debian system, install FINAL CUT as follows:
Download and install the FINAL CUT library. Note when building FINAL CUT for Linux, to enable mouse support you need to also install the gpm library. If you need to install additional libraries to fix a failed build, re-run FINAL CUT's configure script so that it re-configures the build to use those libraries.
E.g.
$ sudo apt-get install libtool libgpm-dev libncurses-dev $ mkdir work $ cd work $ curl -L -o finalcut-0.9.1.tar.gz \ https://github.com/gansm/finalcut/archive/refs/tags/0.9.1.tar.gz $ tar -xf finalcut-0.9.1.tar.gz $ cd finalcut-0.9.1 $ for p in ../kitlist/3rdparty/finalcut/patches/0*.patch; do patch -p0 <$p; done $ autoreconf --install $ ./configure $ make $ sudo make install $ sudo ldconfig
On macOS, install the ncurses port from MacPorts. The ./configure command will need to use the appropriate flags specifying the include directory for the for ncurses headers, otherwise term.h from macOS will be included first, producing errors similar to the following during the build phase:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/term.h:728:1: error: a type specifier is required for all declarations __OSX_AVAILABLE(14.0) __IOS_AVAILABLE(17.0) __WATCHOS_AVAILABLE(10.0)
Where MacPorts has been installed under the /opt/local prefix, the ./configure command should be:
$ ./configure CXX=/opt/local/bin/clang++-mp-20 CPPFLAGS=-I/opt/local/include
Include the --with-finalcut option when running configure for kitlist, e.g.:
$ ./configure –with-finalcut $ make
Execute kitlist with the --finalcut option:
$ ./src/kitlist –finalcut
FTXUI provides another text-based front-end for Kitlist. After installing FTXUI, build Kitlist with configure --with-ftxui. It tends to crash or hang on Debian 13 (Trixie) on aarch64 when compiled with GCC
The FTXUI version does not implement all the features of the GUI; in particular there is no facility to edit a category or an item name after they have been created. If unable to use another interface; the workaround is to edit the XML directly.
Building FTXUI from source.
See the CMake Wiki if you wish to specify a different compiler.
$ cd /usr/local/src/ftxui-6.1.9 $ mkdir build $ cd build $ cmake .. $ make $ sudo make install
Then build kitlist with:
$ cd /usr/local/src/kitlist $ ./configure PKG_CONFIG_PATH=/usr/local/lib/pkgconfig –with-ftxui $ make $ ./src/kitlist –help