--- /dev/null
-license="GPL-3.0"
-depends="gnunet gtk+3.0 glade"
+ # Contributor: xrs <xrs@mail36.net>
+ # Maintainer: xrs <xrs@mail36.net>
+ pkgname=gnunet-gtk
+ pkgver=0.11.5
+ pkgrel=0
+ pkgdesc="Graphical user interface for GNUnet"
+ url="https://gnunet.org"
+ arch="all"
- exit 0
++license="GPL-3.0-only"
+ makedepends="gnunet-dev gtk+3.0-dev glade-dev"
+ subpackages="$pkgname-dev $pkgname-doc"
+ source="https://mirrors.ocf.berkeley.edu/gnu/gnunet/gnunet-gtk-$pkgver.tar.gz"
+ options="!check" # The GNUnet project lacks a good CI at the moment.
+
+ build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var \
+ --disable-fs-app \
+ --disable-conversation-app
+ make
+ }
+
+ check() {
+ make DESTDIR="$pkgdir" check
+ }
+
+ package() {
+ make DESTDIR="$pkgdir" install
+ }
+
+ sha512sums="8cd5bcadba070396b9b9b4849678bda362ba274f7d8e0c4dfc0bd793ac103a8a94949a472d992c90f21ddb7db16b14ea23a199acd4cf2e52f985e15205d2f5a9 gnunet-gtk-0.11.5.tar.gz"
--- /dev/null
-license="AGPL-3.0"
-depends="libgpg-error libgcrypt nettle unbound-libs gnutls gnutls-utils gnurl
- libgnurl libmicrohttpd openssl libunistring libidn2 nss sqlite zlib
- miniupnpc gmp gettext bash which iptables coreutils sudo"
+ # Contributor: xrs <xrs@mail36.net>
+ # Maintainer: xrs <xrs@mail36.net>
+ pkgname=gnunet
+ pkgver=0.11.6
+ pkgrel=0
+ pkgdesc="A framework for secure and privacy enhancing peer-to-peer networking"
+ url="https://gnunet.org"
+ arch="all"
- make
++license="AGPL-3.0-only"
++depends="gnutls-utils bash which iptables coreutils"
+ depends_dev="libgpg-error-dev libgcrypt-dev nettle-dev unbound-dev gnutls-dev
+ gnurl-dev libmicrohttpd-dev openssl-dev libunistring-dev libidn2-dev
+ nss-dev sqlite-dev zlib-dev miniupnpc-dev gmp-dev gettext"
+ makedepends="$depends_dev autoconf automake libtool gettext-dev python3
+ texlive texinfo"
+ install="$pkgname.pre-install $pkgname.post-install $pkgname.pre-deinstall"
+ pkgusers="gnunet"
+ pkggroups="gnunet gnunetdns"
+ subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
+ options="!check suid" # No check because The GNUnet project lacks a good CI at the moment.
+ source="https://mirrors.ocf.berkeley.edu/gnu/gnunet/gnunet-$pkgver.tar.gz
+ gnunet-system.conf
+ gnunet-user.conf
+ gnunet-system-services.initd
+ gnunet-user-services.initd
+ gnunet.xsession
+ "
+
+ prepare() {
+ default_prepare
+ autoreconf -if # FIXME: See https://bugs.gnunet.org/view.php?id=5902
+ }
+
+ build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var \
+ --enable-logging=verbose
- exit 0
++ make -j 1
+ }
+
+ check() {
+ make DESTDIR="$pkgdir" check
-f67252e18c5fd701338653efe4cc14caae9213c1955f690cddec9fd7ad31a22680e931fbe908a1c5a78dc05094e547b2279f9a488f2ed80cc169590ad5ffa064 gnunet-user-services.initd
-839a081aca19b863f378db980e6447ad30c6c0ee72fac6e11c65e57e86886d675ebc61069e17f696b6ca868e8ce259cabf80feb90b04b23f3da3c628f7beb915 gnunet.xsession"
+ }
+
+ package() {
+ make DESTDIR="$pkgdir" install
+
+ libexecdir=$pkgdir/usr/lib/gnunet/libexec/
+ # Limit access to critical gnunet-helper-dns to group "gnunetdns"
+ chgrp gnunetdns $libexecdir/gnunet-helper-dns
+ chgrp gnunetdns $libexecdir/gnunet-service-dns
+ # Limit access to certain SUID binaries by group "gnunet"
+ chgrp gnunet $libexecdir/gnunet-helper-exit
+ chgrp gnunet $libexecdir/gnunet-helper-vpn
+ chgrp gnunet $libexecdir/gnunet-helper-nat-client
+ chgrp gnunet $libexecdir/gnunet-helper-nat-server
+ chmod u+s $libexecdir/gnunet-helper-exit
+ chmod u+s $libexecdir/gnunet-helper-vpn
+ chmod 2750 $libexecdir/gnunet-helper-dns
+ chmod 2700 $libexecdir/gnunet-service-dns
+ chmod u+s $libexecdir/gnunet-helper-nat-client
+ chmod u+s $libexecdir/gnunet-helper-nat-server
+
+ install -m644 -D $srcdir/$pkgname-user.conf \
+ $pkgdir/etc/skel/.config/$pkgname.conf
+ install -m644 -D $srcdir/$pkgname-system.conf \
+ $pkgdir/etc/$pkgname.conf
+ install -m755 -D $srcdir/$pkgname-system-services.initd \
+ $pkgdir/etc/init.d/$pkgname-system-services
+ install -m755 -D $srcdir/$pkgname-user-services.initd \
+ $pkgdir/etc/init.d/$pkgname-user-services
+ install -m755 -D $srcdir/$pkgname.xsession \
+ $pkgdir/etc/X11/xinit/xinitrc.d/80-$pkgname-user-services
+ }
+
+ dev() {
+ default_dev
+
+ # dev() will move gnunet-config from $pkg to $pkg-dev, but it's an
+ # intended part of $pkg.
+ install -m755 -D $builddir/src/util/.libs/gnunet-config \
+ $pkgdir/usr/bin/gnunet-config
+ }
+
+ sha512sums="1c6ea2ac7280d2edb30df627b79e017d199e93cd3970ce49f3f049abfb1dddfed541118e55766c422edf4a80e140c4eb2cfc681e0d4a1384e39811d024df9278 gnunet-0.11.6.tar.gz
+ a0f55413ed2c6edd6746a751d92ddac95ba70f20eefb07330817870d749456448f44bba95d245911a00f6078e0c2ac626004e3b764be5e5e049c00626c4c5ac0 gnunet-system.conf
+ b21112ff16aee771332aa9c33f55b0c7f46fe0266053543241e3efbe25dba56482c0e11112a192eefe59f1c74d2af5d7071b6a4e1e875cfc7e9d55b5fe8a0a33 gnunet-user.conf
+ 96ab78bb48d5fb10f0b34336ad05e73b543c4362c73436ef20b3bb83dff214e997acf38a2ea493b1901bdc37c8877d83cdaebd73a0e50831e2f23413c8edda76 gnunet-system-services.initd
++3dc88aaedc3886c0795bdb4c8e259125232ba10f2bc762216c341bb3240ef0855cba968799ba121304463a65e73ed0f62dec03759a2be478ec4ac086361b49ba gnunet-user-services.initd
++4fe1ed80cbaa4c140805bde2629fdb32b97f3273281ae7277c8988b4e490605652cdb9975fc1178169426f2279597c55f6e6b75b52315a426d78a1fedbb08401 gnunet.xsession"
--- /dev/null
- sudo -u $user gnunet-arm \
- -c /home/$user/.config/gnunet.conf -s
+ #!/sbin/openrc-run
+ # Contributor: xrs <xrs@mail36.net>
+ # Maintainer: xrs <xrs@mail36.net>
+
+ name="gnunet-user-services"
+ description="GNUnet user services"
+ command_background="yes"
+ pidfile="/run/${SVCNAME}.pid"
+ users=`awk -F ':' '$3>=1000 && $3<2000 {print $1}' /etc/passwd`
+
+ depend() {
+ need gnunet-system-services
+ }
+
+ start() {
+ for user in $users; do
+ if test -z "`ps|grep $user|grep gnunet-service-arm`" > /dev/null 2>&1
+ then
- sudo -u $user gnunet-arm \
- -c /home/$user/.config/gnunet.conf -e
++ su $user -c "gnunet-arm \
++ -c /home/$user/.config/gnunet.conf -s"
+ fi
+ done
+ }
+
+ stop() {
+ for user in $users; do
+ if test -n "`ps|grep $user|grep gnunet-service-arm`" > /dev/null 2>&1
+ then
++ su $user -c "gnunet-arm \
++ -c /home/$user/.config/gnunet.conf -e"
+ fi
+ done
+ }
--- /dev/null
-# Enable GNS proxy for new users informed by /etc/skel.
+ #!/bin/sh
+ user=$(whoami)
+ gnunet_proxy=$(gnunet-config -c /etc/skel/.config/gnunet.conf -s gns-proxy|grep 'IMMEDIATE_START = YES')
+
-
-# In case a new user was added and gnunet-user-services has not been
-# restarted afterwards, start user services after login.
-if test -z "`ps|grep -v grep|grep $user|grep gnunet-service-arm`" > /dev/null 2>&1
-then
- gnunet-arm -c /home/$user/.config/gnunet.conf -s
-fi
++# Enable GNS proxy for new users informed by /etc/skel (system wide
++# installation decision).
+ if [ "$gnunet_proxy" ]; then
+
+ # Calculate user specific port
+ port=$((8000+$(id -u $user)))
+
+ gnunet-config -c /home/$user/.config/gnunet.conf \
+ --rewrite \
+ --section=gns-proxy \
+ --option=OPTIONS \
+ --value="-p $port"
+
+ # Firefox
+ if [ ! -d ~/.mozilla/firefox/*.default ];then
+ timeout 3s firefox --headless # dirty: create profile if not existent
+ fi
+ for ffprofile in ~/.mozilla/firefox/*.*/; do
+ js=$ffprofile/user.js
+ if [ -f $js ]; then
+ sed -i '/Preferences for using the GNU Name System/d' $js
+ sed -i '/network.proxy.socks/d' $js
+ sed -i '/network.proxy.socks_port/d' $js
+ sed -i '/network.proxy.socks_remote_dns/d' $js
+ sed -i '/network.proxy.type/d' $js
+ fi
+ echo "// Preferences for using the GNU Name System" >> $js
+ echo "user_pref(\"network.proxy.socks\", \"localhost\");" >> $js
+ echo "user_pref(\"network.proxy.socks_port\", $port);" >> $js
+ echo "user_pref(\"network.proxy.socks_remote_dns\", true);" >> $js
+ echo "user_pref(\"network.proxy.type\", 1);" >> $js
+ done
+
+ # Chromium
+ profile=/home/$user/.profile
+ if [ -f $profile ]; then
+ sed -i '/CHROMIUM_USER_FLAGS/d' $profile
+ fi
+ echo "export CHROMIUM_USER_FLAGS=--proxy-server=socks5://localhost:$port" \
+ >> $profile
+ fi
+
+ # Create/Renew GNS certificate authority (CA) per user.
+ gnunet-gns-proxy-setup-ca
--- /dev/null
-depends="ca-certificates gnutls libidn2 zlib"
+ # Contributor: xrs <xrs@mail36.net>
+ # Maintainer: xrs <xrs@mail36.net>
+ pkgname=gnurl
+ pkgver=7.65.3
+ pkgrel=0
+ pkgdesc="curl with only HTTP/HTTPS support and GnuTLS"
+ url="https://gnunet.org/en/gnurl.html"
+ arch="all"
+ license="MIT"
++#depends="ca-certificates gnutls libidn2 zlib"
++depends="ca-certificates"
+ depends_dev="gnutls-dev libidn2-dev zlib-dev"
+ makedepends="$depends_dev autoconf automake libtool perl pkgconf python3"
+ subpackages="$pkgname-dbg $pkgname-dev $pkgname-doc libgnurl"
+ source="https://ftp.gnu.org/gnu/gnunet/gnurl-$pkgver.tar.gz"
+
+ prepare() {
+ default_prepare
+ autoreconf -vfi
+ }
+
+ build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --with-ca-bundle=/etc/ssl/certs/ca-certificates.crt \
+ --prefix=/usr \
+ --disable-static \
+ --enable-ipv6 \
+ --with-gnutls \
+ --with-libidn2 \
+ --without-libpsl \
+ --without-libssh2 \
+ --without-libmetalink \
+ --without-winidn \
+ --without-librtmp \
+ --without-nghttp2 \
+ --without-nss \
+ --without-cyassl \
+ --without-polarssl \
+ --without-ssl \
+ --without-winssl \
+ --without-darwinssl \
+ --disable-sspi \
+ --disable-ntlm-wb \
+ --disable-ldap \
+ --disable-rtsp \
+ --disable-dict \
+ --disable-telnet \
+ --disable-tftp \
+ --disable-pop3 \
+ --disable-imap \
+ --disable-smtp \
+ --disable-gopher \
+ --disable-file \
+ --disable-ftp \
+ --disable-smb \
+ --disable-ares
+ make
+ }
+
+ check() {
+ make -C tests nonflaky-test
+ }
+
+ package() {
+ make DESTDIR="$pkgdir" install
+ }
+
+ libgnurl() {
+ pkgdesc="curl library with only HTTP/HTTPS support and GnuTLS"
+
+ mkdir -p "$subpkgdir"/usr
+ mv "$pkgdir"/usr/lib "$subpkgdir"/usr
+ }
+
+
+ sha512sums="51aa71352dfe2e65dbcf542cb616af1eaa7e80fbc4ddb455a338e74eea245724ac1fa7ff226c418101e8ba298a8f85c2be9e7d9190a57c66e2e8c65d0c5186f8 gnurl-7.65.3.tar.gz"