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