Package: nss-passwords
Severity: important
Tags: patch
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu precise ubuntu-patch

Dear maintainer,

nss-passwords 0.1-1 fails to build in ubuntu precise with ld --as-needed.

The entire log can be found here 
https://launchpadlibrarian.net/89413467/buildlog_ubuntu-precise-i386.nss-passwords_0.1-1_FAILEDTOBUILD.txt.gz

This is a snippet, focusing on the error:

ocamlfind ocamlc -g -package fileutils.str,sqlite3 -ccopt -lnss3 -ccopt 
-lnssutil3 -ccopt -lsmime3 -ccopt -lssl3 -ccopt -lplds4 -ccopt -lplc4 -ccopt 
-lnspr4 -ccopt -lpthread -ccopt -ldl -custom -linkpkg -o nss-passwords main.cmo 
nss_stubs.o main_stubs.o
nss_stubs.o: In function `password_func':
nss_stubs.c:(.text+0x175): undefined reference to `PL_strdup'
nss_stubs.o: In function `caml_nss_cleanup':
nss_stubs.c:(.text+0x1df): undefined reference to `NSS_Shutdown'
nss_stubs.c:(.text+0x200): undefined reference to `PR_Cleanup'
nss_stubs.o: In function `caml_nss_init':
nss_stubs.c:(.text+0x277): undefined reference to `PK11_SetPasswordFunc'
nss_stubs.c:(.text+0x282): undefined reference to `NSS_Init'
nss_stubs.o: In function `caml_do_decrypt':
nss_stubs.c:(.text+0x3af): undefined reference to `NSSBase64_DecodeBuffer'
nss_stubs.c:(.text+0x3dc): undefined reference to `PORT_GetError'
nss_stubs.c:(.text+0x3fd): undefined reference to `SECITEM_FreeItem'
nss_stubs.c:(.text+0x4af): undefined reference to `PK11SDR_Decrypt'
nss_stubs.c:(.text+0x4c5): undefined reference to `SECITEM_ZfreeItem'
nss_stubs.c:(.text+0x507): undefined reference to `SECITEM_ZfreeItem'
nss_stubs.c:(.text+0x529): undefined reference to `PORT_GetError'
collect2: ld returned 1 exit status
File "_none_", line 1, characters 0-1:
Error: Error while building custom runtime system
make[1]: *** [nss-passwords] Error 2



As attachment you can find the patch that solves the problem.

Regards,

Leo.



-- System Information:
Debian Release: wheezy/sid
  APT prefers oneiric-updates
  APT policy: (500, 'oneiric-updates'), (500, 'oneiric'), (100, 
'oneiric-backports')
Architecture: i386 (i686)

Kernel: Linux 3.2.0-030200rc7-generic (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Description: Fix FTBFS with ld --as-needed in Makefile.
 And replace "-ccopt" with "-cclib".
 According to the man page of ocamlopt, optiot -cclib is better:
   -cclib -llibname
          Pass the -llibname option to the linker. This causes the 
          given C library to be linked with the program.

Author: Leo Iannacone <l...@ubuntu.com>
---
 Makefile |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--- nss-passwords.orig/Makefile
+++ nss-passwords/Makefile
@@ -1,7 +1,7 @@
 OCAMLC = ocamlfind ocamlc -g -package fileutils.str,sqlite3
 OCAMLOPT = ocamlfind ocamlopt -g -package fileutils.str,sqlite3
 ML_CFLAGS = $(foreach u,$(shell pkg-config --cflags nss),-ccopt $(u))
-ML_LFLAGS = $(foreach u,$(shell pkg-config --libs nss),-ccopt $(u))
+ML_LFLAGS = $(foreach u,$(shell pkg-config --libs nss),-cclib $(u))
 
 .PHONY: all clean
 
@@ -11,7 +11,7 @@ clean:
        rm -f *~ *.cm[oxi] *.o nss-passwords
 
 nss-passwords: main.cmo nss_stubs.o main_stubs.o
-       $(OCAMLC) $(ML_LFLAGS) -custom -linkpkg -o $@ $^
+       $(OCAMLC) -o $@ $^ $(ML_LFLAGS) -custom -linkpkg
 
 %.cmx: %.ml
        $(OCAMLOPT) -c $<

Reply via email to