Change-Id: I79e7a9c862f1a3f1ad839cf67df6fe9dde66ab1e
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/2626
Tested-by: gerrit-photon <photon-checkins@vmware.com>
Reviewed-by: Alexey Makhalov <amakhalov@vmware.com>
1 | 1 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,42 @@ |
0 |
+diff --git a/dracut-init.sh b/dracut-init.sh |
|
1 |
+index 43128e1..d1182f4 100644 |
|
2 |
+--- a/dracut-init.sh |
|
3 |
+@@ -19,11 +19,7 @@ |
|
4 |
+ # |
|
5 |
+ export LC_MESSAGES=C |
|
6 |
+ |
|
7 |
+-if [[ "$EUID" = "0" ]]; then |
|
8 |
+- export DRACUT_CP="cp --reflink=auto --sparse=auto --preserve=mode,timestamps,xattr,links -dfr" |
|
9 |
+-else |
|
10 |
+ export DRACUT_CP="cp --reflink=auto --sparse=auto --preserve=mode,timestamps,links -dfr" |
|
11 |
+-fi |
|
12 |
+ |
|
13 |
+ # is_func <command> |
|
14 |
+ # Check whether $1 is a function. |
|
15 |
+diff --git a/install/dracut-install.c b/install/dracut-install.c |
|
16 |
+index 32faee6..d7fe26c 100644 |
|
17 |
+--- a/install/dracut-install.c |
|
18 |
+@@ -300,10 +300,6 @@ static int cp(const char *src, const char *dst) |
|
19 |
+ normal_copy: |
|
20 |
+ pid = fork(); |
|
21 |
+ if (pid == 0) { |
|
22 |
+- if (geteuid() == 0) |
|
23 |
+- execlp("cp", "cp", "--reflink=auto", "--sparse=auto", "--preserve=mode,xattr,timestamps", "-fL", src, dst, |
|
24 |
+- NULL); |
|
25 |
+- else |
|
26 |
+ execlp("cp", "cp", "--reflink=auto", "--sparse=auto", "--preserve=mode,timestamps", "-fL", src, dst, |
|
27 |
+ NULL); |
|
28 |
+ _exit(EXIT_FAILURE); |
|
29 |
+@@ -312,10 +308,6 @@ static int cp(const char *src, const char *dst) |
|
30 |
+ while (waitpid(pid, &ret, 0) < 0) { |
|
31 |
+ if (errno != EINTR) { |
|
32 |
+ ret = -1; |
|
33 |
+- if (geteuid() == 0) |
|
34 |
+- log_error("Failed: cp --reflink=auto --sparse=auto --preserve=mode,xattr,timestamps -fL %s %s", src, |
|
35 |
+- dst); |
|
36 |
+- else |
|
37 |
+ log_error("Failed: cp --reflink=auto --sparse=auto --preserve=mode,timestamps -fL %s %s", src, |
|
38 |
+ dst); |
|
39 |
+ break; |
... | ... |
@@ -5,7 +5,7 @@ |
5 | 5 |
|
6 | 6 |
Name: dracut |
7 | 7 |
Version: 045 |
8 |
-Release: 1%{?dist} |
|
8 |
+Release: 2%{?dist} |
|
9 | 9 |
Group: System Environment/Base |
10 | 10 |
# The entire source code is GPLv2+ |
11 | 11 |
# except install/* which is LGPLv2+ |
... | ... |
@@ -18,6 +18,8 @@ Source0: http://www.kernel.org/pub/linux/utils/boot/dracut/dracut-%{version}.tar |
18 | 18 |
Source1: https://sourceforge.net/projects/asciidoc/files/asciidoc/8.6.9/asciidoc-8.6.9.tar.gz |
19 | 19 |
%define sha1 asciidoc=82e574dd061640561fa0560644bc74df71fb7305 |
20 | 20 |
Patch0: https://www.gnu.org/licenses/lgpl-2.1.txt |
21 |
+Patch1: disable-xattr.patch |
|
22 |
+Patch2: fix-initrd-naming-for-photon.patch |
|
21 | 23 |
Summary: dracut to create initramfs |
22 | 24 |
Vendor: VMware, Inc. |
23 | 25 |
Distribution: Photon |
... | ... |
@@ -48,6 +50,8 @@ This package contains tools to assemble the local initrd and host configuration. |
48 | 48 |
%setup -q -n %{name}-%{version} |
49 | 49 |
cp %{PATCH0} . |
50 | 50 |
tar xf %{SOURCE1} --no-same-owner |
51 |
+%patch1 -p1 |
|
52 |
+%patch2 -p1 |
|
51 | 53 |
|
52 | 54 |
%build |
53 | 55 |
%configure --systemdsystemunitdir=%{_unitdir} --bashcompletiondir=$(pkg-config --variable=completionsdir bash-completion) \ |
... | ... |
@@ -115,7 +119,7 @@ rm -rf -- $RPM_BUILD_ROOT |
115 | 115 |
%dir %{dracutlibdir} |
116 | 116 |
%dir %{dracutlibdir}/modules.d |
117 | 117 |
%{dracutlibdir}/modules.d/* |
118 |
-/usr/lib/kernel/install.d/* |
|
118 |
+%exclude %{_libdir}/kernel |
|
119 | 119 |
/usr/lib/dracut/dracut-init.sh |
120 | 120 |
/usr/share/pkgconfig/dracut.pc |
121 | 121 |
%{dracutlibdir}/dracut-functions.sh |
... | ... |
@@ -157,6 +161,8 @@ rm -rf -- $RPM_BUILD_ROOT |
157 | 157 |
%dir /var/lib/dracut/overlay |
158 | 158 |
|
159 | 159 |
%changelog |
160 |
+* Thu Apr 27 2017 Bo Gan <ganb@vmware.com> 045-2 |
|
161 |
+- Disable xattr for cp |
|
160 | 162 |
* Wed Apr 12 2017 Chang Lee <changlee@vmware.com> 045-1 |
161 | 163 |
- Updated to 045 |
162 | 164 |
* Wed Jan 25 2017 Harish Udaiya Kumar <hudaiyakumr@vmware.com> 044-6 |
163 | 165 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,153 @@ |
0 |
+diff --git a/lsinitrd.sh b/lsinitrd.sh |
|
1 |
+index b19a66a..7bb1188 100755 |
|
2 |
+--- a/lsinitrd.sh |
|
3 |
+@@ -92,15 +92,7 @@ if [[ $1 ]]; then |
|
4 |
+ exit 1 |
|
5 |
+ fi |
|
6 |
+ else |
|
7 |
+- [[ -f /etc/machine-id ]] && read MACHINE_ID < /etc/machine-id |
|
8 |
+- |
|
9 |
+- if [[ -d /boot/loader/entries || -L /boot/loader/entries ]] \ |
|
10 |
+- && [[ $MACHINE_ID ]] \ |
|
11 |
+- && [[ -d /boot/${MACHINE_ID} || -L /boot/${MACHINE_ID} ]] ; then |
|
12 |
+- image="/boot/${MACHINE_ID}/${KERNEL_VERSION}/initrd" |
|
13 |
+- else |
|
14 |
+- image="/boot/initramfs-${KERNEL_VERSION}.img" |
|
15 |
+- fi |
|
16 |
++ image="/boot/initrd.img-${KERNEL_VERSION}" |
|
17 |
+ fi |
|
18 |
+ |
|
19 |
+ shift |
|
20 |
+diff --git a/mkinitrd-dracut.sh b/mkinitrd-dracut.sh |
|
21 |
+index da34e34..638280a 100755 |
|
22 |
+--- a/mkinitrd-dracut.sh |
|
23 |
+@@ -1,5 +1,5 @@ |
|
24 |
+ #!/bin/bash --norc |
|
25 |
+-kver=$(uname -r) |
|
26 |
++kernel_ver_dir='/var/lib/initramfs/kernel' |
|
27 |
+ |
|
28 |
+ boot_dir="/boot" |
|
29 |
+ quiet=0 |
|
30 |
+@@ -48,63 +48,16 @@ read_arg() { |
|
31 |
+ fi |
|
32 |
+ } |
|
33 |
+ |
|
34 |
+-# Taken over from SUSE mkinitrd |
|
35 |
++# For photon |
|
36 |
+ default_kernel_images() { |
|
37 |
+- local regex kernel_image kernel_version version_version initrd_image |
|
38 |
+- local qf='%{NAME}-%{VERSION}-%{RELEASE}\n' |
|
39 |
+- |
|
40 |
+- case "$(uname -m)" in |
|
41 |
+- s390|s390x) |
|
42 |
+- regex='image' |
|
43 |
+- ;; |
|
44 |
+- ppc|ppc64) |
|
45 |
+- regex='vmlinux' |
|
46 |
+- ;; |
|
47 |
+- i386|x86_64) |
|
48 |
+- regex='vmlinuz' |
|
49 |
+- ;; |
|
50 |
+- arm*) |
|
51 |
+- regex='[uz]Image' |
|
52 |
+- ;; |
|
53 |
+- aarch64) |
|
54 |
+- regex='Image' |
|
55 |
+- ;; |
|
56 |
+- *) regex='vmlinu.' |
|
57 |
+- ;; |
|
58 |
+- esac |
|
59 |
++ local kernel_version |
|
60 |
+ |
|
61 |
+- # user mode linux |
|
62 |
+- if grep -q UML /proc/cpuinfo; then |
|
63 |
+- regex='linux' |
|
64 |
+- fi |
|
65 |
++ for kernel_version in $(ls $kernel_ver_dir) ; do |
|
66 |
++ |
|
67 |
++ # Take this directory as the source of truth |
|
68 |
++ kernels="$kernels $kernel_version" |
|
69 |
++ targets="$targets $boot_dir/initrd.img-$kernel_version" |
|
70 |
+ |
|
71 |
+- kernel_images="" |
|
72 |
+- initrd_images="" |
|
73 |
+- for kernel_image in $(ls $boot_dir \ |
|
74 |
+- | sed -ne "\|^$regex\(-[0-9.]\+-[0-9]\+-[a-z0-9]\+$\)\?|p" \ |
|
75 |
+- | grep -v kdump$ ) ; do |
|
76 |
+- |
|
77 |
+- # Note that we cannot check the RPM database here -- this |
|
78 |
+- # script is itself called from within the binary kernel |
|
79 |
+- # packages, and rpm does not allow recursive calls. |
|
80 |
+- |
|
81 |
+- [ -L "$boot_dir/$kernel_image" ] && continue |
|
82 |
+- [ "${kernel_image%%.gz}" != "$kernel_image" ] && continue |
|
83 |
+- kernel_version=$(/usr/bin/get_kernel_version \ |
|
84 |
+- $boot_dir/$kernel_image 2> /dev/null) |
|
85 |
+- initrd_image=$(echo $kernel_image | sed -e "s|${regex}|initrd|") |
|
86 |
+- if [ "$kernel_image" != "$initrd_image" -a \ |
|
87 |
+- -n "$kernel_version" -a \ |
|
88 |
+- -d "/lib/modules/$kernel_version" ]; then |
|
89 |
+- kernel_images="$kernel_images $boot_dir/$kernel_image" |
|
90 |
+- initrd_images="$initrd_images $boot_dir/$initrd_image" |
|
91 |
+- fi |
|
92 |
+- done |
|
93 |
+- for kernel_image in $kernel_images;do |
|
94 |
+- kernels="$kernels ${kernel_image#*-}" |
|
95 |
+- done |
|
96 |
+- for initrd_image in $initrd_images;do |
|
97 |
+- targets="$targets $initrd_image" |
|
98 |
+ done |
|
99 |
+ host_only=1 |
|
100 |
+ force=1 |
|
101 |
+@@ -187,7 +140,7 @@ while (($# > 0)); do |
|
102 |
+ done |
|
103 |
+ |
|
104 |
+ [[ $targets && $kernels ]] || default_kernel_images |
|
105 |
+-[[ $targets && $kernels ]] || (error "No kernel found in $boot_dir" && usage) |
|
106 |
++[[ $targets && $kernels ]] || (error "No Kernel Registered") |
|
107 |
+ |
|
108 |
+ # We can have several targets/kernels, transform the list to an array |
|
109 |
+ targets=( $targets ) |
|
110 |
+@@ -196,7 +149,6 @@ targets=( $targets ) |
|
111 |
+ [[ $host_only == 1 ]] && dracut_args="${dracut_args} -H" |
|
112 |
+ [[ $force == 1 ]] && dracut_args="${dracut_args} -f" |
|
113 |
+ |
|
114 |
+-echo "Creating: target|kernel|dracut args|basicmodules " |
|
115 |
+ for ((i=0 ; $i<${#targets[@]} ; i++)); do |
|
116 |
+ |
|
117 |
+ if [[ $img_vers ]];then |
|
118 |
+@@ -206,21 +158,27 @@ for ((i=0 ; $i<${#targets[@]} ; i++)); do |
|
119 |
+ fi |
|
120 |
+ kernel="${kernels[$i]}" |
|
121 |
+ |
|
122 |
++ if [[ -s "$kernel_ver_dir/$kernel" ]]; then |
|
123 |
++ readarray -t kernel_cfg < <(xargs -n1 -a $kernel_ver_dir/$kernel) |
|
124 |
++ else |
|
125 |
++ kernel_cfg=() |
|
126 |
++ fi |
|
127 |
++ |
|
128 |
+ # Duplicate code: No way found how to redirect output based on $quiet |
|
129 |
+ if [[ $quiet == 1 ]];then |
|
130 |
+- echo "$target|$kernel|$dracut_args|$basicmodules" |
|
131 |
++ echo "Creating $target" |
|
132 |
+ if [[ $basicmodules ]]; then |
|
133 |
+- dracut $dracut_args --add-drivers "$basicmodules" "$target" \ |
|
134 |
++ dracut $dracut_args --add-drivers "$basicmodules" "${kernel_cfg[@]}" "$target" \ |
|
135 |
+ "$kernel" &>/dev/null |
|
136 |
+ else |
|
137 |
+- dracut $dracut_args "$target" "$kernel" &>/dev/null |
|
138 |
++ dracut $dracut_args "${kernel_cfg[@]}" "$target" "$kernel" &>/dev/null |
|
139 |
+ fi |
|
140 |
+ else |
|
141 |
+ if [[ $basicmodules ]]; then |
|
142 |
+- dracut $dracut_args --add-drivers "$basicmodules" "$target" \ |
|
143 |
++ dracut $dracut_args --add-drivers "$basicmodules" "${kernel_cfg[@]}" "$target" \ |
|
144 |
+ "$kernel" |
|
145 |
+ else |
|
146 |
+- dracut $dracut_args "$target" "$kernel" |
|
147 |
++ dracut $dracut_args "${kernel_cfg[@]}" "$target" "$kernel" |
|
148 |
+ fi |
|
149 |
+ fi |
|
150 |
+ done |
... | ... |
@@ -1,48 +1,78 @@ |
1 | 1 |
Summary: initramfs |
2 | 2 |
Name: initramfs |
3 |
-Version: 1.0 |
|
4 |
-Release: 7%{?kernelsubrelease}%{?dist} |
|
3 |
+Version: 2.0 |
|
4 |
+Release: 1%{?dist} |
|
5 |
+Source0: fscks.conf |
|
5 | 6 |
License: Apache License |
6 | 7 |
Group: System Environment/Base |
7 | 8 |
Vendor: VMware, Inc. |
8 | 9 |
Distribution: Photon |
9 |
-BuildRequires: linux = %{KERNEL_VERSION}-%{KERNEL_RELEASE} |
|
10 |
-BuildRequires: dracut |
|
11 |
-BuildRequires: ostree |
|
12 |
-BuildRequires: e2fsprogs |
|
13 |
-Requires: linux = %{KERNEL_VERSION}-%{KERNEL_RELEASE} |
|
10 |
+Provides: initramfs |
|
11 |
+Requires: dracut |
|
14 | 12 |
|
15 | 13 |
%description |
16 |
-Photon release files such as yum configs and other /etc/ release related files |
|
17 |
- |
|
18 |
-%prep |
|
19 |
-umask 022 |
|
20 |
-cd /usr/src/photon/BUILD |
|
21 |
-cd /usr/src/photon/BUILD |
|
22 |
-rm -rf initramfs |
|
23 |
-mkdir initramfs |
|
24 |
-cd initramfs |
|
25 |
-/bin/chmod -Rf a+rX,u+w,g-w,o-w . |
|
26 |
-echo 'add_drivers+="tmem xen-acpi-processor xen-evtchn xen-gntalloc xen-gntdev xen-privcmd xen-pciback xenfs hv_ballon hv_utils hv_vmbus cn"' >> /etc/dracut.conf |
|
27 |
- |
|
28 |
-echo 'add_dracutmodules+=" ostree systemd "' > /etc/dracut.conf.d/ostree.conf |
|
29 |
- |
|
30 |
-%build |
|
31 |
-dracut --force --kver %{KERNEL_VERSION}-%{KERNEL_RELEASE} --fscks "e2fsck fsck fsck.ext2 fsck.ext3 fsck.ext4" initrd.img-%{KERNEL_VERSION}-%{KERNEL_RELEASE} |
|
14 |
+This package provides the configuration files for initrd generation. |
|
15 |
+ |
|
32 | 16 |
%install |
33 |
-rm -rf $RPM_BUILD_ROOT |
|
34 |
-install -d $RPM_BUILD_ROOT/boot |
|
35 |
-install -m 600 initrd.img-%{KERNEL_VERSION}-%{KERNEL_RELEASE} $RPM_BUILD_ROOT/boot/initrd.img-%{KERNEL_VERSION}-%{KERNEL_RELEASE} |
|
17 |
+mkdir -p %{buildroot}%{_sysconfdir}/dracut.conf.d |
|
18 |
+install -D -m644 %{SOURCE0} %{buildroot}%{_sysconfdir}/dracut.conf.d/ |
|
19 |
+install -d -m755 %{buildroot}%{_localstatedir}/lib/initramfs/kernel |
|
20 |
+ |
|
21 |
+%define watched_path %{_sbindir} %{_libdir}/udev/rules.d %{_libdir}/systemd/system /lib/modules |
|
22 |
+%define watched_pkgs e2fsprogs, ostree, systemd, kpartx, device-mapper-multipath |
|
23 |
+ |
|
24 |
+%define removal_action \ |
|
25 |
+rm -rf %{_localstatedir}/lib/rpm-state/initramfs.regenerate \ |
|
26 |
+rm -rf %{_localstatedir}/lib/rpm-state/initramfs.pending |
|
27 |
+ |
|
28 |
+%define pkgs_trigger_action \ |
|
29 |
+[ -f %{_localstatedir}/lib/rpm-state/initramfs.regenerate ] && exit 0 \ |
|
30 |
+mkdir -p %{_localstatedir}/lib/rpm-state \ |
|
31 |
+touch %{_localstatedir}/lib/rpm-state/initramfs.regenerate \ |
|
32 |
+echo "initramfs (re)generation triggered" >&2 |
|
33 |
+ |
|
34 |
+%define file_trigger_action \ |
|
35 |
+if [ -f %{_localstatedir}/lib/rpm-state/initramfs.regenerate ]; then \ |
|
36 |
+ echo "(re)generate initramfs for all kernels" >&2 \ |
|
37 |
+ mkinitrd -q \ |
|
38 |
+elif [ -d %{_localstatedir}/lib/rpm-state/initramfs.pending ]; then \ |
|
39 |
+ for k in `ls %{_localstatedir}/lib/rpm-state/initramfs.pending/`; do \ |
|
40 |
+ echo "generate initramfs for $k" >&2 \ |
|
41 |
+ mkinitrd -q /boot/initrd.img-$k $k \ |
|
42 |
+ done; \ |
|
43 |
+fi \ |
|
44 |
+%{removal_action} |
|
45 |
+ |
|
46 |
+%post |
|
47 |
+%{pkgs_trigger_action} |
|
48 |
+ |
|
49 |
+%postun |
|
50 |
+[ $1 -eq 0 ] || exit 0 |
|
51 |
+%{removal_action} |
|
52 |
+ |
|
53 |
+%posttrans |
|
54 |
+%{file_trigger_action} |
|
55 |
+ |
|
56 |
+%triggerin -- %{watched_pkgs} |
|
57 |
+%{pkgs_trigger_action} |
|
58 |
+ |
|
59 |
+%triggerun -- %{watched_pkgs} |
|
60 |
+%{pkgs_trigger_action} |
|
61 |
+ |
|
62 |
+%transfiletriggerin -- %{watched_path} |
|
63 |
+%{file_trigger_action} |
|
36 | 64 |
|
37 |
-%clean |
|
38 |
-rm -rf $RPM_BUILD_ROOT |
|
65 |
+%transfiletriggerpostun -- %{watched_path} |
|
66 |
+%{file_trigger_action} |
|
39 | 67 |
|
40 | 68 |
%files |
41 | 69 |
%defattr(-,root,root,-) |
42 |
-%dir /boot |
|
43 |
-/boot/initrd.img-%{KERNEL_VERSION}-%{KERNEL_RELEASE} |
|
70 |
+%{_sysconfdir}/dracut.conf.d/fscks.conf |
|
71 |
+%dir %{_localstatedir}/lib/initramfs/kernel |
|
44 | 72 |
|
45 | 73 |
%changelog |
74 |
+* Wed Apr 12 2017 Bo Gan <ganb@vmware.com> 2.0-1 |
|
75 |
+- Made initrd generation dynamic, triggers for systemd, e2fs-progs |
|
46 | 76 |
* Wed Nov 30 2016 Alexey Makhalov <amakhalov@vmware.com> 1.0-7 |
47 | 77 |
- Expand uname -r to have release number |
48 | 78 |
* Wed Nov 23 2016 Anish Swaminathan <anishs@vmware.com> 1.0-6 |
49 | 79 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,9 @@ |
0 |
+%triggerin -- initramfs |
|
1 |
+mkdir -p %{_localstatedir}/lib/rpm-state/initramfs/kernel.pending |
|
2 |
+touch %{_localstatedir}/lib/rpm-state/initramfs/kernel.pending/%{uname_r} |
|
3 |
+echo "initrd generation of kernel %{uname_r} will be triggered later" >&2 |
|
4 |
+ |
|
5 |
+%triggerun -- initramfs |
|
6 |
+rm -rf %{_localstatedir}/lib/rpm-state/initramfs/kernel.pending/%{uname_r} |
|
7 |
+rm -rf /boot/initrd.img-%{uname_r} |
|
8 |
+echo "initrd of kernel %{uname_r} removed" >&2 |
... | ... |
@@ -2,7 +2,7 @@ |
2 | 2 |
Summary: Kernel |
3 | 3 |
Name: linux-esx |
4 | 4 |
Version: 4.9.24 |
5 |
-Release: 1%{?dist} |
|
5 |
+Release: 2%{?dist} |
|
6 | 6 |
License: GPLv2 |
7 | 7 |
URL: http://www.kernel.org/ |
8 | 8 |
Group: System Environment/Kernel |
... | ... |
@@ -11,6 +11,7 @@ Distribution: Photon |
11 | 11 |
Source0: http://www.kernel.org/pub/linux/kernel/v4.x/linux-%{version}.tar.xz |
12 | 12 |
%define sha1 linux=c504e8817a320030313710066360bc50be7bebe8 |
13 | 13 |
Source1: config-esx-%{version} |
14 |
+Source2: initramfs.trigger |
|
14 | 15 |
# common |
15 | 16 |
Patch0: x86-vmware-read-tsc_khz-only-once-at-boot-time.patch |
16 | 17 |
Patch1: x86-vmware-use-tsc_khz-value-for-calibrate_cpu.patch |
... | ... |
@@ -136,8 +137,13 @@ cat > %{buildroot}/boot/linux-%{uname_r}.cfg << "EOF" |
136 | 136 |
# GRUB Environment Block |
137 | 137 |
photon_cmdline=init=/lib/systemd/systemd rcupdate.rcu_expedited=1 rw systemd.show_status=0 quiet noreplace-smp cpu_init_udelay=0 |
138 | 138 |
photon_linux=vmlinuz-%{uname_r} |
139 |
+#photon_initrd=initrd.img-%{uname_r} |
|
139 | 140 |
EOF |
140 | 141 |
|
142 |
+# Register myself to initramfs |
|
143 |
+mkdir -p %{buildroot}/%{_localstatedir}/lib/initramfs/kernel |
|
144 |
+touch %{buildroot}/%{_localstatedir}/lib/initramfs/kernel/%{uname_r} |
|
145 |
+ |
|
141 | 146 |
# cleanup dangling symlinks |
142 | 147 |
rm -f %{buildroot}/lib/modules/%{uname_r}/source |
143 | 148 |
rm -f %{buildroot}/lib/modules/%{uname_r}/build |
... | ... |
@@ -154,6 +160,8 @@ cp .config %{buildroot}/usr/src/linux-headers-%{uname_r} |
154 | 154 |
ln -sf /usr/src/linux-headers-%{uname_r} %{buildroot}/lib/modules/%{uname_r}/build |
155 | 155 |
find %{buildroot}/lib/modules -name '*.ko' -print0 | xargs -0 chmod u+x |
156 | 156 |
|
157 |
+%include %{SOURCE2} |
|
158 |
+ |
|
157 | 159 |
%post |
158 | 160 |
/sbin/depmod -aq %{uname_r} |
159 | 161 |
ln -sf linux-%{uname_r}.cfg /boot/photon.cfg |
... | ... |
@@ -164,6 +172,7 @@ ln -sf linux-%{uname_r}.cfg /boot/photon.cfg |
164 | 164 |
/boot/config-%{uname_r} |
165 | 165 |
/boot/vmlinuz-%{uname_r} |
166 | 166 |
%config(noreplace) /boot/linux-%{uname_r}.cfg |
167 |
+%config %{_localstatedir}/lib/initramfs/kernel/%{uname_r} |
|
167 | 168 |
/lib/modules/* |
168 | 169 |
%exclude /lib/modules/%{uname_r}/build |
169 | 170 |
%exclude /usr/src |
... | ... |
@@ -178,6 +187,8 @@ ln -sf linux-%{uname_r}.cfg /boot/photon.cfg |
178 | 178 |
/usr/src/linux-headers-%{uname_r} |
179 | 179 |
|
180 | 180 |
%changelog |
181 |
+* Thu Apr 27 2017 Bo Gan <ganb@vmware.com> 4.9.24-2 |
|
182 |
+- Support dynamic initrd generation |
|
181 | 183 |
* Tue Apr 25 2017 Alexey Makhalov <amakhalov@vmware.com> 4.9.24-1 |
182 | 184 |
- Fix CVE-2017-6874 and CVE-2017-7618. |
183 | 185 |
- .config: build nvme and nvme-core in kernel. |
... | ... |
@@ -2,7 +2,7 @@ |
2 | 2 |
Summary: Kernel |
3 | 3 |
Name: linux-secure |
4 | 4 |
Version: 4.9.24 |
5 |
-Release: 1%{?dist} |
|
5 |
+Release: 2%{?dist} |
|
6 | 6 |
License: GPLv2 |
7 | 7 |
URL: http://www.kernel.org/ |
8 | 8 |
Group: System Environment/Kernel |
... | ... |
@@ -12,6 +12,7 @@ Source0: http://www.kernel.org/pub/linux/kernel/v4.x/linux-%{version}.tar. |
12 | 12 |
%define sha1 linux=c504e8817a320030313710066360bc50be7bebe8 |
13 | 13 |
Source1: config-secure-%{version} |
14 | 14 |
Source2: aufs4.9.tar.gz |
15 |
+Source3: initramfs.trigger |
|
15 | 16 |
# common |
16 | 17 |
Patch0: x86-vmware-read-tsc_khz-only-once-at-boot-time.patch |
17 | 18 |
Patch1: x86-vmware-use-tsc_khz-value-for-calibrate_cpu.patch |
... | ... |
@@ -174,6 +175,13 @@ cat > %{buildroot}/boot/linux-%{uname_r}.cfg << "EOF" |
174 | 174 |
# GRUB Environment Block |
175 | 175 |
photon_cmdline=init=/lib/systemd/systemd ro loglevel=3 quiet no-vmw-sta loadpin.enabled=0 slub_debug=P page_poison=1 |
176 | 176 |
photon_linux=vmlinuz-%{uname_r} |
177 |
+photon_initrd=initrd.img-%{uname_r} |
|
178 |
+EOF |
|
179 |
+ |
|
180 |
+# Register myself to initramfs |
|
181 |
+mkdir -p %{buildroot}/%{_localstatedir}/lib/initramfs/kernel |
|
182 |
+cat > %{buildroot}/%{_localstatedir}/lib/initramfs/kernel/%{uname_r} << "EOF" |
|
183 |
+--add-drivers "tmem xen-acpi-processor xen-evtchn xen-gntalloc xen-gntdev xen-privcmd xen-pciback xenfs hv_utils hv_vmbus hv_balloon cn" |
|
177 | 184 |
EOF |
178 | 185 |
|
179 | 186 |
# cleanup dangling symlinks |
... | ... |
@@ -191,6 +199,9 @@ cp .config %{buildroot}/usr/src/linux-headers-%{uname_r} |
191 | 191 |
# symling to the build folder |
192 | 192 |
ln -sf /usr/src/linux-headers-%{uname_r} %{buildroot}/lib/modules/%{uname_r}/build |
193 | 193 |
|
194 |
+ |
|
195 |
+%include %{SOURCE3} |
|
196 |
+ |
|
194 | 197 |
%post |
195 | 198 |
/sbin/depmod -aq %{uname_r} |
196 | 199 |
ln -sf linux-%{uname_r}.cfg /boot/photon.cfg |
... | ... |
@@ -201,6 +212,7 @@ ln -sf linux-%{uname_r}.cfg /boot/photon.cfg |
201 | 201 |
/boot/config-%{uname_r} |
202 | 202 |
/boot/vmlinuz-%{uname_r} |
203 | 203 |
%config(noreplace) /boot/linux-%{uname_r}.cfg |
204 |
+%config %{_localstatedir}/lib/initramfs/kernel/%{uname_r} |
|
204 | 205 |
/lib/firmware/* |
205 | 206 |
/lib/modules/* |
206 | 207 |
%exclude /lib/modules/%{uname_r}/build |
... | ... |
@@ -216,6 +228,8 @@ ln -sf linux-%{uname_r}.cfg /boot/photon.cfg |
216 | 216 |
/usr/src/linux-headers-%{uname_r} |
217 | 217 |
|
218 | 218 |
%changelog |
219 |
+* Thu Apr 27 2017 Bo Gan <ganb@vmware.com> 4.9.24-2 |
|
220 |
+- Support dynamic initrd generation |
|
219 | 221 |
* Tue Apr 25 2017 Alexey Makhalov <amakhalov@vmware.com> 4.9.24-1 |
220 | 222 |
- Fix CVE-2017-6874 and CVE-2017-7618. |
221 | 223 |
- .config: build nvme and nvme-core in kernel. |
... | ... |
@@ -2,7 +2,7 @@ |
2 | 2 |
Summary: Kernel |
3 | 3 |
Name: linux |
4 | 4 |
Version: 4.9.24 |
5 |
-Release: 1%{?dist} |
|
5 |
+Release: 2%{?dist} |
|
6 | 6 |
License: GPLv2 |
7 | 7 |
URL: http://www.kernel.org/ |
8 | 8 |
Group: System Environment/Kernel |
... | ... |
@@ -11,6 +11,7 @@ Distribution: Photon |
11 | 11 |
Source0: http://www.kernel.org/pub/linux/kernel/v4.x/linux-%{version}.tar.xz |
12 | 12 |
%define sha1 linux=c504e8817a320030313710066360bc50be7bebe8 |
13 | 13 |
Source1: config-%{version} |
14 |
+Source2: initramfs.trigger |
|
14 | 15 |
# common |
15 | 16 |
Patch0: x86-vmware-read-tsc_khz-only-once-at-boot-time.patch |
16 | 17 |
Patch1: x86-vmware-use-tsc_khz-value-for-calibrate_cpu.patch |
... | ... |
@@ -162,6 +163,12 @@ photon_linux=vmlinuz-%{uname_r} |
162 | 162 |
photon_initrd=initrd.img-%{uname_r} |
163 | 163 |
EOF |
164 | 164 |
|
165 |
+# Register myself to initramfs |
|
166 |
+mkdir -p %{buildroot}/%{_localstatedir}/lib/initramfs/kernel |
|
167 |
+cat > %{buildroot}/%{_localstatedir}/lib/initramfs/kernel/%{uname_r} << "EOF" |
|
168 |
+--add-drivers "tmem xen-acpi-processor xen-evtchn xen-gntalloc xen-gntdev xen-privcmd xen-pciback xenfs hv_utils hv_vmbus hv_balloon cn" |
|
169 |
+EOF |
|
170 |
+ |
|
165 | 171 |
# Cleanup dangling symlinks |
166 | 172 |
rm -rf %{buildroot}/lib/modules/%{uname_r}/source |
167 | 173 |
rm -rf %{buildroot}/lib/modules/%{uname_r}/build |
... | ... |
@@ -183,6 +190,8 @@ find %{buildroot}/lib/modules -name '*.ko' -print0 | xargs -0 chmod u+x |
183 | 183 |
# Linux version that was affected is 4.4.26 |
184 | 184 |
make -C tools JOBS=1 DESTDIR=%{buildroot} prefix=%{_prefix} perf_install |
185 | 185 |
|
186 |
+%include %{SOURCE2} |
|
187 |
+ |
|
186 | 188 |
%post |
187 | 189 |
/sbin/depmod -aq %{uname_r} |
188 | 190 |
ln -sf %{name}-%{uname_r}.cfg /boot/photon.cfg |
... | ... |
@@ -202,6 +211,7 @@ ln -sf %{name}-%{uname_r}.cfg /boot/photon.cfg |
202 | 202 |
/boot/config-%{uname_r} |
203 | 203 |
/boot/vmlinuz-%{uname_r} |
204 | 204 |
%config(noreplace) /boot/%{name}-%{uname_r}.cfg |
205 |
+%config %{_localstatedir}/lib/initramfs/kernel/%{uname_r} |
|
205 | 206 |
/lib/firmware/* |
206 | 207 |
%defattr(0644,root,root) |
207 | 208 |
/lib/modules/%{uname_r}/* |
... | ... |
@@ -243,6 +253,8 @@ ln -sf %{name}-%{uname_r}.cfg /boot/photon.cfg |
243 | 243 |
/usr/share/doc/* |
244 | 244 |
|
245 | 245 |
%changelog |
246 |
+* Thu Apr 27 2017 Bo Gan <ganb@vmware.com> 4.9.24-2 |
|
247 |
+- Support dynamic initrd generation |
|
246 | 248 |
* Tue Apr 25 2017 Alexey Makhalov <amakhalov@vmware.com> 4.9.24-1 |
247 | 249 |
- Fix CVE-2017-6874 and CVE-2017-7618. |
248 | 250 |
- Fix audit-devel BuildRequires. |
... | ... |
@@ -410,8 +410,7 @@ class Installer(object): |
410 | 410 |
|
411 | 411 |
def adjust_packages_for_vmware_virt(self): |
412 | 412 |
try: |
413 |
- if (self.install_config['vmware_virt'] and |
|
414 |
- self.install_config['install_linux_esx']): |
|
413 |
+ if self.install_config['install_linux_esx']: |
|
415 | 414 |
selected_packages = self.install_config['packages'] |
416 | 415 |
try: |
417 | 416 |
selected_packages.remove('linux') |
... | ... |
@@ -184,9 +184,6 @@ class IsoInstaller(object): |
184 | 184 |
random_id = '%12x' % random.randrange(16**12) |
185 | 185 |
random_hostname = "photon-" + random_id.strip() |
186 | 186 |
install_config = {'iso_system': False} |
187 |
- install_config['vmware_virt'] = False |
|
188 |
- if self.is_vmware_virtualization(): |
|
189 |
- install_config['vmware_virt'] = True |
|
190 | 187 |
license_agreement = License(self.maxy, self.maxx) |
191 | 188 |
select_disk = SelectDisk(self.maxy, self.maxx, install_config) |
192 | 189 |
select_partition = PartitionISO(self.maxy, self.maxx, install_config) |
... | ... |
@@ -236,7 +233,7 @@ class IsoInstaller(object): |
236 | 236 |
items.append((select_disk.guided_partitions, False)) |
237 | 237 |
items.append((package_selector.display, True)) |
238 | 238 |
select_linux_index = -1 |
239 |
- if install_config['vmware_virt'] == True: |
|
239 |
+ if self.is_vmware_virtualization(): |
|
240 | 240 |
linux_selector = LinuxSelector(self.maxy, self.maxx, install_config) |
241 | 241 |
items.append((linux_selector.display, True)) |
242 | 242 |
select_linux_index = items.index((linux_selector.display, True)) |
... | ... |
@@ -247,6 +244,8 @@ class IsoInstaller(object): |
247 | 247 |
else: |
248 | 248 |
install_config = ks_config |
249 | 249 |
install_config['iso_system'] = False |
250 |
+ if self.is_vmware_virtualization() and 'install_linux_esx' not in install_config: |
|
251 |
+ install_config['install_linux_esx'] = True |
|
250 | 252 |
|
251 | 253 |
installer = InstallerContainer(install_config, self.maxy, self.maxx, True, rpm_path=rpm_path, log_path="/var/log", ks_config=ks_config) |
252 | 254 |
|
... | ... |
@@ -27,8 +27,8 @@ class LinuxSelector(object): |
27 | 27 |
self.menu_starty = self.win_starty + 3 |
28 | 28 |
|
29 | 29 |
self.menu_items = [] |
30 |
- self.menu_items.append(("1. linux", self.set_linux_esx_installation, False)) |
|
31 |
- self.menu_items.append(("2. linux-esx", self.set_linux_esx_installation, True)) |
|
30 |
+ self.menu_items.append(("1. linux-esx", self.set_linux_esx_installation, True)) |
|
31 |
+ self.menu_items.append(("2. linux", self.set_linux_esx_installation, False)) |
|
32 | 32 |
|
33 | 33 |
self.host_menu = Menu(self.menu_starty, self.maxx, self.menu_items, |
34 | 34 |
default_selected = 0, tab_enable=False) |