Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 16 Jul 2011 16:00:29 GMT
From:      Chris Rees <utisoft@gmail.com>
To:        freebsd-ports-bugs@FreeBSD.org
Subject:   Re: ports/158179: some packages do not fully honor -P dir option in pkg_add(1)
Message-ID:  <201107161600.p6GG0TFi062583@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR ports/158179; it has been noted by GNATS.

From: Chris Rees <utisoft@gmail.com>
To: Stephen Montgomery-Smith <stephen@missouri.edu>
Cc: "current@freebsd.org" <current@freebsd.org>, 
	"freebsd@sopwith.solgatos.com" <freebsd@sopwith.solgatos.com>, 
	"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)
Date: Sat, 16 Jul 2011 16:53:49 +0100

 --001636920d3a9e7def04a831c5ac
 Content-Type: text/plain; charset=ISO-8859-1
 
 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
 
 --001636920d3a9e7def04a831c5ac
 Content-Type: text/html; charset=ISO-8859-1
 Content-Transfer-Encoding: quoted-printable
 
 <p><br>
 On 16 Jul 2011 16:38, &quot;Stephen Montgomery-Smith&quot; &lt;<a href=3D"m=
 ailto:stephen@missouri.edu">stephen@missouri.edu</a>&gt; wrote:<br>
 &gt;<br>
 &gt; On 07/16/2011 04:26 AM, Stefan Bethke wrote:<br>
 &gt;&gt;<br>
 &gt;&gt; Am 16.07.2011 um 04:43 schrieb Stephen Montgomery-Smith:<br>
 &gt;&gt;<br>
 &gt;&gt;&gt; I was looking through the source code of pkg_add. =A0Personall=
 y I don&#39;t see how the &quot;-P&quot; or &quot;-p&quot; option could be =
 made to work with pkg_add. Many of the installation commands involve script=
 s which have ${PREFIX} hard coded into them. =A0${PREFIX} is often hard cod=
 ed when trhe package is created by the port. =A0In my opinion, the options =
 &quot;-p&quot; and &quot;-P&quot; should be removed from pkg_add.<br>
 
 &gt;&gt;&gt;<br>
 &gt;&gt;&gt; Either that, or provide the port a way to access &quot;@cwd&qu=
 ot; in any scripts it installs. =A0But this would require a major overhaul =
 of the whole ports system, and probably much of the software it installs as=
  well.<br>
 
 &gt;&gt;&gt;<br>
 &gt;&gt;&gt; Am I missing something?<br>
 &gt;&gt;<br>
 &gt;&gt;<br>
 &gt;&gt; Yes. =A0Not honoring the prefix is a bug in the port. =A0If you do=
  need to do prefix-specific things during install, use pkg-install, see <a =
 href=3D"http://www.freebsd.org/doc/en/books/porters-handbook/pkg-install.ht=
 ml">http://www.freebsd.org/doc/en/books/porters-handbook/pkg-install.html</=
 a><br>
 
 &gt;&gt;<br>
 &gt;&gt; I suspect that many ports are not well tested outside of &quot;/us=
 r/local&quot;, but the infrastructure is there and available.<br>
 &gt;<br>
 &gt;<br>
 &gt; You are correct, this needs to be done on a port by port basis. =A0In =
 some ports this is going to be a big job, because in some cases the &quot;/=
 usr/local&quot; is hard coded into certain binaries.<br>
 &gt;<br>
 &gt; For example, suppose the C source code contains something like:<br>
 &gt; char applications_dir =3D &quot;/usr/local/share/applications&quot;;<b=
 r>
 &gt; and this is filled in by the ./configure script.<br>
 &gt;<br>
 &gt; How is that handled?<br>
 &gt;</p>
 <p>It&#39;s not.</p>
 <p>Remember what a package is, literally the files from the plist tarred wi=
 th some magic +FILEs and the pkg-*install files- if paths are hardcoded in =
 objects that&#39;s how it&#39;ll be installed.</p>
 <p>Don&#39;t touch the -p option! It&#39;s only useful for.... um.... someo=
 ne help here?</p>
 <p>Chris<br>
 </p>
 
 --001636920d3a9e7def04a831c5ac--



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