Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 474630 - net-p2p/cjdns - Encrypted networking for regular people
Summary: net-p2p/cjdns - Encrypted networking for regular people
Status: UNCONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal enhancement with 4 votes (vote)
Assignee: Default Assignee for New Packages
URL: https://gitweb.gentoo.org/user/emery....
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-06-24 18:38 UTC by Emery Hemingway
Modified: 2023-12-28 08:35 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
cjdns-9999.ebuild (cjdns-9999.ebuild,2.26 KB, text/plain)
2013-06-24 18:41 UTC, Emery Hemingway
Details
cjdns.runscript (cjdns.runscript,693 bytes, text/plain)
2013-06-24 18:44 UTC, Emery Hemingway
Details
cjdns-9999.ebuild (cjdns-9999.ebuild,2.26 KB, text/plain)
2013-06-25 14:38 UTC, Emery Hemingway
Details
cjdns.runscript (cjdns.runscript,659 bytes, text/plain)
2013-06-25 14:39 UTC, Emery Hemingway
Details
cjdns.runscript (cjdns.runscript,870 bytes, text/plain)
2013-07-03 20:34 UTC, Emery Hemingway
Details
cjdns-20130628.ebuild (cjdns-20130628.ebuild,2.56 KB, text/plain)
2013-07-03 23:42 UTC, Emery Hemingway
Details
FindNACL.cmake-20130628.diff (FindNACL.cmake-20130628.diff,3.32 KB, patch)
2013-07-03 23:44 UTC, Emery Hemingway
Details | Diff
cjdns-20130728.ebuild (cjdns-20130728.ebuild,3.23 KB, text/plain)
2013-07-30 22:07 UTC, Emery Hemingway
Details
FindLibuv.cmake-20130728.diff (FindLibuv.cmake-20130728.diff,410 bytes, patch)
2013-07-30 22:09 UTC, Emery Hemingway
Details | Diff
Findlibsodium.cmake-20130728.diff (Findlibsodium.cmake-20130728.diff,3.72 KB, patch)
2013-07-30 22:09 UTC, Emery Hemingway
Details | Diff
cjdns.runscript (cjdns.runscript,870 bytes, text/plain)
2013-07-30 22:10 UTC, Emery Hemingway
Details
FindNaCl.cmake-20130728.diff (FindNaCl.cmake-20130728.diff,592 bytes, patch)
2013-07-30 22:11 UTC, Emery Hemingway
Details | Diff
cjdns-20140303.ebuild (cjdns-20140303.ebuild,2.17 KB, text/plain)
2014-04-19 14:52 UTC, Emery Hemingway
Details
absolute-unit.patch (absolute-unit.patch,400 bytes, patch)
2014-04-19 14:53 UTC, Emery Hemingway
Details | Diff
cjdns-17.1.ebuild (cjdns-17.1.ebuild,2.06 KB, text/plain)
2016-01-05 13:35 UTC, Emery Hemingway
Details
cjdns.runscript (cjdns.runscript,860 bytes, text/plain)
2016-01-05 13:35 UTC, Emery Hemingway
Details
cjdns-17.1.ebuild (cjdns-17.1.ebuild,2.06 KB, text/plain)
2016-01-05 13:36 UTC, Emery Hemingway
Details
cjdns-18.ebuild (cjdns-18.ebuild,2.85 KB, text/plain)
2016-12-15 07:34 UTC, Alex
Details
cjdns-20.ebuild (cjdns-20.ebuild,2.95 KB, text/plain)
2017-08-01 14:13 UTC, Sergey Popov
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Emery Hemingway 2013-06-24 18:38:31 UTC
CJDNS is a userspace daemon presenting a TUN device that implements an end-to-end authenticated and ecrypted IPv6 network, running natively over ethernet, or as an overlay over UDP.

To quote the README:
Cjdns implements an encrypted IPv6 network using public key cryptography for address allocation and a distributed hash table for routing. This provides near zero-configuration networking without many of the security and robustness issues that regular IPv4 and IPv6 networks have.


Reproducible: Always
Comment 1 Emery Hemingway 2013-06-24 18:41:07 UTC
Created attachment 351826 [details]
cjdns-9999.ebuild

CJDNS is currently without any releases, so a live ebuild or an ebuild pegged to a revision must be used.
Comment 2 Emery Hemingway 2013-06-24 18:44:09 UTC
Created attachment 351828 [details]
cjdns.runscript
Comment 3 Jeroen Roovers (RETIRED) gentoo-dev 2013-06-25 13:07:12 UTC
Um, what's going on here?

init.d script: A routing engine designed for security, scalability, speed and ease of use
ebuild: Distributed routing engine and TUN interface

HOMEPAGE: Encrypted networking for regular people
Comment 4 Emery Hemingway 2013-06-25 14:30:57 UTC
(In reply to Jeroen Roovers from comment #3)
> Um, what's going on here?
> 
> init.d script: A routing engine designed for security, scalability, speed
> and ease of use
> ebuild: Distributed routing engine and TUN interface
> 
> HOMEPAGE: Encrypted networking for regular people

Sorry, the init.d script description came straight from the upstream systemd service and I think I came up with the ebuild description a while back.
Comment 5 Emery Hemingway 2013-06-25 14:38:39 UTC
Created attachment 351918 [details]
cjdns-9999.ebuild

normalized description
Comment 6 Emery Hemingway 2013-06-25 14:39:20 UTC
Created attachment 351920 [details]
cjdns.runscript

normalized description
Comment 7 Emery Hemingway 2013-07-03 20:34:07 UTC
Created attachment 352552 [details]
cjdns.runscript

Attempts to modprobe TUN if /dev/net/tun does not exist.
Comment 8 Emery Hemingway 2013-07-03 23:42:51 UTC
Created attachment 352562 [details]
cjdns-20130628.ebuild

PIE excutables depend on hardened USE flag.
Explicitly uses external libNaCL.
Git version properly cooked in.
Comment 9 Emery Hemingway 2013-07-03 23:44:10 UTC
Created attachment 352564 [details, diff]
FindNACL.cmake-20130628.diff

Patch to make CMake ignorant of bundled libNaCL.
Comment 10 Emery Hemingway 2013-07-03 23:44:52 UTC
BTW, this is all in the emery overy.
Comment 11 Emery Hemingway 2013-07-30 22:07:49 UTC
Created attachment 354670 [details]
cjdns-20130728.ebuild
Comment 12 Emery Hemingway 2013-07-30 22:09:16 UTC
Created attachment 354672 [details, diff]
FindLibuv.cmake-20130728.diff
Comment 13 Emery Hemingway 2013-07-30 22:09:47 UTC
Created attachment 354674 [details, diff]
Findlibsodium.cmake-20130728.diff
Comment 14 Emery Hemingway 2013-07-30 22:10:12 UTC
Created attachment 354676 [details]
cjdns.runscript
Comment 15 Emery Hemingway 2013-07-30 22:11:42 UTC
Created attachment 354678 [details, diff]
FindNaCl.cmake-20130728.diff
Comment 16 Julian Ospald 2014-04-19 11:54:30 UTC
I can proxy-maint it, but I don't want maintain it myself.
Comment 17 Julian Ospald 2014-04-19 11:58:01 UTC
also, why is there no proper release

git-2 in conjunction with a non-live ebuild is a no-go anyway... so either we do this boring timestamp thing or tell upstream to do... well, releases
Comment 18 Julian Ospald 2014-04-19 12:03:11 UTC
(In reply to Emery Hemingway from comment #12)
> Created attachment 354672 [details, diff] [details, diff]
> FindLibuv.cmake-20130728.diff

libuv has a pkgconfig file, use that
Comment 19 Julian Ospald 2014-04-19 12:04:10 UTC
(In reply to Emery Hemingway from comment #13)
> Created attachment 354674 [details, diff] [details, diff]
> Findlibsodium.cmake-20130728.diff

libsodium has a pkg-config file, use that
Comment 20 Julian Ospald 2014-04-19 12:05:40 UTC
(In reply to Emery Hemingway from comment #14)
> Created attachment 354676 [details]
> cjdns.runscript

looks a bit raw. how do i stop the service, why not use start-stop-daemon?
Comment 21 Julian Ospald 2014-04-19 12:14:51 UTC
* update the header
* as said earlier... no git-2 in non-live ebuilds, make a snapshto or get upstream to do actual releases
* keywords are not in alphabetical order
* REQUIRED_USE was meant for libraries to not break reverse deps, not to express general use-flag constraints. These can be expressed in metadata.xml and warnings inside the ebuild. Pick something sane if the user configured use flags don't make sense
* why no RDEPEND? do we build everything static? that sucks
* the compiler check in src_prepare will probably failr hard with non-gcc compilers
* use-flag dependant patches are bad (except for stuff like vanilla use flag)... so apply them unconditionally (if that's not possible, then the patch is not good)
* does the toolchain stuff in src_configure work with non-gcc compilers?
* "cd" in src_test needs a "|| die"
* use ${FILESDIR} instead of $FILESDIR
* mv in src_install needs a "|| die"... but will break running src_install multiple times, so you probably want "newsbin"
* to pkg_postinst... I'm not sure if "|| die" has been made to work with subshells... also, it is debatable if it's a good thing to die in pkg_postinst at all
Comment 22 Emery Hemingway 2014-04-19 14:52:41 UTC
Created attachment 375298 [details]
cjdns-20140303.ebuild

This updated ebuild corrects or avoids the issues mentioned above (but is not free of new ones).

The build system is now written in NodeJs, and yes, that is as awful as it sounds.

Cjdns comes with bundled copies of NaCl and Libuv that are linked in static, this is a problem when cross-compiling NaCl, which is why there were patches to use the system copy, but fixing that now also requires fixing the build system.

If someone else would like to maintain this, that would be great, as I'm moving over to Nixos.
Comment 23 Emery Hemingway 2014-04-19 14:53:54 UTC
Created attachment 375300 [details, diff]
absolute-unit.patch

This makes the systemd unit execute an absolute rather than relative path.
Comment 24 Julian Ospald 2014-04-19 15:05:17 UTC
(In reply to Emery Hemingway from comment #22)
> Created attachment 375298345 [details346]
> cjdns-20140303.ebuild
> 

to python-single-r1:
* you are missing a call to python-single-r1_pkg_setup which means you are actually using whatever python version is eselected...
* don't use the dev-lyng/python:2.7 dep-string directly, use ${PYTHON_DEPS}

* "append-flags -Wno-error" that is not always reliable... better remove the flag from the build system
Comment 25 Julian Ospald 2014-04-19 16:35:47 UTC
oh, and

REQUIRED_USE="${PYTHON_REQUIRED_USE}"
Comment 26 neko259 2015-09-16 14:56:23 UTC
There are stable releases now: https://github.com/cjdelisle/cjdns/releases

So you can change versions from date-based to the ones from github release.
Comment 27 Emery Hemingway 2016-01-05 13:35:04 UTC
Created attachment 422000 [details]
cjdns-17.1.ebuild
Comment 28 Emery Hemingway 2016-01-05 13:35:38 UTC
Created attachment 422002 [details]
cjdns.runscript
Comment 29 Emery Hemingway 2016-01-05 13:36:39 UTC
Created attachment 422004 [details]
cjdns-17.1.ebuild
Comment 30 Emery Hemingway 2016-01-05 13:38:42 UTC
I've had this in my personal overay since sometime in 2012 and I don't have time to maintain it anymore. There are other people who use it more than I, so can we please get this in the main tree?
Comment 31 Alex 2016-12-15 07:34:07 UTC
Hi, I bumped ebuild to v18 and added use flag "tools" to install python contrib tools too.

I can try maintaining this package, not that I see lots of upstream activity recently.
Comment 32 Alex 2016-12-15 07:34:36 UTC
Created attachment 456280 [details]
cjdns-18.ebuild
Comment 33 Sergey Popov gentoo-dev 2017-08-01 14:13:23 UTC
Created attachment 487542 [details]
cjdns-20.ebuild

Updated ebuild
Comment 34 CocolinoFan 2023-12-28 08:35:51 UTC
Original cjdns draft wiki page no longer available(https://gitweb.gentoo.org/user/emery.git/tree/net-p2p/cjdns)
A new one was made by Maffblaster can be found here: https://wiki.gentoo.org/wiki/User:Maffblaster/Drafts/cjdns