2f8dfd1
2f8dfd1
# Fedora review: http://bugzilla.redhat.com/1268716
2f8dfd1
2f8dfd1
# Use the optimized libnacl embedded with cjdns
2f8dfd1
%global use_embedded 0
e380438
# Use libsodium instead of nacl
e380438
%global use_libsodium 0
e380438
e380438
%if 0%{use_libsodium}
e380438
%global nacl_name libsodium
e380438
%global nacl_version 1.0.5
e380438
%global nacl_lib %{_libdir}/libsodium.so
e380438
%else
e380438
%global nacl_name nacl
e380438
%global nacl_version 20110221
e380438
%global nacl_lib %{_libdir}/libnacl.so
e380438
%endif
2f8dfd1
2f8dfd1
%if 0%{?rhel} >= 5 && 0%{?rhel} < 7
2f8dfd1
%global use_systemd 0
2f8dfd1
%else
2f8dfd1
%global use_systemd 1
2f8dfd1
%endif
2f8dfd1
2f8dfd1
%if 0%{?rhel} == 6
2f8dfd1
%global use_upstart 1
2f8dfd1
%else
2f8dfd1
%global use_upstart 0
2f8dfd1
%endif
2f8dfd1
2f8dfd1
# FIXME: Needs dependencies and install www dir someplace reasonable.
2f8dfd1
%global with_admin 0
2f8dfd1
2f8dfd1
# FIXME: python tools need to make cjdnsadmin a proper python package
2f8dfd1
%global with_python 1
2f8dfd1
2f8dfd1
%{!?__restorecon: %global __restorecon /sbin/restorecon}
2f8dfd1
2f8dfd1
Name:           cjdns
2f8dfd1
# major version is cjdns protocol version:
2f8dfd1
Version:        17.3
4b865ac
Release:        11%{?dist}
2f8dfd1
Summary:        The privacy-friendly network without borders
2f8dfd1
Group:          System Environment/Base
2f8dfd1
# cjdns is all GPLv3 except libuv which is MIT and BSD and ISC
2f8dfd1
# cnacl is unused except when use_embedded is true
2f8dfd1
License:        GPLv3 and MIT and BSD and ISC
2f8dfd1
URL:            http://hyperboria.net/
2f8dfd1
Source0: https://github.com/cjdelisle/cjdns/archive/%{name}-v%{version}.tar.gz
2f8dfd1
Source1: cjdns.README_Fedora.md
2f8dfd1
# Add targeted selinux policy
2f8dfd1
Patch0: cjdns.selinux.patch
2f8dfd1
# Allow python2.6 for build.  Python is not used during the build
2f8dfd1
# process.  The python tools allegedly depend on python2.7, but that can
2f8dfd1
# be in Requires for the subpackage.
2f8dfd1
Patch1: cjdns.el6.patch
2f8dfd1
# Fix RLIMIT_NPROC - setuid() bug.   In its low priv process, cjdroute calls 
2f8dfd1
#
2f8dfd1
#   setrlimit(RLIMIT_NPROC, &(struct rlimit){ 0, 0 })
2f8dfd1
#
2f8dfd1
# which on recent kernels prevents fork() or exec() after the following
2f8dfd1
# setuid().  This is due to changes discussed here:
2f8dfd1
#
2f8dfd1
# https://lwn.net/Articles/451985/
2f8dfd1
# 
2f8dfd1
# On the 2.6.32 kernel used by EL6, the above causes setuid() to fail.
2f8dfd1
# This patch sets RLIMIT_NPROC to { 1, 1 } instead, which prevents
2f8dfd1
# fork(), but not exec, and calls setgroups() before setuid().
2f8dfd1
Patch2:  cjdns.nprocs.patch
2f8dfd1
# Change defaults generated by cjdroute --genconf
2f8dfd1
Patch4:  cjdns.genconf.patch
2f8dfd1
# Patch contributed init scripts to put cjdroute in /usr/sbin and
2f8dfd1
# add additional service options.
2f8dfd1
Patch5:  cjdns.sbin.patch
2f8dfd1
# Patch make.js to use dynamic nacl library
2f8dfd1
Patch6:  cjdns.dyn.patch
2f8dfd1
# Patch to use _LINUX_CAPABILITY_3
2f8dfd1
Patch7:  cjdns.cap3.patch
2f8dfd1
# Patch some source files to ignore selected warnings that break gcc6 builds
2f8dfd1
Patch8:  cjdns.warnings.patch
2f8dfd1
# Man pages
2f8dfd1
Patch9:  cjdns.man.patch
4b865ac
# Patch some bugs in nodejs tools
4b865ac
Patch10: cjdns.tools.patch
e380438
# Alternate dynamic library patch to use libsodium
e380438
Patch11: cjdns.sodium.patch
2f8dfd1
2f8dfd1
BuildRequires:  nodejs, nodejs-ronn
2f8dfd1
2f8dfd1
# Automated package review hates explicit BR on make, but it *is* needed
2f8dfd1
BuildRequires:  make
2f8dfd1
2f8dfd1
%if !%{use_embedded}
2f8dfd1
# x86_64 and ARM libnacl are not compiled with -fPIC before Fedora release 11.
e380438
BuildRequires:  %{nacl_name}-devel >= %{nacl_version}
2f8dfd1
%endif
2f8dfd1
%if %{use_systemd}
2f8dfd1
# systemd macros are not defined unless systemd is present
2f8dfd1
BuildRequires: systemd
2f8dfd1
Requires: systemd
2f8dfd1
Requires(post): systemd
2f8dfd1
Requires(preun): systemd
2f8dfd1
Requires(postun): systemd
2f8dfd1
%endif
2f8dfd1
Requires(pre): shadow-utils
2f8dfd1
Provides: bundled(libuv) = 0.11.4
2f8dfd1
2f8dfd1
%description
2f8dfd1
Cjdns implements an encrypted IPv6 network using public-key cryptography for
2f8dfd1
address allocation and a distributed hash table for routing. This provides
2f8dfd1
near-zero-configuration networking, and prevents many of the security and
2f8dfd1
scalability issues that plague existing networks.
2f8dfd1
2f8dfd1
%package selinux
2f8dfd1
Summary: Targeted SELinux policy module for cjdns
2f8dfd1
Group: System Environment/Base
2f8dfd1
BuildRequires: policycoreutils, checkpolicy, selinux-policy-devel
2f8dfd1
Requires: policycoreutils, selinux-policy-targeted
2f8dfd1
Requires: %{name} = %{version}-%{release}
2f8dfd1
BuildArch: noarch
2f8dfd1
2f8dfd1
%description selinux
2f8dfd1
Targeted SELinux policy module for cjdns.
2f8dfd1
2f8dfd1
# FIXME: keep C tools separate?
2f8dfd1
%package tools
4b865ac
Summary: Nodejs tools for cjdns
2f8dfd1
Group: System Environment/Base
2f8dfd1
Requires: nodejs, %{name} = %{version}-%{release}
2f8dfd1
BuildArch: noarch
2f8dfd1
2f8dfd1
%description tools
4b865ac
Nodejs tools for cjdns. Highlights:
4b865ac
peerStats          show current peer status
4b865ac
cjdnslog           display cjdroute log
4b865ac
cjdns-traceroute   trace route to cjdns IP
4b865ac
sessionStats       show current crypto sessions
2f8dfd1
2f8dfd1
%package python
2f8dfd1
Summary: Python tools for cjdns
2f8dfd1
Group: System Environment/Base
2f8dfd1
Requires: python, %{name} = %{version}-%{release}
2f8dfd1
BuildArch: noarch
2f8dfd1
2f8dfd1
%description python
2f8dfd1
Python tools for cjdns.
2f8dfd1
2f8dfd1
%package graph
2f8dfd1
Summary: Python tools for cjdns
2f8dfd1
Group: System Environment/Base
2f8dfd1
Requires: %{name}-python = %{version}-%{release}, python-networkx
2f8dfd1
BuildArch: noarch
2f8dfd1
2f8dfd1
%description graph
2f8dfd1
Python graphing tools for cjdns.
2f8dfd1
2f8dfd1
%prep
2f8dfd1
%setup -qn cjdns-%{name}-v%{version}
2f8dfd1
%patch0 -b .selinux
2f8dfd1
%if 0%{?rhel} == 6
2f8dfd1
%patch1 -b .el6
2f8dfd1
%endif
2f8dfd1
2f8dfd1
%patch2 -b .nprocs
2f8dfd1
%patch4 -b .genconf
2f8dfd1
%patch5 -b .sbin
2f8dfd1
2f8dfd1
%if !%{use_embedded}
2f8dfd1
# use system nacl library if provided.  
e380438
if test -x %{nacl_lib}; then
e380438
%if 0%{use_libsodium}
e380438
%patch11 -b .sodium
e380438
%else
2f8dfd1
%patch6 -b .dyn
e380438
%endif
2f8dfd1
  rm -rf node_build/dependencies/cnacl
2f8dfd1
# use static library if system nacl doesn't provide dynamic
2f8dfd1
elif test -d %{_includedir}/nacl && test -r %{_libdir}/libnacl.a; then
2f8dfd1
  cd node_build/dependencies
2f8dfd1
  rm -rf cnacl
2f8dfd1
  mkdir -p cnacl/jsbuild
2f8dfd1
  ln -s %{_libdir}/libnacl.a cnacl/jsbuild
2f8dfd1
  ln -s %{_includedir}/nacl cnacl/jsbuild/include
2f8dfd1
  cd -
2f8dfd1
fi
2f8dfd1
%endif
2f8dfd1
2f8dfd1
%patch7 -b .cap3
2f8dfd1
2f8dfd1
%if !0%{?rhel} || 0%{?rhel} > 6
2f8dfd1
%patch8 -b .warnings
2f8dfd1
%endif
2f8dfd1
2f8dfd1
%patch9 -b .man
4b865ac
%patch10 -b .tools
2f8dfd1
2f8dfd1
cp %{SOURCE1} README_Fedora.md
2f8dfd1
2f8dfd1
# Remove #!env from python scripts
2f8dfd1
chmod a+x contrib/python/cjdnsadmin/cli.py
2f8dfd1
find contrib/python/cjdnsadmin ! -executable -name "*.py" |
2f8dfd1
        xargs sed -e '\,^#!/usr/bin/env, d' -i
2f8dfd1
find contrib/python -type f |
2f8dfd1
        xargs sed -e '1 s,^#!/usr/bin/env ,#!/usr/bin/,' -i 
2f8dfd1
2f8dfd1
# Remove #!env from nodejs scripts
2f8dfd1
find tools -type f | xargs grep -l '^#!\/usr\/bin\/env ' |
2f8dfd1
        xargs sed -e '1 s,^#!/usr/bin/env ,#!/usr/bin/,' -i
2f8dfd1
2f8dfd1
# Remove unpackaged code with undeclared licenses
2f8dfd1
%if %{with_admin}
2f8dfd1
rm -rf contrib/nodejs   # GPLv3 and ASL 2.0
2f8dfd1
%endif
2f8dfd1
rm -rf contrib/http     # GPLv2 and MIT
2f8dfd1
2f8dfd1
# FIXME: grep Version_CURRENT_PROTOCOL util/version/Version.h and
2f8dfd1
# check that it matches major %%{version}
2f8dfd1
2f8dfd1
%build
2f8dfd1
cd contrib/selinux
2f8dfd1
ln -s /usr/share/selinux/devel/Makefile .
2f8dfd1
make 
2f8dfd1
cd -
2f8dfd1
# nodejs based build system
2f8dfd1
CJDNS_RELEASE_VERSION="%{name}-%{version}-%{release}" ./do
2f8dfd1
2f8dfd1
# FIXME: use system libuv on compatible systems
2f8dfd1
# bundled libuv is 0.11.4 with changes:
2f8dfd1
# https://github.com/cjdelisle/cjdns/commits/master/node_build/dependencies/libuv
2f8dfd1
2f8dfd1
%install
2f8dfd1
%if 0%{?rhel} == 5
2f8dfd1
 rm -rf %{buildroot}  # needed on RHEL5
2f8dfd1
%endif
2f8dfd1
2f8dfd1
# the main switch process
2f8dfd1
mkdir -p %{buildroot}%{_sbindir}
2f8dfd1
install -p cjdroute %{buildroot}%{_sbindir}
2f8dfd1
2f8dfd1
# init support
2f8dfd1
%if %{use_upstart}
2f8dfd1
mkdir -p %{buildroot}%{_sysconfdir}/init
2f8dfd1
install -pm 644 contrib/upstart/cjdns.conf %{buildroot}%{_sysconfdir}/init
2f8dfd1
%endif
2f8dfd1
%if %{use_systemd}
2f8dfd1
mkdir -p %{buildroot}%{_unitdir}
2f8dfd1
install -pm 644 contrib/systemd/cjdns*.service %{buildroot}%{_unitdir}
2f8dfd1
%endif
2f8dfd1
2f8dfd1
# chroot 
2f8dfd1
mkdir -p %{buildroot}/var/empty/cjdns
2f8dfd1
2f8dfd1
# install selinux modules
2f8dfd1
mkdir -p %{buildroot}%{_datadir}/selinux/targeted
2f8dfd1
install -pm 644 contrib/selinux/cjdns.pp %{buildroot}%{_datadir}/selinux/targeted
2f8dfd1
ln -f contrib/selinux/cjdns.{te,fc} .  # for doc dir
2f8dfd1
2f8dfd1
# install c and nodejs tools
2f8dfd1
mkdir -p %{buildroot}%{_libexecdir}/cjdns/{node_build,contrib}
2f8dfd1
install -p publictoip6 privatetopublic makekeys randombytes sybilsim \
2f8dfd1
        %{buildroot}%{_libexecdir}/cjdns
2f8dfd1
rm -f node_modules/nthen/.npmignore
2f8dfd1
cp -pr tools node_modules %{buildroot}%{_libexecdir}/cjdns
2f8dfd1
2f8dfd1
2f8dfd1
%if %{with_admin}
2f8dfd1
rm -f contrib/nodejs/admin/.gitignore
2f8dfd1
cp -pr contrib/nodejs/admin %{buildroot}%{_libexecdir}/cjdns
2f8dfd1
%endif
2f8dfd1
2f8dfd1
# symlinks for selected nodejs tools
2f8dfd1
mkdir -p %{buildroot}%{_bindir}
2f8dfd1
for t in peerStats sessionStats cjdnslog search dumpLinks dumptable \
2f8dfd1
         dumpRumorMill pathfinderTree pingAll; do
2f8dfd1
  ln -sf %{_libexecdir}/cjdns/tools/$t %{buildroot}%{_bindir}
2f8dfd1
done
4b865ac
for t in traceroute; do
4b865ac
  ln -sf %{_libexecdir}/cjdns/tools/$t %{buildroot}%{_bindir}/cjdns-$t
4b865ac
done
2f8dfd1
2f8dfd1
# symlinks for selected C tools
2f8dfd1
for t in publictoip6 randombytes makekeys; do
2f8dfd1
  ln -sf %{_libexecdir}/cjdns/$t %{buildroot}%{_bindir}
2f8dfd1
done
2f8dfd1
2f8dfd1
# cjdns-online script
2f8dfd1
install -pm 755 contrib/systemd/cjdns-online.sh \
2f8dfd1
        %{buildroot}%{_bindir}/cjdns-online
2f8dfd1
2f8dfd1
# man pages
2f8dfd1
mkdir -p %{buildroot}%{_mandir}/man1
2f8dfd1
mkdir -p %{buildroot}%{_mandir}/man5
2f8dfd1
mkdir -p %{buildroot}%{_mandir}/man8
2f8dfd1
install -pm 644 doc/man/cjdroute.conf.5 %{buildroot}%{_mandir}/man5
2f8dfd1
cd contrib/doc
2f8dfd1
for m in *.md; do
2f8dfd1
  case ${m%.md} in
4b865ac
  traceroute) M="1"
4b865ac
    ronn-nodejs $m >%{buildroot}%{_mandir}/man$M/cjdns-${m%.md}.$M
4b865ac
    continue ;;
2f8dfd1
  cjdroute|publictoip6|randombytes|makekeys|cjdns-online) M="1" ;;
c21bf3f
  sessionStats) M="1" ;;
2f8dfd1
  *) M="8" ;;
2f8dfd1
  esac
2f8dfd1
  ronn-nodejs $m >%{buildroot}%{_mandir}/man$M/${m%.md}.$M
2f8dfd1
done
2f8dfd1
cd -
2f8dfd1
2f8dfd1
%if %{with_python}
2f8dfd1
2f8dfd1
# install python tools that pull in networkx for graphing
2f8dfd1
cp -pr contrib/python %{buildroot}%{_libexecdir}/cjdns
2f8dfd1
2f8dfd1
# These files are installed via doc and license
2f8dfd1
rm %{buildroot}%{_libexecdir}/cjdns/python/README.md
2f8dfd1
rm %{buildroot}%{_libexecdir}/cjdns/python/cjdns-dynamic.conf
2f8dfd1
rm %{buildroot}%{_libexecdir}/cjdns/python/cjdnsadmin/bencode.py.LICENSE.txt
2f8dfd1
2f8dfd1
# symlink python tools w/o conflict with nodejs tools or needing networkx
2f8dfd1
for t in pingAll.py trashroutes \
2f8dfd1
         getLinks ip6topk pktoip6 cjdnsa searches findnodes; do
2f8dfd1
  ln -sf %{_libexecdir}/cjdns/python/$t %{buildroot}%{_bindir}
2f8dfd1
done
2f8dfd1
2f8dfd1
# symlink python tools that pull in networkx for graphing
2f8dfd1
for t in drawgraph dumpgraph graphStats; do
2f8dfd1
  ln -sf %{_libexecdir}/cjdns/python/$t %{buildroot}%{_bindir}
2f8dfd1
done
2f8dfd1
2f8dfd1
%endif
2f8dfd1
2f8dfd1
%files
2f8dfd1
%{!?_licensedir:%global license %%doc}
2f8dfd1
%license LICENSE
2f8dfd1
%doc README.md README_*.md HACKING.md 
2f8dfd1
%attr(0100,root,root) /var/empty/cjdns
2f8dfd1
%attr(0755,root,root) %{_sbindir}/cjdroute
2f8dfd1
%ghost %attr(0600,root,root) %config(missingok,noreplace) %{_sysconfdir}/cjdroute.conf
2f8dfd1
%dir %{_libexecdir}/cjdns
2f8dfd1
%if %{use_upstart}
2f8dfd1
%{_sysconfdir}/init/*
2f8dfd1
%endif
2f8dfd1
%if %{use_systemd}
2f8dfd1
%{_unitdir}/*
2f8dfd1
%endif
2f8dfd1
%{_libexecdir}/cjdns/randombytes
2f8dfd1
%{_libexecdir}/cjdns/publictoip6
2f8dfd1
%{_libexecdir}/cjdns/privatetopublic
2f8dfd1
%{_libexecdir}/cjdns/sybilsim
2f8dfd1
%{_libexecdir}/cjdns/makekeys
2f8dfd1
%{_bindir}/randombytes
2f8dfd1
%{_bindir}/publictoip6
2f8dfd1
%{_bindir}/makekeys
2f8dfd1
%{_bindir}/cjdns-online
2f8dfd1
%{_mandir}/man1/*
2f8dfd1
%{_mandir}/man5/*
2f8dfd1
%{_mandir}/man8/*
4b865ac
%{_mandir}/man1/cjdns-online.1.gz
4b865ac
%{_mandir}/man1/cjdroute.1.gz
4b865ac
%{_mandir}/man1/makekeys.1.gz
4b865ac
%{_mandir}/man1/publictoip6.1.gz
4b865ac
%{_mandir}/man1/randombytes.1.gz
2f8dfd1
2f8dfd1
%pre
2f8dfd1
getent group cjdns > /dev/null || groupadd -r cjdns
2f8dfd1
getent passwd cjdns > /dev/null || /usr/sbin/useradd -g cjdns \
2f8dfd1
        -c "End to end encrypted IPv6 mesh" \
2f8dfd1
        -r -d %{_libexecdir}/cjdns -s /sbin/nologin cjdns
2f8dfd1
exit 0
2f8dfd1
2f8dfd1
%if %{use_systemd}
2f8dfd1
2f8dfd1
%post
2f8dfd1
%systemd_post cjdns.service
2f8dfd1
2f8dfd1
%postun
2f8dfd1
%systemd_postun_with_restart cjdns.service
2f8dfd1
2f8dfd1
%preun
2f8dfd1
%systemd_preun cjdns.service
2f8dfd1
2f8dfd1
%endif
2f8dfd1
2f8dfd1
%if %{use_upstart}
2f8dfd1
2f8dfd1
%preun
2f8dfd1
if [ "$1" -eq 0 ]; then
2f8dfd1
  /sbin/initctl stop cjdns
2f8dfd1
fi
2f8dfd1
2f8dfd1
%postun
2f8dfd1
if [ "$1" -ge 1 ]; then
2f8dfd1
  /sbin/initctl restart cjdns
2f8dfd1
fi
2f8dfd1
2f8dfd1
%endif
2f8dfd1
2f8dfd1
%files selinux
2f8dfd1
%doc cjdns.te cjdns.fc 
2f8dfd1
%{_datadir}/selinux/targeted/*
2f8dfd1
2f8dfd1
%post selinux
2f8dfd1
/usr/sbin/semodule -s targeted -i %{_datadir}/selinux/targeted/cjdns.pp \
2f8dfd1
        &>/dev/null || :
2f8dfd1
%{__restorecon} %{_sbindir}/cjdroute
2f8dfd1
2f8dfd1
%postun selinux
2f8dfd1
if [ $1 -eq 0 ] ; then
2f8dfd1
/usr/sbin/semodule -s targeted -r cjdns &> /dev/null || :
2f8dfd1
fi
2f8dfd1
2f8dfd1
%files tools
2f8dfd1
%if %{with_admin}
2f8dfd1
%{_libexecdir}/cjdns/admin
2f8dfd1
%endif
2f8dfd1
%{_libexecdir}/cjdns/tools
2f8dfd1
%{_libexecdir}/cjdns/node_build
2f8dfd1
%{_libexecdir}/cjdns/node_modules
2f8dfd1
%{_bindir}/peerStats
2f8dfd1
%{_bindir}/sessionStats
2f8dfd1
%{_bindir}/cjdnslog
2f8dfd1
%{_bindir}/dumpRumorMill
2f8dfd1
%{_bindir}/dumpLinks
2f8dfd1
%{_bindir}/pathfinderTree
2f8dfd1
%{_bindir}/dumptable
2f8dfd1
%{_bindir}/pingAll
2f8dfd1
%{_bindir}/search
4b865ac
%{_bindir}/cjdns-traceroute
4b865ac
%{_mandir}/man1/cjdns-traceroute.1.gz
c21bf3f
%{_mandir}/man1/sessionStats.1.gz
2f8dfd1
2f8dfd1
%files python
2f8dfd1
%doc contrib/python/README.md contrib/python/cjdns-dynamic.conf
2f8dfd1
%license contrib/python/cjdnsadmin/bencode.py.LICENSE.txt
2f8dfd1
%dir %{_libexecdir}/cjdns/python
2f8dfd1
%{_libexecdir}/cjdns/python/cexec
2f8dfd1
%{_libexecdir}/cjdns/python/cjdnsadminmaker.py*
2f8dfd1
%{_libexecdir}/cjdns/python/cjdnslog
2f8dfd1
%{_libexecdir}/cjdns/python/dumptable
2f8dfd1
%{_libexecdir}/cjdns/python/dynamicEndpoints.py*
2f8dfd1
%{_libexecdir}/cjdns/python/peerStats
2f8dfd1
%{_libexecdir}/cjdns/python/sessionStats
2f8dfd1
%{_libexecdir}/cjdns/python/cjdnsadmin
2f8dfd1
%{_libexecdir}/cjdns/python/pingAll.py*
2f8dfd1
%{_libexecdir}/cjdns/python/trashroutes
2f8dfd1
%{_libexecdir}/cjdns/python/getLinks
2f8dfd1
%{_libexecdir}/cjdns/python/ip6topk
2f8dfd1
%{_libexecdir}/cjdns/python/pktoip6
2f8dfd1
%{_libexecdir}/cjdns/python/cjdnsa
2f8dfd1
%{_libexecdir}/cjdns/python/searches
2f8dfd1
%{_libexecdir}/cjdns/python/findnodes
2f8dfd1
%{_bindir}/pingAll.py
2f8dfd1
%{_bindir}/trashroutes
2f8dfd1
%{_bindir}/getLinks
2f8dfd1
%{_bindir}/ip6topk
2f8dfd1
%{_bindir}/pktoip6
2f8dfd1
%{_bindir}/cjdnsa
2f8dfd1
%{_bindir}/searches
2f8dfd1
%{_bindir}/findnodes
2f8dfd1
2f8dfd1
%files graph
2f8dfd1
%{_libexecdir}/cjdns/python/drawgraph
2f8dfd1
%{_libexecdir}/cjdns/python/dumpgraph
2f8dfd1
%{_libexecdir}/cjdns/python/graphStats
2f8dfd1
%{_bindir}/drawgraph
2f8dfd1
%{_bindir}/dumpgraph
2f8dfd1
%{_bindir}/graphStats
2f8dfd1
2f8dfd1
%changelog
9d70cba
* Tue Apr 18 2016 Stuart D. Gathman <stuart@gathman.org> 17.3-12
9d70cba
- Run modprobe only if /dev/tun not present - fixes running on openVZ
e380438
- Select nacl/libsodium with a macro
e380438
- Switch back to nacl for platforms that support it
9d70cba
22e768c
* Tue Apr  5 2016 Stuart D. Gathman <stuart@gathman.org> 17.3-11
4b865ac
- Patch some bugs in traceroute and symlink to /usr/bin/cjdns-traceroute
c21bf3f
- man page for cjdns-traceroute, sessionStats
4b865ac
- switch to libsodium instead of nacl
4b865ac
2f8dfd1
* Thu Mar 10 2016 Stuart D. Gathman <stuart@gathman.org> 17.3-10
2f8dfd1
- Mark nodejs and selinux noarch
2f8dfd1
- Remove _isa from noarch subpackages.
2f8dfd1
2f8dfd1
* Thu Mar 10 2016 Stuart D. Gathman <stuart@gathman.org> 17.3-9
2f8dfd1
- Strip /8 from IPs printed by cjdns-online
2f8dfd1
- Add GPL3+ to cjdns-online
2f8dfd1
- ghost /etc/cjdroute.conf
2f8dfd1
- Include _isa formula in subpackage requires.
2f8dfd1
2f8dfd1
* Tue Mar  8 2016 Stuart D. Gathman <stuart@gathman.org> 17.3-8
2f8dfd1
- Add release to main package dependencies
2f8dfd1
- More man pages
2f8dfd1
- Restore missing cjdns-resume.service
2f8dfd1
- Add empty config to be owned by package
2f8dfd1
2f8dfd1
* Tue Mar  1 2016 Stuart D. Gathman <stuart@gathman.org> 17.3-7
2f8dfd1
- Add explicit systemd dependency
2f8dfd1
- Add selinux-policy-targeted dependency
2f8dfd1
- Add version to main package dependencies
2f8dfd1
- Remove use of #!/usr/bin/env in nodejs tools
2f8dfd1
- Change all top level define to global
2f8dfd1
- Remove workaround for missing -fPIC on libnacl for X86_64 on f22.
2f8dfd1
2f8dfd1
* Mon Feb 29 2016 Stuart D. Gathman <stuart@gathman.org> 17.3-6
2f8dfd1
- Man pages
2f8dfd1
- Move /usr/lib/cjdns to /usr/libexec/cjdns
2f8dfd1
- Move all C tools to main package, mark (nodejs) tools noarch
2f8dfd1
2f8dfd1
* Wed Feb 24 2016 Stuart D. Gathman <stuart@gathman.org> 17.3-5
2f8dfd1
- Add use_embedded option
2f8dfd1
- Reorganize with use_systemd, use_upstart
2f8dfd1
- Set __restorecon only if not defined
2f8dfd1
- Use install instead of cp to set file modes
2f8dfd1
- Move randombytes,publictoip6 and /usr/lib/cjdns to main package
2f8dfd1
- Fix bad #! lines in contrib/python
2f8dfd1
- Patch util/Security.c to call setgroups(0,...) before setuid().
2f8dfd1
2f8dfd1
* Fri Feb 12 2016 Stuart D. Gathman <stuart@gathman.org> 17.3-4
2f8dfd1
- Add Fedora README
2f8dfd1
- No libnacl on EL7 or EPEL7
2f8dfd1
2f8dfd1
* Tue Feb  2 2016 Stuart D. Gathman <stuart@gathman.org> 17.3-3
2f8dfd1
- Add node_modules to tools
2f8dfd1
- Add #pragmas to ignore bogus warnings from gcc6
2f8dfd1
- Fix shift of signed int
2f8dfd1
2f8dfd1
* Mon Feb  1 2016 Stuart D. Gathman <stuart@gathman.org> 17.3-2
2f8dfd1
- Fix extra line in updated sbin patch
2f8dfd1
2f8dfd1
* Mon Feb  1 2016 Stuart D. Gathman <stuart@gathman.org> 17.3-1
2f8dfd1
- New upstream release
2f8dfd1
- Add cjdns-resume.service to restart cjdns on resume from sleep
2f8dfd1
2f8dfd1
* Tue Jan 19 2016 Stuart D. Gathman <stuart@gathman.org> 17.2-1
2f8dfd1
- New upstream release
2f8dfd1
2f8dfd1
* Sat Nov 07 2015 Stuart D. Gathman <stuart@gathman.org> 17.1-3
2f8dfd1
- remove defattr
2f8dfd1
- TODO: generate default config at install time, not first start
2f8dfd1
2f8dfd1
* Wed Nov 04 2015 Stuart D. Gathman <stuart@gathman.org> 17.1-2
2f8dfd1
- use dynamic nacl library backported from rawhide
2f8dfd1
2f8dfd1
* Tue Nov 03 2015 Stuart D. Gathman <stuart@gathman.org> 17.1-1
2f8dfd1
- update to new protocol version
2f8dfd1
2f8dfd1
* Tue Oct 27 2015 Stuart D. Gathman <stuart@gathman.org> 16.3-2
2f8dfd1
- move graphing tools to graph subpackage: networkx has a lot of dependencies.
2f8dfd1
- use embedded nacl only for i686 (which compiles it with -fPIC)
2f8dfd1
2f8dfd1
* Fri Oct 16 2015 Stuart D. Gathman <stuart@gathman.org> 16.3-1
2f8dfd1
- Allow hostname lookup in selinux policy
2f8dfd1
- python tools subpackage
2f8dfd1
2f8dfd1
* Sun Oct  4 2015 Stuart D. Gathman <stuart@gathman.org> 16.0-6
2f8dfd1
- restorecon after selinux install to initialize cjdroute context
2f8dfd1
- remove module_request (to load tun driver) from selinux policy
2f8dfd1
- make init scripts load tun driver
2f8dfd1
2f8dfd1
* Sun Sep 27 2015 Stuart D. Gathman <stuart@gathman.org> 16.0-5
2f8dfd1
- Restart cjdroute on update, stop on uninstall
2f8dfd1
- symlink selected tools to bin
2f8dfd1
- use /var/empty/cjdns for chroot
2f8dfd1
- patch genconf to change chroot and setuser
2f8dfd1
2f8dfd1
* Wed Sep 23 2015 Stuart D. Gathman <stuart@gathman.org> 16.0-4
2f8dfd1
- Remove doc subpackage - only a meg of docs, and protocol is experimental.
2f8dfd1
- Fix for RLIMIT_NPROC - setuid bug.
2f8dfd1
- Add setgid to Security.c
2f8dfd1
- add contrib/nodejs so tools work
2f8dfd1
2f8dfd1
* Wed Sep 23 2015 Stuart D. Gathman <stuart@gathman.org> 16.0-3
2f8dfd1
- Add selinux, doc and tools subpackages
2f8dfd1
- Support EL6
2f8dfd1
2f8dfd1
* Mon Sep 21 2015 Stuart D. Gathman <stuart@gathman.org> 16.0-2
2f8dfd1
- nodejs not a runtime dependency of main package
2f8dfd1
- move binaries to /usr/bin (good idea?)
2f8dfd1
2f8dfd1
* Mon Sep 21 2015 Stuart D. Gathman <stuart@gathman.org> 16.0-1
2f8dfd1
- Initial RPM