Commit 99cfeb85 authored by Łukasz Nowak's avatar Łukasz Nowak

- build minimal cyrus-sasl implementation

Note: Cyrus sasl plugin build system ignores any parameters passed by caller
and ends up with wrongly linked plugins (lack of rpath). In case of missing
plugins which are required, they have to be analysed case by case.


git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@40600 20353a03-c40f-0410-a6d1-a30d3c3de9de
parent e87e5374
...@@ -2,9 +2,6 @@ ...@@ -2,9 +2,6 @@
parts = parts =
cyrus-sasl cyrus-sasl
extends = extends =
../software-profiles/gdbm.cfg
../software-profiles/libdb.cfg
../software-profiles/openssl.cfg
../software-profiles/zlib.cfg ../software-profiles/zlib.cfg
[cyrus-sasl-gcc4.4-patch] [cyrus-sasl-gcc4.4-patch]
...@@ -26,14 +23,18 @@ patch-options = ...@@ -26,14 +23,18 @@ patch-options =
-p1 -p1
configure-options = configure-options =
--with-openssl=${openssl:location} --disable-digest
--with-bdb-libdir=${libdb:location}/lib --disable-gssapi
--with-bdb-incdir=${libdb:location}/include --disable-otp
--with-gdbm=${gdbm:location} --with-dblib=none
--without-des
--without-openssl
--without-pam
--without-saslauthd
# it seems that parallel build sometimes fails. # it seems that parallel build sometimes fails.
make-options = make-options =
-j1 -j1
environment = environment =
CPPFLAGS=-I${openssl:location}/include -I${gdbm:location}/include -I${zlib:location}/include CPPFLAGS=-I${zlib:location}/include
LDFLAGS=-L${openssl:location}/lib -Wl,-rpath -Wl,${openssl:location}/lib -L${libdb:location}/lib -Wl,-rpath -Wl,${libdb:location}/lib -L${gdbm:location}/lib -Wl,-rpath -Wl,${gdbm:location}/lib -L${zlib:location}/lib -Wl,-rpath -Wl,${zlib:location}/lib LDFLAGS=-L${zlib:location}/lib -Wl,-rpath -Wl,${zlib:location}/lib
...@@ -1640,37 +1640,28 @@ class AssertOpenssl(AssertSoftwareMixin): ...@@ -1640,37 +1640,28 @@ class AssertOpenssl(AssertSoftwareMixin):
self.assertEqual(sorted(expected_rpath_list), elf_dict['runpath_list']) self.assertEqual(sorted(expected_rpath_list), elf_dict['runpath_list'])
class AssertCyrusSasl(AssertSoftwareMixin): class AssertCyrusSasl(AssertSoftwareMixin):
def test_ld_libsasl2(self): def test_ld_pluginviewer(self):
elf_dict = readElfAsDict('parts/cyrus-sasl/lib/libsasl2.so') elf_dict = readElfAsDict('parts/cyrus-sasl/sbin/pluginviewer')
self.assertEqual(sorted([ self.assertEqual(sorted([
'libc', 'libc',
'libdl', 'libdl',
'libresolv', 'libresolv',
'libsasl2',
]), ]),
elf_dict['library_list']) elf_dict['library_list'])
soft_dir = os.path.join(os.path.abspath(os.curdir), 'parts') soft_dir = os.path.join(os.path.abspath(os.curdir), 'parts')
expected_rpath_list = [os.path.join(soft_dir, software, 'lib') for expected_rpath_list = [os.path.join(soft_dir, software, 'lib') for
software in [ software in [
'cyrus-sasl',
'zlib',
]] ]]
self.assertEqual(sorted(expected_rpath_list), elf_dict['runpath_list']) self.assertEqual(sorted(expected_rpath_list), elf_dict['runpath_list'])
def test_ld_sasl2_libanonymous(self): def test_ld_libsasl2(self):
elf_dict = readElfAsDict('parts/cyrus-sasl/lib/sasl2/libanonymous.so') elf_dict = readElfAsDict('parts/cyrus-sasl/lib/libsasl2.so')
self.assertEqual(sorted([
'libc',
'libresolv',
]),
elf_dict['library_list'])
soft_dir = os.path.join(os.path.abspath(os.curdir), 'parts')
expected_rpath_list = [os.path.join(soft_dir, software, 'lib') for
software in [
]]
self.assertEqual(sorted(expected_rpath_list), elf_dict['runpath_list'])
def test_ld_sasl2_libcrammd5(self):
elf_dict = readElfAsDict('parts/cyrus-sasl/lib/sasl2/libcrammd5.so')
self.assertEqual(sorted([ self.assertEqual(sorted([
'libc', 'libc',
'libdl',
'libresolv', 'libresolv',
]), ]),
elf_dict['library_list']) elf_dict['library_list'])
...@@ -1680,33 +1671,29 @@ class AssertCyrusSasl(AssertSoftwareMixin): ...@@ -1680,33 +1671,29 @@ class AssertCyrusSasl(AssertSoftwareMixin):
]] ]]
self.assertEqual(sorted(expected_rpath_list), elf_dict['runpath_list']) self.assertEqual(sorted(expected_rpath_list), elf_dict['runpath_list'])
def test_ld_sasl2_libdigestmd5(self): def test_ld_sasl2_libanonymous(self):
elf_dict = readElfAsDict('parts/cyrus-sasl/lib/sasl2/libdigestmd5.so') elf_dict = readElfAsDict('parts/cyrus-sasl/lib/sasl2/libanonymous.so')
self.assertEqual(sorted([ self.assertEqual(sorted([
'libc', 'libc',
'libcrypto',
'libresolv', 'libresolv',
]), ]),
elf_dict['library_list']) elf_dict['library_list'])
soft_dir = os.path.join(os.path.abspath(os.curdir), 'parts') soft_dir = os.path.join(os.path.abspath(os.curdir), 'parts')
expected_rpath_list = [os.path.join(soft_dir, software, 'lib') for expected_rpath_list = [os.path.join(soft_dir, software, 'lib') for
software in [ software in [
'openssl',
]] ]]
self.assertEqual(sorted(expected_rpath_list), elf_dict['runpath_list']) self.assertEqual(sorted(expected_rpath_list), elf_dict['runpath_list'])
def test_ld_sasl2_libotp(self): def test_ld_sasl2_libcrammd5(self):
elf_dict = readElfAsDict('parts/cyrus-sasl/lib/sasl2/libotp.so') elf_dict = readElfAsDict('parts/cyrus-sasl/lib/sasl2/libcrammd5.so')
self.assertEqual(sorted([ self.assertEqual(sorted([
'libc', 'libc',
'libcrypto',
'libresolv', 'libresolv',
]), ]),
elf_dict['library_list']) elf_dict['library_list'])
soft_dir = os.path.join(os.path.abspath(os.curdir), 'parts') soft_dir = os.path.join(os.path.abspath(os.curdir), 'parts')
expected_rpath_list = [os.path.join(soft_dir, software, 'lib') for expected_rpath_list = [os.path.join(soft_dir, software, 'lib') for
software in [ software in [
'openssl',
]] ]]
self.assertEqual(sorted(expected_rpath_list), elf_dict['runpath_list']) self.assertEqual(sorted(expected_rpath_list), elf_dict['runpath_list'])
...@@ -1724,21 +1711,6 @@ class AssertCyrusSasl(AssertSoftwareMixin): ...@@ -1724,21 +1711,6 @@ class AssertCyrusSasl(AssertSoftwareMixin):
]] ]]
self.assertEqual(sorted(expected_rpath_list), elf_dict['runpath_list']) self.assertEqual(sorted(expected_rpath_list), elf_dict['runpath_list'])
def test_ld_sasl2_libsasldb(self):
elf_dict = readElfAsDict('parts/cyrus-sasl/lib/sasl2/libsasldb.so')
self.assertEqual(sorted([
'libc',
'libdb-4.5',
'libresolv',
]),
elf_dict['library_list'])
soft_dir = os.path.join(os.path.abspath(os.curdir), 'parts')
expected_rpath_list = [os.path.join(soft_dir, software, 'lib') for
software in [
'libdb',
]]
self.assertEqual(sorted(expected_rpath_list), elf_dict['runpath_list'])
class AssertPython26(AssertSoftwareMixin): class AssertPython26(AssertSoftwareMixin):
def test_ld_dyn_locale(self): def test_ld_dyn_locale(self):
elf_dict = readElfAsDict('parts/python2.6/lib/python2.6/lib-dynload/_locale.so') elf_dict = readElfAsDict('parts/python2.6/lib/python2.6/lib-dynload/_locale.so')
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment