Date: Wed, 29 Aug 2012 22:02:46 +0200 From: Alexander Leidinger <Alexander@Leidinger.net> To: Alexander Leidinger <Alexander@Leidinger.net> Cc: ports@freebsd.org, portmgr@freebsd.org, Eitan Adler <eadler@freebsd.org>, gcooper@freebsd.org Subject: Re: Regression in PREFIX handling in packages Message-ID: <20120829220246.00005c76@unknown> In-Reply-To: <20120829214831.000050c8@unknown> References: <20120826225435.00005a10@unknown> <20120829211753.0000399e@unknown> <CAF6rxgmyO_4tnfOfRNZU_qkc0aMuojEjbj52H%2B_BfRD4Jdxp-w@mail.gmail.com> <20120829214831.000050c8@unknown>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 29 Aug 2012 21:48:31 +0200 Alexander Leidinger <Alexander@Leidinger.net> wrote: > On Wed, 29 Aug 2012 15:28:36 -0400 Eitan Adler <eadler@freebsd.org> > wrote: > > > On 29 August 2012 15:17, Alexander Leidinger > > <Alexander@leidinger.net> wrote: > > > Could it be that my problem comes from r231300 and I was lucky > > > that I didn't create a package on the machine with the > > > symlinked /usr/local and used it on a machine with a > > > normal /usr/local? > > > > I have not been following this thread, so if you traced the bug to > > this commit, I'll accept that. > > It's a guess, I haven't tried to back it out and test again. > > > > http://svnweb.freebsd.org/base/head/usr.sbin/pkg_install/create/perform.c?r1=228990&r2=231300 > > > > > > What's the problem this patch tries to solve? Shouldn't the plist > > > use the prefix as specified by the env variable instead of the > > > realpath? > > > > The specific problem this patch was trying to solve is to allow the > > use of "." or other relative paths in the -p argument to pkg_create. > > Wouldn't it be better to use > ---snip--- > if (Prefix[0] != '/' && realpath(... > ---snip--- > in this case? Attention: I just guessed what Prefix is and what it > should contain by looking at the diff, I didn't had a look at the > declaraction and assignments of Prefix. And this one is tested (copy&paste, may have lost tabs and add linebreaks from my mailer): ---snip--- # svn diff Index: perform.c =================================================================== --- perform.c (revision 239708) +++ perform.c (working copy) @@ -215,10 +215,15 @@ /* Prefix should add an @cwd to the packing list */ if (Prefix) { - char resolved_prefix[PATH_MAX]; - if (realpath(Prefix, resolved_prefix) == NULL) - err(EXIT_FAILURE, "couldn't resolve path for prefix: %s", Prefix); - add_plist_top(&plist, PLIST_CWD, resolved_prefix); + if (Prefix[0] != '/') { + char resolved_prefix[PATH_MAX]; + if (realpath(Prefix, resolved_prefix) == NULL) + err(EXIT_FAILURE, + "couldn't resolve path for prefix: %s", Prefix); + add_plist_top(&plist, PLIST_CWD, resolved_prefix); + } else { + add_plist_top(&plist, PLIST_CWD, Prefix); + } } /* Add the origin if asked, at the top */ ---snip--- Bye, Alexander. -- http://www.Leidinger.net Alexander @ Leidinger.net: PGP ID = B0063FE7 http://www.FreeBSD.org netchild @ FreeBSD.org : PGP ID = 72077137
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120829220246.00005c76>