How can I help?

Thanks for asking. Let's find a place for you!

Join the community

Mailinglists

The Bareos project offers two mailing lists: bareos-users and bareos-devel

Users

Subscribe here, if you are a user of Bareos and like to discuss the usage of Bareos with the Bareos community. You are always welcome to help other users on this mailing list.

 

Subscribe by sending an email to bareos-users+subscribe@googlegroups.com or just read it via http://news.gmane.org/gmane.comp.sysutils.backup.bareos.user

 

Also you can read it via Googlegroups at https://groups.google.com/forum/#!forum/bareos-users or by using a NNTP reader (such as Mozilla Thunderbird) and the following server: news.gmane.org

Devel

Subscribe here, if you are interessed in technical details of the Bareos code and plan to modify it. Most Bareos developers will read this mailing list.

 

Subscribe by sending an email to bareos-devel+subscribe@googlegroups.com or just read it via http://news.gmane.org/gmane.comp.sysutils.backup.bareos.devel

 

Also you can read it via Googlegroups at https://groups.google.com/forum/#!forum/bareos-devel or by using a NNTP reader (such as Mozilla Thunderbird) and the following server: news.gmane.org

 

Testing

You have found a bug in a current version of Bareos? You have a feature request?

Please follow the How to create a bug report.

 

 

Bareos Co-Funding

You would like to see a certain feature coming, are not able to develop it yourself, but want to contribute financially instead? Just take a look at the co-funding-page over at bareos.com and pick a project you would like to support.

 

 

If you're a developer, start here:

  • Subscribe to the developer mailing list so you can see what happening/being discussed
  • Pick something to work on and send patches to the mailing list
    • Start small until you have a broad familiarity with the codebase
    • Unsure what to work on? Take a look at our ideas for projects.

Version Control System

The Bareos project uses https://github.com/bareos/bareos for the parent version control system.

If you like to contribute code, just clone your own copy of the code and do your modifications.

Normal development (everything except bugfixes) will be done against the master branch.

git clone https://github.com/bareos/bareos.git
cd bareos

Everyday Workflow

Ready to start hacking on the code? Create yourself a branch to work in.

git branch mybugfix      # create the branch
git checkout mybugfix    # work on this branch

The branch will be created from your current location, i.e. if you currently have master checked out your branch will point to the same commit as was the HEAD of master at that time.

List your branches anytime and see which you're working on with:

git branch                # list all your branches

Do your modifications.

Creating Patch Files

If you like to get your patch integrated into the main development, create a ticket on https://bugs.bareos.org

Then create the patch file with your modifications. For a patch against the master branch, follow the following steps:

git checkout master      # switch to the master branch
git pull                 # fetch latest remote changes into master (should apply clean)
git checkout mybugfix    # return to your branch
git rebase master        # re-apply you changes on top of current state of master
git format-patch master  # generate a patch against master

Attach your patch to the ticket or send it to the bareos-devel@googlegroups.com mailing list and refer to the ticket. A Bareos core developer will then pick up the topic.

Howto Compile

For Linux distributions, Bareos is normaly distributed as DEB or RPM package. If you want to compile it in the same way, but manually, do the following steps:

# clone the Bareos master branch
git clone https://github.com/bareos/bareos.git
cd bareos

DAEMON_USER=bareos
DAEMON_GROUP=bareos
DIRECTOR_DAEMON_USER=${DAEMON_USER}
STORAGE_DAEMON_USER=${DAEMON_USER}
FILE_DAEMON_USER=root
STORAGE_DAEMON_GROUP=${DAEMON_GROUP}
WORKING_DIR=/var/lib/bareos

./configure   --prefix=/usr \
  --sbindir=/usr/sbin \
  --with-sbin-perm=755 \
  --sysconfdir=/etc/bareos \
  --with-archivedir=/var/lib/bareos/storage \
  --with-scriptdir=/usr/lib/bareos/scripts \
  --with-plugindir=/usr/lib/bareos/plugins \
  --with-working-dir=/var/lib/bareos \
  --with-pid-dir=/var/lib/bareos \
  --with-bsrdir=/var/lib/bareos \
  --with-logdir=/var/log/bareos \
  --with-subsys-dir=/var/lock \
  --enable-smartalloc \
  --disable-conio \
  --enable-readline \
  --enable-batch-insert \
  --enable-dynamic-cats-backends \
  --enable-acl \
  --enable-bat \
  --enable-traymonitor \
  --enable-xattr \
  --enable-scsi-crypto \
  --enable-ndmp \
  --enable-ipv6 \
  --with-postgresql \
  --with-mysql \
  --with-sqlite3 \
  --with-tcp-wrappers \
  --with-openssl \
  --with-dir-user=${DIRECTOR_DAEMON_USER} \
  --with-dir-group=${DAEMON_GROUP} \
  --with-sd-user=${STORAGE_DAEMON_USER} \
  --with-sd-group=${STORAGE_DAEMON_GROUP} \
  --with-fd-user=${FILE_DAEMON_USER} \
  --with-fd-group=${DAEMON_GROUP} \
  --with-dir-password="XXX_REPLACE_WITH_DIRECTOR_PASSWORD_XXX" \
  --with-fd-password="XXX_REPLACE_WITH_CLIENT_PASSWORD_XXX" \
  --with-sd-password="XXX_REPLACE_WITH_STORAGE_PASSWORD_XXX" \
  --with-mon-dir-password="XXX_REPLACE_WITH_DIRECTOR_MONITOR_PASSWORD_XXX" \
  --with-mon-fd-password="XXX_REPLACE_WITH_CLIENT_MONITOR_PASSWORD_XXX" \
  --with-mon-sd-password="XXX_REPLACE_WITH_STORAGE_MONITOR_PASSWORD_XXX" \
  --with-basename="XXX_REPLACE_WITH_LOCAL_HOSTNAME_XXX" \
  --with-hostname="XXX_REPLACE_WITH_LOCAL_HOSTNAME_XXX" \
  --enable-includes

make
sudo make install

For the most current configure option used in the Bareos packages, check the files https://github.com/bareos/bareos/blob/master/debian/rules (DEB) or https://github.com/bareos/bareos/blob/master/platforms/packaging/bareos.spec (RPM). The configure options should be identical for DEB- and RPM-packages.