All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yann E. MORIN <yann.morin.1998@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 50/50 v2] support/scripts: don't draw most of busybox' dependencies
Date: Sun, 8 Jul 2018 14:42:52 +0200	[thread overview]
Message-ID: <20180708124252.GB7163@scaer> (raw)
In-Reply-To: <7bdd1aa7-3e94-7e02-a45c-9dfac841b190@mind.be>

Arnout, All,

On 2018-07-08 13:25 +0200, Arnout Vandecappelle spake thusly:
> On 08-07-18 11:46, Yann E. MORIN wrote:
> > Since most dependencies of busybox' are there to guarantee that busybox
> > does not install applets that are already provided by other packages,
> > they are not really functional dependencies, and mostly clutter the
> > dependency graph.
> 
>  The thing is, they still are dependencies. I often use graph-depends to do a
> poor man's TLPB by starting builds of individual packages in separate shells,
> but then I first have to check that their dependency chains are non-overlapping.
> If you're going to hide some dependencies, that's not going to work any more...
> 
>  I also sometimes use it to understand why make decides to execute things in a
> particular order. Again, hiding dependencies doesn't help there.
> 
>  On the other hand, it's like the toolchain: you know everything depends on the
> toolchain, and similarly you know that buildroot depends on everything. So maybe
> it's not that bad.

Well, I like the depednency graph to also represent "why is the foo
package enabled, when I don;t want it? Oh, it is a dependnecy of bar,
I should disable bar then." In the case of busybox, that is wrong:
busybox does not need those packages, so graphing such dependency can
be misleading...

But I don;t care much, so I marked it as rejected.

Regards,
Yann E. MORIN.

> > 
> > Only the dependencies on libraries are interesting, so that is all we
> > keep.
> > 
> > Even though that function is only called with pkg set to 'busybox', we
> > still pass it as an argument, for symetry with the other functions that
> > removes the dependencies of a package.
> > 
> > Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> > Reviewed-by: Matt Weber <matthew.weber@rockwellcollins.com>
> > Cc: Carlos Santos <casantos@datacom.com.br>
> > 
> > ---
> > Changes v1 -> v2:
> >   - carry tag from Matt
> >   - clarify linux-pam case  (Carlos)
> > ---
> >  support/scripts/graph-depends | 11 +++++++++++
> >  1 file changed, 11 insertions(+)
> > 
> > diff --git a/support/scripts/graph-depends b/support/scripts/graph-depends
> > index 621e603278..0a3bc11be7 100755
> > --- a/support/scripts/graph-depends
> > +++ b/support/scripts/graph-depends
> > @@ -181,6 +181,15 @@ def remove_mandatory_deps(pkg, deps):
> >      return [p for p in deps[pkg] if p not in ['toolchain', 'skeleton']]
> >  
> >  
> > +# This function removes all dependencies of busybox, except its
> > +# dependencies on libraries (of which libpam, from linux-pam) and
> > +# host-pkgconf.
> > +def remove_busybox_deps(pkg, deps):
> > +    busybox_dep_whitelist = ['linux-pam', 'host-pkgconf']
> > +    return [p for p in deps[pkg]
> > +            if p.startswith('lib') or p in busybox_dep_whitelist]
> 
>  This feels horribly fragile to me...
> 
> 
>  I would feel more comfortable if we would introduce _INSTALL_DEPENDENCIES, as
> discussed in v1 of the series, and then simply exclude the _INSTALL_DEPENDENCIES
> from the graph. Or maybe even add a graph-depends option to do that.
> 
> 
>  Note: I have *not* marked this patch as changes requested, since it's actually
> good to go, except that I have more fundamental concerns about it.
> 
>  Regards,
>  Arnout
> 
> 
> > +
> > +
> >  # This function will check that there is no loop in the dependency chain
> >  # As a side effect, it builds up the dependency cache.
> >  def check_circular_deps(deps):
> > @@ -211,6 +220,8 @@ def check_circular_deps(deps):
> >  # This functions trims down the dependency list of all packages.
> >  # It applies in sequence all the dependency-elimination methods.
> >  def remove_extra_deps(deps, transitive):
> > +    if 'busybox' in list(deps.keys()):
> > +        deps['busybox'] = remove_busybox_deps('busybox', deps)
> >      for pkg in list(deps.keys()):
> >          if not pkg == 'all':
> >              deps[pkg] = remove_mandatory_deps(pkg, deps)
> > 
> 
> -- 
> Arnout Vandecappelle                          arnout at mind be
> Senior Embedded Software Architect            +32-16-286500
> Essensium/Mind                                http://www.mind.be
> G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
> LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
> GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

  reply	other threads:[~2018-07-08 12:42 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-08  9:46 [Buildroot] [PATCH 00/50 v2] package/busybox: invert dependencies Yann E. MORIN
2018-07-08  9:45 ` [Buildroot] [PATCH 01/50 v2] package/busybox: update to 1.29.0 Yann E. MORIN
2018-07-08 10:34   ` Arnout Vandecappelle
2018-07-08  9:45 ` [Buildroot] [PATCH 02/50 v2] package/busybox: invert dependency with whois Yann E. MORIN
2018-07-08  9:45 ` [Buildroot] [PATCH 03/50 v2] package/busybox: invert dependency with wget Yann E. MORIN
2018-07-08  9:45 ` [Buildroot] [PATCH 04/50 v2] package/busybox: invert dependency with vim Yann E. MORIN
2018-07-08  9:45 ` [Buildroot] [PATCH 05/50 v2] package/busybox: invert dependency with util-linux Yann E. MORIN
2018-07-08  9:45 ` [Buildroot] [PATCH 06/50 v2] package/busybox: invert dependency with usbutils Yann E. MORIN
2018-07-08  9:45 ` [Buildroot] [PATCH 07/50 v2] package/busybox: invert dependency with unzip Yann E. MORIN
2018-07-08  9:45 ` [Buildroot] [PATCH 08/50 v2] package/busybox: invert dependency with traceroute Yann E. MORIN
2018-07-08  9:45 ` [Buildroot] [PATCH 09/50 v2] package/busybox: invert dependency with tftpd Yann E. MORIN
2018-07-08  9:45 ` [Buildroot] [PATCH 10/50 v2] package/busybox: invert dependency with tar Yann E. MORIN
2018-07-08  9:45 ` [Buildroot] [PATCH 11/50 v2] package/busybox: invert dependency with sysvinit Yann E. MORIN
2018-07-08  9:45 ` [Buildroot] [PATCH 12/50 v2] package/busybox: invert dependency with systemd Yann E. MORIN
2018-07-08  9:45 ` [Buildroot] [PATCH 13/50 v2] package/busybox: invert dependency with syslog-ng Yann E. MORIN
2018-07-08  9:45 ` [Buildroot] [PATCH 14/50 v2] package/busybox: invert dependency with sysklogd Yann E. MORIN
2018-07-08  9:45 ` [Buildroot] [PATCH 15/50 v2] package/busybox: invert dependency with start-stop-daemon Yann E. MORIN
2018-07-08  9:45 ` [Buildroot] [PATCH 16/50 v2] package/busybox: invert dependency with rsyslog Yann E. MORIN
2018-07-09  1:39   ` Carlos Santos
2018-07-08  9:45 ` [Buildroot] [PATCH 17/50 v2] package/busybox: invert dependency with psmisc Yann E. MORIN
2018-07-08  9:45 ` [Buildroot] [PATCH 18/50 v2] package/busybox: invert dependency with procps-ng Yann E. MORIN
2018-07-08  9:45 ` [Buildroot] [PATCH 19/50 v2] package/busybox: invert dependency with pciutils Yann E. MORIN
2018-07-08  9:45 ` [Buildroot] [PATCH 20/50 v2] package/busybox: invert dependency with ntp Yann E. MORIN
2018-07-08  9:45 ` [Buildroot] [PATCH 21/50 v2] package/busybox: invert dependency with nmap Yann E. MORIN
2018-07-08 11:12   ` Arnout Vandecappelle
2018-07-08 12:38     ` Yann E. MORIN
2018-07-08 14:03       ` Arnout Vandecappelle
2018-07-08  9:45 ` [Buildroot] [PATCH 22/50 v2] package/busybox: invert dependency with netcat-openbsd Yann E. MORIN
2018-07-08  9:45 ` [Buildroot] [PATCH 23/50 v2] package/busybox: invert dependency with netcat Yann E. MORIN
2018-07-08 11:00   ` Arnout Vandecappelle
2018-07-08  9:45 ` [Buildroot] [PATCH 24/50 v2] package/busybox: invert dependency with net-tools Yann E. MORIN
2018-07-08  9:45 ` [Buildroot] [PATCH 25/50 v2] package/busybox: invert dependency with mtd Yann E. MORIN
2018-07-08  9:45 ` [Buildroot] [PATCH 26/50 v2] package/busybox: invert dependency with lsof Yann E. MORIN
2018-07-08  9:45 ` [Buildroot] [PATCH 27/50 v2] package/busybox: invert dependency with less Yann E. MORIN
2018-07-08  9:45 ` [Buildroot] [PATCH 28/50 v2] package/busybox: invert dependency with kmod Yann E. MORIN
2018-07-08  9:45 ` [Buildroot] [PATCH 29/50 v2] package/busybox: invert dependency with iputils Yann E. MORIN
2018-07-08  9:45 ` [Buildroot] [PATCH 30/50 v2] package/busybox: invert dependency with iproute2 Yann E. MORIN
2018-07-08  9:45 ` [Buildroot] [PATCH 31/50 v2] package/busybox: invert dependency with ifupdown Yann E. MORIN
2018-07-08  9:45 ` [Buildroot] [PATCH 32/50 v2] package/busybox: invert dependency with ifplugd Yann E. MORIN
2018-07-08  9:45 ` [Buildroot] [PATCH 33/50 v2] package/busybox: invert dependency with ifenslave Yann E. MORIN
2018-07-08  9:45 ` [Buildroot] [PATCH 34/50 v2] package/busybox: invert dependency with i2c-tools Yann E. MORIN
2018-07-08  9:46 ` [Buildroot] [PATCH 35/50 v2] package/busybox: invert dependency with gzip Yann E. MORIN
2018-07-08  9:46 ` [Buildroot] [PATCH 36/50 v2] package/busybox: invert dependency with grep Yann E. MORIN
2018-07-08  9:46 ` [Buildroot] [PATCH 37/50 v2] package/busybox: invert dependency with gawk Yann E. MORIN
2018-07-08  9:46 ` [Buildroot] [PATCH 38/50 v2] package/busybox: invert dependency with fbset Yann E. MORIN
2018-07-08  9:46 ` [Buildroot] [PATCH 39/50 v2] package/busybox: invert dependency with e2fsprogs Yann E. MORIN
2018-07-08  9:46 ` [Buildroot] [PATCH 40/50 v2] package/busybox: invert dependency with dos2unix Yann E. MORIN
2018-07-08  9:46 ` [Buildroot] [PATCH 41/50 v2] package/busybox: invert dependency with diffutils Yann E. MORIN
2018-07-08  9:46 ` [Buildroot] [PATCH 42/50 v2] package/busybox: invert dependency with debianutils Yann E. MORIN
2018-07-08  9:46 ` [Buildroot] [PATCH 43/50 v2] package/busybox: invert dependency with dcron Yann E. MORIN
2018-07-08  9:46 ` [Buildroot] [PATCH 44/50 v2] package/busybox: invert dependency with cpio Yann E. MORIN
2018-07-08  9:46 ` [Buildroot] [PATCH 45/50 v2] package/busybox: invert dependency with coreutils Yann E. MORIN
2018-07-08  9:46 ` [Buildroot] [PATCH 46/50 v2] package/busybox: invert dependency with binutils Yann E. MORIN
2018-07-08  9:46 ` [Buildroot] [PATCH 47/50 v2] package/busybox: invert dependency with bc Yann E. MORIN
2018-07-08  9:46 ` [Buildroot] [PATCH 48/50 v2] package/busybox: invert dependency with bash Yann E. MORIN
2018-07-08 11:06   ` Arnout Vandecappelle
2018-07-08 12:34     ` Yann E. MORIN
2018-07-08  9:46 ` [Buildroot] [PATCH 49/50 v2] package/busybox: add dependency on attr Yann E. MORIN
2018-07-08 11:09   ` Arnout Vandecappelle
2018-07-08 12:35     ` Yann E. MORIN
2018-07-08  9:46 ` [Buildroot] [PATCH 50/50 v2] support/scripts: don't draw most of busybox' dependencies Yann E. MORIN
2018-07-08 11:25   ` Arnout Vandecappelle
2018-07-08 12:42     ` Yann E. MORIN [this message]
2018-07-08 14:05       ` Arnout Vandecappelle
2018-07-09  1:41   ` Carlos Santos
2018-07-09  2:03     ` Carlos Santos
2018-07-09 19:33       ` Arnout Vandecappelle
2018-07-08 11:14 ` [Buildroot] [PATCH 00/50 v2] package/busybox: invert dependencies Arnout Vandecappelle

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180708124252.GB7163@scaer \
    --to=yann.morin.1998@free.fr \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.