From 43ff44f5daf3c9df1a84cdea09b6a85a445a1d6a Mon Sep 17 00:00:00 2001 From: Christian Schendel Date: Sun, 31 Aug 2025 17:55:41 +0200 Subject: [PATCH] Initial commit --- .SRCINFO | 38 +++++++++++++++++++++++++++ .gitignore | 16 ++++++++++++ .nvchecker.toml | 3 +++ LICENSE | 12 +++++++++ LICENSES/0BSD.txt | 1 + PKGBUILD | 66 +++++++++++++++++++++++++++++++++++++++++++++++ REUSE.toml | 23 +++++++++++++++++ chroot-build | 65 ++++++++++++++++++++++++++++++++++++++++++++++ 8 files changed, 224 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 diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 0000000..7e66bde --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,38 @@ +pkgbase = ausweisapp2 + pkgdesc = A software application that you install on your computer to use your national identity card or your electronic residence permit for online identification + pkgver = 2.3.2 + pkgrel = 3 + url = https://www.ausweisapp.bund.de/ + arch = i686 + arch = x86_64 + arch = aarch64 + license = EUPL-1.2 + makedepends = cmake + makedepends = ninja + makedepends = pkgconf + makedepends = python + makedepends = qt6-shadertools + makedepends = qt6-tools + makedepends = vulkan-headers + depends = gcc-libs + depends = glibc + depends = hicolor-icon-theme + depends = http-parser + depends = openssl + depends = pcsclite + depends = qt6-base + depends = qt6-declarative + depends = qt6-svg + depends = qt6-websockets + depends = qt6-scxml + depends = systemd-libs + optdepends = ccid: Smart Card Interface + optdepends = acsccid: ACS CCID smart card readers + optdepends = pcsc-cyberjack: Driver for Reiner SCT cyberjack Cardreaders + source = https://github.com/Governikus/AusweisApp2/releases/download/2.3.2/AusweisApp-2.3.2.tar.gz + source = https://github.com/Governikus/AusweisApp2/releases/download/2.3.2/AusweisApp-2.3.2.tar.gz.asc + validpgpkeys = 699BF3055B0A49224EFDE7C72D7479A531451088 + b2sums = aff32283161f479d682cf8f54148baafb8bd684c573cf0394069e29c1871dc7ed1aac1ddb8a7135262e4807dea66bb2870c50311aec0b42576ebed51b16d37fd + b2sums = SKIP + +pkgname = ausweisapp2 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..68d98d1 --- /dev/null +++ b/.gitignore @@ -0,0 +1,16 @@ +# Ignore everything +* + +# But not these files... +!.gitignore +!PKGBUILD +!.SRCINFO +!LICENSE +!chroot-build +!.nvchecker.toml +!keys/pgp/*.asc +!*.desktop +!*.install +!/LICENSES +!/LICENSES/*.txt +!REUSE.toml diff --git a/.nvchecker.toml b/.nvchecker.toml new file mode 100644 index 0000000..c6f8a50 --- /dev/null +++ b/.nvchecker.toml @@ -0,0 +1,3 @@ +[ausweisapp2] +source = "git" +git = "https://github.com/Governikus/AusweisApp2.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..ca5bc7a --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,66 @@ +# Maintainer: Christian Schendel +# Contributor: A. Klitzing + +pkgname=ausweisapp2 +pkgver=2.3.2 +pkgrel=3 +pkgdesc="A software application that you install on your computer to use your national identity card or your electronic residence permit for online identification" +arch=('i686' 'x86_64' 'aarch64') +license=('EUPL-1.2') +url="https://www.ausweisapp.bund.de/" +depends=( + gcc-libs + glibc + hicolor-icon-theme + http-parser + openssl + pcsclite + qt6-base + qt6-declarative + qt6-svg + qt6-websockets + qt6-scxml + systemd-libs +) +makedepends=( + cmake + ninja + pkgconf + python + qt6-shadertools + qt6-tools + vulkan-headers +) +optdepends=( + 'ccid: Smart Card Interface' + 'acsccid: ACS CCID smart card readers' + 'pcsc-cyberjack: Driver for Reiner SCT cyberjack Cardreaders' +) +source=("https://github.com/Governikus/AusweisApp2/releases/download/${pkgver}/AusweisApp-${pkgver}.tar.gz"{,.asc}) +validpgpkeys=('699BF3055B0A49224EFDE7C72D7479A531451088') +b2sums=('aff32283161f479d682cf8f54148baafb8bd684c573cf0394069e29c1871dc7ed1aac1ddb8a7135262e4807dea66bb2870c50311aec0b42576ebed51b16d37fd' + 'SKIP') + +prepare() { + cd "AusweisApp-$pkgver" +} + +build() { + local cmake_options=( + -G Ninja + -B build + -D CMAKE_BUILD_TYPE=MinSizeRel + -D CMAKE_INSTALL_PREFIX=/usr + -W no-dev + -S "${srcdir}/AusweisApp-${pkgver}" + ) + cmake "${cmake_options[@]}" + cmake --build build +} + +package() { + DESTDIR="$pkgdir" cmake --install build + install -Dm644 "${srcdir}/AusweisApp-${pkgver}/LICENSE.txt" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE.txt" +} + +# 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: