1{ stdenv
2, lib
3, fetchFromGitHub
4
5# build time
6, cmake
7, pkg-config
8
9# run time
10, pcre2
11
12# update script
13, gitUpdater
14}:
15
16stdenv.mkDerivation rec {
17 pname = "libyang";
18 version = "2.1.128";
19
20 src = fetchFromGitHub {
21 owner = "CESNET";
22 repo = "libyang";
23 rev = "v${version}";
24 sha256 = "sha256-qwEHGUizjsWQZSwQkh7Clevd1OQfj1mse7Q8YiRCMyQ=";
25 };
26
27 nativeBuildInputs = [
28 cmake
29 pkg-config
30 ];
31
32 buildInputs = [
33 pcre2
34 ];
35
36 cmakeFlags = [
37 "-DCMAKE_INSTALL_LIBDIR=lib"
38 "-DCMAKE_INSTALL_INCLUDEDIR=include"
39 ];
40
41 passthru.updateScript = gitUpdater {
42 rev-prefix = "v";
43 };
44
45 meta = with lib; {
46 description = "YANG data modelling language parser and toolkit";
47 longDescription = ''
48 libyang is a YANG data modelling language parser and toolkit written (and
49 providing API) in C. The library is used e.g. in libnetconf2, Netopeer2,
50 sysrepo or FRRouting projects.
51 '';
52 homepage = "https://github.com/CESNET/libyang";
53 license = with licenses; [ bsd3 ];
54 platforms = platforms.unix;
55 maintainers = with maintainers; [ woffs ];
56 };
57}