add conduwuit but doesnt work yet
This commit is contained in:
parent
e5b9d3920b
commit
f75ccacd3e
2 changed files with 120 additions and 0 deletions
11
hosts/chunk/conduwuit.nix
Normal file
11
hosts/chunk/conduwuit.nix
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{pkgs, ...}: {
|
||||||
|
services.conduwuit = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.callPackage ../../pkgs/conduwuit.nix {};
|
||||||
|
settings.global = {
|
||||||
|
port = [ 8448 ];
|
||||||
|
server_name = "cything.io";
|
||||||
|
allow_check_for_updates = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
109
pkgs/conduwuit.nix
Normal file
109
pkgs/conduwuit.nix
Normal file
|
@ -0,0 +1,109 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
rustPlatform,
|
||||||
|
fetchFromGitHub,
|
||||||
|
pkg-config,
|
||||||
|
bzip2,
|
||||||
|
zstd,
|
||||||
|
stdenv,
|
||||||
|
apple-sdk_15,
|
||||||
|
darwinMinVersionHook,
|
||||||
|
rocksdb,
|
||||||
|
nix-update-script,
|
||||||
|
testers,
|
||||||
|
conduwuit,
|
||||||
|
# upstream conduwuit enables jemalloc by default, so we follow suit
|
||||||
|
enableJemalloc ? true,
|
||||||
|
rust-jemalloc-sys,
|
||||||
|
enableLiburing ? stdenv.hostPlatform.isLinux,
|
||||||
|
liburing,
|
||||||
|
nixosTests,
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
rust-jemalloc-sys' = rust-jemalloc-sys.override {
|
||||||
|
unprefixed = !stdenv.hostPlatform.isDarwin;
|
||||||
|
};
|
||||||
|
rocksdb' = rocksdb.override {
|
||||||
|
inherit enableLiburing;
|
||||||
|
# rocksdb does not support prefixed jemalloc, which is required on darwin
|
||||||
|
enableJemalloc = enableJemalloc && !stdenv.hostPlatform.isDarwin;
|
||||||
|
jemalloc = rust-jemalloc-sys';
|
||||||
|
};
|
||||||
|
in
|
||||||
|
rustPlatform.buildRustPackage rec {
|
||||||
|
pname = "conduwuit";
|
||||||
|
version = "0.4.6";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "girlbossceo";
|
||||||
|
repo = "conduwuit";
|
||||||
|
rev = "58be22e69557f7045ad3fd433a438b33150ecd83";
|
||||||
|
hash = "sha256-pHMD8JRCHO0vRp7M5SPy2Ag6YbvHubwwRCjdskriN8I=";
|
||||||
|
};
|
||||||
|
|
||||||
|
useFetchCargoVendor = true;
|
||||||
|
cargoHash = "sha256-T55avmRKq3j6G+WxlTCEqTzF5Lbh0qsk9WVxocVhtIM=";
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
pkg-config
|
||||||
|
rustPlatform.bindgenHook
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs =
|
||||||
|
[
|
||||||
|
bzip2
|
||||||
|
zstd
|
||||||
|
]
|
||||||
|
++ lib.optional enableJemalloc rust-jemalloc-sys'
|
||||||
|
++ lib.optional enableLiburing liburing
|
||||||
|
++ lib.optionals stdenv.hostPlatform.isDarwin [
|
||||||
|
apple-sdk_15
|
||||||
|
# aws-lc-sys requires CryptoKit's CommonCrypto, which is available on macOS 10.15+
|
||||||
|
(darwinMinVersionHook "10.15")
|
||||||
|
];
|
||||||
|
|
||||||
|
env = {
|
||||||
|
ZSTD_SYS_USE_PKG_CONFIG = true;
|
||||||
|
ROCKSDB_INCLUDE_DIR = "${rocksdb'}/include";
|
||||||
|
ROCKSDB_LIB_DIR = "${rocksdb'}/lib";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildNoDefaultFeatures = true;
|
||||||
|
# See https://github.com/girlbossceo/conduwuit/blob/main/src/main/Cargo.toml
|
||||||
|
# for available features.
|
||||||
|
# We enable all default features except jemalloc and io_uring, which
|
||||||
|
# we guard behind our own (default-enabled) flags.
|
||||||
|
buildFeatures = [
|
||||||
|
"brotli_compression"
|
||||||
|
"element_hacks"
|
||||||
|
"gzip_compression"
|
||||||
|
"release_max_log_level"
|
||||||
|
"sentry_telemetry"
|
||||||
|
"systemd"
|
||||||
|
"zstd_compression"
|
||||||
|
] ++ lib.optional enableJemalloc "jemalloc" ++ lib.optional enableLiburing "io_uring";
|
||||||
|
|
||||||
|
passthru = {
|
||||||
|
updateScript = nix-update-script { };
|
||||||
|
tests =
|
||||||
|
{
|
||||||
|
version = testers.testVersion {
|
||||||
|
inherit version;
|
||||||
|
package = conduwuit;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
// lib.optionalAttrs stdenv.hostPlatform.isLinux {
|
||||||
|
inherit (nixosTests) conduwuit;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Matrix homeserver written in Rust, forked from conduit";
|
||||||
|
homepage = "https://conduwuit.puppyirl.gay/";
|
||||||
|
changelog = "https://github.com/girlbossceo/conduwuit/releases/tag/v${version}";
|
||||||
|
license = lib.licenses.asl20;
|
||||||
|
maintainers = with lib.maintainers; [ niklaskorz ];
|
||||||
|
# Not a typo, conduwuit is a drop-in replacement for conduit.
|
||||||
|
mainProgram = "conduit";
|
||||||
|
};
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue