Date: Sun, 1 Sep 2013 07:30:00 GMT From: Frederic Culot <culot@FreeBSD.org> To: freebsd-doc@FreeBSD.org Subject: Re: docs/181080: porters-handbook: mention PLIST_DIRSTRY Message-ID: <201309010730.r817U0bN060904@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR docs/181080; it has been noted by GNATS. From: Frederic Culot <culot@FreeBSD.org> To: bug-followup@FreeBSD.org Cc: Subject: Re: docs/181080: porters-handbook: mention PLIST_DIRSTRY Date: Sun, 1 Sep 2013 07:22:08 +0000 --d6Gm4EdcadzBjdND Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Following an off-list feedback from Warren (wblock@) I submit this updated patch which adds a note explaining into a bit more detail what PLIST_DIRSTRY is used for. This note is added right after the first PLIST_DIRS appearence and gives a link to the section where the @dirrm and @dirrmtry macros are explained, so I believe the reader is now able to grasp the meaning of PLIST_DIRSTRY more easily. However, adding an example of the PLIST_DISTRY usage was not deemed necessary as it is pretty straightforward to extrapolate the already existing PLIST_DIRS example for PLIST_DIRSTRY. Feel free to ping me in case you have any comments related to this updated patch, and thanks again Warren for your feedback. Cheers, Frederic --d6Gm4EdcadzBjdND Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="porters-handbook.diff" Index: book.xml =================================================================== --- book.xml (revision 42606) +++ book.xml (working copy) @@ -278,6 +278,20 @@ <para>Of course, <makevar>PLIST_DIRS</makevar> should be left unset if a port installs no directories of its own.</para> + <note> + <para>It is possible that several ports share a common + directory. In that case + <makevar>PLIST_DIRS</makevar> should be replaced by + <makevar>PLIST_DIRSTRY</makevar> so that the directory + is removed only if empty, otherwise it is silently + ignored. <makevar>PLIST_DIRS</makevar> and + <makevar>PLIST_DIRSTRY</makevar> are equivalent to + using <literal>@dirrm</literal> and + <literal>@dirrmtry</literal> in + <filename>pkg-plist</filename>, which are described in + <xref linkend="plist-dir-cleaning"/>.</para> + </note> + <para>The price for this way of listing port's files and directories is that you cannot use command sequences described in &man.pkg.create.1;. Therefore, it is suitable @@ -9918,20 +9932,25 @@ <filename><makevar>TMPPLIST</makevar></filename>.</para> <para>Another possibility to modify port's packing list is based - on setting the variables <makevar>PLIST_FILES</makevar> and - <makevar>PLIST_DIRS</makevar>. The value of each variable is + on setting the variables <makevar>PLIST_FILES</makevar>, + <makevar>PLIST_DIRS</makevar>, and + <makevar>PLIST_DIRSTRY</makevar>. The value of each variable is regarded as a list of pathnames to write to <filename><makevar>TMPPLIST</makevar></filename> along with <filename><makevar>PLIST</makevar></filename> contents. Names - listed in <makevar>PLIST_FILES</makevar> and - <makevar>PLIST_DIRS</makevar> are subject to + listed in <makevar>PLIST_FILES</makevar>, + <makevar>PLIST_DIRS</makevar>, and + <makevar>PLIST_DIRSTRY</makevar> are subject to <literal>%%<replaceable>VAR</replaceable>%%</literal> substitution, as described above. Except for that, names from <makevar>PLIST_FILES</makevar> will appear in the final - packing list unchanged, while <literal>@dirrm</literal> will - be prepended to names from <makevar>PLIST_DIRS</makevar>. To - take effect, <makevar>PLIST_FILES</makevar> and - <makevar>PLIST_DIRS</makevar> must be set before + packing list unchanged, while <literal>@dirrm</literal> and + <literal>@dirrmtry</literal> will + be prepended to names from <makevar>PLIST_DIRS</makevar> + and <makevar>PLIST_DIRSTRY</makevar>, respectively. To + take effect, <makevar>PLIST_FILES</makevar>, + <makevar>PLIST_DIRS</makevar>, and + <makevar>PLIST_DIRSTRY</makevar> must be set before <filename><makevar>TMPPLIST</makevar></filename> is written, i.e., in <maketarget>pre-install</maketarget> or earlier.</para> @@ -10059,8 +10078,9 @@ <filename>pkg-plist</filename> file (with or without variable substitution), or embedded into the <filename>Makefile</filename> via - <makevar>PLIST_FILES</makevar> and - <makevar>PLIST_DIRS</makevar>. Even if the contents are + <makevar>PLIST_FILES</makevar>, + <makevar>PLIST_DIRS</makevar>, and + <makevar>PLIST_DIRSTRY</makevar>. 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 --d6Gm4EdcadzBjdND--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201309010730.r817U0bN060904>