1
#! /bin/sh /usr/share/dpatch/dpatch-run
2
## 81_sonames.dpatch by Mike Hommey <glandium@debian.org>
4
## All lines beginning with `## DP:' are a description of the patch.
5
## DP: Add soname support
9
--- nspr/mozilla/nsprpub/config/rules.mk
10
+++ nspr/mozilla/nsprpub/config/rules.mk
14
SHARED_LIBRARY = $(OBJDIR)/lib$(LIBRARY_NAME)$(LIBRARY_VERSION).$(DLL_SUFFIX)
15
+SONAME = $(notdir $(SHARED_LIBRARY))
18
+ifneq (,$(findstring $(SONAME),$(MKSHLIB)))
19
+SO_VERSION_MAJOR := $(shell echo $(SO_VERSION) | sed 's/^\([^.]*\)\(\.[^.]*\)\?\(\.[^.]*\)\?/\1/')
20
+SO_VERSION_MINOR := $(shell echo $(SO_VERSION) | sed 's/^\([^.]*\)\(\.[^.]*\)\?\(\.[^.]*\)\?/\2/')
21
+SO_VERSION_MICRO := $(shell echo $(SO_VERSION) | sed 's/^\([^.]*\)\(\.[^.]*\)\?\(\.[^.]*\)\?/\3/')
23
+SHARED_LIBRARY_LINKS := $(SONAME)
24
+ifdef SO_VERSION_MINOR
25
+SHARED_LIBRARY_LINKS += $(SONAME).$(SO_VERSION_MAJOR)
27
+ifdef SO_VERSION_MICRO
28
+SHARED_LIBRARY_LINKS += $(SHARED_LIBRARY).$(SO_VERSION_MAJOR)$(SO_VERSION_MINOR)
31
+SONAME := $(SONAME).$(SO_VERSION_MAJOR)
32
+SHARED_LIBRARY := $(SHARED_LIBRARY).$(SO_VERSION)
34
+MKSHLINKS = (cd $(1) && for link in $(SHARED_LIBRARY_LINKS); do rm -f $$link; ln -s $(notdir $(SHARED_LIBRARY)) $$link; done)
45
ifeq (,$(filter-out WINNT OS2,$(OS_ARCH)))
46
TARGETS = $(LIBRARY) $(SHARED_LIBRARY) $(IMPORT_LIBRARY)
50
ALL_TRASH = $(TARGETS) $(OBJS) $(RES) $(filter-out . .., $(OBJDIR)) LOGS TAGS $(GARBAGE) \
52
+ $(SHARED_LIBRARY_LINKS) $(NOSUCHFILE) \
55
ifeq ($(OS_ARCH),OpenVMS)
59
$(NSINSTALL) -t -m 0755 $(RELEASE_LIBS) $(DESTDIR)$(libdir)/$(lib_subdir)
60
+ $(call MKSHLINKS,$(DESTDIR)$(libdir)/$(lib_subdir))
65
$(IMPLIB) $@ $(MAPFILE)
68
+$(SHARED_LIBRARY_LINKS): %: $(SHARED_LIBRARY)
70
$(SHARED_LIBRARY): $(OBJS) $(RES) $(MAPFILE)
76
$(MKSHLIB) $(OBJS) $(RES) $(EXTRA_LIBS)
81
--- nspr/mozilla/nsprpub/configure.in
82
+++ nspr/mozilla/nsprpub/configure.in
84
AC_DEFINE(_PR_STAT_HAS_ST_ATIMESPEC)
85
MKSHLIB='$(CC) -o $@ $(DSO_LDOPTS)'
87
- DSO_LDOPTS='-shared -Wl,-soname,$(@:$(OBJDIR)/%.so=%.so)'
88
+ DSO_LDOPTS='-shared -Wl,-soname,$(SONAME)'
91
bsdi4.2* | bsdi4.3* | bsdi5.*)
94
MKSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
96
- DSO_LDOPTS='-shared -Wl,-soname -Wl,$(notdir $@)'
97
+ DSO_LDOPTS='-shared -Wl,-soname -Wl,$(SONAME)'
98
MDCPUCFG_H=_freebsd.cfg
101
@@ -1059,7 +1059,7 @@
102
# workaround this problem.
103
AC_DEFINE(_PR_POLL_WITH_SELECT)
104
AC_DEFINE(_USE_BIG_FDS)
105
- DSO_LDOPTS='-b +h $(notdir $@)'
106
+ DSO_LDOPTS='-b +h $(SONAME)'
108
if test "$OS_TEST" = "ia64"; then
110
@@ -1304,7 +1304,7 @@
112
MKSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
114
- DSO_LDOPTS='-shared -Wl,-soname -Wl,$(notdir $@)'
115
+ DSO_LDOPTS='-shared -Wl,-soname -Wl,$(SONAME)'
117
_DEBUG_FLAGS="-g -fno-inline" # most people on linux use gcc/gdb, and that
118
# combo is not yet good at debugging inlined
119
@@ -1561,7 +1561,7 @@
123
- DSO_LDOPTS='-shared -Wl,-soname,$(notdir $@)'
124
+ DSO_LDOPTS='-shared -Wl,-soname,$(SONAME)'
128
@@ -1607,7 +1607,7 @@
129
AC_DEFINE(HAVE_POINTER_LOCALTIME_R)
132
- MKSHLIB='$(CC) $(DSO_LDOPTS) -Wl,-soname -Wl,$(notdir $@) -o $@'
133
+ MKSHLIB='$(CC) $(DSO_LDOPTS) -Wl,-soname -Wl,$(SONAME) -o $@'
136
OS_LIBS="$OS_LIBS -lsocket"
137
@@ -1685,7 +1685,7 @@
138
if echo $OS_RELEASE | grep -c V4.0 >/dev/null; then
139
AC_DEFINE(OSF1V4_MAP_PRIVATE_BUG)
141
- DSO_LDOPTS='-shared -all -expect_unresolved "*" -soname $(notdir $@)'
142
+ DSO_LDOPTS='-shared -all -expect_unresolved "*" -soname $(SONAME)'
146
@@ -1751,7 +1751,7 @@
147
_OPTIMIZE_FLAGS='-O -F Olimit,4000'
150
- DSO_LDOPTS='-G -z defs -h $(@:$(OBJDIR)/%.so=%.so)'
151
+ DSO_LDOPTS='-G -z defs -h $(SONAME)'
153
if test "$OS_RELEASE" = "5.43"; then
154
AC_DEFINE(IP_MULTICAST)
155
@@ -1807,10 +1807,10 @@
156
if `$CC -print-prog-name=ld` -v 2>&1 | grep -c GNU >/dev/null; then
159
- DSO_LDOPTS='-shared -Wl,-h,$(notdir $@),-z,combreloc,-z,defs'
160
+ DSO_LDOPTS='-shared -Wl,-h,$(SONAME),-z,combreloc,-z,defs'
163
- DSO_LDOPTS='-G -h $(notdir $@) -z combreloc -z defs'
164
+ DSO_LDOPTS='-G -h $(SONAME) -z combreloc -z defs'
166
if test -n "$GNU_CC"; then
167
CFLAGS="$CFLAGS -Wall"
168
--- nspr/mozilla/nsprpub/lib/ds/Makefile.in
169
+++ nspr/mozilla/nsprpub/lib/ds/Makefile.in
173
LIBRARY_VERSION = $(MOD_MAJOR_VERSION)
176
RELEASE_HEADERS = $(HEADERS)
177
RELEASE_HEADERS_DEST = $(RELEASE_INCLUDE_DIR)
178
@@ -185,12 +186,14 @@
180
$(INSTALL) -m 444 $(HEADERS) $(dist_includedir)
181
$(INSTALL) -m 444 $(TARGETS) $(dist_libdir)
182
+ $(call MKSHLINKS,$(dist_libdir))
184
ifeq ($(OS_ARCH),HP-UX)
185
$(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_libdir)
186
$(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_bindir)
188
$(INSTALL) -m 444 $(SHARED_LIBRARY) $(dist_bindir)
189
+ $(call MKSHLINKS,$(dist_bindir))
192
ifeq ($(MOZ_BITS),16)
193
--- nspr/mozilla/nsprpub/lib/libc/src/Makefile.in
194
+++ nspr/mozilla/nsprpub/lib/libc/src/Makefile.in
198
LIBRARY_VERSION = $(MOD_MAJOR_VERSION)
201
RELEASE_LIBS = $(TARGETS)
203
@@ -187,12 +188,14 @@
206
$(INSTALL) -m 444 $(TARGETS) $(dist_libdir)
207
+ $(call MKSHLINKS,$(dist_libdir))
209
ifeq ($(OS_ARCH),HP-UX)
210
$(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_libdir)
211
$(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_bindir)
213
$(INSTALL) -m 444 $(SHARED_LIBRARY) $(dist_bindir)
214
+ $(call MKSHLINKS,$(dist_bindir))
217
ifeq ($(MOZ_BITS),16)
218
--- nspr/mozilla/nsprpub/pr/src/Makefile.in
219
+++ nspr/mozilla/nsprpub/pr/src/Makefile.in
223
LIBRARY_VERSION = $(MOD_MAJOR_VERSION)
226
RELEASE_LIBS = $(TARGETS)
228
@@ -402,12 +403,14 @@
231
$(INSTALL) -m 444 $(TARGETS) $(dist_libdir)
232
+ $(call MKSHLINKS,$(dist_libdir))
234
ifeq ($(OS_ARCH),HP-UX)
235
$(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_libdir)
236
$(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_bindir)
238
$(INSTALL) -m 444 $(SHARED_LIBRARY) $(dist_bindir)
239
+ $(call MKSHLINKS,$(dist_bindir))
242
ifeq ($(MOZ_BITS),16)