Successful build of KMyMoney 5.2 (Qt6/Master) on macOS ARM64

Successfully built and packaged KMyMoney 5.2 (Master) for macOS ARM64 using Craft. The official build scripts currently have a few blockers for Qt6 on macOS, specifically regarding compiler strictness, missing tool paths, and a broken install rule in the main CMakeLists.txt.

1. Initialize environment
source ~/CraftRoot/craft/craftenv.sh
craft --set branch=master kmymoney
craft --update

2. Build core dependencies
craft extragear/alkimia
craft libs/qt6/qtwebengine

3. Set compiler/path overrides (CRITICAL for macOS Clang/Qt6)
export CFLAGS=“-Wno-error=implicit-function-declaration”
export CXXFLAGS=“-Wno-error=implicit-function-declaration”
export LDFLAGS=“-L/Users/devel/CraftRoot/lib -liconv”
export PATH=/Users/devel/CraftRoot/libexec:$PATH

4. Fix Gwenhywfar tool detection
craft --set “args=–without-x --with-guis=qt6 MOC=/Users/devel/CraftRoot/libexec/moc UIC=/Users/devel/CraftRoot/libexec/uic” libs/gwenhywfar
craft libs/gwenhywfar
craft libs/aqbanking

5. Patch KMyMoney source (Fixes fatal ‘no BUNDLE DESTINATION’ error at line 206)
craft --fetch kmymoney
cd /Users/devel/CraftRoot/download/git/extragear/kmymoney/kmymoney
perl -pi -e ‘s/install(TARGETS kmymoney/install(TARGETS kmymoney BUNDLE DESTINATION bin/g’ CMakeLists.txt

6. Final Build
craft --set “args=-DBUILD_WITH_QT6=ON -DCMAKE_OSX_ARCHITECTURES=arm64” kmymoney
craft kmymoney

The final .app is located in /Users/devel/CraftRoot/bin/kmymoney.app due to the perl patch. To package: craft --package kmymoney
Mac was setup with user “devel" to clarify provided paths above.

I’m guessing some of those changes could be added to the Craft blueprints, but I’m not that familiar with Craft.

We should probably replace ${INSTALL_TARGETS_DEFAULT_ARGS} with ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} in that line, to handle all platforms. Source here.

Done

Subject: Follow-up: Full Functional Verification of KMyMoney 5.2 on macOS (ARM64/M4)

Hi everyone,

Following up on my previous post regarding a successful build of KMyMoney 5.2 (Qt6/master) on macOS (M4). While I initially reported a successful compile, further testing revealed that the AqBanking/KBanking components required specific source patches and resource-linking to be fully functional.

I have now verified a 100% “ground-up” build from a clean Craft environment that resolves a “Menu Hijack” issue and the AqBanking initialization errors. Below are the technical details and the specific “recipe” used.

1. The “Menu Hijack” Fix (kbanking plugin)

Issue: On macOS, the settings_aqbanking action was automatically moved to the “App Name > Preferences” slot by the Qt framework. This suppressed the main KMyMoney configuration window (the one with the sidebar).
Solution: In kmymoney/plugins/kbanking/kbanking.cpp, the MenuRole was explicitly set to NoRole.
Code Change:
settings_aqbanking->setMenuRole(QAction::NoRole);
Result: This restores the Sidebar-driven “Configure KMyMoney” window and leaves AqBanking as a separate item under “Settings.”

2. Banking Library Build Issues

Issue: Modern Clang (Xcode 15+) treats implicit function declarations as errors, and the Gwenhywfar/AqBanking build fails to locate Qt6 moc and uic.
Solution:

  • Use -Wno-error=implicit-function-declaration in CFLAGS/CXXFLAGS

  • Pass explicit MOC/UIC paths during the Gwenhywfar craft configuration

3. Missing Bundle Resources (Runtime Fix)

Issue: The app would launch, but “Configure AqBanking…” would fail to open with: Dialog description file not found (-51).
Root Cause: The .app bundle was missing internal links to the banking drivers and XML dialog blueprints.
Verification: Manually symlinking lib/gwenhywfar, lib/aqbanking, and their respective share folders into the .app/Contents/ directory resolved all runtime errors.

The Reproduction Steps (M4/ARM64)

For those looking to reproduce or update the CI scripts, these are the exact steps that resulted in a fully functional build:

# 1. Clean Bootstrap
rm -rf ~/CraftRoot
mkdir ~/CraftRoot
curl https://raw.githubusercontent.com/KDE/craft/master/setup/CraftBootstrap.py -o setup.py
python3 setup.py --prefix ~/CraftRoot # Select macOS/arm64
source ~/CraftRoot/craft/craftenv.sh

# 2. Patch Source (The Menu Fix)
craft --fetch kmymoney
# Apply: settings_aqbanking->setMenuRole(QAction::NoRole); to kbanking.cpp

# 3. Set M4 Environment Guardrails
export CFLAGS="-Wno-error=implicit-function-declaration"
export CXXFLAGS="-Wno-error=implicit-function-declaration"
export LDFLAGS="-L${CRAFT_ROOT}/lib -liconv"
export PATH=${CRAFT_ROOT}/libexec:$PATH

# 4. Build Core Stack
craft extragear/alkimia
craft libs/qt6/qtwebengine

# 5. Build Banking Drivers (Injected Paths)
craft --set "args=--without-x --with-guis=qt6 MOC=${CRAFT_ROOT}/libexec/moc UIC=${CRAFT_ROOT}/libexec/uic" libs/gwenhywfar
craft libs/gwenhywfar libs/aqbanking

# 6. Final Build with Bundle Flag
craft --set "args=-DBUILD_WITH_QT6=ON -DCMAKE_OSX_ARCHITECTURES=arm64 -DKDE_INSTALL_BUNDLEDIR=Applications/KDE" kmymoney
craft kmymoney

# 7. Final Bundle Repair (Symlinks)
APP_CON="~/CraftRoot/Applications/KDE/kmymoney.app/Contents"
ln -sf ~/CraftRoot/lib/gwenhywfar "$APP_CON/lib/"
ln -sf ~/CraftRoot/lib/aqbanking "$APP_CON/lib/"
ln -sf ~/CraftRoot/share/gwenhywfar "$APP_CON/Resources/"
ln -sf ~/CraftRoot/share/aqbanking "$APP_CON/Resources/"

The executable now ends up at: ~/CraftRoot/Applications/KDE/kmymoney.app/Contents/MacOS/kmymoney. I have not performed exhaustive testing, but so far I haven’t found anything additional. Hopefully this can help get the official macOS CI/CD going again.

Cool. Thanks for all the hard work that went into this. The necessary patch to fix the KMyMoney menu is in the git repo.

I wonder, if you can check the following patch against the gwenhywfar blueprint.

diff --git libs/_autotools/gwenhywfar/gwenhywfar.py libs/_autotools/gwenhywfar/gwenhywfar.py
index 79c9ea1b0..93ccbdfe0 100644
--- libs/_autotools/gwenhywfar/gwenhywfar.py
+++ libs/_autotools/gwenhywfar/gwenhywfar.py
@@ -56,6 +56,7 @@ class subinfo(info.infoclass):
 class Package(AutoToolsPackageBase):
     def __init__(self, **kwargs):
         super().__init__(**kwargs)
+        root = str(CraftCore.standardDirs.craftRoot())
         self.subinfo.options.configure.args += ["--with-guis=qt6"]
 
         # For appImage builds the --enable-local-install is needed so that
@@ -66,6 +67,12 @@ class Package(AutoToolsPackageBase):
         if CraftCore.compiler.isLinux:
             self.subinfo.options.configure.args += ["--enable-binreloc"]
 
+        if CraftCore.compiler.isMacOS:
+            self.subinfo.options.configure.cflags += " -Wno-implicit-function-declaration"
+            self.subinfo.options.configure.cxxflags += " -Wno-implicit-function-declaration"
+            self.subinfo.options.configure.ldflags += f" -L${root}/lib -liconv"
+            self.subinfo.options.configure.args += [f"--without-x MOC={root}/libexec/moc UIC={root}/libexec/uic"]
+
         # Disable autoreconf. Otherwise following errors prevent configuring:
         # configure.ac:618: warning: macro 'AM_PATH_LIBGCRYPT' not found in library
         # configure.ac:633: warning: macro 'AM_PATH_GPG_ERROR' not found in library

I have no idea how to add ${CRAFT_ROOT}/libexec to the path in the blueprint. Any reason, why this is needed? Maybe, the problem can be resolved in a different way.

Similar changes probably need to be added to AqBanking. But that is a second step.

I’ve tested your patch it’s definitely the right direction. Here is the feedback you requested:

  1. Why ${CRAFT_ROOT}/libexec is needed
    Gwenhywfar’s build system (Autotools) fails to find the Qt6 tools (moc and uic) on macOS because they are tucked away in libexec rather than bin. Without these, the build cannot generate the necessary Qt interface code for the banking wizards.

  2. How to add it to the path (The ‘Craft-Native’ Way)
    Instead of a manual export, you can inject it directly into the build environment by adding this to the Package class. I found that moving it to the configure method is the most stable way to prevent loader errors:

    def configure(self):
    CraftCore.cache.utils.prependSystemPath(CraftCore.standardDirs.craftRoot() / “libexec”)
    return super().configure()

  3. Feedback on your Patch
    Your logic is solid, but there are two small syntax issues to correct for the final version:

  • LDFLAGS: Change f" -L${root}/lib" to f" -L{root}/lib". The $ is a shell character that will cause a Python error since root is already a defined variable.

  • Args List: The MOC and UIC flags should be separate strings in the list rather than one long string.

Revised Patch Recommendation (Gwenhywfar & AqBanking):

    if CraftCore.compiler.isMacOS:
        root = str(CraftCore.standardDirs.craftRoot())
        self.subinfo.options.configure.cflags += " -Wno-implicit-function-declaration"
        self.subinfo.options.configure.cxxflags += " -Wno-implicit-function-declaration"
        self.subinfo.options.configure.ldflags += f" -L{root}/lib -liconv"
        self.subinfo.options.configure.args += ["--without-x", f"MOC={root}/libexec/moc", f"UIC={root}/libexec/uic"]
        # For AqBanking also add: f"--with-gwen-dir={root}"
  1. The ‘Missing Menu’ fix
    Even with the build fixed, the KMyMoney ‘Configure AqBanking’ menu only reappeared for me once I helped Gwenhywfar find its versioned plugins. I used this environment variable to initialize it:

export GWEN_PLUGIN_DIR=$HOME/CraftRoot/lib/gwenhywfar/plugins/79

Follow-up: Resolving the Setup Dialog crash on macOS"

I wanted to add two critical runtime fixes I discovered after getting the build to complete.

  1. Fix for the ‘Dialog description not found’ error
    Even with the menu appearing, the AqBanking Setup wizard would crash because it couldn’t find its UI files. It turns out Gwenhywfar on macOS specifically looks for a share folder inside Contents. Linking it manually resolved the crash:

ln -sf ~/CraftRoot/share ~/CraftRoot/Applications/KDE/kmymoney.app/Contents/share

  1. Plugin Path Precision
    For the ‘Configure AqBanking’ menu to initialize, the GWEN_PLUGIN_DIR must point specifically to the versioned folder found in the CraftRoot:

export GWEN_PLUGIN_DIR=$HOME/CraftRoot/lib/gwenhywfar/plugins/79

With these two additions, the setup wizards are now launching. I have not worked on packaging to a dmg yet, but plan on trying to see if I can make any progress on this next.

Added 1 .. 3 to the blueprint. See this commit which contained the wrong quotes that I fixed in a second commit.

I am still struggling with 4 as it is a runtime thing. What about setting that env var at startup of KMyMoney for MacOS?

Regarding the struggle with setting environment variables at startup (#4) and ensuring a stable build:

  • The Runtime Fix (Startup Environment)
    To address the GWEN_PLUGIN_DIR requirement without terminal exports, the standard macOS solution is a startup wrapper script. I have verified that this makes the app fully portable and functional from the Finder/Dock.

Action: Rename the binary kmymoney to kmymoney.base and replace it with a shell script (ensure it is marked chmod +x):

#!/bin/bash
#Relative path discovery for portability
BUNDLE_MACOS=“$(dirname “$0”)”
export GWEN_PLUGIN_DIR=“$BUNDLE_MACOS/../lib/gwenhywfar/plugins/79”
exec “$BUNDLE_MACOS/kmymoney.base” “$@”

  • The Dialog Crash Fix (-51 Error)
    The AqBanking Setup wizard will crash with a “Dialog description file not found” error unless the library can find its UI templates. This is resolved by ensuring a share symlink exists within the bundle:

ln -sf ~/CraftRoot/share ~/CraftRoot/Applications/KDE/kmymoney.app/Contents/share

  • Blueprint Attribute Regression & Version 2 Injection
    In the latest Craft master, CraftCache.utils has been refactored. If the build crashes with an AttributeError, the gwenhywfar.py blueprint should be updated to use CraftCore.utils.prependSystemPath.

Furthermore, we can ensure the Autotools build finds the correct Qt6 tools by explicitly injecting the PATH into the configure arguments. This is a stable alternative to manual exports:

self.subinfo.options.configure.args += [f"PATH={CraftCore.standardDirs.craftRoot() / ‘libexec’}:$PATH"]

With these three final pieces, the macOS ARM64 build should be stable, the banking menus initialize correctly, and the setup wizards launch without crashing.

Status: Verified local build with working AqBanking/Gwenhywfar. Official packaging (craft --package) identified as fundamentally broken due to relocation and dependency issues.

  1. The “Blueprint” Fixes (Required for Build & Packaging Success)

To achieve a functional build and prevent the packager from crashing with “load commands do not fit” errors, the following blueprint patches are required. These provide the necessary header padding for macdeployqt to perform path relocation.

libs/_autotools/gwenhywfar/gwenhywfar.py & libs/_autotools/aqbanking/aqbanking.py

Problem: Autotools fails to find Qt6 tools on macOS, and the resulting binaries lack the header space needed for relocation.
Fix: Inject the libexec path during configuration and add -Wl,-headerpad_max_install_names to LDFLAGS.

python

# Add to top of file
import utils
import os

# Add/Modify in Package class
class Package(AutoToolsPackageBase):
    def configure(self):
        if CraftCore.compiler.isMacOS:
            self.subinfo.options.configure.ldflags += " -Wl,-headerpad_max_install_names"
            with utils.ScopedEnv({"PATH": f"{CraftCore.standardDirs.craftRoot() / 'libexec'}:{os.environ.get('PATH')}"}):
                return super().configure()
        return super().configure()

extragear/kmymoney/kmymoney.py

Problem: macdeployqt ignores QtDesigner.framework, which is required by the KBanking/Gwenhywfar UI.
Fix: Explicitly add qttools to runtime dependencies.

python

    def setDependencies(self):
        if not CraftCore.compiler.isMSVC():
            self.runtimeDependencies["libs/qt6/qttools"] = None
            self.runtimeDependencies["libs/aqbanking"] = None
  1. The “Packaging” Regression (The Smoking Gun)

Even when craft --package completes, the resulting DMG is not portable.

  • Findings: macdeployqt successfully relocates the main KMyMoney binary but fails to recurse into the Contents/Frameworks folder.
  • Evidence: Running otool -L on libKF6XmlGui.dylib or QtCore.framework inside the app bundle shows dozens of hardcoded absolute paths pointing to the local /Users/devel/CraftRoot/lib/ directory.
  • Result: The app crashes instantly on any machine where the CraftRoot is missing or renamed. A manual recursive relocation script using install_name_tool was required to make the bundle partially functional.
  1. Runtime Requirements for Banking Plugins

For the AqBanking menus to appear and function in a standalone bundle, the following environment variables must be set (ideally via a wrapper script) to point to the bundled plugins:

  • export GWEN_PLUGIN_DIR="$BUNDLE_CONTENTS/PlugIns/gwenhywfar/plugins/79"
  • export AQBANKING_PLUGIN_DIR="$BUNDLE_CONTENTS/PlugIns/aqbanking"
  • The share/gwenhywfar and share/aqbanking directories must be mirrored into Contents/Resources/share for the setup wizards to load their UI templates.

Lessons Learned & Recommendations

  1. “Recursive Relocation” Root Cause: macdeployqt fails because it does not recognize nested dependencies within frameworks.
  • Recommendation: The KDE Craft macOS logic should include a post-processing script that runs otool -L and install_name_tool recursively on every binary in Contents/Frameworks and Contents/PlugIns.
  1. Standardize Library Identification (IDs): Libraries built via Autotools (Gwenhywfar) often have absolute ID names.
  • Recommendation: All non-CMake libraries must have their internal IDs rewritten to @rpath/libName.dylib during the install phase.
  1. The “Resources/share” Symlink Requirement: Gwenhywfar/AqBanking expect their UI templates in a specific structure.
  • Recommendation: The blueprint should include a step to copy share/gwenhywfarand share/aqbanking into the bundle’s Contents/Resources/share/ directory.
  1. The ARM64 “Sign-and-Kill” Trap: Any manual modification to the bundle (like a wrapper script) requires a deep ad-hoc re-sign (codesign --force --deep --sign -) or the app will be killed by the OS.

The Final Portability Blocker: AqBanking & Gwenhywfar Search Paths

The Issue: While the app is now portable for core KMyMoney features, AqBanking/Gwenhywfar remains non-portable. The banking stack remains tethered to absolute build-time paths for its configuration and data templates. Fixing this will likely require a change in how these libraries are configured during the Craft build to support relocatable data paths on macOS.


Note: I have a working .tar.gz of the build directory that I can provide if needed to inspect a functional library tree.

This is my attempt to provide the steps and blueprint patches to build a fully functional local version of KMyMoney 5.2 on Apple Silicon.

  1. Setup Craft Environment
    Initialize the build system and source the required environment.

bash

mkdir ~/CraftRoot
curl https://raw.githubusercontent.com/KDE/craft/master/setup/CraftBootstrap.py -o setup.py
python3 setup.py --prefix ~/CraftRoot # Select macOS/arm64
# Apply the blueprint changes below before proceeding
source ~/CraftRoot/craft/craftenv.sh
  1. Update Blueprints with macOS Fixes

Apply the following diffs to your local blueprints to automate the build on M-series hardware.

Gwenhywfar Blueprint

File: ~/CraftRoot/etc/blueprints/locations/craft-blueprints-kde/libs/_autotools/gwenhywfar/gwenhywfar.py
Fixes Qt6 tool detection (uic/moc) and dependencies.

diff

--- gwenhywfar.py-orig
+++ gwenhywfar.py
@@ -49,6 +48,7 @@
         self.runtimeDependencies["libs/gnutls"] = None
         self.runtimeDependencies["libs/gcrypt"] = None
         self.runtimeDependencies["libs/qt6/qtbase"] = None
+        self.runtimeDependencies["libs/qt6/qttools"] = None
 
@@ -98,7 +98,6 @@
         if CraftCore.compiler.isMacOS:
             self.subinfo.options.configure.ldflags += " -Wl,-headerpad_max_install_names"
-            with utils.ScopedEnv({"PATH": f"{CraftCore.standardDirs.craftRoot() / 'libexec'}:{os.environ.get('PATH')}"}):
-                return super().configure()
+            os.environ["PATH"] = f"{CraftCore.standardDirs.craftRoot() / 'libexec'}:{os.environ['PATH']}"

AqBanking Blueprint

File: ~/CraftRoot/etc/blueprints/locations/craft-blueprints-kde/libs/_autotools/aqbanking/aqbanking.py
Ensures Qt6 tools are available and fixes CMake naming conventions for macOS.

diff

--- aqbanking.py-orig
+++ aqbanking.py
@@ -49,29 +48,21 @@
         self.runtimeDependencies["virtual/base"] = None
         self.buildDependencies["libs/libbzip2"] = None
         self.runtimeDependencies["libs/gwenhywfar"] = None
+        self.runtimeDependencies["libs/qt6/qttools"] = None

KMyMoney Blueprint

File: ~/CraftRoot/etc/blueprints/locations/craft-blueprints-kde/extragear/kmymoney/kmymoney.py
Automates the bundle merge, rescues plugins from the image folder, and injects relative metadata to fix the “Missing AqBanking Menu” and “Missing Storage Plugin” errors.

diff

--- kmymoney.py-orig
+++ kmymoney.py
@@ -36,6 +36,7 @@
     def setDependencies(self):
+        self.runtimeDependencies["libs/qt6/qttools"] = None
...
@@ -73,14 +71,107 @@
         if CraftCore.compiler.isMacOS:
-            self.subinfo.options.configure.args += ["-DENABLE_WOOB=OFF"]
+            self.subinfo.options.configure.args += [
+                "-DENABLE_WOOB=OFF",
+                "-DCMAKE_OSX_ARCHITECTURES=arm64",
+                "-DKDE_INSTALL_BUNDLEDIR=Applications/KDE",
+                "-DAPPLE_INSTALL_BUNDLE=ON"
+            ]
 
     def install(self):
         if not super().install():
             return False
 
-        # For AppImages create a gpgconf.ctl file that forces gpgconf to use the actual APPDIR
+        if CraftCore.compiler.isMacOS:
+            imageDir = self.imageDir()
+            craftRoot = CraftCore.standardDirs.craftRoot()
+            
+            # 1. FIX MISSING PLUGINS & LIBS IN CRAFTROOT
+            for folder in ["plugins/kmymoney_plugins", "lib"]:
+                if (imageDir / folder).exists():
+                    utils.copyDir(imageDir / folder, craftRoot / folder)
+
+            # 2. MANUALLY MERGE THE BUNDLE
+            destBundle = craftRoot / "Applications/KDE/kmymoney.app"
+            appContents = destBundle / "Contents"
+            if not destBundle.exists():
+                utils.createDir(destBundle.parent)
+                utils.copyDir(imageDir / "Applications/KDE/kmymoney.app", destBundle)
+
+            # 3. INTERNAL BUNDLE STRUCTURE
+            utils.createDir(appContents / "Resources/lib")
+            utils.copyDir(craftRoot / "lib/gwenhywfar", appContents / "Resources/lib/gwenhywfar")
+            utils.copyDir(craftRoot / "lib/aqbanking", appContents / "Resources/lib/aqbanking")
+            utils.copyDir(craftRoot / "share/gwenhywfar", appContents / "Resources/gwenhywfar")
+            utils.copyDir(craftRoot / "share/aqbanking", appContents / "Resources/aqbanking")
+            
+            # 4. BRIDGE SYMLINKS
+            for folder in ["lib", "share"]:
+                link = appContents / folder
+                if link.exists() or link.is_symlink(): utils.deleteFile(link)
+                utils.createSymlink(craftRoot / folder, link, targetIsDirectory=True)
+
+            # 5. INJECT METADATA (LSEnvironment)
+            infoPlist = appContents / "Info.plist"
+            gwenPath = f"{craftRoot}/lib/gwenhywfar/plugins/79"
+            kmmPluginPath = f"{craftRoot}/plugins"
+            utils.system(["plutil", "-replace", "LSEnvironment", "-xml", 
+                         f"<dict><key>GWEN_PLUGIN_DIR</key><string>{gwenPath}</string>"
+                         f"<key>QT_PLUGIN_PATH</key><string>{kmmPluginPath}</string></dict>", 
+                         str(infoPlist)])
+
+            # 6. SAFETY CHECK: Revert wrapper if it existed
+            binDir = appContents / "MacOS"
+            if (binDir / "kmymoney.real").exists():
+                utils.deleteFile(binDir / "kmymoney")
+                utils.moveFile(binDir / "kmymoney.real", binDir / "kmymoney")
+
+        return True

     def createPackage(self):
-        self.defines["executable"] = "bin\\kmymoney.exe"
+        self.defines["executable"] = "bin\\kmymoney.exe"
         self.defines["icon"] = self.blueprintDir() / "kmymoney.ico"
-        self.defines["mimetypes"] = [...]
+        self.defines["mimetypes"] = ["application/x-kmymoney", "application/x-ofx", "application/vnd.intu.qfx", "application/x-qfx", "application/x-qif", "text/csv"]
+        self.defines["file_types"] = [".kmy", ".ofx", ".qfx", ".qif", ".csv"]
-        self.defines["website"] = "https://kmymoney.org/"
+        self.defines["website"] = "https://kmymoney.org"
+
+        if CraftCore.compiler.isMacOS:
+            self.defines["apppath"] = "Applications/KDE/kmymoney.app"
+            self.defines["extra_binaries"] = [
+                "Resources/lib/gwenhywfar/plugins/79/configmgr/dir.so",
+                "Resources/lib/aqbanking/plugins/44/providers/aqhbci.so"
+            ]
+
         self.blacklist_file.append(self.blueprintDir() / "blacklist.txt")
         if CraftCore.compiler.isMacOS:
             self.blacklist_file.append(self.blueprintDir() / "blacklist_mac.txt")
@@ -121,3 +180,4 @@
         self.ignoredPackages.append("binary/mysql")
 
         return super().createPackage()
+
  1. Build and Launch

Execute the build sequence from scratch.

bash

craft --set branch=master kmymoney
craft kmymoney

open "$HOME/CraftRoot/Applications/KDE/kmymoney.app"

# Package the DMG
craft --package kmymoney  

This (hopefully) will provide the needed information to get the build and packaging working again on your pipeline. However, the DMG still doesn’t have the Configure AqBanking… menu (the build does, the dmg does not) which was the purpose of my previous post.

It would be very helpful if you could convert those changes into MRs directly on the repo. Would that work for you? What are you missing to do it?

Understood. Done. My MR should get build and packaging working as it has additional changes from my previous post that proved to work on my local machine.

Sorry for jumping in — I hope to avoid asking a silly question. Are there any updates on the macOS build pipeline?

If I understood correctly, currently there is a common issue affecting several pipelines, but have the old macOS issues been resolved with the KTL MRs?

The KMyMoney download page still reports that the build is broken.

Thanks, Marco

No, the MR isn’t merged yet, it still needs some work.