From: Harald Hoyer Date: Tue, 19 Feb 2013 16:36:15 +0000 (+0100) Subject: introduce /usr/lib/dracut/dracut.conf.d/ drop-in directory X-Git-Tag: 026~55 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a42b2b81335f667f02da1883201371f27c683f23;p=thirdparty%2Fdracut.git introduce /usr/lib/dracut/dracut.conf.d/ drop-in directory /usr/lib/dracut/dracut.conf.d/*.conf can be overwritten by the same filenames in /etc/dracut.conf.d. Packages should use /usr/lib/dracut/dracut.conf.d rather than /etc/dracut.conf.d. /etc/dracut.conf.d belongs to the system administrator. --- diff --git a/Makefile b/Makefile index 234176ff3..2a92d0486 100644 --- a/Makefile +++ b/Makefile @@ -91,6 +91,7 @@ install: dracut-version.sh install -m 0755 lsinitrd.sh $(DESTDIR)$(bindir)/lsinitrd install -m 0644 dracut.conf $(DESTDIR)$(sysconfdir)/dracut.conf mkdir -p $(DESTDIR)$(sysconfdir)/dracut.conf.d + mkdir -p $(DESTDIR)$(pkglibdir)/dracut.conf.d install -m 0755 dracut-functions.sh $(DESTDIR)$(pkglibdir)/dracut-functions.sh install -m 0755 dracut-version.sh $(DESTDIR)$(pkglibdir)/dracut-version.sh ln -fs dracut-functions.sh $(DESTDIR)$(pkglibdir)/dracut-functions diff --git a/dracut.sh b/dracut.sh index 4d17e4de8..31cf2a5fc 100755 --- a/dracut.sh +++ b/dracut.sh @@ -235,6 +235,30 @@ read_arg() { fi } + +source_dirs_prio() +{ + suffix=$1; shift + args=("$@") + files=$( + while (( $# > 0 )); do + for i in ${1}/*${suffix}; do + [[ -f $i ]] && echo ${i##*/} + done + shift + done | sort -Vu + ) + + for f in $files; do + for d in "${args[@]}"; do + if [[ -f "$d/$f" ]]; then + echo "$d/$f" + continue 2 + fi + done + done +} + verbosity_mod_l=0 unset kernel unset outfile @@ -465,11 +489,9 @@ fi [[ -f $conffile ]] && . "$conffile" # source our config dir -if [[ $confdir && -d $confdir ]]; then - for f in "$confdir"/*.conf; do - [[ -e $f ]] && . "$f" - done -fi +for f in $(source_dirs_prio ".conf" "$confdir" "$dracutbasedir/dracut.conf.d"); do + [[ -e $f ]] && . "$f" +done # these optins add to the stuff in the config file if (( ${#add_dracutmodules_l[@]} )); then diff --git a/dracut.spec b/dracut.spec index 22f336614..7d1bbbc38 100644 --- a/dracut.spec +++ b/dracut.spec @@ -217,12 +217,12 @@ touch $RPM_BUILD_ROOT%{_localstatedir}/log/dracut.log mkdir -p $RPM_BUILD_ROOT%{_sharedstatedir}/initramfs %if 0%{?fedora} || 0%{?rhel} || 0%{?suse_version} -install -m 0644 dracut.conf.d/fedora.conf.example $RPM_BUILD_ROOT/etc/dracut.conf.d/01-dist.conf -install -m 0644 dracut.conf.d/fips.conf.example $RPM_BUILD_ROOT/etc/dracut.conf.d/40-fips.conf +install -m 0644 dracut.conf.d/fedora.conf.example $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/01-dist.conf +install -m 0644 dracut.conf.d/fips.conf.example $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/40-fips.conf %endif %if 0%{?suse_version} -install -m 0644 dracut.conf.d/suse.conf.example $RPM_BUILD_ROOT/etc/dracut.conf.d/01-dist.conf +install -m 0644 dracut.conf.d/suse.conf.example $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/01-dist.conf %endif %if 0%{?fedora} <= 12 && 0%{?rhel} < 6 && 0%{?suse_version} <= 9999 @@ -260,9 +260,10 @@ rm -rf $RPM_BUILD_ROOT %{dracutlibdir}/dracut-install %config(noreplace) /etc/dracut.conf %if 0%{?fedora} || 0%{?suse_version} || 0%{?rhel} -%config /etc/dracut.conf.d/01-dist.conf +%{dracutlibdir}/dracut.conf.d/01-dist.conf %endif %dir /etc/dracut.conf.d +%dir %{dracutlibdir}/dracut.conf.d %{_mandir}/man8/dracut.8* %{_mandir}/man8/*service.8* %if 0%{?fedora} > 12 || 0%{?rhel} >= 6 || 0%{?suse_version} > 9999 @@ -345,7 +346,7 @@ rm -rf $RPM_BUILD_ROOT %files fips %defattr(-,root,root,0755) %{dracutlibdir}/modules.d/01fips -%config(noreplace) /etc/dracut.conf.d/40-fips.conf +%{dracutlibdir}/dracut.conf.d/40-fips.conf %endif %files fips-aesni