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:
Akihiro Suda
2023-01-07 13:16:11 +09:00
parent 26509fa765
commit 52f82acb7b
102 changed files with 2574 additions and 170 deletions

View File

@@ -34,12 +34,6 @@ jobs:
os: [ubuntu-20.04, macos-12, windows-2019]
steps:
- name: Install dependencies
if: matrix.os == 'ubuntu-20.04'
run: |
sudo apt-get update
sudo apt-get install -y libbtrfs-dev
- uses: actions/setup-go@v3
with:
go-version: ${{ env.GO_VERSION }}
@@ -165,7 +159,7 @@ jobs:
- run: |
set -e -x
packages="libbtrfs-dev"
packages=""
platform="${{matrix.goos}}/${{matrix.goarch}}"
if [ -n "${{matrix.goarm}}" ]; then
platform+="/v${{matrix.goarm}}"
@@ -214,12 +208,6 @@ jobs:
os: [ubuntu-20.04, macos-12, windows-2019, windows-2022]
go-version: ["1.19.5", "1.18.10"]
steps:
- name: Install dependencies
if: matrix.os == 'ubuntu-20.04'
run: |
sudo apt-get update
sudo apt-get install -y libbtrfs-dev
- uses: actions/setup-go@v3
with:
go-version: ${{ matrix.go-version }}
@@ -437,7 +425,7 @@ jobs:
RUNC_FLAVOR: ${{ matrix.runc }}
run: |
sudo apt-get update
sudo apt-get install -y gperf libbtrfs-dev
sudo apt-get install -y gperf
script/setup/install-seccomp
script/setup/install-runc
script/setup/install-cni $(grep containernetworking/plugins go.mod | awk '{print $2}')

View File

@@ -43,7 +43,7 @@ jobs:
# languages: go, javascript, csharp, python, cpp, java
- run: |
sudo apt-get install -y libseccomp-dev libbtrfs-dev
sudo apt-get install -y libseccomp-dev
make
- name: Perform CodeQL Analysis

View File

@@ -62,12 +62,7 @@ jobs:
libseccomp-dev:arm64 \
libseccomp-dev:s390x \
libseccomp-dev:ppc64el \
libseccomp-dev:riscv64 \
libbtrfs-dev:amd64 \
libbtrfs-dev:arm64 \
libbtrfs-dev:s390x \
libbtrfs-dev:ppc64el \
libbtrfs-dev:riscv64
libseccomp-dev:riscv64
- name: Build amd64
env:

View File

@@ -28,7 +28,6 @@ RUN apt-get update && \
apt-get install -y dpkg-dev git make pkg-config
ARG TARGETPLATFORM
RUN xx-apt-get install -y libseccomp-dev btrfs-progs gcc
RUN if grep -qE 'UBUNTU_CODENAME=(focal|jammy)' /etc/os-release; then xx-apt-get install -y libbtrfs-dev; fi
ENV PATH=/usr/local/go/bin:$PATH
ENV GOPATH=/go
ENV CGO_ENABLED=1