Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 16 Jul 2011 16:53:49 +0100
From:      Chris Rees <utisoft@gmail.com>
To:        Stephen Montgomery-Smith <stephen@missouri.edu>
Cc:        "freebsd@sopwith.solgatos.com" <freebsd@sopwith.solgatos.com>, "current@freebsd.org" <current@freebsd.org>, "bug-followup@freebsd.org" <bug-followup@freebsd.org>, Stefan Bethke <stb@lassitu.de>
Subject:   Re: ports/158179: some packages do not fully honor -P dir option in pkg_add(1)
Message-ID:  <CADLo83_xTcxOSAcQsirCXXX1er6ScoPFWv3qs_SHsM1NE4ixGg@mail.gmail.com>
In-Reply-To: <4E21B051.5040502@missouri.edu>
References:  <4E20FADE.6060103@missouri.edu> <DD9FE189-F4F2-4BE7-80C3-2951649D4291@lassitu.de> <4E21B051.5040502@missouri.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
On 16 Jul 2011 16:38, "Stephen Montgomery-Smith" <stephen@missouri.edu>
wrote:
>
> On 07/16/2011 04:26 AM, Stefan Bethke wrote:
>>
>> Am 16.07.2011 um 04:43 schrieb Stephen Montgomery-Smith:
>>
>>> I was looking through the source code of pkg_add.  Personally I don't
see how the "-P" or "-p" option could be made to work with pkg_add. Many of
the installation commands involve scripts which have ${PREFIX} hard coded
into them.  ${PREFIX} is often hard coded when trhe package is created by
the port.  In my opinion, the options "-p" and "-P" should be removed from
pkg_add.
>>>
>>> Either that, or provide the port a way to access "@cwd" in any scripts
it installs.  But this would require a major overhaul of the whole ports
system, and probably much of the software it installs as well.
>>>
>>> Am I missing something?
>>
>>
>> Yes.  Not honoring the prefix is a bug in the port.  If you do need to do
prefix-specific things during install, use pkg-install, see
http://www.freebsd.org/doc/en/books/porters-handbook/pkg-install.html
>>
>> I suspect that many ports are not well tested outside of "/usr/local",
but the infrastructure is there and available.
>
>
> You are correct, this needs to be done on a port by port basis.  In some
ports this is going to be a big job, because in some cases the "/usr/local"
is hard coded into certain binaries.
>
> For example, suppose the C source code contains something like:
> char applications_dir = "/usr/local/share/applications";
> and this is filled in by the ./configure script.
>
> How is that handled?
>

It's not.

Remember what a package is, literally the files from the plist tarred with
some magic +FILEs and the pkg-*install files- if paths are hardcoded in
objects that's how it'll be installed.

Don't touch the -p option! It's only useful for.... um.... someone help
here?

Chris



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CADLo83_xTcxOSAcQsirCXXX1er6ScoPFWv3qs_SHsM1NE4ixGg>