Skip to content
This repository has been archived by the owner on Feb 12, 2022. It is now read-only.

Included uthash 2.0.1 conflicts with pre-installed uthash 2.2.0 #148

Open
1 task done
holsta opened this issue Feb 12, 2021 · 0 comments
Open
1 task done

Included uthash 2.0.1 conflicts with pre-installed uthash 2.2.0 #148

holsta opened this issue Feb 12, 2021 · 0 comments

Comments

@holsta
Copy link

holsta commented Feb 12, 2021

I have:

  • searched open and closed issues for duplicates

Bug description

OpenBSD has uthash 2.2.0 as a package and because of the search order of libsignal-protocol-c, compiling fails with:

FAILED: tests/CMakeFiles/test_group_cipher.dir/test_group_cipher.c.o /usr/obj/ports/libsignal-protocol-c-2.3.3/bin/cc -I/usr/local/include -I/usr/obj/ports/libsignal-protocol-c-2.3.3/libsignal-protocol-c-2.3.3/tests/. +-I/usr/obj/ports/libsignal-protocol-c-2.3.3/libsignal-protocol-c-2.3.3/tests/../src -O2 -pipe -fmessage-length=0 -Wall -Wmissing-field-initializers +-Wno-missing-braces -Wparentheses -Wswitch -Wunused-variable -Wunused-value -Wshadow -Wint-conversion -Wpointer-sign -Wprotocol -Wshorten-64-to-32 +-Wno-unused-function -Wno-invalid-source-encoding -Wno-shorten-64-to-32 -DNDEBUG -MD -MT tests/CMakeFiles/test_group_cipher.dir/test_group_cipher.c.o -MF +tests/CMakeFiles/test_group_cipher.dir/test_group_cipher.c.o.d -o tests/CMakeFiles/test_group_cipher.dir/test_group_cipher.c.o -c +/usr/obj/ports/libsignal-protocol-c-2.3.3/libsignal-protocol-c-2.3.3/tests/test_group_cipher.c In file included from /usr/obj/ports/libsignal-protocol-c-2.3.3/libsignal-protocol-c-2.3.3/tests/test_group_cipher.c:11: In file included from /usr/obj/ports/libsignal-protocol-c-2.3.3/libsignal-protocol-c-2.3.3/tests/./test_utarray.h:8: /usr/local/include/utarray.h:42:2: error: "The name of macro 'oom' has been changed to 'utarray_oom'. Please update your code." #error "The name of macro 'oom' has been changed to 'utarray_oom'. Please update your code." ^ 1 error generated.

Steps to reproduce

  • have uthash installed in /usr/local/include
  • compile libsignal-protocol-c
  • get the above error

For now, I have renamed the utarray.c, utlist.c and uthash.c files inside Signal to *_local.h and that should make it into the upcoming OpenBSD 6.9.

Updating the uthash version shipped with libsignal seems like a short-lived solution. I feel libsignal-protocol-c should have a hermetic build process. At minimum, the build include order should be switched or uthash should be an external requirement. Which solution would you accept in a PR?

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

No branches or pull requests

1 participant