
MSBuildReorder
Please note that MSBuildReorder source code is now moved to GitHub. Source code can be downloaded from the project’s GitHub page.
MSBuildReorder is a tool for “reordering” (buildorder) a multi-process C++ build log. It allows a developer to convert the build log as if it was generated with a single processor.
Building a solution that has multiple projects can quickly become bloated with too many lines that are not related to each other. For this reason, finding the actual cause of a build fail is harder than it should be. MSBuildReorder is able to read the log and reorder the projects in a sequential order.
It’s main features are:
- Supports both msbuild and Visual Studio 2008 (and over) build logs.
- Useful for Continuous Integration (CI) servers (build servers).
- Allows quicker identification of the project that caused an error.
- Command line support.
**Usage:
**msbuildreorder [input file] [output file]
- input file: Path to the input build log file to reorder.
- output file: Path of the output reordered build log file.
Screenshot
msbuildreorder screenshot
Download
You can download MSBuildReorder by clicking on the following link:
Please note that download links are now deprecated. Binary version of msbuildreorder can be downloaded directly from the project’s GitHub page.
Sample
The following shows a multi-process build log compiling libprotobuf. MSBuildReorder can be used to reorder the multi-threaded log on a Continuous Integration (CI) server.
11>------ Build started: Project: libprotobuf, Configuration: Debug_MT_DLL Win32 ------
22>------ Build started: Project: gtest, Configuration: Debug_MT_DLL Win32 ------
33>------ Build started: Project: libprotobuf-lite, Configuration: Debug_MT_DLL Win32 ------
42>Compiling...
53>Compiling...
61>Compiling...
73>cl : Command line warning D9035 : option 'Wp64' has been deprecated and will be removed in a future release
81>cl : Command line warning D9035 : option 'Wp64' has been deprecated and will be removed in a future release
92>gtest-all.cc
103>coded_stream.cc
111>coded_stream.cc
123>common.cc
131>common.cc
141>descriptor.cc
153>extension_set.cc
163>generated_message_util.cc
173>message_lite.cc
182>Creating library...
193>once.cc
202>Build log was saved at "file://c:\Temp\protobuf\src\gtest\msvc\protobuf\Debug_MT_DLL\gtest\BuildLog.htm"
212>gtest - 0 error(s), 0 warning(s)
224>------ Build started: Project: gtest_main, Configuration: Debug_MT_DLL Win32 ------
234>Compiling...
244>gtest_main.cc
251>descriptor.pb.cc
263>repeated_field.cc
273>stringprintf.cc
284>Creating library...
294>Build log was saved at "file://c:\Temp\protobuf\src\gtest\msvc\protobuf\Debug_MT_DLL\gtest_main\BuildLog.htm"
304>gtest_main - 0 error(s), 0 warning(s)
311>descriptor_database.cc
323>wire_format_lite.cc
333>zero_copy_stream.cc
343>zero_copy_stream_impl_lite.cc
351>dynamic_message.cc
363>atomicops_internals_x86_msvc.cc
373>Generating Code...
381>extension_set.cc
393>Creating library...
403>Build log was saved at "file://c:\Temp\protobuf\src\vsprojects\protobuf\Debug_MT_DLL\libprotobuf-lite\BuildLog.htm"
413>libprotobuf-lite - 0 error(s), 1 warning(s)
421>extension_set_heavy.cc
431>generated_message_reflection.cc
441>generated_message_util.cc
451>gzip_stream.cc
461>importer.cc
471>message.cc
481>message_lite.cc
491>once.cc
501>parser.cc
511>printer.cc
521>reflection_ops.cc
531>repeated_field.cc
541>service.cc
551>Generating Code...
561>Compiling...
571>stringprintf.cc
581>structurally_valid.cc
591>strutil.cc
601>substitute.cc
611>text_format.cc
621>tokenizer.cc
631>unknown_field_set.cc
641>wire_format.cc
651>wire_format_lite.cc
661>zero_copy_stream.cc
671>zero_copy_stream_impl.cc
681>zero_copy_stream_impl_lite.cc
691>atomicops_internals_x86_msvc.cc
701>Generating Code...
711>Creating library...
721>Build log was saved at "file://c:\Temp\protobuf\src\vsprojects\protobuf\Debug_MT_DLL\libprotobuf\BuildLog.htm"
731>libprotobuf - 0 error(s), 1 warning(s)
745>------ Build started: Project: libprotoc, Configuration: Debug_MT_DLL Win32 ------
755>Compiling...
765>cl : Command line warning D9035 : option 'Wp64' has been deprecated and will be removed in a future release
775>code_generator.cc
785>command_line_interface.cc
795>cpp_enum.cc
805>cpp_enum_field.cc
815>cpp_extension.cc
825>cpp_field.cc
835>cpp_file.cc
845>cpp_generator.cc
855>cpp_helpers.cc
865>cpp_message.cc
875>cpp_message_field.cc
885>cpp_primitive_field.cc
895>cpp_service.cc
905>cpp_string_field.cc
915>java_enum.cc
925>java_enum_field.cc
935>java_extension.cc
945>java_field.cc
955>java_file.cc
965>java_generator.cc
975>Generating Code...
985>Compiling...
995>java_helpers.cc
1005>java_message.cc
1015>java_message_field.cc
1025>java_primitive_field.cc
1035>java_service.cc
1045>java_string_field.cc
1055>plugin.cc
1065>plugin.pb.cc
1075>python_generator.cc
1085>subprocess.cc
1095>zip_writer.cc
1105>java_doc_comment.cc
1115>Generating Code...
1125>Creating library...
1135>Build log was saved at "file://c:\Temp\protobuf\src\vsprojects\protobuf\Debug_MT_DLL\libprotoc\BuildLog.htm"
1145>libprotoc - 0 error(s), 1 warning(s)
1156>------ Build started: Project: protoc, Configuration: Debug_MT_DLL Win32 ------
1167>------ Build started: Project: test_plugin, Configuration: Debug_MT_DLL Win32 ------
1177>test_plugin : warning PRJ0009 : Build log could not be opened for writing.
1187>Make sure that the file is not open by another process and is not write-protected.
1196>Compiling...
1207>Compiling...
1216>cl : Command line warning D9035 : option 'Wp64' has been deprecated and will be removed in a future release
1226>main.cc
1237>cl : Command line warning D9035 : option 'Wp64' has been deprecated and will be removed in a future release
1247>file.cc
1257>mock_code_generator.cc
1266>Compiling manifest to resources...
1276>Microsoft (R) Windows (R) Resource Compiler Version 6.1.7600.16385
1286>Copyright (C) Microsoft Corporation. All rights reserved.
1296>Linking...
1306>main.obj : warning LNK4099: PDB 'vc90.pdb' was not found with '.\Debug\main.obj' or at 'c:\Temp\protobuf\src\vsprojects\Debug\vc90.pdb'; linking object as if no debug info
1317>test_plugin.cc
1327>Generating Code...
1337>Compiling manifest to resources...
1347>Microsoft (R) Windows (R) Resource Compiler Version 6.1.7600.16385
1357>Copyright (C) Microsoft Corporation. All rights reserved.
1367>Linking...
1376>Embedding manifest...
1386>Microsoft (R) Windows (R) Resource Compiler Version 6.1.7600.16385
1396>Copyright (C) Microsoft Corporation. All rights reserved.
1406>Build log was saved at "file://c:\Temp\protobuf\src\vsprojects\Debug\BuildLog.htm"
1416>protoc - 0 error(s), 2 warning(s)
1427>Embedding manifest...
1438>------ Build started: Project: lite-test, Configuration: Debug_MT_DLL Win32 ------
1448>Generating unittest_lite.pb.{h,cc}...
1457>Microsoft (R) Windows (R) Resource Compiler Version 6.1.7600.16385
1467>Copyright (C) Microsoft Corporation. All rights reserved.
1477>Build log was saved at "file://c:\Temp\protobuf\src\vsprojects\Debug\BuildLog.htm"
1487>test_plugin - 0 error(s), 2 warning(s)
1498>Generating unittest_import_public_lite.pb.{h,cc}...
1508>Generating unittest_import_lite.pb.{h,cc}...
1518>Compiling...
1528>cl : Command line warning D9035 : option 'Wp64' has been deprecated and will be removed in a future release
1538>lite_unittest.cc
1548>test_util_lite.cc
1558>unittest_import_lite.pb.cc
1568>unittest_import_public_lite.pb.cc
1578>unittest_lite.pb.cc
1588>Generating Code...
1598>Compiling manifest to resources...
1608>Microsoft (R) Windows (R) Resource Compiler Version 6.1.7600.16385
1618>Copyright (C) Microsoft Corporation. All rights reserved.
1628>Linking...
1638>Embedding manifest...
1648>Microsoft (R) Windows (R) Resource Compiler Version 6.1.7600.16385
1658>Copyright (C) Microsoft Corporation. All rights reserved.
1668>Build log was saved at "file://c:\Temp\protobuf\src\vsprojects\DebugLite\BuildLog.htm"
1678>lite-test - 0 error(s), 1 warning(s)
1689>------ Build started: Project: tests, Configuration: Debug_MT_DLL Win32 ------
1699>Generating unittest_import_public.pb.{h,cc}...
1709>Generating unittest_mset.pb.{h,cc}...
1719>Generating unittest.pb.{h,cc}...
1729>Generating unittest_import.pb.{h,cc}...
1739>Generating unittest_optimize_for.pb.{h,cc}...
1749>Generating unittest_no_generic_services.pb.{h,cc}...
1759>Generating unittest_lite_imports_nonlite.pb.{h,cc}...
1769>Generating unittest_embed_optimize_for.pb.{h,cc}...
1779>Generating unittest_custom_options.pb.{h,cc}...
1789>Generating cpp_test_bad_identifiers.pb.{h,cc}...
1799>Compiling...
1809>cl : Command line warning D9035 : option 'Wp64' has been deprecated and will be removed in a future release
1819>coded_stream_unittest.cc
1829>command_line_interface_unittest.cc
1839>common_unittest.cc
1849>c:\temp\protobuf\src\src\google\protobuf\stubs\common_unittest.cc(75) : warning C4307: '+' : integral constant overflow
1859>c:\temp\protobuf\src\src\google\protobuf\stubs\common_unittest.cc(76) : warning C4307: '+' : integral constant overflow
1869>cpp_bootstrap_unittest.cc
1879>cpp_plugin_unittest.cc
1889>cpp_test_bad_identifiers.pb.cc
1899>cpp_unittest.cc
1909>descriptor_database_unittest.cc
1919>descriptor_unittest.cc
1929>dynamic_message_unittest.cc
1939>extension_set_unittest.cc
1949>generated_message_reflection_unittest.cc
1959>googletest.cc
1969>importer_unittest.cc
1979>java_doc_comment_unittest.cc
1989>java_plugin_unittest.cc
1999>message_unittest.cc
2009>once_unittest.cc
2019>parser_unittest.cc
2029>printer_unittest.cc
2039>Generating Code...
2049>Compiling...
2059>python_plugin_unittest.cc
2069>reflection_ops_unittest.cc
2079>repeated_field_reflection_unittest.cc
2089>repeated_field_unittest.cc
2099>stringprintf_unittest.cc
2109>structurally_valid_unittest.cc
2119>strutil_unittest.cc
2129>template_util_unittest.cc
2139>test_util.cc
2149>text_format_unittest.cc
2159>tokenizer_unittest.cc
2169>type_traits_unittest.cc
2179>c:\temp\protobuf\src\src\google\protobuf\stubs\type_traits_unittest.cc(295) : warning C4181: qualifier applied to reference type; ignored
2189>c:\temp\protobuf\src\src\google\protobuf\stubs\type_traits_unittest.cc(296) : warning C4181: qualifier applied to reference type; ignored
2199>c:\temp\protobuf\src\src\google\protobuf\stubs\type_traits_unittest.cc(297) : warning C4181: qualifier applied to reference type; ignored
2209>unittest.pb.cc
2219>unittest_custom_options.pb.cc
2229>unittest_embed_optimize_for.pb.cc
2239>unittest_import.pb.cc
2249>unittest_import_public.pb.cc
2259>unittest_lite_imports_nonlite.pb.cc
2269>unittest_mset.pb.cc
2279>unittest_no_generic_services.pb.cc
2289>Generating Code...
2299>Compiling...
2309>unittest_optimize_for.pb.cc
2319>unknown_field_set_unittest.cc
2329>wire_format_unittest.cc
2339>zero_copy_stream_unittest.cc
2349>Generating Code...
2359>Compiling manifest to resources...
2369>Microsoft (R) Windows (R) Resource Compiler Version 6.1.7600.16385
2379>Copyright (C) Microsoft Corporation. All rights reserved.
2389>Linking...
2399>Embedding manifest...
2409>Microsoft (R) Windows (R) Resource Compiler Version 6.1.7600.16385
2419>Copyright (C) Microsoft Corporation. All rights reserved.
2429>Build log was saved at "file://c:\Temp\protobuf\src\vsprojects\Debug\BuildLog.htm"
2439>tests - 0 error(s), 6 warning(s)
244========== Build: 9 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
Reordered build log:
1>------ Build started: Project: libprotobuf, Configuration: Debug_MT_DLL Win32 ------
1>Compiling...
1>cl : Command line warning D9035 : option 'Wp64' has been deprecated and will be removed in a future release
1>coded_stream.cc
1>common.cc
1>descriptor.cc
1>descriptor.pb.cc
1>descriptor_database.cc
1>dynamic_message.cc
1>extension_set.cc
1>extension_set_heavy.cc
1>generated_message_reflection.cc
1>generated_message_util.cc
1>gzip_stream.cc
1>importer.cc
1>message.cc
1>message_lite.cc
1>once.cc
1>parser.cc
1>printer.cc
1>reflection_ops.cc
1>repeated_field.cc
1>service.cc
1>Generating Code...
1>Compiling...
1>stringprintf.cc
1>structurally_valid.cc
1>strutil.cc
1>substitute.cc
1>text_format.cc
1>tokenizer.cc
1>unknown_field_set.cc
1>wire_format.cc
1>wire_format_lite.cc
1>zero_copy_stream.cc
1>zero_copy_stream_impl.cc
1>zero_copy_stream_impl_lite.cc
1>atomicops_internals_x86_msvc.cc
1>Generating Code...
1>Creating library...
1>Build log was saved at "file://c:\Temp\protobuf\src\vsprojects\protobuf\Debug_MT_DLL\libprotobuf\BuildLog.htm"
1>libprotobuf - 0 error(s), 1 warning(s)
2>------ Build started: Project: gtest, Configuration: Debug_MT_DLL Win32 ------
2>Compiling...
2>gtest-all.cc
2>Creating library...
2>Build log was saved at "file://c:\Temp\protobuf\src\gtest\msvc\protobuf\Debug_MT_DLL\gtest\BuildLog.htm"
2>gtest - 0 error(s), 0 warning(s)
3>------ Build started: Project: libprotobuf-lite, Configuration: Debug_MT_DLL Win32 ------
3>Compiling...
3>cl : Command line warning D9035 : option 'Wp64' has been deprecated and will be removed in a future release
3>coded_stream.cc
3>common.cc
3>extension_set.cc
3>generated_message_util.cc
3>message_lite.cc
3>once.cc
3>repeated_field.cc
3>stringprintf.cc
3>wire_format_lite.cc
3>zero_copy_stream.cc
3>zero_copy_stream_impl_lite.cc
3>atomicops_internals_x86_msvc.cc
3>Generating Code...
3>Creating library...
3>Build log was saved at "file://c:\Temp\protobuf\src\vsprojects\protobuf\Debug_MT_DLL\libprotobuf-lite\BuildLog.htm"
3>libprotobuf-lite - 0 error(s), 1 warning(s)
4>------ Build started: Project: gtest_main, Configuration: Debug_MT_DLL Win32 ------
4>Compiling...
4>gtest_main.cc
4>Creating library...
4>Build log was saved at "file://c:\Temp\protobuf\src\gtest\msvc\protobuf\Debug_MT_DLL\gtest_main\BuildLog.htm"
4>gtest_main - 0 error(s), 0 warning(s)
5>------ Build started: Project: libprotoc, Configuration: Debug_MT_DLL Win32 ------
5>Compiling...
5>cl : Command line warning D9035 : option 'Wp64' has been deprecated and will be removed in a future release
5>code_generator.cc
5>command_line_interface.cc
5>cpp_enum.cc
5>cpp_enum_field.cc
5>cpp_extension.cc
5>cpp_field.cc
5>cpp_file.cc
5>cpp_generator.cc
5>cpp_helpers.cc
5>cpp_message.cc
5>cpp_message_field.cc
5>cpp_primitive_field.cc
5>cpp_service.cc
5>cpp_string_field.cc
5>java_enum.cc
5>java_enum_field.cc
5>java_extension.cc
5>java_field.cc
5>java_file.cc
5>java_generator.cc
5>Generating Code...
5>Compiling...
5>java_helpers.cc
5>java_message.cc
5>java_message_field.cc
5>java_primitive_field.cc
5>java_service.cc
5>java_string_field.cc
5>plugin.cc
5>plugin.pb.cc
5>python_generator.cc
5>subprocess.cc
5>zip_writer.cc
5>java_doc_comment.cc
5>Generating Code...
5>Creating library...
5>Build log was saved at "file://c:\Temp\protobuf\src\vsprojects\protobuf\Debug_MT_DLL\libprotoc\BuildLog.htm"
5>libprotoc - 0 error(s), 1 warning(s)
6>------ Build started: Project: protoc, Configuration: Debug_MT_DLL Win32 ------
6>Compiling...
6>cl : Command line warning D9035 : option 'Wp64' has been deprecated and will be removed in a future release
6>main.cc
6>Compiling manifest to resources...
6>Microsoft (R) Windows (R) Resource Compiler Version 6.1.7600.16385
6>Copyright (C) Microsoft Corporation. All rights reserved.
6>Linking...
6>main.obj : warning LNK4099: PDB 'vc90.pdb' was not found with '.\Debug\main.obj' or at 'c:\Temp\protobuf\src\vsprojects\Debug\vc90.pdb'; linking object as if no debug info
6>Embedding manifest...
6>Microsoft (R) Windows (R) Resource Compiler Version 6.1.7600.16385
6>Copyright (C) Microsoft Corporation. All rights reserved.
6>Build log was saved at "file://c:\Temp\protobuf\src\vsprojects\Debug\BuildLog.htm"
6>protoc - 0 error(s), 2 warning(s)
7>------ Build started: Project: test_plugin, Configuration: Debug_MT_DLL Win32 ------
7>test_plugin : warning PRJ0009 : Build log could not be opened for writing.
7>Make sure that the file is not open by another process and is not write-protected.
7>Compiling...
7>cl : Command line warning D9035 : option 'Wp64' has been deprecated and will be removed in a future release
7>file.cc
7>mock_code_generator.cc
7>test_plugin.cc
7>Generating Code...
7>Compiling manifest to resources...
7>Microsoft (R) Windows (R) Resource Compiler Version 6.1.7600.16385
7>Copyright (C) Microsoft Corporation. All rights reserved.
7>Linking...
7>Embedding manifest...
7>Microsoft (R) Windows (R) Resource Compiler Version 6.1.7600.16385
7>Copyright (C) Microsoft Corporation. All rights reserved.
7>Build log was saved at "file://c:\Temp\protobuf\src\vsprojects\Debug\BuildLog.htm"
7>test_plugin - 0 error(s), 2 warning(s)
8>------ Build started: Project: lite-test, Configuration: Debug_MT_DLL Win32 ------
8>Generating unittest_lite.pb.{h,cc}...
8>Generating unittest_import_public_lite.pb.{h,cc}...
8>Generating unittest_import_lite.pb.{h,cc}...
8>Compiling...
8>cl : Command line warning D9035 : option 'Wp64' has been deprecated and will be removed in a future release
8>lite_unittest.cc
8>test_util_lite.cc
8>unittest_import_lite.pb.cc
8>unittest_import_public_lite.pb.cc
8>unittest_lite.pb.cc
8>Generating Code...
8>Compiling manifest to resources...
8>Microsoft (R) Windows (R) Resource Compiler Version 6.1.7600.16385
8>Copyright (C) Microsoft Corporation. All rights reserved.
8>Linking...
8>Embedding manifest...
8>Microsoft (R) Windows (R) Resource Compiler Version 6.1.7600.16385
8>Copyright (C) Microsoft Corporation. All rights reserved.
8>Build log was saved at "file://c:\Temp\protobuf\src\vsprojects\DebugLite\BuildLog.htm"
8>lite-test - 0 error(s), 1 warning(s)
9>------ Build started: Project: tests, Configuration: Debug_MT_DLL Win32 ------
9>Generating unittest_import_public.pb.{h,cc}...
9>Generating unittest_mset.pb.{h,cc}...
9>Generating unittest.pb.{h,cc}...
9>Generating unittest_import.pb.{h,cc}...
9>Generating unittest_optimize_for.pb.{h,cc}...
9>Generating unittest_no_generic_services.pb.{h,cc}...
9>Generating unittest_lite_imports_nonlite.pb.{h,cc}...
9>Generating unittest_embed_optimize_for.pb.{h,cc}...
9>Generating unittest_custom_options.pb.{h,cc}...
9>Generating cpp_test_bad_identifiers.pb.{h,cc}...
9>Compiling...
9>cl : Command line warning D9035 : option 'Wp64' has been deprecated and will be removed in a future release
9>coded_stream_unittest.cc
9>command_line_interface_unittest.cc
9>common_unittest.cc
9>c:\temp\protobuf\src\src\google\protobuf\stubs\common_unittest.cc(75) : warning C4307: '+' : integral constant overflow
9>c:\temp\protobuf\src\src\google\protobuf\stubs\common_unittest.cc(76) : warning C4307: '+' : integral constant overflow
9>cpp_bootstrap_unittest.cc
9>cpp_plugin_unittest.cc
9>cpp_test_bad_identifiers.pb.cc
9>cpp_unittest.cc
9>descriptor_database_unittest.cc
9>descriptor_unittest.cc
9>dynamic_message_unittest.cc
9>extension_set_unittest.cc
9>generated_message_reflection_unittest.cc
9>googletest.cc
9>importer_unittest.cc
9>java_doc_comment_unittest.cc
9>java_plugin_unittest.cc
9>message_unittest.cc
9>once_unittest.cc
9>parser_unittest.cc
9>printer_unittest.cc
9>Generating Code...
9>Compiling...
9>python_plugin_unittest.cc
9>reflection_ops_unittest.cc
9>repeated_field_reflection_unittest.cc
9>repeated_field_unittest.cc
9>stringprintf_unittest.cc
9>structurally_valid_unittest.cc
9>strutil_unittest.cc
9>template_util_unittest.cc
9>test_util.cc
9>text_format_unittest.cc
9>tokenizer_unittest.cc
9>type_traits_unittest.cc
9>c:\temp\protobuf\src\src\google\protobuf\stubs\type_traits_unittest.cc(295) : warning C4181: qualifier applied to reference type; ignored
9>c:\temp\protobuf\src\src\google\protobuf\stubs\type_traits_unittest.cc(296) : warning C4181: qualifier applied to reference type; ignored
9>c:\temp\protobuf\src\src\google\protobuf\stubs\type_traits_unittest.cc(297) : warning C4181: qualifier applied to reference type; ignored
9>unittest.pb.cc
9>unittest_custom_options.pb.cc
9>unittest_embed_optimize_for.pb.cc
9>unittest_import.pb.cc
9>unittest_import_public.pb.cc
9>unittest_lite_imports_nonlite.pb.cc
9>unittest_mset.pb.cc
9>unittest_no_generic_services.pb.cc
9>Generating Code...
9>Compiling...
9>unittest_optimize_for.pb.cc
9>unknown_field_set_unittest.cc
9>wire_format_unittest.cc
9>zero_copy_stream_unittest.cc
9>Generating Code...
9>Compiling manifest to resources...
9>Microsoft (R) Windows (R) Resource Compiler Version 6.1.7600.16385
9>Copyright (C) Microsoft Corporation. All rights reserved.
9>Linking...
9>Embedding manifest...
9>Microsoft (R) Windows (R) Resource Compiler Version 6.1.7600.16385
9>Copyright (C) Microsoft Corporation. All rights reserved.
9>Build log was saved at "file://c:\Temp\protobuf\src\vsprojects\Debug\BuildLog.htm"
9>tests - 0 error(s), 6 warning(s)
========== Build: 9 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
Compatible with
MSBuildReorder is only available for the Windows platform and has been tested with the following version of Windows:
- Windows XP
- Windows Vista
- Windows 7
Minimum system requirements
- 100% PC compatible
- Pentium II, 300 mhz
- 256 Mb RAM
- 5 Mb free disk space
License
MSBuildReorder is being distributed as Freeware for personal, commercial use, non-profit organization, and educational purpose. It may be included with CD-ROM/DVD-ROM distributions. You are NOT allowed to make a charge for distributing this Software (either for profit or merely to recover your media and distribution costs) whether as a stand-alone product, or as part of a compilation or anthology, nor to use it for supporting your business or customers. It may be distributed freely on any website or through any other distribution mechanism, as long as no part of it is changed in any way.
The full license is available here.
History of changes
Version 1.0 - First public release
Comments