On Sat, May 05, 2012 at 06:06:23PM +0200, Antoine Jacoutot wrote:
> On Sat, May 05, 2012 at 05:57:30PM +0200, Tobias Ulmer wrote:
> > Setting DEBUG not only sets additional CFLAGS, it also disables
> > stripping during the 'fake' stage for ports that use BSD make as build
> > system.
> > 
> > Curiously this does not work for ports that have a custom 'do-install'
> > target (or friends) and use INSTALL_PROGRAM.
> > 
> > After pulling my hair a bit, it became obvious that _SUDOMAKESYS
> > filters out most environment variables, including DEBUG (usage begins
> > in bsd.port.mk:2527, implementation is in pkgpath.mk:115).
> > 
> > I can see two options to fix this: Either extend the default sudoers to
> > pass DEBUG/INSTALL_STRIP(?). Or pass MAKE_ENV like the standard install
> > target does. It seems to do the right thing in my light testing. I've
> > also modified _SUDOMAKE for symmetry.
> > 
> > devel/csup is a port that ignores DEBUG partially.
> > x11/spectrwm as an example where it works.
> > 
> > Comments?
> 
> For building ports you're supposed to use
> SUDO=/usr/bin/sudo -E
> in /etc/mk.conf
> 
> I guess the documentation should be made aware of that... Is using -E helping 
> in your case?

Interesting.

Indeed it does fix my problem. But that seems like a hack because
sudoers lists all these "unnecessary" ports variables.

> 
> 
> > Index: pkgpath.mk
> > ===================================================================
> > RCS file: /home/vcs/cvs/openbsd/ports/infrastructure/mk/pkgpath.mk,v
> > retrieving revision 1.44
> > diff -u -p -r1.44 pkgpath.mk
> > --- pkgpath.mk      17 Feb 2012 07:40:35 -0000      1.44
> > +++ pkgpath.mk      5 May 2012 15:31:22 -0000
> > @@ -110,9 +110,9 @@ _cache_fragment = \
> >  HTMLIFY =  sed -e 's/&/\&amp;/g' -e 's/>/\&gt;/g' -e 's/</\&lt;/g'
> >  
> >  _MAKE = cd ${.CURDIR} && PKGPATH=${PKGPATH} exec ${MAKE}
> > -_SUDOMAKE = cd ${.CURDIR} && PKGPATH=${PKGPATH} exec ${SUDO} ${MAKE}
> > +_SUDOMAKE = cd ${.CURDIR} && exec ${SUDO} ${SETENV} ${MAKE_ENV} 
> > PKGPATH=${PKGPATH} ${MAKE}
> >  _MAKESYS = cd ${.CURDIR} && PKGPATH=${PKGPATH} exec ${_SYSTRACE_CMD} 
> > ${MAKE}
> > -_SUDOMAKESYS = cd ${.CURDIR} && PKGPATH=${PKGPATH} exec ${SUDO} 
> > ${_SYSTRACE_CMD} ${MAKE}
> > +_SUDOMAKESYS = cd ${.CURDIR} && exec ${SUDO} ${SETENV} ${MAKE_ENV} 
> > PKGPATH=${PKGPATH} ${_SYSTRACE_CMD} ${MAKE}
> >  
> >  REPORT_PROBLEM_LOGFILE ?=
> >  .if !empty(REPORT_PROBLEM_LOGFILE)
> > 
> 
> -- 
> Antoine
> 

Reply via email to