Merge pull request #435 from LebedevRI/debian
Some checks failed
build / bcachefs-tools-msrv (push) Has been cancelled
.deb build orchestrator / source-only (push) Has been cancelled
.deb build orchestrator / buildd (map[name:debian version:forky], map[arch:amd64 runs-on:ubuntu-latest]) (push) Has been cancelled
.deb build orchestrator / buildd (map[name:debian version:forky], map[arch:arm64 runs-on:ubuntu-24.04-arm]) (push) Has been cancelled
.deb build orchestrator / buildd (map[name:debian version:trixie], map[arch:amd64 runs-on:ubuntu-latest]) (push) Has been cancelled
.deb build orchestrator / buildd (map[name:debian version:trixie], map[arch:arm64 runs-on:ubuntu-24.04-arm]) (push) Has been cancelled
.deb build orchestrator / buildd (map[name:debian version:unstable], map[arch:amd64 runs-on:ubuntu-latest]) (push) Has been cancelled
.deb build orchestrator / buildd (map[name:debian version:unstable], map[arch:arm64 runs-on:ubuntu-24.04-arm]) (push) Has been cancelled
.deb build orchestrator / buildd (map[name:ubuntu version:plucky], map[arch:amd64 runs-on:ubuntu-latest]) (push) Has been cancelled
.deb build orchestrator / buildd (map[name:ubuntu version:plucky], map[arch:arm64 runs-on:ubuntu-24.04-arm]) (push) Has been cancelled
.deb build orchestrator / buildd (map[name:ubuntu version:questing], map[arch:amd64 runs-on:ubuntu-latest]) (push) Has been cancelled
.deb build orchestrator / buildd (map[name:ubuntu version:questing], map[arch:arm64 runs-on:ubuntu-24.04-arm]) (push) Has been cancelled
.deb build orchestrator / publish (push) Has been cancelled
update-flake-lock / lockfile (push) Has been cancelled
Nix Flake actions / nix-matrix (push) Has been cancelled
Nix Flake actions / ${{ matrix.name }} (${{ matrix.system }}) (push) Has been cancelled

Debian: ensure smooth upgrade paths when files are moved between packages
This commit is contained in:
koverstreet 2025-09-27 15:20:41 -05:00 committed by GitHub
commit 608ccdd381
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 27 additions and 12 deletions

View File

@ -36,7 +36,7 @@ jobs:
attestations: write attestations: write
steps: steps:
- name: Install necessary packages - name: Install necessary packages
timeout-minutes: 1 timeout-minutes: 2
run: | run: |
set -xe set -xe
tee /etc/dpkg/dpkg.cfg.d/force-unsafe-io > /dev/null <<EOT tee /etc/dpkg/dpkg.cfg.d/force-unsafe-io > /dev/null <<EOT
@ -68,8 +68,9 @@ jobs:
deb http://deb.debian.org/debian unstable main deb http://deb.debian.org/debian unstable main
EOT EOT
apt update apt update
apt full-upgrade apt install eatmydata
apt install \ eatmydata apt full-upgrade
eatmydata apt install \
${{ inputs.dist-name }}-keyring \ ${{ inputs.dist-name }}-keyring \
autopkgtest \ autopkgtest \
curl \ curl \
@ -148,11 +149,20 @@ jobs:
\$run_piuparts = 0; \$run_piuparts = 0;
\$run_autopkgtest = 0; \$run_autopkgtest = 0;
push @{\$unshare_mmdebstrap_extra_args}, "*", [ push @{\$unshare_mmdebstrap_extra_args}, "*", [
'--include=eatmydata',
'--variant=apt' '--variant=apt'
]; ];
EOT EOT
if [ "${{ inputs.dist-name }}" = "debian" ]; if [ "${{ inputs.dist-name }}" = "debian" ];
then then
tee -a ~/.sbuildrc > /dev/null <<EOT
push @{\$unshare_mmdebstrap_extra_args}, "*", [
'--hook-dir=/usr/share/mmdebstrap/hooks/eatmydata'
];
EOT
fi
if [ "${{ inputs.dist-name }}" = "debian" ];
then
MIRROR="http://deb.debian.org/debian" MIRROR="http://deb.debian.org/debian"
elif [ "${{ inputs.dist-name }}" = "ubuntu" ] && [ "${{ inputs.arch }}" = "amd64" ]; elif [ "${{ inputs.dist-name }}" = "ubuntu" ] && [ "${{ inputs.arch }}" = "amd64" ];
then then
@ -244,7 +254,7 @@ jobs:
then then
export DEB_BUILD_OPTIONS=noautodbgsym export DEB_BUILD_OPTIONS=noautodbgsym
fi fi
sbuild --verbose --arch-any --arch-all "$GITHUB_WORKSPACE/deb-src/"*.dsc eatmydata sbuild --verbose --arch-any --arch-all "$GITHUB_WORKSPACE/deb-src/"*.dsc
- name: Ensure that all binary artifacts are signed, or sign them - name: Ensure that all binary artifacts are signed, or sign them
timeout-minutes: 1 timeout-minutes: 1
if: steps.gpg.conclusion != 'skipped' if: steps.gpg.conclusion != 'skipped'
@ -294,10 +304,10 @@ jobs:
set -xe set -xe
IMAGE="/tmp/autopkgtest-qemu-image.qcow2" IMAGE="/tmp/autopkgtest-qemu-image.qcow2"
echo "IMAGE=$(echo ${IMAGE})" >> $GITHUB_ENV echo "IMAGE=$(echo ${IMAGE})" >> $GITHUB_ENV
mmdebstrap-autopkgtest-build-qemu --boot=efi --mirror "${{ env.MIRROR }}" "${{ inputs.dist-version }}" "$IMAGE" eatmydata mmdebstrap-autopkgtest-build-qemu --boot=efi --mirror "${{ env.MIRROR }}" "${{ inputs.dist-version }}" "$IMAGE"
- name: Run autopkgtest - name: Run autopkgtest
timeout-minutes: 10 timeout-minutes: 10
if: steps.qemu-image.conclusion != 'skipped' if: steps.qemu-image.conclusion != 'skipped'
run: | run: |
set -xe set -xe
autopkgtest --no-built-binaries --apt-upgrade "$GITHUB_WORKSPACE/deb-src"/*.dsc "${{ env.BUILD_DIR }}"/*.changes -- autopkgtest-virt-qemu --qemu-options="-smp $(nproc --all)" --boot=efi "${{ env.IMAGE }}" eatmydata autopkgtest --no-built-binaries --apt-upgrade "$GITHUB_WORKSPACE/deb-src"/*.dsc "${{ env.BUILD_DIR }}"/*.changes -- autopkgtest-virt-qemu --qemu-options="-smp $(nproc --all)" --boot=efi "${{ env.IMAGE }}"

View File

@ -23,7 +23,7 @@ jobs:
SUITE: ${{ (github.event_name == 'push' && github.ref_type == 'tag') && 'release' || 'snapshot' }} SUITE: ${{ (github.event_name == 'push' && github.ref_type == 'tag') && 'release' || 'snapshot' }}
steps: steps:
- name: Install necessary packages - name: Install necessary packages
timeout-minutes: 1 timeout-minutes: 2
run: | run: |
set -xe set -xe
tee /etc/dpkg/dpkg.cfg.d/force-unsafe-io > /dev/null <<EOT tee /etc/dpkg/dpkg.cfg.d/force-unsafe-io > /dev/null <<EOT

View File

@ -31,7 +31,7 @@ jobs:
DEBPKG_EPOCH: 1 DEBPKG_EPOCH: 1
steps: steps:
- name: Install necessary packages - name: Install necessary packages
timeout-minutes: 1 timeout-minutes: 2
run: | run: |
set -xe set -xe
tee /etc/dpkg/dpkg.cfg.d/force-unsafe-io > /dev/null <<EOT tee /etc/dpkg/dpkg.cfg.d/force-unsafe-io > /dev/null <<EOT
@ -63,8 +63,9 @@ jobs:
deb http://deb.debian.org/debian unstable main deb http://deb.debian.org/debian unstable main
EOT EOT
apt update apt update
apt full-upgrade apt install eatmydata
apt install \ eatmydata apt full-upgrade
eatmydata apt install \
${{ inputs.dist-name }}-keyring \ ${{ inputs.dist-name }}-keyring \
curl \ curl \
devscripts \ devscripts \
@ -130,6 +131,8 @@ jobs:
EOT EOT
tee -a ~/.sbuildrc > /dev/null <<EOT tee -a ~/.sbuildrc > /dev/null <<EOT
push @{\$unshare_mmdebstrap_extra_args}, "*", [ push @{\$unshare_mmdebstrap_extra_args}, "*", [
'--include=eatmydata',
'--hook-dir=/usr/share/mmdebstrap/hooks/eatmydata',
'http://deb.debian.org/debian', 'http://deb.debian.org/debian',
'--variant=apt', '--variant=apt',
'--keyring=/usr/share/keyrings/debian-keyring.gpg', '--keyring=/usr/share/keyrings/debian-keyring.gpg',
@ -140,7 +143,7 @@ jobs:
timeout-minutes: 1 timeout-minutes: 1
run: | run: |
set -xe set -xe
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain $RUST_VERSION --profile minimal -y eatmydata curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain $RUST_VERSION --profile minimal -y
. "$HOME/.cargo/env" . "$HOME/.cargo/env"
- name: Fetch our git repository - name: Fetch our git repository
timeout-minutes: 1 timeout-minutes: 1
@ -174,7 +177,7 @@ jobs:
cd "$GITHUB_WORKSPACE/bcachefs-tools" cd "$GITHUB_WORKSPACE/bcachefs-tools"
mkdir -p "$GITHUB_WORKSPACE/deb-src" mkdir -p "$GITHUB_WORKSPACE/deb-src"
# FIXME: pubkey is not avaliable in chroot, .dsc signature verification fails # FIXME: pubkey is not avaliable in chroot, .dsc signature verification fails
gbp buildpackage --git-verbose --git-ignore-branch --no-clean --git-dist=${{ inputs.dist-version }} --git-builder=sbuild --source --source-only-changes --no-arch-all --no-arch-any eatmydata gbp buildpackage --git-verbose --git-ignore-branch --no-clean --git-dist=${{ inputs.dist-version }} --git-builder=sbuild --source --source-only-changes --no-arch-all --no-arch-any
- name: Ensure that all source artifacts are signed, or sign them - name: Ensure that all source artifacts are signed, or sign them
timeout-minutes: 1 timeout-minutes: 1
if: steps.gpg.conclusion != 'skipped' if: steps.gpg.conclusion != 'skipped'

2
debian/control vendored
View File

@ -39,6 +39,8 @@ Recommends: bcachefs-kernel-dkms (= ${binary:Version}),
initramfs-tools | linux-initramfs-tool, initramfs-tools | linux-initramfs-tool,
Breaks: bcachefs-kernel-dkms (<< ${binary:Version}), Breaks: bcachefs-kernel-dkms (<< ${binary:Version}),
bcachefs-kernel-dkms (>> ${binary:Version}), bcachefs-kernel-dkms (>> ${binary:Version}),
Replaces: bcachefs-kernel-dkms (<< ${binary:Version}),
bcachefs-kernel-dkms (>> ${binary:Version}),
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.