-
-
Notifications
You must be signed in to change notification settings - Fork 70
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
Direct dependency "libunistring" has no configure options #214
Comments
Libidn2 either has the needed unistring functions included (at least this is a built option for libidn2) or is already linked to libunistring when dynamically built. E.g.
So having libunistring as a direct dependency in So are you sure that a |
Yes it would help. I ran into the same situation, building psl with libunistring in /usr/local results in 2 references to it:
All tests fail because of this. And libidn has the correct reference:
This just worked (something I also use with curl):
|
I'm currently failing to build from the master. 😢 I'm not entirely sure what is going wrong, but it's an unrelated problem (some parts of the autoconf stuff fails). I may have messed up my autoconf installation, or it is outdated (probably both 😄), so I'll first have to look into that in the next days. Sorry, I can't confirm or deny the working of the new option yet, but I very much appreciate that it was added. 👍 |
Found a solution for the autoconf/automake problem I was encountering (it was missing m4 macros from pkg-config, which I then manually copied into the local "m4" directory to make things work. Who knew? 😄 ) Test (1) w/o --with-libunistring-prefix $ ./configure --enable-runtime=libidn2
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
…
checking for iconv... yes
checking for working iconv... yes
checking how to link with libiconv... -liconv
checking for iconv declaration...
extern size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
checking for libunistring... no, trying again together with libiconv
checking for libunistring... no, consider installing GNU libunistring
…
checking for libidn2... yes
checking for library containing u8_tolower... no
configure: error: You requested libidn2|libidn but libunistring is not installed.
… fails as expected. and test (2) with --with-libunistring-prefix $ ./configure \
--enable-runtime=libidn2 \
--with-libunistring-prefix=/usr/local/targetdirectory/libunistring/latest
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
…
checking for libunistring... yes
checking how to link with libunistring... -L/usr/local/targetdirectory/libunistring/latest/lib -lunistring -L/usr/local/targetdirectory/libiconv/latest/lib -liconv
checking for libunistring version... 1.1.0
…
checking for libidn2... yes
checking for library containing u8_tolower... no
configure: error: You requested libidn2|libidn but libunistring is not installed. Looks like it properly detects libunistring (including its iconv dependency), but later fails on the "u8_tolower" check (probably not using the detected information there yet?) |
This should work fine as long as pkg-config is installed, since it will install its m4 macro collection to the system aclocal store. What was the error? |
Yes, pkg-config was installed, albeit the m4 macros didn't made it to a global aclocale directory. I only had linked up the binary and was using the lib/pkgconfig directory. I install all my packages into their own directory ( Occasionally you stumble over some unexpected issues like this, then I learn new things in the process. I have not decided I want a global aclocal store and I'm still thinking about this… hence copying to the temporary local m4 directory was a suitable hot-fix here. 😎 |
@TurtleWilly Can you test #243? |
This seems to work for me. 👍 Only a cosmetic issue left now: $ ./configure --with-libunistring-prefix=/usr/local/silo/libunistring/latest
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
…
checking how to link with libiconv... -liconv
checking for iconv declaration...
extern size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
checking for libunistring... yes
checking how to link with libunistring... -L/usr/local/silo/libunistring/latest/lib -lunistring -L/usr/local/silo/libiconv/latest/lib -liconv
checking for libunistring version... 1.1.0
…
config.status: creating po/Makefile
configure: Summary of build options:
Version: 0.21.5
Host OS: darwin14.5.0
Install prefix: /usr/local
Compiler: gcc
CFlags: -I/usr/local/silo/libidn2/latest/include -g -O2 -I/usr/local/silo/libunistring/latest/include -I/usr/local/silo/libiconv/latest/include
LDFlags:
Libs: -L/usr/local/silo/libidn2/latest/lib -lidn2
Runtime: libidn2
Builtin: yes
PSL Dist File:
PSL File: $(top_srcdir)/list/public_suffix_list.dat
PSL Test File: $(top_srcdir)/list/tests/tests.txt
Sanitizers: UBSan no, ASan no, CFI no
Docs:
Man pages: no
Tests: Valgrind testing not enabled
Fuzzing build: no,
$ make
/Applications/Xcode.app/Contents/Developer/usr/bin/make all-recursive
Making all in po
…
make[2]: Nothing to be done for `all-am'.
$ otool -L src/.libs/libpsl.5.dylib
libpsl.5.dylib:
/usr/local/lib/libpsl.5.dylib (compatibility version 9.0.0, current version 9.5.0)
/usr/local/silo/libidn2/latest/lib/libidn2.0.dylib (compatibility version 4.0.0, current version 4.8.0)
/usr/local/silo/libunistring/latest/lib/libunistring.5.dylib (compatibility version 6.0.0, current version 6.0.0)
/usr/local/silo/libiconv/latest/lib/libiconv.2.dylib (compatibility version 9.0.0, current version 9.1.0)
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1256.14.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1226.10.1) The only thing that seems to be broken/ missing still is the detected bits are missing in the summary at the end of the configure output (see "Libs:" and "LDFlags:" rows). … and with removing indirect dependencies: $ ./configure --with-libunistring-prefix=/usr/local/silo/libunistring/latest LDFLAGS='-Wl,-dead_strip_dylibs -Wl,-dead_strip'
…
…
…
$ otool -L src/.libs/libpsl.5.dylib
src/.libs/libpsl.5.dylib:
/usr/local/lib/libpsl.5.dylib (compatibility version 9.0.0, current version 9.5.0)
/usr/local/silo/libidn2/latest/lib/libidn2.0.dylib (compatibility version 4.0.0, current version 4.8.0)
/usr/local/silo/libunistring/latest/lib/libunistring.5.dylib (compatibility version 6.0.0, current version 6.0.0)
/usr/local/silo/libiconv/latest/lib/libiconv.2.dylib (compatibility version 9.0.0, current version 9.1.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1226.10.1) |
When building libpsl with
--enable-runtime=libidn2
libunistring also seems to become a direct dependency. While libidn2 can be tuned via pkg-config or the LIBIDN2_CFLAGS/ LIBIDN2_LIBS variables there's no such visible option for libunistring in libpsl'sconfigure --help
output. The libunistring package doesn't offer any pkg-config integration too sadly… resulting in the libpsl configure just fail when it can't be located in a default directory.A
--with-libunistring-prefix=
configure option would be appreciated. It also would add verbosity to this requirement.Currently an ugly workaround via the CPPFLAGS/LDFLAGS/LIBS variables kludge is required to make things work:
The text was updated successfully, but these errors were encountered: