fixing up port dependencies properly

b. f. bf1783 at googlemail.com
Wed Feb 3 14:17:50 UTC 2010


John W wrote:
>I updated my ports tree with csup, and tried to run 'portmaster -na'.
>It gave me this:
>
>    ===>>> The mail/p5-Email-Simple-Creator port has been deleted:
>Folded into p5-Email-Simple package
>
>Ok, that makes sense. But what do I do to fix it?
>It seems I need to replace dependencies on p5-Email-Simple-Creator
>with dependencies on p5-Email-Simple.
>
>But if I manually do that, won't my changes be blown away the next
>time I update ports?

The committer who added the entry to /usr/ports/MOVED also seems to
have adjusted any dependencies in the Ports tree, back on 24 Nov.
2009.  So if you have an up-to-date ports tree, then after rebuilding
the ports that used to depend upon p5-Email-Simple-Creator, those
ports will depend instead upon p5-Email-Simple, and no further
intervention will be needed.


>
>Perhaps I should use the '-o' (origin) option of portmaster? I'm not
>100% sure what that does, incidentally (explanation welcome).
>I assume something like:
>
>    portmaster -o p5-Email-Simple p5-Email-Simple-Creator
>

I don't use portmaster often, but I think it should instead be:

portmaster -o mail/p5-Email-Simple p5-Email-Simple-Creator

Read the portmaster(1) manpage carefully, and look at the examples.

>Will those changes get blown away by the next update of ports?

In this case, no.

>
>Is the most correct solution just to wait until all maintainers of
>ports which depend on p5-Email-Simple-Creator each update their
>makefiles to depend on p5-Email-Simple, instead? (Though that doesn't
>help in the short term :)

That should already have been done.  In other cases, if it has not,
then you should send a message to the committer who made the change
(if you aren't familiar with cvs(1), which is used to manage the ports
repository, then you can use cvsweb.freebsd.org or www.freshports.org
to find this information), and to the maintainers of the ports that
have the outdated dependencies.  If they don't respond within a
reasonable amount of time, then file a Problem Report:

http://www.freebsd.org/support/bugreports.html

While they are fixing the problems, you can patch the dependent ports
yourself (this is sometimes as simple as changing the *_DEPENDS line
in the port Makefile; other times, it requires patches to the port
sources), and then rebuild the ports; or you can try to use portmaster
-o , or portupgrade -o, which will succeed in the simplest cases.  You
could also do it manually, by using sed(1) to substitute every
occurrence of the old PKGNAME with the new PKGNAME in the @pkgdep
lines in /var/db/pkg/*/+COMMENTS, and likewise for the PKGORIGIN
values preceded by DEPORIGIN.  However, be careful when tinkering with
/var/db/pkg -- you should back it up first before making changes.

b.


More information about the freebsd-questions mailing list