diff options
Diffstat (limited to '')
-rw-r--r-- | distro/README.md | 9 | ||||
-rw-r--r-- | distro/config/apkg.toml | 10 | ||||
-rw-r--r-- | distro/pkg/deb/README.Debian | 38 | ||||
-rw-r--r-- | distro/pkg/deb/README.source | 66 | ||||
-rw-r--r-- | distro/pkg/deb/changelog | 5 | ||||
-rw-r--r-- | distro/pkg/deb/compat | 1 | ||||
-rw-r--r-- | distro/pkg/deb/control | 75 | ||||
-rw-r--r-- | distro/pkg/deb/copyright | 79 | ||||
-rw-r--r-- | distro/pkg/deb/gbp.conf | 4 | ||||
-rw-r--r-- | distro/pkg/deb/libyang2-dev.install | 3 | ||||
-rw-r--r-- | distro/pkg/deb/libyang2-tools.examples | 1 | ||||
-rw-r--r-- | distro/pkg/deb/libyang2-tools.install | 3 | ||||
-rw-r--r-- | distro/pkg/deb/libyang2.install | 2 | ||||
-rw-r--r-- | distro/pkg/deb/libyang2.symbols | 351 | ||||
-rwxr-xr-x | distro/pkg/deb/rules | 12 | ||||
-rw-r--r-- | distro/pkg/deb/source/format | 1 | ||||
-rw-r--r-- | distro/pkg/deb/tests/control | 3 | ||||
-rwxr-xr-x | distro/pkg/deb/tests/yanglint | 18 | ||||
-rw-r--r-- | distro/pkg/deb/watch | 4 | ||||
-rw-r--r-- | distro/pkg/rpm/libyang.spec | 94 | ||||
-rwxr-xr-x | distro/scripts/make-archive.sh | 17 | ||||
-rwxr-xr-x | distro/scripts/upstream-version.sh | 7 | ||||
-rw-r--r-- | distro/tests/control | 1 | ||||
-rwxr-xr-x | distro/tests/test-pkg-config.sh | 5 | ||||
-rwxr-xr-x | distro/tests/test-yanglint.sh | 5 |
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.]\+' |