Skip site navigation (1)Skip section navigation (2)
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>