-
--- 11.1.0/debian/lsb-invalid-mta.lintian-overrides 1970-01-01 00:00:00.000000000 +0000
+++ 11.1.0ubuntu2/debian/lsb-invalid-mta.lintian-overrides 2019-04-02 19:17:37.000000000 +0000
@@ -0,0 +1,2 @@
+# Dummy sendmail needs no manpage
+binary-without-manpage usr/sbin/sendmail
-
--- 11.1.0/debian/lsb-security.lintian-overrides 1970-01-01 00:00:00.000000000 +0000
+++ 11.1.0ubuntu2/debian/lsb-security.lintian-overrides 2019-04-02 19:17:37.000000000 +0000
@@ -0,0 +1,2 @@
+# LSB packages are empty on purpose
+empty-binary-package
-
--- 11.1.0/debian/lsb-cxx.substvars 1970-01-01 00:00:00.000000000 +0000
+++ 11.1.0ubuntu2/debian/lsb-cxx.substvars 2019-04-02 19:17:37.000000000 +0000
@@ -0,0 +1,4 @@
+provides=lsb-cxx-amd64
+provides=lsb-cxx-amd64
+provides=lsb-cxx-amd64
+provides=lsb-cxx-amd64
-
--- 11.1.0/debian/lsb-base.NEWS 2019-03-09 18:30:52.000000000 +0000
+++ 11.1.0ubuntu2/debian/lsb-base.NEWS 2019-08-25 21:11:20.000000000 +0000
@@ -1,8 +1,9 @@
lsb (9.20150826) unstable; urgency=low
This update drops all lsb-* compatibility packages, and is therefore an
- abandon of the pursuit of LSB compatibility for Debian. Only lsb-release and
- lsb-base are kept as they continue to be used throughout the archive.
+ abandon of the pursuit of LSB compatibility for Debian. Only lsb-release,
+ lsb-base, and lsb-printing are kept as they continue to be used throughout
+ the archive.
-- Didier Raboud <odyx@debian.org> Wed, 26 Aug 2015 12:00:00 +0200
-
--- 11.1.0/debian/lsb-graphics.substvars 1970-01-01 00:00:00.000000000 +0000
+++ 11.1.0ubuntu2/debian/lsb-graphics.substvars 2019-04-02 19:17:37.000000000 +0000
@@ -0,0 +1,4 @@
+provides=lsb-graphics-amd64
+provides=lsb-graphics-amd64
+provides=lsb-graphics-amd64
+provides=lsb-graphics-amd64
-
--- 11.1.0/debian/lsb-multimedia.substvars 1970-01-01 00:00:00.000000000 +0000
+++ 11.1.0ubuntu2/debian/lsb-multimedia.substvars 2019-04-02 19:17:37.000000000 +0000
@@ -0,0 +1,4 @@
+provides=lsb-multimedia-amd64
+provides=lsb-multimedia-amd64
+provides=lsb-multimedia-amd64
+provides=lsb-multimedia-amd64
-
--- 11.1.0/debian/lsb-printing.lintian-overrides 1970-01-01 00:00:00.000000000 +0000
+++ 11.1.0ubuntu2/debian/lsb-printing.lintian-overrides 2019-04-02 19:17:37.000000000 +0000
@@ -0,0 +1,2 @@
+# LSB packages are empty on purpose
+empty-binary-package
-
--- 11.1.0/debian/control 2019-08-13 18:17:37.000000000 +0000
+++ 11.1.0ubuntu2/debian/control 2019-12-23 17:14:09.000000000 +0000
@@ -1,7 +1,8 @@
Source: lsb
Section: misc
Priority: optional
-Maintainer: Debian sysvinit maintainers <debian-init-diversity@chiark.greenend.org.uk>
+Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
+XSBC-Original-Maintainer: Debian sysvinit maintainers <debian-init-diversity@chiark.greenend.org.uk>
Uploaders: Dmitry Bogatov <KAction@debian.org>
Build-Depends:
po-debconf (>= 0.5.0),
@@ -16,6 +17,139 @@ Homepage: https://wiki.linuxfoundation.o
Vcs-Browser: https://salsa.debian.org/debian/lsb
Vcs-Git: https://salsa.debian.org/debian/lsb.git
+Package: lsb-core
+Architecture: amd64 armhf arm64 ppc64el s390x
+Multi-Arch: foreign
+Depends: lsb-release (>= ${source:Version}),
+ ${glibc},
+ libz1,
+ libncurses5,
+ libpam0g,
+ lsb-invalid-mta (>= ${source:Version}) | mail-transport-agent,
+ at,
+ bc,
+ binutils,
+ bsdmainutils,
+ bsdutils,
+ cpio,
+ cron | cron-daemon,
+ ed,
+ file,
+ libc6-dev | libc-dev,
+ locales,
+ cups-bsd | lpr,
+ lprng | cups-client,
+ m4,
+ mailx | mailutils,
+ make,
+ man-db,
+ mawk | gawk,
+ ncurses-term,
+ passwd,
+ patch,
+ pax,
+ procps,
+ psmisc,
+ rsync,
+ alien (>= 8.36),
+ python3,
+ ${python3:Depends},
+ ${misc:Depends},
+ ${depends},
+ lsb-base (>= ${source:Version}),
+ lsb-security (>= ${source:Version}),
+ time
+Provides: lsb-core-noarch, ${provides}
+Description: Linux Standard Base 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 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 Debian fully complies
+ with the Linux Standard Base, and should not be construed as a
+ statement that Debian is LSB-compliant.
+
+Package: lsb-printing
+Architecture: amd64 armhf arm64 ppc64el s390x
+Depends: lsb-core (>= ${source:Version}),
+ libcups2,
+ libcupsimage2,
+ foomatic-filters,
+ ghostscript,
+ cups-filters (>= 1.0.36) | ghostscript-cups,
+ ${misc:Depends}
+Provides: lsb-printing-noarch, ${provides}
+Description: Linux Standard Base Printing 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 Linux Standard Base
+ Printing 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 Debian fully complies
+ with the Linux Standard Base, and should not be construed as a
+ statement that Debian is LSB-compliant.
+
+Package: lsb-security
+Architecture: any
+Depends: libnss3,
+ libnspr4,
+ ${misc:Depends}
+Recommends: lsb-core (>= ${source:Version}),
+Provides: lsb-security-noarch,
+ ${provides}
+Description: Linux Standard Base Security 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 Linux Standard Base Security
+ 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 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-core (>= ${source:Version}),
+ lsb-printing (>= ${source:Version}),
+ ${misc:Depends}, libjpeg62
+Description: Linux Standard Base 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 only the printing and core
+ modules of the Linux Standard Base for Ubuntu. Recent versions of Ubuntu
+ do not implement the full LSB interfaces; this package is provided only for
+ compatibility with third-party printer driver packages which depend on the
+ lsb package.
+ .
+ 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 Ubuntu fully complies with the Linux Standard Base,
+ and should not be construed as a statement that Ubuntu is LSB-compliant.
+
Package: lsb-base
Architecture: all
Multi-Arch: foreign
@@ -50,4 +184,32 @@ Description: Linux Standard Base version
.
While it is intended for use by LSB packages, this command may also
be useful for programmatically distinguishing between a pure Debian
- installation and derived distributions.
\ No newline at end of file
+ installation and derived distributions.
+
+Package: lsb-invalid-mta
+Architecture: all
+Depends: ${misc:Depends}
+Suggests: lsb
+Provides: mail-transport-agent
+Conflicts: mail-transport-agent
+Description: Linux Standard Base sendmail dummy
+ 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 contains nothing else than a fake /usr/sbin/sendmail
+ command to fulfill the LSB's requirement of providing this command without
+ requiring an MTA to get installed, which once introduces a daemon which
+ can cause security problems and second, users get asked questions about
+ how they want their MTA configured when in reality they simply wanted to
+ install a desktop application or a printer driver, but the dependency on
+ LSB compliance pulls in an MTA with the installation.
+ .
+ The LSB requirement on /usr/sbin/sendmail comes from old times where Linux
+ and Unix machines had all fixed IPs and did server tasks in data centers.
+ Today's typical desktop Linux machines do not do local e-mail any more as
+ users use external e-mail services.
+ .
+ The /usr/sbin/sendmail always exits with exit status -1 (255) and sends a
+ warning message to stderr, so that if a program actually tries to send e-mail
+ via the sendmail command the user gets note.
-
--- 11.1.0/lsb_release.py 2019-03-09 18:30:52.000000000 +0000
+++ 11.1.0ubuntu2/lsb_release.py 2019-08-25 21:11:20.000000000 +0000
@@ -68,6 +68,11 @@ def lookup_codename(release, unknown=Non
shortrelease = '%s' % m.group(1)
return RELEASE_CODENAME_LOOKUP.get(shortrelease, unknown)
+# LSB compliance packages... may grow eventually
+PACKAGES = 'lsb-core lsb-cxx lsb-graphics lsb-desktop lsb-languages lsb-multimedia lsb-printing lsb-security'
+
+modnamere = re.compile(r'lsb-(?P<module>[a-z0-9]+)-(?P<arch>[^ ]+)(?: \(= (?P<version>[0-9.]+)\))?')
+
def valid_lsb_versions(version, module):
# If a module is ever released that only appears in >= version, deal
# with that here
@@ -129,7 +134,44 @@ except NameError:
# This is Debian-specific at present
def check_modules_installed():
- return []
+ # Find which LSB modules are installed on this system
+ C_env = os.environ.copy(); C_env['LC_ALL'] = 'C'
+ output = subprocess.Popen(['dpkg-query','-f',"${Version} ${Provides}\n",'-W'] + PACKAGES.split(),
+ env=C_env,
+ stdout=subprocess.PIPE,
+ stderr=subprocess.PIPE,
+ close_fds=True).communicate()[0].decode('utf-8')
+
+ if not output:
+ return []
+
+ modules = set()
+ for line in output.split(os.linesep):
+ if not line:
+ break
+ version, provides = line.split(' ', 1)
+ # Debian package versions can be 3.2-$REV, 3.2+$REV or 3.2~$REV.
+ version = re.split('[-+~]', version, 1)[0]
+ for pkg in provides.split(','):
+ mob = modnamere.search(pkg)
+ if not mob:
+ continue
+
+ mgroups = mob.groupdict()
+ # If no versioned provides...
+ if mgroups.get('version'):
+ module = '%(module)s-%(version)s-%(arch)s' % mgroups
+ modules.add(module)
+ else:
+ module = mgroups['module']
+ for v in valid_lsb_versions(version, module):
+ mgroups['version'] = v
+ module = '%(module)s-%(version)s-%(arch)s' % mgroups
+ modules.add(module)
+
+ modules = list(modules)
+ modules.sort()
+ return modules
longnames = {'v' : 'version', 'o': 'origin', 'a': 'suite',
'c' : 'component', 'l': 'label'}
-
--- 11.1.0/debian/lsb-core.postinst 1970-01-01 00:00:00.000000000 +0000
+++ 11.1.0ubuntu2/debian/lsb-core.postinst 2019-04-02 19:17:37.000000000 +0000
@@ -0,0 +1,63 @@
+#!/bin/sh
+
+set -e
+
+setup_ldso_symlink () {
+ ARCH=$DPKG_MAINTSCRIPT_ARCH
+ if [ -z "$ARCH" ]; then
+ ARCH=$(dpkg --print-architecture)
+ fi
+ case "$ARCH" in
+ s390|ppc64|sparc|sparc64|alpha|hppa|m68k|mipsel)
+ ln -sf ld.so.1 /lib/ld-lsb-$ARCH.so.1
+ ln -sf ld.so.1 /lib/ld-lsb-$ARCH.so.2
+ ln -sf ld.so.1 /lib/ld-lsb-$ARCH.so.3
+ ;;
+ powerpc)
+ ln -sf ld.so.1 /lib/ld-lsb-ppc32.so.1
+ ln -sf ld.so.1 /lib/ld-lsb-ppc32.so.2
+ ln -sf ld.so.1 /lib/ld-lsb-ppc32.so.3
+ ;;
+ i386)
+ ln -sf ld-linux.so.2 /lib/ld-lsb.so.1
+ ln -sf ld-linux.so.2 /lib/ld-lsb.so.2
+ ln -sf ld-linux.so.2 /lib/ld-lsb.so.3
+ ;;
+ 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 ld-linux.so.2 /lib/ld-lsb.so.3
+ ln -sf ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.2
+ ln -sf ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.3
+ ;;
+ 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
+ ln -sf ld-linux-ia64.so.2 /lib/ld-lsb-ia64.so.3
+ ;;
+ *)
+ echo "ld-lsb-*.so.1 symlink for $ARCH is unknown!"
+ ;;
+ esac
+}
+
+PATH=/sbin:/usr/sbin:$PATH
+export PATH
+
+case "$1" in
+ configure)
+ if dpkg --compare-versions "$2" lt "3.2+Debian30" ; then
+ [ -L /lib/ld-lsb-x86-64.so.2 ] && rm /lib/ld-lsb-x86-64.so.2 || true
+ [ -L /lib/ld-lsb-x86-64.so.3 ] && rm /lib/ld-lsb-x86-64.so.3 || true
+ fi
+ setup_ldso_symlink
+ ;;
+ abort-upgrade|abort-remove|abort-deconfigure)
+ ;;
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+#DEBHELPER#
-
--- 11.1.0/debian/lsb-core.install 1970-01-01 00:00:00.000000000 +0000
+++ 11.1.0ubuntu2/debian/lsb-core.install 2019-04-02 19:17:37.000000000 +0000
@@ -0,0 +1,4 @@
+initdutils.py /usr/lib/lsb
+install_initd /usr/lib/lsb
+remove_initd /usr/lib/lsb
+lsbinstall /usr/lib/lsb
-
--- 11.1.0/debian/lsb-invalid-mta.links 1970-01-01 00:00:00.000000000 +0000
+++ 11.1.0ubuntu2/debian/lsb-invalid-mta.links 2019-04-02 19:17:37.000000000 +0000
@@ -0,0 +1 @@
+usr/sbin/sendmail usr/lib/sendmail
-
--- 11.1.0/debian/README.Debian 2019-03-09 18:30:51.000000000 +0000
+++ 11.1.0ubuntu2/debian/README.Debian 2019-08-25 21:11:20.000000000 +0000
@@ -1,12 +1,36 @@
-lsb for Debian
+lsb for Ubuntu
--------------
-This package used to provide the Linux Standard Base on Debian systems.
-The LSB is a specification for allowing the same binary package to be used
-on multiple distributions.
+This package provides the Linux Standard Base on Ubuntu systems. The
+LSB is a specification for allowing the same binary package to be used
+on multiple distributions.
-Since version 9.20150826, this package stopped providing the compatibility
-LSB packages and only provides two otherwise important packages:
+INSTALLING LSB PACKAGES
+
+The "alien" package supports LSB packages on Ubuntu. For example, to
+install an LSB package "lsb-mozilla-1.2-1_i386.rpm", type (as root):
+
+alien -i lsb-mozilla-1.2-1_i386.rpm
+
+Ideally, the package should be converted to an Ubuntu package and then
+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 Ubuntu is currently divided into two
+packages:
+
+* The "lsb-core" package depends on the Ubuntu packages that are
+ required to comply with the LSB-Core 4.1 specification. It also
+ includes some subroutines that are used by LSB-compliant applications
+ when they are being installed or removed.
+
+* The "lsb-printing" package depends on the CUPS libraries (libcups2
+ and libcupsimage2), foomatic-filters, and Ghostscript.
+
+Other modules of the LSB implementation are no longer available in Ubuntu.
* The "lsb-base" package includes a number of functions used by init.d
scripts in some LSB packages.
@@ -16,3 +40,8 @@ LSB packages and only provides two other
* The "lsb-release" package includes the lsb_release command, which provides
information about the installed LSB modules and the underlying distribution.
+
+The LSB module 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.
-
--- 11.1.0/debian/lsb-core.lintian-overrides 1970-01-01 00:00:00.000000000 +0000
+++ 11.1.0ubuntu2/debian/lsb-core.lintian-overrides 2019-04-02 19:17:37.000000000 +0000
@@ -0,0 +1,2 @@
+# The purpose of LSB is to ensure that those packages are present. Being explicit cannot hurt.
+depends-on-essential-package-without-using-version depends: bsdutils
-
--- 11.1.0/debian/lsb.lintian-overrides 1970-01-01 00:00:00.000000000 +0000
+++ 11.1.0ubuntu2/debian/lsb.lintian-overrides 2019-04-02 19:17:37.000000000 +0000
@@ -0,0 +1,2 @@
+# LSB packages are empty on purpose
+empty-binary-package
-
--- 11.1.0/debian/lsb-desktop.substvars 1970-01-01 00:00:00.000000000 +0000
+++ 11.1.0ubuntu2/debian/lsb-desktop.substvars 2019-04-02 19:17:37.000000000 +0000
@@ -0,0 +1,4 @@
+provides=lsb-qt4-amd64, lsb-desktop-amd64
+provides=lsb-qt4-amd64, lsb-desktop-amd64
+provides=lsb-qt4-amd64, lsb-desktop-amd64
+provides=lsb-qt4-amd64, lsb-desktop-amd64
-
--- 11.1.0/debian/lsb-languages.substvars 1970-01-01 00:00:00.000000000 +0000
+++ 11.1.0ubuntu2/debian/lsb-languages.substvars 2019-04-02 19:17:37.000000000 +0000
@@ -0,0 +1,4 @@
+provides=lsb-languages-amd64
+provides=lsb-languages-amd64
+provides=lsb-languages-amd64
+provides=lsb-languages-amd64
-
--- 11.1.0/debian/lsb-invalid-mta.install 1970-01-01 00:00:00.000000000 +0000
+++ 11.1.0ubuntu2/debian/lsb-invalid-mta.install 2019-04-02 19:17:37.000000000 +0000
@@ -0,0 +1 @@
+sendmail /usr/sbin/
-
--- 11.1.0/debian/lsb-core.manpages 1970-01-01 00:00:00.000000000 +0000
+++ 11.1.0ubuntu2/debian/lsb-core.manpages 2019-04-02 19:17:37.000000000 +0000
@@ -0,0 +1 @@
+lsb.8
-
--- 11.1.0/debian/lsb-core.prerm 1970-01-01 00:00:00.000000000 +0000
+++ 11.1.0ubuntu2/debian/lsb-core.prerm 2019-04-02 19:17:37.000000000 +0000
@@ -0,0 +1,47 @@
+#!/bin/sh
+
+set -e
+
+remove_ldso_symlink () {
+ ARCH=$DPKG_MAINTSCRIPT_ARCH
+ if [ -z "$ARCH" ]; then
+ ARCH=$(dpkg --print-architecture)
+ fi
+ case "$ARCH" in
+ s390|ia64|ppc64|sparc|sparc64|alpha|hppa|m68k|mipsel)
+ rm -f /lib/ld-lsb-$ARCH.so.[123]
+ ;;
+ powerpc)
+ rm -f /lib/ld-lsb-ppc32.so.[123]
+ ;;
+ i386)
+ rm -f /lib/ld-lsb.so.[123]
+ ;;
+ amd64)
+ rm -f /lib/ld-lsb.so.[123] /lib64/ld-lsb-x86-64.so.[23]
+ ;;
+ *)
+ 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#
-
--- 11.1.0/debian/lsb-core.dirs 1970-01-01 00:00:00.000000000 +0000
+++ 11.1.0ubuntu2/debian/lsb-core.dirs 2019-04-02 19:17:37.000000000 +0000
@@ -0,0 +1,3 @@
+usr/lib/lsb
+var/lib/lsb
+etc/profile.d