From c5a6599080bd8d20c4897472b02a16e359660a34 Mon Sep 17 00:00:00 2001 From: Harald Hoyer Date: Wed, 23 Nov 2011 09:42:10 +0100 Subject: [PATCH] Makefile, dracut.spec: move dracut to /usr/lib/dracut Move dracut to /usr/lib/dracut. We should not have picked /usr/share/dracut. Dracut is no ordinary "data". --- Makefile | 3 +- dracut | 8 ++-- dracut.8.xml | 4 +- dracut.conf.5.xml | 2 +- dracut.spec | 116 ++++++++++++++++++++++++---------------------- dracut.xml | 4 +- 6 files changed, 71 insertions(+), 66 deletions(-) diff --git a/Makefile b/Makefile index 0b60c5b6..5fa67bae 100644 --- a/Makefile +++ b/Makefile @@ -2,8 +2,9 @@ VERSION=013 GITVERSION=$(shell [ -d .git ] && git rev-list --abbrev-commit -n 1 HEAD |cut -b 1-8) prefix ?= /usr +libdir ?= ${prefix}/lib datadir ?= ${prefix}/share -pkglibdir ?= ${datadir}/dracut +pkglibdir ?= ${libdir}/dracut sysconfdir ?= ${prefix}/etc sbindir ?= ${prefix}/sbin mandir ?= ${prefix}/share/man diff --git a/dracut b/dracut index f989cb8f..45ee7594 100755 --- a/dracut +++ b/dracut @@ -35,7 +35,7 @@ Creates initial ramdisk images for preloading modules -f, --force Overwrite existing initramfs file. -m, --modules [LIST] Specify a space-separated list of dracut modules to call when building the initramfs. Modules are located - in /usr/share/dracut/modules.d. + in /usr/lib/dracut/modules.d. -o, --omit [LIST] Omit a space-separated list of dracut modules. -a, --add [LIST] Add a space-separated list of dracut modules. -d, --drivers [LIST] Specify a space-separated list of kernel modules to @@ -80,7 +80,7 @@ Creates initial ramdisk images for preloading modules from. Default: /etc/dracut.conf.d -l, --local Local mode. Use modules from the current working directory instead of the system-wide installed in - /usr/share/dracut/modules.d. + /usr/lib/dracut/modules.d. Useful when running dracut from a git checkout. -H, --hostonly Host-Only mode: Install only what is needed for booting the local host instead of a generic host. @@ -280,7 +280,7 @@ unset LD_LIBRARY_PATH debug=yes } -[[ $dracutbasedir ]] || dracutbasedir=/usr/share/dracut +[[ $dracutbasedir ]] || dracutbasedir=/usr/lib/dracut [[ $allowlocal && -f "$(readlink -f ${0%/*})/dracut-functions" ]] && \ dracutbasedir="$(readlink -f ${0%/*})" @@ -388,7 +388,7 @@ stdloglvl=$((stdloglvl + verbosity_mod_l)) [[ $use_fstab_l ]] && use_fstab=$use_fstab_l [[ $mdadmconf_l ]] && mdadmconf=$mdadmconf_l [[ $lvmconf_l ]] && lvmconf=$lvmconf_l -[[ $dracutbasedir ]] || dracutbasedir=/usr/share/dracut +[[ $dracutbasedir ]] || dracutbasedir=/usr/lib/dracut [[ $fw_dir ]] || fw_dir="/lib/firmware/updates /lib/firmware" [[ $do_strip ]] || do_strip=no [[ $compress_l ]] && compress=$compress_l diff --git a/dracut.8.xml b/dracut.8.xml index d4689ee8..b2b740a1 100644 --- a/dracut.8.xml +++ b/dracut.8.xml @@ -112,7 +112,7 @@ For a complete list of kernel command line options see specify a space-separated list of dracut modules to call when building the initramfs. Modules are located in -/usr/share/dracut/modules.d. This parameter can be specified multiple times. +/usr/lib/dracut/modules.d. This parameter can be specified multiple times. @@ -369,7 +369,7 @@ Default: activates the local mode. dracut will use modules from the current working directory instead of the system-wide installed modules in -/usr/share/dracut/modules.d. +/usr/lib/dracut/modules.d. This is useful when running dracut from a git checkout. diff --git a/dracut.conf.5.xml b/dracut.conf.5.xml index 811680ed..c0766e75 100644 --- a/dracut.conf.5.xml +++ b/dracut.conf.5.xml @@ -46,7 +46,7 @@ overwrite parameters set in /etc/dracut.conf. Each line spe Specify a space-separated list of dracut modules to call when building the initramfs. Modules are located -in /usr/share/dracut/modules.d. +in /usr/lib/dracut/modules.d. diff --git a/dracut.spec b/dracut.spec index 8fd5048f..e6df68a2 100644 --- a/dracut.spec +++ b/dracut.spec @@ -1,3 +1,5 @@ +%define dracutlibdir %{_prefix}/lib/dracut + # Variables must be defined %define with_nbd 1 @@ -175,18 +177,20 @@ make %if 0%{?fedora} || 0%{?rhel} > 6 rm -rf $RPM_BUILD_ROOT %endif -make install DESTDIR=$RPM_BUILD_ROOT sbindir=/sbin \ +make install DESTDIR=$RPM_BUILD_ROOT \ + libdir=%{_prefix}/lib \ + sbindir=/sbin \ sysconfdir=/etc mandir=%{_mandir} -echo %{name}-%{version}-%{release} > $RPM_BUILD_ROOT/%{_datadir}/dracut/modules.d/10rpmversion/dracut-version +echo %{name}-%{version}-%{release} > $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/10rpmversion/dracut-version %if 0%{?fedora} == 0 && 0%{?rhel} == 0 -rm -fr $RPM_BUILD_ROOT/%{_datadir}/dracut/modules.d/01fips -rm -fr $RPM_BUILD_ROOT/%{_datadir}/dracut/modules.d/02fips-aesni +rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/01fips +rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/02fips-aesni %endif # remove gentoo specific modules -rm -fr $RPM_BUILD_ROOT/%{_datadir}/dracut/modules.d/50gensplash +rm -fr $RPM_BUILD_ROOT/%{dracutlibdir}/modules.d/50gensplash mkdir -p $RPM_BUILD_ROOT/boot/dracut mkdir -p $RPM_BUILD_ROOT/var/lib/dracut/overlay @@ -222,10 +226,10 @@ rm -rf $RPM_BUILD_ROOT /sbin/mkinitrd /sbin/lsinitrd %endif -%dir %{_datadir}/dracut -%dir %{_datadir}/dracut/modules.d -%{_datadir}/dracut/dracut-functions -%{_datadir}/dracut/dracut-logger +%dir %{dracutlibdir} +%dir %{dracutlibdir}/modules.d +%{dracutlibdir}/dracut-functions +%{dracutlibdir}/dracut-logger %config(noreplace) /etc/dracut.conf %if 0%{?fedora} || 0%{?suse_version} || 0%{?rhel} > 6 %config /etc/dracut.conf.d/01-dist.conf @@ -234,72 +238,72 @@ rm -rf $RPM_BUILD_ROOT %{_mandir}/man8/dracut.8* %{_mandir}/man7/dracut.kernel.7* %{_mandir}/man5/dracut.conf.5* -%{_datadir}/dracut/modules.d/00bootchart -%{_datadir}/dracut/modules.d/00dash -%{_datadir}/dracut/modules.d/05busybox -%{_datadir}/dracut/modules.d/10i18n -%{_datadir}/dracut/modules.d/10rpmversion -%{_datadir}/dracut/modules.d/50plymouth -%{_datadir}/dracut/modules.d/90btrfs -%{_datadir}/dracut/modules.d/90crypt -%{_datadir}/dracut/modules.d/90dm -%{_datadir}/dracut/modules.d/90dmraid -%{_datadir}/dracut/modules.d/90dmsquash-live -%{_datadir}/dracut/modules.d/90kernel-modules -%{_datadir}/dracut/modules.d/90lvm -%{_datadir}/dracut/modules.d/90mdraid -%{_datadir}/dracut/modules.d/90multipath -%{_datadir}/dracut/modules.d/91crypt-gpg -%{_datadir}/dracut/modules.d/95debug -%{_datadir}/dracut/modules.d/95resume -%{_datadir}/dracut/modules.d/95rootfs-block -%{_datadir}/dracut/modules.d/95dasd -%{_datadir}/dracut/modules.d/95dasd_mod -%{_datadir}/dracut/modules.d/95fstab-sys -%{_datadir}/dracut/modules.d/95zfcp -%{_datadir}/dracut/modules.d/95terminfo -%{_datadir}/dracut/modules.d/95udev-rules -%{_datadir}/dracut/modules.d/96securityfs -%{_datadir}/dracut/modules.d/97biosdevname -%{_datadir}/dracut/modules.d/97masterkey -%{_datadir}/dracut/modules.d/98ecryptfs -%{_datadir}/dracut/modules.d/98integrity -%{_datadir}/dracut/modules.d/98selinux -%{_datadir}/dracut/modules.d/98syslog -%{_datadir}/dracut/modules.d/98usrmount -%{_datadir}/dracut/modules.d/99base -%{_datadir}/dracut/modules.d/99fs-lib -%{_datadir}/dracut/modules.d/99shutdown +%{dracutlibdir}/modules.d/00bootchart +%{dracutlibdir}/modules.d/00dash +%{dracutlibdir}/modules.d/05busybox +%{dracutlibdir}/modules.d/10i18n +%{dracutlibdir}/modules.d/10rpmversion +%{dracutlibdir}/modules.d/50plymouth +%{dracutlibdir}/modules.d/90btrfs +%{dracutlibdir}/modules.d/90crypt +%{dracutlibdir}/modules.d/90dm +%{dracutlibdir}/modules.d/90dmraid +%{dracutlibdir}/modules.d/90dmsquash-live +%{dracutlibdir}/modules.d/90kernel-modules +%{dracutlibdir}/modules.d/90lvm +%{dracutlibdir}/modules.d/90mdraid +%{dracutlibdir}/modules.d/90multipath +%{dracutlibdir}/modules.d/91crypt-gpg +%{dracutlibdir}/modules.d/95debug +%{dracutlibdir}/modules.d/95resume +%{dracutlibdir}/modules.d/95rootfs-block +%{dracutlibdir}/modules.d/95dasd +%{dracutlibdir}/modules.d/95dasd_mod +%{dracutlibdir}/modules.d/95fstab-sys +%{dracutlibdir}/modules.d/95zfcp +%{dracutlibdir}/modules.d/95terminfo +%{dracutlibdir}/modules.d/95udev-rules +%{dracutlibdir}/modules.d/96securityfs +%{dracutlibdir}/modules.d/97biosdevname +%{dracutlibdir}/modules.d/97masterkey +%{dracutlibdir}/modules.d/98ecryptfs +%{dracutlibdir}/modules.d/98integrity +%{dracutlibdir}/modules.d/98selinux +%{dracutlibdir}/modules.d/98syslog +%{dracutlibdir}/modules.d/98usrmount +%{dracutlibdir}/modules.d/99base +%{dracutlibdir}/modules.d/99fs-lib +%{dracutlibdir}/modules.d/99shutdown %config(noreplace) /etc/logrotate.d/dracut_log %attr(0644,root,root) %ghost %config(missingok,noreplace) %{_localstatedir}/log/dracut.log %dir %{_sharedstatedir}/initramfs %files network %defattr(-,root,root,0755) -%{_datadir}/dracut/modules.d/40network -%{_datadir}/dracut/modules.d/95fcoe -%{_datadir}/dracut/modules.d/95iscsi -%{_datadir}/dracut/modules.d/90livenet -%{_datadir}/dracut/modules.d/95nbd -%{_datadir}/dracut/modules.d/95nfs -%{_datadir}/dracut/modules.d/45ifcfg -%{_datadir}/dracut/modules.d/95znet +%{dracutlibdir}/modules.d/40network +%{dracutlibdir}/modules.d/95fcoe +%{dracutlibdir}/modules.d/95iscsi +%{dracutlibdir}/modules.d/90livenet +%{dracutlibdir}/modules.d/95nbd +%{dracutlibdir}/modules.d/95nfs +%{dracutlibdir}/modules.d/45ifcfg +%{dracutlibdir}/modules.d/95znet %if 0%{?fedora} || 0%{?rhel} > 6 %files fips %defattr(-,root,root,0755) -%{_datadir}/dracut/modules.d/01fips +%{dracutlibdir}/modules.d/01fips %config(noreplace) /etc/dracut.conf.d/40-fips.conf %endif %files fips-aesni %defattr(-,root,root,0755) %doc COPYING -%{_datadir}/dracut/modules.d/02fips-aesni +%{dracutlibdir}/modules.d/02fips-aesni %files caps %defattr(-,root,root,0755) -%{_datadir}/dracut/modules.d/02caps +%{dracutlibdir}/modules.d/02caps %files tools %defattr(-,root,root,0755) diff --git a/dracut.xml b/dracut.xml index 13e092a6..8602b2f7 100644 --- a/dracut.xml +++ b/dracut.xml @@ -170,7 +170,7 @@ include ld.so.conf.d/*.conf To see a list of available dracut modules, use the option: # dracut --list-modules or, if you have a dracut version earlier than 008, issue the command: - # for mod in /usr/share/dracut/modules.d/*; do echo ${mod##*/??}; done + # for mod in /usr/lib/dracut/modules.d/*; do echo ${mod##*/??}; done
Omitting dracut Modules @@ -534,7 +534,7 @@ Key slot 0 unlocked. Developer Manual
dracut Components - dracut uses a modular system to build and extend the initramfs image. All modules are located in /usr/share/dracut/modules.d or in <git-src>/modules.d. The most basic dracut module is 99base. In 99base the initial shell script init is defined, which gets run by the kernel after initramfs loading. Although you can replace init with your own version of 99base, this is not encouraged. Instead you should use, if possible, the hooks of dracut. All hooks, and the point of time in which they are executed, are described in . + dracut uses a modular system to build and extend the initramfs image. All modules are located in /usr/lib/dracut/modules.d or in <git-src>/modules.d. The most basic dracut module is 99base. In 99base the initial shell script init is defined, which gets run by the kernel after initramfs loading. Although you can replace init with your own version of 99base, this is not encouraged. Instead you should use, if possible, the hooks of dracut. All hooks, and the point of time in which they are executed, are described in . The main script, which creates the initramfs is dracut itsself. It parses all arguments and sets up the directory, in which everything is installed. It then executes all check, install, installkernel scripts found in the modules, which are to be processed. After everything is installed, the install directory is archived and compressed to the final initramfs image. All helper functions used by check, install and installkernel are found in in the file dracut-functions. These shell functions are available to all module installer (install, installkernel) scripts, without the need to source dracut-functions. A module can check the preconditions for install and installkernel with the check script. Also dependencies can be expressed with check. If a module passed check, install and installkernel will be called to install all of the necessary files for the module. To split between kernel and non-kernel parts of the installation, all kernel module related parts have to be in installkernel. All other files found in a module directory are module specific and mostly are hook scripts and udev rules.