From 22082c234c2013c65fc49a59d01c467a78c12f3e Mon Sep 17 00:00:00 2001 From: madmurphy Date: Sun, 12 Jun 2022 15:33:39 +0100 Subject: Add Arch packages --- contrib/Makefile.am | 28 ++++- contrib/packages/arch/gnunet-git/.SRCINFO | 73 ++++++++++++ contrib/packages/arch/gnunet-git/PKGBUILD | 128 +++++++++++++++++++++ .../packages/arch/gnunet-git/gnunet-system.service | 13 +++ .../packages/arch/gnunet-git/gnunet-uri.desktop | 9 ++ contrib/packages/arch/gnunet-git/gnunet-user.conf | 3 + .../packages/arch/gnunet-git/gnunet-user.service | 10 ++ contrib/packages/arch/gnunet-git/gnunet.install | 54 +++++++++ contrib/packages/arch/gnunet-git/gnunet.sysusers | 3 + contrib/packages/arch/gnunet-git/gnunet.tmpfiles | 9 ++ contrib/packages/arch/gnunet/.SRCINFO | 72 ++++++++++++ contrib/packages/arch/gnunet/PKGBUILD | 118 +++++++++++++++++++ contrib/packages/arch/gnunet/gnunet-system.service | 13 +++ contrib/packages/arch/gnunet/gnunet-uri.desktop | 9 ++ contrib/packages/arch/gnunet/gnunet-user.conf | 3 + contrib/packages/arch/gnunet/gnunet-user.service | 10 ++ contrib/packages/arch/gnunet/gnunet.install | 54 +++++++++ contrib/packages/arch/gnunet/gnunet.sysusers | 3 + contrib/packages/arch/gnunet/gnunet.tmpfiles | 9 ++ 19 files changed, 616 insertions(+), 5 deletions(-) create mode 100644 contrib/packages/arch/gnunet-git/.SRCINFO create mode 100644 contrib/packages/arch/gnunet-git/PKGBUILD create mode 100644 contrib/packages/arch/gnunet-git/gnunet-system.service create mode 100644 contrib/packages/arch/gnunet-git/gnunet-uri.desktop create mode 100644 contrib/packages/arch/gnunet-git/gnunet-user.conf create mode 100644 contrib/packages/arch/gnunet-git/gnunet-user.service create mode 100644 contrib/packages/arch/gnunet-git/gnunet.install create mode 100644 contrib/packages/arch/gnunet-git/gnunet.sysusers create mode 100644 contrib/packages/arch/gnunet-git/gnunet.tmpfiles create mode 100644 contrib/packages/arch/gnunet/.SRCINFO create mode 100644 contrib/packages/arch/gnunet/PKGBUILD create mode 100644 contrib/packages/arch/gnunet/gnunet-system.service create mode 100644 contrib/packages/arch/gnunet/gnunet-uri.desktop create mode 100644 contrib/packages/arch/gnunet/gnunet-user.conf create mode 100644 contrib/packages/arch/gnunet/gnunet-user.service create mode 100644 contrib/packages/arch/gnunet/gnunet.install create mode 100644 contrib/packages/arch/gnunet/gnunet.sysusers create mode 100644 contrib/packages/arch/gnunet/gnunet.tmpfiles diff --git a/contrib/Makefile.am b/contrib/Makefile.am index e05e9caf9..801eacecf 100644 --- a/contrib/Makefile.am +++ b/contrib/Makefile.am @@ -42,9 +42,6 @@ INITD_FILES = \ services/openrc/gnunet.initd PACKAGES_FILES = \ - packages/guix/guix-env-py2.scm \ - packages/guix/guix-env-gillmann.scm \ - packages/guix/notest-guix-env.scm \ packages/alpine/gnunet-gtk/APKBUILD \ packages/alpine/gnurl/APKBUILD \ packages/alpine/gnunet/gnunet-user-services.initd \ @@ -57,9 +54,30 @@ PACKAGES_FILES = \ packages/alpine/gnunet/gnunet.pre-install \ packages/alpine/gnunet/gnunet-system-services.initd \ packages/alpine/gnunet/gnunet-gns-proxy.initd \ + packages/arch/gnunet-git/gnunet.install \ + packages/arch/gnunet-git/gnunet-system.service \ + packages/arch/gnunet-git/gnunet.sysusers \ + packages/arch/gnunet-git/gnunet.tmpfiles \ + packages/arch/gnunet-git/gnunet-uri.desktop \ + packages/arch/gnunet-git/gnunet-user.conf \ + packages/arch/gnunet-git/gnunet-user.service \ + packages/arch/gnunet-git/PKGBUILD \ + packages/arch/gnunet-git/.SRCINFO \ + packages/arch/gnunet/gnunet.install \ + packages/arch/gnunet/gnunet-system.service \ + packages/arch/gnunet/gnunet.sysusers \ + packages/arch/gnunet/gnunet.tmpfiles \ + packages/arch/gnunet/gnunet-uri.desktop \ + packages/arch/gnunet/gnunet-user.conf \ + packages/arch/gnunet/gnunet-user.service \ + packages/arch/gnunet/PKGBUILD \ + packages/arch/gnunet/.SRCINFO \ + packages/guix/guix-env-py2.scm \ + packages/guix/guix-env-gillmann.scm \ + packages/guix/notest-guix-env.scm \ + packages/homebrew/gnunet.rb \ packages/nix/gnunet-dev.nix \ - packages/nix/default.nix \ - packages/homebrew/gnunet.rb + packages/nix/default.nix EXTRA_DIST = \ sounds/vonlynX-bdbAm-lo.wav \ diff --git a/contrib/packages/arch/gnunet-git/.SRCINFO b/contrib/packages/arch/gnunet-git/.SRCINFO new file mode 100644 index 000000000..d73829db6 --- /dev/null +++ b/contrib/packages/arch/gnunet-git/.SRCINFO @@ -0,0 +1,73 @@ +pkgbase = gnunet-git + pkgdesc = A framework for secure peer-to-peer networking + pkgver = 0.17.0.r0.g0a9c2aa9d + pkgrel = 1 + url = http://gnunet.org + install = gnunet.install + arch = i686 + arch = x86_64 + license = AGPL + makedepends = bluez-libs + makedepends = gettext + makedepends = git + makedepends = libpulse + makedepends = libtool + makedepends = opus + makedepends = pkgconfig + makedepends = postgresql + makedepends = python + makedepends = recutils + depends = brotli + depends = gettext + depends = gnurl + depends = gnutls + depends = iptables + depends = jansson + depends = libextractor + depends = libgcrypt + depends = libidn2 + depends = libmicrohttpd + depends = libsodium + depends = libtool + depends = libunistring + depends = nss + depends = openssl + depends = sqlite + depends = which + depends = zlib + optdepends = bluez: for bluetooth transport + optdepends = gnunet-gtk: for handling the gnunet:// URI scheme + optdepends = libgabe: for Attribute-Based Encryption + optdepends = libogg: for conversation service + optdepends = libpabc: for re:claimID zero-knowledge privacy credentials + optdepends = libpulse: for conversation service + optdepends = miniupnpc: for NAT uPnP support + optdepends = mysql: for an alternative to sqlite in the database plugin + optdepends = opus: for conversation service + optdepends = pbc: for Attribute-Based Encryption + optdepends = postgresql: for an alternative to sqlite in the database plugin + optdepends = python: for test suite + optdepends = texi2mdoc: for automatic mdoc generation + optdepends = texinfo: for building the documentation + optdepends = texlive-core: for generating GNS business cards via gnunet-bcd + optdepends = zbar: for reading/writing QR codes using gnunet-qr + provides = gnunet + conflicts = gnunet + conflicts = gnunet-bin + backup = etc/gnunet.conf + source = git+https://git.gnunet.org/gnunet.git + source = gnunet-system.service + source = gnunet.sysusers + source = gnunet.tmpfiles + source = gnunet-uri.desktop + source = gnunet-user.conf + source = gnunet-user.service + sha256sums = SKIP + sha256sums = 163818b89beddcaf78937daba5bdf0ae060b2975de0731aa13d1ccdd813cf262 + sha256sums = 66299dbbdd0219d2f5f0520e69fc094f38f789724d973c2f63a421257ea4f755 + sha256sums = 5c34e1ecc6208900426f8e399e8c3edbef12cce19eba605fd7364ddb3547d9f0 + sha256sums = 98e4e1d6d4fd7c7fd05d9e16402c95f1e7afeb4b97c8c68ac63e8abd11ff4ee7 + sha256sums = 3f17b9ed2c1f8cc0f919fe477df99678c17778a31f1eeb56517e285e3cef30f2 + sha256sums = 60caee20b53bcc69522556b35ac3d35d89e28c49b9a22a2ed5121df4a2c33be5 + +pkgname = gnunet-git diff --git a/contrib/packages/arch/gnunet-git/PKGBUILD b/contrib/packages/arch/gnunet-git/PKGBUILD new file mode 100644 index 000000000..bb4d3598d --- /dev/null +++ b/contrib/packages/arch/gnunet-git/PKGBUILD @@ -0,0 +1,128 @@ +# Maintainer: grufo +# Contributor: redfish +# Contributor: kertase +# Contributor: Sergej Pupykin +# Contributor: wahnby + +_appname='gnunet' +pkgname="${_appname}-git" +pkgver=0.17.0.r0.g0a9c2aa9d +pkgrel=1 +pkgdesc='A framework for secure peer-to-peer networking' +arch=('i686' 'x86_64') +url="http://${_appname}.org" +license=('AGPL') +conflicts=("${_appname}" "${_appname}-bin") +provides=("${_appname}") +depends=('brotli' 'gettext' 'gnurl' 'gnutls' 'iptables' 'jansson' + 'libextractor' 'libgcrypt' 'libidn2' 'libmicrohttpd' 'libsodium' + 'libtool' 'libunistring' 'nss' 'openssl' 'sqlite' 'which' 'zlib') +makedepends=('bluez-libs' 'gettext' 'git' 'libpulse' 'libtool' 'opus' + 'pkgconfig' 'postgresql' 'python' 'recutils') +optdepends=('bluez: for bluetooth transport' + 'gnunet-gtk: for handling the gnunet:// URI scheme' + 'libgabe: for Attribute-Based Encryption' + 'libogg: for conversation service' + 'libpabc: for re:claimID zero-knowledge privacy credentials' + 'libpulse: for conversation service' + 'miniupnpc: for NAT uPnP support' + 'mysql: for an alternative to sqlite in the database plugin' + 'opus: for conversation service' + 'pbc: for Attribute-Based Encryption' + 'postgresql: for an alternative to sqlite in the database plugin' + 'python: for test suite' + 'texi2mdoc: for automatic mdoc generation' + 'texinfo: for building the documentation' + 'texlive-core: for generating GNS business cards via gnunet-bcd' + 'zbar: for reading/writing QR codes using gnunet-qr') +backup=("etc/${_appname}.conf") +source=("git+https://git.${_appname}.org/${_appname}.git" + "${_appname}-system.service" + "${_appname}.sysusers" + "${_appname}.tmpfiles" + "${_appname}-uri.desktop" + "${_appname}-user.conf" + "${_appname}-user.service") +install="${_appname}.install" +sha256sums=('SKIP' + '163818b89beddcaf78937daba5bdf0ae060b2975de0731aa13d1ccdd813cf262' + '66299dbbdd0219d2f5f0520e69fc094f38f789724d973c2f63a421257ea4f755' + '5c34e1ecc6208900426f8e399e8c3edbef12cce19eba605fd7364ddb3547d9f0' + '98e4e1d6d4fd7c7fd05d9e16402c95f1e7afeb4b97c8c68ac63e8abd11ff4ee7' + '3f17b9ed2c1f8cc0f919fe477df99678c17778a31f1eeb56517e285e3cef30f2' + '60caee20b53bcc69522556b35ac3d35d89e28c49b9a22a2ed5121df4a2c33be5') + +pkgver() { + + cd "${_appname}" > /dev/null 2>&1 + git describe --long --tags | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g' + +} + +prepare() { + + cd "${srcdir}/${_appname}" + + export GNUNET_PREFIX='/usr/lib' + ./bootstrap + +} + +build() { + + cd "${srcdir}/${_appname}" + + ./configure --prefix='/usr' --enable-experimental + make + make -C contrib + +} + +package() { + + cd "${srcdir}/${_appname}" + + make DESTDIR="${pkgdir}" install + make DESTDIR="${pkgdir}" -C contrib install + + install -dm755 "${pkgdir}/usr/lib/systemd/system" + install -Dm644 "${srcdir}/${_appname}-system.service" \ + "${pkgdir}/usr/lib/systemd/system/${_appname}.service" + + install -dm755 "${pkgdir}/usr/lib/systemd/user" + install -Dm644 "${srcdir}/${_appname}-user.service" \ + "${pkgdir}/usr/lib/systemd/user/${_appname}.service" + + install -dm755 "${pkgdir}/usr/lib/sysusers.d" + install -Dm644 "${srcdir}/${_appname}.sysusers" \ + "${pkgdir}/usr/lib/sysusers.d/${_appname}.conf" + + install -dm755 "${pkgdir}/usr/lib/tmpfiles.d" + install -Dm644 "${srcdir}/${_appname}.tmpfiles" \ + "${pkgdir}/usr/lib/tmpfiles.d/${_appname}.conf" + + install -dm755 "${pkgdir}/usr/share/applications" + install -Dm644 "${srcdir}/${_appname}-uri.desktop" \ + "${pkgdir}/usr/share/applications/${_appname}-uri.desktop" + + install -dm700 "${pkgdir}/etc/skel/.config" + install -Dm600 "${srcdir}/${_appname}-user.conf" \ + "${pkgdir}/etc/skel/.config/${_appname}.conf" + + # Automatically generate a configuration file using the content of + # `/usr/share/gnunet/config.d/` as model; in this way we can ensure + # that this configuration file is the one backed up with each update, + # while `/usr/share/gnunet/config.d/` is kept as immutable default + # configuration. + + install -dm755 "${pkgdir}/etc" + + { + echo "# /etc/${_appname}.conf" + (cd "${pkgdir}" > /dev/null 2>&1 && find "usr/share/${_appname}/config.d" -type f -name '*.conf' \ + -printf '\n\n# For the default values of the the following lines please refer to\n# /%p\n\n' \ + -exec cat '{}' ';') + } > "${pkgdir}/etc/${_appname}.conf" + +} + diff --git a/contrib/packages/arch/gnunet-git/gnunet-system.service b/contrib/packages/arch/gnunet-git/gnunet-system.service new file mode 100644 index 000000000..b429caf46 --- /dev/null +++ b/contrib/packages/arch/gnunet-git/gnunet-system.service @@ -0,0 +1,13 @@ +[Unit] +Description=GNUnet system service +After=network.target + +[Service] +Type=simple +User=gnunet +ExecStart=/usr/lib/gnunet/libexec/gnunet-service-arm -c /etc/gnunet.conf +StateDirectory=gnunet +StateDirectoryMode=0700 + +[Install] +WantedBy=multi-user.target diff --git a/contrib/packages/arch/gnunet-git/gnunet-uri.desktop b/contrib/packages/arch/gnunet-git/gnunet-uri.desktop new file mode 100644 index 000000000..4f847d20f --- /dev/null +++ b/contrib/packages/arch/gnunet-git/gnunet-uri.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Name=GNUnet URI +Exec=gnunet-uri %u +GenericName=URI handler for the GNUnet network +Icon=gnunet +Type=Application +Terminal=false +NoDisplay=true +MimeType=x-scheme-handler/gnunet; diff --git a/contrib/packages/arch/gnunet-git/gnunet-user.conf b/contrib/packages/arch/gnunet-git/gnunet-user.conf new file mode 100644 index 000000000..22f1fe37a --- /dev/null +++ b/contrib/packages/arch/gnunet-git/gnunet-user.conf @@ -0,0 +1,3 @@ +[arm] +START_SYSTEM_SERVICES = NO +START_USER_SERVICES = YES diff --git a/contrib/packages/arch/gnunet-git/gnunet-user.service b/contrib/packages/arch/gnunet-git/gnunet-user.service new file mode 100644 index 000000000..ae9f0d4f5 --- /dev/null +++ b/contrib/packages/arch/gnunet-git/gnunet-user.service @@ -0,0 +1,10 @@ +[Unit] +Description=GNUnet user service +After=network.target + +[Service] +Type=simple +ExecStart=/usr/lib/gnunet/libexec/gnunet-service-arm -c ~/.config/gnunet.conf + +[Install] +WantedBy=multi-user.target diff --git a/contrib/packages/arch/gnunet-git/gnunet.install b/contrib/packages/arch/gnunet-git/gnunet.install new file mode 100644 index 000000000..2560926d8 --- /dev/null +++ b/contrib/packages/arch/gnunet-git/gnunet.install @@ -0,0 +1,54 @@ +post_install() { + + local _PWD_PAIRS_="$(awk -F ':' '$3>=1000 && $3<2000 {print $1":"$6}' '/etc/passwd')" + local _USER_ + local _GROUP_ + local _CFG_DIR_ + + for _PWD_PAIR_ in ${_PWD_PAIRS_}; do + _USER_="$(echo $_PWD_PAIR_ | cut -d ':' -f 1)" + _GROUP_="$(id -gn "${_USER_}")" + _CFG_DIR_="$(echo $_PWD_PAIR_ | cut -d ':' -f 2)/.config" + test -e "${_CFG_DIR_}/gnunet.conf" || (install -dm700 -o \ + "${_USER_}" -g "${_GROUP_}" "${_CFG_DIR_}" && install \ + -Dm600 -o "${_USER_}" -g "${_GROUP_}" \ + '/etc/skel/.config/gnunet.conf' \ + "${_CFG_DIR_}/gnunet.conf") + done + + echo + echo 'Do not forget to add your user to the `gnunet` group, with' + echo + echo ' sudo usermod -aG gnunet "$(whoami)"' + echo + echo 'If later you want to remove your user from the group, launch' + echo + echo ' sudo gpasswd --delete "$(whoami)" gnunet' + echo + echo 'For information on how to use GNUnet plaese refer to the GNUnet article in the' + echo 'ArchWiki (https://wiki.archlinux.org/title/GNUnet).' + echo + +} + +post_remove() { + + echo + echo 'The home directory of the `gnunet` user (`/var/lib/gnunet/`) is left after' + echo 'uninstalling GNUnet. If you are sure that you are never going to use GNUnet' + echo 'ever again, launch:' + echo + echo ' for username in $(getent group gnunet | cut -d: -f4 | tr '\'','\'' '\'' '\''); do \' + echo ' sudo gpasswd --delete "${username}" gnunet; done' + echo ' sudo userdel -r gnunet' + echo ' sudo groupdel gnunetdns' + echo + echo '**Warning** The identity and all the information about the network' + echo 'cumulatively stored by the current peer will be destroyed - this will not' + echo 'affect files explicitly downloaded in other paths.' + echo + echo 'For further information plaese refer to the GNUnet article in the ArchWiki' + echo '(https://wiki.archlinux.org/title/GNUnet).' + echo + +} diff --git a/contrib/packages/arch/gnunet-git/gnunet.sysusers b/contrib/packages/arch/gnunet-git/gnunet.sysusers new file mode 100644 index 000000000..163895934 --- /dev/null +++ b/contrib/packages/arch/gnunet-git/gnunet.sysusers @@ -0,0 +1,3 @@ +g gnunet - +u gnunet - "GNUnet system account" /var/lib/gnunet +g gnunetdns - diff --git a/contrib/packages/arch/gnunet-git/gnunet.tmpfiles b/contrib/packages/arch/gnunet-git/gnunet.tmpfiles new file mode 100644 index 000000000..5b0b4174d --- /dev/null +++ b/contrib/packages/arch/gnunet-git/gnunet.tmpfiles @@ -0,0 +1,9 @@ +d /var/lib/gnunet 0700 gnunet gnunet - - +z /usr/lib/gnunet/libexec/gnunet-helper-dns 4750 root gnunetdns - - +z /usr/lib/gnunet/libexec/gnunet-helper-exit 4755 root root - - +z /usr/lib/gnunet/libexec/gnunet-helper-nat-client 4755 root root - - +z /usr/lib/gnunet/libexec/gnunet-helper-nat-server 4755 root root - - +z /usr/lib/gnunet/libexec/gnunet-helper-transport-bluetooth 4755 root root - - +z /usr/lib/gnunet/libexec/gnunet-helper-transport-wlan 4755 root root - - +z /usr/lib/gnunet/libexec/gnunet-helper-vpn 4755 root root - - +z /usr/lib/gnunet/libexec/gnunet-service-dns 2750 gnunet gnunetdns - - diff --git a/contrib/packages/arch/gnunet/.SRCINFO b/contrib/packages/arch/gnunet/.SRCINFO new file mode 100644 index 000000000..438f91230 --- /dev/null +++ b/contrib/packages/arch/gnunet/.SRCINFO @@ -0,0 +1,72 @@ +pkgbase = gnunet + pkgdesc = A framework for secure peer-to-peer networking + pkgver = 0.17.0 + pkgrel = 1 + url = http://gnunet.org + install = gnunet.install + arch = i686 + arch = x86_64 + license = AGPL + makedepends = bluez-libs + makedepends = libpulse + makedepends = libtool + makedepends = opus + makedepends = pkgconfig + makedepends = postgresql + makedepends = python + depends = brotli + depends = gettext + depends = gnurl + depends = gnutls + depends = iptables + depends = jansson + depends = libextractor + depends = libgcrypt + depends = libidn2 + depends = libmicrohttpd + depends = libsodium + depends = libtool + depends = libunistring + depends = nss + depends = openssl + depends = sqlite + depends = which + depends = zlib + optdepends = bluez: for bluetooth transport + optdepends = gnunet-gtk: for handling the gnunet:// URI scheme + optdepends = libgabe: for Attribute-Based Encryption + optdepends = libogg: for conversation service + optdepends = libpabc: for re:claimID zero-knowledge privacy credentials + optdepends = libpulse: for conversation service + optdepends = miniupnpc: for NAT uPnP support + optdepends = mysql: for an alternative to sqlite in the database plugin + optdepends = opus: for conversation service + optdepends = pbc: for Attribute-Based Encryption + optdepends = postgresql: for an alternative to sqlite in the database plugin + optdepends = python: for test suite + optdepends = texi2mdoc: for automatic mdoc generation + optdepends = texinfo: for building the documentation + optdepends = texlive-core: for generating GNS business cards via gnunet-bcd + optdepends = zbar: for reading/writing QR codes using gnunet-qr + conflicts = gnunet-git + conflicts = gnunet-bin + backup = etc/gnunet.conf + source = ftp://ftp.gnu.org/gnu/gnunet/gnunet-0.17.0.tar.gz + source = ftp://ftp.gnu.org/gnu/gnunet/gnunet-0.17.0.tar.gz.sig + source = gnunet-system.service + source = gnunet.sysusers + source = gnunet.tmpfiles + source = gnunet-uri.desktop + source = gnunet-user.conf + source = gnunet-user.service + validpgpkeys = 3D11063C10F98D14BD24D1470B0998EF86F59B6A + sha256sums = 6b2f7bf34c3c3986f2c294f04e881dda9db8ef636c0e78ebcf8084b8a47d49ca + sha256sums = SKIP + sha256sums = 163818b89beddcaf78937daba5bdf0ae060b2975de0731aa13d1ccdd813cf262 + sha256sums = 66299dbbdd0219d2f5f0520e69fc094f38f789724d973c2f63a421257ea4f755 + sha256sums = 5c34e1ecc6208900426f8e399e8c3edbef12cce19eba605fd7364ddb3547d9f0 + sha256sums = 98e4e1d6d4fd7c7fd05d9e16402c95f1e7afeb4b97c8c68ac63e8abd11ff4ee7 + sha256sums = 3f17b9ed2c1f8cc0f919fe477df99678c17778a31f1eeb56517e285e3cef30f2 + sha256sums = 60caee20b53bcc69522556b35ac3d35d89e28c49b9a22a2ed5121df4a2c33be5 + +pkgname = gnunet diff --git a/contrib/packages/arch/gnunet/PKGBUILD b/contrib/packages/arch/gnunet/PKGBUILD new file mode 100644 index 000000000..2dfcdd6ec --- /dev/null +++ b/contrib/packages/arch/gnunet/PKGBUILD @@ -0,0 +1,118 @@ +# Maintainer: grufo +# Contributor: redfish +# Contributor: kertase +# Contributor: Sergej Pupykin +# Contributor: wahnby + +pkgname='gnunet' +pkgver='0.17.0' +pkgrel=1 +pkgdesc='A framework for secure peer-to-peer networking' +arch=('i686' 'x86_64') +url="http://${pkgname}.org" +license=('AGPL') +conflicts=("${pkgname}-git" "${pkgname}-bin") +depends=('brotli' 'gettext' 'gnurl' 'gnutls' 'iptables' 'jansson' + 'libextractor' 'libgcrypt' 'libidn2' 'libmicrohttpd' 'libsodium' + 'libtool' 'libunistring' 'nss' 'openssl' 'sqlite' 'which' 'zlib') +makedepends=('bluez-libs' 'libpulse' 'libtool' 'opus' 'pkgconfig' 'postgresql' + 'python') +optdepends=('bluez: for bluetooth transport' + 'gnunet-gtk: for handling the gnunet:// URI scheme' + 'libgabe: for Attribute-Based Encryption' + 'libogg: for conversation service' + 'libpabc: for re:claimID zero-knowledge privacy credentials' + 'libpulse: for conversation service' + 'miniupnpc: for NAT uPnP support' + 'mysql: for an alternative to sqlite in the database plugin' + 'opus: for conversation service' + 'pbc: for Attribute-Based Encryption' + 'postgresql: for an alternative to sqlite in the database plugin' + 'python: for test suite' + 'texi2mdoc: for automatic mdoc generation' + 'texinfo: for building the documentation' + 'texlive-core: for generating GNS business cards via gnunet-bcd' + 'zbar: for reading/writing QR codes using gnunet-qr') +backup=("etc/${pkgname}.conf") +source=("ftp://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz"{,.sig} + "${pkgname}-system.service" + "${pkgname}.sysusers" + "${pkgname}.tmpfiles" + "${pkgname}-uri.desktop" + "${pkgname}-user.conf" + "${pkgname}-user.service") +install="${pkgname}.install" +validpgpkeys=('3D11063C10F98D14BD24D1470B0998EF86F59B6A') +sha256sums=('6b2f7bf34c3c3986f2c294f04e881dda9db8ef636c0e78ebcf8084b8a47d49ca' + 'SKIP' + '163818b89beddcaf78937daba5bdf0ae060b2975de0731aa13d1ccdd813cf262' + '66299dbbdd0219d2f5f0520e69fc094f38f789724d973c2f63a421257ea4f755' + '5c34e1ecc6208900426f8e399e8c3edbef12cce19eba605fd7364ddb3547d9f0' + '98e4e1d6d4fd7c7fd05d9e16402c95f1e7afeb4b97c8c68ac63e8abd11ff4ee7' + '3f17b9ed2c1f8cc0f919fe477df99678c17778a31f1eeb56517e285e3cef30f2' + '60caee20b53bcc69522556b35ac3d35d89e28c49b9a22a2ed5121df4a2c33be5') + +prepare() { + + cd "${srcdir}/${pkgname}-${pkgver}" + + export GNUNET_PREFIX='/usr/lib' + autoreconf -i + +} + +build() { + + cd "${srcdir}/${pkgname}-${pkgver}" + + ./configure --prefix='/usr' --enable-experimental + make + +} + +package() { + + cd "${srcdir}/${pkgname}-${pkgver}" + + make DESTDIR="${pkgdir}" install + + install -dm755 "${pkgdir}/usr/lib/systemd/system" + install -Dm644 "${srcdir}/${pkgname}-system.service" \ + "${pkgdir}/usr/lib/systemd/system/${pkgname}.service" + + install -dm755 "${pkgdir}/usr/lib/systemd/user" + install -Dm644 "${srcdir}/${pkgname}-user.service" \ + "${pkgdir}/usr/lib/systemd/user/${pkgname}.service" + + install -dm755 "${pkgdir}/usr/lib/sysusers.d" + install -Dm644 "${srcdir}/${pkgname}.sysusers" \ + "${pkgdir}/usr/lib/sysusers.d/${pkgname}.conf" + + install -dm755 "${pkgdir}/usr/lib/tmpfiles.d" + install -Dm644 "${srcdir}/${pkgname}.tmpfiles" \ + "${pkgdir}/usr/lib/tmpfiles.d/${pkgname}.conf" + + install -dm755 "${pkgdir}/usr/share/applications" + install -Dm644 "${srcdir}/${pkgname}-uri.desktop" \ + "${pkgdir}/usr/share/applications/${pkgname}-uri.desktop" + + install -dm700 "${pkgdir}/etc/skel/.config" + install -Dm600 "${srcdir}/${pkgname}-user.conf" \ + "${pkgdir}/etc/skel/.config/${pkgname}.conf" + + # Automatically generate a configuration file using the content of + # `/usr/share/gnunet/config.d/` as model; in this way we can ensure + # that this configuration file is the one backed up with each update, + # while `/usr/share/gnunet/config.d/` is kept as immutable default + # configuration. + + install -dm755 "${pkgdir}/etc" + + { + echo "# /etc/${pkgname}.conf" + (cd "${pkgdir}" > /dev/null 2>&1 && find "usr/share/${pkgname}/config.d" -type f -name '*.conf' \ + -printf '\n\n# For the default values of the the following lines please refer to\n# /%p\n\n' \ + -exec cat '{}' ';') + } > "${pkgdir}/etc/${pkgname}.conf" + +} diff --git a/contrib/packages/arch/gnunet/gnunet-system.service b/contrib/packages/arch/gnunet/gnunet-system.service new file mode 100644 index 000000000..b429caf46 --- /dev/null +++ b/contrib/packages/arch/gnunet/gnunet-system.service @@ -0,0 +1,13 @@ +[Unit] +Description=GNUnet system service +After=network.target + +[Service] +Type=simple +User=gnunet +ExecStart=/usr/lib/gnunet/libexec/gnunet-service-arm -c /etc/gnunet.conf +StateDirectory=gnunet +StateDirectoryMode=0700 + +[Install] +WantedBy=multi-user.target diff --git a/contrib/packages/arch/gnunet/gnunet-uri.desktop b/contrib/packages/arch/gnunet/gnunet-uri.desktop new file mode 100644 index 000000000..4f847d20f --- /dev/null +++ b/contrib/packages/arch/gnunet/gnunet-uri.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Name=GNUnet URI +Exec=gnunet-uri %u +GenericName=URI handler for the GNUnet network +Icon=gnunet +Type=Application +Terminal=false +NoDisplay=true +MimeType=x-scheme-handler/gnunet; diff --git a/contrib/packages/arch/gnunet/gnunet-user.conf b/contrib/packages/arch/gnunet/gnunet-user.conf new file mode 100644 index 000000000..22f1fe37a --- /dev/null +++ b/contrib/packages/arch/gnunet/gnunet-user.conf @@ -0,0 +1,3 @@ +[arm] +START_SYSTEM_SERVICES = NO +START_USER_SERVICES = YES diff --git a/contrib/packages/arch/gnunet/gnunet-user.service b/contrib/packages/arch/gnunet/gnunet-user.service new file mode 100644 index 000000000..ae9f0d4f5 --- /dev/null +++ b/contrib/packages/arch/gnunet/gnunet-user.service @@ -0,0 +1,10 @@ +[Unit] +Description=GNUnet user service +After=network.target + +[Service] +Type=simple +ExecStart=/usr/lib/gnunet/libexec/gnunet-service-arm -c ~/.config/gnunet.conf + +[Install] +WantedBy=multi-user.target diff --git a/contrib/packages/arch/gnunet/gnunet.install b/contrib/packages/arch/gnunet/gnunet.install new file mode 100644 index 000000000..2560926d8 --- /dev/null +++ b/contrib/packages/arch/gnunet/gnunet.install @@ -0,0 +1,54 @@ +post_install() { + + local _PWD_PAIRS_="$(awk -F ':' '$3>=1000 && $3<2000 {print $1":"$6}' '/etc/passwd')" + local _USER_ + local _GROUP_ + local _CFG_DIR_ + + for _PWD_PAIR_ in ${_PWD_PAIRS_}; do + _USER_="$(echo $_PWD_PAIR_ | cut -d ':' -f 1)" + _GROUP_="$(id -gn "${_USER_}")" + _CFG_DIR_="$(echo $_PWD_PAIR_ | cut -d ':' -f 2)/.config" + test -e "${_CFG_DIR_}/gnunet.conf" || (install -dm700 -o \ + "${_USER_}" -g "${_GROUP_}" "${_CFG_DIR_}" && install \ + -Dm600 -o "${_USER_}" -g "${_GROUP_}" \ + '/etc/skel/.config/gnunet.conf' \ + "${_CFG_DIR_}/gnunet.conf") + done + + echo + echo 'Do not forget to add your user to the `gnunet` group, with' + echo + echo ' sudo usermod -aG gnunet "$(whoami)"' + echo + echo 'If later you want to remove your user from the group, launch' + echo + echo ' sudo gpasswd --delete "$(whoami)" gnunet' + echo + echo 'For information on how to use GNUnet plaese refer to the GNUnet article in the' + echo 'ArchWiki (https://wiki.archlinux.org/title/GNUnet).' + echo + +} + +post_remove() { + + echo + echo 'The home directory of the `gnunet` user (`/var/lib/gnunet/`) is left after' + echo 'uninstalling GNUnet. If you are sure that you are never going to use GNUnet' + echo 'ever again, launch:' + echo + echo ' for username in $(getent group gnunet | cut -d: -f4 | tr '\'','\'' '\'' '\''); do \' + echo ' sudo gpasswd --delete "${username}" gnunet; done' + echo ' sudo userdel -r gnunet' + echo ' sudo groupdel gnunetdns' + echo + echo '**Warning** The identity and all the information about the network' + echo 'cumulatively stored by the current peer will be destroyed - this will not' + echo 'affect files explicitly downloaded in other paths.' + echo + echo 'For further information plaese refer to the GNUnet article in the ArchWiki' + echo '(https://wiki.archlinux.org/title/GNUnet).' + echo + +} diff --git a/contrib/packages/arch/gnunet/gnunet.sysusers b/contrib/packages/arch/gnunet/gnunet.sysusers new file mode 100644 index 000000000..163895934 --- /dev/null +++ b/contrib/packages/arch/gnunet/gnunet.sysusers @@ -0,0 +1,3 @@ +g gnunet - +u gnunet - "GNUnet system account" /var/lib/gnunet +g gnunetdns - diff --git a/contrib/packages/arch/gnunet/gnunet.tmpfiles b/contrib/packages/arch/gnunet/gnunet.tmpfiles new file mode 100644 index 000000000..5b0b4174d --- /dev/null +++ b/contrib/packages/arch/gnunet/gnunet.tmpfiles @@ -0,0 +1,9 @@ +d /var/lib/gnunet 0700 gnunet gnunet - - +z /usr/lib/gnunet/libexec/gnunet-helper-dns 4750 root gnunetdns - - +z /usr/lib/gnunet/libexec/gnunet-helper-exit 4755 root root - - +z /usr/lib/gnunet/libexec/gnunet-helper-nat-client 4755 root root - - +z /usr/lib/gnunet/libexec/gnunet-helper-nat-server 4755 root root - - +z /usr/lib/gnunet/libexec/gnunet-helper-transport-bluetooth 4755 root root - - +z /usr/lib/gnunet/libexec/gnunet-helper-transport-wlan 4755 root root - - +z /usr/lib/gnunet/libexec/gnunet-helper-vpn 4755 root root - - +z /usr/lib/gnunet/libexec/gnunet-service-dns 2750 gnunet gnunetdns - - -- cgit v1.2.3