summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/README.Debian107
-rw-r--r--debian/TODO5
-rw-r--r--debian/changelog204
-rw-r--r--debian/compat1
-rw-r--r--debian/control87
-rw-r--r--debian/dirs2
-rw-r--r--debian/doc-base.lsb-core (renamed from debian/doc-base.lsb)4
-rw-r--r--debian/lsb-core.docs (renamed from debian/lsb.docs)0
-rw-r--r--debian/po/POTFILES.in1
-rw-r--r--debian/po/cs.po72
-rw-r--r--debian/po/da.po75
-rw-r--r--debian/po/de.po50
-rw-r--r--debian/po/fr.po77
-rw-r--r--debian/po/ja.po80
-rw-r--r--debian/po/nl.po50
-rw-r--r--debian/po/pt_BR.po75
-rw-r--r--debian/po/templates.pot62
-rwxr-xr-xdebian/postinst55
-rw-r--r--debian/prerm42
-rwxr-xr-xdebian/rules27
-rw-r--r--debian/templates21
-rw-r--r--init-fragment12
-rw-r--r--init-functions128
-rw-r--r--init-skeleton233
-rw-r--r--initdutils.py124
-rwxr-xr-xinstall_initd67
-rw-r--r--lsb.84
-rwxr-xr-xremove_initd23
28 files changed, 1541 insertions, 147 deletions
diff --git a/debian/README.Debian b/debian/README.Debian
index 6c6cfde..f7b2ff7 100644
--- a/debian/README.Debian
+++ b/debian/README.Debian
@@ -3,12 +3,7 @@ lsb for Debian
This package provides the Linux Standard Base on Debian systems. The
LSB is a specification for allowing the same binary package to be used
-on multiple distributions.
-
-The "lsb" package depends on a number of other Debian packages that
-are required for full LSB compliance. It also includes some
-subroutines that are used by some LSB-compliant applications when they
-are being installed or removed.
+on multiple distributions.
INSTALLING LSB PACKAGES
@@ -22,24 +17,53 @@ installed by dpkg. If this fails, there may be a problem with either
the lsb package (most likely) or alien (less likely), and you should
contact the vendor of the lsb package to resolve the problem.
+PACKAGE LAYOUT
+
+The LSB implementation in Debian is currently divided into four
+packages:
+
+* The "lsb-core" package depends on the Debian packages that are
+ required to comply with the LSB-Core 2.0 specification; this is
+ roughly equivalent to the LSB 1.3 specification, except X11 libraries
+ are not required. It also includes some subroutines that are used
+ by LSB-compliant applications when they are being installed or
+ removed, and a series of functions used by init.d scripts in some
+ LSB packages.
+
+* The "lsb-graphics" package depends on the X11 libraries required for
+ the LSB-Graphics 2.0 specification.
+
+* The "lsb-cxx" package depends on libstdc++5, required for the
+ LSB-CXX (LSB-C++) 2.0 specification.
+
+* The "lsb" package depends on the above three packages, and exists
+ for backwards compatibility purposes with LSB 1.3.
+
+The first three packages are architecture-specific because of
+differences in the requirements of the LSB on various binary
+architectures. In particular, each package provides
+lsb-{module}-noarch and lsb-{module}-{arch} virtual packages.
+
IMPLEMENTATION ISSUES
This package attempts to implement the core LSB specification. Much
of the implementation is drawn on a talk by Wichert Akkerman
(http://www.liacs.nl/~wichert/talks/LSBDistro/html/) and Matt
Taggart's discussion of LSB 1.0 and Debian. Matt's discussion is
-provided in the /usr/share/doc/lsb/html directory.
+provided in the /usr/share/doc/lsb/html directory. Matt has also
+produced a slideshow on LSB in Debian, which can be found at:
+http://people.debian.org/~taggart/debconf2/
-It does so in a number of ways:
+This package implements the LSB specification by:
-- Depending upon packages that implement OS services required by the
+- depending upon packages that implement OS services required by the
LSB, including libraries and programs.
-- Including the ld-lsb.so.1 symlink to the dynamic linker.
+- including the correct symlink to the dynamic linker.
-- Providing the LSB init script functionality. Some of the LSB init
+- providing the LSB init script functionality. Some of the LSB init
functionality cannot be implemented without cooperation from other
- packages or changes in policy for woody+1; however, the remainder is
+ packages or changes in policy for sarge+1; however, the remainder is
provided here.
The intent of this package is to provide a best current practice way
@@ -51,24 +75,25 @@ construed as a statement that Debian is LSB-compliant.
The specification is available at http://www.linuxbase.org/spec/
-DEVIATIONS FROM LSB 1.2
+DEVIATIONS FROM LSB 2.0
The package and its dependencies implement all of LSB on Debian, with
these exceptions:
-- LSB 1.2 assumes a 2.4 kernel. Debian ships a 2.2 kernel by default
- as of woody, although 2.4 is optional. There is no way in the
- Debian system to ensure a package is only installed on a specific
- kernel release. Running LSB applications on 2.2 kernels may result
- in subtle bugs or failures, particularly if they depend on large
- file support or new syscall interfaces introduced in Linux 2.3+.
+- LSB 2.0 assumes a 2.4 kernel. Debian ships a 2.4 kernel by default
+ on most architectures as of sarge, although 2.2 and 2.6 are
+ optional. There is no way in the Debian system to ensure a package
+ is only installed on a specific kernel release. Running LSB
+ applications on 2.2 kernels may result in subtle bugs or failures,
+ particularly if they depend on large file support or new syscall
+ interfaces introduced in Linux 2.3+.
(We do not consider this a bug in the package.)
-- LSB 1.2 doesn't fully specify what the init_functions should do. I
+- LSB 2.0 doesn't fully specify what the init_functions should do. I
have chosen to implement them in a way that is consistent with
Debian current practice, using the start-stop-daemon utility and the
- echo command. For woody+1, I expect a nicer init logging facility
+ echo command. For sarge+1, I expect a nicer init logging facility
that could be used.
- LSB specifies no way for a binary to request that a pid file be
@@ -95,10 +120,12 @@ these exceptions:
- The LSB specifies that cron scripts can be placed in cron.daily and
other directories; however, Debian's run-parts appears to ignore
these scripts if they contain a dot in their names. (See #118646)
- Once this deficiency is fixed, a versioned dependency will be added
- to this package.
+ You can work around this problem by editing /etc/crontab and
+ specifying the --lsbsysinit option; it is hoped that eventually
+ Debian will include this option by default.
- (This appears to be a deficiency in debianutils.)
+ (This is a known deficiency in debianutils, and is required for
+ backwards compatibility with expected behavior on earlier systems.)
- The results of running the LSB test suite against Debian with the
LSB package and its dependencies installed are available at
@@ -124,12 +151,35 @@ DESIGN DECISIONS
/var/lib/lsb/facilities. Priorities are assigned to the system
facilities as found on my sid systems as of today; perhaps system
facilities should be registered by the appropriate packages, and not
- managed by the lsb package, but that is a woody+1 policy decision.
+ managed by the lsb package, but that is a sarge+1 policy decision.
+
+- As of 1.3-1, a second registry of init script dependencies is
+ retained in /var/lib/lsb/depends. This is used to ensure that an
+ LSB package will not be removed if it provides an LSB facility that is
+ used by another LSB package. (If you rely on this functionality and
+ are upgrading from the 1.2 series, you will need to manually reinstall
+ all of your LSB packages.)
- The facility handling scripts are written in Python. I am not
particularly attached to them being written in Python, but at the
same time I do not forsee rewriting them in $language_of_choice.
+BACKPORTING TO DEBIAN 3.0 (WOODY)
+
+The scripts install_initd and remove_initd are written in Python and
+require Python 2.2 or later to operate correctly. Woody (Debian 3.0)
+included the python2.2 package, but the default version of Python in
+woody was Python 2.1. To backport to woody:
+
+- Change the python dependency to depend on python2.2 rather than python
+- Change the #! lines of install_initd and remove_initd to point to
+ /usr/bin/python2.2
+
+For proper LSB conformance in woody, you will also need to backport
+other Debian packages, including alien.
+
+The default version of Python in Debian 3.1 (sarge) is Python 2.3.4.
+
COMPLIANCE TESTING
I have been unable to locate any LSB package that tests the init
@@ -137,4 +187,9 @@ script functionality of the spec. I am therefore unable to say
whether this package actually works as advertised. I would appreciate
any reports of its success or failure.
- -- Chris Lawrence <lawrencc@debian.org>, Sun, 17 Feb 2002 14:07:32 -0600
+An example init script that tests some of these features is provided
+as /usr/share/doc/lsb/examples/init-skeleton.
+
+ -- Chris Lawrence <lawrencc@debian.org>, Mon Sep 20 21:37:40 2004
+
+ LocalWords: LSB
diff --git a/debian/TODO b/debian/TODO
new file mode 100644
index 0000000..39a13de
--- /dev/null
+++ b/debian/TODO
@@ -0,0 +1,5 @@
+A quickie TODO list for lsb*:
+
+* Move dynamic linker symlinks from postinst into package itself.
+* Support additional Debian architectures.
+* Only build lsb-* for LSB architectures in Debian.
diff --git a/debian/changelog b/debian/changelog
index 89051d7..942c156 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,18 +1,201 @@
-lsb (1.2-5.woody.1) stable; urgency=high
+lsb (2.0-5) unstable; urgency=low
- * Support LSB 1.2 in woody. Includes all changes through 1.2-6 in sid.
- * Fix call to shadowconfig in postinst. (Closed: #166041)
+ * Upload to unstable. (Closes: #278093)
+ * Ignore empty headers in init files. (Closes: #292835)
+ * Add Czech translation of the debconf messages. (Closes: #288015)
+
+ -- Chris Lawrence <lawrencc@debian.org> Sun, 30 Jan 2005 08:01:29 -0600
+
+lsb (2.0-4) experimental; urgency=low
+
+ * Fix path of HTML docs in debian/doc-base.lsb-core (Closes: #278357)
+
+ -- Chris Lawrence <lawrencc@debian.org> Tue, 26 Oct 2004 09:16:46 -0500
+
+lsb (2.0-3) experimental; urgency=low
+
+ * Fix x86-64 ls-lsb symlink. (Closes: #278093)
+
+ -- Chris Lawrence <lawrencc@debian.org> Sun, 24 Oct 2004 19:50:00 -0500
+
+lsb (2.0-2) experimental; urgency=low
+
+ * Upload to experimental so we don't break lsb 2.0-1 in unstable as it
+ tries to migrate to sarge.
+ * Split into lsb-core, lsb-graphics, and lsb-cxx packages, leaving lsb
+ as a metapackage (lsb-graphics and lsb-cxx are also metapackages).
+ * Include /lib64 in the AMD64 package rather than running mkdir in the
+ postinst.
+ * Revise README.Debian for LSB 2.0 and the package split; ensure LSB
+ package install instructions are in the first page of text.
+
+ -- Chris Lawrence <lawrencc@debian.org> Mon, 20 Sep 2004 21:38:36 -0500
+
+lsb (2.0-1) unstable; urgency=high
+
+ * Add lsb-core-{noarch,[arch]} Provides.
+ * Symlink ld-lsb.so.2 to appropriate dynamic linker.
+ * Add Japanese translation of debconf template. (Closes: #270926)
+ * Depend on ia32-libs on amd64. (Closes: #259976)
+
+ -- Chris Lawrence <lawrencc@debian.org> Sun, 19 Sep 2004 18:01:07 -0500
+
+lsb (1.3-9) unstable; urgency=low
+
+ * Added Danish po file. (Closes: #234406)
+
+ -- Chris Lawrence <lawrencc@debian.org> Mon, 23 Feb 2004 15:04:37 -0600
+
+lsb (1.3-8) unstable; urgency=low
+
+ * Added German po file. (Closes: #223120)
+ * Depend on exim4 | m-t-a instead of exim | m-t-a. (Closes: #228588)
+
+ -- Chris Lawrence <lawrencc@debian.org> Sat, 31 Jan 2004 20:49:47 -0600
+
+lsb (1.3-7) unstable; urgency=medium
+
+ * Conflict with libutahglx1 instead of depending on xlibmesa3-gl.
+ This will allow XFree86 4.3.0's libgl1 to be installed on the system.
+ * Move conflicts with Python to 2.5, since 2.4 is not expected to be
+ backwards incompatible with anything in the lsb package.
+
+ -- Chris Lawrence <lawrencc@debian.org> Tue, 18 Nov 2003 12:02:01 -0600
+
+lsb (1.3-6) unstable; urgency=medium
+
+ * Depend on alien 8.36 or later. (Closes: #220177)
+ * Depend on xlibmesa3-gl instead of libgl1. (Closes: #220523)
+ * If the pathname supplied to install_initd or remove_initd exists
+ relative to the cwd, use it rather than prepending /etc/init.d.
+ (Closes: #207851)
+ * Added notes for backporting to woody to README.Debian.
+
+ -- Chris Lawrence <lawrencc@debian.org> Mon, 17 Nov 2003 10:05:29 -0600
+
+lsb (1.3-5) unstable; urgency=low
+
+ * Note in README.Debian that the --lsbsysinit option in /etc/crontab is
+ required for strict LSB compliance. (Closes: #214896)
+ * Re-enable $netdaemons facility in the "internal registry" again, as
+ gLSB 1.1 included it and some packages appear to still use it.
+ (Closes: #210578)
+ * Use ld.so.1 symlink instead of the glibc-version-dependent location
+ for s390. (Closes: #216824)
+
+ -- Chris Lawrence <lawrencc@debian.org> Wed, 22 Oct 2003 13:17:25 -0500
+
+lsb (1.3-4) unstable; urgency=low
+
+ "cobaco":
+ * Add Dutch translation of debconf template. (Closes: #204921)
+ Matt Taggart:
+ * Add ia64 to description. (Closes: #207694)
+ Tobias Burnus:
+ * Provide a skeleton LSB init script. (Closes: #207715)
+ * Numerous improvements to init-functions. (Closes: #207639)
+ Me:
+ * Support broken uses of install_initd and remove_initd.
+ (See #207851; still pondering on start_daemon's behavior.)
+
+ -- Chris Lawrence <lawrencc@debian.org> Wed, 10 Sep 2003 17:40:24 -0500
+
+lsb (1.3-3) unstable; urgency=low
+
+ * Depend on pax. (Closes: #203545)
+ * Add ld.so symlink for ia64. (Closes: #203541)
+ * Improved French translation. (Closes: #202692)
+
+ -- Chris Lawrence <lawrencc@debian.org> Fri, 8 Aug 2003 18:13:08 -0400
+
+lsb (1.3-2) unstable; urgency=low
+
+ * Use iteritems instead of the default iterator when saving the
+ init script dependency dictionary. (Closes: #202012)
+ * Add a link to Matt Taggart's DebConf2 talk to README.Debian.
+ (Closes: #198600)
+ * Add French translation of debconf prompts. (Closes: #201626)
+
+ -- Chris Lawrence <lawrencc@debian.org> Mon, 21 Jul 2003 12:19:34 -0400
+
+lsb (1.3-1) unstable; urgency=low
+
+ * First release of LSB 1.3 for Debian.
+ * Convert everything to Python 2.2+ style.
+ * Clean up the parsing of header lines to be fully compliant.
+ * Add po-debconf patch. (Closes: #186853)
+ * Don't retry if a signal specified in killproc. (Closes: #167759)
+ * Revise pidofproc to return a failure code if no pid found.
+ (Closes: #190719)
+ * Properly treat Required-Start and Required-Stop as strict dependencies
+ (install_initd will now fail if they cannot be fulfilled.)
+ * remove_initd will now fail if removing the init script would cause
+ another LSB package to be missing a dependency. (However, the
+ tracking for these dependencies was not done in the past. As this is
+ part of gLSB 1.9, this should not be a problem.)
+ * The previous two items were in a single report. (Closes: #198293)
+ * Support Should-Start and Should-Stop from gLSB 1.9. (Closes: #198277)
+ (A warning message will be output if a facility requested is unavailable.)
+ * Support -p argument to killproc, pidofproc and start_daemon, per gLSB 1.9.
+ (Closes: #197794)
+ * Set up the ld-lsb symlink in the postinst, so it can vary between
+ architectures, and remove in the prerm. (Closes: #183617)
+ Currently only defined for IA32 (i386), PPC32 (powerpc) and S390
+ (s390); please let me know the correct link for IA64 (ia64) and any
+ other ports that may be floating out there. (I'm only interested in
+ architectures that appear at http://www.linuxbase.org/spec/.)
+ * Purge the lsb registry on package removal.
+ * Depend on mawk | gawk; original-awk may not be SUS-compliant.
+ (See http://www.linuxbase.org/spec/refspecs/LSB_1.3.0/gLSB/gLSB/awk.html)
+
+ -- Chris Lawrence <lawrencc@debian.org> Tue, 24 Jun 2003 03:06:37 -0500
+
+lsb (1.2-6) unstable; urgency=medium
+
+ * Fix call to shadowconfig in postinst. (Closes: #166041)
* Add text to the debconf template that lets the user know that shadow
passwords are not needed by most LSB applications.
- * Remove duplicate --retry 5 from start-stop-daemon call. (Closed: #165395)
- * Fix bugs in the init script registry code. (Closed: #165038)
+
+ -- Chris Lawrence <lawrencc@debian.org> Sat, 26 Oct 2002 07:20:54 -0500
+
+lsb (1.2-5) unstable; urgency=medium
+
+ * Remove duplicate --retry 5 from start-stop-daemon call. (Closes: #165395)
+ * Fix bugs in the init script registry code. (Closes: #165038)
+
+ -- Chris Lawrence <lawrencc@debian.org> Tue, 22 Oct 2002 06:23:03 -0500
+
+lsb (1.2-4) unstable; urgency=low
+
* Support more specifications for the signal in "killproc".
- (Closed: #163109)
+ (Closes: #163109)
+
+ -- Chris Lawrence <lawrencc@debian.org> Fri, 4 Oct 2002 07:09:22 -0500
+
+lsb (1.2-3) unstable; urgency=low
+
* Return non-zero exit status if "pidofproc" can't find the process.
- (Closed: #157314)
- * Fix silly typos in install_initd. (Closed: #152544)
- * Fix duplicated --retry 5. (Closed: #152552)
- * Added support for facilities introduced in gLSB 1.2. (Closed: #148568)
+ (Closes: #157314)
+
+ -- Chris Lawrence <lawrencc@debian.org> Wed, 21 Aug 2002 13:20:09 -0500
+
+lsb (1.2-2) unstable; urgency=low
+
+ * Fix silly typos in install_initd. (Closes: #152544)
+ * Fix duplicated --retry 5. (Closes: #152552)
+
+ -- Chris Lawrence <lawrencc@debian.org> Wed, 10 Jul 2002 15:48:10 -0500
+
+lsb (1.2-1) unstable; urgency=low
+
+ * ADV: Matt Taggart will be giving a presentation on LSB in Debian at
+ Debconf2 on Sunday afternoon; your attendence and attentiveness is
+ strongly encouraged :-)
+
+ * First release of LSB 1.2 (hopefully-)compliant package.
+ * Added link to joeyh's LSB testing page to README.Debian.
+ * Revised README.Debian in light of LSB 1.2's improved verbiage.
+ * Added support for facilities introduced in gLSB 1.2. (Closes: #148568)
- $time: start >= S24, stop <= K21
- $portmap: start >= S19, stop <= K34
* Removed support for the $netdaemons facility, which vanished from the
@@ -116,4 +299,3 @@ lsb (1.1.0-1) unstable; urgency=low
* Initial Release. (Closes: #134658)
-- Chris Lawrence <lawrencc@debian.org> Sun, 17 Feb 2002 14:07:32 -0600
-
diff --git a/debian/compat b/debian/compat
new file mode 100644
index 0000000..b8626c4
--- /dev/null
+++ b/debian/compat
@@ -0,0 +1 @@
+4
diff --git a/debian/control b/debian/control
index 4ca83bd..bf6d513 100644
--- a/debian/control
+++ b/debian/control
@@ -2,22 +2,87 @@ Source: lsb
Section: misc
Priority: extra
Maintainer: Chris Lawrence <lawrencc@debian.org>
-Build-Depends-Indep: debhelper (>> 3.0.0)
-Standards-Version: 3.5.2
+Build-Depends: debhelper (>= 4.1.13), po-debconf (>= 0.5.0)
+Standards-Version: 3.6.1
+
+Package: lsb-core
+Architecture: any
+Depends: lsb-release, libz1, exim4 | mail-transport-agent, at, bc, binutils, bsdmainutils, cpio, cron, file, libc6-dev | libc-dev, locales, lpr, m4, make, man-db, mawk | gawk, ncurses-term, passwd, patch, pax, procps, psmisc, rsync, alien (>= 8.36), python (>> 2.2.2), ${misc:Depends}, ${depends}
+Provides: lsb-core-noarch, ${provides}
+Conflicts: python (>> 2.5), libutahglx1, lsb (<< 2.0-2)
+Replaces: lsb (<< 2.0-2)
+Description: Linux Standard Base 2.0 core support package
+ The Linux Standard Base (http://www.linuxbase.org/) is a standard
+ core system that third-party applications written for Linux can
+ depend upon.
+ .
+ This package provides an implementation of the core of version 2.0 of
+ the Linux Standard Base for Debian on the Intel x86, Intel ia64
+ (Itanium), IBM S390, and PowerPC 32-bit architectures with the Linux
+ kernel. Future revisions of the specification and this package may
+ support the LSB on additional architectures and kernels.
+ .
+ The intent of this package is to provide a best current practice way
+ of installing and running LSB packages on Debian GNU/Linux. Its
+ presence does not imply that we believe that Debian fully complies
+ with the Linux Standard Base, and should not be construed as a
+ statement that Debian is LSB-compliant.
+
+Package: lsb-graphics
+Architecture: any
+Depends: lsb-core, xlibmesa3-gl | libgl1, xlibs, ${misc:Depends}
+Provides: lsb-graphics-noarch, ${provides}
+Description: Linux Standard Base 2.0 graphics support package
+ The Linux Standard Base (http://www.linuxbase.org/) is a standard
+ core system that third-party applications written for Linux can
+ depend upon.
+ .
+ This package provides an implementation of version 2.0 of the Linux
+ Standard Base graphics specification for Debian on the Intel x86,
+ Intel ia64 (Itanium), IBM S390, and PowerPC 32-bit architectures with
+ the Linux kernel. Future revisions of the specification and this
+ package may support the LSB on additional architectures and kernels.
+ .
+ The intent of this package is to provide a best current practice way
+ of installing and running LSB packages on Debian GNU/Linux. Its
+ presence does not imply that we believe that Debian fully complies
+ with the Linux Standard Base, and should not be construed as a
+ statement that Debian is LSB-compliant.
+
+Package: lsb-cxx
+Architecture: any
+Depends: lsb-core, libstdc++5, ${misc:Depends}
+Provides: lsb-cxx-noarch, ${provides}
+Description: Linux Standard Base 2.0 C++ support package
+ The Linux Standard Base (http://www.linuxbase.org/) is a standard
+ core system that third-party applications written for Linux can
+ depend upon.
+ .
+ This package provides an implementation of version 2.0 of the Linux
+ Standard Base C++ (CXX) specification for Debian on the Intel x86,
+ Intel ia64 (Itanium), IBM S390, and PowerPC 32-bit architectures with
+ the Linux kernel. Future revisions of the specification and this
+ package may support the LSB on additional architectures and kernels.
+ .
+ The intent of this package is to provide a best current practice way
+ of installing and running LSB packages on Debian GNU/Linux. Its
+ presence does not imply that we believe that Debian fully complies
+ with the Linux Standard Base, and should not be construed as a
+ statement that Debian is LSB-compliant.
Package: lsb
Architecture: all
-Depends: lsb-release, libgl1, xlibs, libz1, exim | mail-transport-agent, at, bc, binutils, bsdmainutils, cpio, cron, file, libc6-dev | libc-dev, locales, lpr, m4, make, man-db, mawk | awk, ncurses-term, passwd, patch, procps, psmisc, rsync, alien (>= 8.00), python (>> 2.1), ${misc:Depends}
-Conflicts: python (>> 2.3)
-Description: Linux Standard Base 1.2 core support package
+Depends: lsb-core, lsb-graphics, lsb-cxx
+Description: Linux Standard Base 2.0 support package
The Linux Standard Base (http://www.linuxbase.org/) is a standard
- core system that third-party applications can depend upon.
+ core system that third-party applications written for Linux can
+ depend upon.
.
- This package provides an implementation of version 1.2 of the Linux
- Standard Base for Debian on the Intel x86 and PowerPC 32-bit
- architectures with the Linux kernel. Future revisions of the
- specification and this package may support the LSB on additional
- architectures and kernels.
+ This package provides an implementation of all modules of version 2.0
+ of the Linux Standard Base for Debian on the Intel x86, Intel ia64
+ (Itanium), IBM S390, and PowerPC 32-bit architectures with the Linux
+ kernel. Future revisions of the specification and this package may
+ support the LSB on additional architectures and kernels.
.
The intent of this package is to provide a best current practice way
of installing and running LSB packages on Debian GNU/Linux. Its
diff --git a/debian/dirs b/debian/dirs
index 313fdfe..7a53767 100644
--- a/debian/dirs
+++ b/debian/dirs
@@ -1,4 +1,4 @@
lib/lsb
-usr/X11R6/bin
usr/lib/lsb
var/lib/lsb
+usr/X11R6/bin
diff --git a/debian/doc-base.lsb b/debian/doc-base.lsb-core
index 321bac5..9d13e42 100644
--- a/debian/doc-base.lsb
+++ b/debian/doc-base.lsb-core
@@ -6,5 +6,5 @@ Abstract: This document compares the general Linux Standards Base written
Section: misc
Format: HTML
-Index: /usr/share/doc/lsb/html/index.html
-Files: /usr/share/doc/lsb/html/*
+Index: /usr/share/doc/lsb-core/html/index.html
+Files: /usr/share/doc/lsb-core/html/*
diff --git a/debian/lsb.docs b/debian/lsb-core.docs
index 5ccff1a..5ccff1a 100644
--- a/debian/lsb.docs
+++ b/debian/lsb-core.docs
diff --git a/debian/po/POTFILES.in b/debian/po/POTFILES.in
new file mode 100644
index 0000000..cef83a3
--- /dev/null
+++ b/debian/po/POTFILES.in
@@ -0,0 +1 @@
+[type: gettext/rfc822deb] templates
diff --git a/debian/po/cs.po b/debian/po/cs.po
new file mode 100644
index 0000000..123fe36
--- /dev/null
+++ b/debian/po/cs.po
@@ -0,0 +1,72 @@
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Developers do not need to manually edit POT or PO files.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: lsb\n"
+"POT-Creation-Date: 2003-03-30 12:40-0300\n"
+"PO-Revision-Date: 2004-12-31 15:51+0100\n"
+"Last-Translator: Miroslav Kure <kurem@debian.cz>\n"
+"Language-Team: CZech <provoz@debian.cz>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-2\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Description
+#: ../templates:4
+msgid "Should shadow passwords be enabled?"
+msgstr "Mají se povolit stínová hesla?"
+
+#. Description
+#: ../templates:4
+msgid ""
+"The Linux Standard Base requires that certain features of adduser(8) be "
+"available to conforming applications (such as password aging). Debian only "
+"provides these features when shadow passwords are enabled; however, your "
+"system currently has shadow passwords disabled."
+msgstr ""
+"Linux Standard Base vyžaduje, aby byly určité vlastnosti programu adduser(8) "
+"(např. stárnutí hesel) dostupné odpovídajícím aplikacím. Debian poskytuje "
+"tyto vlastnosti pouze při zapnutých stínových heslech. Zdá se, že váš "
+"systém má podporu stínových hesel vypnutu."
+
+#. Description
+#: ../templates:4
+#, no-c-format
+msgid ""
+"Most LSB applications will work fine with either setting, but 100% "
+"conformance requires shadow passwords to be enabled."
+msgstr ""
+"Většina LSB aplikací bude pracovat s oběma nastaveními, ale 100% "
+"kompatibility dosáhnete pouze se zapnutou podporou stínových hesel."
+
+#. Description
+#: ../templates:4
+msgid ""
+"Generally speaking, it is considered good practice to enable shadow "
+"passwords. However, there are some situations in which shadow passwords may "
+"not work properly (most notably, if non-root users need to authenticate "
+"passwords against /etc/passwd)."
+msgstr ""
+"Obecně jsou stínová hesla doporučena, avšak existují situace, kdy nemusí "
+"fungovat (například pokud se neprivilegovaní uživatelé potřebují "
+"autentizovat oproti /etc/passwd)."
+
+#. Description
+#: ../templates:4
+msgid ""
+"If you answer in the affirmative, the command 'shadowconfig on' will be run "
+"to enable shadow passwords."
+msgstr ""
+"Odpovíte-li kladně, spustí se program 'shadowconfig on', který zapne "
+"podporu stínových hesel."
diff --git a/debian/po/da.po b/debian/po/da.po
new file mode 100644
index 0000000..421912e
--- /dev/null
+++ b/debian/po/da.po
@@ -0,0 +1,75 @@
+# translation of lsb_1.3-8-da.po to Danish
+# translation of lsb_1.3-8_templates.po to Danish
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans#
+# Developers do not need to manually edit POT or PO files.
+# Claus Hindsgaul <claus_h@image.dk>, 2004.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: lsb_1.3-8-da\n"
+"POT-Creation-Date: 2003-03-30 12:40-0300\n"
+"PO-Revision-Date: 2004-02-23 19:36+0100\n"
+"Last-Translator: Claus Hindsgaul <claus_h@image.dk>\n"
+"Language-Team: Danish <dansk@klid.dk>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.0.2\n"
+
+#. Description
+#: ../templates:4
+msgid "Should shadow passwords be enabled?"
+msgstr "Skal skyggeadgangskoder aktiveres?"
+
+#. Description
+#: ../templates:4
+msgid ""
+"The Linux Standard Base requires that certain features of adduser(8) be "
+"available to conforming applications (such as password aging). Debian only "
+"provides these features when shadow passwords are enabled; however, your "
+"system currently has shadow passwords disabled."
+msgstr ""
+"Linux Standardbasis krĂŚver at visse af adduser(8)'s funktioner (sĂĽsom "
+"tidsudløb for adgangskoder) gøres tilgÌngelige til programmer. Debian "
+"har kun disse funktioner, hvis skyggeadgangskoder aktiveres. Det er "
+"de dog ikke pĂĽ dit system."
+
+#. Description
+#: ../templates:4
+#, no-c-format
+msgid ""
+"Most LSB applications will work fine with either setting, but 100% "
+"conformance requires shadow passwords to be enabled."
+msgstr ""
+"De fleste LSB-programmer vil fungere udmĂŚrket med begge indstillinger, "
+"men 100% LSB-tilpasning krĂŚver at skyggeadgangskoder bliver aktiveret."
+
+#. Description
+#: ../templates:4
+msgid ""
+"Generally speaking, it is considered good practice to enable shadow "
+"passwords. However, there are some situations in which shadow passwords may "
+"not work properly (most notably, if non-root users need to authenticate "
+"passwords against /etc/passwd)."
+msgstr ""
+"Generelt er det en god idĂŠ at aktivere skyggeadgangskoder. Der kan dog "
+"vĂŚre situationer, hvor de ikke fungerer ordentligt (f.eks. hvis ikke-root "
+"brugere skal autentificere adgangskoder ved hjĂŚlp af /etc/passwd)."
+
+#. Description
+#: ../templates:4
+msgid ""
+"If you answer in the affirmative, the command 'shadowconfig on' will be run "
+"to enable shadow passwords."
+msgstr ""
+"Hvis du accepterer, vil kommandoen 'shadowconfig on' blive kørt for at "
+"aktivere skyggeadgangskoder."
+
diff --git a/debian/po/de.po b/debian/po/de.po
new file mode 100644
index 0000000..600440f
--- /dev/null
+++ b/debian/po/de.po
@@ -0,0 +1,50 @@
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Developers do not need to manually edit POT or PO files.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: lsb\n"
+"POT-Creation-Date: 2003-03-30 12:40-0300\n"
+"PO-Revision-Date: 2003-12-06 19:21+0100\n"
+"Last-Translator: Patrick Willam <patrick@patrick-willam.de>\n"
+"Language-Team: skolelinux-germany <devel@skolelinux.no>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Description
+#: ../templates:4
+msgid "Should shadow passwords be enabled?"
+msgstr "Sollen Schatten-Passworte [/etc/shadow] benutzt werden?"
+
+#. Description
+#: ../templates:4
+msgid "The Linux Standard Base requires that certain features of adduser(8) be available to conforming applications (such as password aging). Debian only provides these features when shadow passwords are enabled; however, your system currently has shadow passwords disabled."
+msgstr "Die LSB (\"Linux Standard Base\") verlangt, daß bestimmte Funktionen von adduser(8) für LSB-konforme Anwendungen verfügbar sind (z.Bsp. Passwort-Alterung). Debian stellt diese Funktionen nur zur Verfügung, falls Schatten-Passworte benutzt werden; jedoch werden in Ihrem System Schatten-Passworte z.Zt. nicht benutzt."
+
+#. Description
+#: ../templates:4
+#, no-c-format
+msgid "Most LSB applications will work fine with either setting, but 100% conformance requires shadow passwords to be enabled."
+msgstr "Die meisten LSB-Anwendungen werden mit jeder Einstellung prima funktionieren, aber 100%ige Konformität verlangt, daß Schatten-Passworte benutzt werden."
+
+#. Description
+#: ../templates:4
+msgid "Generally speaking, it is considered good practice to enable shadow passwords. However, there are some situations in which shadow passwords may not work properly (most notably, if non-root users need to authenticate passwords against /etc/passwd)."
+msgstr "Es ist generell das Richtige, Schatten-Passworte zu benutzen. Es gibt jedoch einige Situationen, in denen Schatten-Passworte nicht richtig funktionieren (insbesondere wenn sich Nicht-Root-Benutzer gegen /etc/passwd authentifizieren müssen)."
+
+#. Description
+#: ../templates:4
+msgid "If you answer in the affirmative, the command 'shadowconfig on' will be run to enable shadow passwords."
+msgstr "Wenn Sie zustimmen, dann wird das Kommando \"shadowconfig on\" ausgeführt, um die Benutzung von Schatten-Passworten zu aktivieren."
+
diff --git a/debian/po/fr.po b/debian/po/fr.po
new file mode 100644
index 0000000..d8972cd
--- /dev/null
+++ b/debian/po/fr.po
@@ -0,0 +1,77 @@
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Developers do not need to manually edit POT or PO files.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: lsb 1.3-1\n"
+"POT-Creation-Date: 2003-03-30 12:40-0300\n"
+"PO-Revision-Date: 2003-07-07 19:09+0100\n"
+"Last-Translator: Christian Perrier <bubulle@debian.org>\n"
+"Language-Team: French <debian-l10n-french@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-15\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Description
+#: ../templates:4
+msgid "Should shadow passwords be enabled?"
+msgstr ""
+"Souhaitez-vous mettre en service les mots de passe cachés (Ť shadow "
+"passwords ť) ?"
+
+#. Description
+#: ../templates:4
+msgid ""
+"The Linux Standard Base requires that certain features of adduser(8) be "
+"available to conforming applications (such as password aging). Debian only "
+"provides these features when shadow passwords are enabled; however, your "
+"system currently has shadow passwords disabled."
+msgstr ""
+"La base normalisée de Linux (LSB : Ť  Linux Standard Base ť) impose que "
+"certaines fonctionnalités de adduser(8) (p. ex. l'expiration des mots de "
+"passe) soient disponibles pour les applications qui se conforment ŕ la LSB. "
+"Debian n'offre ces possibilités que lorsque les mots de passe cachés sont "
+"activés ; or, ils sont actuellement désactivés sur votre systčme."
+
+#. Description
+#: ../templates:4
+#, no-c-format
+msgid ""
+"Most LSB applications will work fine with either setting, but 100% "
+"conformance requires shadow passwords to be enabled."
+msgstr ""
+"La plupart des applications conformes ŕ la LSB fonctionnent correctement "
+"dans tous les cas, mais la conformité complčte n'est possible qu'avec "
+"l'activation des mots de passe cachés."
+
+#. Description
+#: ../templates:4
+msgid ""
+"Generally speaking, it is considered good practice to enable shadow "
+"passwords. However, there are some situations in which shadow passwords may "
+"not work properly (most notably, if non-root users need to authenticate "
+"passwords against /etc/passwd)."
+msgstr ""
+"En général, l'activation des mots de passe cachés est plutôt un choix "
+"judicieux. Cependant, leur utilisation peut générer des difficultés dans "
+"certains cas (typiquement, lorsqu'un utilisateur non privilégié cherche ŕ "
+"utiliser /etc/passwd pour contrôler les mots de passe)."
+
+#. Description
+#: ../templates:4
+msgid ""
+"If you answer in the affirmative, the command 'shadowconfig on' will be run "
+"to enable shadow passwords."
+msgstr ""
+"Si vous répondez affirmativement ici, la commande Ť shadowconfig on ť sera "
+"utilisée pour activer les mots de passe cachés."
diff --git a/debian/po/ja.po b/debian/po/ja.po
new file mode 100644
index 0000000..e629020
--- /dev/null
+++ b/debian/po/ja.po
@@ -0,0 +1,80 @@
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Developers do not need to manually edit POT or PO files.
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: lsb 1.3-9\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2004-09-02 19:42+0900\n"
+"PO-Revision-Date: 2004-09-02 10:02+0900\n"
+"Last-Translator: Hideki Yamane <henrich@samba.gr.jp>\n"
+"Language-Team: Japanese <debian-japanese@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=EUC-JP\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: boolean
+#. Description
+#: ../templates:4
+msgid "Should shadow passwords be enabled?"
+msgstr "shadow ĽŃĽšĽďĄźĽÉ¤ňÍ­¸ú¤Ë¤ˇ¤Ţ¤š¤Ť?"
+
+#. Type: boolean
+#. Description
+#: ../templates:4
+msgid ""
+"The Linux Standard Base requires that certain features of adduser(8) be "
+"available to conforming applications (such as password aging). Debian only "
+"provides these features when shadow passwords are enabled; however, your "
+"system currently has shadow passwords disabled."
+msgstr ""
+"Linux Standard Base ¤Ç¤ĎĄ˘adduser(8) ¤ÎĆĂÄę¤ÎľĄÇ˝ (ĽŃĽšĽďĄźĽÉÍ­¸ú´ü¸Â¤Ę¤É) ¤Ź"
+"ĹŹšçĽ˘Ľ×ĽęĽąĄźĽˇĽçĽó¤Ë¤Ę¤ë¤ł¤Č¤ňÉŹÍפȤˇ¤Ţ¤šĄŁDebian ¤Ç¤Ď shadow ĽŃĽšĽďĄźĽÉ¤Ź"
+"Í­¸ú¤Ë¤Ę¤Ă¤żťţ¤Î¤ß¤Ë¤ł¤ě¤é¤ÎľĄÇ˝¤ňÄ󜥤ˇ¤Ţ¤š;¤ˇ¤Ť¤ˇĄ˘ľŽĘý¤ÎĽˇĽšĽĆĽŕ¤Ç¤Ď¸˝şß "
+"shadow ĽŃĽšĽďĄźĽÉ¤ŹĚľ¸ú¤Ë¤Ę¤Ă¤Ć¤¤¤Ţ¤šĄŁ"
+
+#. Type: boolean
+#. Description
+#: ../templates:4
+#, no-c-format
+msgid ""
+"Most LSB applications will work fine with either setting, but 100% "
+"conformance requires shadow passwords to be enabled."
+msgstr ""
+"¤Ű¤Č¤ó¤É¤Î LSB Ľ˘Ľ×ĽęĽąĄźĽˇĽçĽó¤ĎĚäÂę¤Ę¤ŻĆ°şî¤ˇ¤Ţ¤š¤ŹĄ˘100% ĹŹšç¤š¤ë¤Ë¤Ď "
+"shadow ĽŃĽšĽďĄźĽÉ¤ŹÍ­¸ú¤Ë¤Ę¤Ă¤Ć¤¤¤ëÉŹÍפŹ¤˘¤ę¤Ţ¤šĄŁ"
+
+#. Type: boolean
+#. Description
+#: ../templates:4
+msgid ""
+"Generally speaking, it is considered good practice to enable shadow "
+"passwords. However, there are some situations in which shadow passwords may "
+"not work properly (most notably, if non-root users need to authenticate "
+"passwords against /etc/passwd)."
+msgstr ""
+"°ěČĚĹŞ¤Ë¸Ŕ¤Ă¤ĆĄ˘shadow ĽŃĽšĽďĄźĽÉ¤ňÍ­¸ú¤Ë¤š¤ë¤Î¤ĎÎɤ¤ÁŞÂň¤Ŕ¤ČšÍ¤¨¤é¤ě¤Ć¤¤¤Ţ"
+"¤šĄŁ¤ˇ¤Ť¤ˇ¤Ę¤Ź¤éĄ˘shadow ĽŃĽšĽďĄźĽÉ¤ŹŔľ¤ˇ¤ŻĆ°şî¤ˇ¤Ę¤¤¤č¤Ś¤Ęžěšç¤â¤˘¤ę¤Ţ¤š (ĆĂ"
+"¤Ë root ¤Ç¤Ď¤Ę¤¤ĽćĄźĽś¤Ź /etc/passwd ¤ňťČ¤Ă¤ĆĽŃĽšĽďĄźĽÉǧžÚ¤ň¤š¤ëÉŹÍפŹ¤˘¤ëžě"
+"šç¤Ę¤É)ĄŁ"
+
+#. Type: boolean
+#. Description
+#: ../templates:4
+msgid ""
+"If you answer in the affirmative, the command 'shadowconfig on' will be run "
+"to enable shadow passwords."
+msgstr ""
+"ĄÖ¤Ď¤¤Ą×¤ČĹú¤¨¤ëžěšç¤ĎĄ˘'shadowconfig on' ĽłĽŢĽóĽÉ¤ňźÂšÔ¤ˇ¤Ć shadow ĽŃĽšĽďĄź"
+"ĽÉ¤ňÍ­¸ú¤Ë¤ˇ¤Ć¤Ż¤Ŕ¤ľ¤¤ĄŁ"
diff --git a/debian/po/nl.po b/debian/po/nl.po
new file mode 100644
index 0000000..3ba002f
--- /dev/null
+++ b/debian/po/nl.po
@@ -0,0 +1,50 @@
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Developers do not need to manually edit POT or PO files.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2003-03-30 12:40-0300\n"
+"PO-Revision-Date: 2003-08-10 18:52+0100\n"
+"Last-Translator: Bart Cornelis <cobaco@linux.be>\n"
+"Language-Team: LANGUAGE <debian-l10n-dutch@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Description
+#: ../templates:4
+msgid "Should shadow passwords be enabled?"
+msgstr "Dienen schaduwwachtwoorden geactiveert te worden?"
+
+#. Description
+#: ../templates:4
+msgid "The Linux Standard Base requires that certain features of adduser(8) be available to conforming applications (such as password aging). Debian only provides these features when shadow passwords are enabled; however, your system currently has shadow passwords disabled."
+msgstr "De Linux Standard Base (LSB) vereist dat adduser(8) bepaalde opties beschikbaar maakt (zoals wachtwoord veroudering). Debian maakt deze opties enkel beschikbaar wanneer schaduwwachtwoorden geactiveert zijn, dit is momenteel op uw systeem echter niet het geval."
+
+#. Description
+#: ../templates:4
+#, no-c-format
+msgid "Most LSB applications will work fine with either setting, but 100% conformance requires shadow passwords to be enabled."
+msgstr "Om volledig aan de LSB standaard te voldoen dienen schaduwwachtwoorden geactiveert te zijn, hoewel ook zonder dat de meeste LSB applicaties prima zullen werken."
+
+#. Description
+#: ../templates:4
+msgid "Generally speaking, it is considered good practice to enable shadow passwords. However, there are some situations in which shadow passwords may not work properly (most notably, if non-root users need to authenticate passwords against /etc/passwd)."
+msgstr "Over het algemeen is het goed schaduwwachtwoorden te activeren. Er zijn echter enkele situaties waarin schaduwwachtwoorden niet goed werken (met name, wanneer niet-root gebruikers wachtwoorden dienen te authenticeren met behulp van /etc/passwd)."
+
+#. Description
+#: ../templates:4
+msgid "If you answer in the affirmative, the command 'shadowconfig on' will be run to enable shadow passwords."
+msgstr "Indien u positief antwoord zal ik schaduwwachtwoorden activeren met het commando 'shadowconfig on'."
+
diff --git a/debian/po/pt_BR.po b/debian/po/pt_BR.po
new file mode 100644
index 0000000..38289d7
--- /dev/null
+++ b/debian/po/pt_BR.po
@@ -0,0 +1,75 @@
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Developers do not need to manually edit POT or PO files.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: lsb_1.2-6\n"
+"POT-Creation-Date: 2003-03-30 12:40-0300\n"
+"PO-Revision-Date: 2003-03-30 12:49-0300\n"
+"Last-Translator: André Luís Lopes <andrelop@ig.com.br>\n"
+"Language-Team: Debian-BR Project <debian-l10n-portuguese@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Description
+#: ../templates:4
+msgid "Should shadow passwords be enabled?"
+msgstr "O suporte a senhas shadow deve ser habilitado ?"
+
+#. Description
+#: ../templates:4
+msgid ""
+"The Linux Standard Base requires that certain features of adduser(8) be "
+"available to conforming applications (such as password aging). Debian only "
+"provides these features when shadow passwords are enabled; however, your "
+"system currently has shadow passwords disabled."
+msgstr ""
+"A Linux Standard Base requer que certos recursos do adduser(8) estejam "
+"disponíveis para aplicaçőes conformantes (como expiraçăo de senhas). "
+"O Debian somente oferecerá tais recursos quando senhas shadow estiverem "
+"habilitadas. Porém, seu sistema atualmente năo possui senhas shadow "
+"habilitadas."
+
+#. Description
+#: ../templates:4
+#, no-c-format
+msgid ""
+"Most LSB applications will work fine with either setting, but 100% "
+"conformance requires shadow passwords to be enabled."
+msgstr ""
+"A maioria das aplicaçőes LSB funcionarăo com qualquer uma das "
+"configuraçőes, mas 100% de compatibilidade requer que o suporte a "
+"senhas shadow esteja habilitado."
+
+#. Description
+#: ../templates:4
+msgid ""
+"Generally speaking, it is considered good practice to enable shadow "
+"passwords. However, there are some situations in which shadow passwords may "
+"not work properly (most notably, if non-root users need to authenticate "
+"passwords against /etc/passwd)."
+msgstr ""
+"De modo geral, é considerado uma boa prática habilitar senhas shadow. "
+"Porém, existem algumas situaçőes nas quais senhas shadow podem năo "
+"funcionar de maneira correta (mais notavelmente, caso usuários năo-root "
+"precisem se autenticar no /etc/passwd)."
+
+#. Description
+#: ../templates:4
+msgid ""
+"If you answer in the affirmative, the command 'shadowconfig on' will be run "
+"to enable shadow passwords."
+msgstr ""
+"Caso vocę responda afirmativamente, o comando 'shadowconfig on' será "
+"executado para habilitar senhas shadow."
diff --git a/debian/po/templates.pot b/debian/po/templates.pot
new file mode 100644
index 0000000..b0869ca
--- /dev/null
+++ b/debian/po/templates.pot
@@ -0,0 +1,62 @@
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Developers do not need to manually edit POT or PO files.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2003-03-30 12:40-0300\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Description
+#: ../templates:4
+msgid "Should shadow passwords be enabled?"
+msgstr ""
+
+#. Description
+#: ../templates:4
+msgid ""
+"The Linux Standard Base requires that certain features of adduser(8) be "
+"available to conforming applications (such as password aging). Debian only "
+"provides these features when shadow passwords are enabled; however, your "
+"system currently has shadow passwords disabled."
+msgstr ""
+
+#. Description
+#: ../templates:4
+#, no-c-format
+msgid ""
+"Most LSB applications will work fine with either setting, but 100% "
+"conformance requires shadow passwords to be enabled."
+msgstr ""
+
+#. Description
+#: ../templates:4
+msgid ""
+"Generally speaking, it is considered good practice to enable shadow "
+"passwords. However, there are some situations in which shadow passwords may "
+"not work properly (most notably, if non-root users need to authenticate "
+"passwords against /etc/passwd)."
+msgstr ""
+
+#. Description
+#: ../templates:4
+msgid ""
+"If you answer in the affirmative, the command 'shadowconfig on' will be run "
+"to enable shadow passwords."
+msgstr ""
diff --git a/debian/postinst b/debian/postinst
index ac31180..a3519bf 100755
--- a/debian/postinst
+++ b/debian/postinst
@@ -1,15 +1,56 @@
#!/bin/sh -e
+setup_ldso_symlink () {
+ ARCH=`dpkg --print-installation-architecture`
+ case "$ARCH" in
+ s390)
+ ln -sf ld.so.1 /lib/ld-lsb-s390.so.1
+ ln -sf ld.so.1 /lib/ld-lsb-s390.so.2
+ ;;
+ powerpc)
+ ln -sf ld.so.1 /lib/ld-lsb-ppc32.so.1
+ ln -sf ld.so.1 /lib/ld-lsb-ppc32.so.2
+ ;;
+ i386)
+ ln -sf ld-linux.so.2 /lib/ld-lsb.so.1
+ ln -sf ld-linux.so.2 /lib/ld-lsb.so.2
+ ;;
+ amd64)
+ ln -sf ld-linux.so.2 /lib/ld-lsb.so.1
+ ln -sf ld-linux.so.2 /lib/ld-lsb.so.2
+ ln -sf /lib/ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.2
+ ;;
+ ia64)
+ ln -sf ld-linux-ia64.so.2 /lib/ld-lsb-ia64.so.1
+ ln -sf ld-linux-ia64.so.2 /lib/ld-lsb-ia64.so.2
+ ;;
+ *)
+ echo "ld-lsb-*.so.1 symlink for $ARCH is unknown!"
+ ;;
+ esac
+}
+
PATH=/sbin:/usr/sbin:$PATH
export PATH
. /usr/share/debconf/confmodule
-if [ ! -e /etc/shadow ]; then
- db_get lsb/shadowconfig
- if [ "$RET" = "true" ]; then
- shadowconfig on >&2 || true
- fi
-fi
+case "$1" in
+ configure)
+ if [ ! -e /etc/shadow ]; then
+ db_get lsb/shadowconfig
+ if [ "$RET" = "true" ]; then
+ shadowconfig on >&2 || true
+ fi
+ fi
+ setup_ldso_symlink
+ ;;
+ abort-upgrade|abort-remove|abort-deconfigure)
+ ;;
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
-##DEBHELPER##
+#DEBHELPER#
diff --git a/debian/prerm b/debian/prerm
new file mode 100644
index 0000000..2bcf217
--- /dev/null
+++ b/debian/prerm
@@ -0,0 +1,42 @@
+#!/bin/sh -e
+
+remove_ldso_symlink () {
+ ARCH=`dpkg --print-installation-architecture`
+ case "$ARCH" in
+ s390|ia64)
+ rm -f /lib/ld-lsb-$ARCH.so.[12]
+ ;;
+ powerpc)
+ rm -f /lib/ld-lsb-ppc32.so.[12]
+ ;;
+ i386)
+ rm -f /lib/ld-lsb.so.[12]
+ ;;
+ amd64)
+ rm -f /lib/ld-lsb.so.[12] /lib64/ld-lsb-x86-64.so.2
+ ;;
+ *)
+ echo "ld-lsb-*.so.1 symlink for $ARCH is unknown; not removed."
+ ;;
+ esac
+}
+
+PATH=/sbin:/usr/sbin:$PATH
+export PATH
+
+case "$1" in
+ remove)
+ remove_ldso_symlink
+ rm -f /var/lib/lsb/facilities
+ rm -f /var/lib/lsb/depends
+ ;;
+ failed-upgrade|upgrade|deconfigure)
+ ;;
+ *)
+ echo "prerm called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+
+#DEBHELPER#
diff --git a/debian/rules b/debian/rules
index ff1c00e..6a6d499 100755
--- a/debian/rules
+++ b/debian/rules
@@ -5,13 +5,11 @@
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
-# This is the debhelper compatibility version to use.
-export DH_COMPAT=3
-
# These are used for cross-compiling and for saving the configure script
# from having to guess our platform (since we know it already)
DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
+DEB_BUILD_ARCH ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH)
ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
CFLAGS += -g
@@ -20,6 +18,15 @@ ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
INSTALL_PROGRAM += -s
endif
+# Map Debian architectures to LSB architectures
+lsbarch=${DEB_BUILD_ARCH}
+ifeq (${lsbarch}, i386)
+ lsbarch=ia32
+endif
+ifeq (${lsbarch}, powerpc)
+ lsbarch=ppc32
+endif
+
configure: configure-stamp
configure-stamp:
dh_testdir
@@ -41,7 +48,7 @@ build-stamp: configure-stamp
clean:
dh_testdir
dh_testroot
- rm -f build-stamp configure-stamp *.py[co]
+ rm -f build-stamp configure-stamp *.py[co] debian/lsb*substvars
# Add here commands to clean up after the build process.
-$(MAKE) clean
@@ -56,10 +63,8 @@ install: build
# Add here commands to install the package into debian/lsb.
#$(MAKE) install DESTDIR=$(CURDIR)/debian/lsb
- # IA32 spec:
- ln -s ld-linux.so.2 debian/lsb/lib/ld-lsb.so.1
- cp initdutils.py install_initd remove_initd debian/lsb/usr/lib/lsb
- cp init-functions debian/lsb/lib/lsb
+ cp initdutils.py install_initd remove_initd debian/lsb-core/usr/lib/lsb
+ cp init-functions debian/lsb-core/lib/lsb
# Build architecture-independent files here.
binary-indep: build install
@@ -71,7 +76,7 @@ binary-arch: build install
dh_testroot
dh_installdebconf
dh_installdocs
- dh_installexamples
+ dh_installexamples init-skeleton
dh_installmenu
# dh_installlogrotate
# dh_installemacsen
@@ -83,6 +88,7 @@ binary-arch: build install
dh_installinfo
# dh_undocumented
dh_installchangelogs
+ @[ ${DEB_BUILD_ARCH} = 'amd64' ] && mkdir -p debian/lsb-core/lib64 && echo >> debian/lsb-core.substvars "depends=ia32-libs" || true
dh_link
dh_strip
dh_compress
@@ -91,6 +97,9 @@ binary-arch: build install
dh_installdeb
# dh_perl
dh_shlibdeps
+ @echo >> debian/lsb-core.substvars "provides=lsb-core-${lsbarch}"
+ @echo >> debian/lsb-cxx.substvars "provides=lsb-cxx-${lsbarch}"
+ @echo >> debian/lsb-graphics.substvars "provides=lsb-graphics-${lsbarch}"
dh_gencontrol
dh_md5sums
dh_builddeb
diff --git a/debian/templates b/debian/templates
index afd1e69..43493ec 100644
--- a/debian/templates
+++ b/debian/templates
@@ -1,20 +1,19 @@
Template: lsb/shadowconfig
Type: boolean
Default: true
-Description: Should shadow passwords be enabled?
- The Linux Standard Base requires that certain features of adduser(8)
- be available to conforming applications (such as password aging).
- Debian only provides these features when shadow passwords are
- enabled; however, your system currently has shadow passwords
- disabled.
+_Description: Should shadow passwords be enabled?
+ The Linux Standard Base requires that certain features of adduser(8) be
+ available to conforming applications (such as password aging). Debian only
+ provides these features when shadow passwords are enabled; however, your
+ system currently has shadow passwords disabled.
.
Most LSB applications will work fine with either setting, but 100%
conformance requires shadow passwords to be enabled.
.
Generally speaking, it is considered good practice to enable shadow
- passwords. However, there are some situations in which shadow
- passwords may not work properly (most notably, if non-root users need
- to authenticate passwords against /etc/passwd).
+ passwords. However, there are some situations in which shadow passwords
+ may not work properly (most notably, if non-root users need to
+ authenticate passwords against /etc/passwd).
.
- If you answer in the affirmative, the command 'shadowconfig on' will
- be run to enable shadow passwords.
+ If you answer in the affirmative, the command 'shadowconfig on' will be
+ run to enable shadow passwords.
diff --git a/init-fragment b/init-fragment
deleted file mode 100644
index 65efa70..0000000
--- a/init-fragment
+++ /dev/null
@@ -1,12 +0,0 @@
-### BEGIN INIT INFO
-# X-ZEDV-Note: This should be only installed on Systems in @amd
-# Provides: sshd2
-# Required-Start: $network
-# Required-Stop: $network
-# Default-Start: 3 5
-# Default-Stop: 0 1 2 6
-# Short-Description: Starts the secondary SSHD deamon used for rdist
-# Description: This script runs a second SSH daemon which listens on
-# a different port (1000) and uses an extra config file.
-# This is thought be used for system administration.
-### END INIT INFO
diff --git a/init-functions b/init-functions
index 9dfb946..9e0fdec 100644
--- a/init-functions
+++ b/init-functions
@@ -1,6 +1,6 @@
# /lib/lsb/init-functions for Debian -*- shell-script -*-
#
-#Copyright (c) 2002 Chris Lawrence
+#Copyright (c) 2002-03 Chris Lawrence
#All rights reserved.
#
#Redistribution and use in source and binary forms, with or without
@@ -28,15 +28,17 @@
#SUCH DAMAGE.
start_daemon () {
- local force nice
- set -- `POSIXLY_CORRECT=1 getopt "fn:" $*`
+ local force nice pidfile exec
+ set -- `POSIXLY_CORRECT=1 getopt "fn:p:" $*`
force=0
nice=0
+ pidfile=/dev/null
for i in $*; do
case $i in
-f) force=1; shift;;
-n) nice=$2; shift 2;;
+ -p) pidfile=$2; shift 2;;
--) shift; break;;
esac
done
@@ -45,41 +47,137 @@ start_daemon () {
if [ $force = 1 ]; then
/sbin/start-stop-daemon --start --nicelevel $nice --quiet --startas $exec --pidfile /dev/null --oknodo -- $*
+ elif [ $pidfile ]; then
+ /sbin/start-stop-daemon --start --nicelevel $nice --quiet --exec $exec --oknodo --pidfile "$pidfile" -- $*
else
/sbin/start-stop-daemon --start --nicelevel $nice --quiet --exec $exec --oknodo -- $*
fi
}
-# The definition of "return" in the LSB documentation is ambiguous.
pidofproc () {
- if [ -e /var/run/$1.pid ]; then
- cat /var/run/$1.pid
+ local pidfile line i pids= status
+ set -- `POSIXLY_CORRECT=1 getopt "p:" $*`
+ pidfile=
+
+ for i in $*; do
+ case $i in
+ -p) pidfile=$2; shift 2;;
+ --) shift; break;;
+ esac
+ done
+
+ if [ -z "$pidfile" ]; then
+ pidfile=/var/run/$(basename "$1").pid
+ fi
+
+ if [ -f "$pidfile" ]; then
+ read -d "" line < "$pidfile"
+ for i in $line; do
+ [ -z "${p//[0-9]/}" -a -d "/proc/$i" ] && pids="$i $pids"
+ done
+ if [ -n "$pids" ]; then
+ echo "$pids"
+ return 0
+ else
+ return 2 # program is dead and /var/run pid file exists
+ fi
elif [ -x /bin/pidof ]; then
- /bin/pidof -s $1
+ /bin/pidof -o %PPID $1
+ status="$?"
+ [ "$status" = 1 ] && return 3 # program is not running
+ return 0
else
- echo
+ return 4 # program or service is unknown
fi
- return 0
}
# start-stop-daemon uses the same algorithm as "pidofproc" above.
killproc () {
+ local pidfile sig status
+ set -- `POSIXLY_CORRECT=1 getopt "p:" $*`
+ pidfile=
+
+ for i in $*; do
+ case $i in
+ -p) pidfile=$2; shift 2;;
+ --) shift; break;;
+ esac
+ done
+
+ if [ ! $pidfile ]; then
+ pidfile=/var/run/$(basename "$1").pid
+ fi
+
if [ $2 ]; then
sig=$(echo $2 | sed -e 's/^-\(.*\)/\1/')
sig=$(echo $sig | sed -e 's/^SIG\(.*\)/\1/')
- /sbin/start-stop-daemon --stop --pidfile /var/run/$1.pid --retry 5 --signal $sig --quiet --oknodo
+ /sbin/start-stop-daemon --stop --pidfile "$pidfile" --signal $sig --quiet
+ status="$?"
+ [ "$status" = 1 ] && return 3 # program is not running
+ return 0
else
- /sbin/start-stop-daemon --stop --pidfile /var/run/$1.pid --retry 5 --quiet --oknodo
+ /sbin/start-stop-daemon --stop --pidfile "$pidfile" --retry 5 --quiet --oknodo
+ fi
+}
+
+log_msg() {
+ local esc extd warn done norm stat
+ local rc_done rc_warning rc_failure
+ if test -z "$LINES" -o -z "$COLUMNS" ; then
+ eval `stty size 2>/dev/null | (read L C; \
+ echo LINES=${L:-24} COLUMNS=${C:-80})`
+ fi
+
+ test $LINES -eq 0 && LINES=24
+ test $COLUMNS -eq 0 && COLUMNS=80
+ export LINES COLUMNS
+
+ if test -t 1 -a "$TERM" != "raw" -a "$TERM" != "dumb" && stty size > /dev/null 2>&1 ; then
+ esc=`echo -en "\033"`
+ extd="${esc}[1m"
+ warn="${esc}[1;31m"
+ done="${esc}[1;32m"
+ attn="${esc}[1;33m"
+ norm=`echo -en "${esc}[m\017"`
+ done="${esc}[1;32m"
+ attn="${esc}[1;33m"
+ norm=`echo -en "${esc}[m\017"`
+ stat=`echo -en "\015${esc}[${COLUMNS}C${esc}[10D"`
+
+ rc_done="${stat}${done}done${norm}"
+ rc_warning="${stat}${attn}warning${norm}"
+ rc_failure="${stat}${warn}failed${norm}"
+ else
+ esc=".."
+ norm=
+ warn=
+
+ rc_done="..done"
+ rc_warning="..warning"
+ rc_failed="..failed"
fi
+ case "$1" in
+ done)
+ echo "$2$rc_done"
+ ;;
+ warning)
+ echo "$2$rc_warning"
+ ;;
+ failure)
+ echo "$2$rc_failure"
+ ;;
+ *)
+ echo "$2${stat}${attn}$1${norm}"
+ ;;
+ esac
}
-# Something fancier might be nice. But it meets the spec.
log_success_msg () {
- echo "Success: $1"
+ log_msg "done" "$1"
}
log_failure_msg () {
- echo "Failure: $1"
+ log_msg "failure" "$1"
}
log_warning_msg () {
- echo "Warning: $1"
+ log_msg "warning" "$1"
}
diff --git a/init-skeleton b/init-skeleton
new file mode 100644
index 0000000..b683219
--- /dev/null
+++ b/init-skeleton
@@ -0,0 +1,233 @@
+#!/bin/sh
+#
+# /etc/init.d/FOO
+#
+# Template and example of a LSB conform init script for the service FOO
+# See http://www.linuxbase.org/spec/ for details
+#
+### BEGIN INIT INFO
+# Provides: FOO
+# Required-Start: $syslog $remote_fs
+# Should-Start: $time $portmap
+# Required-Stop: $syslog $remote_fs
+# Should-Stop: $time $portmap
+# Default-Start: 3 5
+# Default-Stop: 0 1 2 6
+# Short-Description: FOO daemon used for ABC
+# Description: The FOO service is used for ZZZ
+# The (long) description can spread multiple lines
+# which start with '#<TAB>' or # followed by at least
+# two spaces.
+# X-UnitedLinux-Default-Enabled: yes
+### END INIT INFO
+#
+# Remarks:
+# - The LSB actually might be interpreted that there is only a single space
+# between the the colon after the keyword and the first argument, but
+# most or all LSB install_initd's support more than one space
+# - Local extensions start with a X-[LANA registered provider or domain]-
+# The X-UnitedLinux-Default-Enabled is one of the few actually used
+# extension (enable service by when installing package, but keep current
+# status when updating).
+#
+# The other keywords are described by the LSB. Notes on the differences
+# between Required-Start and Should-Start (which was introduced by LSB 1.9):
+#
+# a) Required-Start/Required-Stop is used as hard dependencies, i.e. for
+# services which have to be started before this service. For instance
+# needs the 'nfs-kernel-server' the portmap service. Requiring
+# Required-Start: $portmap
+# ensures that the portmapper is started before the nfs server.
+# If a required service is missing, an init script cannot be installed
+# and an init script which is required by another cannot be removed.
+#
+# b) Should-Start/Should-Stop is used for weak dependencies. This ensures
+# that the order of the init scripts is useful. A possible use for
+# 'autofs' is to ask for
+# Should-Start: nis
+# which enables to read maps via NIS. Note that not all LSB install_initd
+# programs support Should-Start (Debian's does) and therefore one should
+# try hard not to rely on its support.
+#
+# The Required-Stop/Should-Stop usually contain the same services as
+# Required-Start/Should-Start do.
+#
+# Besides using the services provided by the Provides section of
+# init script, those predefined facilities are available
+# (while they start with a $ they are no shell variables):
+#
+# a) LSB 1.1 facility names
+# - $local_fs all local filesystems are mounted
+# - $remote_fs all remote filesystems are mounted
+# (note that /usr might be remote)
+# - $syslog system logging is operational
+# - $network low level networking (ethernet card etc.)
+# - $named hostname resolution available
+# - $netdaemons all network daemons are running
+# (Removed in LSB 1.2)
+# b) LSB 1.2 facility names
+# - $time the system time has been set (e.g. NTP)
+# - $portmap daemons providing SunRPC/ONCRPC portmapping service
+# are running
+#
+# The LSB specifies those runlevels, most services use 3 and 5 for
+# Default-Start and 0 1 2 6 for Default-Stop.
+#
+# 0 - halt
+# 1 - single user mode
+# 2 - multiuser with no network services exported
+# 3 - normal/full multiuser
+# 4 - reserved for local use (usually normal/full multiuser)
+# 5 - multiuser with xdm or equivalent
+# 6 - reboot
+#
+# Note on that script names should follow the LSB:
+# http://www.linuxbase.org/spec/gLSB/gLSB/scrptnames.html
+# There is a registry for script names that are reserved for use by
+# distributions and registered script and provider names at
+# http://www.lanana.org/
+
+# Source LSB init functions
+# This provides start_daemon, killproc, pidofproc,
+# log_success_msg, log_failure_msg and log_warning_msg.
+. /lib/lsb/init-functions
+
+# Since init scripts are config files, they might be left after an uninstall
+# Check whether the binary is still present:
+FOO_BIN=/usr/sbin/FOO
+test -x "$FOO_BIN" || {log_failure_msg "$FOO_BIN not installed"; exit 5}
+
+# Check whether a required configuration file is available
+FOO_CONFIG=/etc/FOO.conf
+test -r "$FOO_CONFIG" || {log_failure_msg "$FOO_CONFIG not existing"; exit 6}
+
+# Those LSB defined exit status codes shall be used (except for status)
+# 0 sucess
+# 1 generic or unspecified error (current practice)
+# 2 invalid or excess argument(s)
+# 3 unimplemented feature (for example, "reload")
+# 4 user had insufficient privilege
+# 5 program is not installed
+# 6 program is not configured
+# 7 program is not running
+# 8-199 reserved (8-99 LSB, 100-149 distribution, 150-199 application)
+#
+# Note that those situation shall also be regarded as success:
+# * restarting a service (instead of reloading it)
+# with the "force-reload" argument
+# * running "start" on a service already running
+# * running "stop" on a service already stopped or not running
+# * running "restart" on a service already stopped or not running
+# * running "try-restart" on a service already stopped or not running
+#
+
+case "$1" in
+ start)
+ # Start service with startproc which shall return the
+ # LSB exit status
+ start_daemon "$FOO_BIN" -c "$FOO_CONFIG"
+ STATUS=$?
+ if [ "$STATUS" = 0]
+ then
+ log_success_msg "Starting FOO"
+ else
+ log_failure_msg "Starting FOO"
+ fi
+ exit $STATUS
+ ;;
+ stop)
+ echo -n "Shutting down FOO "
+ # Stop the service with killproc which shall return the
+ # LSB exit status
+ killproc "$FOO_BIN"
+ STATUS=$?
+ if [ "$STATUS" = 0]
+ log_success_msg "Shutting down FOO"
+ exit 0
+ else
+ log_failure_msg "Shutting down FOO"
+ fi
+ exit $STATUS
+ ;;
+ try-restart)
+ # Do a restart only if the service is running
+ # try-restart has been added to the LSB in 1.9
+ # RedHat's similar command is called condrestart.
+ $0 status > /dev/null
+ STATUS=$?
+ if [ "$STATUS" = 0 ]
+ then
+ $0 restart
+ else
+ log_success_msg "Try-Restarting FOO: not running"
+ fi
+ exit 0 # not running is also regarded as success
+ ;;
+ restart)
+ # Restart service (if running) or start service
+ $0 stop
+ $0 start
+ ;;
+ force-reload)
+ # Reload the configuartion. Usually a SIGHUP is used for this
+ # If it doesn't support his signal, restart it (only if running)
+
+ # Supports signalling
+ killproc -HUP "$FOO_BIN"
+ SIGNAL=$?
+ if [ "$SIGNAL" = 0 ]
+ then
+ log_success_msg "Reloading FOO"
+ else
+ log_failure_msg "Reloading FOO"
+ fi
+ exit $STATUS
+
+ # Otherwise
+ #$0 try-restart
+ ;;
+ reload)
+ # Reload configuration file, but don't restart if it is not supported
+
+ # If it supports signaling:
+ killproc -HUP "$FOO_BIN"
+ SIGNAL=$?
+ if [ "$SIGNAL" = 0 ]
+ then
+ log_success_msg "Reloading FOO"
+ else
+ log_failure_msg "Reloading FOO"
+ fi
+ exit $STATUS
+
+ # Otherwise
+ # exit 3
+ ;;
+ status)
+ # Use pidofproc to check the status of the service,
+ # pidofproc returns the exit status code of 0 when it the process is
+ # running.
+
+ # LSB defined exit status codes for status:
+ # 0 program is running or service is OK
+ # 1 program is dead and /var/run pid file exists
+ # 2 program is dead and /var/lock lock file exists
+ # 3 program is not running
+ # 4 program or service status is unknown
+ # 5-199 reserved (5-99 LSB, 100-149 distribution, 150-199 applications)
+
+ checkproc "$FOO_BIN" > /dev/null
+ STATUS=$?
+ if [ "$SIGNAL" = 0 ]
+ then
+ log_success_msg "Checking FOO"
+ else
+ log_warning_msg "Checking FOO: Not running"
+ fi
+ exit $STATUS
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload}"
+ exit 1
+ ;;
+esac
diff --git a/initdutils.py b/initdutils.py
index d37b46b..c7ed1d0 100644
--- a/initdutils.py
+++ b/initdutils.py
@@ -1,47 +1,91 @@
# Support for scanning init scripts for LSB info
-import re, sys, os
+import re, sys, os, cStringIO
-FACILITIES = '/var/lib/lsb/facilities'
+try:
+ assert True
+except:
+ True = 1
+ False = 0
+
+class RFC822Parser(dict):
+ "A dictionary-like object."
+ __linere = re.compile(r'([^:]+):\s*(.*)$')
+
+ def __init__(self, fileob=None, strob=None, startcol=0, basedict=None):
+ if not fileob and not strob:
+ raise ValueError, 'need a file or string'
+ if not basedict:
+ basedict = {}
+
+ super(RFC822Parser, self).__init__(basedict)
+
+ if not fileob:
+ fileob = cStringIO.StringIO(strob)
+
+ key = None
+ for line in fileob:
+ if startcol:
+ line = line[startcol:]
+
+ if not line.strip():
+ continue
+
+ # Continuation line
+ if line[0].isspace():
+ if not key:
+ continue
+ self[key] += '\n' + line.strip()
+ continue
+
+ m = self.__linere.match(line)
+ if not m:
+ # Not a valid RFC822 header
+ continue
+ key, value = m.groups()
+ self[key] = value.strip()
+
+# End of RFC882Parser
+
+LSBLIB = '/var/lib/lsb'
+FACILITIES = os.path.join(LSBLIB, 'facilities')
+DEPENDS = os.path.join(LSBLIB, 'depends')
beginre = re.compile(re.escape('### BEGIN INIT INFO'))
endre = re.compile(re.escape('### END INIT INFO'))
-linere = re.compile(r'\#\s+([^:]+):\s*(.*)')
+#linere = re.compile(r'\#\s+([^:]+):\s*(.*)')
def scan_initfile(initfile):
- headers = {'Description': []}
- scanning = 0
+ headerlines = ''
+ scanning = False
- for line in open(initfile).xreadlines():
+ for line in file(initfile):
line = line.rstrip()
if beginre.match(line):
- scanning = 1
+ scanning = True
continue
elif scanning and endre.match(line):
- scanning = 0
+ scanning = False
continue
elif not scanning:
continue
- if line[0] != '#':
- continue
-
- if line[1:3] == ' ' or line[1] == '\t':
- headers['Description'].append(line[1:].strip())
- continue
-
- match = linere.match(line)
- if not match:
- print >> sys.stderr, "Warning: ignoring invalid init info line"
- print >> sys.stderr, "-> %s" % line
- continue
+ if line.startswith('# '):
+ headerlines += line[2:] + '\n'
+ elif line.startswith('#\t'):
+ headerlines += line[1:] + '\n'
- header, body = match.groups()
- if header == "Description":
- headers[header].append(body.strip())
- elif header in ('Default-Start', 'Default-Stop'):
+ inheaders = RFC822Parser(strob=headerlines)
+ headers = {}
+ for header, body in inheaders.iteritems():
+ # Ignore empty headers
+ if not body.strip():
+ break
+
+ if header in ('Default-Start', 'Default-Stop'):
headers[header] = map(int, body.split())
- elif header in ('Required-Start', 'Required-Stop', 'Provides'):
+ elif header in ('Required-Start', 'Required-Stop', 'Provides',
+ 'Should-Start', 'Should-Stop'):
headers[header] = body.split()
else:
headers[header] = body
@@ -56,9 +100,10 @@ def save_facilities(facilities):
pass
return
- fh = open(FACILITIES, 'w')
+ fh = file(FACILITIES, 'w')
for facility, entries in facilities.items():
- if facility[0] == '$': continue
+ # Ignore system facilities
+ if facility.startswith('$'): continue
for (scriptname, pri) in entries.items():
start, stop = pri
print >> fh, "%(scriptname)s %(facility)s %(start)d %(stop)d" % locals()
@@ -76,3 +121,28 @@ def load_facilities():
print >> sys.stderr, 'Invalid facility line', line
return facilities
+
+def load_depends():
+ depends = {}
+
+ if os.path.exists(DEPENDS):
+ independs = RFC822Parser(fileob=file(DEPENDS))
+ for initfile, facilities in independs.iteritems():
+ depends[initfile] = facilities.split()
+ return depends
+
+def save_depends(depends):
+ if not depends:
+ try:
+ os.unlink(DEPENDS)
+ except OSError:
+ pass
+ return
+
+ fh = file(DEPENDS, 'w')
+ for initfile, facilities in depends.iteritems():
+ print >> fh, '%s: %s' % (initfile, ' '.join(facilities))
+ fh.close()
+
+if __name__ == '__main__':
+ print scan_initfile('init-fragment')
diff --git a/install_initd b/install_initd
index 888f1a1..4ec8452 100755
--- a/install_initd
+++ b/install_initd
@@ -4,6 +4,13 @@ import sys, re, os, initdutils
if len(sys.argv) > 1:
initfile = sys.argv[1]
+ # If the absolute path isn't specified, assume it's relative to
+ # cwd; if that doesn't exist, try /etc/init.d
+ ap = os.path.abspath(initfile)
+ if os.path.exists(ap):
+ initfile = ap
+ else:
+ initfile = os.path.join('/etc/init.d', initfile)
else:
print >> sys.stderr, 'Usage: %s /etc/init.d/<init-script>' % sys.argv[0]
sys.exit(1)
@@ -13,15 +20,18 @@ startpri = stoppri = 20
defstart = [2, 3, 4, 5]
defstop = [0, 1, 6]
-# Priorities of these facilities in Debian
+# Estimated priorities of these facilities in Debian
os_facilities = {
"$local_fs" : {'lsb' : (0, 100)},
"$network" : {'lsb' : (10, 50)},
- "$remote_fs" : {'lsb ': (19, 20)},
+ "$remote_fs" : {'lsb': (19, 20)},
"$named" : {'lsb': (19, 19)},
"$syslog" : {'lsb' : (10, 89)},
- # No longer present in gLSB 1.2; dropping
- #"$netdaemons" : {'lsb': (80, 19)},
+ # No longer present in gLSB 1.2; however, required for gLSB 1.1
+ # compat. Note that these are looser than $portmap and $time;
+ # anything specifying $netdaemons will be run later, which may not
+ # be what you want...
+ "$netdaemons" : {'lsb': (80, 19)},
# gLSB 1.2
"$portmap" : {'lsb' : (19, 34)},
"$time" : {'lsb' : (24, 21)},
@@ -30,34 +40,67 @@ os_facilities = {
facilities = initdutils.load_facilities()
facilities.update(os_facilities)
+depends = initdutils.load_depends()
+depends[initfile] = []
+
headers = initdutils.scan_initfile(initfile)
reqstart = headers.get('Required-Start', [])
-if reqstart:
+shouldstart = headers.get('Should-Start', [])
+if reqstart or shouldstart:
startpri = 5
for facility in reqstart:
- if not facilities.has_key(facility):
- print >> sys.stderr, 'Missing expected start facility', facility
+ if facility not in facilities:
+ print >> sys.stderr, 'Missing required start facility', facility
+ sys.exit(1)
else:
- for script, pri in facilities[facility].items():
+ for script, pri in facilities[facility].iteritems():
+ if script != initfile:
+ start, stop = pri
+ startpri = max(startpri, start+1)
+ if facility not in depends[initfile]:
+ depends[initfile].append(facility)
+
+ for facility in shouldstart:
+ if facility not in facilities:
+ print >> sys.stderr, 'Missing should-start facility', facility, '(ignored)'
+ else:
+ for script, pri in facilities[facility].iteritems():
if script != initfile:
start, stop = pri
startpri = max(startpri, start+1)
startpri = min(max(startpri, 1), 99)
reqstop = headers.get('Required-Stop', [])
-if reqstop:
+shouldstop = headers.get('Should-Stop', [])
+if reqstop or shouldstop:
stoppri = 95
for facility in reqstop:
- if not facilities.has_key(facility):
- print >> sys.stderr, 'Missing expected stop facility', facility
+ if facility not in facilities:
+ print >> sys.stderr, 'Missing required stop facility', facility
+ sys.exit(1)
else:
- for script, pri in facilities[facility].items():
+ for script, pri in facilities[facility].iteritems():
if script != initfile:
start, stop = pri
stoppri = min(stoppri, stop-1)
+ if facility not in depends[initfile]:
+ depends[initfile].append(facility)
+
+ for facility in shouldstop:
+ if facility not in facilities:
+ print >> sys.stderr, 'Missing should-stop facility', facility, '(ignored)'
+ else:
+ for script, pri in facilities[facility].iteritems():
+ if script != initfile:
+ start, stop = pri
+ stoppri = min(stoppri, stop-1)
+
stoppri = min(max(stoppri, 1), 99)
+if depends[initfile]:
+ initdutils.save_depends(depends)
+
provides = headers.get('Provides', [])
if provides:
for facility in provides:
diff --git a/lsb.8 b/lsb.8
index 89b5f9f..8aee4b9 100644
--- a/lsb.8
+++ b/lsb.8
@@ -27,8 +27,8 @@ third-party packages. The goal of the LSB is to make it easy to
create binary packages that will run on any Linux distribution. For
more information on the standard, please see the LSB web site.
.SH SEE ALSO
-.BR /usr/share/doc/lsb/README.Debian
-.BR /usr/share/doc/lsb/html/
+.BR /usr/share/doc/lsb-core/README.Debian
+.BR /usr/share/doc/lsb-core/html/
.BR http://www.linuxbase.org/
.SH AUTHOR
This manual page was written by Chris Lawrence <lawrencc@debian.org>
diff --git a/remove_initd b/remove_initd
index c7dc827..0322c7f 100755
--- a/remove_initd
+++ b/remove_initd
@@ -4,6 +4,13 @@ import sys, re, os, initdutils
if len(sys.argv) > 1:
initfile = sys.argv[1]
+ # If the absolute path isn't specified, assume it's relative to
+ # cwd; if that doesn't exist, try /etc/init.d
+ ap = os.path.abspath(initfile)
+ if os.path.exists(ap):
+ initfile = ap
+ else:
+ initfile = os.path.join('/etc/init.d', initfile)
else:
print >> sys.stderr, 'Usage: %s /etc/init.d/<init-script>' % sys.argv[0]
sys.exit(1)
@@ -13,15 +20,29 @@ headers = initdutils.scan_initfile(initfile)
provides = headers.get('Provides')
if provides:
facilities = initdutils.load_facilities()
+ depends = initdutils.load_depends()
for facility in provides:
- if facilities.has_key(facility):
+ if facility in facilities:
entries = {}
for entry in facilities[facility].items():
if entry[0] != initfile:
entries[entry[0]] = entry[1]
facilities[facility] = entries
+ for (initscript, needed) in depends.iteritems():
+ for facility in needed:
+ if facility[0] == "$":
+ continue
+ if not facilities.get(facility) and facility in provides:
+ print >> sys.stderr, 'Unable to remove %s: %s needs %s\n' % (
+ initfile, initscript, facility)
+ sys.exit(1)
+
+ if initfile in depends:
+ del depends[initfile]
+ initdutils.save_depends(depends)
+
initdutils.save_facilities(facilities)
initfile = initfile.replace('/etc/init.d/', '')