On 21.07.2010 14:41, Harald Hoyer wrote:
> On 07/14/2010 02:05 AM, Maarten Vanraes wrote:
>> Hi,
>>
>> Here are some patches, some that were used as patches in the mandriva
>> builds,
>> and a first one from me, to fix nfs hostonly on chrooted installs.
>>
>> Kind regards,
>>
>> Maarten Vanraes
> 
> Pushed the conffile patch and the bootchartd patch

The conffile patch causes dracut to load /etc/dracut.conf first and only
then /etc/dracut.conf.d, allowing the latter to override the former.

IMO this is backwards. I thought distribution/package default stuff was
supposed to be put in /etc/dracut.conf.d/*.conf, and /etc/dracut.conf
was the place for the user to override them if they so wished.

Is this not the case?

If I've indeed misunderstood this, what is the recommended way for a
user to override distribution default settings?
Create a /etc/dracut.conf.d/zzz-last-user.conf?
Wouldn't that make /etc/dracut.conf superfluous? Or is that file indeed
intended for distribution defaults instead?

Or is there some more important reason to have it this way?

I've attached a patch which makes the behaviour sensible to me.


For background, the Mandriva package (again, wrongly IMO) currently uses
/etc/dracut.conf for distribution defaults and expects any user
configuration to be in /etc/dracut.conf.d/*.conf, and that was the
reason for the original patch submission; I'll change this behavior in
Mandriva (no one was against it on our ml in March) if the attached
patch gets OK'd.

-- 
Anssi Hannula
>From 1a361ec63abe41c38fdfb85813ced0e5fb8893b2 Mon Sep 17 00:00:00 2001
From: Anssi Hannula <an...@mandriva.org>
Date: Sat, 8 Jan 2011 08:23:52 +0200
Subject: [PATCH] dracut: load dracut.conf.d/*.conf before dracut.conf

---
 dracut            |    6 +++---
 dracut.conf.5.xml |    6 +++---
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/dracut b/dracut
index 303d817..0a0b628 100755
--- a/dracut
+++ b/dracut
@@ -176,9 +176,6 @@ if [[ ! -d $confdir ]]; then
         confdir="/etc/dracut.conf.d"
 fi
 
-# source our config file
-[[ -f $conffile ]] && . "$conffile"
-
 # source our config dir
 if [[ $confdir && -d $confdir ]]; then
     for f in "$confdir"/*.conf; do 
@@ -186,6 +183,9 @@ if [[ $confdir && -d $confdir ]]; then
     done
 fi
 
+# source our config file
+[[ -f $conffile ]] && . "$conffile"
+
 # these optins add to the stuff in the config file
 [[ $add_dracutmodules_l ]] && add_dracutmodules+=" $add_dracutmodules_l"
 [[ $add_drivers_l ]] && add_drivers+=" $add_drivers_l"
diff --git a/dracut.conf.5.xml b/dracut.conf.5.xml
index df89233..fe8f7bc 100644
--- a/dracut.conf.5.xml
+++ b/dracut.conf.5.xml
@@ -35,8 +35,8 @@
     <para><filename>dracut.conf</filename>
 is loaded during the initialisation phase of dracut.
 Command line parameter will overwrite any values set here.
-<emphasis><filename>dracut.conf.d/*.conf</filename> files are read in alphanumerical order and will</emphasis>
-overwrite parameters set in <filename>/etc/dracut.conf</filename>. Each line specifies an attribute and a value. A &apos;#&apos; indicates the beginning of a comment; following characters, up to the end of the line are not interpreted.</para>
+It will override parameters set in <filename>dracut.conf.d/*.conf</filename>.
+Each line specifies an attribute and a value. A &apos;#&apos; indicates the beginning of a comment; following characters, up to the end of the line are not interpreted.</para>
     <variablelist>
       <varlistentry>
         <term>
@@ -180,7 +180,7 @@ initramfs.</para>
           <filename>/etc/dracut/conf.d/</filename>
         </term>
         <listitem>
-          <para>Any <filename>/etc/dracut/conf.d/*.conf</filename> file can overwrite the values in <filename>/etc/dracut.conf</filename>.
+          <para><filename>/etc/dracut/conf.d/*.conf</filename> files are loaded before <filename>/etc/dracut.conf</filename>.
 The configuration files are read in alphanumerical order.</para>
         </listitem>
       </varlistentry>
-- 
1.7.3

Reply via email to