]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
debian,ceph.spec: split ceph-osd into shared base and implementation packages
authorKefu Chai <k.chai@proxmox.com>
Tue, 30 Sep 2025 13:04:46 +0000 (21:04 +0800)
committerMatan Breizman <mbreizma@redhat.com>
Wed, 12 Nov 2025 18:07:29 +0000 (18:07 +0000)
commita37b5b5bde8c2e8d6890f16b31046119ed55f25d
treede514aaaa35060f99b23dec5d1f93871b76e6977
parent53960968e7652cce9e2dc7473f92f2e8818f64c5
debian,ceph.spec: split ceph-osd into shared base and implementation packages

Previously, ceph-osd packaging had two mutually exclusive flavors that
could only be built one at a time: one with classic OSD and another
with crimson OSD. Both provided /usr/bin/ceph-osd, making them
impossible to coexist and confusing from a user perspective.
This commit restructures the packaging to enable both implementations
to coexist on the same system:

- ceph-osd: Contains shared components (systemd units, sysctl configs,
  common executables like ceph-erasure-code-tool) and depends on exactly
  one OSD implementation
- ceph-osd-classic: Contains the classic OSD implementation binary and
  classic-specific tools
- ceph-osd-crimson: Contains the crimson OSD implementation binary and
  crimson-specific tools

The two implementation packages install different sets of file, so they
don't conflict with each other anymore, and both depend on ceph-osd for
shared resources.

Changes:

Debian packaging:

- Revert e5f00d2f
- Add ceph-osd-crimson package
- Add Recommends: ceph-osd-classic to prefer classic on upgrades
- Add Replaces/Breaks for smooth upgrades from old monolithic package
- Create separate .install files for crimson and classic osd packages
  Enforce exact version matching using ${binary:Version}

RPM packaging:

- Use rich dependencies for OR requirement (classic or crimson)
- Add Recommends: ceph-osd-classic for upgrade preference

Upgrade behavior:

Users upgrading from older versions will automatically get
ceph-osd-classic due to the Recommends directive, maintaining
backward compatibility. Users can explicitly choose crimson by
installing ceph-osd-crimson, which will coexist with classic.
Switching between implementations is supported via standard package
operations, with the alternatives system ensuring /usr/bin/ceph-osd
always points to the active implementation.

Signed-off-by: Kefu Chai <k.chai@proxmox.com>
ceph.spec.in
debian/ceph-osd-classic.install [new file with mode: 0755]
debian/ceph-osd-classic.postinst [new file with mode: 0644]
debian/ceph-osd-classic.prerm [new file with mode: 0644]
debian/ceph-osd-crimson.install [new file with mode: 0755]
debian/ceph-osd-crimson.postinst [new file with mode: 0644]
debian/ceph-osd-crimson.prerm [new file with mode: 0644]
debian/ceph-osd.install [changed mode: 0755->0644]
debian/control
debian/rules