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

Bug#640263: debian-policy: Clarify policy section 9.9 - Environment variables



Russ Allbery <rra@debian.org> writes:

> Looking at this section, there are several issues.  One is the issue
> addressed above, and I like Jonathan's wording for that.  Another is the
> one Colin mentioned earlier: this only applies to programs installed in
> the system path.  (I considered saying programs intended to be directly
> invoked by users, but I can imagine pointless arguments about /usr/sbin
> programs, so let's just go with that.)  A third issue is that parts of
> that section are now out of date, since /etc/profile.d exists (but still
> shouldn't be used for this purpose).

> I propose the attached patch to address all of those issues.  Seconds or
> further discussion?

Hi folks,

Everyone seemed generally happy with this text, but it never clearly got
enough seconds to apply.  Here's an updated patch so that we can take
another run at getting enough seconds and getting it merged.

diff --git a/policy.xml b/policy.xml
index 7ba5fc0..ace6a3b 100644
--- a/policy.xml
+++ b/policy.xml
@@ -9352,11 +9352,14 @@ Reloading <replaceable>description</replaceable> configuration...done.
       <title>Environment variables</title>
 
       <para>
-        A program must not depend on environment variables to get
-        reasonable defaults.  (That's because these environment variables
-        would have to be set in a system-wide configuration file like
-        <filename>/etc/profile</filename>, which is not supported by all
-        shells.)
+        Programs installed on the system PATH (<filename>/bin</filename>,
+        <filename>/usr/bin</filename>, <filename>/sbin</filename>,
+        <filename>/usr/sbin</filename>, or similar directories) must not
+        depend on custom environment variable settings to get reasonable
+        defaults.  This is because such environment variables would have
+        to be set in a system-wide configuration file such as a file in
+        <filename>/etc/profile.d</filename>, which is not supported by all
+        shells.
       </para>
       <para>
         If a program usually depends on environment variables for its
@@ -9364,7 +9367,7 @@ Reloading <replaceable>description</replaceable> configuration...done.
         reasonable default configuration if these environment variables
         are not present.  If this cannot be done easily (e.g., if the
         source code of a non-free program is not available), the program
-        must be replaced by a small "wrapper" shell script which sets the
+        must be replaced by a small "wrapper" shell script that sets the
         environment variables if they are not already defined, and calls
         the original program.
       </para>
@@ -9377,12 +9380,6 @@ BAR=${BAR:-/var/lib/fubar}
 export BAR
 exec /usr/lib/foo/foo "$@"
       </screen>
-      <para>
-        Furthermore, as <filename>/etc/profile</filename> is a
-        configuration file of the <command>base-files</command> package,
-        other packages must not put any environment variables or other
-        commands into that file.
-      </para>
     </section>
 
     <section id="s-doc-base">

-- 
Russ Allbery (rra@debian.org)               <http://www.eyrie.org/~eagle/>


Reply to: