From: Joe MacDonald <Joe.MacDonald@windriver.com>
To: <rongqing.li@windriver.com>
Cc: openembedded-devel@lists.openembedded.org
Subject: Re: [PATCH] cyrus-sasl: several fixes
Date: Wed, 17 Jul 2013 15:08:05 -0400 [thread overview]
Message-ID: <20130717190804.GB31259@windriver.com> (raw)
In-Reply-To: <1374042294-7344-1-git-send-email-rongqing.li@windriver.com>
[-- Attachment #1: Type: text/plain, Size: 6627 bytes --]
[[PATCH] cyrus-sasl: several fixes] On 13.07.17 (Wed 14:24) rongqing.li@windriver.com wrote:
> From: "Roy.Li" <rongqing.li@windriver.com>
>
> 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 <rongqing.li@windriver.com>
> ---
> .../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 <rongqing.li@windriver.com>
> +---
> + 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
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 205 bytes --]
next prev parent reply other threads:[~2013-07-17 19:08 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-17 6:24 [PATCH] cyrus-sasl: several fixes rongqing.li
2013-07-17 19:08 ` Joe MacDonald [this message]
2013-07-19 5:37 ` Rongqing Li
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130717190804.GB31259@windriver.com \
--to=joe.macdonald@windriver.com \
--cc=openembedded-devel@lists.openembedded.org \
--cc=rongqing.li@windriver.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox