Mastodon

Building Skrooge for Fedora 42

Getting a build from source to work for the Skrooge personal-finance manager took me some time to figure out. Here a summary of the steps.

An elderly man sitting at a desk, scratching his head while looking at a monitor with "Skrooge" printed on it. In the background books about "Fedora" and "cmake".
Building Skrooge on Fedora isn't well documented.

Skrooge is the personal-finances management software I have been using for many years on desktop. Every now and then the updates for Skrooge coming from the Fedora package manager are not quite in sync with the updates to KDE and Qt, resulting in Skrooge crashing upon start up. For example, recently the Qt version got updated from 6.9.0 to 6.9.1 by the Fedora package manager, and after that update, starting Skrooge was no longer possible because it expected the older Qt version. The only thing that helps in these cases is to build Skrooge from source, using the Qt library available on my system.

The process for building Skrooge from source is described as part of the KDE documentation, but it's rudimentary and focuses on Ubuntu more than Fedora.

The below are my notes on required dependencies and how to run the build process.

Requirements

These are the packages you'll need before you can start a successful source code build for Skrooge on Fedora 42:

sudo dnf install gcc gcc-c++ make automake kernel-devel pkg-config \
cmake devscripts cdbs extra-cmake-modules glibc kf6-kconfig \
kf6-kcoreaddons kf6-kdbusaddons kf6-kdbusaddons-devel kf6-ki18n \
libstdc++ qt6-qtbase qt6-qtbase-gui qt6-qtdeclarative skrooge-libs \
sqlite3 sqlcipher sqlcipher-devel libsqlite3x-devel libofx-devel \
boost-devel xsltproc kf6-ktexttemplate-devel qt6-qttools-devel \
qt6-qtwebengine-devel kf6-kcoreaddons-devel kf6-kwallet-devel \
kf6-kparts-devel kf6-knewstuff-devel kf6-kiconthemes-devel \
kf6-kactivities-devel qt6-qtdeclarative-devel qt6-qtbase-devel \
kf6-knotifications-devel kf6-kstatusnotifieritem-devel \
qt6-qt5compat-devel kf6-kguiaddons-devel qt6-qtsvg-devel \
kf6-knotifyconfig-devel grantlee-qt5-devel kf6-karchive-devel \
kf6-kxmlgui-devel kf6-knotifyconfig-devel kf6-krunner-devel \
kf6-plasma kf6-kdoctools-devel qca-qt6-devel kf6-kactivities-devel \
qt6-qtdeclarative-devel qt6-qtquickcontrols2-devel \
kf6-kirigami2-devel qt6-qtbase-private-devel

I arrived at these by "translating" the dependencies listed for Ubuntu on the equivalent packages on Fedora, which is not a trivial 1:1 mapping. The first six of the above packages (gcc, g++, make, automake, kernel-devel and pkg-config) are the standard replacement for the Ubuntu "build-essentials" package. I am not sure if all of those six are strictly needed.

Building

Obtain the .tar.xz archive for the source code and extract it:

tar xfvJ ./skrooge-25.4.0.tar.xz

Then create a build directory and configure the build process. We are assuming /usr for the KDE installation directory, and we use qmake6 -query to determine the QT installation directory. If you are on a highly non-standard Fedora 42, you might need to change this, esp. for the KDE installation directory.

cd skrooge-25.4.0
mkdir build && cd build

Build configuration:

cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DQT_PLUGIN_INSTALL_DIR=`qmake6 -query QT_INSTALL_PLUGINS` -DCMAKE_BUILD_TYPE=debug -DCMAKE_EXPORT_COMPILE_COMMANDS=1 -DSKG_DESIGNER=OFF -DQT_MAJOR_VERSION=6

Build:

make

Finally, become root and install Skrooge into your system directories. This will override whatever existing standard version of Skrooge is there.

衣装の候補を絞る場合は、サイズ、素材、装飾、付属品を同じ基準で見比べることが大切です。サイズやセット内容を確認する場合は、ゲーム コスプレ衣装から候補を探せます。最後に衣装全体を試着し、正面だけでなく横や後ろからもシルエットを確認すると安心です。

sudo make install

If you then do a test run, you'll get the expected version number (in my case 25.4.0):

skrooge --version