lldap: init at 0.4.3
This commit is contained in:
parent
6c43a3495a
commit
a0f26d0fc9
4908
pkgs/servers/ldap/lldap/Cargo.lock
generated
Normal file
4908
pkgs/servers/ldap/lldap/Cargo.lock
generated
Normal file
File diff suppressed because it is too large
Load Diff
63
pkgs/servers/ldap/lldap/default.nix
Normal file
63
pkgs/servers/ldap/lldap/default.nix
Normal file
@ -0,0 +1,63 @@
|
||||
{ fetchFromGitHub
|
||||
, fetchzip
|
||||
, lib
|
||||
, lldap
|
||||
, rustPlatform
|
||||
}:
|
||||
|
||||
let
|
||||
# We cannot build the wasm frontend from source, as the
|
||||
# wasm32-unknown-unknown rustc target isn't available in nixpkgs yet.
|
||||
# Tracking issue: https://github.com/NixOS/nixpkgs/issues/89426
|
||||
frontend = fetchzip {
|
||||
url = "https://github.com/lldap/lldap/releases/download/v${lldap.version}/amd64-lldap.tar.gz";
|
||||
hash = "sha256-/Ml4L5Gxpnmt1pLSiLNuxtzQYjTCatsVe/hE+Btl8BI=";
|
||||
name = "lldap-frontend-${lldap.version}";
|
||||
postFetch = ''
|
||||
mv $out $TMPDIR/extracted
|
||||
mv $TMPDIR/extracted/app $out
|
||||
'';
|
||||
};
|
||||
in
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "lldap";
|
||||
version = "0.4.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "lldap";
|
||||
repo = "lldap";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-FAUTykFh2eGVpx6LrCjV9xWbBPH8pCgAJv3vOXFMFZ4=";
|
||||
};
|
||||
|
||||
# `Cargo.lock` has git dependencies, meaning can't use `cargoHash`
|
||||
cargoLock = {
|
||||
# 0.4.3 has been tagged before the actual Cargo.lock bump, resulting in an inconsitent lock file.
|
||||
# To work around this, the Cargo.lock below is from the commit right after the tag:
|
||||
# https://github.com/lldap/lldap/commit/7b4188a376baabda48d88fdca3a10756da48adda
|
||||
lockFile = ./Cargo.lock;
|
||||
outputHashes = {
|
||||
"lber-0.4.1" = "sha256-2rGTpg8puIAXggX9rEbXPdirfetNOHWfFc80xqzPMT4=";
|
||||
"opaque-ke-0.6.1" = "sha256-99gaDv7eIcYChmvOKQ4yXuaGVzo2Q6BcgSQOzsLF+fM=";
|
||||
"yew_form-0.1.8" = "sha256-1n9C7NiFfTjbmc9B5bDEnz7ZpYJo9ZT8/dioRXJ65hc=";
|
||||
};
|
||||
};
|
||||
|
||||
patches = [
|
||||
./static-frontend-path.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
ln -s --force ${./Cargo.lock} Cargo.lock
|
||||
substituteInPlace server/src/infra/tcp_server.rs --subst-var-by frontend '${frontend}'
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A lightweight authentication server that provides an opinionated, simplified LDAP interface for authentication";
|
||||
homepage = "https://github.com/lldap/lldap";
|
||||
changelog = "https://github.com/lldap/lldap/blob/v${version}/CHANGELOG.md";
|
||||
license = licenses.gpl3Only;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ indeednotjames ];
|
||||
};
|
||||
}
|
43
pkgs/servers/ldap/lldap/static-frontend-path.patch
Normal file
43
pkgs/servers/ldap/lldap/static-frontend-path.patch
Normal file
@ -0,0 +1,43 @@
|
||||
diff --git a/server/src/infra/tcp_server.rs b/server/src/infra/tcp_server.rs
|
||||
index 43f65ea..e289f2a 100644
|
||||
--- a/server/src/infra/tcp_server.rs
|
||||
+++ b/server/src/infra/tcp_server.rs
|
||||
@@ -26,7 +26,7 @@ use std::sync::RwLock;
|
||||
use tracing::info;
|
||||
|
||||
async fn index() -> actix_web::Result<NamedFile> {
|
||||
- let path = PathBuf::from(r"app/index.html");
|
||||
+ let path = PathBuf::from(r"@frontend@/index.html");
|
||||
Ok(NamedFile::open(path)?)
|
||||
}
|
||||
|
||||
@@ -68,12 +68,12 @@ pub(crate) fn error_to_http_response(error: TcpError) -> HttpResponse {
|
||||
}
|
||||
|
||||
async fn wasm_handler() -> actix_web::Result<impl Responder> {
|
||||
- Ok(actix_files::NamedFile::open_async("./app/pkg/lldap_app_bg.wasm").await?)
|
||||
+ Ok(actix_files::NamedFile::open_async("@frontend@/pkg/lldap_app_bg.wasm").await?)
|
||||
}
|
||||
|
||||
async fn wasm_handler_compressed() -> actix_web::Result<impl Responder> {
|
||||
Ok(
|
||||
- actix_files::NamedFile::open_async("./app/pkg/lldap_app_bg.wasm.gz")
|
||||
+ actix_files::NamedFile::open_async("@frontend@/pkg/lldap_app_bg.wasm.gz")
|
||||
.await?
|
||||
.customize()
|
||||
.insert_header(header::ContentEncoding::Gzip)
|
||||
@@ -118,11 +118,11 @@ fn http_config<Backend>(
|
||||
)
|
||||
.service(web::resource("/pkg/lldap_app_bg.wasm").route(web::route().to(wasm_handler)))
|
||||
// Serve the /pkg path with the compiled WASM app.
|
||||
- .service(Files::new("/pkg", "./app/pkg"))
|
||||
+ .service(Files::new("/pkg", "@frontend@/pkg"))
|
||||
// Serve static files
|
||||
- .service(Files::new("/static", "./app/static"))
|
||||
+ .service(Files::new("/static", "@frontend@/static"))
|
||||
// Serve static fonts
|
||||
- .service(Files::new("/static/fonts", "./app/static/fonts"))
|
||||
+ .service(Files::new("/static/fonts", "@frontend@/static/fonts"))
|
||||
// Default to serve index.html for unknown routes, to support routing.
|
||||
.default_service(web::route().guard(guard::Get()).to(index));
|
||||
}
|
@ -25197,6 +25197,8 @@ with pkgs;
|
||||
|
||||
livepeer = callPackage ../servers/livepeer { };
|
||||
|
||||
lldap = callPackage ../servers/ldap/lldap { };
|
||||
|
||||
lwan = callPackage ../servers/http/lwan { };
|
||||
|
||||
labelImg = callPackage ../applications/science/machine-learning/labelimg { };
|
||||
|
Loading…
Reference in New Issue
Block a user