Kevin Turner | 9 Feb 22:20 2006

"couldn't handle HUP"

This "darcs pull" did not work quite right after printing a message
about "Couldn't handle HUP."  Any ideas about why it might have received
a HUP signal?  It didn't take anywhere near 1200 seconds.  

starting darcs operation 
rm -rf /home/buildslave/reposlave/php5.1/build
 in dir /home/buildslave/reposlave/php5.1 (timeout 1200 secs)
 argv: ['rm', '-rf', '/home/buildslave/reposlave/php5.1/build']
 environment: {'LANG': 'en_US', 'TERM': 'xterm', 'SHELL': '/bin/sh', '_': '/usr/bin/make',
'LANGUAGE': 'en_US:en_GB:en', 'SHLVL': '1', 'SSH_TTY': '/dev/pts/1', 'OLDPWD':
'/home/buildslave/reposlave/info', 'SSH_AUTH_SOCK': '/tmp/ssh-nyDoX12340/agent.12340',
'PWD': '/home/buildslave/reposlave', 'PATH':
'/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games', 'MAKELEVEL': '1', 'SSH_CLIENT':
'::ffff:10.0.0.8 47089 22', 'LOGNAME': 'buildslave', 'USER': 'buildslave', 'HOME':
'/home/buildslave', 'MAIL': '/var/mail/buildslave', 'LS_COLORS':
'no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.ogg=01;35:*.mp3=01;35:*.wav=01;35:',
'MFLAGS': '', 'MAKEFLAGS': '', 'SSH_CONNECTION': '::ffff:10.0.0.8 47089 ::ffff:10.0.0.48 22'}
darcs pull --all --verbose
 in dir /home/buildslave/reposlave/php5.1/source (timeout 1200 secs)
 argv: ['darcs', 'pull', '--all', '--verbose']
 environment: {'LANG': 'en_US', 'TERM': 'xterm', 'SHELL': '/bin/sh', '_': '/usr/bin/make',
'LANGUAGE': 'en_US:en_GB:en', 'SHLVL': '1', 'SSH_TTY': '/dev/pts/1', 'OLDPWD':
'/home/buildslave/reposlave/info', 'SSH_AUTH_SOCK': '/tmp/ssh-nyDoX12340/agent.12340',
'PWD': '/home/buildslave/reposlave', 'PATH':
'/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games', 'MAKELEVEL': '1', 'SSH_CLIENT':
'::ffff:10.0.0.8 47089 22', 'LOGNAME': 'buildslave', 'USER': 'buildslave', 'HOME':
'/home/buildslave', 'MAIL': '/var/mail/buildslave', 'LS_COLORS':
'no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.ogg=01;35:*.mp3=01;35:*.wav=01;35:',
'MFLAGS': '', 'MAKEFLAGS': '', 'SSH_CONNECTION': '::ffff:10.0.0.8 47089 ::ffff:10.0.0.48 22'}
Pulling from "http://repos.janrain.com/projects/phpstack/testing/openid"...
(Continue reading)

Javier Somoza | 10 Feb 13:30 2006
Picon

exceptions.AttributeError: 'str' object has no attribute 'append'


    Anyone got this error?
    Im using CVS version.
Stefan Seefeld | 10 Feb 20:47 2006
Picon

Re: exceptions.AttributeError: 'str' object has no attribute 'append'

Dobes Vandermeer wrote:
> Maybe if you include a stacktrace, or some more information.  Chances
> are, it is an error in your master.cfg but who knows?
> 
> On 2/10/06, Javier Somoza <jsomoza@...> wrote:
> 
>>     Anyone got this error?
>>     Im using CVS version.

...sounds like a missing pair of brackets somewhere. FWIW.

		Stefan

-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642
Dobes Vandermeer | 10 Feb 20:38 2006
Picon

Re: exceptions.AttributeError: 'str' object has no attribute 'append'

Maybe if you include a stacktrace, or some more information.  Chances
are, it is an error in your master.cfg but who knows?

On 2/10/06, Javier Somoza <jsomoza@...> wrote:
>
>      Anyone got this error?
>      Im using CVS version.

-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid3432&bid#0486&dat1642
Javier Somoza | 13 Feb 09:50 2006
Picon

Re: exceptions.AttributeError: 'str' object has no attribute 'append'


            You were right. Thx. :)

...sounds like a missing pair of brackets somewhere. FWIW. Stefan

Javier Somoza
Oficina de Dirección Estratégica
mailto:jsomoza-9iSeNF9qq7dxlrVtA+zy5w@public.gmane.org

Panda Software
Buenos Aires, 12
48001 BILBAO - ESPAÑA
Teléfono: 902 24 365 4
Fax:  94 424 46 97
http://www.pandasoftware.es
Panda Software, una de las principales compañías desarrolladoras de soluciones de protección contra virus e intrusos, presenta su nueva familia de soluciones. Todos los usuarios de ordenadores, desde las redes más grandes a los domésticos, disponen ahora de nuevos productos con excelentes tecnologías de seguridad. Más información en: http://www.pandasoftware.es/productos

¡Protéjase ahora contra virus e intrusos! Pruebe gratis nuestros productos en http://www.pandasoftware.es/descargas/








Javier Somoza | 13 Feb 11:20 2006
Picon

user who committed dependent build.


            Is it possible?



Javier Somoza
Oficina de Dirección Estratégica
mailto:jsomoza-9iSeNF9qq7dxlrVtA+zy5w@public.gmane.org

Panda Software
Buenos Aires, 12
48001 BILBAO - ESPAÑA
Teléfono: 902 24 365 4
Fax:  94 424 46 97
http://www.pandasoftware.es
Panda Software, una de las principales compañías desarrolladoras de soluciones de protección contra virus e intrusos, presenta su nueva familia de soluciones. Todos los usuarios de ordenadores, desde las redes más grandes a los domésticos, disponen ahora de nuevos productos con excelentes tecnologías de seguridad. Más información en: http://www.pandasoftware.es/productos

¡Protéjase ahora contra virus e intrusos! Pruebe gratis nuestros productos en http://www.pandasoftware.es/descargas/








Javier Somoza | 16 Feb 13:21 2006
Picon

Problem: Can't i do this??



        Hi all


        I've a CVS with some modules. F.e:

            CVS/module-common/
            CVS/module1
            CVS/module2

        To compile module1 a previous compilation of module-common is needed.
        To compile module2 a previous compilation of module-common is needed.

        I want to show them each in a column. Is it possible to:
        - Build module{common/1/2} when only when some file of module{common/1/2} is changed?
        - When building module{1/2} compile the module-common only if it is neccesary (only when there are changes on module-common)?
        - Logically, to do this, i must work in the same builddir and use the subdirs:
                if builddir='builddirpath' -> builddirpath/module-common builddirpath/module1 builddirpath/module2
       
        Thx.

       



Javier Somoza
Oficina de Dirección Estratégica
mailto:jsomoza-9iSeNF9qq7dxlrVtA+zy5w@public.gmane.org

Panda Software
Buenos Aires, 12
48001 BILBAO - ESPAÑA
Teléfono: 902 24 365 4
Fax:  94 424 46 97
http://www.pandasoftware.es
Panda Software, una de las principales compañías desarrolladoras de soluciones de protección contra virus e intrusos, presenta su nueva familia de soluciones. Todos los usuarios de ordenadores, desde las redes más grandes a los domésticos, disponen ahora de nuevos productos con excelentes tecnologías de seguridad. Más información en: http://www.pandasoftware.es/productos

¡Protéjase ahora contra virus e intrusos! Pruebe gratis nuestros productos en http://www.pandasoftware.es/descargas/








Brian Warner | 17 Feb 09:43 2006

buildbot-0.7.2 released

Hi all, I've finally pushed 0.7.2 out the door. This one doesn't add a lot of
new code, but I figured it was better to get the couple of small things
released than to sit on it for another few weeks while I work on larger
features. "Release early, release often" as the saying goes.

The code can be retrieved from the sf.net download site:

 http://buildbot.sourceforge.net/

As usual, the release is signed with my GPG key (0x1514a7bd), and the tarball
checksums are as follows:

 md5: fda77c1d6d781a49b2ce3a2f2c180c64  buildbot-0.7.2.tar.gz
sha1: 7c62034f762746b73a32f15ca7d47a8711a9e02f  buildbot-0.7.2.tar.gz

The main bug that was fixed was the unfortunate one in which all Schedulers
stopped working if you used the "reload config file" control (either through
the debug panel or by sending SIGHUP to the buildmaster process). The two
features that were added are the ability to restrict listening ports to
specific interfaces (such as the 127.0.0.1 'loopback' interface), and the
ability to set the umask on the buildslave.

A couple of other minor changes were made. See the attached NEWS file for
details.

Have a well-laundered day,
 -Brian

* Release 0.7.2 (17 Feb 2006)

** new features

*** all TCP port numbers in config file now accept a strports string

Sometimes it is useful to restrict certain TCP ports that the buildmaster
listens on to use specific network interfaces. In particular, if the
buildmaster and SVN repository live on the same machine, you may want to
restrict the PBChangeSource to only listen on the loopback interface,
insuring that no external entities can inject Changes into the buildbot.
Likewise, if you are using something like Apache's reverse-proxy feature to
provide access to the buildmaster's HTML status page, you might want to hide
the real Waterfall port by having it only bind to the loopback interface.

To accomplish this, use a string like "tcp:12345:interface=127.0.0.1" instead
of a number like 12345. These strings are called "strports specification
strings", and are documented in twisted's twisted.application.strports module
(you can probably type 'pydoc twisted.application.strports' to see this
documentation). Pretty much everywhere the buildbot takes a port number will
now accept a strports spec, and any bare numbers are translated into TCP port
numbers (listening on all network interfaces) for compatibility.

*** buildslave --umask control

Twisted's daemonization utility (/usr/bin/twistd) automatically sets the
umask to 077, which means that all files generated by both the buildmaster
and the buildslave will only be readable by the account under which the
respective daemon is running. This makes it unnecessarily difficult to share
build products (e.g. by symlinking ~/public_html/current_docs/ to a directory
within the slave's build directory where each build puts the results of a
"make docs" step).

The 'buildbot slave <PARAMS>' command now accepts a --umask argument, which
can be used to override the umask set by twistd. If you create the buildslave
with '--umask=022', then all build products will be world-readable, making it
easier for other processes (run under other accounts) to access them.

** bug fixes

The 0.7.1 release had a bug whereby reloading the config file could break all
configured Schedulers, causing them to raise an exception when new changes
arrived but not actually schedule a new build. This has been fixed.

Fixed a bug which caused the AnyBranchScheduler to explode when branch==None.
Thanks to Kevin Turner for the catch. I also think I fixed a bug whereby the
TryScheduler would explode when it was given a Change (which it is supposed
to simply ignore).

The Waterfall display now does more quoting of names (including Builder
names, BuildStep names, etc), so it is more likely that these names can
contain unusual characters like spaces, quotes, and slashes. There may still
be some problems with these kinds of names, however.. please report any bugs
to the mailing list.

-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642
Javier Somoza | 17 Feb 13:48 2006
Picon

Sending CVS change mail to developers


    Im using this (adding it to the master.cfg) to send a mail to the developers about a commit on the cvs.
    Surely this will not be the best way (i've just done it and havent got time to enhance it) but if someone finds it useful...


import sys, os, os.path, string, smtplib, MimeWriter, mimetypes, base64, tempfile, StringIO

sender = "cvs-change <at> buildbot"
changeRecipients = []
changeRecipients.append("developer1 <at> domain,")
changeRecipients.append("developer2 <at> domain,")
changeRecipients.append("developer3 <at> domain")

def addHtml(mime, infile):
    part = mime.nextpart()
    part.addheader("Content-Transfer-Encoding", "7bit")
    outfile = part.startbody("text/html", [("charset","us-ascii")])
    while 1:
        s = infile.read(BLK_SIZE)
        if not s: break
        outfile.write(s)

def createCVSMail(message):
    msgfile = open("/tmp/cvs-commit.eml","w")
    mime = MimeWriter.MimeWriter(msgfile)
    mime.addheader("To", string.join(changeRecipients))
    mime.addheader("From", sender)
    mime.addheader("Subject", "CVS change")
    mime.addheader("MIME-Version", "1.0")
    mime.startmultipartbody("mixed")
    f = StringIO.StringIO(message)
    addHtml(mime, f)
    f.close
    mime.lastpart()
    msgfile.flush()
    msgfile.close()

def manageChange (changes):
        server = smtplib.SMTP('192.168.1.4')
        createCVSMail(changes.asHTML())
        msg = open('/tmp/cvs-commit.eml', 'r').read()
        server.sendmail(sender, changeRecipients, msg)
        os.remove("/tmp/cvs-commit.eml")
        server.quit()

Mark Dillavou | 21 Feb 20:12 2006
Picon

Re: multiple subversion repositories

On Wed, 2006-01-11 at 08:30 -0600, Mark  Dillavou wrote:
> I am trying to setup a single buildmaster that has multiple subversion
> repositories (project1 and project2). 
<snip>

I got this working, so I thought I'd share with everyone how I did this
(by this, I mean using a single buildmaster for multiple subversion
repositories so I can have them depend on each other).  This isn't the
greatest solution, but it does work.

This first thing I had to do was modify the svn_buildbot.py script to
include the full path to the repository.  In the gotPersp function, I
changed the comments from:

commit comments here

to

/full/path/to/svn/repository commit comments here

Then I can split the comments line and get the repository.  Note that in
the log on buildbot's website, it shows the full path as part of the
comments!  This is not the best way to do this, and I probably should
have overriden the addChange method called in svn_buildbot.py to include
a repository attribute.

To do this I changed the following in the gotPersp function:
    def gotPersp(persp):
        print "who", repr(who)
        print "what", repr(changed)
        print "why", repr(message)
        print "new revision", repr(revision)
        # !mwd - include the repository in the comment
        message2 = "%s %s" % (repo, message)
        return persp.callRemote('addChange', {'who': who,
                                              'files': changed,
                                              'comments': message2,
                                              'revision': revision})

The next thing I had to do is override the scheduler to ignore changes
if they are from a different repository.  In my master.cfg, I created a
new RepositoryScheduler which inherits from Scheduler.  It takes an
extra parameter (repository path), and overrides the addChange method.
Here's the class in full (sorry for the formatting):

# my own scheduler class for branches
class RepositoryScheduler(Scheduler):
        def __init__(self, name, branch, treeStableTimer, builderNames,
                     repository, fileIsImportant=None):
                Scheduler.__init__(self, name, branch, treeStableTimer,
                                   builderNames, fileIsImportant)
                self.repository = repository

        def addChange(self, change):
                # check to make sure the repository matches!
                cs = change.comments.split(' ')
                if len(cs) > 0:
                        repo = cs[0]
                        log.msg('checking %s vs %s' % 
                                 (repo, self.repository))
                        if repo != self.repository:
                                log.msg("%s ignoring repository %s" %
                                        (self, repo))
                                return
                # call our parent since this on the correct repository
                Scheduler.addChange(self, change)

Then when creating the schedulers, you need to create them as
RepositorySchedulers instead of Schedulers:

c['schedulers'].append(RepositoryScheduler(name="project1", branch=None,
                                       treeStableTimer=0,
                                       builderNames=["builder1"],
                                       repository='/home/svn/project1'))
c['schedulers'].append(RepositoryScheduler(name="project2", branch=None,
                                       treeStableTimer=0,
                                       builderNames=["builder1"],
                                       repository='/home/svn/project2'))

The repository='/home/svn/project2' must match what svn_buildbot.py
inserts into the comments section.  You can then setup locks and do
everything as normal!

/Mark

-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642

Gmane