summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* license: fix/adjust license for "src/nl-cls-add.c"Thomas Haller2023-08-211-1/+1
| | | | | | | | | | | | | | | | | | | | | In commit ef858fb492df ('- Reworked the classifier interface. - Added initial ematch support - Added support for the basic classifier - Added support for the cgroup classifier'), the license headers were added as GPL-2.0-only. That is in conflict with the licences of the project and a problem. We would either have to delete the code, or "change" the license. The file only had (relevant) contributions by Thomas Graf. There are some trivial modifications by myself (Thomas Haller), and I agree with this change. There is also a small change by another contributor, which does seem trivial enough to not prevent changing the license: - 4ff512b05456 [Cong Wang] ('correct --protocol option for nl-cls-* utilities') - c52087601198 [Peter Wu] ('trivial: whitespace-only fixes for src and lib') - cee0b1b50c2e [Yegor Yefremov] ('Add SPDX identifiers') See `gitk src/nl-cls-add.c`.
* license: fix/adjust license for "src/nl-addr-{add,delete,list}.c"Thomas Haller2023-08-213-3/+3
| | | | | | | | | | | | | | | | | | | In commit 5e732ad075e5 ('New set of address management tools'), the license headers were added/changed as GPL-2.0-only. That is in conflict with the licences of the project and a problem. We would either have to delete the code, or "change" the license. The files only had (relevant) contributions by Thomas Graf. There are some trivial modifications by myself (Thomas Haller), and I agree with this change. There are also small changes by another contributors, which seem trivial enough to not prevent changing the license: - 7701c8572fa4 [Pavel Roskin] ('Make some functions and global variables static') - c52087601198 [Peter Wu] ('trivial: whitespace-only fixes for src and lib') - cee0b1b50c2e [Yegor Yefremov] ('Add SPDX identifiers') See `gitk src/nl-addr-{add,delete,list}.c`.
* include: use <linux/$file> instead of <linux-private/linux/$file>Thomas Haller2023-08-0846-55/+55
| | | | | | As we now copy all linux headers, and we have include/linux-private in our include search path, just include the linux headers as we commonly do.
* idiag: "fix" license for "idiag-socket-details" toolThomas Haller2023-08-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | This tool had a GPL-2.0-only license text when it was added. That is not what we require for libnl3 contributions. Since being added, the file was only touched by me (Thomas Haller) and Yegor Yefremov. Those are all trivial contributions. This leaves Joe Damato, who initially contributed the file. Joe agrees with this adjustment of the license (Thanks!!). Note that there is also a line: Copyright (c) 2013 Sassano Systems LLC <joe@sassanosystems.com> Apparently, the copyright for the contribution is also with Joe, so there is no further problem. Fixes: c97c8c2bfdb0 ('Add idiag-socket-details') https://github.com/thom311/libnl/pull/354
* include: don't explicitly include headers from "nl-default.h"Thomas Haller2023-08-031-2/+0
|
* include: include private linux headers with explicit pathThomas Haller2023-08-0346-55/+55
| | | | | | | We have copies of the linux headers in include/linux-private. For those files, include the copies explicitly. No practice there is no difference, since we build with :-Ilinux-private".
* include: drop "netlink-private/netlink.h" and move declarationsThomas Haller2023-08-021-2/+1
|
* all: cleanup includes and use "nm-default.h"Thomas Haller2023-08-0260-95/+218
|
* include: add "nl-default.h" headerThomas Haller2023-08-021-3/+3
| | | | | | | | | | | | | In an autotools project, <config.h> should be included as very first thing in almost all cases. We also want include other stuff, in particular "include/base", which contains our own extensions on top of plain C (it is thus applicable to all our C modules). Add a "nl-default.h", which can be included as first and prepares a base for each C source. Additionally, since header files are never compiled directly (only indirectly by being included), they can rely that "nl-default.h" is always available.
* build: move "lib/defs.h" to "include/config.h"Thomas Haller2023-08-021-2/+2
| | | | | | | It seems "config.h" is the more common name for the autotools generated header. In any case, it should not be under "lib", because lib is specifically about libnl-3 and similar libraries. It's awkward for modules under src to include from lib.
* include: split and drop "netlink-private/types.h"Thomas Haller2023-08-021-1/+4
| | | | | Move all the declarations from "netlink-private/types.h" to places closer to where they are used.
* include: rename "nl-hidden-route" to "nl-priv-dynamic-route"Thomas Haller2023-08-024-4/+4
| | | | | Naming is just so important to understand what this is. This name is better.
* route: move hidden symbols from "include/netlink-private/route/tc-api.h"Thomas Haller2023-08-014-7/+8
| | | | | | | | | | | To new header "include/nl-hidden-route/nl-hidden-route.h". libnl-route-3 exports some symbols that are no in public headers. They are however used by other internal users in the source tree. Such usage seems bad. We should clearly see where this is done. Move the symbols to a separate header, where it's clear who may use this header, and what's its purpose.
* base: move "netlink-private/utils.h" to "base/nl-base-utils.h"Thomas Haller2023-07-311-1/+1
| | | | | | | | | | "base/nl-base-utils.h" (formerly "netlink-private/utils.h") contains no libnl3 specific references, just a bunch of C helpers. It's also a header-only "library", so it can be freely used by all our C-code. Move it to a separate directory, to make that clear.
* cli: add nl-nh-list utilityStanislav Zaikin2023-07-312-0/+136
|
* nl-pktloc-lookup: fix buffer overflow when printing alignmentThomas Haller2022-04-221-23/+34
| | | | | | | | | | | | | | | While at it, avoid global variables. Coverity also warned at this place, though the warning from coverity was bogus: Error: STRING_OVERFLOW (CWE-120): libnl-3.6.0/src/nl-pktloc-lookup.c:72: fixed_size_dest: You might overrun the 16-character fixed-size string "buf" by copying "align_txt[loc->align]" without checking the length. # 70|··· # 71| if (loc->align <= 4) # 72|-> strcpy(buf, align_txt[loc->align]); # 73| else # 74| snprintf(buf, sizeof(buf), "%u", loc->align);
* utils: suppress coverity warning in nl_cli_load_module() about leaked handleThomas Haller2022-04-221-0/+2
| | | | | | | | | | | | | | | It's unclear to me, how to avoid this "leak". It's intentional, given the existing API. Try to suppress the warning. Error: RESOURCE_LEAK (CWE-772): libnl-3.6.0/src/lib/utils.c:232: alloc_fn: Storage is returned from allocation function "dlopen". libnl-3.6.0/src/lib/utils.c:232: var_assign: Assigning: "handle" = storage returned from "dlopen(path, 2)". libnl-3.6.0/src/lib/utils.c:236: leaked_storage: Variable "handle" going out of scope leaks the storage it points to. # 234| path, dlerror()); # 235| } # 236|-> } # 237| #else # 238| nl_cli_fatal(ENOTSUP, "Unable to load module \"%s\": built without dynamic libraries support\n",
* all: avoid coverity warnings about assigning variable but not using itThomas Haller2022-04-221-1/+2
| | | | | | | | | | | | Workaround coverity warnings like: Error: CLANG_WARNING: libnl-3.6.0/lib/netfilter/exp.c:428:7: warning[deadcode.DeadStores]: Although the value stored to 'err' is used in the enclosing expression, the value is never actually read from 'err' # 426| } # 427|··· # 428|-> if ((err = nfnl_exp_build_tuple(msg, exp, CTA_EXPECT_NAT)) < 0) # 429| goto nla_put_failure; # 430|···
* nl-monitor: support for setting libnl debug levelJoachim Wiberg2022-03-301-1/+6
| | | | | | | When debugging subystemns in libnl it's rather handy to use nl-monitor. This change adds support for setting the nl_debug level of libnl. Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
* nl-monitor: add missing --help to long_opts[]Joachim Wiberg2022-03-301-0/+1
| | | | Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
* mdb: support bridge multicast database notificationRubens Figueiredo2022-03-141-0/+2
| | | | | | | | | | | The Linux kernel has a notification system via Netlink that reports the changes in the multicast database over the RTNLGRP_MDB multicast socket. As such notifications such as RTM_NEWMDB, RTM_GETMDB can be processed in userspace. libnl must support the capability of processing these messages, e.g. RTM_GETMDB. This commit adds a new rtnl_mdb object as well as a route/mdb cache, in order to expose the contents of the multicast database.
* gitignore: merge all gitignore files in top level directoryThomas Haller2020-04-161-47/+0
| | | | | | | The source tree of libnl3 is fairly simple. We can afford thinking and reasoning about it as one. Don't spread out the .gitignore files, instead ignore all files consistently via the ignore file in the top level directory.
* license: fix and add SPDX license identifiers and drop license commentsThomas Haller2020-04-1659-414/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This also fixes a few wrong SPDX license identifiers, where the original license comment indicates GPL-2.0-only. This is not done manually, but by running the following script: --- #!/bin/bash # Tool to drop license comments, adding SPDX license identifiers, while preserving # copyright comments. The point is not to manually do this task, but perform some # hacked up string replacement. _cp() { /bin/cp "$@" } _cat() { /bin/cat "$@" } in_file() { local T=$(mktemp) _cp -f "$1" "$T" _cat "$T" rm -f "$T" } out_file() { local T=$(mktemp) _cat - > "$T" _cp -f "$T" "$1" rm -f "$T" } join() { _cat "$@" | awk '{ printf("%s#x#", $0)}' } unjoin() { _cat - | sed 's/#x#/\n/g' } files_all() { git ls-files | grep -v '\.png$' | grep -v '^include/linux-private/' } adjust() { NEWLINES='\(#x#\)\+' COPYRIGHTS='\(\( \* Copyright (c) 20..\(-20..\|, 20..\)\? [^#]\+#x#\)\+\( \*#x# \* \(Stolen[^#]*\|Based on [^#]*\)#x#\)\?\)' _cat - | \ sed '1s%^\(/\* SPDX-License-Identifier: LGPL-2.1-only \*/\|\)#x#/\*#x# \* [^#]*#x# \*#x# \*[ ]\+This library is free software; you can redistribute it and/or#x# \*[ ]\+modify it under the terms of the GNU Lesser General Public#x# \*[ ]\+License as published by the Free Software Foundation version 2.1#x# \*[ ]\+of the License.#x# \*#x#'"$COPYRIGHTS"' \*/'"$NEWLINES"'%/\* SPDX-License-Identifier: LGPL-2.1-only \*/#x#/*#x#\2 */#x##x#%' | \ sed '1s%^/\*#x# \* [^#]*#x# \*#x# \*[ ]\+This library is free software; you can redistribute it and/or#x# \*[ ]\+modify it under the terms of the GNU Lesser General Public#x# \*[ ]\+License as published by the Free Software Foundation version 2.1#x# \*[ ]\+of the License.#x# \*/'"$NEWLINES"'%/\* SPDX-License-Identifier: LGPL-2.1-only \*/#x##x#%' | \ sed '1s%^\(\)/\*#x# \* [^#]*#x# \*#x# \*[ ]\+This library is free software; you can redistribute it and/or#x# \*[ ]\+modify it under the terms of the GNU Lesser General Public#x# \*[ ]\+License as published by the Free Software Foundation version 2.1#x# \*[ ]\+of the License.#x# \*#x#'"$COPYRIGHTS"' \*/'"$NEWLINES"'%/\* SPDX-License-Identifier: LGPL-2.1-only \*/#x#/*#x#\2 */#x##x#%' | \ sed '1s%^\(/\* SPDX-License-Identifier: LGPL-2.1-only \*/\|\)#x#/\*#x# \* [^#]*#x# \*#x# \*[ ]\+This library is free software; you can redistribute it and/or#x# \*[ ]\+modify it under the terms of the GNU General Public License as#x# \*[ ]\+published by the Free Software Foundation version 2 of the License.#x# \*#x#'"$COPYRIGHTS"' \*/'"$NEWLINES"'%/\* SPDX-License-Identifier: GPL-2.0-only \*/#x#/*#x#\2 */#x##x#%' } FILES=( $(files_all) ) for f in "${FILES[@]}"; do echo "processing \"$f\"..." in_file "$f" | join | adjust | unjoin | out_file "$f" done
* license: cleanup copyright commentsThomas Haller2020-04-161-1/+0
| | | | Manually make copyright comments in a consistent format.
* all: Avoid pointer arithmetic on `void *`Michael Forney2019-08-161-3/+3
| | | | | | | ISO C requires that the pointer operand to the binary + operator be to a complete object type[0]. [0] http://port70.net/~nsz/c/c11/n1570.html#6.5.6p2
* Add SPDX identifiersYegor Yefremov2019-08-1259-0/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Software Package Data Exchange identifiers help to detect source file licenses and hence simplify the FOSS compliance process. Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com> https://github.com/thom311/libnl/pull/219 --- FILES=( lib/addr.c lib/attr.c lib/cache.c lib/cache_mngr.c lib/cache_mngt.c lib/data.c lib/error.c lib/fib_lookup/lookup.c lib/fib_lookup/request.c lib/genl/ctrl.c lib/genl/family.c lib/genl/genl.c lib/genl/mngt.c lib/handlers.c lib/hash.c lib/hashtable.c lib/idiag/idiag.c lib/idiag/idiag_meminfo_obj.c lib/idiag/idiag_msg_obj.c lib/idiag/idiag_req_obj.c lib/idiag/idiag_vegasinfo_obj.c lib/mpls.c lib/msg.c lib/netfilter/ct.c lib/netfilter/ct_obj.c lib/netfilter/exp.c lib/netfilter/exp_obj.c lib/netfilter/log.c lib/netfilter/log_msg.c lib/netfilter/log_msg_obj.c lib/netfilter/log_obj.c lib/netfilter/netfilter.c lib/netfilter/nfnl.c lib/netfilter/queue.c lib/netfilter/queue_msg.c lib/netfilter/queue_msg_obj.c lib/netfilter/queue_obj.c lib/nl.c lib/object.c lib/route/act.c lib/route/addr.c lib/route/class.c lib/route/classid.c lib/route/cls.c lib/route/link.c lib/route/neigh.c lib/route/neightbl.c lib/route/netconf.c lib/route/nexthop.c lib/route/nexthop_encap.c lib/route/nh_encap_mpls.c lib/route/pktloc.c lib/route/qdisc.c lib/route/route.c lib/route/route_obj.c lib/route/route_utils.c lib/route/rtnl.c lib/route/rule.c lib/route/tc.c lib/socket.c lib/utils.c lib/version.c lib/xfrm/ae.c lib/xfrm/lifetime.c lib/xfrm/sa.c lib/xfrm/selector.c lib/xfrm/sp.c lib/xfrm/template.c src/genl-ctrl-list.c src/idiag-socket-details.c src/lib/addr.c src/lib/class.c src/lib/cls.c src/lib/ct.c src/lib/exp.c src/lib/link.c src/lib/neigh.c src/lib/qdisc.c src/lib/route.c src/lib/rule.c src/lib/tc.c src/lib/utils.c src/nf-ct-add.c src/nf-ct-events.c src/nf-ct-list.c src/nf-exp-add.c src/nf-exp-delete.c src/nf-exp-list.c src/nf-log.c src/nf-monitor.c src/nf-queue.c src/nl-addr-add.c src/nl-addr-delete.c src/nl-addr-list.c src/nl-class-add.c src/nl-class-delete.c src/nl-class-list.c src/nl-classid-lookup.c src/nl-cls-add.c src/nl-cls-delete.c src/nl-cls-list.c src/nl-fib-lookup.c src/nl-link-enslave.c src/nl-link-ifindex2name.c src/nl-link-list.c src/nl-link-name2ifindex.c src/nl-link-release.c src/nl-link-set.c src/nl-link-stats.c src/nl-list-caches.c src/nl-list-sockets.c src/nl-monitor.c src/nl-neigh-add.c src/nl-neigh-delete.c src/nl-neigh-list.c src/nl-neightbl-list.c src/nl-pktloc-lookup.c src/nl-qdisc-add.c src/nl-qdisc-delete.c src/nl-qdisc-list.c src/nl-route-add.c src/nl-route-delete.c src/nl-route-get.c src/nl-route-list.c src/nl-rule-list.c src/nl-tctree-list.c src/nl-util-addr.c ) sed '1s#^#/* SPDX-License-Identifier: LGPL-2.1-only */\n#' "${FILES[@]}" -i
* nl-neigh-list: free allocated itemsTobias Jungel2018-06-251-0/+5
|
* build: sort entries in Makefile.am and .gitignore by nameThomas Haller2018-04-061-16/+16
|
* nf-ct-add typoLukáš Karas2018-04-062-2/+2
|
* add demo program for listen conntrack eventsLukáš Karas2018-04-062-0/+116
|
* Add support for label stack in nl-route commandsDavid Ahern2017-08-181-2/+16
| | | | | | | | | Add support for MPLS labels in nexthop specification. Specifically, the 'as' keyword specifies the MPLS label stack and if the route address family is MPLS then the nexthop via is added as a route via instead of a gateway (subtle differences introduced for MPLS). Signed-off-by: David Ahern <dsahern@gmail.com>
* all: avoid compiler warnings -Wimplicit-fallthroughThomas Haller2017-06-151-0/+1
|
* build: allow building cli without dynamic librarires supportThomas Haller2017-05-121-4/+19
| | | | | | | | | | | | | | Commit 3cb28534d34392ceec4adead0cfa97039796ccb7 enables building of cli always as part of `make check`. As cli previously always included <dlfcn.h>, this broke tests for building with toolchains that don't support dynamic library loading. Add a configure check and disable dlopen() based on whether <dlfcn.h> is available. Signed-off-by: Thomas Haller <thaller@redhat.com> https://github.com/thom311/libnl/pull/141
* route: Add support for MPLS to netconfDavid Ahern2017-05-121-0/+1
| | | | | | | | | | | | Add support to netconf for MPLS address family. v2 - change get method to return 0/error and take 'int *val' which is set to the value requested - added rtnl_netconf_get_input to libnl-route-3.sym Signed-off-by: David Ahern <dsa@cumulusnetworks.com> Signed-off-by: Thomas Haller <thaller@redhat.com>
* nl-monitor: Add support for netconf cachesDavid Ahern2017-05-121-0/+2
| | | | | | | Allow user to monitor netconf changes. Signed-off-by: David Ahern <dsa@cumulusnetworks.com> Signed-off-by: Thomas Haller <thaller@redhat.com>
* nl-monitor: All user to specify line formatDavid Ahern2017-05-121-40/+70
| | | | | | | | | | nl-monitor defaults to stats. Allow user to select brief and details. The known_groups is moved up to a global to allow a proper print_usage function. Signed-off-by: David Ahern <dsa@cumulusnetworks.com> Signed-off-by: Thomas Haller <thaller@redhat.com>
* lib: escape usage of strerror_l() if it doesn't exist in libcAlexey Brodkin2017-03-121-0/+6
| | | | | | | | | | | | | | | | uClibc doesn't implement strerror_l() and thus libnl starting from 3.2.29 couldn't be compiled with it any longer. To work-around that problem we'll just do a check on strerror_l() availability during configuration and if it's not there just fall back to locale-less strerror(). See-also: 6c2d111177e91184073c44f83d4a6182aaba06d7 http://lists.infradead.org/pipermail/libnl/2017-March/002301.html Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> Signed-off-by: Thomas Haller <thaller@redhat.com>
* include: don't include kernel headers in public libnl3 headersThomas Haller2017-03-0242-2/+86
| | | | | | | | | | | | | | | | | It would be desirable not to include kernel headers in our public libnl3 headers. As a test, remove all those includes, and fix compilation by explicitly including the kernel headers where needed. In some cases, that requires forward declaration for kernel structures, as we use them as part of our own headers. Realistically, we cannot drop those includes as it probalby breaks compilation for users that expect to get a certain kernel header when including a libnl3 header. So, this will not be done and the includes will be restored in the next commit. Do this step to show how it would be and to verify that we could build with such a change. The reason not to do this is backward compatibility (at compile-time).
* build: merge src/Makefile.am into top-level makefileThomas Haller2017-02-271-140/+0
|
* build: merge src/lib/Makefile.am into top-level makefileThomas Haller2017-02-272-61/+0
|
* fopen: add O_CLOEXECNick Kralevich2017-01-171-1/+1
| | | | | | | | | | Add O_CLOEXEC to various fopen() calls. This avoids file descriptors leaking across an exec() boundary in a multi-threaded program. Please see "man 2 open" for additional information about O_CLOEXEC. Signed-off-by: Nick Kralevich <nnk@google.com> https://github.com/thom311/libnl/pull/128
* nl-link-stats: prefer RTNL_LINK_STATS_MAX over __RTNL_LINK_STATS_MAXThomas Haller2016-11-291-2/+2
| | | | | | | | The result is basically the same, but I feel that __RTNL_LINK_STATS_MAX is an internal variable that shouldn't be used. Thus, let's iterate instead until <= MAX. Signed-off-by: Thomas Haller <thaller@redhat.com>
* src: nl-link-stats: use correct rtnl link stats maximumTobias Klauser2016-11-291-2/+2
| | | | | | | | | Use __RTNL_LINK_STATS_MAX instead of RTNL_LINK_STATS_MAX when iterating over all rtnl link stat counters. Otherwise, the last stat counter will always be missing, as RTNL_LINK_STATS_MAX is the value of the last valid index. Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
* src: switch to using strerror_l() instead of strerror_r()André Draszik2016-08-251-3/+17
| | | | | | | | | | | | | | | | | | | | | | | | glibc provides two versions of strerror_r(), which can be chosen between using feature test macros _GNU_SOURCE and _POSIX_C_SOURCE. libnl is built using the former, hence we get the glibc special version, and all code so far has been written for this. Other C libraries like musl on the other hand only try to be posix compliant, and only ever provide the posix version of strerror_r(), which has a different signature. Uses in libnl hence generally cause printf() of an *int* with a *string format* specifier for that reason. Additionally, strerror_r() has been deprecated: http://austingroupbugs.net/view.php?id=655 Switch to using strerror_l(). Signed-off-by: André Draszik <adraszik@tycoint.com> Reviewed-by: Stephane Ayotte <sayotte@tycoint.com> Signed-off-by: Thomas Haller <thaller@redhat.com>
* trivial: whitespace-only fixes for src and libPeter Wu2016-08-1222-135/+135
| | | | | | | | | | | Fixes alignment, lines with just whitespace and mixed tab/space indentation. Searched, reviewed and optionally fixed in vim using regex ^\t* [\t ]*\([^*us ]\|$\)\|\t\+$ http://lists.infradead.org/pipermail/libnl/2016-August/002183.html Signed-off-by: Peter Wu <peter@lekensteyn.nl> Signed-off-by: Thomas Haller <thaller@redhat.com>
* build: move -rdynamic from CPPFLAGS to LDFLAGSTobias Klauser2016-03-311-2/+2
| | | | | | | | | | The -rdynamic flag is a linker flag, not a compiler/preprocessor flag, so move it to LDFLAGS. Signed-off-by: Tobias Klauser <tklauser@distanz.ch> Signed-off-by: Thomas Haller <thaller@redhat.com> http://lists.infradead.org/pipermail/libnl/2016-March/002100.html
* link/neigh: add flags option to link and neighbor cachesDavid Ahern2015-11-193-3/+33
| | | | | | | | | | | | | Both link and neighbor cache support specify multiple groups (nl_af_group), but the alloc_cache functions for both do not set the NL_CACHE_AF_ITER flag before populating the cache so only the first group is used by default. This patch adds an API to pass in flags to make that happen and updates the nl-neigh-list command to make use of it. http://lists.infradead.org/pipermail/libnl/2015-October/001996.html Signed-off-by: David Ahern <dsa@cumulusnetworks.com> Signed-off-by: Thomas Haller <thaller@redhat.com>
* build: fix path to cli linker version script for out-of-tree buildjfarrell2015-06-191-2/+2
| | | | https://github.com/thom311/libnl/pull/78
* build: extend configure option --enable-cli and install all cli programsThomas Haller2015-03-181-15/+23
| | | | | | | | | | | | Previously, some cli programs were installed to sbin/ and most were not installed at all. Now, by default install all of them to bin/ directory. But extend the configure option to allow specifying 'no-inst', 'bin', or 'sbin'. Acked-by: Thomas Graf <tgraf@suug.ch> Signed-off-by: Thomas Haller <thaller@redhat.com>
* build/trivial: sort PROGRAMS list in src/Makefile.amThomas Haller2015-03-181-18/+40
| | | | Signed-off-by: Thomas Haller <thaller@redhat.com>