Contents of /trunk/mkinitrd/patches/mkinitrd-6.3.5-use-util-linux-blkid-to-support-f2fs.patch
Parent Directory | Revision Log
Revision 2673 -
(show annotations)
(download)
Wed Jul 22 16:02:43 2015 UTC (9 years, 2 months ago) by niro
File size: 3756 byte(s)
Wed Jul 22 16:02:43 2015 UTC (9 years, 2 months ago) by niro
File size: 3756 byte(s)
-f2fs support
1 | diff -Naur mkinitrd-6.3.5/Makefile mkinitrd-6.3.5-f2fs/Makefile |
2 | --- mkinitrd-6.3.5/Makefile 2011-01-29 15:23:07.000000000 +0100 |
3 | +++ mkinitrd-6.3.5-f2fs/Makefile 2015-07-22 18:03:30.533678279 +0200 |
4 | @@ -3,6 +3,8 @@ |
5 | ARCH := $(patsubst i%86,i386,$(shell uname -m)) |
6 | ARCH := $(patsubst sparc%,sparc,$(ARCH)) |
7 | |
8 | +LIBDIR = /usr/lib |
9 | + |
10 | SUBDIRS = grubby livecd isolinux |
11 | |
12 | #ifeq ($(ARCH),sparc) |
13 | @@ -28,7 +30,7 @@ |
14 | chmod +x busybox/scripts/*.sh |
15 | make -C busybox defconfig |
16 | make -C busybox |
17 | - sed 's:%VERSIONTAG%:$(VERSION):' < mkinitrd.in > mkinitrd |
18 | + sed -e 's:%VERSIONTAG%:$(VERSION):' -e 's:%LIBDIR%:$(LIBDIR):g' < mkinitrd.in > mkinitrd |
19 | |
20 | test: all |
21 | for i in grubby busybox klibc; do make -C $$i test; done |
22 | @@ -44,6 +46,8 @@ |
23 | install -m755 installkernel $(DESTDIR)/sbin/installkernel |
24 | install -m 644 installkernel.8 $(DESTDIR)/$(mandir)/man8/installkernel.8 |
25 | chmod 755 $(DESTDIR)/sbin/mkinitrd |
26 | + mkdir -p $(DESTDIR)/$(LIBDIR)/mkinitrd |
27 | + install -m755 solibcopy $(DESTDIR)/$(LIBDIR)/mkinitrd/solibcopy |
28 | install -m644 mkinitrd.8 $(DESTDIR)/$(mandir)/man8/mkinitrd.8 |
29 | install -m644 mkinitrd.confd $(DESTDIR)/etc/conf.d/mkinitrd |
30 | install -m755 busybox/busybox $(DESTDIR)/usr/sbin/busybox.mkinitrd |
31 | diff -Naur mkinitrd-6.3.5/mkinitrd.in mkinitrd-6.3.5-f2fs/mkinitrd.in |
32 | --- mkinitrd-6.3.5/mkinitrd.in 2015-07-22 17:37:33.936060115 +0200 |
33 | +++ mkinitrd-6.3.5-f2fs/mkinitrd.in 2015-07-22 18:02:34.542311435 +0200 |
34 | @@ -35,6 +35,7 @@ |
35 | |
36 | VERSION=%VERSIONTAG% |
37 | |
38 | +SOLIBCOPY="%LIBDIR%/mkinitrd/solibcopy" |
39 | PROBE="yes" |
40 | MODULES="" |
41 | PREMODS="" |
42 | @@ -339,7 +340,7 @@ |
43 | then |
44 | eval "${dev}" |
45 | else |
46 | - eval $(busybox.mkinitrd blkid ${dev} | grep "${dev}:" | sed 's/.*:\ //') |
47 | + eval $(blkid ${dev} | grep "${dev}:" | sed 's/.*:.*UUID="\(.*\).*TYPE.*/UUID="\1"/') |
48 | fi |
49 | echo ${UUID} |
50 | } |
51 | @@ -742,6 +743,12 @@ |
52 | fi |
53 | fi |
54 | |
55 | +# install blkid |
56 | +if type -P blkid &> /dev/null |
57 | +then |
58 | + DESTROOT="${DEST}" ${SOLIBCOPY} blkid |
59 | +fi |
60 | + |
61 | # create some needed device nodes |
62 | mkdir ${DEST}/dev/pts || die |
63 | mkdir ${DEST}/dev/shm || die |
64 | @@ -903,7 +910,14 @@ |
65 | |
66 | add_initrd 'echo "-- Mounting sysroot ..."' |
67 | add_initrd '. /etc/rootdev' |
68 | -add_initrd 'echo "${device} /sysroot ${rootfs} defaults,ro 0 0" > /etc/fstab' |
69 | +# special handling for f2fs required |
70 | +if [[ ${rootfs} = f2fs ]] |
71 | +then |
72 | + add_initrd 'eval "${device}"' |
73 | + add_initrd 'echo "$(blkid -U ${UUID}) /sysroot ${rootfs} defaults,ro 0 0" > /etc/fstab' |
74 | +else |
75 | + add_initrd 'echo "${device} /sysroot ${rootfs} defaults,ro 0 0" > /etc/fstab' |
76 | +fi |
77 | add_initrd 'mount /sysroot || ash' |
78 | |
79 | # unset hotplug event-manager |
80 | diff -Naur mkinitrd-6.3.5/solibcopy mkinitrd-6.3.5-f2fs/solibcopy |
81 | --- mkinitrd-6.3.5/solibcopy 1970-01-01 01:00:00.000000000 +0100 |
82 | +++ mkinitrd-6.3.5-f2fs/solibcopy 2015-07-22 17:38:43.740247197 +0200 |
83 | @@ -0,0 +1,40 @@ |
84 | +#!/bin/bash |
85 | + |
86 | +all_binaries="$@" |
87 | + |
88 | +: ${DESTROOT=/tmp/solibcopy} |
89 | + |
90 | +for binary in ${all_binaries} |
91 | +do |
92 | + fullpath="$(type -P ${binary})" |
93 | + path="$(dirname ${fullpath})" |
94 | + if [ -e ${fullpath} ] |
95 | + then |
96 | + for solib in $(ldd ${fullpath} | sed "s:.*=>\ \(.*\):\1:;s:\(.*\)\ (.*:\1:") |
97 | + do |
98 | + if [ -e ${solib} ] |
99 | + then |
100 | + solibpath="$(dirname ${solib})" |
101 | + install -d "${DESTROOT}"/"${solibpath}" |
102 | + cp -a "${solib}" ${DESTROOT}/"${solibpath}"/ |
103 | + if [ -L ${solib} ] |
104 | + then |
105 | + soliblink="$(readlink ${solib})" |
106 | + if [[ $(basename ${soliblink}) = ${soliblink} ]] |
107 | + then |
108 | + soliblinkpath="${solibpath}" |
109 | + else |
110 | + soliblinkpath="$(dirname ${soliblink})" |
111 | + fi |
112 | + install -d "${DESTROOT}"/"${soliblinkpath}" |
113 | + cp -a "${soliblinkpath}"/"${soliblink}" "${DESTROOT}"/"${soliblinkpath}"/ |
114 | + fi |
115 | + fi |
116 | + done |
117 | + # copy the binary itself |
118 | + install -d "${DESTROOT}"/"${path}" |
119 | + cp -a "${fullpath}" "${DESTROOT}"/"${path}"/ |
120 | + else |
121 | + echo "binary '${binary}' not found!" |
122 | + fi |
123 | +done |