From 59718d616adca5ed56ba2f5680a610f615bac088 Mon Sep 17 00:00:00 2001 From: Martchus Date: Fri, 23 Oct 2020 17:31:10 +0200 Subject: [PATCH] Add Qt 6 versions of own projects --- passwordmanager/qt6/PKGBUILD | 47 ++++++++++++++++++ qtutilities/qt6/PKGBUILD | 45 +++++++++++++++++ syncthingtray/qt6/PKGBUILD | 93 ++++++++++++++++++++++++++++++++++++ tageditor/qt6/PKGBUILD | 69 ++++++++++++++++++++++++++ 4 files changed, 254 insertions(+) create mode 100644 passwordmanager/qt6/PKGBUILD create mode 100644 qtutilities/qt6/PKGBUILD create mode 100644 syncthingtray/qt6/PKGBUILD create mode 100644 tageditor/qt6/PKGBUILD diff --git a/passwordmanager/qt6/PKGBUILD b/passwordmanager/qt6/PKGBUILD new file mode 100644 index 00000000..f93087ef --- /dev/null +++ b/passwordmanager/qt6/PKGBUILD @@ -0,0 +1,47 @@ +# Maintainer: Martchus + +# All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where +# you also find the URL of a binary repository. + +# set whether the Qt Quick GUI should be enabled: set to either ON or OFF +_quick_gui=${PASSWORD_MANAGER_QUICK_GUI:-OFF} + +_reponame=passwordmanager +_cfg=qt6 +pkgname=passwordmanager-$_cfg +_name=${pkgname%-$_cfg} +pkgver=4.1.5 +pkgrel=1 +arch=('i686' 'x86_64' 'armv6h' 'armv7h' 'aarch64') +pkgdesc='A simple password store using AES-256-CBC encryption via OpenSSL' +license=('GPL') +depends=('qt6-base' 'qtutilities-qt6' 'passwordfile' 'openssl' 'libxkbcommon-x11' 'desktop-file-utils' 'xdg-utils') +makedepends=('cmake' 'ninja' 'qt6-tools' 'mesa' 'kirigami2') +url="https://github.com/Martchus/${_reponame}" +source=("${_name}-${pkgver}.tar.gz::https://github.com/Martchus/${_reponame}/archive/v${pkgver}.tar.gz") +sha256sums=('4e5ef1c6dfcf9b642c4552cd4be2f88344238956f157f69defab24db655f5cda') + +# add further dependencies for the Qt Quick GUI (only kirigami2 is "pluggable") +if [[ $_quick_gui == ON ]]; then + depends+=('qt6-quickcontrols2') + optdepends+=('kirigami2: Qt Quick GUI') +fi + +build() { + cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame-$pkgver}" + cmake -G Ninja \ + -DCMAKE_BUILD_TYPE:STRING='Release' \ + -DCMAKE_INSTALL_PREFIX:PATH='/usr' \ + -DCONFIGURATION_NAME:STRING="$_cfg" \ + -DCONFIGURATION_PACKAGE_SUFFIX_QTUTILITIES:STRING="-$_cfg" \ + -DPASSWORD_MANAGER_CONFIGURATION_TARGET_SUFFIX:STRING="$_cfg" \ + -DQT_PACKAGE_PREFIX:STRING='Qt6' \ + -DENABLE_QT_TRANSLATIONS:BOOL=OFF \ + -DQUICK_GUI="$_quick_gui" . + ninja +} + +package() { + cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame-$pkgver}" + DESTDIR="${pkgdir}" ninja install +} diff --git a/qtutilities/qt6/PKGBUILD b/qtutilities/qt6/PKGBUILD new file mode 100644 index 00000000..65a32c9c --- /dev/null +++ b/qtutilities/qt6/PKGBUILD @@ -0,0 +1,45 @@ +# Maintainer: Martchus + +# All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where +# you also find the URL of a binary repository. + +_reponame=qtutilities +_cfg=qt6 +pkgname=qtutilities-$_cfg +_name=${pkgname%-$_cfg} +pkgver=6.3.0 +pkgrel=1 +arch=('i686' 'x86_64' 'armv6h' 'armv7h' 'aarch64') +pkgdesc='Common Qt related C++ classes and routines used by my applications such as dialogs, widgets and models (using Qt 6)' +license=('GPL') +depends=('c++utilities' 'qt6-base') +makedepends=('cmake' 'ninja' 'qt6-tools' 'mesa') +optdepends=("$_name-doc: API documentation") +url="https://github.com/Martchus/${_reponame}" +source=("${_name}-${pkgver}.tar.gz::https://github.com/Martchus/${_reponame}/archive/v${pkgver}.tar.gz") +sha256sums=('e58f571d69e357b877a575b95aea82d6ed32043cefcc7f59c8c6f7cf513a6ccd') + +build() { + cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame-$pkgver}" + cmake \ + -G Ninja \ + -DCMAKE_BUILD_TYPE:STRING='Release' \ + -DCMAKE_INSTALL_PREFIX:PATH='/usr' \ + -DCONFIGURATION_NAME:STRING="$_cfg" \ + -DCONFIGURATION_TARGET_SUFFIX:STRING="$_cfg" \ + -DQT_PACKAGE_PREFIX:STRING='Qt6' \ + -DENABLE_QT_TRANSLATIONS:BOOL=OFF \ + -DBUILD_SHARED_LIBS:BOOL=ON \ + . + ninja +} + +check() { + cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame-$pkgver}" + QT_QPA_PLATFORM=offscreen ninja check +} + +package() { + cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame-$pkgver}" + DESTDIR="${pkgdir}" ninja install +} diff --git a/syncthingtray/qt6/PKGBUILD b/syncthingtray/qt6/PKGBUILD new file mode 100644 index 00000000..10e387e9 --- /dev/null +++ b/syncthingtray/qt6/PKGBUILD @@ -0,0 +1,93 @@ +# Maintainer: Martchus + +# All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where +# you also find the URL of a binary repository. + +# if tests fail due to timeout, you can try to increase the timeout +# by setting SYNCTHING_TEST_TIMEOUT_FACTOR + +# set the web view provider: either webkit, webengine, auto or none +_webview_provider=${SYNCTHING_TRAY_WEBVIEW_PROVIDER:-none} + +# set the JavaScript provider: either script, qml, auto or none +_js_provider=${SYNCTHING_TRAY_JS_PROVIDER:-qml} + +# set to non-empty string to enable KIO plugin to show Syncthing actions in +# Dolphin file browser +_enable_kio_plugin=${SYNCTHING_TRAY_ENABLE_KIO_PLUGIN:-0} + +# set to non-empty string to enable Plasmoid for Plasma 5 desktop +_enable_plasmoid=${SYNCTHING_TRAY_ENABLE_PLASMOID:-0} + +[[ $_enable_kio_plugin == 0 ]] && _enable_kio_plugin= +[[ $_enable_plasmoid == 0 ]] && _enable_plasmoid= + +_reponame=syncthingtray +_cfg=qt6 +pkgname=syncthingtray-$_cfg +_name=${pkgname%-$_cfg} +pkgver=1.0.0 +pkgrel=1 +arch=('i686' 'x86_64' 'armv6h' 'armv7h' 'aarch64') +pkgdesc='Tray application for Syncthing (using Qt 6)' +license=('GPL') +depends=('qtutilities-qt6' 'qt6-svg' 'openssl' 'desktop-file-utils' 'xdg-utils') +[[ $_webview_provider == none ]] && depends+=('qt6-base') +[[ $_webview_provider == webkit ]] && depends+=('qt6-webkit') +[[ $_webview_provider == webengine ]] && depends+=('qt6-webengine') +[[ $_js_provider == script ]] && depends+=('qt6-script') +[[ $_js_provider == qml ]] && depends+=('qt6-declarative') +[[ $_enable_kio_plugin ]] && optdepends+=('kio: KIO plugin for Syncthing actions in Dolphin') +[[ $_enable_plasmoid ]] && optdepends+=('plasma-workspace: Plasmoid for Plasma 6 desktop') +makedepends=('cmake' 'ninja' 'qt6-tools' 'mesa') +checkdepends=('cppunit' 'syncthing' 'iproute2') +[[ $_enable_kio_plugin ]] && makedepends+=('kio') +[[ $_enable_plasmoid ]] && makedepends+=('plasma-framework' 'extra-cmake-modules') +url="https://github.com/Martchus/${_reponame}" +source=("${_name}-${pkgver}.tar.gz::https://github.com/Martchus/${_reponame}/archive/v${pkgver}.tar.gz") +sha256sums=('fe8358c74862511046466d1cbfe216a255ba8d390b464369514e4404e3747b83') + +ephemeral_port() { + comm -23 <(seq 49152 65535) <(ss -tan | awk '{print $4}' | cut -d':' -f2 | grep "[0-9]\{1,5\}" | sort | uniq) | shuf | head -n 1 +} + +build() { + cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame-$pkgver}" + + local additional_args= + [[ $_enable_kio_plugin ]] || additional_args+=' -DNO_FILE_ITEM_ACTION_PLUGIN=ON' + [[ $_enable_plasmoid ]] || additional_args+=' -DNO_PLASMOID=ON' + + cmake \ + -G Ninja \ + -DCMAKE_BUILD_TYPE:STRING='Release' \ + -DCMAKE_INSTALL_PREFIX:PATH='/usr' \ + -DCONFIGURATION_NAME:STRING="$_cfg" \ + -DCONFIGURATION_PACKAGE_SUFFIX_QTUTILITIES:STRING="-$_cfg" \ + -DLIB_SYNCTHING_CONNECTOR_CONFIGURATION_TARGET_SUFFIX:STRING="$_cfg" \ + -DSYNCTHINGFILEITEMACTION_CONFIGURATION_TARGET_SUFFIX:STRING="$_cfg" \ + -DLIB_SYNCTHING_MODEL_CONFIGURATION_TARGET_SUFFIX:STRING="$_cfg" \ + -DSYNCTHINGPLASMOID_CONFIGURATION_TARGET_SUFFIX:STRING="$_cfg" \ + -DSYNCTHINGWIDGETS_CONFIGURATION_TARGET_SUFFIX:STRING="$_cfg" \ + -DSYNCTHINGCTL_CONFIGURATION_TARGET_SUFFIX:STRING="$_cfg" \ + -DSYNCTHINGTRAY_CONFIGURATION_TARGET_SUFFIX:STRING="$_cfg" \ + -DQT_PACKAGE_PREFIX:STRING='Qt6' \ + -DENABLE_QT_TRANSLATIONS:BOOL=OFF \ + -DBUILD_SHARED_LIBS:BOOL=ON \ + -DWEBVIEW_PROVIDER="${_webview_provider}" \ + -DJS_PROVIDER="${_js_provider}" \ + -DSYSTEMD_SUPPORT=ON \ + $additional_args \ + . + ninja +} + +check() { + cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame-$pkgver}" + SYNCTHING_PORT=$(ephemeral_port) SYNCTHING_TEST_TIMEOUT_FACTOR=3 ninja check +} + +package() { + cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame-$pkgver}" + DESTDIR="${pkgdir}" ninja install +} diff --git a/tageditor/qt6/PKGBUILD b/tageditor/qt6/PKGBUILD new file mode 100644 index 00000000..4dd39012 --- /dev/null +++ b/tageditor/qt6/PKGBUILD @@ -0,0 +1,69 @@ +# Maintainer: Martchus + +# All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where +# you also find the URL of a binary repository. + +# set the web view provider: either webkit, webengine, auto or none +_webview_provider=${TAGEDITOR_WEBVIEW_PROVIDER:-none} + +# set the JavaScript provider: either script, qml, auto or none +_js_provider=${TAGEDITOR_JS_PROVIDER:-qml} + +# whether the experimental JSON export is enabled: ON or OFF +_json_export=${TAGEDITOR_JSON_EXPORT:-ON} + +_reponame=tageditor +_cfg=qt6 +pkgname=tageditor-$_cfg +_name=${pkgname%-$_cfg} +pkgver=3.3.9 +pkgrel=1 +arch=('i686' 'x86_64' 'armv6h' 'armv7h' 'aarch64') +pkgdesc='A tag editor with Qt GUI and command-line interface supporting MP4/M4A/AAC (iTunes), ID3, Vorbis, Opus, FLAC and Matroska (using Qt 6)' +license=('GPL') +depends=('qtutilities-qt6' 'tagparser' 'desktop-file-utils' 'xdg-utils') +[[ $_webview_provider == none ]] && [[ $_js_provider == none ]] && depends+=('qt6-base') +[[ $_webview_provider == webkit ]] && depends+=('qt6-webkit') +[[ $_webview_provider == webengine ]] && depends+=('qt6-webengine') +[[ $_js_provider == script ]] && depends+=('qt6-script') +[[ $_js_provider == qml ]] && depends+=('qt6-declarative') +makedepends=('cmake' 'ninja' 'qt6-tools' 'mesa') +[[ $_json_export == ON ]] && makedepends+=('reflective-rapidjson') +checkdepends=('cppunit' 'jq') +url="https://github.com/Martchus/${_reponame}" +source=("${_name}-${pkgver}.tar.gz::https://github.com/Martchus/${_reponame}/archive/v${pkgver}.tar.gz") +sha256sums=('1ab9f843788046834ded52b99606908fde9327ca975376418ebf44139ca522ba') + +build() { + cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame-$pkgver}" + cmake \ + -G Ninja \ + -DCMAKE_BUILD_TYPE:STRING='Release' \ + -DCMAKE_INSTALL_PREFIX:PATH='/usr' \ + -DCONFIGURATION_NAME:STRING="$_cfg" \ + -DCONFIGURATION_PACKAGE_SUFFIX_QTUTILITIES:STRING="-$_cfg" \ + -DTAGEDITOR_CONFIGURATION_TARGET_SUFFIX:STRING="$_cfg" \ + -DQT_PACKAGE_PREFIX:STRING='Qt6' \ + -DENABLE_QT_TRANSLATIONS:BOOL=OFF \ + -DBUILD_SHARED_LIBS:BOOL=ON \ + -DWEBVIEW_PROVIDER="${_webview_provider}" \ + -DJS_PROVIDER="${_js_provider}" \ + -DENABLE_JSON_EXPORT="${_json_export}" \ + -DREFLECTION_GENERATOR_EXECUTABLE:FILEPATH='/usr/bin/reflective_rapidjson_generator' \ + . + ninja +} + +check() { + cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame-$pkgver}" + if [[ $TEST_FILE_PATH ]]; then + ninja check + else + msg2 'Skipping execution of testsuite because the environment variable TEST_FILE_PATH is not set.' + fi +} + +package() { + cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame-$pkgver}" + DESTDIR="${pkgdir}" ninja install +}