lldap: init at 0.4.3

This commit is contained in:
IndeedNotJames 2023-04-23 20:09:08 +02:00
parent 6c43a3495a
commit a0f26d0fc9
No known key found for this signature in database
GPG key ID: 0AD773CE46FD0F87
4 changed files with 5016 additions and 0 deletions

4908
pkgs/servers/ldap/lldap/Cargo.lock generated Normal file

File diff suppressed because it is too large Load diff

View 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 ];
};
}

View 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));
}

View file

@ -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 { };