OSDN Git Service

2013.10.24
[uclinux-h8/uClinux-dist.git] / freeswan / testing / utils / uml-rhroot.sh
1 #!/bin/sh
2
3 # don't touch below
4 rpmcanon() {
5     rpm=$1
6     for i in `eval echo $d1/$rpm*.rpm $d2/$rpm*.rpm`
7     do
8         if [ -r $i ]
9         then
10             echo $i
11         fi
12     done
13 }
14
15 nri() {
16     list=`for i; do rpmcanon $i; done`
17     rpm --root=$root -i $list
18 }
19
20 usage() {
21     echo "Usage: $0 rootdir cdimagedir" >&2
22     exit 2
23 }
24
25 # ARG1 is space to build root image
26 # ARG2 is pointer to CDs images/etc.
27
28 if [ ! -w / ]
29 then
30     echo unfortunately, you have to run me as root, since I need chroot.
31 fi
32
33 root=$1; shift
34 if [ -z "$root" ]
35 then
36     usage;
37 fi
38
39 if [ -d $root/* ]
40 then
41     echo Root space $root has stuff in it, aborting.
42     exit 0
43 fi
44
45 uproot=`dirname $root`
46 if [ ! -w $uproot ]
47 then
48     echo $uproot is not writable.
49     exit 1
50 fi
51
52 image=$1; shift
53 if [ -z "$image" ] || [ ! -d $image ]
54 then
55     usage;
56 fi
57
58 if [ -d $image/RedHat/RPMS ]
59 then
60     d1=$image/RedHat/RPMS
61     d2=$image/RedHat/RPMS
62     echo "Assuming merged RH disc1/2 at $d1"
63 elif [ -d $image/disc1 ] && [ -d $image/disc2 ]
64 then
65     d1=$image/disc1/RedHat/RPMS
66     d2=$image/disc2/RedHat/RPMS
67     echo "Assuming RH disc1 at $d1"
68     echo "        and disc2 at $d2"
69 elif [ -r $image/basesystem-*.rpm ]
70 then
71     d1=$image
72     echo "Assuming download RPMS directory at $d1"
73 fi
74     
75
76 mkdir -p $root/var/lib/rpm
77 mkdir -p $root/etc $root/usr/bin $root/bin $root/usr/lib $root/lib
78 mkdir -p $root/usr/bin $root/etc/X11/applnk/System $root/usr/include
79
80
81 rpm --root=$root --initdb
82
83 nri basesystem setup filesystem "glibc-[0-9.]*.i386" glibc-common- "slang-[0-9]" "newt-[0-9]" popt- 
84
85 nri info- makeinfo- mktemp- shadow-utils- ntsysv- syslinux- \
86         libtermcap- bzip2- libstdc++- logrotate- \
87         modutils- diffutils- fileutils- findutils- \
88         grep- gzip- psmisc- readline- rootfiles- \
89         console-tools- tar- textutils- \
90         mount- tmpwatch- vim-common- \
91         which- passwd- zlib- util-linux- \
92         chkconfig- db1- "db3-[0-9]" e2fsprogs- \
93         file- iputils- losetup- mingetty- \
94         net-tools- pwdb- netconfig- termcap- \
95         bash- crontabs- iproute- MAKEDEV- \
96         "ncurses-[0-9]" cpio- ed- gawk- less- \
97         procps- redhat-release- sed- sysklogd- \
98         dev- time- vim-minimal- pam- \
99         sh-utils- SysVinit- rpm-4 mingetty- \
100         initscripts- cracklib fileutils- textutils- glib- \
101         termcap- bzip2-libs info krbafs words krb5-libs-
102
103 # do one fixup, not clear why!
104 (cd $root/lib; ln -fs libtermcap.so.2.* libtermcap.so.2 )
105
106 # fixup password file
107 chroot $root pwconv
108
109 # should now chown it to yourself.
110 echo You should now chown it to yourself.
111 # now copy some UML friendly files in
112 #(cd umlroot; tar cf - . ) | (cd $root; tar xf - )
113