portupgrade bug: -M no longer works after v2.1.0
Sergey Matveychuk
sem at FreeBSD.org
Wed Jul 12 10:24:51 UTC 2006
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!
-M has never worked as you expected. You can test it with a command:
%cd /usr/ports/www/apache13
%env APACHE_HARD_SERVER_LIMIT=1024 make
against of
% make APACHE_HARD_SERVER_LIMIT=1024
I think you confuse the two variables types.
--
Dixi.
Sem.
More information about the freebsd-stable
mailing list