Hi наб,
Hi debian-mentors (package replacement question below),
On Sat, Sep 07, 2024 at 03:31:16AM +0200, наб wrote:
> * Package name : libcurlfs
> Version : 0
> Upstream Contact: наб <nabijaczleweli@nabijaczleweli.xyz>
> * URL : https://sr.ht/~nabijaczleweli/libcurlfs
> * License : 0BSD
> Programming Lang: C++
> Description : mounts remote HTTP/HTTPS URLs as a FUSE filesystem
this package looks useful. I'll sponsor it. Thanks for working on this.
> This was written as a direct replacement for httpfs2
Looking at d/control, you don't seem to declare the replacement properly.
You need Conflicts+Replaces, not +Breaks,
cf. https://www.debian.org/doc/debian-policy/ch-relationships.html#replacing-whole-packages-forcing-their-removal
Quoting policy:
> When one binary package declares a conflict with another using a
> Conflicts field, dpkg will refuse to allow them to be unpacked on the
> system at the same time. This is a stronger restriction than Breaks,
> which prevents the broken package from being configured while the
> breaking package is in the “Unpacked” state but allows both packages to
> be unpacked at the same time.
Since you include an overlapping httpfs2 symlink in your package Breaks is
inappropriate as even just unpacking would cause a file conflict with
httpfs2.
I get this when trying to install libcurlfs over httpfs2:
dpkg: regarding libcurlfs_0-1_amd64.deb containing libcurlfs:
libcurlfs breaks httpfs2
httpfs2 (version 0.1.4-1.1) is present and installed.
dpkg: error processing archive libcurlfs_0-1_amd64.deb (--install):
installing libcurlfs would break httpfs2, and
deconfiguration is not permitted (--auto-deconfigure might help)
Further
Provides: httpfs2 (= 1)
doesn't look right. I don't think you need a versioned provides here since
no other packages depend on httpfs2, but I don't have much experience with
replaceing packages.
I think it would also be useful to just take over httpfs2 on upgrade from
bookworm, but I can't find any relevant advice on how one might do that. I
thought perhaps the provides with a higher version number than httpfs2 in
stable would encourage apt to upgrade from httpfs2 to libcurlfs on it's own
but I didn't see that happen when upgrade testing in my local repo setup.
One idea I had was to just to build a httpfs2 pseudopackage that depends on
libcurlfs as part of src:libcurlfs.
Thoughts?
Thanks,
--Daniel
Attachment:
signature.asc
Description: PGP signature