btrfs: depend on kernel UAPI instead of libbtrfs
See containerd/btrfs PR 40 and moby/moby PR 44761. (Thanks to [@]neersighted.) The containerd/btrfs library now requires headers from kernel 4.12 or newer: - https://github.com/torvalds/linux/blob/master/include/uapi/linux/btrfs.h - https://github.com/torvalds/linux/blob/master/include/uapi/linux/btrfs_tree.h These files are licensed under the GPL-2.0 WITH Linux-syscall-note, so it should be compatible with the Apache License 2.0. https://spdx.org/licenses/Linux-syscall-note.html The dependency on the kernel headers only affects users building from source. Users on older kernels may opt to not compile this library (`BUILDTAGS=no_btfs`), or to provide headers from a newer kernel. Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
This commit is contained in:
23
BUILDING.md
23
BUILDING.md
@@ -37,16 +37,16 @@ wget -c https://github.com/protocolbuffers/protobuf/releases/download/v3.11.4/pr
|
||||
sudo unzip protoc-3.11.4-linux-x86_64.zip -d /usr/local
|
||||
```
|
||||
|
||||
`containerd` uses [Btrfs](https://en.wikipedia.org/wiki/Btrfs) it means that you
|
||||
need to satisfy these dependencies in your system:
|
||||
To enable optional [Btrfs](https://en.wikipedia.org/wiki/Btrfs) snapshotter, you should have the headers from the Linux kernel 4.12 or later.
|
||||
The dependency on the kernel headers only affects users building containerd from source.
|
||||
Users on older kernels may opt to not compile the btrfs support (see `BUILDTAGS=no_btrfs` below),
|
||||
or to provide headers from a newer kernel.
|
||||
|
||||
* CentOS 7 / Fedora: `yum install btrfs-progs-devel`
|
||||
* Note with CentOS 9: [Btrfs has been deprecated](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/storage_administration_guide/ch-btrfs) in RHEL / CentOS 7.4, and removed in RHEL/CentOS 9 .
|
||||
Please see the [release notes](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/7.4_release_notes/chap-red_hat_enterprise_linux-7.4_release_notes-deprecated_functionality_in_rhel7#idm139789147351408) for additional information on deprecated features.
|
||||
* Debian/Ubuntu: `apt-get install btrfs-progs libbtrfs-dev`
|
||||
* Debian(before Buster)/Ubuntu(before 19.10): `apt-get install btrfs-tools`
|
||||
* For unsupported [Btrfs](https://en.wikipedia.org/wiki/Btrfs) system:
|
||||
* Use the `no_btrfs` build tag to build without btrfs support.
|
||||
> **Note**
|
||||
> The dependency on the Linux kernel headers 4.12 was introduced in containerd 1.7.0-beta.4.
|
||||
>
|
||||
> containerd 1.6 has different set of dependencies for enabling btrfs.
|
||||
> containerd 1.6 users should refer to https://github.com/containerd/containerd/blob/release/1.6/BUILDING.md#build-the-development-environment
|
||||
|
||||
At this point you are ready to build `containerd` yourself!
|
||||
|
||||
@@ -145,9 +145,6 @@ You can build an image from this `Dockerfile`:
|
||||
|
||||
```dockerfile
|
||||
FROM golang
|
||||
|
||||
RUN apt-get update && \
|
||||
apt-get install -y libbtrfs-dev
|
||||
```
|
||||
|
||||
Let's suppose that you built an image called `containerd/build`. From the
|
||||
@@ -184,7 +181,7 @@ We can build an image from this `Dockerfile`:
|
||||
FROM golang
|
||||
|
||||
RUN apt-get update && \
|
||||
apt-get install -y libbtrfs-dev libseccomp-dev
|
||||
apt-get install -y libseccomp-dev
|
||||
```
|
||||
|
||||
In our Docker container we will build `runc` build, which includes
|
||||
|
||||
Reference in New Issue
Block a user