[Buildbot-devel] Re: Buildbot-devel digest, Vol 1 #33 - 3 msgs

Ed Hartnett ed at unidata.ucar.edu
Thu Jan 22 14:48:35 UTC 2004

buildbot-devel-request at lists.sourceforge.net writes:
> 2 - When I run this bot from the webpage, the configure step doesn't
> work:
> command './configure' in dir '.'
> Upon execvpe ./configure ['./configure'] in environment id 141045236:
> Traceback (most recent call last):
>   File "/usr/lib/python2.2/site-packages/twisted/internet/process.py", line 502, in __init__
>     os.execvpe(command, args, environment)
>   File "/usr/src/build/317580-i386/install/usr/lib/python2.2/os.py", line 308, in execvpe
>     _execvpe(file, args, env)
>   File "/usr/src/build/317580-i386/install/usr/lib/python2.2/os.py", line 325, in _execvpe
>     apply(func, (file,) + argrest)
> OSError: [Errno 2] No such file or directory
> program finished with exit code 1
> What the heck?
> Any suggestions would be helpful. Thanks!
> Ed

Well I got it working, but I had to mess around with workdir to do it,
and I don't know why.

What is workdir anyway? Who sets it, ultimately?

Is it the top level under which the cvs calls get the module? In whcih
case, workdir + "/" + cvsmodule is where the ./configure must be run,
not workdir...

Here's what I did, which now builds a tagged release of my package:


from buildbot.process.base import ConfigurableBuildFactory, CVS, \
     Configure, Compile, Test, ShellCommand

class RmCommand(ShellCommand):
    """I just need to override the name member."""
    name = "rm"
class TaggedBuildFactory(ConfigurableBuildFactory):
    def __init__(self, cvsroot, cvsmodule, tag, configure="configure", configureEnv={}, compile="make all",
                 test="make check", workdir="."):
        steps = []
        steps.append((RmCommand, {'workdir': workdir,
                                     'command': "rm -rf "+cvsmodule}))
        steps.append((ShellCommand, {'workdir': workdir,
                                     'command': "cvs -d "+cvsroot+" co -r "+tag+" "+cvsmodule}))
        new_workdir = workdir + "/" + cvsmodule
        steps.append((Configure, {'workdir': new_workdir,
                                  'command': configure,
                                  'env': configureEnv}))
        steps.append((Compile, {'workdir': new_workdir,
                                'command': compile}))
        steps.append((Test, {'workdir': new_workdir,
                             'command': test}))
        self.steps = steps

In master.cfg:

f_all = TaggedBuildFactory(repository, cvsmodule, "netcdf-3_5_1-beta13",
                          configureEnv={'FC': 'g77', 'CXX':'g++', 'CPPFLAGS':'-Df2cFortran', 'F90':''},
                          test="make test", workdir="/home/ed/BuildBot/rodney_all")

More information about the devel mailing list