Opened 14 years ago

Closed 14 years ago

#22346 closed enhancement (fixed)

Recursive depends pseudo-portname selectors

Reported by: ashley.moran@… Owned by: macports-tickets@…
Priority: Normal Milestone: MacPorts 1.9.0
Component: base Version: 1.8.1
Keywords: Cc:
Port:

Description

Sorry if the syntax of this is not quite right, it was a while ago and I didn't save the commands. I've had a todo note to report it for a while.

This came up recently when I wanted to upgrade ports after Snow Leopard was released. Because ghc hadn't been updated, I wanted to update everything that didn't depend on it. I tried something like this:

# port upgrade not depends:ghc

But this only excludes ports that depend directly on ghc, so it still tries to upgrade ports that depend on those.

What I'd like to do is this:

# port upgrade not recursive-depends:ghc

I'm not sure if it would be better to do that as a separate selector, or to change the behaviour of the current depends.

Change History (6)

comment:1 Changed 14 years ago by jmroot (Joshua Root)

First the port-rdeps script in contrib/ should be integrated into base as e.g. 'port rdeps'. I would then propose adding the following selectors:

  • deps: direct dependencies of the given port
  • rdeps: recursive dependencies
  • dependents: ports that directly depend on the given one according to the registry
  • rdependents: recursive version of dependents

We should not change the behaviour of the current depends: selector as it is useful in its own right.

comment:2 in reply to:  description ; Changed 14 years ago by ryandesign (Ryan Carsten Schmidt)

Replying to ashley.moran@…:

This came up recently when I wanted to upgrade ports after Snow Leopard was released. Because ghc hadn't been updated, I wanted to update everything that didn't depend on it. I tried something like this:

After upgrading to Snow Leopard, you must uninstall and reinstall all ports anyway. After that step, you will no longer have ghc installed (since it can't currently install on Snow Leopard) so you will avoid the problem you're reporting.

comment:3 in reply to:  2 Changed 14 years ago by ashley.moran@…

Replying to ryandesign@…:

After upgrading to Snow Leopard, you must uninstall and reinstall all ports anyway. After that step, you will no longer have ghc installed (since it can't currently install on Snow Leopard) so you will avoid the problem you're reporting.

That's true, but I was lucky I didn't, or I wouldn't have been able to re-install darcs (which actually runs fine against the 32-bit Snowy libs).

But I still think this would be a useful feature, for anyone that wants to omit a branch of the ports tree from an operation. It's also less surprising behaviour - I was initially confused as to what "not depends" means.

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

Milestone: MacPorts 1.9.0

comment:5 Changed 14 years ago by jmroot (Joshua Root)

Added dependentof: and rdependentof: in r65858. (If you think about it, calling it dependents: would reverse the sense compared to all the existing selectors.)

comment:6 Changed 14 years ago by jmroot (Joshua Root)

Resolution: fixed
Status: newclosed

Added rdeps action and depof/rdepof selectors in r66198.

Note: See TracTickets for help on using tickets.