modified spec file for inclusion in Fedora
[ovirt-node-image.git] / common-blacklist.ks
blobb36efefa3609f58513e280ad00c0fcd282e555d1
1 # -*-Shell-script-*-
2 %post
4 echo "Removing excess RPMs"
6 # kernel pulls in mkinitrd which pulls in isomd5sum which pulls in python,
7 # and livecd-tools needs lokkit to configure SELinux.
8 # However, this is just an install-time dependency; we can remove
9 # it afterwards, which we do here
10 RPMS="system-config-firewall-tui system-config-network-tui rhpl \
11     rpm-python kudzu libsemanage-python"
13 RPMS="$RPMS mkinitrd isomd5sum dmraid checkpolicy"
15 # Remove additional RPMs forcefully
16 RPMS="$RPMS gamin pm-utils kbd usermode vbetool ConsoleKit hdparm \
17     efibootmgr linux-atm-libs fedora-release-notes \
18     psmisc cryptsetup-luks pciutils mtools syslinux \
19     wireless-tools radeontool libicu gnupg2 \
20     fedora-logos"
22 # cronie pulls in exim (sendmail) which pulls in all kinds of perl deps
23 RPMS="$RPMS exim perl-version perl-Pod-Simple perl-libs perl-Module-Pluggable \
24     perl-Pod-Escapes perl"
26 RPMS="$RPMS sysklogd"
28 # Things we could probably remove if libvirt didn't link against them
29 #RPMS="$RPMS avahi PolicyKit xen-libs"
31 # Things we could probably remove if qemu-kvm didn't link against them
32 #RPMS="$RPMS SDL alsa-lib"
34 # Pam complains when this is missing
35 #RPMS="$RPM ConsoleKit-libs"
37 for rpm in $RPMS; do
38     rpm -v -e --nodeps $rpm 2> /dev/null
39 done
41 # the following are lists of kernel modules we are pretty sure we won't need;
42 # note that these can be single files or whole directories.  They are specified
43 # starting at $MODULES; so if you want to remove the NLS stuff from the
44 # fs subdir, your mods entry would be "fs/nls"
45 fs_mods="fs/nls fs/9p fs/affs fs/autofs fs/autofs4 fs/befs fs/bfs fs/cifs \
46        fs/coda fs/cramfs fs/dlm fs/ecryptfs fs/efs fs/exportfs fs/ext4 \
47        fs/freevxfs fs/gfs2 fs/hfs fs/hfsplus fs/jbd2 fs/jffs \
48        fs/jffs2 fs/jfs fs/minix fs/ncpfs fs/ocfs2 fs/qnx4 fs/reiserfs \
49        fs/romfs fs/sysv fs/udf fs/ufs fs/xfs"
51 net_mods="net/9p net/appletalk net/atm net/ax25 \
52        net/bluetooth net/dccp net/decnet net/ieee80211 net/ipx net/irda \
53        net/mac80211 net/netrom net/rfkill net/rose net/sched net/tipc \
54        net/wanrouter net/wireless"
56 driver_mods="drivers/auxdisplay drivers/net/appletalk \
57        drivers/net/hamradio drivers/net/pcmcia drivers/net/tokenring \
58        drivers/net/wireless drivers/net/irda drivers/atm drivers/usb/atm \
59        drivers/acpi drivers/char/drm drivers/char/mwave \
60        drivers/char/ipmp drivers/char/pcmcia drivers/crypto \
61        drivers/firmware drivers/memstick drivers/mmc drivers/mfs \
62        drivers/parport drivers/video drivers/watchdog drivers/net/ppp* \
63        drivers/usb/serial drivers/usb/misc drivers/usb/class \
64        drivers/usb/image drivers/rtc drivers/char/lp*"
66 misc_mods="drivers/bluetooth drivers/firewire drivers/i2c drivers/isdn \
67        drivers/media drivers/misc drivers/leds drivers/mtd drivers/w1 sound \
68        drivers/input drivers/pcmcia drivers/scsi/pcmcia"
70 echo "Removing excess kernel modules"
71 MODULES="/lib/modules/*/kernel"
72 RM="rm -rf"
74 for mods in $fs_mods $net_mods $misc_mods $driver_mods ; do
75     $RM $MODULES/$mods
76 done
78 echo "Removing all timezones except for UTC"
79 find /usr/share/zoneinfo -regextype egrep -type f \
80   ! -regex ".*/UTC|.*/GMT" -exec $RM {} \;
82 echo "Removing blacklisted files and directories"
83 blacklist="/etc/alsa /etc/pki /usr/share/hwdata/MonitorsDB \
84     /usr/share/hwdata/oui.txt /usr/share/hwdata/videoaliases \
85     /usr/share/firstboot /usr/share/lua /usr/share/kde4 /usr/share/pixmaps \
86     /usr/share/hwdata/videodrivers /usr/share/icons /usr/share/fedora-release \
87     /usr/share/tabset /usr/share/libvirt /usr/share/augeas/lenses/tests \
88     /usr/share/tc /usr/share/emacs /usr/share/info \
89     /usr/src /usr/etc /usr/games /usr/include /usr/local \
90     /usr/sbin/{dell*,sasldblistusers2,build-locale-archive,glibc_post_upgrade.*}"
91 blacklist_lib="/usr/{,lib64}/tc \
92     /usr/lib{,64}/tls /usr/lib{,64}/sse2 \
93     /usr/lib{,64}/pkgconfig /usr/lib{,64}/nss \
94     /usr/lib{,64}/games /usr/lib{,64}/alsa-lib /usr/lib{,64}/fs/reiserfs \
95     /usr/lib{,64}/krb5 /usr/lib{,64}/hal /usr/lib{,64}/gio \
96     /usr/lib/locale /usr/lib/syslinux"
97 blacklist_pango="/usr/lib{,64}/pango /usr/lib{,64}/libpango* \
98     /etc/pango /usr/bin/pango*"
99 blacklist_hal="/usr/bin/hal-disable-polling \
100     /usr/bin/hal-is-caller-locked-out /usr/bin/hal-is-caller-privileged \
101     /usr/bin/hal-lock /usr/bin/hal-set-property /usr/bin/hal-setup-keymap"
102 blacklist_ssh="/usr/bin/sftp /usr/bin/slogin /usr/bin/ssh /usr/bin/ssh-add \
103     /usr/bin/ssh-agent /usr/bin/ssh-copy-id /usr/bin/ssh-keyscan"
104 blacklist_docs="/usr/share/omf /usr/share/gnome /usr/share/doc \
105     /usr/share/locale /usr/share/libthai /usr/share/man \
106     /usr/share/X11 /usr/share/i18n"
108 eval $RM $blacklist $blacklist_lib $blacklist_pango $blacklist_hal \
109     $blacklist_ssh $blacklist_docs
111 echo "Cleanup empty directory structures in /usr/share"
112 find /usr/share -type d -exec rmdir {} \; > /dev/null 2>&1
114 echo "Cleanup excess selinux modules"
115 $RM /usr/share/selinux
117 echo "Removing python source files"
118 find / -name '*.py' -exec rm -f {} \;
119 find / -name '*.pyo' -exec rm -f {} \;
121 echo "Running image-minimizer..."
122 %end
124 %post --nochroot --interpreter image-minimizer
125 drop /usr/lib/libboost*
126 keep /usr/lib/libboost_program_options.so*
127 keep /usr/lib/libboost_filesystem.so*
128 keep /usr/lib/libboost_thread-mt.so*
129 keep /usr/lib/libboost_system.so*
130 drop /usr/lib64/libboost*
131 keep /usr/lib64/libboost_program_options.so*
132 keep /usr/lib64/libboost_filesystem.so*
133 keep /usr/lib64/libboost_thread-mt.so*
134 keep /usr/lib64/libboost_system.so*
135 drop /usr/kerberos
136 keep /usr/kerberos/bin/kinit
137 keep /usr/kerberos/bin/klist
138 drop /lib/firmware
139 keep /lib/firmware/3com
140 keep /lib/firmware/acenic
141 keep /lib/firmware/adaptec
142 keep /lib/firmware/advansys
143 keep /lib/firmware/bnx2
144 keep /lib/firmware/cxgb3
145 keep /lib/firmware/e100
146 keep /lib/firmware/myricom
147 keep /lib/firmware/qlogic
148 keep /lib/firmware/sun
149 keep /lib/firmware/tehuti
150 keep /lib/firmware/tigon
151 %end