From 5205d0a50465cf422f1040d9395d5ea83dbfde5f Mon Sep 17 00:00:00 2001
From: Simon McVittie <smcv@debian.org>
Date: Thu, 14 Jun 2018 11:43:04 +0100
Subject: [PATCH 3/3] Update to FHS v3.0

Notable changes that this causes:

* A GNU-style /usr/libexec is now allowed.

Notable non-changes:

* /usr/games, /usr/share/games and /usr/lib/games were optional in
  FHS 2.3, and are still optional. It is up to us whether we want
  to keep using those directories.

Drop our special exception for /run, and replace it with a requirement
that /var/run and /var/lock are symlinks to /run and /run/lock
respectively. The FHS does not mandate that these directories are
symlinked or bind-mounted (although I think it should) and some
misguided distributions make /run and /var/run non-equivalent, but they
have always been equivalent on Debian.

Drop our special exception for /sys, which is now standardized in the
FHS.

Relax the requirement to create /usr/local/share/color to a
recommendation to avoid making 6 packages immediately noncompliant.

Add a special exception for /usr/bin/mh/ for now, restoring the FHS
2.3 situation (dropping this might be a good idea, but should be
disussed with the nmh and mailutils-mh maintainers if desired).

Signed-off-by: Simon McVittie <smcv@debian.org>
Closes: #787816
---
 policy/ch-opersys.rst | 33 +++++++++++++--------------------
 1 file changed, 13 insertions(+), 20 deletions(-)

diff --git a/policy/ch-opersys.rst b/policy/ch-opersys.rst
index f9f878f..cded697 100644
--- a/policy/ch-opersys.rst
+++ b/policy/ch-opersys.rst
@@ -12,7 +12,7 @@ File System Structure
 ~~~~~~~~~~~~~~~~~~~~~
 
 The location of all files and directories must comply with the
-Filesystem Hierarchy Standard (FHS), version 2.3, with the exceptions
+Filesystem Hierarchy Standard (FHS), version 3.0, with the exceptions
 noted below, and except where doing so would violate other terms of
 Debian Policy. The following exceptions to the FHS apply:
 
@@ -34,9 +34,8 @@ Debian Policy. The following exceptions to the FHS apply:
     is recommended the configuration files not start with the '.'
     character.
 
-3.  The requirement for amd64 to use ``/lib64`` for 64 bit binaries is
-    removed.  Only the dynamic linker and libc are allowed to use this
-    directory.
+3.  Only the dynamic linker and libc are allowed to install files
+    in ``/lib64``.
 
 4.  The requirement for object files, internal binaries, and libraries,
     including ``libc.so.*``, to be located directly under ``/lib{,32}``
@@ -76,20 +75,13 @@ Debian Policy. The following exceptions to the FHS apply:
     ``/etc``, or at least are symlinked there, is relaxed to a
     recommendation.
 
-8.  The additional directory ``/run`` in the root file system is
-    allowed. ``/run`` replaces ``/var/run``, and the subdirectory
-    ``/run/lock`` replaces ``/var/lock``, with the ``/var`` directories
-    replaced by symlinks for backwards compatibility. ``/run`` and
-    ``/run/lock`` must follow all of the requirements in the FHS for
-    ``/var/run`` and ``/var/lock``, respectively, such as file naming
-    conventions, file format requirements, or the requirement that files
-    be cleared during the boot process. Files and directories residing
-    in ``/run`` should be stored on a temporary file system.
+8.  ``/var/run`` is required to be a symbolic link to ``/run``,
+    and ``/var/lock`` is required to be a symbolic link to ``/run/lock``.
 
-9.  The ``/sys`` directory in the root filesystem is additionally
-    allowed.  [#]_
+9.  The ``/var/www`` directory is additionally allowed.
 
-10. The ``/var/www`` directory is additionally allowed.
+10. The requirement for ``/usr/local/share/color`` to exist if
+    ``/usr/share/color`` exists is relaxed to a recommendation.
 
 11. The requirement for ``/usr/local/libqual`` to exist if ``/libqual``
     or ``/usr/libqual`` exists (where ``libqual`` is a variant of
@@ -98,6 +90,11 @@ Debian Policy. The following exceptions to the FHS apply:
 12. On GNU/Hurd systems, the following additional directories are
     allowed in the root filesystem: ``/hurd`` and ``/servers``.  [#]_
 
+13. As an exception to the requirement for there to be no subdirectories
+    in ``/usr/bin``, the ``mh`` mail-handling suite may create
+    ``/usr/bin/mh/``, as was allowed in FHS version 2.3. Other
+    subdirectories are not allowed.
+
 The version of this document referred here can be found in the
 ``debian-policy`` package or on `FHS (Debian
 copy) <https://www.debian.org/doc/packaging-manuals/fhs/>`_ alongside
@@ -1028,10 +1025,6 @@ Debian, so this section has been removed.
    This is necessary for architecture-dependent headers file to coexist
    in a ``multiarch`` setup.
 
-.. [#]
-   This directory is used as mount point to mount virtual filesystems to
-   get access to kernel information.
-
 .. [#]
    These directories are used to store translators and as a set of
    standard names for mount points, respectively.
-- 
2.18.0

