From e79af378195c669197ea0c67a676ee4c249817d7 Mon Sep 17 00:00:00 2001 From: Christian Schendel Date: Fri, 12 Sep 2025 16:10:14 +0200 Subject: [PATCH] upgpkg: peazip-10.6.1: rewrite PKGBUILD --- .SRCINFO | 12 ++-- PKGBUILD | 197 +++++++++++++++++++++++++++++++++++-------------------- 2 files changed, 132 insertions(+), 77 deletions(-) diff --git a/.SRCINFO b/.SRCINFO index 5042b5b..3f9ef27 100644 --- a/.SRCINFO +++ b/.SRCINFO @@ -1,19 +1,21 @@ pkgbase = peazip pkgdesc = Cross-platform file and archive manager (Qt6) - pkgver = 10.3.0 + pkgver = 10.6.1 pkgrel = 1 url = https://github.com/peazip/PeaZip arch = i686 arch = x86_64 license = LGPL-3.0-or-later + makedepends = fpc + makedepends = fpc-src makedepends = lazarus makedepends = xmlstarlet depends = qt6pas - optdepends = unace - optdepends = upx + optdepends = unace: Proprietary ace archives + optdepends = upx: Executable packer for several executable formats options = !debug - source = peazip-10.3.0-17ecdd1.tar.gz::https://github.com/peazip/PeaZip/archive/17ecdd1cc0951a81823f26cc4c44d310464ae319.tar.gz - sha256sums = SKIP + source = peazip-10.6.1.tar.gz::https://github.com/peazip/PeaZip/archive/10.6.1.tar.gz + sha256sums = 93d5145d09279db1b168469251e4b3b64b59ea13b2cfb0f487e1fd26a5d40b6b pkgname = peazip depends = qt6pas diff --git a/PKGBUILD b/PKGBUILD index 5fe3dd3..c02462b 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -1,8 +1,7 @@ -# Maintainer: +# Maintainer: Christian Schendel ## options -: ${_widgets=qt6} -: ${_commit=17ecdd1cc0951a81823f26cc4c44d310464ae319} +: "${_widgets=qt6}" _pkgname="peazip" pkgname="$_pkgname" @@ -10,106 +9,160 @@ pkgver=10.6.1 pkgrel=1 pkgdesc="Cross-platform file and archive manager (${_widgets^})" url="https://github.com/peazip/PeaZip" -license=('LGPL-3.0-or-later') -arch=('i686' 'x86_64') - +license=( + LGPL-3.0-or-later +) +arch=( + i686 + x86_64 +) makedepends=( - 'lazarus' - 'xmlstarlet' + fpc + fpc-src + lazarus + xmlstarlet ) optdepends=( - 'unace' - 'upx' + 'unace: Proprietary ace archives' + 'upx: Executable packer for several executable formats' ) case "${_widgets::1}" in - g) - depends+=("${_widgets}") - ;; - q) - depends+=("${_widgets}pas") - ;; + g) + depends+=("${_widgets}") + ;; + q) + depends+=("${_widgets}pas") + ;; esac options=('!debug') -_pkgsrc="PeaZip-$_commit" +_pkgsrc="PeaZip-$pkgver" _pkgext="tar.gz" -source=("$_pkgname-$pkgver-${_commit::7}.$_pkgext"::"https://github.com/peazip/PeaZip/archive/$_commit.$_pkgext") -sha256sums=('e46a390c9eb34803c3ab2c95dc075baa4895c042bf535b1a5de26f6cffa62f49') +source=( + "$_pkgname-$pkgver.$_pkgext::$url/archive/$pkgver.$_pkgext" +) +b2sums=('93d5145d09279db1b168469251e4b3b64b59ea13b2cfb0f487e1fd26a5d40b6b') _packets=( - "$_pkgsrc"/peazip-sources/dev/metadarkstyle/metadarkstyle.lpk - "$_pkgsrc"/peazip-sources/dev/project_pea.lpi - "$_pkgsrc"/peazip-sources/dev/project_peach.lpi + "$_pkgsrc"/peazip-sources/dev/metadarkstyle/metadarkstyle.lpk + "$_pkgsrc"/peazip-sources/dev/project_pea.lpi + "$_pkgsrc"/peazip-sources/dev/project_peach.lpi ) prepare() { - # use system binaries - sed -E -e 's&(\bHSYSBIN\b\s*)=\s*[0-9];&\1= 2;&' \ - -i "$_pkgsrc/peazip-sources/dev/peach.pas" + # use system binaries + sed -E -e 's&(\bHSYSBIN\b\s*)=\s*[0-9];&\1= 2;&' \ + -i "$_pkgsrc/peazip-sources/dev/peach.pas" - # set paths, needs trailing slash - sed -E \ - -e 's&(\bHBINPATH\b\s*)=\s*'\'\'';&\1= '\''/usr/bin/'\'';&' \ - -e 's&(\bHSHAREPATH\b\s*)=\s*'\'\'';&\1= '\'"/usr/share/$_pkgname/"\'';&' \ - -i "$_pkgsrc/peazip-sources/dev/peach.pas" + # set paths, needs trailing slash + sed -E \ + -e 's&(\bHBINPATH\b\s*)=\s*'\'\'';&\1= '\''/usr/bin/'\'';&' \ + -e 's&(\bHSHAREPATH\b\s*)=\s*'\'\'';&\1= '\'"/usr/share/$_pkgname/"\'';&' \ + -i "$_pkgsrc/peazip-sources/dev/peach.pas" - # compiler/linker options - for i in ${_packets[@]}; do - xmlstarlet edit --inplace --delete '//Other' "$i" - sed -E 's&()&\n\1&' \ - -i "$i" - done + # check for version mismatch + local PEAZIPVERSION PEAZIPREVISION + PEAZIPVERSION=$(grep -Po1 "(?<=PEAZIPVERSION\s?=\s?')([0-9.]+)(?=';)" "$_pkgsrc/peazip-sources/dev/peach.pas") + PEAZIPREVISION=$(grep -Po1 "(?<=PEAZIPREVISION\s?=\s?')([0-9.]+)(?=';)" "$_pkgsrc/peazip-sources/dev/peach.pas") + if [[ "$pkgver" != "${PEAZIPVERSION:-0.0}${PEAZIPREVISION:=.0}" ]]; then + printf "%s warning: %sversion mismatch.%s %s != %s\n" \ + "$( + tput setaf 3 + tput bold + )" \ + "$(tput setaf 7)" \ + "$(tput sgr0)" \ + "$pkgver" \ + "${PEAZIPVERSION:-0.0}${PEAZIPREVISION:=.0}" + fi + + # remove buttons from about dialog + local _buttons=( + Form_peach.baboutbin + Form_peach.baboutchangelog + Form_peach.baboutfaq + Form_peach.baboutlocalhelp + Form_peach.baboutplugindir + Form_peach.baboutplugins + Form_peach.baboutremoveunace + Form_peach.baboutremoveunrar + Form_peach.baboutsupport + Form_peach.baboutthemes + Form_peach.babouttos + Form_peach.babouttracker + Form_peach.babouttranslations + Form_peach.baboutup + Form_peach.baboutweb + ) + for i in "${_buttons[@]}"; do + sed -E -e "/^${i//./\\.}.Caption:=/s&^.*\$&${i}.Visible:=False;&" -i "$_pkgsrc/peazip-sources/dev/peach.pas" + done + + # compiler/linker options + for i in "${_packets[@]}"; do + xmlstarlet edit --inplace --delete '//Other' "$i" + sed -E 's&()&\n\1&' \ + -i "$i" + done } build() { - local _laz_opts=( - --build-all - --cpu="$CARCH" - --lazarusdir='/usr/lib/lazarus' - --os='linux' - --primary-config-path='config' - --widgetset="$_widgets" - ) + local _laz_opts=( + --build-all + --cpu="$CARCH" + --lazarusdir='/usr/lib/lazarus' + --os='linux' + --primary-config-path='config' + --widgetset="$_widgets" + ) - for i in ${_packets[@]}; do - lazbuild "${_laz_opts[@]}" "$i" - done + for i in "${_packets[@]}"; do + lazbuild "${_laz_opts[@]}" "$i" + done } package() { - depends+=( - '7zip' - 'brotli' - 'zstd' - ) - depends+=('hicolor-icon-theme') + depends+=( + 7zip + brotli + glibc + hicolor-icon-theme + libx11 + zstd +) - local _path_src + local _path_src - # binaries - _path_src="$_pkgsrc/peazip-sources/dev" - install -Dm755 "$_path_src/peazip" "$pkgdir/usr/bin/peazip" - install -Dm755 "$_path_src/pea" "$pkgdir/usr/bin/pea" + # binaries + _path_src="$_pkgsrc/peazip-sources/dev" + install -Dm755 "$_path_src/peazip" \ + "$pkgdir/usr/bin/peazip" + install -Dm755 "$_path_src/pea" \ + "$pkgdir/usr/bin/pea" - # icons - _path_src="$_pkgsrc/peazip-sources/res/share/icons" - install -Dm644 "$_path_src"/peazip_{7z,rar,zip}.png -t "$pkgdir/usr/share/icons/hicolor/256x256/mimetypes" - install -Dm644 "$_path_src"/peazip_{add,extract,browse,convert}.png -t "$pkgdir/usr/share/icons/hicolor/256x256/actions" + # icons + _path_src="$_pkgsrc/peazip-sources/res/share/icons" + install -Dm644 "$_path_src"/peazip_{7z,rar,zip}.png \ + -t "$pkgdir/usr/share/icons/hicolor/256x256/mimetypes" + install -Dm644 "$_path_src"/peazip_{add,extract,browse,convert}.png \ + -t "$pkgdir/usr/share/icons/hicolor/256x256/actions" - # launcher - _path_src="$_pkgsrc/peazip-sources/res/share/batch/freedesktop_integration" - install -Dm644 "$_path_src"/peazip.png -t "${pkgdir}/usr/share/icons/hicolor/256x256/apps" - install -Dm644 "$_path_src"/peazip.desktop -t "$pkgdir/usr/share/applications" + # launcher + _path_src="$_pkgsrc/peazip-sources/res/share/batch/freedesktop_integration" + install -Dm644 "$_path_src"/peazip.png \ + -t "${pkgdir}/usr/share/icons/hicolor/256x256/apps" + install -Dm644 "$_path_src"/peazip.desktop \ + -t "$pkgdir/usr/share/applications" - # res - _path_src="$_pkgsrc/peazip-sources/res/share" - install -dm755 "$pkgdir/usr/share/$_pkgname" - cp --reflink=auto -a "$_path_src"/{icons,lang,themes} "$pkgdir/usr/share/$_pkgname/" + # res + _path_src="$_pkgsrc/peazip-sources/res/share" + mkdir -pm755 "$pkgdir/usr/share/$_pkgname" + cp -a "$_path_src"/{icons,lang,themes} "$pkgdir/usr/share/$_pkgname/" - # permissions - chmod -R u+rwX,go+rX,go-w "$pkgdir/" + # permissions + chmod -R u+rwX,go+rX,go-w "$pkgdir/" } # vim: set ft=sh ts=4 sw=4 et: