Closed mire3212 closed 6 years ago
Nasty problem 🤔 Does compiling with --without-libidn --without-libidn2 together also fails? Because on Arch Linux it checks for both libidn and for libidn2.
--without-libidn: "configure: Checking for dependency libidn2 checking for idn2_to_unicode_8z8z in -lidn2... yes
--without-libidn2: configure: Checking for dependency libidn checking for idna_to_ascii_8z in -lidn... yes"
2018-04-21 20:01 GMT+02:00 mire3212 notifications@github.com:
While running the ./configure script, the following error is produced:
configure: error: Missing dependencies: libidn2
./configure is being run as follows from the build directory:
../configure --prefix=/usr/local/bin --without-libidn --enable-stub-only --with-stubby
$uname -a Linux cloud.bitson.io 4.9.0-6-amd64 #1 SMP Debian 4.9.82-1+deb9u3 (2018-03-02) x86_64 GNU/Linux
$cat /etc/debian_version 9.4
dpkg -l | grep libidn ii libidn11:amd64 1.33-1 amd64 GNU Libidn library, implementation of IETF IDN specifications ii libidn11-dev 1.33-1 amd64 Development files for GNU Libidn, an IDN library ii libidn2-0:amd64 0.16-1+deb9u1 amd64 Internationalized domain names (IDNA2008) library ii libidn2-0-dev 0.16-1+deb9u1 amd64 Internationalized domain names (IDNA2008) development files
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/getdnsapi/getdns/issues/395, or mute the thread https://github.com/notifications/unsubscribe-auth/AYbTSWIcz2GpUmX7h_pqRQ1NQ_1fqKAOks5tq3QRgaJpZM4Tejgt .
I am able to finish the configure
and then subsequently run make
to completion. I was able to start stubby
but haven’t been able to test that it works as expected yet.
Thank you, good news! Could you also test whether compiling with only --without-libidn2 also works? Your problem seem to indicate there is a problem with the app finding the libidn2 library. As I can see in the code it is checking for the file idn2.h, could you check if it is in one of the subdirectories? The compiler checks in /usr/local /opt/local /usr/pkg /usr/sfw
This works:
../configure --prefix=/usr/local/bin --enable-stub-only --with-stubby --without-libidn2
I was then able to do a make clean
and make
without issue.
The path the idn2.h
is /usr/include/idn2.h
.
Very helpful, thank you again.
A last request from me, does compiling with --with-libidn2=/usr/include also work? If compiling including the path also works for libidn2 then the bug is probably solved. The devs need only to add the /usr/include search path to the libnidn2 library.
It is a little bit strange though that the compiler adds a search for the 'other' libnidn version when choosing --without-PACKAGE. It is not something obvious in my opinion. I suspect that if you had only libidn installed, that compiling with --without-libidn would not have given an error at all. Maybe that needs some programming too, it seems that for now adding the path is mandatory with 2 versions installed and probably not just in Debian. BTW you only need libidn2 for getdns, libidn is deprecated but still mandatory for some other programs [sorry, had to edit that]
../configure --prefix=/usr/local/bin --enable-stub-only --with-stubby --without-libidn --with-libidn2=/usr/include/
does not work. Still says
configure: error: Missing dependencies: libidn2
A pity, looked promising. Probably doesn't matter, but does it make a difference without the slash? --with-libidn2=/usr/include instead of --with-libidn2=/usr/include/ and without --without-libidn?
Nope :(
I did try both, but that was the last one I tried and just copied it since it was the last one ran.
So far we can say the compiler for idn2.h only looks in the subdirectories of /usr/local /opt/local /usr/pkg /usr/sfw, but not directly in /usr/include/idn2.h (see lines 13870-and up). So if it would have been installed in /usr/local/include/idn2.h it would have been found. Also why line 13887 #LDFLAGS="$LDFLAGS -L/usr/lib" is not uncommented - I don't know.
Oh, what I wanted to add - when compiling with ../configure --without-libidn --with-libidn2=/usr/include : --without-libidn makes the compiler first search for libidn2 and then tries to install that with that option enabled [same as --with-libidn2]. And because the path cannot be found of libidn2 it generates configure: error: Missing dependencies: libidn2 .
@havinke The argument passed to --with-*
whould be the base directory containing the include
and lib
directory, however, you'd never have to pass it a /usr
because /usr/include
and /usr/lib
are assumed to be scanned always.
When you have both libidn
and libidn2
installed, getdns prefers building with libidn2. Passing it the --without-libidn
option should not make a difference in that case.
I can probably tell you what caused the error if you send me the config.log
file, but if you really want to compile getdns without IDNA support, you could also pass both the --without-libidn
and --without-libidn2
options.
Here's a link to a pastebin of the config.log
file.
I ran this:
../configure --prefix=/usr/local/bin --enable-stub-only --with-stubby --without-libidn
And got the usual error:
configure: error: Missing dependencies: libidn2
El 23/04/18 a las 14:00, mire3212 escribió:
Here's a link to a pastebin of the config.log file.
I ran this:
../configure --prefix=/usr/local/bin --enable-stub-only --with-stubby --without-libidn
And got the usual error:
configure: error: Missing dependencies: libidn2
Just in case, do you know getdns and stuby are included in Debian? https://tracker.debian.org/pkg/getdns
If you want to build the latest version in Debian 9, you could take a look at how it's build in Debian: https://sources.debian.org/src/getdns/1.4.1-1/debian/rules/ And build logs, for the latest version in debian unstable: https://buildd.debian.org/status/fetch.php?pkg=getdns&arch=amd64&ver=1.4.1-1&stamp=1521203920&raw=0
HTH,
Santiago
Package check was not found in the pkg-config search path. Could you do: _export PKG_CONFIGPATH=/usr/bin/pkg-config
Same failure. I ran the following:
# which pkg-config
/usr/bin/pkg-config
# export PKG_CONFIG_PATH=/usr/bin/pkg-config
# echo $PKG_CONFIG_PATH
/usr/bin/pkg-config
# ../configure --prefix=/usr/local/bin --enable-stub-only --with-stubby --without-libidn
...
configure: error: Missing dependencies: libidn2
Could you also check _echo LD_LIBRARYPATH and if not set run _export LD_LIBRARYPATH=/usr/local/lib?
Same issue:
export LD_LIBRARY_PATH=/usr/local/lib
export PKG_CONFIG_PATH=/usr/bin/pkg-config
../configure --prefix=/usr/local/bin --without-libidn --enable-stub-only --with-stubby
...
configure: error: Missing dependencies: libidn2
I've added a new pastebin with the latest config.log file.
It also mentions configure: failed program was:| / confdefs.h / It seems to indicate missing glibc-devel
I have the following from dpkg -l
(among others)
ii linux-libc-dev:amd64 4.9.82-1+deb9u3 amd64 Linux support headers for userspace development
ii libc6:amd64 2.24-11+deb9u3 amd64 GNU C Library: Shared libraries
ii libc6-dev:amd64 2.24-11+deb9u3 amd64 GNU C Library: Development Libraries and Header Files
Is this the same? I have others, but I'm not sure which package specifically correlates to the Debian equivalent of glibc-devel
Never mind, in my log there are also errors with confdefs.h. Will look further. Keep the spirits up!
This error message I also do not have: WARNING: libcheck not found or usable; unit tests will not be compiled and run You could try: sudo apt-get install check
Done, and the WARNING: libcheck not found
message is gone, but it didn't affect the missing libidn2
.
Well, Santiagorr had some very useful info. In the long list of new to be installed programs there is also libidn2-dev.
@mire3212 Thanks, getdns uses and tests for function idn2_to_unicode_8z8z()
which is available in libidn2
since version 2.0.0. You have version 0.16, so the function is not in there yet.
The upcoming 1.4.2 release will have updated configure and README.md to clarify that you need libidn2 version 2.0.0 or higher. Thanks for the report!
While running the
configure
command, the following error is produced:configure: error: Missing dependencies: libidn2
Instructions found here: https://dnsprivacy.org/wiki/pages/viewpage.action?pageId=3145786
configure
is being run as follows from thebuild
directory:../configure --prefix=/usr/local/bin --without-libidn --enable-stub-only --with-stubby