diff --git a/.gitignore b/.gitignore index 94860c6..76bfabc 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,5 @@ /cjdns-v20.6.tar.gz /cjdns-v20.7.tar.gz /cjdns-v21.tar.gz +/python-cjdns-0.2.tar.gz +/cjdns-v21.1.tar.gz diff --git a/cjdns.32bit.patch b/cjdns.32bit.patch deleted file mode 100644 index 6696c84..0000000 --- a/cjdns.32bit.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -up ./memory/Allocator.c.32bit ./memory/Allocator.c ---- ./memory/Allocator.c.32bit 2020-09-29 14:10:32.115169486 -0400 -+++ ./memory/Allocator.c 2020-09-29 14:16:54.682448839 -0400 -@@ -59,8 +59,8 @@ static void unroll(struct Allocator_pvt* - writeUnroller(&childUnroller); - fprintf(stderr, "%s:%ld [%lu] bytes at [0x%lx]\n", - allocation->fileName, -- allocation->lineNum, -- allocation->pub.size, -+ (long)allocation->lineNum, -+ (unsigned long)allocation->pub.size, - (long)(uintptr_t)allocation); - allocation = allocation->next; - } diff --git a/cjdns.el6.patch b/cjdns.el6.patch deleted file mode 100644 index a71e758..0000000 --- a/cjdns.el6.patch +++ /dev/null @@ -1,41 +0,0 @@ -diff -up ./contrib/selinux/cjdns.te.el6 ./contrib/selinux/cjdns.te ---- ./contrib/selinux/cjdns.te.el6 2016-02-25 20:26:20.635992411 -0500 -+++ ./contrib/selinux/cjdns.te 2016-02-25 20:28:05.804135692 -0500 -@@ -5,9 +5,7 @@ require { - type tun_tap_device_t; - type node_t; - type port_t; -- type unreserved_port_t; - type tmp_t; -- type passwd_file_t; - type net_conf_t; - } - -@@ -20,15 +18,12 @@ init_daemon_domain(cjdns_t,cjdns_exec_t) - allow cjdns_t cjdns_exec_t:file { execute_no_trans execmod }; - allow cjdns_t self:capability { net_admin net_raw setuid setgid sys_chroot }; - allow cjdns_t self:process { signal getcap setrlimit setcap }; --# translate username to uid --allow cjdns_t passwd_file_t:file { read getattr open }; - - # translate host names - allow cjdns_t net_conf_t:file { read getattr open }; - # allow network access - allow cjdns_t node_t:udp_socket node_bind; - allow cjdns_t port_t:udp_socket name_bind; --allow cjdns_t unreserved_port_t:udp_socket name_bind; - allow cjdns_t self:netlink_route_socket { bind create getattr nlmsg_read read write nlmsg_write }; - allow cjdns_t self:packet_socket { bind create ioctl read write }; - allow cjdns_t self:tun_socket create; -diff -up ./node_build/FindPython2.js.el6 ./node_build/FindPython2.js ---- ./node_build/FindPython2.js.el6 2016-01-27 03:07:49.000000000 -0500 -+++ ./node_build/FindPython2.js 2016-02-25 20:26:20.636992421 -0500 -@@ -21,7 +21,7 @@ var PYTHONS = ["python", "python2", "pyt - var SCRIPT = [ - 'import sys;', - 'print(sys.version_info);', -- 'exit(sys.version_info[0] != 2 or sys.version_info[1] < 7);' -+ 'exit(sys.version_info[0] != 2 or sys.version_info[1] < 6);' - ].join('\n'); - - var find = module.exports.find = function (tempFile, callback) { diff --git a/cjdns.sign.patch b/cjdns.sign.patch index c86619d..c253044 100644 --- a/cjdns.sign.patch +++ b/cjdns.sign.patch @@ -1,40 +1,3 @@ -diff -up ./crypto/CryptoAuth.c.sign ./crypto/CryptoAuth.c ---- ./crypto/CryptoAuth.c.sign 2020-09-18 14:24:44.000000000 -0400 -+++ ./crypto/CryptoAuth.c 2020-09-29 10:32:39.040375439 -0400 -@@ -85,8 +85,10 @@ static inline void getSharedSecret(uint8 - uint8_t passwordHash[32], - struct Log* logger) - { -+ int keygenfailed; - if (passwordHash == NULL) { -- crypto_box_curve25519xsalsa20poly1305_beforenm(outputSecret, herPublicKey, myPrivateKey); -+ keygenfailed = crypto_box_curve25519xsalsa20poly1305_beforenm( -+ outputSecret, herPublicKey, myPrivateKey); - } else { - union { - struct { -@@ -96,7 +98,8 @@ static inline void getSharedSecret(uint8 - uint8_t bytes[64]; - } buff; - -- crypto_scalarmult_curve25519(buff.components.key, myPrivateKey, herPublicKey); -+ keygenfailed = crypto_scalarmult_curve25519( -+ buff.components.key, myPrivateKey, herPublicKey); - Bits_memcpy(buff.components.passwd, passwordHash, 32); - crypto_hash_sha256(outputSecret, buff.bytes, 64); - } -@@ -114,8 +117,9 @@ static inline void getSharedSecret(uint8 - " myPublicKey=%s\n" - " herPublicKey=%s\n" - " passwordHash=%s\n" -- " outputSecret=%s\n", -- myPublicKeyHex, herPublicKeyHex, passwordHashHex, outputSecretHex); -+ " outputSecret=%s\n" -+ " keygenfailed=%d\n", -+ myPublicKeyHex, herPublicKeyHex, passwordHashHex, outputSecretHex,keygenfailed); - } - } - diff -up ./crypto/Sign.c.sign ./crypto/Sign.c --- ./crypto/Sign.c.sign 2020-09-18 14:24:44.000000000 -0400 +++ ./crypto/Sign.c 2020-09-29 10:25:02.503986487 -0400 diff --git a/cjdns.sodium.patch b/cjdns.sodium.patch index 89f60b9..fa8f5c0 100644 --- a/cjdns.sodium.patch +++ b/cjdns.sodium.patch @@ -1,6 +1,6 @@ diff -up ./client/cjdroute2.c.sodium ./client/cjdroute2.c ---- ./client/cjdroute2.c.sodium 2020-09-28 22:33:15.839316844 -0400 -+++ ./client/cjdroute2.c 2020-09-28 22:34:40.219680315 -0400 +--- ./client/cjdroute2.c.sodium 2020-12-16 14:14:51.140783237 -0500 ++++ ./client/cjdroute2.c 2020-12-16 14:14:51.146783327 -0500 @@ -64,6 +64,7 @@ #include #include @@ -9,7 +9,7 @@ diff -up ./client/cjdroute2.c.sodium ./client/cjdroute2.c #define DEFAULT_TUN_DEV "tun0" -@@ -598,6 +599,9 @@ static String* getPipePath(Dict* config, +@@ -597,6 +598,9 @@ static String* getPipePath(Dict* config, int main(int argc, char** argv) { @@ -20,8 +20,8 @@ diff -up ./client/cjdroute2.c.sodium ./client/cjdroute2.c fprintf(stderr, "Log_LEVEL = KEYS, EXPECT TO SEE PRIVATE KEYS IN YOUR LOGS!\n"); #endif diff -up ./contrib/c/makekeys.c.sodium ./contrib/c/makekeys.c ---- ./contrib/c/makekeys.c.sodium 2020-09-18 14:24:44.000000000 -0400 -+++ ./contrib/c/makekeys.c 2020-09-28 22:33:15.853317070 -0400 +--- ./contrib/c/makekeys.c.sodium 2020-10-05 17:46:19.000000000 -0400 ++++ ./contrib/c/makekeys.c 2020-12-16 14:14:51.147783342 -0500 @@ -22,9 +22,13 @@ #include @@ -37,8 +37,8 @@ diff -up ./contrib/c/makekeys.c.sodium ./contrib/c/makekeys.c struct Random* rand = Random_new(alloc, NULL, NULL); diff -up ./contrib/c/mkpasswd.c.sodium ./contrib/c/mkpasswd.c ---- ./contrib/c/mkpasswd.c.sodium 2020-09-18 14:24:44.000000000 -0400 -+++ ./contrib/c/mkpasswd.c 2020-09-28 22:33:15.853317070 -0400 +--- ./contrib/c/mkpasswd.c.sodium 2020-10-05 17:46:19.000000000 -0400 ++++ ./contrib/c/mkpasswd.c 2020-12-16 14:14:51.147783342 -0500 @@ -18,9 +18,13 @@ #include @@ -54,8 +54,8 @@ diff -up ./contrib/c/mkpasswd.c.sodium ./contrib/c/mkpasswd.c struct Random* rand = Random_new(alloc, NULL, NULL); diff -up ./contrib/c/privatetopublic.c.sodium ./contrib/c/privatetopublic.c ---- ./contrib/c/privatetopublic.c.sodium 2020-09-18 14:24:44.000000000 -0400 -+++ ./contrib/c/privatetopublic.c 2020-09-28 22:33:15.853317070 -0400 +--- ./contrib/c/privatetopublic.c.sodium 2020-10-05 17:46:19.000000000 -0400 ++++ ./contrib/c/privatetopublic.c 2020-12-16 14:14:51.147783342 -0500 @@ -23,6 +23,7 @@ #include #include @@ -75,8 +75,8 @@ diff -up ./contrib/c/privatetopublic.c.sodium ./contrib/c/privatetopublic.c Hex_decode(privateKey, 32, privateKeyHexIn, 64); crypto_scalarmult_curve25519_base(address.key, privateKey); diff -up ./contrib/c/publictoip6.c.sodium ./contrib/c/publictoip6.c ---- ./contrib/c/publictoip6.c.sodium 2020-09-18 14:24:44.000000000 -0400 -+++ ./contrib/c/publictoip6.c 2020-09-28 22:33:15.853317070 -0400 +--- ./contrib/c/publictoip6.c.sodium 2020-10-05 17:46:19.000000000 -0400 ++++ ./contrib/c/publictoip6.c 2020-12-16 14:14:51.147783342 -0500 @@ -16,6 +16,7 @@ #include "util/AddrTools.h" #include "util/CString.h" @@ -96,8 +96,8 @@ diff -up ./contrib/c/publictoip6.c.sodium ./contrib/c/publictoip6.c int ret = Key_parse(&key, keyBytes, ip6Bytes); switch (ret) { diff -up ./contrib/c/sybilsim.c.sodium ./contrib/c/sybilsim.c ---- ./contrib/c/sybilsim.c.sodium 2020-09-18 14:24:44.000000000 -0400 -+++ ./contrib/c/sybilsim.c 2020-09-28 22:33:15.853317070 -0400 +--- ./contrib/c/sybilsim.c.sodium 2020-10-05 17:46:19.000000000 -0400 ++++ ./contrib/c/sybilsim.c 2020-12-16 14:14:51.148783357 -0500 @@ -42,6 +42,7 @@ #include "crypto_scalarmult_curve25519.h" @@ -117,8 +117,8 @@ diff -up ./contrib/c/sybilsim.c.sodium ./contrib/c/sybilsim.c struct Allocator* alloc = MallocAllocator_new(1LL<<31); diff -up ./crypto/random/randombytes.c.sodium ./crypto/random/randombytes.c ---- ./crypto/random/randombytes.c.sodium 2020-09-18 14:24:44.000000000 -0400 -+++ ./crypto/random/randombytes.c 2020-09-28 22:33:15.853317070 -0400 +--- ./crypto/random/randombytes.c.sodium 2020-10-05 17:46:19.000000000 -0400 ++++ ./crypto/random/randombytes.c 2020-12-16 14:14:51.148783357 -0500 @@ -17,6 +17,7 @@ #include "memory/MallocAllocator.h" @@ -138,9 +138,9 @@ diff -up ./crypto/random/randombytes.c.sodium ./crypto/random/randombytes.c Random_bytes(rand, str.buff, 4096); out = write(STDOUT_FILENO, str.buff, 4096); diff -up ./node_build/make.js.sodium ./node_build/make.js ---- ./node_build/make.js.sodium 2020-09-18 14:24:44.000000000 -0400 -+++ ./node_build/make.js 2020-09-28 22:33:15.853317070 -0400 -@@ -264,48 +264,8 @@ Builder.configure({ +--- ./node_build/make.js.sodium 2020-10-05 17:46:19.000000000 -0400 ++++ ./node_build/make.js 2020-12-16 14:15:59.646810621 -0500 +@@ -251,49 +251,8 @@ Builder.configure({ }).nThen(function (waitFor) { @@ -157,15 +157,16 @@ diff -up ./node_build/make.js.sodium ./node_build/make.js - var cwd = process.cwd(); - process.chdir(dependencyDir + '/cnacl/'); - +- // $FlowFixMe non-static require - var NaCl = require(process.cwd() + '/node_build/make.js'); - NaCl.build(function (args, callback) { - if (builder.config.systemName !== 'win32') { - args.unshift('-fPIC'); - } - -- args.unshift(builder.config.optimizeLevel, '-fomit-frame-pointer'); +- args.unshift(optimizeLevel, '-fomit-frame-pointer'); - -- if (!/^\-O0$/.test(builder.config.optimizeLevel)) { +- if (!/^\-O0$/.test(optimizeLevel)) { - args.unshift('-D_FORTIFY_SOURCE=2'); - } - @@ -191,7 +192,7 @@ diff -up ./node_build/make.js.sodium ./node_build/make.js }).nThen(function (waitFor) { -@@ -452,7 +412,7 @@ Builder.configure({ +@@ -440,7 +399,7 @@ Builder.configure({ builder.buildExecutable('crypto/random/randombytes.c'); builder.lintFiles(function (fileName, file, callback) { @@ -200,9 +201,16 @@ diff -up ./node_build/make.js.sodium ./node_build/make.js callback('', false); return; } +@@ -471,4 +430,4 @@ Builder.configure({ + console.log('\x1b[1;31mFailed to build cjdns.\x1b[0m'); + process.exit(1); + +-}); +\ No newline at end of file ++}); diff -up ./test/testcjdroute.c.sodium ./test/testcjdroute.c ---- ./test/testcjdroute.c.sodium 2020-09-28 22:33:15.854317087 -0400 -+++ ./test/testcjdroute.c 2020-09-28 22:36:34.386525092 -0400 +--- ./test/testcjdroute.c.sodium 2020-10-05 17:46:19.000000000 -0400 ++++ ./test/testcjdroute.c 2020-12-16 14:14:51.148783357 -0500 @@ -26,6 +26,7 @@ #include #include @@ -211,7 +219,7 @@ diff -up ./test/testcjdroute.c.sodium ./test/testcjdroute.c #ifdef SUBNODE #define testcjdroute_SUBNODE 1 -@@ -272,6 +273,9 @@ static int main2(int argc, char** argv, +@@ -269,6 +270,9 @@ static int main2(int argc, char** argv, int main(int argc, char** argv) { diff --git a/cjdns.spec b/cjdns.spec index 29f4f50..ba5ead4 100644 --- a/cjdns.spec +++ b/cjdns.spec @@ -14,11 +14,7 @@ %bcond_without libsodium # Option to disable SECCOMP: confusing backward logic # Needed to run on openvz and other container systems -%ifarch armv7hl -%bcond_with seccomp -%else %bcond_without seccomp -%endif # Option to use system libuv instead of bundled libuv-0.11.19 %bcond_with libuv # When with_python3 is set, this replaces tools in bin and libexec @@ -56,17 +52,8 @@ %global nacl_lib %{_libdir}/libnacl.so %endif -%if 0%{?rhel} >= 5 && 0%{?rhel} < 7 -%global use_systemd 0 -%else %global use_systemd 1 -%endif - -%if 0%{?rhel} == 6 -%global use_upstart 1 -%else %global use_upstart 0 -%endif %if 0 && 0%{?fedora} > 30 %global use_marked 1 @@ -87,7 +74,7 @@ Name: cjdns # major version is cjdns protocol version: -Version: 21 +Version: 21.1 Release: 2%{?dist} Summary: The privacy-friendly network without borders # cjdns is all GPLv3 except libuv which is MIT and BSD and ISC @@ -102,13 +89,11 @@ Source2: cjdns.service Source3: https://github.com/kapouer/marked-man/archive/0.7.0.tar.gz#/marked-man-0.7.0.tar.gz %endif # Contributed python API hacked for python3 -Source4: python-cjdns-0.1.tar.gz +Source4: python-cjdns-0.2.tar.gz # Add targeted selinux policy Patch0: cjdns.selinux.patch -# Allow python2.6 for build. Python is not used during the build -# process. The python tools allegedly depend on python2.7, but that can -# be in Requires for the subpackage. -Patch1: cjdns.el6.patch +# Patch warnings detected by gcc-11 +Patch2: cjdns.warnings.patch # Fix RLIMIT_NPROC - setuid() bug. In its low priv process, cjdroute calls # # setrlimit(RLIMIT_NPROC, &(struct rlimit){ 0, 0 }) @@ -155,8 +140,6 @@ Patch18: cjdns.libuv.patch Patch20: cjdns.sysctl.patch # gcc-10 no longer allows duplicate globals Patch22: cjdns.gcc10.patch -# Patches for 32-bit builds -Patch23: cjdns.32bit.patch %if %{use_marked} BuildRequires: nodejs, nodejs-marked @@ -282,9 +265,14 @@ Requires: python3-%{name} = %{version}-%{release} Requires: python3-networkx %else Requires: python2-%{name} = %{version}-%{release} +%if 0%{?rhel} == 7 +Requires: python-networkx +Requires: python2-matplotlib +%else Requires: python2-networkx %endif %endif +%endif BuildArch: noarch %description graph @@ -293,9 +281,6 @@ Python peer graph tools for cjdns. %prep %setup -qn cjdns-%{name}-v%{version} %patch0 -b .selinux -%if 0%{?rhel} == 6 -%patch1 -b .el6 -%endif %patch4 -b .genconf %patch5 -b .sbin @@ -353,7 +338,7 @@ sed -i -e '/var PYTHONS =/ s/python3.7/python2.7/' node_build/FindPython.js #patch19 -p1 -b .fuzz #patch20 -p1 -b .sysctl #patch22 -b .gcc10 -%patch23 -b .32bit +%patch2 -b .warn cp %{SOURCE1} README_Fedora.md @@ -370,10 +355,8 @@ find tools -type f | xargs grep -l '^#!\/usr\/bin\/env ' | xargs sed -e '1 s,^#!/usr/bin/env ,#!/usr/bin/,' -i # Fix deprecated Buffer ctor except on EL6 -%if 0%{?rhel} != 6 sed -e '1,$ s/new Buffer/Buffer.from/' -i \ tools/lib/publicToIp6.js tools/lib/cjdnsadmin/cjdnsadmin.js -%endif # Remove unpackaged code with undeclared licenses %if !%{with_admin} @@ -770,6 +753,18 @@ fi %{_bindir}/graphStats %changelog +* Wed Dec 16 2020 Stuart Gathman - 21.1-2 +- Reenable seccomp for armv7hl + +* Wed Dec 16 2020 Stuart Gathman - 21.1-1 +- New upstream release + +* Wed Dec 16 2020 Stuart Gathman - 21-4 +- Support gcc-11, drop el6 support. + +* Fri Nov 27 2020 Stuart Gathman - 21-3 +- New python-cjdns release + * Mon Sep 28 2020 Stuart Gathman - 21-2 - Enable libsodium diff --git a/cjdns.warnings.patch b/cjdns.warnings.patch index d470667..afd59b3 100644 --- a/cjdns.warnings.patch +++ b/cjdns.warnings.patch @@ -1,109 +1,88 @@ -diff -up ./crypto/CryptoAuth.c.warnings ./crypto/CryptoAuth.c ---- ./crypto/CryptoAuth.c.warnings 2018-01-30 19:04:59.000000000 -0500 -+++ ./crypto/CryptoAuth.c 2018-03-14 14:38:20.689851389 -0400 -@@ -85,6 +85,8 @@ static inline void getSharedSecret(uint8 - uint8_t passwordHash[32], - struct Log* logger) +diff -up ./tunnel/IpTunnel.c.warn ./tunnel/IpTunnel.c +--- ./tunnel/IpTunnel.c.warn 2020-09-18 14:24:44.000000000 -0400 ++++ ./tunnel/IpTunnel.c 2020-12-16 12:41:53.284105519 -0500 +@@ -622,7 +622,7 @@ static Iface_DEFUN incomingControlMessag + Endian_bigEndianToHost32(x); \ + })) + +-static bool prefixMatches6(uint8_t* addressA, uint8_t* refAddr, uint8_t prefixLen) ++static bool prefixMatches6(const uint8_t* addressA, const uint8_t* refAddr, uint8_t prefixLen) { -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wunused-result" - if (passwordHash == NULL) { - crypto_box_curve25519xsalsa20poly1305_beforenm(outputSecret, herPublicKey, myPrivateKey); - } else { -@@ -100,6 +102,7 @@ static inline void getSharedSecret(uint8 - Bits_memcpy(buff.components.passwd, passwordHash, 32); - crypto_hash_sha256(outputSecret, buff.bytes, 64); + if (!prefixLen) { + Assert_true(Bits_isZero(refAddr, 16)); +@@ -661,7 +661,7 @@ static bool isValidAddress4(uint8_t sour + return prefixMatches4(compareAddr, conn->connectionIp4, conn->connectionIp4Alloc); + } + +-static bool isValidAddress6(uint8_t sourceAndDestIp6[32], ++static bool isValidAddress6(const uint8_t* sourceAndDestIp6, + bool isFromTun, + struct IpTunnel_Connection* conn) + { +@@ -669,7 +669,7 @@ static bool isValidAddress6(uint8_t sour + || AddressCalc_validAddress(&sourceAndDestIp6[16])) { + return false; } -+#pragma GCC diagnostic pop - if (Defined(Log_KEYS)) { - uint8_t myPublicKeyHex[65]; - printHexPubKey(myPublicKeyHex, myPrivateKey); -diff -up ./dht/CJDHTConstants.h.warnings ./dht/CJDHTConstants.h ---- ./dht/CJDHTConstants.h.warnings 2018-01-30 19:04:59.000000000 -0500 -+++ ./dht/CJDHTConstants.h 2018-03-14 14:38:20.689851389 -0400 -@@ -17,7 +17,9 @@ - - #include "benc/String.h" - #include "util/version/Version.h" -- -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wpragmas" -+#pragma GCC diagnostic ignored "-Wunused-const-variable" - // Signifying that this message is a query and defining the query type. - static String* const CJDHTConstants_QUERY = String_CONST_SO("q"); - -@@ -61,5 +63,5 @@ static String* const CJDHTConstants_ENC_ - // Encoding scheme and index for the closest peer along the path. - static String* const CJDHTConstants_PEER_ENC_SCHEME = String_CONST_SO("pes"); - static String* const CJDHTConstants_PEER_ENC_INDEX = String_CONST_SO("pei"); -- -+#pragma GCC diagnostic pop - #endif -diff -up ./node_build/dependencies/libuv/test/test-getsockname.c.warnings ./node_build/dependencies/libuv/test/test-getsockname.c ---- ./node_build/dependencies/libuv/test/test-getsockname.c.warnings 2018-01-30 19:04:59.000000000 -0500 -+++ ./node_build/dependencies/libuv/test/test-getsockname.c 2018-03-14 14:38:20.690851402 -0400 -@@ -18,7 +18,7 @@ - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. +- uint8_t* compareAddr = (isFromTun) ++ const uint8_t* compareAddr = (isFromTun) + ? ((conn->isOutgoing) ? sourceAndDestIp6 : &sourceAndDestIp6[16]) + : ((conn->isOutgoing) ? &sourceAndDestIp6[16] : sourceAndDestIp6); + return prefixMatches6(compareAddr, conn->connectionIp6, conn->connectionIp6Alloc); +diff -up ./util/AddrTools.c.warn ./util/AddrTools.c +--- ./util/AddrTools.c.warn 2020-12-15 22:01:15.611690648 -0500 ++++ ./util/AddrTools.c 2020-12-16 12:44:11.013175227 -0500 +@@ -187,7 +187,7 @@ void AddrTools_printShortIp(uint8_t outp + * "fc4f:630d:e499:8f5b:c49f:6e6b:01ae:3120". + * @return 0 if successful, -1 if the hexAddr is malformed. */ -- -+#pragma GCC diagnostic ignored "-Wstrict-aliasing" - #include "uv.h" - #include "task.h" - -diff -up ./util/Gcc.h.warnings ./util/Gcc.h ---- ./util/Gcc.h.warnings 2018-01-30 19:04:59.000000000 -0500 -+++ ./util/Gcc.h 2018-03-14 14:38:20.690851402 -0400 -@@ -52,6 +52,11 @@ - #define Gcc_USE_RET \ - __attribute__ ((warn_unused_result)) - -+#if __GNUC__ >= 7 -+#define Gcc_FALLTHROUGH \ -+ __attribute__ ((fallthrough)) -+#endif -+ - #elif defined(__clang__) - - #define Gcc_NORETURN \ -@@ -62,6 +67,9 @@ - - #endif - -+#ifndef Gcc_FALLTHROUGH -+ #define Gcc_FALLTHROUGH (void)0 -+#endif - #ifndef Gcc_PRINTF - #define Gcc_PRINTF( format_idx, arg_idx ) - #endif -diff -up ./util/platform/netdev/NetPlatform_linux.c.warnings ./util/platform/netdev/NetPlatform_linux.c ---- ./util/platform/netdev/NetPlatform_linux.c.warnings 2018-01-30 19:04:59.000000000 -0500 -+++ ./util/platform/netdev/NetPlatform_linux.c 2018-03-14 14:42:14.668850488 -0400 -@@ -36,6 +36,7 @@ - #include - #if ! defined(android) - #include -+ #include - #endif - #include - #include -@@ -167,7 +168,7 @@ void NetPlatform_addAddress(const char* - Except_throw(eh, "ioctl(SIOCSIFADDR) failed: [%s]", strerror(err)); - } - -- uint32_t x = (uint32_t)~0 << (32 - prefixLen); -+ uint32_t x = ~0U << (32 - prefixLen); - x = Endian_hostToBigEndian32(x); - memcpy(&sin.sin_addr, &x, 4); - memcpy(&ifRequest.ifr_addr, &sin, sizeof(struct sockaddr_in)); -diff -up ./util/platform/Sockaddr.c.warnings ./util/platform/Sockaddr.c ---- ./util/platform/Sockaddr.c.warnings 2018-01-30 19:04:59.000000000 -0500 -+++ ./util/platform/Sockaddr.c 2018-03-14 14:38:20.691851415 -0400 -@@ -12,6 +12,7 @@ - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . +-int AddrTools_parseIp(uint8_t out[16], const uint8_t hexAddr[40]) ++int AddrTools_parseIp(uint8_t out[16], const uint8_t* hexAddr) + { + struct Sockaddr_storage ss; + if (Sockaddr_parse((const char*) hexAddr, &ss) +diff -up ./util/AddrTools.h.warn ./util/AddrTools.h +--- ./util/AddrTools.h.warn 2020-12-15 22:03:56.036099586 -0500 ++++ ./util/AddrTools.h 2020-12-16 12:44:18.772291827 -0500 +@@ -44,7 +44,7 @@ void AddrTools_printShortIp(uint8_t outp + * "fc4f:630d:e499:8f5b:c49f:6e6b:01ae:3120". + * @return 0 if successful, -1 if the hexAddr is malformed. */ -+#pragma GCC diagnostic ignored "-Wstrict-aliasing" - #include "util/events/libuv/UvWrapper.h" - #include "benc/String.h" - #include "memory/Allocator.h" +-int AddrTools_parseIp(uint8_t out[16], const uint8_t hexAddr[40]); ++int AddrTools_parseIp(uint8_t out[16], const uint8_t* hexAddr); + + /** + * Parse out an ethernet MAC address. +diff -up ./util/Bits.h.warn ./util/Bits.h +--- ./util/Bits.h.warn 2020-12-15 21:52:43.800005230 -0500 ++++ ./util/Bits.h 2020-12-15 21:52:57.496210893 -0500 +@@ -98,7 +98,7 @@ static inline uint64_t Bits_bitReverse64 + * @length the nuber of bytes to check for zero'd-ness. + * @return true if all bytes checked are zero. + */ +-static inline int Bits_isZero(void* buffer, size_t length) ++static inline int Bits_isZero(const void* buffer, size_t length) + { + uint8_t* buff = (uint8_t*) buffer; + for (size_t i = 0; i < length; i++) { +diff -up ./util/platform/Sockaddr.c.warn ./util/platform/Sockaddr.c +--- ./util/platform/Sockaddr.c.warn 2020-12-15 21:37:34.152353751 -0500 ++++ ./util/platform/Sockaddr.c 2020-12-16 12:43:27.035514362 -0500 +@@ -306,8 +306,9 @@ struct Sockaddr* Sockaddr_fromBytes(cons + + struct Sockaddr_pvt* out = Allocator_calloc(alloc, addrLen + Sockaddr_OVERHEAD, 1); + Bits_memcpy(&out->ss, &ss, addrLen); +- out->pub.addrLen = addrLen + Sockaddr_OVERHEAD; +- return &out->pub; ++ struct Sockaddr* pub = &out->pub; ++ pub->addrLen = addrLen + Sockaddr_OVERHEAD; ++ return pub; + } + + void Sockaddr_normalizeNative(void* nativeSockaddr) +@@ -344,4 +345,4 @@ void Sockaddr_addrFromHandle(struct Sock + addr->type = Sockaddr_HANDLE; + addr->addrLen = sizeof(struct Sockaddr); + Bits_memcpy(&((uint8_t*)addr)[4], &handle, 4); +-} +\ No newline at end of file ++} diff --git a/sources b/sources index 7f9f7e1..ee87b77 100644 --- a/sources +++ b/sources @@ -1,6 +1,2 @@ -SHA512 (cjdns-v20.4.tar.gz) = 5a6bd36b2edd07fa883efa4b14dd8a7ba0189bf43404e27ab6ae3b0c2f1e63ce738c52b34416f51f93c9752f6654ea95eac2c71897d2a1e19f4a6d1ca3bad46d -SHA512 (python-cjdns-0.1.tar.gz) = f3b7c9afe6bc2f8b0b872cc7fbe9e997657ecf1cbb1f7e8e417099f1265541af919e965be2508a8613f3a2223020ac077473fe48c78f9553dda1a927364bb256 -SHA512 (cjdns-v20.5.tar.gz) = 36ae20182b9e9601ae64630cb0fa96caccbe5279be48520ea8b457a15437da5c9b48a5ae5588bd76ef819efe696b5a582a906a50e4dbe7760bb96fa7d1d63ea3 -SHA512 (cjdns-v20.6.tar.gz) = 34057583f2215899b96f95cc60ba0532aff12834ad2c4b432a6752c811f60ed3d6d33ec82e039b159f090558020faf69c71b373ac33ca9e41b186be0b87c3332 -SHA512 (cjdns-v20.7.tar.gz) = db103e70e3d9f5e4958dcbeed51df358450f9489b6573f9b9eddc1839ee2051fe5180eede894b465e92915fabcb4cb64ce08a41c06450f14de75943879633f25 -SHA512 (cjdns-v21.tar.gz) = 2c0b80c715c8895b573c09787df8be9fcc721d0903c90a32649e22f72e2d7b0b13d4254f31936c61f47cdd1fee8e3cf4a28f827571f94972557258e4a42f9eb2 +SHA512 (cjdns-v21.1.tar.gz) = 5a50b22ce018a8e799ebaa11c0c2998d8a75489c2e54da11b4d9f07f2b00073af34328c431b90afbe6e8796302f2137aa62625dcdd56c0cced785fc2b280ccf6 +SHA512 (python-cjdns-0.2.tar.gz) = 3c1c90ee98c0ed03777efcb7bf147a4f32370b2803155bfc3dab37dc9367706b19b3aa328aba603fa589eaa21f3c6ce2df88826378d19436935a1bccebf5ffa0