Removed Subversion support (issue #63).

This commit is contained in:
WrinklyNinja
2013-09-19 23:44:59 +01:00
parent bbebb18d98
commit b86364fe41
14 changed files with 231 additions and 545 deletions
+2 -24
View File
@@ -13,7 +13,7 @@ BOSS is intended to make using mods easier, and mod users should still possess a
## Downloading BOSS
At the moment, BOSSv3 is in alpha testing, and so is not recommended for use unless for testing purposes. The load orders it produces should not be used in-game unless found to be valid by manual checking beforehand. Any releases can be found by clicking on the releases button above the coloured bar on the repository homepage.
At the moment, BOSSv3 is in beta testing, and so is not recommended for use unless for testing purposes. The load orders it produces should not be used in-game unless found to be valid by manual checking beforehand. Any releases can be found by clicking on the releases button above the coloured bar on the repository homepage.
## About This Repository
@@ -40,32 +40,10 @@ BOSS requires the following libraries:
BOSS expects all libraries' folders to be present alongside the BOSS repository folder that contains this readme, or otherwise installed such that the compiler and linker used can find them without suppling additional paths. All paths below are relative to the folder(s) containing the libraries and BOSS.
BOSS can also make use of [GraphVis](http://www.graphviz.org/Download_windows.php) and [Subversion](http://sourceforge.net/projects/win32svn) binaries. If provided, they should be installed as detailed below.
BOSS can also make use of [GraphVis](http://www.graphviz.org/Download_windows.php) binaries. If provided, they should be installed as detailed below.
Alphanum, Libespm and PugiXML do not require any additional setup. The rest of the libraries must be built separately.
### Subversion
Put the following binaries into ```resources/svn/``` in the BOSS repository root.
* int3_svn.dll
* libapr-1.dll
* libapriconv-1.dll
* libaprutil-1.dll
* libdb48.dll
* libeay32.dll
* libsasl.dll
* libsvn_client-1.dll
* libsvn_delta-1.dll
* libsvn_diff-1.dll
* libsvn_fs-1.dll
* libsvn_ra-1.dll
* libsvn_repos-1.dll
* libsvn_subr-1.dll
* libsvn_wc-1.dll
* ssleay32.dll
* svn.exe
### GraphVis
Put the following binaries into `resources/graphvis/` in the BOSS repository root, then run `dot.exe -c`.
+2 -2
View File
@@ -384,7 +384,7 @@ To translate the BOSS application:
<li>Zanderat
</ul>
</ul>
<p>BOSS is written in C/C++ and makes use of <a href="https://subversion.apache.org/">Subversion</a> and the <a href="http://www.davekoelle.com/alphanum.html">Alphanum</a>, <a href="http://www.boost.org/">Boost</a>, <a href="http://github.com/WrinklyNinja/libespm">libespm</a>, <a href="http://github.com/libgit2/libgit2">libgit2</a>, <a href="http://github.com/WrinklyNinja/libloadorder">libloadorder</a>, <a href="http://code.google.com/p/pugixml/">PugiXML</a>, <a href="http://www.wxwidgets.org/">wxWidgets</a> and <a href="http://code.google.com/p/yaml-cpp/">yaml-cpp</a> libraries. BOSS's reports are written in XHTML/CSS/Javascript and make use of <a href="http://github.com/inexorabletash/polyfill">Polyfill.js</a> and <a href="https://code.google.com/p/svgweb/">svgweb</a> to provide Internet Explorer 8 compatibility. Copyright license information for all these may be found <a href="licenses/Licenses.txt">here</a>.
<p>BOSS is written in C/C++ and makes use of <a href="http://www.graphviz.org/">GraphVis</a> and the <a href="http://www.davekoelle.com/alphanum.html">Alphanum</a>, <a href="http://www.boost.org/">Boost</a>, <a href="http://github.com/WrinklyNinja/libespm">libespm</a>, <a href="http://github.com/libgit2/libgit2">libgit2</a>, <a href="http://github.com/WrinklyNinja/libloadorder">libloadorder</a>, <a href="http://code.google.com/p/pugixml/">PugiXML</a>, <a href="http://www.wxwidgets.org/">wxWidgets</a> and <a href="http://code.google.com/p/yaml-cpp/">yaml-cpp</a> libraries. BOSS's reports are written in XHTML/CSS/Javascript and make use of <a href="http://github.com/inexorabletash/polyfill">Polyfill.js</a> and <a href="https://code.google.com/p/svgweb/">svgweb</a> to provide Internet Explorer 8 compatibility. Copyright license information for all these may be found <a href="licenses/Licenses.txt">here</a>.
<h2 id="project">Project Members</h2>
@@ -549,6 +549,6 @@ There are three key pieces of information that are used to accurately describe a
<li>BOSS files that are edited are now stored in a folder within %LOCALAPPDATA%.
<li>BOSS Log retitled BOSS Report.
<li>BOSS Log redesigned.
<li>Masterlist updater now uses Subversion.
<li>Masterlist updater now uses Git.
<li>BOSS now sorts plugins according to their parsed contents, supplemented by metadata supplied by the masterlist and userlist.
</ul>
-86
View File
@@ -176,89 +176,3 @@
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
SUBVERSION SUBCOMPONENTS:
Subversion includes a number of subcomponents with separate copyright
notices and license terms. Your use of the source code for the these
subcomponents is subject to the terms and conditions of the following
licenses.
For portions of the Python bindings test suite at
subversion/bindings/swig/python/tests/trac/:
I. Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
II. Copyright (C) 2003, 2004, 2005 Edgewall Software
Copyright (C) 2003, 2004, 2005 Jonas Borgström <jonas@edgewall.com>
Copyright (C) 2005 Christopher Lenz <cmlenz@gmx.de>
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
the documentation and/or other materials provided with the
distribution.
3. The name of the author may not be used to endorse or promote
products derived from this software without specific prior written
permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-1
View File
@@ -16,7 +16,6 @@ BOSS uses a number of libraries, and their licenses are listed in this file.
BOSS is also distributed with some binaries for the following programs:
* Subversion - Apache License v2.0; see "Apache License v2.0.txt" for the text.
* GraphViz - Eclipse Public License v1.0; the text is not included as allowed by the license.
Going by what the EPL FAQ page says, simply running the GraphVis binaries through system calls does not make BOSS a "derivative work", and so it is not bound by the EPL, and so it's OK for BOSS to use GraphVis even though the EPL and GPL are incompatible.
+3 -2
View File
@@ -56,8 +56,9 @@ const unsigned int boss_error_invalid_args = boss::error::invalid_args;
const unsigned int boss_error_no_tag_map = boss::error::no_tag_map;
const unsigned int boss_error_path_not_found = boss::error::path_not_found;
const unsigned int boss_error_no_game_detected = boss::error::no_game_detected;
const unsigned int boss_error_subversion_error = boss::error::subversion_error;
const unsigned int boss_return_max = boss_error_subversion_error;
const unsigned int boss_error_windows_error = boss::error::windows_error;
const unsigned int boss_error_sorting_error = boss::error::windows_error;
const unsigned int boss_return_max = boss_error_sorting_error;
// The following are the games identifiers used by the API.
const unsigned int boss_game_tes4 = boss::g_game_tes4;
+2 -6
View File
@@ -123,12 +123,8 @@ BOSS_API extern const unsigned int boss_error_invalid_args; ///< Invalid argume
BOSS_API extern const unsigned int boss_error_no_tag_map; ///< No Bash Tag map has been generated yet.
BOSS_API extern const unsigned int boss_error_path_not_found; ///< A file or folder path could not be found.
BOSS_API extern const unsigned int boss_error_no_game_detected; ///< The given game could not be found.
/**
@brief An error occurred during a Subversion operation.
@details This code should never be seen client-side, as the API does not use any Subversion processes, but is provided in the interests of completeness and in case of library bugs returning it.
*/
BOSS_API extern const unsigned int boss_error_subversion_error;
BOSS_API extern const unsigned int boss_error_windows_error; ///< An error occurred during a call to the Windows API.
BOSS_API extern const unsigned int boss_error_sorting_error; ///< An error occurred while sorting plugins.
/**
@brief Matches the value of the highest-numbered return code.
-2
View File
@@ -8,7 +8,6 @@
# build/BOSS.exe
# resources/graphvis
# resources/svgweb
# resources/svn
# resources/icon.ico
# resources/polyfill.js
# resources/script.js
@@ -40,7 +39,6 @@ shutil.copy( os.path.join('..', 'build', 'BOSS.exe'), temp_path )
shutil.copytree( os.path.join('..', 'resources', 'graphvis'), os.path.join(temp_path, 'resources', 'graphvis') )
shutil.copytree( os.path.join('..', 'resources', 'svgweb'), os.path.join(temp_path, 'resources', 'svgweb') )
shutil.copytree( os.path.join('..', 'resources', 'svn'), os.path.join(temp_path, 'resources', 'svn') )
shutil.copy( os.path.join('..', 'resources', 'icon.ico'), os.path.join(temp_path, 'resources') )
shutil.copy( os.path.join('..', 'resources', 'polyfill.js'), os.path.join(temp_path, 'resources') )
shutil.copy( os.path.join('..', 'resources', 'script.js'), os.path.join(temp_path, 'resources') )
+2 -2
View File
@@ -37,7 +37,7 @@ namespace boss {
unsigned int code() const { return _code; }
const char * what() const throw() { return _what.c_str(); }
/* These must not be changed for API stability. */
static const unsigned int ok = 0;
static const unsigned int liblo_error = 1;
static const unsigned int path_write_fail = 2;
@@ -49,7 +49,7 @@ namespace boss {
static const unsigned int no_tag_map = 8;
static const unsigned int path_not_found = 9;
static const unsigned int no_game_detected = 10;
static const unsigned int subversion_error = 11;
//11 was subversion_error, and was removed along with svn support.
static const unsigned int git_error = 12;
static const unsigned int windows_error = 13;
static const unsigned int sorting_error = 14;
-1
View File
@@ -56,7 +56,6 @@ namespace boss {
const boost::filesystem::path g_path_js = boost::filesystem::current_path() / "resources" / "script.js";
const boost::filesystem::path g_path_polyfill = boost::filesystem::current_path() / "resources" / "polyfill.js";
const boost::filesystem::path g_path_l10n = boost::filesystem::current_path() / "resources" / "l10n";
const boost::filesystem::path g_path_svn = boost::filesystem::current_path() / "resources" / "svn" / "svn.exe";
const boost::filesystem::path g_path_graphvis = boost::filesystem::current_path() / "resources" / "graphvis" / "dot.exe";
const boost::filesystem::path g_path_svgweb = boost::filesystem::current_path() / "resources" / "svgweb" / "svg.js";
const boost::filesystem::path g_path_local = GetLocalAppDataPath() / "BOSS";
-1
View File
@@ -58,7 +58,6 @@ namespace boss {
extern const boost::filesystem::path g_path_css;
extern const boost::filesystem::path g_path_js;
extern const boost::filesystem::path g_path_polyfill;
extern const boost::filesystem::path g_path_svn;
extern const boost::filesystem::path g_path_log;
extern const boost::filesystem::path g_path_l10n;
extern const boost::filesystem::path g_path_graphvis;
+219 -379
View File
File diff suppressed because it is too large Load Diff
-31
View File
@@ -32,37 +32,6 @@
namespace boss {
/* Masterlist updating is carried out using subversion's executables via system() since it's API has too many dependencies to build myself.
Basic workflow is:
1. Check if there's a working copy present in the masterlist's directory.
2. If not, perform a sparse checkout of the remote folder containing the masterlist, at a folder-only depth.
3. SVN update the masterlist to the latest available revision.
4. Check whether the masterlist parses without errors.
5. If not, revert the masterlist back one revision. Loop back to step 4 until it parses OK.
6. Record the revision of the masterlist for display in the BOSS report.
Also need to record error messages for display in the BOSS report, including any parsing errors encountered in step 4, even if a working masterlist was found.
```svn info``` on a non-working-copy returns "svn: '.' is not a working copy".
```svn co --depth empty http://better-oblivion-sorting-software.googlecode.com/svn/data/boss-skyrim/ .```
followed by
```svn update masterlist.txt```
works as desired when in BOSS's Skyrim folder.
```svn update --revision PREV masterlist.txt```
would then roll the masterlist back one revision.
```svn info masterlist.txt``` returns a bunch of info: the line "Revision: XXXX" contains the revision number.
*/
/* Also looking into adding Git support (issue #29). Git support would involve sparse checkouts of the masterlists into each game folder, with the masterlists sitting in the root of each game's repository online.
So when using Git, the Game::URL() function would return the path to the repository, and BOSS would expect that the masterlist be in the root directory of the repository, which is not unreasonable.
*/
std::string UpdateMasterlist(Game& game, std::list<Message>& parsingErrors, std::list<Plugin>& plugins, std::list<Message>& messages);
}
#endif
+1 -1
View File
@@ -640,7 +640,7 @@ void Launcher::OnSortPlugins(wxCommandEvent& event) {
try {
system(command.c_str());
// if (RunCommand(command, output)) //This hangs for graphvis, for some reason. Works for svn though...
// if (RunCommand(command, output)) //This hangs for graphvis, for some reason.
fs::remove(temp);
} catch(boss::error& e) {
messages.push_back(boss::Message(boss::g_message_error, (format(loc::translate("Failed to generate graph image. Details: %1%")) % e.what()).str()));
-7
View File
@@ -269,10 +269,6 @@ FunctionEnd
SetOutPath "$INSTDIR\resources\svgweb"
File "..\resources\svgweb\*"
;Install svn files.
SetOutPath "$INSTDIR\resources\svn"
File "..\resources\svn\*"
;Install resource files.
SetOutPath "$INSTDIR\resources"
File "..\resources\icon.ico"
@@ -392,9 +388,6 @@ FunctionEnd
Delete "$INSTDIR\resources\script.js"
Delete "$INSTDIR\resources\style.css"
;Remove SVN files.
RMDir /r "$INSTDIR\resources\svn"
;Remove graphvis files.
RMDir /r "$INSTDIR\resources\graphvis"