Daniel Gröber
2024-09-08 13:40:01 UTC
Hi Маб,
Hi debian-mentors (package replacement question below),
You need Conflicts+Replaces, not +Breaks,
cf. https://www.debian.org/doc/debian-policy/ch-relationships.html#replacing-whole-packages-forcing-their-removal
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
Hi debian-mentors (package replacement question below),
* Package name : libcurlfs
Version : 0
* 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.Version : 0
* URL : https://sr.ht/~nabijaczleweli/libcurlfs
* License : 0BSD
Programming Lang: C++
Description : mounts remote HTTP/HTTPS URLs as a FUSE filesystem
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
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 isConflicts 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.
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