Re: BIND 9.16.13 and Mac OS X 10.13.6 - problems with ./configure

2021-03-25 Thread Eddy Hahn
I do not use either of them because I cannot trust them. I build all 
dependencies from scratch so I do not have to depend on others- breaking things 
from one version to the next.
Also I do not like to use the old libs shipped with the OS or install 3rd party 
into the OS directories. 

Cheers, 

Eddy

> On Mar 25, 2021, at 8:59 PM, Larry Stone  wrote:
> 
> I’ve been building BIND on MacOS for years (currently on Catalina but has 
> worked on almost the entire Mac OS X series.
> 
>> 
>> On Mar 25, 2021, at 7:50 PM, Paul Cizmas  wrote:
>> 
>> I am new to BIND and I am trying to install version 9.16.13 on a Mac OS X 
>> 10.13.6.
>> 
>> I downloaded version 9.16.13 and, following the suggestions from 
>> https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fkrypted.com%2Fmac-os-x%2Fdns-install-bind-macos%2Fdata=04%7C01%7C%7C531de9ed26704038675308d8f00b8f48%7C84df9e7fe9f640afb435%7C1%7C0%7C637523279725421196%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000sdata=wN7nldydRlRxmZrp8rWOtLQQN21cSXnc5x5Ym6oZ5Hs%3Dreserved=0,
>>  I am trying to configure using
>> 
>> ./configure --enable-symtable=none --infodir="/usr/share/info" 
>> --sysconfdir="/etc" --localstatedir="/var" --enable-atomic="no" 
>> --with-gssapi=yes --with-libxml2=no
>> 
> 
> I don’t know that site and I don’t know what most of the those options do. A 
> simple ./configure has almost always worked for me.
> 
>> This fails because of libuv
>> 
>> checking for pthread_set_name_np... no
>> checking for pthread_np.h... no
>> checking for libuv... checking for libuv >= 1.0.0... no
>> configure: error: libuv not found
>> 
>> I have libuv installed, however.  It is version 1.41.0.
>> 
> 
> Is libuv where the BIND configure is looking for it? My libuv files are in 
> /usr/local/lib. I have libuv 1.35 (doubt the version is making a difference) 
> and it looks like I installed it a year ago.
> 
> Are you using something like homebrew or macports? I don’t as I was already 
> too established doing everything from scratch when I learned about them. But 
> I believe at least one of them if not both use their own set of directories 
> so something built with one of them will not be found by something coming 
> from the other or done from scratch. Those instructions from krypted.com 
> appear to be doing a “from scratch” version so if you installed libuv with 
> homebrew or macports, I doubt the krypted.com instructions will find it.
> 
> 
> -- 
> Larry Stone
> lston...@stonejongleux.com
> ___
> Please visit 
> https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.isc.org%2Fmailman%2Flistinfo%2Fbind-usersdata=04%7C01%7C%7C531de9ed26704038675308d8f00b8f48%7C84df9e7fe9f640afb435%7C1%7C0%7C637523279725421196%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000sdata=PGVNS%2BEb%2B7YohVLKtzRz30%2F6ls1kvh8ilPQ3Cv57k9Q%3Dreserved=0
>  to unsubscribe from this list
> 
> ISC funds the development of this software with paid support subscriptions. 
> Contact us at 
> https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.isc.org%2Fcontact%2Fdata=04%7C01%7C%7C531de9ed26704038675308d8f00b8f48%7C84df9e7fe9f640afb435%7C1%7C0%7C637523279725421196%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000sdata=jv%2FCZcukHxDGGXORN3OYGMYp6Utpk%2F%2BYK4ka0sTuHqI%3Dreserved=0
>  for more information.
> 
> 
> bind-users mailing list
> bind-users@lists.isc.org
> https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.isc.org%2Fmailman%2Flistinfo%2Fbind-usersdata=04%7C01%7C%7C531de9ed26704038675308d8f00b8f48%7C84df9e7fe9f640afb435%7C1%7C0%7C637523279725421196%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000sdata=PGVNS%2BEb%2B7YohVLKtzRz30%2F6ls1kvh8ilPQ3Cv57k9Q%3Dreserved=0
___
Please visit https://lists.isc.org/mailman/listinfo/bind-users to unsubscribe 
from this list

ISC funds the development of this software with paid support subscriptions. 
Contact us at https://www.isc.org/contact/ for more information.


bind-users mailing list
bind-users@lists.isc.org
https://lists.isc.org/mailman/listinfo/bind-users


Re: Cannot build on macOS 10.15 (Catalina)

2020-04-28 Thread Eddy Hahn

OK. Before I did not give you the full picture because I did not want to be to 
verbose :-)

It should have been

export SERVERPLUS_DIR="/opt/serverplus”
git clone https://gitlab.isc.org/isc-projects/bind9.git
cd bind9
autoreconf -if
LIBUV_LIBS="-L$SERVERPLUS_DIR/dependencies/libuv/lib" LIBUV_CFLAGS=" 
-I$SERVERPLUS_DIR/dependencies/libuv/include" CPPFLAGS=" 
-I$SERVERPLUS_DIR/dependencies/libuv/include" LDFLAGS='-flat_namespace 
-force_flat_namespace' ./configure --prefix="$SERVERPLUS_DIR" 
--with-openssl="$SERVERPLUS_DIR/dependencies/openssl" --disable-pthread-rwlock 
--with-libxml2=no --enable-full-report



After Ondrej suggestion I have removed all the LIBUV_XXX env variables and 
change to

PGK_CONFIG_PATH="/opt/build/tools/pkg-config" 
PKG_CONFIG_PATH="$SERVERPLUS_DIR/dependencies/libuv/lib/pkgconfig" ./configure 
--prefix="$SERVERPLUS_DIR" 
--with-openssl="$SERVERPLUS_DIR/dependencies/openssl" --disable-pthread-rwlock 
--with-libxml2=no --enable-full-report


I did not had to change the source code :-) and after deploying no more 
complaints from dylib! named is running fine!

All worked! Thank you very much for the help!

Thanks again,

Eddy



> On Apr 28, 2020, at 12:22 PM, Ondřej Surý  wrote:
> 
> LIBUV_LIBS="-L$/dependencies/libuv/lib“
> 
> JFTR this part of the line is wrong as it actually doesn’t contain the 
> library itself (just LDFLAGS).
> You should really use the pkgconfig.
> 
> Ondrej
> --
> Ondřej Surý
> ond...@isc.org
> 
>> On 28 Apr 2020, at 19:36, Eddy Hahn  wrote:
>> 
>> LIBUV_LIBS="-L$/dependencies/libuv/lib"
> 

___
Please visit https://lists.isc.org/mailman/listinfo/bind-users to unsubscribe 
from this list

bind-users mailing list
bind-users@lists.isc.org
https://lists.isc.org/mailman/listinfo/bind-users


Cannot build on macOS 10.15 (Catalina)

2020-04-28 Thread Eddy Hahn
Hi,

I got the latest source and build tools. 

1) autorecon -If. WORKED!

2) configure WORKED!

LIBUV_LIBS="-L$/dependencies/libuv/lib" 
LIBUV_CFLAGS="-I$/dependencies/libuv/include" 
CPPFLAGS=“-I$/dependencies/libuv/include" LDFLAGS='-flat_namespace 
-force_flat_namespace' ./configure --prefix=“/opt/target" 
--with-openssl="/dependencies/openssl" --disable-pthread-rwlock 
--with-libxml2=no --enable-full-report


There are two issues

1) make - FAILS

it fails because the declaration of the uv_handle_get_data and 
uv_handle_set_data does not match the declaration between uv-compat.h and  uv.h

In file included from netmgr/netmgr.c:33:
In file included from netmgr/netmgr-int.h:34:
netmgr/uv-compat.h:24:1: error: static declaration of 'uv_handle_get_data' 
follows non-static declaration
uv_handle_get_data(const uv_handle_t *handle) {
^
/opt/serverplus/dependencies/libuv/include/uv.h:448:17: note: previous 
declaration is here
UV_EXTERN void* uv_handle_get_data(const uv_handle_t* handle);
^
In file included from netmgr/netmgr.c:33:
In file included from netmgr/netmgr-int.h:34:
netmgr/uv-compat.h:31:1: error: static declaration of 'uv_handle_set_data' 
follows non-static declaration
uv_handle_set_data(uv_handle_t *handle, void *data) {
^
/opt/serverplus/dependencies/libuv/include/uv.h:450:16: note: previous 
declaration is here
UV_EXTERN void uv_handle_set_data(uv_handle_t* handle, void* data);
   ^
2 errors generated.
make[4]: *** [netmgr/libisc_la-netmgr.lo] Error 1
make[3]: *** [all-recursive] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2


If I move the declaration from uv-compat.h to uv-compat.c then it compile and 
we removed the inlining.

Comment out these:

#ifndef HAVE_UV_HANDLE_GET_DATA
static inline void *
uv_handle_get_data(const uv_handle_t *handle) {
return (handle->data);
}
#endif /* ifndef HAVE_UV_HANDLE_GET_DATA */

#ifndef HAVE_UV_HANDLE_SET_DATA
static inline void
uv_handle_set_data(uv_handle_t *handle, void *data) {
handle->data = data;
}
#endif /* ifndef HAVE_UV_HANDLE_SET_DATA */

Add to uv-compat.c

#ifndef HAVE_UV_HANDLE_GET_DATA
UV_EXTERN void *
uv_handle_get_data(const uv_handle_t *handle) {
return (handle->data);
}
#endif /* ifndef HAVE_UV_HANDLE_GET_DATA */

#ifndef HAVE_UV_HANDLE_SET_DATA
UV_EXTERN void
uv_handle_set_data(uv_handle_t *handle, void *data) {
handle->data = data;
}
#endif /* ifndef HAVE_UV_HANDLE_SET_DATA */



2) deployed executable fails to load lib (deployed using make install)

Once the binaries are built and try to start the named up receive the following 
error

./named -c /named.conf -f -d4


dyld: lazy symbol binding failed: Symbol not found: _uv_loop_init
  Referenced from: lib/libisc.1701.dylib
  Expected in: flat namespace

dyld: Symbol not found: _uv_loop_init
  Referenced from: lib/libisc.1701.dylib
  Expected in: flat namespace


So, it has something to do with flat namespaces vs. two level namespaces. I 
have tried to add the linker option per macOS documentation as 
LDFLAGS='-flat_namespace -force_flat_namespace’ but the executables and 
libraries still have to level namespaces

Tried to force lib to have flat level as well

otool -hV  /lib/libuv.dylib 


Mach header
  magic cputype cpusubtype  capsfiletype ncmds sizeofcmds  flags
MH_MAGIC_64  X86_64ALL  0x00   DYLIB14   1640   NOUNDEFS 
DYLDLINK TWOLEVEL NO_REEXPORTED_DYLIBS


otool -hV /lib/libisc.1701.dylib
Mach header
  magic cputype cpusubtype  capsfiletype ncmds sizeofcmds  flags
MH_MAGIC_64  X86_64ALL  0x00   DYLIB15   1952   NOUNDEFS 
DYLDLINK TWOLEVEL NO_REEXPORTED_DYLIBS MH_HAS_TLV_DESCRIPTORS


Can problem #1 fixed in source?
Does anyone have any idea how fix #2?


Thanks,


Eddy







___
Please visit https://lists.isc.org/mailman/listinfo/bind-users to unsubscribe 
from this list

bind-users mailing list
bind-users@lists.isc.org
https://lists.isc.org/mailman/listinfo/bind-users