Re: [389-users] Error debianizing the 389-ds-base-1.2.1 package

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxxx -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@xxxxxxxxxxxx
Date            : Thu, 04 Jun 2009 22:56:55 +0000
Package Name    : 389-ds-base
Version         : 1.2.1
License         : gpl
I 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@xxxxxxxxxxxx>
Build-Depends: debhelper (>= 7), autotools-dev
Standards-Version: 3.7.3
Homepage: http://directory.fedoraproject.org
You 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-dev
I 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.


<<attachment: smime.p7s>>

--
389 users mailing list
389-users@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/fedora-directory-users

[Index of Archives]     [Fedora Directory Users]     [Fedora Directory Devel]     [Fedora Announce]     [Fedora Legacy Announce]     [Kernel]     [Fedora Legacy]     [Share Photos]     [Fedora Desktop]     [PAM]     [Red Hat Watch]     [Red Hat Development]     [Big List of Linux Books]     [Gimp]     [Yosemite News]

  Powered by Linux