borgbackup / borg

Deduplicating archiver with compression and authenticated encryption.
https://www.borgbackup.org/
Other
10.94k stars 739 forks source link

Distro packages needed #105

Closed geckolinux closed 7 years ago

geckolinux commented 9 years ago

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.

elnappo commented 8 years ago

@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

dannyedel commented 8 years ago

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.

anarcat commented 8 years ago

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-backports repository 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.

A.

PHP was originally designed explicitly for non-programmers (and, reading between the lines, non-programs); it has not well escaped its roots.

rmoriz commented 8 years ago

@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).

infectormp commented 8 years ago

Congratulation! borgbackup added to official gentoo repo

lfam commented 8 years ago

Borg 1.0.0 packaged for GNU Guix!

http://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/backup.scm#n410

rumpelsepp commented 8 years ago

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
frispete commented 8 years ago

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.

ThomasWaldmann commented 8 years ago

@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).

enkore commented 8 years ago

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.

geckolinux commented 8 years ago

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!

frispete commented 8 years ago

@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

frispete commented 8 years ago

@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"

ThomasWaldmann commented 8 years ago

@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.

frispete commented 8 years ago

@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.

frispete commented 8 years ago

openSUSE seems to stick to lz4 r124. Any reason not to update to the current release (r131) from borgs perspective?

ThomasWaldmann commented 8 years ago

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.

ghost commented 8 years ago

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.

enkore commented 8 years ago

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)

anarcat commented 8 years ago

alright, I made #868 for the install docs to be up to date as well.

anarcat commented 8 years ago

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

frispete commented 8 years ago

@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..

jperville commented 8 years ago

@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.

ThomasWaldmann commented 8 years ago

@jperville he's aware of 1.0.1, guess packages will come soon.

ghost commented 8 years ago

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)
dannyedel commented 8 years ago

@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.

LocutusOfBorg commented 8 years ago

@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.

bpereto commented 8 years ago

@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.

anarcat commented 8 years ago

@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.

frispete commented 8 years ago

Is there a man page available for borg somewhere?

enkore commented 8 years ago

See #208

frispete commented 8 years ago

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.

anarcat commented 8 years ago

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?

frispete commented 8 years ago

@anarcat Done

frispete commented 8 years ago

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.

rumpelsepp commented 8 years ago

Borg is now in the FreeBSD Ports Tree: https://svnweb.freebsd.org/ports?view=revision&revision=413469

anarcat commented 8 years ago

Amazing! Now we're just missing fedora and... well, windows. :)

bpereto commented 8 years ago

@anarcat fedora is in place. see #879 Overview: https://apps.fedoraproject.org/packages/borgbackup

anarcat commented 8 years ago

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.

ThomasWaldmann commented 8 years ago

@rmoriz @adidalal @elnappo i updated github releases with borg-macosx64 1.0.2 binary - with fixed lzma and updated osxfuse 3.2.0.

adidalal commented 8 years ago

@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)

ThomasWaldmann commented 8 years ago

@adidalal ah, interesting. I usually do not work on OS X, so I am not really familiar with it.

adidalal commented 8 years ago

@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)

enkore commented 8 years ago

OpenIndiana seems to ship 1.0.0: http://pkg.openindiana.org/hipster/en/search.shtml?token=borg&action=Search

FelixSchwarz commented 8 years ago

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.

pmakowski commented 8 years ago

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

anarcat commented 8 years ago

@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.

anarcat commented 8 years ago

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.

pya commented 8 years ago

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.

ThomasWaldmann commented 7 years ago

@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?