[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