Control: retitle -1 shishi: FTBFS with pam >= 1.3 Just some litte fly-by comment looking over RC bugs affecting testing:
I can also reproduce the FTBFS in an unstable chroot (so nothing testing specific with that build failure). The log is not really helpful here, as libtool only prints stderr of the -DPIC compilation, but hides stderr of the non-PIC compilation, while only the non-PIC compilation fails (the PIC case only produces harmless warnings). Unhiding the output of that gcc run gives the following result: | pam_shishi.c: In function 'pam_sm_authenticate': | pam_shishi.c:185:48: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] | pam_set_data (pamh, "shishi_setcred_return", (void *) retval, NULL); | ^ | pam_shishi.c: At top level: | pam_shishi.c:292:8: error: variable '_pam_shishi_modstruct' has initializer but incomplete type | struct pam_module _pam_shishi_modstruct = { | ^~~~~~~~~~ | pam_shishi.c:293:3: warning: excess elements in struct initializer | "pam_shishi", | ^~~~~~~~~~~~ | pam_shishi.c:293:3: note: (near initialization for '_pam_shishi_modstruct') | pam_shishi.c:294:3: warning: excess elements in struct initializer | pam_sm_authenticate, | ^~~~~~~~~~~~~~~~~~~ | pam_shishi.c:294:3: note: (near initialization for '_pam_shishi_modstruct') | pam_shishi.c:295:3: warning: excess elements in struct initializer | pam_sm_setcred, | ^~~~~~~~~~~~~~ | pam_shishi.c:295:3: note: (near initialization for '_pam_shishi_modstruct') | pam_shishi.c:296:3: warning: excess elements in struct initializer | pam_sm_acct_mgmt, | ^~~~~~~~~~~~~~~~ | pam_shishi.c:296:3: note: (near initialization for '_pam_shishi_modstruct') | pam_shishi.c:297:3: warning: excess elements in struct initializer | pam_sm_open_session, | ^~~~~~~~~~~~~~~~~~~ | pam_shishi.c:297:3: note: (near initialization for '_pam_shishi_modstruct') | pam_shishi.c:298:3: warning: excess elements in struct initializer | pam_sm_close_session, | ^~~~~~~~~~~~~~~~~~~~ | pam_shishi.c:298:3: note: (near initialization for '_pam_shishi_modstruct') | pam_shishi.c:299:3: warning: excess elements in struct initializer | pam_sm_chauthtok | ^~~~~~~~~~~~~~~~ | pam_shishi.c:299:3: note: (near initialization for '_pam_shishi_modstruct') | pam_shishi.c:292:19: error: storage size of '_pam_shishi_modstruct' isn't known | struct pam_module _pam_shishi_modstruct = { | ^~~~~~~~~~~~~~~~~~~~~ | /usr/include/security/pam_modules.h: In function 'pam_sm_authenticate': | pam_shishi.c:127:7: warning: ignoring return value of 'asprintf', declared with attribute warn_unused_result [-Wunused-result] | asprintf ((char **) &msg[0].msg, "Password for `%s@%s': ", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | shishi_principal_default (h), shishi_realm_default (h)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Looking at the sourcecode of the pam sourcepackage, it seems like suppor for PAM_STATIC was removed with pam upstream 1.3.0, which hit Debian with 1.3.1-3 uploaded 2019-02-12. Taking a look at other pam_modules, they do not define PAM_STATIC themself under any circumstances but only check it, while extra/pam_shishi/pam_shishi.c contains: | #ifndef PIC | #define PAM_STATIC | #endif Looking around at some old pam documentation, my guess is that PAM_STATIC is only to be used if modules are to be linked into libpam directly. So I think those three lines above are in error and without them this build failure might also be fixed. @vorlon: could you take a look if my understanding of PAM_STATIC is correct and it is nothing that should be defined if compiled as an pam module outside of the pam source tree? Bernhard R. Link -- F8AC 04D5 0B9B 064B 3383 C3DA AFFC 96D1 151D FFDC