Package: release.debian.org Severity: normal User: release.debian....@packages.debian.org Usertags: unblock
Please review and give pre-approval comments for an upload of krb5. [ Reason ] In #985739 it was pointed out that internal symbols disappeared from libk5crypto. My bad; I noticed this, confirmed they were not externally visible, approved the symbols file change, but didn't think about the upgrade implications. What happens is that if the new libk5crypto3 is unpacked before the new libkrb5-3, the old libkrb5-3 breaks. In the bug, the user managed to get into a position where pam_krb5 was broken and logins didn't work. So, update the breaks, or add an equals binary:Version depends, no big, right? While I wasn't looking, krb5 has apparently become part of pseudo-essential. login->libpam-modules->libnsl->libtirpc3->libgssapi-krb5-2->libk5crypto3|libkrb5-3 The only reason I even know that is because I've been tracking pam. Long term, we don't want that. As a result, it's probably the case in #985739 that pam_unix is broken as well as pam_krb5. I'm not really an expert on all the ways that dependency resolution gets complex for essential packages. I do know that dependencies for essential packages are supposed to be pre-depends. That's not currently the case for anything in krb5, or for libkeyutils, libcomerr-2, etc. So, we have a few options. 1) Add the breaks. Things are fairly stable in this part of the dependency graph; it was 2016 when libk5crypto last had an internally-incompatible break. That will probably work in practice. On #debian-devel, Adrian Bunk argues that it should be a versioned conflicts not a break because it's essential. I'm not sure--I think in most situations the fact that you cannot unpack the breaking package without deconfiguring the broken package means that apt will simply reorder things so that libk5crypto3 comes before libkrb5-3 and all happens to be well with the breaks. 2) Do we also want to add the pre-depends to krb5. I'm nervous adding additional pre-depends this late in the process. 3) Do we want to add pre-depends to the entire dependency chain from libpam-modules to libkeyutils|libcom-err2? I think this is technically correct, but I am uncomfortable with it. 4) Do we want to do enough surgery to pam to avoid krb5 being essential. With my pam hat on in January, I concluded it was too late in the process for me to feel comfortable adequately testing a (not yet developed) patch. That was before I realized how big of a deal it might be that krb5 had become essential. The solution basically involves making pam_unix dlopen its dependencies for nis rather than link-time dependencies. So, ugly games with c macros or wrappers trying to get some internally typed NIS APIs right. I definitely do not have time to develop the patch, although I could potentially make time to review and help test. I consider this risky for bullseye. I think my recommendation is go approve the breaks change, and hope that's good enough in practice. [ Tests ] (What automated or manual tests cover the affected code?) I've done some manual tests to look at how apt tends to resolve things. I realize that's horribly unreliable because of all the complex dependencies someone might have. One thing I have determined is that an = binary:version dependency from libkrb5-3 to libk5crypto3 tends to make it more likely that apt will pick the unpack order that breaks things. [ Checklist ] [x ] all changes are documented in the d/changelog [x ] I reviewed all changes and I approve them [x] attach debdiff against the package in testing unblock krb5/1.18.3-5 diff --git a/debian/changelog b/debian/changelog index e7224b1253..b0f668489d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +krb5 (1.18.3-5) unstable; urgency=medium + + * Update breaks on libk5crypto3 toward other internal libraries because + of removed internal symbols, Closes: #985739 + + -- Sam Hartman <hartm...@debian.org> Sun, 28 Mar 2021 13:43:01 -0400 + krb5 (1.18.3-4) unstable; urgency=medium diff --git a/debian/control b/debian/control index 55fea8c334..c0e10fe25d 100644 --- a/debian/control +++ b/debian/control @@ -352,7 +352,7 @@ Description: MIT Kerberos runtime libraries - Administration Clients Package: libk5crypto3 Section: libs -Breaks: libkrb5-3 (<= 1.8~aa), libgssapi-krb5-2 (<= 1.10+dfsg~alpha1) +Breaks: libkrb5-3 (<= 1.18~), libgssapi-krb5-2 (<= 1.18~) Architecture: any Depends: ${misc:Depends}, ${shlibs:Depends} Suggests: krb5-doc, krb5-user