VirtualBox

Changeset 68872 in vbox


Ignore:
Timestamp:
Sep 26, 2017 10:50:57 AM (8 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
118126
Message:

isomakercmd.cpp,docbook-refentry*.xsl: Converted the rest of the iso maker help text. Made some refentry text conversion adjustments.

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/doc/manual/docbook-refentry-to-C-help.xsl

    r68860 r68872  
    5050    <!-- Assert refetry expectations. -->
    5151    <xsl:if test="not(./refsynopsisdiv)">
    52         <xsl:message terminate="yes">refentry must have a refsynopsisdiv</xsl:message>
     52        <xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>refentry must have a refsynopsisdiv</xsl:message>
    5353    </xsl:if>
    5454    <xsl:if test="not(./refentryinfo/title)">
    55       <xsl:message terminate="yes">refentry must have a refentryinfo with title</xsl:message>
     55      <xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>refentry must have a refentryinfo with title</xsl:message>
    5656    </xsl:if>
    5757    <xsl:if test="not(./refmeta/refentrytitle)">
    58       <xsl:message terminate="yes">refentry must have a refentryinfo with title</xsl:message>
     58      <xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>refentry must have a refentryinfo with title</xsl:message>
    5959    </xsl:if>
    6060    <xsl:if test="./refmeta/refentrytitle != ./refnamediv/refname">
    61       <xsl:message terminate="yes">The refmeta/refentrytitle and the refnamediv/refname must be identical</xsl:message>
     61      <xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>The refmeta/refentrytitle and the refnamediv/refname must be identical</xsl:message>
    6262    </xsl:if>
    6363    <xsl:if test="not(./refsect1/title)">
    64       <xsl:message terminate="yes">refentry must have a refsect1 with title</xsl:message>
     64      <xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>refentry must have a refsect1 with title</xsl:message>
    6565    </xsl:if>
    6666    <xsl:if test="not(@id) or @id = ''">
    67       <xsl:message terminate="yes">refentry must have an id attribute</xsl:message>
     67      <xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>refentry must have an id attribute</xsl:message>
    6868    </xsl:if>
    6969
     
    8383      <!-- Assert synopsis expectations -->
    8484      <xsl:if test="not(@id) or substring-before(@id, '-') != 'synopsis'">
    85         <xsl:message terminate="yes">The refsynopsisdiv/cmdsynopsis elements must have an id starting with 'synopsis-'.</xsl:message>
     85        <xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>The refsynopsisdiv/cmdsynopsis elements must have an id starting with 'synopsis-'.</xsl:message>
    8686      </xsl:if>
    8787      <xsl:if test="not(starts-with(substring-after(@id, '-'), $sBaseId))">
    88         <xsl:message terminate="yes">The refsynopsisdiv/cmdsynopsis elements @id is expected to include the refentry @id.</xsl:message>
     88        <xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>The refsynopsisdiv/cmdsynopsis elements @id is expected to include the refentry @id.</xsl:message>
    8989      </xsl:if>
    9090      <xsl:if test="not(../../refsect1/refsect2[@id=./@id])">
    91         <xsl:message terminate="yes">No refsect2 with id="<xsl:value-of select="@id"/>" found.</xsl:message>
     91        <xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>No refsect2 with id="<xsl:value-of select="@id"/>" found.</xsl:message>
    9292      </xsl:if>
    9393
     
    132132    <!-- Then comes the description and other refsect1 -->
    133133    <xsl:for-each select="./refsect1">
    134       <xsl:if test="name(*[1]) != 'title'"><xsl:message terminate="yes">Expected title as the first element in refsect1.</xsl:message></xsl:if>
    135       <xsl:if test="text()"><xsl:message terminate="yes">No text supported in refsect1.</xsl:message></xsl:if>
     134      <xsl:if test="name(*[1]) != 'title'"><xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>Expected title as the first element in refsect1.</xsl:message></xsl:if>
     135      <xsl:if test="text()"><xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>No text supported in refsect1.</xsl:message></xsl:if>
    136136      <xsl:if test="not(./remark[@role='help-skip'])">
    137137        <xsl:variable name="sTitle">
     
    148148
    149149        <xsl:apply-templates select="./*[name() != 'title']"/>
     150
     151        <xsl:text>
     152    {   RTMSGREFENTRYSTR_SCOPE_SAME, "" },</xsl:text>
    150153      </xsl:if>
    151154    </xsl:for-each>
     
    193196    -->
    194197  <xsl:template match="cmdsynopsis">
    195     <xsl:if test="text()"><xsl:message terminate="yes">cmdsynopsis with text is not supported.</xsl:message></xsl:if>
     198    <xsl:if test="text()"><xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>cmdsynopsis with text is not supported.</xsl:message></xsl:if>
    196199    <xsl:text>
    197200    {   </xsl:text><xsl:call-template name="calc-scope-cmdsynopsis"/><xsl:text> | RTMSGREFENTRYSTR_FLAGS_SYNOPSIS,
     
    222225  <xsl:template match="replaceable">
    223226    <xsl:choose>
    224       <xsl:when test="not(ancestor::cmdsynopsis) or ancestor::arg">
     227      <xsl:when test="ancestor::arg">
    225228        <xsl:apply-templates />
    226229      </xsl:when>
     
    249252      <xsl:when test="@choice = 'req'">               <xsl:value-of select="$arg.choice.req.open.str"/></xsl:when>
    250253      <xsl:when test="@choice = 'plain'"/>
    251       <xsl:otherwise><xsl:message terminate="yes">Invalid arg choice: "<xsl:value-of select="@choice"/>"</xsl:message></xsl:otherwise>
     254      <xsl:otherwise><xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>Invalid arg choice: "<xsl:value-of select="@choice"/>"</xsl:message></xsl:otherwise>
    252255    </xsl:choose>
    253256
     
    259262      <xsl:when test="@rep = 'norepeat' or not(@rep) or @rep = ''"/>
    260263      <xsl:when test="@rep = 'repeat'">               <xsl:value-of select="$arg.rep.repeat.str"/></xsl:when>
    261       <xsl:otherwise><xsl:message terminate="yes">Invalid rep choice: "<xsl:value-of select="@rep"/>"</xsl:message></xsl:otherwise>
     264      <xsl:otherwise><xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>Invalid rep choice: "<xsl:value-of select="@rep"/>"</xsl:message></xsl:otherwise>
    262265    </xsl:choose>
    263266    <!-- close wrapping -->
     
    275278  <xsl:template match="refsect2">
    276279    <!-- assertions -->
    277     <xsl:if test="text()"><xsl:message terminate="yes">refsect2 shouldn't contain text</xsl:message></xsl:if>
    278     <xsl:if test="count(./title) != 1"><xsl:message terminate="yes">refsect2 requires a title (<xsl:value-of select="ancestor-or-self::*[@id][1]/@id"/>)</xsl:message></xsl:if>
     280    <xsl:if test="text()"><xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>refsect2 shouldn't contain text</xsl:message></xsl:if>
     281    <xsl:if test="count(./title) != 1"><xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>refsect2 requires a title (<xsl:value-of select="ancestor-or-self::*[@id][1]/@id"/>)</xsl:message></xsl:if>
    279282
    280283    <!-- title / command synopsis - sets the scope. -->
     
    324327  <xsl:template match="variablelist">
    325328    <xsl:if test="*[not(self::varlistentry)]|text()">
    326       <xsl:message terminate="yes">Only varlistentry elements are supported in variablelist</xsl:message>
     329      <xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>Only varlistentry elements are supported in variablelist </xsl:message>
    327330    </xsl:if>
    328331    <xsl:for-each select="./varlistentry">
    329332      <xsl:if test="not(term) or not(listitem) or count(listitem) > 1">
    330         <xsl:message terminate="yes">Expected one or more term members and exactly one listentry member in varlistentry element.</xsl:message>
     333        <xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>Expected one or more term members and exactly one listentry member in varlistentry element.</xsl:message>
    331334      </xsl:if>
    332       <xsl:if test="not(@spacing) or @spacing != 'compact'">
     335      <xsl:if test="(not(@spacing) or @spacing != 'compact') and (position() > 1 or (count(../preceding-sibling::*) - count(../preceding-sibling::title) > 0))">
    333336        <xsl:text>
    334337    {   RTMSGREFENTRYSTR_SCOPE_SAME, "" },</xsl:text>
     
    358361    <xsl:if test="*[not(self::listitem)]|text()">
    359362      <xsl:message terminate="yes">
    360         <xsl:call-template name="get-node-path"/>: error: Only listitem elements are supported in <xsl:value-of select="name()"/>:
     363        <xsl:call-template name="error-prefix"/>Only listitem elements are supported in <xsl:value-of select="name()"/>:
    361364        <xsl:call-template name="list-nodes">
    362365          <xsl:with-param name="Nodes" select="*[not(self::listitem)]|text()"/>
     
    380383    <xsl:if test="*[not(self::para)]|text()">
    381384      <xsl:message terminate="yes">
    382         <xsl:call-template name="get-node-path"/>: error: Expected <xsl:value-of select="name()"/>/listitem to only contain para elements:
     385        <xsl:call-template name="error-prefix"/>Expected <xsl:value-of select="name()"/>/listitem to only contain para elements:
    383386        <xsl:call-template name="list-nodes">
    384387          <xsl:with-param name="Nodes" select="*[not(self::para)]|text()"/>
     
    416419        <xsl:otherwise>
    417420          <xsl:if test="*">
    418             <xsl:message terminate="yes">Support for elements under screen has not been implemented: <xsl:value-of select="name()"/></xsl:message>
     421            <xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>Support for elements under screen has not been implemented: <xsl:value-of select="name()"/></xsl:message>
    419422          </xsl:if>
    420423        </xsl:otherwise>
     
    565568    -->
    566569  <xsl:template match="synopfragment|synopfragmentref|title|refsect1">
    567     <xsl:message terminate="yes">The <xsl:value-of select="name()"/> element is not supported</xsl:message>
     570    <xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>The <xsl:value-of select="name()"/> element is not supported</xsl:message>
    568571  </xsl:template>
    569572
     
    577580      <xsl:when test="parent::cmdsynopsis and ancestor::refsynopsisdiv"/>
    578581      <xsl:otherwise>
    579         <xsl:message terminate="yes">Misplaced remark/@role=help-scope element.
     582        <xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>Misplaced remark/@role=help-scope element.
    580583Only supported on: refsect1, refsect2, refsynopsisdiv/cmdsynopsis</xsl:message>
    581584      </xsl:otherwise>
     
    587590    -->
    588591  <xsl:template match="remark[@role = 'help-copy-synopsis']">
    589     <xsl:message terminate="yes">remark/@role=help-copy-synopsis is not supported by this stylesheet. Must preprocess input!</xsl:message>
     592    <xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>remark/@role=help-copy-synopsis is not supported by this stylesheet. Must preprocess input!</xsl:message>
    590593  </xsl:template>
    591594
     
    714717      </xsl:when>
    715718      <xsl:otherwise>
    716         <xsl:message terminate="yes">expected remark child or id attribute.</xsl:message>
     719        <xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>expected remark child or id attribute.</xsl:message>
    717720      </xsl:otherwise>
    718721    </xsl:choose>
     
    729732    <xsl:choose>
    730733      <xsl:when test="not($sAncestorId)">           <!-- Sanity check. -->
    731         <xsl:message terminate="yes">error: calc-scope-const-from-id is invoked without an refentry ancestor with a id. <xsl:call-template name="get-node-path"/> </xsl:message>
     734        <xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>calc-scope-const-from-id is invoked without an refentry ancestor with a id. <xsl:call-template name="get-node-path"/> </xsl:message>
    732735      </xsl:when>
    733736
     
    735738        <xsl:variable name="sPrefix" select="concat(substring-before($sAncestorId, '-'), '-')"/>
    736739        <xsl:if test="not(contains($sId, $sPrefix))">
    737           <xsl:message terminate="yes">Expected sId (<xsl:value-of select="$sId"/>) to contain <xsl:value-of select="$sPrefix"/></xsl:message>
     740          <xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>Expected sId (<xsl:value-of select="$sId"/>) to contain <xsl:value-of select="$sPrefix"/></xsl:message>
    738741        </xsl:if>
    739742        <xsl:call-template name="str:to-upper">
     
    755758    <xsl:variable name="sNormalized" select="concat(normalize-space(translate($sCondition, ',;:|', '    ')), ' ')"/>
    756759    <xsl:if test="$sNormalized = ' ' or $sNormalized = ''">
    757       <xsl:message terminate="yes">Empty @condition for help-scope remark.</xsl:message>
     760      <xsl:message terminate="yes"><xsl:call-template name="error-prefix"/>Empty @condition for help-scope remark.</xsl:message>
    758761    </xsl:if>
    759762    <xsl:choose>
     
    855858          <xsl:otherwise>
    856859            <xsl:value-of select="concat('/', name(.))"/>
    857             <xsl:if test="@id">
    858               <xsl:text>[@id=</xsl:text>
    859               <xsl:value-of select="@id"/>
    860               <xsl:text>]</xsl:text>
    861             </xsl:if>
     860            <xsl:choose>
     861              <xsl:when test="@id">
     862                <xsl:text>[@id=</xsl:text>
     863                <xsl:value-of select="@id"/>
     864                <xsl:text>]</xsl:text>
     865              </xsl:when>
     866              <xsl:when test="position() > 1">
     867                <xsl:text>[</xsl:text><xsl:value-of select="position()"/><xsl:text>]</xsl:text>
     868              </xsl:when>
     869            </xsl:choose>
    862870          </xsl:otherwise>
    863871        </xsl:choose>
    864872      </xsl:for-each>
    865873    </xsl:for-each>
     874  </xsl:template>
     875
     876  <!--
     877    Debug/Diagnostics: Return error message prefix.
     878    -->
     879  <xsl:template name="error-prefix">
     880    <xsl:param name="Node" select="."/>
     881    <xsl:text>error: </xsl:text>
     882    <xsl:call-template name="get-node-path">
     883      <xsl:with-param name="Node" select="$Node"/>
     884    </xsl:call-template>
     885    <xsl:text>: </xsl:text>
    866886  </xsl:template>
    867887
  • trunk/src/VBox/Runtime/common/fs/isomakercmd-man.xml

    r68860 r68872  
    1414 -->
    1515<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">
    16 <refentry id="rtisomaker" lang="en">
     16<refentry id="viso" lang="en">
    1717
    1818  <refentryinfo>
     
    2222
    2323  <refmeta>
    24     <refentrytitle>RTIsoMaker</refentrytitle>
     24    <refentrytitle>viso</refentrytitle>
    2525    <manvolnum>8</manvolnum>
    2626  </refmeta>
     
    2828  <refnamediv>
    2929    <!--<refname>VISO</refname>-->
    30     <refname>RTIsoMaker</refname>
     30    <refname>viso</refname>
    3131    <refpurpose>ISO image maker</refpurpose>
    3232    <refclass>IPRT</refclass>
     
    3434
    3535  <refsynopsisdiv>
    36     <cmdsynopsis id="synopsis-rtisomaker"> <!-- The 'id' is mandatory and must start with 'synopsis-'. -->
     36    <cmdsynopsis id="synopsis-viso"> <!-- The 'id' is mandatory and must start with 'synopsis-'. -->
    3737      <command>RTIsoMaker</command>
    3838      <arg><replaceable>options</replaceable></arg>
     
    4747    file (RTIsoMaker) or serve it as a virtual image (VISO).</para>
    4848
    49     <refsect2 id="rtisomaker-viso">
     49    <refsect2 id="viso-viso">
    5050      <title>VISO file format</title>
    5151      <para>A VISO file is a virtual ISO image, i.e. constructed in memory from a bunch of files on
     
    6363    </refsect2>
    6464
    65     <refsect2 id="rtisomaker-filespecs">
     65    <refsect2 id="viso-filespecs">
    6666      <title>File specifications and --name-setup</title>
    6767      <para>All non-options that does not start with '@' are taken to indicate a file, directory,
     
    123123  </refsect1>
    124124
    125   <refsect1 id="rtisomaker-general-options">
    126     <title>Options - General</title>
    127 
    128     <variablelist>
    129       <varlistentry>
    130         <term><option>-o <replaceable>output-file</replaceable></option></term>
    131         <term><option>--output=<replaceable>output-file</replaceable></option></term>
    132         <listitem><para>The output filename.  This option is not supported in VISO mode.</para></listitem>
    133       </varlistentry>
    134 
    135       <varlistentry>
    136         <term><option>--name-setup <replaceable>spec</replaceable></option></term>
    137         <listitem><para>Configures active namespaces and how file specifications are to be
    138             interpreted.  The specification is a comma separated list.  Each element in the list is
    139             a sub-list separated by space, <computeroutput>'+'</computeroutput> or
    140             <computeroutput>'|'</computeroutput> giving the namespaces that elements controls.
    141             Namespaces are divied into two major and minor ones, you cannot specifying a minor
    142             before the major it belongs to.</para>
    143          <para>Major namespaces and aliases in parentheses:</para>
    144          <itemizedlist>
    145            <listitem><para>iso (primary, iso9660, iso-9660, primary-iso, iso-primary)</para></listitem>
    146            <listitem><para>joliet</para></listitem>
    147            <listitem><para>udf</para></listitem>
    148            <listitem><para>hfs (hfs-plus)</para></listitem>
    149          </itemizedlist>
    150          <para>Minor namespaces:</para>
    151          <itemizedlist>
    152             <listitem><para>rock:        rock ridge on previous major namespace (iso / joliet)</para></listitem>
    153             <listitem><para>iso-rock:    rock ridge extensions on primary ISO 9660 namespace</para></listitem>
    154             <listitem><para>joliet-rock: rock ridge on joliet namespace (just for fun)</para></listitem>
    155             <listitem><para>trans-tbl:   translation table file on previous major namespace</para></listitem>
    156             <listitem><para>iso-trans-tbl</para></listitem>
    157             <listitem><para>joliet-trans-tbl</para></listitem>
    158             <listitem><para>udf-trans-tbl</para></listitem>
    159             <listitem><para>hfs-trans-tbl</para></listitem>
    160          </itemizedlist>
    161         </listitem>
    162       </varlistentry>
    163     </variablelist>
     125  <refsect1 id="viso-options">
     126    <title>Options</title>
     127
     128    <refsect2 id="viso-options-general">
     129      <title>General</title>
     130
     131      <variablelist>
     132        <varlistentry>
     133          <term><option>-o <replaceable>output-file</replaceable></option></term>
     134          <term><option>--output=<replaceable>output-file</replaceable></option></term>
     135          <listitem><para>The output filename.  This option is not supported in VISO mode.</para></listitem>
     136        </varlistentry>
     137
     138        <varlistentry>
     139          <term><option>--name-setup <replaceable>spec</replaceable></option></term>
     140          <listitem><para>Configures active namespaces and how file specifications are to be
     141              interpreted.  The specification is a comma separated list.  Each element in the list is
     142              a sub-list separated by space, <computeroutput>'+'</computeroutput> or
     143              <computeroutput>'|'</computeroutput> giving the namespaces that elements controls.
     144              Namespaces are divied into two major and minor ones, you cannot specifying a minor
     145              before the major it belongs to.</para>
     146           <para>Major namespaces and aliases in parentheses:</para>
     147           <itemizedlist spacing="compact">
     148             <listitem><para>iso (primary, iso9660, iso-9660, primary-iso, iso-primary)</para></listitem>
     149             <listitem><para>joliet</para></listitem>
     150             <listitem><para>udf</para></listitem>
     151             <listitem><para>hfs (hfs-plus)</para></listitem>
     152           </itemizedlist>
     153           <para>Minor namespaces:</para>
     154           <itemizedlist spacing="compact">
     155              <listitem><para>rock:        rock ridge on previous major namespace (iso / joliet)</para></listitem>
     156              <listitem><para>iso-rock:    rock ridge extensions on primary ISO 9660 namespace</para></listitem>
     157              <listitem><para>joliet-rock: rock ridge on joliet namespace (just for fun)</para></listitem>
     158              <listitem><para>trans-tbl:   translation table file on previous major namespace</para></listitem>
     159              <listitem><para>iso-trans-tbl</para></listitem>
     160              <listitem><para>joliet-trans-tbl</para></listitem>
     161              <listitem><para>udf-trans-tbl</para></listitem>
     162              <listitem><para>hfs-trans-tbl</para></listitem>
     163           </itemizedlist>
     164          </listitem>
     165        </varlistentry>
     166
     167        <varlistentry>
     168          <term><option>--push-iso=<replaceable>iso-file</replaceable></option></term>
     169          <term><option>--push-iso-no-joliet=<replaceable>iso-file</replaceable></option></term>
     170          <term><option>--push-iso-no-rock-<replaceable>iso-file</replaceable></option></term>
     171          <term><option>--push-iso-no-rock-no-joliet=<replaceable>iso-file</replaceable></option></term>
     172          <listitem><para>Open the specified ISO file and use it as source file system until the
     173            corresponding <option>--pop</option> options is encountered.  The variations are for
     174            selecting which namespace on the ISO to (not) access.  These options are handy for copying
     175            files/directories/stuff from an ISO without having to extract them first or using the
     176            <computeroutput>:iprtvfs:</computeroutput> syntax.</para>
     177          </listitem>
     178        </varlistentry>
     179
     180        <varlistentry>
     181          <term><option>--pop</option></term>
     182          <listitem><para>Pops a <option>--push-iso</option> of the source file system stack.</para></listitem>
     183        </varlistentry>
     184
     185        <varlistentry>
     186          <term><option>--import-iso=<replaceable>iso-file</replaceable></option></term>
     187          <listitem><para>Imports everything on the given ISO file, including boot configuration and
     188            system area (first 16 sectors) content.  You can use <option>--name-setup</option> to omit
     189            namespaces.</para></listitem>
     190        </varlistentry>
     191
     192      </variablelist>
     193    </refsect2>
     194
     195    <refsect2 id="viso-options-namespaces">
     196      <title>Namespaces</title>
     197      <variablelist>
     198
     199        <varlistentry>
     200          <term><option>--iso-level=<replaceable>0|1|2|3</replaceable></option></term> <!-- FIXME: imperfect markup -->
     201          <listitem>
     202            <para>Sets the ISO level:</para>
     203            <itemizedlist spacing="compact">
     204              <listitem><para>0: Disable primary ISO namespace.</para></listitem>
     205              <listitem><para>1: ISO level 1: Filenames 8.3 format and limited to 4GB - 1.</para></listitem>
     206              <listitem><para>2: ISO level 2: 31 char long names and limited to 4GB - 1.</para></listitem>
     207              <listitem><para>3: ISO level 3: 31 char long names and support for >=4GB files. (default)</para></listitem>
     208              <listitem><para>4: Fictive level used by other tools. Not yet implemented.</para></listitem>
     209            </itemizedlist>
     210          </listitem>
     211        </varlistentry>
     212
     213        <varlistentry>
     214          <term><option>--rock-ridge</option></term>
     215          <term><option>--limited-rock-ridge</option></term>
     216          <term><option>--no-rock-ridge</option></term>
     217          <listitem><para>Enables or disables rock ridge support for the primary ISO 9660 namespace.
     218              The <option>--limited-rock-ridge</option> option omits a couple of bits in the root
     219              directory that would make Linux pick rock ridge over joliet.</para>
     220            <para>Default: <option>--limited-rock-ridge</option></para>
     221          </listitem>
     222        </varlistentry>
     223
     224        <varlistentry>
     225          <term><option>-J</option></term>
     226          <term><option>--joliet</option></term>
     227          <term><option>--no-joliet</option></term>
     228          <listitem><para>Enables or disable the joliet namespace.  This option must precede any file
     229            specifications.</para>
     230            <para>Default: <option>--joliet</option></para>
     231          </listitem>
     232        </varlistentry>
     233
     234        <varlistentry>
     235          <term><option>--joliet-ucs-level=<replaceable>1|2|3</replaceable></option></term> <!-- FIXME: imperfect markup -->
     236          <term><option>--ucs-level=<replaceable>1|2|3</replaceable></option></term>
     237          <listitem><para>Set the Joliet UCS support level.  This is currently only flagged in the
     238            image but not enforced on the actual path names.</para>
     239            <para>Default level: 3</para>
     240          </listitem>
     241        </varlistentry>
     242
     243      </variablelist>
     244    </refsect2>
     245
     246    <refsect2 id="viso-options-file-attributes">
     247      <title>File Attributes</title>
     248      <variablelist>
     249
     250        <varlistentry>
     251          <term><option>--rational-attribs</option></term>
     252          <listitem><para>Enables rational file attribute handling (default):</para>
     253            <itemizedlist spacing="compact">
     254              <listitem><para>Owner ID is set to zero</para></listitem>
     255              <listitem><para>Group ID is set to zero</para></listitem>
     256              <listitem><para>Mode is set to 0444 for non-executable files.</para></listitem>
     257              <listitem><para>Mode is set to 0555 for executable files.</para></listitem>
     258              <listitem><para>Mode is set to 0555 for directories, preserving stick bits.</para></listitem>
     259            </itemizedlist>
     260          </listitem>
     261        </varlistentry>
     262
     263        <varlistentry>
     264          <term><option>--strict-attribs</option></term>
     265          <listitem><para>Counters <option>--rational-attribs</option> and causes attributes to be
     266            recorded exactly as they appear in the source.</para>
     267          </listitem>
     268        </varlistentry>
     269
     270        <varlistentry>
     271          <term><option>--file-mode=<replaceable>mode</replaceable></option></term>
     272          <term><option>--no-file-mode</option></term>
     273          <listitem><para>Controls the forced file mode mask for rock ridge, UDF and HFS.</para></listitem>
     274        </varlistentry>
     275
     276        <varlistentry>
     277          <term><option>--dir-mode=<replaceable>mode</replaceable></option></term>
     278          <term><option>--no-dir-mode</option></term>
     279          <listitem><para>Controls the forced directory mode mask for rock ridge, UDF and HFS.</para></listitem>
     280        </varlistentry>
     281
     282        <varlistentry>
     283          <term><option>--new-dir-mode=<replaceable>mode</replaceable></option></term>
     284          <listitem><para>Controls the default mode mask (rock ridge, UDF, HFS) for directories that
     285            are created implicitly.  The <option>--dir-mode</option> option overrides this.</para>
     286          </listitem>
     287        </varlistentry>
     288
     289        <varlistentry>
     290          <term><option>--chmod=<replaceable>mode</replaceable>:<replaceable>on-iso-file</replaceable></option></term>
     291          <listitem><para>Explictily sets the rock ridge, UDF and HFS file mode for a file/dir/whatever
     292            that has already been added to the ISO.  The mode can be octal, <computeroutput>ra+x</computeroutput>,
     293            <computeroutput>a+r</computeroutput>, or <computeroutput>a+rx</computeroutput>.
     294            (Support for more complicated mode specifications may be implemented at a later point.)</para>
     295            <para>Note that only namespaces in the current --name-setup are affected.</para>
     296          </listitem>
     297        </varlistentry>
     298
     299        <varlistentry>
     300          <term><option>--chown=<replaceable>owner-id</replaceable>:<replaceable>on-iso-file</replaceable></option></term>
     301          <listitem><para>Explictily sets the rock ridge, UDF and HFS file owner ID (numeric) for a
     302            file/dir/whatever that has already been added to the ISO.</para>
     303            <para>Note that only namespaces in the current --name-setup are affected.</para>
     304          </listitem>
     305        </varlistentry>
     306
     307        <varlistentry>
     308          <term>--chgrp=<replaceable>group-id</replaceable>:<replaceable>on-iso-file</replaceable></term>
     309          <listitem><para>Explictily sets the rock ridge, UDF and HFS file group ID (numeric) for a
     310            file/dir/whatever that has already been added to the ISO.</para>
     311            <para>Note that only namespaces in the current --name-setup are affected.</para>
     312          </listitem>
     313        </varlistentry>
     314
     315      </variablelist>
     316    </refsect2>
     317
     318    <refsect2 id="viso-options-booting">
     319      <title>Booting</title>
     320      <variablelist>
     321
     322        <varlistentry>
     323          <term><option>--eltorito-new-entry</option></term>
     324          <term><option>--eltorito-alt-boot</option></term>
     325          <listitem><para>Starts a new El Torito boot entry.</para></listitem>
     326        </varlistentry>
     327
     328        <varlistentry>
     329          <term><option>--eltorito-add-image=<replaceable>filespec</replaceable></option></term>
     330          <listitem><para>File specification of a file that should be added to the image and used as
     331            the El Torito boot image of the current boot entry.</para>
     332          </listitem>
     333        </varlistentry>
     334
     335        <varlistentry>
     336          <term><option>-b <replaceable>on-iso-file</replaceable></option></term>
     337          <term><option>--eltorito-boot=<replaceable>on-iso-file</replaceable></option></term>
     338          <listitem><para>Specifies a file on the ISO as the El Torito boot image for the current boot
     339            entry.</para>
     340          </listitem>
     341        </varlistentry>
     342
     343        <varlistentry>
     344          <term><option>--eltorito-floppy-12</option></term>
     345          <term><option>--eltorito-floppy-144</option></term>
     346          <term><option>--eltorito-floppy-288</option></term>
     347          <term><option>--no-emulation-boot</option></term>
     348          <term><option>--hard-disk-boot</option></term>
     349          <listitem><para>Sets the boot image emulation type of the current El Torito boot entry.</para></listitem>
     350        </varlistentry>
     351
     352        <varlistentry>
     353          <term><option>--boot-load-seg=<replaceable>seg</replaceable></option></term>
     354          <listitem><para>Specify the image load segment for the current El Torito boot entry.</para>
     355            <para>Default: 0x7c0</para>
     356          </listitem>
     357        </varlistentry>
     358
     359        <varlistentry>
     360          <term><option>--boot-load-size=<replaceable>sectors</replaceable></option></term>
     361          <listitem><para>Specify the image load size in emulated sectors for the current El Torito
     362            boot entry.</para>
     363            <para>Default: 4 (sectors of 512 bytes)</para>
     364          </listitem>
     365        </varlistentry>
     366
     367        <varlistentry>
     368          <term><option>--no-boot</option></term>
     369          <listitem><para>Indicates that the current El Torito boot entry isn't bootable. (The BIOS
     370            will allegedly configure the emulation, but not attempt booting.)</para>
     371          </listitem>
     372        </varlistentry>
     373
     374        <varlistentry>
     375          <term><option>--boot-info-table</option></term>
     376          <listitem><para>Write a isolinux/syslinux boot info table into the boot image for the
     377            current El Torito boot entry.</para>
     378          </listitem>
     379        </varlistentry>
     380
     381        <varlistentry>
     382          <term><option>--eltorito-platform-id=<replaceable>id</replaceable></option></term>
     383          <listitem><para>Set the El Torito platform ID of the current entry, a new entry of the
     384            verification entry depending on when it's used.  The ID must be one of:
     385            <computeroutput>x86</computeroutput>, <computeroutput>PPC</computeroutput>,
     386            <computeroutput>Mac</computeroutput>, <computeroutput>efi</computeroutput></para>
     387          </listitem>
     388        </varlistentry>
     389
     390        <varlistentry>
     391          <term><option>-c <replaceable>namespec</replaceable></option></term>
     392          <term><option>--boot-catalog=<replaceable>namespec</replaceable></option></term>
     393          <listitem><para>Enters the El Torito boot catalog into the namespaces as a file.  The
     394            <replaceable>namespec</replaceable> uses the same format as a 'filespec', but omits the
     395            final source file system name component.</para>
     396          </listitem>
     397        </varlistentry>
     398
     399        <varlistentry>
     400          <term><option>-G <replaceable>file</replaceable></option></term>
     401          <term><option>--generic-boot=<replaceable>file</replaceable></option></term>
     402          <listitem><para>Specifies a file that should be loaded at offset 0 in the ISO image.  The
     403            file must not be larger than 32KB.  When creating a hybrid image, parts of this may be
     404            regenerated by partition tables and such.</para>
     405          </listitem>
     406        </varlistentry>
     407
     408      </variablelist>
     409    </refsect2>
     410
     411    <refsect2 id="viso-options-string-properties">
     412      <title>String properties (applied to active namespaces only)</title>
     413      <variablelist>
     414
     415        <varlistentry>
     416          <term><option>--abstract=<replaceable>file-id</replaceable></option></term>
     417          <listitem><para>The name of the abstract file in the root dir.</para></listitem>
     418        </varlistentry>
     419
     420        <varlistentry>
     421          <term><option>-A <replaceable>text|_file-id</replaceable></option></term>
     422          <term><option>--application-id=<replaceable>text|_file-id</replaceable></option></term>
     423          <listitem><para>Application ID string or root file name.  The latter must be prefixed with
     424            an underscore.</para>
     425          </listitem>
     426        </varlistentry>
     427
     428        <varlistentry>
     429          <term><option>--biblio=<replaceable>file-id</replaceable></option></term>
     430          <listitem><para>The name of the bibliographic file in the root dir.</para></listitem>
     431        </varlistentry>
     432
     433        <varlistentry>
     434          <term><option>--copyright=<replaceable>file-id</replaceable></option></term>
     435          <listitem><para>The name of the copyright file in the root dir.</para></listitem>
     436        </varlistentry>
     437
     438        <varlistentry>
     439          <term><option>-P <replaceable>text|_file-id</replaceable></option></term>
     440          <term><option>--publisher=<replaceable>text|_file-id</replaceable></option></term>
     441          <listitem><para>Publisher ID string or root file name.  The latter must be prefixed with an
     442            underscore.</para>
     443          </listitem>
     444        </varlistentry>
     445
     446        <varlistentry>
     447          <term><option>-p <replaceable>text|_file-id</replaceable></option></term>
     448          <term><option>--preparer=<replaceable>text|_file-id</replaceable></option></term>
     449          <listitem><para>Data preparer ID string or root file name.  The latter must be prefixed
     450            with an underscore.</para>
     451          </listitem>
     452        </varlistentry>
     453
     454        <varlistentry>
     455          <term><option>--sysid=<replaceable>text</replaceable></option></term>
     456          <listitem><para>System ID string.</para></listitem>
     457        </varlistentry>
     458
     459        <varlistentry>
     460          <term><option>--volid=<replaceable>text</replaceable></option></term>
     461          <term><option>--volume-id=<replaceable>text</replaceable></option></term>
     462          <listitem><para>Volume ID string (label).  (It is possible to set different labels for
     463            primary ISO 9660, joliet, UDF and HFS by changing the active namespaces using the
     464            <option>--name-setup</option> option between <option>--volume-id</option> occurences.)</para>
     465          </listitem>
     466        </varlistentry>
     467
     468        <varlistentry>
     469          <term><option>--volset=<replaceable>text</replaceable></option></term>
     470          <listitem><para>Volume set ID string.</para></listitem>
     471        </varlistentry>
     472
     473      </variablelist>
     474    </refsect2>
     475
     476    <refsect2 id="viso-options-compatibility">
     477      <title>Compatibility:</title>
     478      <variablelist>
     479
     480        <varlistentry>
     481          <term><option>--graft-points</option></term>
     482          <listitem><para>Alias for --name-setup iso+joliet+udf+hfs.</para></listitem>
     483        </varlistentry>
     484
     485        <varlistentry>
     486          <term><option>-l</option></term>
     487          <term><option>--long-names</option></term>
     488          <listitem><para>Allow 31 charater filenames.  Just ensure ISO level >= 2 here.</para></listitem>
     489        </varlistentry>
     490
     491        <varlistentry>
     492          <term><option>-R</option></term>
     493          <term><option>--rock</option></term>
     494          <listitem><para>Same as <option>--rock-ridge</option> and <option>--strict-attribs</option>.</para></listitem>
     495        </varlistentry>
     496
     497        <varlistentry>
     498          <term><option>-r</option></term>
     499          <term><option>--rational-rock</option></term>
     500          <listitem><para>Same as <option>--rock-ridge</option> and <option>--rational-attribs</option>.</para></listitem>
     501        </varlistentry>
     502
     503      </variablelist>
     504    </refsect2>
     505
     506
     507    <refsect2 id="viso-options-viso-specific">
     508      <title>VISO Specific:</title>
     509      <variablelist>
     510
     511        <varlistentry>
     512          <term><option>--iprt-iso-maker-file-marker=<replaceable>UUID</replaceable></option></term>
     513          <term><option>--iprt-iso-maker-file-marker-bourne=<replaceable>UUID</replaceable></option></term>
     514          <term><option>--iprt-iso-maker-file-marker-bourne-sh=<replaceable>UUID</replaceable></option></term>
     515          <listitem><para>Used as first option in a VISO file to specify the file UUID and that it is
     516            formatted using bourne-shell argument quoting &amp; escaping style.</para>
     517          </listitem>
     518        </varlistentry>
     519
     520        <varlistentry>
     521          <term><option>--iprt-iso-maker-file-marker-ms=<replaceable>UUID</replaceable></option></term>
     522          <term><option>--iprt-iso-maker-file-marker-ms-sh=<replaceable>UUID</replaceable></option></term>
     523          <listitem><para>Used as first option in a VISO file to specify the file UUID and that it is
     524            formatted using microsoft CRT argument quoting &amp; escaping style.</para>
     525          </listitem>
     526        </varlistentry>
     527
     528      </variablelist>
     529    </refsect2>
     530
     531
     532    <refsect2 id="viso-options-testing">
     533      <title>Testing (not applicable to VISO):</title>
     534      <variablelist>
     535
     536        <varlistentry>
     537          <term><option>--output-buffer-size=<replaceable>bytes</replaceable></option></term>
     538          <listitem><para>Selects a specific output buffer size for testing virtual image reads.</para></listitem>
     539        </varlistentry>
     540
     541        <varlistentry>
     542          <term><option>--random-output-buffer-size</option></term>
     543          <listitem><para>Enables randomized buffer size for each virtual image read, using the
     544            current output buffer size (<option>--output-buffer-size</option>) as maximum.</para>
     545          </listitem>
     546        </varlistentry>
     547
     548        <varlistentry>
     549          <term><option>--random-order-verification=<replaceable>size</replaceable></option></term>
     550          <listitem><para>Enables verification pass of the image that compares blocks of the given
     551            size in random order from the virtual and output images.</para>
     552          </listitem>
     553        </varlistentry>
     554
     555      </variablelist>
     556    </refsect2>
    164557
    165558  </refsect1>
    166 
    167559</refentry>
    168560
    169 
    170 <!--
    171 
    172 
    173 Options - General:
    174 
    175 
    176 
    177     -dashdash-push-iso <iso-file>
    178     -dashdash-push-iso-no-joliet <iso-file>
    179     -dashdash-push-iso-no-rock <iso-file>
    180     -dashdash-push-iso-no-rock-no-joliet <iso-file>
    181         Open the specified ISO file and use it as source file system until the
    182         corresponding -dashdash-pop options is encountered.  The variations are for
    183         selecting which namespace on the ISO to (not) access.  These options
    184         are handy for copying files/directories/stuff from an ISO without
    185         having to extract them first or using the :iprtvfs: syntax.
    186 
    187     -dashdash-pop
    188         Pops a -dashdash-push-iso of the source file system stack.
    189 
    190     -dashdash-import-iso <iso-file>
    191         Imports everything on the given ISO file. You can use -dashdash-name-setup to
    192         omit namespaces.
    193 
    194 
    195 Options - Namespaces:
    196 
    197     -dashdash-iso-level <0|1|2|3>
    198         Sets the ISO level:
    199             - 0: Disable primary ISO namespace.
    200             - 1: ISO level 1: Filenames 8.3 format and limited to 4GB - 1.
    201             - 2: ISO level 2: 31 char long names and limited to 4GB - 1.
    202             - 3: ISO level 3: 31 char long names and support for >=4GB files.
    203             - 4: Fictive level used by other tools. Not yet implemented.
    204         Default: 3
    205 
    206     -dashdash-rock-ridge
    207     -dashdash-limited-rock-ridge
    208     -dashdash-no-rock-ridge
    209         Enables or disables rock ridge support for the primary ISO 9660
    210         namespace.  The -dashdash-limited-rock-ridge option omits a couple of bits in
    211         the root directory that would make Linux pick rock ridge over joliet.
    212         Default: -dashdash-limited-rock-ridge
    213     -J
    214     -dashdash-joliet
    215     -dashdash-no-joliet
    216         Enables or disable the joliet namespace.  This option must precede any
    217         file specifications.  Default: -dashdash-joliet
    218 
    219     -dashdash-joliet-ucs-level <1|2|3>
    220     -dashdash-ucs-level <1|2|3>
    221         Set the Joliet UCS support level.  This is currently only flagged in the
    222         image but not enforced on the actual path names.  Default level: 3
    223 
    224 
    225 Options - File attributes:
    226 
    227     -dashdash-rational-attribs
    228         Enables rational file attribute handling:
    229             * Owner ID is set to zero
    230             * Group ID is set to zero
    231             * Mode is set to 0444 for non-executable files.
    232             * Mode is set to 0555 for executable files.
    233             * Mode is set to 0555 for directories, preserving stick bits.
    234         This is default.
    235 
    236     -dashdash-strict-attribs
    237         Counters -dashdash-rational-attribs and causes attributes to be recorded
    238         exactly as they appear in the source.
    239 
    240     -dashdash-file-mode <mode>
    241     -dashdash-no-file-mode
    242         Controls the forced file mode mask for rock ridge, UDF and HFS.
    243 
    244     -dashdash-dir-mode <mode>
    245     -dashdash-no-dir-mode
    246         Controls the forced directory mode mask for rock ridge, UDF and HFS.
    247 
    248     -dashdash-new-dir-mode <mode>
    249         Controls the default mode mask (rock ridge, UDF, HFS) for directories
    250         that are created implicitly.  The -dashdash-dir-mode option overrides this.
    251 
    252     -dashdash-chmod <mode>:<on-iso-file>
    253        Explictily sets the rock ridge, UDF and HFS file mode for a
    254        file/dir/whatever that has already been added to the ISO.  The mode can
    255        be octal, a+x, a+r, or a+rx.  (Support for more complicated mode
    256        specifications may be implemented at a later point.)
    257        Note that only namespaces in the current -dashdash-name-setup are affected.
    258 
    259     -dashdash-chown <owner-id>:<on-iso-file>
    260        Explictily sets the rock ridge, UDF and HFS file owner ID (numeric) for a
    261        file/dir/whatever that has already been added to the ISO.
    262        Note that only namespaces in the current -dashdash-name-setup are affected.
    263 
    264     -dashdash-chgrp <group-id>:<on-iso-file>
    265        Explictily sets the rock ridge, UDF and HFS file group ID (numeric) for a
    266        file/dir/whatever that has already been added to the ISO.
    267        Note that only namespaces in the current -dashdash-name-setup are affected.
    268 
    269 
    270 Options - Booting:
    271 
    272     -dashdash-eltorito-new-entry
    273     -dashdash-eltorito-alt-boot
    274         Starts a new El Torito boot entry.
    275 
    276     -dashdash-eltorito-add-image <filespec>
    277         File specification of a file that should be added to the image and used
    278         as the El Torito boot image of the current boot entry.
    279 
    280     -b <on-iso-file>
    281     -dashdash-eltorito-boot <on-iso-file>
    282         Specifies a file on the ISO as the El Torito boot image for the current
    283         boot entry.
    284 
    285     -dashdash-eltorito-floppy-12
    286     -dashdash-eltorito-floppy-144
    287     -dashdash-eltorito-floppy-288
    288     -dashdash-no-emulation-boot
    289     -dashdash-hard-disk-boot
    290         Sets the boot image emulation type of the current El Torito boot entry.
    291 
    292     -dashdash-boot-load-seg <seg>
    293         Specify the image load segment for the current El Torito boot entry.
    294         Default: 0x7c0
    295 
    296     -dashdash-boot-load-size <seg>
    297         Specify the image load size in emulated sectors for the current El Torito
    298         boot entry.  Default: 4 (sectors of 512 bytes)
    299 
    300     -dashdash-no-boot
    301         Indicates that the current El Torito boot entry isn't bootable. (The
    302         BIOS will allegedly configure the emulation, but not attempt booting.)
    303 
    304     -dashdash-boot-info-table
    305         Write a isolinux/syslinux boot info table into the boot image for the
    306         current El Torito boot entry.
    307 
    308     -dashdash-eltorito-platform-id <id>
    309         Set the El Torito platform ID of the current entry, a new entry of the
    310         verification entry depending on when it's used.  The ID must be one
    311         of: x86, PPC, Mac, efi
    312 
    313     -c <namespec>
    314     -dashdash-boot-catalog <namespec>
    315         Enters the El Torito boot catalog into the namespaces as a file.  The
    316         'namespec' uses the same format as a 'filespec', but omits the final
    317         source file system name component.
    318 
    319     -G <file>
    320     -dashdash-generic-boot <file>
    321         Specifies a file that should be loaded at offset 0 in the ISO image.
    322         The file must not be larger than 32KB.  When creating a hybrid image,
    323         parts of this may be regenerated by partition tables and such.
    324 
    325 
    326 Options - String properties (applied to active namespaces only):
    327 
    328     -dashdash-abstract <file-id>
    329         The name of the abstract file in the root dir.
    330 
    331     -A <text|_file-id>
    332     -dashdash-application-id <text|_file-id>
    333         Application ID string or root file name.  The latter must be prefixed
    334         with an underscore.
    335 
    336     -dashdash-biblio <file-id>
    337         The name of the bibliographic file in the root dir.
    338 
    339     -dashdash-copyright <file-id>
    340         The name of the copyright file in the root dir.
    341 
    342     -P <text|_file-id>
    343     -dashdash-publisher <text|_file-id>
    344         Publisher ID string or root file name.  The latter must be prefixed
    345         with an underscore.
    346 
    347     -p <text|_file-id>
    348     -dashdash-preparer <text|_file-id>
    349         Data preparer ID string or root file name.  The latter must be prefixed
    350         with an underscore.
    351 
    352     -dashdash-sysid <text>
    353         System ID string.
    354 
    355     -dashdash-volid <text>
    356     -dashdash-volume-id <text>
    357         Volume ID string (label).  (It is possible to set different labels for
    358         primary ISO 9660, joliet, UDF and HFS by changing the active namespaces
    359         using the -dashdash-name-setup option between -dashdash-volume-id occurences.)
    360 
    361     -dashdash-volset <text>
    362         Volume set ID string.
    363 
    364 
    365 Options - Compatibility:
    366 
    367     -dashdash-graft-points
    368         Alias for -dashdash-name-setup iso+joliet+udf+hfs.
    369 
    370     -l
    371     -dashdash-long-names
    372         Allow 31 charater filenames.  Just ensure ISO level >= 2 here.
    373 
    374     -R
    375     -dashdash-rock
    376         Same as -dashdash-rock-ridge and -dashdash-strict-attribs.
    377 
    378     -r
    379     -dashdash-rational-rock
    380         Same as -dashdash-rock-ridge and -dashdash-rational-attribs.
    381 
    382 
    383 Options - VISO specific:
    384 
    385     -dashdash-iprt-iso-maker-file-marker <UUID>
    386     -dashdash-iprt-iso-maker-file-marker-bourne <UUID>
    387     -dashdash-iprt-iso-maker-file-marker-bourne-sh <UUID>
    388         Used as first option in a VISO file to specify the file UUID and that
    389         it is formatted using bourne-shell argument quoting & escaping style.
    390 
    391     -dashdash-iprt-iso-maker-file-marker-ms <UUID>
    392     -dashdash-iprt-iso-maker-file-marker-ms-sh <UUID>
    393         Used as first option in a VISO file to specify the file UUID and that
    394         it is formatted using microsoft CRT argument quoting & escaping style.
    395 
    396 
    397 Options - Testing (not applicable to VISO):
    398 
    399     -dashdash-output-buffer-size <bytes>
    400         Selects a specific output buffer size for testing virtual image reads.
    401 
    402     -dashdash-random-output-buffer-size
    403         Enables randomized buffer size for each virtual image read, using the
    404         current output buffer size (-dashdash-output-buffer-size) as maximum.
    405 
    406     -dashdash-random-order-verification <size>
    407         Enables verification pass of the image that compares blocks of the given
    408         size in random order from the virtual and output images
    409 
    410 
    411  -->
  • trunk/src/VBox/Runtime/common/fs/isomakercmd.cpp

    r68864 r68872  
    814814static void rtFsIsoMakerCmdUsage(PRTFSISOMAKERCMDOPTS pOpts, const char *pszProgName)
    815815{
    816 #ifdef RT_OS_OS2 /* fixme */
    817     rtFsIsoMakerPrintf(pOpts,
    818                        "Usage: %s [options] [@commands.rsp] <filespec1> [filespec2 [..]]\n"
    819                        "\n"
    820                        "File specifications and --name-setup:\n"
    821                        "\n"
    822                        "    All non-options that does not start with '@' are taken to indicate a file,\n"
    823                        "    directory, or similar that is should be added to the ISO image.  Directories\n"
    824                        "    are added recursively and content is subject to filtering options.\n"
    825                        "\n"
    826                        "    Since there can be up to six different namespaces on an ISO, it is handy\n"
    827                        "    to be able to control the names used in each and be able to exclude an\n"
    828                        "    object from one or more namespaces.  The --name-setup option specifies the\n"
    829                        "    file specification format to use forthwith.\n"
    830                        "\n"
    831                        "    The default setup is:\n"
    832                        "\n"
    833                        "        --name-setup iso+joliet+udf+hfs\n"
    834                        "\n"
    835                        "    Which means you specify one on-ISO name for all namespaces followed by '='\n"
    836                        "    and the source file system name.  Only specifying the source file system\n"
    837                        "    will add the file/dir/whatever to the root of the ISO image.\n"
    838                        "\n"
    839                        "    Lets look at the following two examples:\n"
    840                        "\n"
    841                        "        /docs/readme.txt=/home/user/Documents/product-x-readme.txt\n"
    842                        "        /home/user/Documents/product-x-readme.txt\n"
    843                        "\n"
    844                        "    In the first case the file '/home/user/Documents/product-x-readme.txt' is\n"
    845                        "    added to the ISO image as '/docs/readme.txt' in all enabled namespaces.\n"
    846                        "    In the primary ISO 9660 namespace, the filename will by default be converted\n"
    847                        "    to upper case because it's required by the spec.\n"
    848                        "\n"
    849                        "    In the second case the file is added to the root under the name\n"
    850                        "    'product-x-readme.txt' in all namespaces.  Though, in the primary ISO 9660\n"
    851                        "    namespace the name will be transformed to apply with the current ISO level,\n"
    852                        "    probably uppercased, possibly truncated too.\n"
    853                        "\n"
    854                        "    Given  --name-setup iso,joliet,udf  you can specify the name individually\n"
    855                        "    for each of the three namespace, if you like.  If you omit any, they will\n"
    856                        "    use last name given.  Any names left blank (==) will be considered omitted.\n"
    857                        "\n"
    858                        "        A different name in each namespace:\n"
    859                        "            /ISO.TXT=/Joliet.TxT=/UDF.txt=/tmp/iso/real.txt\n"
    860                        "        Specific name in the ISO 9660 namespace, same in the rest:\n"
    861                        "            /ISO.TXT=/OtherNamespaces.TxT=/tmp/iso/real.txt\n"
    862                        "        Omit the file from the ISO 9660 namespace:\n"
    863                        "            =/OtherNamespaces.TxT=/tmp/iso/real.txt\n"
    864                        "        Omit the file from the joliet namespace:\n"
    865                        "            /ISO.TXT==/UDF.TxT=/tmp/iso/real.txt\n"
    866                        "        Use the same filename as the source everywhere:\n"
    867                        "            /tmp/iso/real.txt\n"
    868                        "\n"
    869                        "    Using for instance  --name-setup udf  you can add a files/dirs/whatever to\n"
    870                        "    select namespace(s) without the more complicated empty name syntax above.\n"
    871                        "\n"
    872                        "    When adding directories, you can only control the naming and omitting of the\n"
    873                        "    directory itself, not any recursively added files and directories below it.\n"
    874                        "\n"
    875                        "\n"
    876                        "Options - General:\n"
    877                        "\n"
    878                        "    -o <output-file>\n"
    879                        "    --output <output-file>\n"
    880                        "        The output filename.  This option is not supported in VISO mode.\n"
    881                        "\n"
    882                        "    --name-setup <spec>\n"
    883                        "        Configures active namespaces and how file specifications are to be\n"
    884                        "        interpreted.  The specification is a comma separated list.  Each element\n"
    885                        "        in the list is a sub-list separated by space, '+' or '|' giving the\n"
    886                        "        namespaces that elements controls.  Namespaces are divied into two major\n"
    887                        "        and minor ones, you cannot specifying a minor before the major it\n"
    888                        "        belongs to.\n"
    889                        "        Major namespaces and aliases in parentheses:\n"
    890                        "            - iso (primary, iso9660, iso-9660, primary-iso, iso-primary)\n"
    891                        "            - joliet\n"
    892                        "            - udf\n"
    893                        "            - hfs (hfs-plus)\n"
    894                        "        Minor namespaces:\n"
    895                        "            - rock:        rock ridge on previous major namespace (iso / joliet)\n"
    896                        "            - iso-rock:    rock ridge extensions on primary ISO 9660 namespace\n"
    897                        "            - joliet-rock: rock ridge on joliet namespace (just for fun)\n"
    898                        "            - trans-tbl:   translation table file on previous major namespace\n"
    899                        "            - iso-trans-tbl\n"
    900                        "            - joliet-trans-tbl\n"
    901                        "            - udf-trans-tbl\n"
    902                        "            - hfs-trans-tbl\n"
    903                        "\n"
    904                        "    --push-iso <iso-file>\n"
    905                        "    --push-iso-no-joliet <iso-file>\n"
    906                        "    --push-iso-no-rock <iso-file>\n"
    907                        "    --push-iso-no-rock-no-joliet <iso-file>\n"
    908                        "        Open the specified ISO file and use it as source file system until the\n"
    909                        "        corresponding --pop options is encountered.  The variations are for\n"
    910                        "        selecting which namespace on the ISO to (not) access.  These options\n"
    911                        "        are handy for copying files/directories/stuff from an ISO without\n"
    912                        "        having to extract them first or using the :iprtvfs: syntax.\n"
    913                        "\n"
    914                        "    --pop\n"
    915                        "        Pops a --push-iso of the source file system stack.\n"
    916                        "\n"
    917                        "    --import-iso <iso-file>\n"
    918                        "        Imports everything on the given ISO file. You can use --name-setup to\n"
    919                        "        omit namespaces.\n"
    920                        "\n"
    921                        "\n"
    922                        "Options - Namespaces:\n"
    923                        "\n"
    924                        "    --iso-level <0|1|2|3>\n"
    925                        "        Sets the ISO level:\n"
    926                        "            - 0: Disable primary ISO namespace.\n"
    927                        "            - 1: ISO level 1: Filenames 8.3 format and limited to 4GB - 1.\n"
    928                        "            - 2: ISO level 2: 31 char long names and limited to 4GB - 1.\n"
    929                        "            - 3: ISO level 3: 31 char long names and support for >=4GB files.\n"
    930                        "            - 4: Fictive level used by other tools. Not yet implemented.\n"
    931                        "        Default: 3\n"
    932                        "\n"
    933                        "    --rock-ridge\n"
    934                        "    --limited-rock-ridge\n"
    935                        "    --no-rock-ridge\n"
    936                        "        Enables or disables rock ridge support for the primary ISO 9660\n"
    937                        "        namespace.  The --limited-rock-ridge option omits a couple of bits in\n"
    938                        "        the root directory that would make Linux pick rock ridge over joliet.\n"
    939                        "        Default: --limited-rock-ridge"
    940                        "\n"
    941                        "    -J\n"
    942                        "    --joliet\n"
    943                        "    --no-joliet\n"
    944                        "        Enables or disable the joliet namespace.  This option must precede any\n"
    945                        "        file specifications.  Default: --joliet\n"
    946                        "\n"
    947                        "    --joliet-ucs-level <1|2|3>\n"
    948                        "    --ucs-level <1|2|3>\n"
    949                        "        Set the Joliet UCS support level.  This is currently only flagged in the\n"
    950                        "        image but not enforced on the actual path names.  Default level: 3\n"
    951                        "\n"
    952                        "\n"
    953                        "Options - File attributes:\n"
    954                        "\n"
    955                        "    --rational-attribs\n"
    956                        "        Enables rational file attribute handling:\n"
    957                        "            * Owner ID is set to zero\n"
    958                        "            * Group ID is set to zero\n"
    959                        "            * Mode is set to 0444 for non-executable files.\n"
    960                        "            * Mode is set to 0555 for executable files.\n"
    961                        "            * Mode is set to 0555 for directories, preserving stick bits.\n"
    962                        "        This is default.\n"
    963                        "\n"
    964                        "    --strict-attribs\n"
    965                        "        Counters --rational-attribs and causes attributes to be recorded\n"
    966                        "        exactly as they appear in the source.\n"
    967                        "\n"
    968                        "    --file-mode <mode>\n"
    969                        "    --no-file-mode\n"
    970                        "        Controls the forced file mode mask for rock ridge, UDF and HFS.\n"
    971                        "\n"
    972                        "    --dir-mode <mode>\n"
    973                        "    --no-dir-mode\n"
    974                        "        Controls the forced directory mode mask for rock ridge, UDF and HFS.\n"
    975                        "\n"
    976                        "    --new-dir-mode <mode>\n"
    977                        "        Controls the default mode mask (rock ridge, UDF, HFS) for directories\n"
    978                        "        that are created implicitly.  The --dir-mode option overrides this.\n"
    979                        "\n"
    980                        "    --chmod <mode>:<on-iso-file>\n"
    981                        "       Explictily sets the rock ridge, UDF and HFS file mode for a\n"
    982                        "       file/dir/whatever that has already been added to the ISO.  The mode can\n"
    983                        "       be octal, a+x, a+r, or a+rx.  (Support for more complicated mode\n"
    984                        "       specifications may be implemented at a later point.)\n"
    985                        "       Note that only namespaces in the current --name-setup are affected.\n"
    986                        "\n"
    987                        "    --chown <owner-id>:<on-iso-file>\n"
    988                        "       Explictily sets the rock ridge, UDF and HFS file owner ID (numeric) for a\n"
    989                        "       file/dir/whatever that has already been added to the ISO.\n"
    990                        "       Note that only namespaces in the current --name-setup are affected.\n"
    991                        "\n"
    992                        "    --chgrp <group-id>:<on-iso-file>\n"
    993                        "       Explictily sets the rock ridge, UDF and HFS file group ID (numeric) for a\n"
    994                        "       file/dir/whatever that has already been added to the ISO.\n"
    995                        "       Note that only namespaces in the current --name-setup are affected.\n"
    996                        "\n"
    997                        "\n"
    998                        "Options - Booting:\n"
    999                        "\n"
    1000                        "    --eltorito-new-entry\n"
    1001                        "    --eltorito-alt-boot\n"
    1002                        "        Starts a new El Torito boot entry.\n"
    1003                        "\n"
    1004                        "    --eltorito-add-image <filespec>\n"
    1005                        "        File specification of a file that should be added to the image and used\n"
    1006                        "        as the El Torito boot image of the current boot entry.\n"
    1007                        "\n"
    1008                        "    -b <on-iso-file>\n"
    1009                        "    --eltorito-boot <on-iso-file>\n"
    1010                        "        Specifies a file on the ISO as the El Torito boot image for the current\n"
    1011                        "        boot entry.\n"
    1012                        "\n"
    1013                        "    --eltorito-floppy-12\n"
    1014                        "    --eltorito-floppy-144\n"
    1015                        "    --eltorito-floppy-288\n"
    1016                        "    --no-emulation-boot\n"
    1017                        "    --hard-disk-boot\n"
    1018                        "        Sets the boot image emulation type of the current El Torito boot entry.\n"
    1019                        "\n"
    1020                        "    --boot-load-seg <seg>\n"
    1021                        "        Specify the image load segment for the current El Torito boot entry.\n"
    1022                        "        Default: 0x7c0\n"
    1023                        "\n"
    1024                        "    --boot-load-size <seg>\n"
    1025                        "        Specify the image load size in emulated sectors for the current El Torito\n"
    1026                        "        boot entry.  Default: 4 (sectors of 512 bytes)\n"
    1027                        "\n"
    1028                        "    --no-boot\n"
    1029                        "        Indicates that the current El Torito boot entry isn't bootable. (The\n"
    1030                        "        BIOS will allegedly configure the emulation, but not attempt booting.)\n"
    1031                        "\n"
    1032                        "    --boot-info-table\n"
    1033                        "        Write a isolinux/syslinux boot info table into the boot image for the\n"
    1034                        "        current El Torito boot entry.\n"
    1035                        "\n"
    1036                        "    --eltorito-platform-id <id>\n"
    1037                        "        Set the El Torito platform ID of the current entry, a new entry of the\n"
    1038                        "        verification entry depending on when it's used.  The ID must be one\n"
    1039                        "        of: x86, PPC, Mac, efi\n"
    1040                        "\n"
    1041                        "    -c <namespec>\n"
    1042                        "    --boot-catalog <namespec>\n"
    1043                        "        Enters the El Torito boot catalog into the namespaces as a file.  The\n"
    1044                        "        'namespec' uses the same format as a 'filespec', but omits the final\n"
    1045                        "        source file system name component.\n"
    1046                        "\n"
    1047                        "    -G <file>\n"
    1048                        "    --generic-boot <file>\n"
    1049                        "        Specifies a file that should be loaded at offset 0 in the ISO image.\n"
    1050                        "        The file must not be larger than 32KB.  When creating a hybrid image,\n"
    1051                        "        parts of this may be regenerated by partition tables and such.\n"
    1052                        "\n"
    1053                        "\n"
    1054                        "Options - String properties (applied to active namespaces only):\n"
    1055                        "\n"
    1056                        "    --abstract <file-id>\n"
    1057                        "        The name of the abstract file in the root dir.\n"
    1058                        "\n"
    1059                        "    -A <text|_file-id>\n"
    1060                        "    --application-id <text|_file-id>\n"
    1061                        "        Application ID string or root file name.  The latter must be prefixed\n"
    1062                        "        with an underscore.\n"
    1063                        "\n"
    1064                        "    --biblio <file-id>\n"
    1065                        "        The name of the bibliographic file in the root dir.\n"
    1066                        "\n"
    1067                        "    --copyright <file-id>\n"
    1068                        "        The name of the copyright file in the root dir.\n"
    1069                        "\n"
    1070                        "    -P <text|_file-id>\n"
    1071                        "    --publisher <text|_file-id>\n"
    1072                        "        Publisher ID string or root file name.  The latter must be prefixed\n"
    1073                        "        with an underscore.\n"
    1074                        "\n"
    1075                        "    -p <text|_file-id>\n"
    1076                        "    --preparer <text|_file-id>\n"
    1077                        "        Data preparer ID string or root file name.  The latter must be prefixed\n"
    1078                        "        with an underscore.\n"
    1079                        "\n"
    1080                        "    --sysid <text>\n"
    1081                        "        System ID string.\n"
    1082                        "\n"
    1083                        "    --volid <text>\n"
    1084                        "    --volume-id <text>\n"
    1085                        "        Volume ID string (label).  (It is possible to set different labels for\n"
    1086                        "        primary ISO 9660, joliet, UDF and HFS by changing the active namespaces\n"
    1087                        "        using the --name-setup option between --volume-id occurences.)\n"
    1088                        "\n"
    1089                        "    --volset <text>\n"
    1090                        "        Volume set ID string.\n"
    1091                        "\n"
    1092                        "\n"
    1093                        "Options - Compatibility:\n"
    1094                        "\n"
    1095                        "    --graft-points\n"
    1096                        "        Alias for --name-setup iso+joliet+udf+hfs.\n"
    1097                        "\n"
    1098                        "    -l\n"
    1099                        "    --long-names\n"
    1100                        "        Allow 31 charater filenames.  Just ensure ISO level >= 2 here.\n"
    1101                        "\n"
    1102                        "    -R\n"
    1103                        "    --rock\n"
    1104                        "        Same as --rock-ridge and --strict-attribs.\n"
    1105                        "\n"
    1106                        "    -r\n"
    1107                        "    --rational-rock\n"
    1108                        "        Same as --rock-ridge and --rational-attribs.\n"
    1109                        "\n"
    1110                        "\n"
    1111                        "Options - VISO specific:\n"
    1112                        "\n"
    1113                        "    --iprt-iso-maker-file-marker <UUID>\n"
    1114                        "    --iprt-iso-maker-file-marker-bourne <UUID>\n"
    1115                        "    --iprt-iso-maker-file-marker-bourne-sh <UUID>\n"
    1116                        "        Used as first option in a VISO file to specify the file UUID and that\n"
    1117                        "        it is formatted using bourne-shell argument quoting & escaping style.\n"
    1118                        "\n"
    1119                        "    --iprt-iso-maker-file-marker-ms <UUID>\n"
    1120                        "    --iprt-iso-maker-file-marker-ms-sh <UUID>\n"
    1121                        "        Used as first option in a VISO file to specify the file UUID and that\n"
    1122                        "        it is formatted using microsoft CRT argument quoting & escaping style.\n"
    1123                        "\n"
    1124                        "\n"
    1125                        "Options - Testing (not applicable to VISO):\n"
    1126                        "\n"
    1127                        "    --output-buffer-size <bytes>\n"
    1128                        "        Selects a specific output buffer size for testing virtual image reads.\n"
    1129                        "\n"
    1130                        "    --random-output-buffer-size\n"
    1131                        "        Enables randomized buffer size for each virtual image read, using the\n"
    1132                        "        current output buffer size (--output-buffer-size) as maximum.\n"
    1133                        "\n"
    1134                        "    --random-order-verification <size>\n"
    1135                        "        Enables verification pass of the image that compares blocks of the given\n"
    1136                        "        size in random order from the virtual and output images\n"
    1137                        "\n"
    1138                        , RTPathFilename(pszProgName));
    1139 #else
    1140     if (pOpts->pErrInfo)
    1141         rtFsIsoMakerPrintf(pOpts, "Usage: %s [options] [@commands.rsp] <filespec1> [filespec2 [..]]\n",
     816#ifndef RT_OS_OS2 /* fixme */
     817    if (!pOpts->pErrInfo)
     818        RTMsgRefEntryHelp(g_pStdOut, &g_viso);
     819    else
     820#endif
     821        rtFsIsoMakerPrintf(pOpts, "Usage: %s [options] [@commands.rsp] <filespec...>\n",
    1142822                           RTPathFilename(pszProgName));
    1143     else
    1144         RTMsgRefEntryHelp(g_pStdOut, &g_rtisomaker);
    1145 #endif
    1146823}
    1147824
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette