1 |
xarthisius 11/01/23 10:32:25 |
2 |
|
3 |
Added: libmix-2.05-gentoo.patch libmix-2.05-libnet.patch |
4 |
Removed: libmix-2.05-autotools.patch |
5 |
Log: |
6 |
Make static libs optional and don't build them with -fPIC. Drop no-net2 flag as currently net-libs/libnet:1.0 doesn't produce shared libs. Prepared for addition of USE=net2, initial fix for compilation with libnet-1.0. Thanks to Angelos for help. Clean ebuild. Drop old. |
7 |
|
8 |
(Portage version: 2.2.0_alpha16/cvs/Linux x86_64) |
9 |
|
10 |
Revision Changes Path |
11 |
1.1 dev-libs/libmix/files/libmix-2.05-gentoo.patch |
12 |
|
13 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-libs/libmix/files/libmix-2.05-gentoo.patch?rev=1.1&view=markup |
14 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-libs/libmix/files/libmix-2.05-gentoo.patch?rev=1.1&content-type=text/plain |
15 |
|
16 |
Index: libmix-2.05-gentoo.patch |
17 |
=================================================================== |
18 |
Fix install paths, respect user flags, build shared libs with -fPIC, |
19 |
make static libs optional, convert use "--with/without-net2" instead |
20 |
"--without-no-net2" |
21 |
|
22 |
http://bugs.gentoo.org/show_bug.cgi?id=268444 |
23 |
|
24 |
Thanks to Doktor Notor <notordoktor@×××××.com> |
25 |
--- a/Makefile.in |
26 |
+++ b/Makefile.in |
27 |
@@ -1,16 +1,16 @@ |
28 |
-INSTALL_INCLUDES_IN = /usr/include |
29 |
-INSTALL_LIBRARY_IN = /usr/lib |
30 |
-INSTALL_MANPAGE_IN = /usr/local/man |
31 |
- |
32 |
-# Compiler to produce C/C++ libraries with (autodetected) |
33 |
-GCC = @CCAUTO@ |
34 |
-GPP = @CXAUTO@ |
35 |
+includedir = /usr/@includedir@ |
36 |
+libdir = @libdir@ |
37 |
+mandir = @mandir@ |
38 |
+BUILD_STATIC = @BUILD_STATIC@ |
39 |
|
40 |
RANLIB = @RANLIB@ |
41 |
AR = @AR@ |
42 |
INSTALL = @INSTALL@ |
43 |
|
44 |
CFLAGS = @CFLAGS@ |
45 |
+CXXFLAGS = @CXXFLAGS@ |
46 |
+LDFLAGS = @LDFLAGS@ |
47 |
+CCOPTS = @CCOPTS@ |
48 |
CLIB = @CLIB@ |
49 |
|
50 |
AESOBJ = aes/aes.o aes/cast-256.o aes/mars.o aes/saferp.o aes/twofish.o aes/rijndael.o aes/md5.o |
51 |
@@ -21,120 +19,80 @@ |
52 |
NETOBJPP = net/net++.o net/net2++.o |
53 |
MISCOBJPP = misc/misc++.o misc/exclude++.o |
54 |
|
55 |
-all: libmix.a libmix.so libmix++.a libmix++.so |
56 |
+OBJS_C = $(AESOBJ) $(NETOBJ) $(MISCOBJ) |
57 |
+OBJS_PP = $(AESOBJPP) $(NETOBJPP) $(MISCOBJPP) |
58 |
+ |
59 |
+OBJS_C_A = $(OBJS_C:%.o=%.lo) |
60 |
+OBJS_PP_A = $(OBJS_PP:%.o=%.lo) |
61 |
+ |
62 |
+TARGETS = libmix.so libmix++.so |
63 |
+ifdef BUILD_STATIC |
64 |
+TARGETS += libmix.a libmix++.a |
65 |
+endif |
66 |
+ |
67 |
+all: $(TARGETS) |
68 |
@echo "" |
69 |
@echo Check the install location in the Makefile, and type 'make install'. |
70 |
@echo You may also want to run './libtest' to see all functions work reliably. |
71 |
@echo "Attention: libmix for C++ is now called libmix++[.so|.a]. The original libmix.[so|.a] name will be a plain C library." |
72 |
@echo "" |
73 |
|
74 |
-libmix.so: mix/net.h ${AESOBJ} ${NETOBJ} ${MISCOBJ} |
75 |
- ${GCC} ${CFLAGS} -shared ${AESOBJ} ${NETOBJ} ${MISCOBJ} -o libmix.so ${CLIB} |
76 |
+libmix.so: mix/net.h $(OBJS_C) |
77 |
+ $(CC) $(CFLAGS) $(LDFLAGS) -shared $(OBJS_C) -o libmix.so -Wl,-soname,libmix.so.0 $(CLIB) |
78 |
|
79 |
-libmix.a: mix/net.h ${AESOBJ} ${NETOBJ} ${MISCOBJ} |
80 |
- ${AR} -cr libmix.a ${AESOBJ} ${NETOBJ} ${MISCOBJ} |
81 |
+libmix.a: mix/net.h $(OBJS_C_A) |
82 |
+ ${AR} -cr libmix.a $(OBJS_C_A) |
83 |
${RANLIB} libmix.a |
84 |
|
85 |
-libmix++.so: mix/net.h ${AESOBJPP} ${NETOBJPP} ${MISCOBJPP} |
86 |
- ${GPP} ${CFLAGS} -shared ${AESOBJPP} ${NETOBJPP} ${MISCOBJPP} -o libmix++.so ${CLIB} |
87 |
+libmix++.so: mix/net.h $(OBJS_PP) |
88 |
+ $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJ_PP) -o libmix++.so -Wl,-soname,libmix++.so.0 $(CLIB) |
89 |
|
90 |
-libmix++.a: mix/net.h ${AESOBJPP} ${NETOBJPP} ${MISCOBJPP} |
91 |
- ${AR} -cr libmix++.a ${AESOBJPP} ${NETOBJPP} ${MISCOBJPP} |
92 |
+libmix++.a: mix/net.h $(OBJS_PP_A) |
93 |
+ ${AR} -cr libmix++.a $(OBJS_PP_A) |
94 |
${RANLIB} libmix++.a |
95 |
|
96 |
libtest: libtest.o |
97 |
- ${GPP} ${CFLAGS} -static -I. -L. libtest++.o -o libtest -lmix++ @LIBS@ ${CLIB} |
98 |
+ $(CXX) $(CXXFLAGS) $(CCOPTS) -static -I. -L. libtest++.o -o libtest -lmix++ ${CLIB} |
99 |
|
100 |
libtest.o: |
101 |
- ${GPP} ${CFLAGS} -c libtest.c -o libtest.o |
102 |
- ${GPP} ${CFLAGS} -c libtest.c -o libtest++.o |
103 |
- |
104 |
-aes/aes++.o: |
105 |
- ${GPP} ${CFLAGS} -c aes/aes.c -o aes/aes++.o |
106 |
- |
107 |
-aes/cast-256++.o: |
108 |
- ${GPP} ${CFLAGS} -c aes/cast-256.c -o aes/cast-256++.o |
109 |
- |
110 |
-aes/mars++.o: |
111 |
- ${GPP} ${CFLAGS} -c aes/mars.c -o aes/mars++.o |
112 |
- |
113 |
-aes/saferp++.o: |
114 |
- ${GPP} ${CFLAGS} -c aes/saferp.c -o aes/saferp++.o |
115 |
- |
116 |
-aes/twofish++.o: |
117 |
- ${GPP} ${CFLAGS} -c aes/twofish.c -o aes/twofish++.o |
118 |
- |
119 |
-aes/rijndael++.o: |
120 |
- ${GPP} ${CFLAGS} -c aes/rijndael.c -o aes/rijndael++.o |
121 |
- |
122 |
-aes/md5++.o: |
123 |
- ${GPP} ${CFLAGS} -c aes/md5.c -o aes/md5++.o |
124 |
- |
125 |
-net/net++.o: |
126 |
- ${GPP} ${CFLAGS} -c net/net.c -o net/net++.o |
127 |
- |
128 |
-net/net2++.o: |
129 |
- ${GPP} ${CFLAGS} -c net/net2.c -o net/net2++.o |
130 |
- |
131 |
-misc/misc++.o: |
132 |
- ${GPP} ${CFLAGS} -c misc/misc.c -o misc/misc++.o |
133 |
- |
134 |
-misc/exclude++.o: |
135 |
- ${GPP} ${CFLAGS} -c misc/exclude.c -o misc/exclude++.o |
136 |
- |
137 |
-aes/aes.o: |
138 |
- ${GCC} ${CFLAGS} -c aes/aes.c -o aes/aes.o |
139 |
- |
140 |
-aes/cast-256.o: |
141 |
- ${GCC} ${CFLAGS} -c aes/cast-256.c -o aes/cast-256.o |
142 |
- |
143 |
-aes/mars.o: |
144 |
- ${GCC} ${CFLAGS} -c aes/mars.c -o aes/mars.o |
145 |
- |
146 |
-aes/saferp.o: |
147 |
- ${GCC} ${CFLAGS} -c aes/saferp.c -o aes/saferp.o |
148 |
- |
149 |
-aes/twofish.o: |
150 |
- ${GCC} ${CFLAGS} -c aes/twofish.c -o aes/twofish.o |
151 |
- |
152 |
-aes/rijndael.o: |
153 |
- ${GCC} ${CFLAGS} -c aes/rijndael.c -o aes/rijndael.o |
154 |
- |
155 |
-aes/md5.o: |
156 |
- ${GCC} ${CFLAGS} -c aes/md5.c -o aes/md5.o |
157 |
- |
158 |
-net/net.o: |
159 |
- ${GCC} ${CFLAGS} -c net/net.c -o net/net.o |
160 |
- |
161 |
-net/net2.o: |
162 |
- ${GCC} ${CFLAGS} -c net/net2.c -o net/net2.o |
163 |
+ $(CC) $(CCOPTS) $(CFLAGS) -c libtest.c -o libtest.o |
164 |
+ $(CXX) $(CCOPTS) $(CXXFLAGS) -c libtest.c -o libtest++.o |
165 |
|
166 |
-misc/misc.o: |
167 |
- ${GCC} ${CFLAGS} -c misc/misc.c -o misc/misc.o |
168 |
|
169 |
-misc/exclude.o: |
170 |
- ${GCC} ${CFLAGS} -c misc/exclude.c -o misc/exclude.o |
171 |
+%++.o: %.c |
172 |
+ $(CXX) $(CCOPTS) $(CXXFLAGS) -fPIC -c $< -o $@ |
173 |
|
174 |
-install: mix/mix.h mix/net.h mix/aes.h mix/misc.h libmix.so libmix.a |
175 |
- ${INSTALL} -d ${INSTALL_INCLUDES_IN}/mix/ |
176 |
- ${INSTALL} -d ${INSTALL_LIBRARY_IN}/ |
177 |
- ${INSTALL} -d ${INSTALL_MANPAGE_IN}/man3/ |
178 |
- ${INSTALL} -m 0644 libmix.3 ${INSTALL_MANPAGE_IN}/man3/libmix.3 |
179 |
- ${INSTALL} -m 0644 mix/misc.h ${INSTALL_INCLUDES_IN}/mix/misc.h |
180 |
- ${INSTALL} -m 0644 mix/net.h ${INSTALL_INCLUDES_IN}/mix/net.h |
181 |
- ${INSTALL} -m 0644 mix/aes.h ${INSTALL_INCLUDES_IN}/mix/aes.h |
182 |
- ${INSTALL} -m 0644 mix/mix.h ${INSTALL_INCLUDES_IN}/mix/mix.h |
183 |
- ${INSTALL} -m 0644 mix/lmconfig.h ${INSTALL_INCLUDES_IN}/mix/lmconfig.h |
184 |
- ${INSTALL} -m 0755 libmix.so ${INSTALL_LIBRARY_IN}/libmix.so |
185 |
- ${INSTALL} -m 0755 libmix.a ${INSTALL_LIBRARY_IN}/libmix.a |
186 |
- ${INSTALL} -m 0755 libmix++.so ${INSTALL_LIBRARY_IN}/libmix++.so |
187 |
- ${INSTALL} -m 0755 libmix++.a ${INSTALL_LIBRARY_IN}/libmix++.a |
188 |
+%++.lo: %.c |
189 |
+ $(CXX) $(CCOPTS) $(CXXFLAGS) -c $< -o $@ |
190 |
+ |
191 |
+%.o: %.c |
192 |
+ $(CC) $(CCOPTS) $(CFLAGS) -fPIC -c $< -o $@ |
193 |
+ |
194 |
+%.lo: %.c |
195 |
+ $(CC) $(CCOPTS) $(CFLAGS) -c $< -o $@ |
196 |
+ |
197 |
+install: mix/mix.h mix/net.h mix/aes.h mix/misc.h $(TARGETS) |
198 |
+ ${INSTALL} -d $(DESTDIR)/$(includedir)/mix/ |
199 |
+ ${INSTALL} -d $(DESTDIR)/$(libdir)/ |
200 |
+ ${INSTALL} -d $(DESTDIR)/$(mandir)/man3/ |
201 |
+ ${INSTALL} -m 0644 libmix.3 $(DESTDIR)/$(mandir)/man3/libmix.3 |
202 |
+ ${INSTALL} -m 0644 mix/misc.h $(DESTDIR)/$(includedir)/mix/misc.h |
203 |
+ ${INSTALL} -m 0644 mix/net.h $(DESTDIR)/$(includedir)/mix/net.h |
204 |
+ ${INSTALL} -m 0644 mix/aes.h $(DESTDIR)/$(includedir)/mix/aes.h |
205 |
+ ${INSTALL} -m 0644 mix/mix.h $(DESTDIR)/$(includedir)/mix/mix.h |
206 |
+ ${INSTALL} -m 0644 mix/lmconfig.h $(DESTDIR)/$(includedir)/mix/lmconfig.h |
207 |
+ ${INSTALL} -m 0755 libmix.so $(DESTDIR)/$(libdir)/libmix.so |
208 |
+ ${INSTALL} -m 0755 libmix++.so $(DESTDIR)/$(libdir)/libmix++.so |
209 |
+ifdef BUILD_STATIC |
210 |
+ ${INSTALL} -m 0755 libmix.a $(DESTDIR)/$(libdir)/libmix.a |
211 |
+ ${INSTALL} -m 0755 libmix++.a $(DESTDIR)/$(libdir)/libmix++.a |
212 |
+endif |
213 |
@echo "" |
214 |
@echo "Installation complete." |
215 |
@echo "" |
216 |
|
217 |
uninstall: |
218 |
- rm -fr /usr/include/mix /usr/lib/libmix* /usr/local/man/man3/libmix.3 |
219 |
+ rm -fr $(includedir)/mix $(libdir)/libmix* $(mandir)/man3/libmix.3 |
220 |
|
221 |
cleanobj: |
222 |
rm -f ${AESOBJPP} ${NETOBJPP} ${MISCOBJPP} ${AESOBJ} ${NETOBJ} ${MISCOBJ} */core */*~ core *~ *.o libtest |
223 |
--- a/configure.in |
224 |
+++ b/configure.in |
225 |
@@ -4,7 +4,6 @@ |
226 |
AC_CONFIG_HEADER(mix/lmconfig.h) |
227 |
|
228 |
compileas="0" |
229 |
-net2="1" |
230 |
|
231 |
dnl AC_ARG_WITH(libraries-as-c, |
232 |
dnl [ --with-libraries-as-c Generate LibMix binaries with GCC ], |
233 |
@@ -24,30 +23,33 @@ |
234 |
dnl ] |
235 |
dnl ) |
236 |
|
237 |
-AC_ARG_WITH(no-net2, |
238 |
- [ --with-no-net2 Don't use net2 functions, don't require libnet/libpcap.], |
239 |
- [ |
240 |
- if test "x$withval" != "$xno" ; then |
241 |
- net2="0" |
242 |
- fi |
243 |
- ] |
244 |
-) |
245 |
+AC_ARG_WITH([net2], |
246 |
+ AS_HELP_STRING([--with-net2], [Use net2 functions from libnet/libpcap.])) |
247 |
+AS_IF([test "x$with_net2" = "xyes"], [ |
248 |
+ AC_DEFINE(LM_USE_NET2) |
249 |
+ CLIB="-lnet-1.0 -lpcap" |
250 |
+]) |
251 |
+ |
252 |
+AC_ARG_ENABLE([static], |
253 |
+ AS_HELP_STRING([--enable-static], [Build static libs])) |
254 |
+AS_IF([test "x$enable_static" = "xyes"], [ |
255 |
+ BUILD_STATIC=1 |
256 |
+ AC_SUBST(BUILD_STATIC) |
257 |
+]) |
258 |
|
259 |
AC_PROG_CC |
260 |
AC_MSG_CHECKING(accepted compiler flags) |
261 |
if test $ac_cv_prog_gcc = yes; then |
262 |
- CCOPTS='-I. -Wall -O3 -funroll-loops -ansi -D_LIBMIX_' |
263 |
+ CCOPTS='-I. -Wall -ansi -D_LIBMIX_' |
264 |
AC_MSG_RESULT(GNU CC/ANSI (good)) |
265 |
else |
266 |
CCOPTS='-I. -D_LIBMIX_' |
267 |
AC_MSG_RESULT(crappy :P) |
268 |
fi |
269 |
- CFLAGS="$CCOPTS" |
270 |
|
271 |
AC_PROG_CXX |
272 |
|
273 |
CXAUTO="null" |
274 |
-CLIB="" |
275 |
|
276 |
CCAUTO=$CC |
277 |
CXAUTO=$CXX |
278 |
@@ -60,10 +62,6 @@ |
279 |
dnl CXAUTO=$CXX |
280 |
dnl fi |
281 |
|
282 |
-if test $net2 = "1"; then |
283 |
- AC_DEFINE(LM_USE_NET2) |
284 |
- CLIB="-lnet -lpcap" |
285 |
-fi |
286 |
|
287 |
if test $CXAUTO = "null"; then |
288 |
AC_MSG_ERROR( *** Please use either ./configure --with-libraries-as-c |
289 |
@@ -74,6 +72,11 @@ |
290 |
AC_SUBST(CXAUTO) |
291 |
AC_SUBST(AR) |
292 |
AC_SUBST(CLIB) |
293 |
+AC_SUBST(LDFLAGS) |
294 |
+AC_SUBST(libdir) |
295 |
+AC_SUBST(mandir) |
296 |
+AC_SUBST(includedir) |
297 |
+AC_SUBST(CCOPTS) |
298 |
AC_CHECK_PROGS(AR, ar, @true) |
299 |
AC_PROG_RANLIB |
300 |
AC_PROG_INSTALL |
301 |
|
302 |
|
303 |
|
304 |
1.1 dev-libs/libmix/files/libmix-2.05-libnet.patch |
305 |
|
306 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-libs/libmix/files/libmix-2.05-libnet.patch?rev=1.1&view=markup |
307 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-libs/libmix/files/libmix-2.05-libnet.patch?rev=1.1&content-type=text/plain |
308 |
|
309 |
Index: libmix-2.05-libnet.patch |
310 |
=================================================================== |
311 |
--- a/mix/net.h.in |
312 |
+++ b/mix/net.h.in |
313 |
@@ -78,11 +78,11 @@ |
314 |
#endif |
315 |
#ifdef __cplusplus |
316 |
extern "C" { |
317 |
-#include <libnet.h> |
318 |
+#include <libnet-1.0.h> |
319 |
#include <pcap.h> |
320 |
} |
321 |
#else |
322 |
-#include <libnet.h> |
323 |
+#include <libnet-1.0.h> |
324 |
#include <pcap.h> |
325 |
#endif |
326 |
|
327 |
--- a/net/net2.c |
328 |
+++ b/net/net2.c |
329 |
@@ -260,7 +260,7 @@ |
330 |
lm_libpcap_init(); |
331 |
|
332 |
rawpacket = (unsigned char *)pcap_next(pcap_fd, &hdr); |
333 |
- (char *)rawpacket += pcap_l2offset; |
334 |
+ *rawpacket += pcap_l2offset; |
335 |
|
336 |
ih = (struct lmip *)rawpacket; |
337 |
switch(ih->pro) |