svn commit: r44363 - in head/en_US.ISO8859-1/books/porters-handbook: pkg-files plist upgrading

Mathieu Arnold mat at FreeBSD.org
Thu Mar 27 16:50:33 UTC 2014


Author: mat (ports committer)
Date: Thu Mar 27 16:50:32 2014
New Revision: 44363
URL: http://svnweb.freebsd.org/changeset/doc/44363

Log:
  Update plist, pkg-files and upgrading chapters.
  
  Sponsored by:	Absolight

Modified:
  head/en_US.ISO8859-1/books/porters-handbook/pkg-files/chapter.xml
  head/en_US.ISO8859-1/books/porters-handbook/plist/chapter.xml
  head/en_US.ISO8859-1/books/porters-handbook/upgrading/chapter.xml

Modified: head/en_US.ISO8859-1/books/porters-handbook/pkg-files/chapter.xml
==============================================================================
--- head/en_US.ISO8859-1/books/porters-handbook/pkg-files/chapter.xml	Thu Mar 27 16:13:55 2014	(r44362)
+++ head/en_US.ISO8859-1/books/porters-handbook/pkg-files/chapter.xml	Thu Mar 27 16:50:32 2014	(r44363)
@@ -54,25 +54,15 @@
       <command>pkg install</command> you can do this via the
       <filename>pkg-install</filename> script.  This script will
       automatically be added to the package, and will be run twice by
-      <command>pkg</command> the first time as
-
-      <literal>${SH} pkg-install ${PKGNAME}
-	PRE-INSTALL</literal> and the second time as
+      <command>pkg</command> the first time as <literal>${SH}
+	pkg-install ${PKGNAME} PRE-INSTALL</literal> before the
+      package is installed and the second time as
       <literal>${SH} pkg-install ${PKGNAME}
-	POST-INSTALL</literal>.  <literal>$2</literal> can be
-      tested to determine which mode the script is being run in.
-      The <envar>PKG_PREFIX</envar> environmental variable will be
-      set to the package installation directory.</para>
-
-    <note>
-      <para>This script is not run automatically if you install the
-	port with <command>make install</command>.  If you are
-	depending on it being run, you will have to explicitly call
-	it from your port's <filename>Makefile</filename>, with a
-	line like <literal>PKG_PREFIX=${PREFIX} ${SH}
-	  ${PKGINSTALL} ${PKGNAME}
-	  PRE-INSTALL</literal>.</para>
-    </note>
+	POST-INSTALL</literal> after it has been installed.
+      <literal>$2</literal> can be tested to determine which
+      mode the script is being run in.  The <envar>PKG_PREFIX</envar>
+      environmental variable will be set to the package installation
+      directory.</para>
   </sect1>
 
   <sect1 xml:id="pkg-deinstall">
@@ -80,12 +70,16 @@
 
     <para>This script executes when a package is removed.</para>
 
-    <para>This script will be run twice by
-      <command>pkg delete</command> The first time as
+    <para>This script will be run twice by <command>pkg
+	delete</command> The first time as <literal>${SH}
+	pkg-deinstall ${PKGNAME} DEINSTALL</literal> before the
+      port is de-installed and the second time as
       <literal>${SH} pkg-deinstall ${PKGNAME}
-	DEINSTALL</literal> and the second time as
-      <literal>${SH} pkg-deinstall
-	${PKGNAME} POST-DEINSTALL</literal>.</para>
+	POST-DEINSTALL</literal> after the port has been de-installed.
+      <literal>$2</literal> can be tested to determine which
+      mode the script is being run in.  The <envar>PKG_PREFIX</envar>
+      environmental variable will be set to the package installation
+      directory</para>
   </sect1>
 
   <sect1 xml:id="pkg-names">
@@ -143,12 +137,6 @@
 	</tbody>
       </tgroup>
     </informaltable>
-
-    <para>Please change these variables rather than overriding
-      <varname>PKG_ARGS</varname>.  If you change
-      <varname>PKG_ARGS</varname>, those files will not correctly be
-      installed in <filename>/var/db/pkg</filename> upon install
-      from a port.</para>
   </sect1>
 
   <sect1 xml:id="using-sub-files">
@@ -163,14 +151,15 @@
 
     <para>The <varname>SUB_FILES</varname> variable specifies a list
       of files to be automatically modified.  Each
-      <replaceable>file</replaceable> in the
+      <filename><replaceable>file</replaceable></filename> in the
       <varname>SUB_FILES</varname> list must have a corresponding
-      <filename>file.in</filename> present in
-      <varname>FILESDIR</varname>.  A modified version will be created
-      in <varname>WRKDIR</varname>.  Files defined as a value of
-      <varname>USE_RC_SUBR</varname> (or the deprecated
-      <varname>USE_RCORDER</varname>) are automatically added to the
-      <varname>SUB_FILES</varname>.  For the files
+      <filename><replaceable>file</replaceable>.in</filename> present
+      in <varname>FILESDIR</varname>.  A modified version will be
+      created as
+      <filename>${WRKDIR}/<replaceable>file</replaceable></filename>.
+      Files defined as a value of <varname>USE_RC_SUBR</varname> (or
+      the deprecated <varname>USE_RCORDER</varname>) are automatically
+      added to the <varname>SUB_FILES</varname>.  For the files
       <filename>pkg-message</filename>,
       <filename>pkg-install</filename>, and
       <filename>pkg-deinstall</filename>, the corresponding Makefile
@@ -186,7 +175,7 @@
       <varname>LOCALBASE</varname>, <varname>DATADIR</varname>,
       <varname>DOCSDIR</varname>, <varname>EXAMPLESDIR</varname>,
       <varname>WWWDIR</varname>, and <varname>ETCDIR</varname>.  Any
-      line beginning with <literal>@comment</literal> will be deleted
+      line beginning with <literal>@comment </literal> will be deleted
       from resulting files after a variable substitution.</para>
 
     <para>The following example will replace

Modified: head/en_US.ISO8859-1/books/porters-handbook/plist/chapter.xml
==============================================================================
--- head/en_US.ISO8859-1/books/porters-handbook/plist/chapter.xml	Thu Mar 27 16:13:55 2014	(r44362)
+++ head/en_US.ISO8859-1/books/porters-handbook/plist/chapter.xml	Thu Mar 27 16:50:32 2014	(r44363)
@@ -57,19 +57,22 @@ PLIST_SUB=	OCTAVE_VERSION=${OCTAVE_VERSI
     <para>If your port installs files conditionally on the options
       set in the port, the usual way of handling it is prefixing the
       <filename>pkg-plist</filename> lines with a
-      <literal>%%TAG%%</literal> and adding that
-      <literal>TAG</literal> to the <varname>PLIST_SUB</varname>
-      variable inside the <filename>Makefile</filename> with a special
-      value of <literal>@comment</literal>, which makes package tools
-      to ignore the line:</para>
-
-    <programlisting>.if defined(WITH_X11)
-PLIST_SUB+=	X11=""
-.else
-PLIST_SUB+=	X11="@comment "
-.endif</programlisting>
-
-    <para>and in the <filename>pkg-plist</filename>:</para>
+      <literal>%%OPT%%</literal> for lines needed when the option is
+      enabled, or <literal>%%NO_OPT%%</literal> when the option is
+      disabled, and adding <literal>OPTIONS_SUB=yes</literal> to the
+      <filename>Makefile</filename>.  See <xref
+	linkend="options_sub"/> for more information.</para>
+
+    <para>For instance, if there are files that are only installed
+      when the <literal>X11</literal> option is enabled, and the
+      <filename>Makefile</filename> has:</para>
+
+    <programlisting>OPTIONS_DEFINE=	X11
+OPTIONS_SUB=	yes</programlisting>
+
+    <para>In the <filename>pkg-plist</filename> file, put
+      <literal>%%X11%%</literal> in front of the lines only being
+      installed when the option is enabled, like this :</para>
 
     <programlisting>%%X11%%bin/foo-gui</programlisting>
 
@@ -104,6 +107,24 @@ PLIST_SUB+=	X11="@comment "
       and <varname>PLIST_DIRSTRY</varname> must be set before
       <filename>TMPPLIST</filename> is written, i.e., in
       <buildtarget>pre-install</buildtarget> or earlier.</para>
+
+    <para>From time to time, the <varname>OPTIONS_SUB</varname>
+      construct is not enough, in those cases, adding a specific
+      <literal>TAG</literal> to the <varname>PLIST_SUB</varname>
+      variable inside the <filename>Makefile</filename> with a special
+      value of <literal>@comment</literal>, makes package tools to
+      ignore the line.  For instance, if some files are only installed
+      when the <literal>X11</literal> option is on and the
+      architecture is <literal>i386</literal>:</para>
+
+    <programlisting>.include <bsd.port.pre.mk>
+
+.if ${PORT_OPTIONS:MX11} && ${ARCH} == "i386"
+PLIST_SUB+=	X11I386=""
+.else
+PLIST_SUB+=	X11I386="@comment "
+.endif</programlisting>
+
   </sect1>
 
   <sect1 xml:id="plist-cleaning">
@@ -112,10 +133,10 @@ PLIST_SUB+=	X11="@comment "
     <sect2 xml:id="plist-dir-cleaning">
       <title>Cleaning Up Empty Directories</title>
 
-      <para>Do make your ports remove empty directories when they are
-	de-installed.  This is usually accomplished by adding
-	<literal>@dirrm</literal> lines for all directories that are
-	specifically created by the port.  You need to delete
+      <para>When being de-installed, A port has to remove empty
+	directories it created.  This is usually accomplished by
+	adding <literal>@dirrm</literal> lines for all directories
+	that are specifically created by the port.  You need to delete
 	subdirectories before you can delete parent
 	directories.</para>
 
@@ -209,6 +230,17 @@ etc/orbit.conf.sample
       <link linkend="porting-message">message</link> pointing out that
       the user must copy and edit the file before the software will
       work.</para>
+
+    <tip>
+      <para>When a port installs its configuration in a subdirectory
+	of <filename>${PREFIX}/etc</filename>, it should be in
+	<varname>ETCDIR</varname>, which defaults to
+	<literal>${PREFIX}/etc/${PORTNAME}</literal>, it can be
+	overrided in the ports <filename>Makefile</filename> if there
+	is a convention for the port to use some other directory.  The
+	<literal>%%ETCDIR%%</literal> macro should be used in its
+	stead in the <filename>pkg-plist</filename> file.</para>
+    </tip>
   </sect1>
 
   <sect1 xml:id="plist-dynamic">
@@ -223,9 +255,10 @@ etc/orbit.conf.sample
       and <varname>PLIST_DIRSTRY</varname>.  Even if the contents are
       auto-generated by a tool or a target in the Makefile
       <emphasis>before</emphasis> the inclusion into the Ports
-      Collection by a committer, this is still considered a static
-      list, since it is possible to examine it without having to
-      download or compile the distfile.</para>
+      Collection by a committer (e.g., using <command>make
+	makeplist></command>), this is still considered a static list,
+      since it is possible to examine it without having to download or
+      compile the distfile.</para>
 
     <para>A <emphasis>dynamic package list</emphasis> is a package
       list which is generated at the time the port is compiled based
@@ -249,14 +282,17 @@ etc/orbit.conf.sample
   <sect1 xml:id="plist-autoplist">
     <title>Automated Package List Creation</title>
 
-    <para>First, make sure your port is almost complete, with only
-      <filename>pkg-plist</filename> missing.  You may then run
-      <command>make makeplist</command> to generate a
-      <filename>pkg-plist</filename> automatically.  This file must be
-      double checked for correctness.</para>
-
-    <para>User configuration files should be removed, or installed as
-      <filename>filename.sample</filename>.  The
+    <para>First, make sure the port is almost complete, with only
+      <filename>pkg-plist</filename> missing.  Running <command>make
+	makeplist</command> will show what should be put in
+      <filename>pkg-plist</filename>.  The output of
+      <buildtarget>makeplist</buildtarget> must be double checked for
+      correctness as it tries to automatically guess a few things, and
+      can get it wrong.</para>
+
+    <para>User configuration files should be installed as
+      <filename>filename.sample</filename>, as it is described in
+      <xref linkend="plist-config"/>.  The
       <filename>info/dir</filename> file should not be listed and
       appropriate <filename>install-info</filename> lines should be
       added as noted in the

Modified: head/en_US.ISO8859-1/books/porters-handbook/upgrading/chapter.xml
==============================================================================
--- head/en_US.ISO8859-1/books/porters-handbook/upgrading/chapter.xml	Thu Mar 27 16:13:55 2014	(r44362)
+++ head/en_US.ISO8859-1/books/porters-handbook/upgrading/chapter.xml	Thu Mar 27 16:50:32 2014	(r44363)
@@ -147,7 +147,10 @@
       to see what has changed, and to update the diff if
       something was modified in the Ports Collection since you
       began work on it, or if the
-      committer asks for something to be fixed.</para>
+      committer asks for something to be fixed.  Also, a patch
+      generated with <command>svn diff</command> can be easily applied
+      with <command>svn patch</command> and will save some time to the
+      committer.</para>
 
     <screen>&prompt.user; <userinput>cd ~/my_wrkdir</userinput> <co xml:id="my-wrkdir"/>
 &prompt.user; <userinput>svn co https://svn0.us-west.FreeBSD.org/ports/head/dns/pdnsd</userinput> <co xml:id="svn-FreeBSD-org"/>
@@ -173,10 +176,11 @@
     </calloutlist>
 
     <para>While in the working directory, make any changes that you
-      would usually make to the port.  If you add or remove a file,
-      use <command>svn</command> to track these changes:</para>
+      would usually make to the port.  If you add, move or remove a
+      file, use <command>svn</command> to track these changes:</para>
 
     <screen>&prompt.user; <userinput>svn add new_file</userinput>
+&prompt.user; <userinput>svn move old_name new_name</userinput>
 &prompt.user; <userinput>svn remove deleted_file</userinput></screen>
 
     <para>Make sure that you check the port using the checklist in
@@ -251,6 +255,14 @@
 
     <para>Send your patch following the guidelines in
       <xref linkend="port-upgrading"/>.</para>
+
+    <tip>
+      <para>You can have patch automatically generated and the PR
+	pre-filled with your contact information by using
+	the <application>Port Tools</application> <command>port
+	  submit</command> command.  See <xref
+	  linkend="testing-porttools"/> for more details.</para>
+    </tip>
   </sect1>
 
   <sect1 xml:id="moved-and-updating-files">
@@ -273,6 +285,17 @@
       instructions, please make sure to get the shell escaping
       right.</para>
 
+    <note>
+      <para>It is recommended that the AFFECTS line contains a glob
+	matching all the ports affected by the entry so that automated
+	tools can parse it as easily as possible.  If an update
+	concerns all the existing <application>BIND 9</application>
+	versions the <literal>AFFECTS</literal> content should be
+	<literal>users of dns/bind9*</literal>, it should
+	<emphasis>not</emphasis> be <literal>users of BIND
+	  9</literal></para>
+    </note>
+
     <para>The <filename>/usr/ports/MOVED</filename> file is used to
       list moved or removed ports.  Each line in the file is made
       up of the name of the port, where the port was moved to, when,
@@ -285,12 +308,18 @@
 
     <para>The date should be entered in the form
       <literal>YYYY-MM-DD</literal>.  New entries should be added to
-      the end of the file to keep it in chronological order.</para>
+      the top of the file to keep it in reverse chronological order
+      (the latest entries first).</para>
 
     <para>If a port was removed but has since been restored,
       delete the line in this file that states that it was
       removed.</para>
 
+    <para>If a port was renamed and then renamed back to its original
+      name, you should add a new one with the intermediate name to the
+      old name, and remove the old entry as to not create a
+      loop.</para>
+
     <para>The changes can be validated with
       <command>Tools/scripts/MOVEDlint.awk</command>.</para>
   </sect1>


More information about the svn-doc-head mailing list