Clone or download
Pull request Compare This branch is 55 commits ahead of SpamapS:master.
p-alik Merge pull request #193 from defect/gcc73
Turn new GCC 7 errors to warnings for sake of `g++-7` tests in Travis CI
Latest commit 3c35e0d Nov 11, 2018
Failed to load latest commit information.
.bonnyci Refresh apt index before installing packages May 18, 2017
benchmark Fix typos found by Debian lintian Nov 16, 2016
bin Change CyaSSL to wolfSSL Mar 31, 2017
docs Change docs license to CC-BY-SA 4.0 Mar 25, 2017
examples Fix typos found by Debian lintian Nov 16, 2016
gearmand fixed code formatting Sep 22, 2018
libgearman-1.0 Fix for OSX 10 Nov 3, 2013
libgearman-server Merge pull request #193 from defect/gcc73 Nov 11, 2018
libgearman Add guards to only use pragmas on GCC 7+ Nov 8, 2018
libgearmancore Fix building on MacOS Dec 11, 2017
libhashkit-1.0 Adding support for deriving the unique value based on the data that i… Dec 13, 2012
libhashkit Add guards to only use pragmas on GCC 7+ Nov 8, 2018
libhostile Remove AX_DLOPEN and fix XML output for Junit. Feb 4, 2014
libtest Merge pull request #193 from defect/gcc73 Nov 11, 2018
m4 debug build requires -fsanitize=undefined to link ubsan automatically Nov 5, 2018
man Fix for NOTPARALLEL issue on building docs. Feb 16, 2014
rpm Fix dist-rpm building to work with new versioning system also fixes I… Sep 26, 2018
scripts simplify CC and CXX setting as proposed in travis ci documentation Nov 6, 2018
support Add to rpm spec file Sep 27, 2018
tests Add guards to only use pragmas on GCC 7+ Nov 8, 2018
util Add guards to only use pragmas on GCC 7+ Nov 8, 2018
.bootstrap Add bootstrap configure file. Oct 19, 2012
.gitignore Ignore tarballs built as a result of 'make dist' Nov 20, 2016
.quickly Merge in updates since .20, this includes new build configs. Apr 28, 2011
.travis.yml Test GCC 7 with Travis Nov 8, 2018
AUTHORS Update docs, credit John Ewart for epoch work (wahoo!), and a few oth… Jun 7, 2011
COPYING Fix for bad copyright headers. Mar 8, 2011
ChangeLog Generate ChangeLog in make dist Sep 25, 2016
GNUmakefile Update for release. Feb 9, 2014
HACKING Change bzr to git in HACKING/README Jun 30, 2016 Add to EXTRA_DIST so it will be in tarball Sep 27, 2018
NEWS Import from HG Sep 15, 2008
PROTOCOL fixed a typo Mar 20, 2017 Another tweak to Sep 30, 2018
THANKS Fix for issue where PHP was not being handed memory it thought that i… Jun 20, 2011 openSUSE tumbleweed has name opensuse-tumbleweed. Allow … Sep 25, 2018 inform the use about demand of --threads 0 when --enable-debug is spe… Nov 6, 2018
version.m4 Use git describe to determine version Sep 24, 2016


Build Status

The latest version of gearmand source code and versions 1.1.13 and later can be found at GitHub Repository. Older versions released before 1.1.13 can be found at Launchpad Repository.

You can grab the latest release distribution of Gearman from

What Is Gearman?

Gearman provides a generic application framework to farm out work to other machines or processes that are better suited to do the work. It allows you to do work in parallel, to load balance processing, and to call functions between languages. Gearman is the nervous system for how distributed processing communicates.

If you downloaded this package as a tar.gz distribution you'll want to read Getting Started section below or visit the more detailed web page Getting Started

If you are interested in developing or submitting patches to the project, read the Contributing section below and check out the HACKING file for Coding Style and COPYING for details on licensing.

Getting Started

If you want to work on the latest code, please read the file HACKING.

To build a release version from a tarball (.tar.gz or .tgz), you can follow the normal:

Change into the directory where you saved the tarball and run:

tar xzf gearmand-X.Y.tar.gz
cd gearmand-X.Y

Then run the usual autoconfigure style build (you may need to use sudo to install):

make install

You can also run make test before installing to make sure everything checks out ok. You can also streamline the process of building and testing by running:

./configure && make && make test
make install

Once you have it installed, you can start the Gearman job server with:

gearmand -v

This will start it while printing some verbose messages. To try running a job through it, look in the examples/ directory of this source and run:


Once that is running, you can run your first job with:

./reverse_client "Hello, Gearman!"

If all goes well, the reverse_worker application should have output:

Job=H:lap:1 Workload=Hello, Gearman! Result=!namraeG ,olleH

While the reverse_client returned:

Result=!namraeG ,olleH

There are a lot more details about gearmand at Getting Started.

If you want to start writing your own client and workers, be sure to check out the Developer API documentation.

There are also many other Useful Resources to help you put gearmand to work for you!



The current versions of geamand are maintained on our GitHub Repo for gearmand.

If you are not familiar with git, you can find more info at Getting Started with Git.

Please follow these instructions to clone, create a branch, and generate a pull request on that branch. More details on using GitHub can be found at GitHub Help.

  1. Clone the GitHub repository to your local file system:

     git clone

    If you do not have access to create branches in the gearmand GitHub repository, you will probably want to fork the repository and clone your fork instead. Refer to Contributing to Open Source on GitHub for details.

  2. Next, think of a clear, descriptive branch name and then create a new branch and change to it:

     cd gearmand
     git checkout -b DESCRIPTIVE_BRANCH_NAME
  3. Once the tree is branched you will need to generate the "configure" script for autoconfigure.

     ./ -a
  4. Finally, you are ready to run tests, make changes to the code, commit and push them to GitHub, and generate a pull request on your branch so we can consider your changes.

You can learn more about how to Create a Pull Request and Create a Pull Request from a Fork.

But Wait! There's More!

Once you have made your changes there are two additional make targets to build release ready distributions:

To generate a tarball distribution of your code:

make dist

Or to generate an RPM distribution use:

make rpm

Thanks and keep hacking!

Seattle, WA.