Sergey Matveychuk said the following on 7/12/06 3:24 AM:
Atanas wrote:
Sergey Matveychuk said the following on 7/11/2006 10:08 PM:
Atanas wrote:
Recent portupgrade versions no longer obey the -M command line switch,
i.e. any optional arguments to be prepended to each make command.
How to reproduce:
# portinstall -M "APACHE_HARD_SERVER_LIMIT=1024" www/apache13
Everything work file. Use -m for getting what you want.
For www/apache13 the -m switch could give the same result as -M would,
but I'm not sure whether it's not just a coincidence. The -m switch was
supposed to serve a different purpose:
-m
--make-args Specify arguments to append to each make(1) com-
mand line.
-M
--make-env Specify arguments to prepend to each make(1) com-
mand line.
I tried testing another port where I used both:
# portinstall -M 'WITH_SYSLOG_FACILITY=local5' -m '-DWITHOUT_IPV6'
mail/courier-imap
With portupgrade-2.0.1_1,1 (the stock 6.1-RELEASE package) it worked.
With portupgrade-2.1.3.2,2 it failed (ignoring the -M part like for
www/apache13 before).
Then I joined both in one -m switch:
# portinstall -m 'WITH_SYSLOG_FACILITY=local5 -DWITHOUT_IPV6'
mail/courier-imap
and the latest portupgrade-2.1.3.2,2 did it just fine.
So, like you suggested, the -m switch seems to cover the functionality
that -M used to provide. I'm not sure however whether this "prepend to
append" conversion would work for all ports. But for these that I use it
appears to work, so I have no problem and will update my scripts to use
-m only.
The no longer working (obsolete?) -M switch would need to be removed
from the man page though.
Both -m and -M works fine but do different things. -m pass its argument
as make file argument(s) and -M pass its argument as environment
variable(s). You can't set make variable with environment variable. They
are different!
Yes, I know that. That's why I quoted the man page in my previous post
(see above).
-M has never worked as you expected.
I expected -M to work exactly as documented, like it has been doing so
for years.
You can test it with a command:
%cd /usr/ports/www/apache13
%env APACHE_HARD_SERVER_LIMIT=1024 make
Sure, the port build works:
% cd /usr/ports/www/apache13
% env APACHE_HARD_SERVER_LIMIT=1024 make
===> src/os/unixcc -c -I../../os/unix -I../../include
-I/usr/local/include -funsigned-char -O2 -fno-strict-aliasing -pipe
-DDOCUMENT_LOCATION=\"/usr/local/www/data\"
-DDEFAULT_PATH=\"/bin:/usr/bin:/usr/local/bin\" -DHARD_SERVER_LIMIT=1024
`../../apaci` os.c
while portupgrade -M fails:
% portinstall -M "APACHE_HARD_SERVER_LIMIT=1024" www/apache13
===> src/os/unixcc -c -I../../os/unix -I../../include
-I/usr/local/include -funsigned-char -O2 -fno-strict-aliasing -pipe
-DDOCUMENT_LOCATION=\"/usr/local/www/data\"
-DDEFAULT_PATH=\"/bin:/usr/bin:/usr/local/bin\" -DHARD_SERVER_LIMIT=512
`../../apaci` os.c
against of
% make APACHE_HARD_SERVER_LIMIT=1024
This doesn't make much sense to me. Perhaps you meant:
% make -DAPACHE_HARD_SERVER_LIMIT=1024
But I wouldn't expect this to succeed either:
===> src/os/unixcc -c -I../../os/unix -I../../include
-I/usr/local/include -funsigned-char -O2 -fno-strict-aliasing -pipe
-DDOCUMENT_LOCATION=\"/usr/local/www/data\"
-DDEFAULT_PATH=\"/bin:/usr/bin:/usr/local/bin\" -DHARD_SERVER_LIMIT=512
`../../apaci` os.c
Your suggestion however (to replace -M with -m) surprisingly worked:
cc -c -I../../os/unix -I../../include -I/usr/local/include
-funsigned-char -O2 -fno-strict-aliasing -pipe
-DDOCUMENT_LOCATION=\"/usr/local/www/data\"
-DDEFAULT_PATH=\"/bin:/usr/bin:/usr/local/bin\" -DHARD_SERVER_LIMIT=1024
`../../apaci` os.c
And this is what's confusing.
I think you confuse the two variables types.
No, I think I know what these are for.
But trying your suggestion to replace -M with -m and finding it to work
(for some ports?), just threw some more fog into the case.
Let's say it clear again - I have found that all recent versions of
portupgrade (2.1.0+) fail to obey the -M switch and ignore any optional
port parameters (i.e. arguments to prepend to each make command line)
supplied there.
Please, don't get me wrong. I'm not asking for help or for a workaround.
I'm actually trying to help identifying a problem or regression.
If this is not a bug, but a feature change, please have it documented.
What the portupgrade(1) man page says about the -M switch is incorrect,
as it no longer prepends any arguments specified to each make(1) command
line.
Regards,
Atanas
_______________________________________________
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"