Magellan Linux

Annotation 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 - (hide annotations) (download)
Wed Jul 22 16:02:43 2015 UTC (8 years, 11 months ago) by niro
File size: 3756 byte(s)
-f2fs support
1 niro 2673 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