Skip to Content.
Sympa Menu

sm-discuss - [SM-Discuss] Mozilla spells and nss

sm-discuss AT lists.ibiblio.org

Subject: Public SourceMage Discussion List

List archive

Chronological Thread  
  • From: George Sherwood <pilot AT beernabeer.com>
  • To: sm-discuss AT lists.ibiblio.org
  • Subject: [SM-Discuss] Mozilla spells and nss
  • Date: Sat, 11 Oct 2008 09:21:12 -0500

As some of you might have noticed I am attempting to clean up the whole
depends on GECKO mess. Many of the programs that we have providing
GECKO don't actually work with many of the spells that need it. I have
been working on getting xulrunner working well and than working to get
the majority of programs needing/using GECKO to work with it. I was
making pretty good progress until I ran into a problem with nss.

I noticed that xulrunner was using its own version of nss even
after configuring it to use the system nss. Looking closer at the
configure, it was not finding the system nss due to the nss spell not
installing a nss-config file. It isn't looking for the mozilla-nss.pc
config file as do other spells. After creating the attached nss-config
file, xulrunner was using our nss libs, but than failing during
linking. I will attach the compile log, but here is the start of the
failure. It occurs almost at the end of the build.

c++ -fno-rtti -fno-exceptions -Wall -Wconversion -Wpointer-arith
-Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy
-Wno-non-virtual-dtor -Wcast-align -Wno-long-long -pedantic
-march=pentium4 -pipe -fno-strict-aliasing -fshort-wchar -pthread
-pipe -DNDEBUG -DTRIMMED -Os -freorder-blocks -fno-reorder-functions
-fPIC -shared -Wl,-z,defs -Wl,-h,libxul.so -o libxul.so
nsStaticXULComponents.o nsUnicharUtils.o nsCompressedCharMap.o
nsBidiUtils.o nsRDFResource.o -lpthread -s
-Wl,-rpath-link,../../dist/bin
-Wl,--whole-archive ../../embedding/browser/gtk/src/libgtkembedmoz.a
../../toolkit/xre/libxulapp_s.a ../../staticlib/components/libxpconnect.a
../../staticlib/components/libnecko.a ../../staticlib/components/libuconv.a
../../staticlib/components/libi18n.a ../../staticlib/components/libchardet.a
../../staticlib/components/libjar50.a ../../staticlib/components/libpref.a
../../staticlib/components/libcaps.a ../../staticlib/components/libhtmlpars.a
../../staticlib/components/libimglib2.a
../../staticlib/components/libgklayout.a
../../staticlib/components/libdocshell.a
../../staticlib/components/libembedcomponents.a
../../staticlib/components/libwebbrwsr.a
../../staticlib/components/libnsappshell.a
../../staticlib/components/libtxmgr.a ../../staticlib/components/libchrome.a
../../staticlib/components/libcommandlines.a
../../staticlib/components/libtoolkitcomps.a
../../staticlib/components/libpipboot.a
../../staticlib/components/libpipnss.a
../../staticlib/components/libxmlextras.a
../../staticlib/components/libgkplugin.a
../../staticlib/components/libmozfind.a
../../staticlib/components/libappcomps.a
../../staticlib/components/libunixproxy.a
../../staticlib/components/libxpinstall.a ../../staticlib/components/libjsd.a
../../staticlib/components/libautoconfig.a
../../staticlib/components/libwebsrvcs.a ../../staticlib/components/libauth.a
../../staticlib/components/libcookie.a
../../staticlib/components/libpermissions.a
../../staticlib/components/libuniversalchardet.a
../../staticlib/components/libcomposer.a ../../staticlib/components/librdf.a
../../staticlib/components/libwindowds.a
../../staticlib/components/libintlapp.a
../../staticlib/components/libfileview.a
../../staticlib/components/libstoragecomps.a
../../staticlib/components/libplaces.a
../../staticlib/components/libtkautocomplete.a
../../staticlib/components/libsatchel.a
../../staticlib/components/libpippki.a
../../staticlib/components/libucvmath.a
../../staticlib/components/libwidget_gtk2.a
../../staticlib/components/libsystem-pref.a
../../staticlib/components/libgkgfxthebes.a
../../staticlib/components/liboji.a
../../staticlib/components/libaccessibility.a
../../staticlib/components/libremoteservice.a
../../staticlib/components/libspellchecker.a
../../staticlib/components/libzipwriter.a ../../staticlib/libxpcom_core.a
../../staticlib/libucvutil_s.a ../../staticlib/libgkgfx.a
../../staticlib/libgfxshared_s.a ../../staticlib/libmozreg_s.a
../../staticlib/libmorkreader_s.a ../../staticlib/libgtkxtbin.a
../../staticlib/libgfxpsshar.a ../../staticlib/libthebes.a
../../staticlib/libjsj.a
-Wl,--no-whole-archive -L../../dist/lib -lsqlite3 -L../../dist/bin
-L../../dist/lib -L../../dist/bin -L../../dist/lib -L/usr/lib/lib
-ljpeg -L/usr/lib/lib -lpng -L../../dist/bin -lmozlcms
-L../../dist/bin -lmozjs -Wl,-R/usr/lib -L/usr/lib -lssl3 -lsmime3
-lnss3 -lcrmf -L/usr/lib/lib -lz -lpangocairo-1.0 -lcairo
-lpangoft2-1.0 -lpango-1.0 -lfreetype -lz -lfontconfig -lgobject-2.0
-lgmodule-2.0 -lglib-2.0 -lcairo -lfreetype -lz -lfontconfig
-lXrender -lcairo -lX11 -L/usr/lib -lplds4 -lplc4 -lnspr4 -lpthread
-ldl -lX11 -lXft -lXrender -lfontconfig -lfreetype -lz -lX11
-lgtk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lfreetype -lz
-lfontconfig -lgdk-x11-2.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0
-lpango-1.0 -lcairo -lgmodule-2.0 -lgobject-2.0 -lglib-2.0 -lXt
-lgthread-2.0 -lfreetype -lz -ldl
-lm ../../staticlib/components/libpipnss.a(nsCertOverrideService.o): In
function `GetCertFingerprintByDottedOidString(nsIX509Cert*, nsCString
const&, nsCString&)': nsCertOverrideService.cpp:(.text+0x469):
undefined reference to
`SEC_StringToOID'
../../staticlib/components/libpipnss.a(nsIdentityChecking.o):
In function `nsNSSComponent::IdentityInfoInit()':
nsIdentityChecking.cpp:(.text+0x99d): undefined reference to
`SEC_StringToOID' /usr/lib/libcrmf.a(crmfenc.o): In function
`CRMF_EncodeCertReqMessages': crmfenc.c:(.text+0x46): undefined
reference to `SEC_ASN1Encode_Util' /usr/lib/libcrmf.a(crmfenc.o): In
function `CRMF_EncodeCertRequest': crmfenc.c:(.text+0x90): undefined
reference to `SEC_ASN1Encode_Util' /usr/lib/libcrmf.a(crmfenc.o): In
function `CRMF_EncodeCertReqMsg': crmfenc.c:(.text+0xe0): undefined
reference to
`SEC_ASN1Encode_Util' /usr/lib/libcrmf.a(crmftmpl.o):(.data.rel.ro+0xc8):
undefined reference to
`SEC_NullTemplate_Util' /usr/lib/libcrmf.a(crmftmpl.o):(.data.rel.ro+0xe8):
undefined reference to
`SEC_BitStringTemplate_Util'
/usr/lib/libcrmf.a(crmftmpl.o):(.data.rel.ro+0x108):
undefined reference to
`SEC_IntegerTemplate_Util'
/usr/lib/libcrmf.a(crmftmpl.o):(.data.rel.ro+0x128):
undefined reference to
`SEC_BitStringTemplate_Util'
/usr/lib/libcrmf.a(crmftmpl.o):(.data.rel.ro+0x148):
undefined reference to `SEC_AnyTemplate_Util'

I also noticed that the nss problem has been with us for a long time.
Looking at old compile log, it appears that all the mozilla spells have
been using their internal version of nss vice system nss due to not
finding the nss-config file. There have even been bugs written due to
the mozilla-nss.pc file being overwritten by mozilla spells.

I am not really sure how to proceed. Either we can find a fix this,
but I don't know how or just let the mozilla spells use their internal
version of nss. We will just need to make sure our nss spell is not
being stepped on by these installations. As an example I edited an
xulrunner Makefile so it doesn't install mozilla-nss.pc.

Any other ides?

George Sherwood

Attachment: xulrunner-1.9.0.3.bz2
Description: application/bzip

Attachment: nss-config
Description: Binary data

Attachment: signature.asc
Description: PGP signature




Archive powered by MHonArc 2.6.24.

Top of Page