Package Details: lldap-git 0.5.0.r101.g3d8aafa-2

Git Clone URL: https://aur.archlinux.org/lldap-git.git (read-only, click to copy)
Package Base: lldap-git
Description: Light LDAP Daemon
Upstream URL: https://github.com/lldap/lldap
Licenses: GPL3
Conflicts: lldap
Provides: lldap
Submitter: lapinot
Maintainer: lapinot
Last Packager: lapinot
Votes: 1
Popularity: 0.000182
First Submitted: 2023-02-25 01:02 (UTC)
Last Updated: 2024-02-28 16:11 (UTC)

Latest Comments

1 2 Next › Last »

lapinot commented on 2024-02-29 12:09 (UTC) (edited on 2024-02-29 12:15 (UTC) by lapinot)

Zepman: Well then i'm puzzled as to:

  • Who sent a SIGKILL to a perfectly fine rustc compilation process during build.
  • Why you got the same error pattern when building the "lldap" aur package (according to your comment there).
  • How it is possible that you fixed your error on the "lldap" aur package by simply silencing warnings during build (something which doesn't affect anything besides what gets printed out).

Two explanations: either there is a really weird bug somewhere in rustc, or somehow the compilation process hit a resource limit and got killed by a system watchdog. In either case, i cannot see how this kind of error (someone sending SIGKILL) could be originating from the package definition, it is neither a dependency missing nor a (normal) compiler error. Supporting second explanation is the fact that i reproduced the error in low memory conditions and built without error on fresh install with high memory and swap enabled.

As to why your edits fixed the problem, perhaps if you restarted the build without doing a cleanbuild, the resource usage got lower since some dependencies were already compiled.

Note that it might also be the case that rustc/cargo uses /tmp or some other tmpfs quite enthusiastically which could add to the memory pressure. The debian farm reports 10GiB max disk space, i don't know how much of this was on /tmp.

Perhaps i'll pin a comment to check available ram and swap device if this issue pops up again. Until then i don't think i have more input to give.

Zepman commented on 2024-02-29 11:40 (UTC) (edited on 2024-02-29 11:42 (UTC) by Zepman)

@lapinot

Incorrect. My building machine (the one running stock Arch Linux system with base-devel installed) has 16 GB of (mostly free, since stock) memory.

Furthermore, building with your recipe at the time failed. Building with my recipe at the time did not. I did not try your latest recipe.

I know building LLDAP is taxing, which is why I created lldap-bin for the stable version of LLDAP. For building I use a beefy enough configuration of which I know that it works.

lapinot commented on 2024-02-28 13:43 (UTC) (edited on 2024-02-28 13:46 (UTC) by lapinot)

Zepman: Confirming your error is caused by not enough memory available. See https://github.com/lldap/lldap/issues/660. It needs ~5GiB memory to complete.

Zepman commented on 2024-02-28 11:50 (UTC) (edited on 2024-02-28 12:39 (UTC) by Zepman)

@lapinot

I asked you two questions you answered neither (if this could be a ram issue).

You asked two questions:

  1. Did you also try to build in a chroot?

My answer:

I did not use a chroot environment.

You can infer that this means "no".

Your second question:

  1. In the meantime, outside of any chroot or VM: have you tried doing rustup update before building?

My answer:

Tested on a stock Arch Linux system with base-devel installed, without the use of an AUR helper. (...) I also did not install or configure Rust as a build dependency.

You can infer this means "no", since a stock Arch Linux system with base-devel installed does not have Rust installed.

Please lets keep things factual, don't insinuate i don't really read your messages

Please do not appear as if you are insinuating that others don't read your messages when claiming that others insinuate that you do not read their messages. Your questions were answered, and your claim was unnecessary.

I am being factual. The emphasis was on the word very to clarify that I really used a stock Arch Linux system with only minimal tooling (base-devel and yes, sudo...) to attempt an install. There are too many bug reports that are based on AUR helpers, which are not supported and make debugging way more complex.

My PKGBUILD diff (based on the PKGBUILD of lldap):

3,5c3,6
< pkgname=lldap
< pkgver=0.5.0
< pkgrel=2
---
> pkgname=lldap-git
> _pkgname=lldap
> pkgver=0.5.0.r97.g959bb90
> pkgrel=1
9a11,12
> provides=('lldap')
> conflicts=('lldap')
14d16
< _commit='6f04530700cbe00e979c84483a8310b1339e9d6e'
16c18
<   "$pkgname::git+$url#commit=$_commit"
---
>   "$pkgname::git+$url"
23c25
<         '3c1a5d25ecd028b11c42ef92dd4e9763d2817c63157fb9b31e1e6283cd1195063eeb7fb0867362cfd585921c09a1010e3a2c8545e69cd2d304d708d385a2da2c'
---
>         'e7578314bfcc41e5e0413233f0d1aba26003b6ad9066f7e29bfb938b5d97716d4e0dd68643990e1762f16b889368385eda873e679a78de12ea220e49c6835e2d'
31c33,34
<   git describe --tags | sed 's/^v//'
---
>   #git describe --tags | sed 's/^v//'
>   git describe --long --tags | sed 's/\([^-]*-g\)/r\1/;s/-/./g;s/^v//'
72,74c75,77
<   install -vDm644 systemd.service "$pkgdir/usr/lib/systemd/system/$pkgname.service"
<   install -vDm644 sysusers.conf "$pkgdir/usr/lib/sysusers.d/$pkgname.conf"
<   install -vDm644 tmpfiles.conf "$pkgdir/usr/lib/tmpfiles.d/$pkgname.conf"
---
>   install -vDm644 systemd.service "$pkgdir/usr/lib/systemd/system/${_pkgname}.service"
>   install -vDm644 sysusers.conf "$pkgdir/usr/lib/sysusers.d/${_pkgname}.conf"
>   install -vDm644 tmpfiles.conf "$pkgdir/usr/lib/tmpfiles.d/${_pkgname}.conf"
86c89
<   install -vDm640 lldap_config.docker_template.toml "$pkgdir/etc/$pkgname.toml"
---
>   install -vDm640 lldap_config.docker_template.toml "$pkgdir/etc/${_pkgname}.toml"
90,94c93,97
<   install -vd "$pkgdir/var/lib/$pkgname"
<   install -vDm644 app/index_local.html "$pkgdir/var/lib/$pkgname/app/index.html"
<   install -vDm644 -t "$pkgdir/var/lib/$pkgname/app/static" app/static/*.{css,js,gif}
<   install -vDm644 -t "$pkgdir/var/lib/$pkgname/app/static/fonts" app/static/fonts/*.woff2
<   install -vDm644 -t "$pkgdir/var/lib/$pkgname/app/pkg" app/pkg/*
---
>   install -vd "$pkgdir/var/lib/${_pkgname}"
>   install -vDm644 app/index_local.html "$pkgdir/var/lib/${_pkgname}/app/index.html"
>   install -vDm644 -t "$pkgdir/var/lib/${_pkgname}/app/static" app/static/*.{css,js,gif}
>   install -vDm644 -t "$pkgdir/var/lib/${_pkgname}/app/static/fonts" app/static/fonts/*.woff2
>   install -vDm644 -t "$pkgdir/var/lib/${_pkgname}/app/pkg" app/pkg/*
97,98c100,101
<   install -vDm644 -t "$pkgdir/usr/share/doc/$pkgname" README.md
<   cp -vr docs "$pkgdir/usr/share/doc/$pkgname"
---
>   install -vDm644 -t "$pkgdir/usr/share/doc/${_pkgname}" README.md
>   cp -vr docs "$pkgdir/usr/share/doc/${_pkgname}"

The hash of the patch file config-template.patch was changed because I created a new patch that is compatible with the latest development version:

--- a/lldap_config.docker_template.toml
+++ b/lldap_config.docker_template.toml
@@ -95,7 +95,7 @@
 ##  - "mysql://mysql-user:password@mysql-server/my-database"
 ##
 ## This can be overridden with the LLDAP_DATABASE_URL env variable.
-database_url = "sqlite:///data/users.db?mode=rwc"
+database_url = "sqlite:///var/lib/lldap/data/users.db?mode=rwc"

 ## Private key file.
 ## Not recommended, use key_seed instead.
@@ -105,7 +105,7 @@ database_url = "sqlite:///data/users.db?
 ## each password.
 ## Randomly generated on first run if it doesn't exist.
 ## Env variable: LLDAP_KEY_FILE
-#key_file = "/data/private_key"
+#key_file = "/var/lib/lldap/data/private_key"

 ## Seed to generate the server private key, see key_file above.
 ## This can be any random string, the recommendation is that it's at least 12

lapinot commented on 2024-02-28 10:39 (UTC) (edited on 2024-02-28 10:56 (UTC) by lapinot)

Zepman: Please lets keep things factual, don't insinuate i don't really read your messages and don't explain to me what basic makepkg options do. Works for me and apparently also a couple other, so you're not entitled to me debugging your issue. I understand building in a fresh install is important, as i said "I will try to build in a clean VM to see if it works better". This will be fixed very soon. I asked you two questions you answered neither (if this could be a ram issue). Also rustup update will never be needed if rustup is not present before building, i said it might help with a stalled toolchain.

In case of a fresh install, the lldap package indeed doesn't use rustup but the arch-provided toolchains. Perhaps i forgot a dependency but afaiu x86-64, wasm and wasm-bindgen get installed dynamically. I previously thought that because of the need for the wasm target it wasn't possible to make the package agnostic to rustup vs arch-provided, but i might be wrong. I will test and switch if it doesn't pull anything when rustup is already installed.

If you'd like, I can share that PKGBUILD with you.

Yes, i guess you mostly took their makedepends, but indeed i'd be happy to see a diff.

Zepman commented on 2024-02-28 09:10 (UTC) (edited on 2024-02-28 09:45 (UTC) by Zepman)

@lapinot

As I wrote before:

Tested on a stock Arch Linux system with base-devel installed, without the use of an AUR helper.

You must take this very literally. I did not use a chroot environment. I also did not install or configure Rust as a build dependency. The package should do this if needed. Any AUR recipe should be able to build a package when base-devel is installed and when a (non-root, but with sudo rights) user runs makepkg -sr, since -s should take care of any build dependencies (sudo rights are only used for that and for removing packages using -r).

So no, I will not run rustup update before building. Such preparations should not be necessary to build any AUR recipe. Also, for diagnosing it would not do anything since rustup is not installed before I run makepkg -sr.

For now I created a workaround based on package lldap, which seems to have a more robust build process. If you'd like, I can share that PKGBUILD with you.

lapinot commented on 2024-02-27 23:10 (UTC)

Also on my todolist: review the default config. At first it came from example config from the repo, i edited some with standard values. Maybe i should just put whatever the default value actually is for each.

lapinot commented on 2024-02-27 22:52 (UTC) (edited on 2024-02-27 22:53 (UTC) by lapinot)

rabidpug: Thanks, indeed. Will push this fix in a minute.

Zepman: Sorry for my email not being setup correctly, i just saw your orphan request on the mailing list. I'm in the process of switching my "online/dev" email and hadn't thought about me now being a maintainer of something. I will make it work soon, in the meantime i'll follow closer this comment thread.

About the compilation: the important part of your error is (signal: 9, SIGKILL: kill), which most likely means the OS killed the build process for some reason. Actually i tested building in a fresh arch chroot (pacstrap + arch-chroot) and got the exact same error. Did you also try to build in a chroot? It is quite memory intensive to build and i don't think arch-chroot is particularly robust with tmpfiles / memory usage.

I will try to build in a clean VM to see if it works better. In the meantime, outside of any chroot or VM: have you tried doing rustup update before building? The PKGBUILD will not mess with your rustup installation, so if it's already installed it will use whatever version there is, perhaps it is a bit stalled.

I just built the package on my main system, running rustup update fixed any issue.

Zepman commented on 2024-02-12 11:09 (UTC) (edited on 2024-02-12 11:47 (UTC) by Zepman)

This package fails to build. Tested on a stock Arch Linux system with base-devel installed, without the use of an AUR helper.

$ makepkg -sr --noconfirm
==> Making package: lldap-git 0.5.0.r96.g22074f5-1 (Mon Feb 12 11:29:54 2024)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Installing missing dependencies...
(...)
==> Retrieving sources...
(...)
==> Validating source files with sha256sums...
(...)
==> Extracting sources...
(...)
==> Starting prepare()...
(...)
==> Starting pkgver()...
==> Starting build()...
(...)
   Compiling lldap v0.5.1-alpha (/home/user/src/lldap-git/src/lldap-git/server)
error: could not compile `lldap` (bin "lldap")

Caused by:
  process didn't exit successfully: `/home/user/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/rustc --crate-name lldap --edition=2021 server/src/main.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type bin --emit=dep-info,link -C opt-level=3 -C lto -C metadata=a1cea0b8c518361c -C extra-filename=-a1cea0b8c518361c --out-dir /home/user/src/lldap-git/src/lldap-git/target/release/deps -L dependency=/home/user/src/lldap-git/src/lldap-git/target/release/deps --extern actix=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libactix-332fbfc8d07243bf.rlib --extern actix_files=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libactix_files-d31b18f4bd19ff1b.rlib --extern actix_http=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libactix_http-c8c939bf28d8395d.rlib --extern actix_rt=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libactix_rt-57c0331ac86ea9ff.rlib --extern actix_server=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libactix_server-41b2c32cfae8f0e4.rlib --extern actix_service=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libactix_service-16af244d2e4fefb1.rlib --extern actix_tls=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libactix_tls-c8e0310f49a89377.rlib --extern actix_web=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libactix_web-db9bf8256a71f7d4.rlib --extern actix_web_httpauth=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libactix_web_httpauth-a7c844f92b8f0dc8.rlib --extern anyhow=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libanyhow-2ba336d289eca669.rlib --extern async_trait=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libasync_trait-e46d3a90d0dc7d52.so --extern base64=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libbase64-885fabd96d3529ad.rlib --extern bincode=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libbincode-68d7af42446161de.rlib --extern chrono=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libchrono-02337633575e6b14.rlib --extern clap=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libclap-5a05d2d23b010d50.rlib --extern cron=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libcron-70e0772f24f21b00.rlib --extern derive_builder=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libderive_builder-aff4879c333c2f12.rlib --extern derive_more=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libderive_more-dc8c7dce6cbcc709.so --extern figment=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libfigment-8ff813aeccc33241.rlib --extern figment_file_provider_adapter=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libfigment_file_provider_adapter-640e960e7d375577.rlib --extern futures=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libfutures-8fa77f052f75b058.rlib --extern futures_util=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libfutures_util-cf538a672470448d.rlib --extern hmac=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libhmac-35c917b208a290ed.rlib --extern http=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libhttp-0515380e27c8fa92.rlib --extern image=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libimage-c91df134dedee569.rlib --extern itertools=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libitertools-5d04b887f0ef1219.rlib --extern juniper=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libjuniper-29aba66527ee1c64.rlib --extern jwt=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libjwt-1e5f32d8145c4799.rlib --extern lber=/home/user/src/lldap-git/src/lldap-git/target/release/deps/liblber-aa9249abafb19372.rlib --extern ldap3_proto=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libldap3_proto-cdc58ae70ceb4d24.rlib --extern lettre=/home/user/src/lldap-git/src/lldap-git/target/release/deps/liblettre-5487403cdda6559c.rlib --extern lldap_auth=/home/user/src/lldap-git/src/lldap-git/target/release/deps/liblldap_auth-99680f3b55404208.rlib --extern log=/home/user/src/lldap-git/src/lldap-git/target/release/deps/liblog-8c7f74272946326e.rlib --extern opaque_ke=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libopaque_ke-e9313d3bf5d8c795.rlib --extern orion=/home/user/src/lldap-git/src/lldap-git/target/release/deps/liborion-1c3f8e930bd69fc6.rlib --extern rand=/home/user/src/lldap-git/src/lldap-git/target/release/deps/librand-eac3ed25660b0916.rlib --extern rand_chacha=/home/user/src/lldap-git/src/lldap-git/target/release/deps/librand_chacha-f01bcdd2e41952cb.rlib --extern reqwest=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libreqwest-7272490f25c2edb0.rlib --extern rustls=/home/user/src/lldap-git/src/lldap-git/target/release/deps/librustls-30fc0a770fb8772c.rlib --extern rustls_pemfile=/home/user/src/lldap-git/src/lldap-git/target/release/deps/librustls_pemfile-031943dc34eace8e.rlib --extern sea_orm=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libsea_orm-8e1e1dd462c05ee5.rlib --extern secstr=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libsecstr-3634f14819a161e3.rlib --extern serde=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libserde-c8643946fb5918b4.rlib --extern serde_bytes=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libserde_bytes-f003b79b770cfb3a.rlib --extern serde_json=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libserde_json-b689769214d8d7d3.rlib --extern sha2=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libsha2-aca073215eae820d.rlib --extern strum=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libstrum-3093897b82ecd3d9.rlib --extern thiserror=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libthiserror-66dfd1aaaa7647e6.rlib --extern time=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libtime-125d46a7f5cc05e6.rlib --extern tokio=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libtokio-0acea9a3d04e9e60.rlib --extern tokio_rustls=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libtokio_rustls-34c48dbaac7ca01f.rlib --extern tokio_stream=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libtokio_stream-a22e66a8d093d4e3.rlib --extern tokio_util=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libtokio_util-ae37325533944f9a.rlib --extern tracing=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libtracing-f5e844d7dfbd4252.rlib --extern tracing_actix_web=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libtracing_actix_web-10f333e251638390.rlib --extern tracing_attributes=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libtracing_attributes-df61999c2025a2d2.so --extern tracing_forest=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libtracing_forest-4cdcaadd7816cd3e.rlib --extern tracing_log=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libtracing_log-596e0c7bf5402b27.rlib --extern tracing_subscriber=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libtracing_subscriber-918aab1eba219d76.rlib --extern url=/home/user/src/lldap-git/src/lldap-git/target/release/deps/liburl-16f8a832563c0d76.rlib --extern urlencoding=/home/user/src/lldap-git/src/lldap-git/target/release/deps/liburlencoding-8e5805a099fe40e4.rlib --extern uuid=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libuuid-9c1e66a8c5683d38.rlib --extern webpki_roots=/home/user/src/lldap-git/src/lldap-git/target/release/deps/libwebpki_roots-b777bebe0816ce04.rlib -C debuginfo=2 --remap-path-prefix=/home/user/src/lldap-git/src=/usr/src/debug/lldap-git -L native=/home/user/src/lldap-git/src/lldap-git/target/release/build/zstd-sys-4af1e099a325a4d1/out -L native=/home/user/src/lldap-git/src/lldap-git/target/release/build/ring-df35597af2372829/out -L native=/home/user/src/lldap-git/src/lldap-git/target/release/build/libsqlite3-sys-558e8fbacfd9917a/out` (signal: 9, SIGKILL: kill)
==> ERROR: A failure occurred in build().
    Aborting...

rabidpug commented on 2024-01-06 03:29 (UTC)

Should this package have backup=('etc/lldap.toml') to preserve the existing config file on update?