Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

doesn't build against libcapi20-3 from debian #10

Open
laf0rge opened this issue Apr 15, 2022 · 4 comments
Open

doesn't build against libcapi20-3 from debian #10

laf0rge opened this issue Apr 15, 2022 · 4 comments

Comments

@laf0rge
Copy link

laf0rge commented Apr 15, 2022

I'm currently trying to build this on a debian unstable machine (libcapi20-3 3.27-3+b1 plus related libcapi20-dev installed) based on top of mISDN + mISDNuser with capi20 support.

The debian package hasn't really changed since 2014, so I presume the code didn't build at least as long.

The problem is the check for CAPI_LIBRARY_V2 which is not defined in this environment:
checking for CAPI_LIBRARY_V2 signature in capiutils.h... no

grep LIBRARY_V2 /usr/include/*capi* /usr/include/capiutils.h:#ifndef CAPI_LIBRARY_V2 /usr/include/capiutils.h:#ifndef CAPI_LIBRARY_V2 /usr/include/capiutils.h:#ifndef CAPI_LIBRARY_V2 /usr/include/capiutils.h:#ifndef CAPI_LIBRARY_V2 /usr/include/capiutils.h:#ifndef CAPI_LIBRARY_V2 /usr/include/capiutils.h:#ifndef CAPI_LIBRARY_V2 /usr/include/capiutils.h:#ifndef CAPI_LIBRARY_V2 /usr/include/capiutils.h:#ifndef CAPI_LIBRARY_V2 /usr/include/capiutils.h:#ifndef CAPI_LIBRARY_V2 /usr/include/capiutils.h:#ifndef CAPI_LIBRARY_V2 /usr/include/capiutils.h:#ifndef CAPI_LIBRARY_V2 /usr/include/capiutils.h:#ifndef CAPI_LIBRARY_V2 /usr/include/capiutils.h:#ifndef CAPI_LIBRARY_V2 /usr/include/capiutils.h:#ifndef CAPI_LIBRARY_V2 /usr/include/capiutils.h:#ifndef CAPI_LIBRARY_V2 /usr/include/capiutils.h:#ifndef CAPI_LIBRARY_V2 /usr/include/capiutils.h:#ifndef CAPI_LIBRARY_V2 /usr/include/capiutils.h:#ifndef CAPI_LIBRARY_V2 /usr/include/capiutils.h:#ifndef CAPI_LIBRARY_V2 /usr/include/capiutils.h:#ifndef CAPI_LIBRARY_V2 /usr/include/capiutils.h:#ifndef CAPI_LIBRARY_V2 /usr/include/capiutils.h:#ifndef CAPI_LIBRARY_V2 /usr/include/capiutils.h:#ifndef CAPI_LIBRARY_V2 /usr/include/capiutils.h:#ifndef CAPI_LIBRARY_V2

I'm not sure how this is (or was) supposed to work? Against which libcapi20 versions had this been working in the past?

I'm trying to disable the check and see if I can get it work, current WIP is at https://gitea.osmocom.org/retronetworking/capisuite in the unlikely case anyone cares ;)

@laf0rge
Copy link
Author

laf0rge commented Apr 15, 2022

AFAICT also the older libcapi20 versions from within isdnutils should never have exposed that #define? As far as I can see in https://github.com/marschap/isdnutils-debian the #define is only set in the compiler flags while building the library, but never actually stored in any #define of a header file. The history of above repo goes back to isdnutils-2.0

@laf0rge
Copy link
Author

laf0rge commented Apr 15, 2022

Related: marschap/isdn4k-utils@20e0bee

@laf0rge
Copy link
Author

laf0rge commented Apr 15, 2022

Ok, last but not least I could find marschap/isdn4k-utils@57e8ffa stating that the CAPI_LIBRARY_V2 is a backwards compatibility hack to support building libcapi20 3.x with support for applications compiled against libcapi20 2.x.

I'm not sure why this should matter in any way if I'm compiling/linking a program from source (like capisuite). It should use whatever ABI is described by the CAPI header files, and hence be compatible to whatever ABI is exposed by the installed library. Ever since 2005 apparently this is normally the ABIv3.

@larsimmisch
Copy link
Owner

Odd. I definitely used mISDN and mISDNuser when I last compiled capisuite (but that was a long time ago and not via that github repo that you linked to)

Did removing the check fix the problem?

FWIW, I do remember that CAPI implementations were supposed to be shipped as shared objects.

Frohe Ostern!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants