Initial commit

This commit is contained in:
Christian Schendel 2025-09-02 21:30:38 +02:00
commit 22fb58b646
Signed by: doppelhelix
GPG key ID: 5874D2437CD5BBB3
10 changed files with 244 additions and 0 deletions

28
.SRCINFO Normal file
View file

@ -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

17
.gitignore vendored Normal file
View file

@ -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

4
.nvchecker.toml Normal file
View file

@ -0,0 +1,4 @@
[menulibre]
source = "git"
git = "https://github.com/bluesabre/menulibre.git"
prefix = "menulibre-"

12
LICENSE Normal file
View file

@ -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.

1
LICENSES/0BSD.txt Symbolic link
View file

@ -0,0 +1 @@
../LICENSE

45
PKGBUILD Normal file
View file

@ -0,0 +1,45 @@
# Maintainer: Christian Schendel <doppelhelix@gmail.com>
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 <sean@bluesabre.org>
)
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:

23
REUSE.toml Normal file
View file

@ -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"

65
chroot-build Executable file
View file

@ -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:

View file

@ -0,0 +1,43 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Comment: Hostname:
Version: Hockeypuck 2.2
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
o7s+PuzqZPslaCU4g2A=
=d1U+
-----END PGP PUBLIC KEY BLOCK-----

6
menulibre.install Normal file
View file

@ -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 ""
}