From b1daf4221564671afaf1ab7498cb483e59e64aae Mon Sep 17 00:00:00 2001 From: Tom Parker-Shemilt Date: Mon, 3 Nov 2025 00:15:55 +0000 Subject: [PATCH 1/9] Initial attempt at syncthingctl --- package/libcpp-utilities/package | 48 +++++++++++++++++++++++++++ package/qtforkawesome/package | 49 ++++++++++++++++++++++++++++ package/qtutilities/package | 56 ++++++++++++++++++++++++++++++++ package/syncthingctl/package | 34 +++++++++++++++++++ 4 files changed, 187 insertions(+) create mode 100644 package/libcpp-utilities/package create mode 100644 package/qtforkawesome/package create mode 100644 package/qtutilities/package create mode 100755 package/syncthingctl/package diff --git a/package/libcpp-utilities/package b/package/libcpp-utilities/package new file mode 100644 index 000000000..38c48a0bc --- /dev/null +++ b/package/libcpp-utilities/package @@ -0,0 +1,48 @@ +#!/usr/bin/env bash +# Copyright (c) 2021 The Toltec Contributors +# SPDX-License-Identifier: MIT + +pkgnames=(libcpp-utilities libcpp-utilities-dev) +pkgdesc="Common C++ classes and routines used by Martchus' applications" +url=https://github.com/Martchus/cpp-utilities +pkgver=5.31.0-1 +timestamp=2025-09-26T16:18Z +section="devel" +maintainer="Tom Parker-Shemilt " +license=GPL-2.0-or-later +image=base:v3.3 +source=("https://github.com/Martchus/cpp-utilities/archive/refs/tags/v5.31.0.zip") +sha256sums=(cbdf3ef53c47fc3c1d8ee20bb1f65290db878408530afe46a285b401af2839a2) + +build() { + cmake -B build \ + -DCMAKE_TOOLCHAIN_FILE="/usr/share/cmake/$CHOST.cmake" \ + -DCMAKE_INSTALL_PREFIX="/opt" \ + -DBUILD_SHARED_LIBS=ON + cmake --build build + cmake --build build --target install -- DESTDIR=../install +} + +libcpp-utilities() { + package() { + install -d "$pkgdir"/opt/lib "$pkgdir"/usr/lib + cp --no-dereference "$srcdir"/install/opt/lib/lib*.so* "$pkgdir"/opt/lib + + for file in "$pkgdir"/opt/lib/lib*.so*; do + base="${file#"$pkgdir"}" + ln -s "$base" "${file/\/opt/\/usr}" + done + } +} + +libcpp-utilities-dev() { + pkgdesc="$pkgdesc - development files" + installdepends=("libcpp-utilities=$pkgver") + + package() { + install -d "$pkgdir"/opt/lib + cp -r "$srcdir"/install/opt/lib/pkgconfig "$pkgdir"/opt/lib + cp -r "$srcdir"/install/opt/share "$pkgdir"/opt + cp -r "$srcdir"/install/opt/include "$pkgdir"/opt + } +} diff --git a/package/qtforkawesome/package b/package/qtforkawesome/package new file mode 100644 index 000000000..b55d84b76 --- /dev/null +++ b/package/qtforkawesome/package @@ -0,0 +1,49 @@ +#!/usr/bin/env bash +# Copyright (c) 2021 The Toltec Contributors +# SPDX-License-Identifier: MIT + +pkgnames=(libqtforkawesome libqtforkawesome-dev) +pkgdesc="Library that bundles ForkAwesome for use within Qt applications" +url=https://github.com/Martchus/qtforkawesome +pkgver=0.3.1-1 +timestamp=2025-09-26T16:18Z +section="devel" +maintainer="Tom Parker-Shemilt " +license=GPL-2.0-or-later +image=base:v3.3 +source=("https://github.com/Martchus/qtforkawesome/archive/refs/tags/v0.3.1.zip") +sha256sums=(9e75bffe10aaf01373c3983e64323c9d1bc0f41f932ed8c00c8c43a7a48bfcc5) +makedepends=(build:cmake host:libcpp-utilities-dev host:libcpp-utilities host:libqtutilities host:libqtutilities-dev) + +build() { + cmake -B build \ + -DCMAKE_TOOLCHAIN_FILE="/usr/share/cmake/$CHOST.cmake" \ + -DCMAKE_INSTALL_PREFIX="/opt" \ + -DBUILD_SHARED_LIBS=ON + cmake --build build + cmake --build build --target install -- DESTDIR=../install +} + +libqtforkawesome() { + package() { + install -d "$pkgdir"/opt/lib "$pkgdir"/usr/lib + cp --no-dereference "$srcdir"/install/opt/lib/lib*.so* "$pkgdir"/opt/lib + + for file in "$pkgdir"/opt/lib/lib*.so*; do + base="${file#"$pkgdir"}" + ln -s "$base" "${file/\/opt/\/usr}" + done + } +} + +libqtforkawesome-dev() { + pkgdesc="$pkgdesc - development files" + installdepends=("libqtforkawesome=$pkgver") + + package() { + install -d "$pkgdir"/opt/lib + cp -r "$srcdir"/install/opt/lib/pkgconfig "$pkgdir"/opt/lib + cp -r "$srcdir"/install/opt/share "$pkgdir"/opt + cp -r "$srcdir"/install/opt/include "$pkgdir"/opt + } +} diff --git a/package/qtutilities/package b/package/qtutilities/package new file mode 100644 index 000000000..6b6e60712 --- /dev/null +++ b/package/qtutilities/package @@ -0,0 +1,56 @@ +#!/usr/bin/env bash +# Copyright (c) 2021 The Toltec Contributors +# SPDX-License-Identifier: MIT + +pkgnames=(libqtutilities libqtutilities-dev) +pkgdesc="Common Qt related C++ classes and routines used by Martchus' applications" +url=https://github.com/Martchus/qtutilities +pkgver=6.18.2-1 +timestamp=2025-09-26T16:18Z +section="devel" +maintainer="Tom Parker-Shemilt " +license=GPL-2.0-or-later +image=base:v3.3 +source=(https://github.com/Martchus/qtutilities/archive/refs/tags/v6.18.2.zip) +sha256sums=(7a1047622c1a92760aaf448eee7c4a1b3c30c65bffdce7de1322c402ca0e9e1a) +makedepends=(build:cmake build:qtbase5-dev build:qttools5-dev host:libcpp-utilities-dev host:libcpp-utilities) + +build() { + mkdir /opt/include # FIXME: Workaround for INTERFACE_INCLUDE_DIRECTORIES error in c++utilities + cmake -B build \ + -DCMAKE_TOOLCHAIN_FILE="/usr/share/cmake/$CHOST.cmake" \ + -DQt5Gui_DIR="/usr/lib/x86_64-linux-gnu/cmake/Qt5Gui" \ + -DQt5Core_DIR="/usr/lib/x86_64-linux-gnu/cmake/Qt5Core" \ + -DQt5DBus_DIR="/usr/lib/x86_64-linux-gnu/cmake/Qt5DBus" \ + -DQt5LinguistTools_DIR="/usr/lib/x86_64-linux-gnu/cmake/Qt5LinguistTools" \ + -DQt5Test_DIR="/usr/lib/x86_64-linux-gnu/cmake/Qt5Test" \ + -DCMAKE_INSTALL_PREFIX="/opt" \ + -DBUILD_SHARED_LIBS=ON \ + -DWIDGETS_GUI=OFF + cmake --build build + cmake --build build --target install -- DESTDIR=../install +} + +libqtutilities() { + package() { + install -d "$pkgdir"/opt/lib "$pkgdir"/usr/lib + cp --no-dereference "$srcdir"/install/opt/lib/lib*.so* "$pkgdir"/opt/lib + + for file in "$pkgdir"/opt/lib/lib*.so*; do + base="${file#"$pkgdir"}" + ln -s "$base" "${file/\/opt/\/usr}" + done + } +} + +libqtutilities-dev() { + pkgdesc="$pkgdesc - development files" + installdepends=("libqtutilities=$pkgver") + + package() { + install -d "$pkgdir"/opt/lib + cp -r "$srcdir"/install/opt/lib/pkgconfig "$pkgdir"/opt/lib + cp -r "$srcdir"/install/opt/share "$pkgdir"/opt + cp -r "$srcdir"/install/opt/include "$pkgdir"/opt + } +} diff --git a/package/syncthingctl/package b/package/syncthingctl/package new file mode 100755 index 000000000..1a7c4722a --- /dev/null +++ b/package/syncthingctl/package @@ -0,0 +1,34 @@ +#!/usr/bin/env bash +# Copyright (c) 2025 The Toltec Contributors +# SPDX-License-Identifier: MIT + +pkgnames=(syncthingctl) +pkgdesc="CLI that orchestrates syncthing" +url="https://martchus.github.io/syncthingtray/" +pkgver=2.0.2-1 +timestamp=2025-09-26T16:18Z +section=utils +maintainer="Tom Parker-Shemilt " +license=GPL-2.0-or-later +image=base:v3.3 +makedepends=(build:cmake host:libcpp-utilities-dev host:libcpp-utilities host:libqtforkawesome-dev host:libqtforkawesome) +installdepends=(libcpp-utilities libqtforkawesome) +source=( + https://github.com/Martchus/syncthingtray/archive/refs/tags/v2.0.2.zip +) +sha256sums=( + 01910e27a6f945b6a50de5c06390616ed2e83a82c10046ecfe2cc660b1c52976 +) + +build() { + cmake -B build \ + -DCMAKE_TOOLCHAIN_FILE="/usr/share/cmake/$CHOST.cmake" \ + -DCMAKE_INSTALL_PREFIX="/opt" + cmake --build build + cmake --build build --target install -- DESTDIR=../install +} + +package() { + echo "foo" + exit 1 +} From 1f437ca047002c160089afd1d87f700f35b18413 Mon Sep 17 00:00:00 2001 From: Tom Parker-Shemilt Date: Mon, 3 Nov 2025 20:58:27 +0000 Subject: [PATCH 2/9] Unfudge libcpp-utilities paths --- package/libcpp-utilities/package | 11 +++++++++-- package/libcpp-utilities/targets.cmake.patch | 20 ++++++++++++++++++++ package/qtutilities/package | 1 - package/syncthingctl/package | 2 +- 4 files changed, 30 insertions(+), 4 deletions(-) create mode 100644 package/libcpp-utilities/targets.cmake.patch diff --git a/package/libcpp-utilities/package b/package/libcpp-utilities/package index 38c48a0bc..2ea548098 100644 --- a/package/libcpp-utilities/package +++ b/package/libcpp-utilities/package @@ -11,8 +11,14 @@ section="devel" maintainer="Tom Parker-Shemilt " license=GPL-2.0-or-later image=base:v3.3 -source=("https://github.com/Martchus/cpp-utilities/archive/refs/tags/v5.31.0.zip") -sha256sums=(cbdf3ef53c47fc3c1d8ee20bb1f65290db878408530afe46a285b401af2839a2) +source=( + https://github.com/Martchus/cpp-utilities/archive/refs/tags/v5.31.0.zip + targets.cmake.patch +) +sha256sums=( + cbdf3ef53c47fc3c1d8ee20bb1f65290db878408530afe46a285b401af2839a2 + SKIP +) build() { cmake -B build \ @@ -43,6 +49,7 @@ libcpp-utilities-dev() { install -d "$pkgdir"/opt/lib cp -r "$srcdir"/install/opt/lib/pkgconfig "$pkgdir"/opt/lib cp -r "$srcdir"/install/opt/share "$pkgdir"/opt + (cd $pkgdir/opt/share/c++utilities/cmake && patch -p0 < $srcdir/targets.cmake.patch) cp -r "$srcdir"/install/opt/include "$pkgdir"/opt } } diff --git a/package/libcpp-utilities/targets.cmake.patch b/package/libcpp-utilities/targets.cmake.patch new file mode 100644 index 000000000..b206d0eaf --- /dev/null +++ b/package/libcpp-utilities/targets.cmake.patch @@ -0,0 +1,20 @@ +--- c++utilitiesTargets.cmake.orig 2025-11-03 20:33:08.016186953 +0000 ++++ c++utilitiesTargets.cmake 2025-11-03 20:33:55.701608765 +0000 +@@ -55,7 +55,7 @@ + + set_target_properties(c++utilities PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "CPP_UTILITIES_USE_NATIVE_FILE_BUFFER" +- INTERFACE_INCLUDE_DIRECTORIES "/opt/include" ++ INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include" + ) + + # Create imported target c++utilities-headers +@@ -63,7 +63,7 @@ + + set_target_properties(c++utilities-headers PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "CPP_UTILITIES_USE_NATIVE_FILE_BUFFER" +- INTERFACE_INCLUDE_DIRECTORIES "/opt/include" ++ INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include" + ) + + if(CMAKE_VERSION VERSION_LESS 3.0.0) diff --git a/package/qtutilities/package b/package/qtutilities/package index 6b6e60712..6b361800d 100644 --- a/package/qtutilities/package +++ b/package/qtutilities/package @@ -16,7 +16,6 @@ sha256sums=(7a1047622c1a92760aaf448eee7c4a1b3c30c65bffdce7de1322c402ca0e9e1a) makedepends=(build:cmake build:qtbase5-dev build:qttools5-dev host:libcpp-utilities-dev host:libcpp-utilities) build() { - mkdir /opt/include # FIXME: Workaround for INTERFACE_INCLUDE_DIRECTORIES error in c++utilities cmake -B build \ -DCMAKE_TOOLCHAIN_FILE="/usr/share/cmake/$CHOST.cmake" \ -DQt5Gui_DIR="/usr/lib/x86_64-linux-gnu/cmake/Qt5Gui" \ diff --git a/package/syncthingctl/package b/package/syncthingctl/package index 1a7c4722a..5e82efaaf 100755 --- a/package/syncthingctl/package +++ b/package/syncthingctl/package @@ -12,7 +12,7 @@ maintainer="Tom Parker-Shemilt " license=GPL-2.0-or-later image=base:v3.3 makedepends=(build:cmake host:libcpp-utilities-dev host:libcpp-utilities host:libqtforkawesome-dev host:libqtforkawesome) -installdepends=(libcpp-utilities libqtforkawesome) +installdepends=(libcpp-utilities libqtforkawesome syncthing) source=( https://github.com/Martchus/syncthingtray/archive/refs/tags/v2.0.2.zip ) From 89fe03ec999698b0be2ccd651d7ec5c29e658363 Mon Sep 17 00:00:00 2001 From: Tom Parker-Shemilt Date: Mon, 3 Nov 2025 22:28:07 +0000 Subject: [PATCH 3/9] Fix qtutilities build --- package/qtforkawesome/package | 4 ++-- package/qtutilities/package | 21 ++++++++++++--------- package/qtutilities/targets.cmake.patch | 20 ++++++++++++++++++++ 3 files changed, 34 insertions(+), 11 deletions(-) create mode 100644 package/qtutilities/targets.cmake.patch diff --git a/package/qtforkawesome/package b/package/qtforkawesome/package index b55d84b76..6f579802f 100644 --- a/package/qtforkawesome/package +++ b/package/qtforkawesome/package @@ -10,10 +10,10 @@ timestamp=2025-09-26T16:18Z section="devel" maintainer="Tom Parker-Shemilt " license=GPL-2.0-or-later -image=base:v3.3 +image=qt:v3.3 source=("https://github.com/Martchus/qtforkawesome/archive/refs/tags/v0.3.1.zip") sha256sums=(9e75bffe10aaf01373c3983e64323c9d1bc0f41f932ed8c00c8c43a7a48bfcc5) -makedepends=(build:cmake host:libcpp-utilities-dev host:libcpp-utilities host:libqtutilities host:libqtutilities-dev) +makedepends=(build:cmake host:libcpp-utilities-dev host:libcpp-utilities host:libqtutilities host:libqtutilities-dev build:libyaml-libyaml-perl) build() { cmake -B build \ diff --git a/package/qtutilities/package b/package/qtutilities/package index 6b361800d..c55ce4e8d 100644 --- a/package/qtutilities/package +++ b/package/qtutilities/package @@ -10,21 +10,23 @@ timestamp=2025-09-26T16:18Z section="devel" maintainer="Tom Parker-Shemilt " license=GPL-2.0-or-later -image=base:v3.3 -source=(https://github.com/Martchus/qtutilities/archive/refs/tags/v6.18.2.zip) -sha256sums=(7a1047622c1a92760aaf448eee7c4a1b3c30c65bffdce7de1322c402ca0e9e1a) -makedepends=(build:cmake build:qtbase5-dev build:qttools5-dev host:libcpp-utilities-dev host:libcpp-utilities) +image=qt:v3.3 +source=( + https://github.com/Martchus/qtutilities/archive/refs/tags/v6.18.2.zip + targets.cmake.patch +) +sha256sums=( + 7a1047622c1a92760aaf448eee7c4a1b3c30c65bffdce7de1322c402ca0e9e1a + SKIP +) +makedepends=(build:cmake host:libcpp-utilities-dev host:libcpp-utilities) build() { cmake -B build \ -DCMAKE_TOOLCHAIN_FILE="/usr/share/cmake/$CHOST.cmake" \ - -DQt5Gui_DIR="/usr/lib/x86_64-linux-gnu/cmake/Qt5Gui" \ - -DQt5Core_DIR="/usr/lib/x86_64-linux-gnu/cmake/Qt5Core" \ - -DQt5DBus_DIR="/usr/lib/x86_64-linux-gnu/cmake/Qt5DBus" \ - -DQt5LinguistTools_DIR="/usr/lib/x86_64-linux-gnu/cmake/Qt5LinguistTools" \ - -DQt5Test_DIR="/usr/lib/x86_64-linux-gnu/cmake/Qt5Test" \ -DCMAKE_INSTALL_PREFIX="/opt" \ -DBUILD_SHARED_LIBS=ON \ + -DENABLE_QT_TRANSLATIONS=OFF \ -DWIDGETS_GUI=OFF cmake --build build cmake --build build --target install -- DESTDIR=../install @@ -50,6 +52,7 @@ libqtutilities-dev() { install -d "$pkgdir"/opt/lib cp -r "$srcdir"/install/opt/lib/pkgconfig "$pkgdir"/opt/lib cp -r "$srcdir"/install/opt/share "$pkgdir"/opt + (cd $pkgdir/opt/share/qtutilities/cmake && patch -p0 < $srcdir/targets.cmake.patch) cp -r "$srcdir"/install/opt/include "$pkgdir"/opt } } diff --git a/package/qtutilities/targets.cmake.patch b/package/qtutilities/targets.cmake.patch new file mode 100644 index 000000000..f4f209f3e --- /dev/null +++ b/package/qtutilities/targets.cmake.patch @@ -0,0 +1,20 @@ +--- qtutilitiesTargets.cmake.orig 2025-11-03 22:15:18.324436027 +0000 ++++ qtutilitiesTargets.cmake 2025-11-03 22:15:38.028569434 +0000 +@@ -55,7 +55,7 @@ + + set_target_properties(qtutilities PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "QT_UTILITIES_SUPPORT_DBUS_NOTIFICATIONS" +- INTERFACE_INCLUDE_DIRECTORIES "/opt/include" ++ INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include" + INTERFACE_LINK_LIBRARIES "Qt5::Gui;Qt5::Core" + ) + +@@ -64,7 +64,7 @@ + + set_target_properties(qtutilities-headers PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "QT_UTILITIES_SUPPORT_DBUS_NOTIFICATIONS" +- INTERFACE_INCLUDE_DIRECTORIES "/opt/include" ++ INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include" + ) + + if(CMAKE_VERSION VERSION_LESS 3.0.0) From 2069e3d780f807d67bb2c0111e7245976b629f3b Mon Sep 17 00:00:00 2001 From: Tom Parker-Shemilt Date: Mon, 3 Nov 2025 23:18:23 +0000 Subject: [PATCH 4/9] Fix qtforkawesome --- package/qtforkawesome/package | 21 ++++++- package/qtforkawesome/qt5-split.patch | 82 +++++++++++++++++++++++++++ 2 files changed, 100 insertions(+), 3 deletions(-) create mode 100644 package/qtforkawesome/qt5-split.patch diff --git a/package/qtforkawesome/package b/package/qtforkawesome/package index 6f579802f..8443b8b53 100644 --- a/package/qtforkawesome/package +++ b/package/qtforkawesome/package @@ -11,16 +11,31 @@ section="devel" maintainer="Tom Parker-Shemilt " license=GPL-2.0-or-later image=qt:v3.3 -source=("https://github.com/Martchus/qtforkawesome/archive/refs/tags/v0.3.1.zip") -sha256sums=(9e75bffe10aaf01373c3983e64323c9d1bc0f41f932ed8c00c8c43a7a48bfcc5) +source=( + "https://github.com/Martchus/qtforkawesome/archive/refs/tags/v0.3.1.zip" + "https://raw.githubusercontent.com/ForkAwesome/Fork-Awesome/1e3849530d0266ece3a883649e1398414b92241d/fonts/forkawesome-webfont.ttf" + "https://raw.githubusercontent.com/ForkAwesome/Fork-Awesome/0237ab8eafeeacb896e008f744be6d9d717f44b0/src/icons/icons.yml" + "qt5-split.patch" +) +noextract=(qt5-split.patch icons.yml forkawesome-webfont.ttf) +sha256sums=( + 9e75bffe10aaf01373c3983e64323c9d1bc0f41f932ed8c00c8c43a7a48bfcc5 + 4f319287827e35f841069eb471c092eccf97d2f7830aa4d8bd7301ded418bf49 + 1e588fc6c93737add8443a98d2bbd6b75537d173da6b613e37aaff3fc1f80c92 + SKIP +) makedepends=(build:cmake host:libcpp-utilities-dev host:libcpp-utilities host:libqtutilities host:libqtutilities-dev build:libyaml-libyaml-perl) build() { + patch -p1 -R < ./qt5-split.patch cmake -B build \ -DCMAKE_TOOLCHAIN_FILE="/usr/share/cmake/$CHOST.cmake" \ -DCMAKE_INSTALL_PREFIX="/opt" \ - -DBUILD_SHARED_LIBS=ON + -DBUILD_SHARED_LIBS=ON \ + -DFORK_AWESOME_ICON_DEFINITIONS=$(realpath $srcdir/icons.yml) cmake --build build + rm -f build/qtforkawesome/forkawesome-webfont.ttf + cp $(realpath $srcdir/forkawesome-webfont.ttf) build/qtforkawesome/forkawesome-webfont.ttf cmake --build build --target install -- DESTDIR=../install } diff --git a/package/qtforkawesome/qt5-split.patch b/package/qtforkawesome/qt5-split.patch new file mode 100644 index 000000000..e2c5da076 --- /dev/null +++ b/package/qtforkawesome/qt5-split.patch @@ -0,0 +1,82 @@ +From 82415ec8c4f714f7e8e2dbd578ddca85f56ea57e Mon Sep 17 00:00:00 2001 +From: Martchus +Date: Sat, 18 Jan 2025 16:35:47 +0100 +Subject: [PATCH] Avoid QString allocations in icon engine and Qt Quick image + provider + +* Use QStringView unconditionally to make things easier, this means Qt 5.10 + is now definitely required +* Use QColor overload that takes QStringView (seems available as of Qt + 5.10) +* Add `iconFromId()` overload that takes QStringView (breaks code that took + the address of that function but that is supposedly acceptable) +--- + iconengineplugin/iconengine.cpp | 8 +++----- + qtforkawesome/utils.cpp | 13 ++++++++++++- + qtforkawesome/utils.h | 3 +++ + qtquickforkawesome/imageprovider.cpp | 8 +++----- + 4 files changed, 21 insertions(+), 11 deletions(-) + +diff --git a/iconengineplugin/iconengine.cpp b/iconengineplugin/iconengine.cpp +index aa0597c..05bfe7f 100644 +--- a/iconengineplugin/iconengine.cpp ++++ b/iconengineplugin/iconengine.cpp +@@ -5,8 +5,6 @@ + + #include "resources/config.h" + +-#include +- + #include + #include + #include +@@ -90,12 +88,12 @@ void IconEngine::addFile(const QString &fileName, const QSize &, QIcon::Mode mod + if (!fileName.endsWith(QLatin1String(".fa"), Qt::CaseInsensitive)) { + return; + } +- const auto parts = QtUtilities::midRef(fileName, 0, fileName.size() - 3).split(QChar(':')); ++ const auto parts = QStringView(fileName).mid(0, fileName.size() - 3).split(QChar(':')); + if (parts.empty()) { + return; + } +- m_char = static_cast(iconFromId(parts.at(0).toString())); +- m_color = parts.size() > 1 ? QColor(parts.at(1).toString()) : QColor(); ++ m_char = static_cast(iconFromId(parts.at(0))); ++ m_color = parts.size() > 1 ? QColor(parts.at(1)) : QColor(); + } + + QString IconEngine::key() const +diff --git a/qtquickforkawesome/imageprovider.cpp b/qtquickforkawesome/imageprovider.cpp +index 15e4689..9e751f4 100644 +--- a/qtquickforkawesome/imageprovider.cpp ++++ b/qtquickforkawesome/imageprovider.cpp +@@ -3,8 +3,6 @@ + #include + #include + +-#include +- + #include + #include + +@@ -22,17 +20,17 @@ QuickImageProvider::QuickImageProvider( + + QPixmap QuickImageProvider::requestPixmap(const QString &id, QSize *size, const QSize &requestedSize) + { +- const auto parts = QtUtilities::splitRef(id, QChar(':')); ++ const auto parts = QStringView(id).split(QChar(':')); + if (parts.empty()) { + return QPixmap(); + } +- const auto icon = iconFromId(parts.front().toString()); ++ const auto icon = iconFromId(parts.front()); + if (!isIconValid(icon)) { + return QPixmap(); + } + auto color = m_defaultColor; + if (parts.size() > 1) { +- if (const auto specifiedColor = QColor(parts.at(1).toString()); specifiedColor.isValid()) { ++ if (const auto specifiedColor = QColor(parts.at(1)); specifiedColor.isValid()) { + color = specifiedColor; + } + } From 4fc3c17722a2e2082db828c90bfe94c936762eec Mon Sep 17 00:00:00 2001 From: Tom Parker-Shemilt Date: Mon, 3 Nov 2025 23:19:11 +0000 Subject: [PATCH 5/9] Partial syncthingctl build --- package/syncthingctl/package | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/package/syncthingctl/package b/package/syncthingctl/package index 5e82efaaf..eff2c96d8 100755 --- a/package/syncthingctl/package +++ b/package/syncthingctl/package @@ -10,9 +10,9 @@ timestamp=2025-09-26T16:18Z section=utils maintainer="Tom Parker-Shemilt " license=GPL-2.0-or-later -image=base:v3.3 -makedepends=(build:cmake host:libcpp-utilities-dev host:libcpp-utilities host:libqtforkawesome-dev host:libqtforkawesome) -installdepends=(libcpp-utilities libqtforkawesome syncthing) +image=qt:v3.3 +makedepends=(build:cmake host:libcpp-utilities-dev host:libcpp-utilities host:libqtforkawesome-dev host:libqtforkawesome host:libqtutilities host:libqtutilities-dev) +installdepends=(libcpp-utilities libqtutilities libqtforkawesome syncthing) source=( https://github.com/Martchus/syncthingtray/archive/refs/tags/v2.0.2.zip ) @@ -23,7 +23,11 @@ sha256sums=( build() { cmake -B build \ -DCMAKE_TOOLCHAIN_FILE="/usr/share/cmake/$CHOST.cmake" \ - -DCMAKE_INSTALL_PREFIX="/opt" + -DCMAKE_INSTALL_PREFIX="/opt" \ + -DENABLE_QT_TRANSLATIONS=OFF \ + -DUSE_BOOST_PROCESS=OFF \ + -DNO_MODEL=ON \ + -DNO_FILE_ITEM_ACTION_PLUGIN=ON cmake --build build cmake --build build --target install -- DESTDIR=../install } From d06ba59787461d2811bcd5b47518ae9bcdeab861 Mon Sep 17 00:00:00 2001 From: Tom Parker-Shemilt Date: Tue, 4 Nov 2025 21:43:58 +0000 Subject: [PATCH 6/9] Remove qtforkawesome patch --- package/qtforkawesome/package | 10 ++-- package/qtforkawesome/qt5-split.patch | 82 --------------------------- 2 files changed, 4 insertions(+), 88 deletions(-) delete mode 100644 package/qtforkawesome/qt5-split.patch diff --git a/package/qtforkawesome/package b/package/qtforkawesome/package index 8443b8b53..2a8f2c824 100644 --- a/package/qtforkawesome/package +++ b/package/qtforkawesome/package @@ -11,23 +11,21 @@ section="devel" maintainer="Tom Parker-Shemilt " license=GPL-2.0-or-later image=qt:v3.3 +# We need the commit version for https://github.com/Martchus/qtforkawesome/commit/bebb422f4c7bd605a335f40f88e289588757ceef which fixes the Qt compatibility source=( - "https://github.com/Martchus/qtforkawesome/archive/refs/tags/v0.3.1.zip" + "https://github.com/Martchus/qtforkawesome/archive/42fe0be74ad6ee075d91f2b96d9bc3eb7717c9d5.zip" "https://raw.githubusercontent.com/ForkAwesome/Fork-Awesome/1e3849530d0266ece3a883649e1398414b92241d/fonts/forkawesome-webfont.ttf" "https://raw.githubusercontent.com/ForkAwesome/Fork-Awesome/0237ab8eafeeacb896e008f744be6d9d717f44b0/src/icons/icons.yml" - "qt5-split.patch" ) -noextract=(qt5-split.patch icons.yml forkawesome-webfont.ttf) +noextract=(icons.yml forkawesome-webfont.ttf) sha256sums=( - 9e75bffe10aaf01373c3983e64323c9d1bc0f41f932ed8c00c8c43a7a48bfcc5 + 0f7a2fdcbefb7d9b7528128ad83be85da1cfff6d84d627539dd827a36012fc7f 4f319287827e35f841069eb471c092eccf97d2f7830aa4d8bd7301ded418bf49 1e588fc6c93737add8443a98d2bbd6b75537d173da6b613e37aaff3fc1f80c92 - SKIP ) makedepends=(build:cmake host:libcpp-utilities-dev host:libcpp-utilities host:libqtutilities host:libqtutilities-dev build:libyaml-libyaml-perl) build() { - patch -p1 -R < ./qt5-split.patch cmake -B build \ -DCMAKE_TOOLCHAIN_FILE="/usr/share/cmake/$CHOST.cmake" \ -DCMAKE_INSTALL_PREFIX="/opt" \ diff --git a/package/qtforkawesome/qt5-split.patch b/package/qtforkawesome/qt5-split.patch deleted file mode 100644 index e2c5da076..000000000 --- a/package/qtforkawesome/qt5-split.patch +++ /dev/null @@ -1,82 +0,0 @@ -From 82415ec8c4f714f7e8e2dbd578ddca85f56ea57e Mon Sep 17 00:00:00 2001 -From: Martchus -Date: Sat, 18 Jan 2025 16:35:47 +0100 -Subject: [PATCH] Avoid QString allocations in icon engine and Qt Quick image - provider - -* Use QStringView unconditionally to make things easier, this means Qt 5.10 - is now definitely required -* Use QColor overload that takes QStringView (seems available as of Qt - 5.10) -* Add `iconFromId()` overload that takes QStringView (breaks code that took - the address of that function but that is supposedly acceptable) ---- - iconengineplugin/iconengine.cpp | 8 +++----- - qtforkawesome/utils.cpp | 13 ++++++++++++- - qtforkawesome/utils.h | 3 +++ - qtquickforkawesome/imageprovider.cpp | 8 +++----- - 4 files changed, 21 insertions(+), 11 deletions(-) - -diff --git a/iconengineplugin/iconengine.cpp b/iconengineplugin/iconengine.cpp -index aa0597c..05bfe7f 100644 ---- a/iconengineplugin/iconengine.cpp -+++ b/iconengineplugin/iconengine.cpp -@@ -5,8 +5,6 @@ - - #include "resources/config.h" - --#include -- - #include - #include - #include -@@ -90,12 +88,12 @@ void IconEngine::addFile(const QString &fileName, const QSize &, QIcon::Mode mod - if (!fileName.endsWith(QLatin1String(".fa"), Qt::CaseInsensitive)) { - return; - } -- const auto parts = QtUtilities::midRef(fileName, 0, fileName.size() - 3).split(QChar(':')); -+ const auto parts = QStringView(fileName).mid(0, fileName.size() - 3).split(QChar(':')); - if (parts.empty()) { - return; - } -- m_char = static_cast(iconFromId(parts.at(0).toString())); -- m_color = parts.size() > 1 ? QColor(parts.at(1).toString()) : QColor(); -+ m_char = static_cast(iconFromId(parts.at(0))); -+ m_color = parts.size() > 1 ? QColor(parts.at(1)) : QColor(); - } - - QString IconEngine::key() const -diff --git a/qtquickforkawesome/imageprovider.cpp b/qtquickforkawesome/imageprovider.cpp -index 15e4689..9e751f4 100644 ---- a/qtquickforkawesome/imageprovider.cpp -+++ b/qtquickforkawesome/imageprovider.cpp -@@ -3,8 +3,6 @@ - #include - #include - --#include -- - #include - #include - -@@ -22,17 +20,17 @@ QuickImageProvider::QuickImageProvider( - - QPixmap QuickImageProvider::requestPixmap(const QString &id, QSize *size, const QSize &requestedSize) - { -- const auto parts = QtUtilities::splitRef(id, QChar(':')); -+ const auto parts = QStringView(id).split(QChar(':')); - if (parts.empty()) { - return QPixmap(); - } -- const auto icon = iconFromId(parts.front().toString()); -+ const auto icon = iconFromId(parts.front()); - if (!isIconValid(icon)) { - return QPixmap(); - } - auto color = m_defaultColor; - if (parts.size() > 1) { -- if (const auto specifiedColor = QColor(parts.at(1).toString()); specifiedColor.isValid()) { -+ if (const auto specifiedColor = QColor(parts.at(1)); specifiedColor.isValid()) { - color = specifiedColor; - } - } From c519696afc9a5c0a025efa089776b7a152c89a50 Mon Sep 17 00:00:00 2001 From: Tom Parker-Shemilt Date: Tue, 4 Nov 2025 21:55:25 +0000 Subject: [PATCH 7/9] syncthingctl now builds --- package/syncthingctl/package | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/package/syncthingctl/package b/package/syncthingctl/package index eff2c96d8..7d9a206e2 100755 --- a/package/syncthingctl/package +++ b/package/syncthingctl/package @@ -11,13 +11,14 @@ section=utils maintainer="Tom Parker-Shemilt " license=GPL-2.0-or-later image=qt:v3.3 -makedepends=(build:cmake host:libcpp-utilities-dev host:libcpp-utilities host:libqtforkawesome-dev host:libqtforkawesome host:libqtutilities host:libqtutilities-dev) -installdepends=(libcpp-utilities libqtutilities libqtforkawesome syncthing) +makedepends=(build:cmake host:libcpp-utilities-dev host:libcpp-utilities host:libqtutilities host:libqtutilities-dev) +installdepends=(libcpp-utilities libqtutilities syncthing) +# We need commit version for Qt version and qtforkawesome removal patches source=( - https://github.com/Martchus/syncthingtray/archive/refs/tags/v2.0.2.zip + https://github.com/Martchus/syncthingtray/archive/67a4ced74d79b5152e438464f60b7da6f40f9a4a.zip ) sha256sums=( - 01910e27a6f945b6a50de5c06390616ed2e83a82c10046ecfe2cc660b1c52976 + 9c51b2c0e4e3671e75cb9bde2b0cbb2b4db5794ddfe2a05ea42bfb1ca476f400 ) build() { @@ -27,12 +28,15 @@ build() { -DENABLE_QT_TRANSLATIONS=OFF \ -DUSE_BOOST_PROCESS=OFF \ -DNO_MODEL=ON \ - -DNO_FILE_ITEM_ACTION_PLUGIN=ON + -DNO_FILE_ITEM_ACTION_PLUGIN=ON \ + -DNO_PLASMOID=ON \ + -DNO_WIDGETS=ON \ + -DNO_TRAY=ON cmake --build build cmake --build build --target install -- DESTDIR=../install } package() { - echo "foo" - exit 1 + install -D -m 755 -t "$pkgdir"/opt/bin \ + "$srcdir"/install/opt/bin/syncthingctl } From 0760a33e089d95d9c944360fd14cd7614a3855d7 Mon Sep 17 00:00:00 2001 From: Tom Parker-Shemilt Date: Sat, 8 Nov 2025 22:46:23 +0000 Subject: [PATCH 8/9] Timestamp fixes --- package/libcpp-utilities/package | 2 +- package/qtforkawesome/package | 2 +- package/qtutilities/package | 2 +- package/syncthingctl/package | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package/libcpp-utilities/package b/package/libcpp-utilities/package index 2ea548098..a6504d4bf 100644 --- a/package/libcpp-utilities/package +++ b/package/libcpp-utilities/package @@ -6,7 +6,7 @@ pkgnames=(libcpp-utilities libcpp-utilities-dev) pkgdesc="Common C++ classes and routines used by Martchus' applications" url=https://github.com/Martchus/cpp-utilities pkgver=5.31.0-1 -timestamp=2025-09-26T16:18Z +timestamp=2025-09-20T23:53Z section="devel" maintainer="Tom Parker-Shemilt " license=GPL-2.0-or-later diff --git a/package/qtforkawesome/package b/package/qtforkawesome/package index 2a8f2c824..660617820 100644 --- a/package/qtforkawesome/package +++ b/package/qtforkawesome/package @@ -6,7 +6,7 @@ pkgnames=(libqtforkawesome libqtforkawesome-dev) pkgdesc="Library that bundles ForkAwesome for use within Qt applications" url=https://github.com/Martchus/qtforkawesome pkgver=0.3.1-1 -timestamp=2025-09-26T16:18Z +timestamp=2025-11-04T20:30Z section="devel" maintainer="Tom Parker-Shemilt " license=GPL-2.0-or-later diff --git a/package/qtutilities/package b/package/qtutilities/package index c55ce4e8d..2fc45ebb2 100644 --- a/package/qtutilities/package +++ b/package/qtutilities/package @@ -6,7 +6,7 @@ pkgnames=(libqtutilities libqtutilities-dev) pkgdesc="Common Qt related C++ classes and routines used by Martchus' applications" url=https://github.com/Martchus/qtutilities pkgver=6.18.2-1 -timestamp=2025-09-26T16:18Z +timestamp=2025-09-24T09:03Z section="devel" maintainer="Tom Parker-Shemilt " license=GPL-2.0-or-later diff --git a/package/syncthingctl/package b/package/syncthingctl/package index 7d9a206e2..70ccd33c7 100755 --- a/package/syncthingctl/package +++ b/package/syncthingctl/package @@ -6,7 +6,7 @@ pkgnames=(syncthingctl) pkgdesc="CLI that orchestrates syncthing" url="https://martchus.github.io/syncthingtray/" pkgver=2.0.2-1 -timestamp=2025-09-26T16:18Z +timestamp=2025-11-04T08:50Z section=utils maintainer="Tom Parker-Shemilt " license=GPL-2.0-or-later From 5fcc72d76efffda455bd15761b106e55965b1cfc Mon Sep 17 00:00:00 2001 From: Tom Parker-Shemilt Date: Mon, 10 Nov 2025 21:38:38 +0000 Subject: [PATCH 9/9] Use released versions for syncthingctl and qtforkawesome --- package/qtforkawesome/package | 9 ++++----- package/syncthingctl/package | 9 ++++----- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/package/qtforkawesome/package b/package/qtforkawesome/package index 660617820..81ef0969b 100644 --- a/package/qtforkawesome/package +++ b/package/qtforkawesome/package @@ -5,21 +5,20 @@ pkgnames=(libqtforkawesome libqtforkawesome-dev) pkgdesc="Library that bundles ForkAwesome for use within Qt applications" url=https://github.com/Martchus/qtforkawesome -pkgver=0.3.1-1 -timestamp=2025-11-04T20:30Z +pkgver=0.3.2-1 +timestamp=2025-11-04T20:54Z section="devel" maintainer="Tom Parker-Shemilt " license=GPL-2.0-or-later image=qt:v3.3 -# We need the commit version for https://github.com/Martchus/qtforkawesome/commit/bebb422f4c7bd605a335f40f88e289588757ceef which fixes the Qt compatibility source=( - "https://github.com/Martchus/qtforkawesome/archive/42fe0be74ad6ee075d91f2b96d9bc3eb7717c9d5.zip" + "https://github.com/Martchus/qtforkawesome/archive/refs/tags/v0.3.2.zip" "https://raw.githubusercontent.com/ForkAwesome/Fork-Awesome/1e3849530d0266ece3a883649e1398414b92241d/fonts/forkawesome-webfont.ttf" "https://raw.githubusercontent.com/ForkAwesome/Fork-Awesome/0237ab8eafeeacb896e008f744be6d9d717f44b0/src/icons/icons.yml" ) noextract=(icons.yml forkawesome-webfont.ttf) sha256sums=( - 0f7a2fdcbefb7d9b7528128ad83be85da1cfff6d84d627539dd827a36012fc7f + 945fee08e5de7521571f4abb2fbe37fd3013079b3ffeb1cc6c36aaff538c6d47 4f319287827e35f841069eb471c092eccf97d2f7830aa4d8bd7301ded418bf49 1e588fc6c93737add8443a98d2bbd6b75537d173da6b613e37aaff3fc1f80c92 ) diff --git a/package/syncthingctl/package b/package/syncthingctl/package index 70ccd33c7..2b4fe5dc8 100755 --- a/package/syncthingctl/package +++ b/package/syncthingctl/package @@ -5,20 +5,19 @@ pkgnames=(syncthingctl) pkgdesc="CLI that orchestrates syncthing" url="https://martchus.github.io/syncthingtray/" -pkgver=2.0.2-1 -timestamp=2025-11-04T08:50Z +pkgver=2.0.3-1 +timestamp=2025-11-04T22:54:13Z section=utils maintainer="Tom Parker-Shemilt " license=GPL-2.0-or-later image=qt:v3.3 makedepends=(build:cmake host:libcpp-utilities-dev host:libcpp-utilities host:libqtutilities host:libqtutilities-dev) installdepends=(libcpp-utilities libqtutilities syncthing) -# We need commit version for Qt version and qtforkawesome removal patches source=( - https://github.com/Martchus/syncthingtray/archive/67a4ced74d79b5152e438464f60b7da6f40f9a4a.zip + https://github.com/Martchus/syncthingtray/archive/refs/tags/v2.0.3.zip ) sha256sums=( - 9c51b2c0e4e3671e75cb9bde2b0cbb2b4db5794ddfe2a05ea42bfb1ca476f400 + 8edeb6e6934ba54f175dccf0e3f7063aa01c2f07bf2e2361334bfe004e3a92ce ) build() {