Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
90 lines
2.2 KiB
Nix
90 lines
2.2 KiB
Nix
{
|
|
lib,
|
|
stdenv,
|
|
fetchFromGitHub,
|
|
fetchpatch,
|
|
rustPlatform,
|
|
nodejs,
|
|
which,
|
|
util-linux,
|
|
nixosTests,
|
|
libsodium,
|
|
pkg-config,
|
|
replaceVars,
|
|
}:
|
|
|
|
rustPlatform.buildRustPackage rec {
|
|
pname = "cjdns";
|
|
version = "22.1";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "cjdelisle";
|
|
repo = "cjdns";
|
|
tag = "cjdns-v${version}";
|
|
hash = "sha256-0imQrkcvIA+2Eq/zlC65USMR7T3OUKwQxrB1KtVexyU=";
|
|
};
|
|
|
|
patches = [
|
|
(replaceVars ./system-libsodium.patch {
|
|
libsodium_include_dir = "${libsodium.dev}/include";
|
|
})
|
|
# Remove mkpasswd since it is failing the build
|
|
(fetchpatch {
|
|
url = "https://github.com/cjdelisle/cjdns/commit/6391dba3f5fdab45df4b4b6b71dbe9620286ce32.patch";
|
|
hash = "sha256-XVA4tdTVMLrV6zuGoBCkOgQq6NXh0x7u8HgmaxFeoRI=";
|
|
})
|
|
(fetchpatch {
|
|
url = "https://github.com/cjdelisle/cjdns/commit/436d9a9784bae85734992c2561c778fbd2f5ac32.patch";
|
|
hash = "sha256-THcYNGVbMx/xf3/5UIxEhz3OlODE0qiYgDBOlHunhj8=";
|
|
})
|
|
];
|
|
|
|
cargoHash = "sha256-f96y6ZW0HxC+73ts5re8GIo2aigQgK3gXyF7fMrcJ0o=";
|
|
|
|
nativeBuildInputs = [
|
|
which
|
|
nodejs
|
|
pkg-config
|
|
]
|
|
++
|
|
# for flock
|
|
lib.optional stdenv.hostPlatform.isLinux util-linux;
|
|
|
|
buildInputs = [ libsodium ];
|
|
|
|
env.SODIUM_USE_PKG_CONFIG = 1;
|
|
env.NIX_CFLAGS_COMPILE = toString (
|
|
[
|
|
"-O2"
|
|
"-Wno-error=array-bounds"
|
|
"-Wno-error=stringop-overflow"
|
|
"-Wno-error=stringop-truncation"
|
|
]
|
|
++ lib.optionals (stdenv.cc.isGNU && lib.versionAtLeast stdenv.cc.version "11") [
|
|
"-Wno-error=stringop-overread"
|
|
]
|
|
);
|
|
|
|
cargoTestFlags = [
|
|
# don't run doctests since they fail with "cannot find type `Ctx` in this scope"
|
|
"--lib"
|
|
"--bins"
|
|
"--tests"
|
|
];
|
|
|
|
checkFlags = [
|
|
# Tests don't seem to work - "called `Result::unwrap()` on an `Err` value: DecryptErr: NO_SESSION"
|
|
"--skip=crypto::crypto_auth::tests::test_wireguard_iface_encrypt_decrypt"
|
|
"--skip=crypto::crypto_auth::tests::test_wireguard_iface_encrypt_decrypt_with_auth"
|
|
];
|
|
|
|
passthru.tests.basic = nixosTests.cjdns;
|
|
|
|
meta = {
|
|
homepage = "https://github.com/cjdelisle/cjdns";
|
|
description = "Encrypted networking for regular people";
|
|
license = lib.licenses.gpl3Plus;
|
|
platforms = lib.platforms.linux ++ lib.platforms.darwin;
|
|
};
|
|
}
|