Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-28 Thread Chris Rees
On 27 October 2012 22:10, Simon J. Gerraty s...@juniper.net wrote:

 On Sat, 27 Oct 2012 19:53:56 +0100, Chris Rees writes:
I'm saying that it's unacceptable to expect people to change their
systems just to make the ports tree work after we have broken it on a
supposedly supported version.

 But there's no suggestion of that.
 The ports tree would take care of itself.

 The comment about fixing makefiles refered to the concern about things
 outside of base/ports.

From your comment, I now understand that we aren't having the same
conversation :)

Please answer me these to check we're on the same page:

Are we planning to replace /usr/bin/make with bmake in the near future?

If yes, what changes are we going to make to the ports tree to ensure
that -CURRENT can still use it?

Chris
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-28 Thread Chris Rees
On 28 October 2012 19:11, Simon J. Gerraty s...@juniper.net wrote:

 On Sun, 28 Oct 2012 14:06:41 +, Chris Rees writes:
Are we planning to replace /usr/bin/make with bmake in the near future?

 That was what I heard, but any such move is dependent on dealing with
 ports.  The ~sjg/ports2bmake.tar.gz on freefall is the plan I came up
 with after the above requirement was introduced at last BSDCan.

If yes, what changes are we going to make to the ports tree to ensure
that -CURRENT can still use it?

 If you mean -current (aka head); the plan is to convert ports to bmake
 syntax wrt to the 2 conflicting modifiers.  At my last test there are
 just under 300 makefiles in ports that use the old modifiers.

 Now for  head (ie. /usr/bin/make is an old version), the above ports
 tree detects that bmake is not being used, and invokes a shell script
 (bmake-sh) to do what was asked.

 That script will look for bmake and if necessary build/install it.
 To do that, it creates a temp copy of Mk/*.mk converted back to the old
 syntax so that the old make can build and install bmake, and then the
 old system is on par with -current.

 That's what I meant by ports will take care of itself.
 The main gap btw in the above, is if a user who does not have privs to
 install bmake, is the only person trying to do something with ports.

 The above plan needs to be approved by portmgr, and obviouslty a test
 run of building all ports is needed (possibly more than one).

 Does that help?

Certainly, thank you.

I didn't find it clear when inspecting the tarball (obviously I hadn't
read the README clearly enough).

I'm going to have to echo John's non-obvious comment however, and I
think it would be very helpful to have a clear public writeup, perhaps
QA style to allay any other such fears.

Chris
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-28 Thread Simon J. Gerraty

On Sun, 28 Oct 2012 14:06:41 +, Chris Rees writes:
Are we planning to replace /usr/bin/make with bmake in the near future?

That was what I heard, but any such move is dependent on dealing with
ports.  The ~sjg/ports2bmake.tar.gz on freefall is the plan I came up
with after the above requirement was introduced at last BSDCan.

If yes, what changes are we going to make to the ports tree to ensure
that -CURRENT can still use it?

If you mean -current (aka head); the plan is to convert ports to bmake
syntax wrt to the 2 conflicting modifiers.  At my last test there are
just under 300 makefiles in ports that use the old modifiers.

Now for  head (ie. /usr/bin/make is an old version), the above ports
tree detects that bmake is not being used, and invokes a shell script
(bmake-sh) to do what was asked.

That script will look for bmake and if necessary build/install it.
To do that, it creates a temp copy of Mk/*.mk converted back to the old
syntax so that the old make can build and install bmake, and then the
old system is on par with -current.

That's what I meant by ports will take care of itself.
The main gap btw in the above, is if a user who does not have privs to
install bmake, is the only person trying to do something with ports.

The above plan needs to be approved by portmgr, and obviouslty a test
run of building all ports is needed (possibly more than one).

Does that help?
--sjg
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-27 Thread Chris Rees
On 27 Oct 2012 00:35, Simon J. Gerraty s...@juniper.net wrote:


 On Fri, 26 Oct 2012 22:02:00 +0100, Chris Rees writes:
 In that case we have a switch time on the order of years, not weeks; 8.3
is
 supported until May '14, and unless we get a :tl etc MFC into 8, even
 longer.  All this time the ports tree must work with pmake.

 I'm pretty sure I was told it is already in 8 and 7

Not in 8.3 at least:

svnweb.freebsd.org/base/releng/8.3/usr.bin/make/var.c?view=log

 I don't want to discourage you or belittle your excellent work here, but
 Marcel made me very nervous with his comment on the process being a few
 weeks.

 That was based on discussions at the last devsummit.

These discussions need backing up with a real roadmap, including detail on
exactly what 8.3 and 7.4 users will have to do to ensure that the ports
tree still works.

I don't see where these considerations have been made.

Chris
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-27 Thread Simon J. Gerraty
BTW, would it be useful to put a devel/fmake into ports to make it easy
for people with older systems to install an up to date version of
freebsd make (which groks both sets of toupper/tolower modifiers)? 
Perhaps a knob to install it or put in a link as /usr/bin/make ?
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-27 Thread Chris Rees
[trim CC list a little to stop people regretting replying to this thread]

On 27 October 2012 10:15, Chris Rees utis...@gmail.com wrote:

 On 27 Oct 2012 00:35, Simon J. Gerraty s...@juniper.net wrote:


 On Fri, 26 Oct 2012 22:02:00 +0100, Chris Rees writes:
 In that case we have a switch time on the order of years, not weeks; 8.3
  is
 supported until May '14, and unless we get a :tl etc MFC into 8, even
 longer.  All this time the ports tree must work with pmake.

 I'm pretty sure I was told it is already in 8 and 7

 Not in 8.3 at least:

 svnweb.freebsd.org/base/releng/8.3/usr.bin/make/var.c?view=log

 I don't want to discourage you or belittle your excellent work here, but
 Marcel made me very nervous with his comment on the process being a few
 weeks.

 That was based on discussions at the last devsummit.

 These discussions need backing up with a real roadmap, including detail on
 exactly what 8.3 and 7.4 users will have to do to ensure that the ports tree
 still works.

 I don't see where these considerations have been made.

OK, so how about this.

We (ab)use the security update mechanism to merge the pmake changes
(:tl and :tu) into releng/7.4 and releng/8.3 (possibly the earlier
releng branches such as 7.3, 8.2, 9.0).  We could then send out a
message on ports-announce, giving a few weeks' notice that the change
to bsd.port.mk is going through and that users need the latest
'security' patches.

When we change bsd.port.mk over, include a snippet such as the one at
[1], which gives more informative error text and refers user to
documentation.

Although I still think this is less than ideal, it is the only way I
can see that we can switch before May '14, if the urgency is there.

Chris

[1] http://www.bayofrum.net/~crees/patches/bmake-pmake.diff
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-27 Thread Chris Rees
On 27 October 2012 15:32, Bryan Drewery br...@shatow.net wrote:
 On 10/27/2012 8:23 AM, Chris Rees wrote:
 [trim CC list a little to stop people regretting replying to this thread]

 On 27 October 2012 10:15, Chris Rees utis...@gmail.com wrote:

 On 27 Oct 2012 00:35, Simon J. Gerraty s...@juniper.net wrote:


 On Fri, 26 Oct 2012 22:02:00 +0100, Chris Rees writes:
 In that case we have a switch time on the order of years, not weeks; 8.3
 is
 supported until May '14, and unless we get a :tl etc MFC into 8, even
 longer.  All this time the ports tree must work with pmake.

 I'm pretty sure I was told it is already in 8 and 7

 Not in 8.3 at least:

 svnweb.freebsd.org/base/releng/8.3/usr.bin/make/var.c?view=log

 I don't want to discourage you or belittle your excellent work here, but
 Marcel made me very nervous with his comment on the process being a few
 weeks.

 That was based on discussions at the last devsummit.

 These discussions need backing up with a real roadmap, including detail on
 exactly what 8.3 and 7.4 users will have to do to ensure that the ports tree
 still works.

 I don't see where these considerations have been made.

 OK, so how about this.

 We (ab)use the security update mechanism to merge the pmake changes
 (:tl and :tu) into releng/7.4 and releng/8.3 (possibly the earlier
 releng branches such as 7.3, 8.2, 9.0).  We could then send out a
 message on ports-announce, giving a few weeks' notice that the change
 to bsd.port.mk is going through and that users need the latest
 'security' patches.

 This weeks is making a assumptions that users 1. reads ports@ or 2.
 Update to security/errata patches in a timely manner or 3. Read UPDATING

Quite.  This should be at least a few months, otherwise we're making
unreasonable requests of our users, and yet again annoy them by
breaking older versions-- this time with no real benefit for
end-users.

Chris
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-27 Thread Bryan Drewery
On 10/27/2012 8:23 AM, Chris Rees wrote:
 [trim CC list a little to stop people regretting replying to this thread]
 
 On 27 October 2012 10:15, Chris Rees utis...@gmail.com wrote:

 On 27 Oct 2012 00:35, Simon J. Gerraty s...@juniper.net wrote:


 On Fri, 26 Oct 2012 22:02:00 +0100, Chris Rees writes:
 In that case we have a switch time on the order of years, not weeks; 8.3
 is
 supported until May '14, and unless we get a :tl etc MFC into 8, even
 longer.  All this time the ports tree must work with pmake.

 I'm pretty sure I was told it is already in 8 and 7

 Not in 8.3 at least:

 svnweb.freebsd.org/base/releng/8.3/usr.bin/make/var.c?view=log

 I don't want to discourage you or belittle your excellent work here, but
 Marcel made me very nervous with his comment on the process being a few
 weeks.

 That was based on discussions at the last devsummit.

 These discussions need backing up with a real roadmap, including detail on
 exactly what 8.3 and 7.4 users will have to do to ensure that the ports tree
 still works.

 I don't see where these considerations have been made.
 
 OK, so how about this.
 
 We (ab)use the security update mechanism to merge the pmake changes
 (:tl and :tu) into releng/7.4 and releng/8.3 (possibly the earlier
 releng branches such as 7.3, 8.2, 9.0).  We could then send out a
 message on ports-announce, giving a few weeks' notice that the change
 to bsd.port.mk is going through and that users need the latest
 'security' patches.

This weeks is making a assumptions that users 1. reads ports@ or 2.
Update to security/errata patches in a timely manner or 3. Read UPDATING


 
 When we change bsd.port.mk over, include a snippet such as the one at
 [1], which gives more informative error text and refers user to
 documentation.
 
 Although I still think this is less than ideal, it is the only way I
 can see that we can switch before May '14, if the urgency is there.
 
 Chris
 
 [1] http://www.bayofrum.net/~crees/patches/bmake-pmake.diff
 ___
 freebsd-a...@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/freebsd-arch
 To unsubscribe, send any mail to freebsd-arch-unsubscr...@freebsd.org
 

___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-27 Thread Eitan Adler
On 27 October 2012 10:34, Chris Rees utis...@gmail.com wrote:
 This weeks is making a assumptions that users 1. reads ports@ or 2.
 Update to security/errata patches in a timely manner or 3. Read UPDATING

 Quite.  This should be at least a few months, otherwise we're making
 unreasonable requests of our users, and yet again annoy them by
 breaking older versions-- this time with no real benefit for
 end-users.

+1

I would venture to guess that most of our users don't even read -announce.

In addition there are non-ports concerns here.  Many people probably
have custom Makefiles they use for their own projects which may rely
on existing behavior.


-- 
Eitan Adler
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-27 Thread Bryan Drewery
On 10/27/2012 9:40 AM, Eitan Adler wrote:
 On 27 October 2012 10:34, Chris Rees utis...@gmail.com wrote:
 This weeks is making a assumptions that users 1. reads ports@ or 2.
 Update to security/errata patches in a timely manner or 3. Read UPDATING

 Quite.  This should be at least a few months, otherwise we're making
 unreasonable requests of our users, and yet again annoy them by
 breaking older versions-- this time with no real benefit for
 end-users.
 
 +1
 
 I would venture to guess that most of our users don't even read -announce.
 
 In addition there are non-ports concerns here.  Many people probably
 have custom Makefiles they use for their own projects which may rely
 on existing behavior.
 
 

I apologize for not reading the full thread.

Could there be a make.conf/env setting to make bmake run AS pmake in
full compat mode? On by default until all older branches are EoL, then
it can flip and be optional.

Or even via a symlink, whatever it is invoked as is what mode it runs in.

Bryan
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-27 Thread Chris Rees
On 27 October 2012 18:27, Simon J. Gerraty s...@juniper.net wrote:
These discussions need backing up with a real roadmap, including detail on
exactly what 8.3 and 7.4 users will have to do to ensure that the ports
tree still works.

 I've tested the ports tree converted to bmake - per the patch I
 mentioned on a 7.1 box.  It worked for me.  Once the ports tree has
 found or installed bmake, the system version makes no further
 difference.

 Obviously not a conclusive result, but yes this issue has been given
 consideration.

What about these?

[crees@pegasus]~% grep -n :\[LU] /usr/ports/Mk/bsd.port.mk | tee
/dev/tty | wc -l
1324:PORTVERSION=
${DISTVERSION:L:C/([a-z])[a-z]+/\1/g:C/([0-9])([a-z])/\1.\2/g:C/:(.)/\1/g:C/[^a-z0-9+]+/./g}
1451:.if (defined(USE_QT_VER)  ${USE_QT_VER:L} == 3) ||
defined(USE_KDELIBS_VER) || defined(USE_KDEBASE_VER)
1455:.if defined(USE_QT_VER)  ${USE_QT_VER:L} == 4 || defined(USE_QT4)
1674:.if ${USE_PKGCONFIG:L} == yes || ${USE_PKGCONFIG:L} == build
1677:.elif ${USE_PKGCONFIG:L} == both
1681:.elif ${USE_PKGCONFIG:L} == run
1696:${b}=  ${LOCALBASE}/bin/${b:C/PP/++/:L}
1763:_USE_OPENAL+= ${_OPENAL_${_OPENAL_SYSTEM:U}}
1783:_USE_OPENAL+=  ${_OPENAL_${component:U}}
1829:.if defined(FAM_SYSTEM_${FAM_SYSTEM:U})
1830:LIB_DEPENDS+=  ${FAM_SYSTEM_${FAM_SYSTEM:U}}
1836:.if defined(USE_RC_SUBR)  ${USE_RC_SUBR:U} != YES
1844:.if defined(USE_LDCONFIG)  ${USE_LDCONFIG:L} == yes
1847:.if defined(USE_LDCONFIG32)  ${USE_LDCONFIG32:L} == yes
1856:.  if ${USE_GETTEXT:L} == build
1858:.  elif ${USE_GETTEXT:L} == run
1860:.  elif ${USE_GETTEXT:L} == yes
1888:.  if ${USE_LINUX:L} == yes
1899:.  if ${USE_LINUX:L} == yes
1977:. if ${USE_GL:L} == yes
1994:. if ${USE_BISON:L} == build
1996:. elif ${USE_BISON:L} == run
1998:. elif ${USE_BISON:L} == both
2044:.if defined(USE_QT_VER)  ${USE_QT_VER:L} == 4 || defined(USE_QT4)
3038:_MANPAGES+=
${MAN${sect}:S%^%${MAN${sect}PREFIX}/${manlang}/man${sect:L}/%}
3043:.if defined(MAN${sect}_${manlang:S%^man/%%:U})
3044:_MANPAGES+=
${MAN${sect}_${manlang:S%^man/%%:U}:S%^%${MAN${sect}PREFIX}/${manlang}/man${sect:L}/%}
3056:_MANPAGES+=
${MAN${sect}_EN:S%^%${MAN${sect}PREFIX}/man/man${sect:L}/%}
3312:   || defined(CONFIG_DONE_${UNIQUENAME:U}) || \
3600:.if ${USE_DOS2UNIX:U}==YES
4361:${target}: ${${target:U}_COOKIE}
4364:   @cd ${.CURDIR}  ${MAKE} CONFIG_DONE_${UNIQUENAME:U}=1
${${target:U}_COOKIE}
4368:.if !exists(${${target:U}_COOKIE})
4370:.if ${UID} != 0  defined(_${target:U}_SUSEQ)  !defined(INSTALL_AS_USER)
4372:${${target:U}_COOKIE}: ${_${target:U}_DEP}
4373:   @cd ${.CURDIR}  ${MAKE} ${_${target:U}_SEQ}
4375:${${target:U}_COOKIE}: ${_${target:U}_DEP} ${_${target:U}_SEQ}
4379:   ${SU_CMD} ${MAKE} ${_${target:U}_SUSEQ}
4383:${${target:U}_COOKIE}: ${_${target:U}_DEP}
4385:   ${MAKE} ${_${target:U}_SEQ} ${_${target:U}_SUSEQ}
4388:${${target:U}_COOKIE}: ${_${target:U}_DEP} ${_${target:U}_SEQ}
${_${target:U}_SUSEQ}
4393:${${target:U}_COOKIE}::
4802:   for alg in ${CHECKSUM_ALGORITHMS:U}; do \
4825:   for alg in ${CHECKSUM_ALGORITHMS:U}; do \
4836:   for alg in ${CHECKSUM_ALGORITHMS:U}; do \
4850:   for alg in ${CHECKSUM_ALGORITHMS:U}; do \
4904:   for alg in ${CHECKSUM_ALGORITHMS:U}; do \
5032:${deptype:L}-depends:
5653:${i:S/-//:U}=  ${WRKDIR}/${SUB_FILES:M${i}*}
5700:.if defined(PLIST_REINPLACE_${reinplace:U})
5701:   @${SED} -i  -e '${PLIST_REINPLACE_${reinplace:U}}' ${TMPPLIST}
5854:.if defined(USE_RCORDER) || defined(USE_RC_SUBR) 
${USE_RC_SUBR:U} != YES
5864:.if defined(USE_RC_SUBR)  ${USE_RC_SUBR:U} != YES
  53
[crees@pegasus]~%

Chris
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-27 Thread Simon J. Gerraty
These discussions need backing up with a real roadmap, including detail on
exactly what 8.3 and 7.4 users will have to do to ensure that the ports
tree still works.

I've tested the ports tree converted to bmake - per the patch I
mentioned on a 7.1 box.  It worked for me.  Once the ports tree has
found or installed bmake, the system version makes no further
difference.

Obviously not a conclusive result, but yes this issue has been given
consideration.
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-27 Thread Chris Rees
On 27 October 2012 19:52, Simon J. Gerraty s...@juniper.net wrote:

 On Sat, 27 Oct 2012 14:23:29 +0100, Chris Rees writes:
We (ab)use the security update mechanism to merge the pmake changes
(:tl and :tu) into releng/7.4 and releng/8.3 (possibly the earlier

 I originally provided the :tl and :tu patch for something like that
 (not planning any abuse mind ;-)

 But, if portmgr test my patch and find it works ok (for some value of
 ok) for older releases, this probably isn't necessary?

 It may still be useful though to provide an updated fmake via ports,
 which could make it easier for folk to migrate other code bases.
 The sed script to be applied to makefiles is trivial btw:

 $ cat f2bmake.sed
 /$.*:[UL][:)}]/ { s,:L,:tl,g;s,:U,:tu,g; }
 $

I know the fix is trivial :)

I'm saying that it's unacceptable to expect people to change their
systems just to make the ports tree work after we have broken it on a
supposedly supported version.

Chris
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-27 Thread Simon J. Gerraty

On Sat, 27 Oct 2012 09:44:36 -0500, Bryan Drewery writes:
Could there be a make.conf/env setting to make bmake run AS pmake in
full compat mode? On by default until all older branches are EoL, then
it can flip and be optional.

This has been mentioned before.

Firstly, I have changed bmake behavior in a number of ways to better fit
FreeBSD, but in each case I could justify the change to the NetBSD folk
as well (or at least most of them ;-)

The above idea though would require doing more violence to bmake's
internals than I think is desirable, plus it would be counter productive.

Today, you can test for defined(.PARSEDIR) and *know* if you have bmake
or not, and if you have, how it behaves.  
If we start hacking compat modes and such to avoid changing, it would be
more trouble that it is worth to try and make use of bmake in any
meaningful way.

The simpler implementation of this idea is to simply leave the old make 
in place.

Or even via a symlink, whatever it is invoked as is what mode it runs in.

This is more practical I think.
Making /usr/bin/make - [fb]make
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-27 Thread Simon J. Gerraty

On Sat, 27 Oct 2012 18:32:56 +0100, Chris Rees writes:
On 27 October 2012 18:27, Simon J. Gerraty s...@juniper.net wrote:
 I've tested the ports tree converted to bmake - per the patch I
 mentioned on a 7.1 box.  It worked for me.  Once the ports tree has

What about these?

[crees@pegasus]~% grep -n :\[LU] /usr/ports/Mk/bsd.port.mk | tee
/dev/tty | wc -l
1324:PORTVERSION=
${DISTVERSION:L:C/([a-z])[a-z]+/\1/g:C/([0-9])([a-z])/\1.\2/g:C/:(.)/\1/g:C/[^
a-z0-9+]+/./g}
1451:.if (defined(USE_QT_VER)  ${USE_QT_VER:L} == 3) ||
defined(USE_KDELIBS_VER) || defined(USE_KDEBASE_VER)

I'm not sure I follow, that tree has not been patched.
If it were:

$ grep -l '$.*:[UL][:)}]' Mk/*mk
$


___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-27 Thread Simon J. Gerraty

On Sat, 27 Oct 2012 14:23:29 +0100, Chris Rees writes:
We (ab)use the security update mechanism to merge the pmake changes
(:tl and :tu) into releng/7.4 and releng/8.3 (possibly the earlier

I originally provided the :tl and :tu patch for something like that
(not planning any abuse mind ;-)

But, if portmgr test my patch and find it works ok (for some value of
ok) for older releases, this probably isn't necessary?

It may still be useful though to provide an updated fmake via ports,
which could make it easier for folk to migrate other code bases.
The sed script to be applied to makefiles is trivial btw:

$ cat f2bmake.sed
/$.*:[UL][:)}]/ { s,:L,:tl,g;s,:U,:tu,g; }
$
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-27 Thread Simon J. Gerraty

On Sat, 27 Oct 2012 19:53:56 +0100, Chris Rees writes:
I'm saying that it's unacceptable to expect people to change their
systems just to make the ports tree work after we have broken it on a
supposedly supported version.

But there's no suggestion of that.  
The ports tree would take care of itself.

The comment about fixing makefiles refered to the concern about things
outside of base/ports.
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: Installing make as pmake when WITH_BMAKE specified (was Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program)

2012-10-27 Thread Adrian Chadd
Can someone please explain to me what the original reason is for
causing such ridiculously large, far reaching issues?

And why people seem to be in a really, really big rush for it?



Adrian
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-26 Thread Chris Rees
On 26 Oct 2012 06:01, Konstantin Belousov kostik...@gmail.com wrote:

 On Thu, Oct 25, 2012 at 03:53:53PM -0700, Simon J. Gerraty wrote:
 
  On Thu, 25 Oct 2012 23:01:27 +0100, Chris Rees writes:
  Is there a Wiki page where the actual benefits of moving to bmake are
  made clear?  This is a major, *major* upheaval, and having two
  versions of bsd.port.mk for years is simply not an option.
 
  There is no need/plan for two versions of bsd.port.mk, the patch I just
  mentioned, deals with older systems by detecting that bmake was not
  used, and using it (installing if need be).
 
  Have you discussed this on ports@?
 
  I have not at least.
  This was discussed at the last couple of BSDCan's and dev summits.
 
  The original plan discussed at BSDCan a couple of years ago, was to
  allow bmake and the old make to cooexist for some time so that ports
  could continue to use the old make.
 
  At the last BSDCan we were told that wasn't an option - hence the patch
  to ports that was mentioned.
 
  FWIW the changes to 99.9% of the ports tree are trivial (:L - :tl etc).
  The only interesting changes are to bsd.port.mk (the diff other than the
  above is 54 lines) they cover 2 things - dealing with old make as
  mentioned above, and man pages.  The nested .for loops that deal
  with MLINKS are replaced with one line - this was safer that attempting
  to hack those .for loops to work with both makes.

 I am watching the serial for some time.  Could please, someone, describe
 why bmake cannot grow the compat features to be a drop-in replacement for
 FreeBSD make, instead of patching all the trees ?

 In particular, why cannot the ':L' and ':U' support be added ?

:U is already used by bmake for something else- I can't remember what, but
I checked the man page last night :(

Chris
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-26 Thread Simon J. Gerraty
 In particular, why cannot the ':L' and ':U' support be added ?

:U is already used by bmake for something else- I can't remember what, but
I checked the man page last night :(

http://www.crufty.net/sjg/blog/freebsd-meta-mode.htm

might provide some interesting background.
It is a more FreeBSD focused (and up to date), coverage of material I
presented at BSDCan a couple of years ago.
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-26 Thread Simon J. Gerraty
In particular, why cannot the ':L' and ':U' support be added ?

Because they already exist - with different meanings.
They were added to NetBSD make over 10 years ago, from the OSF version
of pmake.

In several areas the behavior of bmake has been changed to make it a
drop in replacement for FreeBSD, but the above (not used at all in the
FreeBSD base) are easier dealt with the other way.  The :tl and :tu
equivalents were added to FreeBSD make a while back to ease the
transition.
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-26 Thread Patrick Powell


On 10/25/12 23:23, Simon J. Gerraty wrote:

In particular, why cannot the ':L' and ':U' support be added ?

Because they already exist - with different meanings.
They were added to NetBSD make over 10 years ago, from the OSF version
of pmake.

In several areas the behavior of bmake has been changed to make it a
drop in replacement for FreeBSD, but the above (not used at all in the
FreeBSD base) are easier dealt with the other way.  The :tl and :tu
equivalents were added to FreeBSD make a while back to ease the
transition.
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org



At the risk of getting a ton of email telling me what an idiot I am,  
why not add a command line flag OR a make variable/value to set this 
behavior?  You could put the flag/option in the /etc/make.conf file... 
and once you get all of the make files fixed up you could take it out...


--
Patrick Powell Astart Technologies
papow...@astart.com1530 Jamacha Road, Suite X,
Network and System El Cajon, CA 92019
  Consulting   858-874-6543
Web Site: www.astart.com

___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-26 Thread Warner Losh

On Oct 26, 2012, at 12:23 AM, Simon J. Gerraty wrote:

 In particular, why cannot the ':L' and ':U' support be added ?
 
 Because they already exist - with different meanings.
 They were added to NetBSD make over 10 years ago, from the OSF version
 of pmake.

And we've had the :U and :L for a similar period of time as well.  Arguing age 
here is an interesting historical footnote, but not a compelling argument to 
justify the pain to our users.

 In several areas the behavior of bmake has been changed to make it a
 drop in replacement for FreeBSD, but the above (not used at all in the
 FreeBSD base) are easier dealt with the other way.  The :tl and :tu
 equivalents were added to FreeBSD make a while back to ease the
 transition.

Why can't there be a make target that turns them on in FreeBSD compat mode.  
You could then just drop those into bsd.port.mk and be done with it?  We 
already do this with the posix target, so there's precedent for it.

I know you've objected to this as ugly, but as I pointed out when I mentioned 
it before, I think this is less ugly and less work and would offer a smoother 
transition than forcing all the scripts to change.

Warner


___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-26 Thread Ian Lepore
On Fri, 2012-10-26 at 08:27 -0600, Warner Losh wrote:
 On Oct 26, 2012, at 12:23 AM, Simon J. Gerraty wrote:
 
  In particular, why cannot the ':L' and ':U' support be added ?
  
  Because they already exist - with different meanings.
  They were added to NetBSD make over 10 years ago, from the OSF version
  of pmake.
 
 And we've had the :U and :L for a similar period of time as well.  Arguing 
 age here is an interesting historical footnote, but not a compelling argument 
 to justify the pain to our users.
 
  In several areas the behavior of bmake has been changed to make it a
  drop in replacement for FreeBSD, but the above (not used at all in the
  FreeBSD base) are easier dealt with the other way.  The :tl and :tu
  equivalents were added to FreeBSD make a while back to ease the
  transition.
 
 Why can't there be a make target that turns them on in FreeBSD compat mode.  
 You could then just drop those into bsd.port.mk and be done with it?  We 
 already do this with the posix target, so there's precedent for it.
 
 I know you've objected to this as ugly, but as I pointed out when I mentioned 
 it before, I think this is less ugly and less work and would offer a smoother 
 transition than forcing all the scripts to change.
 
 Warner

I second this concept.  At work, we create dozens of products using
literally hundreds of makefiles scattered throughout a huge source base.
We have to be able to build the same source for multiple versions of
freebsd, so even finding all the old :U and :L and any other
incompatibilities and fixing them isn't an option because we'd just
trade works in freebsd 10 for broken in every other environment.

If there were some way to turn on a compatibility mode, we'd have a way
to slowly transition to the newer stuff over the course of a couple OS
versions.  Eventually we'd reach the point where we no longer need to
build products using an older version and we could update to the newer
syntax and stop using compatibility mode.

-- Ian


___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: Installing make as pmake when WITH_BMAKE specified (was Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program)

2012-10-26 Thread David O'Brien
On Thu, Oct 25, 2012 at 03:00:21PM -0700, Garrett Cooper wrote:
 Here's an updated version of the workaround that works properly in all
 cases and installs bmake as make and links make to pmake when
 WITH_BMAKE=yes, and installs make as make when WITHOUT_BMAKE is
 specified (this works better than the previous patch I sent to Simon).

Garrett,
I don't see how this could be committed -- it will make it difficult
for 10-CURRENT folks to build ports (and there are no pre-build packages
for 10-CURRENT).

Are you not able to use this instead (w/WANT_USRBIN_BMAKE= in /etc/src.conf)?

Index: usr.bin/Makefile
===
--- usr.bin/Makefile(revision 241927)
+++ usr.bin/Makefile(working copy)
@@ -281,6 +281,9 @@ SUBDIR+=msgs
 .if ${MK_BMAKE} != no
 SUBDIR+=   bmake
 .else
+.if defined(WANT_USRBIN_BMAKE)
+SUBDIR+=   bmake
+.endif
 SUBDIR+=   make
 .endif
 .endif

-- 
-- David  (obr...@freebsd.org)
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: Installing make as pmake when WITH_BMAKE specified (was Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program)

2012-10-26 Thread David O'Brien
On Thu, Oct 25, 2012 at 03:00:21PM -0700, Garrett Cooper wrote:
 Here's an updated version of the workaround that works properly in all
 cases and installs bmake as make and links make to pmake when
 WITH_BMAKE=yes, and installs make as make when WITHOUT_BMAKE is
 specified (this works better than the previous patch I sent to Simon).

Also, please note we have a 'pmake' port that is the proper original
pmake (before *BSD embellished it).  Perhaps a different name than
'pmake' is appropriate.

It would not surprise me for someone to end up adding a port of the
current FreeBSD make in case there are folks that find bmake incompatible
with their use of FreeBSD's make in their own projects.  So picking a
good name now would be helpful.

-- 
-- David  (obr...@freebsd.org)
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-26 Thread David O'Brien
On Tue, Oct 02, 2012 at 07:19:55AM -0700, Garrett Cooper wrote:
 Hmmm... that's one of the 3 approaches I provided, but it turned out
...
 1. Test programs live with the sources (this was the requested approach), e.g.
 2. Test programs live in subdirs:
 3. Test programs completely decoupled from the source tree:

Could someone please commit at least one working .c test and one .sh test?

There is nothing to follow for others trying to write their own tests
in the FreeBSD-way.

I could not find a single consumer of ATF in HEAD.  This makes it seem
this is still a WIP that should be living in a branch and not in HEAD.
But we're paying the price for checkout  build times, etc...
See the recent 9.1-R thread and Peter Wemm (and others) comments in this
regard.
(this is why I hadn't committed the WIP I had - it wasn't ready for HEAD)

thanks,
-- 
-- David  (obr...@freebsd.org)
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-26 Thread Warner Losh

On Oct 26, 2012, at 11:21 AM, Simon J. Gerraty wrote:

 
 On Fri, 26 Oct 2012 08:27:06 -0600, Warner Losh writes:
 And we've had the :U and :L for a similar period of time as well.  =
 
 Sorry, I didn't mean to imply age has anything to do with it.
 The doc I refered to makes it clear that the two sets of conflicting
 modifers were introduced at about the same time.
 
 Why can't there be a make target that turns them on in FreeBSD compat =
 mode.  You could then just drop those into bsd.port.mk and be done with =
 
 Because then you would lose the functionality that the alternative
 modifiers provide.  Imagine throwing away the ability in /bin/sh to 
 do${foo:-bar}
 Also it would perpetuate the divergence in syntax for little reason.

It's called a transition period for a reason.  The historical use has permeated 
itself into many places, not all of which are obvious.

For many years, sun had two shells so that old shell scripts would work until 
they could be adapted to the new shell's syntax. So your argument rings a bit 
hollow.  Compatibility always has been about being compatible, not about 
growing the feature set or purposely leaving features out.

 BTW there are currently  300 makefiles in ports/ affected by the
 transition to bmake, and there were an even smaller number in src/.

And there are many companies (I know of at least two) that have enough 
infrastructure that depend on these modifiers that moving to 10 will be hard 
for them.  Stupid (in their view) incompatibilities like this are a 
disincentive to upgrade or keep with FreeBSD.  Easing the transition for them 
will help keep them in the fold.  It is no different than keeping old IOCTLs 
around for a release or three to ease that burden.

Warner

___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-26 Thread David O'Brien
On Thu, Oct 25, 2012 at 02:23:06PM -0700, Marcel Moolenaar wrote:
 I think there are 2 reasons why not to:
 1.  The people working on ATF have not raised this concern and
 have expressed that using the WITH_BMAKE knob is but a small
 price to pay.

I'm trying to create an ATF test for filemon, but I don't want to have to
build make back and forth when I want to build a port.
Likely that doesn't put me in the people working on ATF in your book.

 So let's work the bmake side and be able to
 get rid of the knob as soon as possible.

Do we have any commitment as to when Portmgr will have bandwidth to
for testing bmake (I expect it will be several iterations)?  I suspect
they're pretty busy with 9.1-RELEASE, so is this gated by 9.1-R?


 2.  More knobs isn't better -- we must have none of the knobs in
 the end, so the more we create, the more work we have to get
 rid of them. That's just more work spent not focusing on the
 task at hand and thus more time wasted.

What can I and others do to work on this?  I'm not on Portmgr and most
aren't either.

 
 In short: this isn't a 2-knob problem by any stretch of the
 imagination.

I disagree.  Before sending my mail, I ran this by sjg and his response
was: I have absolutely no objection.

-- 
-- David  (obr...@freebsd.org)
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-26 Thread Simon J. Gerraty

On Fri, 26 Oct 2012 08:27:06 -0600, Warner Losh writes:
And we've had the :U and :L for a similar period of time as well.  =

Sorry, I didn't mean to imply age has anything to do with it.
The doc I refered to makes it clear that the two sets of conflicting
modifers were introduced at about the same time.

Why can't there be a make target that turns them on in FreeBSD compat =
mode.  You could then just drop those into bsd.port.mk and be done with =

Because then you would lose the functionality that the alternative
modifiers provide.  Imagine throwing away the ability in /bin/sh to do
${foo:-bar}
Also it would perpetuate the divergence in syntax for little reason.

BTW there are currently  300 makefiles in ports/ affected by the
transition to bmake, and there were an even smaller number in src/.
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: Installing make as pmake when WITH_BMAKE specified (was Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program)

2012-10-26 Thread Simon J. Gerraty
with their use of FreeBSD's make in their own projects.  So picking a
good name now would be helpful.

FWIW I keep a copy in /usr/bin/fmake so I can compare behavior.
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-26 Thread David O'Brien
On Fri, Oct 26, 2012 at 09:41:36AM -0600, Ian Lepore wrote:
 We have to be able to build the same source for multiple versions of
 freebsd, so even finding all the old :U and :L and any other
 incompatibilities and fixing them isn't an option because we'd just
 trade works in freebsd 10 for broken in every other environment.

Ian,
If you're using FreeBSD 9 after 2012-06-14, or FreeBSD 8 or 7 after
2012-10-09 you can use the Bmake spelling of :U and :L (:tu/:tl).

I am not aruging against you, just giving some information you may not
be aware of.

-- 
-- David  (obr...@freebsd.org)
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-26 Thread David O'Brien
On Fri, Oct 26, 2012 at 12:12:44AM +0200, Baptiste Daroussin wrote:
 Do be able to get the ports tree working with bmake asap, I also asked
 him to MFC it to 9.1, from latest reply he got positive answer from re@
 about this, but was waiting for something I don't remember.

:tu/:tl is in releng/9.1, so it will also be in 9.1-RELEASE.

-- 
-- David  (obr...@freebsd.org)
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-26 Thread Konstantin Belousov
On Fri, Oct 26, 2012 at 11:12:53AM -0700, Simon J. Gerraty wrote:
 
 On Fri, 26 Oct 2012 11:41:46 -0600, Warner Losh writes:
 It's called a transition period for a reason.  The historical use has =
 permeated itself into many places, not all of which are obvious.
 
 It would seem that leaving FreeBSD make as make, for the transition
 period and installing bmake as bmake, would cause the least disruption
 to everyone.  This was the original proposal presented at BSDCan in 2011.
 
 FreeBSD make already grok's the :tl and :tu modifiers,
 so it is quite simple for the two to coexist for some period.
 
 The only reason we are talking about having to frob ports etc now, 
 is a new requirement introduced this year (by yourself I think)
 that bmake replace make in base rather than allow coexistence.
 
 If we are all happy to go back to the original plan, we can ease the
 concerns of the folk you speak of?
 
 The only downside is we wait a few more years for major build improvments.

Can system build, initiated by make, call bmake immediately ?
I suppose it could be fine even to error out if make is typed instead of
bmake for src/.


pgp1H8SYjf8vh.pgp
Description: PGP signature


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-26 Thread Simon J. Gerraty

On Fri, 26 Oct 2012 11:41:46 -0600, Warner Losh writes:
It's called a transition period for a reason.  The historical use has =
permeated itself into many places, not all of which are obvious.

It would seem that leaving FreeBSD make as make, for the transition
period and installing bmake as bmake, would cause the least disruption
to everyone.  This was the original proposal presented at BSDCan in 2011.

FreeBSD make already grok's the :tl and :tu modifiers,
so it is quite simple for the two to coexist for some period.

The only reason we are talking about having to frob ports etc now, 
is a new requirement introduced this year (by yourself I think)
that bmake replace make in base rather than allow coexistence.

If we are all happy to go back to the original plan, we can ease the
concerns of the folk you speak of?

The only downside is we wait a few more years for major build improvments.



___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-26 Thread Ian Lepore
On Fri, 2012-10-26 at 11:09 -0700, David O'Brien wrote:
 On Fri, Oct 26, 2012 at 09:41:36AM -0600, Ian Lepore wrote:
  We have to be able to build the same source for multiple versions of
  freebsd, so even finding all the old :U and :L and any other
  incompatibilities and fixing them isn't an option because we'd just
  trade works in freebsd 10 for broken in every other environment.
 
 Ian,
 If you're using FreeBSD 9 after 2012-06-14, or FreeBSD 8 or 7 after
 2012-10-09 you can use the Bmake spelling of :U and :L (:tu/:tl).
 
 I am not aruging against you, just giving some information you may not
 be aware of.
 

Yeah.  And if I have to, I could modify all our makefiles to use the new
syntax, then backport support for the new syntax to earlier freebsd make
source in our local repos.  But to give you some idea of what I've got
to support... yesterday afternoon I was struggling with whether I can
find the time in a release schedule to update an old product that needs
a new feature from freebsd 6 to 8.  The sad fact is that I can't, I'm
going to have to do another freebsd 6-based release to meet the
schedule.  

It's interesting having to work on a daily basis in everything between
freebsd 6.2 and -current.

-- Ian


___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-26 Thread Warner Losh

On Oct 26, 2012, at 12:11 PM, David O'Brien wrote:

 On Fri, Oct 26, 2012 at 12:12:44AM +0200, Baptiste Daroussin wrote:
 Do be able to get the ports tree working with bmake asap, I also asked
 him to MFC it to 9.1, from latest reply he got positive answer from re@
 about this, but was waiting for something I don't remember.
 
 :tu/:tl is in releng/9.1, so it will also be in 9.1-RELEASE.

It isn't in 8 yet, so there's no good transition strategy there...

Warner

___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-26 Thread Simon J. Gerraty

On Fri, 26 Oct 2012 10:55:59 -0700, David O'Brien writes:
I'm trying to create an ATF test for filemon, but I don't want to have to
build make back and forth when I want to build a port.
Likely that doesn't put me in the people working on ATF in your book.

What can I and others do to work on this?  I'm not on Portmgr and most
aren't either.

Why not simply install bmake as bmake?
You can even use devel/bmake in ports.

I disagree.  Before sending my mail, I ran this by sjg and his response
was: I have absolutely no objection.

I have no objection to bmake being installed as bmake.

___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-26 Thread Baptiste Daroussin
On Fri, Oct 26, 2012 at 11:11:52AM -0700, David O'Brien wrote:
 On Fri, Oct 26, 2012 at 12:12:44AM +0200, Baptiste Daroussin wrote:
  Do be able to get the ports tree working with bmake asap, I also asked
  him to MFC it to 9.1, from latest reply he got positive answer from re@
  about this, but was waiting for something I don't remember.
 
 :tu/:tl is in releng/9.1, so it will also be in 9.1-RELEASE.
 
 -- 
 -- David  (obr...@freebsd.org)

Perfect thanks, I wasn't sure

Bapt


pgpfjZZjJ4ItK.pgp
Description: PGP signature


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-26 Thread Chris Rees
On 26 Oct 2012 19:12, David O'Brien obr...@freebsd.org wrote:

 On Fri, Oct 26, 2012 at 12:12:44AM +0200, Baptiste Daroussin wrote:
  Do be able to get the ports tree working with bmake asap, I also asked
  him to MFC it to 9.1, from latest reply he got positive answer from re@
  about this, but was waiting for something I don't remember.

 :tu/:tl is in releng/9.1, so it will also be in 9.1-RELEASE.

Then we only have two supported stable branches you propose to break...

Chris
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: Installing make as pmake when WITH_BMAKE specified (was Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program)

2012-10-26 Thread Garrett Cooper
On Fri, Oct 26, 2012 at 9:34 AM, David O'Brien obr...@freebsd.org wrote:
 On Thu, Oct 25, 2012 at 03:00:21PM -0700, Garrett Cooper wrote:
 Here's an updated version of the workaround that works properly in all
 cases and installs bmake as make and links make to pmake when
 WITH_BMAKE=yes, and installs make as make when WITHOUT_BMAKE is
 specified (this works better than the previous patch I sent to Simon).

 Garrett,
 I don't see how this could be committed -- it will make it difficult
 for 10-CURRENT folks to build ports (and there are no pre-build packages
 for 10-CURRENT).

I don't want it committed because Simon's move makes sense longterm: I
wanted to offer an alternative as opposed to just being stuck in
purgatory and figured that others might benefit from it.

We're stuck at a point now that we need to make a break but we also
need to ensure that we don't break things too badly for users with
older versions of make. Installing our version of make as something
other than `make` would at least allow us to use make as pmake in
ports, but I realized it would requiring hacking around portmaster,
portupgrade, and a number of other tools that expect FreeBSD make to
be make and don't have a means of parameterizing make in the
environment or on the command line.

So looking back now my mitigation solution would not be ideal and
would not fix any problems really.

 Are you not able to use this instead (w/WANT_USRBIN_BMAKE= in 
 /etc/src.conf)?

That would be interesting too (and is a lot less involved than my
patch), and probably would have less fallout.

Thanks!
-Garrett
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-26 Thread Garrett Cooper
On Fri, Oct 26, 2012 at 9:54 AM, David O'Brien obr...@freebsd.org wrote:
 On Tue, Oct 02, 2012 at 07:19:55AM -0700, Garrett Cooper wrote:
 Hmmm... that's one of the 3 approaches I provided, but it turned out
 ...
 1. Test programs live with the sources (this was the requested approach), 
 e.g.
 2. Test programs live in subdirs:
 3. Test programs completely decoupled from the source tree:

 Could someone please commit at least one working .c test and one .sh test?

 There is nothing to follow for others trying to write their own tests
 in the FreeBSD-way.

 I could not find a single consumer of ATF in HEAD.  This makes it seem
 this is still a WIP that should be living in a branch and not in HEAD.
 But we're paying the price for checkout  build times, etc...
 See the recent 9.1-R thread and Peter Wemm (and others) comments in this
 regard.
 (this is why I hadn't committed the WIP I had - it wasn't ready for HEAD)

There are some basic examples, but they're in my p4 branch and
unfortunately they depend on atf.test.mk/bsd.test.mk/bsd.progs.mk
existing before they can be built (please see the Examples section in
http://wiki.freebsd.org/TestingFreeBSD ). I also have the tests
integrated in my perforce branch and running, but it doesn't do a bit
of good unless the build pieces are in.

I've been trying to get these things into HEAD in proper order so they
can be used effectively.

Thanks,
-Garrett
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-26 Thread Garrett Cooper
Minor disambiguation:

On Fri, Oct 26, 2012 at 12:27 PM, Garrett Cooper yaneg...@gmail.com wrote:

...

 There are some basic examples, but they're in my p4 branch and
 unfortunately they depend on atf.test.mk/bsd.test.mk/bsd.progs.mk
 existing before they can be built (please see the Examples section in
 http://wiki.freebsd.org/TestingFreeBSD ). I also have the tests

I also have the tests - I also have the ATF feature/integration tests

 integrated in my perforce branch and running, but it doesn't do a bit
 of good unless the build pieces are in.

 I've been trying to get these things into HEAD in proper order so they
 can be used effectively.

 Thanks,
 -Garrett
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-26 Thread Chris Rees
On 26 Oct 2012 20:15, Chris Rees utis...@gmail.com wrote:


 On 26 Oct 2012 19:12, David O'Brien obr...@freebsd.org wrote:
 
  On Fri, Oct 26, 2012 at 12:12:44AM +0200, Baptiste Daroussin wrote:
   Do be able to get the ports tree working with bmake asap, I also asked
   him to MFC it to 9.1, from latest reply he got positive answer from
re@
   about this, but was waiting for something I don't remember.
 
  :tu/:tl is in releng/9.1, so it will also be in 9.1-RELEASE.

 Then we only have two supported stable branches you propose to break...


OK, how about this:

:L -- seems that bmake's use for this is kinda pointless; returning the
name of the variable; we could swap that usage over directly.

:U -- with bmake has non-optional arguments, so for example:

${VAR:U} - pmake behaviour

${VAR:Uval} - make behaviour.

Would that be acceptable?  I can get a patch in if that's popular.

Chris
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-26 Thread Garrett Cooper
On Fri, Oct 26, 2012 at 12:54 PM, Simon J. Gerraty s...@juniper.net wrote:

 On Fri, 26 Oct 2012 12:27:35 -0700, Garrett Cooper writes:
There are some basic examples, but they're in my p4 branch and
unfortunately they depend on atf.test.mk/bsd.test.mk/bsd.progs.mk

 Speaking of which.  I notice there is now a bsd.progs.mk in head, which
 bears little relationship to the one I was talking about (from
 devel/bmake).  Is this bsd.progs.mk essentially your port of netbsd's
 bsd.prog.mk it seems much more complex than should be necessary (my
 progs.mk is 75 lines vs 350 for the one in head).

Yup. I was a bit surprised it was committed, but there might have been
some confusion over what all was going to go in with the ATF port.

 Would you be awfully upset if I replace it with the simpler one?

Nah. Feel free to nuke it and remove it from the build once you
get progs.mk in proper shape; I'm more concerned about completing the
atf.test.mk/bsd.test.mk snippets because once those are committed I
can get the test example code and the integration test patches
reviewed and committed.
Thanks!
-Garrett
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-26 Thread Simon J. Gerraty

On Fri, 26 Oct 2012 12:27:35 -0700, Garrett Cooper writes:
There are some basic examples, but they're in my p4 branch and
unfortunately they depend on atf.test.mk/bsd.test.mk/bsd.progs.mk

Speaking of which.  I notice there is now a bsd.progs.mk in head, which
bears little relationship to the one I was talking about (from
devel/bmake).  Is this bsd.progs.mk essentially your port of netbsd's
bsd.prog.mk it seems much more complex than should be necessary (my
progs.mk is 75 lines vs 350 for the one in head).
Would you be awfully upset if I replace it with the simpler one?

___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-26 Thread Chris Rees
On 26 Oct 2012 21:51, Simon J. Gerraty s...@juniper.net wrote:


 On Fri, 26 Oct 2012 21:00:26 +0100, Chris Rees writes:
 :L -- seems that bmake's use for this is kinda pointless; returning the
 name of the variable; we could swap that usage over directly.

 Acutally it is very useful.
 The debugging facilities in dirdeps.mk rely on it.
 The junos build uses it in many other places too.


 :U -- with bmake has non-optional arguments, so for example:
 
 ${VAR:U} - pmake behaviour
 
 ${VAR:Uval} - make behaviour.
 
 Would that be acceptable?  I can get a patch in if that's popular.

 No, please don't do that.
 I'm trying to reduce the divergence b/w freebsd and netbsd.

In that case we have a switch time on the order of years, not weeks; 8.3 is
supported until May '14, and unless we get a :tl etc MFC into 8, even
longer.  All this time the ports tree must work with pmake.

I don't want to discourage you or belittle your excellent work here, but
Marcel made me very nervous with his comment on the process being a few
weeks.

Chris
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-26 Thread Simon J. Gerraty

On Fri, 26 Oct 2012 21:00:26 +0100, Chris Rees writes:
:L -- seems that bmake's use for this is kinda pointless; returning the
name of the variable; we could swap that usage over directly.

Acutally it is very useful.
The debugging facilities in dirdeps.mk rely on it.
The junos build uses it in many other places too.


:U -- with bmake has non-optional arguments, so for example:

${VAR:U} - pmake behaviour

${VAR:Uval} - make behaviour.

Would that be acceptable?  I can get a patch in if that's popular.

No, please don't do that.
I'm trying to reduce the divergence b/w freebsd and netbsd.
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-26 Thread Joerg Sonnenberger
On Fri, Oct 26, 2012 at 09:00:26PM +0100, Chris Rees wrote:
 :U -- with bmake has non-optional arguments, so for example:
 
 ${VAR:U} - pmake behaviour
 
 ${VAR:Uval} - make behaviour.
 
 Would that be acceptable?  I can get a patch in if that's popular.

${VAR:U} is useful for bmake as well. For example, .if conditionals can
avoid explicit checks for defined and/or quoting that way.

Joerg
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: Installing make as pmake when WITH_BMAKE specified (was Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program)

2012-10-26 Thread Mark Linimon
On Fri, Oct 26, 2012 at 09:34:20AM -0700, David O'Brien wrote:
 (there are no pre-build packages for 10-CURRENT).

Please see the first two entries on:

  http://pkgbeta.freebsd.org/

mcl
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-26 Thread Baptiste Daroussin
On Fri, Oct 26, 2012 at 10:02:00PM +0100, Chris Rees wrote:
 On 26 Oct 2012 21:51, Simon J. Gerraty s...@juniper.net wrote:
 
 
  On Fri, 26 Oct 2012 21:00:26 +0100, Chris Rees writes:
  :L -- seems that bmake's use for this is kinda pointless; returning the
  name of the variable; we could swap that usage over directly.
 
  Acutally it is very useful.
  The debugging facilities in dirdeps.mk rely on it.
  The junos build uses it in many other places too.
 
 
  :U -- with bmake has non-optional arguments, so for example:
  
  ${VAR:U} - pmake behaviour
  
  ${VAR:Uval} - make behaviour.
  
  Would that be acceptable?  I can get a patch in if that's popular.
 
  No, please don't do that.
  I'm trying to reduce the divergence b/w freebsd and netbsd.
 
 In that case we have a switch time on the order of years, not weeks; 8.3 is
 supported until May '14, and unless we get a :tl etc MFC into 8, even
 longer.  All this time the ports tree must work with pmake.

:tl/:tu has already been MFCed to 8 iirc.
 
 I don't want to discourage you or belittle your excellent work here, but
 Marcel made me very nervous with his comment on the process being a few
 weeks.
 
 Chris


pgpnZ5uCglcDf.pgp
Description: PGP signature


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-26 Thread Simon J. Gerraty

On Fri, 26 Oct 2012 22:02:00 +0100, Chris Rees writes:
In that case we have a switch time on the order of years, not weeks; 8.3 is
supported until May '14, and unless we get a :tl etc MFC into 8, even
longer.  All this time the ports tree must work with pmake.

I'm pretty sure I was told it is already in 8 and 7

I don't want to discourage you or belittle your excellent work here, but
Marcel made me very nervous with his comment on the process being a few
weeks.

That was based on discussions at the last devsummit.
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-25 Thread David O'Brien
On Mon, Oct 08, 2012 at 09:11:29AM -0700, Marcel Moolenaar wrote:
 two independent efforts (ATF  bmake) and there was no indication that
 one would be greatly benefitted from the other. At least not to the
 point of creating a dependency.

It seems we do have the situation where folks feel there is a dependency
between the two.

 Before we can switch permanently to bmake, we need to do the following
 first:
 1.  Request an EXP ports build with bmake as make(1). This should tell
 us the damage of switching to bmake for ports.
 2.  In parallel with 1: build www  docs with bmake and assess the
 damage
 3.  Fix all the damage

 It could be a while (many weeks) before we get to 4, so the question

Given the time this will take, I feel we need to add another knob to the
Bmake build so that 'make world' gives one both the FreeBSD make as
/usr/bin/make and Bmake as /usr/bin/bmake.

thoughts,
--
-- David  (obr...@freebsd.org)
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-25 Thread Chris Rees
On 25 October 2012 22:15, David O'Brien obr...@freebsd.org wrote:
 On Mon, Oct 08, 2012 at 09:11:29AM -0700, Marcel Moolenaar wrote:
 two independent efforts (ATF  bmake) and there was no indication that
 one would be greatly benefitted from the other. At least not to the
 point of creating a dependency.

 It seems we do have the situation where folks feel there is a dependency
 between the two.

 Before we can switch permanently to bmake, we need to do the following
 first:
 1.  Request an EXP ports build with bmake as make(1). This should tell
 us the damage of switching to bmake for ports.
 2.  In parallel with 1: build www  docs with bmake and assess the
 damage
 3.  Fix all the damage

 It could be a while (many weeks) before we get to 4, so the question

 Given the time this will take, I feel we need to add another knob to the
 Bmake build so that 'make world' gives one both the FreeBSD make as
 /usr/bin/make and Bmake as /usr/bin/bmake.


We really aren't going to have any luck yet...

[crees@pegasus]/usr/ports% sudo make MAKE=/usr/bin/bmake index | head
Generating INDEX-9 - please wait..bmake: /usr/ports/Mk/bsd.port.mk
line 5127: warning: duplicate script for target -depends ignored
bmake: /usr/ports/Mk/bsd.port.mk line 5124: warning: using previous
script for -depends defined here
bmake: /usr/ports/Mk/bsd.port.mk line 5127: warning: duplicate
script for target -depends ignored
bmake: /usr/ports/Mk/bsd.port.mk line 5124: warning: using previous
script for -depends defined here
bmake: /usr/ports/Mk/bsd.port.mk line 5127: warning: duplicate
script for target -depends ignored
bmake: /usr/ports/Mk/bsd.port.mk line 5124: warning: using previous
script for -depends defined here
bmake: /usr/ports/Mk/bsd.port.mk line 5124: warning: duplicate
script for target -depends ignored
bmake: /usr/ports/Mk/bsd.port.mk line 5124: warning: using previous
script for -depends defined here
bmake: /usr/ports/Mk/bsd.port.mk line 5124: warning: duplicate
script for target -depends ignored
bmake: /usr/ports/Mk/bsd.port.mk line 5124: warning: using previous
script for -depends defined here

Looks like a few missing .if !target s, but the breakage is pretty big
even for simple things :/

Chris
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-25 Thread Marcel Moolenaar

On Oct 25, 2012, at 2:15 PM, David O'Brien obr...@freebsd.org wrote:

 On Mon, Oct 08, 2012 at 09:11:29AM -0700, Marcel Moolenaar wrote:
 two independent efforts (ATF  bmake) and there was no indication that
 one would be greatly benefitted from the other. At least not to the
 point of creating a dependency.
 
 It seems we do have the situation where folks feel there is a dependency
 between the two.
 
 Before we can switch permanently to bmake, we need to do the following
 first:
 1.  Request an EXP ports build with bmake as make(1). This should tell
us the damage of switching to bmake for ports.
 2.  In parallel with 1: build www  docs with bmake and assess the
damage
 3.  Fix all the damage
 
 It could be a while (many weeks) before we get to 4, so the question
 
 Given the time this will take, I feel we need to add another knob to the
 Bmake build so that 'make world' gives one both the FreeBSD make as
 /usr/bin/make and Bmake as /usr/bin/bmake.

I think there are 2 reasons why not to:

1.  The people working on ATF have not raised this concern and
have expressed that using the WITH_BMAKE knob is but a small
price to pay. So let's work the bmake side and be able to
get rid of the knob as soon as possible.
2.  More knobs isn't better -- we must have none of the knobs in
the end, so the more we create, the more work we have to get
rid of them. That's just more work spent not focusing on the
task at hand and thus more time wasted.

In short: this isn't a 2-knob problem by any stretch of the
imagination.

-- 
Marcel Moolenaar
mar...@xcllnt.net


___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-25 Thread Garrett Cooper
On Thu, Oct 25, 2012 at 2:23 PM, Marcel Moolenaar mar...@xcllnt.net wrote:

...

 I think there are 2 reasons why not to:

 1.  The people working on ATF have not raised this concern and
 have expressed that using the WITH_BMAKE knob is but a small
 price to pay. So let's work the bmake side and be able to
 get rid of the knob as soon as possible.

It is annoying with the magnitude of build-related errors, but I have
a workaround.

 2.  More knobs isn't better -- we must have none of the knobs in
 the end, so the more we create, the more work we have to get
 rid of them. That's just more work spent not focusing on the
 task at hand and thus more time wasted.

Yes, but not being able to update one's machine makes me sad panda.

 In short: this isn't a 2-knob problem by any stretch of the
 imagination.

The real issue is that I need to take the patch Simon developed, run
with it, and in parallel he needs to -- and hopefully already is --
engage portmgr to get it through a number of exp- runs to make sure
bmake does what it's supposed to do with his patch. Backwards
compatibility will need to be maintained for ports because ports has
to work on multiple versions of FreeBSD [where bmake isn't yet
available/present], so maybe a fork in the road for bsd.port.mk should
be devised in order to make everything work.

Thanks!
-Garrett
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Installing make as pmake when WITH_BMAKE specified (was Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program)

2012-10-25 Thread Garrett Cooper
On Thu, Oct 25, 2012 at 2:32 PM, Garrett Cooper yaneg...@gmail.com wrote:

...

 The real issue is that I need to take the patch Simon developed, run
 with it, and in parallel he needs to -- and hopefully already is --
 engage portmgr to get it through a number of exp- runs to make sure
 bmake does what it's supposed to do with his patch. Backwards
 compatibility will need to be maintained for ports because ports has
 to work on multiple versions of FreeBSD [where bmake isn't yet
 available/present], so maybe a fork in the road for bsd.port.mk should
 be devised in order to make everything work.

Here's an updated version of the workaround that works properly in all
cases and installs bmake as make and links make to pmake when
WITH_BMAKE=yes, and installs make as make when WITHOUT_BMAKE is
specified (this works better than the previous patch I sent to Simon).

The point of the patch isn't to discourage bmake use; in fact this
encourages bmake use more because I'm able to use bmake as my system
make, but be able to fall back to pmake as needed.

Thanks!
-Garrett


install-make-as-pmake-when-WITH_BMAKE-specified.patch
Description: Binary data
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org

Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-25 Thread Chris Rees
On 25 October 2012 22:32, Garrett Cooper yaneg...@gmail.com wrote:
 On Thu, Oct 25, 2012 at 2:23 PM, Marcel Moolenaar mar...@xcllnt.net wrote:

 ...

 I think there are 2 reasons why not to:

 1.  The people working on ATF have not raised this concern and
 have expressed that using the WITH_BMAKE knob is but a small
 price to pay. So let's work the bmake side and be able to
 get rid of the knob as soon as possible.

 It is annoying with the magnitude of build-related errors, but I have
 a workaround.

 2.  More knobs isn't better -- we must have none of the knobs in
 the end, so the more we create, the more work we have to get
 rid of them. That's just more work spent not focusing on the
 task at hand and thus more time wasted.

 Yes, but not being able to update one's machine makes me sad panda.

 In short: this isn't a 2-knob problem by any stretch of the
 imagination.

 The real issue is that I need to take the patch Simon developed, run
 with it, and in parallel he needs to -- and hopefully already is --
 engage portmgr to get it through a number of exp- runs to make sure
 bmake does what it's supposed to do with his patch. Backwards
 compatibility will need to be maintained for ports because ports has
 to work on multiple versions of FreeBSD [where bmake isn't yet
 available/present], so maybe a fork in the road for bsd.port.mk should
 be devised in order to make everything work.

Now you've terrified me, and probably most other ports people too.

Is there a Wiki page where the actual benefits of moving to bmake are
made clear?  This is a major, *major* upheaval, and having two
versions of bsd.port.mk for years is simply not an option.

Have you discussed this on ports@?

Chris
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-25 Thread Baptiste Daroussin
On Thu, Oct 25, 2012 at 11:01:27PM +0100, Chris Rees wrote:
 On 25 October 2012 22:32, Garrett Cooper yaneg...@gmail.com wrote:
  On Thu, Oct 25, 2012 at 2:23 PM, Marcel Moolenaar mar...@xcllnt.net wrote:
 
  ...
 
  I think there are 2 reasons why not to:
 
  1.  The people working on ATF have not raised this concern and
  have expressed that using the WITH_BMAKE knob is but a small
  price to pay. So let's work the bmake side and be able to
  get rid of the knob as soon as possible.
 
  It is annoying with the magnitude of build-related errors, but I have
  a workaround.
 
  2.  More knobs isn't better -- we must have none of the knobs in
  the end, so the more we create, the more work we have to get
  rid of them. That's just more work spent not focusing on the
  task at hand and thus more time wasted.
 
  Yes, but not being able to update one's machine makes me sad panda.
 
  In short: this isn't a 2-knob problem by any stretch of the
  imagination.
 
  The real issue is that I need to take the patch Simon developed, run
  with it, and in parallel he needs to -- and hopefully already is --
  engage portmgr to get it through a number of exp- runs to make sure
  bmake does what it's supposed to do with his patch. Backwards
  compatibility will need to be maintained for ports because ports has
  to work on multiple versions of FreeBSD [where bmake isn't yet
  available/present], so maybe a fork in the road for bsd.port.mk should
  be devised in order to make everything work.
 
 Now you've terrified me, and probably most other ports people too.
 
 Is there a Wiki page where the actual benefits of moving to bmake are
 made clear?  This is a major, *major* upheaval, and having two
 versions of bsd.port.mk for years is simply not an option.
 
Not much test has been done on the ports tree about it, from what I have tested
so far, except from the :tu :tl difference the ports seems to work ootb with
both bmake and make, I asked obrien to MFC the support for :tl :tu in make(1) to
all available platform which he did.

Do be able to get the ports tree working with bmake asap, I also asked him to
MFC it to 9.1, from latest reply he got positive answer from re@ about this, but
was waiting for something I don't remember.

regards,
Bapt


pgpp7TctkVsBS.pgp
Description: PGP signature


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-25 Thread Eitan Adler
On 25 October 2012 18:12, Baptiste Daroussin b...@freebsd.org wrote:
 Not much test has been done on the ports tree about it, from what I have 
 tested
 so far, except from the :tu :tl difference the ports seems to work ootb with
 both bmake and make, I asked obrien to MFC the support for :tl :tu in make(1) 
 to
 all available platform which he did.

 Do be able to get the ports tree working with bmake asap, I also asked him to
 MFC it to 9.1, from latest reply he got positive answer from re@ about this, 
 but
 was waiting for something I don't remember.

The ports tree isn't the only concern. We also need to think about
upstream users of bmake that relied on :U and the like working as it
does now.
We will either need to patch them, or implement a USE_OLD_MAKE flag.


-- 
Eitan Adler
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-25 Thread Garrett Cooper
On Thu, Oct 25, 2012 at 3:01 PM, Chris Rees cr...@freebsd.org wrote:

...

 Now you've terrified me, and probably most other ports people too.

 Is there a Wiki page where the actual benefits of moving to bmake are
 made clear?  This is a major, *major* upheaval, and having two
 versions of bsd.port.mk for years is simply not an option.

I'm not the best advocate for bmake vs pmake; like bapt@ said in the
followup email, most things work out of the box where people aren't
trying to be clever, but I've found some interesting edgecases where
bmake works and pmake doesn't, and vice versa because the old code
depends upon incorrect behavior.

I wasn't necessarily advocating having two bsd.*.mk files as the best
idea -- it's just what came to mind first.

 Have you discussed this on ports@?

I haven't, but I hope that someone else started this discussion...

Thanks,
-Garrett

PS I am an optimist, but I'm a realist more than an optimist. I know
that changing major/fundamental system components like make, the
toolchain, etc requires a good deal of testing and there will be
bugs/issues that need to be resolved. We just should make sure that
things work as best possible for those looking back as well as those
looking forward because it's considerably easier doing development on
FreeBSD when I can just update a ports tree, build on 6.x/7.2/7.3, run
some quick tests, then switch up to 10 and do other development.
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-25 Thread Simon J. Gerraty

On Thu, 25 Oct 2012 22:21:59 +0100, Chris Rees writes:
We really aren't going to have any luck yet...

[crees@pegasus]/usr/ports% sudo make MAKE=/usr/bin/bmake index | head

If anyone is eager to play with this, I just have put a copy of
ports2bmake.tar.gz in ~sjg/ on freefall.

This contains a script that *should* convert ports to
bmake syntax, while adding a hack to allow older systems to still work.
It will generate a list of all the files it frobs so you can easily
revert them - eg. before updating the tree.

There's a README file in the tarball which hopefully explains all.

Any issues - pls let me know.
--sjg
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-25 Thread Baptiste Daroussin
On Thu, Oct 25, 2012 at 10:21:59PM +0100, Chris Rees wrote:
 On 25 October 2012 22:15, David O'Brien obr...@freebsd.org wrote:
  On Mon, Oct 08, 2012 at 09:11:29AM -0700, Marcel Moolenaar wrote:
  two independent efforts (ATF  bmake) and there was no indication that
  one would be greatly benefitted from the other. At least not to the
  point of creating a dependency.
 
  It seems we do have the situation where folks feel there is a dependency
  between the two.
 
  Before we can switch permanently to bmake, we need to do the following
  first:
  1.  Request an EXP ports build with bmake as make(1). This should tell
  us the damage of switching to bmake for ports.
  2.  In parallel with 1: build www  docs with bmake and assess the
  damage
  3.  Fix all the damage
 
  It could be a while (many weeks) before we get to 4, so the question
 
  Given the time this will take, I feel we need to add another knob to the
  Bmake build so that 'make world' gives one both the FreeBSD make as
  /usr/bin/make and Bmake as /usr/bin/bmake.
 
 
 We really aren't going to have any luck yet...
 
 [crees@pegasus]/usr/ports% sudo make MAKE=/usr/bin/bmake index | head
 Generating INDEX-9 - please wait..bmake: /usr/ports/Mk/bsd.port.mk
 line 5127: warning: duplicate script for target -depends ignored
 bmake: /usr/ports/Mk/bsd.port.mk line 5124: warning: using previous
 script for -depends defined here
 bmake: /usr/ports/Mk/bsd.port.mk line 5127: warning: duplicate
 script for target -depends ignored
 bmake: /usr/ports/Mk/bsd.port.mk line 5124: warning: using previous
 script for -depends defined here
 bmake: /usr/ports/Mk/bsd.port.mk line 5127: warning: duplicate
 script for target -depends ignored
 bmake: /usr/ports/Mk/bsd.port.mk line 5124: warning: using previous
 script for -depends defined here
 bmake: /usr/ports/Mk/bsd.port.mk line 5124: warning: duplicate
 script for target -depends ignored
 bmake: /usr/ports/Mk/bsd.port.mk line 5124: warning: using previous
 script for -depends defined here
 bmake: /usr/ports/Mk/bsd.port.mk line 5124: warning: duplicate
 script for target -depends ignored
 bmake: /usr/ports/Mk/bsd.port.mk line 5124: warning: using previous
 script for -depends defined here
 
 Looks like a few missing .if !target s, but the breakage is pretty big
 even for simple things :/
 

Have you converted the :U to :tu and :L to :tl?

regards,
Bapt


pgpGGmrYitgPo.pgp
Description: PGP signature


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-25 Thread Simon J. Gerraty

On Thu, 25 Oct 2012 23:01:27 +0100, Chris Rees writes:
Is there a Wiki page where the actual benefits of moving to bmake are
made clear?  This is a major, *major* upheaval, and having two
versions of bsd.port.mk for years is simply not an option.

There is no need/plan for two versions of bsd.port.mk, the patch I just
mentioned, deals with older systems by detecting that bmake was not
used, and using it (installing if need be).  

Have you discussed this on ports@?

I have not at least.  
This was discussed at the last couple of BSDCan's and dev summits.

The original plan discussed at BSDCan a couple of years ago, was to
allow bmake and the old make to cooexist for some time so that ports
could continue to use the old make.

At the last BSDCan we were told that wasn't an option - hence the patch
to ports that was mentioned.

FWIW the changes to 99.9% of the ports tree are trivial (:L - :tl etc).
The only interesting changes are to bsd.port.mk (the diff other than the
above is 54 lines) they cover 2 things - dealing with old make as
mentioned above, and man pages.  The nested .for loops that deal
with MLINKS are replaced with one line - this was safer that attempting
to hack those .for loops to work with both makes.

--sjg
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-25 Thread Konstantin Belousov
On Thu, Oct 25, 2012 at 03:53:53PM -0700, Simon J. Gerraty wrote:
 
 On Thu, 25 Oct 2012 23:01:27 +0100, Chris Rees writes:
 Is there a Wiki page where the actual benefits of moving to bmake are
 made clear?  This is a major, *major* upheaval, and having two
 versions of bsd.port.mk for years is simply not an option.
 
 There is no need/plan for two versions of bsd.port.mk, the patch I just
 mentioned, deals with older systems by detecting that bmake was not
 used, and using it (installing if need be).  
 
 Have you discussed this on ports@?
 
 I have not at least.  
 This was discussed at the last couple of BSDCan's and dev summits.
 
 The original plan discussed at BSDCan a couple of years ago, was to
 allow bmake and the old make to cooexist for some time so that ports
 could continue to use the old make.
 
 At the last BSDCan we were told that wasn't an option - hence the patch
 to ports that was mentioned.
 
 FWIW the changes to 99.9% of the ports tree are trivial (:L - :tl etc).
 The only interesting changes are to bsd.port.mk (the diff other than the
 above is 54 lines) they cover 2 things - dealing with old make as
 mentioned above, and man pages.  The nested .for loops that deal
 with MLINKS are replaced with one line - this was safer that attempting
 to hack those .for loops to work with both makes.

I am watching the serial for some time.  Could please, someone, describe
why bmake cannot grow the compat features to be a drop-in replacement for
FreeBSD make, instead of patching all the trees ?

In particular, why cannot the ':L' and ':U' support be added ?


pgpZs4ID2dTbM.pgp
Description: PGP signature


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-13 Thread George Neville-Neil

On Oct 8, 2012, at 12:11 , Marcel Moolenaar mar...@xcllnt.net wrote:

 
 On Oct 4, 2012, at 9:42 AM, Garrett Cooper yaneg...@gmail.com wrote:
 Both parties (Isilon/Juniper) are converging on the ATF porting work
 that Giorgos/myself have done after talking at the FreeBSD Foundation
 meet-n-greet. I have contributed all of the patches that I have other
 to marcel for feedback.
 
 This is very non-obvious to the public at large (e.g. there was no public
 response to one group's inquiry about the second ATF import for example).
 Also, given that you had no idea that sgf@ and obrien@ were working on
 importing NetBSD's bmake as a prerequisite for ATF, it seems that whatever
 discussions were held were not very detailed at best.  I think it would be
 good to have the various folks working on ATF to at least summarize the
 current state of things and sketch out some sort of plan or roadmap for 
 future
 work in a public forum (such as atf@, though a summary mail would be quite
 appropriate for arch@).
 
 I'm in part to blame for this. There was some discussion -- but not at
 length; unfortunately no one from Juniper was present at the meet and
 greet; the information I got was second hand; I didn't follow up to
 figure out the exact details / clarify what I had in mind with the
 appropriate parties.
 
 Hang on. I want in on the blame part! :-)
 
 Seriously: no-one is really to blame as far as I can see. We just had
 two independent efforts (ATF  bmake) and there was no indication that
 one would be greatly benefitted from the other. At least not to the
 point of creating a dependency.
 
 I just committed the bmake bits. It not only adds bmake to the build,
 but also includes the changes necessary to use bmake.
 
 With that in place it's easier to decide whether we want the dependency
 or not.
 
 Before we can switch permanently to bmake, we need to do the following
 first:
 1.  Request an EXP ports build with bmake as make(1). This should tell
us the damage of switching to bmake for ports.
 2.  In parallel with 1: build www  docs with bmake and assess the
damage
 3.  Fix all the damage
 
 Then:
 
 4.  Switch.
 
 It could be a while (many weeks) before we get to 4, so the question
 really is whether the people working on ATF are willing and able to
 build and install FreeBSD using WITH_BMAKE?
 

I think that's a small price to pay for getting going with the ATF
stuff now rather than in 4 weeks.  What's the right way to do this
now with HEAD?

Best,
George


___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-13 Thread Marcel Moolenaar

On Oct 13, 2012, at 12:15 PM, George Neville-Neil g...@neville-neil.com wrote:

 
 I think that's a small price to pay for getting going with the ATF
 stuff now rather than in 4 weeks.  What's the right way to do this
 now with HEAD?

Set WITH_BMAKE=yes in /etc/src.conf or /etc/make.conf and
you're good to go.

One caveat: manually rebuild and re-install usr.bin/bmake after
the buildworld  installworld with WITH_BMAKE=yes set. The one
created as part of the buildworld has a bug due to being built
by FreeBSD's make. A fix is known and will be committed soon,
but until then, the manual step is needed.

That's it...

-- 
Marcel Moolenaar
mar...@xcllnt.net


___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-13 Thread Simon J. Gerraty

On Sat, 13 Oct 2012 15:15:59 -0400, George Neville-Neil writes:
 It could be a while (many weeks) before we get to 4, so the question
 really is whether the people working on ATF are willing and able to
 build and install FreeBSD using WITH_BMAKE?
=20

I think that's a small price to pay for getting going with the ATF
stuff now rather than in 4 weeks.  What's the right way to do this
now with HEAD?

We can add bsd.progs.mk (if you have devel/bmake port installed you
have it as /usr/local/share/mk/progs.mk)
and atf.test.mk and people can just go for it ?
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-13 Thread Garrett Cooper
On Sat, Oct 13, 2012 at 1:13 PM, Simon J. Gerraty s...@juniper.net wrote:

 On Sat, 13 Oct 2012 15:15:59 -0400, George Neville-Neil writes:
 It could be a while (many weeks) before we get to 4, so the question
 really is whether the people working on ATF are willing and able to
 build and install FreeBSD using WITH_BMAKE?

I think that's a small price to pay for getting going with the ATF
stuff now rather than in 4 weeks.  What's the right way to do this
now with HEAD?

 We can add bsd.progs.mk (if you have devel/bmake port installed you
 have it as /usr/local/share/mk/progs.mk)
 and atf.test.mk and people can just go for it ?

As long as it can function sanely in a NetBSD-like manner and I
can start writing tests, I don't mind...
Thanks!
-Garrett
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-08 Thread Marcel Moolenaar

On Oct 4, 2012, at 9:42 AM, Garrett Cooper yaneg...@gmail.com wrote:
 Both parties (Isilon/Juniper) are converging on the ATF porting work
 that Giorgos/myself have done after talking at the FreeBSD Foundation
 meet-n-greet. I have contributed all of the patches that I have other
 to marcel for feedback.
 
 This is very non-obvious to the public at large (e.g. there was no public
 response to one group's inquiry about the second ATF import for example).
 Also, given that you had no idea that sgf@ and obrien@ were working on
 importing NetBSD's bmake as a prerequisite for ATF, it seems that whatever
 discussions were held were not very detailed at best.  I think it would be
 good to have the various folks working on ATF to at least summarize the
 current state of things and sketch out some sort of plan or roadmap for 
 future
 work in a public forum (such as atf@, though a summary mail would be quite
 appropriate for arch@).
 
 I'm in part to blame for this. There was some discussion -- but not at
 length; unfortunately no one from Juniper was present at the meet and
 greet; the information I got was second hand; I didn't follow up to
 figure out the exact details / clarify what I had in mind with the
 appropriate parties.

Hang on. I want in on the blame part! :-)

Seriously: no-one is really to blame as far as I can see. We just had
two independent efforts (ATF  bmake) and there was no indication that
one would be greatly benefitted from the other. At least not to the
point of creating a dependency.

I just committed the bmake bits. It not only adds bmake to the build,
but also includes the changes necessary to use bmake.

With that in place it's easier to decide whether we want the dependency
or not.

Before we can switch permanently to bmake, we need to do the following
first:
1.  Request an EXP ports build with bmake as make(1). This should tell
us the damage of switching to bmake for ports.
2.  In parallel with 1: build www  docs with bmake and assess the
damage
3.  Fix all the damage

Then:

4.  Switch.

It could be a while (many weeks) before we get to 4, so the question
really is whether the people working on ATF are willing and able to
build and install FreeBSD using WITH_BMAKE?

-- 
Marcel Moolenaar
mar...@xcllnt.net


___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-04 Thread George Neville-Neil

On Oct 2, 2012, at 10:37 , John Baldwin j...@freebsd.org wrote:

 This is very non-obvious to the public at large (e.g. there was no public 
 response to one group's inquiry about the second ATF import for example).  
 Also, given that you had no idea that sgf@ and obrien@ were working on 
 importing NetBSD's bmake as a prerequisite for ATF, it seems that whatever 
 discussions were held were not very detailed at best.  I think it would be 
 good to have the various folks working on ATF to at least summarize the 
 current state of things and sketch out some sort of plan or roadmap for 
 future 
 work in a public forum (such as atf@, though a summary mail would be quite 
 appropriate for arch@).

I take partial responsibility for the privacy of the discussions hitherto.
My apologies, it should have be moved out onto a public list sooner.

But, I would like to drive this to a solution on arch@.  We don't have an
atf@, but we do have a test@ and testing@.  We have too many mailing
lists already, so let's finish this up here if we can and then 
continue talking on testing@.

Best,
George

___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-04 Thread David Wolfskill
On Thu, Oct 04, 2012 at 12:11:21PM -0400, George Neville-Neil wrote:
 ...
 But, I would like to drive this to a solution on arch@.  We don't have an
 atf@, but we do have a test@ and testing@.  We have too many mailing
 lists already, so let's finish this up here if we can and then 
 continue talking on testing@.
 ...

Before folks get too excited about test@  testing@:

* test@ is for testing ability to send mail to FreeBSD.org (mailing
  lists).

* testing@ *used* to exist, but was retired for lack of relevant
  traffic.

* There's little difference in effort in resurrecting testing@ vs.
  creating atf@.

Peace,
david   (current hat: part of postmas...@freebsd.org)
-- 
David H. Wolfskill  da...@catwhisker.org
Depriving a girl or boy of an opportunity for education is evil.

See http://www.catwhisker.org/~david/publickey.gpg for my public key.


pgpqIh3blipIV.pgp
Description: PGP signature


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-04 Thread Garrett Cooper
On Thu, Oct 4, 2012 at 9:29 AM, David Wolfskill da...@catwhisker.org wrote:
 On Thu, Oct 04, 2012 at 12:11:21PM -0400, George Neville-Neil wrote:
 ...
 But, I would like to drive this to a solution on arch@.  We don't have an
 atf@, but we do have a test@ and testing@.  We have too many mailing
 lists already, so let's finish this up here if we can and then
 continue talking on testing@.
 ...

 Before folks get too excited about test@  testing@:

 * test@ is for testing ability to send mail to FreeBSD.org (mailing
   lists).

 * testing@ *used* to exist, but was retired for lack of relevant
   traffic.

 * There's little difference in effort in resurrecting testing@ vs.
   creating atf@.

I think that resurrecting testing@ makes more sense as creating an
atf specific list seems a bit too focused on ATF, primarily because
atf is being partially superseded by kyua (pronounced Q-A) in the
near future.
Thanks!
-Garrett
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-02 Thread Garrett Cooper
On Mon, Oct 1, 2012 at 5:00 PM, Simon J. Gerraty s...@juniper.net wrote:
 Not to mention the fact that bsd.prog.mk goes from being relatively
 simple, to unspeakably hard to read, and all for rather limited =
return.

 This btw I think is the more important issue.
 I was looking at bsd.prog.mk in netbsd the other day.
 It has no business being that complex.

Ok. Even though I originally thought that my changes were a bit hacky
for not modifying bsd.man.mk, bsd.nls.mk, etc, looking back the way
they were resolved was a little elegant in its simplicity (albeit not
optimized).

...

It order to do this, I need to be able to build multiple programs so =
things are as transparent. On the flipside, bsd.prog[s].mk can live on =

 We put the test cases in a subdir of the lib/prog
 This has multiple benefits, and eliminates any impact on the normal
 build of said libs/progs.

Hmmm... that's one of the 3 approaches I provided, but it turned out
to be annoying to make this work at first inspection because of how
things were done in our build system. Just for review (even though
it's OT), the three approaches I presented were as follows...

Note: in all 3 examples, clock.c is the source code and t_clock.c is
the relevant unittest code.

1. Test programs live with the sources (this was the requested approach), e.g.

lib/libc/gen/...
.../clock.c
.../t_clock.c

2. Test programs live in subdirs:

lib/libc/gen/...
.../clock.c
.../tests/...
.../t_clock.c

3. Test programs completely decoupled from the source tree:

lib/libc/gen/...
.../clock.c
tests/lib/libc/gen/...
 .../t_clock.c

A hybrid approach (1.+3. / 2.+3.) should probably be used anyhow for
stress tests and the like that really have no business living in one
particular directory in the source tree (sort of achieving what
tools/regression does today, but hopefully in a less messy manner as
tools/regression appears to have grown organically minus any single
sane order).

 Also a number of our teams find it necessary to create mock classes etc to
 adequately test their libs.  Keeping all this in a tests/ subdir makes
 it easy, to keep things neat  up to date, and ensure that the tests
 pass.  Trying to do all that in the same dir as the lib would be ugly.

This (consolidating everything under a single directory) is the way
that was requested by the beforementioned parties.

 FWIW we use progs.mk (as bsd.progs.mk) from
 ftp://ftp.netbsd.org/pub/NetBSD/misc/sjg/mk-*.tar.gz=20
 It isn't ideal, but it certainly avoids a lot of churn and complexity
 for what is essentially a corner case.

This requires pulling bmake into FreeBSD proper in order for things to =
function the last I checked as bsd.prog.mk depends upon bmake directives =

 This is already happening ;-)

I wish I had known that. I pinged marcel/obrien about this some weeks
ago and didn't receive a response.

Originally bsd.progs.mk was going to be a home grown effort that was
going to be killed off and replaced with NetBSD's build
infrastructure, but I didn't get a reply and had to put this (my work
to replace bsd.prog.mk) plan in motion given requests I was provided
above for resolving the source/unittest code consolidation effort.

Ideally however, I would like doing this compared to running a custom =
build infrastructure, but (as you probably know) this requires =
rototilling the current FreeBSD build system to a large degree =

 Actually building FreeBSD-current using bmake requires only modest changes.

Yes for the most part, and I agree that bmake is definitely more
advanced than FreeBSD pmake so I consider it a very welcome change.
What are the plans for importing bmake into FreeBSD (this should
probably be a different thread)?

...

 I know, but it is a very useful thing to be able to do.
 You can add knobs to control such things of course.

I agree that it's a good thing (in theory) -- it'd just help to
discuss this with Julio first because I know of a couple cases where
this would be unusable given how bsd.test.mk is coded:

1. The it works for me on my machine! certification:

It encourages environment tainting, which could be a really, really
bad thing; I've seen developers take interesting shortcuts when
testing their code (me included sometimes :)..); I've seen hardcoded
paths, harcoded paths for named semaphores, things that just work
because of someone's host environment, feature specific assumptions
(developer X was doing testing on feature Y and things broke when
he/she committed the testcase to head), etc where the it works for me
on my machine! certification would be true more often than not. These
same individuals would more likely than not execute things taking
shortcuts, but I want to avoid creating a system where developers cut
corners and commit too early because working within the confines of
the system is not conducive to getting work done.

2. Failure 

Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-02 Thread Simon J. Gerraty

On Tue, 2 Oct 2012 07:19:55 -0700, Garrett Cooper writes:
 We put the test cases in a subdir of the lib/prog
 This has multiple benefits, and eliminates any impact on the normal
 build of said libs/progs.

Hmmm... that's one of the 3 approaches I provided, but it turned out
to be annoying to make this work at first inspection because of how
things were done in our build system. Just for review (even though
it's OT), the three approaches I presented were as follows...

Note: in all 3 examples, clock.c is the source code and t_clock.c is
the relevant unittest code.

There is actually another:

lib/libc/Makefile
lib/libc/gen/...
.../clock.c
.../t_clock.c

lib/libc/tests/Makefile

that is the makefile for building/running the tests lives in the subdir,
there are advantages to this, but the test code itself can be
anywhere you like.  Either next to the code that it tests, or in the
tests/ subdir, another subdir, or whatever combination makes the most sense.

Most of our ATF users put their test code in the subdir fwiw.

 Also a number of our teams find it necessary to create mock classes etc to
 adequately test their libs.  Keeping all this in a tests/ subdir makes
 it easy, to keep things neat  up to date, and ensure that the tests
 pass.  Trying to do all that in the same dir as the lib would be ugly.

This (consolidating everything under a single directory) is the way
that was requested by the beforementioned parties.

Sorry for not participating in that discussion ;-)
John - perhaps we do need that ATF list?

For example building a library and test apps in the one directory
either requires turning bsd.lib.mk into an even more complex thing that
a multi-prog bsd.pog.mk, or having the makefile behave completely
differently depending on the target requested.

That later is a bad idea.  It precludes being able to seamlessly
integrate unit-tests into the build, and would need to be fixed if/when
attempting to introduce meta mode.  Typically the unit-tests depend on
the library they are testing, a separate subdir for the tests/Makefile
makes capturing that dependency easy - otherwise you are back to the
unspeakably complex bsd.lib.mk

Far better to get these things right first up.

I wish I had known that. I pinged marcel/obrien about this some weeks
ago and didn't receive a response.

Many appologies.

What are the plans for importing bmake into FreeBSD (this should
probably be a different thread)?

The import has been done - just needs to be merged to contrib,
and there's a small patch to be committed.
We hope to get that done this week.

I agree that it's a good thing (in theory) -- it'd just help to
discuss this with Julio first because I know of a couple cases where
this would be unusable given how bsd.test.mk is coded:

I do talk to Julio about ATF (I'm s...@netbsd.org ;-)
though not specifically this - beyond (I think) mentioning that I did it
differently. 

1. The it works for me on my machine! certification:

It encourages environment tainting, which could be a really, really
bad thing; I've seen developers take interesting shortcuts when

True.  In our (Junos) build we cleanse the environment rather carefully
and have a very clear distinction between building for the host (which
may just happend to be i386 based) and the i386 target for example.

I can provide build smarts to do all that - but didn't want to shove it
down anyone's throat ;-)
What works for us doesn't necessarily work for everyone.

2. Failure in a subdirectory results in lost coverage:

a/...
   .../b/... - tests live here
   .../c/d/... - tests live here

If I execute make test from a/ (one of my goals), then it should
iterate down a/b, then a/c/d and run the tests in a DFS style (BFS if

This gets back to the bmake topic.  We actually avoid walking the
tree at all, eg. in the Junos build I have a target atf-tests which 
builds all ATF tests dirs regardless of where they are (and any
pre-requisits they have).  This is handy to include as a dependency of
the build target we use for branch syncs etc, to ensure no unit-tests
atrophy.

But the most common case - and the one to optimize for, is the person
making changes to libfoo, testing that he hasn't broken anything.

could disguise other bugs. This would be fixed by changing bsd.test.mk
to use atf-run properly, but that's work (not hard) that still needs
to be done.

Yes, atf.test.mk already does that.

H... My goal was to make ATF a one ring to rule them all
infrastructure so that way everything could be unified under ATF in

ATF is a pretty good framework - which is why we (Juniper) use it.
We want the flexibility to have more than one framework, but the number
should be very small.  So far I have persuaded teams that wanted to
adopt alternate frameworks, that ATF could easily meet their needs.

one way, shape or form (even if it's just reporting), because lord
knows we don't need a lua, unittest/nose, etc wrapper for reporting
results. All of the 

Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-01 Thread Garrett Cooper
Hi Simon!

On Oct 1, 2012, at 3:31 PM, Simon J. Gerraty wrote:

 Hi Garrett,
 
 From: Garrett Cooper yaneg...@gmail.com
 Subject: [CFT/RFC]: refactor bsd.prog.mk to understand multiple =
 programs instead of a singular program
 Date: September 2, 2012 11:01:09 PM PDT
 To: freebsd-hackers@freebsd.org
 Cc: freebsd-a...@freebsd.org Arch freebsd-a...@freebsd.org
 =20
 Hello,
   I've been a bit busy working on porting over ATF from NetBSD, and
 
 Thanks, we've been using ATF in Junos for a while and glad to see it 
 being imported to FreeBSD.

Thanks (and I appreciate the help marcel@ has given by taking the first step in 
importing it).

 one of the pieces that's currently not available in FreeBSD that's
 available in NetBSD is the ability to understand and compile multiple
 programs. In order to do this I had to refactor bsd.prog.mk (a lot).
 
 A change like this to bsd.prog.mk can have considerable fallout.
 Eg. any makefile that tweaks OBJS is suddenly out of luck.

Well… any Makefiles attempting to be clever (e.g. crunchgen) are out of luck 
and would need to change. Most [include] Makefiles will see virtually no change.

 Not to mention the fact that bsd.prog.mk goes from being relatively
 simple, to unspeakably hard to read, and all for rather limited return. 

I sort of tried to match bsd.prog.mk in NetBSD in the beginning, but things 
diverged from there… I'm sure things could be made more readable so any 
comments would be much appreciated :)!

 Apart from ATF, is there any huge demand for building multiple progs in
 the same directory?

Well, I noticed that there are a couple ugly messes in the gnu/... directory 
that attempt to work around the fact that bsd.prog.mk doesn't support more than 
one program by being tricky and emulating bsd.prog.mk instead of solving the 
generic problem (and once I got over that compatibility issue I stopped 
tracking this class of consumer). Most consumers don't care (they split up 
programs into different directories or use hardlink hacks/basename detection to 
differentiate one program functionally from another).

Getting back to the idea at hand, the enhancement goal was to get the testcases 
to live [and optionally be built/installed] with the source code to avoid 
bitrot; I know this isn't the current NetBSD design, but this is what was 
requested be done by gnn, marcel, and mdf, and I agree. It order to do this, I 
need to be able to build multiple programs so things are as transparent. On the 
flipside, bsd.prog[s].mk can live on its own, be pulled in automatically by 
bsd.test.mk, and that would be it. This encourages code duplication though and 
bugs can persist in either Makefile, when I'd rather work out all the kinks in 
whatever succeeds the legacy bsd.prog.mk file.

 FWIW we use progs.mk (as bsd.progs.mk) from
 ftp://ftp.netbsd.org/pub/NetBSD/misc/sjg/mk-*.tar.gz 
 It isn't ideal, but it certainly avoids a lot of churn and complexity
 for what is essentially a corner case.

This requires pulling bmake into FreeBSD proper in order for things to function 
the last I checked as bsd.prog.mk depends upon bmake directives in order to 
function properly 100% of the time (and there are external dependencies and 
assumptions one has to deal with when using bsd.prog.mk, etc from NetBSD that 
made that a bit of a no-go without refactoring/pulling in bits from NetBSD). I 
could be wrong though, so please let me know if I am :).

Ideally however, I would like doing this compared to running a custom build 
infrastructure, but (as you probably know) this requires rototilling the 
current FreeBSD build system to a large degree (definitely not impossible… just 
needs time and effort).

 We have an atf.test.mk which leverages that.
 It also handles automatically running the tests if building for the
 host. This allows us to fail the build if any unit-tests do not pass.

Hmm… that wasn't really the end-goal of bsd.test.mk based on my reading, but 
I'm sure Julio would be interested in it. I need to do adjusting in order to 
allow automatically executing testcases compatible to the host architecture, 
but that isn't hard to do (no more than  a couple hours work).

 Note, atf.test.mk is loosely derrived from NetBSD's bsd.tests.mk, but
 named for what it is (ATF specific tests) since we wanted the
 flexibility to have more than one test framework.

bsd.test.mk in NetBSD isn't completely test-agnostic, but it isn't entirely ATF 
centric either. I'm trying not to stray too far from NetBSD in this area 
because there really isn't any reason to do so. FWIW I'd like to see other test 
frameworks (lua, unittest//nose, etc) just snap into bsd.test.mk as easily as 
possible as it would make some groups lives easier, but that requires a bit 
more thought for another day.

Thanks for the feedback!
-Garrett___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to 

Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-10-01 Thread Simon J. Gerraty
 Not to mention the fact that bsd.prog.mk goes from being relatively
 simple, to unspeakably hard to read, and all for rather limited =
return.

This btw I think is the more important issue.
I was looking at bsd.prog.mk in netbsd the other day.
It has no business being that complex.

Getting back to the idea at hand, the enhancement goal was to get the =
testcases to live [and optionally be built/installed] with the source =
code to avoid bitrot; I know this isn't the current NetBSD design, but =
this is what was requested be done by gnn, marcel, and mdf, and I agree. =

I agree, that's what we do too.

It order to do this, I need to be able to build multiple programs so =
things are as transparent. On the flipside, bsd.prog[s].mk can live on =

We put the test cases in a subdir of the lib/prog
This has multiple benefits, and eliminates any impact on the normal
build of said libs/progs.

Also a number of our teams find it necessary to create mock classes etc to
adequately test their libs.  Keeping all this in a tests/ subdir makes
it easy, to keep things neat  up to date, and ensure that the tests
pass.  Trying to do all that in the same dir as the lib would be ugly.

 FWIW we use progs.mk (as bsd.progs.mk) from
 ftp://ftp.netbsd.org/pub/NetBSD/misc/sjg/mk-*.tar.gz=20
 It isn't ideal, but it certainly avoids a lot of churn and complexity
 for what is essentially a corner case.

This requires pulling bmake into FreeBSD proper in order for things to =
function the last I checked as bsd.prog.mk depends upon bmake directives =

This is already happening ;-)

Ideally however, I would like doing this compared to running a custom =
build infrastructure, but (as you probably know) this requires =
rototilling the current FreeBSD build system to a large degree =

Actually building FreeBSD-current using bmake requires only modest changes.

 We have an atf.test.mk which leverages that.
 It also handles automatically running the tests if building for the
 host. This allows us to fail the build if any unit-tests do not pass.

Hmm=85 that wasn't really the end-goal of bsd.test.mk based on my =
reading,

I know, but it is a very useful thing to be able to do.
You can add knobs to controll such things of course.

bsd.test.mk in NetBSD isn't completely test-agnostic, but it isn't =
entirely ATF centric either. I'm trying not to stray too far from NetBSD =
in this area because there really isn't any reason to do so. FWIW I'd =

Sure - we imported ATF directly from NetBSD to minimize the churn
and not had to change much at all.
bsd.test.mk was a point worth diverging on though.

like to see other test frameworks (lua, unittest//nose, etc) just snap =
into bsd.test.mk as easily as possible as it would make some groups =

Yes, but making one test.mk handle potentially lots of frameworks
will get rather ugly quite quickly.

Better to add per-framework .mk files, and perhaps have them include a
bsd.test.mk which only handles high level logic rather than the details
of the frameworks.

That's laregly why we didn't use bsd.test.mk

--sjg
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-09-24 Thread Poul-Henning Kamp
In message cagh67wqty4krgwspa5jaht-4hqd4veykley-r3c6k9f5xaf...@mail.gmail.com
, Garrett Cooper writes:

No difference proven at 95.0% confidence

This is the important bit of information...

Thanks for the tip :)!

You're welcome :-)

-- 
Poul-Henning Kamp   | UNIX since Zilog Zeus 3.20
p...@freebsd.org | TCP/IP since RFC 956
FreeBSD committer   | BSD since 4.3-tahoe
Never attribute to malice what can adequately be explained by incompetence.
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-09-24 Thread Garrett Cooper
On Sep 24, 2012, at 1:21 AM, Poul-Henning Kamp p...@phk.freebsd.dk wrote:

 In message 
 cagh67wqty4krgwspa5jaht-4hqd4veykley-r3c6k9f5xaf...@mail.gmail.com
 , Garrett Cooper writes:
 
 No difference proven at 95.0% confidence
 
 This is the important bit of information...

Yeah.. It's been a few moons since I've taken statistics.

Some other pieces of data:

This was done with...
- testing was done multiuser on a lightly loaded system.
- build was done with -j24 on a my workstation with 4 SMT enabled cores.
- the scratch disk is ata enabled, whereas the sources were housed on an mfi 
backed disk.
Thanks!
-Garrett
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-09-23 Thread Garrett Cooper
On Sat, Sep 22, 2012 at 11:30 PM, Poul-Henning Kamp p...@phk.freebsd.dk wrote:
 In message 
 cagh67wsux7zjrtb5gehqwhkqykog-atwkinw5csjlrzftzk...@mail.gmail.com
 , Garrett Cooper writes:

Without the change:

$ python calc_runtime.py bw.*_without.log | ministat -w 72
[...]
$ python calc_runtime.py bw.*.log | ministat -w 72

 Try:
python calc_runtime.py bw.*_without.log  _without
python calc_runtime.py bw.*.log  _with
ministat -w 72 _with _without

 :-)

 (PS: your two chosen glob patterns are not exclusive, but I suppose
 that was for illustration only)

Forgot to mention that I ran the with results before the
without results, so technically the files didn't exist yet and hence
the results are separate. But, just for absolute clarity for archiving
sake (and provided your suggestion on how to overlay both graphs),
here are the results:

$ for i in bw.*[0-9].log; do mv $i `echo $i | sed -e
's/\.log/_with\.log/g'`; done
$ python calc_runtime.py bw.*_with.log  _with
$ python calc_runtime.py bw.*_without.log  _without
$ ministat -w 72 _with _without
x _with
+ _without
++
| +x |
|++  +   xx +   x   xx+ ++ x x  +xx +|
| ||A_MA___M___|__|  |
++
N   Min   MaxMedian   AvgStddev
x  10   940  1002   988 972.3 24.476973
+  10   919  1010   972 958.9 33.994934
No difference proven at 95.0% confidence

Thanks for the tip :)!
-Garrett
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: [CFT/RFC]: refactor bsd.prog.mk to understand multiple programs instead of a singular program

2012-09-22 Thread Garrett Cooper
On Sun, Sep 2, 2012 at 11:01 PM, Garrett Cooper yaneg...@gmail.com wrote:
 Hello,
 I've been a bit busy working on porting over ATF from NetBSD, and
 one of the pieces that's currently not available in FreeBSD that's
 available in NetBSD is the ability to understand and compile multiple
 programs. In order to do this I had to refactor bsd.prog.mk (a lot).
 The attached patch is the end result so far, and I was wondering if
 anyone could please review it and/or test it (outside of me doing so).
 I wrote over 40 tests, but it's not exercising everything, and I would
 like for someone to please review/test this out who has an interest in
 NLS support (ala bsd.nls.mk) in particular. AFAICT this is the only
 gap that I couldn't resolve right away (there isn't a ton of recent
 documentation on how to use bsd.nls.mk).
 I'll run a micro benchmark and buildworld a few times (in
 progress) with and without the change to measure the performance
 effect.
 Any assistance would be much appreciated.

I've attached an updated version of the patch (run through
buildworld successfully multiple times; make universe successfully;
going to submit for an -exp run). I needed to modify bsd.crunchgen.mk
to grok OBJS.${PROG}, but apart from that backwards compatibility has
been maintained -- sans-INSTALLFLAGS_EDIT (does anyone still use that
undocumented functionality?).
Performance wise, it's slightly slower on my W3520 with the
change, but not by much (~20 seconds).
As always, questions and comments are welcome, and if someone has
a chance, please review the proposed patch.
Thanks!
-Garrett

Without the change:

$ python calc_runtime.py bw.*_without.log | ministat -w 72
x stdin
++
| x  |
|xx  x  x x xx  x   x|
| |_A_M| |
++
N   Min   MaxMedian   AvgStddev
x  10   919  1010   972 958.9 33.994934

With the change:

$ python calc_runtime.py bw.*.log | ministat -w 72
x stdin
++
|   x|
|xx   xx  x x  x   xx|
| |___A_M_|  |
++
N   Min   MaxMedian   AvgStddev
x  10   940  1002   988 972.3 24.476973

make universe results:

# make universe MAKE_JUST_WORLDS=y
--
 make universe started on Tue Sep 18 09:30:04 PDT 2012
--
 amd64 started on Tue Sep 18 09:30:04 PDT 2012
 amd64.amd64 buildworld started on Tue Sep 18 09:30:04 PDT 2012
 amd64.amd64 buildworld completed on Tue Sep 18 11:20:19 PDT 2012
 amd64 completed on Tue Sep 18 11:20:19 PDT 2012
 arm started on Tue Sep 18 11:20:19 PDT 2012
 arm.arm buildworld started on Tue Sep 18 11:20:19 PDT 2012
 arm.arm buildworld completed on Tue Sep 18 12:25:24 PDT 2012
 arm.armeb buildworld started on Tue Sep 18 12:25:24 PDT 2012
 arm.armeb buildworld completed on Tue Sep 18 13:30:25 PDT 2012
 arm.armv6 buildworld started on Tue Sep 18 13:30:25 PDT 2012
 arm.armv6 buildworld completed on Tue Sep 18 14:35:14 PDT 2012
 arm.armv6eb buildworld started on Tue Sep 18 14:35:14 PDT 2012
 arm.armv6eb buildworld completed on Tue Sep 18 15:40:05 PDT 2012
 arm completed on Tue Sep 18 15:40:05 PDT 2012
 i386 started on Tue Sep 18 15:40:05 PDT 2012
 i386.i386 buildworld started on Tue Sep 18 15:40:05 PDT 2012
 i386.i386 buildworld completed on Tue Sep 18 16:56:06 PDT 2012
 i386 completed on Tue Sep 18 16:56:06 PDT 2012
 ia64 started on Tue Sep 18 16:56:06 PDT 2012
 ia64.ia64 buildworld started on Tue Sep 18 16:56:06 PDT 2012
 ia64.ia64 buildworld completed on Tue Sep 18 18:27:49 PDT 2012
 ia64 completed on Tue Sep 18 18:27:49 PDT 2012
 mips started on Tue Sep 18 18:27:49 PDT 2012
 mips.mipsel buildworld started on Tue Sep 18 18:27:49 PDT 2012
 mips.mipsel buildworld completed on Tue Sep 18 19:34:50 PDT 2012
 mips.mips buildworld started on Tue Sep 18 19:34:50 PDT 2012
 mips.mips buildworld completed on Tue Sep 18 20:41:49 PDT 2012
 mips.mips64el buildworld started on Tue Sep 18 20:41:49 PDT 2012
 mips.mips64el buildworld completed on Tue Sep 18 21:49:21 PDT 2012
 mips.mips64 buildworld started on Tue Sep 18 21:49:21 PDT 2012
 mips.mips64 buildworld completed on Tue Sep 18 22:57:13 PDT 2012
 mips.mipsn32 buildworld started on Tue Sep 18 22:57:13 PDT 2012
 mips.mipsn32 buildworld