Skip to content

Commit 3b7fa9f

Browse files
committed
use zstd from python stdlib or backport.zstd, closes #9261
1 parent 179b5cd commit 3b7fa9f

17 files changed

Lines changed: 98 additions & 136 deletions

File tree

.github/workflows/ci.yml

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ jobs:
7979
run: |
8080
sudo apt-get update
8181
sudo apt-get install -y pkg-config build-essential
82-
sudo apt-get install -y libssl-dev libacl1-dev libxxhash-dev liblz4-dev libzstd-dev
82+
sudo apt-get install -y libssl-dev libacl1-dev libxxhash-dev liblz4-dev
8383
8484
- name: Install Python dependencies
8585
run: |
@@ -200,7 +200,7 @@ jobs:
200200
run: |
201201
sudo apt-get update
202202
sudo apt-get install -y pkg-config build-essential
203-
sudo apt-get install -y libssl-dev libacl1-dev libxxhash-dev liblz4-dev libzstd-dev
203+
sudo apt-get install -y libssl-dev libacl1-dev libxxhash-dev liblz4-dev
204204
sudo apt-get install -y bash zsh fish # for shell completion tests
205205
sudo apt-get install -y rclone openssh-server curl
206206
if [[ "$TOXENV" == *"llfuse"* ]]; then
@@ -435,7 +435,7 @@ jobs:
435435
freebsd)
436436
export IGNORE_OSVERSION=yes
437437
sudo -E pkg update -f
438-
sudo -E pkg install -y xxhash liblz4 zstd pkgconf
438+
sudo -E pkg install -y xxhash liblz4 pkgconf
439439
sudo -E pkg install -y fusefs-libs
440440
sudo -E kldload fusefs
441441
sudo -E sysctl vfs.usermount=1
@@ -491,7 +491,7 @@ jobs:
491491
echo "https://ftp.NetBSD.org/pub/pkgsrc/packages/NetBSD/${arch}/10.1/All" | sudo tee /usr/pkg/etc/pkgin/repositories.conf > /dev/null
492492
sudo -E pkgin update
493493
sudo -E pkgin -y upgrade
494-
sudo -E pkgin -y install zstd lz4 xxhash git
494+
sudo -E pkgin -y install lz4 xxhash git
495495
sudo -E pkgin -y install rust
496496
sudo -E pkgin -y install pkg-config
497497
sudo -E pkgin -y install py311-pip py311-virtualenv py311-tox
@@ -525,7 +525,7 @@ jobs:
525525
;;
526526
527527
openbsd)
528-
sudo -E pkg_add xxhash lz4 zstd git
528+
sudo -E pkg_add xxhash lz4 git
529529
sudo -E pkg_add rust
530530
sudo -E pkg_add openssl%3.4
531531
sudo -E pkg_add py3-pip py3-virtualenv py3-tox
@@ -563,12 +563,12 @@ jobs:
563563
564564
haiku)
565565
pkgman refresh
566-
pkgman install -y git pkgconfig zstd lz4 xxhash
566+
pkgman install -y git pkgconfig lz4 xxhash
567567
pkgman install -y openssl3
568568
pkgman install -y rust_bin
569569
pkgman install -y python3.10
570570
pkgman install -y cffi
571-
pkgman install -y lz4_devel zstd_devel xxhash_devel openssl3_devel libffi_devel
571+
pkgman install -y lz4_devel xxhash_devel openssl3_devel libffi_devel
572572
573573
# there is no pkgman package for tox, so we install it into a venv
574574
python3 -m ensurepip --upgrade
@@ -578,7 +578,6 @@ jobs:
578578
579579
export PKG_CONFIG_PATH="/system/develop/lib/pkgconfig:/system/lib/pkgconfig:${PKG_CONFIG_PATH:-}"
580580
export BORG_LIBLZ4_PREFIX=/system/develop
581-
export BORG_LIBZSTD_PREFIX=/system/develop
582581
export BORG_LIBXXHASH_PREFIX=/system/develop
583582
export BORG_OPENSSL_PREFIX=/system/develop
584583
pip install -r requirements.d/development.txt

.github/workflows/codeql-analysis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ jobs:
6666
run: |
6767
sudo apt-get update
6868
sudo apt-get install -y pkg-config build-essential
69-
sudo apt-get install -y libssl-dev libacl1-dev libxxhash-dev liblz4-dev libzstd-dev
69+
sudo apt-get install -y libssl-dev libacl1-dev libxxhash-dev liblz4-dev
7070
# Initializes the CodeQL tools for scanning.
7171
- name: Initialize CodeQL
7272
uses: github/codeql-action/init@v4

.readthedocs.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ build:
1616
- libacl1-dev
1717
- libssl-dev
1818
- liblz4-dev
19-
- libzstd-dev
2019
- libxxhash-dev
2120

2221
python:

Brewfile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
brew 'pkgconf'
2-
brew 'zstd'
32
brew 'lz4'
43
brew 'xxhash'
54
brew 'openssl@3'

Vagrantfile

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ def packages_debianoid(user)
1616
apt-get -y -qq dist-upgrade
1717
# for building borgbackup and dependencies:
1818
apt install -y pkg-config
19-
apt install -y libssl-dev libacl1-dev libxxhash-dev liblz4-dev libzstd-dev || true
19+
apt install -y libssl-dev libacl1-dev libxxhash-dev liblz4-dev || true
2020
apt install -y libfuse-dev fuse || true
2121
apt install -y libfuse3-dev fuse3 || true
2222
apt install -y locales || true
@@ -38,7 +38,7 @@ def packages_freebsd
3838
# install all the (security and other) updates, base system
3939
freebsd-update --not-running-from-cron fetch install
4040
# for building borgbackup and dependencies:
41-
pkg install -y xxhash liblz4 zstd pkgconf
41+
pkg install -y xxhash liblz4 pkgconf
4242
pkg install -y fusefs-libs || true
4343
pkg install -y fusefs-libs3 || true
4444
pkg install -y rust
@@ -85,7 +85,6 @@ def packages_openbsd
8585
chsh -s bash vagrant
8686
pkg_add xxhash
8787
pkg_add lz4
88-
pkg_add zstd
8988
pkg_add git # no fakeroot
9089
pkg_add rust
9190
pkg_add openssl%3.4
@@ -100,7 +99,7 @@ def packages_netbsd
10099
echo 'https://ftp.NetBSD.org/pub/pkgsrc/packages/NetBSD/$arch/9.3/All' > /usr/pkg/etc/pkgin/repositories.conf
101100
pkgin update
102101
pkgin -y upgrade
103-
pkg_add zstd lz4 xxhash git
102+
pkg_add lz4 xxhash git
104103
pkg_add rust
105104
pkg_add bash
106105
chsh -s bash vagrant

docs/installation.rst

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,6 @@ development header files (sometimes in a separate `-dev` or `-devel` package).
166166
* libacl_ (which depends on libattr_)
167167
* libxxhash_ >= 0.8.1
168168
* liblz4_ >= 1.7.0 (r129)
169-
* libzstd_ >= 1.3.0
170169
* libffi (required for argon2-cffi-bindings)
171170
* pkg-config (cli tool) - Borg uses this to discover header and library
172171
locations automatically. Alternatively, you can also point to them via some
@@ -201,7 +200,7 @@ Arch Linux
201200

202201
Install the runtime and build dependencies::
203202

204-
pacman -S python python-pip python-virtualenv openssl acl xxhash lz4 zstd base-devel
203+
pacman -S python python-pip python-virtualenv openssl acl xxhash lz4 base-devel
205204
pacman -S fuse2 # needed for llfuse
206205
pacman -S fuse3 # needed for pyfuse3
207206

@@ -217,7 +216,7 @@ Install the dependencies with development headers::
217216
sudo apt-get install python3 python3-dev python3-pip python3-virtualenv \
218217
libacl1-dev \
219218
libssl-dev \
220-
liblz4-dev libzstd-dev libxxhash-dev \
219+
liblz4-dev libxxhash-dev \
221220
libffi-dev \
222221
build-essential pkg-config
223222
sudo apt-get install libfuse-dev fuse # needed for llfuse
@@ -235,7 +234,7 @@ Install the dependencies with development headers::
235234
sudo dnf install python3 python3-devel python3-pip python3-virtualenv \
236235
libacl-devel \
237236
openssl-devel \
238-
lz4-devel libzstd-devel xxhash-devel \
237+
lz4-devel xxhash-devel \
239238
libffi-devel \
240239
pkgconf
241240
sudo dnf install gcc gcc-c++ redhat-rpm-config
@@ -252,7 +251,7 @@ Install the dependencies automatically using zypper::
252251
Alternatively, you can enumerate all build dependencies in the command line::
253252

254253
sudo zypper install python3 python3-devel \
255-
libacl-devel openssl-devel xxhash-devel libzstd-devel liblz4-devel \
254+
libacl-devel openssl-devel xxhash-devel liblz4-devel \
256255
libffi-devel \
257256
python3-Cython python3-Sphinx python3-msgpack-python python3-pkgconfig pkgconf \
258257
python3-pytest python3-setuptools python3-setuptools_scm \
@@ -303,7 +302,7 @@ and commands to make FUSE work for using the mount command.
303302

304303
pkg install -y python3 pkgconf
305304
pkg install openssl
306-
pkg install liblz4 zstd xxhash
305+
pkg install liblz4 xxhash
307306
pkg install fusefs-libs # needed for llfuse
308307
pkg install -y git
309308
python3 -m ensurepip # to install pip for Python3
@@ -347,7 +346,7 @@ Use the Cygwin installer to install the dependencies::
347346

348347
python39 python39-devel
349348
python39-setuptools python39-pip python39-wheel python39-virtualenv
350-
libssl-devel libxxhash-devel liblz4-devel libzstd-devel
349+
libssl-devel libxxhash-devel liblz4-devel
351350
binutils gcc-g++ git make openssh
352351

353352
Make sure to use a virtual environment to avoid confusions with any Python installed on Windows.

docs/usage/general/environment.rst.inc

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -218,9 +218,6 @@ Building:
218218
BORG_LIBLZ4_PREFIX
219219
Adds given prefix directory to the default locations. If a 'include/lz4.h' is found Borg
220220
will be linked against the system liblz4 instead of a bundled implementation. (setup.py)
221-
BORG_LIBZSTD_PREFIX
222-
Adds given prefix directory to the default locations. If a 'include/zstd.h' is found Borg
223-
will be linked against the system libzstd instead of a bundled implementation. (setup.py)
224221

225222
Please note:
226223

pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ dependencies = [
3838
"platformdirs >=2.6.0, <5.0.0; sys_platform != 'darwin'", # for others: 2.6+ works consistently.
3939
"argon2-cffi",
4040
"shtab>=1.8.0",
41+
"backports-zstd; python_version < '3.14'", # for python < 3.14.
4142
]
4243

4344
[project.optional-dependencies]

requirements.d/development.lock.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
chardet==5.2.0
12
setuptools==80.9.0
23
setuptools-scm==9.2.2
34
pip==26.0.1

requirements.d/development.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
chardet < 6
12
setuptools >=78.1.1
23
setuptools_scm
34
pip !=24.2

0 commit comments

Comments
 (0)