[oe] [meta-oe ] inetutils: ifconfig -a includes interfaces without an address
McClintock Matthew-B29882
B29882 at freescale.com
Fri Nov 2 02:27:14 UTC 2012
On Thu, Nov 1, 2012 at 9:14 PM, Luo Zhenhua-B19537 <B19537 at freescale.com> wrote:
> The patch fixes "inetutils.ifconfig -a" doesn't show all interfaces.
>
> More story is in http://www.mail-archive.com/bug-inetutils@gnu.org/msg01745.html
This info should be in the commit message. It provides much needed
context for others to review and ultimately accept this patch.
-M
>
>
> Best Regards,
>
> Zhenhua
>
>> -----Original Message-----
>> From: McClintock Matthew-B29882
>> Sent: Thursday, November 01, 2012 11:19 PM
>> To: Joe MacDonald
>> Cc: openembedded-devel at lists.openembedded.org; McClintock Matthew-B29882;
>> Luo Zhenhua-B19537
>> Subject: Re: [oe] [meta-oe ] inetutils: ifconfig -a includes interfaces
>> without an address
>>
>> On Thu, Nov 1, 2012 at 9:27 AM, Joe MacDonald
>> <Joe.MacDonald at windriver.com> wrote:
>> > [[oe] [meta-oe ] inetutils: ifconfig -a includes interfaces without an
>> address] On 12.11.01 (Thu 17:59) Chunrong Guo wrote:
>> >
>> >> *ifconfig/if_index.c (if_nameindex): Remove local variables
>> >> `ifc', `i', `rq_len', `last_len', `ifr', `end', `cur'.
>> >> Add local variables `content', `it', `length', `index'.
>> >> Remove code that uses the SIOCGIFCONF ioctl to get the
>> interfaces
>> >> list. Parse the PATH_PROCNET_DEV file to fetch the list of
>> >> interfaces.
>> >> Signed-off-by: Chunrong Guo <b40290 at freescale.com>
>> >
>> > I'm still not understanding the objective of these changes. The above
>> > commit log says what you're doing, but I cannot tell why. Since the
>> > patch itself is leaving largeish chunks of code commented out and/or
>> > dead, removing previous ifdef's and using an inconsistent style, it's
>> > kind of caught my attention and I can't help asking why.
>> >
>> > Particularly since the short log message seems to me that you're
>> > trying to change existing, documented and reasonably correct
>> > behaviour. What's actually broken here?
>>
>> Chunrong,
>>
>> I'm having a hard time parsing this as well... is this fixing the issue
>> with ifconfig were we are not seeing all the ethernet interfaces?
>>
>> -M
>>
>> >
>> > -J.
>> >
>> >> ---
>> >> .../inetutils/inetutils-1.8/15.patch | 197
>> +++++++++++++++
>> >> .../inetutils/inetutils-1.8/add-module.patch | 18 ++
>> >> .../inetutils/inetutils-1.8/add-readfile.patch | 250
>> ++++++++++++++++++++
>> >> .../inetutils/inetutils_1.8.bb | 3 +
>> >> 4 files changed, 468 insertions(+), 0 deletions(-) create mode
>> >> 100644 meta-oe/recipes-connectivity/inetutils/inetutils-1.8/15.patch
>> >> create mode 100644
>> >> meta-oe/recipes-connectivity/inetutils/inetutils-1.8/add-module.patch
>> >> create mode 100644
>> >> meta-oe/recipes-connectivity/inetutils/inetutils-1.8/add-readfile.pat
>> >> ch
>> >>
>> >> diff --git
>> >> a/meta-oe/recipes-connectivity/inetutils/inetutils-1.8/15.patch
>> >> b/meta-oe/recipes-connectivity/inetutils/inetutils-1.8/15.patch
>> >> new file mode 100644
>> >> index 0000000..c2d4f11
>> >> --- /dev/null
>> >> +++ b/meta-oe/recipes-connectivity/inetutils/inetutils-1.8/15.patch
>> >> @@ -0,0 +1,197 @@
>> >> +--- inetutils-1.8/ifconfig/if_index.c 2010-05-15
>> 06:25:47.000000000 -0500
>> >> ++++ ../inetutils-1.8-r0+fsl.1/inetutils-1.8/ifconfig/if_index.c
>> 2012-10-30 04:03:19.595348659 -0500
>> >> +@@ -28,7 +28,7 @@
>> >> + #include <unistd.h>
>> >> + #include <sys/types.h>
>> >> + #include <sys/socket.h>
>> >> +-
>> >> ++#include <read-file.h>
>> >> + /* Solaris at least earlier 2.6 and before does not include
>> >> + the ioctl definitions if BSD_COMP is not set. */ #if
>> >> +defined(__svr4__) @@ -97,24 +97,29 @@ struct if_nameindex *
>> >> +if_nameindex (void) { -#if defined(SIOCGIFCONF)
>> >> +- int fd = socket (AF_INET, SOCK_DGRAM, 0);
>> >> +- struct ifconf ifc;
>> >> +- unsigned int i = 0;
>> >> +- int rq_len, last_len;
>> >> +- struct if_nameindex *idx = NULL;
>> >> +- struct ifreq *ifr, *end, *cur;
>> >> ++ //printk("if_nameindex\n");
>> >> +
>> >> ++//#if defined(SIOCGIFCONF)
>> >> ++// int fd = socket (AF_INET, SOCK_DGRAM, 0); // struct ifconf
>> >> ++ifc; // unsigned int i = 0; // int rq_len, last_len;
>> >> ++ char *content, *it;
>> >> ++ size_t length, index;
>> >> ++ struct if_nameindex *idx = NULL; // struct ifreq *ifr, *end,
>> >> ++*cur;
>> >> ++ int fd;
>> >> ++ fd = socket (AF_INET, SOCK_DGRAM, 0);
>> >> + if (fd < 0)
>> >> + return NULL;
>> >> +
>> >> + /* A first estimate. */
>> >> +- rq_len = 4 * sizeof (struct ifreq);
>> >> ++ // rq_len = 4 * sizeof (struct ifreq);
>> >> +
>> >> +- ifc.ifc_buf = NULL;
>> >> +- ifc.ifc_len = 0;
>> >> ++// ifc.ifc_buf = NULL;
>> >> ++// ifc.ifc_len = 0;
>> >> + /* Read all the interfaces out of the kernel. */
>> >> +- do
>> >> ++/* do
>> >> + {
>> >> + last_len = ifc.ifc_len;
>> >> + ifc.ifc_buf = alloca (ifc.ifc_len = rq_len); @@ -142,30
>> >> ++147,59 @@ # endif
>> >> +
>> >> + cur = ifr;
>> >> +-
>> >> +- /* Step along the array by the size of the current structure
>> */
>> >> +- ifr = (struct ifreq *) ((caddr_t) ifr + len + IFNAMSIZ);
>> >> ++*/
>> >> ++ content = read_file (PATH_PROCNET_DEV, &length);
>> >> ++ if (content == NULL)
>> >> ++ return NULL;
>> >> ++ /* Count how many interfaces we have. */
>> >> ++ {
>> >> ++ size_t n = 0;
>> >> ++ it = content;
>> >> ++ do
>> >> ++ {
>> >> ++ it = memchr (it + 1, ':', length - (it - content));
>> >> ++ n++;
>> >> ++ }
>> >> ++ while (it);
>> >> ++
>> >> ++ /* Step along the array by the size of the current structure */
>> >> ++ // ifr = (struct ifreq *) ((caddr_t) ifr + len + IFNAMSIZ);
>> >> +
>> >> + /* We ignore the other families .. OK ? */
>> >> +- if (cur->ifr_addr.sa_family != AF_INET)
>> >> +- continue;
>> >> +-
>> >> ++ // if (cur->ifr_addr.sa_family != AF_INET)
>> >> ++ //continue;
>> >> ++ idx = malloc (n * sizeof(*idx));
>> >> ++ if (idx == NULL)
>> >> + /* Make Room safely. */
>> >> + {
>> >> +- struct if_nameindex *tidx = NULL;
>> >> +- tidx = realloc (idx, (i + 1) * sizeof (*idx));
>> >> +- if (tidx == NULL)
>> >> +- {
>> >> +- if_freenameindex (idx);
>> >> +- close (fd);
>> >> +- errno = ENOBUFS;
>> >> +- return NULL;
>> >> +- }
>> >> +- idx = tidx;
>> >> ++ //struct if_nameindex *tidx = NULL;
>> >> ++ //tidx = realloc (idx, (i + 1) * sizeof (*idx));
>> >> ++ //if (tidx == NULL)
>> >> ++ // {
>> >> ++ // if_freenameindex (idx);
>> >> ++ // close (fd);
>> >> ++ // errno = ENOBUFS;
>> >> ++ // return NULL;
>> >> ++ // }
>> >> ++// idx = tidx;
>> >> ++ int saved_errno = errno;
>> >> ++ close (fd);
>> >> ++ free(content);
>> >> ++ errno = saved_errno;
>> >> ++ return NULL;
>> >> + }
>> >> +-
>> >> ++ }
>> >> + /* FIXME: We did not deal with duplicates or interface
>> >> + aliases. */
>> >> ++ for (it = memchr (content, ':', length), index = 0; it;
>> >> ++ it = memchr (it, ':', it - content), index++)
>> >> ++ {
>> >> ++ char *start = it - 1;
>> >> ++ *it = '\0';
>> >> ++
>> >> ++ while (*start != ' ' && *start != '\n')
>> >> ++ start--;
>> >> +
>> >> ++/*
>> >> + idx[i].if_name = strdup (cur->ifr_name);
>> >> + if (idx[i].if_name == NULL)
>> >> + {
>> >> +@@ -174,18 +208,38 @@
>> >> + errno = ENOBUFS;
>> >> + return NULL;
>> >> + }
>> >> ++*/
>> >> ++ idx[index].if_name = strdup (start + 1);
>> >> ++ idx[index].if_index = index + 1;
>> >> +
>> >> + # if defined(SIOCGIFINDEX)
>> >> +- if (ioctl (fd, SIOCGIFINDEX, cur) >= 0)
>> >> +- idx[i].if_index = cur->ifr_index;
>> >> +- else
>> >> ++ // if (ioctl (fd, SIOCGIFINDEX, cur) >= 0)
>> >> ++// idx[i].if_index = cur->ifr_index;
>> >> ++ // else
>> >> ++ {
>> >> ++ struct ifreq cur;
>> >> ++ strcpy (cur.ifr_name, idx[index].if_name);
>> >> ++ cur.ifr_index = -1;
>> >> ++ if (ioctl (fd, SIOCGIFINDEX, &cur) >= 0)
>> >> ++ idx[index].if_index = cur.ifr_index;
>> >> ++ }
>> >> ++
>> >> + # endif
>> >> +- idx[i].if_index = i + 1;
>> >> +- i++;
>> >> ++// idx[i].if_index = i + 1;
>> >> ++ // i++;
>> >> ++ if (idx[index].if_name == NULL)
>> >> ++ {
>> >> ++ int saved_errno = errno;
>> >> ++ close (fd);
>> >> ++ free (content);
>> >> ++ errno = saved_errno;
>> >> ++ return NULL;
>> >> ++ }
>> >> ++
>> >> + }
>> >> +
>> >> + /* Terminate the array with an empty solt. */
>> >> +- {
>> >> ++/* {
>> >> + struct if_nameindex *tidx = NULL;
>> >> + tidx = realloc (idx, (i + 1) * sizeof (*idx));
>> >> + if (tidx == NULL)
>> >> +@@ -199,14 +253,19 @@
>> >> + }
>> >> + idx[i].if_index = 0;
>> >> + idx[i].if_name = NULL;
>> >> +-
>> >> +- close (fd);
>> >> ++*/
>> >> ++ idx[index].if_index = 0;
>> >> ++ idx[index].if_name = NULL;
>> >> ++
>> >> ++ // close (fd);
>> >> ++ free(content);
>> >> + return idx;
>> >> +-
>> >> ++/*
>> >> + #else
>> >> + errno = ENOSYS;
>> >> + return NULL;
>> >> + #endif
>> >> ++*/
>> >> + }
>> >> +
>> >> + char *
>> >> diff --git
>> >> a/meta-oe/recipes-connectivity/inetutils/inetutils-1.8/add-module.pat
>> >> ch
>> >> b/meta-oe/recipes-connectivity/inetutils/inetutils-1.8/add-module.pat
>> >> ch
>> >> new file mode 100644
>> >> index 0000000..7acc3a4
>> >> --- /dev/null
>> >> +++ b/meta-oe/recipes-connectivity/inetutils/inetutils-1.8/add-module
>> >> +++ .patch
>> >> @@ -0,0 +1,18 @@
>> >> +--- inetutils-1.8/lib/gnulib.mk 2010-05-15 06:34:54.000000000 -
>> 0500
>> >> ++++ inetutils-1.8/lib/gnulib.mk 2012-10-29 21:50:44.821671025 -
>> 0500
>> >> +@@ -111,6 +111,15 @@
>> >> +
>> >> + ## end gnulib module argp-version-etc
>> >> +
>> >> ++
>> >> ++## begin gnulib module read-file
>> >> ++
>> >> ++libgnu_a_SOURCES += read-file.c
>> >> ++
>> >> ++EXTRA_DIST += read-file.h
>> >> ++
>> >> ++## end gnulib module read-file
>> >> ++
>> >> + ## begin gnulib module arpa_inet
>> >> +
>> >> + BUILT_SOURCES += arpa/inet.h
>> >> diff --git
>> >> a/meta-oe/recipes-connectivity/inetutils/inetutils-1.8/add-readfile.p
>> >> atch
>> >> b/meta-oe/recipes-connectivity/inetutils/inetutils-1.8/add-readfile.p
>> >> atch
>> >> new file mode 100644
>> >> index 0000000..bb18ae9
>> >> --- /dev/null
>> >> +++ b/meta-oe/recipes-connectivity/inetutils/inetutils-1.8/add-readfi
>> >> +++ le.patch
>> >> @@ -0,0 +1,250 @@
>> >> +Signed-off-by: Chunrong Guo <b40290 at freescale.com>
>> >> +---
>> >> + inetutils-1.8/lib/read-file.c | 191
>> +++++++++++++++++++++++++++++++++++++++++
>> >> + inetutils-1.8/lib/read-file.h | 36 ++++++++
>> >> + 2 files changed, 227 insertions(+)
>> >> + create mode 100644 inetutils-1.8/lib/read-file.c create mode
>> >> +100644 inetutils-1.8/lib/read-file.h
>> >> +
>> >> +diff --git a/lib/read-file.c b/lib/read-file.c new file mode 100644
>> >> +index 0000000..ba7aef3
>> >> +--- /dev/null
>> >> ++++ b/lib/read-file.c
>> >> +@@ -0,0 +1,191 @@
>> >> ++/* -*- buffer-read-only: t -*- vi: set ro: */
>> >> ++/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
>> >> ++/* read-file.c -- read file contents into a string
>> >> ++ Copyright (C) 2006, 2009-2011 Free Software Foundation, Inc.
>> >> ++ Written by Simon Josefsson and Bruno Haible.
>> >> ++
>> >> ++ This program is free software; you can redistribute it and/or
>> modify
>> >> ++ it under the terms of the GNU General Public License as published
>> by
>> >> ++ the Free Software Foundation; either version 3, or (at your
>> option)
>> >> ++ any later version.
>> >> ++
>> >> ++ This program is distributed in the hope that it will be useful,
>> >> ++ but WITHOUT ANY WARRANTY; without even the implied warranty of
>> >> ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
>> >> ++ GNU General Public License for more details.
>> >> ++
>> >> ++ You should have received a copy of the GNU General Public License
>> >> ++ along with this program; if not, write to the Free Software
>> Foundation,
>> >> ++ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
>> >> ++ USA. */
>> >> ++
>> >> ++#include <config.h>
>> >> ++
>> >> ++#include "read-file.h"
>> >> ++
>> >> ++/* Get fstat. */
>> >> ++#include <sys/stat.h>
>> >> ++
>> >> ++/* Get ftello. */
>> >> ++#include <stdio.h>
>> >> ++
>> >> ++/* Get SIZE_MAX. */
>> >> ++#include <stdint.h>
>> >> ++
>> >> ++/* Get malloc, realloc, free. */
>> >> ++#include <stdlib.h>
>> >> ++
>> >> ++/* Get errno. */
>> >> ++#include <errno.h>
>> >> ++
>> >> ++/* Read a STREAM and return a newly allocated string with the
>> content,
>> >> ++ and set *LENGTH to the length of the string. The string is
>> >> ++ zero-terminated, but the terminating zero byte is not counted in
>> >> ++ *LENGTH. On errors, *LENGTH is undefined, errno preserves the
>> >> ++ values set by system functions (if any), and NULL is returned.
>> >> ++*/ char * fread_file (FILE *stream, size_t *length) {
>> >> ++ char *buf = NULL;
>> >> ++ size_t alloc = BUFSIZ;
>> >> ++
>> >> ++ /* For a regular file, allocate a buffer that has exactly the
>> right
>> >> ++ size. This avoids the need to do dynamic reallocations later.
>> >> ++ */ {
>> >> ++ struct stat st;
>> >> ++
>> >> ++ if (fstat (fileno (stream), &st) >= 0 && S_ISREG (st.st_mode))
>> >> ++ {
>> >> ++ off_t pos = ftello (stream);
>> >> ++
>> >> ++ if (pos >= 0 && pos < st.st_size)
>> >> ++ {
>> >> ++ off_t alloc_off = st.st_size - pos;
>> >> ++
>> >> ++ /* '1' below, accounts for the trailing NUL. */
>> >> ++ if (SIZE_MAX - 1 < alloc_off)
>> >> ++ {
>> >> ++ errno = ENOMEM;
>> >> ++ return NULL;
>> >> ++ }
>> >> ++
>> >> ++ alloc = alloc_off + 1;
>> >> ++ }
>> >> ++ }
>> >> ++ }
>> >> ++
>> >> ++ if (!(buf = malloc (alloc)))
>> >> ++ return NULL; /* errno is ENOMEM. */
>> >> ++
>> >> ++ {
>> >> ++ size_t size = 0; /* number of bytes read so far */
>> >> ++ int save_errno;
>> >> ++
>> >> ++ for (;;)
>> >> ++ {
>> >> ++ /* This reads 1 more than the size of a regular file
>> >> ++ so that we get eof immediately. */
>> >> ++ size_t requested = alloc - size;
>> >> ++ size_t count = fread (buf + size, 1, requested, stream);
>> >> ++ size += count;
>> >> ++
>> >> ++ if (count != requested)
>> >> ++ {
>> >> ++ save_errno = errno;
>> >> ++ if (ferror (stream))
>> >> ++ break;
>> >> ++
>> >> ++ /* Shrink the allocated memory if possible. */
>> >> ++ if (size < alloc - 1)
>> >> ++ {
>> >> ++ char *smaller_buf = realloc (buf, size + 1);
>> >> ++ if (smaller_buf != NULL)
>> >> ++ buf = smaller_buf;
>> >> ++ }
>> >> ++
>> >> ++ buf[size] = '\0';
>> >> ++ *length = size;
>> >> ++ return buf;
>> >> ++ }
>> >> ++
>> >> ++ {
>> >> ++ char *new_buf;
>> >> ++
>> >> ++ if (alloc == SIZE_MAX)
>> >> ++ {
>> >> ++ save_errno = ENOMEM;
>> >> ++ break;
>> >> ++ }
>> >> ++
>> >> ++ if (alloc < SIZE_MAX - alloc / 2)
>> >> ++ alloc = alloc + alloc / 2;
>> >> ++ else
>> >> ++ alloc = SIZE_MAX;
>> >> ++
>> >> ++ if (!(new_buf = realloc (buf, alloc)))
>> >> ++ {
>> >> ++ save_errno = errno;
>> >> ++ break;
>> >> ++ }
>> >> ++
>> >> ++ buf = new_buf;
>> >> ++ }
>> >> ++ }
>> >> ++
>> >> ++ free (buf);
>> >> ++ errno = save_errno;
>> >> ++ return NULL;
>> >> ++ }
>> >> ++}
>> >> ++
>> >> ++static char *
>> >> ++internal_read_file (const char *filename, size_t *length, const
>> >> ++char *mode) {
>> >> ++ FILE *stream = fopen (filename, mode);
>> >> ++ char *out;
>> >> ++ int save_errno;
>> >> ++
>> >> ++ if (!stream)
>> >> ++ return NULL;
>> >> ++
>> >> ++ out = fread_file (stream, length);
>> >> ++
>> >> ++ save_errno = errno;
>> >> ++
>> >> ++ if (fclose (stream) != 0)
>> >> ++ {
>> >> ++ if (out)
>> >> ++ {
>> >> ++ save_errno = errno;
>> >> ++ free (out);
>> >> ++ }
>> >> ++ errno = save_errno;
>> >> ++ return NULL;
>> >> ++ }
>> >> ++
>> >> ++ return out;
>> >> ++}
>> >> ++
>> >> ++/* Open and read the contents of FILENAME, and return a newly
>> >> ++ allocated string with the content, and set *LENGTH to the length
>> of
>> >> ++ the string. The string is zero-terminated, but the terminating
>> >> ++ zero byte is not counted in *LENGTH. On errors, *LENGTH is
>> >> ++ undefined, errno preserves the values set by system functions (if
>> >> ++ any), and NULL is returned. */
>> >> ++char *
>> >> ++read_file (const char *filename, size_t *length) {
>> >> ++ return internal_read_file (filename, length, "r"); }
>> >> ++
>> >> ++/* Open (on non-POSIX systems, in binary mode) and read the contents
>> >> ++ of FILENAME, and return a newly allocated string with the content,
>> >> ++ and set LENGTH to the length of the string. The string is
>> >> ++ zero-terminated, but the terminating zero byte is not counted in
>> >> ++ the LENGTH variable. On errors, *LENGTH is undefined, errno
>> >> ++ preserves the values set by system functions (if any), and NULL
>> is
>> >> ++ returned. */
>> >> ++char *
>> >> ++read_binary_file (const char *filename, size_t *length) {
>> >> ++ return internal_read_file (filename, length, "rb"); }
>> >> +
>> >> +diff --git a/lib/read-file.h b/lib/read-file.h index
>> >> +0000000..14041dc
>> >> +--- /dev/null
>> >> ++++ b/lib/read-file.h
>> >> +@@ -0,0 +1,36 @@
>> >> ++/* -*- buffer-read-only: t -*- vi: set ro: */
>> >> ++/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
>> >> ++/* read-file.h -- read file contents into a string
>> >> ++ Copyright (C) 2006, 2009-2011 Free Software Foundation, Inc.
>> >> ++ Written by Simon Josefsson.
>> >> ++
>> >> ++ This program is free software; you can redistribute it and/or
>> modify
>> >> ++ it under the terms of the GNU General Public License as published
>> by
>> >> ++ the Free Software Foundation; either version 3, or (at your
>> option)
>> >> ++ any later version.
>> >> ++
>> >> ++ This program is distributed in the hope that it will be useful,
>> >> ++ but WITHOUT ANY WARRANTY; without even the implied warranty of
>> >> ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
>> >> ++ GNU General Public License for more details.
>> >> ++
>> >> ++ You should have received a copy of the GNU General Public License
>> >> ++ along with this program; if not, write to the Free Software
>> Foundation,
>> >> ++ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
>> >> ++ USA. */
>> >> ++
>> >> ++#ifndef READ_FILE_H
>> >> ++#define READ_FILE_H
>> >> ++
>> >> ++/* Get size_t. */
>> >> ++#include <stddef.h>
>> >> ++
>> >> ++/* Get FILE. */
>> >> ++#include <stdio.h>
>> >> ++
>> >> ++extern char *fread_file (FILE * stream, size_t * length);
>> >> ++
>> >> ++extern char *read_file (const char *filename, size_t * length);
>> >> ++
>> >> ++extern char *read_binary_file (const char *filename, size_t *
>> >> ++length);
>> >> ++
>> >> ++#endif /* READ_FILE_H */
>> >> +--
>> >> +1.7.9.7
>> >> +
>> >> diff --git a/meta-oe/recipes-connectivity/inetutils/inetutils_1.8.bb
>> >> b/meta-oe/recipes-connectivity/inetutils/inetutils_1.8.bb
>> >> index 761b2e6..74a9875 100644
>> >> --- a/meta-oe/recipes-connectivity/inetutils/inetutils_1.8.bb
>> >> +++ b/meta-oe/recipes-connectivity/inetutils/inetutils_1.8.bb
>> >> @@ -22,6 +22,9 @@ SRC_URI = "${GNU_MIRROR}/inetutils/inetutils-
>> ${PV}.tar.gz \
>> >> file://fix-disable-ipv6.patch \
>> >> file://disable-pre-ANSI-compilers.patch \
>> >> file://remove_gets.patch \
>> >> + file://add-readfile.patch \
>> >> + file://15.patch \
>> >> + file://add-module.patch \
>> >> "
>> >> SRC_URI[md5sum] = "ad8fdcdf1797b9ca258264a6b04e48fd"
>> >> SRC_URI[sha256sum] =
>> "c8500baee04b9ea408c9e65e24ad7f5b41e7d96d42fb1d29abf25b52b68311c7"
>> > --
>> > Joe MacDonald, Sr. Member of Technical Staff, Linux Products Group,
>> Wind River
>> > direct 613.270.5750 mobile 613.291.7421 fax 613.592.2283
More information about the Openembedded-devel
mailing list