From 2dd5ecf2432c9e3c1ffcba63653c92d49b5d70c6 Mon Sep 17 00:00:00 2001 From: Christian Schendel Date: Tue, 2 Sep 2025 21:17:28 +0200 Subject: [PATCH] Initial commit --- .SRCINFO | 24 ++++++ .gitignore | 17 ++++ .nvchecker.toml | 4 + LICENSE | 12 +++ LICENSES/0BSD.txt | 1 + PKGBUILD | 60 ++++++++++++++ REUSE.toml | 23 ++++++ ca107568-2808-4d5a-99be-7fde89b411d7.patch | 11 +++ chroot-build | 65 +++++++++++++++ icons.patch | 96 ++++++++++++++++++++++ 10 files changed, 313 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 100644 ca107568-2808-4d5a-99be-7fde89b411d7.patch create mode 100755 chroot-build create mode 100644 icons.patch diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 0000000..e51d12c --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,24 @@ +pkgbase = iwqt + pkgdesc = An iwd network applet for linux systems + pkgver = 0.0.3 + pkgrel = 3 + url = https://github.com/FinGu/iwqt + arch = x86_64 + license = GPL-3.0-only + makedepends = cmake + makedepends = git + makedepends = meson + depends = gcc-libs + depends = glibc + depends = iwd + depends = qt6-base + depends = sdbus-cpp + depends = qt6-svg + source = iwqt-0.0.3::git+https://github.com/FinGu/iwqt.git#tag=v0.0.3 + source = ca107568-2808-4d5a-99be-7fde89b411d7.patch + source = icons.patch + b2sums = ea6063113d2e456f14a3dc11d059d1727e14ac0f2b4a63e78d7e9cd4e75df640babbd86c59ebce1d8983111b0e0ad617c382319c91f37a13c2677852e8fda03a + b2sums = 4f843f7c63bef50aff80274649197290441b42d67425de1db54a53f469eaf6f7941becdb1a2fd33b5b1814bb99ed2ad82c5b47b17f6a377a1101ed6ad2b369a2 + b2sums = cd7b7a383d39fd57a74a56e4a10d4b99a3504a0be09114e6cd611c4ad044ef845fe3f644ccb5cabf81368f0f27cc3a2686b212dcec45144dc4316a651688762c + +pkgname = iwqt diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a8267d1 --- /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 +!*.patch diff --git a/.nvchecker.toml b/.nvchecker.toml new file mode 100644 index 0000000..5fb30cc --- /dev/null +++ b/.nvchecker.toml @@ -0,0 +1,4 @@ +[iwqt] +source = "git" +git = "https://github.com/FinGu/iwqt.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..7744aea --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,60 @@ +# Maintainer: Christian Schendel +# Contributor: Matt Harrison + +pkgname=iwqt +pkgver=0.0.3 +pkgrel=3 +pkgdesc="An iwd network applet for linux systems" +url="https://github.com/FinGu/iwqt" +arch=( + x86_64 +) +license=( + GPL-3.0-only +) +depends=( + gcc-libs + glibc + iwd + qt6-base + sdbus-cpp + qt6-svg +) +makedepends=( + cmake + git + meson +) +source=( + "$pkgname-$pkgver::git+$url.git#tag=v$pkgver" + "ca107568-2808-4d5a-99be-7fde89b411d7.patch" + "icons.patch" +) +b2sums=('ea6063113d2e456f14a3dc11d059d1727e14ac0f2b4a63e78d7e9cd4e75df640babbd86c59ebce1d8983111b0e0ad617c382319c91f37a13c2677852e8fda03a' + '4f843f7c63bef50aff80274649197290441b42d67425de1db54a53f469eaf6f7941becdb1a2fd33b5b1814bb99ed2ad82c5b47b17f6a377a1101ed6ad2b369a2' + 'cd7b7a383d39fd57a74a56e4a10d4b99a3504a0be09114e6cd611c4ad044ef845fe3f644ccb5cabf81368f0f27cc3a2686b212dcec45144dc4316a651688762c') + +prepare() { + cd "${pkgname}-${pkgver}" + patch -Np1 -i ../icons.patch + patch -Np1 -i ../ca107568-2808-4d5a-99be-7fde89b411d7.patch + # Currently no subprojects but leaving this here for conisistancy. + meson subprojects download --sourcedir=. +} + + +build() { + arch-meson "$pkgname-$pkgver" build + meson compile -C build +} + +# no tests currently +# check() { +# cd "${srcdir}/${pkgname}-${pkgver}" +# meson test -C build +# } + +package() { + meson install -C build --destdir "$pkgdir" + install -Dm0644 "${pkgname}-${pkgver}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" +} 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/ca107568-2808-4d5a-99be-7fde89b411d7.patch b/ca107568-2808-4d5a-99be-7fde89b411d7.patch new file mode 100644 index 0000000..84b5052 --- /dev/null +++ b/ca107568-2808-4d5a-99be-7fde89b411d7.patch @@ -0,0 +1,11 @@ +diff -ura a/iwqt.desktop b/iwqt.desktop +--- a/iwqt.desktop 2025-08-10 19:36:15.888466367 +0200 ++++ b/iwqt.desktop 2025-08-12 17:18:55.290176367 +0200 +@@ -3,5 +3,5 @@ + Version=0.0.1 + Name=IWQt + Comment=An iwd network applet for linux systems +-Exec=/usr/local/bin/iwqt +-Icon=/usr/local/share/iwqt/icon.svg ++Exec=iwqt ++Icon=network-wireless-signal-excellent 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/icons.patch b/icons.patch new file mode 100644 index 0000000..b7b30b7 --- /dev/null +++ b/icons.patch @@ -0,0 +1,96 @@ +--- a/images/wireless-0.svg 2025-09-02 09:10:08.903661480 +0200 ++++ b/images/wireless-0.svg 2025-09-02 09:11:08.649056491 +0200 +@@ -1 +1,8 @@ +- +\ Kein Zeilenumbruch am Dateiende. ++ ++ ++ ++ ++ ++ +--- a/images/wireless-1.svg 2025-09-02 09:10:08.903661480 +0200 ++++ b/images/wireless-1.svg 2025-09-02 09:28:35.356119507 +0200 +@@ -1 +1,9 @@ +- +\ Kein Zeilenumbruch am Dateiende. ++ ++ ++ ++ ++ ++ ++ +--- a/images/wireless-2.svg 2025-09-02 09:10:08.903661480 +0200 ++++ b/images/wireless-2.svg 2025-09-02 09:12:42.522500470 +0200 +@@ -1 +1,9 @@ +- +\ Kein Zeilenumbruch am Dateiende. ++ ++ ++ ++ ++ ++ ++ +--- a/images/wireless-3.svg 2025-09-02 09:10:08.903753545 +0200 ++++ b/images/wireless-3.svg 2025-09-02 09:14:36.802751386 +0200 +@@ -1 +1,9 @@ +- +\ Kein Zeilenumbruch am Dateiende. ++ ++ ++ ++ ++ ++ ++ +--- a/images/wireless-4.svg 2025-09-02 09:10:08.903753545 +0200 ++++ b/images/wireless-4.svg 2025-09-02 09:15:19.162792038 +0200 +@@ -1 +1,8 @@ +- +\ Kein Zeilenumbruch am Dateiende. ++ ++ ++ ++ ++ ++ +--- a/images/wireless-disabled.svg 2025-09-02 09:10:08.903753545 +0200 ++++ b/images/wireless-disabled.svg 2025-09-02 09:16:00.189709547 +0200 +@@ -1 +1,9 @@ +- +\ Kein Zeilenumbruch am Dateiende. ++ ++ ++ ++ ++ ++ ++ +--- a/images/wireless-none.svg 2025-09-02 09:10:08.903753545 +0200 ++++ b/images/wireless-none.svg 2025-09-02 09:28:24.278788679 +0200 +@@ -1 +1,9 @@ +- +\ Kein Zeilenumbruch am Dateiende. ++ ++ ++ ++ ++ ++ ++