Hi! Infreedesktop-sdk[1] <https://gitlab.com/freedesktop-sdk> we're trying to keep ABI compatibility when updating elements like cups to new releases. In order to achieve this we use libabigail[2] <https://sourceware.org/libabigail/> tool to automate ABI compat checks. During update NSS from 3.39 to 3.41 (we missed 3.40 release) our tool produced following complaint:
┌───────────────────────────────┐│ ABI Break: libnss3.so:libnss3 │└───────────────────────────────┘Functions changes summary: 0 Removed, 1 Changed (64 filtered out), 0 Added functionsVariables changes summary: 0 Removed, 0 Changed, 0 Added variable1 function with some indirect sub-type change: [C]'function SECStatus CERT_AddOCSPAcceptableResponses(CERTOCSPRequest*, SECOidTag, ...)' at ocsp.c:2203:1 has some indirect sub-type changes: parameter 2 of type 'typedef SECOidTag' has sub-type changes: underlying type 'enum __anonymous_enum__' at secoidt.h:34:1 changed: type size hasn't changed 4 enumerator insertions: '__anonymous_enum__::SEC_OID_X509_ANY_EXT_KEY_USAGE' value '357' '__anonymous_enum__::SEC_OID_EXT_KEY_USAGE_IPSEC_IKE' value '358' '__anonymous_enum__::SEC_OID_IPSEC_IKE_END' value '359' '__anonymous_enum__::SEC_OID_IPSEC_IKE_INTERMEDIATE' value '360' 1 enumerator change: '__anonymous_enum__::SEC_OID_TOTAL' from value '357' to '361' at secoidt.h:34:1┌───────────────────────────────────────┐│ ABI Break: libnssutil3.so:libnssutil3 │└───────────────────────────────────────┘Functions changes summary: 0 Removed, 1 Changed (12 filtered out), 0 Added functionsVariables changes summary: 0 Removed, 0 Changed, 0 Added variable1 function with some indirect sub-type change: [C]'function SECStatus NSS_GetAlgorithmPolicy(SECOidTag, PRUint32*)' at secoid.c:2217:1 has some indirect sub-type changes: parameter 1 of type 'typedef SECOidTag' has sub-type changes: underlying type 'enum __anonymous_enum__' at secoidt.h:34:1 changed: type size hasn't changed 4 enumerator insertions: '__anonymous_enum__::SEC_OID_X509_ANY_EXT_KEY_USAGE' value '357' '__anonymous_enum__::SEC_OID_EXT_KEY_USAGE_IPSEC_IKE' value '358' '__anonymous_enum__::SEC_OID_IPSEC_IKE_END' value '359' '__anonymous_enum__::SEC_OID_IPSEC_IKE_INTERMEDIATE' value '360' 1 enumerator change: '__anonymous_enum__::SEC_OID_TOTAL' from value '357' to '361' at secoidt.h:34:1┌───────────────────────────────────┐│ ABI Break: libsmime3.so:libsmime3 │└───────────────────────────────────┘Functions changes summary: 0 Removed, 1 Changed (99 filtered out), 0 Added functionsVariables changes summary: 0 Removed, 0 Changed, 0 Added variable1 function with some indirect sub-type change: [C]'function PK11SymKey* NSS_CMSContentInfo_GetBulkKey(NSSCMSContentInfo*)' at cmscinfo.c:363:1 has some indirect sub-type changes: parameter 1 of type 'NSSCMSContentInfo*' has sub-type changes: in pointed to type 'typedef NSSCMSContentInfo' at cmst.h:54:1: underlying type 'struct NSSCMSContentInfoStr' at cmst.h:126:1 changed: type size hasn't changed 1 data member changes (2 filtered): type of 'NSSCMSContent NSSCMSContentInfoStr::content' changed: underlying type 'union NSSCMSContentUnion' at cmst.h:113:1 changed: type size hasn't changed 1 data member changes (3 filtered): type of 'NSSCMSEncryptedData* NSSCMSContentUnion::encryptedData' changed: in pointed to type 'typedef NSSCMSEncryptedData' at cmst.h:65:1: underlying type 'struct NSSCMSEncryptedDataStr' at cmst.h:463:1 changed: type size hasn't changed 1 data member changes (1 filtered): type of 'NSSCMSAttribute** NSSCMSEncryptedDataStr::unprotectedAttr' changed: in pointed to type 'NSSCMSAttribute*': in pointed to type 'typedef NSSCMSAttribute' at cmst.h:69:1: underlying type 'struct NSSCMSAttributeStr' at cmst.h:482:1 changed: type size hasn't changed 1 data member change: type of 'SECOidData* NSSCMSAttributeStr::typeTag' changed: in pointed to type 'typedef SECOidData' at secoidt.h:16:1: underlying type 'struct SECOidDataStr' at secoidt.h:513:1 changed: type size hasn't changed 1 data member change: type of 'SECOidTag SECOidDataStr::offset' changed: underlying type 'enum __anonymous_enum__' at secoidt.h:34:1 changed: type size hasn't changed 4 enumerator insertions: '__anonymous_enum__::SEC_OID_X509_ANY_EXT_KEY_USAGE' value '357' '__anonymous_enum__::SEC_OID_EXT_KEY_USAGE_IPSEC_IKE' value '358' '__anonymous_enum__::SEC_OID_IPSEC_IKE_END' value '359' '__anonymous_enum__::SEC_OID_IPSEC_IKE_INTERMEDIATE' value '360' 1 enumerator change: '__anonymous_enum__::SEC_OID_TOTAL' from value '357' to '361' at secoidt.h:34:1 As part of our discussion[3] <https://gitlab.com/freedesktop-sdk/freedesktop-sdk/merge_requests/874> about what to do with that we would like to ask about your opinion on the matter. Especially I wanted to ask if reported change was intentional and if it's safe for backward compatibility thus if above report is a false positive. I would be grateful if you can find time to respond. Thank you. [1] https://gitlab.com/freedesktop-sdk <https://gitlab.com/freedesktop-sdk> [2] https://sourceware.org/libabigail/ <https://sourceware.org/libabigail/> [3] https://gitlab.com/freedesktop-sdk/freedesktop-sdk/merge_requests/825 <https://gitlab.com/freedesktop-sdk/freedesktop-sdk/merge_requests/825> -- dev-tech-crypto mailing list dev-tech-crypto@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-tech-crypto