make run-depends-list-recursive?
Jonathan McKeown
j.mckeown at ru.ac.za
Thu Apr 16 12:53:00 UTC 2009
On Thursday 16 April 2009 12:27:04 Mel Flynn wrote:
> But yes, all-depends-list is exactly that, with the provision
> that it does not take changed OPTIONS into account.
That's what I suspected you were saying yesterday, and it seems to be wrong.
Try this (assuming you haven't already configured/installed net/freeradius2
and security/krb5)
cd /usr/ports/net/freeradius2
make all-depends-list
make config # select Kerberos
make all-depends-list
make -C /usr/ports/security/krb5 config # unselect documentation for krb5
make all-depends-list
make -C /usr/ports/security/krb5 rmconfig
make rmconfig
You will get three different lists of dependencies: in the first case, the
main port (net/freeradius2) has the default OPTIONS and doesn't depend on
security/krb5 or its dependencies.
In the second case you will find teTeX and its dependencies in the list as
they are dependencies of krb5 in its default setting.
In the third case, you have changed an OPTION of security/krb5 to remove its
dependency on teTeX, and net/freeradius2 correctly removes the teTeX
dependency from its all-depends-list.
This certainly looks like all-depends-list correctly taking account of the
changed OPTIONS in the target port and all its dependencies.
What *is* a problem is make config-recursive, which doesn't take account of
any dependencies added as a result of OPTIONS changes made during the
config-recursive process.
This is relatively easily fixed, as make config-recursive actually runs make
config-conditional for everything in all-depends-list, so if you keep running
make config-recursive until nothing happens you can be reasonably sure you've
dealt with all the unexpected dialogues that might otherwise pop up.
This is worth knowing if you like doing overnight unattended installs and
don't want to accept default settings (so can't use BATCH=yes). Until I
discovered it I had immense frustration setting an installation/upgrade
running only to come back the next day and find a dialogue sitting on the
screen.
Jonathan
More information about the freebsd-questions
mailing list