On Mon, 2007-11-05 at 02:24 -0500, Todd Zullinger wrote:
Ralf Corsepius wrote:
> Hi,
>
> in the past, I used to set up %vendor in mock by adding
> ...
> config_opts['macros'] += '%vendor VENDOR'
> ...
> to customized mock *.cfgs.
>
>
> This stopped working with FC7's recent upgrade to mock-0.8.x:
>
> # mock --configdir=/foo/etc/mock -r fedora-7-i386-test init
> INFO: mock suid wrapper version 0.8.4
> ERROR: unsupported operand type(s) for +=: 'dict' and 'str'
> Traceback (most recent call last):
> File "/usr/libexec/mock.py", line 333, in <module>
> main(retParams)
> File "/usr/libexec/mock.py", line 249, in main
> execfile(cfg)
> File "/foo/etc/mock/fedora-7-i386-test.cfg", line 7, in <module>
> config_opts['macros'] += '%vendor VENDOR'
> TypeError: unsupported operand type(s) for +=: 'dict' and 'str'
>
> Any ideas?
I haven't tested this, but I just updated mock today and was looking
at the changes in the defaults.cfg file. The example given there is:
config_opts['macros']['Add_your_macro_name_here'] = "add macro value
here"
So I'd guess that you want to try something like this:
config_opts['macros']['vendor'] = "VENDOR"
Thanks, using
config_opts['macros']['%vendor'] = "VENDOR"
in *.cfgs seems to do it on fc7.
Problem: This change seems incompatible to older mocks and is breaking
sharing *.cfg's with them:
(On a machine using an older mock)
...
Traceback (most recent call last):
File "/usr/bin/mock", line 995, in ?
main()
File "/usr/bin/mock", line 951, in main
execfile(cfg)
File "/home/build/etc/mock//fedora-7-i386-test.cfg", line 7, in ?
config_opts['macros']['%vendor'] = 'VENDOR'
TypeError: object does not support item assignment
Ralf