1.6. Automated Builds (Buildbot)

The Wireshark Buildbot automatically rebuilds Wireshark on every change of the source code repository and indicates problematic changes. This frees the developers from repeating (and annoying) work, so time can be spent on more interesting tasks.

1.6.1. Advantages

  • Recognizing (cross platform) build problems - early. Compilation problems can be narrowed down to a few commits, making a fix much easier.
  • "Health status" overview of the sources. A quick look at: http://buildbot.wireshark.org/trunk/ gives a good "feeling" if the sources are currently "well". On the other hand, if all is "red", an update of a personal source tree might better be done later …
  • "Up to date" binary packages are available. After a change was committed to the repository, a binary package / installer is usually available within a few hours at: http://www.wireshark.org/download/automated/. This can be quite helpful, e.g. a bug reporter can easily verify a bugfix by installing a recent build.
  • Automated regression tests. In particular, the fuzz tests often indicate "real life" problems that are otherwise hard to find.

1.6.2. What does the Buildbot do?

The Buildbot will do the following (to a different degree on the different platforms):

  • Check out from the source repository
  • Build
  • Create binary packages and installers
  • Create source packages and run distribution checks
  • Run regression tests

Each step is represented at the status page by a rectangle, green if it succeeded or red if it failed. Most steps provide a link to the corresponding console logfile, to get additional information.

The Buildbot runs on a platform collection that represents the different "platform specialties" quite well:

  • Windows XP x86 (Win32, little endian, Visual Studion 2010)
  • Windows 7 x86-64 (Win64, little endian, VS 2010)
  • Ubuntu x86-64 (Linux, little endian, gcc)
  • Solaris SPARC (Solaris, big endian, gcc)
  • Mac OS-X PPC (BSD, big endian, gcc)
  • Mac OS-X x86 (BSD, little endian, Clang)
  • Mac OS-X x86-64 (BSD, little endian, Clang)

Each platform is represented at the status page by a single column, the most recent entries are at the top.