Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH] pkg-infra: allow dumping reverse dependencies of a package
@ 2016-09-25 12:56 Yann E. MORIN
  2016-09-27 20:40 ` Arnout Vandecappelle
  2016-10-23 13:23 ` Thomas Petazzoni
  0 siblings, 2 replies; 8+ messages in thread
From: Yann E. MORIN @ 2016-09-25 12:56 UTC (permalink / raw)
  To: buildroot

Finding the packages that select another one in a specific configuration
is not very trivial:

  - when optional, the dependency is not expressed in Kconfig

  - looking at the .mk files is not very nice.

Introduce a way to dump reverse dependencies of packages, i.e. the list
of packages that directly depend on that package. Like for direct
dependencies, we limit the list to the first-order reverse dependencies.

Document it in the main help; use the opportunity to also docuemnt
foo-show-depends.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 Makefile               | 2 ++
 package/pkg-generic.mk | 7 +++++++
 2 files changed, 9 insertions(+)

diff --git a/Makefile b/Makefile
index 5e4daef..3039983 100644
--- a/Makefile
+++ b/Makefile
@@ -943,6 +943,8 @@ help:
 	@echo '  <pkg>-depends          - Build <pkg>'\''s dependencies'
 	@echo '  <pkg>-configure        - Build <pkg> up to the configure step'
 	@echo '  <pkg>-build            - Build <pkg> up to the build step'
+	@echo '  <pkg>-show-depends     - List packages on which <pkg> depends'
+	@echo '  <pkg>-show-rdepends    - List packages which have <pkg> as a dependency'
 	@echo '  <pkg>-graph-depends    - Generate a graph of <pkg>'\''s dependencies'
 	@echo '  <pkg>-dirclean         - Remove <pkg> build directory'
 	@echo '  <pkg>-reconfigure      - Restart the build from the configure step'
diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
index 68ead3d..779f294 100644
--- a/package/pkg-generic.mk
+++ b/package/pkg-generic.mk
@@ -523,6 +523,10 @@ $(2)_FINAL_DEPENDENCIES = $$(sort $$($(2)_DEPENDENCIES))
 $(2)_FINAL_PATCH_DEPENDENCIES = $$(sort $$($(2)_PATCH_DEPENDENCIES))
 $(2)_FINAL_ALL_DEPENDENCIES = $$(sort $$($(2)_FINAL_DEPENDENCIES) $$($(2)_FINAL_PATCH_DEPENDENCIES))
 
+# Register package as a reverse-dependencies of all its dependencies
+$$(eval $$(foreach p,$$($(2)_FINAL_ALL_DEPENDENCIES),\
+	$$(call UPPERCASE,$$(p))_RDEPENDENCIES += $(1)$$(sep)))
+
 $(2)_INSTALL_STAGING		?= NO
 $(2)_INSTALL_IMAGES		?= NO
 $(2)_INSTALL_TARGET		?= YES
@@ -698,6 +702,9 @@ $(1)-show-version:
 $(1)-show-depends:
 			@echo $$($(2)_FINAL_ALL_DEPENDENCIES)
 
+$(1)-show-rdepends:
+			@echo $$($(2)_RDEPENDENCIES)
+
 $(1)-graph-depends: graph-depends-requirements
 			@$$(INSTALL) -d $$(GRAPHS_DIR)
 			@cd "$$(CONFIG_DIR)"; \
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCH] pkg-infra: allow dumping reverse dependencies of a package
  2016-09-25 12:56 [Buildroot] [PATCH] pkg-infra: allow dumping reverse dependencies of a package Yann E. MORIN
@ 2016-09-27 20:40 ` Arnout Vandecappelle
  2016-09-27 21:32   ` Yann E. MORIN
  2016-10-23 13:23 ` Thomas Petazzoni
  1 sibling, 1 reply; 8+ messages in thread
From: Arnout Vandecappelle @ 2016-09-27 20:40 UTC (permalink / raw)
  To: buildroot



On 25-09-16 14:56, Yann E. MORIN wrote:
> Finding the packages that select another one in a specific configuration
> is not very trivial:
> 
>   - when optional, the dependency is not expressed in Kconfig
> 
>   - looking at the .mk files is not very nice.

 If I understand correctly, the idea is to answer the question "why is package
foo built?", right?

 It would make sense to also add a foo-graph-rdepends, because often you'll want
the transitive dependencies as well and it's always nice to have it in a graph.
But this patch is of course a prerequisite of that feature.

> 
> Introduce a way to dump reverse dependencies of packages, i.e. the list
> of packages that directly depend on that package. Like for direct
> dependencies, we limit the list to the first-order reverse dependencies.
> 
> Document it in the main help; use the opportunity to also docuemnt
                                                            document

> foo-show-depends.
> 
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>


> ---
>  Makefile               | 2 ++
>  package/pkg-generic.mk | 7 +++++++
>  2 files changed, 9 insertions(+)
> 
> diff --git a/Makefile b/Makefile
> index 5e4daef..3039983 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -943,6 +943,8 @@ help:
>  	@echo '  <pkg>-depends          - Build <pkg>'\''s dependencies'
>  	@echo '  <pkg>-configure        - Build <pkg> up to the configure step'
>  	@echo '  <pkg>-build            - Build <pkg> up to the build step'
> +	@echo '  <pkg>-show-depends     - List packages on which <pkg> depends'
> +	@echo '  <pkg>-show-rdepends    - List packages which have <pkg> as a dependency'
>  	@echo '  <pkg>-graph-depends    - Generate a graph of <pkg>'\''s dependencies'
>  	@echo '  <pkg>-dirclean         - Remove <pkg> build directory'
>  	@echo '  <pkg>-reconfigure      - Restart the build from the configure step'
> diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
> index 68ead3d..779f294 100644
> --- a/package/pkg-generic.mk
> +++ b/package/pkg-generic.mk
> @@ -523,6 +523,10 @@ $(2)_FINAL_DEPENDENCIES = $$(sort $$($(2)_DEPENDENCIES))
>  $(2)_FINAL_PATCH_DEPENDENCIES = $$(sort $$($(2)_PATCH_DEPENDENCIES))
>  $(2)_FINAL_ALL_DEPENDENCIES = $$(sort $$($(2)_FINAL_DEPENDENCIES) $$($(2)_FINAL_PATCH_DEPENDENCIES))
>  
> +# Register package as a reverse-dependencies of all its dependencies
> +$$(eval $$(foreach p,$$($(2)_FINAL_ALL_DEPENDENCIES),\
> +	$$(call UPPERCASE,$$(p))_RDEPENDENCIES += $(1)$$(sep)))
> +
>  $(2)_INSTALL_STAGING		?= NO
>  $(2)_INSTALL_IMAGES		?= NO
>  $(2)_INSTALL_TARGET		?= YES
> @@ -698,6 +702,9 @@ $(1)-show-version:
>  $(1)-show-depends:
>  			@echo $$($(2)_FINAL_ALL_DEPENDENCIES)
>  
> +$(1)-show-rdepends:
> +			@echo $$($(2)_RDEPENDENCIES)
> +
>  $(1)-graph-depends: graph-depends-requirements
>  			@$$(INSTALL) -d $$(GRAPHS_DIR)
>  			@cd "$$(CONFIG_DIR)"; \
> 

-- 
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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCH] pkg-infra: allow dumping reverse dependencies of a package
  2016-09-27 20:40 ` Arnout Vandecappelle
@ 2016-09-27 21:32   ` Yann E. MORIN
  2016-09-27 22:02     ` Arnout Vandecappelle
  0 siblings, 1 reply; 8+ messages in thread
From: Yann E. MORIN @ 2016-09-27 21:32 UTC (permalink / raw)
  To: buildroot

On 2016-09-27 22:40 +0200, Arnout Vandecappelle spake thusly:
> 
> 
> On 25-09-16 14:56, Yann E. MORIN wrote:
> > Finding the packages that select another one in a specific configuration
> > is not very trivial:
> > 
> >   - when optional, the dependency is not expressed in Kconfig
> > 
> >   - looking at the .mk files is not very nice.
> 
>  If I understand correctly, the idea is to answer the question "why is package
> foo built?", right?

Right. In my use-case, that was "what do I need to disable so I can
disable that broken package?".

>  It would make sense to also add a foo-graph-rdepends, because often you'll want
> the transitive dependencies as well and it's always nice to have it in a graph.

Yup, planned. But not trivial...

> But this patch is of course a prerequisite of that feature.

And it proved already usefull in its own right. ;-)

> > Introduce a way to dump reverse dependencies of packages, i.e. the list
> > of packages that directly depend on that package. Like for direct
> > dependencies, we limit the list to the first-order reverse dependencies.
> > 
> > Document it in the main help; use the opportunity to also docuemnt
>                                                             document

Boaf... One typo more, one typo less... I stopped countign a long time
ago! ;-)

> > foo-show-depends.
> > 
> > Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> 
> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>

Thanks!

Regards,
Yann E. MORIN.

> > ---
> >  Makefile               | 2 ++
> >  package/pkg-generic.mk | 7 +++++++
> >  2 files changed, 9 insertions(+)
> > 
> > diff --git a/Makefile b/Makefile
> > index 5e4daef..3039983 100644
> > --- a/Makefile
> > +++ b/Makefile
> > @@ -943,6 +943,8 @@ help:
> >  	@echo '  <pkg>-depends          - Build <pkg>'\''s dependencies'
> >  	@echo '  <pkg>-configure        - Build <pkg> up to the configure step'
> >  	@echo '  <pkg>-build            - Build <pkg> up to the build step'
> > +	@echo '  <pkg>-show-depends     - List packages on which <pkg> depends'
> > +	@echo '  <pkg>-show-rdepends    - List packages which have <pkg> as a dependency'
> >  	@echo '  <pkg>-graph-depends    - Generate a graph of <pkg>'\''s dependencies'
> >  	@echo '  <pkg>-dirclean         - Remove <pkg> build directory'
> >  	@echo '  <pkg>-reconfigure      - Restart the build from the configure step'
> > diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
> > index 68ead3d..779f294 100644
> > --- a/package/pkg-generic.mk
> > +++ b/package/pkg-generic.mk
> > @@ -523,6 +523,10 @@ $(2)_FINAL_DEPENDENCIES = $$(sort $$($(2)_DEPENDENCIES))
> >  $(2)_FINAL_PATCH_DEPENDENCIES = $$(sort $$($(2)_PATCH_DEPENDENCIES))
> >  $(2)_FINAL_ALL_DEPENDENCIES = $$(sort $$($(2)_FINAL_DEPENDENCIES) $$($(2)_FINAL_PATCH_DEPENDENCIES))
> >  
> > +# Register package as a reverse-dependencies of all its dependencies
> > +$$(eval $$(foreach p,$$($(2)_FINAL_ALL_DEPENDENCIES),\
> > +	$$(call UPPERCASE,$$(p))_RDEPENDENCIES += $(1)$$(sep)))
> > +
> >  $(2)_INSTALL_STAGING		?= NO
> >  $(2)_INSTALL_IMAGES		?= NO
> >  $(2)_INSTALL_TARGET		?= YES
> > @@ -698,6 +702,9 @@ $(1)-show-version:
> >  $(1)-show-depends:
> >  			@echo $$($(2)_FINAL_ALL_DEPENDENCIES)
> >  
> > +$(1)-show-rdepends:
> > +			@echo $$($(2)_RDEPENDENCIES)
> > +
> >  $(1)-graph-depends: graph-depends-requirements
> >  			@$$(INSTALL) -d $$(GRAPHS_DIR)
> >  			@cd "$$(CONFIG_DIR)"; \
> > 
> 
> -- 
> 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.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCH] pkg-infra: allow dumping reverse dependencies of a package
  2016-09-27 21:32   ` Yann E. MORIN
@ 2016-09-27 22:02     ` Arnout Vandecappelle
  2016-09-27 22:10       ` Yann E. MORIN
  0 siblings, 1 reply; 8+ messages in thread
From: Arnout Vandecappelle @ 2016-09-27 22:02 UTC (permalink / raw)
  To: buildroot



On 27-09-16 23:32, Yann E. MORIN wrote:
> On 2016-09-27 22:40 +0200, Arnout Vandecappelle spake thusly:
>> > 
>> > 
>> > On 25-09-16 14:56, Yann E. MORIN wrote:
>>> > > Finding the packages that select another one in a specific configuration
>>> > > is not very trivial:
>>> > > 
>>> > >   - when optional, the dependency is not expressed in Kconfig
>>> > > 
>>> > >   - looking at the .mk files is not very nice.
>> > 
>> >  If I understand correctly, the idea is to answer the question "why is package
>> > foo built?", right?
> Right. In my use-case, that was "what do I need to disable so I can
> disable that broken package?".
> 
>> >  It would make sense to also add a foo-graph-rdepends, because often you'll want
>> > the transitive dependencies as well and it's always nice to have it in a graph.
> Yup, planned. But not trivial...

 No? Isn't it just calling foo-show-rdepends from graph-depends?

> 
>> > But this patch is of course a prerequisite of that feature.
> And it proved already usefull in its own right. ;-)
> 
>>> > > Introduce a way to dump reverse dependencies of packages, i.e. the list
>>> > > of packages that directly depend on that package. Like for direct
>>> > > dependencies, we limit the list to the first-order reverse dependencies.
>>> > > 
>>> > > Document it in the main help; use the opportunity to also docuemnt
>> >                                                             document
> Boaf... One typo more, one typo less... I stopped countign a long time
> ago! ;-)

 countign, really? :-P


 Regards,
 Arnout

-- 
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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCH] pkg-infra: allow dumping reverse dependencies of a package
  2016-09-27 22:02     ` Arnout Vandecappelle
@ 2016-09-27 22:10       ` Yann E. MORIN
  2016-09-27 22:18         ` Arnout Vandecappelle
  0 siblings, 1 reply; 8+ messages in thread
From: Yann E. MORIN @ 2016-09-27 22:10 UTC (permalink / raw)
  To: buildroot

Arnout, All,

On 2016-09-28 00:02 +0200, Arnout Vandecappelle spake thusly:
> On 27-09-16 23:32, Yann E. MORIN wrote:
> > On 2016-09-27 22:40 +0200, Arnout Vandecappelle spake thusly:
> >> > 
> >> > 
> >> > On 25-09-16 14:56, Yann E. MORIN wrote:
> >>> > > Finding the packages that select another one in a specific configuration
> >>> > > is not very trivial:
> >>> > > 
> >>> > >   - when optional, the dependency is not expressed in Kconfig
> >>> > > 
> >>> > >   - looking at the .mk files is not very nice.
> >> > 
> >> >  If I understand correctly, the idea is to answer the question "why is package
> >> > foo built?", right?
> > Right. In my use-case, that was "what do I need to disable so I can
> > disable that broken package?".
> > 
> >> >  It would make sense to also add a foo-graph-rdepends, because often you'll want
> >> > the transitive dependencies as well and it's always nice to have it in a graph.
> > Yup, planned. But not trivial...
> 
>  No? Isn't it just calling foo-show-rdepends from graph-depends?

It would seem it would be that easy, but not really.

I don;t recall the details, but one thing is that we can't easily do an
rdepends graph for 'all' in the current state: we'd need to be able to
extract all packages that have no dependencies (i.e. leaf packages) so
that we could construct the 'all' node for rdepends.

Hmm.. Or do we have to? We could construct that list... Lemme think...

Of course, we could limit the feature to just graphing the rdeps of a
single package. That would not be overly complex, as you said.

But I was trying to mimick graph-depends into graph-rdepends, so they
would be symetrical...

Well, anyway, it's not at the top of my TODO list... ;-)

Regards,
Yann E. MORIN.

> >> > But this patch is of course a prerequisite of that feature.
> > And it proved already usefull in its own right. ;-)
> > 
> >>> > > Introduce a way to dump reverse dependencies of packages, i.e. the list
> >>> > > of packages that directly depend on that package. Like for direct
> >>> > > dependencies, we limit the list to the first-order reverse dependencies.
> >>> > > 
> >>> > > Document it in the main help; use the opportunity to also docuemnt
> >> >                                                             document
> > Boaf... One typo more, one typo less... I stopped countign a long time
> > ago! ;-)
> 
>  countign, really? :-P
> 
> 
>  Regards,
>  Arnout
> 
> -- 
> 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.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCH] pkg-infra: allow dumping reverse dependencies of a package
  2016-09-27 22:10       ` Yann E. MORIN
@ 2016-09-27 22:18         ` Arnout Vandecappelle
  0 siblings, 0 replies; 8+ messages in thread
From: Arnout Vandecappelle @ 2016-09-27 22:18 UTC (permalink / raw)
  To: buildroot



On 28-09-16 00:10, Yann E. MORIN wrote:
> Arnout, All,
> 
> On 2016-09-28 00:02 +0200, Arnout Vandecappelle spake thusly:
>> > On 27-09-16 23:32, Yann E. MORIN wrote:
>>> > > On 2016-09-27 22:40 +0200, Arnout Vandecappelle spake thusly:
>>>>> > >> > 
>>>>> > >> > 
>>>>> > >> > On 25-09-16 14:56, Yann E. MORIN wrote:
>>>>>>> > >>> > > Finding the packages that select another one in a specific configuration
>>>>>>> > >>> > > is not very trivial:
>>>>>>> > >>> > > 
>>>>>>> > >>> > >   - when optional, the dependency is not expressed in Kconfig
>>>>>>> > >>> > > 
>>>>>>> > >>> > >   - looking at the .mk files is not very nice.
>>>>> > >> > 
>>>>> > >> >  If I understand correctly, the idea is to answer the question "why is package
>>>>> > >> > foo built?", right?
>>> > > Right. In my use-case, that was "what do I need to disable so I can
>>> > > disable that broken package?".
>>> > > 
>>>>> > >> >  It would make sense to also add a foo-graph-rdepends, because often you'll want
>>>>> > >> > the transitive dependencies as well and it's always nice to have it in a graph.
>>> > > Yup, planned. But not trivial...
>> > 
>> >  No? Isn't it just calling foo-show-rdepends from graph-depends?
> It would seem it would be that easy, but not really.
> 
> I don;t recall the details, but one thing is that we can't easily do an
> rdepends graph for 'all' in the current state: we'd need to be able to
> extract all packages that have no dependencies (i.e. leaf packages) so
> that we could construct the 'all' node for rdepends.

 graph-rdepends would be exactly the same as graph-depends. Only
foo-graph-rdepends is relevant.


 Regards,
 Arnout


> 
> Hmm.. Or do we have to? We could construct that list... Lemme think...
> 
> Of course, we could limit the feature to just graphing the rdeps of a
> single package. That would not be overly complex, as you said.
> 
> But I was trying to mimick graph-depends into graph-rdepends, so they
> would be symetrical...
> 
> Well, anyway, it's not at the top of my TODO list... ;-)

-- 
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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCH] pkg-infra: allow dumping reverse dependencies of a package
  2016-09-25 12:56 [Buildroot] [PATCH] pkg-infra: allow dumping reverse dependencies of a package Yann E. MORIN
  2016-09-27 20:40 ` Arnout Vandecappelle
@ 2016-10-23 13:23 ` Thomas Petazzoni
  2016-10-23 15:08   ` Yann E. MORIN
  1 sibling, 1 reply; 8+ messages in thread
From: Thomas Petazzoni @ 2016-10-23 13:23 UTC (permalink / raw)
  To: buildroot

Hello,

On Sun, 25 Sep 2016 14:56:11 +0200, Yann E. MORIN wrote:
> Finding the packages that select another one in a specific configuration
> is not very trivial:
> 
>   - when optional, the dependency is not expressed in Kconfig
> 
>   - looking at the .mk files is not very nice.
> 
> Introduce a way to dump reverse dependencies of packages, i.e. the list
> of packages that directly depend on that package. Like for direct
> dependencies, we limit the list to the first-order reverse dependencies.
> 
> Document it in the main help; use the opportunity to also docuemnt
> foo-show-depends.
> 
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

I was about to apply this patch, but after testing it, I'm a little bit
skeptical.

The current <foo>-show-depends only shows the dependencies according to
the current configuration. So, if a package A has:

A_DEPENDENCIES = B

ifeq ($(BR2_PACKAGE_C),y)
A_DEPENDENCNIES += C
endif

and BR2_PACKAGE_C is not enabled, then "make A-show-depends" will only
show "B" but not C.

However, make <foo>-show-rdepends shows all possible reverse
dependencies, even the ones that are not enabled in the current
configuration. So let's say you have packages A, B, C and D.

a.mk:
A_DEPENDENCIES = D

b.mk:
B_DEPENDENCIES = D

c.mk:
ifeq ($(BR2_PACKAGE_C_SUPPORT_FOR_D),y)
C_DEPENDENCIES += D
endif

with:

 BR2_PACKAGE_A=y
 # BR2_PACKAGE_B is not set
 # BR2_PACKAGE_C is not set
 BR2_PACKAGE_D=y

Then, doing:

  make D-show-rdepends

will list both A and B, even if:

 1/ B is not enabled in the current configuration

 2/ C could potentially be a reverse dependency of A

So in the end, I find the semantic of this "show-rdepends" a bit weird.
It shows reverse dependencies, some according to the current
configuration, some not.

It feels a bit weird :/

Best regards,

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCH] pkg-infra: allow dumping reverse dependencies of a package
  2016-10-23 13:23 ` Thomas Petazzoni
@ 2016-10-23 15:08   ` Yann E. MORIN
  0 siblings, 0 replies; 8+ messages in thread
From: Yann E. MORIN @ 2016-10-23 15:08 UTC (permalink / raw)
  To: buildroot

Thomas, All,

On 2016-10-23 15:23 +0200, Thomas Petazzoni spake thusly:
> On Sun, 25 Sep 2016 14:56:11 +0200, Yann E. MORIN wrote:
> > Finding the packages that select another one in a specific configuration
> > is not very trivial:
> > 
> >   - when optional, the dependency is not expressed in Kconfig
> > 
> >   - looking at the .mk files is not very nice.
> > 
> > Introduce a way to dump reverse dependencies of packages, i.e. the list
> > of packages that directly depend on that package. Like for direct
> > dependencies, we limit the list to the first-order reverse dependencies.
> > 
> > Document it in the main help; use the opportunity to also docuemnt
> > foo-show-depends.
> > 
> > Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> 
> I was about to apply this patch, but after testing it, I'm a little bit
> skeptical.
[--SNIP--]
> So in the end, I find the semantic of this "show-rdepends" a bit weird.
> It shows reverse dependencies, some according to the current
> configuration, some not.

Right, good catch.

I've fixed it here now to take this into account. It should now match
the behaviour of -show-depends.

I'll spin it soon.

Thanks! :-)

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  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.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2016-10-23 15:08 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-09-25 12:56 [Buildroot] [PATCH] pkg-infra: allow dumping reverse dependencies of a package Yann E. MORIN
2016-09-27 20:40 ` Arnout Vandecappelle
2016-09-27 21:32   ` Yann E. MORIN
2016-09-27 22:02     ` Arnout Vandecappelle
2016-09-27 22:10       ` Yann E. MORIN
2016-09-27 22:18         ` Arnout Vandecappelle
2016-10-23 13:23 ` Thomas Petazzoni
2016-10-23 15:08   ` Yann E. MORIN

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox