From 22fb58b6462be8aee43b013be081fefd642faaac Mon Sep 17 00:00:00 2001 From: Christian Schendel Date: Tue, 2 Sep 2025 21:30:38 +0200 Subject: [PATCH] Initial commit --- .SRCINFO | 28 ++++++++ .gitignore | 17 +++++ .nvchecker.toml | 4 ++ LICENSE | 12 ++++ LICENSES/0BSD.txt | 1 + PKGBUILD | 45 +++++++++++++ REUSE.toml | 23 +++++++ chroot-build | 65 +++++++++++++++++++ ...3865c8045d54a864477af0b72f4b093a3625db.asc | 43 ++++++++++++ menulibre.install | 6 ++ 10 files changed, 244 insertions(+) create mode 100644 .SRCINFO create mode 100644 .gitignore create mode 100644 .nvchecker.toml create mode 100644 LICENSE create mode 120000 LICENSES/0BSD.txt create mode 100644 PKGBUILD create mode 100644 REUSE.toml create mode 100755 chroot-build create mode 100644 keys/pgp/f93865c8045d54a864477af0b72f4b093a3625db.asc create mode 100644 menulibre.install diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 0000000..d34e77e --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,28 @@ +pkgbase = menulibre + pkgdesc = An advanced menu editor that provides modern features in a clean, easy-to-use interface + pkgver = 2.4.0 + pkgrel = 3 + url = https://github.com/bluesabre/menulibre + install = menulibre.install + arch = any + license = GPL-3.0-or-later + makedepends = git + makedepends = python-distutils-extra + depends = gdk-pixbuf2 + depends = glib2 + depends = gnome-menus + depends = gsettings-desktop-schemas + depends = gtk3 + depends = gtksourceview3 + depends = hicolor-icon-theme + depends = pango + depends = python + depends = python-gobject + depends = python-psutil + depends = python-xdg + depends = xdg-utils + source = menulibre-2.4.0::git+https://github.com/bluesabre/menulibre.git#tag=menulibre-2.4.0?signed + validpgpkeys = F93865C8045D54A864477AF0B72F4B093A3625DB + b2sums = a8ddc7357f8b701338da58e2a5fc524b69142775cfa4efdcedfcf19a1ba3fef1cb93fcc4ce24001e8b54a7a8588210d176bd60b4270c505279465fda0bf13e25 + +pkgname = menulibre diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ffbfd3c --- /dev/null +++ b/.gitignore @@ -0,0 +1,17 @@ +# 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 +!*.install diff --git a/.nvchecker.toml b/.nvchecker.toml new file mode 100644 index 0000000..5f3dd05 --- /dev/null +++ b/.nvchecker.toml @@ -0,0 +1,4 @@ +[menulibre] +source = "git" +git = "https://github.com/bluesabre/menulibre.git" +prefix = "menulibre-" 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..33eea91 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,45 @@ +# Maintainer: Christian Schendel + +pkgname=menulibre +pkgver=2.4.0 +pkgrel=3 +pkgdesc="An advanced menu editor that provides modern features in a clean, easy-to-use interface" +arch=(any) +url="https://github.com/bluesabre/$pkgname" +license=( + GPL-3.0-or-later +) +depends=( + gdk-pixbuf2 + glib2 + gnome-menus + gsettings-desktop-schemas + gtk3 + gtksourceview3 + hicolor-icon-theme + pango + python + python-gobject + python-psutil + python-xdg + xdg-utils +) +makedepends=( + git + python-distutils-extra +) +install=$pkgname.install +source=("$pkgname-$pkgver::git+$url.git#tag=$pkgname-${pkgver}?signed") +b2sums=('a8ddc7357f8b701338da58e2a5fc524b69142775cfa4efdcedfcf19a1ba3fef1cb93fcc4ce24001e8b54a7a8588210d176bd60b4270c505279465fda0bf13e25') +validpgpkeys=( + 'F93865C8045D54A864477AF0B72F4B093A3625DB' # Sean Davis +) + +package() { + cd "$pkgname-$pkgver" + python setup.py install --root="$pkgdir/" --optimize=1 + install -Dm644 -t "$pkgdir/usr/share/licenses/$pkgname/" AUTHORS + install -Dm644 -t "$pkgdir/usr/share/doc/$pkgname/" NEWS README.md +} + +# 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/f93865c8045d54a864477af0b72f4b093a3625db.asc b/keys/pgp/f93865c8045d54a864477af0b72f4b093a3625db.asc new file mode 100644 index 0000000..eadcc12 --- /dev/null +++ b/keys/pgp/f93865c8045d54a864477af0b72f4b093a3625db.asc @@ -0,0 +1,43 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Comment: Hostname: +Version: Hockeypuck 2.2 + +xsDNBGTbXeIBDACve+IRP93kvt7PuL+gx6zPoA3NnUSdef8j3jj57uvMfIKPmTjO +XACEveInBocKvuPDHPBYkYK2saspSry5Zd1WJvBOk+d7TUw9eEdQe2t7+MPOT42q +0uuGU8vSAjcBf7TMQcydcoduNlby8Pj5hMakQbCFJ792Gxf0cTemy2f2GTUq/gAF +uwFT5TB6v1eVXvZe54+X/pjvwDprKG/xLBaEDD2Azs0TX9z1KG/LGqna9bjEIaDu +y62GR2Muz9eD9ovFH5Giu3uCD35lrdUXr7K+WrzUgnfKF4R8Dg+GsGxhR1f8JVjI +j1BFv09+YIicYlH6f5edlxPxUfmLpsNXJQHuOQGSy5XMICI1XoDjPwmm24s6KfL0 +FVE2T8+Cc4lY2OPD59HbqR39QIakq7CFZjNG4hMEdVdIr/7iPgfJ5az6tgVFydEz +tgTeKzvavjCNmzv1yIMoWijNzd/1QXkJi9IqZmi4X4NPrcGykb03hPBwZwRlBH0o +an1djNYO29F4yuUAEQEAAc0fU2VhbiBEYXZpcyA8c2VhbkBibHVlc2FicmUub3Jn +PsLBEQQTAQgAOxYhBPk4ZcgEXVSoZEd68LcvSwk6NiXbBQJk213iAhsDBQsJCAcC +AiICBhUKCQgLAgQWAgMBAh4HAheAAAoJELcvSwk6NiXb590L/R7uLH5aJUNe/jLJ +ukkaQszTTk0TJUYfwycCV11RMyv+j+4acl6OUBkubnLe9AabQYDXZQpW7uslAyVj +pdbPFlwHqZdxiTj0Zk7GHrJCaLKR1t1AZdqF9ihQyKbwUXEu90uzlZ5KC+9NkNDg +Eb1cBy4OVA0p5GZ6UaU+Jlew0sMzi5+blJ5bDejYlDkxPh9WzvgJpsoZF8rXTQkC +UshZeTfyRzQ35TCWlnh4/xHvWEa2tQ3eB6aC9OAwumN7h65Wgafieix/f3TXtvpq +e6kLoJPAmmA/mGIzPxqRekMAUeX6/iNqbZJM9eBcAEV4TWz0r7jz477gAgZmxqLw +IGON/trDopYx4pk2HF9Hmu17WYi5J2LlyUovgfvhbjRGZeTLwqamq24pDFqPaoSd +zmm2ZCKtlOdo5v0UaCbJSYR3Bxx11f73F363WiSEQvkfuBg6uftxUFReNNg7+Ghq +GChmvOhNOmgdddrauAykU8v+BZYAgB8YyTo9DcnzdnvjyztAv87AzQRk213iAQwA +sjSfGWHfj3oDbN0IR2O/q1uBD7ms8emnx1p6IuDgBIDDXMYXvcrWDpc6Xz9ZDFZo +joPlR3v5ieIQ5UtGu3fX9IYdwPkNqrJf09gITqt4flpaTMvBSQioilliFV8MyN3o +vqZTiL3q53dNzcETKueSWaqXSOFVEyLhRDh3Dj5TZmmzRshYzKicuoheOb1uw9Qg +w1gWHhRNNGJgyIQuqUguB5G6JRq5MKQn1eiGYsRjHXsp3keiaS2b+en1YIJa8DHJ +v3icqfVvDdqjSd6QG8WDi0aCJA2Py3upyXitwGD6pvKjD1EJjKo8XPnkt8m8z73i +6Ds8XhCWXBQ3XVgdWLm3BZJ1Uuc+akKSPB/EByWCgtCk+ejYKYUbPJnjxzrjvOkf +PPolKALiyGuay76EsD3HGGUkj3OltiCoGv6CrfHJvNBiEOUuR7GYJYXBEUHoQWCW +J6xxNV1fN5hhW8nJA8FIak96GuNFtiS2uZ0IXocX0EGjjaKOt+mIZcKrSN/t/rxX +ABEBAAHCwPYEGAEIACAWIQT5OGXIBF1UqGRHevC3L0sJOjYl2wUCZNtd4gIbDAAK +CRC3L0sJOjYl25EDC/9oWU2YMjWrSIrDSEtZct3DvPRJmbNY1SN0hknh23bKYE1K +/YSJGOYenYKoWf9bSdRnq6szr0P3E4etfSZTRYCrqoLMEAISDBmEJeCjB1ctlfiv +N4mLAk+zfipKaqWyMQouq0MC4SZuNPCXS0AI0qIo3HSQsF6PcxR511yHFo6/eHn0 +yBA4eKW7Ki0wEAf/dp3DLliC+vt5188atUw+yhmZJLfMM9ZCK0+CSmjepp1MRZNC +SiTFgSXGgORafO+WqILaHFOLEx2l7145BJ76btPZjnscWfJTrdwqrVgOOGHj6TFV +cgeyMZEJ5scviESAquvFLwCdZqEnL6g8ql488xBKpgzY9eKH7vLiK6MhbCjgjJT3 +R4nkmgtlfRcTb/QJQTirqPZ9oCxXn4tzgbeHJpCeOLbriIjCkTmTJatCtmAXbI+0 +ZKxl9U/FdiOVyz7f4/ReD+3TOUnhqqPJmqSKWkVhz1zwFOSxDgY1plROQa3tLFjs +o7s+PuzqZPslaCU4g2A= +=d1U+ +-----END PGP PUBLIC KEY BLOCK----- diff --git a/menulibre.install b/menulibre.install new file mode 100644 index 0000000..66ad265 --- /dev/null +++ b/menulibre.install @@ -0,0 +1,6 @@ +post_install() { + echo "" + echo "If the program crashes, try renaming your menu folder:" + echo "mv ~/.config/menus ~/.config/menus.old" + echo "" +}