aboutsummaryrefslogtreecommitdiff
path: root/contrib/packages/arch
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/packages/arch')
-rw-r--r--contrib/packages/arch/gnunet-git/.SRCINFO74
-rw-r--r--contrib/packages/arch/gnunet-git/PKGBUILD122
-rw-r--r--contrib/packages/arch/gnunet-git/gnunet-system.service13
-rw-r--r--contrib/packages/arch/gnunet-git/gnunet-user.conf3
-rw-r--r--contrib/packages/arch/gnunet-git/gnunet-user.service10
-rw-r--r--contrib/packages/arch/gnunet-git/gnunet.install54
-rw-r--r--contrib/packages/arch/gnunet-git/gnunet.sysusers3
-rw-r--r--contrib/packages/arch/gnunet-git/gnunet.tmpfiles9
-rw-r--r--contrib/packages/arch/gnunet/.SRCINFO71
-rw-r--r--contrib/packages/arch/gnunet/PKGBUILD111
-rw-r--r--contrib/packages/arch/gnunet/gnunet-system.service13
-rw-r--r--contrib/packages/arch/gnunet/gnunet-user.conf3
-rw-r--r--contrib/packages/arch/gnunet/gnunet-user.service10
-rw-r--r--contrib/packages/arch/gnunet/gnunet.install54
-rw-r--r--contrib/packages/arch/gnunet/gnunet.sysusers3
-rw-r--r--contrib/packages/arch/gnunet/gnunet.tmpfiles9
16 files changed, 562 insertions, 0 deletions
diff --git a/contrib/packages/arch/gnunet-git/.SRCINFO b/contrib/packages/arch/gnunet-git/.SRCINFO
new file mode 100644
index 000000000..682e69576
--- /dev/null
+++ b/contrib/packages/arch/gnunet-git/.SRCINFO
@@ -0,0 +1,74 @@
1# Generated by makepkg 6.0.1
2# Mon Sep 26 21:21:28 UTC 2022
3pkgbase = gnunet-git
4 pkgdesc = A framework for secure peer-to-peer networking
5 pkgver = 0.17.6.r4.g7bf2f8f59
6 pkgrel = 1
7 url = http://gnunet.org
8 install = gnunet.install
9 arch = i686
10 arch = x86_64
11 license = AGPL
12 makedepends = bluez-libs
13 makedepends = gettext
14 makedepends = git
15 makedepends = libpulse
16 makedepends = libtool
17 makedepends = opus
18 makedepends = pkgconfig
19 makedepends = postgresql
20 makedepends = python
21 makedepends = python-sphinx
22 makedepends = python-sphinx_rtd_theme
23 makedepends = recutils
24 depends = brotli
25 depends = gettext
26 depends = gnutls
27 depends = iptables
28 depends = jansson
29 depends = libcurl-gnutls
30 depends = libextractor
31 depends = libgcrypt
32 depends = libidn2
33 depends = libmicrohttpd
34 depends = libsodium
35 depends = libtool
36 depends = libunistring
37 depends = miniupnpc
38 depends = nss
39 depends = openssl
40 depends = sqlite
41 depends = which
42 depends = zlib
43 optdepends = bluez: for bluetooth transport
44 optdepends = gnunet-gtk: for handling the gnunet:// URI scheme
45 optdepends = jose: for re:claimID OpenID Connect plugin
46 optdepends = libogg: for conversation service
47 optdepends = libpabc: for re:claimID zero-knowledge privacy credentials
48 optdepends = libpulse: for conversation service
49 optdepends = mysql: for an alternative to sqlite in the database plugin
50 optdepends = opus: for conversation service
51 optdepends = postgresql: for an alternative to sqlite in the database plugin
52 optdepends = python: for test suite
53 optdepends = texi2mdoc: for automatic mdoc generation
54 optdepends = texinfo: for building the documentation
55 optdepends = texlive-core: for generating GNS business cards via gnunet-bcd
56 optdepends = zbar: for reading/writing QR codes using gnunet-qr
57 provides = gnunet
58 conflicts = gnunet
59 conflicts = gnunet-bin
60 backup = etc/gnunet.conf
61 source = git+https://git.gnunet.org/gnunet.git
62 source = gnunet-system.service
63 source = gnunet.sysusers
64 source = gnunet.tmpfiles
65 source = gnunet-user.conf
66 source = gnunet-user.service
67 sha256sums = SKIP
68 sha256sums = 163818b89beddcaf78937daba5bdf0ae060b2975de0731aa13d1ccdd813cf262
69 sha256sums = 66299dbbdd0219d2f5f0520e69fc094f38f789724d973c2f63a421257ea4f755
70 sha256sums = 5c34e1ecc6208900426f8e399e8c3edbef12cce19eba605fd7364ddb3547d9f0
71 sha256sums = 3f17b9ed2c1f8cc0f919fe477df99678c17778a31f1eeb56517e285e3cef30f2
72 sha256sums = 60caee20b53bcc69522556b35ac3d35d89e28c49b9a22a2ed5121df4a2c33be5
73
74pkgname = gnunet-git
diff --git a/contrib/packages/arch/gnunet-git/PKGBUILD b/contrib/packages/arch/gnunet-git/PKGBUILD
new file mode 100644
index 000000000..17d7e057f
--- /dev/null
+++ b/contrib/packages/arch/gnunet-git/PKGBUILD
@@ -0,0 +1,122 @@
1# Maintainer: grufo <madmurphy333 AT gmail DOT com>
2# Contributor: redfish <redfish AT galactica DOT pw>
3# Contributor: kertase <kertase AT gmail DOT com>
4# Contributor: Sergej Pupykin <pupykin DOT s+arch AT gmail.com>
5# Contributor: wahnby <wahnby AT yahoo DOT fr>
6
7_appname='gnunet'
8pkgname="${_appname}-git"
9pkgver=0.17.6.r4.g7bf2f8f59
10pkgrel=1
11pkgdesc='A framework for secure peer-to-peer networking'
12arch=('i686' 'x86_64')
13url="http://${_appname}.org"
14license=('AGPL')
15conflicts=("${_appname}" "${_appname}-bin")
16provides=("${_appname}")
17depends=('brotli' 'gettext' 'gnutls' 'iptables' 'jansson' 'libcurl-gnutls'
18 'libextractor' 'libgcrypt' 'libidn2' 'libmicrohttpd' 'libsodium'
19 'libtool' 'libunistring' 'miniupnpc' 'nss' 'openssl' 'sqlite' 'which'
20 'zlib')
21makedepends=('bluez-libs' 'gettext' 'git' 'libpulse' 'libtool' 'opus'
22 'pkgconfig' 'postgresql' 'python' 'python-sphinx'
23 'python-sphinx_rtd_theme' 'recutils')
24optdepends=('bluez: for bluetooth transport'
25 'gnunet-gtk: for handling the gnunet:// URI scheme'
26 'jose: for re:claimID OpenID Connect plugin'
27 'libogg: for conversation service'
28 'libpabc: for re:claimID zero-knowledge privacy credentials'
29 'libpulse: for conversation service'
30 'mysql: for an alternative to sqlite in the database plugin'
31 'opus: for conversation service'
32 'postgresql: for an alternative to sqlite in the database plugin'
33 'python: for test suite'
34 'texi2mdoc: for automatic mdoc generation'
35 'texinfo: for building the documentation'
36 'texlive-core: for generating GNS business cards via gnunet-bcd'
37 'zbar: for reading/writing QR codes using gnunet-qr')
38backup=("etc/${_appname}.conf")
39source=("git+https://git.${_appname}.org/${_appname}.git"
40 "${_appname}-system.service"
41 "${_appname}.sysusers"
42 "${_appname}.tmpfiles"
43 "${_appname}-user.conf"
44 "${_appname}-user.service")
45install="${_appname}.install"
46sha256sums=('SKIP'
47 '163818b89beddcaf78937daba5bdf0ae060b2975de0731aa13d1ccdd813cf262'
48 '66299dbbdd0219d2f5f0520e69fc094f38f789724d973c2f63a421257ea4f755'
49 '5c34e1ecc6208900426f8e399e8c3edbef12cce19eba605fd7364ddb3547d9f0'
50 '3f17b9ed2c1f8cc0f919fe477df99678c17778a31f1eeb56517e285e3cef30f2'
51 '60caee20b53bcc69522556b35ac3d35d89e28c49b9a22a2ed5121df4a2c33be5')
52
53pkgver() {
54
55 cd "${_appname}" > /dev/null 2>&1
56 git describe --long --tags | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g'
57
58}
59
60prepare() {
61
62 cd "${srcdir}/${_appname}"
63
64 export GNUNET_PREFIX='/usr/lib'
65 ./bootstrap
66
67}
68
69build() {
70
71 cd "${srcdir}/${_appname}"
72
73 ./configure --prefix='/usr' --enable-experimental
74 make
75 make -C contrib
76
77}
78
79package() {
80
81 cd "${srcdir}/${_appname}"
82
83 make DESTDIR="${pkgdir}" install
84 make DESTDIR="${pkgdir}" -C contrib install
85
86 install -dm755 "${pkgdir}/usr/lib/systemd/system"
87 install -Dm644 "${srcdir}/${_appname}-system.service" \
88 "${pkgdir}/usr/lib/systemd/system/${_appname}.service"
89
90 install -dm755 "${pkgdir}/usr/lib/systemd/user"
91 install -Dm644 "${srcdir}/${_appname}-user.service" \
92 "${pkgdir}/usr/lib/systemd/user/${_appname}.service"
93
94 install -dm755 "${pkgdir}/usr/lib/sysusers.d"
95 install -Dm644 "${srcdir}/${_appname}.sysusers" \
96 "${pkgdir}/usr/lib/sysusers.d/${_appname}.conf"
97
98 install -dm755 "${pkgdir}/usr/lib/tmpfiles.d"
99 install -Dm644 "${srcdir}/${_appname}.tmpfiles" \
100 "${pkgdir}/usr/lib/tmpfiles.d/${_appname}.conf"
101
102 install -dm700 "${pkgdir}/etc/skel/.config"
103 install -Dm600 "${srcdir}/${_appname}-user.conf" \
104 "${pkgdir}/etc/skel/.config/${_appname}.conf"
105
106 # Automatically generate a configuration file using the content of
107 # `/usr/share/gnunet/config.d/` as model; in this way we can ensure
108 # that this configuration file is the one backed up with each update,
109 # while `/usr/share/gnunet/config.d/` is kept as immutable default
110 # configuration.
111
112 install -dm755 "${pkgdir}/etc"
113
114 {
115 echo "# /etc/${_appname}.conf"
116 (cd "${pkgdir}" > /dev/null 2>&1 && find "usr/share/${_appname}/config.d" -type f -name '*.conf' \
117 -printf '\n\n# For the default values of the the following lines please refer to\n# /%p\n\n' \
118 -exec cat '{}' ';')
119 } > "${pkgdir}/etc/${_appname}.conf"
120
121}
122
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 @@
1[Unit]
2Description=GNUnet system service
3After=network.target
4
5[Service]
6Type=simple
7User=gnunet
8ExecStart=/usr/lib/gnunet/libexec/gnunet-service-arm -c /etc/gnunet.conf
9StateDirectory=gnunet
10StateDirectoryMode=0700
11
12[Install]
13WantedBy=multi-user.target
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 @@
1[arm]
2START_SYSTEM_SERVICES = NO
3START_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 @@
1[Unit]
2Description=GNUnet user service
3After=network.target
4
5[Service]
6Type=simple
7ExecStart=/usr/lib/gnunet/libexec/gnunet-service-arm -c ~/.config/gnunet.conf
8
9[Install]
10WantedBy=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 @@
1post_install() {
2
3 local _PWD_PAIRS_="$(awk -F ':' '$3>=1000 && $3<2000 {print $1":"$6}' '/etc/passwd')"
4 local _USER_
5 local _GROUP_
6 local _CFG_DIR_
7
8 for _PWD_PAIR_ in ${_PWD_PAIRS_}; do
9 _USER_="$(echo $_PWD_PAIR_ | cut -d ':' -f 1)"
10 _GROUP_="$(id -gn "${_USER_}")"
11 _CFG_DIR_="$(echo $_PWD_PAIR_ | cut -d ':' -f 2)/.config"
12 test -e "${_CFG_DIR_}/gnunet.conf" || (install -dm700 -o \
13 "${_USER_}" -g "${_GROUP_}" "${_CFG_DIR_}" && install \
14 -Dm600 -o "${_USER_}" -g "${_GROUP_}" \
15 '/etc/skel/.config/gnunet.conf' \
16 "${_CFG_DIR_}/gnunet.conf")
17 done
18
19 echo
20 echo 'Do not forget to add your user to the `gnunet` group, with'
21 echo
22 echo ' sudo usermod -aG gnunet "$(whoami)"'
23 echo
24 echo 'If later you want to remove your user from the group, launch'
25 echo
26 echo ' sudo gpasswd --delete "$(whoami)" gnunet'
27 echo
28 echo 'For information on how to use GNUnet plaese refer to the GNUnet article in the'
29 echo 'ArchWiki (https://wiki.archlinux.org/title/GNUnet).'
30 echo
31
32}
33
34post_remove() {
35
36 echo
37 echo 'The home directory of the `gnunet` user (`/var/lib/gnunet/`) is left after'
38 echo 'uninstalling GNUnet. If you are sure that you are never going to use GNUnet'
39 echo 'ever again, launch:'
40 echo
41 echo ' for username in $(getent group gnunet | cut -d: -f4 | tr '\'','\'' '\'' '\''); do \'
42 echo ' sudo gpasswd --delete "${username}" gnunet; done'
43 echo ' sudo userdel -r gnunet'
44 echo ' sudo groupdel gnunetdns'
45 echo
46 echo '**Warning** The identity and all the information about the network'
47 echo 'cumulatively stored by the current peer will be destroyed - this will not'
48 echo 'affect files explicitly downloaded in other paths.'
49 echo
50 echo 'For further information plaese refer to the GNUnet article in the ArchWiki'
51 echo '(https://wiki.archlinux.org/title/GNUnet).'
52 echo
53
54}
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 @@
1g gnunet -
2u gnunet - "GNUnet system account" /var/lib/gnunet
3g 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 @@
1d /var/lib/gnunet 0700 gnunet gnunet - -
2z /usr/lib/gnunet/libexec/gnunet-helper-dns 4750 root gnunetdns - -
3z /usr/lib/gnunet/libexec/gnunet-helper-exit 4755 root root - -
4z /usr/lib/gnunet/libexec/gnunet-helper-nat-client 4755 root root - -
5z /usr/lib/gnunet/libexec/gnunet-helper-nat-server 4755 root root - -
6z /usr/lib/gnunet/libexec/gnunet-helper-transport-bluetooth 4755 root root - -
7z /usr/lib/gnunet/libexec/gnunet-helper-transport-wlan 4755 root root - -
8z /usr/lib/gnunet/libexec/gnunet-helper-vpn 4755 root root - -
9z /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..19df8d63f
--- /dev/null
+++ b/contrib/packages/arch/gnunet/.SRCINFO
@@ -0,0 +1,71 @@
1pkgbase = gnunet
2 pkgdesc = A framework for secure peer-to-peer networking
3 pkgver = 0.17.6
4 pkgrel = 1
5 url = http://gnunet.org
6 install = gnunet.install
7 arch = i686
8 arch = x86_64
9 license = AGPL
10 makedepends = bluez-libs
11 makedepends = libpulse
12 makedepends = libtool
13 makedepends = opus
14 makedepends = pkgconfig
15 makedepends = postgresql
16 makedepends = python
17 makedepends = python-sphinx
18 makedepends = python-sphinx_rtd_theme
19 depends = brotli
20 depends = gettext
21 depends = gnutls
22 depends = iptables
23 depends = jansson
24 depends = libcurl-gnutls
25 depends = libextractor
26 depends = libgcrypt
27 depends = libidn2
28 depends = libmicrohttpd
29 depends = libsodium
30 depends = libtool
31 depends = libunistring
32 depends = miniupnpc
33 depends = nss
34 depends = openssl
35 depends = sqlite
36 depends = which
37 depends = zlib
38 optdepends = bluez: for bluetooth transport
39 optdepends = gnunet-gtk: for handling the gnunet:// URI scheme
40 optdepends = jose: for re:claimID OpenID Connect plugin
41 optdepends = libogg: for conversation service
42 optdepends = libpabc: for re:claimID zero-knowledge privacy credentials
43 optdepends = libpulse: for conversation service
44 optdepends = mysql: for an alternative to sqlite in the database plugin
45 optdepends = opus: for conversation service
46 optdepends = postgresql: for an alternative to sqlite in the database plugin
47 optdepends = python: for test suite
48 optdepends = texi2mdoc: for automatic mdoc generation
49 optdepends = texinfo: for building the documentation
50 optdepends = texlive-core: for generating GNS business cards via gnunet-bcd
51 optdepends = zbar: for reading/writing QR codes using gnunet-qr
52 conflicts = gnunet-git
53 conflicts = gnunet-bin
54 backup = etc/gnunet.conf
55 source = ftp://ftp.gnu.org/gnu/gnunet/gnunet-0.17.6.tar.gz
56 source = ftp://ftp.gnu.org/gnu/gnunet/gnunet-0.17.6.tar.gz.sig
57 source = gnunet-system.service
58 source = gnunet.sysusers
59 source = gnunet.tmpfiles
60 source = gnunet-user.conf
61 source = gnunet-user.service
62 validpgpkeys = 3D11063C10F98D14BD24D1470B0998EF86F59B6A
63 sha256sums = 249358ef3b10ce99810781fedaec526a6eab943c120e4bba096aedf91c1afc40
64 sha256sums = SKIP
65 sha256sums = 163818b89beddcaf78937daba5bdf0ae060b2975de0731aa13d1ccdd813cf262
66 sha256sums = 66299dbbdd0219d2f5f0520e69fc094f38f789724d973c2f63a421257ea4f755
67 sha256sums = 5c34e1ecc6208900426f8e399e8c3edbef12cce19eba605fd7364ddb3547d9f0
68 sha256sums = 3f17b9ed2c1f8cc0f919fe477df99678c17778a31f1eeb56517e285e3cef30f2
69 sha256sums = 60caee20b53bcc69522556b35ac3d35d89e28c49b9a22a2ed5121df4a2c33be5
70
71pkgname = gnunet
diff --git a/contrib/packages/arch/gnunet/PKGBUILD b/contrib/packages/arch/gnunet/PKGBUILD
new file mode 100644
index 000000000..1cef4dcec
--- /dev/null
+++ b/contrib/packages/arch/gnunet/PKGBUILD
@@ -0,0 +1,111 @@
1# Maintainer: grufo <madmurphy333 AT gmail DOT com>
2# Contributor: redfish <redfish AT galactica DOT pw>
3# Contributor: kertase <kertase AT gmail DOT com>
4# Contributor: Sergej Pupykin <pupykin DOT s+arch AT gmail.com>
5# Contributor: wahnby <wahnby AT yahoo DOT fr>
6
7pkgname='gnunet'
8pkgver='0.17.6'
9pkgrel=1
10pkgdesc='A framework for secure peer-to-peer networking'
11arch=('i686' 'x86_64')
12url="http://${pkgname}.org"
13license=('AGPL')
14conflicts=("${pkgname}-git" "${pkgname}-bin")
15depends=('brotli' 'gettext' 'gnutls' 'iptables' 'jansson' 'libcurl-gnutls'
16 'libextractor' 'libgcrypt' 'libidn2' 'libmicrohttpd' 'libsodium'
17 'libtool' 'libunistring' 'miniupnpc' 'nss' 'openssl' 'sqlite' 'which'
18 'zlib')
19makedepends=('bluez-libs' 'libpulse' 'libtool' 'opus' 'pkgconfig' 'postgresql'
20 'python' 'python-sphinx' 'python-sphinx_rtd_theme')
21optdepends=('bluez: for bluetooth transport'
22 'gnunet-gtk: for handling the gnunet:// URI scheme'
23 'jose: for re:claimID OpenID Connect plugin'
24 'libogg: for conversation service'
25 'libpabc: for re:claimID zero-knowledge privacy credentials'
26 'libpulse: for conversation service'
27 'mysql: for an alternative to sqlite in the database plugin'
28 'opus: for conversation service'
29 'postgresql: for an alternative to sqlite in the database plugin'
30 'python: for test suite'
31 'texi2mdoc: for automatic mdoc generation'
32 'texinfo: for building the documentation'
33 'texlive-core: for generating GNS business cards via gnunet-bcd'
34 'zbar: for reading/writing QR codes using gnunet-qr')
35backup=("etc/${pkgname}.conf")
36source=("ftp://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz"{,.sig}
37 "${pkgname}-system.service"
38 "${pkgname}.sysusers"
39 "${pkgname}.tmpfiles"
40 "${pkgname}-user.conf"
41 "${pkgname}-user.service")
42install="${pkgname}.install"
43validpgpkeys=('3D11063C10F98D14BD24D1470B0998EF86F59B6A')
44sha256sums=('249358ef3b10ce99810781fedaec526a6eab943c120e4bba096aedf91c1afc40'
45 'SKIP'
46 '163818b89beddcaf78937daba5bdf0ae060b2975de0731aa13d1ccdd813cf262'
47 '66299dbbdd0219d2f5f0520e69fc094f38f789724d973c2f63a421257ea4f755'
48 '5c34e1ecc6208900426f8e399e8c3edbef12cce19eba605fd7364ddb3547d9f0'
49 '3f17b9ed2c1f8cc0f919fe477df99678c17778a31f1eeb56517e285e3cef30f2'
50 '60caee20b53bcc69522556b35ac3d35d89e28c49b9a22a2ed5121df4a2c33be5')
51
52prepare() {
53
54 cd "${srcdir}/${pkgname}-${pkgver}"
55
56 export GNUNET_PREFIX='/usr/lib'
57 autoreconf -i
58
59}
60
61build() {
62
63 cd "${srcdir}/${pkgname}-${pkgver}"
64
65 ./configure --prefix='/usr' --enable-experimental
66 make
67
68}
69
70package() {
71
72 cd "${srcdir}/${pkgname}-${pkgver}"
73
74 make DESTDIR="${pkgdir}" install
75
76 install -dm755 "${pkgdir}/usr/lib/systemd/system"
77 install -Dm644 "${srcdir}/${pkgname}-system.service" \
78 "${pkgdir}/usr/lib/systemd/system/${pkgname}.service"
79
80 install -dm755 "${pkgdir}/usr/lib/systemd/user"
81 install -Dm644 "${srcdir}/${pkgname}-user.service" \
82 "${pkgdir}/usr/lib/systemd/user/${pkgname}.service"
83
84 install -dm755 "${pkgdir}/usr/lib/sysusers.d"
85 install -Dm644 "${srcdir}/${pkgname}.sysusers" \
86 "${pkgdir}/usr/lib/sysusers.d/${pkgname}.conf"
87
88 install -dm755 "${pkgdir}/usr/lib/tmpfiles.d"
89 install -Dm644 "${srcdir}/${pkgname}.tmpfiles" \
90 "${pkgdir}/usr/lib/tmpfiles.d/${pkgname}.conf"
91
92 install -dm700 "${pkgdir}/etc/skel/.config"
93 install -Dm600 "${srcdir}/${pkgname}-user.conf" \
94 "${pkgdir}/etc/skel/.config/${pkgname}.conf"
95
96 # Automatically generate a configuration file using the content of
97 # `/usr/share/gnunet/config.d/` as model; in this way we can ensure
98 # that this configuration file is the one backed up with each update,
99 # while `/usr/share/gnunet/config.d/` is kept as immutable default
100 # configuration.
101
102 install -dm755 "${pkgdir}/etc"
103
104 {
105 echo "# /etc/${pkgname}.conf"
106 (cd "${pkgdir}" > /dev/null 2>&1 && find "usr/share/${pkgname}/config.d" -type f -name '*.conf' \
107 -printf '\n\n# For the default values of the the following lines please refer to\n# /%p\n\n' \
108 -exec cat '{}' ';')
109 } > "${pkgdir}/etc/${pkgname}.conf"
110
111}
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 @@
1[Unit]
2Description=GNUnet system service
3After=network.target
4
5[Service]
6Type=simple
7User=gnunet
8ExecStart=/usr/lib/gnunet/libexec/gnunet-service-arm -c /etc/gnunet.conf
9StateDirectory=gnunet
10StateDirectoryMode=0700
11
12[Install]
13WantedBy=multi-user.target
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 @@
1[arm]
2START_SYSTEM_SERVICES = NO
3START_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 @@
1[Unit]
2Description=GNUnet user service
3After=network.target
4
5[Service]
6Type=simple
7ExecStart=/usr/lib/gnunet/libexec/gnunet-service-arm -c ~/.config/gnunet.conf
8
9[Install]
10WantedBy=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 @@
1post_install() {
2
3 local _PWD_PAIRS_="$(awk -F ':' '$3>=1000 && $3<2000 {print $1":"$6}' '/etc/passwd')"
4 local _USER_
5 local _GROUP_
6 local _CFG_DIR_
7
8 for _PWD_PAIR_ in ${_PWD_PAIRS_}; do
9 _USER_="$(echo $_PWD_PAIR_ | cut -d ':' -f 1)"
10 _GROUP_="$(id -gn "${_USER_}")"
11 _CFG_DIR_="$(echo $_PWD_PAIR_ | cut -d ':' -f 2)/.config"
12 test -e "${_CFG_DIR_}/gnunet.conf" || (install -dm700 -o \
13 "${_USER_}" -g "${_GROUP_}" "${_CFG_DIR_}" && install \
14 -Dm600 -o "${_USER_}" -g "${_GROUP_}" \
15 '/etc/skel/.config/gnunet.conf' \
16 "${_CFG_DIR_}/gnunet.conf")
17 done
18
19 echo
20 echo 'Do not forget to add your user to the `gnunet` group, with'
21 echo
22 echo ' sudo usermod -aG gnunet "$(whoami)"'
23 echo
24 echo 'If later you want to remove your user from the group, launch'
25 echo
26 echo ' sudo gpasswd --delete "$(whoami)" gnunet'
27 echo
28 echo 'For information on how to use GNUnet plaese refer to the GNUnet article in the'
29 echo 'ArchWiki (https://wiki.archlinux.org/title/GNUnet).'
30 echo
31
32}
33
34post_remove() {
35
36 echo
37 echo 'The home directory of the `gnunet` user (`/var/lib/gnunet/`) is left after'
38 echo 'uninstalling GNUnet. If you are sure that you are never going to use GNUnet'
39 echo 'ever again, launch:'
40 echo
41 echo ' for username in $(getent group gnunet | cut -d: -f4 | tr '\'','\'' '\'' '\''); do \'
42 echo ' sudo gpasswd --delete "${username}" gnunet; done'
43 echo ' sudo userdel -r gnunet'
44 echo ' sudo groupdel gnunetdns'
45 echo
46 echo '**Warning** The identity and all the information about the network'
47 echo 'cumulatively stored by the current peer will be destroyed - this will not'
48 echo 'affect files explicitly downloaded in other paths.'
49 echo
50 echo 'For further information plaese refer to the GNUnet article in the ArchWiki'
51 echo '(https://wiki.archlinux.org/title/GNUnet).'
52 echo
53
54}
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 @@
1g gnunet -
2u gnunet - "GNUnet system account" /var/lib/gnunet
3g 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 @@
1d /var/lib/gnunet 0700 gnunet gnunet - -
2z /usr/lib/gnunet/libexec/gnunet-helper-dns 4750 root gnunetdns - -
3z /usr/lib/gnunet/libexec/gnunet-helper-exit 4755 root root - -
4z /usr/lib/gnunet/libexec/gnunet-helper-nat-client 4755 root root - -
5z /usr/lib/gnunet/libexec/gnunet-helper-nat-server 4755 root root - -
6z /usr/lib/gnunet/libexec/gnunet-helper-transport-bluetooth 4755 root root - -
7z /usr/lib/gnunet/libexec/gnunet-helper-transport-wlan 4755 root root - -
8z /usr/lib/gnunet/libexec/gnunet-helper-vpn 4755 root root - -
9z /usr/lib/gnunet/libexec/gnunet-service-dns 2750 gnunet gnunetdns - -