commit 7930dcffacf62d44a474b6ae2eb4229f3157d502 Author: Christian Schendel Date: Wed Sep 3 21:57:26 2025 +0200 Initial commit diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 0000000..a81a939 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,18 @@ +pkgbase = tumbler-folder-thumbnailer + pkgdesc = Custom folder thumbnails for Tumbler + pkgver = 0.0.3 + pkgrel = 1 + url = https://codeberg.org/doppelhelix/tumbler-folder-thumbnailer + arch = any + license = 0BSD + makedepends = git + optdepends = inkscape: for SVG support + options = !strip + source = tumbler-folder-thumbnailer-0.0.3::git+https://codeberg.org/doppelhelix/tumbler-folder-thumbnailer.git#tag=0.0.3?signed + validpgpkeys = 47D15FC0F6AD8433CD06B4DF5874D2437CD5BBB3 + b2sums = 8aad749cc5f4a27e84e2ca46efb1ff3dd7dbccdf8e5a66cdb9b682d89a07a321992b57d36a6f4e35197d5da42833c21db731129ec665dbb6145db45e73872936 + +pkgname = tumbler-folder-thumbnailer + depends = bash + depends = imagemagick + depends = tumbler 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..11d9d8e --- /dev/null +++ b/.nvchecker.toml @@ -0,0 +1,4 @@ +[tumbler-folder-thumbnailer] +source = "git" +git = "https://codeberg.org/doppelhelix/tumbler-folder-thumbnailer.git" + 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..8169793 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,36 @@ +# Maintainer: Christian Schendel + +pkgname=tumbler-folder-thumbnailer +pkgver=0.0.3 +pkgrel=1 +pkgdesc="Custom folder thumbnails for Tumbler" +arch=(any) +url="https://codeberg.org/doppelhelix/tumbler-folder-thumbnailer" +license=( + 0BSD +) +makedepends=( + git +) +optdepends=( + 'inkscape: for SVG support' +) +source=("$pkgname-$pkgver::git+$url.git#tag=${pkgver}?signed") +b2sums=('8aad749cc5f4a27e84e2ca46efb1ff3dd7dbccdf8e5a66cdb9b682d89a07a321992b57d36a6f4e35197d5da42833c21db731129ec665dbb6145db45e73872936') +validpgpkeys=( + '47D15FC0F6AD8433CD06B4DF5874D2437CD5BBB3' # Christian Schendel +) +options+=(!strip) +package() { + depends+=( + bash + imagemagick + tumbler + ) + cd "$pkgname-$pkgver" + install -Dm0644 -t "$pkgdir/usr/share/thumbnailers" folder.thumbnailer + install -Dm0755 -t "$pkgdir/usr/bin" folder-thumbnailer + install -Dm0644 "$srcdir/$pkgname-$pkgver/LICENSES/0BSD.txt" "$pkgdir/usr/share/licenses/$pkgname/LICENSE" +} + +# 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: diff --git a/keys/pgp/47D15FC0F6AD8433CD06B4DF5874D2437CD5BBB3.asc b/keys/pgp/47D15FC0F6AD8433CD06B4DF5874D2437CD5BBB3.asc new file mode 100644 index 0000000..f92c3b9 --- /dev/null +++ b/keys/pgp/47D15FC0F6AD8433CD06B4DF5874D2437CD5BBB3.asc @@ -0,0 +1,102 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +JafpJw== +=2b2i +-----END PGP PUBLIC KEY BLOCK-----