This looks great and very thorough, Fabian. thank you! I'm trying to reason about some of the details, to see how we can simplify things further. Some questions:
* why put the module reloading in wireguard-tools.postinst and not in wireguard.postinst ? There's no guarantee that wireguard-dkms will have been upgraded by the time wireguard-tools.postinst gets invoked. Indeed, wireguard-tools only "Recommends: wireguard-dkms (= ${source:Version})", but doesn't "Depends: wireguard-dkms". In some sense, i think this might actually belong in the postinst of the wireguard metapackage, where we can be sure that both subpackages (the kernel parts and the userspace parts) have been installed. For minimalist installations (those without the wireguard metapackage) the admins can handle the upgrades manually themselves. * The debconf question looks good (and thank you for taking the time to care for i18n!), but i'm wondering whether three values is too many to choose from. Is there any common use case where people would really need to have "always" instead of "module"? * heading further down the simplification path, what if we just said that the "wireguard" metapackage would take the behavior currently specified as "module" directly in it's postinst configuration, without offering the admin any choice? The admins who don't want that behavior can always choose to not install the "wireguard"` package, and can track the two sub-packages manually. I hope it's not too frustrating that i suggested the use of debconf over on the mailing list, and now i'm suggesting that maybe we don't need to use it at all. Seeing both eggie's work and your work on this has helped me think through the various options much farther than i would have gotten on my own. If we end up with something even simpler, that might be even better! What do you think about this simplified proposal? To implement it, i'd probably change the description of the wireguard metapackage to clarify this new additional functionality, and then try to make a trimmed down version of your postinst script that does things as simply/quietly as possible. --dkg
signature.asc
Description: PGP signature