#! /bin/sh -e
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Massive SONAME change 

if [ $# -ne 1 ]; then
    echo "`basename $0`: script expects -patch|-unpatch as argument" >&2
    exit 1
fi
case "$1" in
    -patch) patch -f --no-backup-if-mismatch -p1 < $0;;
    -unpatch) patch -f --no-backup-if-mismatch -R -p1 < $0;;
    *)
        echo "`basename $0`: script expects -patch|-unpatch as argument" >&2
        exit 1;;
esac

exit 0

@DPATCH@

diff -urN eresi-0.8a25.orig/libasm/Makefile eresi-0.8a25/libasm/Makefile
--- eresi-0.8a25.orig/libasm/Makefile	2008-04-06 23:16:25.000000000 +0000
+++ eresi-0.8a25/libasm/Makefile	2008-06-13 20:28:56.992446734 +0000
@@ -79,7 +79,7 @@
 ifeq ($(IRIX),1)
 	@$(LD) ${OBJS_libasm} -o libasm.so -shared
 else
-	@$(CC) ${OBJS_libasm} -o libasm.so -shared
+	@$(CC) ${OBJS_libasm} -Wl,-soname=libasm.so.0 -o libasm.so -shared
 endif
 
 clean:
@@ -89,7 +89,7 @@
 
 fclean: clean
 	@$(RM) ${NAME_libasm} ${NAME_libasm_o} ${NAME_mydisasm} ${NAME_cmpdump}
-	@$(RM) *.so *.o *.a
+	@$(RM) *.so* *.o *.a
 	@$(RM) mydisasm
 
 tags:
diff -urN eresi-0.8a25.orig/libaspect/Makefile eresi-0.8a25/libaspect/Makefile
--- eresi-0.8a25.orig/libaspect/Makefile	2008-04-06 23:15:53.000000000 +0000
+++ eresi-0.8a25/libaspect/Makefile	2008-06-13 20:29:25.895448861 +0000
@@ -24,7 +24,7 @@
 
 libaspect32.so		: $(OBJ32)
 		@$(CC) -L../liballocproxy/ -lallocproxy \
-		$(DLOPT) -shared $(OBJ32) -o $(NAME32).so
+		$(DLOPT) -shared $(OBJ32) -Wl,-soname=$(NAME32).so.0 -o $(NAME32).so
 		@$(AR) $(NAME32).a $(OBJ32)
 		@$(RANLIB) $(NAME32).a
 		$(LD) -r $(OBJ32) -o $(NAME32).o
@@ -32,8 +32,8 @@
 all32:	libaspect32.so
 
 libaspect64.so		: $(OBJ64)
-		@$(LD) -L../liballocproxy/ -lallocproxy \
-		$(DLOPT) -shared $(OBJ64) -o $(NAME64).so
+		@$(CC) -L../liballocproxy/ -lallocproxy \
+		$(DLOPT) -shared $(OBJ64) -Wl,-soname=$(NAME64).so.0 -o $(NAME64).so
 		@$(AR) $(NAME64).a $(OBJ64)
 		@$(RANLIB) $(NAME64).a
 		$(LD) -r $(OBJ64) -o $(NAME64).o
@@ -46,7 +46,7 @@
 		include/*\# include/*~ include/.\#*
 
 fclean		: clean
-		@$(RM) *.so *.a
+		@$(RM) *.so* *.a
 
 %.32.o 		: %.c
 		$(CC) $(CFLAGS32) -c -o $@ $<
diff -urN eresi-0.8a25.orig/libe2dbg/Makefile eresi-0.8a25/libe2dbg/Makefile
--- eresi-0.8a25.orig/libe2dbg/Makefile	2008-04-06 23:16:30.000000000 +0000
+++ eresi-0.8a25/libe2dbg/Makefile	2008-06-13 20:29:40.443438969 +0000
@@ -53,7 +53,7 @@
 
 $(DBGNAME32O):
 			@$(CC) -shared $(COBJ32) $(EXTRAOBJ32) $(UOBJ32) $(LDFLAGS32) \
-			$(KERNSHLIB32) -o $(DBGNAME32).so
+			$(KERNSHLIB32) -Wl,-soname=$(DBGNAME32).so.0 -o $(DBGNAME32).so
 			@$(AR) $(DBGNAME32).a $(COBJ32) $(UOBJ32) $(EXTRAOBJ32)
 			@$(RANLIB) $(DBGNAME32).a
 			@$(LD) -r $(COBJ32) $(EXTRAOBJ32) $(UOBJ32) -o $(DBGNAME32O)
@@ -71,7 +71,7 @@
 
 $(DBGNAME64O)			:
 			@$(CC) -shared $(OBJ64) $(EXTRAOBJ64) $(UOBJ64) $(LDFLAGS64) \
-			$(KERNSHLIB64) -o $(DBGNAME64).so
+			$(KERNSHLIB64) -Wl,-soname=$(DBGNAME64).so.0 -o $(DBGNAME64).so
 			@$(AR) $(DBGNAME64).a $(OBJ64)
 			@$(RANLIB) $(DBGNAME64).a
 			@$(LD) -r $(OBJ64) $(EXTRAOBJ64) -o $(DBGNAME64O)
@@ -94,7 +94,7 @@
 
 fclean		       : clean
 		       @$(RM) $(KDBGNAME64O) $(KDBGNAME32O) $(DBGNAME32O) $(DBGNAME64O)
-		       @$(RM) $(DBGNAME32).so $(DBGNAME64).so $(DBGNAME32).a $(DBGNAME64).a
+		       @$(RM) $(DBGNAME32).so* $(DBGNAME64).so* $(DBGNAME32).a $(DBGNAME64).a
 
 %.32.o : %.c
 			$(CC) $(CFLAGS32) -c -o $@ $<
diff -urN eresi-0.8a25.orig/libedfmt/Makefile eresi-0.8a25/libedfmt/Makefile
--- eresi-0.8a25.orig/libedfmt/Makefile	2008-04-06 23:15:32.000000000 +0000
+++ eresi-0.8a25/libedfmt/Makefile	2008-06-13 20:29:53.496425173 +0000
@@ -33,14 +33,14 @@
 all			: all32 all64
 
 libedfmt32.so			: $(OBJ32)
-			@$(CC) $(LDFLAGS32) -shared $(OBJ32) -o $(NAME32).so
+			@$(CC) $(LDFLAGS32) -shared $(OBJ32) -Wl,-soname=$(NAME32).so.0 -o $(NAME32).so
 			@$(AR) $(NAME32).a $(OBJ32)
 			@$(RANLIB) $(NAME32).a
 			@$(LD) -r $(OBJ32) -o $(NAME32).o
 all32: libedfmt32.so
 
 libedfmt64.so		: $(OBJ64)
-			@$(CC) $(LDFLAGS64) -shared $(OBJ64) -o $(NAME64).so
+			@$(CC) $(LDFLAGS64) -shared $(OBJ64) -Wl,-soname=$(NAME64).so.0 -o $(NAME64).so
 			@$(AR) $(NAME64).a $(OBJ64)
 			@$(RANLIB) $(NAME64).a
 			@$(LD) -r $(OBJ64) -o $(NAME64).o
@@ -55,9 +55,9 @@
 			doxygen doc/doxygen.conf
 
 fclean			: clean
-			@$(RM) $(NAME).so $(NAME).a \
-			$(NAME32).so $(NAME32).a \
-			$(NAME64).so $(NAME64).a
+			@$(RM) $(NAME).so* $(NAME).a \
+			$(NAME32).so* $(NAME32).a \
+			$(NAME64).so* $(NAME64).a
 
 %.32.o : %.c
 			$(CC) $(CFLAGS32) -c -o $@ $<
diff -urN eresi-0.8a25.orig/libelfsh/Makefile eresi-0.8a25/libelfsh/Makefile
--- eresi-0.8a25.orig/libelfsh/Makefile	2008-04-06 23:15:37.000000000 +0000
+++ eresi-0.8a25/libelfsh/Makefile	2008-06-13 20:30:03.659428361 +0000
@@ -41,7 +41,7 @@
 libelfsh32.so		: $(OBJ32)
 			@$(CC) -L../liballocproxy/ -lallocproxy \
                         -L../libaspect/ -laspect32 -DERESI32 \
-			$(KERNSHLIB32) -shared $(OBJ32) -o $(NAME32).so
+			$(KERNSHLIB32) -shared $(OBJ32) -Wl,-soname=$(NAME32).so.0 -o $(NAME32).so
 			@$(AR) $(NAME32).a $(OBJ32)
 			@$(RANLIB) $(NAME32).a
 			@$(LD) -r $(OBJ32) -o $(NAME32).o
@@ -52,7 +52,7 @@
 libelfsh64.so		:  $(OBJ64)
 			@$(CC) -L../liballocproxy/ -lallocproxy \
                         -L../libaspect/ -laspect64 -DERESI64 \
-			$(KERNSHLIB64) -shared $(OBJ64) -o $(NAME64).so 
+			$(KERNSHLIB64) -shared $(OBJ64) -Wl,-soname=$(NAME64).so.0 -o $(NAME64).so
 			@$(AR) $(NAME64).a $(OBJ64)
 			@$(RANLIB) $(NAME64).a
 			@$(LD) -r $(OBJ64) -o $(NAME64).o
@@ -66,7 +66,7 @@
 			include/libelfsh/.\#*
 
 fclean			: clean
-			@$(RM) *.so *.a
+			@$(RM) *.so* *.a
 
 
 docs:
diff -urN eresi-0.8a25.orig/libetrace/Makefile eresi-0.8a25/libetrace/Makefile
--- eresi-0.8a25.orig/libetrace/Makefile	2008-04-06 23:15:44.000000000 +0000
+++ eresi-0.8a25/libetrace/Makefile	2008-06-13 20:30:13.458447791 +0000
@@ -31,7 +31,7 @@
 all32			: $(OBJ32)
 			@$(CC) -L../liballocproxy/ \
 			-lallocproxy -L../libaspect/ -laspect32 -DERESI32 \
-			-lelfsh32 -L../libelfsh/ -shared $(OBJ32) -o $(NAME32).so
+			-lelfsh32 -L../libelfsh/ -shared $(OBJ32) -Wl,-soname=$(NAME32).so.0 -o $(NAME32).so
 			@$(AR) $(NAME32).a $(OBJ32)
 			@$(RANLIB) $(NAME32).a
 			@$(LD) -r $(OBJ32) -o $(NAME32).o
@@ -39,7 +39,7 @@
 all64			:  $(OBJ64)
 			@$(CC) -L../liballocproxy/ \
 			-lallocproxy -L../libaspect/ -laspect64 -DERESI64 \
-			-lelfsh64 -L../libelfsh/ -shared $(OBJ64) -o $(NAME64).so 
+			-lelfsh64 -L../libelfsh/ -shared $(OBJ64) -Wl,-soname=$(NAME64).so.0 -o $(NAME64).so
 			@$(AR) $(NAME64).a $(OBJ64)
 			@$(RANLIB) $(NAME64).a
 			@$(LD) -r $(OBJ64) -o $(NAME64).o
@@ -51,7 +51,7 @@
 			include/libelfsh/.\#*
 
 fclean			: clean
-			@$(RM) *.so *.a
+			@$(RM) *.so* *.a
 
 
 docs:
diff -urN eresi-0.8a25.orig/libmjollnir/Makefile eresi-0.8a25/libmjollnir/Makefile
--- eresi-0.8a25.orig/libmjollnir/Makefile	2008-04-06 23:16:30.000000000 +0000
+++ eresi-0.8a25/libmjollnir/Makefile	2008-06-13 20:30:27.760483035 +0000
@@ -41,7 +41,7 @@
 all	: all32 all64
 
 $(NAME32).so	: $(OBJ32)
-	@$(CC) $(BITS) -shared $(OBJ32) -o $(NAME32).so -lcrypto $(LDFLAGS32)
+	@$(CC) $(BITS) -shared $(OBJ32) -Wl,-soname=$(NAME32).so.0 -o $(NAME32).so -lcrypto $(LDFLAGS32)
 	@ar rc ${NAME32}.a ${OBJ32} 
 	@${RANLIB} ${NAME32}.a
 #	$(CC) $(CFLAGS32) $(LDFLAGS32) $(SRCT) -o $(OBJT) $(STATOPT) -lmjollnir32
@@ -50,7 +50,7 @@
 all32: $(NAME32).so
 
 $(NAME64).so	: $(OBJ64)
-	@$(CC) $(BITS) -shared $(OBJ64) -o $(NAME64).so -lcrypto $(LDFLAGS64)
+	@$(CC) $(BITS) -shared $(OBJ64) -Wl,-soname=$(NAME64).so.0 -o $(NAME64).so -lcrypto $(LDFLAGS64)
 	@ar rc ${NAME64}.a ${OBJ64} 
 	@${RANLIB} ${NAME64}.a
 	@$(LD) -r $(OBJ64) -o $(NAME64).o
@@ -65,7 +65,7 @@
 	include/\#* include/*~ $(OBJT) $(OBJM)
 
 fclean: clean
-	rm -f bin/elfThor mjollnirUnitTest *.a *.so *~ $(NAME64).o $(NAME32).o
+	rm -f bin/elfThor mjollnirUnitTest *.a *.so* *~ $(NAME64).o $(NAME32).o
 
 .c.o:
 	$(CC) $(CFLAGS) -c $*.c -o $*.o
diff -urN eresi-0.8a25.orig/librevm/Makefile eresi-0.8a25/librevm/Makefile
--- eresi-0.8a25.orig/librevm/Makefile	2008-04-06 23:15:46.000000000 +0000
+++ eresi-0.8a25/librevm/Makefile	2008-06-13 20:30:41.661428337 +0000
@@ -47,7 +47,7 @@
 			$(MAKE) -C api  all32
 
 $(NAME32).so			:
-			$(CC) -shared $(OBJ32) -o $(NAME32).so $(LDFLAGS32) \
+			$(CC) -shared $(OBJ32) -Wl,-soname=$(NAME32).so.0 -o $(NAME32).so $(LDFLAGS32) \
 			$(STATOPT) $(NCURSESLNOPT) $(READLNOPT)
 			ar rc ${NAME32}.a ${OBJ32} 
 			@$(RANLIB) ${NAME32}.a
@@ -62,7 +62,7 @@
 			$(MAKE) -C api  all64
 
 lib64			:
-			$(CC) -shared $(OBJ64) -o $(NAME64).so $(LDFLAGS64) \
+			$(CC) -shared $(OBJ64) -Wl,-soname=$(NAME64).so.0 -o $(NAME64).so $(LDFLAGS64) \
 			$(STATOPT) $(NCURSESLNOPT) $(READLNOPT)
 			ar rc ${NAME64}.a ${OBJ64} 
 			ranlib ${NAME64}.a
@@ -77,7 +77,7 @@
 		        @$(RM) include/*~ include/\#* include/*\# include/.\#*
 
 fclean		       : clean
-		       @$(RM) *.o *.so *.a $(OBJ_DYN)
+		       @$(RM) *.o *.so* *.a $(OBJ_DYN)
 
 docs:
 			doxygen doc/doxygen.conf
diff -urN eresi-0.8a25.orig/libstderesi/Makefile eresi-0.8a25/libstderesi/Makefile
--- eresi-0.8a25.orig/libstderesi/Makefile	2008-04-06 23:16:28.000000000 +0000
+++ eresi-0.8a25/libstderesi/Makefile	2008-06-13 20:30:57.399446298 +0000
@@ -44,7 +44,7 @@
 			$(MAKE) -C cmd  all32
 
 $(NAME32).so			:
-			$(CC) -shared $(OBJ32) -o $(NAME32).so $(LDFLAGS32) \
+			$(CC) -shared $(OBJ32) -Wl,-soname=$(NAME32).so.0 -o $(NAME32).so $(LDFLAGS32) \
 			$(STATOPT) $(NCURSESLNOPT) $(READLNOPT)
 			ar rc ${NAME32}.a ${OBJ32} 
 			@$(RANLIB) ${NAME32}.a
@@ -59,7 +59,7 @@
 			$(MAKE) -C cmd  all64
 
 $(NAME64).so			:
-			$(CC) -shared $(OBJ64) -o $(NAME64).so $(LDFLAGS64) \
+			$(CC) -shared $(OBJ64) -Wl,-soname=$(NAME64).so.0 -o $(NAME64).so $(LDFLAGS64) \
 			$(STATOPT) $(NCURSESLNOPT) $(READLNOPT)
 			ar rc ${NAME64}.a ${OBJ64} 
 			ranlib ${NAME64}.a
@@ -73,7 +73,7 @@
 		        @$(RM) include/*~ include/\#* include/*\# include/.\#*
 
 fclean		       : clean
-		       @$(RM) *.o *.so *.a $(OBJ_DYN)
+		       @$(RM) *.o *.so* *.a $(OBJ_DYN)
 
 docs:
 			doxygen doc/doxygen.conf
diff -urN eresi-0.8a25.orig/libui/Makefile eresi-0.8a25/libui/Makefile
--- eresi-0.8a25.orig/libui/Makefile	2008-04-06 23:15:49.000000000 +0000
+++ eresi-0.8a25/libui/Makefile	2008-06-13 20:31:08.798447288 +0000
@@ -50,7 +50,7 @@
 all		: all32 all64
 
 $(NAME32).so		: $(OBJ32)
-		@$(LD) $(LDFLAGS32) $(BITS) -shared $(OBJ32) -o $(NAME32).so
+		@$(LD) $(LDFLAGS32) $(BITS) -shared $(OBJ32) -Wl,-soname=$(NAME32).so.0 -o $(NAME32).so
 		@$(AR) $(NAME32).a $(OBJ32)
 		@$(RANLIB) $(NAME32).a
 
@@ -58,7 +58,7 @@
 
 
 $(NAME64).so		: $(OBJ64)
-		@$(LD) $(LDFLAGS64) $(BITS) -shared $(OBJ64) -o $(NAME64).so
+		@$(LD) $(LDFLAGS64) $(BITS) -shared $(OBJ64) -Wl,-soname=$(NAME64).so.0 -o $(NAME64).so
 		@$(AR) $(NAME64).a $(OBJ64)
 		@$(RANLIB) $(NAME64).a
 
@@ -76,7 +76,7 @@
 		@echo TAGS generated succesfully
 
 fclean		: clean
-		@$(RM) *.so *.a *.o
+		@$(RM) *.so* *.a *.o
 
 %.32.o : %.c
 			$(CC) $(CFLAGS32) -c -o $@ $<
