[PATCHv2 1-14/14] Re: Disabling Python Modules
Ian Stakenvicius
axs at gentoo.org
Mon Jan 30 03:52:07 UTC 2017
> On Jan 29, 2017, at 10:08 PM, Andrew Bartlett <abartlet at samba.org> wrote:
>
>> On Sun, 2017-01-29 at 14:28 -0500, Ian Stakenvicius wrote:
>>> On 29/01/17 02:14 PM, Andrew Bartlett wrote:
>>>
>>> I can't get this to build when I set --disable-python.
>>>
>>> I get "ADDC requires python" even if I set --without-ad-dc, sorry.
>>> Additionally the error string needs to be modified to be "
>>> --disable-
>>> python requires --without-ad-dc".
>>>
>>> The attached autobuild patch will keep this working, once we sort
>>> out
>>> what is going on here.
>>
>> Yes, this is a mistake on my part -- I was using
>> conf.env.without_ad_dc to obtain the configured value, but that is
>> never set from Options.options and so is always false. I've adjusted
>> that to use Options.options.without_ad_dc directly in the same manner
>> that it is used later to set the #define.
>>
>> I've also adjusted the error message, and incorporated the pep8 fixes
>> from the previous email.
>
> I have two issues:
>
> With:
>
> ./configure.developer --picky-developer --
> prefix=/tmp/b9407/prefix/samba-nopython --with-profiling-data
> --without-ad-dc --disable-python && make -j
>
> I now get:
>
> In file included from ../lib/replace/replace.h:32:0,
> from ../dynconfig/dynconfig.c:41:
> default/include/config.h:431:0: error: "PYTHONDIR" redefined [-Werror]
> #define PYTHONDIR "/tmp/b9407/prefix/samba-
> nopython/lib/python2.7/site-packages"
>
> <command-line>:0:0: note: this is the location of the previous
> definition
> In file included from ../lib/replace/replace.h:32:0,
> from ../dynconfig/dynconfig.c:41:
> default/include/config.h:432:0: error: "PYTHONARCHDIR" redefined [-
> Werror]
> #define PYTHONARCHDIR "/tmp/b9407/prefix/samba-
> nopython/lib64/python2.7/site-packages"
>
> <command-line>:0:0: note: this is the location of the previous
> definition
> cc1: all warnings being treated as errors
> Waf: Leaving directory `/data/samba/git/samba-push/bin'
> Build failed: -> task failed (err #1):
> {task: cc dynconfig.c -> dynconfig_1.o}
> Makefile:8: recipe for target 'all' failed
>
This is the type of thing I saw when there is code depending on modules that are disabled. I'll see what I can do about tracing this and any others to the module(s) that need disabling.
> The second is that
>
> With:
> ./configure.developer --picky-developer --
> prefix=/tmp/b9407/prefix/samba-nopython --with-profiling-data
> --without-ad-dc --extra-python=/usr/bin/python3 --disable-python &&
> make -j
>
> I get:
>
> ERROR: Target 'pytalloc-util' in directory /data/samba/git/samba-
> push/lib/talloc re-defined as DISABLED - was DISABLED
>
> Now this is SILLY, because I'm specifying '--extra-
> python=/usr/bin/python3 --disable-python' but it is what the autobuild
> patch I gave does, due to building up options in the list. The issue
> here is the gen_python_environments() loops.
>
> For this we do need a sensible error about the conflict (and then patch
> the autobuild patch).
What are your thoughts about, in this particular case, just warning on config about --extra-python doing nothing when --disable-python is set, and forcing the extra-python list to the empty set? If --extra-python turns into some sort of autodetected or pre-defined list in waf then it'd be beneficial down the road.
>
> Finally, please do run:
>
> ./script/autobuild.py samba-nopython --testbase=/tmp samba-o3
>
> This will catch a few more of these kind of errors and save some round-
> trips. All patches have to pass that regardless. You might even be
> able to get github to run that for you in travis ci if you make pull
> requests or register with travis ci.
>
Thanks, travis via PRs is a great idea, I'll set that up.
More information about the samba-technical
mailing list