[scummvm-tools] 01/01: Initial packaging.
Stephen Kitt
skitt at moszumanska.debian.org
Mon Feb 8 14:29:42 UTC 2016
This is an automated email from the git hooks/post-receive script.
skitt pushed a commit to branch master
in repository scummvm-tools.
commit 1661c53851bc3bc6dd8a8db2ffc1bd073d98ebd4
Author: Stephen Kitt <steve at sk2.org>
Date: Sun Feb 7 23:20:52 2016 +0100
Initial packaging.
---
debian/changelog | 5 +
debian/clean | 5 +
debian/compat | 1 +
debian/control | 41 +++
debian/copyright | 94 +++++++
debian/docs | 3 +
debian/patches/compilation-fixes.patch | 14 +
debian/patches/series | 4 +
debian/patches/spelling-fixes.patch | 38 +++
debian/patches/tests-broken.patch | 29 +++
debian/patches/tests-missing-data.patch | 442 ++++++++++++++++++++++++++++++++
debian/rules | 21 ++
debian/source/format | 1 +
debian/watch | 4 +
14 files changed, 702 insertions(+)
diff --git a/debian/changelog b/debian/changelog
new file mode 100644
index 0000000..0f4a595
--- /dev/null
+++ b/debian/changelog
@@ -0,0 +1,5 @@
+scummvm-tools (1.7.0-1) unstable; urgency=low
+
+ * Initial release. Closes: #653617.
+
+ -- Stephen Kitt <skitt at debian.org> Sun, 07 Feb 2016 23:20:38 +0100
diff --git a/debian/clean b/debian/clean
new file mode 100644
index 0000000..b486091
--- /dev/null
+++ b/debian/clean
@@ -0,0 +1,5 @@
+config.log
+decompiler/test/disassembler/*.o
+config.h
+config.mk
+scummvm-tools-conf.cpp
diff --git a/debian/compat b/debian/compat
new file mode 100644
index 0000000..ec63514
--- /dev/null
+++ b/debian/compat
@@ -0,0 +1 @@
+9
diff --git a/debian/control b/debian/control
new file mode 100644
index 0000000..d0980e6
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,41 @@
+Source: scummvm-tools
+Section: games
+Priority: optional
+Maintainer: Debian Games Team <pkg-games-devel at lists.alioth.debian.org>
+Uploaders:
+ Stephen Kitt <skitt at debian.org>
+Build-Depends:
+ autotools-dev,
+ debhelper (>=9),
+ libboost-program-options-dev,
+ libflac-dev,
+ libfreetype6-dev,
+ libmad0-dev,
+ libpng-dev,
+ libvorbis-dev,
+ libwxgtk3.0-dev,
+ python,
+ zlib1g-dev
+Standards-Version: 3.9.6
+Homepage: http://wiki.scummvm.org/index.php/User_Manual/Appendix:_Tools
+Vcs-Git: https://anonscm.debian.org/git/pkg-games/scummvm-tools.git
+Vcs-Browser: https://anonscm.debian.org/cgit/pkg-games/scummvm-tools.git
+
+Package: scummvm-tools
+Architecture: any
+Multi-Arch: foreign
+Depends:
+ ${misc:Depends},
+ ${shlibs:Depends}
+Description: collection of tools for ScummVM
+ This package contains various tools which may be useful in
+ conjunction with ScummVM.
+ .
+ The tools include:
+ * compression tools to re-compress ScummVM games' assets;
+ * extraction tools, either to extract resources from game assets, or
+ to convert assets from one format to another (e.g. PC Engine or
+ Macintosh releases);
+ * game script analysis tools.
+ .
+ A GUI is provided alongside the command-line tools.
diff --git a/debian/copyright b/debian/copyright
new file mode 100644
index 0000000..73bf8b0
--- /dev/null
+++ b/debian/copyright
@@ -0,0 +1,94 @@
+Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: scummvm-tools
+Source: http://www.scummvm.org
+
+Files: *
+Copyright: 2001-2014 ScummVM Team
+License: GPL-2.0+
+
+Files:
+ config.guess
+ config.sub
+Copyright: 1992-2009 Free Software Foundation, Inc.
+License: permissive
+ Auto-generated file under the permissive license.
+
+Files: convert_dxa.bat
+Copyright: 2006 oduverne
+ 2006-2012 ScummVM Team
+ 2008 NoiZe
+License: GPL-2.0+
+
+Files: convert_dxa.sh
+Copyright: 2006 crowley
+ 2006-2012 ScummVM Team
+License: GPL-2.0+
+
+Files:
+ sci/sfx/lists/gm_patches.c
+ sci/sfx/lists/mt32_timbres.c
+ sci/sfx/mt32_GM_mapping/gm_patches.c
+ sci/sfx/mt32_GM_mapping/main.c
+ sci/sfx/mt32_GM_mapping/mt32_timbres.c
+Copyright: 2000 Rickard Lind
+License: GPL-1.0
+
+Files: decompiler/test/cxxtest/*
+Copyright: 2008 Sandia Corporation
+License: LGPL-3.0
+
+Files: debian/*
+Copyright: 2016 Stephen Kitt
+License: GPL-2.0+
+
+License: GPL-2.0+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ as published by the Free Software Foundation; either version 2
+ of the License, or (at your option) any later version.
+ .
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ .
+ On Debian systems, the complete text of the GNU General Public License
+ Version 2 can be found in `/usr/share/common-licenses/GPL-2'.
+
+License: GPL-1.0
+ This program may be modified and copied freely according to the terms of
+ the GNU general public license (GPL), as long as the above copyright
+ notice and the licensing information contained herein are preserved.
+ .
+ Please refer to www.gnu.org for licensing details.
+ .
+ This work is provided AS IS, without warranty of any kind, expressed or
+ implied, including but not limited to the warranties of merchantibility,
+ noninfringement, and fitness for a specific purpose. The author will not
+ be held liable for any damage caused by this work or derivatives of it.
+ .
+ By using this source code, you agree to the licensing terms as stated
+ above.
+ .
+ On Debian systems, the complete text of the GNU General Public License
+ Version 1 can be found in `/usr/share/common-licenses/GPL-1'.
+
+License: LGPL-3.0
+ This package is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License version 3 as published by the Free Software Foundation.
+ .
+ This package is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+ .
+ On Debian systems, the complete text of the GNU Lesser General
+ Public License can be found in "/usr/share/common-licenses/LGPL-3".
diff --git a/debian/docs b/debian/docs
new file mode 100644
index 0000000..c6eab75
--- /dev/null
+++ b/debian/docs
@@ -0,0 +1,3 @@
+COPYRIGHT
+README
+TODO
diff --git a/debian/patches/compilation-fixes.patch b/debian/patches/compilation-fixes.patch
new file mode 100644
index 0000000..59111bb
--- /dev/null
+++ b/debian/patches/compilation-fixes.patch
@@ -0,0 +1,14 @@
+Description: Compilation fixes for GCC 5
+Author: Stephen Kitt <skitt at debian.org>
+
+--- a/decompiler/test/codegen.h
++++ b/decompiler/test/codegen.h
+@@ -51,7 +51,7 @@
+ std::basic_ios<cT, traits>(&m_sbuf),
+ std::basic_ostream<cT, traits>(&m_sbuf)
+ {
+- init(&m_sbuf);
++ this->init(&m_sbuf);
+ }
+
+ private:
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..883dd81
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1,4 @@
+spelling-fixes.patch
+compilation-fixes.patch
+tests-missing-data.patch
+tests-broken.patch
diff --git a/debian/patches/spelling-fixes.patch b/debian/patches/spelling-fixes.patch
new file mode 100644
index 0000000..c3d6e67
--- /dev/null
+++ b/debian/patches/spelling-fixes.patch
@@ -0,0 +1,38 @@
+Description: Spelling fixes
+Author: Stephen Kitt <skitt at debian.org>
+
+As suggested by Lintian:
+* excutable -> executable
+* occured -> occurred
+
+--- a/gui/pages.cpp
++++ b/gui/pages.cpp
+@@ -888,7 +888,7 @@
+
+ /*
+ "\nMP3 mode params:\n"
+- " --lame-path <path> Path to the lame excutable to use (default: lame)\n"
++ " --lame-path <path> Path to the lame executable to use (default: lame)\n"
+ " -b <rate> <rate> is the target bitrate(ABR)/minimal bitrate(VBR) (default:" minBitrDef_str "%d)\n"
+ " -B <rate> <rate> is the maximum VBR/ABR bitrate (default:%" maxBitrDef_str ")\n"
+ " --vbr LAME uses the VBR mode (default)\n"
+@@ -1522,7 +1522,7 @@
+ _success = true;
+ } catch (ToolException &err) {
+ wxMutexLocker lock(_output.mutex);
+- _output.buffer = _output.buffer + "\nFatal Error Occured: " + err.what() + "\n";
++ _output.buffer = _output.buffer + "\nFatal Error Occurred: " + err.what() + "\n";
+ }
+ _finished = true;
+ return NULL;
+--- a/compress.cpp
++++ b/compress.cpp
+@@ -1163,7 +1163,7 @@
+
+ if (_supportedFormats & AUDIO_MP3) {
+ os << "\nMP3 mode params:\n";
+- os << " --lame-path <path> Path to the lame excutable to use (default:lame)\n";
++ os << " --lame-path <path> Path to the lame executable to use (default:lame)\n";
+ os << " -b <rate> <rate> is the minimal bitrate (default:unset)\n";
+ os << " -B <rate> <rate> is the maximum bitrate (default:unset)\n";
+ os << " --vbr LAME uses the VBR mode (default)\n";
diff --git a/debian/patches/tests-broken.patch b/debian/patches/tests-broken.patch
new file mode 100644
index 0000000..8380d39
--- /dev/null
+++ b/debian/patches/tests-broken.patch
@@ -0,0 +1,29 @@
+Description: Disable broken test
+Author: Stephen Kitt <skitt at debian.org>
+
+This test is broken currently; disable it for the time being.
+
+--- a/decompiler/test/cfg_test.h
++++ b/decompiler/test/cfg_test.h
+@@ -134,21 +134,6 @@
+ delete engine;
+ }
+
+- void testShortCircuitDetection() {
+- InstVec insts;
+- Scumm::v6::Scummv6Engine *engine = new Scumm::v6::Scummv6Engine();
+- Disassembler *d = engine->getDisassembler(insts);
+- d->open("decompiler/test/short-circuit.dmp");
+- d->disassemble();
+- delete d;
+- ControlFlow *c = new ControlFlow(insts, engine);
+- c->createGroups();
+- Graph g = c->getGraph();
+- TS_ASSERT(boost::num_vertices(g) == 3);
+- delete c;
+- delete engine;
+- }
+-
+ void testWhileDetection() {
+ InstVec insts;
+ Scumm::v6::Scummv6Engine *engine = new Scumm::v6::Scummv6Engine();
diff --git a/debian/patches/tests-missing-data.patch b/debian/patches/tests-missing-data.patch
new file mode 100644
index 0000000..b8b2a54
--- /dev/null
+++ b/debian/patches/tests-missing-data.patch
@@ -0,0 +1,442 @@
+Description: Disable tests for which data isn't available
+Author: Stephen Kitt <skitt at debian.org>
+
+A number of tests require data from games; this data isn't available
+for the buildds and can't be included in the package. Because of the
+way the tests work, disabling them involves removing the code
+entirely.
+
+--- a/decompiler/test/disassembler_test.h
++++ b/decompiler/test/disassembler_test.h
+@@ -70,181 +70,4 @@
+ }
+ }
+
+- // This test requires script-15.dmp from Sam & Max: Hit The Road.
+- // 1ab08298c9c8fb4c77953756989c7449 *script-15.dmp
+- void testScummv6DisassemblerScript15() {
+- InstVec insts;
+- Scumm::v6::Scummv6Disassembler s(insts);
+- s.open("decompiler/test/script-15.dmp");
+- s.disassemble();
+- TS_ASSERT(insts.size() == 11);
+- TS_ASSERT(insts[0]->_address == 0);
+- TS_ASSERT(insts[0]->_opcode == 0x03);
+- TS_ASSERT(insts[0]->_name == "pushWordVar");
+- TS_ASSERT(insts[0]->_params[0]->getUnsigned() == 16384);
+- TS_ASSERT(insts[1]->_address == 3);
+- TS_ASSERT(insts[1]->_opcode == 0x43);
+- TS_ASSERT(insts[1]->_name == "writeWordVar");
+- TS_ASSERT(insts[1]->_params[0]->getUnsigned() == 197);
+- TS_ASSERT(insts[2]->_address == 6);
+- TS_ASSERT(insts[2]->_opcode == 0x01);
+- TS_ASSERT(insts[2]->_name == "pushWord");
+- TS_ASSERT(insts[2]->_params[0]->getSigned() == 0);
+- TS_ASSERT(insts[3]->_address == 9);
+- TS_ASSERT(insts[3]->_opcode == 0x01);
+- TS_ASSERT(insts[3]->_name == "pushWord");
+- TS_ASSERT(insts[3]->_params[0]->getSigned() == 11);
+- TS_ASSERT(insts[4]->_address == 12);
+- TS_ASSERT(insts[4]->_opcode == 0x01);
+- TS_ASSERT(insts[4]->_name == "pushWord");
+- TS_ASSERT(insts[4]->_params[0]->getSigned() == 0);
+- TS_ASSERT(insts[5]->_address == 15);
+- TS_ASSERT(insts[5]->_opcode == 0x5E);
+- TS_ASSERT(insts[5]->_name == "startScript");
+- TS_ASSERT(insts[6]->_address == 16);
+- TS_ASSERT(insts[6]->_opcode == 0x01);
+- TS_ASSERT(insts[6]->_name == "pushWord");
+- TS_ASSERT(insts[6]->_params[0]->getSigned() == 0);
+- TS_ASSERT(insts[7]->_address == 19);
+- TS_ASSERT(insts[7]->_opcode == 0x01);
+- TS_ASSERT(insts[7]->_name == "pushWord");
+- TS_ASSERT(insts[7]->_params[0]->getSigned() == 14);
+- TS_ASSERT(insts[8]->_address == 22);
+- TS_ASSERT(insts[8]->_opcode == 0x01);
+- TS_ASSERT(insts[8]->_name == "pushWord");
+- TS_ASSERT(insts[8]->_params[0]->getSigned() == 0);
+- TS_ASSERT(insts[9]->_address == 25);
+- TS_ASSERT(insts[9]->_opcode == 0x5E);
+- TS_ASSERT(insts[9]->_name == "startScript");
+- TS_ASSERT(insts[10]->_address == 26);
+- TS_ASSERT(insts[10]->_opcode == 0x66);
+- TS_ASSERT(insts[10]->_name == "stopObjectCodeB");
+- }
+-
+- // This test requires script-31.dmp from Sam & Max: Hit The Road.
+- // f75f7ce110f378735d449f8eeb4a68e5 *script-31.dmp
+- void testScummv6DisassemblerScript31() {
+- InstVec insts;
+- Scumm::v6::Scummv6Disassembler s(insts);
+- s.open("decompiler/test/script-31.dmp");
+- s.disassemble();
+- TS_ASSERT(insts.size() == 5);
+- TS_ASSERT(insts[0]->_address == 0);
+- TS_ASSERT(insts[0]->_opcode == 0x01);
+- TS_ASSERT(insts[0]->_name == "pushWord");
+- TS_ASSERT(insts[0]->_params[0]->getSigned() == 0);
+- TS_ASSERT(insts[1]->_address == 3);
+- TS_ASSERT(insts[1]->_opcode == 0x43);
+- TS_ASSERT(insts[1]->_name == "writeWordVar");
+- TS_ASSERT(insts[1]->_params[0]->getUnsigned() == 180);
+- TS_ASSERT(insts[2]->_address == 6);
+- TS_ASSERT(insts[2]->_opcode == 0x01);
+- TS_ASSERT(insts[2]->_name == "pushWord");
+- TS_ASSERT(insts[2]->_params[0]->getSigned() == 0);
+- TS_ASSERT(insts[3]->_address == 9);
+- TS_ASSERT(insts[3]->_opcode == 0x43);
+- TS_ASSERT(insts[3]->_name == "writeWordVar");
+- TS_ASSERT(insts[3]->_params[0]->getUnsigned() == 181);
+- TS_ASSERT(insts[4]->_address == 12);
+- TS_ASSERT(insts[4]->_opcode == 0x66);
+- TS_ASSERT(insts[4]->_name == "stopObjectCodeB");
+- }
+-
+- // This test requires script-33.dmp from Sam & Max: Hit The Road.
+- // 9f09418bf34abbdec0ec54f388d8dca4 *script-33.dmp
+- void testScummv6DisassemblerScript33() {
+- InstVec insts;
+- Scumm::v6::Scummv6Disassembler s(insts);
+- s.open("decompiler/test/script-33.dmp");
+- s.disassemble();
+- TS_ASSERT(insts.size() == 10);
+- TS_ASSERT(insts[0]->_address == 0);
+- TS_ASSERT(insts[0]->_opcode == 0x01);
+- TS_ASSERT(insts[0]->_name == "pushWord");
+- TS_ASSERT(insts[0]->_params[0]->getSigned() == 0);
+- TS_ASSERT(insts[1]->_address == 3);
+- TS_ASSERT(insts[1]->_opcode == 0x43);
+- TS_ASSERT(insts[1]->_name == "writeWordVar");
+- TS_ASSERT(insts[1]->_params[0]->getUnsigned() == 71);
+- TS_ASSERT(insts[2]->_address == 6);
+- TS_ASSERT(insts[2]->_opcode == 0x03);
+- TS_ASSERT(insts[2]->_name == "pushWordVar");
+- TS_ASSERT(insts[2]->_params[0]->getUnsigned() == 177);
+- TS_ASSERT(insts[3]->_address == 9);
+- TS_ASSERT(insts[3]->_opcode == 0x43);
+- TS_ASSERT(insts[3]->_name == "writeWordVar");
+- TS_ASSERT(insts[3]->_params[0]->getUnsigned() == 173);
+- TS_ASSERT(insts[4]->_address == 12);
+- TS_ASSERT(insts[4]->_opcode == 0x01);
+- TS_ASSERT(insts[4]->_name == "pushWord");
+- TS_ASSERT(insts[4]->_params[0]->getSigned() == 874);
+- TS_ASSERT(insts[5]->_address == 15);
+- TS_ASSERT(insts[5]->_opcode == 0x43);
+- TS_ASSERT(insts[5]->_name == "writeWordVar");
+- TS_ASSERT(insts[5]->_params[0]->getUnsigned() == 177);
+- TS_ASSERT(insts[6]->_address == 18);
+- TS_ASSERT(insts[6]->_opcode == 0x03);
+- TS_ASSERT(insts[6]->_name == "pushWordVar");
+- TS_ASSERT(insts[6]->_params[0]->getUnsigned() == 177);
+- TS_ASSERT(insts[7]->_address == 21);
+- TS_ASSERT(insts[7]->_opcode == 0x01);
+- TS_ASSERT(insts[7]->_name == "pushWord");
+- TS_ASSERT(insts[7]->_params[0]->getSigned() == 93);
+- TS_ASSERT(insts[8]->_address == 24);
+- TS_ASSERT(insts[8]->_opcode == 0x6B99);
+- TS_ASSERT(insts[8]->_name == "cursorCommand.setCursorImg");
+- TS_ASSERT(insts[9]->_address == 26);
+- TS_ASSERT(insts[9]->_opcode == 0x66);
+- TS_ASSERT(insts[9]->_name == "stopObjectCodeB");
+- }
+-
+- // This test requires room-9-202.dmp from Sam & Max: Hit The Road.
+- // f010dc659264674a2b6da298acd0b88b *room-9-202.dmp
+- void testScummv6StackChangeFixRoom9202() {
+- InstVec insts;
+- Scumm::v6::Scummv6Disassembler s(insts);
+- s.open("decompiler/test/room-9-202.dmp");
+- s.disassemble();
+- InstIterator it = insts.end();
+- it -= 8;
+- TS_ASSERT((*it)->_stackChange == -3);
+- }
+-
+- // This test requires script-30.dmp from Sam & Max: Hit The Road.
+- // 6e48faca13e1f6df9341567608962744 *script-30.dmp
+- void testScummv6StackChangeFixScript30() {
+- InstVec insts;
+- Scumm::v6::Scummv6Disassembler s(insts);
+- s.open("decompiler/test/script-30.dmp");
+- s.disassemble();
+- InstIterator it = insts.end();
+- it -= 3;
+- TS_ASSERT((*it)->_stackChange == -6);
+- }
+-
+- // This test requires _START04.EMC from the CD demo of
+- // Legend of Kyrandia: Hand of Fate, found in MISC_EMC.PAK.
+- // Extract using extract_kyra from the scummvm-tools-cli bundle.
+- // ba2821ac6da96394ce0af75a3cbe48eb *_START04.EMC
+- void testKyra2Start04() {
+- InstVec insts;
+- Kyra::Kyra2Engine engine;
+- Disassembler* s = engine.getDisassembler(insts);
+- s->open("decompiler/test/_START04.EMC");
+- s->disassemble();
+-
+- TS_ASSERT(insts.size() == 481);
+-
+- //These scripts are far too big to check all instructions, so we just check a few different ones
+- TS_ASSERT(insts[16]->_address == 0x20);
+- TS_ASSERT(insts[16]->_opcode == 15);
+- TS_ASSERT(insts[16]->_name == "ifNotJmp");
+- TS_ASSERT(insts[16]->_stackChange == -1);
+- TS_ASSERT(insts[38]->_address == 0x54);
+- TS_ASSERT(insts[38]->_opcode == 14);
+- TS_ASSERT(insts[38]->_name == "o1_setHandItem");
+- TS_ASSERT(insts[38]->_stackChange == 0);
+-
+- delete s;
+- }
+ };
+--- a/decompiler/test/cfg_test.h
++++ b/decompiler/test/cfg_test.h
+@@ -559,112 +559,4 @@
+ delete engine;
+ }
+
+- // This test requires script-30.dmp from Sam & Max: Hit The Road.
+- // 6e48faca13e1f6df9341567608962744 *script-30.dmp
+- void testSamAndMaxScript30() {
+- InstVec insts;
+- Scumm::v6::Scummv6Engine *engine = new Scumm::v6::Scummv6Engine();
+- Disassembler *d = engine->getDisassembler(insts);
+- d->open("decompiler/test/script-30.dmp");
+- d->disassemble();
+- delete d;
+- ControlFlow *c = new ControlFlow(insts, engine);
+- c->createGroups();
+- Graph g = c->analyze();
+- VertexRange range = boost::vertices(g);
+- for (VertexIterator it = range.first; it != range.second; ++it) {
+- GroupPtr gr = GET(*it);
+- switch ((*gr->_start)->_address) {
+- case 0x6:
+- TS_ASSERT(gr->_type == kWhileCondGroupType);
+- TS_ASSERT(!gr->_startElse);
+- TS_ASSERT(gr->_endElse.empty());
+- break;
+- case 0x19:
+- case 0x3A:
+- case 0x4F:
+- case 0x68:
+- case 0x74: // Allow inclusion of the pop instruction immediately before
+- case 0x75:
+- case 0x92:
+- TS_ASSERT(gr->_type == kIfCondGroupType);
+- TS_ASSERT(!gr->_startElse);
+- TS_ASSERT(gr->_endElse.empty());
+- break;
+- case 0x8B:
+- TS_ASSERT(gr->_type == kNormalGroupType);
+- TS_ASSERT(gr->_startElse);
+- TS_ASSERT(gr->_endElse.size() == 1 && (*gr->_endElse[0]->_start)->_address == 0x8B);
+- break;
+- case 0x91:
+- TS_ASSERT(gr->_type == kNormalGroupType || gr->_type == kIfCondGroupType); // Allow inclusion of the pop instruction immediately before
+- TS_ASSERT(gr->_startElse);
+- TS_ASSERT(gr->_endElse.empty());
+- break;
+- case 0xA6:
+- TS_ASSERT(gr->_type == kNormalGroupType);
+- TS_ASSERT(!gr->_startElse);
+- TS_ASSERT(gr->_endElse.size() == 1 && (*gr->_endElse[0]->_start)->_address == 0x91);
+- break;
+- default:
+- TS_ASSERT(gr->_type == kNormalGroupType);
+- TS_ASSERT(!gr->_startElse);
+- TS_ASSERT(gr->_endElse.empty());
+- break;
+- }
+- }
+- delete c;
+- delete engine;
+- }
+-
+- // This test requires _START04.EMC from the CD demo of
+- // Legend of Kyrandia: Hand of Fate, found in MISC_EMC.PAK.
+- // Extract using extract_kyra from the scummvm-tools-cli bundle.
+- // ba2821ac6da96394ce0af75a3cbe48eb *_START04.EMC
+- void testFunctionDetection() {
+- InstVec insts;
+- Kyra::Kyra2Engine *engine = new Kyra::Kyra2Engine();
+- Disassembler *d = engine->getDisassembler(insts);
+- d->open("decompiler/test/_START04.EMC");
+- d->disassemble();
+- delete d;
+- ControlFlow *c = new ControlFlow(insts, engine);
+- c->createGroups();
+- Graph g = c->analyze();
+- TS_ASSERT(engine->_functions.size() == 15);
+- FuncMap::iterator it = engine->_functions.begin();
+- TS_ASSERT(it->first == 0x0);
+- ++it;
+- TS_ASSERT(it->first == 0x7E);
+- ++it;
+- TS_ASSERT(it->first == 0xFC);
+- ++it;
+- TS_ASSERT(it->first == 0x100);
+- ++it;
+- TS_ASSERT(it->first == 0x1F4);
+- ++it;
+- TS_ASSERT(it->first == 0x1F8);
+- ++it;
+- TS_ASSERT(it->first == 0x276);
+- ++it;
+- TS_ASSERT(it->first == 0x278);
+- ++it;
+- TS_ASSERT(it->first == 0x2DE);
+- ++it;
+- TS_ASSERT(it->first == 0x2E0);
+- ++it;
+- TS_ASSERT(it->first == 0x30C);
+- ++it;
+- TS_ASSERT(it->first == 0x30E);
+- ++it;
+- TS_ASSERT(it->first == 0x33A);
+- ++it;
+- TS_ASSERT(it->first == 0x33C);
+- ++it;
+- TS_ASSERT(it->first == 0x33E);
+- ++it;
+-
+- delete c;
+- delete engine;
+- }
+ };
+--- a/decompiler/test/codegen.h
++++ b/decompiler/test/codegen.h
+@@ -202,132 +202,4 @@
+ delete engine;
+ }
+
+- // This test requires script-30 and script-48.dmp from Sam & Max: Hit The Road.
+- // 6e48faca13e1f6df9341567608962744 *script-30.dmp
+- // afd7dc5d377894b3b9d0504927adf1b1 *script-48.dmp
+- void testCoalescing() {
+- InstVec insts;
+- Scumm::v6::Scummv6Engine *engine = new Scumm::v6::Scummv6Engine();
+- Disassembler *d = engine->getDisassembler(insts);
+- d->open("decompiler/test/script-30.dmp");
+- d->disassemble();
+- delete d;
+- ControlFlow *c = new ControlFlow(insts, engine);
+- c->createGroups();
+- Graph g = c->analyze();
+- onullstream ns;
+- CodeGenerator *cg = engine->getCodeGenerator(ns);
+- cg->generate(g);
+-
+- VertexIterator v = boost::vertices(g).first;
+- GroupPtr gr = GET(*v);
+- // Find first node
+- while (gr->_prev != NULL)
+- gr = gr->_prev;
+- // Find vertex to test
+- while ((*gr->_start)->_address != 0x91)
+- gr = gr->_next;
+-
+- TS_ASSERT(gr->_code.size() == 2);
+- TS_ASSERT(removeSpaces(gr->_code[0]._line).compare("}else{") == 0);
+- TS_ASSERT(removeSpaces(gr->_code[1]._line).substr(0, 2).compare("if") == 0);
+-
+- delete cg;
+- delete c;
+- delete engine;
+-
+- insts.clear();
+- engine = new Scumm::v6::Scummv6Engine();
+- d = engine->getDisassembler(insts);
+- d->open("decompiler/test/script-48.dmp");
+- d->disassemble();
+- delete d;
+- c = new ControlFlow(insts, engine);
+- c->createGroups();
+- g = c->analyze();
+- cg = engine->getCodeGenerator(ns);
+- cg->generate(g);
+-
+- v = boost::vertices(g).first;
+- gr = GET(*v);
+- // Find first node
+- while (gr->_prev != NULL)
+- gr = gr->_prev;
+- // Find vertex to test
+- while ((*gr->_start)->_address != 0x191)
+- gr = gr->_next;
+-
+- TS_ASSERT(gr->_code.size() == 1);
+- TS_ASSERT(removeSpaces(gr->_code[0]._line).substr(0, 7).compare("}elseif") == 0);
+-
+- delete cg;
+- delete c;
+- delete engine;
+- }
+-
+- // This test requires _START04.EMC from the CD demo of
+- // Legend of Kyrandia: Hand of Fate, found in MISC_EMC.PAK.
+- // Extract using extract_kyra from the scummvm-tools-cli bundle.
+- // ba2821ac6da96394ce0af75a3cbe48eb *_START04.EMC
+- void testKyra2Start04CodeGen() {
+- InstVec insts;
+- Kyra::Kyra2Engine *engine = new Kyra::Kyra2Engine();
+- Disassembler *d = engine->getDisassembler(insts);
+- d->open("decompiler/test/_START04.EMC");
+- d->disassemble();
+- delete d;
+- ControlFlow *c = new ControlFlow(insts, engine);
+- c->createGroups();
+- Graph g = c->analyze();
+- engine->postCFG(insts, g);
+- onullstream ns;
+- CodeGenerator *cg = engine->getCodeGenerator(ns);
+- cg->generate(g);
+-
+- VertexIterator v = boost::vertices(g).first;
+- std::vector<std::string> output, expected;
+- expected.push_back("auto_sub0x278(param1, param2, param3, param4) {");
+- expected.push_back("if (var1 > param1 && var1 < param3 && var2 > param2 && var2 < param4) {");
+- expected.push_back("retval = o1_queryGameFlag(3);");
+- expected.push_back("if (retval) {");
+- expected.push_back("retval = o2_drawBox(param1, param2, param3, param4, 199);");
+- expected.push_back("}");
+- expected.push_back("retval = 1;");
+- expected.push_back("return;");
+- expected.push_back("}");
+- expected.push_back("retval = o1_queryGameFlag(3);");
+- expected.push_back("if (retval) {");
+- expected.push_back("retval = o2_drawBox(param1, param2, param3, param4, 132);");
+- expected.push_back("}");
+- expected.push_back("retval = 0;");
+- expected.push_back("return;");
+- expected.push_back("}");
+-
+- GroupPtr gr = GET(*v);
+- // Find first node
+- while (gr->_prev != NULL)
+- gr = gr->_prev;
+-
+- // Find right starting node
+- while ((*gr->_start)->_address != 0x278)
+- gr = gr->_next;
+-
+- // Copy out all lines of code from function
+- while ((*gr->_start)->_address <= 0x2DC) {
+- for (std::vector<CodeLine>::iterator it = gr->_code.begin(); it != gr->_code.end(); ++it) {
+- if (it->_line.compare("") != 0)
+- output.push_back(it->_line);
+- }
+- gr = gr->_next;
+- }
+- TS_ASSERT(output.size() == expected.size());
+- CodeIterator it, it2;
+- for (it = output.begin(), it2 = expected.begin(); it != output.end() && it2 != expected.end(); ++it, ++it2) {
+- TS_ASSERT(removeSpaces(*it).compare(removeSpaces(*it2)) == 0);
+- }
+-
+- delete cg;
+- delete c;
+- delete engine;
+- }
+ };
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 0000000..94d8f3e
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,21 @@
+#!/usr/bin/make -f
+
+export DEB_BUILD_MAINT_OPTIONS = hardening=+all
+
+%:
+ dh $@ --with autotools_dev
+
+override_dh_auto_clean:
+ [ ! -f config.mk ] || dh_auto_clean
+
+override_dh_auto_configure:
+ ./configure \
+ --prefix=/usr \
+ --bindir=/usr/games \
+ --datadir=/usr/share/games \
+ --mandir=/usr/share/man \
+ --libdir=/usr/lib/x86_64-linux-gnu \
+ --enable-verbose-build
+
+override_dh_installchangelogs:
+ dh_installchangelogs NEWS
diff --git a/debian/source/format b/debian/source/format
new file mode 100644
index 0000000..163aaf8
--- /dev/null
+++ b/debian/source/format
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/debian/watch b/debian/watch
new file mode 100644
index 0000000..39731d4
--- /dev/null
+++ b/debian/watch
@@ -0,0 +1,4 @@
+version=4
+opts="dirversionmangle=s/rc/~rc/" \
+ http://www.scummvm.org/frs/scummvm-tools/([\d+\.]+)/ \
+ @PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian uupdate
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/scummvm-tools.git
More information about the Pkg-games-commits
mailing list