Date: Sat, 16 Jul 2011 16:10:10 GMT From: Chris Rees <crees@freebsd.org> To: freebsd-ports-bugs@FreeBSD.org Subject: Fwd: Re: ports/158179: some packages do not fully honor -P dir option in pkg_add(1) Message-ID: <201107161610.p6GGAAa4071408@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 <crees@freebsd.org> To: "bug-followup@freebsd.org" <bug-followup@freebsd.org>, "ports@freebsd.org" <ports@freebsd.org>, StephenMontgomery-Smithstephen@freebsd.org, Stefan Bethke <stb@lassitu.de> Cc: Subject: Fwd: Re: ports/158179: some packages do not fully honor -P dir option in pkg_add(1) Date: Sat, 16 Jul 2011 17:01:17 +0100 --001636920d3a573ef904a831e0c0 Content-Type: text/plain; charset=ISO-8859-1 Taking out current@ and replacing with ports@ 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 --001636920d3a573ef904a831e0c0 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable <p>Taking out current@ and replacing with ports@<br></p> <p>On 16 Jul 2011 16:38, "Stephen Montgomery-Smith" <<a href= =3D"mailto:stephen@missouri.edu">stephen@missouri.edu</a>> wrote:<br> ><br> > On 07/16/2011 04:26 AM, Stefan Bethke wrote:<br> >><br> >> Am 16.07.2011 um 04:43 schrieb Stephen Montgomery-Smith:<br> >><br> >>> I was looking through the source code of pkg_add. =A0Personall= y I don't see how the "-P" or "-p" 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 = "-p" and "-P" should be removed from pkg_add.<br> >>><br> >>> Either that, or provide the port a way to access "@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> >>><br> >>> Am I missing something?<br> >><br> >><br> >> 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> >><br> >> I suspect that many ports are not well tested outside of "/us= r/local", but the infrastructure is there and available.<br> ><br> ><br> > 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 "/= usr/local" is hard coded into certain binaries.<br> ><br> > For example, suppose the C source code contains something like:<br> > char applications_dir =3D "/usr/local/share/applications";<b= r> > and this is filled in by the ./configure script.<br> ><br> > How is that handled?<br> ></p> <p>It'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's how it'll be installed.</p> <p>Don't touch the -p option! It's only useful for.... um.... someo= ne help here?</p> <p>Chris<br> </p> --001636920d3a573ef904a831e0c0--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201107161610.p6GGAAa4071408>