games-fps/sauerbraten: clean old

Package-Manager: portage-2.2.26
This commit is contained in:
Michael Sterrett
2016-03-20 16:49:45 -04:00
parent cf67b15157
commit 84e670cbc4
6 changed files with 0 additions and 584 deletions

View File

@@ -1,2 +1 @@
DIST sauerbraten_2013_01_04_collect_edition_linux.tar.bz2 589939261 SHA256 3ecc27c318125883763130e45805eb7ba3a426234e5766ab0d00522f4a437bd1 SHA512 f89c9e69bb69596829661f551e4b63b2f2af96a01f075cb94a80e2bfae4f8664b7dab8f4850b91499817240e0311b64b049ea985c761ff7bb6d39ed75e6198cd WHIRLPOOL d10e354942180064ab44a2f8c8b13819240fde3537825908768d1ddda24f600971641b8a9cee4abee9539ec912bf265cb1771c001ad81a33e287c99e0f6906b8
DIST sauerbraten_2013_02_03_collect_edition_linux.tar.bz2 589941180 SHA256 45c20521e3e56374490b2d9112a211538e801cf0161197f35476b30b7b58a78e SHA512 7864e346cc2bc86d78973db1b341fd8256cc2e1953be51263ef91a5374f9ec00276ba2940850e6d5bba7a57c71190b670dc7ba97021be2935c31f8694fed4897 WHIRLPOOL 47a21e233dc90b5284027dbe47d13e891a434e0e550c6102a456e6300e6d5f9daba23c27fc100428161641ba276fa13faac12b935ac590a108c516b9b7987f4e

View File

@@ -1,50 +0,0 @@
applied on top of sauerbraten-2013.01.04-system-enet.patch
respect LDFLAGS, CXXFLAGS and CPPFLAGS
--- sauerbraten/src/Makefile
+++ sauerbraten/src/Makefile
@@ -1,4 +1,4 @@
-CXXFLAGS= -O3 -fomit-frame-pointer
+CXXFLAGS ?= -O3 -fomit-frame-pointer
override CXXFLAGS+= -Wall -fsigned-char -fno-exceptions -fno-rtti
PLATFORM= $(shell uname -s)
@@ -139,11 +139,11 @@
-$(RM) $(CLIENT_PCH) $(CLIENT_OBJS) $(SERVER_OBJS) $(MASTER_OBJS) sauer_client sauer_server sauer_master
%.h.gch: %.h
- $(CXX) $(CXXFLAGS) -o $(subst .h.gch,.tmp.h.gch,$@) $(subst .h.gch,.h,$@)
+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $(subst .h.gch,.tmp.h.gch,$@) $(subst .h.gch,.h,$@)
$(MV) $(subst .h.gch,.tmp.h.gch,$@) $@
%-standalone.o: %.cpp
- $(CXX) $(CXXFLAGS) -c -o $@ $(subst -standalone.o,.cpp,$@)
+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $(subst -standalone.o,.cpp,$@)
$(CLIENT_OBJS): CXXFLAGS += $(CLIENT_INCLUDES)
$(filter shared/%,$(CLIENT_OBJS)): $(filter shared/%,$(CLIENT_PCH))
@@ -168,19 +168,19 @@
install: all
else
client: $(CLIENT_OBJS)
- $(CXX) $(CXXFLAGS) -o sauer_client $(CLIENT_OBJS) $(CLIENT_LIBS)
+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) -o sauer_client $(CLIENT_OBJS) $(CLIENT_LIBS)
server: $(SERVER_OBJS)
- $(CXX) $(CXXFLAGS) -o sauer_server $(SERVER_OBJS) $(SERVER_LIBS)
+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) -o sauer_server $(SERVER_OBJS) $(SERVER_LIBS)
master: $(MASTER_OBJS)
- $(CXX) $(CXXFLAGS) -o sauer_master $(MASTER_OBJS) $(MASTER_LIBS)
+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) -o sauer_master $(MASTER_OBJS) $(MASTER_LIBS)
shared/cube2font.o: shared/cube2font.c
- $(CXX) $(CXXFLAGS) -c -o $@ $< `freetype-config --cflags`
+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $< `freetype-config --cflags`
cube2font: shared/cube2font.o
- $(CXX) $(CXXFLAGS) -o cube2font shared/cube2font.o `freetype-config --libs` -lz
+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) -o cube2font shared/cube2font.o `freetype-config --libs` -lz
install: all
cp sauer_client ../bin_unix/$(PLATFORM_PREFIX)_client

View File

@@ -1,323 +0,0 @@
http://sourceforge.net/p/sauerbraten/code/4699/
--- a/src/shared/iengine.h
+++ b/src/shared/iengine.h
@@ -415,23 +415,6 @@
extern int getservermtu();
extern int getnumclients();
extern uint getclientip(int n);
-extern void putint(ucharbuf &p, int n);
-extern void putint(packetbuf &p, int n);
-extern void putint(vector<uchar> &p, int n);
-extern int getint(ucharbuf &p);
-extern void putuint(ucharbuf &p, int n);
-extern void putuint(packetbuf &p, int n);
-extern void putuint(vector<uchar> &p, int n);
-extern int getuint(ucharbuf &p);
-extern void putfloat(ucharbuf &p, float f);
-extern void putfloat(packetbuf &p, float f);
-extern void putfloat(vector<uchar> &p, float f);
-extern float getfloat(ucharbuf &p);
-extern void sendstring(const char *t, ucharbuf &p);
-extern void sendstring(const char *t, packetbuf &p);
-extern void sendstring(const char *t, vector<uchar> &p);
-extern void getstring(char *t, ucharbuf &p, int len = MAXTRANS);
-extern void filtertext(char *dst, const char *src, bool whitespace = true, int len = sizeof(string)-1);
extern void localconnect();
extern const char *disconnectreason(int reason);
extern void disconnect_client(int n, int reason);
--- a/src/engine/server.cpp
+++ b/src/engine/server.cpp
@@ -99,125 +99,6 @@
va_end(args);
}
#endif
-
-// all network traffic is in 32bit ints, which are then compressed using the following simple scheme (assumes that most values are small).
-
-template<class T>
-static inline void putint_(T &p, int n)
-{
- if(n<128 && n>-127) p.put(n);
- else if(n<0x8000 && n>=-0x8000) { p.put(0x80); p.put(n); p.put(n>>8); }
- else { p.put(0x81); p.put(n); p.put(n>>8); p.put(n>>16); p.put(n>>24); }
-}
-void putint(ucharbuf &p, int n) { putint_(p, n); }
-void putint(packetbuf &p, int n) { putint_(p, n); }
-void putint(vector<uchar> &p, int n) { putint_(p, n); }
-
-int getint(ucharbuf &p)
-{
- int c = (char)p.get();
- if(c==-128) { int n = p.get(); n |= char(p.get())<<8; return n; }
- else if(c==-127) { int n = p.get(); n |= p.get()<<8; n |= p.get()<<16; return n|(p.get()<<24); }
- else return c;
-}
-
-// much smaller encoding for unsigned integers up to 28 bits, but can handle signed
-template<class T>
-static inline void putuint_(T &p, int n)
-{
- if(n < 0 || n >= (1<<21))
- {
- p.put(0x80 | (n & 0x7F));
- p.put(0x80 | ((n >> 7) & 0x7F));
- p.put(0x80 | ((n >> 14) & 0x7F));
- p.put(n >> 21);
- }
- else if(n < (1<<7)) p.put(n);
- else if(n < (1<<14))
- {
- p.put(0x80 | (n & 0x7F));
- p.put(n >> 7);
- }
- else
- {
- p.put(0x80 | (n & 0x7F));
- p.put(0x80 | ((n >> 7) & 0x7F));
- p.put(n >> 14);
- }
-}
-void putuint(ucharbuf &p, int n) { putuint_(p, n); }
-void putuint(packetbuf &p, int n) { putuint_(p, n); }
-void putuint(vector<uchar> &p, int n) { putuint_(p, n); }
-
-int getuint(ucharbuf &p)
-{
- int n = p.get();
- if(n & 0x80)
- {
- n += (p.get() << 7) - 0x80;
- if(n & (1<<14)) n += (p.get() << 14) - (1<<14);
- if(n & (1<<21)) n += (p.get() << 21) - (1<<21);
- if(n & (1<<28)) n |= -1<<28;
- }
- return n;
-}
-
-template<class T>
-static inline void putfloat_(T &p, float f)
-{
- lilswap(&f, 1);
- p.put((uchar *)&f, sizeof(float));
-}
-void putfloat(ucharbuf &p, float f) { putfloat_(p, f); }
-void putfloat(packetbuf &p, float f) { putfloat_(p, f); }
-void putfloat(vector<uchar> &p, float f) { putfloat_(p, f); }
-
-float getfloat(ucharbuf &p)
-{
- float f;
- p.get((uchar *)&f, sizeof(float));
- return lilswap(f);
-}
-
-template<class T>
-static inline void sendstring_(const char *t, T &p)
-{
- while(*t) putint(p, *t++);
- putint(p, 0);
-}
-void sendstring(const char *t, ucharbuf &p) { sendstring_(t, p); }
-void sendstring(const char *t, packetbuf &p) { sendstring_(t, p); }
-void sendstring(const char *t, vector<uchar> &p) { sendstring_(t, p); }
-
-void getstring(char *text, ucharbuf &p, int len)
-{
- char *t = text;
- do
- {
- if(t>=&text[len]) { text[len-1] = 0; return; }
- if(!p.remaining()) { *t = 0; return; }
- *t = getint(p);
- }
- while(*t++);
-}
-
-void filtertext(char *dst, const char *src, bool whitespace, int len)
-{
- for(int c = uchar(*src); c; c = uchar(*++src))
- {
- if(c == '\f')
- {
- if(!*++src) break;
- continue;
- }
- if(iscubeprint(c) || (iscubespace(c) && whitespace))
- {
- *dst++ = c;
- if(!--len) break;
- }
- }
- *dst = '\0';
-}
enum { ST_EMPTY, ST_LOCAL, ST_TCPIP };
--- a/src/shared/tools.h
+++ b/src/shared/tools.h
@@ -1178,5 +1178,24 @@
extern uint randomMT();
extern int guessnumcpus();
-#endif
-
+extern void putint(ucharbuf &p, int n);
+extern void putint(packetbuf &p, int n);
+extern void putint(vector<uchar> &p, int n);
+extern int getint(ucharbuf &p);
+extern void putuint(ucharbuf &p, int n);
+extern void putuint(packetbuf &p, int n);
+extern void putuint(vector<uchar> &p, int n);
+extern int getuint(ucharbuf &p);
+extern void putfloat(ucharbuf &p, float f);
+extern void putfloat(packetbuf &p, float f);
+extern void putfloat(vector<uchar> &p, float f);
+extern float getfloat(ucharbuf &p);
+extern void sendstring(const char *t, ucharbuf &p);
+extern void sendstring(const char *t, packetbuf &p);
+extern void sendstring(const char *t, vector<uchar> &p);
+extern void getstring(char *t, ucharbuf &p, int len);
+template<class T, size_t N> static inline void getstring(T (&t)[N], ucharbuf &p) { getstring(t, p, N); }
+extern void filtertext(char *dst, const char *src, bool whitespace = true, int len = sizeof(string)-1);
+
+#endif
+
--- a/src/engine/master.cpp
+++ b/src/engine/master.cpp
@@ -514,7 +514,7 @@
authreq &a = c.authreqs.add();
a.reqtime = servtime;
a.id = id;
- uint seed[3] = { starttime, servtime, randomMT() };
+ uint seed[3] = { uint(starttime), servtime, randomMT() };
static vector<char> buf;
buf.setsize(0);
a.answer = genchallenge(u->pubkey, seed, sizeof(seed), buf);
--- a/src/shared/tools.cpp
+++ b/src/shared/tools.cpp
@@ -53,3 +53,124 @@
return y;
}
+///////////////////////// network ///////////////////////
+
+// all network traffic is in 32bit ints, which are then compressed using the following simple scheme (assumes that most values are small).
+
+template<class T>
+static inline void putint_(T &p, int n)
+{
+ if(n<128 && n>-127) p.put(n);
+ else if(n<0x8000 && n>=-0x8000) { p.put(0x80); p.put(n); p.put(n>>8); }
+ else { p.put(0x81); p.put(n); p.put(n>>8); p.put(n>>16); p.put(n>>24); }
+}
+void putint(ucharbuf &p, int n) { putint_(p, n); }
+void putint(packetbuf &p, int n) { putint_(p, n); }
+void putint(vector<uchar> &p, int n) { putint_(p, n); }
+
+int getint(ucharbuf &p)
+{
+ int c = (char)p.get();
+ if(c==-128) { int n = p.get(); n |= char(p.get())<<8; return n; }
+ else if(c==-127) { int n = p.get(); n |= p.get()<<8; n |= p.get()<<16; return n|(p.get()<<24); }
+ else return c;
+}
+
+// much smaller encoding for unsigned integers up to 28 bits, but can handle signed
+template<class T>
+static inline void putuint_(T &p, int n)
+{
+ if(n < 0 || n >= (1<<21))
+ {
+ p.put(0x80 | (n & 0x7F));
+ p.put(0x80 | ((n >> 7) & 0x7F));
+ p.put(0x80 | ((n >> 14) & 0x7F));
+ p.put(n >> 21);
+ }
+ else if(n < (1<<7)) p.put(n);
+ else if(n < (1<<14))
+ {
+ p.put(0x80 | (n & 0x7F));
+ p.put(n >> 7);
+ }
+ else
+ {
+ p.put(0x80 | (n & 0x7F));
+ p.put(0x80 | ((n >> 7) & 0x7F));
+ p.put(n >> 14);
+ }
+}
+void putuint(ucharbuf &p, int n) { putuint_(p, n); }
+void putuint(packetbuf &p, int n) { putuint_(p, n); }
+void putuint(vector<uchar> &p, int n) { putuint_(p, n); }
+
+int getuint(ucharbuf &p)
+{
+ int n = p.get();
+ if(n & 0x80)
+ {
+ n += (p.get() << 7) - 0x80;
+ if(n & (1<<14)) n += (p.get() << 14) - (1<<14);
+ if(n & (1<<21)) n += (p.get() << 21) - (1<<21);
+ if(n & (1<<28)) n |= -1<<28;
+ }
+ return n;
+}
+
+template<class T>
+static inline void putfloat_(T &p, float f)
+{
+ lilswap(&f, 1);
+ p.put((uchar *)&f, sizeof(float));
+}
+void putfloat(ucharbuf &p, float f) { putfloat_(p, f); }
+void putfloat(packetbuf &p, float f) { putfloat_(p, f); }
+void putfloat(vector<uchar> &p, float f) { putfloat_(p, f); }
+
+float getfloat(ucharbuf &p)
+{
+ float f;
+ p.get((uchar *)&f, sizeof(float));
+ return lilswap(f);
+}
+
+template<class T>
+static inline void sendstring_(const char *t, T &p)
+{
+ while(*t) putint(p, *t++);
+ putint(p, 0);
+}
+void sendstring(const char *t, ucharbuf &p) { sendstring_(t, p); }
+void sendstring(const char *t, packetbuf &p) { sendstring_(t, p); }
+void sendstring(const char *t, vector<uchar> &p) { sendstring_(t, p); }
+
+void getstring(char *text, ucharbuf &p, int len)
+{
+ char *t = text;
+ do
+ {
+ if(t>=&text[len]) { text[len-1] = 0; return; }
+ if(!p.remaining()) { *t = 0; return; }
+ *t = getint(p);
+ }
+ while(*t++);
+}
+
+void filtertext(char *dst, const char *src, bool whitespace, int len)
+{
+ for(int c = uchar(*src); c; c = uchar(*++src))
+ {
+ if(c == '\f')
+ {
+ if(!*++src) break;
+ continue;
+ }
+ if(iscubeprint(c) || (iscubespace(c) && whitespace))
+ {
+ *dst++ = c;
+ if(!--len) break;
+ }
+ }
+ *dst = '\0';
+}
+

View File

@@ -1,64 +0,0 @@
--- sauerbraten/src/Makefile
+++ sauerbraten/src/Makefile
@@ -4,7 +4,7 @@
PLATFORM= $(shell uname -s)
PLATFORM_PREFIX= native
-INCLUDES= -Ishared -Iengine -Ifpsgame -Ienet/include
+INCLUDES= -Ishared -Iengine -Ifpsgame
STRIP=
ifeq (,$(findstring -g,$(CXXFLAGS)))
@@ -36,8 +36,8 @@
endif
CLIENT_LIBS= -mwindows $(STD_LIBS) -L$(WINBIN) -L$(WINLIB) -lSDL -lSDL_image -lSDL_mixer -lzlib1 -lopengl32 -lenet -lws2_32 -lwinmm
else
-CLIENT_INCLUDES= $(INCLUDES) -I/usr/X11R6/include `sdl-config --cflags`
-CLIENT_LIBS= -Lenet/.libs -lenet -L/usr/X11R6/lib -lX11 `sdl-config --libs` -lSDL_image -lSDL_mixer -lz -lGL
+CLIENT_INCLUDES= $(INCLUDES) `sdl-config --cflags`
+CLIENT_LIBS= -lenet -lX11 `sdl-config --libs` -lSDL_image -lSDL_mixer -lz -lGL
endif
ifeq ($(PLATFORM),Linux)
CLIENT_LIBS+= -lrt
@@ -106,7 +106,7 @@
MASTER_LIBS= $(STD_LIBS) -L$(WINBIN) -L$(WINLIB) -lzlib1 -lenet -lws2_32 -lwinmm
else
SERVER_INCLUDES= -DSTANDALONE $(INCLUDES)
-SERVER_LIBS= -Lenet/.libs -lenet -lz
+SERVER_LIBS= -lenet -lz
MASTER_LIBS= $(SERVER_LIBS)
endif
SERVER_OBJS= \
@@ -135,15 +135,6 @@
all: client server
-enet/Makefile:
- cd enet; ./configure --enable-shared=no --enable-static=yes
-
-libenet: enet/Makefile
- $(MAKE) -C enet/ all
-
-clean-enet: enet/Makefile
- $(MAKE) -C enet/ clean
-
clean:
-$(RM) $(CLIENT_PCH) $(CLIENT_OBJS) $(SERVER_OBJS) $(MASTER_OBJS) sauer_client sauer_server sauer_master
@@ -176,13 +167,13 @@
install: all
else
-client: libenet $(CLIENT_OBJS)
+client: $(CLIENT_OBJS)
$(CXX) $(CXXFLAGS) -o sauer_client $(CLIENT_OBJS) $(CLIENT_LIBS)
-server: libenet $(SERVER_OBJS)
+server: $(SERVER_OBJS)
$(CXX) $(CXXFLAGS) -o sauer_server $(SERVER_OBJS) $(SERVER_LIBS)
-master: libenet $(MASTER_OBJS)
+master: $(MASTER_OBJS)
$(CXX) $(CXXFLAGS) -o sauer_master $(MASTER_OBJS) $(MASTER_LIBS)
shared/cube2font.o: shared/cube2font.c

View File

@@ -1,19 +0,0 @@
--- sauerbraten_unix.orig 2008-08-15 20:05:44.000000000 +0200
+++ sauerbraten_unix 2008-08-15 22:49:47.000000000 +0200
@@ -3,6 +3,7 @@
#SAUER_DIR=~/sauerbraten
#SAUER_DIR=/usr/local/sauerbraten
SAUER_DIR=.
+SAUER_DATADIR=.
# SAUER_OPTIONS contains any command line options you would like to start Sauerbraten with.
#SAUER_OPTIONS="-f"
@@ -46,7 +47,7 @@
if [ -x ${SAUER_DIR}/bin_unix/${MACHINE_NAME}${SYSTEM_NAME}client ]
then
- cd ${SAUER_DIR}
+ cd ${SAUER_DATADIR}
exec ${SAUER_DIR}/bin_unix/${MACHINE_NAME}${SYSTEM_NAME}client ${SAUER_OPTIONS} $@
else
echo "Your platform does not have a pre-compiled Sauerbraten client."

View File

@@ -1,127 +0,0 @@
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
inherit eutils flag-o-matic gnome2-utils games
EDITION="collect_edition"
DESCRIPTION="Cube 2: Sauerbraten is an open source game engine (Cube 2) with freeware game data (Sauerbraten)"
HOMEPAGE="http://sauerbraten.org/"
SRC_URI="mirror://sourceforge/sauerbraten/sauerbraten/2013_01_04/sauerbraten_${PV//./_}_${EDITION}_linux.tar.bz2"
LICENSE="ZLIB freedist"
SLOT="0"
KEYWORDS="amd64 x86"
IUSE="debug dedicated server"
RDEPEND="
sys-libs/zlib
>=net-libs/enet-1.3.6:1.3
!dedicated? (
media-libs/libsdl[X,opengl]
media-libs/sdl-mixer[vorbis]
media-libs/sdl-image[png,jpeg]
virtual/opengl
virtual/glu
x11-libs/libX11 )"
DEPEND="${RDEPEND}"
S=${WORKDIR}/${PN}
src_prepare() {
ecvs_clean
rm -rf sauerbraten_unix bin_unix src/{include,lib,vcpp}
# Patch makefile to use system enet instead of bundled
# respect CXXFLAGS, LDFLAGS
epatch "${FILESDIR}"/${P}-{system-enet,QA,master}.patch
# Fix links so they point to the correct directory
sed -i \
-e 's:docs/::' \
README.html \
|| die
}
src_compile() {
use debug && append-cppflags -D_DEBUG
emake -C src master $(usex dedicated "server" "$(usex server "server client" "client")")
}
src_install() {
local LIBEXECDIR="${GAMES_PREFIX}/lib"
local DATADIR="${GAMES_DATADIR}/${PN}"
local STATEDIR="${GAMES_STATEDIR}/${PN}"
if ! use dedicated ; then
# Install the game data
insinto "${DATADIR}"
doins -r data packages
# Install the client executable
exeinto "${LIBEXECDIR}"
doexe src/sauer_client
# Install the client wrapper
games_make_wrapper "${PN}-client" "${LIBEXECDIR}/sauer_client -q\$HOME/.${PN} -r" "${DATADIR}"
# Create menu entry
newicon -s 256 data/cube.png ${PN}.png
make_desktop_entry "${PN}-client" "Cube 2: Sauerbraten"
fi
# Install the server config files
insinto "${STATEDIR}"
doins "server-init.cfg"
# Install the server executables
exeinto "${LIBEXECDIR}"
doexe src/sauer_master
use dedicated || use server && doexe src/sauer_server
games_make_wrapper "${PN}-server" \
"${LIBEXECDIR}/sauer_server -k${DATADIR} -q${STATEDIR}"
games_make_wrapper "${PN}-master" \
"${LIBEXECDIR}/sauer_master ${STATEDIR}"
# Install the server init script
keepdir "${GAMES_STATEDIR}/run/${PN}"
cp "${FILESDIR}"/${PN}.init "${T}" || die
sed -i \
-e "s:%SYSCONFDIR%:${STATEDIR}:g" \
-e "s:%LIBEXECDIR%:${LIBEXECDIR}:g" \
-e "s:%GAMES_STATEDIR%:${GAMES_STATEDIR}:g" \
"${T}"/${PN}.init || die
newinitd "${T}"/${PN}.init ${PN}
cp "${FILESDIR}"/${PN}.conf "${T}" || die
sed -i \
-e "s:%SYSCONFDIR%:${STATEDIR}:g" \
-e "s:%LIBEXECDIR%:${LIBEXECDIR}:g" \
-e "s:%GAMES_USER_DED%:${GAMES_USER_DED}:g" \
-e "s:%GAMES_GROUP%:${GAMES_GROUP}:g" \
"${T}"/${PN}.conf || die
newconfd "${T}"/${PN}.conf ${PN}
dodoc src/*.txt docs/dev/*.txt
dohtml -r README.html docs/*
prepgamesdirs
}
pkg_preinst() {
games_pkg_preinst
gnome2_icon_savelist
}
pkg_postinst() {
games_pkg_postinst
gnome2_icon_cache_update
elog "If you plan to use map editor feature copy all map data from ${DATADIR}"
elog "to corresponding folder in your HOME/.${PN}"
}
pkg_postrm() {
gnome2_icon_cache_update
}