Magellan Linux

Contents of /trunk/mkinitrd/patches/mkinitrd-6.3.5-use-util-linux-blkid-to-support-f2fs.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2673 - (show annotations) (download)
Wed Jul 22 16:02:43 2015 UTC (8 years, 9 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