Installing CherryTree on Slackware 15.0

05 April 2024
CherryTree is a cross-platform clone of Microsoft's One Note that I switched to when it became clear that KeepNote was no longer being updated and was starting to suffer from bit-rot. The problem is the SlackBuild version of CherryTree being stuck at v0.39.2 and the up-to-date v1.1.2 has dependencies that are something of a pain to get sorted. One way or another I got the current version built on Slackware and decided to write the whole procedure down before the details were once again forgotten.

Installing gtksourceviewmm

This is the one seriously irritating part and it was a Linux Questions post that got me on the right track. I am unsure of the exact status of gtksourceviewmm since releases are far and few apart and even the most recent one was back in 2019, but in summary the below commands that uses v3.18 from 2016 got this dependency sorted:

wget https://download.gnome.org/sources/gtksourceviewmm/3.18/gtksourceviewmm-3.18.0.tar.xz tar -xvf gtksourceviewmm-3.18.0.tar.xz cd gtksourceviewmm-3.18.0 ./configure --prefix=/usr/local -libdir=/usr/local/lib64 sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool make sudo make install

Slackware is unusual in having lib notionally reserved for 32-bit libraries and using lib64 for 64-bit ones. This made it easy back in the day for multilib systems where 32-bit and 64-bit co-exist but a significant number of upstream packages don't make any provision for this.

Other dependencies

All other dependencies beside gtksourceviewmm needed by CherryTree can be installed using SlackBuilds using SboPkg. There may be other sub-dependencies but at time of writing these are the required packages:

Building CherryTree

At time of writing the stable version CherryTree is v1.1.2 and the commands below will get hold of and build it:

wget https://www.giuspen.net/software/cherrytree_1.1.2.tar.xz tar -xvf cherrytree_1.1.2.tar.xz cd cherrytree_1.1.2 ./build.sh

Once the build is finished it can be run in-place:

./build/cherrytree

Installing CherryTree

Far as I can tell the best way to install CherryTree is to build an RPM package and then install it. My preference is to convert the RPM to a Slackware-native package but it is also possible to convert it to other formats or install it directly using rpm. Each approach has its problems, but the one I chose uses the following commands:

./build.sh rpm rpm2tgz build/cherrytree-1.1.2~_amd64.rpm sudo installpkg build/cherrytree-1.1.2~_amd64.rpm