[OE-core] Openembedded-core Digest, Vol 80, Issue 148

Ming Liu liu.ming50 at gmail.com
Mon Sep 18 14:40:40 UTC 2017


> Busybox can also provide sysctl so there's no hard dependency on procps.

Arha, that is correct, please ignore my patch then.

//Ming Liu

2017-09-18 16:37 GMT+02:00 <openembedded-core-request at lists.openembedded.org
>:

> Send Openembedded-core mailing list submissions to
>         openembedded-core at lists.openembedded.org
>
> To subscribe or unsubscribe via the World Wide Web, visit
>         http://lists.openembedded.org/mailman/listinfo/openembedded-core
> or, via email, send a message with subject or body 'help' to
>         openembedded-core-request at lists.openembedded.org
>
> You can reach the person managing the list at
>         openembedded-core-owner at lists.openembedded.org
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of Openembedded-core digest..."
>
>
> Today's Topics:
>
>    1. [PATCHv2] pseudo: use epoll API on Linux (Alexander Kanavin)
>    2. [pyro][PATCH] goarch.bbclass: Replace logic for setting   GOARM
>       (Will Newton)
>    3. Re: [PATCH 1/2] base-files: profile: Do not assume that the
>       'command' command exists (Mike Looijmans)
>    4. [PATCH] base-files: profile: Get rid of "resize" (Mike Looijmans)
>    5. ? patchtest: failure for "base-files: profile: Do not as..."
>       and 1 more (rev2) (Patchwork)
>    6. Re: [PATCH] init-ifupdown: RDEPENDS on procps (Mike Looijmans)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Mon, 18 Sep 2017 16:34:10 +0300
> From: Alexander Kanavin <alexander.kanavin at linux.intel.com>
> To: openembedded-core at lists.openembedded.org,   seebs at seebs.net
> Subject: [OE-core] [PATCHv2] pseudo: use epoll API on Linux
> Message-ID: <20170918133410.31388-1-alexander.kanavin at linux.intel.com>
>
> The idea came up here:
> https://bugzilla.yoctoproject.org/show_bug.cgi?id=11309
> and here:
> http://lists.openembedded.org/pipermail/openembedded-core/
> 2017-August/141491.html
>
> Signed-off-by: Alexander Kanavin <alexander.kanavin at linux.intel.com>
> ---
>  .../pseudo/files/0001-Use-epoll-API-on-Linux.patch | 273
> +++++++++++++++++++++
>  meta/recipes-devtools/pseudo/pseudo_1.8.2.bb       |   1 +
>  2 files changed, 274 insertions(+)
>  create mode 100644 meta/recipes-devtools/pseudo/
> files/0001-Use-epoll-API-on-Linux.patch
>
> diff --git a/meta/recipes-devtools/pseudo/files/0001-Use-epoll-API-on-Linux.patch
> b/meta/recipes-devtools/pseudo/files/0001-Use-epoll-API-on-Linux.patch
> new file mode 100644
> index 00000000000..2e304f9811c
> --- /dev/null
> +++ b/meta/recipes-devtools/pseudo/files/0001-Use-epoll-API-on-Linux.patch
> @@ -0,0 +1,273 @@
> +From 55fe7dc646f560bdf79309bc8677902e53686d65 Mon Sep 17 00:00:00 2001
> +From: Alexander Kanavin <alex.kanavin at gmail.com>
> +Date: Fri, 15 Sep 2017 17:00:14 +0300
> +Subject: [PATCH] Use epoll API on Linux
> +
> +Upstream-Status: Submitted [Seebs CC'd by email]
> +Signed-off-by: Alexander Kanavin <alex.kanavin at gmail.com>
> +
> +
> +Signed-off-by: Alexander Kanavin <alex.kanavin at gmail.com>
> +---
> + enums/exit_status.in |   3 +
> + pseudo_server.c      | 178 ++++++++++++++++++++++++++++++
> ++++++++++++++++++++-
> + 2 files changed, 179 insertions(+), 2 deletions(-)
> +
> +diff --git a/enums/exit_status.in b/enums/exit_status.in
> +index 6be44d3..88f94cd 100644
> +--- a/enums/exit_status.in
> ++++ b/enums/exit_status.in
> +@@ -18,3 +18,6 @@ listen_fd, "server loop had no valid listen fd"
> + pseudo_loaded, "server couldn't get out of pseudo environment"
> + pseudo_prefix, "couldn't get valid pseudo prefix"
> + pseudo_invocation, "invalid server command arguments"
> ++epoll_create, "epoll_create() failed"
> ++epoll_ctl, "epoll_ctl() failed"
> ++
> +diff --git a/pseudo_server.c b/pseudo_server.c
> +index ff16efd..09c43e4 100644
> +--- a/pseudo_server.c
> ++++ b/pseudo_server.c
> +@@ -40,6 +40,12 @@
> + #include "pseudo_client.h"
> + #include "pseudo_db.h"
> +
> ++// This has to come after pseudo includes, as that's where PSEUDO_PORT
> defines are
> ++#ifdef PSEUDO_PORT_LINUX
> ++#include <sys/epoll.h>
> ++#endif
> ++
> ++
> + static int listen_fd = -1;
> +
> + typedef struct {
> +@@ -59,6 +65,7 @@ static int active_clients = 0, highest_client = 0,
> max_clients = 0;
> +
> + #define LOOP_DELAY 2
> + #define DEFAULT_PSEUDO_SERVER_TIMEOUT 30
> ++#define EPOLL_MAX_EVENTS 10
> + int pseudo_server_timeout = DEFAULT_PSEUDO_SERVER_TIMEOUT;
> + static int die_peacefully = 0;
> + static int die_forcefully = 0;
> +@@ -80,7 +87,11 @@ quit_now(int signal) {
> + static int messages = 0, responses = 0;
> + static struct timeval message_time = { .tv_sec = 0 };
> +
> ++#ifdef PSEUDO_PORT_LINUX
> ++static void pseudo_server_loop_epoll(void);
> ++#else
> + static void pseudo_server_loop(void);
> ++#endif
> +
> + /* helper function to make a directory, just like mkdir -p.
> +  * Can't use system() because the child shell would end up trying
> +@@ -369,12 +380,16 @@ pseudo_server_start(int daemonize) {
> +                       kill(ppid, SIGUSR1);
> +               }
> +       }
> ++#ifdef PSEUDO_PORT_LINUX
> ++      pseudo_server_loop_epoll();
> ++#else
> +       pseudo_server_loop();
> ++#endif
> +       return 0;
> + }
> +
> + /* mess with internal tables as needed */
> +-static void
> ++static unsigned int
> + open_client(int fd) {
> +       pseudo_client_t *new_clients;
> +       int i;
> +@@ -390,7 +405,7 @@ open_client(int fd) {
> +                       ++active_clients;
> +                       if (i > highest_client)
> +                               highest_client = i;
> +-                      return;
> ++                      return i;
> +               }
> +       }
> +
> +@@ -414,9 +429,11 @@ open_client(int fd) {
> +
> +               max_clients += 16;
> +               ++active_clients;
> ++              return max_clients - 16;
> +       } else {
> +               pseudo_diag("error allocating new client, fd %d\n", fd);
> +               close(fd);
> ++              return 0;
> +       }
> + }
> +
> +@@ -566,6 +583,162 @@ serve_client(int i) {
> +       }
> + }
> +
> ++#ifdef PSEUDO_PORT_LINUX
> ++static void pseudo_server_loop_epoll(void)
> ++{
> ++      struct sockaddr_un client;
> ++      socklen_t len;
> ++        int i;
> ++        int rc;
> ++        int fd;
> ++      int timeout;
> ++      struct epoll_event ev, events[EPOLL_MAX_EVENTS];
> ++      int loop_timeout = pseudo_server_timeout;
> ++
> ++      clients = malloc(16 * sizeof(*clients));
> ++
> ++      clients[0].fd = listen_fd;
> ++      clients[0].pid = getpid();
> ++
> ++      for (i = 1; i < 16; ++i) {
> ++              clients[i].fd = -1;
> ++              clients[i].pid = 0;
> ++              clients[i].tag = NULL;
> ++              clients[i].program = NULL;
> ++      }
> ++
> ++      active_clients = 1;
> ++      max_clients = 16;
> ++      highest_client = 0;
> ++
> ++      pseudo_debug(PDBGF_SERVER, "server loop started.\n");
> ++      if (listen_fd < 0) {
> ++              pseudo_diag("got into loop with no valid listen fd.\n");
> ++              exit(PSEUDO_EXIT_LISTEN_FD);
> ++      }
> ++
> ++      timeout = LOOP_DELAY * 1000;
> ++
> ++      int epollfd = epoll_create1(0);
> ++      if (epollfd == -1) {
> ++              pseudo_diag("epoll_create1() failed.\n");
> ++              exit(PSEUDO_EXIT_EPOLL_CREATE);
> ++      }
> ++      ev.events = EPOLLIN;
> ++      ev.data.u64 = 0;
> ++      if (epoll_ctl(epollfd, EPOLL_CTL_ADD, clients[0].fd, &ev) == -1) {
> ++              pseudo_diag("epoll_ctl() failed with listening socket.\n");
> ++              exit(PSEUDO_EXIT_EPOLL_CTL);
> ++      }
> ++
> ++      pdb_log_msg(SEVERITY_INFO, NULL, NULL, NULL, "server started (pid
> %d)", getpid());
> ++
> ++        for (;;) {
> ++              rc = epoll_wait(epollfd, events, EPOLL_MAX_EVENTS,
> timeout);
> ++              if (rc == 0 || (rc == -1 && errno == EINTR)) {
> ++                      /* If there's no clients, start timing out.  If
> there
> ++                       * are active clients, never time out.
> ++                       */
> ++                      if (active_clients == 1) {
> ++                              loop_timeout -= LOOP_DELAY;
> ++                                /* maybe flush database to disk */
> ++                                pdb_maybe_backup();
> ++                              if (loop_timeout <= 0) {
> ++                                      pseudo_debug(PDBGF_SERVER, "no
> more clients, got bored.\n");
> ++                                      die_peacefully = 1;
> ++                              } else {
> ++                                      /* display this if not exiting */
> ++                                      pseudo_debug(PDBGF_SERVER |
> PDBGF_BENCHMARK, "%d messages handled in %.4f seconds, %d responses\n",
> ++                                              messages,
> ++                                              (double)
> message_time.tv_sec +
> ++                                              (double)
> message_time.tv_usec / 1000000.0,
> ++                                                responses);
> ++                              }
> ++                      }
> ++              } else if (rc > 0) {
> ++                      loop_timeout = pseudo_server_timeout;
> ++                      for (i = 0; i < rc; ++i) {
> ++                              if (clients[events[i].data.u64].fd ==
> listen_fd) {
> ++                                      if (!die_forcefully) {
> ++                                              len = sizeof(client);
> ++                                              if ((fd =
> accept(listen_fd, (struct sockaddr *) &client, &len)) != -1) {
> ++                                              /* Don't allow clients to
> end up on fd 2, because glibc's
> ++                                               * malloc debug uses that
> fd unconditionally.
> ++                                               */
> ++                                                      if (fd == 2) {
> ++                                                              int newfd
> = fcntl(fd, F_DUPFD, 3);
> ++                                                              close(fd);
> ++                                                              fd = newfd;
> ++                                                      }
> ++
> pseudo_debug(PDBGF_SERVER, "new client fd %d\n", fd);
> ++                                                      /* A new client
> implicitly cancels any
> ++                                                       * previous
> shutdown request, or a
> ++                                                       * shutdown for
> lack of clients.
> ++                                                       */
> ++
> pseudo_server_timeout = DEFAULT_PSEUDO_SERVER_TIMEOUT;
> ++                                                      die_peacefully = 0;
> ++
> ++                                                      ev.events =
> EPOLLIN;
> ++                                                      ev.data.u64 =
> open_client(fd);
> ++                                                      if (ev.data.u64 !=
> 0 && epoll_ctl(epollfd, EPOLL_CTL_ADD, clients[ev.data.u64].fd, &ev) == -1)
> {
> ++
> pseudo_diag("epoll_ctl() failed with accepted socket.\n");
> ++
> exit(PSEUDO_EXIT_EPOLL_CTL);
> ++                                                      }
> ++                                              } else if (errno ==
> EMFILE) {
> ++                                                      // select() loop
> would drop a client here, we do nothing (for now)
> ++
> pseudo_debug(PDBGF_SERVER, "Hit max open files.\n");
> ++                                              }
> ++                                      }
> ++                              } else {
> ++                                      struct timeval tv1, tv2;
> ++                                        int rc;
> ++                                      gettimeofday(&tv1, NULL);
> ++                                      rc = serve_client(events[i].data.
> u64);
> ++                                      gettimeofday(&tv2, NULL);
> ++                                      ++messages;
> ++                                        if (rc == 0)
> ++                                                ++responses;
> ++                                      message_time.tv_sec += (tv2.tv_sec
> - tv1.tv_sec);
> ++                                      message_time.tv_usec +=
> (tv2.tv_usec - tv1.tv_usec);
> ++                                      if (message_time.tv_usec < 0) {
> ++                                              message_time.tv_usec +=
> 1000000;
> ++                                              --message_time.tv_sec;
> ++                                      } else while (message_time.tv_usec
> > 1000000) {
> ++                                              message_time.tv_usec -=
> 1000000;
> ++                                              ++message_time.tv_sec;
> ++                                      }
> ++                              }
> ++                              if (die_forcefully)
> ++                                      break;
> ++                      }
> ++                      pseudo_debug(PDBGF_SERVER, "server loop complete
> [%d clients left]\n", active_clients);
> ++              } else {
> ++                      pseudo_diag("epoll_wait failed: %s\n",
> strerror(errno));
> ++                      break;
> ++              }
> ++              if (die_peacefully || die_forcefully) {
> ++                      pseudo_debug(PDBGF_SERVER, "quitting.\n");
> ++                      pseudo_debug(PDBGF_SERVER | PDBGF_BENCHMARK,
> "server %d exiting: handled %d messages in %.4f seconds\n",
> ++                              getpid(), messages,
> ++                              (double) message_time.tv_sec +
> ++                              (double) message_time.tv_usec / 1000000.0);
> ++                      pdb_log_msg(SEVERITY_INFO, NULL, NULL, NULL,
> "server %d exiting: handled %d messages in %.4f seconds",
> ++                              getpid(), messages,
> ++                              (double) message_time.tv_sec +
> ++                              (double) message_time.tv_usec / 1000000.0);
> ++                      /* and at this point, we'll start refusing
> connections */
> ++                      close(clients[0].fd);
> ++                      /* This is a good place to insert a delay for
> ++                       * debugging race conditions during startup. */
> ++                      /* usleep(300000); */
> ++                      exit(0);
> ++              }
> ++      }
> ++
> ++}
> ++
> ++#else
> ++
> + /* get clients, handle messages, shut down.
> +  * This doesn't actually do any work, it just calls a ton of things which
> +  * do work.
> +@@ -751,3 +924,4 @@ pseudo_server_loop(void) {
> +       }
> +       pseudo_diag("select failed: %s\n", strerror(errno));
> + }
> ++#endif
> +--
> +2.14.1
> +
> diff --git a/meta/recipes-devtools/pseudo/pseudo_1.8.2.bb
> b/meta/recipes-devtools/pseudo/pseudo_1.8.2.bb
> index 9bcd0318926..81853e95c42 100644
> --- a/meta/recipes-devtools/pseudo/pseudo_1.8.2.bb
> +++ b/meta/recipes-devtools/pseudo/pseudo_1.8.2.bb
> @@ -8,6 +8,7 @@ SRC_URI = "http://downloads.yoctoproject.org/releases/
> pseudo/${BPN}-${PV}.tar.bz
>             file://efe0be279901006f939cd357ccee47b651c786da.patch \
>             file://b6b68db896f9963558334aff7fca61adde4ec10f.patch \
>             file://toomanyfiles.patch \
> +           file://0001-Use-epoll-API-on-Linux.patch \
>             "
>
>  SRC_URI[md5sum] = "7d41e72188fbea1f696c399c1a435675"
> --
> 2.14.1
>
>
>
> ------------------------------
>
> Message: 2
> Date: Mon, 18 Sep 2017 16:43:56 +0300
> From: Will Newton <will.newton at gmail.com>
> To: openembedded-core at lists.openembedded.org
> Cc: Will Newton <willn at resin.io>, Otavio Salvador
>         <otavio at ossystems.com.br>
> Subject: [OE-core] [pyro][PATCH] goarch.bbclass: Replace logic for
>         setting GOARM
> Message-ID: <20170918134356.16124-1-willn at resin.io>
>
> From: Will Newton <will.newton at gmail.com>
>
> The previous logic applied a regex to TUNE_FEATURES which could
> set the GOARM value to 7 incorrectly, for example when dealing
> with an arm1176 core. Simplify to check for the presence of
> "armv7" instead. At the same time add a check for "armv6" and
> set GOARM to 6 in that case.
>
> (From OE-Core rev: 07b60c15e9ef650940afdde37bf3f3b9c50a336d)
>
> Signed-off-by: Will Newton <willn at resin.io>
> Signed-off-by: Otavio Salvador <otavio at ossystems.com.br>
> Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
> ---
>  meta/classes/goarch.bbclass | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/meta/classes/goarch.bbclass b/meta/classes/goarch.bbclass
> index 4a5b2ec787..12df88f8c4 100644
> --- a/meta/classes/goarch.bbclass
> +++ b/meta/classes/goarch.bbclass
> @@ -38,8 +38,11 @@ def go_map_arch(a, d):
>
>  def go_map_arm(a, f, d):
>      import re
> -    if re.match('arm.*', a) and re.match('arm.*7.*', f):
> -        return '7'
> +    if re.match('arm.*', a):
> +        if 'armv7' in f:
> +            return '7'
> +        elif 'armv6' in f:
> +            return '6'
>      return ''
>
>  def go_map_os(o, d):
> --
> 2.13.5
>
>
>
> ------------------------------
>
> Message: 3
> Date: Mon, 18 Sep 2017 15:56:25 +0200
> From: Mike Looijmans <mike.looijmans at topic.nl>
> To: <openembedded-core at lists.openembedded.org>
> Subject: Re: [OE-core] [PATCH 1/2] base-files: profile: Do not assume
>         that the 'command' command exists
> Message-ID: <411d4d88-f166-1c4e-2dc4-3009d157b071 at topic.nl>
> Content-Type: text/plain; charset="utf-8"; format=flowed
>
> ?On 18-09-17 15:24, Mike Looijmans wrote:
> > On 18-09-17 15:08, Burton, Ross wrote:
> >> On 18 September 2017 at 12:31, Mike Looijmans <mike.looijmans at topic.nl
> >> <mailto:mike.looijmans at topic.nl>> wrote:
> >>
> >>         This is basically the same change as I first sent a patch for in
> >>         April, and
> >>         last pinged this Friday... The only real difference is that
> this one
> >>         misses
> >>         passing error output from resize to /dev/null (which it should
> do to
> >>         handle
> >>         the case where tty exists, but resize does not).
> >>
> >>
> >>     Yeah, indeed.
> >>
> >>
> >> Apologies for missing that patch!
> >>
> >>     Other problem is that "resize" outputs shell script on stdout to be
> >>     executed, so the proper "total" invokation would be:
> >>
> >>        /dev/tty[A-z]*) eval `resize 2>/dev/null` ;;
> >>
> >>     The "eval" part is missing in your version...
> >>
> >>
> >> Who is going to submit the One True patch with all the fixes in?  I
> promise
> >> to merge it.
> >
> > I'll send the one ring, eh, patch, in a few minutes. I'll merge the two
> into a
> > single as well.
>
> On second thought, just use Peter's patch "as is".
>
> I've been experimenting with the "eval" part and it doesn't behave well.
> Tends
> to confuse minicom, create garbage, and in particular when run from
> "profile",
> it seems to result in counterproductive COLUMNS=0 and LINES=0.
>
> I'm actually wondering why the call to "resize" is being done at all. Just
> calling "resize" has no effect, since it outputs the results on stdout as
> shell script, and that is being discarded. Looking at the commit that
> introduced it:
>
> cc6360f4c4d9 (base-files: set dynamic COLUMNS via resize command)
>
> that already has no effect whatsoever. See the man page for resize:
> https://linux.die.net/man/1/resize
>
> I also would consider running some program's output as shell script a bit
> spooky, it looks like a security hole waiting to be exploited.
>
>
>
> Kind regards,
>
> Mike Looijmans
> System Expert
>
> TOPIC Products
> Materiaalweg 4, NL-5681 RJ Best
> Postbus 440, NL-5680 AK Best
> Telefoon: +31 (0) 499 33 69 79
> E-mail: mike.looijmans at topicproducts.com
> Website: www.topicproducts.com
>
> Please consider the environment before printing this e-mail
>
>
>
>
>
> ------------------------------
>
> Message: 4
> Date: Mon, 18 Sep 2017 16:07:14 +0200
> From: Mike Looijmans <mike.looijmans at topic.nl>
> To: openembedded-core at lists.openembedded.org
> Cc: Mike Looijmans <mike.looijmans at topic.nl>,
>         peter.kjellerstedt at axis.com
> Subject: [OE-core] [PATCH] base-files: profile: Get rid of "resize"
> Message-ID:
>         <1505743634-13500-1-git-send-email-mike.looijmans at topic.nl>
>
> The "resize" command actually outputs shell commands to be executed, for
> example:
>
> $ resize
> COLUMNS=102;
> LINES=27;
> export COLUMNS LINES;
>
> The output of "resize" is being discarded to /dev/null so the call has no
> effect whatsoever, and does not change the environment (it cannot change
> the
> environment of its parent). Remove the call and hence solve the messages
> about shells missing "command" or "tty" or "resize".
>
> Signed-off-by: Mike Looijmans <mike.looijmans at topic.nl>
> ---
>  meta/recipes-core/base-files/base-files/profile | 9 ---------
>  1 file changed, 9 deletions(-)
>
> diff --git a/meta/recipes-core/base-files/base-files/profile
> b/meta/recipes-core/base-files/base-files/profile
> index a062028..cfd0d69 100644
> --- a/meta/recipes-core/base-files/base-files/profile
> +++ b/meta/recipes-core/base-files/base-files/profile
> @@ -20,15 +20,6 @@ if [ -d /etc/profile.d ]; then
>         unset i
>  fi
>
> -if command -v resize >/dev/null && command -v tty >/dev/null; then
> -       # Make sure we are on a serial console (i.e. the device used
> starts with
> -       # /dev/tty[A-z]), otherwise we confuse e.g. the eclipse launcher
> which
> -       # tries do use ssh
> -       case $(tty) in
> -               /dev/tty[A-z]*) resize >/dev/null;;
> -       esac
> -fi
> -
>  export PATH PS1 OPIEDIR QPEDIR QTDIR EDITOR TERM
>
>  umask 022
> --
> 1.9.1
>
>
>
> ------------------------------
>
> Message: 5
> Date: Mon, 18 Sep 2017 14:30:26 -0000
> From: Patchwork <patchwork at patchwork.openembedded.org>
> To: mike.looijmans at topic.nl
> Cc: openembedded-core at lists.openembedded.org
> Subject: [OE-core] ? patchtest: failure for "base-files: profile: Do
>         not as..." and 1 more (rev2)
> Message-ID: <20170918143026.2786.12950 at do.openembedded.org>
> Content-Type: text/plain; charset="utf-8"
>
> == Series Details ==
>
> Series: "base-files: profile: Do not as..." and 1 more (rev2)
> Revision: 2
> URL   : https://patchwork.openembedded.org/series/8967/
> State : failure
>
> == Summary ==
>
>
> Thank you for submitting this patch series to OpenEmbedded Core. This is
> an automated response. Several tests have been executed on the proposed
> series by patchtest resulting in the following failures:
>
>
>
> * Issue             Series does not apply on top of target branch
> [test_series_merge_on_head]
>   Suggested fix    Rebase your series on top of targeted branch
>   Targeted branch  master (currently at cbc396dd10)
>
>
>
> If you believe any of these test results are incorrect, please reply to the
> mailing list (openembedded-core at lists.openembedded.org) raising your
> concerns.
> Otherwise we would appreciate you correcting the issues and submitting a
> new
> version of the patchset if applicable. Please ensure you add/increment the
> version number when sending the new version (i.e. [PATCH] -> [PATCH v2] ->
> [PATCH v3] -> ...).
>
> ---
> Test framework: http://git.yoctoproject.org/cgit/cgit.cgi/patchtest
> Test suite:     http://git.yoctoproject.org/cgit/cgit.cgi/patchtest-oe
>
>
>
> ------------------------------
>
> Message: 6
> Date: Mon, 18 Sep 2017 14:47:08 +0200
> From: Mike Looijmans <mike.looijmans at topic.nl>
> To: <openembedded-core at lists.openembedded.org>
> Subject: Re: [OE-core] [PATCH] init-ifupdown: RDEPENDS on procps
> Message-ID: <b29b9784-57af-089a-35b1-4b339ca84fd9 at topic.nl>
> Content-Type: text/plain; charset="utf-8"; format=flowed
>
> ?Busybox can also provide sysctl so there's no hard dependency on procps.
>
>
> On 18-09-17 14:43, liu.ming50 at gmail.com wrote:
> > From: Ming Liu <liu.ming50 at gmail.com>
> >
> > sysctl is being called in /etc/init.d/networking, so it needs RDEPENDS
> > on procps.
> >
> > Signed-off-by: Ming Liu <liu.ming50 at gmail.com>
> > ---
> >   meta/recipes-core/init-ifupdown/init-ifupdown_1.0.bb | 2 +-
> >   1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/meta/recipes-core/init-ifupdown/init-ifupdown_1.0.bb
> b/meta/recipes-core/init-ifupdown/init-ifupdown_1.0.bb
> > index 733ae41..8774386 100644
> > --- a/meta/recipes-core/init-ifupdown/init-ifupdown_1.0.bb
> > +++ b/meta/recipes-core/init-ifupdown/init-ifupdown_1.0.bb
> > @@ -35,7 +35,7 @@ do_install_append_qemuall () {
> >   }
> >
> >   PACKAGE_ARCH_qemuall = "${MACHINE_ARCH}"
> > -RDEPENDS_${PN} = "netbase"
> > +RDEPENDS_${PN} = "netbase procps"
> >   RCONFLICTS_${PN} = "netbase (< 1:5.0)"
> >
> >   CONFFILES_${PN} = "${sysconfdir}/network/interfaces"
> >
>
>
>
> Kind regards,
>
> Mike Looijmans
> System Expert
>
> TOPIC Products
> Materiaalweg 4, NL-5681 RJ Best
> Postbus 440, NL-5680 AK Best
> Telefoon: +31 (0) 499 33 69 79
> E-mail: mike.looijmans at topicproducts.com
> Website: www.topicproducts.com
>
> Please consider the environment before printing this e-mail
>
>
>
>
>
> ------------------------------
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>
>
> End of Openembedded-core Digest, Vol 80, Issue 148
> **************************************************
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20170918/ed93cd77/attachment-0002.html>


More information about the Openembedded-core mailing list