commit 0124509ce7ac8c9a11d5e5ce5ce11771b7024bbb Author: Christian Schendel Date: Wed Sep 3 21:11:25 2025 +0200 Initial commit diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 0000000..5042b5b --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,23 @@ +pkgbase = peazip + pkgdesc = Cross-platform file and archive manager (Qt6) + pkgver = 10.3.0 + pkgrel = 1 + url = https://github.com/peazip/PeaZip + arch = i686 + arch = x86_64 + license = LGPL-3.0-or-later + makedepends = lazarus + makedepends = xmlstarlet + depends = qt6pas + optdepends = unace + optdepends = upx + options = !debug + source = peazip-10.3.0-17ecdd1.tar.gz::https://github.com/peazip/PeaZip/archive/17ecdd1cc0951a81823f26cc4c44d310464ae319.tar.gz + sha256sums = SKIP + +pkgname = peazip + depends = qt6pas + depends = 7zip + depends = brotli + depends = zstd + depends = hicolor-icon-theme diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..eb708b8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,16 @@ +# Ignore everything +* + +# But not these files... +!.gitignore +!PKGBUILD +!.SRCINFO +!LICENSE +!chroot-build +!.nvchecker.toml +!/keys +!/keys/pgp +!/keys/pgp/*.asc +!/LICENSES +!/LICENSES/*.txt +!REUSE.toml diff --git a/.nvchecker.toml b/.nvchecker.toml new file mode 100644 index 0000000..d502a14 --- /dev/null +++ b/.nvchecker.toml @@ -0,0 +1,4 @@ +[peazip] +source = "git" +git = "https://github.com/peazip/PeaZip.git" +prefix = "v" diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..b87c5e4 --- /dev/null +++ b/LICENSE @@ -0,0 +1,12 @@ +Copyright Arch Linux Contributors + +Permission to use, copy, modify, and/or distribute this software for +any purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL +WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE +FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY +DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN +AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT +OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/LICENSES/0BSD.txt b/LICENSES/0BSD.txt new file mode 120000 index 0000000..ea5b606 --- /dev/null +++ b/LICENSES/0BSD.txt @@ -0,0 +1 @@ +../LICENSE \ No newline at end of file diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 0000000..5fe3dd3 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,115 @@ +# Maintainer: + +## options +: ${_widgets=qt6} +: ${_commit=17ecdd1cc0951a81823f26cc4c44d310464ae319} + +_pkgname="peazip" +pkgname="$_pkgname" +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') + +makedepends=( + 'lazarus' + 'xmlstarlet' +) +optdepends=( + 'unace' + 'upx' +) + +case "${_widgets::1}" in + g) + depends+=("${_widgets}") + ;; + q) + depends+=("${_widgets}pas") + ;; +esac + +options=('!debug') + +_pkgsrc="PeaZip-$_commit" +_pkgext="tar.gz" +source=("$_pkgname-$pkgver-${_commit::7}.$_pkgext"::"https://github.com/peazip/PeaZip/archive/$_commit.$_pkgext") +sha256sums=('e46a390c9eb34803c3ab2c95dc075baa4895c042bf535b1a5de26f6cffa62f49') + +_packets=( + "$_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" + + # 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 +} + +build() { + 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 +} + +package() { + depends+=( + '7zip' + 'brotli' + 'zstd' + ) + depends+=('hicolor-icon-theme') + + 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" + + # 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" + + # 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/" + + # permissions + chmod -R u+rwX,go+rX,go-w "$pkgdir/" +} + +# vim: set ft=sh ts=4 sw=4 et: diff --git a/REUSE.toml b/REUSE.toml new file mode 100644 index 0000000..e45b4ff --- /dev/null +++ b/REUSE.toml @@ -0,0 +1,23 @@ +version = 1 + +[[annotations]] +path = [ + "PKGBUILD", + "README.md", + "keys/**", + ".SRCINFO", + ".nvchecker.toml", + ".gitignore", + "*.install", + "*.sysusers", + "*.tmpfiles", + "*.logrotate", + "*.pam", + "*.service", + "*.socket", + "*.timer", + "*.desktop", + "*.hook", +] +SPDX-FileCopyrightText = "Arch Linux contributors" +SPDX-License-Identifier = "0BSD" diff --git a/chroot-build b/chroot-build new file mode 100755 index 0000000..f69cac8 --- /dev/null +++ b/chroot-build @@ -0,0 +1,65 @@ +#!/bin/bash + +# SPDX-FileCopyrightText: Christian Schendel +# SPDX-License-Identifier: 0BSD + +set -euo pipefail +use_tmpfs=true +CHROOT="/tmp/mkarchroot" + +check_available_ram() { + if [ "$(awk '/^MemAvailable:/ { print $2; }' /proc/meminfo)" -lt 50000 ]; then + use_tmpfs=false + fi +} + +create_chroot_directory() { + if [ $use_tmpfs ]; then + sudo mount --mkdir -t tmpfs -o defaults,size=20G tmpfs $CHROOT + else + sudo mkdir -p "$CHROOT" + fi +} + +create_chroot_environment() { + if [[ ! -d "$CHROOT/root" ]]; then + mkarchroot -M ~/.config/pacman/makepkg.conf "$CHROOT/root" base-devel + fi +} + +build_package(){ + arch-nspawn "$CHROOT/root" pacman -Syu + if makechrootpkg -c -r "$CHROOT" -- -Asf . ; then + makepkg --printsrcinfo >.SRCINFO + else + delete_chroot_environment && echo -e "\n\e[1;31m==> BUILD FAILED: \e[1;37m$CHROOT removed\e[0m " && exit 1 + fi +} + +sign_package(){ + PACKAGE="$(makepkg --packagelist)" + gpg --use-agent --output "$PACKAGE.sig" --detach-sign "$PACKAGE" +} + +delete_chroot_environment() { + if [ "$(stat -f --format=%T "$CHROOT")" == "btrfs" ]; then + { + sudo btrfs subvolume delete "$CHROOT/root/var/lib/portables" + sudo btrfs subvolume delete "$CHROOT/root/var/lib/machines" + sudo btrfs subvolume delete "$CHROOT/root" + sudo rm -Rf $CHROOT + } >>/dev/null 2>&1 + elif [ "$(stat -f --format=%T "$CHROOT")" == "tmpfs" ]; then + sudo umount -f $CHROOT + fi + sudo rm -Rf $CHROOT +} + +check_available_ram +create_chroot_directory +create_chroot_environment +build_package +sign_package +delete_chroot_environment + +# vim: set ts=4 sw=4 et: