svn commit: r44180 - head/en_US.ISO8859-1/books/porters-handbook/special

Mathieu Arnold mat at FreeBSD.org
Fri Mar 7 17:52:45 UTC 2014


Author: mat (ports committer)
Date: Fri Mar  7 17:52:44 2014
New Revision: 44180
URL: http://svnweb.freebsd.org/changeset/doc/44180

Log:
  Update the special considerations chapter part one.
  
  Sponsored by:	Absolight

Modified:
  head/en_US.ISO8859-1/books/porters-handbook/special/chapter.xml

Modified: head/en_US.ISO8859-1/books/porters-handbook/special/chapter.xml
==============================================================================
--- head/en_US.ISO8859-1/books/porters-handbook/special/chapter.xml	Fri Mar  7 17:10:44 2014	(r44179)
+++ head/en_US.ISO8859-1/books/porters-handbook/special/chapter.xml	Fri Mar  7 17:52:44 2014	(r44180)
@@ -33,12 +33,22 @@
       (see <xref linkend="porting-prefix"/>).</para>
 
     <para>When a port still requires system-wide privileges in order
-      to run the <buildtarget>package</buildtarget> target, this
-      line must be added to the
+      to run the <buildtarget>stage</buildtarget> and
+      <buildtarget>package</buildtarget> targets, this line must be
+      added to the
       <filename>Makefile</filename>:</para>
 
     <programlisting>NEED_ROOT=	yes</programlisting>
 
+    <note>
+      <para>The vast majority of ports do not <emphasis>really
+	  need</emphasis> to be root.  You can mostly avoid it by
+	using <link
+	  linkend="uses-uidfix"><literal>USES=uidfix</literal></link>,
+	and from time to time by slightly patching the port's
+	<filename>Makefiles</filename>.</para>
+    </note>
+
     <para>Meta ports, or ports that do not install files themselves
       but only depend on other ports, should avoid needlessly
       extracting the &man.mtree.8; to the stage directory.  This is
@@ -125,9 +135,10 @@
     <para>When installing 32-bit libraries on 64-bit system, use
       <varname>USE_LDCONFIG32</varname> instead.</para>
 
-    <para>Try to keep shared library version numbers in the
-      <filename>libfoo.so.0</filename> format.  Our runtime linker
-      only cares for the major (first) number.</para>
+    <para>If the software you are porting uses <link
+	linkend="using-autotools">autotools</link>, and specifically
+      <command>libtool</command>, you should add <link
+	linkend="uses-libtool"><literal>USES=libtool</literal></link>.</para>
 
     <para>When the major library version number increments in the
       update to the new port version, all other ports that link to
@@ -815,16 +826,21 @@ CMAKE_SOURCE_PATH=	${WRKSRC}/subp
 
       <para>If your port requires <literal>gettext</literal>, set
 	<literal>USES= gettext</literal>, and your port will inherit
-	a dependency on
+	a dependency on <filename>libintl.so</filename> from
 	<package role="port">devel/gettext</package>.  Other
 	values for <literal>gettext</literal> usage are listed in
-	<xref linkend="uses-values"/>.</para>
+	<link
+	  linkend="uses-gettext"><literal>USES=gettext</literal></link>.</para>
 
       <para>A rather common case is a port using
 	<literal>gettext</literal> and <command>configure</command>.
 	Generally, GNU <command>configure</command> should be able
-	to locate <literal>gettext</literal> automatically.  If it
-	ever fails to, hints at the location of
+	to locate <literal>gettext</literal> automatically.</para>
+
+      <programlisting>USES=	gettext
+GNU_CONFIGURE=	yes</programlisting>
+
+      <para>If it ever fails to, hints at the location of
 	<literal>gettext</literal> can be passed in
 	<envar>CPPFLAGS</envar> and <envar>LDFLAGS</envar> as
 	follows:</para>
@@ -834,12 +850,6 @@ CPPFLAGS+=	-I${LOCALBASE}/include
 LDFLAGS+=	-L${LOCALBASE}/lib
 
 GNU_CONFIGURE=	yes</programlisting>
-
-      <para>Of course, the code can be more compact if there are no
-	more flags to pass to <command>configure</command>:</para>
-
-      <programlisting>USES=	gettext
-GNU_CONFIGURE=	yes</programlisting>
     </sect2>
 
     <sect2>
@@ -855,6 +865,20 @@ GNU_CONFIGURE=	yes</programlisting>
 
       <programlisting>GNU_CONFIGURE=		yes
 
+OPTIONS_DEFINE=		NLS
+OPTIONS_SUB=		yes
+
+NLS_USES=		gettext
+NKS_CONFIGURE_ENABLE=	nls
+
+.include <bsd.port.mk></programlisting>
+
+      <para>Or using the older way of using options:</para>
+
+      <programlisting>GNU_CONFIGURE=		yes
+
+OPTIONS_DEFINE=		NLS
+
 .include <bsd.port.options.mk>
 
 .if ${PORT_OPTIONS:MNLS}


More information about the svn-doc-head mailing list