Dag-Erling Smorgrav wrote:
> Peter Wemm <[EMAIL PROTECTED]> writes:
> > Indeed it is installed.  Note that you have exposed a fundamental bug
> > in the perl wrapper.  It only searches $PATH, and /usr/local/bin is not
> > in $PATH for many system tools (eg: pkg_add -r).
> How about this:
> Index: perl.c
> ===================================================================
> RCS file: /home/ncvs/src/usr.bin/perl/perl.c,v
> retrieving revision 1.2
> diff -u -u -r1.2 perl.c
> --- perl.c      18 May 2002 05:33:28 -0000      1.2
> +++ perl.c      25 May 2002 12:52:43 -0000
> @@ -59,5 +59,6 @@
>                 if (errno != ENOENT)
>                         err(1, "%s", path);
>         }
> +       execve("/usr/local/bin/perl", argv, environ);
>         errx(1, "Perl is not installed, try 'pkg_add -r perl'");
>  }
> Of course, it won't work if Perl was installed with a non-standard

That would work, but IMHO this should be the first location we try since it
is the "most likely" location for it.

Another idea.  Suppose we have /etc/ports.conf or /etc/pkg.conf which is a
symlink to the base of the installed location of ports/packages?  (like we
do with /etc/malloc.conf being a symlink).  We could exec
/etc/ports.conf/bin/perl as a last resort too.  It would look pretty freaky
but would be faster than parsing a text config file.  pkg_add could do a
readlink("/etc/ports.conf") to set the default for pkg_add -p <prefix> as

"All of this is for nothing if we don't go to the stars" - JMS/B5

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to