> There was an accidental ABI breakage a while ago > And I thought that bumping to libtesseract4 was the right thing to do
... <juliank> The important question is: How did this ABI break happen? Upstream change or only an effect of the C++ transition? > I had been assuming upstream change > But actually I'm not sure how to tell <olly> well, the symbol demangles to tesseract::TessBaseAPI::AnalyseLayout() so look and see if there's anything changed there between the versions ... <juliank> jbreiden: Wait a mo. The problem is far easier to solve <juliank> Just move the body from "PageIterator* AnalyseLayout() { <juliank> + return AnalyseLayout(false); <juliank> + }" from the header into the .cpp <juliank> this function was accidentally inlined in the refactoring <juliank> then you should have the old ABI again <bremner> but incompatible with upstream <juliank> Well, it is a change that can be done upstream <juliank> All old code continues working <juliank> even code built against the broken version, as those have that function inlined ... > Okay, I'll try it. I'll call the resulting package libtesseract3. <juliank> Yes, then you could just rename it back entirely and all trouble is gone > Do I need to do something special to get rid of libtesseract4? <olly> that's certainly the cleanest solution you could hope for <juliank> jbreiden: You could break/replace that. not sure if worth the trouble