]> git.pld-linux.org Git - packages/anaconda.git/blame - anaconda-upd-instroot
- pl for -debug
[packages/anaconda.git] / anaconda-upd-instroot
CommitLineData
3e6a3a30
PZ
1#!/bin/bash
2
3ORIGDIR=`pwd`
4COMPONENT=""
5DEBUG=""
6
7if [ "$1" == "--debug" ]; then
8 DEBUG="--debug"
9 shift
10fi
11
12if [ "$1" == "--comp" ]; then
13 COMPONENT=$2
14 shift; shift
15fi
16
17if [ -z "$1" ]; then
18 echo "upd-instroot: updates instimage from a Red Hat RPMS directory"
19 echo "usage: $0 --comp <comp> <packagedir> [templatedir] [instroot]"
20 exit 1
21fi
22
23if [ ! -d $1 ]; then
24 if [ -z "$ARCH" ]; then
25 echo "ARCH must be set" >&2
26 exit 1
27 fi
3e6a3a30
PZ
28fi
29
30PACKAGEDIR=$1
31
32if [ -z "$ARCH" ]; then
33 ARCH=`rpm --nodigest --nosignature -qp --qf "%{ARCH}" $PACKAGEDIR/anaconda-runtime*.rpm`
34fi
35
36if [ $ARCH = x86_64 -o $ARCH = s390x ]; then
37 LIBDIR=lib64
38else
39 LIBDIR=lib
40fi
41
42NEEDGR=yes
43
44prunePackageList() {
45 PACKAGEPATH=$1
46 PACKAGES="$2"
47
3e6a3a30
PZ
48 PATTERN=""
49 PACKAGEFILES=""
50 for PKG in $PACKAGES; do
51 PATTERN="${PATTERN:+${PATTERN}|}(^$PKG )"
52 PACKAGEFILES="$PACKAGEFILES $(ls $PACKAGEPATH/$PKG*{$ARCH,noarch}.rpm 2>/dev/null)"
53 done
54
55 # gtk+, enough said
56 PATTERN=$(echo $PATTERN | sed 's,[\+\*],\\&,g')
57
58 PACKAGEFILES=$(ls $PACKAGEFILES | sort -u)
59
60 rpm --nodigest --nosignature --qf "%{NAME} $PACKAGEPATH/%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}.rpm\n" \
61 -qp $PACKAGEFILES | egrep "$PATTERN" | sed 's/.* //'
62}
63
64expandPackageSet() {
65 RPMS=$1
66 PKGDEST=$2
67 KEEPFILES=$3
68
69 [ -d $PKGDEST ] || die "ERROR: directory missing: $PKGDEST"
70 for n in $RPMS; do
71 [ -n "$DEBUG" ] && echo -ne "\rExpanding packages..." $(basename $n)
81a99973 72 if [ "$(rpm --nosignature --nodigest -qp --qf '%{NAME}' $n)" = "tzdata" ] ; then
3e6a3a30
PZ
73 TZDATA=$n
74 fi
75 rpm2cpio $n | (cd $PKGDEST; cpio -E $KEEPFILES --quiet -iumd)
76 [ -n "$DEBUG" ] && echo -ne "\rExpanding packages..." "$(basename $n | sed 's/./ /g')"
77 done
78 pushd $PKGDEST/$LIBDIR >/dev/null 2>&1
79 if [ -d obsolete/linuxthreads/ ]; then
80 for x in obsolete/linuxthreads/*-* ; do
81 lib_base=$(basename $x | cut -d- -f1)
82 rm -f ./$lib_base[.-]*
83 mv -f obsolete/linuxthreads/$lib_base[.-]* .
84 done
85 rmdir obsolete/linuxthreads obsolete
86 fi
87 popd >/dev/null 2>&1
88}
89
90die () {
91 echo "$@"
92 echo "Aborting instroot creation..."
93 exit 1
94}
95
96if [ -z "$2" ]; then
97 DEST=/tmp/upd-instroot
98else
99 DEST=$2
100fi
101
102if [ -z "$3" ]; then
103 DESTGR=/tmp/upd-instroot
104else
105 DESTGR=$3
106fi
107
108rm -rf $DEST $DESTGR
109mkdir -p $DEST
110mkdir -p $DESTGR
111
81a99973
ER
112PACKAGES="glibc glibc-common setup openssl python newt slang libselinux
113 libsepol libtermcap zlib ash e2fsprogs util-linux raidtools popt
70769ef1 114 procps rpm rpm-lib XFree86 Xconfigurator anaconda tzdata
81a99973 115 anaconda-runtime kudzu hwdata bzip2 beecrypt mdadm libsemanage
c7487dae 116 bzip2-libs dosfstools pciutils reiserfsprogs parted sed
70769ef1
ER
117 busybox-anaconda python-rpm python-booty hdparm lvm2 beecrypt device-mapper dlm
118 python-rhpl pyxf86config libxml2 python-libxml2 glib2 sqlite neon
81a99973
ER
119 elfutils-libelf krb5-libs convertdb1 jfsutils
120 xfsprogs xfsdump dmapi libacl libattr attr acl python-urlgrabber
70769ef1 121 policy policycoreutils pyparted X11 X11-tools selinux-policy-targeted
81a99973
ER
122 libstdc++ expat libgcc readline ncurses yum python-sqlite
123 python-elementtree pykickstart e2fsprogs-libs iscsi-initiator-utils
70769ef1 124 db4 bash glibc-misc python-libs python-parted python-xf86config"
81a99973
ER
125
126if [ $ARCH = i386 -o $ARCH = x86_64 ]; then
c7487dae 127 PACKAGES="$PACKAGES pcmciautils pcmcia-cs"
3e6a3a30
PZ
128fi
129
130if [ $ARCH = ia64 ]; then
131 PACKAGES="$PACKAGES elilo"
132fi
133
134if [ $ARCH = s390 -o $ARCH = s390x ]; then
135 PACKAGES="$PACKAGES s390utils binutils libgcc tcp_wrappers
136 sed net-tools xinetd openssl openssh openssh-server coreutils
137 login initscripts XFree86-xauth bash portmap pam
138 telnet-server login mount grep modutils gawk
139 XFree86-libs strace xorg-x11-xauth xorg-x11-libs"
140fi
141
81a99973
ER
142if [ $ARCH != s390 -a $ARCH != s390x ]; then
143 PACKAGES="$PACKAGES python-pyblock"
144fi
145
3e6a3a30 146if [ $ARCH = ppc -o $ARCH = ppc64 ]; then
81a99973 147 PACKAGES="$PACKAGES pcmciautils pdisk yaboot hfsutils"
3e6a3a30
PZ
148fi
149
150# xpm is missing
151
152# Some packages are listed twice, but that's okay
153#
154# The packages in this list are needed for the graphical installer to run
155#
156# Extra stuff we want for rescue mode should go in PACKAGESRESCUE
157#
81a99973
ER
158PACKAGESGR="anaconda XFree86-libs libpng XFree86-75dpi-fonts
159 XFree86-ISO8859-2-75dpi-fonts gtk2 libglade2
160 XFree86-ISO8859-9-75dpi-fonts
161 XFree86-100dpi-fonts fonts-ISO8859-2 fonts-ISO8859-9
162 XFree86-xfs e2fsprogs coreutils glibc glibc-common
163 popt specspo util-linux rpm rpm-libs tzdata
164 procps bash cpio gpm pygtk2-libglade
165 XFree86 Xconfigurator pygtk2 gdk-pixbuf
166 XFree86-KOI8-R XFree86-KOI8-R-75dpi-fonts pam libpixman
c7487dae 167 reiserfsprogs atk pango freetype gnome-python2-canvas cairo
81a99973
ER
168 libgnomecanvas libart_lgpl libgcc libacl libattr libstdc++ expat
169 anaconda-images anaconda-help XFree86-base-fonts
170 ttfonts-ko taipeifonts XFree86-ISO8859-15-75dpi-fonts rhpl
171 system-config-keyboard Xft fontconfig gtk2-engines gnome-themes
172 gtkhtml2 gnome-python2-gtkhtml2 gail
173 ttfonts-ja ttfonts-zh_TW bitmap-fonts-cjk urw-fonts fonts-arabic
174 comps-extras XFree86-libs-data convertdb1 fonts-bengali
175 vnc-server libjpeg tcp_wrappers system-config-date
176 xfsprogs xfsdump dmapi attr acl policy policycoreutils
177 selinux-policy-targeted ttfonts-zh_CN redhat-artwork audit-libs
178 xorg-x11-libs xorg-x11-ISO8859-2-75dpi-fonts
179 xorg-x11-ISO8859-9-75dpi-fonts xorg-x11-100dpi-fonts
180 xorg-x11-xfs xorg-x11 xorg-x11-KOI8-R xorg-x11-KOI8-R-75dpi-fonts
181 xorg-x11-base-fonts xorg-x11-ISO8859-15-75dpi-fonts
182 fonts-xorg-ISO8859-2-75dpi fonts-xorg-ISO8859-15-75dpi
183 fonts-xorg-ISO8859-9-75dpi fonts-xorg-100dpi
184 fonts-xorg-KOI8-R fonts-xorg-KOI8-R-75dpi fonts-xorg-base
185 xorg-x11-base xorg-x11-ISO8859-15-75dpi system-logos
186 xorg-x11-libs-data xorg-x11-xfs prelink redhat-logos fedora-logos
187 ttfonts-ta ttfonts-bn ttfonts-gu ttfonts-hi ttfonts-pa
188 fonts-japanese fonts-chinese fonts-korean fonts-indic
189 fonts-gujarati fonts-hindi fonts-punjabi fonts-tamil synaptics
515b7697
ER
190 firstboot rhpxl pycairo pirut bitstream-vera-fonts
191X11-fonts-100dpi-ISO8859-15
192X11-fonts-100dpi-ISO8859-2
193X11-fonts-100dpi-ISO8859-9
194X11-fonts-ISO8859-15
195X11-fonts-ISO8859-2
196X11-fonts-ISO8859-9
197"
81a99973 198
3e6a3a30
PZ
199#
200# stuff ONLY included for rescue mode
201#
202# these packages are combined with the PACKAGES and PACKAGESGR for big stage 2
203#
204PACKAGESRESCUE="bzip2 bzip2-libs dump
c7487dae 205 findutils ftp gzip iputils joe krb5-libs less man man-config man-pages
3e6a3a30 206 modutils mtools mt-st mtr net-tools open
81a99973 207 openssh openssh-clients pciutils rsh traceroute tar rsync"
3e6a3a30 208
81a99973
ER
209if [ $ARCH = i386 -o $ARCH = x86_64 ]; then
210 PACKAGESRESCUE="$PACKAGESRESCUE gpart grub"
3e6a3a30
PZ
211fi
212
213# turn off options we dont want, ie. set package list to something harmless
214if [ -z "$NEEDGR" ]; then
215 PACKAGESGR="bash"
216 PACKAGESRESCUE="bash"
217fi
218
81a99973
ER
219# dmraid stuff
220if [ $ARCH != s390 -a $ARCH != s390x ]; then
221 PACKAGESRESCUE="$PACKAGESRESCUE device-mapper dmraid"
222fi
223
3e6a3a30
PZ
224#
225# add bootloader for particular arch
226#
227if [ $ARCH = sparc ]; then
228 PACKAGESGR="$PACKAGESGR tilo silo"
229fi
230
81a99973 231if [ $ARCH = i386 -o $ARCH = x86_64 ]; then
3e6a3a30
PZ
232 PACKAGESGR="$PACKAGESGR syslinux memtest86+"
233fi
234
235if [ $ARCH = alpha ]; then
236 PACKAGESGR="$PACKAGESGR aboot"
237fi
238
239if [ $ARCH = ia64 ]; then
240 PACKAGESGR="$PACKAGESGR elilo"
241fi
242
243if [ $ARCH = ppc ]; then
244 PACKAGESGR="$PACKAGESGR fbset yaboot ppc64-utils"
245fi
246
81a99973
ER
247# dogtail stuff...
248PACKAGESGR="$PACKAGESGR gail at-spi libbonobo ORBit2"
249
250# dmraid stuff
251if [ $ARCH != s390 -a $ARCH != s390x ]; then
252 PACKAGESGR="$PACKAGESGR python-pyblock"
253fi
254
255# modular xorg...
256XORGLIBS="libICE libSM libX11 libXcursor libXext libXfixes libXft libXi libxkbfile libXmu libXpm libXrandr libXrender libXt libXxf86misc libXaw liblbxutil libXfont libfontenc libXau libXdmcp libXfont libXinerama"
257XORGDRIVERS="xorg-x11-drv-acecad xorg-x11-drv-aiptek xorg-x11-drv-apm xorg-x11-drv-ark xorg-x11-drv-ati xorg-x11-drv-calcomp xorg-x11-drv-chips xorg-x11-drv-cirrus xorg-x11-drv-citron xorg-x11-drv-cyrix xorg-x11-drv-digitaledge xorg-x11-drv-dmc xorg-x11-drv-dummy xorg-x11-drv-dynapro xorg-x11-drv-elo2300 xorg-x11-drv-elographics xorg-x11-drv-evdev xorg-x11-drv-fbdev xorg-x11-drv-fpit xorg-x11-drv-glint xorg-x11-drv-hyperpen xorg-x11-drv-i128 xorg-x11-drv-i740 xorg-x11-drv-i810 xorg-x11-drv-jamstudio xorg-x11-drv-joystick xorg-x11-drv-keyboard xorg-x11-drv-magellan xorg-x11-drv-magictouch xorg-x11-drv-mga xorg-x11-drv-microtouch xorg-x11-drv-mouse xorg-x11-drv-mutouch xorg-x11-drv-neomagic xorg-x11-drv-nsc xorg-x11-drv-nv xorg-x11-drv-palmax xorg-x11-drv-penmount xorg-x11-drv-rendition xorg-x11-drv-s3 xorg-x11-drv-s3virge xorg-x11-drv-savage xorg-x11-drv-siliconmotion xorg-x11-drv-sis xorg-x11-drv-sisusb xorg-x11-drv-spaceorb xorg-x11-drv-summa xorg-x11-drv-tdfx xorg-x11-drv-tek4957 xorg-x11-drv-trident xorg-x11-drv-tseng xorg-x11-drv-v4l xorg-x11-drv-vesa xorg-x11-drv-vga xorg-x11-drv-via xorg-x11-drv-vmware xorg-x11-drv-void xorg-x11-drv-voodoo"
258XORGFONTS="xorg-x11-fonts-75dpi xorg-x11-fonts-base xorg-x11-fonts-cyrillic xorg-x11-fonts-ISO8859-15-75dpi xorg-x11-fonts-ISO8859-1-75dpi xorg-x11-fonts-ISO8859-2-75dpi xorg-x11-fonts-ISO8859-9-75dpi xorg-x11-fonts-misc xorg-x11-fonts-ethiopic"
259XORG="$XORGLIBS $XORGDRIVERS $XORGFONTS xorg-x11-server-Xorg xorg-x11-xauth xorg-x11-font-utils xorg-x11-xkb-utils xorg-x11-xkbdata xorg-x11-server-utils"
260
261PACKAGESGR="$PACKAGESGR $XORG"
262
263
3e6a3a30
PZ
264#
265# KEEPFILE is all files to keep from the packages in PACKAGES
266#
267# This is what is present in http, ftp, and hard drive installs, and is
268# supposed to be a small image because these methods keep it in RAM.
269#
270# It also is the base on which the other install images build on top of,
271# so if something is needed by all images it should go here
272#
273KEEPFILE=/tmp/keepfile.$$
274
275cat > $KEEPFILE <<EOF
276boot/efi/EFI/redhat/elilo.efi
277bin/ash
278bin/fdisk*
279bin/mkfs*
280bin/sed
281etc/group
282etc/passwd
81a99973
ER
283etc/iscsid.conf
284etc/pcmcia/*
3e6a3a30
PZ
285etc/protocols
286etc/services
287etc/selinux/targeted/booleans
288etc/selinux/targeted/policy/policy.*
81a99973
ER
289etc/selinux/targeted/contexts/files/*
290etc/selinux/targeted/contexts/*
291etc/selinux/targeted/*
292usr/share/selinux/targeted/*
3e6a3a30
PZ
293etc/security/selinux/policy.*
294etc/security/selinux/file_contexts
295$LIBDIR/libc[-.]*
296$LIBDIR/libm[-.]*
297$LIBDIR/libpthread*
298$LIBDIR/librt[-.]*
299$LIBDIR/ld*.so*
300$LIBDIR/libblkid*
301$LIBDIR/libcom_err*
302$LIBDIR/libcrypt*
81a99973 303$LIBDIR/libdb-*
3e6a3a30
PZ
304$LIBDIR/libdevmapper*
305$LIBDIR/libdl*
306$LIBDIR/libe2p*
81a99973 307$LIBDIR/libexpat*
3e6a3a30
PZ
308$LIBDIR/libext2fs*
309$LIBDIR/liblvm-10.so*
310$LIBDIR/libgcc_s*
311$LIBDIR/libnsl*
312$LIBDIR/libnss_dns*
313$LIBDIR/libnss_files*
314$LIBDIR/libresolv*
315$LIBDIR/libselinux*
81a99973 316$LIBDIR/libsemanage*
3e6a3a30
PZ
317$LIBDIR/libsepol*
318$LIBDIR/libss*
319$LIBDIR/libtermcap*
320$LIBDIR/libhandle*
321$LIBDIR/libattr*
322$LIBDIR/libdm*
323$LIBDIR/libutil*
324$LIBDIR/libuuid*
325sbin/badblocks
326sbin/busybox.anaconda
327sbin/clock
328sbin/debugfs
329sbin/e2fsck
330sbin/e2fsadm
331sbin/e2label
332sbin/fsck.ext2
333sbin/fsck.ext3
334sbin/fsck.jfs
335sbin/fsck.xfs
336sbin/fdisk
337sbin/hdparm
338sbin/hwclock
339sbin/jfs_tune
340sbin/ldconfig
341sbin/lvm*
342sbin/mdadm
343sbin/mkdosfs
344sbin/mke2fs
345sbin/mkfs.ext2
346sbin/mkfs.ext3
347sbin/mkfs.jfs
348sbin/mkfs.xfs
349sbin/mkfs.msdos
350sbin/mkfs.vfat
351sbin/mkreiserfs
352sbin/mkraid
353sbin/mkswap
354sbin/parted
81a99973 355sbin/pcmcia-socket-startup
3e6a3a30
PZ
356sbin/pdisk
357sbin/probe
81a99973 358sbin/reiserfstune
3e6a3a30
PZ
359sbin/resize2fs
360sbin/sfdisk
361sbin/tune2fs
362sbin/xfsdump
363sbin/xfsrestore
364sbin/xfs_repair
365usr/sbin/xfs_db
366usr/sbin/xfs_check
367usr/sbin/xfs_copy
81a99973
ER
368sbin/iscsid
369sbin/iscsiadm
3e6a3a30
PZ
370usr/bin/python
371usr/bin/python?.?
372usr/bin/hmount
373usr/bin/humount
374usr/bin/hcopy
375usr/bin/hattrib
376usr/bin/hformat
377usr/lib/anaconda-runtime/*
378usr/lib/anaconda/*
379usr/lib/anaconda/installclasses/*
380usr/lib/anaconda/textw/*
3e6a3a30
PZ
381usr/lib/booty/*
382usr/kerberos/$LIBDIR/libkrb5.so*
383usr/kerberos/$LIBDIR/libkrb5support.so*
384usr/kerberos/$LIBDIR/libk5crypto.so*
385usr/kerberos/$LIBDIR/libcom_err.so*
386usr/kerberos/$LIBDIR/libgssapi_krb5.so*
387usr/$LIBDIR/libkrb5.so*
388usr/$LIBDIR/libkrb5support.so*
389usr/$LIBDIR/libk5crypto.so*
390usr/$LIBDIR/libcom_err.so*
391usr/$LIBDIR/libgssapi_krb5.so*
392usr/$LIBDIR/gconv/ISO8859-1.so
393usr/$LIBDIR/gconv/gconv-modules
394usr/$LIBDIR/libbeecrypt*
3e6a3a30
PZ
395usr/$LIBDIR/libglib*
396usr/$LIBDIR/libgmodule*
397usr/$LIBDIR/libgobject*
398usr/$LIBDIR/libgthread*
399usr/$LIBDIR/libssl*
400usr/$LIBDIR/libcrypto*
401usr/$LIBDIR/libbz2*
402usr/$LIBDIR/libelf*
403usr/$LIBDIR/libncurses*
404usr/$LIBDIR/libnewt*
405usr/$LIBDIR/libparted*
406usr/$LIBDIR/libpopt*
407usr/$LIBDIR/libpython*
408usr/$LIBDIR/libneon*
409usr/$LIBDIR/libsqlite3*
410usr/$LIBDIR/librpm-*4.?.so*
411usr/$LIBDIR/librpmbuild-*4.?.so*
412usr/$LIBDIR/librpmdb*4.?.so*
413usr/$LIBDIR/librpmio*4.?.so*
414usr/$LIBDIR/libslang*
415usr/$LIBDIR/libstdc++.so.6*
416usr/$LIBDIR/libxml2.so*
417usr/$LIBDIR/libz.*
3e6a3a30
PZ
418usr/$LIBDIR/libreadline*
419usr/$LIBDIR/python?.?/*
81a99973 420usr/$LIBDIR/python?.?/email/*
3e6a3a30
PZ
421usr/$LIBDIR/python?.?/site-packages/libxml2*
422usr/$LIBDIR/python?.?/site-packages/*kudzu*
423usr/$LIBDIR/python?.?/site-packages/rpmmodule.so
424usr/$LIBDIR/python?.?/site-packages/partedmodule.so
425usr/$LIBDIR/python?.?/site-packages/ixf86configmodule.so
426usr/$LIBDIR/python?.?/site-packages/xf86config.py
81a99973 427usr/$LIBDIR/python?.?/site-packages/*sqlite*
3e6a3a30 428usr/$LIBDIR/python?.?/site-packages/rhpl
81a99973
ER
429usr/$LIBDIR/python?.?/site-packages/cElementTree.so
430usr/$LIBDIR/python?.?/site-packages/block
b512e470 431usr/share/locale/*
81a99973
ER
432usr/lib/python?.?/site-packages/elementtree/*
433usr/lib/python?.?/site-packages/rpmUtils/*
3e6a3a30 434usr/lib/python?.?/site-packages/urlgrabber/*
81a99973
ER
435usr/lib/python?.?/site-packages/yum/*
436usr/lib/python?.?/site-packages/repomd/*
437usr/lib/python?.?/site-packages/pirut/*
438usr/lib/python?.?/site-packages/pykickstart/*
3e6a3a30
PZ
439usr/lib/rpm/macros
440usr/lib/rpm/rpmpopt
441usr/lib/rpm/rpmrc
442usr/lib/yaboot/addnote
443usr/lib/yaboot/ofboot
444usr/lib/yaboot/yaboot
445usr/libexec/convertdb1
446usr/share/locale/*/LC_MESSAGES/anaconda.mo
447usr/share/locale/locale.alias
448usr/sbin/anaconda
449usr/sbin/ddcprobe
450usr/sbin/dmidecode
451usr/sbin/mkofboot
452usr/sbin/ofpath
453usr/sbin/ybin
454usr/sbin/load_policy
81a99973
ER
455usr/sbin/semodule
456usr/sbin/genhomedircon
457usr/sbin/setfiles
3e6a3a30
PZ
458usr/sbin/lvm
459usr/sbin/build-locale-archive
3e6a3a30 460usr/share/anaconda/anaconda.conf
81a99973 461usr/share/selinux/targeted/base.pp
3e6a3a30
PZ
462usr/share/terminfo/b/bterm
463usr/share/terminfo/l/linux
464usr/share/terminfo/v/vt100
465usr/share/terminfo/v/vt100-nav
3e6a3a30 466usr/share/hwdata/pci.ids
81a99973
ER
467usr/share/hwdata/videoaliases
468usr/share/hwdata/videoaliases/*
469usr/share/hwdata/videodrivers
3e6a3a30 470usr/share/hwdata/MonitorsDB
3e6a3a30
PZ
471EOF
472
473if [ $ARCH = s390 -o $ARCH = s390x ]; then
474 cat >> $KEEPFILE <<EOF
475usr/share/terminfo/a/ansi
476usr/share/terminfo/d/dumb
477usr/share/terminfo/k/kterm
478usr/share/terminfo/s/screen
479usr/share/terminfo/v/vt100
480usr/share/terminfo/v/vt100-nav
481usr/share/terminfo/v/vt102
482usr/share/terminfo/x/xterm
483usr/share/terminfo/x/xterm-color
484usr/bin/strace
485usr/bin/ldd
486usr/sbin/chroot
487usr/sbin/sshd
488usr/sbin/glibc_post_upgrade
489usr/sbin/in.telnetd
490usr/sbin/xinetd
491sbin/cmsfslst
492sbin/cmsfscat
493sbin/busybox.anaconda
494sbin/ifconfig
495sbin/route
496sbin/portmap
497sbin/fdasd
498sbin/dasdfmt
499sbin/swapon
500sbin/swapoff
501sbin/mkswap
502bin/bash
503bin/dd
504bin/gawk
505bin/mount
506bin/umount
507bin/mknod
508bin/sleep
509bin/login
510bin/cat
511bin/chmod
512bin/sort
513$LIBDIR/libpam.so*
514$LIBDIR/libdl.so*
515$LIBDIR/libdl-*.so*
516usr/$LIBDIR/libz.so*
517$LIBDIR/libnsl.so*
518$LIBDIR/libnsl-*.so*
519$LIBDIR/libnss*
520$LIBDIR/libutil.so*
521$LIBDIR/libutil-*.so*
522$LIBDIR/libcrypt*
523$LIBDIR/libc.so*
524$LIBDIR/libc-*so*
525lib/ld*.so*
526$LIBDIR/ld*.so*
527$LIBDIR/libresolv.so*
528$LIBDIR/libresolv-*.so*
529$LIBDIR/libvtoc*.so*
530lib/modules/ibm/*
531etc/xinetd.conf
532etc/pam.d/sshd
533etc/pam.d/other
534etc/security/limits.conf
535etc/security/pam_env.conf
536lib/security
537$LIBDIR/security/pam_*
538usr/$LIBDIR/libwrap.so*
81a99973
ER
539usr/$LIBDIR/libXmuu.so*
540usr/$LIBDIR/libX11.so*
541usr/$LIBDIR/libXext.so*
542usr/$LIBDIR/libXxf86misc.so*
543usr/bin/xauth
3e6a3a30
PZ
544EOF
545fi
546
547#
548# KEEPFILEGR is all files to keep from the packages in PACKAGESGR
549#
550# This defines the files in addition to KEEPFILE that make up the install
551# images for NFS and CD/DVD based installs. This image is not loaded into
552# memory so it can be considerably larger.
553#
554# The rescue mode of anaconda uses these files as well as those defined
555# by KEEPFILERESCUE below. The total size of this image should be
556# under the size of the miniature CD used for the rescue CD (around 68MB).
557#
558KEEPFILEGR=/tmp/keepfilegr.$$
559cp $KEEPFILE $KEEPFILEGR
560cat >> $KEEPFILEGR <<EOF
561boot/efi/EFI/redhat/elilo.efi
562boot/memtest86*
563bin/bash
564bin/cat
565bin/chmod
566bin/cp
567bin/cpio
568bin/dd
569bin/df
570bin/du
571bin/ln
572bin/ls
573bin/mkdir
574bin/mv
575bin/ps
576bin/rm
577bin/rpm
578bin/touch
579boot/*.b
580boot/bootlx
581etc/fb.modes
582etc/gtk-2.0/gtkrc*
583etc/im_palette.pal
584etc/imrc
585etc/man.config
586etc/pango/*
587etc/fonts/*
588etc/prelink.conf
589etc/rpm/macros.prelink
590$LIBDIR/libacl*
591$LIBDIR/libattr*
592$LIBDIR/libaudit*.so*
593$LIBDIR/libgcc*
594$LIBDIR/libnss_dns*
595$LIBDIR/libpam*
596$LIBDIR/libproc*
597sbin/addRamDisk
598sbin/addSystemMap
599sbin/debugfs
600sbin/e2fsck
601sbin/e2label
602sbin/reiserfsck
81a99973 603sbin/reiserfstune
3e6a3a30
PZ
604sbin/fsck
605sbin/fsck.ext2
606sbin/fsck.ext3
607sbin/fsck.jfs
608sbin/fsck.reiserfs
609sbin/parted
610sbin/silo
611sbin/tune2fs
81a99973
ER
612usr/bin/Xorg
613usr/bin/setxkbmap
614usr/bin/xkbcomp
615usr/share/X11/XKeysymDB
616usr/share/X11/fonts/misc/6x13*
617usr/share/X11/fonts/misc/fonts*
618usr/share/X11/fonts/misc/cursor*
619usr/share/X11/fonts/misc/olcursor*
620usr/share/X11/fonts/Type1/l047013t*
621usr/share/X11/fonts/Type1/*
622usr/share/X11/fonts/TTF/GohaTibebZemen.ttf
623usr/share/X11/locale/*
624usr/share/X11/rgb*
625usr/share/X11/xkb/*
626usr/$LIBDIR/xserver/SecurityPolicy
627usr/$LIBDIR/libICE*
628usr/$LIBDIR/libSM*
629usr/$LIBDIR/libXaw.so*
630usr/$LIBDIR/libX11*
631usr/$LIBDIR/libXcursor*
632usr/$LIBDIR/libXext*
633usr/$LIBDIR/libXfixes*
634usr/$LIBDIR/libXft*
635usr/$LIBDIR/libXi*
636usr/$LIBDIR/libxkbfile*
637usr/$LIBDIR/libXmu*
638usr/$LIBDIR/libXpm*
639usr/$LIBDIR/libXrandr*
640usr/$LIBDIR/libXrender*
641usr/$LIBDIR/libXt*
642usr/$LIBDIR/libXxf86misc*
643usr/$LIBDIR/liblbxutil*
644usr/$LIBDIR/libXfont*
645usr/$LIBDIR/libfontenc*
646usr/$LIBDIR/libXau*
647usr/$LIBDIR/libXdmcp*
648usr/$LIBDIR/xorg/modules/*
649usr/$LIBDIR/xorg/modules/input/*
3e6a3a30
PZ
650usr/bin/chattr*
651usr/bin/fc-cache
652usr/bin/gtk-query*
653usr/bin/gdk-pixbuf-query-loaders*
654usr/bin/head
655usr/bin/lsattr*
656usr/bin/maketilo
657usr/bin/mini-wm
658usr/bin/pango*
659usr/bin/syslinux
660usr/bin/mkzimage
661usr/bin/tac
662usr/bin/tail
663usr/bin/tilo
664usr/bin/uniq
665usr/bin/Xvnc
666usr/bin/vncconfig
667usr/bin/vncpasswd
668usr/bin/reduce-font
3e6a3a30 669usr/lib/anaconda/iw
3e6a3a30 670usr/$LIBDIR/gconv/*
81a99973 671usr/$LIBDIR/gdk-pixbuf/loaders/*xpm*
3e6a3a30
PZ
672usr/$LIBDIR/gdk-pixbuf/loaders/*png*
673usr/$LIBDIR/gdk-pixbuf/loaders/*la*
674usr/$LIBDIR/gtk-2.0/*/engines/libclearlooks.so
81a99973 675usr/$LIBDIR/gtk-2.0/*/loaders/*xpm*
3e6a3a30
PZ
676usr/$LIBDIR/gtk-2.0/*/loaders/*png*
677usr/$LIBDIR/gtk-2.0/*/loaders/*la*
678usr/$LIBDIR/gtk-2.0/immodules/
679usr/$LIBDIR/libImlib*
680usr/$LIBDIR/libXft*
681usr/$LIBDIR/libart*
682usr/$LIBDIR/libatk*
683usr/$LIBDIR/libaudio*
81a99973
ER
684usr/$LIBDIR/libpixman*
685usr/$LIBDIR/libcairo*
3e6a3a30
PZ
686usr/$LIBDIR/libesd*
687usr/$LIBDIR/libfontconfig*
688usr/$LIBDIR/libfreetype*
81a99973 689usr/$LIBDIR/libgailutil*
3e6a3a30
PZ
690usr/$LIBDIR/libgdk*
691usr/$LIBDIR/libglade*
692usr/$LIBDIR/libgnomecanvas*
693usr/$LIBDIR/libgnomeui*
694usr/$LIBDIR/libgpm*
695usr/$LIBDIR/libgtk*
696usr/$LIBDIR/libjpeg*
697usr/$LIBDIR/libpango*
698usr/$LIBDIR/libpng.so.3*
699usr/$LIBDIR/libpng12.so*
700usr/$LIBDIR/libstdc++.so.*
701usr/$LIBDIR/libwrap*
702usr/$LIBDIR/pango/*
81a99973 703usr/$LIBDIR/python?.?/site-packages/cairo/*
3e6a3a30 704usr/$LIBDIR/python?.?/site-packages/gtk*/gtk/*
81a99973 705usr/$LIBDIR/python?.?/site-packages/gtk*/*
3e6a3a30
PZ
706usr/$LIBDIR/rpm/rpmpopt
707usr/lib/syslinux/*
708usr/lib/yaboot/*
81a99973 709usr/lib/python?.?/site-packages/rhpxl/*
3e6a3a30
PZ
710usr/sbin/chroot
711usr/sbin/ddcprobe
712usr/sbin/fbset
713usr/sbin/prelink
714usr/sbin/smartctl
715usr/share/anaconda/*
81a99973 716usr/share/firstboot/firstboot_module_window*
3e6a3a30
PZ
717usr/share/icons/default/*
718usr/share/icons/gnome/cursors/*
719usr/share/icons/gnome/*/stock/*
720usr/share/icons/gnome/index.theme
81a99973
ER
721usr/share/icons/Bluecurve/cursors/*
722usr/share/icons/Bluecurve/*/stock/*
723usr/share/icons/Bluecurve/index.theme
724usr/share/fonts/bitstream-vera/Vera.ttf
725usr/share/fonts/bitstream-vera/VeraBd.ttf
726usr/share/fonts/bitstream-vera/VeraMono.ttf
3e6a3a30
PZ
727usr/share/fonts/default/Type1/n019003l*
728usr/share/fonts/default/Type1/n019004l*
729usr/share/fonts/default/Type1/n019023l*
730usr/share/fonts/default/Type1/n019024l*
731usr/share/fonts/default/Type1/n021003l*
732usr/share/fonts/default/Type1/n021004l*
733usr/share/fonts/default/Type1/n021023l*
734usr/share/fonts/default/Type1/n021024l*
735usr/share/fonts/korean/TrueType/dotum.ttf
81a99973
ER
736usr/share/fonts/japanese/TrueType/sazanami-gothic.ttf
737usr/share/fonts/chinese/TrueType/uming*.ttf
3e6a3a30
PZ
738usr/share/fonts/bengali/MuktiNarrow.ttf
739usr/share/fonts/arabic/KacstFarsi.ttf
740usr/share/fonts/arabic/KacstQura.ttf
741usr/share/fonts/tamil/lohit_ta.ttf
742usr/share/fonts/gujarati/lohit_gu.ttf
743usr/share/fonts/bengali/lohit_bn.ttf
744usr/share/fonts/hindi/lohit_hi.ttf
745usr/share/fonts/panjabi/lohit_pa.ttf
746usr/share/fonts/punjabi/lohit_pa.ttf
747usr/share/locale/*/LC_MESSAGES/anaconda.mo
748usr/share/locale/*/LC_MESSAGES/system-config-date.mo
749usr/share/locale/*/LC_MESSAGES/redhat-dist.mo
750usr/share/locale/*/LC_MESSAGES/system-config-keyboard.mo
751usr/share/locale/*/LC_MESSAGES/gtk20.mo
752usr/share/locale/*/LC_MESSAGES/libc.mo
753usr/share/locale/*/LC_MESSAGES/rhpl.mo
81a99973 754usr/share/locale/*/LC_MESSAGES/rhpxl.mo
3e6a3a30 755usr/share/locale/*/LC_MESSAGES/parted.mo
81a99973
ER
756usr/share/locale/*/LC_MESSAGES/pirut.mo
757usr/share/pirut/*
3e6a3a30
PZ
758usr/share/pixmaps/comps/*.png
759usr/share/pixmaps/gnome-default-dlg.png
760usr/share/pixmaps/gnome-error.png
761usr/share/pixmaps/gnome-info.png
762usr/share/pixmaps/gnome-question.png
763usr/share/pixmaps/gnome-warning.png
764usr/share/pixmaps/no.xpm
765usr/share/pixmaps/yes.xpm
81a99973 766usr/share/ppc64-utils/*
3e6a3a30 767usr/share/system-config-keyboard/*
81a99973 768usr/share/system-config-date/*
3e6a3a30
PZ
769usr/share/terminfo/l/linux
770usr/share/terminfo/x/xterm
771usr/share/terminfo/v/vt100
772usr/share/terminfo/v/vt100-nav
773usr/share/themes/Clearlooks/gtk-2.0/*
774usr/share/themes/Clearlooks/index.theme
775usr/share/vte/termcap/xterm
81a99973
ER
776usr/share/xorg/extramodes
777usr/share/xorg/vesamodes
3e6a3a30
PZ
778usr/share/zoneinfo/zone.tab
779EOF
780
781TIMEZONES="
782usr/share/zoneinfo/Africa
783usr/share/zoneinfo/America
784usr/share/zoneinfo/Antarctica
785usr/share/zoneinfo/Arctic
786usr/share/zoneinfo/Asia
787usr/share/zoneinfo/Atlantic
788usr/share/zoneinfo/Australia
789usr/share/zoneinfo/Canada
790usr/share/zoneinfo/Europe
791usr/share/zoneinfo/Indian
792usr/share/zoneinfo/Japan
793usr/share/zoneinfo/Mideast
794usr/share/zoneinfo/Pacific
795usr/share/zoneinfo/US
796"
797
81a99973
ER
798# more dogtail stuff...
799cat >> $KEEPFILEGR <<EOF
800usr/$LIBDIR/gtk-2.0/modules/libatk-bridge.so
801usr/$LIBDIR/gtk-2.0/modules/libgail.so
802usr/libexec/bonobo-activation-server
803usr/libexec/at-spi-registryd
804usr/$LIBDIR/libORBit*
805usr/$LIBDIR/libbonobo*
806usr/$LIBDIR/libspi*
807usr/$LIBDIR/libcspi*
808usr/$LIBDIR/bonobo/servers/*
809usr/$LIBDIR/libXevie*
3e6a3a30 810EOF
81a99973
ER
811
812
3e6a3a30
PZ
813
814#
815# KEEPFILERESCUE is all files to keep from the packages in PACKAGESRESCUE
816#
817# This defines the files in addition to KEEPFILE and KEEPFILEGR that make up
818# the install images for NFS and CD/DVD based rescue mode installs. This
819# image is not loaded into memory so it can be considerably larger.
820#
821# NOTE: hd, ftp, and http rescue mode use and image based on KEEPFILE since
822# it has to be much smaller due to memory usage.
823#
824KEEPFILERESCUE=/tmp/keepfilerescue.$$
825cat > $KEEPFILERESCUE <<EOF
826bin/gunzip
827bin/gzip
828bin/mt
829bin/ping
830bin/sync
831bin/tar
832bin/zcat
833etc/joe/*
834sbin/arp
835sbin/depmod
836sbin/dump
837sbin/ifconfig
838sbin/insmod
839sbin/lsmod
840sbin/lspci
841sbin/modinfo
842sbin/modprobe
843sbin/netstat
844sbin/restore
845sbin/rrestore
846sbin/rmmod
847sbin/route
848usr/bin/bunzip2
849usr/bin/bzcat
850usr/bin/bzip2
851usr/bin/emacs
852usr/bin/find
853usr/bin/ftp
854usr/bin/jmacs
855usr/bin/joe
856usr/bin/jpico
857usr/bin/less
858usr/bin/mattrib
859usr/bin/mbadblocks
860usr/bin/mcd
861usr/bin/mcopy
862usr/bin/mdel
863usr/bin/mdeltree
864usr/bin/mdir
865usr/bin/mdu
866usr/bin/mformat
867usr/bin/minfo
868usr/bin/mlabel
869usr/bin/mmd
870usr/bin/mmount
871usr/bin/mmove
872usr/bin/mpartition
873usr/bin/mrd
874usr/bin/mread
875usr/bin/mren
876usr/bin/mshowfat
877usr/bin/mtools
878usr/bin/mtype
879usr/bin/mzip
880usr/bin/open
881usr/bin/rcp
882usr/bin/rlogin
883usr/bin/rsh
81a99973 884usr/bin/rsync
3e6a3a30
PZ
885usr/bin/scp
886usr/bin/sftp
887usr/bin/shred
888usr/bin/ssh
889usr/bin/termidx
890usr/bin/xargs
891usr/kerberos/$LIBDIR/libgssapi*
892usr/kerberos/$LIBDIR/libkrb5*
893usr/kerberos/$LIBDIR/libk5crypto*
894usr/kerberos/$LIBDIR/libcom_err*
895usr/sbin/mtr
896usr/sbin/traceroute
897EOF
898
81a99973
ER
899# dmraid stuff
900if [ $ARCH != s390 -a $ARCH != s390x ]; then
901 cat >> $KEEPFILERESCUE <<-EOF
902sbin/dmraid.static
903sbin/dmsetup.static
904EOF
905fi
906
907if [ $ARCH = i386 -o $ARCH = x86_64 ]; then
908 cat >> $KEEPFILERESCUE <<-EOF
909boot/grub
910sbin/grub
911sbin/grub-install
912sbin/grub-md5-crypt
913sbin/grub-set-default
914usr/bin/gpart
915usr/bin/mbchk
916usr/share/grub/*
917EOF
918fi
919
3e6a3a30
PZ
920echo "Assembling package list..."
921RPMS=$(prunePackageList $PACKAGEDIR "$PACKAGES")
922[ -n "$DEBUG" ] && echo "RPMS are $RPMS"
923RPMSGR=$(prunePackageList $PACKAGEDIR "$PACKAGESGR $PACKAGESRESCUE")
924[ -n "$DEBUG" ] && echo "RPMSGR are $RPMSGR"
925
926rm -rf $DEST; mkdir -p $DEST/usr/sbin
927rm -rf $DESTGR; mkdir -p $DESTGR/usr/sbin $DESTGR/var/lib $DESTGR/boot
928ln -s /tmp $DESTGR/var/lib/xkb
929
930#
931# concat KEEPFILEGR and KEEPFILERESCUE lists
932#
933cat $KEEPFILERESCUE >> $KEEPFILEGR
934
935#
936# filter paths in keepfile lists for use by cpio
937#
938for file in $KEEPFILE $KEEPFILEGR; do
939 cat $file | awk '{print $1 "\n./" $1}' > $file-
940 mv -f $file- $file
941done
942
943echo "Expanding text packages..."
944expandPackageSet "$RPMS" $DEST $KEEPFILE
945
946(cd $DEST; tar cSpf - .) | (cd $DESTGR; tar xSpf -)
947
948echo "Expanding graphical packages..."
949expandPackageSet "$RPMSGR" $DESTGR $KEEPFILEGR
950
951echo "retrieving timezones"
952TZDIR=/tmp/glibc-timezone-$$
953mkdir -p $TZDIR/usr/share/zoneinfo
954rpm2cpio $TZDATA | (cd $TZDIR; cpio --quiet -iumd usr/share/zoneinfo ./usr/share/zoneinfo ./usr/share/zoneinfo/* usr/share/zoneinfo/*)
955[ $? = 0 ] || die "ERROR: Unable to expand timezone data ($TZDATA)"
956(cd $TZDIR; tar cSpf - $TIMEZONES) | (cd $DEST; tar xSpf -)
957(cd $TZDIR; tar cSpf - $TIMEZONES) | (cd $DESTGR; tar xSpf -)
958
959chown -R root:root $DEST $DESTGR
960chmod -R a+rX-w $DEST $DESTGR
961if [ $ARCH = s390 -o $ARCH = s390x ]; then
962 for i in $DEST $DESTGR; do
963 mv $i/bin/sed $i/bin/sed_save
964 mv $i/bin/sort $i/bin/sort_save
965 done
81a99973
ER
966else
967 for i in $DEST $DESTGR; do
968 # there's never a case with only one of these...
969 if [ -f $i/sbin/dmraid.static ]; then
970 mv $i/sbin/dmraid.static $i/sbin/dmraid
971 mv $i/sbin/dmsetup.static $i/sbin/dmsetup
972 fi
973 done
3e6a3a30
PZ
974fi
975
976# change mtimes to 0 (to match what happens on the cramfs)
977for p in $DEST $DESTGR; do
978 if [ -x /usr/bin/runroot -a -n "$COMPONENT" ]; then
979 runroot $COMPONENT --onlyone --arch $ARCH "cd $p\; usr/lib/anaconda-runtime/fixmtime.py $DEBUG $p"
980 else
981 $p/usr/lib/anaconda-runtime/fixmtime.py $DEBUG $p
982 fi
983done
984
985# Remove locales unused during the install
c7487dae 986cat $DESTGR/usr/lib/anaconda/lang-table* | gawk '
3e6a3a30
PZ
987{ gsub("-", "", $4);
988 print $4;
989 print gensub(/\..*$/,"","",$4);
990 print gensub(/_.*$/,"","",$4);
991 if (split ($4, a, ".") > 1) {
992 print gensub(/\..*$/,tolower("." a[2]),"",$4);
993 };
81a99973 994 print $2;
3e6a3a30
PZ
995}
996' | LC_ALL=C sort -u > $DESTGR/locales
b512e470 997for p in share; do (
3e6a3a30
PZ
998cd $DESTGR/usr/$p/locale && {
999ls | grep -v locale.alias | LC_ALL=C sort > $DESTGR/locales.list
1000LC_ALL=C comm -13 $DESTGR/locales $DESTGR/locales.list | xargs rm -rf
1001}
1002); done
1003rm -f $DESTGR/locales $DESTGR/locales.list
1004
1005# now, create a locale archive and nuke the locale dirs since
1006# that ends up taking less space
b512e470
ER
1007#for p in $DEST $DESTGR; do
1008# echo "Building locale archive"
1009# if [ -x /usr/bin/runroot -a -n "$COMPONENT" ]; then
1010# runroot $COMPONENT --onlyone --arch $ARCH "/usr/sbin/chroot $p /usr/sbin/build-locale-archive"
1011# else
1012# /usr/sbin/chroot $p /usr/sbin/build-locale-archive
1013# fi
1014# mv $p/usr/lib/locale/locale-archive $p/usr/lib/locale-archive
1015# rm -rf $p/usr/lib/locale/*
1016# rm -f $p/usr/sbin/build-locale-archive
1017# mv $p/usr/lib/locale-archive $p/usr/lib/locale/locale-archive
1018#done
3e6a3a30
PZ
1019
1020# Remove unneeded XFree86 modules
1021rm -rf $DESTGR/usr/X11R6/$LIBDIR/modules/dri
1022rm -f $DESTGR/usr/X11R6/$LIBDIR/modules/libscanpci.a
1023rm -f $DESTGR/usr/X11R6/$LIBDIR/modules/libxf1bpp.a
1024rm -f $DESTGR/usr/X11R6/$LIBDIR/modules/fonts/libspeedo.a
1025rm -f $DESTGR/usr/X11R6/$LIBDIR/modules/drivers/linux/v4l_drv.o
1026rm -f $DESTGR/usr/X11R6/$LIBDIR/modules/extensions/libdri.a
1027rm -f $DESTGR/usr/X11R6/$LIBDIR/modules/extensions/libxtrap.a
1028rm -f $DESTGR/usr/X11R6/$LIBDIR/modules/extensions/librecord.a
1029
1030rm -f $DESTGR/usr/X11R6/$LIBDIR/modules/extensions/lib{GLcore,glx,pex5}*
1031
1032# fixup joe links
1033ln -fs jpicorc $DESTGR/etc/joe/picorc
81a99973
ER
1034ln -fs jpicorc $DESTGR/etc/joe/jnanorc
1035ln -fs jpicorc $DESTGR/etc/joe/nanorc
3e6a3a30
PZ
1036ln -fs jmacsrc $DESTGR/etc/joe/emacsrc
1037ln -fs jmacs $DESTGR/usr/bin/emacs
1038ln -fs jpico $DESTGR/usr/bin/pico
81a99973
ER
1039ln -fs jpico $DESTGR/usr/bin/nano
1040
1041# create selinux config
1042if [ -e $DEST/etc/selinux/targeted ]; then
1043 cat > $DEST/etc/selinux/config <<EOF
1044SELINUX=permissive
1045SELINUXTYPE=targeted
1046EOF
1047 cp $DEST/etc/selinux/config $DESTGR/etc/selinux/config
1048fi
1049
1050cat > $DEST/etc/shells <<EOF
1051/bin/sh
1052EOF
3e6a3a30
PZ
1053
1054echo "Creating nsswitch.conf"
1055cat > $DEST/etc/nsswitch.conf <<EOF
1056# munged nsswitch.conf with just what anaconda needs
1057# created by upd-instroot
1058#
1059passwd: files
1060shadow: files
1061group: files
1062hosts: files dns
1063ethers: files
1064netmasks: files
1065networks: files
1066protocols: files
1067rpc: files
1068services: files
1069netgroup: files
1070automount: files
1071aliases: files
1072EOF
1073
81a99973 1074cp $DEST/etc/shells $DESTGR/etc/shells
3e6a3a30
PZ
1075cp $DEST/etc/nsswitch.conf $DESTGR/etc/nsswitch.conf
1076
1077# fixup man.config to point into /mnt/sysimage for rescue
1078echo "Fixing up /etc/man.config to point into /mnt/sysimage"
1079if [ -n "$NEEDGR" ]; then
1080 mv $DESTGR/etc/man.config $DESTGR/etc/man.config-old
1081 cat $DESTGR/etc/man.config-old | sed 's^/usr/bin^/mnt/sysimage/usr/bin^' | sed 's^/bin/cat^/mnt/sysimage/usr/bin/cat^' > $DESTGR/etc/man.config
1082 rm -f $DESTGR/etc/man.config-old
1083fi
1084
3e6a3a30
PZ
1085echo "Running mkfontdir..."
1086if [ -n "$NEEDGR" ]; then
70c49891 1087 /usr/X11R6/bin/mkfontdir $DESTGR/usr/share/fonts/*
81a99973
ER
1088fi
1089
1090echo "Creating SELinux policy..."
1091if [ -x $DESTGR/usr/sbin/semodule -a -x /usr/bin/runroot -a -n "$COMPONENT" ]; then
1092 runroot $COMPONENT --onlyone --arch $ARCH "/usr/sbin/chroot $DESTGR /usr/sbin/semodule -b /usr/share/selinux/targeted/base.pp -n -s targeted"
1093else
1094 /usr/sbin/chroot $DESTGR /usr/sbin/semodule -b /usr/share/selinux/targeted/base.pp -n -s targeted
3e6a3a30 1095fi
81a99973
ER
1096rm -rf $DEST/etc/selinux
1097mkdir $DEST/etc/selinux
1098cp -r $DESTGR/etc/selinux/* $DEST/etc/selinux/
3e6a3a30
PZ
1099
1100echo "Getting pango modules"
1101if [ -n "$NEEDGR" ]; then
3e6a3a30
PZ
1102 if [ -x /usr/bin/runroot -a -n "$COMPONENT" ]; then
1103 runroot $COMPONENT --onlyone --arch $ARCH "LD_LIBRARY_PATH=/usr/X11R6/$LIBDIR:$LD_LIBRARY_PATH /usr/sbin/chroot $DESTGR /usr/bin/pango-querymodules 2> $DESTGR/etc/pango/pango.modules"
1104 else
1105 LD_LIBRARY_PATH=/usr/X11R6/$LIBDIR:$LD_LIBRARY_PATH /usr/sbin/chroot $DESTGR /usr/bin/pango-querymodules > $DESTGR/etc/pango/pango.modules
1106 fi
1107 rm -f $DESTGR/usr/bin/pango-querymodules
1108 # more sick hackery since it doesn't fall back to this like owen thought
1109 cat > $DESTGR/etc/pango/pangorc <<EOF
1110[Pango]
1111ModuleFiles=/etc/pango/pango.modules
1112EOF
1113fi
1114
aa398f49
ER
1115host=`rpm -E %{_host}`
1116
3e6a3a30
PZ
1117
1118case "$host" in
1119 *linux) canonhost="$host-gnu"
1120 ;;
1121 *) canonhost=$host
1122 ;;
1123esac
1124
1125# autoconf uses powerpc not ppc
1126HOSTTRIPLET=`echo $canonhost | sed "s/^ppc/powerpc/"`
1127
1128
1129mkdir -p $DESTGR/etc/gtk-2.0/$HOSTTRIPLET
1130
1131echo "Getting gtk2 input method modules"
1132if [ -n "$NEEDGR" ]; then
3e6a3a30
PZ
1133 if [ -x /usr/bin/runroot -a -n "$COMPONENT" ]; then
1134 runroot $COMPONENT --onlyone --arch $ARCH "LD_LIBRARY_PATH=/usr/X11R6/$LIBDIR:$LD_LIBRARY_PATH /usr/sbin/chroot $DESTGR /usr/bin/gtk-query-immodules-2.0 2> $DESTGR/etc/gtk-2.0/$HOSTTRIPLET/gtk.immodules"
1135 else
1136 LD_LIBRARY_PATH=/usr/X11R6/$LIBDIR:$LD_LIBRARY_PATH /usr/sbin/chroot $DESTGR /usr/bin/gtk-query-immodules-2.0 > $DESTGR/etc/gtk-2.0/$HOSTTRIPLET/gtk.immodules
1137 fi
1138 rm -f $DESTGR/usr/bin/gtk-query-immodules-2.0
1139fi
1140
1141echo "Getting gtk2 gdk-pixbuf loaders"
1142if [ -n "$NEEDGR" ]; then
3e6a3a30
PZ
1143 if [ -x /usr/bin/runroot -a -n "$COMPONENT" ]; then
1144 runroot $COMPONENT --onlyone --arch $ARCH "LD_LIBRARY_PATH=/usr/X11R6/$LIBDIR:$LD_LIBRARY_PATH /usr/sbin/chroot $DESTGR /usr/bin/gdk-pixbuf-query-loaders 2> $DESTGR/etc/gtk-2.0/$HOSTTRIPLET/gdk-pixbuf.loaders"
1145 else
1146 LD_LIBRARY_PATH=/usr/X11R6/$LIBDIR:$LD_LIBRARY_PATH /usr/sbin/chroot $DESTGR /usr/bin/gdk-pixbuf-query-loaders > $DESTGR/etc/gtk-2.0/$HOSTTRIPLET/gdk-pixbuf.loaders
1147 fi
1148 rm -f $DESTGR/usr/bin/gdk-pixbuf-query-loaders
1149fi
1150
1151rm -f $KEEPFILE $KEEPFILEGR $KEEPFILERESCUE
1152
1153for p in $DEST $DESTGR; do
1154 echo "Scrubbing trees..." "$p"
aa398f49 1155 install -d $p/usr/bin
3e6a3a30
PZ
1156 cp $p/usr/lib/anaconda/raidstart-stub $p/usr/bin/raidstart
1157 cp $p/usr/lib/anaconda/raidstop-stub $p/usr/bin/raidstop
1158 cp $p/usr/lib/anaconda/losetup-stub $p/usr/bin/losetup
1159 cp $p/usr/lib/anaconda/pump-stub $p/usr/bin/pump
1160 cp $p/usr/lib/anaconda/list-harddrives-stub $p/usr/bin/list-harddrives
1161 cp $p/usr/lib/anaconda/kudzu-probe-stub $p/usr/bin/kudzu-probe
1162 cp $p/usr/lib/anaconda/loadkeys-stub $p/usr/bin/loadkeys
1163 cp $p/usr/lib/anaconda/mknod-stub $p/usr/bin/mknod
1164 cp $p/usr/lib/anaconda/rescue-startx-stub $p/usr/bin/rescue-startx
1165 mv $p/usr/sbin/anaconda $p/usr/bin/anaconda
1166 mv $p/usr/lib/anaconda-runtime/lib* $p/usr/$LIBDIR
1167
1168 # we only want the libunicode-lite stuff on the minimal image
1169 if [ $p = $DESTGR ]; then
1170 rm -f $p/usr/$LIBDIR/libunicode-lite*
1171 fi
1172
1173 find $p -type d | xargs chmod 755
1174
1175 if [ -f $p/bin/bash ]; then
1176 rm -f $p/bin/ash
1177 ln -s bash $p/bin/sh
1178 else
1179 ln -sf busybox $p/bin/sh
1180 fi
1181
1182 [ -d $p/bin ] || die "ERROR: directory missing: $p/bin"
1183 [ -d $p/sbin ] || die "ERROR: directory missing: $p/sbin"
1184 (cd $p/bin; find) | (cd $p/bin; /bin/cpio --quiet -pdmu $p/usr/bin)
1185 (cd $p/sbin; find) | (cd $p/sbin; /bin/cpio --quiet -pdmu $p/usr/sbin)
1186 rm -rf $p/bin
1187 rm -rf $p/sbin
1188
1189 # copy bootloader files for sparc
1190 if [ $ARCH = sparc -a $p = $DESTGR ]; then
1191 mkdir -p $p/usr/lib/anaconda-runtime/boot
1192 [ -d $p/boot ] || die "ERROR: directory missing: $p/boot"
1193 (cd $p/boot; find -name "*.b") | (cd $p/boot; /bin/cpio --quiet -pdmu $p/usr/lib/anaconda-runtime/boot)
1194 fi
1195
1196 # copy bootloader file for alpha
1197 if [ $ARCH = alpha -a $p = $DESTGR ]; then
1198 mkdir -p $p/usr/lib/anaconda-runtime/boot
1199 cp -af $p/boot/bootlx $p/usr/lib/anaconda-runtime/boot
1200 fi
1201
1202 # copy bootloader files for ia64
1203 if [ $ARCH = ia64 -a $p = $DESTGR ]; then
1204 mkdir -p $p/usr/lib/anaconda-runtime/boot
1205 cp -af $p/boot/efi/EFI/redhat//* $p/usr/lib/anaconda-runtime/boot
1206 fi
1207
1208 # copy bootloader files for i386/x86_64
c7487dae 1209 if [ $ARCH = i386 -o $ARCH = i686 -o $ARCH = x86_64 ]; then
3e6a3a30
PZ
1210 if [ $p = $DESTGR ]; then
1211 mkdir -p $p/usr/lib/anaconda-runtime/boot
1212 cp -af $p/boot/memtest* $p/usr/lib/anaconda-runtime/boot
1213 fi
1214 fi
1215
1216 rm -rf $p/boot $p/home $p/root $p/tmp
1217
1218 find $p -name "*.a" | grep -v "usr/X11R6/$LIBDIR/modules" | xargs rm -rf
1219 find $p -name "lib*.la" |grep -v "usr/$LIBDIR/gtk-2.0" | xargs rm -rf
1220 for f in newt popt rpm rpmio; do
1221 rm -f $p/usr/$LIBDIR/lib$f.so
1222 done
1223
1224 # nuke some python stuff we don't need
81a99973 1225 for d in idle distutils bsddb lib-old hotshot doctest.py pydoc.py site-packages/japanese site-packages/japanese.pth ; do
3e6a3a30
PZ
1226 rm -rf $p/$d
1227 done
1228
1229 if [ "$ARCH" != "s390" -a "$ARCH" != "s390x" ]; then
81a99973 1230 (cd $p/lib* && rm -f libnss_files.so.1 libnss_dns.so.1)
3e6a3a30
PZ
1231 fi
1232
1233 if [ -d $DEST/usr/share/zoneinfo ]; then
1234 (cd $DEST/usr/share/zoneinfo; find . -type f -or -type l |
1235 grep '^./[A-Z]' | sort | sed 's/^..//' |
1236 gzip -9) > $p/usr/lib/timezones.gz
1237 else
1238 echo "ERROR: unable to explode tzdata for small images"
1239 fi
1240
1241 if [ -x /usr/bin/runroot -a -n "$COMPONENT" ]; then
1242 runroot $COMPONENT --onlyone --arch $ARCH "cd $p\; usr/lib/anaconda-runtime/scrubtree $DEBUG $p"
1243 else
1244 $p/usr/lib/anaconda-runtime/scrubtree $p
1245 fi
1246done
1247
1248echo "Compressing .mo files in stage2 images..."
1249if [ -d $DEST/usr/share/locale ]; then
1250 for i in `find $DEST/usr/share/locale -name anaconda.mo`; do
1251 gzip -9 $i
1252 mv -f $i.gz $i
1253 done
1254fi
1255
1256echo "Creating fontconfig cache"
1257if [ -n "$NEEDGR" ]; then
1258 if [ -x /usr/bin/runroot -a -n "$COMPONENT" ]; then
1259 runroot $COMPONENT --onlyone --arch $ARCH "LD_LIBRARY_PATH=/usr/X11R6/$LIBDIR:$LD_LIBRARY_PATH /usr/sbin/chroot $DESTGR /usr/bin/fc-cache"
1260 else
1261 LD_LIBRARY_PATH=/usr/X11R6/$LIBDIR:$LD_LIBRARY_PATH /usr/sbin/chroot $DESTGR /usr/bin/fc-cache
1262 fi
1263 rm -f $DESTGR/usr/bin/fc-cache
1264fi
1265
1266echo "Creating debug dir"
1267for p in $DEST $DESTGR ; do
1268 mkdir -p $p/usr/lib/debug
81a99973 1269 mkdir -p $p/usr/src/debug
3e6a3a30
PZ
1270done
1271
1272if [ $ARCH = "alpha" ]; then
1273 rm -rf $DEST/usr/share/locale
1274 rm -rf $DEST/usr/$LIBDIR/locale
1275fi
1276
1277echo "Patching python library..."
1278
1279# always use passive mode for ftp installs
1280cd $DEST/usr/$LIBDIR/python2.4
1281patch -p0 > /dev/null <<EOF
1282--- urllib.py.orig Thu Oct 25 17:05:06 2001
1283+++ urllib.py Thu Oct 25 17:05:34 2001
1284@@ -453,6 +453,7 @@
1285 path, attrs = splitattr(path)
1286 path = unquote(path)
1287 dirs = path.split('/')
1288+ dirs[0] = '/' + dirs[0]
1289 dirs, file = dirs[:-1], dirs[-1]
1290 if dirs and not dirs[0]: dirs = dirs[1:]
1291 if dirs and not dirs[0]: dirs[0] = '/'
1292@@ -707,6 +708,7 @@
1293 self.ftp = ftplib.FTP()
1294 self.ftp.connect(self.host, self.port)
1295 self.ftp.login(self.user, self.passwd)
1296+ self.ftp.set_pasv(1)
1297 for dir in self.dirs:
1298 self.ftp.cwd(dir)
1299EOF
1300cd -
1301
1302echo -n -e "Removing unused python files in hdimage... "
1303
1304if [ -x /usr/bin/runroot -a -n "$COMPONENT" ]; then
1305 runroot $COMPONENT --onlyone --arch $ARCH "cd $DEST\; usr/lib/anaconda-runtime/pythondeps $DEST"
1306else
1307 $DEST/usr/lib/anaconda-runtime/pythondeps $DEST
1308fi
1309echo "done."
1310
1311for p in $DEST $DESTGR; do
1312 find $p -name "*.py" | while read fn; do
1313 rm -f ${fn}o
1314 rm -f ${fn}c
1315 ln -sf /dev/null ${fn}c
1316 done
1317done
1318
1319# do some stripping of debugging symbols
1320if [ -x /usr/bin/runroot -a -n "$COMPONENT" ]; then
1321 runroot $COMPONENT --onlyone --arch $ARCH "\"find $DEST -type f -name '*.so' -exec strip -g '{}' ';'\""
1322 runroot $COMPONENT --onlyone --arch $ARCH "\"find $DESTGR -type f -name '*.so' -exec strip -g '{}' ';'\""
1323else
1324 find $DEST -type f -name '*.so' |xargs strip -g
1325 find $DESTGR -type f -name '*.so' |xargs strip -g
1326fi
1327
1328# some python stuff we don't need for stage2
81a99973
ER
1329rm -rf $DESTGR/usr/$LIBDIR/python?.?/site-packages/distutils/
1330rm -rf $DESTGR/usr/$LIBDIR/python?.?/site-packages/lib-dynload/japanese
1331rm -rf $DESTGR/usr/$LIBDIR/python?.?/site-packages/encodings/
1332rm -rf $DESTGR/usr/$LIBDIR/python?.?/site-packages/compiler/
1333rm -rf $DESTGR/usr/$LIBDIR/python?.?/site-packages/email/test/
1334rm -rf $DESTGR/usr/$LIBDIR/python?.?/site-packages/curses/
1335rm -rf $DESTGR/usr/$LIBDIR/python?.?/site-packages/pydoc.py
3e6a3a30
PZ
1336
1337# clean up tzdata
1338rm -rf $TZDIR
1339
1340# this is only for the minimal second stage
1341echo "Cleaning ramdisk install images..."
1342rm -rf $DEST/usr/lib/anaconda-runtime
This page took 0.295548 seconds and 4 git commands to generate.