Overview
Submit package home:seife:branches:Extra / mldonkey to package Extra / mldonkey
MLDonkey.changes
Changed
x
1
2
-------------------------------------------------------------------
3
+Thu Aug 23 07:53:31 UTC 2012 - seife+obs@b1-systems.com
4
+
5
+- update to 3.1.3
6
+- remove mldonkey-fix_missing_return_in_non_void_functions.patch,
7
+ instead just remove pentium asm optimization
8
+ * note: the code the compiler complains about is probably
9
+ correct albeit obscure (asm code that puts the return code
10
+ onto the stack), the easiest fix is to disable it.
11
+
12
+-------------------------------------------------------------------
13
Thu Aug 16 21:34:06 UTC 2012 - seife+obs@b1-systems.com
14
15
- fix build for 12.2 (add --disable-option-checking to configure)
16
MLDonkey.spec
Changed
26
1
2
3
Name: MLDonkey
4
Summary: Filesharing client for eDonkey 2000 and other P2P systems
5
-Version: 3.1.2
6
+Version: 3.1.3
7
Release: 0.pm
8
License: Other License(s), see package, GPL-2.0+
9
Group: Productivity/Networking/Other
10
URL: http://mldonkey.sourceforge.net/Main_Page
11
Source: http://prdownloads.sourceforge.net/mldonkey/mldonkey-%{version}.tar.bz2
12
-Patch1: mldonkey-fix_missing_return_in_non_void_functions.patch
13
+Patch1: mldonkey-disable-asm-opt.patch
14
Patch2: mldonkey-link_against_libpng.patch
15
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
16
BuildRequires: gcc gcc-c++ perl wget qt3-devel
17
18
19
%prep
20
%setup -q -n %{sourcename}-%{version}
21
-%patch1
22
+%patch1 -p1
23
%patch2
24
25
%build
26
mldonkey-disable-asm-opt.patch
Added
26
1
2
+Index: b/src/utils/lib/CryptoPP.h
3
+===================================================================
4
+--- a/src/utils/lib/CryptoPP.h
5
++++ b/src/utils/lib/CryptoPP.h
6
+@@ -269,17 +269,19 @@ NAMESPACE_END
7
+
8
+ #ifndef CRYPTOPP_DISABLE_UNCAUGHT_EXCEPTION
9
+ #define CRYPTOPP_UNCAUGHT_EXCEPTION_AVAILABLE
10
+ #endif
11
+
12
++#if 0
13
+ // CodeWarrior defines _MSC_VER
14
+ #if !defined(CRYPTOPP_DISABLE_X86ASM) && ((defined(_MSC_VER) && !defined(__MWERKS__) && defined(_M_IX86)) || (defined(__GNUC__) && defined(__i386__)))
15
+ // The x86 version of MacOSX fails when asm is enabled.
16
+ #if !defined(__i386__) || !defined(__APPLE__)
17
+ #define CRYPTOPP_X86ASM_AVAILABLE
18
+ #endif
19
+ #endif
20
++#endif
21
+
22
+ // ***************** determine availability of OS features ********************
23
+
24
+ #ifndef NO_OS_DEPENDENCE
25
+
26
mldonkey-fix_missing_return_in_non_void_functions.patch
Deleted
40
1
2
---- src/utils/lib/CryptoPP.cc.orig 2011-03-13 01:52:20.000000000 +0100
3
-+++ src/utils/lib/CryptoPP.cc 2011-03-13 01:52:59.000000000 +0100
4
-@@ -2732,7 +2732,7 @@
5
- AddEpilogue
6
-
7
- // Just to get rid of warnings
8
-- // return 0;
9
-+ return 0;
10
- }
11
-
12
- CRYPTOPP_NAKED word PentiumOptimized::Subtract(word *C, const word *A, const word *B, unsigned int N)
13
-@@ -2773,7 +2773,7 @@
14
- AddEpilogue
15
-
16
- // Just to get rid of warnings
17
-- // return 0;
18
-+ return 0;
19
- }
20
-
21
- // On Pentium 4, the adc and sbb instructions are very expensive, so avoid them.
22
-@@ -2825,7 +2825,7 @@
23
- AddEpilogue
24
-
25
- // Just to get rid of warnings
26
-- // return 0;
27
-+ return 0;
28
- }
29
-
30
- CRYPTOPP_NAKED word P4Optimized::Subtract(word *C, const word *A, const word *B, unsigned int N)
31
-@@ -2875,7 +2875,7 @@
32
- AddEpilogue
33
-
34
- // Just to get rid of warnings
35
-- // return 0;
36
-+ return 0;
37
- }
38
-
39
- // multiply assembly code originally contributed by Leonard Janke
40
mldonkey-3.1.2.tar.bz2/Makefile -> mldonkey-3.1.3.tar.bz2/Makefile
Changed
49
1
2
$(OCAMLDOC) -sort -dump ocamldoc/ocamldocdump -html -d ocamldoc $(INCLUDES) $(libclient_DOC) $(CORE_DOC)
3
4
$(LIB)/md4_cc.o: $(LIB)/md4.c
5
- $(OCAMLC) -ccopt "$(CFLAGS) -O3 -o $(LIB)/md4_cc.o" -ccopt "" -c $(LIB)/md4.c
6
+ $(OCAMLC) -ccopt "$(CFLAGS) -o $(LIB)/md4_cc.o" -ccopt "" -c $(LIB)/md4.c
7
8
$(CDK)/heap_c.o: $(CDK)/heap_c.c
9
$(OCAMLC) -ccopt "$(CFLAGS) $(MORECFLAGS) -o $(CDK)/heap_c.o" -ccopt "" -c $(CDK)/heap_c.c
10
11
12
zogml:
13
(for i in $(GUI_CODE)/gui*_base.zog ; do \
14
- $(CAMLP4) pa_o.cmo pa_zog.cma pr_o.cmo -impl $$i > $(GUI_CODE)/`basename $$i zog`ml ;\
15
+ $(CAMLP4) pa_o.cmo pa_zog.cma pr_o.cmo -impl $$i -o $(GUI_CODE)/`basename $$i zog`ml ;\
16
done)
17
18
#######################################################################
19
20
$(OCAMLC) $(DEVFLAGS) $(INCLUDES) -c $<
21
22
.mlcpp.ml:
23
- @$(CPP) -x c -P $< $(FIX_BROKEN_CPP) -o $@
24
+ @$(CPP) -x c -P $< $(FIX_BROKEN_CPP) > $@
25
26
%.ml: %.mlp $(BITSTRING)/pa_bitstring.cmo
27
$(CAMLP4OF) build/bitstring.cma $(BITSTRING)/bitstring_persistent.cmo $(BITSTRING)/pa_bitstring.cmo -impl $< -o $@
28
29
@$(OCAMLYACC) $<
30
31
.zog.ml:
32
- @$(CAMLP4) pa_o.cmo ./pa_zog.cma pr_o.cmo -impl $< > $@
33
+ @$(CAMLP4) pa_o.cmo ./pa_zog.cma pr_o.cmo -impl $< -o $@
34
35
.ml4.ml:
36
- @echo '# 1 "$<"' > $@
37
- @$(CAMLP4) pa_o.cmo pa_op.cmo pr_o.cmo -impl $< >> $@
38
+ @$(CAMLP4) pa_o.cmo pa_op.cmo pr_o.cmo -impl $< -o $@
39
40
.mlc4.ml:
41
@$(CAMLP4OF) -I +camlp4 -impl $< -o $@
42
43
.mlt.ml:
44
- @$(OCAMLPP) -pp $< > $@
45
+ @$(OCAMLPP) -o $@ -pp $<
46
47
.c.o :
48
$(OCAMLC) -verbose -ccopt "-I $(OCAML_SRC)/byterun -o $*.o" -ccopt "$(CFLAGS)" $(LIBS_flags) -c $<
49
mldonkey-3.1.2.tar.bz2/config/Makefile.in -> mldonkey-3.1.3.tar.bz2/config/Makefile.in
Changed
49
1
2
$(OCAMLDOC) -sort -dump ocamldoc/ocamldocdump -html -d ocamldoc $(INCLUDES) $(libclient_DOC) $(CORE_DOC)
3
4
$(LIB)/md4_cc.o: $(LIB)/md4.c
5
- $(OCAMLC) -ccopt "$(CFLAGS) -O3 -o $(LIB)/md4_cc.o" -ccopt "" -c $(LIB)/md4.c
6
+ $(OCAMLC) -ccopt "$(CFLAGS) -o $(LIB)/md4_cc.o" -ccopt "" -c $(LIB)/md4.c
7
8
$(CDK)/heap_c.o: $(CDK)/heap_c.c
9
$(OCAMLC) -ccopt "$(CFLAGS) $(MORECFLAGS) -o $(CDK)/heap_c.o" -ccopt "" -c $(CDK)/heap_c.c
10
11
12
zogml:
13
(for i in $(GUI_CODE)/gui*_base.zog ; do \
14
- $(CAMLP4) pa_o.cmo pa_zog.cma pr_o.cmo -impl $$i > $(GUI_CODE)/`basename $$i zog`ml ;\
15
+ $(CAMLP4) pa_o.cmo pa_zog.cma pr_o.cmo -impl $$i -o $(GUI_CODE)/`basename $$i zog`ml ;\
16
done)
17
18
#######################################################################
19
20
$(OCAMLC) $(DEVFLAGS) $(INCLUDES) -c $<
21
22
.mlcpp.ml:
23
- @$(CPP) -x c -P $< $(FIX_BROKEN_CPP) -o $@
24
+ @$(CPP) -x c -P $< $(FIX_BROKEN_CPP) > $@
25
26
%.ml: %.mlp $(BITSTRING)/pa_bitstring.cmo
27
$(CAMLP4OF) build/bitstring.cma $(BITSTRING)/bitstring_persistent.cmo $(BITSTRING)/pa_bitstring.cmo -impl $< -o $@
28
29
@$(OCAMLYACC) $<
30
31
.zog.ml:
32
- @$(CAMLP4) pa_o.cmo ./pa_zog.cma pr_o.cmo -impl $< > $@
33
+ @$(CAMLP4) pa_o.cmo ./pa_zog.cma pr_o.cmo -impl $< -o $@
34
35
.ml4.ml:
36
- @echo '# 1 "$<"' > $@
37
- @$(CAMLP4) pa_o.cmo pa_op.cmo pr_o.cmo -impl $< >> $@
38
+ @$(CAMLP4) pa_o.cmo pa_op.cmo pr_o.cmo -impl $< -o $@
39
40
.mlc4.ml:
41
@$(CAMLP4OF) -I +camlp4 -impl $< -o $@
42
43
.mlt.ml:
44
- @$(OCAMLPP) -pp $< > $@
45
+ @$(OCAMLPP) -o $@ -pp $<
46
47
.c.o :
48
$(OCAMLC) -verbose -ccopt "-I $(OCAML_SRC)/byterun -o $*.o" -ccopt "$(CFLAGS)" $(LIBS_flags) -c $<
49
mldonkey-3.1.2.tar.bz2/config/configure -> mldonkey-3.1.3.tar.bz2/config/configure
Changed
415
1
2
--disable-gnutella2 disable support for Gnutella2
3
--disable-fasttrack disable support for FastTrack
4
--enable-batch reply YES to all queries in this script
5
- --enable-force-ocaml force usage of self-compiled Ocaml
6
- --enable-ocamlver=VER force usage of specific Ocaml version (3.10.1|SVN),
7
+ --enable-force-ocaml force usage of self-compiled OCaml
8
+ --enable-ocamlver=VER force usage of specific OCaml version (3.10.1|SVN),
9
--enable-mingw force compilation with MINGW on Cygwin
10
--enable-checks enable bounds-checking for array/string accesses
11
--enable-profile compile with gprof profiling support (enables debug)
12
13
14
MAJOR_VERSION=3
15
MINOR_VERSION=1
16
-SUB_VERSION=2 # range 0-7 due to eMule limitations
17
+SUB_VERSION=3 # range 0-7 due to eMule limitations
18
19
# ********** **********
20
# ********** check for C compiler **********
21
22
fi
23
24
# ********** **********
25
-# ********** build MLDonkey version, Required Ocaml and LablGTK versions **********
26
+# ********** build MLDonkey version, Required OCaml and LablGTK versions **********
27
# ********** **********
28
29
MLDONKEY_VERSION=$MAJOR_VERSION.$MINOR_VERSION.$SUB_VERSION
30
31
32
OCAML_PATH=
33
34
-echo -e "\n--------------------------------"
35
+echo ""
36
+echo "--------------------------------"
37
echo " Checking system tools."
38
echo "--------------------------------"
39
40
41
42
echo "----------------------------------------"
43
echo " Checking system tools finished."
44
-echo -e "----------------------------------------\n"
45
-
46
+echo "----------------------------------------"
47
+echo ""
48
echo "--------------------------------"
49
-echo " Checking Ocaml compiler."
50
+echo " Checking OCaml compiler."
51
echo "--------------------------------"
52
53
CONFIG_DIR=$SOURCE_DIR/config
54
55
else
56
OCAMLVERSION=`$OCAMLC -v | sed -n -e 's|.*version* *\(.*\)$|\1|p' `
57
case "$OCAMLVERSION" in
58
- "$REQUIRED_OCAML"*|3.12.*|3.11.*|3.10.1*|3.10.2*) ;;
59
+ "$REQUIRED_OCAML"*|4.*|3.12.*|3.11.*|3.10.1*|3.10.2*) ;;
60
*)
61
echo "Need build"
62
BUILD_OCAML=yes
63
64
65
if test "$SYSTEM" = "mingw" ; then
66
echo "******** Objective-Caml $REQUIRED_OCAML is required *********" 1>&2;
67
- echo "******** no valid Ocaml compiler found on your system *********" 1>&2;
68
+ echo "******** no valid OCaml compiler found on your system *********" 1>&2;
69
echo "******** on MinGW there is no possibility to let configure *********" 1>&2;
70
- echo "******** build the Ocaml compiler with the included script *********" 1>&2;
71
+ echo "******** build the OCaml compiler with the included script *********" 1>&2;
72
echo "******** check http://mldonkey.sourceforge.net/Windows *********" 1>&2;
73
- echo "******** for instuctions how to compile Ocaml under MinGW *********" 1>&2;
74
+ echo "******** for instuctions how to compile OCaml under MinGW *********" 1>&2;
75
exit 1
76
else
77
78
echo "******** Objective-Caml $REQUIRED_OCAML is required *********" 1>&2;
79
if test "$WGET" = "" && test "$REQUIRED_OCAML" != "SVN" ; then
80
echo "******** wget is missing *********" 1>&2;
81
- echo "******** cannot download Ocaml *********" 1>&2;
82
+ echo "******** cannot download OCaml *********" 1>&2;
83
exit 1
84
fi
85
echo "******* Check http://caml.inria.fr/ ********" 1>&2;
86
87
$WGET http://caml.inria.fr/pub/distrib/ocaml-3.10/ocaml-"$REQUIRED_OCAML".tar.gz
88
fi
89
if test ! -f ocaml-"$REQUIRED_OCAML".tar.gz; then
90
- echo "******** download Ocaml $REQUIRED_OCAML not successful, try do download it manually *********" 1>&2;
91
+ echo "******** download OCaml $REQUIRED_OCAML not successful, try do download it manually *********" 1>&2;
92
echo "******** from http://caml.inria.fr/pub/distrib/ *********" 1>&2;
93
echo "******** and copy the tar.gz into $PATCH_DIR *********" 1>&2;
94
exit 1
95
96
rm -rf ocaml-"$REQUIRED_OCAML"
97
fi
98
cd $CONFIG_DIR
99
- echo Ocaml locally installed for mldonkey
100
+ echo OCaml locally installed for mldonkey
101
102
if test -f "$LOCAL_OCAML"/ocamlc.opt; then
103
OCAMLC=$LOCAL_OCAML/ocamlc.opt
104
105
OCAMLC=$LOCAL_OCAML/ocamlc
106
ac_cv_prog_OCAMLC=$LOCAL_OCAML/ocamlc
107
else
108
- echo "Ocaml installation failed"; exit 1
109
+ echo "OCaml installation failed"; exit 1
110
fi
111
fi
112
;;
113
114
CAMLP4LIB_OPT="dynlink.cmxa $CAMLP4LIB_OPT"
115
fi
116
117
-# force usage of supported Ocaml versions
118
+# force usage of supported OCaml versions
119
case "$OCAMLVERSION" in
120
- 3.10.1*|3.10.2*|3.1*) ;;
121
+ 3.10.1*|3.10.2*|3.1*|4.*) ;;
122
*)
123
if test "$REQUIRED_OCAML" != "SVN" ; then
124
echo "******** Version $REQUIRED_OCAML of Objective-Caml is required *********" 1>&2;
125
126
fi
127
128
echo "-------------------------------------------"
129
-echo " Checking Ocaml $OCAMLVERSION finished."
130
+echo " Checking OCaml $OCAMLVERSION finished."
131
echo "-------------------------------------------"
132
133
134
135
OCAMLOPT="$OCAMLOPT -g"
136
fi
137
138
-echo -e "\n----------------------------------"
139
+echo ""
140
+echo "----------------------------------"
141
echo " Checking system headers."
142
echo "----------------------------------"
143
144
145
146
echo "-------------------------------------------"
147
echo " Checking system headers finished."
148
-echo -e "-------------------------------------------\n"
149
+echo "-------------------------------------------"
150
+echo ""
151
echo "-----------------------------------"
152
echo " Checking system libraries."
153
echo "-----------------------------------"
154
155
if test "$UPNP_NATPMP_FORCE" = "yes"; then
156
UPNP_NATPMP=yes
157
cd $PATCH_DIR
158
- $WGET http://miniupnp.tuxfamily.org/files/miniupnpc-1.4.20100609.tar.gz
159
- $WGET http://miniupnp.tuxfamily.org/files/libnatpmp-20100202.tar.gz
160
+ $WGET http://miniupnp.tuxfamily.org/files/miniupnpc-1.6.tar.gz
161
+ $WGET http://miniupnp.tuxfamily.org/files/libnatpmp-20110808.tar.gz
162
mkdir -p $BUILD_DIR $LOCAL_DIR/usr/bin $LOCAL_DIR/usr/lib $LOCAL_DIR/usr/include/miniupnpc
163
cd $BUILD_DIR
164
- rm -rf libnatpmp-20100202 miniupnpc-1.4.20100609
165
- tar -xzf $PATCH_DIR/miniupnpc-1.4.20100609.tar.gz
166
- tar -xzf $PATCH_DIR/libnatpmp-20100202.tar.gz
167
- cd $BUILD_DIR/libnatpmp-20100202
168
+ rm -rf libnatpmp-20110808 miniupnpc-1.6
169
+ tar -xzf $PATCH_DIR/miniupnpc-1.6.tar.gz
170
+ tar -xzf $PATCH_DIR/libnatpmp-20110808.tar.gz
171
+ cd $BUILD_DIR/libnatpmp-20110808
172
make all install PREFIX=$LOCAL_DIR
173
- cd $BUILD_DIR/miniupnpc-1.4.20100609
174
+ cd $BUILD_DIR/miniupnpc-1.6
175
make all install PREFIX=$LOCAL_DIR
176
cd $CONFIG_DIR
177
- rm -rf $BUILD_DIR/libnatpmp-20100202 $BUILD_DIR/miniupnpc-1.4.20100609
178
+ rm -rf $BUILD_DIR/libnatpmp-20110808 $BUILD_DIR/miniupnpc-1.6
179
CPPFLAGS="${CPPFLAGS} -I$LOCAL_DIR/usr/include"
180
LDFLAGS="${LDFLAGS} -L$LOCAL_DIR/usr/lib"
181
fi
182
183
if test "$UPNP_NATPMP" = "yes"; then
184
- echo "----- checking libminiupnpc >= 1.4.20100609 (optional)"
185
+ echo "----- checking libminiupnpc >= 1.6 (optional)"
186
for ac_header in miniupnpc/miniupnpc.h
187
do :
188
ac_fn_c_check_header_mongrel "$LINENO" "miniupnpc/miniupnpc.h" "ac_cv_header_miniupnpc_miniupnpc_h" "$ac_includes_default"
189
190
fi
191
192
if test "$UPNP_NATPMP" = "yes"; then
193
- echo "----- checking libnatpmp >= 20100202 (optional)"
194
+ echo "----- checking libnatpmp >= 20110808 (optional)"
195
for ac_header in natpmp.h
196
do :
197
ac_fn_c_check_header_mongrel "$LINENO" "natpmp.h" "ac_cv_header_natpmp_h" "$ac_includes_default"
198
199
200
echo "---------------------------------------------"
201
echo " Checking system libraries finished."
202
-echo -e "---------------------------------------------\n"
203
+echo "---------------------------------------------"
204
+echo ""
205
206
CXX_VERSION=
207
CRYPTOPPFLAGS=
208
209
210
cd ..
211
212
-echo -e "\nBuilding dependencies (if it blocks, try '$GNU_MAKE depend' to see the problem)"
213
+echo ""
214
+echo "Building dependencies (if it blocks, try '$GNU_MAKE depend' to see the problem)"
215
$GNU_MAKE depend 2> /dev/null > /dev/null || echo "Building dependencies fails: try: '$GNU_MAKE depend'"
216
217
-echo -e -n "\nConfiguring MLDonkey" $MLDONKEY_VERSION
218
+echo ""
219
+printf "Configuring MLDonkey %s" "$MLDONKEY_VERSION"
220
if test ! -z "$SCM_VERSION"; then
221
- echo -n " - SCM: $SCM_VERSION"
222
+ printf " - SCM: %s" "$SCM_VERSION"
223
fi
224
-echo " completed."
225
+ec " completed.\n"
226
227
-echo -e "\nNetwork modules:"
228
-echo -n " - eDonkey "
229
+echo ""
230
+echo "Network modules:"
231
+printf " - eDonkey "
232
if test "$DONKEY" = "yes"; then
233
if test "$DONKEY_SUI" = "yes"; then
234
echo "enabled (eMule SUI enabled)"
235
236
echo " disabled"
237
fi
238
239
-echo -n " - BitTorrent "
240
+printf " - BitTorrent "
241
if test "$BITTORRENT" = "yes"; then
242
echo "enabled"
243
else
244
echo " disabled"
245
fi
246
247
-echo -n " - FileTP (aka wget) "
248
+printf " - FileTP (aka wget) "
249
if test "$FILETP" = "yes"; then
250
echo "enabled"
251
else
252
echo " disabled"
253
fi
254
255
-echo -n " - Fasttrack "
256
+printf " - Fasttrack "
257
if test "$FASTTRACK" = "yes"; then
258
echo "enabled"
259
else
260
echo " disabled"
261
fi
262
263
-echo -n " - Gnutella "
264
+printf " - Gnutella "
265
if test "$GNUTELLA" = "yes"; then
266
echo "enabled (warning: this network module is unmaintained)"
267
else
268
echo " disabled - unmaintained"
269
fi
270
271
-echo -n " - Gnutella2 "
272
+printf " - Gnutella2 "
273
if test "$GNUTELLA2" = "yes"; then
274
echo "enabled (warning: this network module is unmaintained)"
275
else
276
echo " disabled - unmaintained"
277
fi
278
279
-echo -n " - Direct Connect "
280
+printf " - Direct Connect "
281
if test "$DIRECT_CONNECT" = "yes"; then
282
echo "enabled"
283
else
284
echo " disabled"
285
fi
286
287
-echo -n " - Open Napster "
288
+printf " - Open Napster "
289
if test "$OPEN_NAPSTER" = "yes"; then
290
echo "enabled - currently not usable"
291
else
292
echo " disabled - currently not usable"
293
fi
294
295
-echo -n " - Soulseek "
296
+printf " - Soulseek "
297
if test "$SOULSEEK" = "yes"; then
298
echo "enabled - currently not usable"
299
else
300
echo " disabled - currently not usable"
301
fi
302
303
-echo -n " - OpenFT "
304
+printf " - OpenFT "
305
if test "$OPENFT" = "yes"; then
306
echo "enabled - currently not usable"
307
else
308
echo " disabled - currently not usable"
309
fi
310
311
-echo -e "\nCore features:"
312
+echo ""
313
+echo "Core features:"
314
315
echo " - zlib (required) enabled"
316
317
-echo -n " - threads "
318
+printf " - threads "
319
if test "$USE_PTHREAD" = "yes"; then
320
echo "enabled"
321
else
322
echo " disabled"
323
fi
324
325
-echo -n " - bzip2 "
326
+printf " - bzip2 "
327
if test "$BZIP2" = "yes"; then
328
echo "enabled"
329
else
330
echo " disabled"
331
fi
332
333
-echo -n " - iconv "
334
+printf " - iconv "
335
if test "$ICONV" = "yes"; then
336
echo "enabled"
337
else
338
echo " disabled"
339
fi
340
341
-echo -n " - libmagic "
342
+printf " - libmagic "
343
if test "$MAGIC" = "yes"; then
344
echo "enabled"
345
else
346
echo " disabled"
347
fi
348
349
-echo -n " - upnp & natpmp "
350
+printf " - upnp & natpmp "
351
if test "$UPNP_NATPMP" = "yes"; then
352
echo "enabled"
353
else
354
echo " disabled"
355
fi
356
357
-echo -n " - graphical stats "
358
+printf " - graphical stats "
359
if test "$GD" = "yes"; then
360
echo "enabled"
361
- echo -n " - png support "
362
+ printf " - png support "
363
if test "$GD_PNG" = "yes"; then
364
echo "enabled"
365
else
366
echo " disabled"
367
fi
368
369
- echo -n " - jpg support "
370
+ printf " - jpg support "
371
if test "$GD_JPG" = "yes"; then
372
echo "enabled"
373
else
374
375
fi
376
377
if test "$LABLGTK_CONFIG" = "yes"; then
378
- echo -n -e "\n - GUI support "
379
+ echo ""
380
+ printf "\n - GUI support "
381
if test "$GUI" = "newgui1"; then
382
echo "GTK1 newgui"
383
else
384
385
OCAML_TYPE="- byte code"
386
COMPILE_TARGET=".byte"
387
fi
388
-echo -e "\nCompilers:"
389
-echo -e " - Ocaml version $OCAMLVERSION $OCAML_TYPE"
390
-echo -e " - $CC version $CC_VERSION"
391
+echo ""
392
+printf "Compilers:"
393
+echo " - OCaml version $OCAMLVERSION $OCAML_TYPE"
394
+echo " - $CC version $CC_VERSION"
395
if test "x$CXX" != "x"; then
396
- echo -e " - $CXX version $CXX_VERSION"
397
+ echo " - $CXX version $CXX_VERSION"
398
fi
399
-echo -e "\nNow execute '$GNU_MAKE' to start compiling. Good luck!"
400
+echo ""
401
+echo "\nNow execute '$GNU_MAKE' to start compiling. Good luck!"
402
403
-echo -e "\nTo compile a static code execute: $GNU_MAKE mlnet$COMPILE_TARGET.static"
404
-echo "To produce a release tarball execute: $GNU_MAKE release.mlnet.static"
405
-echo "To clean the build directory execute: $GNU_MAKE maintainerclean"
406
+echo ""
407
+echo "To compile a static code execute: $GNU_MAKE mlnet$COMPILE_TARGET.static"
408
+echo "To produce a release tarball execute: $GNU_MAKE release.mlnet.static"
409
+echo "To clean the build directory execute: $GNU_MAKE maintainerclean"
410
if test "$DONKEY_SUI" = "yes"; then
411
- echo -e "\nCompiling CryptoPP.cc can take several minutes, on slow machines up to half an hour."
412
+ echo ""
413
+ echo "Compiling CryptoPP.cc can take several minutes, on slow machines up to half an hour."
414
fi
415
mldonkey-3.1.2.tar.bz2/config/configure.in -> mldonkey-3.1.3.tar.bz2/config/configure.in
Changed
414
1
2
3
MAJOR_VERSION=3
4
MINOR_VERSION=1
5
-SUB_VERSION=2 # range 0-7 due to eMule limitations
6
+SUB_VERSION=3 # range 0-7 due to eMule limitations
7
8
# ********** **********
9
# ********** check for C compiler **********
10
11
fi
12
13
# ********** **********
14
-# ********** build MLDonkey version, Required Ocaml and LablGTK versions **********
15
+# ********** build MLDonkey version, Required OCaml and LablGTK versions **********
16
# ********** **********
17
18
MLDONKEY_VERSION=$MAJOR_VERSION.$MINOR_VERSION.$SUB_VERSION
19
20
AS_HELP_STRING([--enable-batch], [reply YES to all queries in this script]),
21
[BATCH="$enableval"])
22
AC_ARG_ENABLE(force-ocaml,
23
- AS_HELP_STRING([--enable-force-ocaml], [force usage of self-compiled Ocaml]),
24
+ AS_HELP_STRING([--enable-force-ocaml], [force usage of self-compiled OCaml]),
25
[FORCE_OCAML="$enableval"])
26
AC_ARG_ENABLE(ocamlver,
27
- AS_HELP_STRING([--enable-ocamlver=VER], [force usage of specific Ocaml version (3.10.1|SVN), ]),
28
+ AS_HELP_STRING([--enable-ocamlver=VER], [force usage of specific OCaml version (3.10.1|SVN), ]),
29
[REQUIRED_OCAML="$enableval"])
30
AC_ARG_ENABLE(mingw,
31
AS_HELP_STRING([--enable-mingw], [force compilation with MINGW on Cygwin]),
32
33
34
OCAML_PATH=
35
36
-echo -e "\n--------------------------------"
37
+echo ""
38
+echo "--------------------------------"
39
echo " Checking system tools."
40
echo "--------------------------------"
41
42
43
44
echo "----------------------------------------"
45
echo " Checking system tools finished."
46
-echo -e "----------------------------------------\n"
47
-
48
+echo "----------------------------------------"
49
+echo ""
50
echo "--------------------------------"
51
-echo " Checking Ocaml compiler."
52
+echo " Checking OCaml compiler."
53
echo "--------------------------------"
54
55
CONFIG_DIR=$SOURCE_DIR/config
56
57
else
58
OCAMLVERSION=`$OCAMLC -v | sed -n -e 's|.*version* *\(.*\)$|\1|p' `
59
case "$OCAMLVERSION" in
60
- "$REQUIRED_OCAML"*|3.12.*|3.11.*|3.10.1*|3.10.2*) ;;
61
+ "$REQUIRED_OCAML"*|4.*|3.12.*|3.11.*|3.10.1*|3.10.2*) ;;
62
*)
63
echo "Need build"
64
BUILD_OCAML=yes
65
66
67
if [ test "$SYSTEM" = "mingw" ]; then
68
echo "******** Objective-Caml $REQUIRED_OCAML is required *********" 1>&2;
69
- echo "******** no valid Ocaml compiler found on your system *********" 1>&2;
70
+ echo "******** no valid OCaml compiler found on your system *********" 1>&2;
71
echo "******** on MinGW there is no possibility to let configure *********" 1>&2;
72
- echo "******** build the Ocaml compiler with the included script *********" 1>&2;
73
+ echo "******** build the OCaml compiler with the included script *********" 1>&2;
74
echo "******** check http://mldonkey.sourceforge.net/Windows *********" 1>&2;
75
- echo "******** for instuctions how to compile Ocaml under MinGW *********" 1>&2;
76
+ echo "******** for instuctions how to compile OCaml under MinGW *********" 1>&2;
77
exit 1
78
else
79
80
echo "******** Objective-Caml $REQUIRED_OCAML is required *********" 1>&2;
81
if [ test "$WGET" = "" ] && [ test "$REQUIRED_OCAML" != "SVN" ]; then
82
echo "******** wget is missing *********" 1>&2;
83
- echo "******** cannot download Ocaml *********" 1>&2;
84
+ echo "******** cannot download OCaml *********" 1>&2;
85
exit 1
86
fi
87
echo "******* Check http://caml.inria.fr/ ********" 1>&2;
88
89
$WGET http://caml.inria.fr/pub/distrib/ocaml-3.10/ocaml-"$REQUIRED_OCAML".tar.gz
90
fi
91
if test ! -f ocaml-"$REQUIRED_OCAML".tar.gz; then
92
- echo "******** download Ocaml $REQUIRED_OCAML not successful, try do download it manually *********" 1>&2;
93
+ echo "******** download OCaml $REQUIRED_OCAML not successful, try do download it manually *********" 1>&2;
94
echo "******** from http://caml.inria.fr/pub/distrib/ *********" 1>&2;
95
echo "******** and copy the tar.gz into $PATCH_DIR *********" 1>&2;
96
exit 1
97
98
rm -rf ocaml-"$REQUIRED_OCAML"
99
fi
100
cd $CONFIG_DIR
101
- echo Ocaml locally installed for mldonkey
102
+ echo OCaml locally installed for mldonkey
103
104
if test -f "$LOCAL_OCAML"/ocamlc.opt; then
105
OCAMLC=$LOCAL_OCAML/ocamlc.opt
106
107
OCAMLC=$LOCAL_OCAML/ocamlc
108
ac_cv_prog_OCAMLC=$LOCAL_OCAML/ocamlc
109
else
110
- echo "Ocaml installation failed"; exit 1
111
+ echo "OCaml installation failed"; exit 1
112
fi
113
fi
114
;;
115
116
CAMLP4LIB_OPT="dynlink.cmxa $CAMLP4LIB_OPT"
117
fi
118
119
-# force usage of supported Ocaml versions
120
+# force usage of supported OCaml versions
121
case "$OCAMLVERSION" in
122
- 3.10.1*|3.10.2*|3.1*) ;;
123
+ 3.10.1*|3.10.2*|3.1*|4.*) ;;
124
*)
125
if [ test "$REQUIRED_OCAML" != "SVN" ]; then
126
echo "******** Version $REQUIRED_OCAML of Objective-Caml is required *********" 1>&2;
127
128
fi
129
130
echo "-------------------------------------------"
131
-echo " Checking Ocaml $OCAMLVERSION finished."
132
+echo " Checking OCaml $OCAMLVERSION finished."
133
echo "-------------------------------------------"
134
135
136
137
OCAMLOPT="$OCAMLOPT -g"
138
fi
139
140
-echo -e "\n----------------------------------"
141
+echo ""
142
+echo "----------------------------------"
143
echo " Checking system headers."
144
echo "----------------------------------"
145
146
147
])
148
echo "-------------------------------------------"
149
echo " Checking system headers finished."
150
-echo -e "-------------------------------------------\n"
151
+echo "-------------------------------------------"
152
+echo ""
153
echo "-----------------------------------"
154
echo " Checking system libraries."
155
echo "-----------------------------------"
156
157
if test "$UPNP_NATPMP_FORCE" = "yes"; then
158
UPNP_NATPMP=yes
159
cd $PATCH_DIR
160
- $WGET http://miniupnp.tuxfamily.org/files/miniupnpc-1.4.20100609.tar.gz
161
- $WGET http://miniupnp.tuxfamily.org/files/libnatpmp-20100202.tar.gz
162
+ $WGET http://miniupnp.tuxfamily.org/files/miniupnpc-1.6.tar.gz
163
+ $WGET http://miniupnp.tuxfamily.org/files/libnatpmp-20110808.tar.gz
164
mkdir -p $BUILD_DIR $LOCAL_DIR/usr/bin $LOCAL_DIR/usr/lib $LOCAL_DIR/usr/include/miniupnpc
165
cd $BUILD_DIR
166
- rm -rf libnatpmp-20100202 miniupnpc-1.4.20100609
167
- tar -xzf $PATCH_DIR/miniupnpc-1.4.20100609.tar.gz
168
- tar -xzf $PATCH_DIR/libnatpmp-20100202.tar.gz
169
- cd $BUILD_DIR/libnatpmp-20100202
170
+ rm -rf libnatpmp-20110808 miniupnpc-1.6
171
+ tar -xzf $PATCH_DIR/miniupnpc-1.6.tar.gz
172
+ tar -xzf $PATCH_DIR/libnatpmp-20110808.tar.gz
173
+ cd $BUILD_DIR/libnatpmp-20110808
174
make all install PREFIX=$LOCAL_DIR
175
- cd $BUILD_DIR/miniupnpc-1.4.20100609
176
+ cd $BUILD_DIR/miniupnpc-1.6
177
make all install PREFIX=$LOCAL_DIR
178
cd $CONFIG_DIR
179
- rm -rf $BUILD_DIR/libnatpmp-20100202 $BUILD_DIR/miniupnpc-1.4.20100609
180
+ rm -rf $BUILD_DIR/libnatpmp-20110808 $BUILD_DIR/miniupnpc-1.6
181
CPPFLAGS="${CPPFLAGS} -I$LOCAL_DIR/usr/include"
182
LDFLAGS="${LDFLAGS} -L$LOCAL_DIR/usr/lib"
183
fi
184
185
if test "$UPNP_NATPMP" = "yes"; then
186
- echo "----- checking libminiupnpc >= 1.4.20100609 (optional)"
187
+ echo "----- checking libminiupnpc >= 1.6 (optional)"
188
AC_CHECK_HEADERS(miniupnpc/miniupnpc.h,[AC_CHECK_LIB(miniupnpc,upnpDiscover,[UPNP_NATPMP=yes],[UPNP_NATPMP=no])],[UPNP_NATPMP=no])
189
fi
190
191
if test "$UPNP_NATPMP" = "yes"; then
192
- echo "----- checking libnatpmp >= 20100202 (optional)"
193
+ echo "----- checking libnatpmp >= 20110808 (optional)"
194
AC_CHECK_HEADERS(natpmp.h,[AC_CHECK_LIB(natpmp,initnatpmp,[UPNP_NATPMP=yes],[UPNP_NATPMP=no])],[UPNP_NATPMP=no])
195
fi
196
197
198
199
echo "---------------------------------------------"
200
echo " Checking system libraries finished."
201
-echo -e "---------------------------------------------\n"
202
+echo "---------------------------------------------"
203
+echo ""
204
205
CXX_VERSION=
206
CRYPTOPPFLAGS=
207
208
209
cd ..
210
211
-echo -e "\nBuilding dependencies (if it blocks, try '$GNU_MAKE depend' to see the problem)"
212
+echo ""
213
+echo "Building dependencies (if it blocks, try '$GNU_MAKE depend' to see the problem)"
214
$GNU_MAKE depend 2> /dev/null > /dev/null || echo "Building dependencies fails: try: '$GNU_MAKE depend'"
215
216
-echo -e -n "\nConfiguring MLDonkey" $MLDONKEY_VERSION
217
+echo ""
218
+printf "Configuring MLDonkey %s" "$MLDONKEY_VERSION"
219
if test ! -z "$SCM_VERSION"; then
220
- echo -n " - SCM: $SCM_VERSION"
221
+ printf " - SCM: %s" "$SCM_VERSION"
222
fi
223
-echo " completed."
224
+ec " completed.\n"
225
226
-echo -e "\nNetwork modules:"
227
-echo -n " - eDonkey "
228
+echo ""
229
+echo "Network modules:"
230
+printf " - eDonkey "
231
if test "$DONKEY" = "yes"; then
232
if test "$DONKEY_SUI" = "yes"; then
233
echo "enabled (eMule SUI enabled)"
234
235
echo " disabled"
236
fi
237
238
-echo -n " - BitTorrent "
239
+printf " - BitTorrent "
240
if test "$BITTORRENT" = "yes"; then
241
echo "enabled"
242
else
243
echo " disabled"
244
fi
245
246
-echo -n " - FileTP (aka wget) "
247
+printf " - FileTP (aka wget) "
248
if test "$FILETP" = "yes"; then
249
echo "enabled"
250
else
251
echo " disabled"
252
fi
253
254
-echo -n " - Fasttrack "
255
+printf " - Fasttrack "
256
if test "$FASTTRACK" = "yes"; then
257
echo "enabled"
258
else
259
echo " disabled"
260
fi
261
262
-echo -n " - Gnutella "
263
+printf " - Gnutella "
264
if test "$GNUTELLA" = "yes"; then
265
echo "enabled (warning: this network module is unmaintained)"
266
else
267
echo " disabled - unmaintained"
268
fi
269
270
-echo -n " - Gnutella2 "
271
+printf " - Gnutella2 "
272
if test "$GNUTELLA2" = "yes"; then
273
echo "enabled (warning: this network module is unmaintained)"
274
else
275
echo " disabled - unmaintained"
276
fi
277
278
-echo -n " - Direct Connect "
279
+printf " - Direct Connect "
280
if test "$DIRECT_CONNECT" = "yes"; then
281
echo "enabled"
282
else
283
echo " disabled"
284
fi
285
286
-echo -n " - Open Napster "
287
+printf " - Open Napster "
288
if test "$OPEN_NAPSTER" = "yes"; then
289
echo "enabled - currently not usable"
290
else
291
echo " disabled - currently not usable"
292
fi
293
294
-echo -n " - Soulseek "
295
+printf " - Soulseek "
296
if test "$SOULSEEK" = "yes"; then
297
echo "enabled - currently not usable"
298
else
299
echo " disabled - currently not usable"
300
fi
301
302
-echo -n " - OpenFT "
303
+printf " - OpenFT "
304
if test "$OPENFT" = "yes"; then
305
echo "enabled - currently not usable"
306
else
307
echo " disabled - currently not usable"
308
fi
309
310
-echo -e "\nCore features:"
311
+echo ""
312
+echo "Core features:"
313
314
echo " - zlib (required) enabled"
315
316
-echo -n " - threads "
317
+printf " - threads "
318
if test "$USE_PTHREAD" = "yes"; then
319
echo "enabled"
320
else
321
echo " disabled"
322
fi
323
324
-echo -n " - bzip2 "
325
+printf " - bzip2 "
326
if test "$BZIP2" = "yes"; then
327
echo "enabled"
328
else
329
echo " disabled"
330
fi
331
332
-echo -n " - iconv "
333
+printf " - iconv "
334
if test "$ICONV" = "yes"; then
335
echo "enabled"
336
else
337
echo " disabled"
338
fi
339
340
-echo -n " - libmagic "
341
+printf " - libmagic "
342
if test "$MAGIC" = "yes"; then
343
echo "enabled"
344
else
345
echo " disabled"
346
fi
347
348
-echo -n " - upnp & natpmp "
349
+printf " - upnp & natpmp "
350
if test "$UPNP_NATPMP" = "yes"; then
351
echo "enabled"
352
else
353
echo " disabled"
354
fi
355
356
-echo -n " - graphical stats "
357
+printf " - graphical stats "
358
if test "$GD" = "yes"; then
359
echo "enabled"
360
- echo -n " - png support "
361
+ printf " - png support "
362
if test "$GD_PNG" = "yes"; then
363
echo "enabled"
364
else
365
echo " disabled"
366
fi
367
368
- echo -n " - jpg support "
369
+ printf " - jpg support "
370
if test "$GD_JPG" = "yes"; then
371
echo "enabled"
372
else
373
374
fi
375
376
if test "$LABLGTK_CONFIG" = "yes"; then
377
- echo -n -e "\n - GUI support "
378
+ echo ""
379
+ printf "\n - GUI support "
380
if test "$GUI" = "newgui1"; then
381
echo "GTK1 newgui"
382
else
383
384
OCAML_TYPE="- byte code"
385
COMPILE_TARGET=".byte"
386
fi
387
-echo -e "\nCompilers:"
388
-echo -e " - Ocaml version $OCAMLVERSION $OCAML_TYPE"
389
-echo -e " - $CC version $CC_VERSION"
390
+echo ""
391
+printf "Compilers:"
392
+echo " - OCaml version $OCAMLVERSION $OCAML_TYPE"
393
+echo " - $CC version $CC_VERSION"
394
if test "x$CXX" != "x"; then
395
- echo -e " - $CXX version $CXX_VERSION"
396
+ echo " - $CXX version $CXX_VERSION"
397
fi
398
-echo -e "\nNow execute '$GNU_MAKE' to start compiling. Good luck!"
399
+echo ""
400
+echo "\nNow execute '$GNU_MAKE' to start compiling. Good luck!"
401
402
-echo -e "\nTo compile a static code execute: $GNU_MAKE mlnet$COMPILE_TARGET.static"
403
-echo "To produce a release tarball execute: $GNU_MAKE release.mlnet.static"
404
-echo "To clean the build directory execute: $GNU_MAKE maintainerclean"
405
+echo ""
406
+echo "To compile a static code execute: $GNU_MAKE mlnet$COMPILE_TARGET.static"
407
+echo "To produce a release tarball execute: $GNU_MAKE release.mlnet.static"
408
+echo "To clean the build directory execute: $GNU_MAKE maintainerclean"
409
if test "$DONKEY_SUI" = "yes"; then
410
- echo -e "\nCompiling CryptoPP.cc can take several minutes, on slow machines up to half an hour."
411
+ echo ""
412
+ echo "Compiling CryptoPP.cc can take several minutes, on slow machines up to half an hour."
413
fi
414
mldonkey-3.1.2.tar.bz2/distrib/ChangeLog -> mldonkey-3.1.3.tar.bz2/distrib/ChangeLog
Changed
324
1
2
ChangeLog
3
=========
4
5
+2012/08/05: version 3.1.3 = tag release-3-1-3
6
+
7
+2012/07/27
8
+7756: BT: Add support for magnet links (ygrek, jave)
9
+
10
+2012/07/01
11
+7813: Fix segfault on Solaris/OpenIndiana in md4 code written in C (dcoppa)
12
+7812: FreeBSD: proper version identification (lioux)
13
+
14
+2012/06/24
15
+7805: Update upnp libraries
16
+7804: new option filenames_utf8 (ygrek)
17
+7803: pause conditions: "pause where priority < X" (ygrek)
18
+7802: Do not leave empty files if code generation fails (ygrek)
19
+7801: HTML: Fix content-type for 401 error (ygrek)
20
+7800: Improve error message visibility (ygrek)
21
+7799: HTML: fix validation errors (ygrek)
22
+7798: Fix Mac OS X compilation (ygrek)
23
+7797: allow build with upcoming OCaml 4.00 (ygrek)
24
+7795: spelling fix, official language name is "OCaml" (ygrek)
25
+7796: configure: fix non-portable use of echo (ygrek)
26
+
27
+2012/05/23
28
+7784: IP discover: Fix broken URL
29
+-------------------------------------------------------------------------------
30
2012/05/13: version 3.1.2 = tag release-3-1-2 (expect no binary updates)
31
7726: Add support for Debian/Hurd, really ;)
32
33
34
6752: Optimized implementation of the ip_set module (cbah)
35
6736: Add/fix some copyright texts
36
-------------------------------------------------------------------------------
37
-2009/01/20: version 2.9.7 = tag release-2-9-7
38
-6727: Web_infos: Replace old GeoIP URL with new one
39
-- old code added the new URL, even if GeoIP was not present in web_infos
40
-
41
-2009/01/04
42
-6714: BT: Fix bug when computing limits for max_bt_uploaders
43
-6713: GeoIP: New web_infos URL for country list (thx to Choby)
44
-- old URLs are updated to:
45
- http://www.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
46
-
47
-2008/12/13
48
-6689: Allow compilation with Ocaml 3.11.0
49
-
50
-2008/09/01
51
-6629: Mail: Move hostname from subject to body (eydaimon)
52
-Updated Mozilla protocol handler to version 2.5
53
-- original source from http://www.informatik.uni-oldenburg.de/~dyna/mldonkey
54
-6628: IP discover: Use http://whatismyip.org, old URL is not working anymore
55
--------------------------------------------------------------------------------
56
-2008/08/04: version 2.9.6 = tag release-2-9-6
57
-6599: Allow values lower than max_upload_slots for BT-max_bt_uploaders
58
-
59
-2008/07/29
60
-6593: CryptoPP performance fix for ARM (Marc Pignat)
61
-6592: HTML: Fix invalid html respond when login is invalid
62
-
63
-2008/07/17
64
-6571: Runinfo: Include DirectConnect in list of enabled nets
65
-
66
-2008/07/02
67
-6558: Fix text relocation warnings on hardened distributions (Davide Pesavento)
68
-6557: BT: Send correct downloaded value when download is stopped to tracker
69
- (Fox Mulder)
70
--------------------------------------------------------------------------------
71
-2008/05/02: version 2.9.5 = tag release-2-9-5
72
-6503: Remove release status when download is finished
73
-
74
-2008/03/31
75
-6465: BT: Send correct downloaded value when download starts to tracker
76
- (colchaodemola)
77
-6477: Use $MLDONKEY_DIR/mlnet_tmp instead of /tmp
78
-- This patch fixes problems with hash checking of multifile BT
79
- downloads when /tmp is too small.
80
-- To override $MLDONKEY_DIR/mlnet_tmp use variable $MLDONKEY_TEMP.
81
- This patch has nothing to do with option temp_directory.
82
-6472: Multiuser: Count only files in download queue for user/group statistics
83
-6471: Clean logfile
84
-6470: BT: Use default of max_upload_slots as minimum for BT-max_bt_uploaders
85
- instead of hard-coded value
86
-
87
-2008/03/18
88
-6466: Fix option_hook loop when changing max_upload_slots < 3,
89
- caused by patch #6451
90
-
91
-2008/03/14
92
-6462: Multiuser: Restrict chown to admin users only
93
-
94
-2008/03/11
95
-6458: Fix commit bug when filesystem reports negative values
96
- for maximum filename length
97
-
98
-2008/03/07
99
-6451: BT: Implement minimum of 3 (like max_upload_slots)
100
- for option max_bt_uploaders
101
--------------------------------------------------------------------------------
102
-2008/03/02: version 2.9.4 = tag release-2-9-4
103
-6440: GTK2 GUI: Compile with lablgtk-2.10.1 by default
104
-- lablgtk-2.10.0 does not compile with Ocaml 3.10.2
105
-
106
-2008/02/29
107
-6439: Configure: Make Ocaml 3.10.2 the default compiler
108
-
109
-2008/02/06
110
-6407: New options run_as_group/run_as_groupgid
111
-- works the same way as options run_as_user/run_as_useruid
112
-- display system user:group running MLDonkey core in runinfo
113
-6406: Mail: Fix bug in rfc2047 encoding
114
-
115
-2008/02/05
116
-6404: New option release_new_downloads
117
-- set to true to activate release slot feature for all newly started downloads
118
-
119
-2008/02/04
120
-6080: HTTP interface: new command/button "logout" (Schlumpf)
121
-6077: bw_toggle: support new option "max_opened_connections_2" (Schlumpf)
122
-6401: Swarmer: Correctly update file_downloaded during recover_temp (pango)
123
-6400: EDK: Correctly update filename after recover_temp
124
-6396: Log: Print user:group when starting a download
125
-6395: Makefile: Do not strip shared linked binaries on Mac OS X, clean Makefile
126
-
127
-2008/01/24
128
-6381: Multiuser: Block commands "shares" and "share" for non-admin users
129
--------------------------------------------------------------------------------
130
-2008/01/16: version 2.9.3 = tag release-2-9-3
131
-6379: bwstats: Show downloaded bytes (pango)
132
-
133
-2008/01/16
134
-6377: Configure: Make Ocaml 3.10.1 the default compiler
135
-- Ocaml 3.10.1 fixes crashes in MLDonkeys eDonkey module when compiled with
136
- Ocaml 3.10.0 on 64bit systems
137
-
138
-2008/01/15
139
-6373: Swarmer: Ignore received data when file is queued
140
-
141
-2008/01/08
142
-6367: FileTP: Fix bug when starting downloads > 4GB via dllink
143
-
144
-2008/01/07
145
-6364: MinGW: Fix broken share priorities (thx to vbnuy6)
146
-6365: HTML: Use option max_name_len in upstats for unhashed files
147
-
148
-2008/01/04
149
-6362: Small Geoip updates
150
-- new countries + flags: Saint Barthelemy, Saint Martin
151
-- updates flags: Georgia, Democratic Republic of the Congo, Western Sahara, Lesotho
152
-
153
-2008/01/02
154
-6361: GUI: Send console messages to admin users after unsharing a file
155
-6349: DirectConnect: Correctly report total shared filesize to server (LuCasn)
156
-6360: BT: New command print_torrent <file_num>,
157
- new link in HTML, upstats to display .torrent details
158
-
159
-2007/12/19
160
-6351: Allow compilation with upcoming Ocaml 3.10.1
161
-
162
-2007/12/17
163
-6342: HTML: fix broken vm output in Opera (schlumpf)
164
-6346: Environment variables for file_started_cmd (see option help text)
165
-
166
-2007/12/13
167
-6343: gcc-4.3 compile fix for CryptoPP (brian m. carlson)
168
-
169
-2007/12/09
170
-6337: Fix inequality test for option html_mods_theme (pango)
171
-
172
-2007/11/03
173
-6255: Fix compile warnings for GTK2 GUI and DC++ (pango)
174
--------------------------------------------------------------------------------
175
-2007/10/20: version 2.9.2 = tag release-2-9-2
176
-6242: Allow deactivation of [telnet|gui|gift]_port by setting it to 0
177
-
178
-2007/10/17
179
-6240: GTK1 oldgui: Hide password in server settings
180
-6239: Update GNU config.guess and config.sub to version 2007/07
181
-Updated Mozilla protocol handler to version 2.2
182
-- original source from http://www.informatik.uni-oldenburg.de/~dyna/mldonkey
183
-6238: Fix statvfs code on alpha platform (Alexander Kotelnikov)
184
-6237: EDK: Load server.met files from archives even if unpack fails
185
-- http://www.gruk.org/server.met.gz is not a gz archive at the moment...
186
-
187
-2007/10/10
188
-6231: Swarming: Propagate chunks of finished file before commit (pango)
189
- to other downloading files
190
-
191
-2007/10/04
192
-6223: GTK2 GUI: Compile with lablgtk-2.10.0 by default
193
-- this patch changes the lablgtk2 version used by ./configure
194
-- self-compiled lablgtk-2.10.0 must be patched with patches/lablgtk-2.10.0.patch
195
-
196
-2007/09/30
197
-6221: Configure: Remove unneeded checks
198
-6220: GTK2 GUI: Fix compile bug due to changed API in lablgtk-2.10.0
199
-- GTK2 GUI still compiles with older versions of lablgtk2
200
-
201
-2007/09/13
202
-6197: Options backup: Better log messages, remove useless exception
203
--------------------------------------------------------------------------------
204
-2007/09/09: version 2.9.1 = tag release-2-9-1
205
-6192: EDK: Use discovered client_ip when lowid
206
-
207
-2007/09/05
208
-6187: BT: Fix wrong file order of multifile torrents due to patch #6174
209
-
210
-2007/09/01
211
-6179: BT: Send correct downloaded amount to tracker when download completed
212
-6174: BT: Encode non-UTF8 filenames using "encoding" or "codepage" data
213
- from .torrent if present
214
-
215
-2007/08/31
216
-6175: Yet another patch for share_scan_interval
217
-- new default 30 minutes for newly created ini files
218
-- still use 0 to disable
219
-- hard-coded global minimum of 5 minutes, this updates old default 1 to 5
220
-- automated options update, if update is needed (options_version <= 19) and
221
- share_scan_interval = 5 (because of new hard-coded minimum, which is
222
- processed earlier) its changed to new default of 30
223
-6145: EDK: Update options description of max_connected_servers (Schlumpf)
224
-6172: EDK: properly advertise and honour noviewshared tag (TripleM)
225
-
226
-2007/08/23
227
-6160: BT: Another fix for share_scan_interval
228
-- Old hard-coded default was 300s, now with share_scan_interval its
229
- possible to use a minimum of 60s which produces high CPU load.
230
- This patch implements a minimum of 300s for the BT share_files timer.
231
-
232
-2007/08/04
233
-6128: New default for option messages_filter (unease)
234
-6132: HTML: Fix group display in vd <num> for admin users
235
- view of other users files
236
-6130: Change API for network_parse_url, support user group
237
-6127: HTML: Display file_chunk_sizes/file_piece_size in vd <num>
238
-6135: BT: Fix high CPU load when share_scan_interval = 0
239
- due to buggy patch #6049 (thx to darkman)
240
--------------------------------------------------------------------------------
241
-2007/07/27: version 2.9.0 = tag release-2-9-0
242
-6118: Configure: Update defaults
243
-- enable DirectConnect by default
244
-- disable Gnutella & Gnutella2 by default
245
- - MLDonkey does not support UDP host cache and contains
246
- non-working GWebCache URLs
247
- - Gnutella/G2 code has not been updated for several years,
248
- its officially unmaintained for now
249
- - remove non-existing GWebCache URLs
250
-
251
-2007/07/25
252
-6087: Fix logging of verbosity "bw", remove obsolete options
253
-6085: BT: Improve UTF8 support
254
-- parse field "encoding"
255
-- use field "name.utf8" instead of "name", if available
256
-
257
-2007/07/10
258
-5996: BT: Recognize more client types (orbit)
259
-6065: DirectConnect: Support dc++ hublist in web_infos
260
-6063: BT: Better detect single-file torrents
261
-
262
-2007/07/03
263
-6068: BT: Fix download start when torrents/downloads filesystem
264
- allows more than 16M chars
265
-
266
-2007/07/01
267
-6064: BT: Earlier first scan of torrents/incoming/*
268
-6053: HTML: Send correct filename when previewing (chandlerding)
269
-6061: Options: New type port_option, values are bound to be >= 0 and <= 65535
270
-6060: Do not send mail notifications when smtp_server = ""
271
-6059: Multiuser: Avoid double group entries in user_groups
272
-6056: Log username, IP:port and old/new value when changing options
273
-
274
-2007/06/30
275
-6049: BT: Support user_commit_dir when seeding,
276
- reshare every share_scan_interval minutes
277
-
278
-2007/06/26
279
-Move docs/multiuser.txt to distrib/multiuser.txt
280
-6048: Make Ocaml 3.10.0 the default compiler
281
-- MLDonkey can still be compiled with Ocaml 3.08.3/4 & 3.09.*
282
-- if you need GTK1 oldgui you must use Ocaml < 3.10.0 to compile
283
-
284
-2007/06/24
285
-6044: BT: Limit max_bt_uploaders to max_upload_slots (pango)
286
-6043: Discover WAN IP
287
-- new command "discover_ip" to force discovery
288
-- new option "discover_ip" to enable automatic discovery on startup
289
- and after SIGHUP, default true
290
-- this patch is important for BT-only usage, without this patch the
291
- WAN IP was discovered only by using EDK server replies
292
-6034: Load $MLDONKEY/web_infos/* before activating network modules
293
-- this fixes a security hole when networks started connecting
294
- before IP blocklist was loaded
295
-6025: Extend command "links" to optionally display all downloading files
296
-- "links" displays all files, not only shared ones like before
297
-- "links shared" lists only shared files
298
-- "links downloading" lists only downloading files
299
-
300
-2007/06/18
301
-6024: Multiuser: New parameters for command useradd:
302
- user_mail + user_max_concurrent_downloads
303
-
304
-2007/06/17
305
-6021: Remove leftovers from optional zlib support,
306
- replace Autoconf.zlib__* with Zlib.* functions
307
-6005: Swarmer: Implement new download mechanism
308
-- its now possible to switch the order blocks are downloaded from random
309
- (first and last block first, default) to linear
310
-- new command: download_order <file number> <random|linear>
311
-6017: Multiuser: New optional parameters group/commit_dir for command useradd
312
-6020: Multiuser: Fix handling of user "admin", its user_commit_dir was not
313
- used when MLDonkey was not restarted between download start and commit
314
-6019: BT: Disable user_commit_dir for multifile torrents to fix seeding
315
-6011: BT: Send no_peer_id to trackers to save some bandwidth (berni)
316
-6010: Update syslog.ml to version 1.4
317
-5995: EDK: Better handle permission denied errors for shared/downloading files
318
-5992: BT/IP block: Fix country-based IP blocking
319
--------------------------------------------------------------------------------
320
-Split Changelog, all stuff older than 2.9.0 is now in docs/ChangeLog.old:
321
+Split Changelog, all stuff older than 3.0.0 is now in docs/ChangeLog.old:
322
323
http://savannah.nongnu.org/cgi-bin/viewcvs/mldonkey/mldonkey/docs/ChangeLog.old?rev=HEAD&content-type=text/vnd.viewcvs-markup
324
mldonkey-3.1.2.tar.bz2/distrib/Install.txt -> mldonkey-3.1.3.tar.bz2/distrib/Install.txt
Changed
19
1
2
3
The configure script will download ocaml and lablgtk, compile and install them
4
locally so that they can be used to compile mldonkey. Steps below can be skipped
5
-now. Be patient. Ocaml and lablgtk tools take a while to compile and install.
6
+now. Be patient. OCaml and lablgtk tools take a while to compile and install.
7
8
Note: At least 70 M of free disk space is required on the partition where mldonkey
9
is compiled.
10
11
12
To build GTK1 newgui: ./configure --enable-gui=newgui1
13
To build GTK1 oldgui: ./configure --enable-gui=oldgui
14
- - note: oldgui does not compile with Ocaml >= 3.10
15
+ - note: oldgui does not compile with OCaml >= 3.10
16
To build GTK2 GUI: ./configure --enable-gui[=newgui2]
17
lablgtk-1.2.7 and lablgtk-2.10.1 can both be installed at the same time.
18
19
mldonkey-3.1.2.tar.bz2/docs/ChangeLog.old -> mldonkey-3.1.3.tar.bz2/docs/ChangeLog.old
Changed
296
1
2
All numbers mentioned here can be found as patches on
3
http://savannah.nongnu.org/patch/?group=mldonkey
4
5
-2009/10/23: spiralvoice
6
+2012/07/01: spiralvoice
7
8
-Split Changelog, all stuff newer than 2.8.7 is now in distrib/ChangeLog
9
+Split Changelog, all stuff newer than 2.9.7 is now in distrib/ChangeLog
10
+-------------------------------------------------------------------------------
11
+2009/01/20: version 2.9.7 = tag release-2-9-7
12
+6727: Web_infos: Replace old GeoIP URL with new one
13
+- old code added the new URL, even if GeoIP was not present in web_infos
14
+
15
+2009/01/04
16
+6714: BT: Fix bug when computing limits for max_bt_uploaders
17
+6713: GeoIP: New web_infos URL for country list (thx to Choby)
18
+- old URLs are updated to:
19
+ http://www.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
20
+
21
+2008/12/13
22
+6689: Allow compilation with Ocaml 3.11.0
23
+
24
+2008/09/01
25
+6629: Mail: Move hostname from subject to body (eydaimon)
26
+Updated Mozilla protocol handler to version 2.5
27
+- original source from http://www.informatik.uni-oldenburg.de/~dyna/mldonkey
28
+6628: IP discover: Use http://whatismyip.org, old URL is not working anymore
29
+-------------------------------------------------------------------------------
30
+2008/08/04: version 2.9.6 = tag release-2-9-6
31
+6599: Allow values lower than max_upload_slots for BT-max_bt_uploaders
32
+
33
+2008/07/29
34
+6593: CryptoPP performance fix for ARM (Marc Pignat)
35
+6592: HTML: Fix invalid html respond when login is invalid
36
+
37
+2008/07/17
38
+6571: Runinfo: Include DirectConnect in list of enabled nets
39
+
40
+2008/07/02
41
+6558: Fix text relocation warnings on hardened distributions (Davide Pesavento)
42
+6557: BT: Send correct downloaded value when download is stopped to tracker
43
+ (Fox Mulder)
44
+-------------------------------------------------------------------------------
45
+2008/05/02: version 2.9.5 = tag release-2-9-5
46
+6503: Remove release status when download is finished
47
+
48
+2008/03/31
49
+6465: BT: Send correct downloaded value when download starts to tracker
50
+ (colchaodemola)
51
+6477: Use $MLDONKEY_DIR/mlnet_tmp instead of /tmp
52
+- This patch fixes problems with hash checking of multifile BT
53
+ downloads when /tmp is too small.
54
+- To override $MLDONKEY_DIR/mlnet_tmp use variable $MLDONKEY_TEMP.
55
+ This patch has nothing to do with option temp_directory.
56
+6472: Multiuser: Count only files in download queue for user/group statistics
57
+6471: Clean logfile
58
+6470: BT: Use default of max_upload_slots as minimum for BT-max_bt_uploaders
59
+ instead of hard-coded value
60
+
61
+2008/03/18
62
+6466: Fix option_hook loop when changing max_upload_slots < 3,
63
+ caused by patch #6451
64
+
65
+2008/03/14
66
+6462: Multiuser: Restrict chown to admin users only
67
+
68
+2008/03/11
69
+6458: Fix commit bug when filesystem reports negative values
70
+ for maximum filename length
71
+
72
+2008/03/07
73
+6451: BT: Implement minimum of 3 (like max_upload_slots)
74
+ for option max_bt_uploaders
75
+-------------------------------------------------------------------------------
76
+2008/03/02: version 2.9.4 = tag release-2-9-4
77
+6440: GTK2 GUI: Compile with lablgtk-2.10.1 by default
78
+- lablgtk-2.10.0 does not compile with Ocaml 3.10.2
79
+
80
+2008/02/29
81
+6439: Configure: Make Ocaml 3.10.2 the default compiler
82
+
83
+2008/02/06
84
+6407: New options run_as_group/run_as_groupgid
85
+- works the same way as options run_as_user/run_as_useruid
86
+- display system user:group running MLDonkey core in runinfo
87
+6406: Mail: Fix bug in rfc2047 encoding
88
+
89
+2008/02/05
90
+6404: New option release_new_downloads
91
+- set to true to activate release slot feature for all newly started downloads
92
+
93
+2008/02/04
94
+6080: HTTP interface: new command/button "logout" (Schlumpf)
95
+6077: bw_toggle: support new option "max_opened_connections_2" (Schlumpf)
96
+6401: Swarmer: Correctly update file_downloaded during recover_temp (pango)
97
+6400: EDK: Correctly update filename after recover_temp
98
+6396: Log: Print user:group when starting a download
99
+6395: Makefile: Do not strip shared linked binaries on Mac OS X, clean Makefile
100
+
101
+2008/01/24
102
+6381: Multiuser: Block commands "shares" and "share" for non-admin users
103
+-------------------------------------------------------------------------------
104
+2008/01/16: version 2.9.3 = tag release-2-9-3
105
+6379: bwstats: Show downloaded bytes (pango)
106
+
107
+2008/01/16
108
+6377: Configure: Make Ocaml 3.10.1 the default compiler
109
+- Ocaml 3.10.1 fixes crashes in MLDonkeys eDonkey module when compiled with
110
+ Ocaml 3.10.0 on 64bit systems
111
+
112
+2008/01/15
113
+6373: Swarmer: Ignore received data when file is queued
114
+
115
+2008/01/08
116
+6367: FileTP: Fix bug when starting downloads > 4GB via dllink
117
+
118
+2008/01/07
119
+6364: MinGW: Fix broken share priorities (thx to vbnuy6)
120
+6365: HTML: Use option max_name_len in upstats for unhashed files
121
+
122
+2008/01/04
123
+6362: Small Geoip updates
124
+- new countries + flags: Saint Barthelemy, Saint Martin
125
+- updates flags: Georgia, Democratic Republic of the Congo, Western Sahara, Lesotho
126
+
127
+2008/01/02
128
+6361: GUI: Send console messages to admin users after unsharing a file
129
+6349: DirectConnect: Correctly report total shared filesize to server (LuCasn)
130
+6360: BT: New command print_torrent <file_num>,
131
+ new link in HTML, upstats to display .torrent details
132
+
133
+2007/12/19
134
+6351: Allow compilation with upcoming Ocaml 3.10.1
135
+
136
+2007/12/17
137
+6342: HTML: fix broken vm output in Opera (schlumpf)
138
+6346: Environment variables for file_started_cmd (see option help text)
139
+
140
+2007/12/13
141
+6343: gcc-4.3 compile fix for CryptoPP (brian m. carlson)
142
+
143
+2007/12/09
144
+6337: Fix inequality test for option html_mods_theme (pango)
145
+
146
+2007/11/03
147
+6255: Fix compile warnings for GTK2 GUI and DC++ (pango)
148
+-------------------------------------------------------------------------------
149
+2007/10/20: version 2.9.2 = tag release-2-9-2
150
+6242: Allow deactivation of [telnet|gui|gift]_port by setting it to 0
151
+
152
+2007/10/17
153
+6240: GTK1 oldgui: Hide password in server settings
154
+6239: Update GNU config.guess and config.sub to version 2007/07
155
+Updated Mozilla protocol handler to version 2.2
156
+- original source from http://www.informatik.uni-oldenburg.de/~dyna/mldonkey
157
+6238: Fix statvfs code on alpha platform (Alexander Kotelnikov)
158
+6237: EDK: Load server.met files from archives even if unpack fails
159
+- http://www.gruk.org/server.met.gz is not a gz archive at the moment...
160
+
161
+2007/10/10
162
+6231: Swarming: Propagate chunks of finished file before commit (pango)
163
+ to other downloading files
164
+
165
+2007/10/04
166
+6223: GTK2 GUI: Compile with lablgtk-2.10.0 by default
167
+- this patch changes the lablgtk2 version used by ./configure
168
+- self-compiled lablgtk-2.10.0 must be patched with patches/lablgtk-2.10.0.patch
169
+
170
+2007/09/30
171
+6221: Configure: Remove unneeded checks
172
+6220: GTK2 GUI: Fix compile bug due to changed API in lablgtk-2.10.0
173
+- GTK2 GUI still compiles with older versions of lablgtk2
174
+
175
+2007/09/13
176
+6197: Options backup: Better log messages, remove useless exception
177
+-------------------------------------------------------------------------------
178
+2007/09/09: version 2.9.1 = tag release-2-9-1
179
+6192: EDK: Use discovered client_ip when lowid
180
+
181
+2007/09/05
182
+6187: BT: Fix wrong file order of multifile torrents due to patch #6174
183
+
184
+2007/09/01
185
+6179: BT: Send correct downloaded amount to tracker when download completed
186
+6174: BT: Encode non-UTF8 filenames using "encoding" or "codepage" data
187
+ from .torrent if present
188
+
189
+2007/08/31
190
+6175: Yet another patch for share_scan_interval
191
+- new default 30 minutes for newly created ini files
192
+- still use 0 to disable
193
+- hard-coded global minimum of 5 minutes, this updates old default 1 to 5
194
+- automated options update, if update is needed (options_version <= 19) and
195
+ share_scan_interval = 5 (because of new hard-coded minimum, which is
196
+ processed earlier) its changed to new default of 30
197
+6145: EDK: Update options description of max_connected_servers (Schlumpf)
198
+6172: EDK: properly advertise and honour noviewshared tag (TripleM)
199
+
200
+2007/08/23
201
+6160: BT: Another fix for share_scan_interval
202
+- Old hard-coded default was 300s, now with share_scan_interval its
203
+ possible to use a minimum of 60s which produces high CPU load.
204
+ This patch implements a minimum of 300s for the BT share_files timer.
205
+
206
+2007/08/04
207
+6128: New default for option messages_filter (unease)
208
+6132: HTML: Fix group display in vd <num> for admin users
209
+ view of other users files
210
+6130: Change API for network_parse_url, support user group
211
+6127: HTML: Display file_chunk_sizes/file_piece_size in vd <num>
212
+6135: BT: Fix high CPU load when share_scan_interval = 0
213
+ due to buggy patch #6049 (thx to darkman)
214
+-------------------------------------------------------------------------------
215
+2007/07/27: version 2.9.0 = tag release-2-9-0
216
+6118: Configure: Update defaults
217
+- enable DirectConnect by default
218
+- disable Gnutella & Gnutella2 by default
219
+ - MLDonkey does not support UDP host cache and contains
220
+ non-working GWebCache URLs
221
+ - Gnutella/G2 code has not been updated for several years,
222
+ its officially unmaintained for now
223
+ - remove non-existing GWebCache URLs
224
+
225
+2007/07/25
226
+6087: Fix logging of verbosity "bw", remove obsolete options
227
+6085: BT: Improve UTF8 support
228
+- parse field "encoding"
229
+- use field "name.utf8" instead of "name", if available
230
+
231
+2007/07/10
232
+5996: BT: Recognize more client types (orbit)
233
+6065: DirectConnect: Support dc++ hublist in web_infos
234
+6063: BT: Better detect single-file torrents
235
+
236
+2007/07/03
237
+6068: BT: Fix download start when torrents/downloads filesystem
238
+ allows more than 16M chars
239
+
240
+2007/07/01
241
+6064: BT: Earlier first scan of torrents/incoming/*
242
+6053: HTML: Send correct filename when previewing (chandlerding)
243
+6061: Options: New type port_option, values are bound to be >= 0 and <= 65535
244
+6060: Do not send mail notifications when smtp_server = ""
245
+6059: Multiuser: Avoid double group entries in user_groups
246
+6056: Log username, IP:port and old/new value when changing options
247
+
248
+2007/06/30
249
+6049: BT: Support user_commit_dir when seeding,
250
+ reshare every share_scan_interval minutes
251
+
252
+2007/06/26
253
+Move docs/multiuser.txt to distrib/multiuser.txt
254
+6048: Make Ocaml 3.10.0 the default compiler
255
+- MLDonkey can still be compiled with Ocaml 3.08.3/4 & 3.09.*
256
+- if you need GTK1 oldgui you must use Ocaml < 3.10.0 to compile
257
+
258
+2007/06/24
259
+6044: BT: Limit max_bt_uploaders to max_upload_slots (pango)
260
+6043: Discover WAN IP
261
+- new command "discover_ip" to force discovery
262
+- new option "discover_ip" to enable automatic discovery on startup
263
+ and after SIGHUP, default true
264
+- this patch is important for BT-only usage, without this patch the
265
+ WAN IP was discovered only by using EDK server replies
266
+6034: Load $MLDONKEY/web_infos/* before activating network modules
267
+- this fixes a security hole when networks started connecting
268
+ before IP blocklist was loaded
269
+6025: Extend command "links" to optionally display all downloading files
270
+- "links" displays all files, not only shared ones like before
271
+- "links shared" lists only shared files
272
+- "links downloading" lists only downloading files
273
+
274
+2007/06/18
275
+6024: Multiuser: New parameters for command useradd:
276
+ user_mail + user_max_concurrent_downloads
277
+
278
+2007/06/17
279
+6021: Remove leftovers from optional zlib support,
280
+ replace Autoconf.zlib__* with Zlib.* functions
281
+6005: Swarmer: Implement new download mechanism
282
+- its now possible to switch the order blocks are downloaded from random
283
+ (first and last block first, default) to linear
284
+- new command: download_order <file number> <random|linear>
285
+6017: Multiuser: New optional parameters group/commit_dir for command useradd
286
+6020: Multiuser: Fix handling of user "admin", its user_commit_dir was not
287
+ used when MLDonkey was not restarted between download start and commit
288
+6019: BT: Disable user_commit_dir for multifile torrents to fix seeding
289
+6011: BT: Send no_peer_id to trackers to save some bandwidth (berni)
290
+6010: Update syslog.ml to version 1.4
291
+5995: EDK: Better handle permission denied errors for shared/downloading files
292
+5992: BT/IP block: Fix country-based IP blocking
293
-------------------------------------------------------------------------------
294
2007/06/03: version 2.8.7 = tag release-2-8-7
295
5988: BT: Completely parse handshake packet of newer BT clients (thx to Berni)
296
mldonkey-3.1.2.tar.bz2/src/daemon/common/commonGlobals.ml -> mldonkey-3.1.3.tar.bz2/src/daemon/common/commonGlobals.ml
Changed
10
1
2
if !verbose then lprintf_nl "started IP discovery";
3
let module H = Http_client in
4
let r = { H.basic_request with
5
- H.req_url = Url.of_string "http://whatismyip.org/";
6
+ H.req_url = Url.of_string "http://automation.whatismyip.com/n09230945.asp";
7
H.req_proxy = !CommonOptions.http_proxy;
8
H.req_max_retry = 10;
9
H.req_user_agent = get_user_agent () }
10
mldonkey-3.1.2.tar.bz2/src/daemon/common/commonInteractive.ml -> mldonkey-3.1.3.tar.bz2/src/daemon/common/commonInteractive.ml
Changed
14
1
2
Charset.add_uchar buf uc'
3
end
4
done;
5
- if not Autoconf.windows then
6
+ if not Autoconf.windows && not !!filenames_utf8 then
7
Charset.Locale.to_locale (Buffer.contents buf)
8
else
9
- Buffer.contents buf (* Windows uses patched Ocaml which always uses Unicode chars *)
10
+ Buffer.contents buf (* Windows uses patched OCaml which always uses Unicode chars *)
11
12
let last_sent_dir_warning = Hashtbl.create 10
13
14
mldonkey-3.1.2.tar.bz2/src/daemon/common/commonMessages.ml -> mldonkey-3.1.3.tar.bz2/src/daemon/common/commonMessages.ml
Changed
26
1
2
onMouseOver=\"mOvr(this,'mOvr1');\" onMouseOut=\"mOut(this);\"
3
onclick=\"dllink();\">" ^ _s
4
"DL" ^ "</TD></TR></TBODY></TABLE></TD>
5
-<TD noWrap width=100% title=\\\" " ^ _s "Input mldonkey commands here" ^ " \\\">
6
+<TD noWrap width=\"100%\" title=\" " ^ _s "Input mldonkey commands here" ^ " \">
7
<TABLE cellSpacing=0 cellpadding=0 width=\"100%\"><TBODY><TR>
8
<TD style=\"height: 1%; padding: 0px; border: 0px; padding-left: 5px;\" title=\" " ^ _s "Input mldonkey command here" ^ " \">
9
-<INPUT class=\"txt2\" style=\"WIDTH: 99%;\" name=q><body onload=\"document.cmdFormular.q.focus();\">
10
+<INPUT class=\"txt2\" style=\"WIDTH: 99%;\" name=q>
11
</TD></TR></TBODY></TABLE></TD><TD noWrap>
12
<TABLE class=commands cellSpacing=0 cellPadding=0 width=\"100%\"><TBODY><TR>
13
<TD class=\"bu bbigm\" style=\"padding-top: 0px; padding-bottom: 0px;\" title=\" " ^ _s "Input Command" ^ " \">
14
15
</TR></TABLE>
16
<!-- End Main Table -->
17
18
+<!-- set focus -->
19
+<script type=\"text/javascript\">
20
+document.forms['cmdFormular'].elements['q'].focus();
21
+</script>
22
+
23
<DIV ID=\"tab1\" style=\"display: none\">
24
<TABLE class=commands cellSpacing=0 cellPadding=0 width=\"100%\">
25
<TBODY><TR>
26
mldonkey-3.1.2.tar.bz2/src/daemon/common/commonOptions.ml -> mldonkey-3.1.3.tar.bz2/src/daemon/common/commonOptions.ml
Changed
13
1
2
"Name of GUI to start"
3
string_option (Filename.concat bin_dir "mlgui")
4
5
-
6
-
7
+let filenames_utf8 = define_option current_section ["filenames_utf8"]
8
+ "Use UTF-8 for filenames (instead of automatic locale detection)."
9
+ bool_option false
10
11
(*************************************************************************)
12
(* *)
13
mldonkey-3.1.2.tar.bz2/src/daemon/common/commonTypes.ml -> mldonkey-3.1.3.tar.bz2/src/daemon/common/commonTypes.ml
Changed
44
1
2
| "ttr" -> TigerTree (TigerTree.of_string rem)
3
| "md5" -> Md5 (Md5.of_string rem)
4
| "sig2dat" -> Md5Ext (Md5Ext.of_base32 rem)
5
- | "bt" | "bittorrent" | "btih" ->
6
- BTUrl (Sha1.of_string rem)
7
+ | "bt" | "btih" ->
8
+ (* accept both base32 (32 chars) and base16 (40 chars) *)
9
+ BTUrl (if String.length rem = 40 then Sha1.of_hexa rem else Sha1.of_string rem)
10
| "filetp" -> FileTP (Md4.of_string rem)
11
| _ -> raise (Illegal_urn (s ^ " at " ^ sign ^ " is not known"))
12
13
14
let uids = ref [] in
15
let name = ref "" in
16
let size = ref None in
17
+ let trackers = ref [] in
18
let each k v =
19
match String2.split k '.' with
20
| "xt"::_ -> uids := Uid.of_string v :: !uids
21
22
| "xs"::_ -> () (* eXtra source *)
23
| "mt"::_ -> () (* manifest topic: url or urn, see http://rakjar.de/gnuticles/MAGMA-Specsv22.txt *)
24
| "kt"::_ -> () (* keywords topic *)
25
- | "tr"::_ -> () (* BT tracker *)
26
+ | "tr"::_ -> trackers := Url.decode v :: !trackers
27
| "x"::_ -> () (* extensions *)
28
(*
29
| _ when v = "" ->
30
31
try each k v
32
with exn -> lprintf_nl "MAGNET: field %S=%S, exn %s" k v (Printexc2.to_string exn)
33
) url.Url.args;
34
- object method name = !name method size = !size method uids = List.map Uid.to_uid (Uid.expand !uids) end
35
+ object
36
+ method name = !name
37
+ method size = !size
38
+ method uids = List.map Uid.to_uid (Uid.expand !uids)
39
+ method trackers = !trackers
40
+ end
41
else
42
raise Not_found
43
44
mldonkey-3.1.2.tar.bz2/src/daemon/driver/driverCommands.ml -> mldonkey-3.1.3.tar.bz2/src/daemon/driver/driverCommands.ml
Changed
45
1
2
[
3
strings_of_option previewer;
4
strings_of_option temp_directory;
5
+ strings_of_option filenames_utf8;
6
strings_of_option share_scan_interval;
7
strings_of_option hdd_temp_minfree;
8
strings_of_option hdd_temp_stop_core;
9
10
), "<num> :\t\t\tverify chunks of file <num>";
11
12
"pause", Arg_multiple (fun args o ->
13
- if args = ["all"] && user2_is_admin o.conn_user.ui_user then
14
- List.iter (fun file ->
15
- file_pause file (admin_user ())
16
- ) !!files
17
- else
18
- List.iter (fun num ->
19
- let num = int_of_string num in
20
- List.iter (fun file ->
21
- if (as_file_impl file).impl_file_num = num then
22
- file_pause file o.conn_user.ui_user
23
- ) !!files) args; ""
24
- ), "<num|all> :\t\t\tpause a download (use arg 'all' for all files)";
25
+ let filter =
26
+ match args with (* TODO richer condition language *)
27
+ | ["where";"priority";(">"|"<" as op);n] ->
28
+ let n = int_of_string n in
29
+ let op = if op = ">" then (>) else (<) in
30
+ (fun file -> op (file_priority file) n)
31
+ | ["all"] -> (fun _ -> true)
32
+ | l ->
33
+ let l = List.map int_of_string l in
34
+ (fun file -> List.mem (file_num file) l)
35
+ in
36
+ List.iter begin fun file ->
37
+ if filter file then
38
+ file_pause file o.conn_user.ui_user
39
+ end !!files;
40
+ ""
41
+ ), "<num|all|where priority < prio> :\t\t\tpause a download (use arg 'all' for all files)";
42
43
resume_alias "resume";
44
resume_alias "unpause";
45
mldonkey-3.1.2.tar.bz2/src/daemon/driver/driverControlers.ml -> mldonkey-3.1.3.tar.bz2/src/daemon/driver/driverControlers.ml
Changed
43
1
2
let user = if r.options.login = "" then (admin_user ()).CommonTypes.user_name else r.options.login in
3
if not (valid_password user r.options.passwd) || (r.get_url.Url.short_file = "logout") then begin
4
clear_page buf;
5
- http_file_type := TXT;
6
- let _, error_text_long, header = Http_server.error_page "401" "" ""
7
+ http_file_type := HTM;
8
+ let _, error_text_long, head = Http_server.error_page "401" "" ""
9
(Ip.to_string (TcpBufferedSocket.my_ip r.sock))
10
(string_of_int !!http_port) None in
11
Buffer.add_string buf error_text_long;
12
- r.reply_head <- header;
13
- r.reply_headers <- [
14
- "Connection", "close";
15
- "WWW-Authenticate", Printf.sprintf "Basic realm=\"%s\"" !!http_realm]
16
+ r.reply_head <- head;
17
+ http_add_html_header r;
18
+ add_reply_header r "WWW-Authenticate" (Printf.sprintf "Basic realm=\"%s\"" !!http_realm);
19
end
20
else
21
begin
22
23
| s -> http_send_bin_pictures r buf (String.lowercase s)
24
with
25
| Not_found ->
26
- let _, error_text_long, header = Http_server.error_page "404" "" ""
27
+ let _, error_text_long, head = Http_server.error_page "404" "" ""
28
(Ip.to_string (TcpBufferedSocket.my_ip r.sock))
29
(string_of_int !!http_port)
30
(Some (Url_not_found r.get_url.Url.full_file)) in
31
- r.reply_head <- header;
32
+ r.reply_head <- head;
33
+ http_add_html_header r;
34
Buffer.add_string buf error_text_long
35
| e ->
36
- Printf.bprintf buf "\nException %s\n" (Printexc2.to_string e);
37
+ http_add_text_header r TEXTS;
38
+ Printf.bprintf buf "%sException %s\n"
39
+ (if Buffer.length buf = 0 then "" else "\n") (Printexc2.to_string e);
40
r.reply_stream <- None
41
end;
42
43
mldonkey-3.1.2.tar.bz2/src/daemon/driver/driverInteractive.ml -> mldonkey-3.1.3.tar.bz2/src/daemon/driver/driverInteractive.ml
Changed
10
1
2
);
3
tack list
4
(
5
- "Ocaml version:\t",
6
+ "OCaml version:\t",
7
Sys.ocaml_version ^
8
" - C compiler version: " ^ Autoconf.cc_version ^
9
(if Autoconf.cxx_version <> "" then
10
mldonkey-3.1.2.tar.bz2/src/gtk/gui/gui_keys.ml -> mldonkey-3.1.3.tar.bz2/src/gtk/gui/gui_keys.ml
Changed
9
1
2
(***********************************************************************)
3
(* *)
4
-(* xlib for Ocaml *)
5
+(* xlib for OCaml *)
6
(* *)
7
(* Fabrice Le Fessant, projet Para/SOR, INRIA Rocquencourt *)
8
(* *)
9
mldonkey-3.1.2.tar.bz2/src/gtk/newgui/gui_keys.ml -> mldonkey-3.1.3.tar.bz2/src/gtk/newgui/gui_keys.ml
Changed
9
1
2
(***********************************************************************)
3
(* *)
4
-(* xlib for Ocaml *)
5
+(* xlib for OCaml *)
6
(* *)
7
(* Fabrice Le Fessant, projet Para/SOR, INRIA Rocquencourt *)
8
(* *)
9
mldonkey-3.1.2.tar.bz2/src/networks/bittorrent/bTClients.ml -> mldonkey-3.1.3.tar.bz2/src/networks/bittorrent/bTClients.ml
Changed
263
1
2
let reserved () =
3
let s = String.make 8 '\x00' in
4
s.[7] <- (match !bt_dht with None -> '\x00' | Some _ -> '\x01');
5
+ s.[5] <- '\x10'; (* TODO bep9, bep10, notify clients about extended*)
6
s
7
8
(** handshake *)
9
10
*)
11
12
let send_bitfield c =
13
+ if not c.client_file.file_metadata_downloading then
14
send_client c (BitField
15
(
16
match c.client_file.file_swarmer with
17
18
19
c.client_azureus_messaging_protocol <- has_bit 0 0x80
20
21
+let send_extended_handshake c file =
22
+ let module B = Bencode in
23
+ let msg = (B.encode (B.Dictionary [(* "e",B.Int 0L; *)
24
+ "m", (B.Dictionary ["ut_metadata", B.Int 1L]);
25
+ (* "metadata_size", B.Int (-1L) *)])) in begin
26
+ send_client c (Extended (Int64.to_int 0L, msg));
27
+ end
28
+
29
+let send_extended_piece_request c piece file =
30
+ let module B = Bencode in
31
+ let msg = (B.encode (B.Dictionary ["msg_type", B.Int 0L; (* 0 is request subtype*)
32
+ "piece", B.Int piece; ])) in begin
33
+ send_client c (Extended (Int64.to_int c.client_ut_metadata_msg, msg));
34
+ end
35
+
36
let show_client c =
37
let (ip,port) = c.client_host in
38
Printf.sprintf "%s:%d %S" (Ip.to_string ip) port (brand_to_string c.client_brand)
39
40
begin
41
c.client_incoming <- true;
42
send_init !!client_uid file_id sock;
43
+ send_extended_handshake c file;
44
end;
45
connection_ok c.client_connection_control;
46
if !verbose_msg_clients then
47
48
(int_of_float timeout)
49
(int_of_float next)
50
(TcpMessages.to_string msg);
51
- end;
52
+ end;
53
54
let file = c.client_file in
55
56
57
58
| BitField p ->
59
(*A bitfield is a summary of what a client have*)
60
+ if !verbose_msg_clients then
61
+ lprintf_file_nl (as_file file) "Bitfield message, metadata state %B" c.client_file.file_metadata_downloading;
62
+ if not c.client_file.file_metadata_downloading then
63
begin
64
match c.client_file.file_swarmer with
65
None -> ()
66
| Some swarmer ->
67
c.client_new_chunks <- [];
68
-
69
+
70
let npieces = CommonSwarming.partition_size swarmer in
71
let nbits = String.length p * 8 in
72
73
74
75
| Have n ->
76
(* A client can send a "Have" without sending a Bitfield *)
77
+ if not c.client_file.file_metadata_downloading then
78
begin
79
match c.client_file.file_swarmer with
80
None -> ()
81
82
if !verbose_msg_clients then
83
lprintf_file_nl (as_file file) "Error: received cancel request but client has no slot"
84
85
+ | Extended (extmsg, payload) ->
86
+ (* extmsg: 0 handshake, N other message previously declared in handshake.
87
+ atm ignore extended messages if were not currently in metadata state.
88
+ TODO when were not in metadata state we should be friendly and answer metadata requests
89
+ *)
90
+ let module B = Bencode in
91
+ if file.file_metadata_downloading then begin
92
+ (* since we got at least one extended handshake from the peer, it should be okay to
93
+ send a handshake back now. we need to send it so the remote client knows how
94
+ to send us messages back.
95
+ this should of course be moved but I dont know where yet.
96
+ also we shouldnt send more than one handshake of course...
97
+ *)
98
+ if !verbose_msg_clients then
99
+ lprintf_file_nl (as_file file) "Got extended msg: %d %s" extmsg (String.escaped payload);
100
+
101
+ match extmsg with
102
+ 0x0 ->
103
+ if !verbose_msg_clients then
104
+ lprintf_file_nl (as_file file) "Got extended handshake";
105
+ let dict = Bencode.decode payload in begin
106
+ match dict with
107
+ B.Dictionary list ->
108
+ List.iter (fun (key,value) ->
109
+ match key, value with
110
+ | "metadata_size", B.Int n ->
111
+ if !verbose_msg_clients then
112
+ lprintf_file_nl (as_file file) "Got metadata size %Ld" n;
113
+ c.client_file.file_metadata_size <- n;
114
+ | "m", B.Dictionary mdict ->
115
+ if !verbose_msg_clients then
116
+ lprintf_file_nl (as_file file) "Got meta dict";
117
+ List.iter (fun (key,value) ->
118
+ match key, value with
119
+ "ut_metadata", B.Int n ->
120
+ if !verbose_msg_clients then
121
+ lprintf_file_nl (as_file file) "ut_metadata is %Ld " n;
122
+ c.client_ut_metadata_msg <- n;
123
+ | _ -> ();
124
+ ) mdict;
125
+
126
+ | _ -> () ;
127
+ ) list;
128
+ (* okay so now we know what to ask for, so ask for metadata now
129
+ since metadata can be larger than 16k which is the limit, the transfer needs to be chunked, so
130
+ it is not really right to make the query here. but its a start.
131
+ also im just asking for piece 0.
132
+ (we should also check that we actually got the metadata info before proceeding)
133
+ *)
134
+ send_extended_handshake c file;
135
+ send_extended_piece_request c c.client_file.file_metadata_piece file;
136
+ |_ -> () ;
137
+ end;
138
+ | 0x01 -> (* ut_metadata is 1 because we asked it to be 1 in the handshake
139
+ the msg_type is probably
140
+ 1 for data,
141
+ but could be 0 for request(unlikely since we didnt advertise we had the meta)
142
+ 2 for reject, also unlikely since peers shouldnt advertise if they dont have(but will need handling in the end)
143
+
144
+ {'msg_type': 1, 'piece': 0, 'total_size': 3425}
145
+ after the dict comes the actual piece
146
+ *)
147
+ if !verbose_msg_clients then
148
+ lprintf_file_nl (as_file file) "Got extended ut_metadata message";
149
+ let msgtype = ref 0L in begin
150
+ begin
151
+ match B.decode payload with
152
+ B.Dictionary list ->
153
+ List.iter (fun (key,value) ->
154
+ match key, value with
155
+ "msg_type", B.Int n ->
156
+ if !verbose_msg_clients then
157
+ lprintf_file_nl (as_file file) "msg_type %Ld" n;
158
+ msgtype := n;
159
+ | "piece", B.Int n ->
160
+ if !verbose_msg_clients then
161
+ lprintf_file_nl (as_file file) "piece %Ld" n;
162
+ file.file_metadata_piece <- n;
163
+ | "total_size", B.Int n ->
164
+ if !verbose_msg_clients then
165
+ lprintf_file_nl (as_file file) "total_size %Ld" n; (* should always be the same as received in the initial handshake i suppose *)
166
+ |_ -> () ;
167
+ ) list;
168
+ |_ -> () ;
169
+ end;
170
+ match !msgtype with
171
+ 1L ->
172
+ let last_piece_index = (Int64.div file.file_metadata_size 16384L) in
173
+ if !verbose_msg_clients then
174
+ lprintf_file_nl (as_file file) "handling metadata piece %Ld of %Ld"
175
+ file.file_metadata_piece
176
+ last_piece_index;
177
+ (* store the metadata piece in memory *)
178
+ file.file_metadata_chunks.(1 + (Int64.to_int file.file_metadata_piece)) <- payload;
179
+ (* possibly write metadata to disk *)
180
+ if file.file_metadata_piece >=
181
+ (Int64.div file.file_metadata_size 16384L) then begin
182
+ if !verbose_msg_clients then
183
+ lprintf_file_nl (as_file file) "this was the last piece";
184
+ (* here we should simply delete the current download, and wait for mld to pick up the new torrent file *)
185
+ (* the entire payload is currently in the array, TODO *)
186
+ let newtorrentfile = (Printf.sprintf "%s/BT-%s.torrent"
187
+ (Filename2.temp_dir_name ())
188
+ (Sha1.to_string file.file_id)) in
189
+ let fd = Unix32.create_rw newtorrentfile in
190
+ let fileindex = ref 0L in
191
+ begin
192
+ (* the ee is so we can use the same method to find the
193
+ start of the payload for the real payloads as well as the synthetic ones
194
+ *)
195
+ file.file_metadata_chunks.(0) <- "eed4:info";
196
+ file.file_metadata_chunks.(2 + Int64.to_int last_piece_index) <- "eee";
197
+ try
198
+ Array.iteri (fun index chunk ->
199
+ (* regexp ee is a fugly way to find the end of the 1st dict before the real payload *)
200
+ let metaindex = (2 + (Str.search_forward (Str.regexp_string "ee") chunk 0 )) in
201
+ let chunklength = ((String.length chunk) - metaindex) in
202
+ Unix32.write fd !fileindex chunk
203
+ metaindex
204
+ chunklength;
205
+ fileindex := Int64.add !fileindex (Int64.of_int chunklength);
206
+ ();
207
+ ) file.file_metadata_chunks;
208
+ with e -> begin
209
+ (* TODO ignoring errors for now, the array isnt really set up right anyway yet *)
210
+ (*
211
+ lprintf_file_nl (as_file file) "Error %s saving metadata"
212
+ (Printexc2.to_string e)
213
+ *) ()
214
+ end;
215
+ (* Yay, now the new torrent is on disk! amazing! However, now we need to kill the dummy torrent
216
+ and restart it with the fresh real torrent *)
217
+
218
+ (* it seems we need to use the dynamic interface... *)
219
+ if !verbose then
220
+ lprintf_file_nl (as_file file) "cancelling metadata download ";
221
+ let owner = file.file_file.impl_file_owner in
222
+ let group = file.file_file.impl_file_group in begin
223
+ CommonInteractive.file_cancel (as_file file) owner ;
224
+ (* hack_op_file_cancel c.client_file; *)
225
+ if !verbose then
226
+ lprintf_file_nl (as_file file) "starting download from metadata torrent %s" newtorrentfile ;
227
+ ignore(CommonNetwork.network_parse_url BTGlobals.network newtorrentfile owner group);
228
+ end;
229
+ (try Sys.remove newtorrentfile with _ -> ())
230
+ end;
231
+
232
+ end
233
+ else begin
234
+ (* now ask for the next metadata piece, if any *)
235
+ let nextpiece = (Int64.succ file.file_metadata_piece) in begin
236
+ if !verbose_msg_clients then
237
+ lprintf_file_nl (as_file file) "asking for the next piece %Ld" nextpiece;
238
+ send_extended_piece_request c nextpiece file;
239
+ end;
240
+ end;
241
+ |_ ->
242
+ if !verbose_msg_clients then
243
+ lprintf_file_nl (as_file file) "unmatched extended subtype" ;
244
+ end;
245
+
246
+ | _ ->
247
+ if !verbose_msg_clients then
248
+ lprintf_file_nl (as_file file) "Got extended other msg ";
249
+ end;
250
+
251
| DHT_Port port ->
252
match !bt_dht with
253
| None ->
254
255
lprintf_file_nl (as_file file) "READY TO DOWNLOAD FILE";
256
257
send_init !!client_uid file.file_id sock;
258
+ send_extended_handshake c file;
259
+
260
(* Fabrice: Initialize the client bitmap and uploader fields to <> None *)
261
update_client_bitmap c;
262
(* (try get_from_client sock c with _ -> ());*)
263
mldonkey-3.1.2.tar.bz2/src/networks/bittorrent/bTGlobals.ml -> mldonkey-3.1.3.tar.bz2/src/networks/bittorrent/bTGlobals.ml
Changed
42
1
2
file.file_trackers <- t :: file.file_trackers)
3
file_trackers
4
5
-let new_file file_id t torrent_diskname file_temp file_state user group =
6
+let new_file ?(metadata=false) file_id t torrent_diskname file_temp file_state user group =
7
try
8
Hashtbl.find files_by_uid file_id
9
with Not_found ->
10
11
file_session_uploaded = Int64.zero;
12
file_session_downloaded = Int64.zero;
13
file_last_dht_announce = 0;
14
+ file_metadata_size = 0L;
15
+ file_metadata_piece = 0L;
16
+ file_metadata_downloading = metadata;
17
+ file_metadata_chunks = Array.make 20 "";
18
file_private = t.torrent_private;
19
} and file_impl = {
20
(dummy_file_impl ()) with
21
22
must_share_file file;
23
file
24
25
-let new_download file_id t torrent_diskname user =
26
+let new_download ?(metadata=false) file_id t torrent_diskname user =
27
let file_temp = Filename.concat !!DO.temp_directory
28
(Printf.sprintf "BT-%s" (Sha1.to_string file_id)) in
29
- new_file file_id t torrent_diskname file_temp FileDownloading user
30
+ new_file ~metadata file_id t torrent_diskname file_temp FileDownloading user
31
32
let ft_by_num = Hashtbl.create 13
33
let ft_counter = ref 0
34
35
client_cache_extension = false;
36
client_fast_extension = false;
37
client_utorrent_extension = false;
38
+ client_ut_metadata_msg = -1L;
39
client_azureus_messaging_protocol = false;
40
} and impl = {
41
dummy_client_impl with
42
mldonkey-3.1.2.tar.bz2/src/networks/bittorrent/bTInteractive.ml -> mldonkey-3.1.3.tar.bz2/src/networks/bittorrent/bTInteractive.ml
Changed
74
1
2
if !bt_dht <> None then
3
emit (_s"Last DHT announce") ~desc:(_s"Last time this torrent was announced in DHT")
4
(string_of_date file.file_last_dht_announce);
5
+ emit (_s"Metadata downloading") (if file.file_metadata_downloading then _s "yes" else _s "no");
6
7
let rec print_first_tracker l =
8
match l with
9
10
List.iter (fun file ->
11
(* if !verbose_share then lprintf_nl "Checking torrent share for %s" file.file_torrent_diskname; *)
12
if not (Sys.file_exists file.file_torrent_diskname) &&
13
- file_state file = FileShared then
14
+ file_state file = FileShared &&
15
+ not (file.file_metadata_downloading) then
16
begin
17
if !verbose_share then lprintf_nl "Removing torrent share for %s" file.file_torrent_diskname;
18
BTClients.file_stop file;
19
20
String.sub text a (b - a)
21
22
let op_network_parse_url url user group =
23
+ let exn_catch f x = try `Ok (f x) with exn -> `Exn exn in
24
+ match exn_catch parse_magnet_url url with
25
+ | `Ok magnet ->
26
+ (
27
+ if !verbose then begin
28
+ lprintf_nl "Got magnet url %S" url;
29
+ List.iter (fun(v) -> lprintf_nl "magnet %s" (string_of_uid v)) magnet#uids;
30
+ List.iter (fun(v) -> lprintf_nl "magnet trackers %s" v) magnet#trackers;
31
+ end;
32
+ match List2.filter_map (function BTUrl btih -> Some btih | _ -> None) magnet#uids with
33
+ | [] -> "No btih found in magnet url", false;
34
+ | btih::_ ->
35
+ if !verbose then
36
+ lprintf_nl "Got btih %S" (Sha1.to_string btih);
37
+ let hashstr = (Sha1.to_string btih) in
38
+ let torrent = {
39
+ torrent_name = hashstr; (*magnet#name*)
40
+ torrent_filename = hashstr;
41
+ torrent_name_utf8 = hashstr;
42
+ torrent_comment = "";
43
+ torrent_pieces = Array.of_list [];
44
+ torrent_piece_size = 1L;
45
+ torrent_files = [];
46
+ torrent_length = 1L;
47
+ torrent_created_by = "";
48
+ torrent_creation_date = 1000000L;
49
+ torrent_modified_by = "";
50
+ torrent_encoding = "";
51
+ torrent_private = false;
52
+ torrent_announce =
53
+ (match magnet#trackers with
54
+ | h::q -> h
55
+ | [] -> "");
56
+ torrent_announce_list = magnet#trackers;
57
+ } in
58
+ ignore(new_download ~metadata:true btih torrent "" user group);
59
+ magnet#name, true;
60
+ )
61
+ | `Exn _ ->
62
+ (
63
let location_regexp = "Location: \\(.*\\)" in
64
try
65
let real_url = get_regexp_string url (Str.regexp location_regexp) in
66
67
let s = Printf.sprintf "Can not load load torrent file: %s"
68
(Printexc2.to_string e) in
69
s, false
70
+ )
71
72
let op_client_info c =
73
check_client_country_code c;
74
mldonkey-3.1.2.tar.bz2/src/networks/bittorrent/bTProtocol.ml -> mldonkey-3.1.3.tar.bz2/src/networks/bittorrent/bTProtocol.ml
Changed
43
1
2
int: length (power of 2, 2 ^ 15)
3
* 9 - DHT port announcement
4
int16: UDP port
5
-
6
+ * 20 - extended
7
+ byte: extended message ID (0 = handshake)
8
Choke/unchoke every 10 seconds
9
*)
10
11
12
| Ping
13
| PeerID of string
14
| DHT_Port of int
15
+ | Extended of int * string
16
17
let to_string msg =
18
match msg with
19
20
| Ping -> "Ping"
21
| PeerID s -> Printf.sprintf "PeerID [%s]" (String.escaped s)
22
| DHT_Port n -> Printf.sprintf "DHT_Port %d" n
23
+ | Extended (n, s) -> Printf.sprintf "Extended [%d %s]" n (String.escaped s)
24
25
let parsing opcode m =
26
match opcode with
27
28
| 7 -> Piece (get_int m 0, get_uint64_32 m 4, m, 8, String.length m - 8)
29
| 8 -> Cancel (get_int m 0, get_uint64_32 m 4, get_uint64_32 m 8)
30
| 9 -> DHT_Port (get_int16 m 0)
31
+ | 20 -> Extended (get_int8 m 0, String.sub m 1 (String.length m - 1))
32
| -1 -> PeerID m
33
| _ -> raise Not_found
34
35
36
| PeerID _ -> ()
37
| Ping -> ()
38
| DHT_Port n -> buf_int8 buf 9; buf_int16 buf n
39
+ | Extended (n,msg) -> buf_int8 buf 20; buf_int8 buf n; Buffer.add_string buf msg
40
end;
41
let s = Buffer.contents buf in
42
str_int s 0 (String.length s - 4);
43
mldonkey-3.1.2.tar.bz2/src/networks/bittorrent/bTTypes.ml -> mldonkey-3.1.3.tar.bz2/src/networks/bittorrent/bTTypes.ml
Changed
22
1
2
mutable client_utorrent_extension : bool;
3
mutable client_azureus_messaging_protocol : bool;
4
5
+ mutable client_ut_metadata_msg : int64;
6
}
7
8
and tracker_info = {
9
10
mutable file_session_downloaded : int64;
11
(** DHT specific *)
12
mutable file_last_dht_announce : int;
13
+
14
+ mutable file_metadata_size : int64;
15
+ mutable file_metadata_piece : int64;
16
+ mutable file_metadata_downloading : bool;
17
+ mutable file_metadata_chunks : string array;
18
+
19
file_private : bool;
20
}
21
22
mldonkey-3.1.2.tar.bz2/src/networks/donkey/donkeyReliability.ml -> mldonkey-3.1.3.tar.bz2/src/networks/donkey/donkeyReliability.ml
Changed
10
1
2
3
let to_string v _ =
4
let v = Marshal.to_string v [] in
5
-(* The header depends on Ocaml version. Remove it. *)
6
+(* The header depends on OCaml version. Remove it. *)
7
let v = String.sub v (Marshal.header_size)
8
(String.length v - Marshal.header_size) in
9
v
10
mldonkey-3.1.2.tar.bz2/src/networks/donkey/donkeyThieves.ml -> mldonkey-3.1.3.tar.bz2/src/networks/donkey/donkeyThieves.ml
Changed
10
1
2
3
let to_string v _ =
4
let v = Marshal.to_string v [] in
5
-(* The header depends on Ocaml version. Remove it. *)
6
+(* The header depends on OCaml version. Remove it. *)
7
let v = String.sub v (Marshal.header_size)
8
(String.length v - Marshal.header_size) in
9
v
10
mldonkey-3.1.2.tar.bz2/src/utils/cdk/filename2.ml -> mldonkey-3.1.3.tar.bz2/src/utils/cdk/filename2.ml
Changed
13
1
2
| _ ->
3
(try Sys.getenv "TEMP" with Not_found -> ".")
4
5
-(* this code is copied from Ocaml stdlib/filename.ml but
6
+(* this code is copied from OCaml stdlib/filename.ml but
7
extended to respect runtime changes to $MLDONKEY_TEMP,
8
- Ocaml uses variable $TMPDIR/$TEMP instead *)
9
+ OCaml uses variable $TMPDIR/$TEMP instead *)
10
external open_desc: string -> open_flag list -> int -> int = "caml_sys_open"
11
external close_desc: int -> unit = "caml_sys_close"
12
13
mldonkey-3.1.2.tar.bz2/src/utils/cdk/gd.ml -> mldonkey-3.1.3.tar.bz2/src/utils/cdk/gd.ml
Changed
8
1
2
(*
3
- * Ocaml-Gd. An interface to the Gd library for generating simple images
4
+ * OCaml-Gd. An interface to the Gd library for generating simple images
5
* Based on Shawn Wagner's OCamlGD 0.7.0. with some mods from GD4O
6
* Copyright (C) 2002 Shawn Wagner
7
* Copyright (C) 2003 Matthew C. Gushee
8
mldonkey-3.1.2.tar.bz2/src/utils/cdk/gdstubs.c -> mldonkey-3.1.3.tar.bz2/src/utils/cdk/gdstubs.c
Changed
8
1
2
/*
3
- * Ocaml-Gd. An interface to the Gd library for generating simple images
4
+ * OCaml-Gd. An interface to the Gd library for generating simple images
5
* Based on Shawn Wagner's OCamlGD 0.7.0. with some mods from GD4O
6
* Copyright (C) 2002 Shawn Wagner
7
* Copyright (C) 2003 Matthew C. Gushee
8
mldonkey-3.1.2.tar.bz2/src/utils/lib/stubs_c.c -> mldonkey-3.1.3.tar.bz2/src/utils/lib/stubs_c.c
Changed
22
1
2
#include <sys/resource.h>
3
#endif /* HAVE_SYS_RESOURCE_H */
4
5
+/* For proper FreeBSD version identification */
6
+#if defined(HAVE_SYS_PARAM_H)
7
+#include <sys/param.h>
8
+#endif
9
+
10
#define lseek XXXXXXXXX
11
#define read XXXXXXXXX
12
#define ftruncate XXXXXXXXX
13
14
15
#define NETDB_BUFFER_SIZE 10000
16
17
-#ifdef _WIN32
18
+#if defined(_WIN32) || ( defined(__FreeBSD_version) && ( ((__FreeBSD_version >= 504102) && (__FreeBSD_version < 600000)) || (__FreeBSD_version >= 600029) ) )
19
#define GETHOSTBYADDR_IS_REENTRANT 1
20
#define GETHOSTBYNAME_IS_REENTRANT 1
21
#endif /* _WIN32 */
22
mldonkey-3.1.2.tar.bz2/src/utils/lib/tiger.c -> mldonkey-3.1.3.tar.bz2/src/utils/lib/tiger.c
Changed
10
1
2
/**************************************************************************
3
4
5
- Ocaml stubs (copied from md4_c.c)
6
+ OCaml stubs (copied from md4_c.c)
7
8
9
***************************************************************************/
10
mldonkey-3.1.2.tar.bz2/src/utils/net/upnp_stubs.c -> mldonkey-3.1.3.tar.bz2/src/utils/net/upnp_stubs.c
Changed
45
1
2
3
if( map->enabled && ( map->natpmpState == ML_NATPMP_DISCOVER ) )
4
{
5
- int val = initnatpmp( &map->natpmp );
6
+ int val = initnatpmp( &map->natpmp, 0, 0 );
7
dbg_printf( "initnatpmp = %d\n", val );
8
val = sendpublicaddressrequest( &map->natpmp );
9
dbg_printf( "sendpublicaddressrequest = %d\n", val );
10
11
{
12
struct UPNPDev * devlist;
13
errno = 0;
14
- devlist = upnpDiscover( 2000, NULL, NULL, 0 );
15
+ devlist = upnpDiscover( 2000, NULL, NULL, 0, 0, 0 );
16
if( devlist == NULL )
17
{
18
dbg_printf( "upnpDiscover failed (errno %d - %s)\n", errno, str_errno( errno ) );
19
20
snprintf( type, sizeof( type ), "%s", ( map->isTcp ? "TCP" : "UDP" ) );
21
i = UPNP_GetSpecificPortMappingEntry( map->upnpUrls.controlURL,
22
map->upnpData.first.servicetype, portStr,
23
- type, intClient, intPort );
24
+ type, intClient, intPort, NULL, NULL, NULL );
25
if( i != UPNPCOMMAND_SUCCESS )
26
{
27
dbg_printf( "Port %d isn't forwarded\n", map->extPort );
28
29
err = UPNP_AddPortMapping( map->upnpUrls.controlURL,
30
map->upnpData.first.servicetype,
31
extPortStr, intPortStr, map->lanaddr,
32
- desc, type, NULL );
33
+ desc, type, NULL, "0" );
34
map->upnpMapped = !err;
35
}
36
dbg_printf( "Port forwarding through \"%s\", service \"%s\". (local address[%s:%d])\n", map->upnpUrls.controlURL, map->upnpData.first.servicetype, map->lanaddr, map->intPort );
37
38
//pthread_cond_init(&cond, NULL);
39
pthread_mutex_init(&g_mutex, NULL);
40
pthread_mutex_init(&g_delay_mutex, NULL);
41
- pthread_mutex_unlock(&g_mutex);
42
43
err = pthread_create(&g_pthread, &attr, upnpNatpmpThread, NULL);
44
45
mldonkey-3.1.2.tar.bz2/tools/ocamlpp.ml4 -> mldonkey-3.1.3.tar.bz2/tools/ocamlpp.ml4
Changed
71
1
2
open Str
3
-
4
+
5
+let outch = ref stdout
6
+
7
(*
8
let gen dest_filename =
9
10
11
let ic = open_in filename in
12
13
let line_warning line =
14
- Printf.fprintf stdout "(*\n\n WARNING: this file is automatically generated from: \n\t%s\n\n*)\n\n" filename;
15
- Printf.fprintf stdout "# %d \"%s\"\n" (line+1) filename;
16
+ Printf.fprintf !outch "(*\n\n WARNING: this file is automatically generated from: \n\t%s\n\n*)\n\n" filename;
17
+ Printf.fprintf !outch "# %d \"%s\"\n" (line+1) filename;
18
in
19
20
let rec iter_line i env =
21
22
line_warning (i+1);
23
env
24
| Line (line, filename) ->
25
- Printf.fprintf stdout "# %d \"%s\"\n" line filename;
26
+ Printf.fprintf !outch "# %d \"%s\"\n" line filename;
27
env
28
| Regexps regexps2 ->
29
line_warning (i+1);
30
31
exit 2
32
end;
33
end else begin
34
- output_string stdout line;
35
- output_char stdout '\n';
36
+ output_string !outch line;
37
+ output_char !outch '\n';
38
env
39
end
40
in
41
42
43
let add_depend filedep filename depends =
44
if not (List.mem filename !depends) then begin
45
- Printf.fprintf stdout "%s: %s\n" filedep filename;
46
+ Printf.fprintf !outch "%s: %s\n" filedep filename;
47
depends := filename :: !depends
48
end
49
50
51
Printf.fprintf stderr "Don't know what to do with %s\n" filename;
52
exit 2
53
end
54
-
55
-let _ =
56
+
57
+let () =
58
Arg.parse
59
[
60
(* "-gen", Arg.String gen, " <filename> : generate filename"; *)
61
"-pp", Arg.String pp, " <filename> : preprocess filename";
62
- ] depend ""
63
-
64
-
65
-
66
\ No newline at end of file
67
+ "-o", Arg.String (fun s -> outch := open_out s), " <filename> : output filename (influences subsequent options)";
68
+ ] depend "";
69
+ close_out !outch
70
+
71
Refresh
No build results available
Refresh
No rpmlint results available
Login required, please
login
or
signup
in order to comment
Request History
seife created request over 11 years ago
update to 3.1.3, fix i586 runtime problem
seife accepted request over 12 years ago
update to 3.1.3, fix i586 runtime problem