mirror of
https://github.com/koverstreet/bcachefs-tools.git
synced 2025-12-12 00:00:12 +03:00
Merge pull request #450 from LebedevRI/debian
Debian: cross-build support
This commit is contained in:
commit
c98059d35e
31
.github/workflows/deb-buildd.yml
vendored
31
.github/workflows/deb-buildd.yml
vendored
@ -247,14 +247,6 @@ jobs:
|
|||||||
if [ "${{ inputs.dist-name }}" = "debian" ];
|
if [ "${{ inputs.dist-name }}" = "debian" ];
|
||||||
then
|
then
|
||||||
MIRROR="http://deb.debian.org/debian"
|
MIRROR="http://deb.debian.org/debian"
|
||||||
elif [ "${{ inputs.dist-name }}" = "ubuntu" ] && [ "${{ inputs.build-arch }}" = "amd64" ];
|
|
||||||
then
|
|
||||||
MIRROR="http://archive.ubuntu.com/ubuntu"
|
|
||||||
elif [ "${{ inputs.dist-name }}" = "ubuntu" ] && [ "${{ inputs.build-arch }}" != "amd64" ];
|
|
||||||
then
|
|
||||||
MIRROR="http://ports.ubuntu.com/ubuntu-ports"
|
|
||||||
else
|
|
||||||
exit 1
|
|
||||||
fi
|
fi
|
||||||
if [ "${{ inputs.dist-name }}" = "debian" ];
|
if [ "${{ inputs.dist-name }}" = "debian" ];
|
||||||
then
|
then
|
||||||
@ -287,16 +279,27 @@ jobs:
|
|||||||
fi
|
fi
|
||||||
if [ "${{ inputs.dist-name }}" = "ubuntu" ];
|
if [ "${{ inputs.dist-name }}" = "ubuntu" ];
|
||||||
then
|
then
|
||||||
|
MIRROR="http://archive.ubuntu.com/ubuntu"
|
||||||
tee -a ~/.sbuildrc > /dev/null <<EOT
|
tee -a ~/.sbuildrc > /dev/null <<EOT
|
||||||
push @{\$unshare_mmdebstrap_extra_args}, "*", [
|
push @{\$unshare_mmdebstrap_extra_args}, "*", [
|
||||||
'$MIRROR',
|
|
||||||
'--keyring=$KEYRING',
|
'--keyring=$KEYRING',
|
||||||
'--components=main,universe'
|
'--components=main,universe',
|
||||||
|
'deb [arch=amd64] $MIRROR ${{ inputs.dist-version }} main universe',
|
||||||
|
'deb [arch=amd64] $MIRROR ${{ inputs.dist-version }}-updates main universe',
|
||||||
|
'deb [arch=amd64] $MIRROR ${{ inputs.dist-version }}-security main universe',
|
||||||
|
'deb [arch=amd64] $MIRROR ${{ inputs.dist-version }}-backports main universe',
|
||||||
];
|
];
|
||||||
\$extra_repositories = [
|
EOT
|
||||||
'deb $MIRROR ${{ inputs.dist-version }}-updates main universe',
|
fi
|
||||||
'deb $MIRROR ${{ inputs.dist-version }}-security main universe',
|
if [ "${{ inputs.dist-name }}" = "ubuntu" ] && [ "${{ inputs.host-arch }}" != "amd64" ];
|
||||||
'deb $MIRROR ${{ inputs.dist-version }}-backports main universe',
|
then
|
||||||
|
MIRROR_PORTS="http://ports.ubuntu.com/ubuntu-ports"
|
||||||
|
tee -a ~/.sbuildrc > /dev/null <<EOT
|
||||||
|
push @{\$unshare_mmdebstrap_extra_args}, "*", [
|
||||||
|
'deb [arch=${{ inputs.host-arch }}] $MIRROR_PORTS ${{ inputs.dist-version }} main universe',
|
||||||
|
'deb [arch=${{ inputs.host-arch }}] $MIRROR_PORTS ${{ inputs.dist-version }}-updates main universe',
|
||||||
|
'deb [arch=${{ inputs.host-arch }}] $MIRROR_PORTS ${{ inputs.dist-version }}-security main universe',
|
||||||
|
'deb [arch=${{ inputs.host-arch }}] $MIRROR_PORTS ${{ inputs.dist-version }}-backports main universe',
|
||||||
];
|
];
|
||||||
EOT
|
EOT
|
||||||
fi
|
fi
|
||||||
|
|||||||
15
.github/workflows/deb-orchestrator.yml
vendored
15
.github/workflows/deb-orchestrator.yml
vendored
@ -37,7 +37,7 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
stack:
|
stack:
|
||||||
- { runs-on: "ubuntu-24.04", machine-arch: "amd64", build-arch: "amd64", host-arch: "amd64" }
|
- { runs-on: "ubuntu-24.04", machine-arch: "amd64", build-arch: "amd64", host-arch: "amd64" }
|
||||||
- { runs-on: "ubuntu-24.04", machine-arch: "amd64", build-arch: "ppc64el", host-arch: "ppc64el" }
|
- { runs-on: "ubuntu-24.04", machine-arch: "amd64", build-arch: "amd64", host-arch: "ppc64el" }
|
||||||
- { runs-on: "ubuntu-24.04-arm", machine-arch: "arm64", build-arch: "arm64", host-arch: "arm64" }
|
- { runs-on: "ubuntu-24.04-arm", machine-arch: "arm64", build-arch: "arm64", host-arch: "arm64" }
|
||||||
dist:
|
dist:
|
||||||
- { name: debian, version: unstable }
|
- { name: debian, version: unstable }
|
||||||
@ -45,6 +45,19 @@ jobs:
|
|||||||
- { name: debian, version: trixie } # Debian 13
|
- { name: debian, version: trixie } # Debian 13
|
||||||
- { name: ubuntu, version: questing } # Ubuntu 25.10 (Questing Quokka) Beta
|
- { name: ubuntu, version: questing } # Ubuntu 25.10 (Questing Quokka) Beta
|
||||||
- { name: ubuntu, version: plucky } # Ubuntu 25.04 (Plucky Puffin)
|
- { name: ubuntu, version: plucky } # Ubuntu 25.04 (Plucky Puffin)
|
||||||
|
exclude:
|
||||||
|
- stack: { runs-on: "ubuntu-24.04", machine-arch: "amd64", build-arch: "amd64", host-arch: "ppc64el" }
|
||||||
|
dist: { name: ubuntu, version: questing }
|
||||||
|
# cross-build broken, package conflicts
|
||||||
|
- stack: { runs-on: "ubuntu-24.04", machine-arch: "amd64", build-arch: "amd64", host-arch: "ppc64el" }
|
||||||
|
dist: { name: ubuntu, version: plucky }
|
||||||
|
# cross-build broken, broken packages
|
||||||
|
# # If someone asks for ubuntu ppc64el packages, these can be reenabled:
|
||||||
|
# include:
|
||||||
|
# - stack: { runs-on: "ubuntu-24.04", machine-arch: "amd64", build-arch: "ppc64el", host-arch: "ppc64el" }
|
||||||
|
# dist: { name: ubuntu, version: questing }
|
||||||
|
# - stack: { runs-on: "ubuntu-24.04", machine-arch: "amd64", build-arch: "ppc64el", host-arch: "ppc64el" }
|
||||||
|
# dist: { name: ubuntu, version: plucky }
|
||||||
uses: ./.github/workflows/deb-buildd.yml
|
uses: ./.github/workflows/deb-buildd.yml
|
||||||
with:
|
with:
|
||||||
deb-src-artifact-id: ${{ needs.source-only.outputs.deb-src-artifact-id }}
|
deb-src-artifact-id: ${{ needs.source-only.outputs.deb-src-artifact-id }}
|
||||||
|
|||||||
12
debian/control
vendored
12
debian/control
vendored
@ -4,17 +4,21 @@ Section: utils
|
|||||||
Priority: optional
|
Priority: optional
|
||||||
Standards-Version: 4.7.0
|
Standards-Version: 4.7.0
|
||||||
Build-Depends: debhelper-compat (= 13),
|
Build-Depends: debhelper-compat (= 13),
|
||||||
cargo,
|
cargo:native,
|
||||||
|
dh-cargo,
|
||||||
dh-dkms,
|
dh-dkms,
|
||||||
|
gcc:native,
|
||||||
jq,
|
jq,
|
||||||
libaio-dev,
|
libaio-dev,
|
||||||
libblkid-dev,
|
libblkid-dev,
|
||||||
libclang-dev,
|
libclang-dev:native,
|
||||||
libfuse3-dev,
|
libfuse3-dev,
|
||||||
libkeyutils-dev,
|
libkeyutils-dev,
|
||||||
liblz4-dev,
|
liblz4-dev,
|
||||||
libscrypt-dev,
|
libscrypt-dev,
|
||||||
libsodium-dev,
|
libsodium-dev,
|
||||||
|
libstd-rust-dev,
|
||||||
|
libstd-rust-dev:native,
|
||||||
libudev-dev,
|
libudev-dev,
|
||||||
liburcu-dev (>= 0.15),
|
liburcu-dev (>= 0.15),
|
||||||
libzstd-dev,
|
libzstd-dev,
|
||||||
@ -22,7 +26,7 @@ Build-Depends: debhelper-compat (= 13),
|
|||||||
pkgconf,
|
pkgconf,
|
||||||
python3-docutils,
|
python3-docutils,
|
||||||
python3:native,
|
python3:native,
|
||||||
rustc (>= 1.77),
|
rustc:native (>= 1.77),
|
||||||
systemd-dev,
|
systemd-dev,
|
||||||
uuid-dev,
|
uuid-dev,
|
||||||
zlib1g-dev,
|
zlib1g-dev,
|
||||||
@ -41,6 +45,8 @@ Breaks: bcachefs-kernel-dkms (<< ${binary:Version}),
|
|||||||
bcachefs-kernel-dkms (>> ${binary:Version}),
|
bcachefs-kernel-dkms (>> ${binary:Version}),
|
||||||
Replaces: bcachefs-kernel-dkms (<< ${binary:Version}),
|
Replaces: bcachefs-kernel-dkms (<< ${binary:Version}),
|
||||||
bcachefs-kernel-dkms (>> ${binary:Version}),
|
bcachefs-kernel-dkms (>> ${binary:Version}),
|
||||||
|
Built-Using: ${cargo:Built-Using}
|
||||||
|
Static-Built-Using: ${cargo:Static-Built-Using}
|
||||||
Description: bcachefs userspace tools
|
Description: bcachefs userspace tools
|
||||||
Userspace tools for bcachefs, a modern copy on write, checksumming, multi
|
Userspace tools for bcachefs, a modern copy on write, checksumming, multi
|
||||||
device filesystem.
|
device filesystem.
|
||||||
|
|||||||
68
debian/rules
vendored
68
debian/rules
vendored
@ -1,35 +1,37 @@
|
|||||||
#!/usr/bin/make -f
|
#!/usr/bin/make -f
|
||||||
|
|
||||||
include /usr/share/dpkg/architecture.mk
|
export DH_VERBOSE = 1
|
||||||
|
|
||||||
|
export DPKG_EXPORT_BUILDFLAGS = 1
|
||||||
|
export DPKG_EXPORT_BUILDTOOLS = 1
|
||||||
|
|
||||||
|
export DEB_BUILD_OPTIONS += nolto
|
||||||
|
export DEB_BUILD_MAINT_OPTIONS += optimize=-lto
|
||||||
|
|
||||||
|
export DEB_BUILD_MAINT_OPTIONS += hardening=+all
|
||||||
|
|
||||||
|
include /usr/share/dpkg/default.mk
|
||||||
include /usr/share/rustc/architecture.mk
|
include /usr/share/rustc/architecture.mk
|
||||||
|
|
||||||
export DH_VERBOSE=1
|
export DEB_HOST_RUST_TYPE
|
||||||
|
export DEB_HOST_GNU_TYPE
|
||||||
|
|
||||||
export DEB_HOST_RUST_TYPE DEB_HOST_GNU_TYPE
|
export PATH := /usr/share/cargo/bin:$(PATH)
|
||||||
|
export CARGO = /usr/share/cargo/bin/cargo
|
||||||
|
export CARGO_HOME = $(CURDIR)/debian/cargo_home
|
||||||
|
export DEB_CARGO_CRATE = bcachefs-tools_$(DEB_VERSION_UPSTREAM)
|
||||||
|
|
||||||
export DEB_BUILD_MAINT_OPTIONS=hardening=+all
|
export PKG_CONFIG = ${DEB_HOST_MULTIARCH}-pkg-config
|
||||||
export CARGO=/usr/share/cargo/bin/cargo
|
export PKG_CONFIG_PATH = /usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig:/usr/share/pkgconfig
|
||||||
export CARGO_HOME=$(CURDIR)/debian/cargo_home
|
export PKG_CONFIG_LIBDIR = /usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig
|
||||||
export DEB_CARGO_CRATE=bcachefs-tools_$(DEB_VERSION_UPSTREAM)
|
|
||||||
|
|
||||||
NUMJOBS = 1
|
|
||||||
ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
|
|
||||||
NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
|
|
||||||
MAKEFLAGS += -j$(NUMJOBS)
|
|
||||||
endif
|
|
||||||
|
|
||||||
PREFIX := /usr
|
PREFIX := /usr
|
||||||
ROOT_SBINDIR := /usr/sbin
|
ROOT_SBINDIR := /usr/sbin
|
||||||
|
|
||||||
export PREFIX ROOT_SBINDIR
|
export PREFIX ROOT_SBINDIR
|
||||||
|
|
||||||
DEB_BUILD_ARCH ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH)
|
export CARGO_ARGS = --frozen
|
||||||
|
export CARGO_BUILD_TARGET = ${DEB_HOST_RUST_TYPE}
|
||||||
ifeq ($(DEB_BUILD_ARCH),amd64)
|
|
||||||
DEB_BUILD_MAINT_OPTIONS += optimize=-lto
|
|
||||||
endif
|
|
||||||
|
|
||||||
export CARGO_ARGS = "--frozen"
|
|
||||||
|
|
||||||
# WARNING: split debug info makes the package unreproducible!
|
# WARNING: split debug info makes the package unreproducible!
|
||||||
#
|
#
|
||||||
@ -49,25 +51,23 @@ export CARGO_ARGS = "--frozen"
|
|||||||
%:
|
%:
|
||||||
dh $@ --parallel --with dkms
|
dh $@ --parallel --with dkms
|
||||||
|
|
||||||
|
override_dh_auto_clean:
|
||||||
|
$(CARGO) prepare-debian vendor
|
||||||
|
dh_auto_clean
|
||||||
|
|
||||||
|
override_dh_auto_configure:
|
||||||
|
$(CARGO) prepare-debian vendor
|
||||||
|
dh_auto_configure
|
||||||
|
|
||||||
override_dh_clean:
|
override_dh_clean:
|
||||||
# HACK: breaks cargo checksumming by deleting some vendored files.
|
# HACK: breaks cargo checksumming by deleting some vendored files.
|
||||||
|
|
||||||
cargo_config:
|
|
||||||
rm -rf .cargo
|
|
||||||
mkdir -p .cargo
|
|
||||||
cp debian/cargo.config .cargo/config.toml
|
|
||||||
|
|
||||||
override_dh_auto_build:
|
|
||||||
$(MAKE) -f debian/rules cargo_config
|
|
||||||
dh_auto_build
|
|
||||||
|
|
||||||
override_dh_auto_clean:
|
|
||||||
$(MAKE) -f debian/rules cargo_config
|
|
||||||
dh_auto_clean
|
|
||||||
rm -rf .cargo
|
|
||||||
|
|
||||||
override_dh_usrlocal:
|
override_dh_usrlocal:
|
||||||
# FIXME: fails with
|
# FIXME: fails with
|
||||||
# dh_usrlocal: error: debian/bcachefs-tools/usr/local/libexec/bcachefsck_all is not a directory
|
# dh_usrlocal: error: debian/bcachefs-tools/usr/local/libexec/bcachefsck_all is not a directory
|
||||||
|
|
||||||
override_dh_auto_test:
|
override_dh_auto_test:
|
||||||
|
|
||||||
|
# Generate (Static-)Built-Using
|
||||||
|
execute_after_dh_auto_install:
|
||||||
|
/usr/share/cargo/bin/dh-cargo-built-using bcachefs-tools
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user