From 6453a005ae603b94bfd857d25cb56bbabfbc6078 Mon Sep 17 00:00:00 2001
From: Anachron <gith@cron.world>
Date: Wed, 17 Jul 2019 14:01:14 +0200
Subject: [PATCH] New package: gnunet-0.11.5

---
 common/shlibs                    |  52 ++++
 srcpkgs/gnunet/INSTALL.msg       |   1 +
 srcpkgs/gnunet/files/gnunet.conf | 482 +++++++++++++++++++++++++++++++
 srcpkgs/gnunet/files/gnunet/run  |   5 +
 srcpkgs/gnunet/template          |  26 ++
 5 files changed, 566 insertions(+)
 create mode 100644 srcpkgs/gnunet/INSTALL.msg
 create mode 100644 srcpkgs/gnunet/files/gnunet.conf
 create mode 100644 srcpkgs/gnunet/files/gnunet/run
 create mode 100644 srcpkgs/gnunet/template

diff --git a/common/shlibs b/common/shlibs
index 2f146bbfa9d..acce530f763 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -3493,3 +3493,55 @@ libkres.so.9 knot-resolver-4.0.0_1
 libnsl.so.2 libnsl-1.2.0_1
 libbcc.so.0 bcc-0.10.0_1
 libbcc_bpf.so.0 bcc-0.10.0_1
+libgnunetarm.so gnunet-0.11.5_1
+libgnunetats.so gnunet-0.11.5_1
+libgnunetatsapplication.so gnunet-0.11.5_1
+libgnunetatstesting.so gnunet-0.11.5_1
+libgnunetatstransport.so gnunet-0.11.5_1
+libgnunetblock.so gnunet-0.11.5_1
+libgnunetblockgroup.so gnunet-0.11.5_1
+libgnunetcadet.so gnunet-0.11.5_1
+libgnunetconsensus.so gnunet-0.11.5_1
+libgnunetcore.so gnunet-0.11.5_1
+libgnunetdatacache.so gnunet-0.11.5_1
+libgnunetdatastore.so gnunet-0.11.5_1
+libgnunetdht.so gnunet-0.11.5_1
+libgnunetdns.so gnunet-0.11.5_1
+libgnunetfragmentation.so gnunet-0.11.5_1
+libgnunetfriends.so gnunet-0.11.5_1
+libgnunetfs.so gnunet-0.11.5_1
+libgnunetgns.so gnunet-0.11.5_1
+libgnunetgnsrecord.so gnunet-0.11.5_1
+libgnunethello.so gnunet-0.11.5_1
+libgnunetidentity.so gnunet-0.11.5_1
+libgnunetnamecache.so gnunet-0.11.5_1
+libgnunetnamestore.so gnunet-0.11.5_1
+libgnunetnatauto.so gnunet-0.11.5_1
+libgnunetnatnew.so gnunet-0.11.5_1
+libgnunetnse.so gnunet-0.11.5_1
+libgnunetnt.so gnunet-0.11.5_1
+libgnunetpeerinfo.so gnunet-0.11.5_1
+libgnunetpeerstore.so gnunet-0.11.5_1
+libgnunetregex.so gnunet-0.11.5_1
+libgnunetregexblock.so gnunet-0.11.5_1
+libgnunetrevocation.so gnunet-0.11.5_1
+libgnunetscalarproduct.so gnunet-0.11.5_1
+libgnunetsecretsharing.so gnunet-0.11.5_1
+libgnunetset.so gnunet-0.11.5_1
+libgnunetsq.so gnunet-0.11.5_1
+libgnunetstatistics.so gnunet-0.11.5_1
+libgnunettestbed.so gnunet-0.11.5_1
+libgnunettestbedlogger.so gnunet-0.11.5_1
+libgnunettesting.so gnunet-0.11.5_1
+libgnunettransport.so gnunet-0.11.5_1
+libgnunettransportapplication.so gnunet-0.11.5_1
+libgnunettransportcommunicator.so gnunet-0.11.5_1
+libgnunettransportcore.so gnunet-0.11.5_1
+libgnunettransportmonitor.so gnunet-0.11.5_1
+libgnunettransporttesting.so gnunet-0.11.5_1
+libgnunettransporttesting2.so gnunet-0.11.5_1
+libgnunetutil.so gnunet-0.11.5_1
+libgnunetvpn.so gnunet-0.11.5_1
+libnss_gns.so gnunet-0.11.5_1
+libnss_gns4.so gnunet-0.11.5_1
+libnss_gns6.so gnunet-0.11.5_1
diff --git a/srcpkgs/gnunet/INSTALL.msg b/srcpkgs/gnunet/INSTALL.msg
new file mode 100644
index 00000000000..3e20257a4fe
--- /dev/null
+++ b/srcpkgs/gnunet/INSTALL.msg
@@ -0,0 +1 @@
+Please modify your /etc/gnunet/gnunet.conf and start gnunet.
diff --git a/srcpkgs/gnunet/files/gnunet.conf b/srcpkgs/gnunet/files/gnunet.conf
new file mode 100644
index 00000000000..48bcf151152
--- /dev/null
+++ b/srcpkgs/gnunet/files/gnunet.conf
@@ -0,0 +1,482 @@
+[PATHS]
+# SERVICEHOME = /var/lib/gnunet/
+# DEFAULTCONFIG = /etc/gnunet.conf
+# If 'DEFAULTCONFIG' is not defined, the current
+# configuration file is assumed to be the default,
+# which is what we want by default...
+
+[gnunetd]
+HOSTKEY = $SERVICEHOME/.hostkey
+
+[TESTING]
+WEAKRANDOM = NO
+# How long before failing a connection?
+CONNECT_TIMEOUT = 30
+# How many connect attempts should we make?
+CONNECT_ATTEMPTS = 3
+# How many connections can happen simultaneously?
+MAX_OUTSTANDING_CONNECTIONS = 50
+
+# Should we clean up the files on peer group shutdown?
+DELETE_FILES = YES
+
+[client]
+HOME = $SERVICEHOME
+
+[nat]
+# Are we behind NAT?
+BEHIND_NAT = NO
+
+# Is the NAT hole-punched?
+PUNCHED_NAT = NO
+
+# Enable UPNP by default?
+ENABLE_UPNP = NO
+
+# Use addresses from the local network interfaces (inluding loopback, but also others)
+USE_LOCALADDR = YES
+
+# Use address obtained from a DNS lookup of our hostname
+USE_HOSTNAME = NO
+
+# External IP address of the NAT box (if known); IPv4 dotted-decimal ONLY at this time (should allow DynDNS!)
+# normal interface IP address for non-NATed peers; 
+# possibly auto-detected (using UPnP) if possible if not specified
+# EXTERNAL_ADDRESS = 
+
+# Should we use ICMP-based NAT traversal to try connect to NATed peers
+# or, if we are behind NAT, to allow connections to us?
+ENABLE_ICMP_CLIENT = NO
+ENABLE_ICMP_SERVER = NO
+
+# IP address of the interface connected to the NAT box; IPv4 dotted-decimal ONLY;
+# normal interface IP address for non-NATed peers; 
+# likely auto-detected (via interface list) if not specified (!)
+# INTERNAL_ADDRESS = 
+
+# Disable IPv6 support
+DISABLEV6 = NO
+
+# How often do we query the DNS resolver
+# for our hostname (to get our own IP), in ms
+HOSTNAME_DNS_FREQUENCY = 1200000
+
+# How often do we iterate over our 
+# network interfaces to check for changes
+# in our IP address? in ms
+IFC_SCAN_FREQUENCY = 3000000
+
+# How often do we query the DNS resolver
+# for our hostname (to get our own IP), in ms
+DYNDNS_FREQUENCY = 140000
+
+[gnunet-nat-server]
+HOSTNAME = gnunet.org
+PORT = 5724
+
+[transport-tcp]
+# Use 0 to ONLY advertise as a peer behind NAT (no port binding)
+PORT = 2086
+ADVERTISED_PORT = 2086
+
+# Maximum number of open TCP connections allowed
+MAX_CONNECTIONS = 128
+
+TIMEOUT = 5000
+
+# ACCEPT_FROM =
+# ACCEPT_FROM6 =
+# REJECT_FROM =
+# REJECT_FROM6 =
+# BINDTO =
+
+MAX_CONNECTIONS = 128
+
+
+[transport-udp]
+PORT = 2086
+
+MAX_BPS = 1000000
+
+
+[transport-http]
+PORT = 1080
+MAX_CONNECTIONS = 128
+
+[transport-https]
+PORT = 4433
+CRYPTO_INIT = NORMAL
+KEY_FILE = https.key
+CERT_FILE = https.cert
+MAX_CONNECTIONS = 128
+
+
+[transport-wlan]
+# Name of the interface in monitor mode (typically monX)
+INTERFACE = mon0
+# Real hardware, no testing
+TESTMODE = 0
+
+
+[arm]
+PORT = 2087
+HOSTNAME = localhost
+HOME = $SERVICEHOME
+CONFIG = $DEFAULTCONFIG
+BINARY = gnunet-service-arm
+ACCEPT_FROM = 127.0.0.1;
+ACCEPT_FROM6 = ::1;
+DEFAULTSERVICES = topology hostlist
+UNIXPATH = /tmp/gnunet-service-arm.sock
+UNIX_MATCH_UID = YES
+UNIX_MATCH_GID = YES
+# GLOBAL_POSTFIX = -l $SERVICEHOME/{}-logs
+# GLOBAL_PREFIX =
+# USERNAME =
+# MAXBUF =
+# TIMEOUT =
+# DISABLEV6 =
+# BINDTO =
+# REJECT_FROM =
+# REJECT_FROM6 =
+# PREFIX =
+
+[statistics]
+AUTOSTART = YES
+PORT = 2088
+HOSTNAME = localhost
+HOME = $SERVICEHOME
+CONFIG = $DEFAULTCONFIG
+BINARY = gnunet-service-statistics
+ACCEPT_FROM = 127.0.0.1;
+ACCEPT_FROM6 = ::1;
+UNIXPATH = /tmp/gnunet-service-statistics.sock
+UNIX_MATCH_UID = NO
+UNIX_MATCH_GID = YES
+# DISABLE_SOCKET_FORWARDING = NO
+# USERNAME = 
+# MAXBUF =
+# TIMEOUT =
+# DISABLEV6 =
+# BINDTO =
+# REJECT_FROM =
+# REJECT_FROM6 =
+# PREFIX =
+
+[resolver]
+AUTOSTART = YES
+PORT = 2089
+HOSTNAME = localhost
+HOME = $SERVICEHOME
+CONFIG = $DEFAULTCONFIG
+BINARY = gnunet-service-resolver
+ACCEPT_FROM = 127.0.0.1;
+ACCEPT_FROM6 = ::1;
+UNIXPATH = /tmp/gnunet-service-resolver.sock
+UNIX_MATCH_UID = NO
+UNIX_MATCH_GID = NO
+# DISABLE_SOCKET_FORWARDING = NO
+# USERNAME = 
+# MAXBUF =
+# TIMEOUT =
+# DISABLEV6 =
+# BINDTO =
+# REJECT_FROM =
+# REJECT_FROM6 =
+# PREFIX =
+
+[peerinfo]
+AUTOSTART = YES
+PORT = 2090
+HOSTNAME = localhost
+HOME = $SERVICEHOME
+CONFIG = $DEFAULTCONFIG
+BINARY = gnunet-service-peerinfo
+ACCEPT_FROM = 127.0.0.1;
+ACCEPT_FROM6 = ::1;
+UNIXPATH = /tmp/gnunet-service-peerinfo.sock
+UNIX_MATCH_UID = NO
+UNIX_MATCH_GID = YES
+# DISABLE_SOCKET_FORWARDING = NO
+# USERNAME = 
+# MAXBUF =
+# TIMEOUT =
+# DISABLEV6 =
+# BINDTO = 
+# REJECT_FROM =
+# REJECT_FROM6 =
+# PREFIX =
+HOSTS = $SERVICEHOME/data/hosts/
+
+
+[transport]
+AUTOSTART = YES
+PORT = 2091
+HOSTNAME = localhost
+HOME = $SERVICEHOME
+CONFIG = $DEFAULTCONFIG
+BINARY = gnunet-service-transport
+#PREFIX = valgrind
+NEIGHBOUR_LIMIT = 50
+ACCEPT_FROM = 127.0.0.1;
+ACCEPT_FROM6 = ::1;
+PLUGINS = tcp
+UNIXPATH = /tmp/gnunet-service-transport.sock
+BLACKLIST_FILE = $SERVICEHOME/blacklist
+UNIX_MATCH_UID = YES
+UNIX_MATCH_GID = YES
+# DISABLE_SOCKET_FORWARDING = NO
+# USERNAME = 
+# MAXBUF =
+# TIMEOUT =
+# DISABLEV6 =
+# BINDTO =
+# REJECT_FROM =
+# REJECT_FROM6 =
+# PREFIX =
+
+
+# ATS options
+DUMP_MLP = NO
+DUMP_SOLUTION = NO
+DUMP_OVERWRITE = NO 
+DUMP_MIN_PEERS = 0
+DUMP_MIN_ADDRS = 0
+DUMP_OVERWRITE = NO
+ATS_MIN_INTERVAL = 15000
+ATS_EXEC_INTERVAL = 30000
+
+
+[core]
+AUTOSTART = YES
+PORT = 2092
+HOSTNAME = localhost
+HOME = $SERVICEHOME
+CONFIG = $DEFAULTCONFIG
+BINARY = gnunet-service-core
+ACCEPT_FROM = 127.0.0.1;
+ACCEPT_FROM6 = ::1;
+# quotas are in bytes per second now!
+TOTAL_QUOTA_IN = 65536
+TOTAL_QUOTA_OUT = 65536
+UNIXPATH = /tmp/gnunet-service-core.sock
+UNIX_MATCH_UID = YES
+UNIX_MATCH_GID = YES
+# DISABLE_SOCKET_FORWARDING = NO
+# DEBUG = YES
+# USERNAME = 
+# MAXBUF =
+# TIMEOUT =
+# DISABLEV6 =
+# BINDTO =
+# REJECT_FROM =
+# REJECT_FROM6 =
+# PREFIX =
+
+
+[topology]
+MINIMUM-FRIENDS = 0
+FRIENDS-ONLY = NO
+AUTOCONNECT = YES
+TARGET-CONNECTION-COUNT = 16
+FRIENDS = $SERVICEHOME/friends
+CONFIG = $DEFAULTCONFIG
+BINARY = gnunet-daemon-topology
+
+[hostlist]
+# port for hostlist http server
+HTTPPORT = 8080
+HOME = $SERVICEHOME
+HOSTLISTFILE = $SERVICEHOME/hostlist/learned.data
+CONFIG = $DEFAULTCONFIG
+BINARY = gnunet-daemon-hostlist
+# consider having "-e" as default as well once implemented
+OPTIONS = -b
+SERVERS = http://v9.gnunet.org:58080/
+# proxy for downloading hostlists
+HTTP-PROXY = 
+
+
+[datastore]
+AUTOSTART = YES
+UNIXPATH = /tmp/gnunet-service-datastore.sock
+UNIX_MATCH_UID = YES
+UNIX_MATCH_GID = YES
+PORT = 2093
+HOSTNAME = localhost
+HOME = $SERVICEHOME
+CONFIG = $DEFAULTCONFIG
+BINARY = gnunet-service-datastore
+ACCEPT_FROM = 127.0.0.1;
+ACCEPT_FROM6 = ::1;
+QUOTA = 100000000
+BLOOMFILTER = $SERVICEHOME/fs/bloomfilter
+DATABASE = sqlite
+# DISABLE_SOCKET_FORWARDING = NO
+
+[datastore-sqlite]
+FILENAME = $SERVICEHOME/datastore/sqlite.db
+
+[datastore-postgres]
+CONFIG = connect_timeout=10; dbname=gnunet
+
+[datastore-mysql]
+DATABASE = gnunet
+CONFIG = ~/.my.cnf
+# USER = gnunet
+# PASSWORD = 
+# HOST = localhost
+# PORT = 3306
+
+[datacache-mysql]
+DATABASE = gnunetcheck
+CONFIG = ~/.my.cnf
+# USER = gnunet
+# PASSWORD =
+# HOST = localhost
+# PORT = 3306
+
+
+[fs]
+AUTOSTART = YES
+INDEXDB = $SERVICEHOME/idxinfo.lst
+TRUST = $SERVICEHOME/data/credit/
+IDENTITY_DIR = $SERVICEHOME/identities/
+STATE_DIR = $SERVICEHOME/persistence/
+UPDATE_DIR = $SERVICEHOME/updates/
+PORT = 2094
+HOSTNAME = localhost
+HOME = $SERVICEHOME
+CONFIG = $DEFAULTCONFIG
+BINARY = gnunet-service-fs
+ACCEPT_FROM = 127.0.0.1;
+ACCEPT_FROM6 = ::1;
+
+DELAY = YES
+CONTENT_CACHING = YES
+CONTENT_PUSHING = YES
+
+UNIXPATH = /tmp/gnunet-service-fs.sock
+UNIX_MATCH_UID = NO
+UNIX_MATCH_GID = YES
+# DISABLE_SOCKET_FORWARDING = NO
+# DEBUG = YES
+MAX_PENDING_REQUESTS = 65536
+# Maximum frequency we're allowed to poll the datastore
+# for content for migration (can be used to reduce 
+# GNUnet's disk-IO rate)
+MIN_MIGRATION_DELAY = 100
+EXPECTED_NEIGHBOUR_COUNT = 128
+
+[dht]
+AUTOSTART = YES
+PORT = 2095
+HOSTNAME = localhost
+HOME = $SERVICEHOME
+CONFIG = $DEFAULTCONFIG
+BINARY = gnunet-service-dht
+ACCEPT_FROM = 127.0.0.1;
+ACCEPT_FROM6 = ::1;
+BUCKET_SIZE = 4
+UNIXPATH = /tmp/gnunet-service-dht.sock
+UNIX_MATCH_UID = YES
+UNIX_MATCH_GID = YES
+# DISABLE_SOCKET_FORWARDING = NO
+# DEBUG = YES
+# USERNAME = 
+# MAXBUF =
+# TIMEOUT =
+# DISABLEV6 =
+# BINDTO =
+# REJECT_FROM =
+# REJECT_FROM6 =
+# PREFIX =
+# DO_FIND_PEER =
+# STRICT_KADEMLIA =
+# USE_MAX_HOPS =
+# MAX_HOPS =
+# REPUBLISH = YES
+# REPLICATION_FREQUENCY = 60 
+# STOP_ON_CLOSEST =
+# STOP_FOUND =
+# CONVERGE_MODIFIER =
+
+
+[dhtcache]
+DATABASE = sqlite
+QUOTA = 1024000
+
+[block]
+PLUGINS = fs dht test dns
+
+[mesh]
+AUTOSTART = YES
+PORT = 2096
+HOSTNAME = localhost
+HOME = $SERVICEHOME
+CONFIG = $DEFAULTCONFIG
+BINARY = gnunet-service-mesh
+ACCEPT_FROM = 127.0.0.1;
+ACCEPT_FROM6 = ::1;
+UNIXPATH = /tmp/gnunet-service-mesh.sock
+UNIX_MATCH_UID = YES
+UNIX_MATCH_GID = YES
+
+[nse]
+AUTOSTART = YES
+PORT = 2097
+HOSTNAME = localhost
+HOME = $SERVICEHOME
+CONFIG = $DEFAULTCONFIG
+BINARY = gnunet-service-nse
+ACCEPT_FROM = 127.0.0.1;
+ACCEPT_FROM6 = ::1;
+UNIXPATH = /tmp/test-nse-service-nse.unix
+UNIX_MATCH_UID = YES
+UNIX_MATCH_GID = YES
+PROOFFILE = $SERVICEHOME/.nse-proof
+HISTOGRAM = $SERVICEHOME/nse-history.log
+
+# How 'slowly' should the proof-of-work be constructed (delay
+# between rounds in ms); sane values between 0 and ~1000.
+WORKDELAY = 5
+
+# Note: changing any of the values below will make this peer
+# completely incompatible with other peers! 
+INTERVAL = 3600000
+WORKBITS = 20
+
+
+[vpn]
+CONFIG = $DEFAULTCONFIG
+BINARY = gnunet-daemon-vpn
+IPV6ADDR = 1234::1
+IPV6PREFIX = 32
+IPV4ADDR = 10.11.10.1
+IPV4MASK = 255.255.0.0
+VIRTDNS = 10.11.10.2
+IFNAME = vpn-gnunet
+
+[exit]
+CONFIG = $DEFAULTCONFIG
+BINARY = gnunet-daemon-exit
+IPV6ADDR = 1234:1::1
+IPV6PREFIX = 32
+IPV4ADDR = 10.10.1.1
+IPV4MASK = 255.255.0.0
+IFNAME = exit-gnunet
+ENABLE_UDP = NO
+ENABLE_TCP = NO
+
+[dns]
+AUTOSTART = YES
+PORT = 0
+HOSTNAME = localhost
+HOME = $SERVICEHOME
+CONFIG = $DEFAULTCONFIG
+BINARY = gnunet-service-dns
+ACCEPT_FROM = 127.0.0.1;
+ACCEPT_FROM6 = ::1;
+UNIXPATH = /tmp/gnunet-service-dns.sock
+PROVIDE_EXIT = NO
+
diff --git a/srcpkgs/gnunet/files/gnunet/run b/srcpkgs/gnunet/files/gnunet/run
new file mode 100644
index 00000000000..3a2209f201b
--- /dev/null
+++ b/srcpkgs/gnunet/files/gnunet/run
@@ -0,0 +1,5 @@
+#!/bin/sh
+/usr/bin/gnunet-arm -s -c /etc/gnunet/gnunet.conf
+PID=$(pgrep -f gnunet-service-arm)
+tail -f /dev/null --pid="${PID}"
+pkill gnunet
diff --git a/srcpkgs/gnunet/template b/srcpkgs/gnunet/template
new file mode 100644
index 00000000000..e06e9344fca
--- /dev/null
+++ b/srcpkgs/gnunet/template
@@ -0,0 +1,26 @@
+# Template file for 'gnunet'
+pkgname=gnunet
+version=0.11.5
+revision=1
+wrksrc="${pkgname}-v${version}"
+build_style=gnu-configure
+conf_files="/etc/gnunet/gnunet.conf"
+hostmakedepends="autoconf automake libtool"
+makedepends="gettext-devel libgcrypt-devel libidn-devel
+ libltdl-devel libunistring-devel sqlite-devel zlib-devel"
+short_desc="Framework for secure peer-to-peer networking"
+maintainer="Anachron <gith@cron.world>"
+license="GPL-3.0-or-later"
+homepage="https://gnunet.org"
+distfiles="https://git.gnunet.org/gnunet.git/snapshot/${pkgname}-v${version}.tar.gz"
+checksum=ac99e7e5a167aa42e7734ad5c94a31be1f9fe98842a923c382c8a30b5320561a
+
+pre_configure() {
+	./bootstrap
+}
+
+post_install() {
+	vmkdir etc/gnunet
+	vcopy "${FILESDIR}/gnunet.conf" etc/gnunet/gnunet.conf
+	vsv gnunet
+}
