summaryrefslogtreecommitdiffstats
path: root/distro
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--distro/README.md9
-rw-r--r--distro/config/apkg.toml10
-rw-r--r--distro/pkg/deb/README.Debian38
-rw-r--r--distro/pkg/deb/README.source66
-rw-r--r--distro/pkg/deb/changelog5
-rw-r--r--distro/pkg/deb/compat1
-rw-r--r--distro/pkg/deb/control75
-rw-r--r--distro/pkg/deb/copyright79
-rw-r--r--distro/pkg/deb/gbp.conf4
-rw-r--r--distro/pkg/deb/libyang2-dev.install3
-rw-r--r--distro/pkg/deb/libyang2-tools.examples1
-rw-r--r--distro/pkg/deb/libyang2-tools.install3
-rw-r--r--distro/pkg/deb/libyang2.install2
-rw-r--r--distro/pkg/deb/libyang2.symbols351
-rwxr-xr-xdistro/pkg/deb/rules12
-rw-r--r--distro/pkg/deb/source/format1
-rw-r--r--distro/pkg/deb/tests/control3
-rwxr-xr-xdistro/pkg/deb/tests/yanglint18
-rw-r--r--distro/pkg/deb/watch4
-rw-r--r--distro/pkg/rpm/libyang.spec94
-rwxr-xr-xdistro/scripts/make-archive.sh17
-rwxr-xr-xdistro/scripts/upstream-version.sh7
-rw-r--r--distro/tests/control1
-rwxr-xr-xdistro/tests/test-pkg-config.sh5
-rwxr-xr-xdistro/tests/test-yanglint.sh5
25 files changed, 814 insertions, 0 deletions
diff --git a/distro/README.md b/distro/README.md
new file mode 100644
index 0000000..995cb53
--- /dev/null
+++ b/distro/README.md
@@ -0,0 +1,9 @@
+# upstream packaging
+
+## RPM-based system (Fedora, CentOS, SUSE, ...) quickstart
+
+sudo dnf install -y git rpm-build python3-pip
+pip3 install apkg
+apkg build -i
+
+See apkg docs: https://pkg.labs.nic.cz/pages/apkg/
diff --git a/distro/config/apkg.toml b/distro/config/apkg.toml
new file mode 100644
index 0000000..1eaa087
--- /dev/null
+++ b/distro/config/apkg.toml
@@ -0,0 +1,10 @@
+[project]
+name = "libyang"
+make_archive_script = "distro/scripts/make-archive.sh"
+
+[upstream]
+archive_url = "https://github.com/CESNET/libyang/archive/v{{ version }}/libyang-{{ version }}.tar.gz"
+version_script = "distro/scripts/upstream-version.sh"
+
+[apkg]
+compat = 2
diff --git a/distro/pkg/deb/README.Debian b/distro/pkg/deb/README.Debian
new file mode 100644
index 0000000..fc680d0
--- /dev/null
+++ b/distro/pkg/deb/README.Debian
@@ -0,0 +1,38 @@
+Debian packaging for libyang
+============================
+
+Where to file issues
+--------------------
+
+Please file issues on the Debian BTS as usual. You could also open issues
+on github, but if it's something about the Debian packaging it's better to
+stick with the proper Debian ways. The Debian BTS is where other people
+involved with Debian go look for bugs regarding a package, so that's where
+they should be.
+
+Building straight off git
+-------------------------
+
+Just the normal:
+
+```
+git clone https://github.com/CESNET/libyang -b debian/master
+cd libyang
+dpkg-buildpackage
+```
+
+Building a Debian .dsc
+----------------------
+
+Again, pretty much the normal:
+
+```
+git clone https://github.com/CESNET/libyang -b debian/master
+wget -Olibyang_0.16.105.orig.tar.gz https://github.com/CESNET/libyang/archive/v0.16-r3.tar.gz
+cd libyang
+dpkg-source -b .
+```
+
+(Note the diverging release numbering though.)
+
+ -- Ondřej Surý <Ondřej Surý <ondrej@debian.org>>, Fri, 22 May 2020 11:10:55 +0200
diff --git a/distro/pkg/deb/README.source b/distro/pkg/deb/README.source
new file mode 100644
index 0000000..b1d916d
--- /dev/null
+++ b/distro/pkg/deb/README.source
@@ -0,0 +1,66 @@
+This module uses gbp and upstream git repository
+
+To update this package, first import the changes from upstream:
+- git fetch --all
+
+Find the latest version:
+VERSION=$(git describe --tags $(git rev-list '--tags=v2*' --max-count=1) | sed 's/^v//')
+echo $VERSION
+
+Update debian/sid branch
+- git checkout debian/master
+- git merge v$VERSION
+
+Update the debian/copyright file:
+- cme update dpkg-copyright
+See also https://github.com/dod38fr/config-model/wiki/Updating-debian-copyright-file-with-cme
+
+Check patches (and cleanup if necessary):
+- gbp pq rebase --commit --drop
+
+Download upstream tarball:
+- uscan --download --verbose --download-version $VERSION
+
+Add pristine-tar:
+- pristine-tar commit ../libyang_$VERSION.orig.tar.gz v$VERSION
+
+Generate a temporary changelog:
+- gbp dch --new-version=$VERSION-1 --snapshot --auto --commit debian/
+
+Test the first build::
+- gbp buildpackage --git-ignore-new --git-pristine-tar --git-no-purge
+
+Regenerate the symbol file (See https://qt-kde-team.pages.debian.net/symbolfiles.html)
+- pkgkde-symbolshelper batchpatch -v $VERSION < <path_to>/buildlog
+
+See https://www.debian.org/doc/manuals/maint-guide/advanced.en.html#librarysymbols
+and dpkg-gensymbols man page
+
+Update the changelog:
+- gbp dch -Ra -c
+
+Once everything is fine, build a source package and tag:
+- gbp buildpackage -S --git-tag
+
+Push on salsa:
+- gbp push
+
+For more details, see
+https://honk.sigxcpu.org/projects/git-buildpackage/manual-html/gbp.import.upstream-git.html#gbp.import.upstream.git.notarball
+
+Maintainer Notes (moved from README.md)
+=======================================
+
+* the project version number is actually the SO ABI version. The release
+ point numbers (0.16-r3) isn't used for Debian.
+
+* it's intentional that the SONAME is libyang.so.0.16 and not libyang.so.0.
+ ABI compatibility is indicated by the first two numbers being equal;
+ the third number is incremented for compatible changes. cf.
+ CESNET/libyang#656
+
+* the watch file doesn't work yet but the libyang people agreed to make
+ future release tags the same as the internal version number. At that point
+ the watch file will work.
+
+ -- Ondřej Surý <Ondřej Surý <ondrej@debian.org>>, Tue, 21 Jul 2020 16:31:52 +0200
diff --git a/distro/pkg/deb/changelog b/distro/pkg/deb/changelog
new file mode 100644
index 0000000..8a9ead5
--- /dev/null
+++ b/distro/pkg/deb/changelog
@@ -0,0 +1,5 @@
+libyang2 ({{ version }}-{{ release }}) unstable; urgency=medium
+
+ * upstream packaging
+
+ -- Ondřej Surý <ondrej@debian.org> Tue, 04 May 2021 22:20:03 +0200
diff --git a/distro/pkg/deb/compat b/distro/pkg/deb/compat
new file mode 100644
index 0000000..f599e28
--- /dev/null
+++ b/distro/pkg/deb/compat
@@ -0,0 +1 @@
+10
diff --git a/distro/pkg/deb/control b/distro/pkg/deb/control
new file mode 100644
index 0000000..bdcbd19
--- /dev/null
+++ b/distro/pkg/deb/control
@@ -0,0 +1,75 @@
+Source: libyang2
+Section: libs
+Homepage: https://github.com/CESNET/libyang/
+Maintainer: Ondřej Surý <ondrej@debian.org>
+Priority: optional
+Standards-Version: 4.5.0
+Build-Depends: cmake,
+ debhelper (>= 10),
+ libcmocka-dev <!nocheck>,
+ libpcre2-dev,
+ pkg-config
+Vcs-Browser: https://github.com/CESNET/libyang/tree/master
+Vcs-Git: https://github.com/CESNET/libyang.git
+
+Package: libyang2
+Depends: ${misc:Depends},
+ ${shlibs:Depends}
+Architecture: any
+Multi-Arch: same
+Description: parser toolkit for IETF YANG data modeling - runtime
+ Libyang implements functions to process schemas expressed in the
+ YANG data modeling language defined by the IETF in RFCs 6020/7950.
+ Schemas expressed in this language primarily describe configuration
+ used by larger network equipment like routers and switches.
+ .
+ In addition to handling the schemas itself, the library also provides
+ functions to process data described by the schemas.
+ .
+ The library is implemented in C and provides an API for other software
+ to use in processing configurations.
+
+Package: libyang2-dev
+Depends: libpcre2-dev,
+ libyang2 (= ${binary:Version}),
+ ${misc:Depends}
+Conflicts: libyang-dev
+Section: libdevel
+Architecture: any
+Multi-Arch: same
+Description: parser toolkit for IETF YANG data modeling - development files
+ Libyang implements functions to process schemas expressed in the
+ YANG data modeling language defined by the IETF in RFCs 6020/7950.
+ Schemas expressed in this language primarily describe configuration
+ used by larger network equipment like routers and switches.
+ .
+ In addition to handling the schemas itself, the library also provides
+ functions to process data described by the schemas.
+ .
+ This package contains the C headers, a pkgconfig file, and .so entry point
+ for libyang.
+
+Package: libyang2-tools
+Depends: libyang2 (= ${binary:Version}),
+ ${misc:Depends},
+ ${shlibs:Depends}
+Breaks: libyang-tools (<< ${source:Version})
+Replaces: libyang-tools (<< ${source:Version})
+Section: devel
+Architecture: any
+Multi-Arch: foreign
+Description: parser toolkit for IETF YANG data modeling - executable tools
+ This package provides the "yanglint" and "yangre" tools which can be used
+ during the creation of IETF YANG schemas. The tools are not generally
+ useful for normal operation where libyang primarily processes configuration
+ data, not schemas.
+
+Package: libyang-tools
+Depends: libyang2-tools (>= ${source:Version}),
+ ${misc:Depends}
+Section: oldlibs
+Architecture: all
+Multi-Arch: foreign
+Description: parser toolkit for IETF YANG data modeling [dummy package]
+ This is empty dependency package to pull the executable tools. It's
+ safe to remove.
diff --git a/distro/pkg/deb/copyright b/distro/pkg/deb/copyright
new file mode 100644
index 0000000..03af3c3
--- /dev/null
+++ b/distro/pkg/deb/copyright
@@ -0,0 +1,79 @@
+Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: libyang
+License: BSD-3-clause
+
+Files: *
+Copyright: 2015-2021 by CESNET, z.s.p.o.
+License: BSD-3-clause
+
+Files: */iana-*.yin */iana-*.yang */ietf-*.yin */ietf-*.yang */ietf-*.h
+Copyright: 2011-2018 by the IETF Trust and the persons identified as authors
+License: IETF-BSD-3-clause
+ Redistribution and use in source and binary forms, with or
+ without modification, is permitted pursuant to, and subject
+ to the license terms contained in, the Simplified BSD
+ License set forth in Section 4.c of the IETF Trust's
+ Legal Provisions Relating to IETF Documents
+ (http://trustee.ietf.org/license-info).
+ .
+ This version of this YANG module is part of RFC 6536; see
+ the RFC itself for full legal notices.
+
+Files: tools/lint/linenoise/*
+Copyright:
+ Copyright (c) 2010-2014, Salvatore Sanfilippo <antirez at gmail dot com>
+ Copyright (c) 2010-2013, Pieter Noordhuis <pcnoordhuis at gmail dot com>
+License: BSD-2-clause
+ All rights reserved.
+ .
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+ .
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ .
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ .
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Files: debian/*
+Copyright: 2018 by David Lamparter
+ 2020-2021 Ondřej Surý
+License: BSD-3-clause
+
+License: BSD-3-clause
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+ .
+ * Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ .
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ .
+ * Neither the name of libyang nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+ .
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/distro/pkg/deb/gbp.conf b/distro/pkg/deb/gbp.conf
new file mode 100644
index 0000000..23917b9
--- /dev/null
+++ b/distro/pkg/deb/gbp.conf
@@ -0,0 +1,4 @@
+[DEFAULT]
+pristine-tar = False
+debian-branch = master
+upstream-tree = SLOPPY
diff --git a/distro/pkg/deb/libyang2-dev.install b/distro/pkg/deb/libyang2-dev.install
new file mode 100644
index 0000000..452d7e0
--- /dev/null
+++ b/distro/pkg/deb/libyang2-dev.install
@@ -0,0 +1,3 @@
+usr/include/libyang/*.h
+usr/lib/*/*.so
+usr/lib/*/pkgconfig/*.pc
diff --git a/distro/pkg/deb/libyang2-tools.examples b/distro/pkg/deb/libyang2-tools.examples
new file mode 100644
index 0000000..63c4cb1
--- /dev/null
+++ b/distro/pkg/deb/libyang2-tools.examples
@@ -0,0 +1 @@
+tools/lint/examples/*
diff --git a/distro/pkg/deb/libyang2-tools.install b/distro/pkg/deb/libyang2-tools.install
new file mode 100644
index 0000000..04f859b
--- /dev/null
+++ b/distro/pkg/deb/libyang2-tools.install
@@ -0,0 +1,3 @@
+usr/bin/yanglint
+usr/bin/yangre
+usr/share/man/man1
diff --git a/distro/pkg/deb/libyang2.install b/distro/pkg/deb/libyang2.install
new file mode 100644
index 0000000..e5f2c1c
--- /dev/null
+++ b/distro/pkg/deb/libyang2.install
@@ -0,0 +1,2 @@
+usr/lib/*/*.so.*
+usr/share/yang
diff --git a/distro/pkg/deb/libyang2.symbols b/distro/pkg/deb/libyang2.symbols
new file mode 100644
index 0000000..f461b83
--- /dev/null
+++ b/distro/pkg/deb/libyang2.symbols
@@ -0,0 +1,351 @@
+# SymbolsHelper-Confirmed: 2.0.0~ amd64
+libyang.so.2 libyang2 #MINVER#
+ ly_ctx_compile@Base 2.0.0~
+ ly_ctx_destroy@Base 2.0.0~
+ ly_ctx_get_change_count@Base 2.0.0~
+ ly_ctx_get_module@Base 2.0.0~
+ ly_ctx_get_module_imp_clb@Base 2.0.0~
+ ly_ctx_get_module_implemented@Base 2.0.0~
+ ly_ctx_get_module_implemented_ns@Base 2.0.0~
+ ly_ctx_get_module_iter@Base 2.0.0~
+ ly_ctx_get_module_latest@Base 2.0.0~
+ ly_ctx_get_module_latest_ns@Base 2.0.0~
+ ly_ctx_get_module_ns@Base 2.0.0~
+ ly_ctx_get_options@Base 2.0.0~
+ ly_ctx_get_searchdirs@Base 2.0.0~
+ ly_ctx_get_submodule2@Base 2.0.0~
+ ly_ctx_get_submodule2_latest@Base 2.0.0~
+ ly_ctx_get_submodule@Base 2.0.0~
+ ly_ctx_get_submodule_latest@Base 2.0.0~
+ ly_ctx_get_yanglib_data@Base 2.0.0~
+ ly_ctx_internal_modules_count@Base 2.0.0~
+ ly_ctx_load_module@Base 2.0.0~
+ ly_ctx_new@Base 2.0.0~
+ ly_ctx_new_yldata@Base 2.1.4~
+ ly_ctx_new_ylmem@Base 2.0.0~
+ ly_ctx_new_ylpath@Base 2.0.0~
+ ly_ctx_reset_latests@Base 2.0.0~
+ ly_ctx_set_ext_data_clb@Base 2.1.4~
+ ly_ctx_set_module_imp_clb@Base 2.0.0~
+ ly_ctx_set_options@Base 2.0.0~
+ ly_ctx_set_searchdir@Base 2.0.0~
+ ly_ctx_unset_options@Base 2.0.0~
+ ly_ctx_unset_searchdir@Base 2.0.0~
+ ly_ctx_unset_searchdir_last@Base 2.0.0~
+ ly_err_clean@Base 2.0.0~
+ ly_err_first@Base 2.0.0~
+ ly_err_free@Base 2.0.0~
+ ly_err_last@Base 2.0.0~
+ ly_err_new@Base 2.0.0~
+ ly_err_print@Base 2.0.0~
+ ly_errapptag@Base 2.0.0~
+ ly_errcode@Base 2.0.0~
+ ly_errmsg@Base 2.0.0~
+ ly_errpath@Base 2.0.0~
+ ly_get_log_clb@Base 2.0.0~
+ ly_in_fd@Base 2.0.0~
+ ly_in_file@Base 2.0.0~
+ ly_in_filepath@Base 2.0.0~
+ ly_in_free@Base 2.0.0~
+ ly_in_memory@Base 2.0.0~
+ ly_in_new_fd@Base 2.0.0~
+ ly_in_new_file@Base 2.0.0~
+ ly_in_new_filepath@Base 2.0.0~
+ ly_in_new_memory@Base 2.0.0~
+ ly_in_parsed@Base 2.0.0~
+ ly_in_reset@Base 2.0.0~
+ ly_in_type@Base 2.0.0~
+ ly_log_dbg_groups@Base 2.0.0~
+ ly_log_level@Base 2.0.0~
+ ly_log_options@Base 2.0.0~
+ ly_out_clb@Base 2.0.0~
+ ly_out_clb_arg@Base 2.0.0~
+ ly_out_fd@Base 2.0.0~
+ ly_out_file@Base 2.0.0~
+ ly_out_filepath@Base 2.0.0~
+ ly_out_free@Base 2.0.0~
+ ly_out_new_clb@Base 2.0.0~
+ ly_out_new_fd@Base 2.0.0~
+ ly_out_new_file@Base 2.0.0~
+ ly_out_new_filepath@Base 2.0.0~
+ ly_out_new_memory@Base 2.0.0~
+ ly_out_printed@Base 2.0.0~
+ ly_out_reset@Base 2.0.0~
+ ly_out_type@Base 2.0.0~
+ ly_print@Base 2.0.0~
+ ly_print_flush@Base 2.0.0~
+ ly_set_add@Base 2.0.0~
+ ly_set_clean@Base 2.0.0~
+ ly_set_contains@Base 2.0.0~
+ ly_set_dup@Base 2.0.0~
+ ly_set_erase@Base 2.0.0~
+ ly_set_free@Base 2.0.0~
+ ly_set_log_clb@Base 2.0.0~
+ ly_set_merge@Base 2.0.0~
+ ly_set_new@Base 2.0.0~
+ ly_set_rm@Base 2.0.0~
+ ly_set_rm_index@Base 2.0.0~
+ ly_time_str2time@Base 2.0.7~
+ ly_time_str2ts@Base 2.0.7~
+ ly_time_time2str@Base 2.0.7~
+ ly_time_ts2str@Base 2.0.7~
+ ly_vecode@Base 2.0.0~
+ ly_write@Base 2.0.0~
+ lyd_any_copy_value@Base 2.0.0~
+ lyd_any_value_str@Base 2.0.0~
+ lyd_change_meta@Base 2.0.0~
+ lyd_change_term@Base 2.0.0~
+ lyd_change_term_bin@Base 2.0.0~
+ lyd_change_term_canon@Base 2.0.0~
+ lyd_child_no_keys@Base 2.0.0~
+ lyd_compare_meta@Base 2.0.0~
+ lyd_compare_siblings@Base 2.0.0~
+ lyd_compare_single@Base 2.0.0~
+ lyd_diff_apply_all@Base 2.0.0~
+ lyd_diff_apply_module@Base 2.0.0~
+ lyd_diff_merge_all@Base 2.0.0~
+ lyd_diff_merge_module@Base 2.0.0~
+ lyd_diff_merge_tree@Base 2.0.0~
+ lyd_diff_reverse_all@Base 2.0.0~
+ lyd_diff_siblings@Base 2.0.0~
+ lyd_diff_tree@Base 2.0.0~
+ lyd_dup_meta_single@Base 2.0.0~
+ lyd_dup_siblings@Base 2.0.0~
+ lyd_dup_siblings_to_ctx@Base 2.1.4~
+ lyd_dup_single@Base 2.0.0~
+ lyd_dup_single_to_ctx@Base 2.1.4~
+ lyd_eval_xpath2@Base 2.0.112~
+ lyd_eval_xpath3@Base 2.1.4~
+ lyd_eval_xpath@Base 2.0.112~
+ lyd_find_meta@Base 2.0.0~
+ lyd_find_path@Base 2.0.0~
+ lyd_find_sibling_dup_inst_set@Base 2.0.0~
+ lyd_find_sibling_first@Base 2.0.0~
+ lyd_find_sibling_opaq_next@Base 2.0.0~
+ lyd_find_sibling_val@Base 2.0.0~
+ lyd_find_target@Base 2.0.112~
+ lyd_find_xpath2@Base 2.0.112~
+ lyd_find_xpath3@Base 2.1.4~
+ lyd_find_xpath4@Base 2.1.4~
+ lyd_find_xpath@Base 2.0.0~
+ lyd_first_sibling@Base 2.0.0~
+ lyd_free_all@Base 2.0.0~
+ lyd_free_attr_siblings@Base 2.0.0~
+ lyd_free_attr_single@Base 2.0.0~
+ lyd_free_meta_siblings@Base 2.0.0~
+ lyd_free_meta_single@Base 2.0.0~
+ lyd_free_siblings@Base 2.0.0~
+ lyd_free_tree@Base 2.0.0~
+ lyd_insert_after@Base 2.0.0~
+ lyd_insert_before@Base 2.0.0~
+ lyd_insert_child@Base 2.0.0~
+ lyd_insert_sibling@Base 2.0.0~
+ lyd_is_default@Base 2.0.0~
+ lyd_list_pos@Base 2.0.0~
+ lyd_lyb_data_length@Base 2.0.0~
+ lyd_merge_module@Base 2.0.7~
+ lyd_merge_siblings@Base 2.0.0~
+ lyd_merge_tree@Base 2.0.0~
+ lyd_new_any@Base 2.0.0~
+ lyd_new_attr2@Base 2.0.0~
+ lyd_new_attr@Base 2.0.0~
+ lyd_new_ext_any@Base 2.0.0~
+ lyd_new_ext_inner@Base 2.0.0~
+ lyd_new_ext_list@Base 2.0.0~
+ lyd_new_ext_path@Base 2.0.0~
+ lyd_new_ext_term@Base 2.0.0~
+ lyd_new_implicit_all@Base 2.0.0~
+ lyd_new_implicit_module@Base 2.0.0~
+ lyd_new_implicit_tree@Base 2.0.0~
+ lyd_new_inner@Base 2.0.0~
+ lyd_new_list2@Base 2.0.0~
+ lyd_new_list@Base 2.0.0~
+ lyd_new_list_bin@Base 2.0.112~
+ lyd_new_list_canon@Base 2.0.112~
+ lyd_new_meta2@Base 2.0.0~
+ lyd_new_meta@Base 2.0.0~
+ lyd_new_opaq2@Base 2.0.0~
+ lyd_new_opaq@Base 2.0.0~
+ lyd_new_path2@Base 2.0.0~
+ lyd_new_path@Base 2.0.0~
+ lyd_new_term@Base 2.0.0~
+ lyd_new_term_bin@Base 2.0.0~
+ lyd_new_term_canon@Base 2.0.0~
+ lyd_node_should_print@Base 2.1.4~
+ lyd_owner_module@Base 2.0.0~
+ lyd_parse_data@Base 2.0.0~
+ lyd_parse_data_fd@Base 2.0.0~
+ lyd_parse_data_mem@Base 2.0.0~
+ lyd_parse_data_path@Base 2.0.0~
+ lyd_parse_ext_data@Base 2.0.0~
+ lyd_parse_ext_op@Base 2.0.0~
+ lyd_parse_op@Base 2.0.0~
+ lyd_parse_opaq_error@Base 2.1.4~
+ lyd_path@Base 2.0.0~
+ lyd_print_all@Base 2.0.0~
+ lyd_print_clb@Base 2.0.0~
+ lyd_print_fd@Base 2.0.0~
+ lyd_print_file@Base 2.0.0~
+ lyd_print_mem@Base 2.0.0~
+ lyd_print_path@Base 2.0.0~
+ lyd_print_tree@Base 2.0.0~
+ lyd_target@Base 2.0.0~
+ lyd_unlink_siblings@Base 2.0.112~
+ lyd_unlink_tree@Base 2.0.0~
+ lyd_validate_all@Base 2.0.0~
+ lyd_validate_module@Base 2.0.0~
+ lyd_validate_op@Base 2.0.0~
+ lyd_value_compare@Base 2.0.0~
+ lyd_value_get_canonical@Base 2.0.0~
+ lyd_value_validate@Base 2.0.0~
+ lydict_insert@Base 2.0.0~
+ lydict_insert_zc@Base 2.0.0~
+ lydict_remove@Base 2.0.0~
+ lyplg_add@Base 2.0.0~
+ lyplg_ext_cfree_instance_substatements@Base 2.1.4~
+ lyplg_ext_compile_extension_instance@Base 2.1.4~
+ lyplg_ext_compile_get_ctx@Base 2.1.4~
+ lyplg_ext_compile_get_cur_mod@Base 2.1.4~
+ lyplg_ext_compile_get_options@Base 2.1.4~
+ lyplg_ext_compile_get_pmod@Base 2.1.4~
+ lyplg_ext_compile_log@Base 2.1.4~
+ lyplg_ext_compile_log_path@Base 2.1.4~
+ lyplg_ext_get_data@Base 2.1.4~
+ lyplg_ext_get_storage@Base 2.1.4~
+ lyplg_ext_insert@Base 2.1.4~
+ lyplg_ext_nodetype2stmt@Base 2.1.4~
+ lyplg_ext_parse_extension_instance@Base 2.1.4~
+ lyplg_ext_parse_get_cur_pmod@Base 2.1.4~
+ lyplg_ext_parse_log@Base 2.1.4~
+ lyplg_ext_parsed_get_storage@Base 2.1.4~
+ lyplg_ext_pfree_instance_substatements@Base 2.1.4~
+ lyplg_ext_print_get_level@Base 2.1.4~
+ lyplg_ext_print_get_options@Base 2.1.4~
+ lyplg_ext_print_get_out@Base 2.1.4~
+ lyplg_ext_print_info_extension_instance@Base 2.1.4~
+ lyplg_ext_schema_mount_create_context@Base 2.1.4~
+ lyplg_ext_stmt2str@Base 2.1.4~
+ lyplg_type_bits_bitmap_size@Base 2.0.7~
+ lyplg_type_bits_is_bit_set@Base 2.0.7~
+ lyplg_type_check_hints@Base 2.0.0~
+ lyplg_type_check_status@Base 2.0.112~
+ lyplg_type_compare_binary@Base 2.0.7~
+ lyplg_type_compare_bits@Base 2.0.7~
+ lyplg_type_compare_boolean@Base 2.0.7~
+ lyplg_type_compare_decimal64@Base 2.0.7~
+ lyplg_type_compare_identityref@Base 2.0.0~
+ lyplg_type_compare_instanceid@Base 2.0.0~
+ lyplg_type_compare_int@Base 2.0.7~
+ lyplg_type_compare_leafref@Base 2.0.0~
+ lyplg_type_compare_simple@Base 2.0.0~
+ lyplg_type_compare_uint@Base 2.0.7~
+ lyplg_type_compare_union@Base 2.0.0~
+ lyplg_type_dup_binary@Base 2.0.7~
+ lyplg_type_dup_bits@Base 2.0.0~
+ lyplg_type_dup_instanceid@Base 2.0.0~
+ lyplg_type_dup_leafref@Base 2.0.0~
+ lyplg_type_dup_simple@Base 2.0.0~
+ lyplg_type_dup_union@Base 2.0.0~
+ lyplg_type_dup_xpath10@Base 2.0.0~
+ lyplg_type_free_binary@Base 2.0.7~
+ lyplg_type_free_bits@Base 2.0.0~
+ lyplg_type_free_instanceid@Base 2.0.0~
+ lyplg_type_free_leafref@Base 2.0.0~
+ lyplg_type_free_simple@Base 2.0.0~
+ lyplg_type_free_union@Base 2.0.0~
+ lyplg_type_free_xpath10@Base 2.0.0~
+ lyplg_type_get_prefix@Base 2.0.0~
+ lyplg_type_identity_isderived@Base 2.0.0~
+ lyplg_type_identity_module@Base 2.0.0~
+ lyplg_type_lypath_check_status@Base 2.0.112~
+ lyplg_type_lypath_free@Base 2.0.0~
+ lyplg_type_lypath_new@Base 2.0.0~
+ lyplg_type_make_implemented@Base 2.0.0~
+ lyplg_type_parse_dec64@Base 2.0.0~
+ lyplg_type_parse_int@Base 2.0.0~
+ lyplg_type_parse_uint@Base 2.0.0~
+ lyplg_type_prefix_data_dup@Base 2.0.0~
+ lyplg_type_prefix_data_free@Base 2.0.0~
+ lyplg_type_prefix_data_new@Base 2.0.0~
+ lyplg_type_print_binary@Base 2.0.7~
+ lyplg_type_print_bits@Base 2.0.7~
+ lyplg_type_print_boolean@Base 2.0.7~
+ lyplg_type_print_decimal64@Base 2.0.7~
+ lyplg_type_print_enum@Base 2.0.7~
+ lyplg_type_print_identityref@Base 2.0.0~
+ lyplg_type_print_instanceid@Base 2.0.0~
+ lyplg_type_print_int@Base 2.0.7~
+ lyplg_type_print_leafref@Base 2.0.0~
+ lyplg_type_print_simple@Base 2.0.0~
+ lyplg_type_print_uint@Base 2.0.7~
+ lyplg_type_print_union@Base 2.0.0~
+ lyplg_type_print_xpath10@Base 2.0.0~
+ lyplg_type_print_xpath10_value@Base 2.1.4~
+ lyplg_type_resolve_leafref@Base 2.0.0~
+ lyplg_type_store_binary@Base 2.0.0~
+ lyplg_type_store_bits@Base 2.0.0~
+ lyplg_type_store_boolean@Base 2.0.0~
+ lyplg_type_store_decimal64@Base 2.0.0~
+ lyplg_type_store_empty@Base 2.0.0~
+ lyplg_type_store_enum@Base 2.0.0~
+ lyplg_type_store_identityref@Base 2.0.0~
+ lyplg_type_store_instanceid@Base 2.0.0~
+ lyplg_type_store_int@Base 2.0.0~
+ lyplg_type_store_leafref@Base 2.0.0~
+ lyplg_type_store_string@Base 2.0.0~
+ lyplg_type_store_uint@Base 2.0.0~
+ lyplg_type_store_union@Base 2.0.0~
+ lyplg_type_store_xpath10@Base 2.0.0~
+ lyplg_type_validate_instanceid@Base 2.0.0~
+ lyplg_type_validate_leafref@Base 2.0.0~
+ lyplg_type_validate_patterns@Base 2.0.0~
+ lyplg_type_validate_range@Base 2.0.0~
+ lyplg_type_validate_union@Base 2.0.0~
+ lyplg_type_xpath10_print_token@Base 2.1.4~
+ lys_feature_value@Base 2.0.0~
+ lys_find_child@Base 2.0.0~
+ lys_find_expr_atoms@Base 2.0.0~
+ lys_find_lypath_atoms@Base 2.0.0~
+ lys_find_path@Base 2.0.0~
+ lys_find_path_atoms@Base 2.0.0~
+ lys_find_xpath@Base 2.0.0~
+ lys_find_xpath_atoms@Base 2.0.0~
+ lys_getnext@Base 2.0.0~
+ lys_getnext_ext@Base 2.0.0~
+ lys_identity_iffeature_value@Base 2.0.112~
+ lys_nodetype2str@Base 2.0.0~
+ lys_parse@Base 2.0.0~
+ lys_parse_fd@Base 2.0.0~
+ lys_parse_mem@Base 2.0.0~
+ lys_parse_path@Base 2.0.0~
+ lys_print_clb@Base 2.0.0~
+ lys_print_fd@Base 2.0.0~
+ lys_print_file@Base 2.0.0~
+ lys_print_mem@Base 2.0.0~
+ lys_print_module@Base 2.0.0~
+ lys_print_node@Base 2.0.0~
+ lys_print_path@Base 2.0.0~
+ lys_print_submodule@Base 2.0.0~
+ lys_search_localfile@Base 2.0.0~
+ lys_set_implemented@Base 2.0.0~
+ lysc_data_node@Base 2.1.4~
+ lysc_has_when@Base 2.0.0~
+ lysc_iffeature_value@Base 2.0.0~
+ lysc_module_dfs_full@Base 2.0.0~
+ lysc_node_actions@Base 2.0.0~
+ lysc_node_child@Base 2.0.0~
+ lysc_node_musts@Base 2.0.0~
+ lysc_node_notifs@Base 2.0.0~
+ lysc_node_when@Base 2.0.0~
+ lysc_owner_module@Base 2.0.112~
+ lysc_path@Base 2.0.0~
+ lysc_tree_dfs_full@Base 2.0.0~
+ lysp_feature_next@Base 2.0.0~
+ lysp_node_actions@Base 2.0.0~
+ lysp_node_child@Base 2.0.0~
+ lysp_node_groupings@Base 2.0.0~
+ lysp_node_notifs@Base 2.0.0~
+ lysp_node_typedefs@Base 2.0.0~
+ lyxp_get_expr@Base 2.0.0~
+ lyxp_vars_free@Base 2.0.112~
+ lyxp_vars_set@Base 2.0.112~
diff --git a/distro/pkg/deb/rules b/distro/pkg/deb/rules
new file mode 100755
index 0000000..58f845d
--- /dev/null
+++ b/distro/pkg/deb/rules
@@ -0,0 +1,12 @@
+#!/usr/bin/make -f
+#export DH_VERBOSE=1
+export DEB_BUILD_MAINT_OPTIONS = hardening=+all
+
+include /usr/share/dpkg/default.mk
+
+%:
+ dh $@
+
+override_dh_auto_configure:
+ dh_auto_configure -- \
+ -DCMAKE_BUILD_TYPE:String="Release"
diff --git a/distro/pkg/deb/source/format b/distro/pkg/deb/source/format
new file mode 100644
index 0000000..163aaf8
--- /dev/null
+++ b/distro/pkg/deb/source/format
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/distro/pkg/deb/tests/control b/distro/pkg/deb/tests/control
new file mode 100644
index 0000000..e4613e6
--- /dev/null
+++ b/distro/pkg/deb/tests/control
@@ -0,0 +1,3 @@
+Tests: yanglint
+Depends: gzip,
+ libyang2-tools
diff --git a/distro/pkg/deb/tests/yanglint b/distro/pkg/deb/tests/yanglint
new file mode 100755
index 0000000..eda5573
--- /dev/null
+++ b/distro/pkg/deb/tests/yanglint
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+set -e
+
+# Setup the test file
+trap 'rm -f "${TESTFILE}"; rmdir "${TESTDIR}"' EXIT
+TESTDIR=$(mktemp -d /tmp/yanglint.XXXXXX)
+TESTFILE="${TESTDIR}/ietf-interfaces.yang"
+
+# Unpack or copy the test file
+if test -f /usr/share/doc/libyang2-tools/examples/ietf-interfaces.yang.gz; then
+ gunzip -c < /usr/share/doc/libyang2-tools/examples/ietf-interfaces.yang.gz > "${TESTFILE}"
+else
+ cp /usr/share/doc/libyang2-tools/examples/ietf-interfaces.yang "${TESTFILE}"
+fi
+
+# Lint the test file
+yanglint "${TESTFILE}"
diff --git a/distro/pkg/deb/watch b/distro/pkg/deb/watch
new file mode 100644
index 0000000..b391882
--- /dev/null
+++ b/distro/pkg/deb/watch
@@ -0,0 +1,4 @@
+version=4
+opts="filenamemangle=s%(?:.*?)?v?(\d[\d.]*)\.tar\.gz%libyang-$1.tar.gz%" \
+ https://github.com/CESNET/libyang/releases \
+ (?:.*?/)?v?(\d[\d.]*)(?:-r\d+)?\.tar\.gz debian uupdate
diff --git a/distro/pkg/rpm/libyang.spec b/distro/pkg/rpm/libyang.spec
new file mode 100644
index 0000000..374fc4e
--- /dev/null
+++ b/distro/pkg/rpm/libyang.spec
@@ -0,0 +1,94 @@
+Name: libyang
+Version: {{ version }}
+Release: {{ release }}%{?dist}
+Summary: YANG data modeling language library
+Url: https://github.com/CESNET/libyang
+Source: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz
+License: BSD
+
+BuildRequires: cmake
+BuildRequires: doxygen
+BuildRequires: gcc
+BuildRequires: cmake(cmocka) >= 1.0.1
+BuildRequires: make
+BuildRequires: pkgconfig(libpcre2-8) >= 10.21
+
+%package devel
+Summary: Development files for libyang
+Requires: %{name}%{?_isa} = %{version}-%{release}
+Requires: pcre2-devel
+
+%package devel-doc
+Summary: Documentation of libyang API
+Requires: %{name}%{?_isa} = %{version}-%{release}
+
+%package tools
+Summary: YANG validator tools
+Requires: %{name}%{?_isa} = %{version}-%{release}
+# This was not properly split out before
+Conflicts: %{name} < 1.0.225-3
+
+%description devel
+Headers of libyang library.
+
+%description devel-doc
+Documentation of libyang API.
+
+%description tools
+YANG validator tools.
+
+%description
+Libyang is YANG data modeling language parser and toolkit
+written (and providing API) in C.
+
+%prep
+%autosetup -p1
+
+%build
+%cmake -DCMAKE_BUILD_TYPE=RELWITHDEBINFO
+%cmake_build
+
+%if "x%{?suse_version}" == "x"
+cd redhat-linux-build
+%endif
+make doc
+
+%check
+%if "x%{?suse_version}" == "x"
+cd redhat-linux-build
+%endif
+ctest --output-on-failure -V %{?_smp_mflags}
+
+%install
+%cmake_install
+
+mkdir -m0755 -p %{buildroot}/%{_docdir}/libyang
+cp -a doc/html %{buildroot}/%{_docdir}/libyang/html
+
+%files
+%license LICENSE
+%{_libdir}/libyang.so.2
+%{_libdir}/libyang.so.2.*
+%{_datadir}/yang/modules/libyang/*.yang
+%dir %{_datadir}/yang/
+%dir %{_datadir}/yang/modules/
+%dir %{_datadir}/yang/modules/libyang/
+
+%files tools
+%{_bindir}/yanglint
+%{_bindir}/yangre
+%{_datadir}/man/man1/yanglint.1.gz
+%{_datadir}/man/man1/yangre.1.gz
+
+%files devel
+%{_libdir}/libyang.so
+%{_libdir}/pkgconfig/libyang.pc
+%{_includedir}/libyang/*.h
+%dir %{_includedir}/libyang/
+
+%files devel-doc
+%{_docdir}/libyang
+
+%changelog
+* {{ now }} Jakub Ružička <jakub.ruzicka@nic.cz> - {{ version }}-{{ release }}
+- upstream package
diff --git a/distro/scripts/make-archive.sh b/distro/scripts/make-archive.sh
new file mode 100755
index 0000000..9b6295d
--- /dev/null
+++ b/distro/scripts/make-archive.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+# create archive from current source using git
+
+VERSION=$(git describe --tags --always)
+# skip "v" from start of version number (if it exists) and replace - with .
+VERSION=${VERSION#v}
+VERSION=${VERSION//[-]/.}
+
+NAMEVER=libyang-$VERSION
+ARCHIVE=$NAMEVER.tar.gz
+
+git archive --format tgz --output $ARCHIVE --prefix $NAMEVER/ HEAD
+mkdir -p pkg/archives/dev/
+mv $ARCHIVE pkg/archives/dev/
+
+# apkg expects stdout to list archive files
+echo pkg/archives/dev/$ARCHIVE
diff --git a/distro/scripts/upstream-version.sh b/distro/scripts/upstream-version.sh
new file mode 100755
index 0000000..4489c8e
--- /dev/null
+++ b/distro/scripts/upstream-version.sh
@@ -0,0 +1,7 @@
+#!/bin/bash
+# get latest upstream libyang version from github
+
+RLS_URL=https://api.github.com/repos/CESNET/libyang/releases
+VERSION=$(curl -s $RLS_URL | grep tag_name | cut -d '"' -f 4 | sort --version-sort | tail -n 1)
+VERSION=${VERSION#v}
+echo $VERSION
diff --git a/distro/tests/control b/distro/tests/control
new file mode 100644
index 0000000..61b9060
--- /dev/null
+++ b/distro/tests/control
@@ -0,0 +1 @@
+Tests: test-pkg-config.sh test-yanglint.sh
diff --git a/distro/tests/test-pkg-config.sh b/distro/tests/test-pkg-config.sh
new file mode 100755
index 0000000..581e4d6
--- /dev/null
+++ b/distro/tests/test-pkg-config.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+set -ex
+
+version=`pkg-config --modversion libyang`
+echo "$version" | grep '2\.[0-9.]\+'
diff --git a/distro/tests/test-yanglint.sh b/distro/tests/test-yanglint.sh
new file mode 100755
index 0000000..70bf4b9
--- /dev/null
+++ b/distro/tests/test-yanglint.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+set -ex
+
+version=`yanglint --version`
+echo "$version" | grep '2\.[0-9.]\+'