commit 693c67c41a6dd646433c5969ee2402ffbb4f8d4f Author: Christian Schendel Date: Wed Sep 3 22:20:26 2025 +0200 Initial commit diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 0000000..6d69b2b --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,25 @@ +pkgbase = wlogout + pkgdesc = Logout menu for wayland + pkgver = 1.2.2 + pkgrel = 2 + url = https://github.com/ArtsyMacaw/wlogout + arch = x86_64 + license = MIT + makedepends = meson + makedepends = git + makedepends = scdoc + makedepends = ninja + depends = glib2 + depends = glibc + depends = gtk3 + depends = gobject-introspection + depends = gtk-layer-shell + optdepends = swaylock: default buttons + optdepends = systemd: default buttons + source = wlogout-1.2.2.tar.gz::https://github.com/ArtsyMacaw/wlogout/releases/download/1.2.2/wlogout.tar.gz + source = wlogout-1.2.2.tar.gz.sig::https://github.com/ArtsyMacaw/wlogout/releases/download/1.2.2/wlogout.tar.gz.sig + validpgpkeys = F4FDB18A9937358364B276E9E25D679AF73C6D2F + b2sums = b07fc9374b48207c8b7f6570566e2840c5cad4bf6009911936ad632408721c3c371af0a5f8bcaef68e2c7c4090c9343c7d1e43f67de78dd18f704cb0138f0e9b + b2sums = SKIP + +pkgname = wlogout 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..d9f2cf8 --- /dev/null +++ b/.nvchecker.toml @@ -0,0 +1,4 @@ +[wlogout] +source = "git" +git = "https://github.com/ArtsyMacaw/wlogout.git" +prefix = "" 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..8282add --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,50 @@ +# Maintainer: Christian Schendel + +pkgname=wlogout +pkgver=1.2.2 +pkgrel=2 +license=(MIT) +pkgdesc="Logout menu for wayland" +makedepends=( + meson + git + scdoc + ninja +) +depends=( + glib2 + glibc + gtk3 + gobject-introspection + gtk-layer-shell +) +optdepends=( + 'swaylock: default buttons' + 'systemd: default buttons' +) +arch=( + 'x86_64' +) +url="https://github.com/ArtsyMacaw/wlogout" +source=( + "$pkgname-$pkgver.tar.gz::https://github.com/ArtsyMacaw/$pkgname/releases/download/$pkgver/$pkgname.tar.gz" + "$pkgname-$pkgver.tar.gz.sig::https://github.com/ArtsyMacaw/$pkgname/releases/download/$pkgver/$pkgname.tar.gz.sig" +) +validpgpkeys=("F4FDB18A9937358364B276E9E25D679AF73C6D2F") + +b2sums=('b07fc9374b48207c8b7f6570566e2840c5cad4bf6009911936ad632408721c3c371af0a5f8bcaef68e2c7c4090c9343c7d1e43f67de78dd18f704cb0138f0e9b' + 'SKIP') +build() { + cd "$srcdir" + meson setup build --prefix /usr + ninja -C build +} + +package() { + DESTDIR="$pkgdir" ninja -C build install + install -Dm644 -t "$pkgdir/usr/share/doc/$pkgname" ./*.md + install -Dm644 -t "$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/F4FDB18A9937358364B276E9E25D679AF73C6D2F.asc b/keys/pgp/F4FDB18A9937358364B276E9E25D679AF73C6D2F.asc new file mode 100644 index 0000000..b42d277 --- /dev/null +++ b/keys/pgp/F4FDB18A9937358364B276E9E25D679AF73C6D2F.asc @@ -0,0 +1,52 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +Vfk= +=cWEW +-----END PGP PUBLIC KEY BLOCK-----