aboutsummaryrefslogtreecommitdiff
path: root/contrib/scripts
diff options
context:
space:
mode:
authorng0 <ng0@n0.is>2019-03-15 12:57:40 +0000
committerng0 <ng0@n0.is>2019-03-15 12:57:40 +0000
commite4e91eb0ca3980661ab9fc321bbd217c33c1a76c (patch)
tree2d8d7a351b0063ae796c2455fd69a375bb3524e1 /contrib/scripts
parenta8239e3ab2a98fd6ddbf4e43b18dafa894fe641f (diff)
downloadgnunet-e4e91eb0ca3980661ab9fc321bbd217c33c1a76c.tar.gz
gnunet-e4e91eb0ca3980661ab9fc321bbd217c33c1a76c.zip
gnunet-bugreport
Diffstat (limited to 'contrib/scripts')
-rwxr-xr-xcontrib/scripts/gnunet-bugreport610
1 files changed, 400 insertions, 210 deletions
diff --git a/contrib/scripts/gnunet-bugreport b/contrib/scripts/gnunet-bugreport
index e7d9caa7e..0e268bba7 100755
--- a/contrib/scripts/gnunet-bugreport
+++ b/contrib/scripts/gnunet-bugreport
@@ -1,5 +1,34 @@
1#!/bin/sh 1#!/bin/sh
2 2
3progname=${0##*/}
4
5statusmsg()
6{
7 echo " $@"
8}
9
10infomsg()
11{
12 statusmsg "INFO: $@"
13}
14
15warningmsg()
16{
17 statusmsg "WARNING: $@"
18}
19
20errormsg()
21{
22 statusmsg "ERROR: $@"
23}
24
25linemsg()
26{
27 statusmsg "========================================="
28}
29
30# It is okay to assume which(1) here because we provide
31# more than 1 fallback.
3TEST=`type type|grep not` 32TEST=`type type|grep not`
4if test -n "$TEST"; then 33if test -n "$TEST"; then
5 WHICH=which 34 WHICH=which
@@ -7,229 +36,343 @@ else
7 WHICH=type 36 WHICH=type
8fi 37fi
9 38
10echo "Please submit the following information with your bug report: " 39os_check()
11echo "--------------------------------------------------------------" 40{
12OS=`uname -s 2>/dev/null` 41 OS=`uname -s 2>/dev/null`
13echo "OS : $OS" 42 infomsg "OS : $OS"
14REL=`uname -r 2>/dev/null` 43 REL=`uname -r 2>/dev/null`
15echo "OS RELEASE : $REL" 44 infomsg "OS RELEASE : $REL"
16HW=`uname -m 2>/dev/null` 45 HW=`uname -m 2>/dev/null`
17echo "HARDWARE : $HW" 46 infomsg "HARDWARE : $HW"
47}
18 48
19TEST=`$WHICH gcc 2>/dev/null` 49# We shouldn't use awk to test for awk... but if
20if test -n "$TEST"; then 50# awk isn't there it can't be found.
21 VERS=`gcc --version 2>/dev/null | head -n 1` 51awk_check()
22 echo "gcc : $VERS" 52{
23else 53 if test -n "`awk 2>&1 | tail -1 | awk '{print $1}'`"; then
24 echo "gcc : Not Found"; 54 infomsg "awk : Found"
25fi 55 else
56 warningmsg "awk : Not found!"
57 fi
58}
26 59
27TEST=`$WHICH cc 2>/dev/null` 60gcc_check()
28if test -n "$TEST"; then 61{
29 VERS=`cc --version 2>/dev/null | head -n 1` 62 TEST=`$WHICH gcc 2>/dev/null`
30 echo "cc : $VERS" 63 if test -n "$TEST"; then
31else 64 VERS=`gcc --version 2>/dev/null | head -n 1`
32 echo "cc : Not Found"; 65 infomsg "gcc : $VERS"
33fi 66 # The elif will work in bourne shells, no other shells tested.
67 elif test -n "`gcc 2>&1 | tail -1 | awk '{print $1}'`"; then
68 VERS=`gcc --version 2>/dev/null | head -n 1`
69 infomsg "gcc : $VERS"
70 else
71 warningmsg "gcc : Not Found";
72 fi
73}
34 74
35TEST=`$WHICH c++ 2>/dev/null` 75cc_check()
36if test -n "$TEST"; then 76{
37 VERS=`c++ --version 2>/dev/null | head -n 1` 77 TEST=`$WHICH cc 2>/dev/null`
38 echo "c++ : $VERS" 78 if test -n "$TEST"; then
39else 79 VERS=`cc --version 2>/dev/null | head -n 1`
40 echo "c++ : Not Found"; 80 infomsg "cc : $VERS"
41fi 81 else
82 warningmsg "cc : Not Found";
83 fi
84}
42 85
43TEST=`$WHICH gmake 2>/dev/null` 86cplusplus_check()
44if test -n "$TEST" ; then 87{
45 gmake --version 2>/dev/null |\ 88 TEST=`$WHICH c++ 2>/dev/null`
46 awk -F, '{print $1}' |\ 89 if test -n "$TEST"; then
47 awk '/GNU Make/{print "GNU gmake :",$NF}' 90 VERS=`c++ --version 2>/dev/null | head -n 1`
48else 91 infomsg "c++ : $VERS"
49 TEST=`make --version 2>/dev/null` 92 else
50 if test -n "$TEST"; then 93 warningmsg "c++ : Not Found";
51 make --version 2>/dev/null |\ 94 fi
52 awk -F, '{print $1}' |\ 95}
53 awk '/GNU Make/{print "make :",$NF}'
54 else
55 echo "make : Not Found"
56 fi
57fi
58 96
59TEST=`$WHICH autoconf 2>/dev/null` 97gmake_check()
60if test -n "$TEST"; then 98{
61 autoconf --version |\ 99 TEST=`$WHICH gmake 2>/dev/null`
62 head -n 1 |\ 100 if test -n "$TEST" ; then
63 awk '{\ 101 gmake --version 2>/dev/null |\
102 awk -F, '{print $1}' |\
103 awk '/GNU Make/{print "GNU gmake :",$NF}'
104 else
105 # FIX this test.
106 TEST=`make --version 2>/dev/null`
107 if test -n "$TEST"; then
108 make --version 2>/dev/null |\
109 awk -F, '{print $1}' |\
110 awk '/GNU Make/{print "gmake :",$NF}'
111 else
112 warningmsg "gmake : Not Found"
113 fi
114 fi
115}
116
117# Applies for NetBSD make and possibly every make.
118make_check()
119{
120 if test -n "`make 2>/dev/null`"; then
121 infomsg "make : Found"
122 else
123 warningmsg "make : Not Found"
124 fi
125}
126
127autoconf_check()
128{
129 TEST=`$WHICH autoconf 2>/dev/null`
130 if test -n "$TEST"; then
131 autoconf --version |\
132 head -n 1 |\
133 awk '{\
64 if (length($4) == 0) {\ 134 if (length($4) == 0) {\
65 print "autoconf : "$3\ 135 print "autoconf : "$3\
66 } else {\ 136 } else {\
67 print "autoconf : "$4\ 137 print "autoconf : "$4\
68 }}' 138 }}'
69else 139 else
70 echo "autoconf : Not Found" 140 warningmsg "autoconf : Not Found"
71fi 141 fi
142}
72 143
73TEST=`$WHICH automake 2>/dev/null` 144automake_check()
74if test -n "$TEST"; then 145{
75 automake --version 2>/dev/null |\ 146 TEST=`$WHICH automake 2>/dev/null`
76 head -n 1 |\ 147 if test -n "$TEST"; then
77 awk '{print "automake : "$4}' 148 automake --version 2>/dev/null |\
78else 149 head -n 1 |\
79 echo "automake : Not Found" 150 awk '{print "automake : "$4}'
80fi 151 else
152 warningmsg "automake : Not Found"
153 fi
154}
81 155
82TEST=`$WHICH libtool 2>/dev/null` 156# TODO: More libtool variants.
83if test -n "$TEST"; then 157libtool_check()
84 libtool --version 2>/dev/null |\ 158{
85 head -n 1 |\ 159 TEST=`$WHICH libtool 2>/dev/null`
86 awk '{print "libtool : "$4}' 160 if test -n "$TEST"; then
87else 161 libtool --version 2>/dev/null |\
88 echo "libtool : Not Found" 162 head -n 1 |\
89fi 163 awk '{print "libtool : "$4}'
164 else
165 warningmsg "libtool : Not Found"
166 fi
167}
90 168
91TEST=`$WHICH extract 2>/dev/null` 169libextractor_check()
92if test -n "$TEST"; then 170{
93 extract -v 2>/dev/null |\ 171 TEST=`$WHICH extract 2>/dev/null`
94 head -n 1 |\ 172 if test -n "$TEST"; then
95 awk '{print "libextractor : "$2}' 173 extract -v 2>/dev/null |\
96else 174 head -n 1 |\
97 echo "libextractor : Not Found" 175 awk '{print "libextractor : "$2}'
98fi 176 else
177 warningmsg "libextractor : Not Found"
178 fi
179}
99 180
100if test -x gnunetd; then 181gnunet08_check()
101 gnunetd -v | sed -e "s/v//" 2>/dev/null |\ 182{
102 awk '{print "GNUnet 0.8 : "$2 (may conflict!)}' 183 if test -x gnunetd; then
103else 184 gnunetd -v | sed -e "s/v//" 2>/dev/null |\
104 echo "GNUnet 0.8 : Not Found (good)" 185 awk '{print "GNUnet 0.8 : "$2 (may conflict!)}'
105fi 186 else
187 infomsg "GNUnet 0.8 : Not Found (good)"
188 fi
189}
106 190
107TEST=`$WHICH gnunet-arm 2>/dev/null` 191gnunet09x_check()
108if test -n "$TEST"; then 192{
109 gnunet-arm -v | sed -e "s/v//" 2>/dev/null |\ 193 TEST=`$WHICH gnunet-arm 2>/dev/null`
110 awk '{print "GNUnet 0.9 : "$2}' 194 if test -n "$TEST"; then
111else 195 gnunet-arm -v | sed -e "s/v//" 2>/dev/null |\
112 echo "GNUnet 0.9 : Not Found" 196 awk '{print "GNUnet 0.9 : "$2}'
113fi 197 else
198 infomsg "GNUnet 0.9 : Not Found (good)"
199 fi
200}
114 201
115TEST=`$WHICH libgcrypt-config 2> /dev/null` 202gnunet011x_check()
116if test -n "$TEST"; then 203{
117 libgcrypt-config --version 2> /dev/null | \ 204 TEST=`$WHICH gnunet-arm 2>/dev/null`
118 awk '{print "libgcrypt : "$1}' 205 if test -n "$TEST"; then
119else 206 gnunet-arm -v | sed -e "s/v//" 2>/dev/null |\
120 echo "libgcrypt : Not Found" 207 awk '{print "GNUnet 0.11.x : "$2}'
121fi 208 else
209 warningmsg "GNUnet 0.11.x : Not Found"
210 fi
211}
122 212
123TEST=`$WHICH mysql_config 2> /dev/null` 213gcrypt_check()
124if test -n "$TEST"; then 214{
125 mysql_config --version 2> /dev/null | \ 215 TEST=`$WHICH libgcrypt-config 2> /dev/null`
126 awk '{print "mysql : "$1}' 216 if test -n "$TEST"; then
127else 217 libgcrypt-config --version 2> /dev/null | \
128 echo "mysql : Not Found" 218 awk '{print "libgcrypt : "$1}'
129fi 219 else
220 warningmsg "libgcrypt : Not Found"
221 fi
222}
130 223
131TEST=`$WHICH pkg-config 2> /dev/null` 224mysql_check()
132if test -n "$TEST"; then 225{
133 pkg-config --version 2> /dev/null | \ 226 TEST=`$WHICH mysql_config 2> /dev/null`
134 awk '{print "pkg-config : "$1}' 227 if test -n "$TEST"; then
135else 228 mysql_config --version 2> /dev/null | \
136 echo "pkg-config : Not Found" 229 awk '{print "mysql : "$1}'
137fi 230 else
231 infomsg "mysql : Not Found"
232 fi
233}
138 234
139TEST=`$WHICH pkg-config 2> /dev/null` 235pkgconf_check()
140if test -n "$TEST"; then 236{
141 pkg-config --modversion glib-2.0 2> /dev/null | \ 237 TEST=`$WHICH pkgconf 2> /dev/null`
142 awk '{print "glib2 : "$1}' 238 if test -n "$TEST"; then
143else 239 pkgconf --version 2> /dev/null | awk '{print "pkgconf : "$1}'
144 echo "glib2 : Not Found" 240 else
145fi 241 infomsg "pkgconf : Not Found"
242 fi
243}
244
245pkgconfig_check()
246{
247 TEST=`$WHICH pkg-config 2> /dev/null`
248 if test -n "$TEST"; then
249 pkg-config --version 2> /dev/null | \
250 awk '{print "pkg-config : "$1}'
251 else
252 infomsg "pkg-config : Not Found"
253 fi
254}
146 255
147TEST=`$WHICH pkg-config 2> /dev/null` 256glib2_check()
148if test -n "$TEST"; then 257{
149 pkg-config --modversion gtk+-2.0 2> /dev/null | \ 258 TEST=`$WHICH pkg-config 2> /dev/null`
150 awk '{print "gtk2+ : "$1}' 259 if test -n "$TEST"; then
151else 260 pkg-config --modversion glib-2.0 2> /dev/null | \
152 echo "gtk2+ : Not Found" 261 awk '{print "glib2 : "$1}'
153fi 262 else
263 infomsg "glib2 : Not Found"
264 fi
265}
154 266
155TEST=`$WHICH dpkg 2> /dev/null` 267gtk2_check()
156if test -n "$TEST"; then 268{
157 LINES=`dpkg -s libgmp-dev | grep Version | wc -l 2> /dev/null` 269 TEST=`$WHICH pkg-config 2> /dev/null`
158 if test "$LINES" = "1" 270 if test -n "$TEST"; then
159 then 271 pkg-config --modversion gtk+-2.0 2> /dev/null | \
160 VERSION=`dpkg -s libgmp-dev | grep Version | awk '{print $2}'` 272 awk '{print "gtk2+ : "$1}'
161 echo "GMP : libgmp-dev-$VERSION.deb" 273 else
162 else 274 infomsg "gtk2+ : Not Found"
163 echo "GMP : dpkg: libgmp-dev not installed" 275 fi
164 fi 276}
165else
166 TEST=`$WHICH rpm 2> /dev/null`
167 if test -n "$TEST"; then
168 rpm -q gmp | sed -e "s/gmp-//" 2> /dev/null | \
169 awk '{print "GMP : "$1.rpm}'
170 else
171 echo "GMP : Test not available"
172 fi
173fi
174 277
175TEST=`$WHICH dpkg 2> /dev/null` 278gmp_check()
176if test -n "$TEST"; then 279{
177 LINES=`dpkg -s libunistring-dev | grep Version | wc -l` 280 TEST=`$WHICH dpkg 2> /dev/null`
178 if test "$LINES" = "1" 281 if test -n "$TEST"; then
179 then 282 LINES=`dpkg -s libgmp-dev | grep Version | wc -l 2> /dev/null`
180 VERSION=`dpkg -s libunistring-dev | grep Version | awk '{print $2}'` 283 if test "$LINES" = "1"
181 echo "libunistring : libunistring3-dev-$VERSION.deb" 284 then
182 else 285 VERSION=`dpkg -s libgmp-dev | grep Version | awk '{print $2}'`
183 echo "libunistring : dpkg: libunistring3-dev not installed" 286 infomsg "GMP : libgmp-dev-$VERSION.deb"
184 fi 287 else
185else 288 errormsg "GMP : dpkg: libgmp-dev not installed"
186 TEST=`$WHICH rpm 2> /dev/null` 289 fi
187 if test -n "$TEST"; then 290 fi
188 rpm -q unistring | sed -e "s/unistring-//" 2> /dev/null | \ 291 TEST=`$WHICH rpm 2> /dev/null`
189 awk '{print "libunistring : "$1.rpm}' 292 if test -n "$TEST"; then
190 else 293 rpm -q gmp | sed -e "s/gmp-//" 2> /dev/null | \
191 echo "libunistring : Test not available" 294 awk '{print "GMP : "$1.rpm}'
192 fi 295 else
193fi 296 warningmsg "GMP : Test not available"
297 fi
298}
194 299
195TEST=`$WHICH pkg_add 2> /dev/null` 300libunistring_check()
196if test -n "$TEST"; then 301{
197 VERSION_UNISTRING=`pkg_info -Nb libunistring` 302 TEST=`$WHICH dpkg 2> /dev/null`
198 VERSION_GMP=`pkg_info -Nb gmp` 303 if test -n "$TEST"; then
199 echo "libunistring :" 304 LINES=`dpkg -s libunistring-dev | grep Version | wc -l`
200 echo "$VERSION_UNISTRING" 305 if test "$LINES" = "1"
201 echo "GMP :" 306 then
202 echo "$VERSION_GMP" 307 VERSION=`dpkg -s libunistring-dev | grep Version | awk '{print $2}'`
203fi 308 infomsg "libunistring : libunistring3-dev-$VERSION.deb"
309 else
310 errormsg "libunistring : dpkg: libunistring3-dev not installed"
311 fi
312 else
313 TEST=`$WHICH rpm 2> /dev/null`
314 if test -n "$TEST"; then
315 rpm -q unistring | sed -e "s/unistring-//" 2> /dev/null | \
316 awk '{print "libunistring : "$1.rpm}'
317 else
318 infomsg "libunistring : Test not available"
319 fi
320 fi
321}
204 322
205TEST=`$WHICH gettext 2> /dev/null` 323pkgadd_check()
206if test -n "$TEST"; then 324{
207 gettext --version | head -n1 2> /dev/null | \ 325 TEST=`$WHICH pkg_add 2> /dev/null`
208 awk '{print "GNU gettext : "$4}' 326 if test -n "$TEST"; then
209else 327 VERSION_UNISTRING=`pkg_info -Nb libunistring`
210 echo "GNU gettext : Not found" 328 VERSION_GMP=`pkg_info -Nb gmp`
211fi 329 echo "libunistring :"
330 echo "$VERSION_UNISTRING"
331 echo "GMP :"
332 echo "$VERSION_GMP"
333 fi
334}
212 335
336gettext_check()
337{
338 TEST=`$WHICH gettext 2> /dev/null`
339 if test -n "$TEST"; then
340 gettext --version | head -n1 2> /dev/null | \
341 awk '{print "GNU gettext : "$4}'
342 else
343 errormsg "GNU gettext : Not found"
344 fi
345}
213 346
214TEST=`$WHICH curl-config 2> /dev/null` 347# Merge curl_check + gnurl_check -> error if neither is
215if test -n "$TEST"; then 348# found (yes those systems exist)
216 curl-config --version | head -n1 2> /dev/null | \ 349curl_check()
217 awk '{print "libcurl : "$2}' 350{
218else 351 TEST=`$WHICH curl-config 2> /dev/null`
219 echo "libcurl : Not found" 352 if test -n "$TEST"; then
220fi 353 curl-config --version | head -n1 2> /dev/null | \
354 awk '{print "libcurl : "$2}'
355 else
356 infomsg "libcurl : Not found"
357 fi
358}
221 359
222TEST=`$WHICH gnurl-config 2> /dev/null` 360gnurl_check()
223if test -n "$TEST"; then 361{
224 gnurl-config --version | head -n1 2> /dev/null | \ 362 TEST=`$WHICH gnurl-config 2> /dev/null`
225 awk '{print "libgnurl : "$2}' 363 if test -n "$TEST"; then
226else 364 gnurl-config --version | head -n1 2> /dev/null | \
227 echo "libgnurl : Not found" 365 awk '{print "libgnurl : "$2}'
228fi 366 else
367 infomsg "libgnurl : Not found"
368 fi
369}
229 370
230echo -n "libmicrohttpd : " 371libmicrohttpd_check()
231TMPFILE=`mktemp /tmp/mhd-version-testXXXXXX` 372{
232cat - >$TMPFILE.c <<EOF 373 echo -n "libmicrohttpd : "
374 TMPFILE=`mktemp /tmp/mhd-version-testXXXXXX`
375 cat - >$TMPFILE.c <<EOF
233#include <microhttpd.h> 376#include <microhttpd.h>
234#include <stdio.h> 377#include <stdio.h>
235int main() 378int main()
@@ -239,13 +382,16 @@ int main()
239} 382}
240EOF 383EOF
241 384
242gcc -o $TMPFILE $TMPFILE.c 2> /dev/null && $TMPFILE || echo "Not found" 385 gcc -o $TMPFILE $TMPFILE.c 2> /dev/null && $TMPFILE || echo "Not found"
243rm -f $TMPFILE $TMPFILE.bin 386 cc -o $TMPFILE $TMPFILE.c 2> /dev/null && $TMPFILE || echo "Not found"
244 387 rm -f $TMPFILE $TMPFILE.bin
388}
245 389
246echo -n "GNU GLPK : " 390glpk_check()
247TMPFILE=`mktemp /tmp/glpk-version-testXXXXXX` 391{
248cat - >$TMPFILE.c <<EOF 392 echo -n "GNU GLPK : "
393 TMPFILE=`mktemp /tmp/glpk-version-testXXXXXX`
394 cat - >$TMPFILE.c <<EOF
249#include <glpk.h> 395#include <glpk.h>
250#include <stdio.h> 396#include <stdio.h>
251int main() 397int main()
@@ -255,13 +401,16 @@ int main()
255} 401}
256EOF 402EOF
257 403
258gcc -o $TMPFILE $TMPFILE.c 2> /dev/null && $TMPFILE || echo "Not found" 404 gcc -o $TMPFILE $TMPFILE.c 2> /dev/null && $TMPFILE || echo "Not found"
259rm -f $TMPFILE $TMPFILE.bin 405 cc -o $TMPFILE $TMPFILE.c 2> /dev/null && $TMPFILE || echo "Not found"
260 406 rm -f $TMPFILE $TMPFILE.bin
407}
261 408
262echo -n "GnuTLS : " 409gnutls_check()
263TMPFILE=`mktemp /tmp/gnutls-version-testXXXXXX` 410{
264cat - >$TMPFILE.c <<EOF 411 echo -n "GnuTLS : "
412 TMPFILE=`mktemp /tmp/gnutls-version-testXXXXXX`
413 cat - >$TMPFILE.c <<EOF
265#include <gnutls/gnutls.h> 414#include <gnutls/gnutls.h>
266#include <stdio.h> 415#include <stdio.h>
267int main() 416int main()
@@ -271,8 +420,49 @@ int main()
271} 420}
272EOF 421EOF
273 422
274gcc -o $TMPFILE $TMPFILE.c 2> /dev/null && $TMPFILE || echo "Not found" 423 gcc -o $TMPFILE $TMPFILE.c 2> /dev/null && $TMPFILE || echo "Not found"
275rm -f $TMPFILE $TMPFILE.bin 424 cc -o $TMPFILE $TMPFILE.c 2> /dev/null && $TMPFILE || echo "Not found"
425 rm -f $TMPFILE $TMPFILE.bin
426}
276 427
428main()
429{
430 infomsg "${progname} 0.11.0"
431 infomsg
432 infomsg "Please submit the following"
433 infomsg "information with your bug report:"
434 linemsg
435 os_check
436 awk_check
437 gcc_check
438 cc_check
439 cplusplus_check
440 gmake_check
441 make_check
442 autoconf_check
443 automake_check
444 libtool_check
445 libextractor_check
446 gnunet08_check
447 gnunet09x_check
448 gnunet011x_check
449 gcrypt_check
450 mysql_check
451 pkgconf_check
452 pkgconfig_check
453 glib2_check
454 gtk2_check
455 gmp_check
456 libunistring_check
457 pkgadd_check
458 gettext_check
459 curl_check
460 gnurl_check
461 libmicrohttpd_check
462 glpk_check
463 gnutls_check
464 linemsg
465 infomsg "Bug report saved in ./my_gnunet_bugreport.log"
466}
277 467
278echo "--------------------------------------------------------------" 468main "$@" 2>&1 | tee "my_gnunet_bugreport.log"