aboutsummaryrefslogtreecommitdiff
path: root/contrib/packages/arch/gnunet
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/packages/arch/gnunet')
-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
8 files changed, 274 insertions, 0 deletions
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 - -