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

pkgsrc/doc/guide/files/plist.xml: 1.17 -> 1.18



以下のページの更新をしました。ツッコミをお願いします。

pkgsrc/doc/guide/files/plist.xml: 1.17 -> 1.18
> revision 1.18
> date: 2009/07/20 15:04:27;  author: wiz;  state: Exp;  lines: +12 -62
> Update documentation on shared directory handling.


金曜日までに異議がなければ、 commit します。

更新後の訳の全文は
  http://www.na.rim.or.jp/%7Ekano/tmp/docs/pkgsrc/plist.html#faq.common-dirs
に置いてあります。

以下、訳と原文それぞれの新旧の差分です。

--- plist.xml.orig	2009-08-27 22:59:31.000000000 +0900
+++ plist.xml	2009-08-27 22:59:31.000000000 +0900
@@ -1,6 +1,6 @@
-<!-- $NetBSD: plist.xml,v 1.17 2009/04/03 01:52:24 snj Exp $ -->
+<!-- $NetBSD: plist.xml,v 1.18 2009/07/20 15:04:27 wiz Exp $ -->
 <!-- Based on english version: -->
-<!-- NetBSD: plist.xml,v 1.17 2009/04/03 01:52:24 snj Exp   -->
+<!-- NetBSD: plist.xml,v 1.18 2009/07/20 15:04:27 wiz Exp   -->
 
 <chapter id="plist">
   <title>PLIST 問題</title>
@@ -244,72 +244,21 @@
 
     <para><quote>共有ディレクトリー</quote>とは、複数の (かつ関連のない)
     パッケージがファイルをインストールするディレクトリーのことです。
-    共有ディレクトリーは、条件に応じた削除のために PLIST に特殊な細工をするか、
-    集権的な処理用パッケージを用意する必要があるので、
-    問題を起こすことがあります。</para>
-
-    <para>pkgsrc では、このどちらの方法も使うことができます。
-    あるディレクトリーを数個の無関連なパッケージが共有していても、
-    多くの場合、そのディレクトリーを削除するためにさらにパッケージを追加する必要はありません。
-    このディレクトリーを使っている全パッケージの PLIST で、
-    通常の "@dirrm" 行のかわりに、</para>
-
-    <programlisting>
-@unexec ${RMDIR} %D/path/to/shared/directory 2>/dev/null || ${TRUE}
-    </programlisting>
-
-    <para>と書くだけでうまくいきます。</para>
-
-    <para>しかし、ディレクトリーを数多くのパッケージが共有している場合、
-    以下の二種類の解決策を使うことができます。</para>
-
-    <orderedlist>
-      <listitem>
-	<para>各パッケージが共通の依存パッケージを持つ場合、
-	その依存先のパッケージでディレクトリーを削除できます。たとえば、
-	<filename role="pkg">textproc/scrollkeeper</filename> を参照してください。
-	このパッケージは共有ディレクトリー
-	<filename>share/omf</filename> を削除しています。</para>
-      </listitem>
-
-      <listitem>
-	<para>パッケージが関連を持たずに共有ディレクトリーを使っている場合
-	(つまり、共通の依存パッケージがない場合)、
-	*-dirs パッケージで共有ディレクトリーを削除します。</para>
-      </listitem>
-    </orderedlist>
-
-    <para>以下、二つ目の解決策について述べます。
-    既存の *-dirs パッケージを把握するため、以下を実行してください。</para>
-
+    以前は、共有ディレクトリーは、条件に応じた削除のために PLIST に特殊な細工をするか、
+    集権的な処理用パッケージを用意する必要があったので、
+    問題を起こすことがありました。</para>
+
+    <para>現在の pkgsrc では、話は単純になっています。
+    各パッケージは、必要に応じて、ディレクトリーを作成してファイルをインストールします。
+    <command>pkg_delete</command> は、パッケージのアンインストール後、
+    空のディレクトリーが残っていればすべて削除します。</para>
+
+    <para>パッケージの動作のために空のディレクトリーが必要な場合は、
+    インストール時に通常と同じようにディレクトリーを作成するようにし、
+    さらに PLIST に以下のような項目を追加します。
     <programlisting>
-&cprompt; cd .../pkgsrc
-&cprompt; ls -d */*-dirs
+@pkgdir path/to/empty/directory
     </programlisting>
-
-    <para>他のパッケージがこれらを使う方法は非常に簡単です。
-    <varname>USE_DIRS</varname> 変数に、このパッケージ名 (<quote>-dirs</quote> は除く)
-    と必要なバージョン番号 (常に、パッケージを新たに書いたときの最新バージョンを選びます)
-    をつけたものを並べます。</para>
-
-    <para>たとえば、あるパッケージが
-    <filename>share/applications</filename> 以下にファイルをインストールする場合、
-    以下の行を含めておきます。</para>
-
-    <programlisting>
-USE_DIRS+=      xdg-1.1
-    </programlisting>
-
-    <para><command>make
-    print-PLIST</command> を使って PLIST を作り直すと、
-    行が適切に (コメントアウトされて)
-    得られるはずです。</para>
-
-    <para>なお、パッケージがたとえ <filename>$X11BASE</filename>
-    を使う場合であっても、*-x11-dirs パッケージに依存させてはいけません。
-    この部分を除いた名前を指定するだけでよく、そうすれば
-    pkgsrc (特に <filename>mk/dirs.mk</filename>)
-    が処理してくれます。</para>
   </sect1>
 
 </chapter>
Index: plist.xml
===================================================================
RCS file: /cvsroot/pkgsrc/doc/guide/files/plist.xml,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- plist.xml	3 Apr 2009 01:52:24 -0000	1.17
+++ plist.xml	20 Jul 2009 15:04:27 -0000	1.18
@@ -1,4 +1,4 @@
-<!-- $NetBSD: plist.xml,v 1.17 2009/04/03 01:52:24 snj Exp $ -->
+<!-- $NetBSD: plist.xml,v 1.18 2009/07/20 15:04:27 wiz Exp $ -->
 
 <chapter id="plist">
   <title>PLIST issues</title>
@@ -246,71 +246,21 @@
 
     <para>A <quote>shared directory</quote> is a directory where
     multiple (and unrelated) packages install files.  These
-    directories are problematic because you have to add special tricks
-    in the PLIST to conditionally remove them, or have some
+    directories were problematic because you had to add special
+    tricks in the PLIST to conditionally remove them, or have some
     centralized package handle them.</para>
 
-    <para>Within pkgsrc, you'll find both approaches.  If a directory
-    is shared by a few unrelated packages, it's often not worth to add
-    an extra package to remove it.  Therefore, one simply does:</para>
-
-    <programlisting>
-@unexec ${RMDIR} %D/path/to/shared/directory 2>/dev/null || ${TRUE}
-    </programlisting>
-
-    <para>in the PLISTs of all affected packages, instead of the
-    regular "@dirrm" line.</para>
-
-    <para>However, if the directory is shared across many packages, two
-    different solutions are available:</para>
-
-    <orderedlist>
-      <listitem>
-	<para>If the packages have a common dependency, the directory
-	can be removed in that.  For example, see
-	<filename role="pkg">textproc/scrollkeeper</filename>, which
-	removes the shared directory
-	<filename>share/omf</filename>.</para>
-      </listitem>
-
-      <listitem>
-	<para>If the packages using the directory are not related at
-	all (they have no common dependencies), a *-dirs package is
-	used.</para>
-      </listitem>
-    </orderedlist>
-
-    <para>From now on, we'll discuss the second solution.  To get an
-    idea of the *-dirs packages available, issue:</para>
-
+    <para>In pkgsrc, it is now easy: Each package should create
+    directories and install files as needed; <command>pkg_delete</command>
+    will remove any directories left empty after uninstalling a
+    package.</para>
+
+    <para>If a package needs an empty directory to work, create
+    the directory during installation as usual, and also add an
+    entry to the PLIST:
     <programlisting>
-&cprompt; cd .../pkgsrc
-&cprompt; ls -d */*-dirs
+@pkgdir path/to/empty/directory
     </programlisting>
-
-    <para>Their use from other packages is very simple.  The
-    <varname>USE_DIRS</varname> variable takes a list of package names
-    (without the <quote>-dirs</quote> part) together with the required
-    version number (always pick the latest one when writing new
-    packages).</para>
-
-    <para>For example, if a package installs files under
-    <filename>share/applications</filename>, it should have the
-    following line in it:</para>
-
-    <programlisting>
-USE_DIRS+=      xdg-1.1
-    </programlisting>
-
-    <para>After regenerating the PLIST using <command>make
-    print-PLIST</command>, you should get the right (commented out)
-    lines.</para>
-
-    <para>Note that even if your package is using
-    <filename>$X11BASE</filename>, it must not depend on the
-    *-x11-dirs packages.  Just specify the name without that part and
-    pkgsrc (in particular, <filename>mk/dirs.mk</filename>) will take
-    care of it.</para>
   </sect1>
 
 </chapter>