2f8dfd
2f8dfd
# Fedora review: http://bugzilla.redhat.com/1268716
2f8dfd
77c224
# Option to enable SUBNODE mode (WIP)
9da2f5
# Fedora generally runs on systems that easily support a full node
4658a2
%bcond_with subnode
4658a2
# Option to use the optimized libnacl embedded with cjdns
9da2f5
# Required since v20 due to use of private cnacl APIs
4658a2
%bcond_without embedded
9da2f5
# Option to enable CPU specific optimization
9da2f5
# Default to generic for distro builds
9da2f5
%bcond_without generic
9da2f5
# Option to use libsodium instead of nacl (broken since v20)
9da2f5
%bcond_with libsodium
9da2f5
# Option to disable SECCOMP: confusing backward logic
9da2f5
# Needed to run on openvz and other container systems
9da2f5
%bcond_without seccomp
73d0c7
# Option to use system libuv instead of bundled libuv-0.11.19
73d0c7
%bcond_with libuv
d28014
# When with_python3 is set, this replaces tools in bin and libexec
d28014
# with python3 versions, and python2-cjdns has py2 library only.
d28014
%bcond_with python2
d28014
%bcond_without python3
9da2f5
9da2f5
%if %{with embedded}
77c224
%global use_embedded 1
77c224
%else
51ae82
%global use_embedded 0
77c224
%endif
e38043
85e430
%if %{with libuv}
85e430
%global use_libuv 1
85e430
%else
85e430
%global use_libuv 0
85e430
%endif
85e430
9da2f5
%if %{with generic}
9da2f5
%global generic_build 1
9da2f5
%else
9da2f5
%global generic_build 0
9da2f5
%endif
9da2f5
9da2f5
%if %{with libsodium}
9da2f5
%global use_libsodium 1
e38043
%global nacl_name libsodium
1afaf1
%global nacl_version 1.0.14
e38043
%global nacl_lib %{_libdir}/libsodium.so
e38043
%else
9da2f5
%global use_libsodium 0
e38043
%global nacl_name nacl
e38043
%global nacl_version 20110221
e38043
%global nacl_lib %{_libdir}/libnacl.so
e38043
%endif
2f8dfd
2f8dfd
%if 0%{?rhel} >= 5 && 0%{?rhel} < 7
2f8dfd
%global use_systemd 0
2f8dfd
%else
2f8dfd
%global use_systemd 1
2f8dfd
%endif
2f8dfd
2f8dfd
%if 0%{?rhel} == 6
2f8dfd
%global use_upstart 1
2f8dfd
%else
2f8dfd
%global use_upstart 0
2f8dfd
%endif
2f8dfd
fc4c43
%if 0 && 0%{?fedora} > 30
fc4c43
%global use_marked 1
fc4c43
%global makeman marked-man
fc4c43
%else
fc4c43
%global use_marked 0
fc4c43
%global makeman ../../ronn
fc4c43
%endif
fc4c43
2f8dfd
# FIXME: Needs dependencies and install www dir someplace reasonable.
2f8dfd
d28014
%global with_admin 0
2f8dfd
2f8dfd
%{!?__restorecon: %global __restorecon /sbin/restorecon}
2f8dfd
2f8dfd
Name:           cjdns
2f8dfd
# major version is cjdns protocol version:
ac0d93
Version:        20.5
ac0d93
Release:        1%{?dist}
2f8dfd
Summary:        The privacy-friendly network without borders
2f8dfd
# cjdns is all GPLv3 except libuv which is MIT and BSD and ISC
2f8dfd
# cnacl is unused except when use_embedded is true
2f8dfd
License:        GPLv3 and MIT and BSD and ISC
2f8dfd
URL:            http://hyperboria.net/
2f8dfd
Source0: https://github.com/cjdelisle/cjdns/archive/%{name}-v%{version}.tar.gz
2f8dfd
Source1: cjdns.README_Fedora.md
1afaf1
Source2: cjdns.service
fc4c43
# nroff overlay for nodejs-marked
0a751c
%if 0%{?use_marked}
fc4c43
Source3: https://github.com/kapouer/marked-man/archive/0.7.0.tar.gz#/marked-man-0.7.0.tar.gz
0a751c
%endif
d28014
# Contributed python API hacked for python3
d28014
Source4: python-cjdns-0.1.tar.gz
2f8dfd
# Add targeted selinux policy
2f8dfd
Patch0: cjdns.selinux.patch
2f8dfd
# Allow python2.6 for build.  Python is not used during the build
2f8dfd
# process.  The python tools allegedly depend on python2.7, but that can
2f8dfd
# be in Requires for the subpackage.
2f8dfd
Patch1: cjdns.el6.patch
2f8dfd
# Fix RLIMIT_NPROC - setuid() bug.   In its low priv process, cjdroute calls 
2f8dfd
#
2f8dfd
#   setrlimit(RLIMIT_NPROC, &(struct rlimit){ 0, 0 })
2f8dfd
#
2f8dfd
# which on recent kernels prevents fork() or exec() after the following
2f8dfd
# setuid().  This is due to changes discussed here:
2f8dfd
#
2f8dfd
# https://lwn.net/Articles/451985/
2f8dfd
# 
2f8dfd
# On the 2.6.32 kernel used by EL6, the above causes setuid() to fail.
2f8dfd
# This patch sets RLIMIT_NPROC to { 1, 1 } instead, which prevents
2f8dfd
# fork(), but not exec, and calls setgroups() before setuid().
2f8dfd
Patch2:  cjdns.nprocs.patch
2f8dfd
# Change defaults generated by cjdroute --genconf
2f8dfd
Patch4:  cjdns.genconf.patch
2f8dfd
# Patch contributed init scripts to put cjdroute in /usr/sbin and
2f8dfd
# add additional service options.
2f8dfd
Patch5:  cjdns.sbin.patch
2f8dfd
# Patch make.js to use dynamic nacl library
2f8dfd
Patch6:  cjdns.dyn.patch
21a248
# Patch to use _LINUX_CAPABILITY_3 (cjdns < 18)
cef3e3
#Patch7:  cjdns.cap3.patch
2f8dfd
# Patch some source files to ignore selected warnings that break gcc6 builds
2f8dfd
Patch8:  cjdns.warnings.patch
2f8dfd
# Man pages
2f8dfd
Patch9:  cjdns.man.patch
4b865a
# Patch some bugs in nodejs tools
4b865a
Patch10: cjdns.tools.patch
e38043
# Alternate dynamic library patch to use libsodium
e38043
Patch11: cjdns.sodium.patch
51ae82
# Disable WIP subnode code when SUBNODE not enabled
51ae82
Patch12: cjdns.sign.patch
21a248
# Recognize ppc64, ppc64le, and s390x arches
8cc225
#Patch13: cjdns.ppc64.patch
325b91
# getentropy(2) added to glibc in Fedora 26
5c914f
# included in cjdns-20.1 
5c914f
#Patch14: cjdns.entropy.patch
02039d
# Fix buffer overrun in JsonBencSerializer.c
5c914f
# included in cjdns-20.1
5c914f
#Patch15: cjdns.benc.patch
02039d
# Specify python2 for systems that default to python3
ac0d93
#Patch16: cjdns.python3.patch
fd5592
# s390x support for embedded cnacl library from Dan Horák <dan@danny.cz>
9b2cd2
# Included upstream since 20.3
9b2cd2
#Patch17: cjdns.s390x.patch
85e430
# patch build to use system libuv
85e430
Patch18: cjdns.libuv.patch
561fcd
Patch19: cjdns.fuzz.patch
915cb9
# patch to use /proc/sys/kernel/random/uuid instead of sysctl before 20.4
9c6fb6
Patch20: cjdns.sysctl.patch
fc4c43
# Patch ronn to stop using deprecated util.puts and util.debug
fc4c43
Patch21: cjdns.puts.patch
fecb98
# gcc-10 no longer allows duplicate globals
fecb98
Patch22: cjdns.gcc10.patch
2f8dfd
fc4c43
%if %{use_marked}
915cb9
BuildRequires:  nodejs, nodejs-marked, python3
fc4c43
%else
915cb9
BuildRequires:  nodejs, nodejs-ronn, python3
fc4c43
%endif
2f8dfd
2f8dfd
# Automated package review hates explicit BR on make, but it *is* needed
7b61aa
BuildRequires:  make gcc
2f8dfd
9da2f5
%if !0%{use_embedded}
2f8dfd
# x86_64 and ARM libnacl are not compiled with -fPIC before Fedora release 11.
e38043
BuildRequires:  %{nacl_name}-devel >= %{nacl_version}
2f8dfd
%endif
2f8dfd
%if %{use_systemd}
2f8dfd
# systemd macros are not defined unless systemd is present
2f8dfd
BuildRequires: systemd
2f8dfd
Requires: systemd
2f8dfd
Requires(post): systemd
2f8dfd
Requires(preun): systemd
2f8dfd
Requires(postun): systemd
2f8dfd
%endif
2f8dfd
Requires(pre): shadow-utils
d28014
85e430
%if 0%{use_libuv}
85e430
BuildRequires: libuv-devel
85e430
%else
915cb9
BuildRequires: gyp
4fcbbf
Provides: bundled(libuv) = 0.11.19
85e430
%endif
d28014
dcdbe4
%if 0%{use_embedded}
dcdbe4
Provides: bundled(nacl) = 20110221
dcdbe4
%endif
a0a8c8
# build system requires nodejs, unfortunately
a0a8c8
ExclusiveArch: %{nodejs_arches}
2f8dfd
2f8dfd
%description
2f8dfd
Cjdns implements an encrypted IPv6 network using public-key cryptography for
2f8dfd
address allocation and a distributed hash table for routing. This provides
2f8dfd
near-zero-configuration networking, and prevents many of the security and
2f8dfd
scalability issues that plague existing networks.
2f8dfd
2f8dfd
%package selinux
2f8dfd
Summary: Targeted SELinux policy module for cjdns
2f8dfd
BuildRequires: policycoreutils, checkpolicy, selinux-policy-devel
2f8dfd
Requires: policycoreutils, selinux-policy-targeted
2f8dfd
Requires: %{name} = %{version}-%{release}
2f8dfd
BuildArch: noarch
2f8dfd
2f8dfd
%description selinux
2f8dfd
Targeted SELinux policy module for cjdns.
2f8dfd
2f8dfd
# FIXME: keep C tools separate?
2f8dfd
%package tools
4b865a
Summary: Nodejs tools for cjdns
2f8dfd
Requires: nodejs, %{name} = %{version}-%{release}
2f8dfd
BuildArch: noarch
2f8dfd
2f8dfd
%description tools
4b865a
Nodejs tools for cjdns. Highlights:
4b865a
peerStats          show current peer status
4b865a
cjdnslog           display cjdroute log
4b865a
cjdns-traceroute   trace route to cjdns IP
4b865a
sessionStats       show current crypto sessions
2f8dfd
d28014
%if %{with python2}
905088
%package -n python2-cjdns
905088
%{?python_provide:%python_provide python2-cjdns}
905088
# Remove before F30
66beed
Provides: %{name}-python = %{version}-%{release}
905088
Obsoletes: %{name}-python < %{version}-%{release}
2f8dfd
Summary: Python tools for cjdns
d142e0
%if 0%{?fedora} >= 18
f3dacc
BuildRequires: python2-rpm-macros
d142e0
%else
d142e0
BuildRequires: python-rpm-macros
d142e0
%endif
4c4b59
Requires: python2, %{name} = %{version}-%{release}
2f8dfd
BuildArch: noarch
2f8dfd
905088
%description -n python2-cjdns
2f8dfd
Python tools for cjdns.
d28014
%endif
d28014
d28014
%if %{with python3}
d28014
%package -n python3-%{name}
d28014
%{?python_provide:%python_provide python3-%{name}}
d28014
Summary: Python tools for cjdns
d28014
BuildRequires: python3-rpm-macros, python3-devel
d28014
Requires: python3, %{name} = %{version}-%{release}
d28014
BuildArch: noarch
d28014
%if !%{with python2}
8f3e50
Obsoletes: python2-%{name} < 20.4-2
d28014
%endif
d28014
d28014
%description -n python3-%{name}
d28014
Python tools for cjdns.
d28014
%endif
2f8dfd
2f8dfd
%package graph
7ff0fd
Summary: Python peer graph tools for cjdns
d28014
%if %{with python3}
d28014
Requires: python3-%{name} = %{version}-%{release}
d28014
Requires: python3-networkx
d28014
%else
f3dacc
Requires: python2-%{name} = %{version}-%{release}
f3dacc
%if 0%{?rhel} == 6 || 0%{?rhel} == 7
f3dacc
Requires: python-networkx
7ff0fd
Requires: python2-matplotlib
f3dacc
%else
f3dacc
Requires: python2-networkx
f3dacc
%endif
d28014
%endif
2f8dfd
BuildArch: noarch
2f8dfd
2f8dfd
%description graph
7ff0fd
Python peer graph tools for cjdns.
2f8dfd
2f8dfd
%prep
2f8dfd
%setup -qn cjdns-%{name}-v%{version}
2f8dfd
%patch0 -b .selinux
2f8dfd
%if 0%{?rhel} == 6
2f8dfd
%patch1 -b .el6
2f8dfd
%endif
2f8dfd
2f8dfd
%patch2 -b .nprocs
2f8dfd
%patch4 -b .genconf
2f8dfd
%patch5 -b .sbin
2f8dfd
1afaf1
cp %{SOURCE2} contrib/systemd
1afaf1
fc4c43
%if %{use_marked}
fc4c43
tar xvfz %{SOURCE3}
fc4c43
%endif
fc4c43
9da2f5
%if 0%{use_embedded}
9da2f5
# disable CPU opt
9c6fb6
%else
2f8dfd
# use system nacl library if provided.  
e38043
if test -x %{nacl_lib}; then
e38043
%if 0%{use_libsodium}
e38043
%patch11 -b .sodium
e38043
%else
2f8dfd
%patch6 -b .dyn
e38043
%endif
2f8dfd
  rm -rf node_build/dependencies/cnacl
2f8dfd
# use static library if system nacl doesn't provide dynamic
2f8dfd
elif test -d %{_includedir}/nacl && test -r %{_libdir}/libnacl.a; then
2f8dfd
  cd node_build/dependencies
2f8dfd
  rm -rf cnacl
2f8dfd
  mkdir -p cnacl/jsbuild
2f8dfd
  ln -s %{_libdir}/libnacl.a cnacl/jsbuild
2f8dfd
  ln -s %{_includedir}/nacl cnacl/jsbuild/include
2f8dfd
  cd -
2f8dfd
fi
51ae82
%patch12 -b .sign
2f8dfd
%endif
2f8dfd
2f8dfd
%if !0%{?rhel} || 0%{?rhel} > 6
2f8dfd
%patch8 -b .warnings
2f8dfd
%endif
2f8dfd
2f8dfd
%patch9 -b .man
4b865a
%patch10 -b .tools
4b7aed
#patch13 -b .ppc64
5c914f
#patch14 -b .entropy
5c914f
#patch15 -b .benc
ac0d93
#patch16 -b .python3
85e430
%if 0%{use_libuv}
85e430
%patch18 -p1 -b .libuv
85e430
rm -rf node_build/dependencies/libuv
915cb9
%else
915cb9
rm -rf node_build/dependencies/libuv/build/gyp # use system gyp
f1233d
%ifarch s390x
f1233d
sed -i -e '/optimizeLevel:/ s/-O0/-O1/' node_build/make.js
f1233d
%else
3518bc
sed -i -e '/optimizeLevel:/ s/-O0/-O2/' node_build/make.js
85e430
%endif
f1233d
%endif
49f5b0
%patch19 -p1 -b .fuzz
915cb9
#patch20 -p1 -b .sysctl
fecb98
%patch22 -b .gcc10
2f8dfd
2f8dfd
cp %{SOURCE1} README_Fedora.md
2f8dfd
2f8dfd
# Remove #!env from python scripts
2f8dfd
chmod a+x contrib/python/cjdnsadmin/cli.py
2f8dfd
find contrib/python/cjdnsadmin ! -executable -name "*.py" |
2f8dfd
        xargs sed -e '\,^#!/usr/bin/env, d' -i
2f8dfd
find contrib/python -type f |
2f8dfd
        xargs sed -e '1 s,^#!/usr/bin/env ,#!/usr/bin/,' -i 
54a6ca
sed -e '$ s,^python ,/usr/bin/python2 ,' -i contrib/python/cjdnsa
2f8dfd
2f8dfd
# Remove #!env from nodejs scripts
2f8dfd
find tools -type f | xargs grep -l '^#!\/usr\/bin\/env ' |
2f8dfd
        xargs sed -e '1 s,^#!/usr/bin/env ,#!/usr/bin/,' -i
2f8dfd
bba50e
# Fix deprecated Buffer ctor except on EL6
bba50e
%if 0%{?rhel} != 6 
bba50e
sed -e '1,$ s/new Buffer/Buffer.from/' -i \
089c1f
        tools/lib/publicToIp6.js tools/lib/cjdnsadmin/cjdnsadmin.js
bba50e
%endif
bba50e
2f8dfd
# Remove unpackaged code with undeclared licenses
d28014
%if !%{with_admin}
2f8dfd
rm -rf contrib/nodejs   # GPLv3 and ASL 2.0
2f8dfd
%endif
2f8dfd
rm -rf contrib/http     # GPLv2 and MIT
2f8dfd
da4d7b
cat >cjdns-up.sh <<'EOF'
da4d7b
#!/bin/sh
da4d7b
da4d7b
cjdev="$(cjdns-online -i)" || exit 1
da4d7b
da4d7b
for s in %{_sysconfdir}/cjdns/up.d/*.sh; do
da4d7b
  if test -x "$s"; then
da4d7b
    "$s" up $cjdev
da4d7b
  fi
da4d7b
done
da4d7b
EOF
da4d7b
da4d7b
chmod a+x cjdns-up.sh
da4d7b
9da2f5
%if %{generic_build}
88f1da
%ifarch s390x
88f1da
sed -i -e 's/-march=native/-mtune=native/' node_build/make.js
88f1da
%else
9da2f5
sed -i -e 's/-march=native/-mtune=generic/' node_build/make.js
88f1da
%endif
9da2f5
rm node_build/dependencies/cnacl/node_build/plans/*_AVX_plan.json
9da2f5
# Leaving SSE2 code in since x86 is secondary arch and pretty much everyone
9da2f5
# is going to have SSE2, except things like XO-1 which needs custom build.
9da2f5
#rm node_build/dependencies/cnacl/node_build/plans/x86_SSE2_plan.json
9da2f5
%endif
9da2f5
fc4c43
%if !%{use_marked}
fc4c43
cp -r /usr/lib/node_modules/ronn node_modules
fc4c43
%patch21 -p1 -b .puts
fc4c43
ln -s node_modules/ronn/bin/ronn.js ronn
fc4c43
%endif
fc4c43
089c1f
# remove hidden files from node_modules/nthen
089c1f
cd node_modules/nthen
089c1f
rm -f .f* .j* .t*
089c1f
cd -
089c1f
d28014
# python3 API
d28014
%if %{with python3}
d28014
tar xvfz %{SOURCE4}
d28014
mv python-cjdns-* python-cjdns
d28014
%endif
d28014
2f8dfd
# FIXME: grep Version_CURRENT_PROTOCOL util/version/Version.h and
2f8dfd
# check that it matches major %%{version}
2f8dfd
2f8dfd
%build
d28014
d28014
# build selinux policy
2f8dfd
cd contrib/selinux
2f8dfd
ln -s /usr/share/selinux/devel/Makefile .
2f8dfd
make 
2f8dfd
cd -
d28014
%if 0 && %{with python3}
d28014
cd python-cjdns
d28014
python3 setup.py build 
d28014
cd -
d28014
%endif
5c0060
2f8dfd
# nodejs based build system
d5c793
2eea56
%if !%{with seccomp}
d5c793
export Seccomp_NO=1
d5c793
%endif
77c224
%if %{with subnode}
77c224
export SUBNODE=1
77c224
%endif
e8ded4
NO_TEST=1 CJDNS_RELEASE_VERSION="%{name}-%{version}-%{release}" ./do
2f8dfd
2f8dfd
# FIXME: use system libuv on compatible systems
85e430
# bundled libuv is 0.11.19 with changes:
2f8dfd
# https://github.com/cjdelisle/cjdns/commits/master/node_build/dependencies/libuv
2f8dfd
6975af
%check
e8ded4
build_linux/test_testcjdroute_c all >test.out
6975af
2f8dfd
%install
2f8dfd
%if 0%{?rhel} == 5
2f8dfd
 rm -rf %{buildroot}  # needed on RHEL5
2f8dfd
%endif
2f8dfd
2f8dfd
# the main switch process
2f8dfd
mkdir -p %{buildroot}%{_sbindir}
2f8dfd
install -p cjdroute %{buildroot}%{_sbindir}
2f8dfd
2f8dfd
# init support
2f8dfd
%if %{use_upstart}
2f8dfd
mkdir -p %{buildroot}%{_sysconfdir}/init
2f8dfd
install -pm 644 contrib/upstart/cjdns.conf %{buildroot}%{_sysconfdir}/init
2f8dfd
%endif
2f8dfd
%if %{use_systemd}
2f8dfd
mkdir -p %{buildroot}%{_unitdir}
2f8dfd
install -pm 644 contrib/systemd/cjdns*.service %{buildroot}%{_unitdir}
2f8dfd
%endif
da4d7b
mkdir -p %{buildroot}%{_sysconfdir}/cjdns/up.d
2f8dfd
2f8dfd
# chroot 
2f8dfd
mkdir -p %{buildroot}/var/empty/cjdns
2f8dfd
2f8dfd
# install selinux modules
2f8dfd
mkdir -p %{buildroot}%{_datadir}/selinux/targeted
2f8dfd
install -pm 644 contrib/selinux/cjdns.pp %{buildroot}%{_datadir}/selinux/targeted
2f8dfd
ln -f contrib/selinux/cjdns.{te,fc} .  # for doc dir
2f8dfd
2f8dfd
# install c and nodejs tools
2f8dfd
mkdir -p %{buildroot}%{_libexecdir}/cjdns/{node_build,contrib}
ebe5a5
install -p publictoip6 privatetopublic mkpasswd makekeys randombytes sybilsim \
2f8dfd
        %{buildroot}%{_libexecdir}/cjdns
2f8dfd
rm -f node_modules/nthen/.npmignore
2f8dfd
cp -pr tools node_modules %{buildroot}%{_libexecdir}/cjdns
24f2c1
# but not local copy of ronn
24f2c1
rm -rf %{buildroot}%{_libexecdir}/cjdns/node_modules/ronn
2f8dfd
2f8dfd
%if %{with_admin}
2f8dfd
rm -f contrib/nodejs/admin/.gitignore
2f8dfd
cp -pr contrib/nodejs/admin %{buildroot}%{_libexecdir}/cjdns
2f8dfd
%endif
2f8dfd
278652
cp -p cjdns-up.sh %{buildroot}%{_libexecdir}/cjdns/cjdns-up
da4d7b
d28014
# do python setup.py install *before* any other bin installs so we can move
d28014
# to libexec.  FIXME: pip install might be able to do this more elegantly.
2f8dfd
mkdir -p %{buildroot}%{_bindir}
d28014
%if %{with python3}
d28014
mkdir -p %{buildroot}%{_libexecdir}/cjdns/python
d28014
cd python-cjdns
d28014
python3 setup.py install -O1 --root %{buildroot}
d28014
cd -
d28014
mv %{buildroot}/%{_bindir}/* %{buildroot}/%{_libexecdir}/cjdns/python
d28014
d28014
# These files are installed via doc and license
d28014
rm -f %{buildroot}%{python3_sitelib}/cjdnsadmin/bencode.py.LICENSE.txt
d28014
rm -f %{buildroot}%{_libexecdir}/cjdns/python/README.md
d28014
rm -f %{buildroot}%{_libexecdir}/cjdns/python/cjdns-dynamic.conf
d28014
d28014
%endif
d28014
d28014
# symlinks for selected nodejs tools
2f8dfd
for t in peerStats sessionStats cjdnslog search dumpLinks dumptable \
2f8dfd
         dumpRumorMill pathfinderTree pingAll; do
2f8dfd
  ln -sf %{_libexecdir}/cjdns/tools/$t %{buildroot}%{_bindir}
2f8dfd
done
4b865a
for t in traceroute; do
4b865a
  ln -sf %{_libexecdir}/cjdns/tools/$t %{buildroot}%{_bindir}/cjdns-$t
4b865a
done
2f8dfd
ebe5a5
# symlinks for selected C tools that don't conflict with other packages
2f8dfd
for t in publictoip6 randombytes makekeys; do
2f8dfd
  ln -sf %{_libexecdir}/cjdns/$t %{buildroot}%{_bindir}
2f8dfd
done
2f8dfd
2f8dfd
# cjdns-online script
2f8dfd
install -pm 755 contrib/systemd/cjdns-online.sh \
2f8dfd
        %{buildroot}%{_bindir}/cjdns-online
2f8dfd
2f8dfd
# man pages
2f8dfd
mkdir -p %{buildroot}%{_mandir}/man1
2f8dfd
mkdir -p %{buildroot}%{_mandir}/man5
2f8dfd
mkdir -p %{buildroot}%{_mandir}/man8
2f8dfd
install -pm 644 doc/man/cjdroute.conf.5 %{buildroot}%{_mandir}/man5
2f8dfd
cd contrib/doc
2f8dfd
for m in *.md; do
2f8dfd
  case ${m%.md} in
4b865a
  traceroute) M="1"
fc4c43
    %{makeman} $m >%{buildroot}%{_mandir}/man$M/cjdns-${m%.md}.$M
4b865a
    continue ;;
f848c2
  privatetopublic|sybilsim) M="8" ;;
f848c2
  *) M="1" ;;
2f8dfd
  esac
fc4c43
  %{makeman} $m >%{buildroot}%{_mandir}/man$M/${m%.md}.$M
2f8dfd
done
2f8dfd
cd -
2f8dfd
d28014
%if %{with python2}
2f8dfd
d28014
%if !%{with python3}
2f8dfd
# install python tools that pull in networkx for graphing
2f8dfd
cp -pr contrib/python %{buildroot}%{_libexecdir}/cjdns
2f8dfd
2f8dfd
# These files are installed via doc and license
2f8dfd
rm %{buildroot}%{_libexecdir}/cjdns/python/README.md
2f8dfd
rm %{buildroot}%{_libexecdir}/cjdns/python/cjdns-dynamic.conf
2f8dfd
rm %{buildroot}%{_libexecdir}/cjdns/python/cjdnsadmin/bencode.py.LICENSE.txt
2f8dfd
d28014
%endif
d28014
d28014
# Install cjdnsadmin to site-packages
f3dacc
mkdir -p %{buildroot}%{python2_sitelib}
d28014
cp -pr contrib/python/cjdnsadmin %{buildroot}%{python2_sitelib}
d28014
d28014
%endif
f3dacc
d28014
%if %{with python2} || %{with python3}
2f8dfd
# symlink python tools w/o conflict with nodejs tools or needing networkx
2f8dfd
for t in pingAll.py trashroutes \
2f8dfd
         getLinks ip6topk pktoip6 cjdnsa searches findnodes; do
2f8dfd
  ln -sf %{_libexecdir}/cjdns/python/$t %{buildroot}%{_bindir}
2f8dfd
done
d28014
%endif
2f8dfd
2f8dfd
# symlink python tools that pull in networkx for graphing
2f8dfd
for t in drawgraph dumpgraph graphStats; do
2f8dfd
  ln -sf %{_libexecdir}/cjdns/python/$t %{buildroot}%{_bindir}
2f8dfd
done
2f8dfd
2f8dfd
%files
2f8dfd
%{!?_licensedir:%global license %%doc}
2f8dfd
%license LICENSE
2f8dfd
%doc README.md README_*.md HACKING.md 
2f8dfd
%attr(0100,root,root) /var/empty/cjdns
2f8dfd
%attr(0755,root,root) %{_sbindir}/cjdroute
2f8dfd
%ghost %attr(0600,root,root) %config(missingok,noreplace) %{_sysconfdir}/cjdroute.conf
2f8dfd
%dir %{_libexecdir}/cjdns
2f8dfd
%if %{use_upstart}
2f8dfd
%{_sysconfdir}/init/*
2f8dfd
%endif
2f8dfd
%if %{use_systemd}
2f8dfd
%{_unitdir}/*
2f8dfd
%endif
da4d7b
%dir %{_sysconfdir}/cjdns/up.d
da4d7b
%{_libexecdir}/cjdns/cjdns-up
2f8dfd
%{_libexecdir}/cjdns/randombytes
2f8dfd
%{_libexecdir}/cjdns/publictoip6
2f8dfd
%{_libexecdir}/cjdns/privatetopublic
2f8dfd
%{_libexecdir}/cjdns/sybilsim
2f8dfd
%{_libexecdir}/cjdns/makekeys
ebe5a5
%{_libexecdir}/cjdns/mkpasswd
2f8dfd
%{_bindir}/randombytes
2f8dfd
%{_bindir}/publictoip6
2f8dfd
%{_bindir}/makekeys
2f8dfd
%{_bindir}/cjdns-online
2f8dfd
%{_mandir}/man5/*
2f8dfd
%{_mandir}/man8/*
4b865a
%{_mandir}/man1/cjdns-online.1.gz
4b865a
%{_mandir}/man1/cjdroute.1.gz
4b865a
%{_mandir}/man1/makekeys.1.gz
4b865a
%{_mandir}/man1/publictoip6.1.gz
4b865a
%{_mandir}/man1/randombytes.1.gz
2f8dfd
2f8dfd
%pre
2f8dfd
getent group cjdns > /dev/null || groupadd -r cjdns
2f8dfd
getent passwd cjdns > /dev/null || /usr/sbin/useradd -g cjdns \
2f8dfd
        -c "End to end encrypted IPv6 mesh" \
2f8dfd
        -r -d %{_libexecdir}/cjdns -s /sbin/nologin cjdns
2f8dfd
exit 0
2f8dfd
2f8dfd
%if %{use_systemd}
2f8dfd
2f8dfd
%post
2f8dfd
%systemd_post cjdns.service
2f8dfd
2f8dfd
%postun
2f8dfd
%systemd_postun_with_restart cjdns.service
2f8dfd
2f8dfd
%preun
2f8dfd
%systemd_preun cjdns.service
2f8dfd
2f8dfd
%endif
2f8dfd
2f8dfd
%if %{use_upstart}
2f8dfd
2f8dfd
%preun
2f8dfd
if [ "$1" -eq 0 ]; then
2f8dfd
  /sbin/initctl stop cjdns
2f8dfd
fi
2f8dfd
2f8dfd
%postun
2f8dfd
if [ "$1" -ge 1 ]; then
2f8dfd
  /sbin/initctl restart cjdns
2f8dfd
fi
2f8dfd
2f8dfd
%endif
2f8dfd
2f8dfd
%files selinux
2f8dfd
%doc cjdns.te cjdns.fc 
2f8dfd
%{_datadir}/selinux/targeted/*
2f8dfd
2f8dfd
%post selinux
2f8dfd
/usr/sbin/semodule -s targeted -i %{_datadir}/selinux/targeted/cjdns.pp \
2f8dfd
        &>/dev/null || :
2f8dfd
%{__restorecon} %{_sbindir}/cjdroute
2f8dfd
2f8dfd
%postun selinux
2f8dfd
if [ $1 -eq 0 ] ; then
2f8dfd
/usr/sbin/semodule -s targeted -r cjdns &> /dev/null || :
2f8dfd
fi
2f8dfd
2f8dfd
%files tools
2f8dfd
%if %{with_admin}
2f8dfd
%{_libexecdir}/cjdns/admin
2f8dfd
%endif
2f8dfd
%{_libexecdir}/cjdns/tools
2f8dfd
%{_libexecdir}/cjdns/node_build
2f8dfd
%{_libexecdir}/cjdns/node_modules
2f8dfd
%{_bindir}/peerStats
2f8dfd
%{_bindir}/sessionStats
2f8dfd
%{_bindir}/cjdnslog
2f8dfd
%{_bindir}/dumpRumorMill
2f8dfd
%{_bindir}/dumpLinks
2f8dfd
%{_bindir}/pathfinderTree
2f8dfd
%{_bindir}/dumptable
2f8dfd
%{_bindir}/pingAll
2f8dfd
%{_bindir}/search
4b865a
%{_bindir}/cjdns-traceroute
4b865a
%{_mandir}/man1/cjdns-traceroute.1.gz
c21bf3
%{_mandir}/man1/sessionStats.1.gz
7134b1
%{_mandir}/man1/peerStats.1.gz
2e3ea3
%{_mandir}/man1/cjdnslog.1.gz
2f8dfd
d28014
%if %{with python2}
905088
%files -n python2-cjdns
2f8dfd
%doc contrib/python/README.md contrib/python/cjdns-dynamic.conf
2f8dfd
%license contrib/python/cjdnsadmin/bencode.py.LICENSE.txt
f3dacc
%{python2_sitelib}/cjdnsadmin
d28014
%if !%{with python3}
d28014
%dir %{_libexecdir}/cjdns/python
d28014
%{_libexecdir}/cjdns/python/cexec
d28014
%{_libexecdir}/cjdns/python/cjdnsadminmaker.py*
d28014
%{_libexecdir}/cjdns/python/cjdnslog
d28014
%{_libexecdir}/cjdns/python/dumptable
d28014
%{_libexecdir}/cjdns/python/dynamicEndpoints.py*
d28014
%{_libexecdir}/cjdns/python/peerStats
d28014
%{_libexecdir}/cjdns/python/sessionStats
d28014
%{_libexecdir}/cjdns/python/pingAll.py*
d28014
%{_libexecdir}/cjdns/python/trashroutes
d28014
%{_libexecdir}/cjdns/python/getLinks
d28014
%{_libexecdir}/cjdns/python/ip6topk
d28014
%{_libexecdir}/cjdns/python/pktoip6
d28014
%{_libexecdir}/cjdns/python/cjdnsa
d28014
%{_libexecdir}/cjdns/python/searches
d28014
%{_libexecdir}/cjdns/python/findnodes
d28014
%{_bindir}/pingAll.py
d28014
%{_bindir}/trashroutes
d28014
%{_bindir}/getLinks
d28014
%{_bindir}/ip6topk
d28014
%{_bindir}/pktoip6
d28014
%{_bindir}/cjdnsa
d28014
%{_bindir}/searches
d28014
%{_bindir}/findnodes
d28014
%endif
d28014
%endif
d28014
d28014
%if %{with python3}
d28014
%files -n python3-cjdns
d28014
%doc python-cjdns/README.md python-cjdns/cjdns-dynamic.conf
d28014
%license python-cjdns/cjdnsadmin/bencode.py.LICENSE.txt
d28014
%{python3_sitelib}/*
2f8dfd
%dir %{_libexecdir}/cjdns/python
2f8dfd
%{_libexecdir}/cjdns/python/cexec
2f8dfd
%{_libexecdir}/cjdns/python/cjdnsadminmaker.py*
2f8dfd
%{_libexecdir}/cjdns/python/cjdnslog
2f8dfd
%{_libexecdir}/cjdns/python/dumptable
2f8dfd
%{_libexecdir}/cjdns/python/dynamicEndpoints.py*
2f8dfd
%{_libexecdir}/cjdns/python/peerStats
2f8dfd
%{_libexecdir}/cjdns/python/sessionStats
2f8dfd
%{_libexecdir}/cjdns/python/pingAll.py*
2f8dfd
%{_libexecdir}/cjdns/python/trashroutes
2f8dfd
%{_libexecdir}/cjdns/python/getLinks
2f8dfd
%{_libexecdir}/cjdns/python/ip6topk
2f8dfd
%{_libexecdir}/cjdns/python/pktoip6
2f8dfd
%{_libexecdir}/cjdns/python/cjdnsa
2f8dfd
%{_libexecdir}/cjdns/python/searches
2f8dfd
%{_libexecdir}/cjdns/python/findnodes
2f8dfd
%{_bindir}/pingAll.py
2f8dfd
%{_bindir}/trashroutes
2f8dfd
%{_bindir}/getLinks
2f8dfd
%{_bindir}/ip6topk
2f8dfd
%{_bindir}/pktoip6
2f8dfd
%{_bindir}/cjdnsa
2f8dfd
%{_bindir}/searches
2f8dfd
%{_bindir}/findnodes
d28014
%endif
2f8dfd
2f8dfd
%files graph
2f8dfd
%{_libexecdir}/cjdns/python/drawgraph
2f8dfd
%{_libexecdir}/cjdns/python/dumpgraph
2f8dfd
%{_libexecdir}/cjdns/python/graphStats
2f8dfd
%{_bindir}/drawgraph
2f8dfd
%{_bindir}/dumpgraph
2f8dfd
%{_bindir}/graphStats
2f8dfd
2f8dfd
%changelog
ac0d93
* Wed Jan 22 2020 Stuart Gathman <stuart@gathman.org> - 20.5-1
ac0d93
- New upstream release
ac0d93
d28014
* Wed Oct  2 2019 Stuart Gathman <stuart@gathman.org> - 20.4-2
d28014
- Add python3 support for python API
d28014
915cb9
* Tue Sep 10 2019 Stuart Gathman <stuart@gathman.org> - 20.4-1
915cb9
- Update to 20.4
915cb9
- Update bundled libuv build to use system gyp for build
915cb9
24f2c1
* Sat Aug 24 2019 Stuart Gathman <stuart@gathman.org> - 20.3-8
24f2c1
- Don't package local copy of ronn 
089c1f
- Remove hidden files from node_modules/nthen
24f2c1
db9c92
* Thu Aug 15 2019 Stuart Gathman <stuart@gathman.org> - 20.3-7
baa419
- Don't audit /var/lib/sss access bz#1589395
db9c92
3a2174
* Tue Aug 06 2019 Stuart Gathman <stuart@gathman.org> - 20.3-6
3a2174
- Much simpler solution to removing sysctl calls :-)
3a2174
fc4c43
* Sat Aug 03 2019 Stuart Gathman <stuart@gathman.org> - 20.3-5
fc4c43
- Remove deprecated sysctl() call in getUUID (read from /proc/.../random/uuid)
fc4c43
- Patch a local copy of ronn to stop calling util.puts/util.debug
fc4c43
f16ba5
* Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 20.3-4
f16ba5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
f16ba5
e8ded4
* Thu May 09 2019 Stuart Gathman <stuart@gathman.org> - 20.3-3
e8ded4
- Move running test suite to check
e8ded4
561fcd
* Wed May 08 2019 Stuart Gathman <stuart@gathman.org> - 20.3-2
561fcd
- Increase timeout for fuzz tests to allow slower arches to succeed
561fcd
9b2cd2
* Wed May 08 2019 Stuart Gathman <stuart@gathman.org> - 20.3-1
9b2cd2
- New upstream version 20.3
9b2cd2
e40454
* Fri May 03 2019 Stuart Gathman <stuart@gathman.org> - 20.2-7
e40454
- Option to use system libuv
e40454
- Fix scope of Pipe_PATH String_CONST in config.
85e430
d9a7ca
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 20.2-6
d9a7ca
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
d9a7ca
f3dacc
* Thu Nov  8 2018 Stuart Gathman <stuart@gathman.org> - 20.2-5
f3dacc
- Install cjdnsadmin python module in site-packages
f3dacc
- Work around missing python2-networkx Provides in python-networkx bz#1647987
bba50e
- Fix deprecated Buffer ctor in nodejs tools except on el6
f3dacc
0cee70
* Wed Jul 18 2018 Stuart Gathman <stuart@gathman.org> - 20.2-4
4fcbbf
- cjdns-20.2 bundles libuv-0.11.19
0cee70
- disable CPU specific optimization
0cee70
ff6110
* Thu Jul 12 2018 Fedora Release Engineering <releng@fedoraproject.org> - 20.2-3
ff6110
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
4fcbbf
fd5592
* Thu May 31 2018 Stuart Gathman <stuart@gathman.org> - 20.2-2
fd5592
- Add cnacl s390x support BZ#1584480
fd5592
2d0436
* Tue May 22 2018 Stuart Gathman <stuart@gathman.org> - 20.2-1
2d0436
- New upstream release BZ#1464671
2d0436
ce5db9
* Wed Mar 14 2018 Stuart Gathman <stuart@gathman.org> - 20.1-4
8cc225
- Explicit python version in Requires
943021
- Fix possible unterminated interface name in ifreq
8cc225
366a8e
* Tue Mar 13 2018 Iryna Shcherbina <ishcherb@redhat.com> - 20.1-3
366a8e
- Update Python 2 dependency declarations to new packaging standards
366a8e
  (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3)
366a8e
8cc225
* Tue Mar  6 2018 Stuart Gathman <stuart@gathman.org> - 20.1-2
499b7b
- selinux: Allow map access to cjdns_exec_t
fbf8dc
- disable subnode by default
499b7b
1afaf1
* Wed Feb 21 2018 Stuart Gathman <stuart@gathman.org> - 20.1-1
1afaf1
- New upstream release
1afaf1
3dea32
* Fri Feb 09 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 19.1-10
3dea32
- Escape macros in %%changelog
3dea32
04f62b
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 19.1-9
04f62b
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
04f62b
863b68
* Mon Oct 02 2017 Remi Collet <remi@fedoraproject.org> - 19.1-8
863b68
- rebuild for libsodium
863b68
905088
* Sat Aug 19 2017 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 19.1-7
905088
- Python 2 binary package renamed to python2-cjdns
905088
  See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3
905088
fa1896
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 19.1-6
fa1896
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
fa1896
556f82
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 19.1-5
556f82
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
556f82
ebe5a5
* Wed May 24 2017 Stuart D. Gathman <stuart@gathman.org> 19.1-4
ebe5a5
- Add calls to sodium_init()
ebe5a5
- Include mkpasswd (but not in /usr/bin)
ebe5a5
9e8cf0
* Fri Feb 24 2017 Stuart D. Gathman <stuart@gathman.org> 19.1-3
9e8cf0
- Test and fix --with=subnode 
9e8cf0
78d1d5
* Fri Feb 24 2017 Stuart D. Gathman <stuart@gathman.org> 19.1-2
78d1d5
- Adjust for moving in6_ifreq to linux/ipv6.h in kernel-headers-4.11
78d1d5
4b7aed
* Fri Feb 24 2017 Stuart D. Gathman <stuart@gathman.org> 19.1-1
4b7aed
- New upstream release
4b7aed
6bfc92
* Sat Feb 18 2017 Stuart D. Gathman <stuart@gathman.org> 18-7
02039d
- Fix errors and document nits found by gcc7
02039d
7cf23e
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 18-6
7cf23e
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
7cf23e
da4d7b
* Sat Jan  7 2017 Stuart D. Gathman <stuart@gathman.org> 18-5
3dea32
- Run scripts in %%{sysconfdir}/cjdns/up.d when cjdns comes up.
da4d7b
982e9e
* Sun Nov  6 2016 Stuart D. Gathman <stuart@gathman.org> 18-4
982e9e
- update cjdns-online man page
5cba6b
- Support ppc64, ppc64le, s390x
982e9e
25a044
* Fri Oct 14 2016 Stuart D. Gathman <stuart@gathman.org> 18-3
25a044
- libstdc++ not needed with libsodium
25a044
51ae82
* Fri Oct 14 2016 Stuart D. Gathman <stuart@gathman.org> 18-2
51ae82
- Remove Sign.c which uses a private API and isn't needed until supernodes.
51ae82
- Use libsodium by default: seems best performance of dynamic libraries
51ae82
dcdbe4
* Wed Oct 12 2016 Stuart D. Gathman <stuart@gathman.org> 18-1
dcdbe4
- Update to 18 upstream release
dcdbe4
e38adc
* Mon Aug 15 2016 Stuart D. Gathman <stuart@gathman.org> 17.4-7
e38adc
- Move modprobe to cjdns-loadmodules.service
e38adc
9b87dd
* Wed Aug 10 2016 Stuart D. Gathman <stuart@gathman.org> 17.4-6
929019
- Fix logic for %%bcond_without seccomp
9b87dd
9b87dd
* Wed Aug 10 2016 Stuart D. Gathman <stuart@gathman.org> 17.4-5
d560b4
- cjdns.service: add CapabilityBoundingSet
d560b4
eb9005
* Fri Jun 24 2016 Stuart D. Gathman <stuart@gathman.org> 17.4-4
355953
- cjdns-selinux: allow cjdroute to manipulate route table
355953
a92f07
* Thu Jun 23 2016 Stuart D. Gathman <stuart@gathman.org> 17.4-3
a92f07
- Remove cjdns-resume.service patch, incorporated upstream
a92f07
- Add --interface option to cjdns-online.sh
a92f07
e8dd73
* Thu Jun 23 2016 Stuart D. Gathman <stuart@gathman.org> 17.4-2
e8dd73
- Move tool manpages to tool subpackage.
e8dd73
cef3e3
* Thu Jun 23 2016 Stuart D. Gathman <stuart@gathman.org> 17.4-1
cef3e3
- Update to 17.4 upstream release
cef3e3
- Remove cap3 patch, as it is incorporated upstream
cef3e3
- Remove Constant.js patch, as it is incorporated upstream
cef3e3
f1d325
* Tue May  3 2016 Stuart D. Gathman <stuart@gathman.org> 17.3-13
f1d325
- man page for cjdnslog
f1d325
- Fix running on Fedora as well as openVZ. :-P
cef3e3
- Make cjdns exclusive to nodejs_arches. Rafael Fonseca <rdossant@redhat.com> 
f1d325
7e5322
* Mon Apr 18 2016 Stuart D. Gathman <stuart@gathman.org> 17.3-12
9d70cb
- Run modprobe only if /dev/tun not present - fixes running on openVZ
e38043
- Select nacl/libsodium with a macro
e38043
- Switch back to nacl for platforms that support it
1271ac
- man page for peerStats
9d70cb
22e768
* Tue Apr  5 2016 Stuart D. Gathman <stuart@gathman.org> 17.3-11
4b865a
- Patch some bugs in traceroute and symlink to /usr/bin/cjdns-traceroute
c21bf3
- man page for cjdns-traceroute, sessionStats
4b865a
- switch to libsodium instead of nacl
4b865a
2f8dfd
* Thu Mar 10 2016 Stuart D. Gathman <stuart@gathman.org> 17.3-10
2f8dfd
- Mark nodejs and selinux noarch
2f8dfd
- Remove _isa from noarch subpackages.
2f8dfd
2f8dfd
* Thu Mar 10 2016 Stuart D. Gathman <stuart@gathman.org> 17.3-9
2f8dfd
- Strip /8 from IPs printed by cjdns-online
2f8dfd
- Add GPL3+ to cjdns-online
2f8dfd
- ghost /etc/cjdroute.conf
2f8dfd
- Include _isa formula in subpackage requires.
2f8dfd
2f8dfd
* Tue Mar  8 2016 Stuart D. Gathman <stuart@gathman.org> 17.3-8
2f8dfd
- Add release to main package dependencies
2f8dfd
- More man pages
2f8dfd
- Restore missing cjdns-resume.service
2f8dfd
- Add empty config to be owned by package
2f8dfd
2f8dfd
* Tue Mar  1 2016 Stuart D. Gathman <stuart@gathman.org> 17.3-7
2f8dfd
- Add explicit systemd dependency
2f8dfd
- Add selinux-policy-targeted dependency
2f8dfd
- Add version to main package dependencies
2f8dfd
- Remove use of #!/usr/bin/env in nodejs tools
2f8dfd
- Change all top level define to global
2f8dfd
- Remove workaround for missing -fPIC on libnacl for X86_64 on f22.
2f8dfd
2f8dfd
* Mon Feb 29 2016 Stuart D. Gathman <stuart@gathman.org> 17.3-6
2f8dfd
- Man pages
2f8dfd
- Move /usr/lib/cjdns to /usr/libexec/cjdns
2f8dfd
- Move all C tools to main package, mark (nodejs) tools noarch
2f8dfd
2f8dfd
* Wed Feb 24 2016 Stuart D. Gathman <stuart@gathman.org> 17.3-5
2f8dfd
- Add use_embedded option
2f8dfd
- Reorganize with use_systemd, use_upstart
2f8dfd
- Set __restorecon only if not defined
2f8dfd
- Use install instead of cp to set file modes
2f8dfd
- Move randombytes,publictoip6 and /usr/lib/cjdns to main package
2f8dfd
- Fix bad #! lines in contrib/python
2f8dfd
- Patch util/Security.c to call setgroups(0,...) before setuid().
2f8dfd
2f8dfd
* Fri Feb 12 2016 Stuart D. Gathman <stuart@gathman.org> 17.3-4
2f8dfd
- Add Fedora README
2f8dfd
- No libnacl on EL7 or EPEL7
2f8dfd
2f8dfd
* Tue Feb  2 2016 Stuart D. Gathman <stuart@gathman.org> 17.3-3
2f8dfd
- Add node_modules to tools
2f8dfd
- Add #pragmas to ignore bogus warnings from gcc6
2f8dfd
- Fix shift of signed int
2f8dfd
2f8dfd
* Mon Feb  1 2016 Stuart D. Gathman <stuart@gathman.org> 17.3-2
2f8dfd
- Fix extra line in updated sbin patch
2f8dfd
2f8dfd
* Mon Feb  1 2016 Stuart D. Gathman <stuart@gathman.org> 17.3-1
2f8dfd
- New upstream release
2f8dfd
- Add cjdns-resume.service to restart cjdns on resume from sleep
2f8dfd
2f8dfd
* Tue Jan 19 2016 Stuart D. Gathman <stuart@gathman.org> 17.2-1
2f8dfd
- New upstream release
2f8dfd
2f8dfd
* Sat Nov 07 2015 Stuart D. Gathman <stuart@gathman.org> 17.1-3
2f8dfd
- remove defattr
2f8dfd
- TODO: generate default config at install time, not first start
2f8dfd
2f8dfd
* Wed Nov 04 2015 Stuart D. Gathman <stuart@gathman.org> 17.1-2
2f8dfd
- use dynamic nacl library backported from rawhide
2f8dfd
2f8dfd
* Tue Nov 03 2015 Stuart D. Gathman <stuart@gathman.org> 17.1-1
2f8dfd
- update to new protocol version
2f8dfd
2f8dfd
* Tue Oct 27 2015 Stuart D. Gathman <stuart@gathman.org> 16.3-2
2f8dfd
- move graphing tools to graph subpackage: networkx has a lot of dependencies.
2f8dfd
- use embedded nacl only for i686 (which compiles it with -fPIC)
2f8dfd
2f8dfd
* Fri Oct 16 2015 Stuart D. Gathman <stuart@gathman.org> 16.3-1
2f8dfd
- Allow hostname lookup in selinux policy
2f8dfd
- python tools subpackage
2f8dfd
2f8dfd
* Sun Oct  4 2015 Stuart D. Gathman <stuart@gathman.org> 16.0-6
2f8dfd
- restorecon after selinux install to initialize cjdroute context
2f8dfd
- remove module_request (to load tun driver) from selinux policy
2f8dfd
- make init scripts load tun driver
2f8dfd
2f8dfd
* Sun Sep 27 2015 Stuart D. Gathman <stuart@gathman.org> 16.0-5
2f8dfd
- Restart cjdroute on update, stop on uninstall
2f8dfd
- symlink selected tools to bin
2f8dfd
- use /var/empty/cjdns for chroot
2f8dfd
- patch genconf to change chroot and setuser
2f8dfd
2f8dfd
* Wed Sep 23 2015 Stuart D. Gathman <stuart@gathman.org> 16.0-4
2f8dfd
- Remove doc subpackage - only a meg of docs, and protocol is experimental.
2f8dfd
- Fix for RLIMIT_NPROC - setuid bug.
2f8dfd
- Add setgid to Security.c
2f8dfd
- add contrib/nodejs so tools work
2f8dfd
2f8dfd
* Wed Sep 23 2015 Stuart D. Gathman <stuart@gathman.org> 16.0-3
2f8dfd
- Add selinux, doc and tools subpackages
2f8dfd
- Support EL6
2f8dfd
2f8dfd
* Mon Sep 21 2015 Stuart D. Gathman <stuart@gathman.org> 16.0-2
2f8dfd
- nodejs not a runtime dependency of main package
2f8dfd
- move binaries to /usr/bin (good idea?)
2f8dfd
2f8dfd
* Mon Sep 21 2015 Stuart D. Gathman <stuart@gathman.org> 16.0-1
2f8dfd
- Initial RPM