Re: Kickstart package groups

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



On Tue, 28 Oct 2008, Francisco Puente wrote:

Hello,

I'm building another kickstart CD, minimal, and creating my own repository.

Is there any way I can get the list of files that a group (like @core o @base) will install?

Below my .sig is an XSLT stylesheet that will do the trick. Save it to your filesystem as, e.g., comps.xsl. Then use xsltproc to apply it to the comps.xml file, e.g.,

  xsltproc --novalid comps.xsl /path/to/repodata/comps.xml > comps.html

The resulting HTML file will provide you a reasonable list of packages associated with each group.

Warning: the list might not be complete because any given package in your named group(s) might might require packages not in those groups. That's why anaconda does dependency checking at installation time.

--
Paul Heinlein <> heinlein@xxxxxxxxxx <> http://www.madboa.com/

----- comps.xsl -----

<?xml version='1.0'?>
<!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp "&#160;"> ]>
<xsl:stylesheet version="1.0"
                   mlns="http://www.w3.org/1999/xhtml";
              xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>

  <xsl:output method="xml"
              indent="yes"
            encoding="iso-8859-1"
      doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
      doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"/>

  <!-- the main event -->
  <xsl:template match="comps">
    <html lang="en-US">
      <head>
        <title>comps.xml</title>
        <xsl:call-template name="default.css"/>
      </head>
      <body>
    <xsl:call-template name="intro.text"/>
    <table width="95%">
      <tr>
        <th>Name</th>
        <th>Default</th>
        <th>Visible</th>
        <th>Description</th>
      </tr>
      <xsl:apply-templates select="group" mode="group.chart"/>
    </table>
    <p>&nbsp;</p>
    <table width="95%">
      <tr>
        <th>Name</th>
        <th>Groups Req.</th>
        <th>Packages Req.</th>
      </tr>
    <xsl:apply-templates select="group" mode="package.chart"/>
    </table>
      </body>
    </html>
  </xsl:template>


  <!-- for listing descriptions, whether group is default, ... -->
  <xsl:template match="group" mode="group.chart">
    <xsl:variable name="id" select="id"/>
    <tr>
      <td id="{$id}-info">
        <a href="#{$id}-detail"><xsl:value-of select="name"/></a>
      </td>
      <td><xsl:value-of select="default"/>&nbsp;</td>
      <td><xsl:value-of select="uservisible"/>&nbsp;</td>
      <td><xsl:value-of select="description"/>&nbsp;</td>
    </tr>
  </xsl:template>

  <!-- for listing groups and packages req. by this group -->
  <xsl:template match="group" mode="package.chart">
    <xsl:variable name="id" select="id"/>
    <tr>
      <td id="{$id}-detail">
        <a href="#{$id}-info"><xsl:value-of select="name"/></a>
      </td>
      <td><xsl:apply-templates select="grouplist"/></td>
      <td><xsl:apply-templates select="packagelist"/></td>
    </tr>
  </xsl:template>

  <!-- templates for grouplist and children -->
  <xsl:template match="grouplist">
    <table width="100%">
      <xsl:apply-templates select="*" mode="html.table"/>
    </table>
  </xsl:template>

  <xsl:template match="groupreq" mode="html.table">
    <tr>
      <xsl:call-template name="sub.table.row">
        <xsl:with-param name="leftcol" select="."/>
        <xsl:with-param name="rightcol" select="'&nbsp;'"/>
      </xsl:call-template>
    </tr>
  </xsl:template>

  <xsl:template match="metapkg" mode="html.table">
    <tr>
      <xsl:call-template name="sub.table.row">
        <xsl:with-param name="leftcol" select="."/>
        <xsl:with-param name="rightcol" select="@type"/>
      </xsl:call-template>
    </tr>
  </xsl:template>

  <!-- templates for packagelist and children -->
  <xsl:template match="packagelist">
    <table width="100%">
      <xsl:apply-templates select="*" mode="html.table"/>
    </table>
  </xsl:template>

  <xsl:template match="packagereq" mode="html.table">
    <tr>
      <xsl:call-template name="sub.table.row">
        <xsl:with-param name="leftcol" select="."/>
        <xsl:with-param name="rightcol" select="@type"/>
      </xsl:call-template>
    </tr>
  </xsl:template>


  <!-- named templates -->
  <xsl:template name="sub.table.row">
    <xsl:param name="leftcol"/>
    <xsl:param name="rightcol"/>
    <xsl:variable name="last">
      <xsl:choose>
        <xsl:when test="position() = last()">1</xsl:when>
        <xsl:otherwise>0</xsl:otherwise>
      </xsl:choose>
    </xsl:variable>
    <xsl:choose>
      <xsl:when test="$last = '1'">
        <td style="border-style: none;"><xsl:value-of select="$leftcol"/></td>
        <td style="border-style: none; text-align: right;">
            <xsl:value-of select="$rightcol"/>
        </td>
      </xsl:when>
      <xsl:otherwise>
        <td><xsl:value-of select="$leftcol"/></td>
        <td style="text-align: right;"><xsl:value-of select="$rightcol"/></td>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>

  <xsl:template name="default.css">
    <xsl:variable name="color" select="'#990000'"/>
    <style type="text/css">
      a, a:link, a:active, a:visited {
        color: <xsl:value-of select="$color"/>;
        }
      body {
        font-size: small;
        background-color: white;
        color: black;
        width: 700px;
        }
      td {
        border-bottom: 1px solid #999;
        font-size: small;
        vertical-align: top;
        }
      th {
        color: white;
        background-color: <xsl:value-of select="$color"/>;
        font-weight: bold;
        text-align: left;
        padding-right: 15px;
        }
    </style>
  </xsl:template>

  <xsl:template name="intro.text">
    <p>
      Below is an outline of the package groups available at installation
      and, later, via yum and other package-management tools. The top
      table contains descriptions of each group. To see a detailed view
      of the packages that get installed with each group, click on the
      group name.
    </p>
  </xsl:template>

</xsl:stylesheet>

----- end comps.xsl -----

_______________________________________________
CentOS mailing list
CentOS@xxxxxxxxxx
http://lists.centos.org/mailman/listinfo/centos

[Index of Archives]     [CentOS]     [CentOS Announce]     [CentOS Development]     [CentOS ARM Devel]     [CentOS Docs]     [CentOS Virtualization]     [Carrier Grade Linux]     [Linux Media]     [Asterisk]     [DCCP]     [Netdev]     [Xorg]     [Linux USB]
  Powered by Linux