aboutsummaryrefslogtreecommitdiff
path: root/files/ja/archive/mozilla/xulrunner/ldap_xpcom/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'files/ja/archive/mozilla/xulrunner/ldap_xpcom/index.html')
-rw-r--r--files/ja/archive/mozilla/xulrunner/ldap_xpcom/index.html150
1 files changed, 0 insertions, 150 deletions
diff --git a/files/ja/archive/mozilla/xulrunner/ldap_xpcom/index.html b/files/ja/archive/mozilla/xulrunner/ldap_xpcom/index.html
deleted file mode 100644
index 38fe28447c..0000000000
--- a/files/ja/archive/mozilla/xulrunner/ldap_xpcom/index.html
+++ /dev/null
@@ -1,150 +0,0 @@
----
-title: Using LDAP XPCOM with XULRunner
-slug: Archive/Mozilla/XULRunner/LDAP_XPCOM
-tags:
- - XUL
- - XULRunner
-translation_of: Archive/Mozilla/XULRunner/LDAP_XPCOM
----
-<p> </p><p>標準では XULRunner は LDAP XPCOM サポート無しでビルドされています。もし XUL アプリケーションで LDAP コンポーネントを使いたいのであれば、二つのオプションがあります: XULRunner を LDAP サポートを有効にしてビルドする事、もう一つは LDAP XPCOM を XUL アプリ(のコンポーネントディレクトリ)に直接追加する事です。
-</p><p>いずれのケースでも、 &lt;tt&gt;--enable-ldap&lt;/tt&gt; ビルドオプションを追加して、 LDAP XPCOM をビルドする必要があるでしょう。 XULRunner のビルドの仕方について詳細な情報
-は <a href="ja/Build_Documentation">Build_Documentation</a> をごらんになってください。<a href="ja/Configuring_Build_Options">Configuring Build Options</a> では、以下を .mozconfig ファイルに追加します:
-</p>
-<pre class="eval">ac_add_options --enable-ldap
-</pre>
-<p>これでビルドパッケージのコンポーネントディレクトリに以下の二つのファイルが作成されます:
-</p>
-<ul><li> &lt;tt&gt;mozldap.dll&lt;/tt&gt; (もしくは libmozldap.so かなにか...)
-</li><li> &lt;tt&gt;mozldap.xpt&lt;/tt&gt;
-</li></ul>
-<p>そしてビルドパッケージのルートディレクトリに以下の二つのファイルが作成されます:
-windows上では:
-</p>
-<ul><li> &lt;tt&gt;nsldap32v50.dll&lt;/tt&gt;
-</li><li> &lt;tt&gt;nsldappr32v50.dll&lt;/tt&gt;
-</li></ul>
-<p>linux上では:
-</p>
-<ul><li> &lt;tt&gt;libldap50.so&lt;/tt&gt;
-</li><li> &lt;tt&gt;libprldap50.so&lt;/tt&gt;
-</li></ul>
-<p>これらはネイティブの LDAP ライブラリです。
-</p><p>もし通常通りにこれらのファイルを XUL アプリの &lt;tt&gt;components&lt;/tt&gt; に追加したとしても、これは動作しません。実際のところ、 LDAP インターフェイスは利用できます(例えば &lt;tt&gt;Components.interfaces.nsILDAPConnection&lt;/tt&gt; は null ではありません)が、コンポーネントはロードできません(例えば、 &lt;tt&gt;Components.classes["@mozilla.org/network/ldap-connection;1"]&lt;/tt&gt; は null になります)。これは実際にはネイティブの LDAP ライブラリファイルが XULRunner のプロセスが見つけられない事が原因となります。
-</p><p>解決方法としては bsmedberg の手法を使う事で、これは <a href="ja/Using_Dependent_Libraries_In_Extension_Components">Using Dependent Libraries In Extension Components</a> に述べられています: コンポーネントライブラリはリアルライブラリと全ての依存関係の loader となり、これは全ての必要なライブラリがロードされるという事です。
-</p><p>mozilla のソースコードディレクトリに &lt;tt&gt;extensions/ldapstub&lt;/tt&gt; というサブディレクトリを作成し、二つのファイル、&lt;tt&gt;Makefile.in&lt;/tt&gt; と &lt;tt&gt;LDAPStubLoader.cpp&lt;/tt&gt; を入れます:
-</p><p>Makefile.in:
-</p>
-<pre># Copyright (c) 2005 Benjamin Smedberg &lt;benjamin@smedbergs.us&gt;
-
-DEPTH = ../..
-srcdir = @srcdir@
-topsrcdir = @top_srcdir@
-VPATH = @srcdir@
-
-include $(DEPTH)/config/autoconf.mk
-
-MODULE = mozldapstub
-LIBRARY_NAME = mozldap_stub
-IS_COMPONENT = 1
-FORCE_SHARED_LIB = 1
-
-REQUIRES = \
- xpcom \
- string \
- $(NULL)
-
-CPPSRCS = LDAPStubLoader.cpp
-
-EXTRA_DSO_LDOPTS += \
- $(DIST)/lib/$(LIB_PREFIX)xpcomglue_s.$(LIB_SUFFIX) \
- $(XPCOM_FROZEN_LDOPTS) \
- $(NSPR_LIBS) \
- $(NULL)
-
-include $(topsrcdir)/config/rules.mk
-
-DEFINES += -DMOZ_DLL_PREFIX=\"$(DLL_PREFIX)\"
-</pre>
-<p>LDAPStubLoader.cpp:
-</p>
-<pre>// Copyright (c) 2005 Benjamin Smedberg &lt;benjamin@smedbergs.us&gt;
-
-#include "nscore.h"
-#include "nsModule.h"
-#include "prlink.h"
-#include "nsILocalFile.h"
-#include "nsStringAPI.h"
-#include "nsCOMPtr.h"
-
-static char const *const kDependentLibraries[] =
-{
-#ifdef NS_WIN32
- MOZ_DLL_PREFIX "nsldap32v50" MOZ_DLL_SUFFIX,
- MOZ_DLL_PREFIX "nsldappr32v50" MOZ_DLL_SUFFIX,
-#endif //NS_WIN32
-#ifdef NS_UNIX
- MOZ_DLL_PREFIX "ldap50" MOZ_DLL_SUFFIX,
- MOZ_DLL_PREFIX "prldap50" MOZ_DLL_SUFFIX,
-#endif //NS_UNIX
- nsnull
-};
-
-// component.dll on windows, libcomponent.dll on linux
-static char kRealComponent[] = MOZ_DLL_PREFIX "mozldap" MOZ_DLL_SUFFIX;
-
-nsresult
-NSGetModule(nsIComponentManager* aCompMgr,
- nsIFile* aLocation,
- nsIModule* *aResult)
-{
- nsresult rv;
-
- nsCOMPtr&lt;nsIFile&gt; libraries;
- rv = aLocation-&gt;GetParent(getter_AddRefs(libraries));
- if (NS_FAILED(rv))
- return rv;
-
- nsCOMPtr&lt;nsILocalFile&gt; library(do_QueryInterface(libraries));
- if (!library)
- return NS_ERROR_UNEXPECTED;
-
- library-&gt;SetNativeLeafName(NS_LITERAL_CSTRING("libraries"));
- library-&gt;AppendNative(NS_LITERAL_CSTRING("dummy"));
-
- // loop through and load dependent libraries
- for (char const *const *dependent = kDependentLibraries;
- *dependent;
- ++dependent) {
- library-&gt;SetNativeLeafName(nsDependentCString(*dependent));
- PRLibrary *lib;
- library-&gt;Load(&amp;lib);
- // 1) We don't care if this failed!
- // 2) We are going to leak this library. We don't care about that either.
- }
-
- library-&gt;SetNativeLeafName(NS_LITERAL_CSTRING(kRealComponent));
-
- PRLibrary *lib;
- rv = library-&gt;Load(&amp;lib);
- if (NS_FAILED(rv))
- return rv;
-
- nsGetModuleProc getmoduleproc = (nsGetModuleProc)
- PR_FindFunctionSymbol(lib, NS_GET_MODULE_SYMBOL);
-
- if (!getmoduleproc)
- return NS_ERROR_FAILURE;
-
- return getmoduleproc(aCompMgr, aLocation, aResult);
-}
-</pre>
-<p>そして &lt;tt&gt;.mozconfig&lt;/tt&gt; を変更して次の行を追加します:
-</p>
-<pre class="eval">ac_add_options --enable-extensions=ldapstub
-</pre>
-<p>XULRunnnerを再ビルドします。これでビルドパッケージの &lt;tt&gt;components&lt;/tt&gt; サブディレクトリに新しいファイル、 &lt;tt&gt;mozldap_stub.dll&lt;/tt&gt; (Windows上) もしくは &lt;tt&gt;libmozldap_stub.so&lt;/tt&gt; (Linux上) が作られるでしょう。 </p><p>&lt;tt&gt;mozldap.xpt&lt;/tt&gt; と &lt;tt&gt;mozldap_stub.dll&lt;/tt&gt; を XUL アプリの &lt;tt&gt;components&lt;/tt&gt; サブディレクトリにコピーします。
-XULアプリのディレクトリに &lt;tt&gt;libraries&lt;/tt&gt; サブディレクトリを作成し、&lt;tt&gt;mozldap.dll&lt;/tt&gt; (もしくは &lt;tt&gt;libmozldap.so&lt;/tt&gt;) をコピーして、そしてネイティブ LDAP バイナリをそこに入れます。
-</p><p>プロファイルを削除しておく事を忘れないでください。
-</p><p>これで LDAP コンポーネントが使えるようになります。
-</p><p><span class="comment">Interwiki Language Links</span>
-</p>