1{ lib, stdenv
2, fetchgit
3, autoreconfHook
4, pkg-config
5, dbus
6, sysctl
7, gitUpdater
8}:
9
10stdenv.mkDerivation rec {
11 pname = "ell";
12 version = "0.67";
13
14 outputs = [ "out" "dev" ];
15
16 src = fetchgit {
17 url = "https://git.kernel.org/pub/scm/libs/ell/ell.git";
18 rev = version;
19 hash = "sha256-PIxPhKqsxybkLQerkQ15kTRh0oW812lWbCGEig11KQk=";
20 };
21
22 nativeBuildInputs = [
23 pkg-config
24 autoreconfHook
25 ];
26
27 nativeCheckInputs = [
28 dbus
29 # required as the sysctl test works on some machines
30 sysctl
31 ];
32
33 enableParallelBuilding = true;
34
35 # Runs multiple dbus instances on the same port failing the bind.
36 enableParallelChecking = false;
37
38 # tests sporadically fail on musl
39 doCheck = !stdenv.hostPlatform.isMusl;
40
41 passthru = {
42 updateScript = gitUpdater {
43 url = "https://git.kernel.org/pub/scm/libs/ell/ell.git";
44 };
45 };
46
47 meta = with lib; {
48 homepage = "https://git.kernel.org/pub/scm/libs/ell/ell.git";
49 description = "Embedded Linux Library";
50 longDescription = ''
51 The Embedded Linux* Library (ELL) provides core, low-level functionality for system daemons. It typically has no dependencies other than the Linux kernel, C standard library, and libdl (for dynamic linking). While ELL is designed to be efficient and compact enough for use on embedded Linux platforms, it is not limited to resource-constrained systems.
52 '';
53 changelog = "https://git.kernel.org/pub/scm/libs/ell/ell.git/tree/ChangeLog?h=${version}";
54 license = licenses.lgpl21Plus;
55 platforms = platforms.linux;
56 maintainers = with maintainers; [ mic92 dtzWill ];
57 };
58}