This issue tracks ongoing work to package borg in various distributions.
Done items are documented in the install docs and should be edited there directly when new packages are published.
Non-exhaustive list of packages needing work:
Note: there are binary release packages for Linux, FreeBSD and OS X on the github releases page.
Debian is in new queue, and Ubuntu Xenial (the 16.04 LTS will probably have it).
Where I can find Debian package?
un unstable as soon as it is processed from new queue
https://ftp-master.debian.org/new/borgbackup_0.27.0-1.html
or you can build it from our git :)
i unchecked Debian as done while we wait for the new queue. i think we should also aim for backports in jessie there as well.
well, we need some backports e.g. msgpack and setuptools-scm before
sure, that would be fine as well i think.
Homebrew cask: https://github.com/caskroom/homebrew-cask/pull/15102
Cask is an addon-on for OSX HomeBrew to install binary-backages, see http://caskroom.io/ and https://github.com/caskroom/homebrew-cask/blob/master/USAGE.md for a introduction.
The homebrew-cask allows OSX uses to install the binary release of borg using the homebrew and cask toolchain with a single command.
I like the zero-dependency approach of the borg-binary releases. IMHO backup tools need to be self-contained as much as possible.
brew install caskroom/cask/brew-caskbrew cask install borgbackup
update: added explenation as requested by @anarcat
@rmoriz thanks! but what is "homebrew cask"? does that replace homebrew? should it be our sole source of OSX packages? what about regular homebrew, DMG images or darwin ports?
thanks for any clarification.
@rmoriz thanks for the update, but what about the other questions? should we be providing DMG files or darwin ports?
@anarcat why not? I've just suggested homebrew-cask as one way. There is more than one way to do it. AFAIK there are still some MacPorts user out there.
I personally don't think a .DMG distro is that useful givent hat borg is cli-only, however if you decide to build and sign(!) .DMGs, the homebrew-cask cask can be modified to use the DMG and not the single-binary-release. Here's an example for Vagrant, a Ruby utility that gets released as a DMG (including all dependencies, like its own Ruby) and here is the cask for that
okay, so darwin ports / macports is still an option, thanks!
DMG certainly doesn't make sense as long as we don't have a gui, see #314 and borgweb for that...
marked guisd as in progress as @lfam is waiting for more testing before shipping it officially.
Debian accepted it from New queue, Ubuntu should follow in a few hours.
Could somebody possible create an openSUSE OBS repo for Borg? Thanks!
@geckolinux i aded that to the list! let us know if there's any progress there.
@LocutusOfBorg thanks for the updated, changed the summary accordingly.
Ubuntu sync'd https://launchpad.net/ubuntu/+source/borgbackup
marked Ubuntu as done then. next focus on those would be backports i guess.
you can use "requestbackport" tool, but the build-dependencies are not there.
i think that, once the debian package hits backports, we can add it to https://borgbackup.readthedocs.org/en/stable/installation.html#installation-distribution-package
same with ubuntu (and the others).
Regarding freebsd, it's easy enough to pip install borgbackup. Having a package would also install the deps, but for me it was just liblz4.
You already have the binary so it's simple/easy enough to download and put it in your path.
of course, but it would be nice to have pkg install borgbackup working as well, no?
borgbackup has been added to homebrew-cask (https://github.com/caskroom/homebrew-cask/pull/15102)
alright, thanks! added OSX to the list of "distribution packages", as well as OSX, Debian and Ubuntu in #417.
i've also added the Arch Linux official repositories as an eventual target.
With the help of Petric Frank and Thomas this ebuild (0.28.2) works for Gentoo: https://bugs.gentoo.org/show_bug.cgi?id=552470
To get it into portage, one would have to set up as the maintainer and submit it to the sunrise overlay (more people will test it there) or have a well-known gentoo member take care of it directly.
@dragetd thanks, i updated the summary accordingly.
I created a Borg Installer for Windows, located here, based on the 0.28.2 release. Perhaps others would find this useful.
It encapsulates a tidy Cygwin install along with the dependencies required to run Borg. It includes a compiled (fast) version of msgpack-python, which took a while for me to figure out. =)
With this installed, a Windows user can run any regular borg commands from a cmd window or from batch files. Paths must still be specified in /cygwin/c/format but otherwise cygwin is mostly invisible.
Curious if anyone finds this useful; feedback welcome! I might automate the creation of the installer for future releases if that would be welcome.
I think that's a great idea! Maybe a separate issue can be created about a windows installer and linked here? The issue (or pull request?) focus would be to document the binary creation process (e.g. in docs/development.rst) and maybe actual tools (scripts? setup.py?) to create the binary.
i'll update the summary accordingly.
That makes sense to me. I can write down the steps I took to create the installer. I'm unfamiliar with the current automated build process for borg so I'd need some help, but I'm happy to pitch in.
A real Windows installer that hides Cygwin from end users as much as possible is likely the only way to get traction on the Windows platform. Well, unless someone wants to make borg work natively on Windows! Which is much more work than just creating an installer. =)
Hi @billyc,
Thank you for creating the installer for windows. I didn't realize you packaged it with cygwin until after I installed the ~50MB file, so I'm happy to have both cygwin & borg on my windows computer!
Hi,
I'm from the fedora front here.
I have done some packaging and opened a review ticket for adding borgbackup to the fedora repositorys:
https://bugzilla.redhat.com/show_bug.cgi?id=1287837
updated the summary, thanks! let us know how it goes.
I packed it into NIx package manager and NixOs linux distribution.
https://github.com/NixOS/nixpkgs/blob/master/pkgs/tools/backup/borg/default.nix
@brodul thanks, updated the summary! may this merits a PR on the install docs though, if it's really completed....
My python/ebuild writing knowledge is limited, but if nobody else steps up, I'd volunteer for being a proxy maintainer on Gentoo. Ofcourse, Petric Frank would be also a good choice… so incase you want to take over, please do! :-P
So if there are no objections… applying right now and eventually borg will be in the portage tree soon.
@dragetd just do it. :)
I added a backport for Ubuntu Wily (15.10) to my PPA
@NEOatNHNG thanks!
@NEOatNHNG thanks, i updated the summary. we'll probably need to update the docs soon as well, as borg has entered debian testing (stretch) as well.
@NEOatNHNG can you please use the "backportpackage" tool next time?
thanks!
@LocutusOfBorg I would have, but there was an additional build dependency I had to add. I tried to do everything as would usually be done by backportpackage. Is there any place where I messed up?
i made #550 to update the install docs to cover the backport PPA and Debian stretch, among other things.
@NEOatNHNG I did some additional work, and created a borg ppa that contains precise, vivid, wily packages (xenial is already at the latest version)
https://launchpad.net/~costamagnagianfranco/+archive/ubuntu/borgbackup
I can give you upload permission on this ppa if you want!
@NEOatNHNG @LocutusOfBorg er... so what's the deal folks - i added @NEOatNHNG's PPA in the docs already, should i switch to @LocutusOfBorg ?
how are official backports handled in ubuntu-land anyways?
I'll try to backport them in Ubuntu, but I recently became an Ubuntu Developer, and my backports are still in the unapproved queue
e.g. https://launchpad.net/ubuntu/wily/+queue?queue_state=1&queue_text=
so, the todo might be: use my ppa (just because I'll try to keep updated when I upload on Debian and Ubuntu official repositories), and then remove it for the official Ubuntu backports.
any idea how long that would take? just trying to keep the docs commit churn low here. :)
i don't see borg in the url you pasted...
you don't see borg because we prior need to backport the dependencies, and with setuptools-scm not building on backports anymore it becames difficult to have borgbackup.
the ppa should be fine.
@LocutusOfBorg ok then i guess i'll let you do the PRs to handle the docs changes here, follow #550 for an example!
There is also: http://pkgsrc.se/sysutils/py-borgbackup
it would be great if people would make pull requests instead of just saying "hey, package X is in Y"... should we add a note in the docs to make it more obvious how people can contribute?
@rmoriz why did you add borgbackup to homebrew cask instead of homebrew? As far as I know homebrew cask is mainly for GUI applications.
Homebrew-Cask extends Homebrew and brings its elegance, simplicity, and speed to the installation and management of GUI Mac applications such as Google Chrome and Adium.[0]
Another problem with this is that brew update does not work with homebrew cask. So for every new version you have to do a brew cask install borgbackup. Another advantage of homebrew is the support of different version i.e. devel or head.[1]
[0] https://github.com/caskroom/homebrew-cask/blob/master/README.md
[1] https://github.com/Homebrew/homebrew/blob/master/share/doc/homebrew/Formula-Cookbook.md#formula-cookbook
Debian - available from stretch, backport in progress
Just a ping on this: borgbackup is included in the official jessie-backports repository since 2016-01-30.
On 2016-02-16 07:18:07, Danny Edel wrote:
Debian - available from stretch, backport in progress
Just a ping on this: borgbackup is included in the official
jessie-backportsrepository since 2016-01-30.
If the install docs are inaccurate, feel free to submit a pull request,
I don't have access to update the summary here anymore, unfortunately.
PHP was originally designed explicitly for non-programmers (and, reading
between the lines, non-programs); it has not well escaped its roots.
- Alex Munroe, PHP: a fractal of bad design
@elnappo please read my comments in the issue above your post. Also you want to read the homebrew-cask Readme about updating casks. Also your statement "primarily GUI tools" is wrong (see https://github.com/caskroom/homebrew-cask/blob/master/Casks/docker.rb for a popular non-gui example). homebrew-cask is about handling binaries (the reason why I prefer the single binary is mentioned above).
Congratulation! borgbackup added to official gentoo repo
Borg 1.0.0 packaged for GNU Guix!
http://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/backup.scm#n410
FreeBSD is coming: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=207715
A package could already be built/installed with:
$ curl -L "https://bz-attachments.freebsd.org/attachment.cgi?id=167748" | sh
$ cd py-borgbackup
# make install
I've created a openSUSE 13.2 and Leap 42.1 build here:
https://build.opensuse.org/project/monitor/home:frispete:python3
1 Click Install Download is a available here:
http://software.opensuse.org/package/python3-borgbackup?search_term=python3-borgbackup
I will stress this package a bit myself before submitting a request for inclusion to the openSUSE standard python3 repository, hence wouldn't mind some feedback for the build.
I would like to note, that we usually try to make use of the supplied testsuite for testing the build during package creation (every time!), but this requires the availability of all dependent packages in the repos (including Attic in this case), since build environments like the openSUSE build service need to be fully deterministic and reproducible. Therefore I would like to suggest adding a limited test mode with minimal external dependencies, that just tests the basic functionality. The test diversity is added by building and testing against a growing number of real distributions.
@frispete thanks for working on packaging!
about the tests: if you run them "as is" (fakeroot -u tox), they will download all the required stuff from pypi (including attic).
Attic isn't a hard dependency of the test suite, if it isn't installed in the Python environment the tests needing it are skipped.
On 04/05/2016 11:08 AM, Hans-Peter Jansen wrote:
I've created a openSUSE 13.2 and Leap 42.1 build here:
https://build.opensuse.org/project/monitor/home:frispete:python3
1 Click Install Download is a available here:
http://software.opensuse.org/package/python3-borgbackup?search_term=python3-borgbackup
Many thanks!!!
Would it be possible to also build for Tumbleweed?
Also is there a way to make your repo appear in
http://software.opensuse.org/ ?
Thanks again!
@ThomasWaldmann: ...downloading the required stuff is exactly, what is forbidden in the build system, as this has the potential of being non deterministic after all...
I found a way to setup the venv manually, but still struggling with some details.
Here's the relevant section of the rpm spec - beware - it can hurt your eyes:
# testing the build is a little awkward, since the original testsuite is based on tox and
# tox tries to create a virtual environment, that we need tight control on in order to get
# it to behave in our build system (offline mode, access site packages). OTOH, without the
# venv, we face problems with setuptools (borg uses pkg_resources to locate the installed
# package), but py.test relies on the usual module handling.
# this is further complicated due to a missing .coveragerc file and a failing test.
# Boils down to:
pyvenv --system-site-packages --without-pip borg-env
source borg-env/bin/activate
python3 setup.py install
%define arch $(python3 -c 'import platform; print(platform.machine());')
cd build/lib.linux-%{arch}-%{py3_ver}
export PYTHONPATH=$(pwd)
py.test -v --cov=borg --cov-config=../../.coveragerc --benchmark-skip --pyargs borg.testsuite || true
Of course, I'm open to simplify this section.
In its current state, chances of getting it into some official repo, are low.
Any idea about the failing test_non_ascii_acl test?
https://build.opensuse.org/package/live_build_log/home:frispete:python3/python3-borgbackup/openSUSE_13.2/x86_64 @ 437s
@geckolinux: Tumbleweed build is on the way..
Package appears already in software.opensuse.org, but after searching borgbackup you need to push on the arrow below the list saying "Show more packages for unsupported distributions"
@frispete you don't need to do the coverage stuff, this is just for developers so that they try to maintain a good test coverage.
@ThomasWaldmann: thanks for the hint - I just copied this from the standalone build and was happy to get this finally going - will yank this now.
openSUSE seems to stick to lz4 r124. Any reason not to update to the current release (r131) from borgs perspective?
https://github.com/Cyan4973/lz4/blob/master/NEWS more recent versions have the usual fixes and some improvements.
I didn't notice any issues yet, not matter which lz4 version I used.
Debian has r114 / r122.
Ubuntu has r114 in trusty and will have r131 in xenial.
I made a borg port for OpenBSD which was recently committed, so I suppose you can check that off the list.
Regarding borg's test suite: does it actually require fakeroot, or is that just recommended? I ask because fakeroot isn't available on OpenBSD, meaning we can't run the test suite... probably.
I noticed that OS X on Travis uses sudo instead of fakeroot, but I'm unsure if the same applies to OpenBSD.
Running the tests as a normal user has little impact afaik and only skips some parts of one test (something with device files that just won't work without (fake)root). Edit: borg/testsuite/archiver, test_basic_functionality
transparency note: I updated the list above with the OpenBSD ports link, and corrected a dead link to the AUR (borgbackup -> borg-git rename)
alright, I made #868 for the install docs to be up to date as well.
next up here should probably be the Red Hat family, it's in Q/A over there, I wonder if we should add it to the docs now or wait? not so familiar with their process.. https://bugzilla.redhat.com/show_bug.cgi?id=1287837
@mreed1 Since I did the openSUSE build lately, where I tried to remove as many additional dependencies for testing as possible, I'm running the tests as found in the %check section of the build spec here:
https://build.opensuse.org/package/view_file/home:frispete:python3/python3-borgbackup/python3-borgbackup.spec?expand=1
It avoids calling tox altogether with fakeroot, it might be helpful for you, too.
Please note the sed call in %prep and the packages in BuildRequires..
@LocutusOfBorg could it be possible to have a borg 1.0.1 package for ubuntu trusty in the PPA? Right now version 1.0.0-4 is the latest and version 1.0.1 has a lot of locking-related fixes that would be very useful to me. Thank you very much.
@jperville he's aware of 1.0.1, guess packages will come soon.
Thanks a bunch @enkore and @frispete, I set the tests up.
Before a few hours ago I had extremely little experience with Python infrastructure, so I'd appreciate it if someone can check if I did anything obviously wrong. Here's the test target from the port:
# XXX: We don't have py-test-benchmark, so we can't pass `--benchmark-skip' to
# py.test; instead we just remove benchmark.py.
do-test:
(cd ${WRKSRC} ;\
virtualenv-3 --system-site-packages --no-pip borg-env ;\
. borg-env/bin/activate ;\
python${MODPY_DEFAULT_VERSION_3} ./setup.py install ;\
cd build/lib.openbsd-$$(uname -r)-$$(uname -m)-${MODPY_DEFAULT_VERSION_3} ;\
export PYTHONPATH=`pwd` ;\
rm borg/testsuite/benchmark.py ;\
py.test-3 --pyargs borg.testsuite)
@mreed1 instead of removing borg/testsuite/benchmark you can also pass -k 'not benchmark' to the pytest invocation. We are using this workaround in the Debian package until pytest-benchmark is packaged too.
@jperville I uploaded on Debian some seconds after the release. However for ubuntu it took a day for the automatic sync because I want to do no change backports and I have to previously sync xenial. It is ready now.
@anarcat the package for the fedora stable (23) and the upcoming release (24) has status QA and is in the testing repositories. should be in stable in a week or earlier if someone tests it.
for centos 7 (epel) there are dependencies missing for the testsuite and manpage generation.
@bpereto that's great news for fedora! do you mind making a pull request to update the documentation when relevant? see #868 for an example.
Is there a man page available for borg somewhere?
See #208
Great, thanks @enkore.
NOTE to those, that already use my openSUSE build, which aren't that many, I hope:
I renamed the package from python3-borgbackup to borgbackup, and I did it the rough way (recreated with new name)!
If you're using my package, please do this:
rpm -e python3-borgbackup
and install the new borgbackup package, that comes as version 1.0.1, including a man page and a local copy of the comprehensive html documentation.
Sorry for the inconvenience (but I don't want to clutter this brand new package with ugly Conflicts:).
Please speak up, if you disagree.
New package is still available at:
http://software.opensuse.org/package/borgbackup?search_term=borgbackup
in the home:frispete:python3 repos for various distributions.
On 2016-04-10 16:27:05, Hans-Peter Jansen wrote:
NOTE to those, that already use my openSUSE build, which aren't that many, I hope:
I renamed the package from python3-borgbackup to borgbackup, and I did it the rough way (recreated with new name)!
hmm.. then we'd need another PR to fix #868, do you mind taking care of
that?
@anarcat Done
More good news on the openSUSE front, the package borgbackup got accepted in the Archiving:Backup repository, and is available there for Leap 42.1, Tumbleweed and Factory.
I still maintain the package in home:frispete:python3, where it is available for 13.2 and SLE_12_SP1 as well.
If somebody is missing a target in the SUSE universe, speak up, please.
Borg is now in the FreeBSD Ports Tree: https://svnweb.freebsd.org/ports?view=revision&revision=413469
Amazing! Now we're just missing fedora and... well, windows. :)
@anarcat fedora is in place. see #879
Overview:
https://apps.fedoraproject.org/packages/borgbackup
On 2016-04-23 11:57:24, Benjamin Pereto wrote:
@anarcat fedora is in place. see #879
Overview:
https://apps.fedoraproject.org/packages/borgbackup
okay then the summary needs to be updated here and a PR needs to be done
to update install docs!
whoohoo!
a.
Celui qui sait jouir du peu qu'il a est toujours assez riche.
- Démocrite
@rmoriz @adidalal @elnappo i updated github releases with borg-macosx64 1.0.2 binary - with fixed lzma and updated osxfuse 3.2.0.
@ThomasWaldmann Will be merged shortly (https://github.com/caskroom/homebrew-cask/pull/20744)
For future reference, Cask updates are super easy - cask-repair -v {{new_version}} borgbackup will update the required values and submit a PR automatically. (further details in our CONTRIBUTING)
Also install is just brew cask install borgbackup or the older syntax brew install Caskroom/cask/borgbackup (the two commands are equivalent now that Homebrew and Homebrew-Cask are a bit more tightly integrated)
@adidalal ah, interesting. I usually do not work on OS X, so I am not really familiar with it.
@ThomasWaldmann Not a problem, just thought it might be useful info to have for whoever ends up submitting Cask updates for borgbackup in the long run - we rely on users to submit PRs for app updates, as there are far too many for the core maintainers to keep track of, and so we've tried to make that process as easy as possible for both maintainers and contributors. (Also, updated Cask is now live)
OpenIndiana seems to ship 1.0.0: http://pkg.openindiana.org/hipster/en/search.shtml?token=borg&action=Search
while borg is not in CentOS / RHEL "core" (and won't be until at least RHEL 8 due to missing Python 3) it is now in EPEL.
Done in Mageia (Cauldron) so will be in Mageia 6 http://madb.mageia.org/package/show/application/0/release/cauldron/name/borgbackup
Version is now 1.03
@enkore, @pmakowski i have added raspbian, openindiana and mageia to the install docs in #1120.
i have now learned how to install binary packages in way more distributions than i ever wanted to. it would be great if people would send pull requests to update the docs themselves instead of me having to come by and redo this every month or so... in fact, maybe it would be more useful if the summary of this ticket would be change to _not_ have an "exhaustive list" of all the distributions that actually ship with borg, especially considering how only a select few people can update the ticket summary here (as opposed to do pull requests to update the docs).
in other words, could the summary here be changed to remove the checked boxes and keep only the todo list? i would gladly make the change myself if i still had access...
something like this:
This issue tracks ongoing work to package borg in various distributions. Done items are documented in the install docs and should be edited there directly when new packages are published.
Non-exhaustive list of packages needing work:
Note: there are binary release packages for Linux, FreeBSD and OS X on the github releases page.
the install docs are turning into a miniature distrowatch, i like it. :) it would be great to have version numbers in there to see if the packages are up to date, but that will make probably too much churn, unless the checks are automated.
Using conda (http://conda.pydata.org/docs/) seems a good option here. It would work for all three major platforms. Once a conda package exists, the only thing a user needs to do is to type conda install borgbackup. All dependencies can be inside the package. No need for so many platform-specific installation instructions. All is binary. So, the user does not need to have C compiler. Furthermore, conda-forge (https://conda-forge.github.io) can make CI and multi-platform support much easier.
@kleptos I've seen you put a USD 15 bounty on this. As this is a rather generic ticket, it is hard to say who shall get it, can you clarify?
borgbackup is now in openSUSE Factory (and available via zypper in borgbackup from official Tumbleweed main repos).
https://build.opensuse.org/package/show?project=openSUSE%3AFactory&package=borgbackup
There is currently no built package for Ubuntu in the official repos without known security issues. Can anyone update me with the status on this?
Something to ask the Ubuntu Security Team
@LocutusOfBorg ^
zesty and my ppa are fine
https://launchpad.net/~costamagnagianfranco/+archive/ubuntu/borgbackup
I don't want to bother the security team for something that has no CVE...
@LocutusOfBorg although i agree that CVEs should be requested and assigned (and it's easy, just send an email with a short description to the oss-security list), the debian security team can track security issues with only a bug number in the BTS (or even nothing at all, in the worst case, but we really prefer some global identifier). not sure about the ubuntu secteam, but I presume they would prefer to deal with security issues without CVEs than just not know about them.
TLDR I requested CVEs and a week or two after the release they were actually assigned but there was no notification of that (since every form submission generates emails in their system I kinda expected it -- my bad / didn't know better), so I didn't notice and it didn't get into the docs for some time.
that's kind of ridiculous - they should have notified you. definitely not "your bad". :) you can't be expected to constantly reload the CVE list to figure out wtf is going on... ;) thanks for the followup!
close this issue as it is not in scope of borg development (we do not create packages ourselves)?
so, issues about packaging borgbackup for X should be opened in the issue tracker of X, if needed.
There is currently no built package for Ubuntu in the official repos without known security issues. Can anyone update me with the status on this?
Since about half a year later Ubuntu still ships vulnerable packages...
... I took the liberty to create an issue on their tracker: https://bugs.launchpad.net/ubuntu/+source/borgbackup/+bug/1690846
sorry I missed the CVE part.
I uploaded them for review to Ubuntu Release team
Hi,
Just to let you know that Borg is also available for OS X through Macports.org: https://github.com/macports/macports-ports/blob/master/sysutils/borgbackup/Portfile
This is an alternative to brew
I'm the maintainer, feel free to reach out to me for any question.
Thanks for BorgBackup, keep up the good work!