Morenisco
2009-Jun-06 01:56 UTC
[389-users] Error debianizing the 389-ds-base-1.2.1 package
Hi,
I tried to debianize the 389-ds-base-1.2.1 package in a clean directory
and sources, and I got an error.
The basic steps that I performed were the following:
1) 389-ds-base-1.2.1 package - Initial debianization:
root@dirserv1:~/project-389/389-ds-base-1.2.1# dh_make -e
morenisco@noc-root.net -c gpl -f ../389-ds-base-1.2.1.tar.gz
Type of package: single binary, multiple binary, library, kernel module
or cdbs?
[s/m/l/k/b] s
Maintainer name : root
Email-Address : morenisco@noc-root.net
Date : Thu, 04 Jun 2009 22:56:55 +0000
Package Name : 389-ds-base
Version : 1.2.1
License : gpl
Using dpatch : no
Type of Package : Single
Hit <enter> to confirm:
Done. Please edit the files in the debian/ subdirectory now. 389-ds-base
uses a configure script, so you probably don''t have to edit the
Makefiles.
2) I modified the control file as follows:
Source: 389-ds-base
Section: admin
Priority: extra
Maintainer: Morenisco <morenisco@noc-root.net>
Build-Depends: debhelper (>= 7), autotools-dev
Standards-Version: 3.7.3
Homepage: http://directory.fedoraproject.org
Package: 389-ds-base
Architecture: any
Depends: libsvrcore0, libsvrcore-dev, libmozldap-0d, libmozldap-dev,
libmozilla-ldap-perl, libdb4.6-dev, libicu-dev, libsnmp-dev,
libkrb5-dev, libpam-dev, libnet-ldap-perl, libperl-dev
Description: The enterprise-class Open Source LDAP server for Linux.
It is hardened by real-world use, is full-featured, supports
multi-master replication, and already handles many of the
largest
LDAP deployments in the world.
3) I tried to build the package with the following command:
root@dirserv1:~/project-389/389-ds-base-1.2.1# dpkg-buildpackage -rfakeroot
The generated output is too long, and the latest part is the following:
ldap/servers/slapd/.libs/libslapd_la-snmp_collator.o: In function
`snmp_collator_create_semaphore'':
/root/project-389/389-ds-base-1.2.1/ldap/servers/slapd/snmp_collator.c:532:
undefined reference to `sem_open''
/root/project-389/389-ds-base-1.2.1/ldap/servers/slapd/snmp_collator.c:536:
undefined reference to `sem_unlink''
/root/project-389/389-ds-base-1.2.1/ldap/servers/slapd/snmp_collator.c:542:
undefined reference to `sem_open''
ldap/servers/slapd/.libs/libslapd_la-snmp_collator.o: In function
`snmp_collator_sem_wait'':
/root/project-389/389-ds-base-1.2.1/ldap/servers/slapd/snmp_collator.c:574:
undefined reference to `sem_trywait''
/root/project-389/389-ds-base-1.2.1/ldap/servers/slapd/snmp_collator.c:586:
undefined reference to `sem_close''
/root/project-389/389-ds-base-1.2.1/ldap/servers/slapd/snmp_collator.c:587:
undefined reference to `sem_unlink''
ldap/servers/slapd/.libs/libslapd_la-snmp_collator.o: In function
`snmp_collator_update'':
/root/project-389/389-ds-base-1.2.1/ldap/servers/slapd/snmp_collator.c:629:
undefined reference to `sem_post''
ldap/servers/slapd/.libs/libslapd_la-snmp_collator.o: In function
`snmp_collator_stop'':
/root/project-389/389-ds-base-1.2.1/ldap/servers/slapd/snmp_collator.c:505:
undefined reference to `sem_close''
/root/project-389/389-ds-base-1.2.1/ldap/servers/slapd/snmp_collator.c:506:
undefined reference to `sem_unlink''
ldap/servers/slapd/.libs/libslapd_la-snmp_collator.o: In function
`snmp_collator_init'':
/root/project-389/389-ds-base-1.2.1/ldap/servers/slapd/snmp_collator.c:205:
undefined reference to `sem_post''
collect2: ld returned 1 exit status
make[2]: *** [libslapd.la] Error 1
make[2]: Leaving directory `/root/project-389/389-ds-base-1.2.1''
make[1]: *** [all] Error 2
make[1]: Leaving directory `/root/project-389/389-ds-base-1.2.1''
make: *** [build-stamp] Error 2
dpkg-buildpackage: failure: debian/rules build gave error exit status 2
root@dirserv1:~/project-389/389-ds-base-1.2.1#
The complete output is in the following URL:
http://morenisco.noc-root.net/debian/files/Error_Debianizing_389-ds-base-1.2.1
Some idea about why this can be failing please?
Thanks a lot.
--
Morenisco.
Centro de Difusión del Software Libre.
http://www.cdsl.cl
http://trabajosfloss.noc-root.net
Blog: http://morenisco.noc-root.net
Rich Megginson
2009-Jun-06 16:03 UTC
Re: [389-users] Error debianizing the 389-ds-base-1.2.1 package
Morenisco wrote:> Hi, > > I tried to debianize the 389-ds-base-1.2.1 package in a clean > directory and sources, and I got an error. > > The basic steps that I performed were the following: > > 1) 389-ds-base-1.2.1 package - Initial debianization: > > root@dirserv1:~/project-389/389-ds-base-1.2.1# dh_make -e > morenisco@noc-root.net -c gpl -f ../389-ds-base-1.2.1.tar.gz > > Type of package: single binary, multiple binary, library, kernel > module or cdbs? > [s/m/l/k/b] s > > Maintainer name : root > Email-Address : morenisco@noc-root.net > Date : Thu, 04 Jun 2009 22:56:55 +0000 > Package Name : 389-ds-base > Version : 1.2.1 > License : gplI don''t know if Debian differentiates between GPL flavors, but the 389-ds-base license is GPLv2 + exception for plug-ins.> Using dpatch : no > Type of Package : Single > Hit <enter> to confirm: > Done. Please edit the files in the debian/ subdirectory now. 389-ds-base > uses a configure script, so you probably don''t have to edit the > Makefiles. > > 2) I modified the control file as follows: > > Source: 389-ds-base > Section: admin > Priority: extra > Maintainer: Morenisco <morenisco@noc-root.net> > Build-Depends: debhelper (>= 7), autotools-dev > Standards-Version: 3.7.3 > Homepage: http://directory.fedoraproject.orgYou probably want to change this to port389.org> > Package: 389-ds-base > Architecture: any > Depends: libsvrcore0, libsvrcore-dev, libmozldap-0d, libmozldap-dev, > libmozilla-ldap-perl, libdb4.6-dev, libicu-dev, libsnmp-dev, > libkrb5-dev, libpam-dev, libnet-ldap-perl, libperl-devI don''t think it depends on libnet-ldap-perl, only on libmozilla-ldap-perl. DS base also depends on cyrus-sasl-devel - not sure what Debian package that is (libsasl2-dev?). And I don''t see libnspr-dev or libnss-dev among the dependencies - perhaps they get pulled in by the svrcore or mozilla dependencies.> Description: The enterprise-class Open Source LDAP server for Linux. > It is hardened by real-world use, is full-featured, supports > multi-master replication, and already handles many of the > largest > LDAP deployments in the world. > > > 3) I tried to build the package with the following command: > > root@dirserv1:~/project-389/389-ds-base-1.2.1# dpkg-buildpackage > -rfakeroot > > The generated output is too long, and the latest part is the following: > > ldap/servers/slapd/.libs/libslapd_la-snmp_collator.o: In function > `snmp_collator_create_semaphore'': > /root/project-389/389-ds-base-1.2.1/ldap/servers/slapd/snmp_collator.c:532: > undefined reference to `sem_open'' > /root/project-389/389-ds-base-1.2.1/ldap/servers/slapd/snmp_collator.c:536: > undefined reference to `sem_unlink'' > /root/project-389/389-ds-base-1.2.1/ldap/servers/slapd/snmp_collator.c:542: > undefined reference to `sem_open'' > ldap/servers/slapd/.libs/libslapd_la-snmp_collator.o: In function > `snmp_collator_sem_wait'': > /root/project-389/389-ds-base-1.2.1/ldap/servers/slapd/snmp_collator.c:574: > undefined reference to `sem_trywait'' > /root/project-389/389-ds-base-1.2.1/ldap/servers/slapd/snmp_collator.c:586: > undefined reference to `sem_close'' > /root/project-389/389-ds-base-1.2.1/ldap/servers/slapd/snmp_collator.c:587: > undefined reference to `sem_unlink'' > ldap/servers/slapd/.libs/libslapd_la-snmp_collator.o: In function > `snmp_collator_update'': > /root/project-389/389-ds-base-1.2.1/ldap/servers/slapd/snmp_collator.c:629: > undefined reference to `sem_post'' > ldap/servers/slapd/.libs/libslapd_la-snmp_collator.o: In function > `snmp_collator_stop'': > /root/project-389/389-ds-base-1.2.1/ldap/servers/slapd/snmp_collator.c:505: > undefined reference to `sem_close'' > /root/project-389/389-ds-base-1.2.1/ldap/servers/slapd/snmp_collator.c:506: > undefined reference to `sem_unlink'' > ldap/servers/slapd/.libs/libslapd_la-snmp_collator.o: In function > `snmp_collator_init'': > /root/project-389/389-ds-base-1.2.1/ldap/servers/slapd/snmp_collator.c:205: > undefined reference to `sem_post'' > collect2: ld returned 1 exit status > make[2]: *** [libslapd.la] Error 1 > make[2]: Leaving directory `/root/project-389/389-ds-base-1.2.1'' > make[1]: *** [all] Error 2 > make[1]: Leaving directory `/root/project-389/389-ds-base-1.2.1'' > make: *** [build-stamp] Error 2 > dpkg-buildpackage: failure: debian/rules build gave error exit status 2 > root@dirserv1:~/project-389/389-ds-base-1.2.1# > > The complete output is in the following URL: > > http://morenisco.noc-root.net/debian/files/Error_Debianizing_389-ds-base-1.2.1 > > > Some idea about why this can be failing please?The problem is that libslapd is not linked with -lrt, which provides the semaphore functions. This is usually fine, since ns-slapd (the executable) is linked with -lrt, so that at runtime all of these references are resolved, But Debian uses -Wl,-z,defs which forces all references to be looked up at link time. We should fix this in 389 - please file a bug against 389. In the meantime, you could either turn off -z,defs, or figure out how to link libslapd with -lrt> > Thanks a lot. >
Morenisco
2009-Jun-16 02:46 UTC
Re: [389-users] Error debianizing the 389-ds-base-1.2.1 package
Rich Megginson wrote: [...]> The problem is that libslapd is not linked with -lrt, which provides > the semaphore functions. This is usually fine, since ns-slapd (the > executable) is linked with -lrt, so that at runtime all of these > references are resolved, But Debian uses -Wl,-z,defs which forces all > references to be looked up at link time. We should fix this in 389 - > please file a bug against 389. In the meantime, you could either turn > off -z,defs, or figure out how to link libslapd with -lrtHi Rich, Finally I opened *Bug 506206* <https://bugzilla.redhat.com/show_bug.cgi?id=506206> - libslapd is not linked with -lrt . I''ll follow working on this, and I''ll notify here If I got the packages... Regards. -- Morenisco. Centro de Difusión del Software Libre. http://www.cdsl.cl http://www.folasol.org http://trabajosfloss.noc-root.net Blog: http://morenisco.noc-root.net