pkgsrc-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: pkg/45450: pkgtools/p5-pkgsrc-Dewey fails to build with non-standard $WRKOBJDIR



The following reply was made to PR pkg/45450; it has been noted by GNATS.

From: David Holland <dholland-pbugs%netbsd.org@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc: 
Subject: Re: pkg/45450: pkgtools/p5-pkgsrc-Dewey fails to build with
 non-standard $WRKOBJDIR
Date: Thu, 13 Oct 2011 14:53:34 +0000

 On Wed, Oct 12, 2011 at 01:00:09PM +0000, John Marino wrote:
  >>  You sound like a cancer patient that tells his doc about the head ache
  >>  he had for years. The very good reason for this being off-limits is that
  >>  it triggers magic behavior in make. Enforcing it is non-trivial as there
  >>  are too many different ways to trigger it.
  >  
  >  I assumed the trivial way to enforce it is to check the value of
  >  $WRKOBJDIR and emit an error/die if it starts with "/usr/obj/".
 
 Nope.
 
  >  >  Frankly, I am more in favour of something being openly broken that
  >  >  seemingly working most of the time. This is such a case where pretty
  >  >  much every make target can easily create a more or less obvious error.
  >  >  I don't see the advantage in hunting them down.
  >  
  >  I'd rather the case just be handled rather gracefully than let it go on
  >  with unexpected behavior.  If the decision is really that "/usr/obj/" is
  >  a sacred directory, then A) publish that in the pkgsrc guide and B) have
  >  pkgsrc enforce the limitation.  Obviously I'd rather there was no such
  >  limitation, but if that's not practical then so be it.
 
 It's not sacred, it's just a special case, and it's never going to
 work. (Or at least, not until make's objdir handling misfeature is
 expunged, but that isn't happening anytime soon.)
 
 Something like
 
 .if ${.OBJDIR} != ${.CURDIR}
 .error "Hit an objdir, please don't do this"
 .endif
 
 will probably work, but the error isn't going to be comprehensible.
 Writing a test that will allow reporting what went wrong requires
 duplicating make's rather complicated objdir search logic, which isn't
 a very good idea.
 
 In the meantime, just change your WRKOBJDIR to /usr/obj/pkg. This will
 also help keep it from getting mixed up with object dirs from the base
 system build.
 
 -- 
 David A. Holland
 dholland%netbsd.org@localhost
 


Home | Main Index | Thread Index | Old Index