Opened 11 years ago

Last modified 11 years ago

#25182 new enhancement

add a way to exclude build dependencies from pseudo-portname "leaves"

Reported by: swebster@… Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: base Version: 1.9.0
Keywords: Cc:


It seems to me that a primary purpose of the pseudo-portname "leaves" is to enable users to find ports that they no longer require so that they can be removed from their system. These ports could come into existence in a variety of ways, such as a requested port changing its dependencies.

Unfortunately the command "port list leaves" shows ports which are build dependencies of other installed ports. If these dependencies are removed then when those ports are next updated the build-deps will have to be reinstalled, wasting time and resources. Ideally "port list leaves" would separately identify build dependencies in its output.

This ticket is an outgrowth of #25179; sorry if this new ticket is inappropriate. I almost marked it as "enhancement" but per the guidelines it seems to me that this is a feature that is not working as intended. Feel free to switch the type.

Change History (4)

comment:1 Changed 11 years ago by swebster@…

Adding to the possible confusion is the fact that the "rdeps" command lists build dependencies.

comment:2 Changed 11 years ago by jmroot (Joshua Root)

Summary: pseudo-portname "leaves" should show build dependenciesadd a way to exclude build dependencies from pseudo-portname "leaves"
Type: defectenhancement

Both ways are useful. The way it works now happens to be easier to implement. You can use the -b option to port_cutleaves to achieve this currently BTW.

comment:3 Changed 11 years ago by swebster@…

Thanks for fixing the ticket title. -b doesn't work (seems to be assigned to binary only mode), but --no-build excludes build dependencies from the rdeps output, which is I think what you meant. I guess that could help people resolve some ambiguity. However, I don't think it actually helps me find what I was considering "true leaves." To do that I figure what I would do is:

port rdeps requested | grep -v '^The' | sed -E 's/ +//' | sort | uniq > alldeps
port installed leaves | grep -v '^The' | awk '{print $1}' > supposedleaves
comm -1 -3 alldeps supposedleaves

This would give me a list of what I would consider "true leaves."

comment:4 Changed 11 years ago by jmroot (Joshua Root)

Sorry, I meant port_cutleaves, not port-rdeps (edited).

Note: See TracTickets for help on using tickets.