netatalk: Make BerkeleyDB optional for Netatalk
A message that is not in the archive (sent off-list or not yet received): 1352057123-7137-2-git-send-email-maxime.hadjinlian
PATCH 2/2 netatalk: Make BerkeleyDB optional for Netatalk
As the documentation of netatalk states :
"dbd is the default backend since version 2.1"
So cdb (which is the CNID provided by BerkeleyDB) should not be the default.
Also, this patches fixes a trouble when compiling with berkeleydb in 64bits where netatalk would look the berkeleylib in [...]/lib64 instead of [...]/lib
--- package/netatalk/Config.in | 1 - package/netatalk/netatalk.mk | 16 ++++++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-)
package/netatalk/Config.in +0 -1
@@ -1,6 +1,5 @@ config BR2_PACKAGE_NETATALK bool "netatalk" - select BR2_PACKAGE_BERKELEYDB select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_LIBGCRYPT select BR2_PACKAGE_LIBGPG_ERROR
package/netatalk/netatalk.mk +12 -4
@@ -7,11 +7,10 @@ NETATALK_VERSION = 3.0 NETATALK_SITE = http://downloads.sourceforge.net/project/netatalk/netatalk/$(NETATALK_VERSION) NETATALK_SOURCE = netatalk-$(NETATALK_VERSION).tar.bz2 -NETATALK_DEPENDENCIES = host-pkg-config openssl berkeleydb libgcrypt libgpg-error +NETATALK_DEPENDENCIES = host-pkg-config openssl libgcrypt libgpg-error NETATALK_CONF_ENV += CC="$(TARGET_CC) -std=gnu99" -NETATALK_CONF_OPT += --with-cnid-cdb-backend \ - --with-bdb=$(STAGING_DIR)/usr \ - --disable-zeroconf \ + +NETATALK_CONF_OPT += --disable-zeroconf \ --with-ssl-dir=$(STAGING_DIR)/usr \ --with-libgcrypt-dir=$(STAGING_DIR)/usr \ --with-shadow \
@@ -19,6 +18,15 @@ NETATALK_CONF_OPT += --with-cnid-cdb-backend \ --without-kerberos \ --without-pam +ifeq ($(BR2_PACKAGE_BERKELEYDB),y) + NETATALK_DEPENDENCIES += berkeleydb + NETATALK_CONF_ENV += BDB_LIB=$(STAGING_LIB)/usr/lib + NETATALK_CONF_OPT += --with-cnid-cdb-backend \ + --with-bdb=$(STAGING_DIR)/usr +else + NETATALK_CONF_OPT += --without-cnid-cdb-backend +endif + ifeq ($(BR2_PACKAGE_CUPS),y) NETATALK_DEPENDENCIES += cups NETATALK_CONF_ENV += ac_cv_path_CUPS_CONFIG=$(STAGING_DIR)/usr/bin/cups-config
--
1.7.10.4
PATCH 2/2 netatalk: Make BerkeleyDB optional for Netatalk
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Maxime" == Maxime Hadjinlian <[email protected]> writes:
Maxime> As the documentation of netatalk states :
Maxime> "dbd is the default backend since version 2.1"
Maxime> So cdb (which is the CNID provided by BerkeleyDB) should not be the default.
Maxime> Also, this patches fixes a trouble when compiling with Maxime> berkeleydb in 64bits where netatalk would look the berkeleylib Maxime> in [...]/lib64 instead of [...]/lib
Thanks, but:
- It doesn't apply because of host-pkg-config -> host-pkgconf.
- It doesn't work:
checking for Berkeley DB headers in /usr/include/db48... no
checking for Berkeley DB headers in /usr/include/db4.7... no
checking for Berkeley DB headers in /usr/include/db47... no
checking for Berkeley DB headers in /usr/include/db4.6... no
checking for Berkeley DB headers in /usr/include/db46... no
checking for Berkeley DB headers in /usr/include/db4... no
configure: error: Berkeley DB library required but not found!
make[1]: *** [/home/peko/source/buildroot/testnetatalk/build/netatalk-3.0/.stamp_configured] Error 1
With an empty default BR config (only netatalk enabled).
Signature · 1 line
Bye, Peter Korsgaard
PATCH 2/2 netatalk: Make BerkeleyDB optional for Netatalk
Quoted 24 lines · Peter Korsgaard
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Maxime" == Maxime Hadjinlian <[email protected]> writes:
Maxime> As the documentation of netatalk states :
Maxime> "dbd is the default backend since version 2.1"
Maxime> So cdb (which is the CNID provided by BerkeleyDB) should not be the default.Maxime> Also, this patches fixes a trouble when compiling with Maxime> berkeleydb in 64bits where netatalk would look the berkeleylib Maxime> in [...]/lib64 instead of [...]/lib
Thanks, but:
- It doesn't apply because of host-pkg-config -> host-pkgconf.
- It doesn't work:checking for Berkeley DB headers in
/usr/include/db48... no
checking for Berkeley DB headers in/usr/include/db4.7... no
checking for Berkeley DB headers in/usr/include/db47... no
checking for Berkeley DB headers in/usr/include/db4.6... no
checking for Berkeley DB headers in/usr/include/db46... no
checking for Berkeley DB headers in/usr/include/db4... no
configure: error: Berkeley DB library required but not found!
make[1]: *** [/home/peko/source/buildroot/testnetatalk/build/netatalk-3.0/.stamp_configured] Error 1
Quoted 1 line
With an empty default BR config (only netatalk enabled).
I'll look into it, it should not error because of this since BerkeleDB is not longer needed for building netatalk...
Thanks for your feedback.
Quoted 3 lines
--
Bye, Peter Korsgaard
PATCH 1/1 netatalk : Fix BerkeleyDB library path
This fix is needed for the 64bits build because Netatalk will assume the library are stored in [..]/lib64/ instead of [..]/lib/
--- package/netatalk/netatalk.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
package/netatalk/netatalk.mk +1 -1
@@ -8,7 +8,7 @@ NETATALK_SITE = http://downloads.sourceforge.net/project/netatalk/netatalk/$(NET NETATALK_SOURCE = netatalk-$(NETATALK_VERSION).tar.bz2 NETATALK_DEPENDENCIES = host-pkgconf openssl berkeleydb libgcrypt libgpg-error -NETATALK_CONF_ENV += CC="$(TARGET_CC) -std=gnu99" +NETATALK_CONF_ENV += CC="$(TARGET_CC) -std=gnu99" BDB_LIB=$(STAGING_LIB)/usr/lib NETATALK_CONF_OPT += --with-cnid-cdb-backend \ --with-bdb=$(STAGING_DIR)/usr \ --disable-zeroconf \
--
1.7.10.4
PATCH 1/1 netatalk : Fix BerkeleyDB library path
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Maxime" == Maxime Hadjinlian <[email protected]> writes:
Maxime> This fix is needed for the 64bits build because Netatalk will assume the library Maxime> are stored in [..]/lib64/ instead of [..]/lib/
Committed, thanks.
Signature · 1 line
Bye, Peter Korsgaard
PATCH 1/1 netatalk : Fix BerkeleyDB library path
In reply to Maxime HadjinlianQuoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Maxime" == Maxime Hadjinlian <[email protected]> writes:
Maxime> This fix is needed for the 64bits build because Netatalk will assume the library Maxime> are stored in [..]/lib64/ instead of [..]/lib/
Hmm, we still seem to have issues on the autobuilders:
http://autobuild.buildroot.net/results/cf5c3ce94c229204bfa0f19b1009c13a9bcc1dfc/build-end.log
Maxime> +++ b/package/netatalk/netatalk.mk
Maxime> @@ -8,7 +8,7 @@ NETATALK_SITE = http://downloads.sourceforge.net/project/netatalk/netatalk/$(NET
Maxime> NETATALK_SOURCE = netatalk-$(NETATALK_VERSION).tar.bz2
Maxime> NETATALK_DEPENDENCIES = host-pkgconf openssl berkeleydb libgcrypt libgpg-error Maxime> -NETATALK_CONF_ENV += CC="$(TARGET_CC) -std=gnu99"
Maxime> +NETATALK_CONF_ENV += CC="$(TARGET_CC) -std=gnu99" BDB_LIB=$(STAGING_LIB)/usr/lib
I guess you meant STAGING_DIR instead here, will fix.
Signature · 1 line
Bye, Peter Korsgaard
PATCH 1/1 netatalk : Fix BerkeleyDB library path
Quoted 13 lines · Peter Korsgaard
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Maxime" == Maxime Hadjinlian <[email protected]> writes:
Maxime> This fix is needed for the 64bits build because Netatalk will assume the library Maxime> are stored in [..]/lib64/ instead of [..]/lib/
Hmm, we still seem to have issues on the autobuilders:
http://autobuild.buildroot.net/results/cf5c3ce94c229204bfa0f19b1009c13a9bcc1dfc/build-end.log
Maxime> +++
b/package/netatalk/netatalk.mk
Maxime> @@ -8,7 +8,7 @@NETATALK_SITE= http://downloads.sourceforge.net/project/netatalk/netatalk/$(NET
Maxime>NETATALK_SOURCE= netatalk-$(NETATALK_VERSION).tar.bz2
Quoted 6 lines
Maxime>
NETATALK_DEPENDENCIES= host-pkgconf openssl berkeleydb libgcrypt libgpg-error Maxime> -NETATALK_CONF_ENV += CC="$(TARGET_CC) -std=gnu99"
Maxime> +NETATALK_CONF_ENV += CC="$(TARGET_CC) -std=gnu99" BDB_LIB=$(STAGING_LIB)/usr/libI guess you meant
STAGING_DIRinstead here, will fix.
This is strange because I tested with a 64 bits build and I had'nt the problem anymore.. And I don't remember rewriting the patch before sending it here. But then again, you're totally right, this does'nt make sense. I'm really wondering how it could have worked for me :/
Quoted 3 lines
--
Bye, Peter Korsgaard
PATCH 1/1 netatalk : Fix BerkeleyDB library path
Quoted 19 lines · Maxime Hadjinlian
Quoted 18 lines · Peter Korsgaard
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Maxime" == Maxime Hadjinlian<[email protected]> writes:
Maxime> This fix is needed for the 64bits build because Netatalk will assume the library Maxime> are stored in [..]/lib64/ instead of [..]/lib/
Hmm, we still seem to have issues on the autobuilders:
http://autobuild.buildroot.net/results/cf5c3ce94c229204bfa0f19b1009c13a9bcc1dfc/build-end.log
Maxime> +++ b/package/netatalk/netatalk.mk Maxime> @@ -8,7 +8,7 @@ NETATALK_SITE = http://downloads.sourceforge.net/project/netatalk/netatalk/$(NET Maxime> NETATALK_SOURCE = netatalk-$(NETATALK_VERSION).tar.bz2 Maxime> NETATALK_DEPENDENCIES = host-pkgconf openssl berkeleydb libgcrypt libgpg-error Maxime> -NETATALK_CONF_ENV += CC="$(TARGET_CC) -std=gnu99" Maxime> +NETATALK_CONF_ENV += CC="$(TARGET_CC) -std=gnu99" BDB_LIB=$(STAGING_LIB)/usr/lib
Quoted 5 lines
Quoted 1 line
I guess you meant
STAGING_DIRinstead here, will fix.This is strange because I tested with a 64 bits build and I had'nt the problem anymore.. And I don't remember rewriting the patch before sending it here. But then again, you're totally right, this does'nt make sense. I'm really wondering how it could have worked for me :/
I guess it was an accident then :-)
configure checks for libdb by doing: ls $bdblibdir/lib$lib.*
and bdblibdir="${bdbdir}/${atalk_libname}" and atalk_libname="lib64" for most 64-bit architectures.
So you happened to have an existing /usr/lib/lib64/libdb* on your build
machine...
BDB_LIB isn't even used by configure, so I don't think does patch does
much :-)
The problem I encounter in my build is that configure uses ls ... to
find the library, and my /bin/ls is linked against libacl.so.1. It seems LD_LIBRARY_PATH is overridden because ls fails with:
/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (required by /home/arnout/src/buildroot/output-ext-toolchain-x86_64/host/usr/x86_64-buildroot-linux-gnu/sysroot/usr/lib/libacl.so.1
And indeed, configure sets:
eval export $shlibpath_var=$bdblibdir
This is OK for native builds, but not for cross-builds...
Looking a bit further into macros/db3-check.m4, it looks even worse:
after that configure step, there is an
eval export $shlibpath_var=$saved_shlibpath_var
which expands to
export LD_LIBRARY_PATH=LD_LIBRARY_PATH
:-)
I'll try to cook a fix and send a patch.
Regards,
Arnout
Signature · 6 lines
Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286540 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
PATCH 1/1 netatalk : Fix BerkeleyDB library path
Quoted 26 lines · Arnout Vandecappelle
Quoted 19 lines · Maxime Hadjinlian
Quoted 18 lines · Peter Korsgaard
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Maxime" == Maxime Hadjinlian<[email protected]> writes:
Maxime> This fix is needed for the 64bits build because Netatalk will assume the library Maxime> are stored in [..]/lib64/ instead of [..]/lib/
Hmm, we still seem to have issues on the autobuilders:
http://autobuild.buildroot.net/results/cf5c3ce94c229204bfa0f19b1009c13a9bcc1dfc/build-end.log
Maxime> +++ b/package/netatalk/netatalk.mk Maxime> @@ -8,7 +8,7 @@ NETATALK_SITE = http://downloads.sourceforge.net/project/netatalk/netatalk/$(NET Maxime> NETATALK_SOURCE = netatalk-$(NETATALK_VERSION).tar.bz2 Maxime> NETATALK_DEPENDENCIES = host-pkgconf openssl berkeleydb libgcrypt libgpg-error Maxime> -NETATALK_CONF_ENV += CC="$(TARGET_CC) -std=gnu99" Maxime> +NETATALK_CONF_ENV += CC="$(TARGET_CC) -std=gnu99" BDB_LIB=$(STAGING_LIB)/usr/libQuoted 5 lines
Quoted 1 line
I guess you meant
STAGING_DIRinstead here, will fix.This is strange because I tested with a 64 bits build and I had'nt the problem anymore.. And I don't remember rewriting the patch before sending it here. But then again, you're totally right, this does'nt make sense. I'm really wondering how it could have worked for me :/
Quoted 8 lines
I guess it was an accident then :-)
configure checks for libdb by doing: ls $bdblibdir/lib$lib.*
and bdblibdir="${bdbdir}/${atalk_libname}" and atalk_libname="lib64" for most 64-bit architectures.So you happened to have an existing
/usr/lib/lib64/libdb*on your build
machine...
I looked for it but I don't have one, I have although my host system is 64bits, there should some bits in there...
Quoted 3 lines
BDB_LIBisn't even used by configure, so I don't think does patch does
much :-)
You're right, it should be BDB_LIBS at least.
Quoted 6 lines
The problem I encounter in my build is that configure uses
ls ...to
find the library, and my/bin/lsis linked against libacl.so.1. It seemsLD_LIBRARY_PATHis overridden because ls fails with:
Quoted 6 lines
/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (required by/home/arnout/src/buildroot/output-ext-toolchain-x86_64/host/usr/x86_64-buildroot-linux-gnu/sysroot/usr/lib/libacl.so.1And indeed, configure sets:
eval export $shlibpath_var=$bdblibdirThis is OK for native builds, but not for cross-builds...
If I'm reading this correctly (and I'm not sure I am), there is one bug with ls if you native hosts is 32bits but also, if you look the value of atalk_libname, it will value lib64 and since the lib are not put there by BerkeleyDB, it will also fail. And so we must look for them in lib, right ? (That was I tried to fixed in my numerous attempt).
So is it possible that there is two bugs enclosed here ?
Quoted 7 lines
Looking a bit further into macros/db3-check.m4, it looks even worse:
after that configure step, there is an
eval export $shlibpath_var=$saved_shlibpath_var
which expands to
export LD_LIBRARY_PATH=LD_LIBRARY_PATH
:-)
Which is obviously not what we want here :).
Quoted 2 lines
I'll try to cook a fix and send a patch.
I'm really curious to see something, because I don't think I could have figured this one out myself (given the lack of experience in cross compiling and also my host being 64bits, well I'm short on excuses).
Quoted 3 lines
Regards,
Arnout
Thanks !
Quoted 8 lines
--
Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286540 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
PATCH 1/1 netatalk : Fix BerkeleyDB library path
Quoted 2 lines · Maxime Hadjinlian
Quoted 1 line · Arnout Vandecappelle
On 17/12/12 00:15, Maxime Hadjinlian wrote:
[snip]
Quoted 3 lines
Quoted 2 lines
BDB_LIBisn't even used by configure, so I don't think does patch does
much :-)You're right, it should be
BDB_LIBSat least.
But BDB_LIBS is unconditionally set by configure.
Quoted 9 lines
Quoted 9 lines
The problem I encounter in my build is that configure uses
ls ...to
find the library, and my/bin/lsis linked against libacl.so.1. It seemsLD_LIBRARY_PATHis overridden because ls fails with:
/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (required by/home/arnout/src/buildroot/output-ext-toolchain-x86_64/host/usr/x86_64-buildroot-linux-gnu/sysroot/usr/lib/libacl.so.1And indeed, configure sets:
eval export $shlibpath_var=$bdblibdir
Quoted 7 lines
Quoted 1 line
This is OK for native builds, but not for cross-builds...
If I'm reading this correctly (and I'm not sure I am), there is one bug with ls if you native hosts is 32bits but also, if you look the value of
atalk_libname, it will value lib64 and since the lib are not put there by BerkeleyDB, it will also fail. And so we must look for them in lib, right ? (That was I tried to fixed in my numerous attempt).
Yes, but the configure script already does that: if it fails to find it
in $atalk_libname and $atalk_libname != lib then it tries again in lib.
Regards,
Arnout
[snip]
Signature · 6 lines
Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286540 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
PATCH 1/1 netatalk : Fix BerkeleyDB library path
Quoted 40 lines · Arnout Vandecappelle
Quoted 5 lines · Maxime Hadjinlian
Quoted 2 lines · Arnout Vandecappelle
On 17/12/12 00:15, Maxime Hadjinlian wrote:
[snip]
Quoted 4 lines
Quoted 2 lines
BDB_LIBisn't even used by configure, so I don't think does patch does
much :-)You're right, it should be
BDB_LIBSat least.But
BDB_LIBSis unconditionally set by configure.Quoted 11 lines
Quoted 11 lines
The problem I encounter in my build is that configure uses
ls ...to
find the library, and my/bin/lsis linked against libacl.so.1. It seemsLD_LIBRARY_PATHis overridden because ls fails with:
/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (required
by/home/arnout/src/buildroot/output-ext-toolchain-x86_64/host/usr/x86_64-buildroot-linux-gnu/sysroot/usr/lib/libacl.so.1And indeed, configure sets:
eval export $shlibpath_var=$bdblibdirQuoted 8 lines
Quoted 1 line
This is OK for native builds, but not for cross-builds...
If I'm reading this correctly (and I'm not sure I am), there is one bug with ls if you native hosts is 32bits but also, if you look the value of
atalk_libname, it will value lib64 and since the lib are not put there by BerkeleyDB, it will also fail. And so we must look for them in lib, right ? (That was I tried to fixed in my numerous attempt).
Quoted 2 lines
Yes, but the configure script already does that: if it fails to find it in
$atalk_libname and $atalk_libname != lib then it tries again in lib.
Okay, I see what I missed and I'm looking at your patch, I'll go to bed less stupid.
Quoted 3 lines
Regards,
Arnout
Thanks
Quoted 10 lines
[snip]
--
Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286540 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
PATCH 1/1 netatalk : Fix BerkeleyDB library path
Quoted 1 line · Maxime Hadjinlian
On Mon, Dec 17, 2012 at 11:05 PM, Arnout Vandecappelle<[email protected]> wrote:
[snip]
Quoted 4 lines
Quoted 2 lines
Yes, but the configure script already does that: if it fails to find it in
$atalk_libname and $atalk_libname != lib then it tries again in lib.Okay, I see what I missed and I'm looking at your patch, I'll go to bed less stupid.
The only reason I'm less stupid is that I spent three hours looking at
that configure script...
Regards,
Arnout
Signature · 6 lines
Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286540 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F