File: packaging.xml

package info (click to toggle)
lsbdev-guide 0.9.4-1
  • links: PTS
  • area: main
  • in suites: woody
  • size: 940 kB
  • ctags: 62
  • sloc: xml: 2,045; makefile: 98; sh: 13
file content (131 lines) | stat: -rw-r--r-- 4,855 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
<section id="sec-packaging">
  <title>Packaging</title>
  <para>
  An important part of the &lsb; specification is the packaging.  This
  section covers the important information concerning packaging of the
  developed application, such as the filesystem hierarchy and the tool to
  use for packaging the final application.
  </para>

  <section id="sec-fhs">
    <title>Filesystem Hierarchy Standard</title>
    <para>
      The &glsb; relies on the <ulink
        url="http://www.pathname.com/fhs/">Filesystem Hierarchy
        Standard</ulink> (<acronym>FHS</acronym>) version 2.2 to define the
      layout of an &lsb;-compliant distribution.
    </para>

    <para>
      Components of the filesystem that are labeled as optional by the
      FHS must be handled as such by &lsb;-compliant applications.
      Applications are required <emphasis>not</emphasis> to assume that 
      those pieces are available.
    </para>

    <para>
      As an example, the <filename>/root</filename> directory as the home
      directory for the &users.root; user is
      optional, albeit recommended. Applications that must access
      &users.root;'s home directory might
      check the invoking user's <envar>HOME</envar> environment
      variable<footnote> <para>Note that a user who is running
          <command>sudo</command> or <command>su</command> to run an
          application or install a package may have his or her personal
          <envar>HOME</envar> instead of &users.root;'s.</para>
      </footnote>
      and/or use the <function>getpwent</function> function to determine
      root's home directory if <filename>/root</filename> does not exist
      (and perhaps even if it does). Further, as &users.root; may be
      logged onto a system in maintenance mode without all filesystems
      mounted, if &users.root;'s home directory isn't mounted,
      applications should fall back to <filename>/</filename> for that
      purpose.
    </para>
  </section>

  <section id="sec-packaging-tool">
    <title id="sec-packaging-tool.title">Packaging Tool</title>

    <para>
      The &lsb; organization has standardized on the &rpm; (Red Hat 
      Package Manager) format to provide a common package format
      upon which its tools and standards are based.  This 
      <emphasis>does not</emphasis> mean that all distributions must use &rpm;
      to manage all packages on the system; rather, an &lsb;-compliant
      environment must provide some mechanism for installing such packages.
    </para>

    <note>
    <para>
      The &glsb; defers to 
      <ulink
        url="http://www.rpmdp.org/rpmbook/node117.html">the
        appendix</ulink> of <ulink
      url="http://www.rpmdp.org/rpmbook/">Maximum RPM</ulink> for
      describing the specifics of the desired &rpm; format.
    </para>
    </note>

    <para>
      The &lsb; implementation of &rpm; can be found in the <ulink
        url="http://www.linuxbase.org/usinglsbdev.html">&lsb; development
        package's</ulink> <ulink
        url="ftp://ftp.freestandards.org/pub/lsb/lsbdev">ftp
        directory</ulink>.
    </para>

    <para>
      The key utility in &lsbrpm; is &rpmbuild;. A man page is provided; 
      <ulink url="http://www.rpmdp.org/rpmbook/">Maximum RPM</ulink>,
      despite its age, is apparently still the most comprehensive look at
      the &rpm; build process. The version at <ulink
        url="http://www.rpm.org/">rpm.org</ulink>, <ulink
      url="http://www.rpm.org/max-rpm/">http://www.rpm.org/max-rpm/</ulink>,
      appears to be slightly less dated.
    </para>
  </section>

  <section id="sec-rpm-restrictions">
    <title id="sec-rpm-restrictions.title">&lsb;-imposed Restrictions</title>

    <itemizedlist>
      <listitem>
        <para>
          Package names must start with <literal>lsb-</literal>. Currently,
          the extension is still <filename
          role="extension">.rpm</filename>, but there has been some
          discussion of using <filename role="extension">.lsb</filename>.
        </para>
      </listitem>

      <listitem>
        <para>
          Scripts included with a package for use during (un)installs must
          not use commands and/or interfaces that are not specified by the
          &lsb;.
        </para>
      </listitem>

      <listitem>
        <para>
          &rpm; triggers must not be provided.
        </para>
      </listitem>

      <listitem>
        <para>
          Installation-related scripts do not have a defined order of
          invocation during an upgrade; packages may not depend on any
          specific ordering to always be used.
        </para>
      </listitem>
    </itemizedlist>

  </section>
</section>

<!-- vim: set ai et tw=75 sw=2 sts=2: -->
<!--  Local variables: -->
<!--  eval: (sgml-load-dtd "../doctools/docbook.ced") -->
<!--  End: -->