[[PATCH] cyrus-sasl: several fixes] On 13.07.17 (Wed 14:24) [email protected] wrote:
> From: "Roy.Li" <[email protected]> > > 1. Fix hardcoded libdir > 2. configure cyrus-sasl based on PACKAGECONFIG > 3. create user by inherit useradd > 4. add -fPIC to CFLAG to fix a building failure, the cause as below: > ld: ../sasldb/.libs/libsasldb.a(db_berkeley.o): relocation > R_X86_64_32S against > `.rodata' can not be used when making a shared object; recompile with > -fPIC > ../sasldb/.libs/libsasldb.a(db_berkeley.o): could not read symbols: > Bad value > > Further investigation shows Upstream chose a strange way to keep > compatible > with certain versions of automake. > > --- a/sasldb/Makefile.am > +++ b/sasldb/Makefile.am > @@ -1,6 +1,6 @@ > # Makefile.am for the SASLdb library > # Rob Siemborski > -# $Id: Makefile.am,v 1.28 2005/04/11 05:09:31 shadow Exp $ > +# $Id: Makefile.am,v 1.29 2005/05/07 04:14:56 shadow Exp $ > # Copyright (c) 2000 Carnegie Mellon University. All rights > reserved. > # > # Redistribution and use in source and binary forms, with or without > @@ -62,7 +62,7 @@ libsasldb_la_LIBADD = $(SASL_DB_BACKEND) > libsasldb_a_SOURCES = > EXTRA_libsasldb_a_SOURCES = > > -libsasldb.a: libsasldb.la $(LOCAL_SASL_DB_BACKEND_STATIC) > - $(AR) cru .libs/$@ $(LOCAL_SASL_DB_BACKEND_STATIC) > +libsasldb.a: libsasldb.la $(SASL_DB_BACKEND_STATIC) > + $(AR) cru .libs/$@ $(SASL_DB_BACKEND_STATIC) This is ... odd. I'm not sure how this relates to the comment below, but your solution seems sound. > > that snippet of Makefile rule made libsasldb.a built twice, one with > -fPIC, other without -fPIC. if no -fPIC library follow behind, this error > will appear. so we enable -fPIC no matter whatever objects are built. > > Signed-off-by: Roy.Li <[email protected]> > --- > .../cyrus-sasl/cyrus-sasl_2.1.26.bb | 32 > +++++++++++++++++--- > .../cyrus-sasl/files/Fix-hardcoded-libdir.patch | 25 +++++++++++++++ > 2 files changed, 52 insertions(+), 5 deletions(-) > create mode 100644 > meta-networking/recipes-daemons/cyrus-sasl/files/Fix-hardcoded-libdir.patch > > diff --git a/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.26.bb > b/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.26.bb > index 4311540..4dac450 100644 > --- a/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.26.bb > +++ b/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.26.bb > @@ -5,21 +5,40 @@ LICENSE = "BSD" > LIC_FILES_CHKSUM = "file://COPYING;md5=3f55e0974e3d6db00ca6f57f2d206396" > > SRC_URI = "ftp://ftp.cyrusimap.org/cyrus-sasl/cyrus-sasl-${PV}.tar.gz \ > - file://avoid-to-call-AC_TRY_RUN.patch" > + file://avoid-to-call-AC_TRY_RUN.patch \ > + file://Fix-hardcoded-libdir.patch" > > -inherit autotools pkgconfig > +inherit autotools pkgconfig useradd > > EXTRA_OECONF += "--with-dblib=berkeley \ > --with-bdb-libdir=${STAGING_LIBDIR} \ > --with-bdb-incdir=${STAGING_INCDIR} \ > - --without-pam --without-opie --without-des \ > + --with-bdb=db-5.3 \ > + --enable-login \ > + --with-plugindir="${libdir}/sasl2/" \ I'm not sure I expected any of these changes based on your commit log, though. Well, moving --with/out-pam/opie/des into PACKAGECONFIG variables, yes, but not --with-bdb/--enable-login/--with-plugindir. Can you comment on those as well? > andrew_cv_runpath_switch=none" > > -PACKAGECONFIG ??= "" > +PACKAGECONFIG = "ntlm \ > + ${@base_contains('DISTRO_FEATURES', 'ldap', 'ldap', '', d)} \ > + ${@base_contains('DISTRO_FEATURES', 'pam', 'pam', '', d)} \ > + " Shouldn't you be checking the other values in DISTRO_FEATURES as well? And is ntlm a given? I'm thinking you didn't necessarily mean to drop the ?? here. -J. > PACKAGECONFIG[gssapi] = "--enable-gssapi=yes,--enable-gssapi=no,krb5," > +PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam," > +PACKAGECONFIG[opie] = "--with-opie,--without-opie,opie," > +PACKAGECONFIG[des] = "--with-des,--without-des,," > +PACKAGECONFIG[ldap] = "--with-ldap=${STAGING_LIBDIR} > --enable-ldapdb,--without-ldap --disable-ldapdb,openldap," > +PACKAGECONFIG[ntlm] = "--with-ntlm,--without-ntlm,," > + > +CFLAGS += "-fPIC" > > do_configure_prepend () { > rm -f acinclude.m4 config/libtool.m4 > + > + # make it be able to work with db 5.0 version > + local sed_files="sasldb/db_berkeley.c utils/dbconverter-2.c" > + for sed_file in $sed_files; do > + sed -i 's#DB_VERSION_MAJOR == 4.*#(&) || DB_VERSION_MAJOR == 5#' > $sed_file > + done > } > > do_compile_prepend () { > @@ -29,8 +48,11 @@ do_compile_prepend () { > cd .. > } > > +USERADD_PACKAGES = "${PN}-bin" > +GROUPADD_PARAM_${PN}-bin = "--system mail" > +USERADD_PARAM_${PN}-bin = "--system --home=/var/spool/mail -g mail cyrus" > + > pkg_postinst_${PN}-bin () { > - grep cyrus /etc/passwd || adduser --disabled-password > --home=/var/spool/mail --ingroup mail -g "Cyrus sasl" cyrus > echo "cyrus" | saslpasswd2 -p -c cyrus > chgrp mail /etc/sasldb2 > } > diff --git > a/meta-networking/recipes-daemons/cyrus-sasl/files/Fix-hardcoded-libdir.patch > b/meta-networking/recipes-daemons/cyrus-sasl/files/Fix-hardcoded-libdir.patch > new file mode 100644 > index 0000000..3fa8431 > --- /dev/null > +++ > b/meta-networking/recipes-daemons/cyrus-sasl/files/Fix-hardcoded-libdir.patch > @@ -0,0 +1,25 @@ > +Fix hardcoded libdir. > + > +Upstream-Status: Pending > + > +Signed-off-by: Roy.Li <[email protected]> > +--- > + plugins/Makefile.am | 2 +- > + 1 files changed, 1 insertions(+), 1 deletions(-) > + > +diff --git a/plugins/Makefile.am b/plugins/Makefile.am > +index b00915f..25262a1 100644 > +--- a/plugins/Makefile.am > ++++ b/plugins/Makefile.am > +@@ -62,7 +62,7 @@ plugindir = @plugindir@ > + > + common_sources = plugin_common.c plugin_common.h > + > +-sasldir = $(prefix)/lib/sasl2 > ++sasldir = $(libdir)/sasl2 > + sasl_LTLIBRARIES = @SASL_MECHS@ > + EXTRA_LTLIBRARIES = libplain.la libanonymous.la libkerberos4.la > libcrammd5.la \ > + libgs2.la libgssapiv2.la libdigestmd5.la liblogin.la libsrp.la > libotp.la \ > +-- > +1.7.4.1 > + -- -Joe MacDonald. :wq
signature.asc
Description: Digital signature
_______________________________________________ Openembedded-devel mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-devel
