From b8e5df9410a4dfce583066cb0f5b478e6ebaf15e Mon Sep 17 00:00:00 2001 From: Stephen Date: Sat, 13 Nov 2021 19:19:55 -0800 Subject: [PATCH 1/5] Create Brewfile --- Brewfile | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 Brewfile diff --git a/Brewfile b/Brewfile new file mode 100644 index 00000000..031a3c27 --- /dev/null +++ b/Brewfile @@ -0,0 +1,6 @@ +brew 'pkg-config' +brew 'zstd' +brew 'lz4' +brew 'xxhash' +brew 'openssl@1.1' +cask 'osxfuse' # Required for Python llfuse module From 5c5df6458a82bd4d7f5b58c0cfcb1a3d9a53127b Mon Sep 17 00:00:00 2001 From: Stephen Date: Sat, 13 Nov 2021 19:21:59 -0800 Subject: [PATCH 2/5] github CI (macOS): use brew bundle install (uses Brewfile) --- .github/workflows/ci.yml | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 495f0334..29e0786b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -160,12 +160,7 @@ jobs: ${{ runner.os }}- - name: Install macOS packages - run: | - brew install pkg-config || brew upgrade pkg-config - brew install zstd || brew upgrade zstd - brew install lz4 || brew upgrade lz4 - brew install xxhash || brew upgrade xxhash - brew install openssl@1.1 || brew upgrade openssl@1.1 + run: brew bundle install - name: Install Python requirements run: | From 438f1ddef76ad2d82c2549edf6cc1cf6d3d5f3df Mon Sep 17 00:00:00 2001 From: Stephen Date: Tue, 16 Nov 2021 08:38:42 -0800 Subject: [PATCH 3/5] docs: add brew bundle instructions (macOS) --- docs/installation.rst | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/docs/installation.rst b/docs/installation.rst index b80d8e7b..150b7ddf 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -245,16 +245,10 @@ Alternatively, you can enumerate all build dependencies in the command line:: macOS +++++ -When installing via Homebrew_, dependencies are installed automatically. To install -dependencies manually:: +When installing borgbackup via Homebrew_, the basic dependencies are installed automatically. - brew install python3 openssl zstd lz4 xxhash - brew install pkg-config - pip3 install virtualenv pkgconfig - -For FUSE support to mount the backup archives, you need at least version 3.0 of -macFUSE, which is available via `github -`__, or Homebrew:: +For FUSE support to mount the backup archives, you need macFUSE, which is available +via `github `__, or Homebrew:: brew install --cask macfuse @@ -264,6 +258,13 @@ the installed ``openssl`` formula, point pkg-config to the correct path:: PKG_CONFIG_PATH="/usr/local/opt/openssl@1.1/lib/pkgconfig" pip install borgbackup[llfuse] +When working from a borg git repo workdir, you can install dependencies using the +Brewfile:: + + brew install python@3.11 # can be any supported python3 version + brew bundle install # install requirements from borg repo's ./Brewfile + pip3 install virtualenv pkgconfig + Be aware that for all recent macOS releases you must authorize full disk access. It is no longer sufficient to run borg backups as root. If you have not yet granted full disk access, and you run Borg backup from cron, you will see From 576ee3532c958a8387788f0fb40ac152c7982b2b Mon Sep 17 00:00:00 2001 From: Thomas Waldmann Date: Sun, 14 Jan 2024 17:27:21 +0100 Subject: [PATCH 4/5] docs: fix markup errors --- docs/development.rst | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/development.rst b/docs/development.rst index fdac4fe6..95c7218f 100644 --- a/docs/development.rst +++ b/docs/development.rst @@ -127,6 +127,7 @@ e.g. 1.4.x). Start by checking out the appropriate branch: :: + git checkout master It is best practice for a developer to keep local ``master`` branch as an @@ -140,16 +141,19 @@ only to ``master``. Thus, create a new branch now: :: + git checkout -b MYCONTRIB-master # choose an appropriate own branch name Now, work on your contribution in that branch. Use these git commands: :: + git status # is there anything that needs to be added? git add ... # if so, add it git commit # finally, commit it. use a descriptive comment. Then push the changes to your Github repository: :: + git push --set-upstream origin MYCONTRIB-master Finally, make a pull request on ``borgbackup/borg`` Github repository against @@ -170,6 +174,7 @@ Next, check out the ``master`` branch again. Find the commit hash of the last commit that was made before you started working on your contribution and perform a hard reset. :: + git checkout master git log git reset --hard THATHASH @@ -177,6 +182,7 @@ a hard reset. Then, update the local ``master`` branch with changes made in the upstream repository. :: + git pull borg master Rebase feature branch onto updated master branch @@ -185,6 +191,7 @@ Rebase feature branch onto updated master branch After updating the local ``master`` branch from upstream, the feature branch can be checked out and rebased onto (the now uptodate) ``master`` branch. :: + git checkout MYCONTRIB-master git rebase -i master @@ -192,6 +199,7 @@ Next, check if there are any commits that exist in the feature branch but not in the ``master`` branch and vice versa. If there are no conflicts or after resolving them, push your changes to your Github repository. :: + git log git diff master git push -f From 08bb028bae0a0e9944d554b369977cd16a9b83e5 Mon Sep 17 00:00:00 2001 From: Thomas Waldmann Date: Sun, 14 Jan 2024 17:49:21 +0100 Subject: [PATCH 5/5] Brewfile: don't install osxfuse cask by default. --- Brewfile | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Brewfile b/Brewfile index 031a3c27..d0ebf1e1 100644 --- a/Brewfile +++ b/Brewfile @@ -3,4 +3,10 @@ brew 'zstd' brew 'lz4' brew 'xxhash' brew 'openssl@1.1' -cask 'osxfuse' # Required for Python llfuse module + +# osxfuse (aka macFUSE) is only required for "borg mount", +# but won't work on github actions' workers. +# it requires installing a kernel extension, so some users +# may want it and some won't. + +#cask 'osxfuse'