From eb97b80d1ca8c075a5b073cc60cac8361210ad50 Mon Sep 17 00:00:00 2001 From: Christian Schendel Date: Mon, 1 Sep 2025 05:24:05 +0200 Subject: [PATCH] Initial commit --- .SRCINFO | 44 +++++++++++++++++++++++++++ .gitignore | 17 +++++++++++ .nvchecker.toml | 6 ++++ LICENSE | 12 ++++++++ LICENSES/0BSD.txt | 1 + PKGBUILD | 76 ++++++++++++++++++++++++++++++++++++++++++++++ REUSE.toml | 23 ++++++++++++++ chroot-build | 65 +++++++++++++++++++++++++++++++++++++++ enpass-bin.install | 10 ++++++ 9 files changed, 254 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 enpass-bin.install diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 0000000..099a70f --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,44 @@ +pkgbase = enpass-bin + pkgdesc = A multiplatform password manager + pkgver = 6.11.12.1953 + pkgrel = 1 + url = http://enpass.io/ + install = enpass-bin.install + arch = x86_64 + license = LicenseRef-custom + optdepends = libxdg-basedir: Open links in the default browser. + optdepends = libqtxdg: Open links in the default browser (Qt implementation) + provides = enpass + conflicts = enpass + options = !strip + source = https://apt.enpass.io/pool/main/e/enpass/enpass_6.11.12.1953_amd64.deb + b2sums = ece8aae433b3797614d82ae07d5b7322e48c43cf0d5e6db7aff1e48f67ac220c2fb066b6a61f311f613a56480c9bf4323c13effa3e112f11eab1e10511d944fd + +pkgname = enpass-bin + depends = curl + depends = dbus + depends = fontconfig + depends = freetype2 + depends = glib2 + depends = glibc + depends = gtk3 + depends = hicolor-icon-theme + depends = libcups + depends = libglvnd + depends = libice + depends = libpulse + depends = libsm + depends = libx11 + depends = libxcb + depends = libxkbcommon + depends = libxkbcommon-x11 + depends = libxss + depends = lsof + depends = pango + depends = util-linux-libs + depends = xcb-util-image + depends = xcb-util-keysyms + depends = xcb-util-renderutil + depends = xcb-util-wm + depends = xz + depends = zlib 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..b026611 --- /dev/null +++ b/.nvchecker.toml @@ -0,0 +1,6 @@ +[enpass-bin] +source = "apt" +pkg = "enpass" +mirror = "apt.enpass.io" +suite = "stable" +repo = "main" 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..38c7a20 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,76 @@ +# Maintainer: Christian Schendel + +pkgname=enpass-bin +pkgver=6.11.12.1953 +pkgrel=1 +pkgdesc='A multiplatform password manager' +arch=(x86_64) +url='http://enpass.io/' +license=( + 'LicenseRef-custom' +) + +optdepends=( + 'libxdg-basedir: Open links in the default browser.' + 'libqtxdg: Open links in the default browser (Qt implementation)' +) + +provides=("${pkgname%-bin}") +conflicts=("${pkgname%-bin}") + +install='enpass-bin.install' +source=("https://apt.enpass.io/pool/main/e/enpass/${pkgname%-bin}_${pkgver}_amd64.deb") +b2sums=('ece8aae433b3797614d82ae07d5b7322e48c43cf0d5e6db7aff1e48f67ac220c2fb066b6a61f311f613a56480c9bf4323c13effa3e112f11eab1e10511d944fd') + +# Disable strip as otherwise the browser extension will not work +options=('!strip') + +package() { + depends+=( + curl + dbus + fontconfig + freetype2 + glib2 + glibc + gtk3 + hicolor-icon-theme + libcups + libglvnd + libice + libpulse + libsm + libx11 + libxcb + libxkbcommon + libxkbcommon-x11 + libxss + lsof + pango + util-linux-libs + xcb-util-image + xcb-util-keysyms + xcb-util-renderutil + xcb-util-wm + xz + zlib + ) + + # Extract data + tar xfz "${srcdir}/data.tar.gz" -C "${pkgdir}" + + # Remove unnecessary files which are included in the .deb + # find "${pkgdir}" -name '*~' -delete + + # Update permissions to match the default system ones + chmod -R go-w "${pkgdir}/opt/" + chmod 755 "${pkgdir}/opt/" + find "${pkgdir}/usr/" -type d -exec chmod 755 {} \; + find "${pkgdir}/usr/" -type f -exec chmod 644 {} \; + + # Symlink "runenpass.sh" to "/usr/bin" so it is accessible via cli + mkdir -p "${pkgdir}/usr/bin" + ln -s '/opt/enpass/Enpass' "${pkgdir}/usr/bin/enpass" +} + +# 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/enpass-bin.install b/enpass-bin.install new file mode 100644 index 0000000..a5a9aa7 --- /dev/null +++ b/enpass-bin.install @@ -0,0 +1,10 @@ +post_install() { + post_upgrade +} + +post_upgrade() { +cat << EOF +If you encounter scaling issues, try the following: + $ QT_AUTO_SCREEN_SCALE_FACTOR=0 enpass +EOF +}