diff options
author | Andrew Geissler <geissonator@yahoo.com> | 2020-08-21 23:58:33 +0300 |
---|---|---|
committer | Andrew Geissler <geissonator@yahoo.com> | 2020-09-04 02:23:19 +0300 |
commit | 635e0e4637e40ba03f69204265427550fd404f4c (patch) | |
tree | 0d690d7b8b3c0b0e5ac9b807152b6cc0560d2037 /poky/meta/recipes-extended/net-tools | |
parent | afce0b5cf42bd06e31b142730c0acf3d60a8cf2f (diff) | |
download | openbmc-635e0e4637e40ba03f69204265427550fd404f4c.tar.xz |
poky: subtree update:23deb29c1b..c67f57c09e
Adrian Bunk (1):
librsvg: Upgrade 2.40.20 -> 2.40.21
Alejandro Hernandez (1):
musl: Upgrade to latest release 1.2.1
Alex Kiernan (8):
systemd: Upgrade v245.6 -> v246
systemd: Move musl patches to SRC_URI_MUSL
systemd: Fix path to modules-load.d et al
nfs-utils: Drop StandardError=syslog from systemd unit
openssh: Drop StandardError=syslog from systemd unit
volatile-binds: Drop StandardOutput=syslog from systemd unit
systemd: Upgrade v246 -> v246.1
systemd: Upgrade v246.1 -> v246.2
Alexander Kanavin (16):
sysvinit: update 2.96 -> 2.97
kbd: update 2.2.0 -> 2.3.0
gnu-config: update to latest revision
go: update 1.14.4 -> 1.14.6
meson: update 0.54.3 -> 0.55.0
nasm: update 2.14.02 -> 2.15.03
glib-2.0: correct build with latest meson
rsync: update 3.2.1 -> 3.2.2
vala: update 0.48.6 -> 0.48.7
logrotate: update 3.16.0 -> 3.17.0
mesa: update 20.1.2 -> 20.1.4
libcap: update 2.36 -> 2.41
net-tools: fix upstream version check
meson.bbclass: add a cups-config entry
oeqa: write @OETestTag content into json test reports for each case
libhandy: upstream has moved to gnome
Alistair Francis (1):
binutils: Remove RISC-V PIE patch
Andrei Gherzan (2):
initscripts: Fix various shellcheck warnings in populate-volatile.sh
initscripts: Fix populate-volatile.sh bug when file/dir exists
Anuj Mittal (4):
harfbuzz: upgrade 2.6.8 -> 2.7.1
sqlite3: upgrade 3.32.3 -> 3.33.0
stress-ng: upgrade 0.11.17 -> 0.11.18
x264: upgrade to latest revision
Armin Kuster (1):
glibc: Secruity fix for CVE-2020-6096
Bruce Ashfield (25):
linux-yocto/5.4: update to v5.4.53
linux-yocto/5.4: fix perf build with binutils 2.35
kernel/yocto: allow dangling KERNEL_FEATURES
linux-yocto/5.4: update to v5.4.54
systemtap: update to 4.3 latest
kernel-devsrc: fix x86 (32bit) on target module build
lttng-modules: update to 2.12.2 (fixes v5.8+ builds)
yocto-bsps: update reference BSPs to 5.4.54
kernel-yocto: enhance configuration queue analysis capabilities
strace: update to 5.8 (fix build against v5.8 uapi headers)
linux-yocto-rt/5.4: update to rt32
linux-yocto/5.4: update to v5.4.56
linux-yocto/5.4: update to v5.4.57
kernel-yocto: set cwd before querying the meta data dir
kernel-yocto: make # is not set matching more precise
kernel-yocto: split meta data gathering into patch and config phases
make-mod-scripts: add HOSTCXX definitions and gmp-native dependency
kernel-devsrc: fix on target modules prepare for ARM
kernel-devsrc: 5.8 + gcc10 require gcc-plugins + libmpc-dev
linux-yocto/5.4: update to v5.4.58
linux-yocto/5.4: perf cs-etm: Move definition of 'traceid_list' global variable from header file
libc-headers: update to v5.8
linux-yocto: introduce 5.8 reference kernel
kernel-yocto/5.8: add gmp-native dependency
linux-yocto/5.8: update to v5.8.1
Chandana kalluri (1):
qemu.inc: Use virtual/libgl instead of mesa
Changhyeok Bae (2):
iproute2: upgrade 5.7.0 -> 5.8.0
ethtool: upgrade 5.7 -> 5.8
Changqing Li (5):
layer.conf: fix adwaita-icon-theme signature change problem
gtk-icon-cache.bbclass: add features_check
gcc-runtime.inc: fix m32 compile fail with x86-64 compiler
libffi: fix multilib header conflict
gpgme: fix multilib header conflict
Chen Qi (3):
grub: set CVE_PRODUCT to grub2
runqemu: fix permission check of /dev/vhost-net
fribidi: extend CVE_PRODUCT to include fribidi
Chris Laplante (11):
lib/oe/log_colorizer.py: add LogColorizerProxyProgressHandler
bitbake: build: print traceback if progress handler can't be created
bitbake: build: create_progress_handler: fix calling 'get' on NoneType
bitbake: progress: modernize syntax, format
bitbake: progress: fix hypothetical NameError if 'progress' isn't set
bitbake: progress: filter ANSI escape codes before looking for progress text
bitbake: tests/color: add test suite for ANSI color code filtering
bitbake: data: emit filename/lineno information for shell functions
bitbake: build: print a backtrace when a Bash shell function fails
bitbake: build: print a backtrace with the original metadata locations of Bash shell funcs
bitbake: build: make shell traps less chatty when 'bitbake -v' is used
Dan Callaghan (1):
stress-ng: create a symlink for /usr/bin/stress
Daniel Ammann (1):
wic: fix typo
Daniel Gomez (1):
allarch: Add missing allarch ttf-bitstream-vera
Diego Sueiro (1):
cml1: Add the option to choose the .config root dir
Dmitry Baryshkov (3):
mesa: enable freedreno Vulkan driver if freedreno is enabled
arch-armv8-2a.inc: add tune include for armv8.2a
tune-cortexa55.inc: switch to using armv8.2a include file
Fredrik Gustafsson (13):
package_manager: Move to package_manager/__init__.py
rpm: Move manifest to its own subdir
ipk: Move ipk manifest to its own subdir
deb: Move deb manifest to its own subdir
rpm: Move rootfs to its own dir
ipk: Move rootfs to its own dir
deb: Move rootfs to its own dir
rpm: Move sdk to its own dir
ipk: Move sdk to its own dir
deb: Move sdk to its own dir
rpm: Move package manager to its own dir
ipk: Move package manager to its own dir
deb: Move package manager to its own dir
Guillaume Champagne (1):
weston: add missing packageconfigs
Jeremy Puhlman (1):
gobject-introspection: disable scanner caching in install
Joe Slater (3):
libdnf: allow reproducible binary builds
gconf: use python3
gcr: make sure gcr-oids.h is generated
Jonathan Richardson (1):
cortex-m0plus.inc: Add tuning for cortex M0 plus
Joshua Watt (3):
bitbake: bitbake: command: Handle multiconfig in findSigInfo
lib/oe/reproducible.py: Fix git HEAD check
perl: Add check for non-arch Storable.pm file
Khasim Mohammed (2):
wic/bootimg-efi: Add support for IMAGE_BOOT_FILES
wic/bootimg-efi: Update docs for IMAGE_BOOT_FILES support in bootimg-efi
Khem Raj (23):
qemumips: Use 34Kf CPU emulation
libunwind: Backport a fix for -fno-common option to compile
dhcp: Use -fcommon compiler option
inetutils: Fix build with -fno-common
libomxil: Use -fcommon compiler option
kexec-tools: Fix build with -fno-common
distcc: Fix build with -fno-common
libacpi: Fix build with -fno-common
minicom: Fix build when using -fno-common
binutils: Upgrade to 2.35 release
xf86-video-intel: Fix build with -fno-common
glibc: Upgrade to 2.32 release
go: Upgrade to 1.14.7
webkitgtk: Upgrade to 2.28.4
kexec-tools: Fix additional duplicate symbols on aarch64/x86_64 builds
gcc: Upgrade to 10.2.0
buildcpio.py: Apply patch to fix build with -fno-common
buildgalculator: Patch to fix build with -fno-common
localedef: Update to include floatn.h fix
xserver-xorg: Fix build with -fno-common/mips
binutils: Let crosssdk gold linker generate 4096 btyes long .interp section
gcc-cross-canadian: Correct the regexp to delete versioned gcc binary
curl: Upgrade to 7.72.0
Konrad Weihmann (2):
rootfs-post: remove traling blanks from tasks
cve-update: handle baseMetricV2 as optional
Lee Chee Yang (4):
buildhistory: use pid for temporary txt file name
checklayer: check layer in BBLAYERS before test
ghostscript: fix CVE-2020-15900
qemu : fix CVE-2020-15863
Mark Hatle (1):
package.bbclass: Sort shlib2 output for hash equivalency
Martin Jansa (2):
net-tools: upgrade to latest revision in upstream repo instead of old debian snapshot
perf: backport a fix for confusing non-fatal error
Matt Madison (1):
cogl-1.0: correct X11 dependencies
Matthew (3):
ltp: remove --with-power-management-testsuite from EXTRA_OECONF
ltp: remove OOM tests from runtest/mm
ltp: make copyFrom scp command non-fatal
Mikko Rapeli (2):
alsa-topology-conf: use ${datadir} in do_install()
alsa-ucm-conf: use ${datadir} in do_install()
Ming Liu (3):
conf/machine: set UBOOT_MACHINE for qemumips and qemumips64
multilib.conf: add u-boot to NON_MULTILIB_RECIPES
libubootenv: uprev to v0.3
Mingli Yu (2):
ccache: Upgrade to 3.7.11
Revert "python3: define a profile directory path"
Naoto Yamaguchi (1):
patch.py: Change to more strictly fuzz detection
Nathan Rossi (4):
libexif: Enable native and nativesdk
cmake.bbclass: Rework compiler program variables for allarch
python3: Improve handling of python3 manifest generation
python3-manifest.json: Updates
Oleksandr Kravchuk (9):
python3-setuptools: update to 49.2.0
bash-completion: update to 2.11
python3: update to 3.8.5
re2c: update to 2.0
diffoscope: update to 153
json-c: update to 0.15
git: update 2.28.0
libwpe: update to 1.7.1
python3-setuptools: update to 49.3.1
Richard Purdie (20):
perl: Avoid race continually rebuilding miniperl
gcc: Fix mangled patch
bitbake: server/process: Fix UI first connection tracking
bitbake: server/process: Account for xmlrpc connections
Revert "lib/oe/log_colorizer.py: add LogColorizerProxyProgressHandler"
lib/package_manager: Fix missing imports
populate_sdk_ext: Ensure buildtools doesn't corrupt OECORE_NATIVE_SYSROOT
buildtools: Handle generic environment setup injection
uninative: Handle PREMIRRORS generically
maintainers: Update entries for Mark Hatle
gcr: Fix patch Upstream-Status from v2 patch
bitbake: server/process: Remove pointless process forking
bitbake: server/process: Simplfy idle callback handler function
bitbake: server/process: Pass timeout/xmlrpc parameters directly to the server
bitbake: server/process: Add extra logfile flushing
packagefeed-stability: Remove as obsolete
build-compare: Drop recipe
qemu: Upgrade 5.0.0 -> 5.1.0
selftest/tinfoil: Increase wait event timeout
lttng-tools: upgrade 2.12.1 -> 2.12.2
Ross Burton (3):
popt: upgrade to 1.18
conf/machine: set UBOOT_MACHINE for qemuarm and qemuarm64
gcc: backport a fix for out-of-line atomics on aarch64
TeohJayShen (2):
oeqa/manual/bsp-hw.json : remove shutdown_system test
oeqa/manual/bsp-hw.json : remove X_server_can_start_up_with_runlevel_5_boot test
Trevor Gamblin (1):
llvm: upgrade 9.0.1 -> 10.0.1
Tyler Hicks (1):
kernel-devicetree: Fix intermittent build failures caused by DTB builds
Usama Arif (3):
kernel-fitimage: build configuration for image tree when dtb is not present
oeqa/selftest/imagefeatures: Add testcase for fitImage
ref-manual: Add documentation for kernel-fitimage
Vasyl Vavrychuk (1):
runqemu: Check gtk or sdl option is passed together with gl or gl-es options.
Yi Zhao (1):
pbzip2: extend for nativesdk
Zhang Qiang (1):
kernel.bbclass: Configuration for environment with HOSTCXX
hongxu (1):
nativesdk-rpm: adjust RPM_CONFIGDIR paths dynamically
zangrc (8):
libevdev:upgrade 1.9.0 -> 1.9.1
mpg123:upgrade 1.26.2 -> 1.26.3
flex: Refresh patch
stress-ng:upgrade 0.11.15 -> 0.11.17
sudo:upgrade 1.9.1 -> 1.9.2
libcap: Upgrade 2.41 -> 2.42
libinput: Upgrade 1.15.6 -> 1.16.0
python3-setuptools: Upgrade 49.2.0 -> 49.2.1
Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Change-Id: Ic7fa1e8484c1c7722a70c75608aa4ab21fa7d755
Diffstat (limited to 'poky/meta/recipes-extended/net-tools')
13 files changed, 173 insertions, 1810 deletions
diff --git a/poky/meta/recipes-extended/net-tools/net-tools/0001-added-ull-prefix-to-unsigned-long-long-constants-to-.patch b/poky/meta/recipes-extended/net-tools/net-tools/0001-added-ull-prefix-to-unsigned-long-long-constants-to-.patch deleted file mode 100644 index 523d434b7..000000000 --- a/poky/meta/recipes-extended/net-tools/net-tools/0001-added-ull-prefix-to-unsigned-long-long-constants-to-.patch +++ /dev/null @@ -1,381 +0,0 @@ -From eb04ef31571f6c707eacaba6846feeebfab518e6 Mon Sep 17 00:00:00 2001 -From: Bernd Eckenfels <net-tools@lina.inka.de> -Date: Thu, 29 May 2003 02:09:14 +0000 -Subject: [PATCH] added 'ull' prefix to unsigned long long constants to make - gcc 3.3 happy - -Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> -Upstream-Status: Backport [https://sourceforge.net/p/net-tools/code/ci/eb04ef31571f6c707eacaba6846feeebfab518e6] ---- - lib/interface.c | 299 ++++++++++++++++++++++++++---------------------- - 1 file changed, 161 insertions(+), 138 deletions(-) - -diff -uNr net-tools-1.60.orig/lib/interface.c net-tools-1.60/lib/interface.c ---- net-tools-1.60.orig/lib/interface.c 2020-06-16 10:04:16.308411879 +0000 -+++ net-tools-1.60/lib/interface.c 2020-06-16 10:05:15.697264291 +0000 -@@ -23,7 +23,6 @@ - #include <string.h> - #include <unistd.h> - #include <ctype.h> --#include <string.h> - - #if HAVE_AFIPX - #if (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) -@@ -654,6 +653,8 @@ - const char *Rext = "B"; - const char *Text = "B"; - -+ static char flags[200]; -+ - #if HAVE_AFIPX - static struct aftype *ipxtype = NULL; - #endif -@@ -685,32 +686,68 @@ - if (hw == NULL) - hw = get_hwntype(-1); - -- printf(_("%-9s Link encap:%s "), ptr->name, hw->title); -- /* For some hardware types (eg Ash, ATM) we don't print the -- hardware address if it's null. */ -- if (hw->print != NULL && (! (hw_null_address(hw, ptr->hwaddr) && -- hw->suppress_null_addr))) -- printf(_("HWaddr %s "), hw->print(ptr->hwaddr)); --#ifdef IFF_PORTSEL -- if (ptr->flags & IFF_PORTSEL) { -- printf(_("Media:%s"), if_port_text[ptr->map.port][0]); -- if (ptr->flags & IFF_AUTOMEDIA) -- printf(_("(auto)")); -- } -+ sprintf(flags, "flags=%d<", ptr->flags); -+ /* DONT FORGET TO ADD THE FLAGS IN ife_print_short, too */ -+ if (ptr->flags == 0) -+ strcat(flags,">"); -+ if (ptr->flags & IFF_UP) -+ strcat(flags,_("UP,")); -+ if (ptr->flags & IFF_BROADCAST) -+ strcat(flags,_("BROADCAST,")); -+ if (ptr->flags & IFF_DEBUG) -+ strcat(flags,_("DEBUG,")); -+ if (ptr->flags & IFF_LOOPBACK) -+ strcat(flags,_("LOOPBACK,")); -+ if (ptr->flags & IFF_POINTOPOINT) -+ strcat(flags,_("POINTOPOINT,")); -+ if (ptr->flags & IFF_NOTRAILERS) -+ strcat(flags,_("NOTRAILERS,")); -+ if (ptr->flags & IFF_RUNNING) -+ strcat(flags,_("RUNNING,")); -+ if (ptr->flags & IFF_NOARP) -+ strcat(flags,_("NOARP,")); -+ if (ptr->flags & IFF_PROMISC) -+ strcat(flags,_("PROMISC,")); -+ if (ptr->flags & IFF_ALLMULTI) -+ strcat(flags,_("ALLMULTI,")); -+ if (ptr->flags & IFF_SLAVE) -+ strcat(flags,_("SLAVE,")); -+ if (ptr->flags & IFF_MASTER) -+ strcat(flags,_("MASTER,")); -+ if (ptr->flags & IFF_MULTICAST) -+ strcat(flags,_("MULTICAST,")); -+#ifdef HAVE_DYNAMIC -+ if (ptr->flags & IFF_DYNAMIC) -+ strcat(flags,_("DYNAMIC,")); -+#endif -+ /* DONT FORGET TO ADD THE FLAGS IN ife_print_short */ -+ if (flags[strlen(flags)-1] == ',') -+ flags[strlen(flags)-1] = '>'; -+ else -+ flags[strlen(flags)-1] = 0; -+ -+ -+ printf(_("%s: %s mtu %d metric %d"), -+ ptr->name, flags, ptr->mtu, ptr->metric ? ptr->metric : 1); -+#ifdef SIOCSKEEPALIVE -+ if (ptr->outfill || ptr->keepalive) -+ printf(_(" outfill %d keepalive %d"), -+ ptr->outfill, ptr->keepalive); - #endif - printf("\n"); - - #if HAVE_AFINET - if (ptr->has_ip) { -- printf(_(" %s addr:%s "), ap->name, -+ printf(_(" %s %s"), ap->name, - ap->sprint(&ptr->addr, 1)); -- if (ptr->flags & IFF_POINTOPOINT) { -- printf(_(" P-t-P:%s "), ap->sprint(&ptr->dstaddr, 1)); -- } -+ printf(_(" netmask %s"), ap->sprint(&ptr->netmask, 1)); - if (ptr->flags & IFF_BROADCAST) { -- printf(_(" Bcast:%s "), ap->sprint(&ptr->broadaddr, 1)); -+ printf(_(" broadcast %s"), ap->sprint(&ptr->broadaddr, 1)); - } -- printf(_(" Mask:%s\n"), ap->sprint(&ptr->netmask, 1)); -+ if (ptr->flags & IFF_POINTOPOINT) { -+ printf(_(" destination %s"), ap->sprint(&ptr->dstaddr, 1)); -+ } -+ printf("\n"); - } - #endif - -@@ -727,29 +764,30 @@ - addr6p[0], addr6p[1], addr6p[2], addr6p[3], - addr6p[4], addr6p[5], addr6p[6], addr6p[7]); - inet6_aftype.input(1, addr6, (struct sockaddr *) &sap); -- printf(_(" inet6 addr: %s/%d"), -- inet6_aftype.sprint((struct sockaddr *) &sap, 1), plen); -- printf(_(" Scope:")); -- switch (scope) { -- case 0: -- printf(_("Global")); -- break; -- case IPV6_ADDR_LINKLOCAL: -- printf(_("Link")); -- break; -- case IPV6_ADDR_SITELOCAL: -- printf(_("Site")); -- break; -- case IPV6_ADDR_COMPATv4: -- printf(_("Compat")); -- break; -- case IPV6_ADDR_LOOPBACK: -- printf(_("Host")); -- break; -- default: -- printf(_("Unknown")); -+ printf(_(" %s %s prefixlen %d"), -+ inet6_aftype.name, -+ inet6_aftype.sprint((struct sockaddr *) &sap, 1), -+ plen); -+ printf(_(" scopeid 0x%x"), scope); -+ -+ flags[0] = '<'; flags[1] = 0; -+ if (scope & IPV6_ADDR_COMPATv4) { -+ strcat(flags, _("compat,")); -+ scope -= IPV6_ADDR_COMPATv4; - } -- printf("\n"); -+ if (scope == 0) -+ strcat(flags, _("global,")); -+ if (scope & IPV6_ADDR_LINKLOCAL) -+ strcat(flags, _("link,")); -+ if (scope & IPV6_ADDR_SITELOCAL) -+ strcat(flags, _("site,")); -+ if (scope & IPV6_ADDR_LOOPBACK) -+ strcat(flags, _("host,")); -+ if (flags[strlen(flags)-1] == ',') -+ flags[strlen(flags)-1] = '>'; -+ else -+ flags[strlen(flags)-1] = 0; -+ printf("%s\n", flags); - } - } - fclose(f); -@@ -762,17 +800,17 @@ - - if (ipxtype != NULL) { - if (ptr->has_ipx_bb) -- printf(_(" IPX/Ethernet II addr:%s\n"), -- ipxtype->sprint(&ptr->ipxaddr_bb, 1)); -+ printf(_(" %s Ethernet-II %s\n"), -+ ipxtype->name, ipxtype->sprint(&ptr->ipxaddr_bb, 1)); - if (ptr->has_ipx_sn) -- printf(_(" IPX/Ethernet SNAP addr:%s\n"), -- ipxtype->sprint(&ptr->ipxaddr_sn, 1)); -+ printf(_(" %s Ethernet-SNAP %s\n"), -+ ipxtype->name, ipxtype->sprint(&ptr->ipxaddr_sn, 1)); - if (ptr->has_ipx_e2) -- printf(_(" IPX/Ethernet 802.2 addr:%s\n"), -- ipxtype->sprint(&ptr->ipxaddr_e2, 1)); -+ printf(_(" %s Ethernet802.2 %s\n"), -+ ipxtype->name, ipxtype->sprint(&ptr->ipxaddr_e2, 1)); - if (ptr->has_ipx_e3) -- printf(_(" IPX/Ethernet 802.3 addr:%s\n"), -- ipxtype->sprint(&ptr->ipxaddr_e3, 1)); -+ printf(_(" %s Ethernet802.3 %s\n"), -+ ipxtype->name, ipxtype->sprint(&ptr->ipxaddr_e3, 1)); - } - #endif - -@@ -781,7 +819,7 @@ - ddptype = get_afntype(AF_APPLETALK); - if (ddptype != NULL) { - if (ptr->has_ddp) -- printf(_(" EtherTalk Phase 2 addr:%s\n"), ddptype->sprint(&ptr->ddpaddr, 1)); -+ printf(_(" %s %s\n"), ddptype->name, ddptype->sprint(&ptr->ddpaddr, 1)); - } - #endif - -@@ -790,53 +828,30 @@ - ectype = get_afntype(AF_ECONET); - if (ectype != NULL) { - if (ptr->has_econet) -- printf(_(" econet addr:%s\n"), ectype->sprint(&ptr->ecaddr, 1)); -+ printf(_(" %s %s\n"), ectype->name, ectype->sprint(&ptr->ecaddr, 1)); - } - #endif - -- printf(" "); -- /* DONT FORGET TO ADD THE FLAGS IN ife_print_short, too */ -- if (ptr->flags == 0) -- printf(_("[NO FLAGS] ")); -- if (ptr->flags & IFF_UP) -- printf(_("UP ")); -- if (ptr->flags & IFF_BROADCAST) -- printf(_("BROADCAST ")); -- if (ptr->flags & IFF_DEBUG) -- printf(_("DEBUG ")); -- if (ptr->flags & IFF_LOOPBACK) -- printf(_("LOOPBACK ")); -- if (ptr->flags & IFF_POINTOPOINT) -- printf(_("POINTOPOINT ")); -- if (ptr->flags & IFF_NOTRAILERS) -- printf(_("NOTRAILERS ")); -- if (ptr->flags & IFF_RUNNING) -- printf(_("RUNNING ")); -- if (ptr->flags & IFF_NOARP) -- printf(_("NOARP ")); -- if (ptr->flags & IFF_PROMISC) -- printf(_("PROMISC ")); -- if (ptr->flags & IFF_ALLMULTI) -- printf(_("ALLMULTI ")); -- if (ptr->flags & IFF_SLAVE) -- printf(_("SLAVE ")); -- if (ptr->flags & IFF_MASTER) -- printf(_("MASTER ")); -- if (ptr->flags & IFF_MULTICAST) -- printf(_("MULTICAST ")); --#ifdef HAVE_DYNAMIC -- if (ptr->flags & IFF_DYNAMIC) -- printf(_("DYNAMIC ")); --#endif -- /* DONT FORGET TO ADD THE FLAGS IN ife_print_short */ -- printf(_(" MTU:%d Metric:%d"), -- ptr->mtu, ptr->metric ? ptr->metric : 1); --#ifdef SIOCSKEEPALIVE -- if (ptr->outfill || ptr->keepalive) -- printf(_(" Outfill:%d Keepalive:%d"), -- ptr->outfill, ptr->keepalive); -+ /* For some hardware types (eg Ash, ATM) we don't print the -+ hardware address if it's null. */ -+ if (hw->print != NULL && (! (hw_null_address(hw, ptr->hwaddr) && -+ hw->suppress_null_addr))) -+ printf(_(" %s %s"), hw->name, hw->print(ptr->hwaddr)); -+ else -+ printf(_(" %s"), hw->name); -+ if (ptr->tx_queue_len != -1) -+ printf(_(" txqueuelen %d"), ptr->tx_queue_len); -+ printf(" (%s)\n", hw->title); -+ -+#ifdef IFF_PORTSEL -+ if (ptr->flags & IFF_PORTSEL) { -+ printf(_(" media %s"), if_port_text[ptr->map.port][0]); -+ if (ptr->flags & IFF_AUTOMEDIA) -+ printf(_("autoselect")); -+ printf("\n"); -+ } - #endif -- printf("\n"); -+ - - /* If needed, display the interface statistics. */ - -@@ -845,19 +860,9 @@ - * not for the aliases, although strictly speaking they're shared - * by all addresses. - */ -- printf(" "); -- -- printf(_("RX packets:%llu errors:%lu dropped:%lu overruns:%lu frame:%lu\n"), -- ptr->stats.rx_packets, ptr->stats.rx_errors, -- ptr->stats.rx_dropped, ptr->stats.rx_fifo_errors, -- ptr->stats.rx_frame_errors); -- if (can_compress) -- printf(_(" compressed:%lu\n"), ptr->stats.rx_compressed); - - rx = ptr->stats.rx_bytes; -- tx = ptr->stats.tx_bytes; - short_rx = rx * 10; -- short_tx = tx * 10; - if (rx > 1125899906842624ull) { - short_rx /= 1125899906842624ull; - Rext = "PiB"; -@@ -874,6 +879,8 @@ - short_rx /= 1024; - Rext = "KiB"; - } -+ tx = ptr->stats.tx_bytes; -+ short_tx = tx * 10; - if (tx > 1125899906842624ull) { - short_tx /= 1125899906842624ull; - Text = "PiB"; -@@ -891,37 +898,50 @@ - Text = "KiB"; - } - -- printf(" "); -- printf(_("TX packets:%llu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n"), -- ptr->stats.tx_packets, ptr->stats.tx_errors, -- ptr->stats.tx_dropped, ptr->stats.tx_fifo_errors, -- ptr->stats.tx_carrier_errors); -- printf(_(" collisions:%lu "), ptr->stats.collisions); -- if (can_compress) -- printf(_("compressed:%lu "), ptr->stats.tx_compressed); -- if (ptr->tx_queue_len != -1) -- printf(_("txqueuelen:%d "), ptr->tx_queue_len); -- printf("\n "); -- printf(_("RX bytes:%llu (%lu.%lu %s) TX bytes:%llu (%lu.%lu %s)\n"), -+ printf(" "); -+ printf(_("RX packets %llu bytes %llu (%lu.%lu %s)\n"), -+ ptr->stats.rx_packets, - rx, (unsigned long)(short_rx / 10), -- (unsigned long)(short_rx % 10), Rext, -- tx, (unsigned long)(short_tx / 10), -- (unsigned long)(short_tx % 10), Text); -+ (unsigned long)(short_rx % 10), Rext); -+ if (can_compress) { -+ printf(" "); -+ printf(_("RX compressed:%lu\n"), ptr->stats.rx_compressed); -+ } -+ printf(" "); -+ printf(_("RX errors %lu dropped %lu overruns %lu frame %lu\n"), -+ ptr->stats.rx_errors, ptr->stats.rx_dropped, -+ ptr->stats.rx_fifo_errors, ptr->stats.rx_frame_errors); -+ -+ -+ printf(" "); -+ printf(_("TX packets %llu bytes %llu (%lu.%lu %s)\n"), -+ ptr->stats.tx_packets, -+ tx, (unsigned long)(short_tx / 10), -+ (unsigned long)(short_tx % 10), Text); -+ if (can_compress) { -+ printf(" "); -+ printf(_("TX compressed %lu\n"), ptr->stats.tx_compressed); -+ } -+ printf(" "); -+ printf(_("TX errors %lu dropped %lu overruns %lu carrier %lu collisions %lu\n"), -+ ptr->stats.tx_errors, -+ ptr->stats.tx_dropped, ptr->stats.tx_fifo_errors, -+ ptr->stats.tx_carrier_errors, ptr->stats.collisions); - } - - if ((ptr->map.irq || ptr->map.mem_start || ptr->map.dma || - ptr->map.base_addr >= 0x100)) { -- printf(" "); -+ printf(" device "); - if (ptr->map.irq) -- printf(_("Interrupt:%d "), ptr->map.irq); -+ printf(_("interrupt %d "), ptr->map.irq); - if (ptr->map.base_addr >= 0x100) /* Only print devices using it for - I/O maps */ -- printf(_("Base address:0x%x "), ptr->map.base_addr); -+ printf(_("base 0x%x "), ptr->map.base_addr); - if (ptr->map.mem_start) { -- printf(_("Memory:%lx-%lx "), ptr->map.mem_start, ptr->map.mem_end); -+ printf(_("memory 0x%lx-%lx "), ptr->map.mem_start, ptr->map.mem_end); - } - if (ptr->map.dma) -- printf(_("DMA chan:%x "), ptr->map.dma); -+ printf(_(" dma 0x%x"), ptr->map.dma); - printf("\n"); - } - printf("\n"); diff --git a/poky/meta/recipes-extended/net-tools/net-tools/0001-lib-inet6.c-INET6_rresolve-various-fixes.patch b/poky/meta/recipes-extended/net-tools/net-tools/0001-lib-inet6.c-INET6_rresolve-various-fixes.patch deleted file mode 100644 index 8be45ccac..000000000 --- a/poky/meta/recipes-extended/net-tools/net-tools/0001-lib-inet6.c-INET6_rresolve-various-fixes.patch +++ /dev/null @@ -1,87 +0,0 @@ -From 08abfcd923e9f37d1902db26771b1dc6731eb265 Mon Sep 17 00:00:00 2001 -From: Jiri Popelka <jpopelka@redhat.com> -Date: Fri, 27 Sep 2013 18:40:06 +0200 -Subject: [PATCH 1/1] lib/inet6.c:INET6_rresolve() - various fixes - -1) Fall-back to numeric address if getnameinfo fails. - Reverse lookup is not mandatory, therefore its fail - is not an error. Just return numeric address in that case. - This makes netstat/route show IPv6 address instead of - [UNKNOWN] in case of DNS problems. - -2) Pass length of 'name' buffer into function. - 'name' is a pointer and therefore sizeof(name) - returns size of pointer and not size of the buffer. - see http://stackoverflow.com/questions/14298710/c-pointers-and-arrays-sizeof-operator - The sizeof() usage was added with commit 604785adc, - so I checked all the other changes in that commit - and they seem to be OK. - -3) remove unused 's' variable - -Upstream-Status: Pending - -Signed-off-by: Shan Hai <shan.hai@windriver.com> -Signed-off-by: Jianchuan Wang <jianchuan.wang@windriver.com> ---- - lib/inet6.c | 21 ++++++++++----------- - 1 file changed, 10 insertions(+), 11 deletions(-) - -diff --git a/lib/inet6.c b/lib/inet6.c -index 9a484a0..2a9c459 100644 ---- a/lib/inet6.c -+++ b/lib/inet6.c -@@ -84,10 +84,9 @@ static int INET6_resolve(char *name, struct sockaddr_in6 *sin6) - #endif - - --static int INET6_rresolve(char *name, struct sockaddr_in6 *sin6, int numeric) -+static int INET6_rresolve(char *name, size_t namelen, -+ struct sockaddr_in6 *sin6, int numeric) - { -- int s; -- - /* Grmpf. -FvK */ - if (sin6->sin6_family != AF_INET6) { - #ifdef DEBUG -@@ -98,21 +97,20 @@ static int INET6_rresolve(char *name, struct sockaddr_in6 *sin6, int numeric) - return (-1); - } - if (numeric & 0x7FFF) { -- inet_ntop( AF_INET6, &sin6->sin6_addr, name, 80); -+ inet_ntop( AF_INET6, &sin6->sin6_addr, name, namelen); - return (0); - } - if (IN6_IS_ADDR_UNSPECIFIED(&sin6->sin6_addr)) { - if (numeric & 0x8000) -- strcpy(name, "default"); -+ safe_strncpy(name, "default", namelen); - else -- strcpy(name, "[::]"); -+ safe_strncpy(name, "[::]", namelen); - return (0); - } - -- if ((s = getnameinfo((struct sockaddr *) sin6, sizeof(struct sockaddr_in6), -- name, 255 /* !! */ , NULL, 0, 0))) { -- fputs("getnameinfo failed\n", stderr); -- return -1; -+ if (getnameinfo((struct sockaddr *) sin6, sizeof(struct sockaddr_in6), -+ name, namelen , NULL, 0, 0)) { -+ inet_ntop( AF_INET6, &sin6->sin6_addr, name, namelen); - } - return (0); - } -@@ -143,7 +141,8 @@ static char *INET6_sprint(struct sockaddr *sap, int numeric) - - if (sap->sa_family == 0xFFFF || sap->sa_family == 0) - return safe_strncpy(buff, _("[NONE SET]"), sizeof(buff)); -- if (INET6_rresolve(buff, (struct sockaddr_in6 *) sap, numeric) != 0) -+ if (INET6_rresolve(buff, sizeof(buff), -+ (struct sockaddr_in6 *) sap, numeric) != 0) - return safe_strncpy(buff, _("[UNKNOWN]"), sizeof(buff)); - return (fix_v4_address(buff, &((struct sockaddr_in6 *)sap)->sin6_addr)); - } --- -1.8.5.2.233.g932f7e4 - diff --git a/poky/meta/recipes-extended/net-tools/net-tools/Add_missing_headers.patch b/poky/meta/recipes-extended/net-tools/net-tools/Add_missing_headers.patch new file mode 100644 index 000000000..f15d3654c --- /dev/null +++ b/poky/meta/recipes-extended/net-tools/net-tools/Add_missing_headers.patch @@ -0,0 +1,15 @@ +Description: Add missing headers + +Upstream-Status: Pending +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> + +--- a/netstat.c ++++ b/netstat.c +@@ -88,6 +88,7 @@ + #include <sys/stat.h> + #include <net/if.h> + #include <dirent.h> ++#include <sys/types.h> + + #include "net-support.h" + #include "pathnames.h" diff --git a/poky/meta/recipes-extended/net-tools/net-tools/Bug_443075-ifconfig.c-pointtopoint_spelling.patch b/poky/meta/recipes-extended/net-tools/net-tools/Bug_443075-ifconfig.c-pointtopoint_spelling.patch new file mode 100644 index 000000000..74d74668c --- /dev/null +++ b/poky/meta/recipes-extended/net-tools/net-tools/Bug_443075-ifconfig.c-pointtopoint_spelling.patch @@ -0,0 +1,26 @@ +Description: Accept "pointtopoint" as a synonym for "pointopoint" +Bug-Debian: https://bugs.debian.org/443075 +Author: Justin Pryzby <pryzbyj@libra> + +Upstream-Status: Pending +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> + +--- a/ifconfig.c ++++ b/ifconfig.c +@@ -644,14 +644,14 @@ + spp++; + continue; + } +- if (!strcmp(*spp, "-pointopoint")) { ++ if (!strcmp(*spp, "-pointopoint") || !strcmp(*spp, "-pointtopoint")) { + goterr |= clr_flag(ifr.ifr_name, IFF_POINTOPOINT); + spp++; + if (test_flag(ifr.ifr_name, IFF_POINTOPOINT) > 0) + fprintf(stderr, _("Warning: Interface %s still in POINTOPOINT mode.\n"), ifr.ifr_name); + continue; + } +- if (!strcmp(*spp, "pointopoint")) { ++ if (!strcmp(*spp, "pointopoint") || !strcmp(*spp, "pointtopoint")) { + if (*(spp + 1) != NULL) { + spp++; + safe_strncpy(host, *spp, (sizeof host)); diff --git a/poky/meta/recipes-extended/net-tools/net-tools/Bug_541172-netstat.c-exit-codes.patch b/poky/meta/recipes-extended/net-tools/net-tools/Bug_541172-netstat.c-exit-codes.patch new file mode 100644 index 000000000..782b94bc6 --- /dev/null +++ b/poky/meta/recipes-extended/net-tools/net-tools/Bug_541172-netstat.c-exit-codes.patch @@ -0,0 +1,22 @@ +Description: Bug#541172: netstat.c exit codes + +Upstream-Status: Pending +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> + +--- a/netstat.c ++++ b/netstat.c +@@ -2237,12 +2237,14 @@ + parsesnmp(flag_raw, flag_tcp, flag_udp, flag_sctp); + #else + ENOSUPP("netstat", "AF INET"); ++ exit(1); + #endif + } else if(!strcmp(afname, "inet6")) { + #if HAVE_AFINET6 + parsesnmp6(flag_raw, flag_tcp, flag_udp); + #else + ENOSUPP("netstat", "AF INET6"); ++ exit(1); + #endif + } else { + printf(_("netstat: No statistics support for specified address family: %s\n"), afname); diff --git a/poky/meta/recipes-extended/net-tools/net-tools/ifconfig-interface-0-del-IP-will-remove-the-aliased-.patch b/poky/meta/recipes-extended/net-tools/net-tools/ifconfig-interface-0-del-IP-will-remove-the-aliased-.patch deleted file mode 100644 index 06f81420e..000000000 --- a/poky/meta/recipes-extended/net-tools/net-tools/ifconfig-interface-0-del-IP-will-remove-the-aliased-.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 81814dc2b14843009193efd307d814c26baa61f0 Mon Sep 17 00:00:00 2001 -From: Jiri Popelka <jpopelka@redhat.com> -Date: Wed, 7 Dec 2011 19:14:09 +0100 -Subject: [PATCH] ifconfig interface:0 del <IP> will remove the aliased IP on IA64 - -Upstream-Status: Backport - -commit 81814dc2b14843009193efd307d814c26baa61f0 from -git://git.code.sf.net/p/net-tools/code - ---- - ifconfig.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/ifconfig.c b/ifconfig.c -index bc405c6..dae8922 100644 ---- a/ifconfig.c -+++ b/ifconfig.c -@@ -890,7 +890,9 @@ int main(int argc, char **argv) - continue; - } - -- memcpy(&ip, &sin.sin_addr.s_addr, sizeof(unsigned long)); -+ /* Clear "ip" in case sizeof(unsigned long) > sizeof(sin.sin_addr.s_addr) */ -+ ip = 0; -+ memcpy(&ip, &sin.sin_addr.s_addr, sizeof(sin.sin_addr.s_addr)); - - if (get_nmbc_parent(ifr.ifr_name, &nm, &bc) < 0) { - fprintf(stderr, _("Interface %s not initialized\n"), --- -1.7.9.5 - diff --git a/poky/meta/recipes-extended/net-tools/net-tools/musl-fixes.patch b/poky/meta/recipes-extended/net-tools/net-tools/musl-fixes.patch deleted file mode 100644 index f694d594b..000000000 --- a/poky/meta/recipes-extended/net-tools/net-tools/musl-fixes.patch +++ /dev/null @@ -1,100 +0,0 @@ -Adjust headers for non-glibc cases -especially exposed by musl - -Signed-off-by: Khem Raj <raj.khem@gmail.com> -Upstream-Status: Pending - -Index: net-tools-1.60/lib/inet6_gr.c -=================================================================== ---- net-tools-1.60.orig/lib/inet6_gr.c -+++ net-tools-1.60/lib/inet6_gr.c -@@ -23,7 +23,7 @@ - #include <string.h> - #include <stdio.h> - #include <unistd.h> --#ifndef __GLIBC__ -+#ifdef HAVE_IPV6_ROUTE_H - #include <netinet6/ipv6_route.h> /* glibc doesn't have this */ - #endif - #include "version.h" -Index: net-tools-1.60/lib/inet6_sr.c -=================================================================== ---- net-tools-1.60.orig/lib/inet6_sr.c -+++ net-tools-1.60/lib/inet6_sr.c -@@ -23,10 +23,10 @@ - #include <string.h> - #include <stdio.h> - #include <unistd.h> --#ifdef __GLIBC__ --#include <net/route.h> --#else -+#ifdef HAVE_IPV6_ROUTE_H - #include <netinet6/ipv6_route.h> /* glibc does not have this */ -+#else -+#include <net/route.h> - #endif - #include "version.h" - #include "net-support.h" -Index: net-tools-1.60/lib/inet_sr.c -=================================================================== ---- net-tools-1.60.orig/lib/inet_sr.c -+++ net-tools-1.60/lib/inet_sr.c -@@ -26,6 +26,7 @@ - #include <string.h> - #include <stdio.h> - #include <unistd.h> -+#include <asm-generic/param.h> - #include "version.h" - #include "net-support.h" - #include "pathnames.h" -Index: net-tools-1.60/lib/util-ank.c -=================================================================== ---- net-tools-1.60.orig/lib/util-ank.c -+++ net-tools-1.60/lib/util-ank.c -@@ -14,6 +14,7 @@ - * Rani Assaf <rani@magic.metawire.com> 980929: resolve addresses - */ - -+#include <limits.h> - #include <stdio.h> - #include <stdlib.h> - #include <unistd.h> -Index: net-tools-1.60/mii-tool.c -=================================================================== ---- net-tools-1.60.orig/mii-tool.c -+++ net-tools-1.60/mii-tool.c -@@ -47,10 +47,6 @@ static char Version[] = "$Id: mii-tool.c - #include <net/if.h> - #include <linux/sockios.h> - --#ifndef __GLIBC__ --#include <linux/if_arp.h> --#include <linux/if_ether.h> --#endif - #include "mii.h" - #include "version.h" - -Index: net-tools-1.60/netstat.c -=================================================================== ---- net-tools-1.60.orig/netstat.c -+++ net-tools-1.60/netstat.c -@@ -87,6 +87,7 @@ - #include <dirent.h> - #include <sys/stat.h> - #include <sys/types.h> -+#include <asm-generic/param.h> - - #include "net-support.h" - #include "pathnames.h" -Index: net-tools-1.60/slattach.c -=================================================================== ---- net-tools-1.60.orig/slattach.c -+++ net-tools-1.60/slattach.c -@@ -44,6 +44,7 @@ - #include <string.h> - #include <unistd.h> - #include <getopt.h> -+#include <termios.h> - #include <linux/if_slip.h> - - #if defined(__GLIBC__) diff --git a/poky/meta/recipes-extended/net-tools/net-tools/net-tools-1.60-sctp1.patch b/poky/meta/recipes-extended/net-tools/net-tools/net-tools-1.60-sctp1.patch deleted file mode 100644 index 78daf6c3e..000000000 --- a/poky/meta/recipes-extended/net-tools/net-tools/net-tools-1.60-sctp1.patch +++ /dev/null @@ -1,635 +0,0 @@ -From 23276afe270009420cfbc52bffafdd25ac0817fe Mon Sep 17 00:00:00 2001 -From: Li Zhou <li.zhou@windriver.com> -Date: Thu, 14 Jan 2016 17:01:29 +0800 -Subject: [PATCH 1/3] net-tools: add SCTP support for netstat - -Upstream-Status: pending - -Signed-off-by: Li Zhou <li.zhou@windriver.com> ---- - netstat.c | 411 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- - statistics.c | 68 +++++++++- - 2 files changed, 465 insertions(+), 14 deletions(-) - -Index: net-tools-1.60/netstat.c -=================================================================== ---- net-tools-1.60.orig/netstat.c -+++ net-tools-1.60/netstat.c -@@ -58,6 +58,7 @@ - * - *990420 {1.38} Tuan Hoang removed a useless assignment from igmp_do_one() - *20010404 {1.39} Arnaldo Carvalho de Melo - use setlocale -+ *20050516 {1.40} Ivan Skytte Joergensen:Added SCTP support - * - * This program is free software; you can redistribute it - * and/or modify it under the terms of the GNU General -@@ -106,7 +107,7 @@ - #endif - - /* prototypes for statistics.c */ --void parsesnmp(int, int, int); -+void parsesnmp(int, int, int, int); - void inittab(void); - void parsesnmp6(int, int, int); - void inittab6(void); -@@ -119,6 +120,28 @@ typedef enum { - SS_DISCONNECTING /* in process of disconnecting */ - } socket_state; - -+#define SCTP_NSTATES 9 /* The number of states in array*/ -+ -+static const char *sctp_state[] = { -+ N_("EMPTY"), -+ N_("CLOSED"), -+ N_("COOKIE_WAIT"), -+ N_("COOKIE_ECHOED"), -+ N_("ESTABLISHED"), -+ N_("SHUTDOWN_PENDING"), -+ N_("SHUTDOWN_SENT"), -+ N_("SHUTDOWN_RECEIVED"), -+ N_("SHUTDOWN_ACK_SENT") -+}; -+ -+#define SCTP_NTYPES 3 /* The number of types in array */ -+ -+static const char *sctp_type[] = { -+ N_("udp"), -+ N_("udp-high-bw"), -+ N_("tcp") -+}; -+ - #define SO_ACCEPTCON (1<<16) /* performed a listen */ - #define SO_WAITDATA (1<<17) /* wait data to read */ - #define SO_NOSPACE (1<<18) /* no space to write */ -@@ -149,6 +172,7 @@ int flag_opt = 0; - int flag_raw = 0; - int flag_tcp = 0; - int flag_udp = 0; -+int flag_sctp= 0; - int flag_igmp= 0; - int flag_rom = 0; - int flag_exp = 1; -@@ -995,6 +1019,365 @@ static int udp_info(void) - udp_do_one); - } - -+static const char *sctp_socket_type_str(int type) { -+ if(type>=0 && type<SCTP_NTYPES) -+ return sctp_type[type]; -+ else { -+ static char type_str_buf[64]; -+ sprintf(type_str_buf,"UNKNOWN(%d)",type); -+ return type_str_buf; -+ } -+} -+ -+static const char *sctp_state_str(int state) -+{ -+ if(state>=0 && state<SCTP_NSTATES) -+ return sctp_state[state]; -+ else { -+ static char state_str_buf[64]; -+ sprintf(state_str_buf,"UNKNOWN(%d)",state); -+ return state_str_buf; -+ } -+} -+ -+static const char *sctp_socket_state_str(int state) -+{ -+ if(state>=0 && state<=10) -+ return tcp_state[state]; -+ else { -+ static char state_str_buf[64]; -+ sprintf(state_str_buf,"UNKNOWN(%d)",state); -+ return state_str_buf; -+ } -+} -+ -+static struct aftype *process_sctp_addr_str(const char *addr_str, struct sockaddr *sa) -+{ -+ if (strchr(addr_str,':')) { -+#if HAVE_AFINET6 -+ extern struct aftype inet6_aftype; -+ /* Demangle what the kernel gives us */ -+ struct in6_addr in6; -+ char addr6_str[INET6_ADDRSTRLEN]; -+ unsigned u0,u1,u2,u3,u4,u5,u6,u7; -+ sscanf(addr_str, "%04X:%04X:%04X:%04X:%04X:%04X:%04X:%04X", -+ &u0, &u1, &u2, &u3, &u4, &u5, &u6, &u7); -+ in6.s6_addr16[0] = htons(u0); -+ in6.s6_addr16[1] = htons(u1); -+ in6.s6_addr16[2] = htons(u2); -+ in6.s6_addr16[3] = htons(u3); -+ in6.s6_addr16[4] = htons(u4); -+ in6.s6_addr16[5] = htons(u5); -+ in6.s6_addr16[6] = htons(u6); -+ in6.s6_addr16[7] = htons(u7); -+ -+ inet_ntop(AF_INET6, &in6, addr6_str, sizeof(addr6_str)); -+ inet6_aftype.input(1, addr6_str, sa); -+ sa->sa_family = AF_INET6; -+#endif -+ } else { -+ ((struct sockaddr_in*)sa)->sin_addr.s_addr = inet_addr(addr_str); -+ sa->sa_family = AF_INET; -+ } -+ return get_afntype(sa->sa_family); -+} -+ -+static void sctp_eps_do_one(int lnr, char *line) -+{ -+ char buffer[1024]; -+ int type, state, port; -+ int uid; -+ unsigned long inode; -+ -+ struct aftype *ap; -+#if HAVE_AFINET6 -+ struct sockaddr_in6 localaddr; -+#else -+ struct sockaddr_in localaddr; -+#endif -+ const char *sty_str; -+ const char *sst_str; -+ const char *lport_str; -+ const char *uid_str; -+ const char *inode_str; -+ const char *pladdr_str; -+ char *laddrs_str; -+ -+ if(lnr == 0) { -+ /* ENDPT SOCK STY SST HBKT LPORT uid inode pladdr LADDRS*/ -+ return; -+ } -+ -+ strtok(line," \t\n"); /*skip ptr*/ -+ strtok(0," \t\n"); /*skip ptr*/ -+ sty_str = strtok(0," \t\n"); -+ sst_str = strtok(0," \t\n"); -+ strtok(0," \t\n"); /*skip hash bucket*/ -+ lport_str=strtok(0," \t\n"); -+ uid_str = strtok(0," \t\n"); -+ inode_str = strtok(0," \t\n"); -+ pladdr_str = strtok(0," \t\n"); -+ laddrs_str=strtok(0,"\t\n"); -+ -+ type = atoi(sty_str); -+ state = atoi(sst_str); -+ port = atoi(lport_str); -+ uid = atoi(uid_str); -+ inode = strtoul(inode_str,0,0); -+ -+ if(flag_sctp<=1) { -+ /* only print the primary address */ -+ char local_addr[64]; -+ char local_port[16]; -+ -+ ap = process_sctp_addr_str(pladdr_str, (struct sockaddr*)&localaddr); -+ if(ap) -+ safe_strncpy(local_addr, -+ ap->sprint((struct sockaddr *) &localaddr, flag_not), -+ sizeof(local_addr)); -+ else -+ sprintf(local_addr,_("unsupported address family %d"), ((struct sockaddr*)&localaddr)->sa_family); -+ -+ snprintf(local_port, sizeof(local_port), "%s", -+ get_sname(htons(port), "sctp", -+ flag_not & FLAG_NUM_PORT)); -+ -+ printf("sctp "); -+ sprintf(buffer,"%s:%s", local_addr, local_port); -+ printf("%-47s", buffer); -+ printf(" %-12s", sctp_socket_state_str(state)); -+ } else { -+ /*print all addresses*/ -+ const char *this_local_addr; -+ int first=1; -+ char local_port[16]; -+ snprintf(local_port, sizeof(local_port), "%s", -+ get_sname(htons(port), "sctp", -+ flag_not & FLAG_NUM_PORT)); -+ for(this_local_addr=strtok(laddrs_str," \t\n"); -+ this_local_addr; -+ this_local_addr=strtok(0," \t\n")) -+ { -+ char local_addr[64]; -+ ap = process_sctp_addr_str(this_local_addr, (struct sockaddr*)&localaddr); -+ if(ap) -+ safe_strncpy(local_addr, -+ ap->sprint((struct sockaddr *) &localaddr, flag_not), -+ sizeof(local_addr)); -+ else -+ sprintf(local_addr,_("unsupported address family %d"), ((struct sockaddr*)&localaddr)->sa_family); -+ -+ if(!first) printf("\n"); -+ if(first) -+ printf("sctp "); -+ else -+ printf(" "); -+ sprintf(buffer,"%s:%s", local_addr, local_port); -+ printf("%-47s", buffer); -+ printf(" %-12s", first?sctp_socket_state_str(state):""); -+ first = 0; -+ } -+ } -+ -+ finish_this_one(uid,inode,""); -+} -+ -+static void sctp_assoc_do_one(int lnr, char *line) -+{ -+ char buffer[1024]; -+ int type, state, state2, lport,rport; -+ int uid; -+ unsigned rxqueue,txqueue; -+ unsigned long inode; -+ -+ struct aftype *ap; -+#if HAVE_AFINET6 -+ struct sockaddr_in6 localaddr,remoteaddr; -+#else -+ struct sockaddr_in localaddr,remoteaddr; -+#endif -+ const char *sty_str; -+ const char *sst_str; -+ const char *st_str; -+ const char *txqueue_str; -+ const char *rxqueue_str; -+ const char *lport_str,*rport_str; -+ const char *uid_str; -+ const char *inode_str; -+ const char *pladdr_str; -+ char *laddrs_str; -+ const char *praddr_str; -+ char *raddrs_str; -+ -+ if(lnr == 0) { -+ /* ASSOC SOCK STY SST ST HBKT tx_queue rx_queue uid inode LPORT RPORT pladdr praddr LADDRS <-> RADDRS*/ -+ return; -+ } -+ -+ strtok(line," \t\n"); /*skip ptr*/ -+ strtok(0," \t\n"); /*skip ptr*/ -+ sty_str = strtok(0," \t\n"); -+ sst_str = strtok(0," \t\n"); -+ st_str = strtok(0," \t\n"); -+ strtok(0," \t\n"); /*skip hash bucket*/ -+ txqueue_str = strtok(0," \t\n"); -+ rxqueue_str = strtok(0," \t\n"); -+ uid_str = strtok(0," \t\n"); -+ inode_str = strtok(0," \t\n"); -+ lport_str=strtok(0," \t\n"); -+ rport_str=strtok(0," \t\n"); -+ pladdr_str = strtok(0," \t\n"); -+ praddr_str = strtok(0," \t\n"); -+ laddrs_str=strtok(0,"<->\t\n"); -+ raddrs_str=strtok(0,"<->\t\n"); -+ -+ type = atoi(sty_str); -+ state = atoi(sst_str); -+ state2 = atoi(st_str); -+ txqueue = atoi(txqueue_str); -+ rxqueue = atoi(rxqueue_str); -+ uid = atoi(uid_str); -+ inode = strtoul(inode_str,0,0); -+ lport = atoi(lport_str); -+ rport = atoi(rport_str); -+ -+ if(flag_sctp<=1) { -+ /* only print the primary addresses */ -+ char local_addr[64]; -+ char local_port[16]; -+ char remote_addr[64]; -+ char remote_port[16]; -+ -+ ap = process_sctp_addr_str(pladdr_str, (struct sockaddr*)&localaddr); -+ if(ap) -+ safe_strncpy(local_addr, -+ ap->sprint((struct sockaddr *) &localaddr, flag_not), -+ sizeof(local_addr)); -+ else -+ sprintf(local_addr,_("unsupported address family %d"), ((struct sockaddr*)&localaddr)->sa_family); -+ -+ snprintf(local_port, sizeof(local_port), "%s", -+ get_sname(htons(lport), "sctp", -+ flag_not & FLAG_NUM_PORT)); -+ -+ ap = process_sctp_addr_str(praddr_str, (struct sockaddr*)&remoteaddr); -+ if(ap) -+ safe_strncpy(remote_addr, -+ ap->sprint((struct sockaddr *) &remoteaddr, flag_not), -+ sizeof(remote_addr)); -+ else -+ sprintf(remote_addr,_("unsupported address family %d"), ((struct sockaddr*)&remoteaddr)->sa_family); -+ -+ snprintf(remote_port, sizeof(remote_port), "%s", -+ get_sname(htons(rport), "sctp", -+ flag_not & FLAG_NUM_PORT)); -+ -+ printf("sctp"); -+ printf(" %6u %6u ", rxqueue, txqueue); -+ sprintf(buffer,"%s:%s", local_addr, local_port); -+ printf("%-23s", buffer); -+ printf(" "); -+ sprintf(buffer,"%s:%s", remote_addr, remote_port); -+ printf("%-23s", buffer); -+ printf(" %-12s", sctp_socket_state_str(state)); -+ } else { -+ /*print all addresses*/ -+ const char *this_local_addr; -+ const char *this_remote_addr; -+ char *ss1,*ss2; -+ int first=1; -+ char local_port[16]; -+ char remote_port[16]; -+ snprintf(local_port, sizeof(local_port), "%s", -+ get_sname(htons(lport), "sctp", -+ flag_not & FLAG_NUM_PORT)); -+ snprintf(remote_port, sizeof(remote_port), "%s", -+ get_sname(htons(rport), "sctp", -+ flag_not & FLAG_NUM_PORT)); -+ -+ this_local_addr=strtok_r(laddrs_str," \t\n",&ss1); -+ this_remote_addr=strtok_r(raddrs_str," \t\n",&ss2); -+ while(this_local_addr || this_remote_addr) { -+ char local_addr[64]; -+ char remote_addr[64]; -+ if(this_local_addr) { -+ ap = process_sctp_addr_str(this_local_addr, (struct sockaddr*)&localaddr); -+ if(ap) -+ safe_strncpy(local_addr, -+ ap->sprint((struct sockaddr *) &localaddr, flag_not), -+ sizeof(local_addr)); -+ else -+ sprintf(local_addr,_("unsupported address family %d"), ((struct sockaddr*)&localaddr)->sa_family); -+ } -+ if(this_remote_addr) { -+ ap = process_sctp_addr_str(this_remote_addr, (struct sockaddr*)&remoteaddr); -+ if(ap) -+ safe_strncpy(remote_addr, -+ ap->sprint((struct sockaddr *) &remoteaddr, flag_not), -+ sizeof(remote_addr)); -+ else -+ sprintf(remote_addr,_("unsupported address family %d"), ((struct sockaddr*)&remoteaddr)->sa_family); -+ } -+ -+ if(!first) printf("\n"); -+ if(first) -+ printf("sctp %6u %6u ", rxqueue, txqueue); -+ else -+ printf(" "); -+ if(this_local_addr) { -+ if(first) -+ sprintf(buffer,"%s:%s", local_addr, local_port); -+ else -+ sprintf(buffer,"%s", local_addr); -+ printf("%-23s", buffer); -+ } else -+ printf("%-23s", ""); -+ printf(" "); -+ if(this_remote_addr) { -+ if(first) -+ sprintf(buffer,"%s:%s", remote_addr, remote_port); -+ else -+ sprintf(buffer,"%s", remote_addr); -+ printf("%-23s", buffer); -+ } else -+ printf("%-23s", ""); -+ -+ printf(" %-12s", first?sctp_socket_state_str(state):""); -+ -+ first = 0; -+ this_local_addr=strtok_r(0," \t\n",&ss1); -+ this_remote_addr=strtok_r(0," \t\n",&ss2); -+ } -+ } -+ -+ finish_this_one(uid,inode,""); -+} -+ -+static int sctp_info_eps(void) -+{ -+#if !defined(_PATH_PROCNET_SCTP_EPS) -+#define _PATH_PROCNET_SCTP_EPS "/proc/net/sctp/eps" -+#endif -+ INFO_GUTS(_PATH_PROCNET_SCTP_EPS, "AF INET (sctp)", -+ sctp_eps_do_one); -+} -+ -+static int sctp_info_assocs(void) -+{ -+#if !defined(_PATH_PROCNET_SCTP_ASSOCS) -+#define _PATH_PROCNET_SCTP_ASSOCS "/proc/net/sctp/assocs" -+#endif -+ INFO_GUTS(_PATH_PROCNET_SCTP_ASSOCS, "AF INET (sctp)", -+ sctp_assoc_do_one); -+} -+ -+static int sctp_info(void) -+{ -+ if(flag_all) -+ sctp_info_eps(); -+ return sctp_info_assocs(); -+} -+ - static void raw_do_one(int lnr, const char *line) - { - char buffer[8192], local_addr[64], rem_addr[64]; -@@ -1558,7 +1941,7 @@ static void usage(void) - fprintf(stderr, _(" -F, --fib display Forwarding Information Base (default)\n")); - fprintf(stderr, _(" -C, --cache display routing cache instead of FIB\n\n")); - -- fprintf(stderr, _(" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --netrom\n")); -+ fprintf(stderr, _(" <Socket>={-t|--tcp} {-u|--udp} {-S|--sctp} {-w|--raw} {-x|--unix} --ax25 --ipx --netrom\n")); - fprintf(stderr, _(" <AF>=Use '-6|-4' or '-A <af>' or '--<af>'; default: %s\n"), DFLT_AF); - fprintf(stderr, _(" List of possible address families (which support routing):\n")); - print_aflist(1); /* 1 = routeable */ -@@ -1583,6 +1966,7 @@ int main - {"protocol", 1, 0, 'A'}, - {"tcp", 0, 0, 't'}, - {"udp", 0, 0, 'u'}, -+ {"sctp", 0, 0, 'S' }, - {"raw", 0, 0, 'w'}, - {"unix", 0, 0, 'x'}, - {"listening", 0, 0, 'l'}, -@@ -1613,7 +1997,7 @@ int main - getroute_init(); /* Set up AF routing support */ - - afname[0] = '\0'; -- while ((i = getopt_long(argc, argv, "MCFA:acdegphinNorstuWVv?wxl64", longopts, &lop)) != EOF) -+ while ((i = getopt_long(argc, argv, "MCFA:acdegphinNorstuSWVv?wxl64", longopts, &lop)) != EOF) - switch (i) { - case -1: - break; -@@ -1705,10 +2089,12 @@ int main - case 't': - flag_tcp++; - break; -- - case 'u': - flag_udp++; - break; -+ case 'S': -+ flag_sctp++; -+ break; - case 'w': - flag_raw++; - break; -@@ -1726,13 +2112,13 @@ int main - if (flag_int + flag_rou + flag_mas + flag_sta > 1) - usage(); - -- if ((flag_inet || flag_inet6 || flag_sta) && !(flag_tcp || flag_udp || flag_raw)) -- flag_tcp = flag_udp = flag_raw = 1; -+ if ((flag_inet || flag_inet6 || flag_sta) && !(flag_tcp || flag_udp || flag_sctp || flag_raw)) -+ flag_tcp = flag_udp = flag_sctp = flag_raw = 1; - -- if ((flag_tcp || flag_udp || flag_raw || flag_igmp) && !(flag_inet || flag_inet6)) -+ if ((flag_tcp || flag_udp || flag_sctp || flag_raw || flag_igmp) && !(flag_inet || flag_inet6)) - flag_inet = flag_inet6 = 1; - -- flag_arg = flag_tcp + flag_udp + flag_raw + flag_unx + flag_ipx -+ flag_arg = flag_tcp + flag_udp + flag_sctp + flag_raw + flag_unx + flag_ipx - + flag_ax25 + flag_netrom + flag_igmp + flag_x25; - - if (flag_mas) { -@@ -1760,7 +2146,7 @@ int main - char buf[256]; - if (!afname[0]) { - inittab(); -- parsesnmp(flag_raw, flag_tcp, flag_udp); -+ parsesnmp(flag_raw, flag_tcp, flag_udp, flag_sctp); - } else { - safe_strncpy(buf, afname, sizeof(buf)); - tmp1 = buf; -@@ -1815,7 +2201,7 @@ int main - return (i); - } - for (;;) { -- if (!flag_arg || flag_tcp || flag_udp || flag_raw) { -+ if (!flag_arg || flag_tcp || flag_udp || flag_sctp || flag_raw) { - #if HAVE_AFINET - prg_cache_load(); - printf(_("Active Internet connections ")); /* xxx */ -@@ -1854,6 +2240,11 @@ int main - if (i) - return (i); - } -+ if (!flag_arg || flag_sctp) { -+ i = sctp_info(); -+ if (i) -+ return (i); -+ } - if (!flag_arg || flag_raw) { - i = raw_info(); - if (i) -Index: net-tools-1.60/statistics.c -=================================================================== ---- net-tools-1.60.orig/statistics.c -+++ net-tools-1.60/statistics.c -@@ -21,7 +21,7 @@ - #define UFWARN(x) - #endif - --int print_static,f_raw,f_tcp,f_udp,f_unknown = 1; -+int print_static,f_raw,f_tcp,f_udp,f_sctp,f_unknown = 1; - - enum State { - number = 0, opt_number, i_forward, i_inp_icmp, i_outp_icmp, i_rto_alg, -@@ -297,6 +297,27 @@ struct entry Tcpexttab[] = - { "TCPRenoRecoveryFail", N_("%llu classic Reno fast retransmits failed"), opt_number }, - }; - -+struct entry Sctptab[] = -+{ -+ {"SctpCurrEstab", N_("%u Current Associations"), number}, -+ {"SctpActiveEstabs", N_("%u Active Associations"), number}, -+ {"SctpPassiveEstabs", N_("%u Passive Associations"), number}, -+ {"SctpAborteds", N_("%u Number of Aborteds "), number}, -+ {"SctpShutdowns", N_("%u Number of Graceful Terminations"), number}, -+ {"SctpOutOfBlues", N_("%u Number of Out of Blue packets"), number}, -+ {"SctpChecksumErrors", N_("%u Number of Packets with invalid Checksum"), number}, -+ {"SctpOutCtrlChunks", N_("%u Number of control chunks sent"), number}, -+ {"SctpOutOrderChunks", N_("%u Number of ordered chunks sent"), number}, -+ {"SctpOutUnorderChunks", N_("%u Number of Unordered chunks sent"), number}, -+ {"SctpInCtrlChunks", N_("%u Number of control chunks received"), number}, -+ {"SctpInOrderChunks", N_("%u Number of ordered chunks received"), number}, -+ {"SctpInUnorderChunks", N_("%u Number of Unordered chunks received"), number}, -+ {"SctpFragUsrMsgs", N_("%u Number of messages fragmented"), number}, -+ {"SctpReasmUsrMsgs", N_("%u Number of messages reassembled "), number}, -+ {"SctpOutSCTPPacks", N_("%u Number of SCTP packets sent"), number}, -+ {"SctpInSCTPPacks", N_("%u Number of SCTP packets received"), number}, -+}; -+ - struct tabtab { - char *title; - struct entry *tab; -@@ -310,6 +331,7 @@ struct tabtab snmptabs[] = - {"Icmp", Icmptab, sizeof(Icmptab), &f_raw}, - {"Tcp", Tcptab, sizeof(Tcptab), &f_tcp}, - {"Udp", Udptab, sizeof(Udptab), &f_udp}, -+ {"Sctp", Sctptab, sizeof(Sctptab), &f_sctp}, - {"TcpExt", Tcpexttab, sizeof(Tcpexttab), &f_tcp}, - {NULL} - }; -@@ -499,12 +521,40 @@ void process6_fd(FILE *f) - - } - --void parsesnmp(int flag_raw, int flag_tcp, int flag_udp) -+/* Process a file with name-value lines (like /proc/net/sctp/snmp) */ -+void process_fd2(FILE *f, const char *filename) -+{ -+ char buf1[1024]; -+ char *sp; -+ struct tabtab *tab; -+ -+ tab = newtable(snmptabs, "Sctp"); -+ -+ while (fgets(buf1, sizeof buf1, f)) { -+ sp = buf1 + strcspn(buf1, " \t\n"); -+ if (!sp) -+ goto formaterr; -+ *sp = '\0'; -+ sp++; -+ -+ sp += strspn(sp, " \t\n"); -+ -+ if (*sp != '\0' && *(tab->flag)) -+ printval(tab, buf1, strtoul(sp, 0, 10)); -+ } -+ return; -+ -+formaterr: -+ fprintf(stderr,_("error parsing %s\n"), filename); -+ return; -+} -+ -+void parsesnmp(int flag_raw, int flag_tcp, int flag_udp, int flag_sctp) - { - FILE *f; - -- f_raw = flag_raw; f_tcp = flag_tcp; f_udp = flag_udp; -- -+ f_raw = flag_raw; f_tcp = flag_tcp; f_udp = flag_udp; f_sctp = flag_sctp; -+ - f = proc_fopen("/proc/net/snmp"); - if (!f) { - perror(_("cannot open /proc/net/snmp")); -@@ -530,6 +580,16 @@ void parsesnmp(int flag_raw, int flag_tc - - fclose(f); - } -+ -+ f = fopen("/proc/net/sctp/snmp", "r"); -+ if (f) { -+ process_fd2(f,"/proc/net/sctp/snmp"); -+ if (ferror(f)) -+ perror("/proc/net/sctp/snmp"); -+ -+ fclose(f); -+ } -+ - return; - } - diff --git a/poky/meta/recipes-extended/net-tools/net-tools/net-tools-1.60-sctp2-quiet.patch b/poky/meta/recipes-extended/net-tools/net-tools/net-tools-1.60-sctp2-quiet.patch deleted file mode 100644 index d34e65132..000000000 --- a/poky/meta/recipes-extended/net-tools/net-tools/net-tools-1.60-sctp2-quiet.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 14287b594e1f02b811f889fb515c1a51b72c08d4 Mon Sep 17 00:00:00 2001 -From: Li Zhou <li.zhou@windriver.com> -Date: Thu, 14 Jan 2016 17:07:48 +0800 -Subject: [PATCH 2/3] net-tools: add SCTP support for netstat - -Upstream-Status: pending - -Signed-off-by: Li Zhou <li.zhou@windriver.com> ---- - netstat.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/netstat.c b/netstat.c -index 5d1a4a1..56a15c2 100644 ---- a/netstat.c -+++ b/netstat.c -@@ -2104,7 +2104,7 @@ int main - usage(); - - if ((flag_inet || flag_inet6 || flag_sta) && !(flag_tcp || flag_udp || flag_sctp || flag_raw)) -- flag_tcp = flag_udp = flag_sctp = flag_raw = 1; -+ flag_tcp = flag_udp = flag_raw = 1; - - if ((flag_tcp || flag_udp || flag_sctp || flag_raw || flag_igmp) && !(flag_inet || flag_inet6)) - flag_inet = flag_inet6 = 1; --- -1.8.5.2.233.g932f7e4 - diff --git a/poky/meta/recipes-extended/net-tools/net-tools/net-tools-1.60-sctp3-addrs.patch b/poky/meta/recipes-extended/net-tools/net-tools/net-tools-1.60-sctp3-addrs.patch deleted file mode 100644 index 8b2ecab70..000000000 --- a/poky/meta/recipes-extended/net-tools/net-tools/net-tools-1.60-sctp3-addrs.patch +++ /dev/null @@ -1,363 +0,0 @@ -From 1d386279a449a1a6b96b88a71f35bf13b14b2c2c Mon Sep 17 00:00:00 2001 -From: Li Zhou <li.zhou@windriver.com> -Date: Thu, 14 Jan 2016 17:11:24 +0800 -Subject: [PATCH 3/3] net-tools: add SCTP support for netstat - -Upstream-Status: pending - -Signed-off-by: Li Zhou <li.zhou@windriver.com> ---- - netstat.c | 282 ++++++++++++++++++++++++-------------------------------------- - 1 file changed, 108 insertions(+), 174 deletions(-) - -diff --git a/netstat.c b/netstat.c -index 56a15c2..86adadb 100644 ---- a/netstat.c -+++ b/netstat.c -@@ -1095,23 +1095,21 @@ static void sctp_eps_do_one(int lnr, char *line) - const char *lport_str; - const char *uid_str; - const char *inode_str; -- const char *pladdr_str; - char *laddrs_str; - - if(lnr == 0) { -- /* ENDPT SOCK STY SST HBKT LPORT uid inode pladdr LADDRS*/ -+ /* ENDPT SOCK STY SST HBKT LPORT UID INODE LADDRS */ - return; - } - -- strtok(line," \t\n"); /*skip ptr*/ -- strtok(0," \t\n"); /*skip ptr*/ -+ strtok(line," \t\n"); /*skip endpt*/ -+ strtok(0," \t\n"); /*skip sock*/ - sty_str = strtok(0," \t\n"); - sst_str = strtok(0," \t\n"); - strtok(0," \t\n"); /*skip hash bucket*/ - lport_str=strtok(0," \t\n"); - uid_str = strtok(0," \t\n"); - inode_str = strtok(0," \t\n"); -- pladdr_str = strtok(0," \t\n"); - laddrs_str=strtok(0,"\t\n"); - - type = atoi(sty_str); -@@ -1119,61 +1117,35 @@ static void sctp_eps_do_one(int lnr, char *line) - port = atoi(lport_str); - uid = atoi(uid_str); - inode = strtoul(inode_str,0,0); -- -- if(flag_sctp<=1) { -- /* only print the primary address */ -- char local_addr[64]; -- char local_port[16]; -- -- ap = process_sctp_addr_str(pladdr_str, (struct sockaddr*)&localaddr); -- if(ap) -- safe_strncpy(local_addr, -- ap->sprint((struct sockaddr *) &localaddr, flag_not), -- sizeof(local_addr)); -- else -- sprintf(local_addr,_("unsupported address family %d"), ((struct sockaddr*)&localaddr)->sa_family); -- -- snprintf(local_port, sizeof(local_port), "%s", -- get_sname(htons(port), "sctp", -- flag_not & FLAG_NUM_PORT)); -- -- printf("sctp "); -- sprintf(buffer,"%s:%s", local_addr, local_port); -- printf("%-47s", buffer); -- printf(" %-12s", sctp_socket_state_str(state)); -- } else { -- /*print all addresses*/ -- const char *this_local_addr; -- int first=1; -- char local_port[16]; -- snprintf(local_port, sizeof(local_port), "%s", -- get_sname(htons(port), "sctp", -- flag_not & FLAG_NUM_PORT)); -- for(this_local_addr=strtok(laddrs_str," \t\n"); -- this_local_addr; -- this_local_addr=strtok(0," \t\n")) -- { -- char local_addr[64]; -- ap = process_sctp_addr_str(this_local_addr, (struct sockaddr*)&localaddr); -- if(ap) -- safe_strncpy(local_addr, -- ap->sprint((struct sockaddr *) &localaddr, flag_not), -- sizeof(local_addr)); -- else -- sprintf(local_addr,_("unsupported address family %d"), ((struct sockaddr*)&localaddr)->sa_family); - -- if(!first) printf("\n"); -- if(first) -- printf("sctp "); -- else -- printf(" "); -- sprintf(buffer,"%s:%s", local_addr, local_port); -- printf("%-47s", buffer); -- printf(" %-12s", first?sctp_socket_state_str(state):""); -- first = 0; -- } -+ const char *this_local_addr; -+ int first=1; -+ char local_port[16]; -+ snprintf(local_port, sizeof(local_port), "%s", -+ get_sname(htons(port), "sctp", flag_not & FLAG_NUM_PORT)); -+ for(this_local_addr=strtok(laddrs_str," \t\n"); -+ this_local_addr; -+ this_local_addr=strtok(0," \t\n")) -+ { -+ char local_addr[64]; -+ ap = process_sctp_addr_str(this_local_addr, (struct sockaddr*)&localaddr); -+ if(ap) -+ safe_strncpy(local_addr, -+ ap->sprint((struct sockaddr *) &localaddr, flag_not), -+ sizeof(local_addr)); -+ else -+ sprintf(local_addr,_("unsupported address family %d"), ((struct sockaddr*)&localaddr)->sa_family); -+ -+ if(!first) printf("\n"); -+ if(first) -+ printf("sctp "); -+ else -+ printf(" "); -+ sprintf(buffer,"%s:%s", local_addr, local_port); -+ printf("%-55s", buffer); -+ printf(" %-12s", first?sctp_socket_state_str(state):""); -+ first = 0; - } -- - finish_this_one(uid,inode,""); - } - -@@ -1199,32 +1171,29 @@ static void sctp_assoc_do_one(int lnr, char *line) - const char *lport_str,*rport_str; - const char *uid_str; - const char *inode_str; -- const char *pladdr_str; - char *laddrs_str; -- const char *praddr_str; - char *raddrs_str; -- -+ - if(lnr == 0) { -- /* ASSOC SOCK STY SST ST HBKT tx_queue rx_queue uid inode LPORT RPORT pladdr praddr LADDRS <-> RADDRS*/ -+ /* ASSOC SOCK STY SST ST HBKT ASSOC-ID TX_QUEUE RX_QUEUE UID INODE LPORT RPORT LADDRS <-> RADDRS */ - return; - } -- -- strtok(line," \t\n"); /*skip ptr*/ -- strtok(0," \t\n"); /*skip ptr*/ -+ -+ strtok(line," \t\n"); /*skip assoc*/ -+ strtok(0," \t\n"); /*skip sock*/ - sty_str = strtok(0," \t\n"); - sst_str = strtok(0," \t\n"); - st_str = strtok(0," \t\n"); - strtok(0," \t\n"); /*skip hash bucket*/ -+ strtok(0," \t\n"); /*skip hash assoc-id*/ - txqueue_str = strtok(0," \t\n"); - rxqueue_str = strtok(0," \t\n"); - uid_str = strtok(0," \t\n"); - inode_str = strtok(0," \t\n"); - lport_str=strtok(0," \t\n"); - rport_str=strtok(0," \t\n"); -- pladdr_str = strtok(0," \t\n"); -- praddr_str = strtok(0," \t\n"); -- laddrs_str=strtok(0,"<->\t\n"); -- raddrs_str=strtok(0,"<->\t\n"); -+ laddrs_str = strtok(0,"<->\t\n"); -+ raddrs_str = strtok(0,"<->\t\n"); - - type = atoi(sty_str); - state = atoi(sst_str); -@@ -1235,116 +1204,81 @@ static void sctp_assoc_do_one(int lnr, char *line) - inode = strtoul(inode_str,0,0); - lport = atoi(lport_str); - rport = atoi(rport_str); -- -- if(flag_sctp<=1) { -- /* only print the primary addresses */ -- char local_addr[64]; -- char local_port[16]; -- char remote_addr[64]; -- char remote_port[16]; -- -- ap = process_sctp_addr_str(pladdr_str, (struct sockaddr*)&localaddr); -- if(ap) -- safe_strncpy(local_addr, -- ap->sprint((struct sockaddr *) &localaddr, flag_not), -- sizeof(local_addr)); -- else -- sprintf(local_addr,_("unsupported address family %d"), ((struct sockaddr*)&localaddr)->sa_family); -- -- snprintf(local_port, sizeof(local_port), "%s", -- get_sname(htons(lport), "sctp", -- flag_not & FLAG_NUM_PORT)); -- -- ap = process_sctp_addr_str(praddr_str, (struct sockaddr*)&remoteaddr); -- if(ap) -- safe_strncpy(remote_addr, -- ap->sprint((struct sockaddr *) &remoteaddr, flag_not), -- sizeof(remote_addr)); -- else -- sprintf(remote_addr,_("unsupported address family %d"), ((struct sockaddr*)&remoteaddr)->sa_family); -- -- snprintf(remote_port, sizeof(remote_port), "%s", -- get_sname(htons(rport), "sctp", -- flag_not & FLAG_NUM_PORT)); -- -- printf("sctp"); -- printf(" %6u %6u ", rxqueue, txqueue); -- sprintf(buffer,"%s:%s", local_addr, local_port); -- printf("%-23s", buffer); -- printf(" "); -- sprintf(buffer,"%s:%s", remote_addr, remote_port); -- printf("%-23s", buffer); -- printf(" %-12s", sctp_socket_state_str(state)); -- } else { -- /*print all addresses*/ -- const char *this_local_addr; -- const char *this_remote_addr; -- char *ss1,*ss2; -- int first=1; -- char local_port[16]; -- char remote_port[16]; -- snprintf(local_port, sizeof(local_port), "%s", -- get_sname(htons(lport), "sctp", -- flag_not & FLAG_NUM_PORT)); -- snprintf(remote_port, sizeof(remote_port), "%s", -- get_sname(htons(rport), "sctp", -- flag_not & FLAG_NUM_PORT)); -- -- this_local_addr=strtok_r(laddrs_str," \t\n",&ss1); -- this_remote_addr=strtok_r(raddrs_str," \t\n",&ss2); -- while(this_local_addr || this_remote_addr) { -- char local_addr[64]; -- char remote_addr[64]; -- if(this_local_addr) { -- ap = process_sctp_addr_str(this_local_addr, (struct sockaddr*)&localaddr); -- if(ap) -- safe_strncpy(local_addr, -- ap->sprint((struct sockaddr *) &localaddr, flag_not), -- sizeof(local_addr)); -- else -- sprintf(local_addr,_("unsupported address family %d"), ((struct sockaddr*)&localaddr)->sa_family); -- } -- if(this_remote_addr) { -- ap = process_sctp_addr_str(this_remote_addr, (struct sockaddr*)&remoteaddr); -- if(ap) -- safe_strncpy(remote_addr, -- ap->sprint((struct sockaddr *) &remoteaddr, flag_not), -- sizeof(remote_addr)); -- else -- sprintf(remote_addr,_("unsupported address family %d"), ((struct sockaddr*)&remoteaddr)->sa_family); -- } - -- if(!first) printf("\n"); -- if(first) -- printf("sctp %6u %6u ", rxqueue, txqueue); -- else -- printf(" "); -- if(this_local_addr) { -- if(first) -- sprintf(buffer,"%s:%s", local_addr, local_port); -+ /*print all addresses*/ -+ const char *this_local_addr; -+ const char *this_remote_addr; -+ char *ss1,*ss2; -+ int first=1; -+ char local_port[16]; -+ char remote_port[16]; -+ snprintf(local_port, sizeof(local_port), "%s", -+ get_sname(htons(lport), "sctp", -+ flag_not & FLAG_NUM_PORT)); -+ snprintf(remote_port, sizeof(remote_port), "%s", -+ get_sname(htons(rport), "sctp", -+ flag_not & FLAG_NUM_PORT)); -+ -+ this_local_addr=strtok_r(laddrs_str," \t\n",&ss1); -+ this_remote_addr=strtok_r(raddrs_str," \t\n",&ss2); -+ while(this_local_addr || this_remote_addr) { -+ char local_addr[64]; -+ char remote_addr[64]; -+ -+ if(this_local_addr) { -+ if (this_local_addr[0] == '*') { -+ /* skip * */ -+ this_local_addr++; -+ } -+ ap = process_sctp_addr_str(this_local_addr, (struct sockaddr*)&localaddr); -+ if(ap) -+ safe_strncpy(local_addr, -+ ap->sprint((struct sockaddr *) &localaddr, flag_not), sizeof(local_addr)); - else -- sprintf(buffer,"%s", local_addr); -- printf("%-23s", buffer); -- } else -- printf("%-23s", ""); -- printf(" "); -- if(this_remote_addr) { -- if(first) -- sprintf(buffer,"%s:%s", remote_addr, remote_port); -+ sprintf(local_addr,_("unsupported address family %d"), ((struct sockaddr*)&localaddr)->sa_family); -+ } -+ if(this_remote_addr) { -+ if (this_remote_addr[0] == '*') { -+ /* skip * */ -+ this_remote_addr++; -+ } -+ ap = process_sctp_addr_str(this_remote_addr, (struct sockaddr*)&remoteaddr); -+ if(ap) -+ safe_strncpy(remote_addr, -+ ap->sprint((struct sockaddr *) &remoteaddr, flag_not), sizeof(remote_addr)); - else -- sprintf(buffer,"%s", remote_addr); -- printf("%-23s", buffer); -- } else -- printf("%-23s", ""); -- -- printf(" %-12s", first?sctp_socket_state_str(state):""); -+ sprintf(remote_addr,_("unsupported address family %d"), ((struct sockaddr*)&remoteaddr)->sa_family); -+ } - -- first = 0; -- this_local_addr=strtok_r(0," \t\n",&ss1); -- this_remote_addr=strtok_r(0," \t\n",&ss2); -- } -+ if(!first) printf("\n"); -+ if(first) -+ printf("sctp %6u %6u ", rxqueue, txqueue); -+ else -+ printf(" "); -+ if(this_local_addr) { -+ if(first) -+ sprintf(buffer,"%s:%s", local_addr, local_port); -+ else -+ sprintf(buffer,"%s", local_addr); -+ printf("%-27s", buffer); -+ } else -+ printf("%-27s", ""); -+ printf(" "); -+ if(this_remote_addr) { -+ if(first) -+ sprintf(buffer,"%s:%s", remote_addr, remote_port); -+ else -+ sprintf(buffer,"%s", remote_addr); -+ printf("%-27s", buffer); -+ } else -+ printf("%-27s", ""); -+ -+ printf(" %-12s", first?sctp_socket_state_str(state):""); -+ -+ first = 0; -+ this_local_addr=strtok_r(0," \t\n",&ss1); -+ this_remote_addr=strtok_r(0," \t\n",&ss2); - } -- - finish_this_one(uid,inode,""); - } - --- -1.8.5.2.233.g932f7e4 - diff --git a/poky/meta/recipes-extended/net-tools/net-tools/net-tools-fix-building-with-linux-4.8.patch b/poky/meta/recipes-extended/net-tools/net-tools/net-tools-fix-building-with-linux-4.8.patch deleted file mode 100644 index 505eeb048..000000000 --- a/poky/meta/recipes-extended/net-tools/net-tools/net-tools-fix-building-with-linux-4.8.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 4d56645ea144a34f7cdd3e3ede6452d81fbae251 Mon Sep 17 00:00:00 2001 -From: Randy MacLeod <Randy.MacLeod@windriver.com> -Date: Sat, 8 Oct 2016 14:42:54 +0800 -Subject: [PATCH] iptunnel.c: include linux/ip.h to fix building with linux-4.8 - -Fix a build error when using the linux-4.8 headers that results in: - -In file included from -.../sysroots/qemuarm64/usr/include/linux/if_tunnel.h:6:0, - from iptunnel.c:39: -.../qemuarm64/usr/include/linux/ip.h:85:8: error: redefinition of -'struct iphdr' - struct iphdr { - ^~~~~ -In file included from iptunnel.c:29:0: -.../qemuarm64/usr/include/netinet/ip.h:44:8: note: originally defined here - struct iphdr - ^~~~~ - -Upstream-Status: Submitted [1] - -[1] https://sourceforge.net/p/net-tools/mailman/message/35413022/ - -Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com> -Signed-off-by: Jackie Huang <jackie.huang@windriver.com> ---- - iptunnel.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/iptunnel.c b/iptunnel.c -index 4943d83..acfcbc7 100644 ---- a/iptunnel.c -+++ b/iptunnel.c -@@ -26,7 +26,6 @@ - #include <sys/socket.h> - #include <sys/ioctl.h> - #include <netinet/in.h> --#include <netinet/ip.h> - #include <arpa/inet.h> - #if defined(__GLIBC__) && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1)) - #include <net/if.h> -@@ -36,6 +35,7 @@ - #include <linux/if_arp.h> - #endif - #include <linux/types.h> -+#include <linux/ip.h> - #include <linux/if_tunnel.h> - - #include "config.h" --- -2.8.3 - diff --git a/poky/meta/recipes-extended/net-tools/net-tools_1.60-20181103.bb b/poky/meta/recipes-extended/net-tools/net-tools_1.60-20181103.bb new file mode 100644 index 000000000..e97731073 --- /dev/null +++ b/poky/meta/recipes-extended/net-tools/net-tools_1.60-20181103.bb @@ -0,0 +1,110 @@ +SUMMARY = "Basic networking tools" +DESCRIPTION = "A collection of programs that form the base set of the NET-3 networking distribution for the Linux operating system" +HOMEPAGE = "http://net-tools.berlios.de/" +BUGTRACKER = "http://bugs.debian.org/net-tools" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://ifconfig.c;beginline=11;endline=15;md5=d1ca372080ad5401e23ca0afc35cf9ba" + +PV = "1.60-20181103+git${SRCPV}" +SRCREV = "0eebece8c964e3cfa8a018f42b2e7e751a7009a0" +SRC_URI = "git://git.code.sf.net/p/net-tools/code;protocol=https \ + file://net-tools-config.h \ + file://net-tools-config.make \ + file://Add_missing_headers.patch \ + file://Bug_443075-ifconfig.c-pointtopoint_spelling.patch \ + file://Bug_541172-netstat.c-exit-codes.patch \ +" + +UPSTREAM_VERSION_UNKNOWN = "1" + +S = "${WORKDIR}/git" + +inherit gettext + +# The Makefile is lame, no parallel build +PARALLEL_MAKE = "" + +PACKAGECONFIG ??= "hostname arp serial plip" +PACKAGECONFIG[hostname] = "" +PACKAGECONFIG[arp] = "" +PACKAGECONFIG[serial] = "" +PACKAGECONFIG[plip] = "" + +do_configure() { + # net-tools has its own config mechanism requiring "make config" + # we pre-generate desired options and copy to source directory instead + cp ${WORKDIR}/net-tools-config.h ${S}/config.h + cp ${WORKDIR}/net-tools-config.make ${S}/config.make + + if [ "${USE_NLS}" = "no" ]; then + sed -i -e 's/^I18N=1/# I18N=1/' ${S}/config.make + fi + + if ${@bb.utils.contains('PACKAGECONFIG', 'hostname', 'true', 'false', d)} ; then + echo "#define HAVE_HOSTNAME_TOOLS 1" >> ${S}/config.h + echo "#define HAVE_HOSTNAME_SYMLINKS 1" >> ${S}/config.h + echo "HAVE_HOSTNAME_TOOLS=1" >> ${S}/config.make + echo "HAVE_HOSTNAME_SYMLINKS=1" >> ${S}/config.make + fi + if ${@bb.utils.contains('PACKAGECONFIG', 'arp', 'true', 'false', d)} ; then + echo "#define HAVE_ARP_TOOLS 1" >> ${S}/config.h + echo "HAVE_ARP_TOOLS=1" >> ${S}/config.make + fi + if ${@bb.utils.contains('PACKAGECONFIG', 'serial', 'true', 'false', d)} ; then + echo "#define HAVE_SERIAL_TOOLS 1" >> ${S}/config.h + echo "HAVE_SERIAL_TOOLS=1" >> ${S}/config.make + fi + if ${@bb.utils.contains('PACKAGECONFIG', 'plip', 'true', 'false', d)} ; then + echo "#define HAVE_PLIP_TOOLS 1" >> ${S}/config.h + echo "HAVE_PLIP_TOOLS=1" >> ${S}/config.make + fi +} + +do_compile() { + # net-tools use COPTS/LOPTS to allow adding custom options + oe_runmake COPTS="$CFLAGS" LOPTS="$LDFLAGS" +} + +do_install() { + # We don't need COPTS or LOPTS, but let's be consistent. + oe_runmake COPTS="$CFLAGS" LOPTS="$LDFLAGS" BASEDIR=${D} INSTALLNLSDIR=${D}${datadir}/locale mandir=${mandir} install + + if [ "${base_bindir}" != "/bin" ]; then + mkdir -p ${D}/${base_bindir} + mv ${D}/bin/* ${D}/${base_bindir}/ + rmdir ${D}/bin + fi + if [ "${base_sbindir}" != "/sbin" ]; then + mkdir ${D}/${base_sbindir} + mv ${D}/sbin/* ${D}/${base_sbindir}/ + rmdir ${D}/sbin + fi +} + +inherit update-alternatives + +base_sbindir_progs = "ipmaddr iptunnel mii-tool nameif \ + ${@bb.utils.contains('PACKAGECONFIG', 'arp', 'arp rarp', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'plip', 'plipconfig', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'serial', 'slattach', '', d)} \ +" +base_bindir_progs = "ifconfig netstat route \ + ${@bb.utils.contains('PACKAGECONFIG', 'hostname', 'dnsdomainname domainname hostname nisdomainname ypdomainname', '', d)} \ +" + +ALTERNATIVE_${PN} = "${base_sbindir_progs} ${base_bindir_progs}" +ALTERNATIVE_${PN}-doc += "${@bb.utils.contains('PACKAGECONFIG', 'hostname', 'hostname.1 dnsdomainname.1', '', d)}" +ALTERNATIVE_LINK_NAME[hostname.1] = "${mandir}/man1/hostname.1" +ALTERNATIVE_LINK_NAME[dnsdomainname.1] = "${mandir}/man1/dnsdomainname.1" +ALTERNATIVE_PRIORITY[hostname.1] = "10" + +python __anonymous() { + for prog in d.getVar('base_sbindir_progs').split(): + d.setVarFlag('ALTERNATIVE_LINK_NAME', prog, '%s/%s' % (d.getVar('base_sbindir'), prog)) + for prog in d.getVar('base_bindir_progs').split(): + d.setVarFlag('ALTERNATIVE_LINK_NAME', prog, '%s/%s' % (d.getVar('base_bindir'), prog)) +} +ALTERNATIVE_PRIORITY = "100" + +BBCLASSEXTEND = "native nativesdk" diff --git a/poky/meta/recipes-extended/net-tools/net-tools_1.60-26.bb b/poky/meta/recipes-extended/net-tools/net-tools_1.60-26.bb deleted file mode 100644 index 8bd30fc6d..000000000 --- a/poky/meta/recipes-extended/net-tools/net-tools_1.60-26.bb +++ /dev/null @@ -1,132 +0,0 @@ -SUMMARY = "Basic networking tools" -DESCRIPTION = "A collection of programs that form the base set of the NET-3 networking distribution for the Linux operating system" -HOMEPAGE = "http://net-tools.berlios.de/" -BUGTRACKER = "http://bugs.debian.org/net-tools" -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b \ - file://ifconfig.c;beginline=11;endline=15;md5=d1ca372080ad5401e23ca0afc35cf9ba" - -SRC_URI = "http://snapshot.debian.org/archive/debian/20050312T000000Z/pool/main/n/${BPN}/${BPN}_1.60.orig.tar.gz;name=tarball \ - http://snapshot.debian.org/archive/debian//20150831T093342Z/pool/main/n/${BPN}/${BPN}_${PV}.diff.gz;apply=no;name=patch \ - file://net-tools-config.h \ - file://net-tools-config.make \ - file://ifconfig-interface-0-del-IP-will-remove-the-aliased-.patch \ - file://musl-fixes.patch \ - file://net-tools-1.60-sctp1.patch \ - file://net-tools-1.60-sctp2-quiet.patch \ - file://net-tools-1.60-sctp3-addrs.patch \ - file://0001-lib-inet6.c-INET6_rresolve-various-fixes.patch \ - file://net-tools-fix-building-with-linux-4.8.patch \ - file://0001-added-ull-prefix-to-unsigned-long-long-constants-to-.patch \ - " - -# for this package we're mostly interested in tracking debian patches, -# and not in the upstream version where all development has effectively stopped -UPSTREAM_CHECK_REGEX = "(?P<pver>((\d+\.*)+)-((\d+\.*)+))\.(diff|debian\.tar)\.(gz|xz)" - -S = "${WORKDIR}/net-tools-1.60" - -SRC_URI[tarball.md5sum] = "ecaf37acb5b5daff4bdda77785fd916d" -SRC_URI[tarball.sha256sum] = "ec67967cf7b1a3a3828a84762fbc013ac50ee5dc9aa3095d5c591f302c2de0f5" - -SRC_URI[patch.md5sum] = "ea3592f49ac8380962bc4d9b66c7e7e9" -SRC_URI[patch.sha256sum] = "aeeeafaff68866a446f01bb639d4e0146a60af34dcd20e31a3e46585022fc76c" - -# the package is taken from snapshots.debian.org; that source is static and goes stale -# so we check the latest upstream from a directory that does get updated -UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/n/net-tools/" - -inherit gettext - -do_patch[depends] += "quilt-native:do_populate_sysroot" - -# The Makefile is lame, no parallel build -PARALLEL_MAKE = "" - -# Unlike other Debian packages, net-tools *.diff.gz contains another series of -# patches maintained by quilt. So manually apply them before applying other local -# patches. Also remove all temp files before leaving, because do_patch() will pop -# up all previously applied patches in the start -nettools_do_patch() { - cd ${S} - # it's important that we only pop the existing patches when they've - # been applied, otherwise quilt will climb the directory tree - # and reverse out some completely different set of patches - if [ -d ${S}/patches ]; then - # whilst this is the default directory, doing it like this - # defeats the directory climbing that quilt will otherwise - # do; note the directory must exist to defeat this, hence - # the test inside which we operate - QUILT_PATCHES=${S}/patches quilt pop -a - fi - if [ -d ${S}/.pc-nettools ]; then - rm -rf ${S}/.pc - mv ${S}/.pc-nettools ${S}/.pc - QUILT_PATCHES=${S}/debian/patches quilt pop -a - rm -rf ${S}/.pc ${S}/debian - fi - patch -p1 < ${WORKDIR}/${BPN}_${PV}.diff - QUILT_PATCHES=${S}/debian/patches quilt push -a - mv ${S}/.pc ${S}/.pc-nettools -} - -do_unpack[cleandirs] += "${S}" - -# We invoke base do_patch at end, to incorporate any local patch -python do_patch() { - bb.build.exec_func('nettools_do_patch', d) - bb.build.exec_func('patch_do_patch', d) -} - -do_configure() { - # net-tools has its own config mechanism requiring "make config" - # we pre-generate desired options and copy to source directory instead - cp ${WORKDIR}/net-tools-config.h ${S}/config.h - cp ${WORKDIR}/net-tools-config.make ${S}/config.make - - if [ "${USE_NLS}" = "no" ]; then - sed -i -e 's/^I18N=1/# I18N=1/' ${S}/config.make - fi -} - -do_compile() { - # net-tools use COPTS/LOPTS to allow adding custom options - oe_runmake COPTS="$CFLAGS" LOPTS="$LDFLAGS" -} - -do_install() { - # We don't need COPTS or LOPTS, but let's be consistent. - oe_runmake COPTS="$CFLAGS" LOPTS="$LDFLAGS" BASEDIR=${D} INSTALLNLSDIR=${D}${datadir}/locale mandir=${mandir} install - - if [ "${base_bindir}" != "/bin" ]; then - mkdir -p ${D}/${base_bindir} - mv ${D}/bin/* ${D}/${base_bindir}/ - rmdir ${D}/bin - fi - if [ "${base_sbindir}" != "/sbin" ]; then - mkdir ${D}/${base_sbindir} - mv ${D}/sbin/* ${D}/${base_sbindir}/ - rmdir ${D}/sbin - fi -} - -inherit update-alternatives - -base_sbindir_progs = "arp ifconfig ipmaddr iptunnel mii-tool nameif plipconfig rarp route slattach" -base_bindir_progs = "dnsdomainname domainname hostname netstat nisdomainname ypdomainname" - -ALTERNATIVE_${PN} = "${base_sbindir_progs} ${base_bindir_progs}" -ALTERNATIVE_${PN}-doc += "hostname.1 dnsdomainname.1" -ALTERNATIVE_LINK_NAME[hostname.1] = "${mandir}/man1/hostname.1" -ALTERNATIVE_LINK_NAME[dnsdomainname.1] = "${mandir}/man1/dnsdomainname.1" -ALTERNATIVE_PRIORITY[hostname.1] = "10" - -python __anonymous() { - for prog in d.getVar('base_sbindir_progs').split(): - d.setVarFlag('ALTERNATIVE_LINK_NAME', prog, '%s/%s' % (d.getVar('base_sbindir'), prog)) - for prog in d.getVar('base_bindir_progs').split(): - d.setVarFlag('ALTERNATIVE_LINK_NAME', prog, '%s/%s' % (d.getVar('base_bindir'), prog)) -} -ALTERNATIVE_PRIORITY = "100" - -BBCLASSEXTEND = "native nativesdk" |