I looked into the current libprelude rc bugs and in the end, I give up. Yet, let me summarize my findings.
I looked at symbol differences between jessie's libprelude2 and stretch's. Indeed, the C++ library breaks ABI and would need an soname bump if we had reverse dependencies to consider. Thus the patch from Andreas Beckmann should be uploaded for stretch and the rdeps should be binNMUed to confirm. Julien Cristau (with release team hat) acked the approach. Making it build looked harder to me. It seems that the switch from swig 3.0.7 to 3.0.10 made it no longer emit the fragment SWIG_From_long_SS_long. Indeed no non-ignored function returns a long long, so it seems that the newer swig recognizes the function to be unnecessary and no longer emits it. Unfortunately, the hand-written IDMEFValue_to_SWIG still uses it causing the FTBFS. This only happens for perl and after supplying the function libprelude builds. A hacky way to supply it is copying it from swig. Thus dropping the attached patch into d/patches makes it build. I'm not quite convinced that it is a good approach though. Given that we are discussing the 9th NMU of libprelude and given that both upstream and Fedora are at version 3.1.0 rather than 1.0.0, I question the usefulness of libprelude in Debian. dak rm reports: * audit: Could pass --without-prelude, kill the audispd-prelude plugin * libpreludedb: Remove. dak rm reports prelude-manager and prewikka * nufw: --without-prelude-log * prelude-correlator: Remove. dak rm reports no problems. * prelude-lml: Remove. dak rm reports no problems. * prelude-manager: Remove. dak rm reports no problems. * prelude-notify: Remove. dak rm reports no problems. * sagan: Is libprelude actually used? Otherwise remove. * samhain: --without-prelude * suricata: --disable-prelude * prewikka: Remove. dak rm reports no problems. Despite libprelude being a key package (due to audit), it seems feasible to remove it at this point. Removing it turns these two rc bugs into 4 easier rc bugs plus 9 removals. Any objections? Helmut
Author: Helmut Grohne <[email protected]> Bug-Debian: https://bugs.debian.org/844897 Index: libprelude-1.0.0/bindings/perl/libpreludecpp-perl.i =================================================================== --- libprelude-1.0.0.orig/bindings/perl/libpreludecpp-perl.i +++ libprelude-1.0.0/bindings/perl/libpreludecpp-perl.i @@ -1,3 +1,22 @@ +%{ +/* swig no longer emits SWIG_From_long_SS_long since 3.0.10, but it is still + * used by IDMEFValue_to_SWIG. So place a copy from swig here. */ +SWIGINTERNINLINE SV * +SWIG_From_long_SS_long(long long value) +{ + SV *sv; + if (IVSIZE >= sizeof(value) || (value >= IV_MIN && value <= IV_MAX)) + sv = newSViv((IV)(value)); + else { + //sv = newSVpvf("%lld", value); doesn't work in non 64bit Perl + char temp[256]; + sprintf(temp, "%lld", value); + sv = newSVpv(temp, 0); + } + return sv_2mortal(sv); +} +%} + /* Exception map */ %typemap(throws) Prelude::PreludeError %{ SWIG_exception(SWIG_RuntimeError, $1.what());

