diff --git a/0001-add-x-bit-to-.sh.patch b/0001-add-x-bit-to-.sh.patch new file mode 100644 index 0000000..95e656f --- /dev/null +++ b/0001-add-x-bit-to-.sh.patch @@ -0,0 +1,28 @@ +From 4a049ce55681849e6338ee355ade3b7f92ca04d7 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Fri, 12 Aug 2011 16:29:28 +0200 +Subject: [PATCH] add x-bit to *.sh + +--- + 0 files changed, 0 insertions(+), 0 deletions(-) + mode change 100644 => 100755 modules.d/90crypt/crypt-lib.sh + mode change 100644 => 100755 modules.d/90crypt/parse-keydev.sh + mode change 100644 => 100755 modules.d/90dm/dm-shutdown.sh + mode change 100644 => 100755 modules.d/90mdraid/md-shutdown.sh + mode change 100644 => 100755 modules.d/91crypt-gpg/crypt-gpg-lib.sh + +diff --git a/modules.d/90crypt/crypt-lib.sh b/modules.d/90crypt/crypt-lib.sh +old mode 100644 +new mode 100755 +diff --git a/modules.d/90crypt/parse-keydev.sh b/modules.d/90crypt/parse-keydev.sh +old mode 100644 +new mode 100755 +diff --git a/modules.d/90dm/dm-shutdown.sh b/modules.d/90dm/dm-shutdown.sh +old mode 100644 +new mode 100755 +diff --git a/modules.d/90mdraid/md-shutdown.sh b/modules.d/90mdraid/md-shutdown.sh +old mode 100644 +new mode 100755 +diff --git a/modules.d/91crypt-gpg/crypt-gpg-lib.sh b/modules.d/91crypt-gpg/crypt-gpg-lib.sh +old mode 100644 +new mode 100755 diff --git a/0093-90livenet-module-setup.sh-silence-check-for-wget.patch b/0093-90livenet-module-setup.sh-silence-check-for-wget.patch new file mode 100644 index 0000000..7dc88f1 --- /dev/null +++ b/0093-90livenet-module-setup.sh-silence-check-for-wget.patch @@ -0,0 +1,22 @@ +From 4f6eb791b481bd9cab0729010690ee9376742e2c Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Fri, 21 Oct 2011 09:35:38 +0200 +Subject: [PATCH] 90livenet/module-setup.sh: silence check for wget + +--- + modules.d/90livenet/module-setup.sh | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/modules.d/90livenet/module-setup.sh b/modules.d/90livenet/module-setup.sh +index 3ee7521..a6ee3e0 100755 +--- a/modules.d/90livenet/module-setup.sh ++++ b/modules.d/90livenet/module-setup.sh +@@ -4,7 +4,7 @@ + check() { + # a live, host-only image doesn't really make a lot of sense + [[ $hostonly ]] && return 1 +- command -v wget || return 1 ++ command -v wget >/dev/null || return 1 + return 0 + } + diff --git a/0094-90dmsquash-live-do-not-install-by-default.patch b/0094-90dmsquash-live-do-not-install-by-default.patch new file mode 100644 index 0000000..c1ce82d --- /dev/null +++ b/0094-90dmsquash-live-do-not-install-by-default.patch @@ -0,0 +1,22 @@ +From bfdc0eba0b0a9f2c61bec7159af13f7405a5dd17 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Fri, 21 Oct 2011 10:14:49 +0200 +Subject: [PATCH] 90dmsquash-live: do not install by default + +--- + modules.d/90dmsquash-live/module-setup.sh | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/modules.d/90dmsquash-live/module-setup.sh b/modules.d/90dmsquash-live/module-setup.sh +index 684655f..de1eed6 100755 +--- a/modules.d/90dmsquash-live/module-setup.sh ++++ b/modules.d/90dmsquash-live/module-setup.sh +@@ -5,7 +5,7 @@ + check() { + # a live host-only image doesn't really make a lot of sense + [[ $hostonly ]] && return 1 +- return 0 ++ return 255 + } + + depends() { diff --git a/0095-90livenet-do-not-install-by-default.patch b/0095-90livenet-do-not-install-by-default.patch new file mode 100644 index 0000000..43b39ca --- /dev/null +++ b/0095-90livenet-do-not-install-by-default.patch @@ -0,0 +1,22 @@ +From 624c70d763e9a201b5450fea10ac5e32939cf2a2 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Fri, 21 Oct 2011 10:15:09 +0200 +Subject: [PATCH] 90livenet: do not install by default + +--- + modules.d/90livenet/module-setup.sh | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/modules.d/90livenet/module-setup.sh b/modules.d/90livenet/module-setup.sh +index a6ee3e0..5cfbb75 100755 +--- a/modules.d/90livenet/module-setup.sh ++++ b/modules.d/90livenet/module-setup.sh +@@ -5,7 +5,7 @@ check() { + # a live, host-only image doesn't really make a lot of sense + [[ $hostonly ]] && return 1 + command -v wget >/dev/null || return 1 +- return 0 ++ return 255 + } + + depends() { diff --git a/0096-dracut-functions-do-not-install-files-from-current-d.patch b/0096-dracut-functions-do-not-install-files-from-current-d.patch new file mode 100644 index 0000000..fc54552 --- /dev/null +++ b/0096-dracut-functions-do-not-install-files-from-current-d.patch @@ -0,0 +1,129 @@ +From 4637c5c24252d636fc57af1a9aaaf629140a77c7 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Fri, 21 Oct 2011 10:09:55 +0200 +Subject: [PATCH] dracut-functions: do not install files from current + directory + +Protect against relative pathnames without a slash for all inst_*() +functions. +--- + dracut-functions | 38 +++++++++++++++++++++----------------- + 1 files changed, 21 insertions(+), 17 deletions(-) + +diff --git a/dracut-functions b/dracut-functions +index 70a467b..a56e460 100755 +--- a/dracut-functions ++++ b/dracut-functions +@@ -272,10 +272,10 @@ check_vol_slaves() { + # will create ${initdir}/lib64, ${initdir}/lib64/file, + # and a symlink ${initdir}/lib -> lib64. + inst_dir() { +- [[ -e ${initdir}"$1" ]] && return 0 # already there ++ [[ -e ${initdir}/"$1" ]] && return 0 # already there + + local _dir="$1" _part="${1%/*}" _file +- while [[ "$_part" != "${_part%/*}" ]] && ! [[ -e "${initdir}${_part}" ]]; do ++ while [[ "$_part" != "${_part%/*}" ]] && ! [[ -e "${initdir}/${_part}" ]]; do + _dir="$_part $_dir" + _part=${_part%/*} + done +@@ -306,12 +306,13 @@ inst_dir() { + # Location of the image dir is assumed to be $initdir + # We never overwrite the target if it exists. + inst_simple() { +- [[ -f $1 ]] || return 1 ++ [[ -f "$1" ]] || return 1 ++ strstr "$1" "/" || return 1 + + local _src=$1 target="${2:-$1}" +- if ! [[ -d ${initdir}$target ]]; then +- [[ -e ${initdir}$target ]] && return 0 +- [[ -h ${initdir}$target ]] && return 0 ++ if ! [[ -d ${initdir}/$target ]]; then ++ [[ -e ${initdir}/$target ]] && return 0 ++ [[ -h ${initdir}/$target ]] && return 0 + inst_dir "${target%/*}" + fi + # install checksum files also +@@ -319,7 +320,7 @@ inst_simple() { + inst "${_src%/*}/.${_src##*/}.hmac" "${target%/*}/.${target##*/}.hmac" + fi + ddebug "Installing $_src" +- cp --sparse=always -pfL "$_src" "${initdir}$target" ++ cp --sparse=always -pfL "$_src" "${initdir}/$target" + } + + # find symlinks linked to given library file +@@ -351,8 +352,9 @@ rev_lib_symlinks() { + # It handles making symlinks according to how the original library + # is referenced. + inst_library() { +- local _src=$1 _dest=${2:-$1} _lib _reallib _symlink +- [[ -e $initdir$_dest ]] && return 0 ++ local _src="$1" _dest=${2:-$1} _lib _reallib _symlink ++ strstr "$1" "/" || return 1 ++ [[ -e $initdir/$_dest ]] && return 0 + if [[ -L $_src ]]; then + # install checksum files also + if [[ -e "${_src%/*}/.${_src##*/}.hmac" ]]; then +@@ -361,14 +363,14 @@ inst_library() { + _reallib=$(readlink -f "$_src") + inst_simple "$_reallib" "$_reallib" + inst_dir "${_dest%/*}" +- ln -sfn $(convert_abs_rel "${_dest}" "${_reallib}") "${initdir}${_dest}" ++ ln -sfn $(convert_abs_rel "${_dest}" "${_reallib}") "${initdir}/${_dest}" + else + inst_simple "$_src" "$_dest" + fi + + # Create additional symlinks. See rev_symlinks description. + for _symlink in $(rev_lib_symlinks $_src) $(rev_lib_symlinks $_reallib); do +- [[ ! -e $initdir$_symlink ]] && { ++ [[ ! -e $initdir/$_symlink ]] && { + ddebug "Creating extra symlink: $_symlink" + inst_symlink $_symlink + } +@@ -396,7 +398,7 @@ inst_binary() { + _bin=$(find_binary "$1") || return 1 + _target=${2:-$_bin} + inst_symlink $_bin $_target && return 0 +- [[ -e $initdir$_target ]] && return 0 ++ [[ -e $initdir/$_target ]] && return 0 + + # If the binary being installed is also a library, add it to the loop. + _so_regex='([^ ]*/lib[^/]*/[^ ]*\.so[^ ]*)' +@@ -414,7 +416,7 @@ inst_binary() { + fi + [[ $_line =~ $_so_regex ]] || continue + _file=${BASH_REMATCH[1]} +- [[ -e ${initdir}$_file ]] && continue ++ [[ -e ${initdir}/$_file ]] && continue + + # See if we are loading an optimized version of a shared lib. + if [[ $_file =~ $_lib_regex ]]; then +@@ -439,19 +441,21 @@ inst_binary() { + # same as above, except for shell scripts. + # If your shell script does not start with shebang, it is not a shell script. + inst_script() { +- [[ -f $1 ]] || return 1 ++ local _bin ++ _bin=$(find_binary "$1") || return 1 + local _line _shebang_regex +- read -r -n 80 _line <"$1" ++ read -r -n 80 _line <"$_bin" + # If debug is set, clean unprintable chars to prevent messing up the term + [[ $debug ]] && _line=$(echo -n "$_line" | tr -c -d '[:print:][:space:]') + _shebang_regex='(#! *)(/[^ ]+).*' + [[ $_line =~ $_shebang_regex ]] || return 1 +- inst "${BASH_REMATCH[2]}" && inst_simple "$@" ++ inst "${BASH_REMATCH[2]}" && inst_binary "$@" + } + + # same as above, but specialized for symlinks + inst_symlink() { +- local _src=$1 _target=$initdir${2:-$1} _realsrc ++ local _src=$1 _target=$initdir/${2:-$1} _realsrc ++ strstr "$1" "/" || return 1 + [[ -L $1 ]] || return 1 + [[ -L $_target ]] && return 0 + _realsrc=$(readlink -f "$_src") diff --git a/0097-dracut-functions-inst_script-call-inst_binary-with-f.patch b/0097-dracut-functions-inst_script-call-inst_binary-with-f.patch new file mode 100644 index 0000000..b1042e9 --- /dev/null +++ b/0097-dracut-functions-inst_script-call-inst_binary-with-f.patch @@ -0,0 +1,32 @@ +From f60995adb4b5498a2b1dda112e3cd6fab57c9ba1 Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Fri, 21 Oct 2011 12:33:05 +0200 +Subject: [PATCH] dracut-functions:inst_script() call inst_binary() with found + bin + +call inst_binary() with the already found executable to prevent +searching for the binary again +--- + dracut-functions | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +diff --git a/dracut-functions b/dracut-functions +index a56e460..a5d6d1f 100755 +--- a/dracut-functions ++++ b/dracut-functions +@@ -443,13 +443,14 @@ inst_binary() { + inst_script() { + local _bin + _bin=$(find_binary "$1") || return 1 ++ shift + local _line _shebang_regex + read -r -n 80 _line <"$_bin" + # If debug is set, clean unprintable chars to prevent messing up the term + [[ $debug ]] && _line=$(echo -n "$_line" | tr -c -d '[:print:][:space:]') + _shebang_regex='(#! *)(/[^ ]+).*' + [[ $_line =~ $_shebang_regex ]] || return 1 +- inst "${BASH_REMATCH[2]}" && inst_binary "$@" ++ inst "${BASH_REMATCH[2]}" && inst_binary "$_bin" "$@" + } + + # same as above, but specialized for symlinks diff --git a/0098-dracut.spec-apply-patches-with-git.patch b/0098-dracut.spec-apply-patches-with-git.patch new file mode 100644 index 0000000..dac1f8c --- /dev/null +++ b/0098-dracut.spec-apply-patches-with-git.patch @@ -0,0 +1,88 @@ +From 85cda6ae16722452e2e8ced77e73be44e4f4a2ad Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Fri, 21 Oct 2011 12:35:07 +0200 +Subject: [PATCH] dracut.spec: apply patches with git + +This will take all renames and mode changes. +--- + dracut.spec | 10 +++++++++- + git2spec.pl | 21 +-------------------- + 2 files changed, 10 insertions(+), 21 deletions(-) + +diff --git a/dracut.spec b/dracut.spec +index f9848ed..69809ca 100644 +--- a/dracut.spec ++++ b/dracut.spec +@@ -24,7 +24,7 @@ URL: https://dracut.wiki.kernel.org/ + Source0: http://www.kernel.org/pub/linux/utils/boot/dracut/dracut-%{version}.tar.bz2 + + BuildArch: noarch +-BuildRequires: dash bash ++BuildRequires: dash bash git + %if 0%{?fedora} || 0%{?rhel} > 6 + BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + %endif +@@ -155,6 +155,14 @@ This package contains tools to assemble the local initrd and host configuration. + + %prep + %setup -q -n %{name}-%{version} ++git init ++git config user.email "dracut-maint@redhat.com" ++git config user.name "Fedora dracut team" ++git add . ++git commit -a -q -m "%{version} baseline." ++ ++# Apply all the patches. ++git am -p1 %{patches} + + %build + make +diff --git a/git2spec.pl b/git2spec.pl +index 2ea74c8..9db42aa 100755 +--- a/git2spec.pl ++++ b/git2spec.pl +@@ -19,20 +19,12 @@ sub last_tag { + sub create_patches { + my $tag=shift; + my $num=0; +- open( GIT, 'git format-patch --no-renames -N --no-signature '.$tag.' |'); ++ open( GIT, 'git format-patch -N --no-signature '.$tag.' |'); + @lines=; + close GIT; # be done + return @lines; + }; + +-sub filter_patch { +- my $patch=shift; +- open(P, $patch); +- @lines=

; +- close(P); +- grep (/^ 0 files changed/, @lines); +-} +- + use POSIX qw(strftime); + my $datestr = strftime "%Y%m%d", gmtime; + +@@ -55,22 +47,11 @@ while(<>) { + print $_; + $num=1; + for(@patches) { +- next if filter_patch $_; + print "Patch$num: $_"; + $num++; + } + print "\n"; + } +- elsif (/^%setup/) { +- print $_; +- $num=1; +- for(@patches) { +- next if filter_patch $_; +- print "%patch$num -p1\n"; +- $num++; +- } +- print "\n"; +- } + else { + print $_; + } diff --git a/0099-dracut.spec-require-new-util-linux-version-with-new-.patch b/0099-dracut.spec-require-new-util-linux-version-with-new-.patch new file mode 100644 index 0000000..61ab367 --- /dev/null +++ b/0099-dracut.spec-require-new-util-linux-version-with-new-.patch @@ -0,0 +1,35 @@ +From 7c3a7bd1f0414d8dcdfa16df108c28815fe921bb Mon Sep 17 00:00:00 2001 +From: Harald Hoyer +Date: Fri, 21 Oct 2011 12:35:34 +0200 +Subject: [PATCH] dracut.spec: require new util-linux version with new + switch_root + +new switch_root knows how to handle "/run" +--- + dracut.spec | 7 +------ + 1 files changed, 1 insertions(+), 6 deletions(-) + +diff --git a/dracut.spec b/dracut.spec +index 69809ca..eaa39a0 100644 +--- a/dracut.spec ++++ b/dracut.spec +@@ -72,18 +72,13 @@ Requires: module-init-tools >= 3.7-9 + Requires: sed + Requires: tar + Requires: udev ++Requires: util-linux >= 2.20 + + %if 0%{?fedora} || 0%{?rhel} > 6 +-Requires: util-linux >= 2.16 + Requires: initscripts >= 8.63-1 + Requires: plymouth >= 0.8.0-0.2009.29.09.19.1 + %endif + +-%if 0%{?suse_version} +-Requires: util-linux >= 2.16 +-%endif +- +- + %description + Dracut contains tools to create a bootable initramfs for 2.6 Linux kernels. + Unlike existing implementations, dracut does hard-code as little as possible diff --git a/dracut.spec b/dracut.spec index 225626f..a2c2299 100644 --- a/dracut.spec +++ b/dracut.spec @@ -8,7 +8,7 @@ Name: dracut Version: 013 -Release: 93.git20111020%{?dist} +Release: 100.git20111021%{?dist} Summary: Initramfs generator using udev %if 0%{?fedora} || 0%{?rhel} > 6 @@ -22,7 +22,7 @@ URL: https://dracut.wiki.kernel.org/ # Source can be generated by # http://git.kernel.org/?p=boot/dracut/dracut.git;a=snapshot;h=%{version};sf=tgz Source0: http://www.kernel.org/pub/linux/utils/boot/dracut/dracut-%{version}.tar.bz2 - +Patch1: 0001-add-x-bit-to-.sh.patch Patch2: 0002-90dmsquash-live-dmsquash-live-root-include-fs_lib.sh.patch Patch3: 0003-fix-live-crash-with-livenet-installed.patch Patch4: 0004-profile.py-parse-the-output-of-dracut-profile-for-pr.patch @@ -114,9 +114,17 @@ Patch89: 0089-minor-changes.patch Patch90: 0090-90livenet-check-for-wget.patch Patch91: 0091-dracut-logger-re-set-debugging.patch Patch92: 0092-dracut-functions-inst_dir-handle-relative-symlinks.patch +Patch93: 0093-90livenet-module-setup.sh-silence-check-for-wget.patch +Patch94: 0094-90dmsquash-live-do-not-install-by-default.patch +Patch95: 0095-90livenet-do-not-install-by-default.patch +Patch96: 0096-dracut-functions-do-not-install-files-from-current-d.patch +Patch97: 0097-dracut-functions-inst_script-call-inst_binary-with-f.patch +Patch98: 0098-dracut.spec-apply-patches-with-git.patch +Patch99: 0099-dracut.spec-require-new-util-linux-version-with-new-.patch + BuildArch: noarch -BuildRequires: dash bash +BuildRequires: dash bash git %if 0%{?fedora} || 0%{?rhel} > 6 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) %endif @@ -164,18 +172,13 @@ Requires: module-init-tools >= 3.7-9 Requires: sed Requires: tar Requires: udev +Requires: util-linux >= 2.20 %if 0%{?fedora} || 0%{?rhel} > 6 -Requires: util-linux >= 2.16 Requires: initscripts >= 8.63-1 Requires: plymouth >= 0.8.0-0.2009.29.09.19.1 %endif -%if 0%{?suse_version} -Requires: util-linux >= 2.16 -%endif - - %description Dracut contains tools to create a bootable initramfs for 2.6 Linux kernels. Unlike existing implementations, dracut does hard-code as little as possible @@ -247,97 +250,14 @@ This package contains tools to assemble the local initrd and host configuration. %prep %setup -q -n %{name}-%{version} -%patch2 -p1 -%patch3 -p1 -%patch4 -p1 -%patch5 -p1 -%patch6 -p1 -%patch7 -p1 -%patch8 -p1 -%patch9 -p1 -%patch10 -p1 -%patch11 -p1 -%patch12 -p1 -%patch13 -p1 -%patch14 -p1 -%patch15 -p1 -%patch16 -p1 -%patch17 -p1 -%patch18 -p1 -%patch19 -p1 -%patch20 -p1 -%patch21 -p1 -%patch22 -p1 -%patch23 -p1 -%patch24 -p1 -%patch25 -p1 -%patch26 -p1 -%patch27 -p1 -%patch28 -p1 -%patch29 -p1 -%patch30 -p1 -%patch31 -p1 -%patch32 -p1 -%patch33 -p1 -%patch34 -p1 -%patch35 -p1 -%patch36 -p1 -%patch37 -p1 -%patch38 -p1 -%patch39 -p1 -%patch40 -p1 -%patch41 -p1 -%patch42 -p1 -%patch43 -p1 -%patch44 -p1 -%patch45 -p1 -%patch46 -p1 -%patch47 -p1 -%patch48 -p1 -%patch49 -p1 -%patch50 -p1 -%patch51 -p1 -%patch52 -p1 -%patch53 -p1 -%patch54 -p1 -%patch55 -p1 -%patch56 -p1 -%patch57 -p1 -%patch58 -p1 -%patch59 -p1 -%patch60 -p1 -%patch61 -p1 -%patch62 -p1 -%patch63 -p1 -%patch64 -p1 -%patch65 -p1 -%patch66 -p1 -%patch67 -p1 -%patch68 -p1 -%patch69 -p1 -%patch70 -p1 -%patch71 -p1 -%patch72 -p1 -%patch73 -p1 -%patch74 -p1 -%patch75 -p1 -%patch76 -p1 -%patch77 -p1 -%patch78 -p1 -%patch79 -p1 -%patch80 -p1 -%patch81 -p1 -%patch82 -p1 -%patch83 -p1 -%patch84 -p1 -%patch85 -p1 -%patch86 -p1 -%patch87 -p1 -%patch88 -p1 -%patch89 -p1 -%patch90 -p1 -%patch91 -p1 -%patch92 -p1 +git init +git config user.email "dracut-maint@redhat.com" +git config user.name "Fedora dracut team" +git add . +git commit -a -q -m "%{version} baseline." + +# Apply all the patches. +git am -p1 %{patches} %build make @@ -477,6 +397,9 @@ rm -rf $RPM_BUILD_ROOT %dir /var/lib/dracut/overlay %changelog +* Fri Oct 21 2011 Harald Hoyer 013-100.git20111021 +- update to latest git + * Thu Oct 20 2011 Harald Hoyer 013-93.git20111020 - update to latest git