diff options
Diffstat (limited to 'packaging')
40 files changed, 0 insertions, 5843 deletions
diff --git a/packaging/OSX/get.sh b/packaging/OSX/get.sh deleted file mode 100755 index bfaee6b61..000000000 --- a/packaging/OSX/get.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -# if have account in gitlab.com -git clone git@gitlab.com:manaplus/manaplus-xcode.git ../../Xcode diff --git a/packaging/OSX/gethttps.sh b/packaging/OSX/gethttps.sh deleted file mode 100755 index 549555e7a..000000000 --- a/packaging/OSX/gethttps.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -# if not have account in gitlab.com -git clone https://gitlab.com/manaplus/manaplus-xcode.git ../../Xcode diff --git a/packaging/debian/changelog b/packaging/debian/changelog deleted file mode 100644 index ef96f736a..000000000 --- a/packaging/debian/changelog +++ /dev/null @@ -1,525 +0,0 @@ -manaplus (1.6.4.23-2) UNRELEASED; urgency=medium - - * Adjust debian/copyright. - - -- Patrick Matthäi <pmatthaei@debian.org> Sun, 24 Apr 2016 12:16:34 +0200 - -manaplus (1.6.4.23-1) unstable; urgency=medium - - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Sun, 24 Apr 2016 11:49:16 +0200 - -manaplus (1.6.4.9-1) unstable; urgency=medium - - * New upstream release. - * Override false positive spelling-error-in-binary lintian warning. - - -- Patrick Matthäi <pmatthaei@debian.org> Sun, 17 Apr 2016 12:22:55 +0200 - -manaplus (1.6.3.26-1) unstable; urgency=medium - - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Wed, 30 Mar 2016 10:17:53 +0200 - -manaplus (1.6.3.12-1) unstable; urgency=medium - - * New upstream release. - * Enable full hardening. - - -- Patrick Matthäi <pmatthaei@debian.org> Thu, 17 Mar 2016 19:25:51 +0100 - -manaplus (1.6.2.13-1) unstable; urgency=medium - - * New upstream release. - * Bump Standards-Version to 3.9.7 (no changes required). - - -- Patrick Matthäi <pmatthaei@debian.org> Tue, 16 Feb 2016 13:24:18 +0100 - -manaplus (1.6.1.30-1) unstable; urgency=medium - - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Mon, 01 Feb 2016 14:16:42 +0100 - -manaplus (1.6.1.16-1) unstable; urgency=medium - - * New upstream release. - * Adjust debian/copyright. - * Update build depdency to libpng-dev. - Closes: #810192 - - -- Patrick Matthäi <pmatthaei@debian.org> Mon, 18 Jan 2016 10:09:13 +0100 - -manaplus (1.6.1.2-1) unstable; urgency=medium - - * New upstream release. - * Adjust debian/copyright. - - -- Patrick Matthäi <pmatthaei@debian.org> Mon, 04 Jan 2016 11:48:33 +0100 - -manaplus (1.5.12.19-1) unstable; urgency=medium - - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Mon, 21 Dec 2015 13:36:58 +0100 - -manaplus (1.5.12.5-1) unstable; urgency=medium - - * New upstream release. - - Adjust file list in debian/copyright. - * Overwrite false positive missing-license-paragraph-in-dep5-copyright - lintian warning. - - -- Patrick Matthäi <pmatthaei@debian.org> Wed, 16 Dec 2015 10:42:32 +0100 - -manaplus (1.5.11.7-1) unstable; urgency=medium - - * New upstream release. - * Adjust debian/copyright. - - -- Patrick Matthäi <pmatthaei@debian.org> Wed, 11 Nov 2015 13:33:42 +0100 - -manaplus (1.5.10.24-1) unstable; urgency=medium - - * New upstream release. - * Adjust debian/copyright. - - -- Patrick Matthäi <pmatthaei@debian.org> Mon, 26 Oct 2015 17:56:26 +0100 - -manaplus (1.5.10.10-1) unstable; urgency=medium - - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Mon, 12 Oct 2015 16:01:14 +0200 - -manaplus (1.5.9.26-1) unstable; urgency=medium - - * New upstream release. - * Adjust debian/copyright. - - -- Patrick Matthäi <pmatthaei@debian.org> Tue, 06 Oct 2015 10:15:05 +0200 - -manaplus (1.5.9.12-1) unstable; urgency=medium - - * New upstream release. - * Adjust debian/copyright. - - -- Patrick Matthäi <pmatthaei@debian.org> Mon, 21 Sep 2015 14:21:46 +0200 - -manaplus (1.5.8.29-1) unstable; urgency=medium - - * New upstream release. - * Fix some debian/copyright lintian warnings. - - -- Patrick Matthäi <pmatthaei@debian.org> Wed, 02 Sep 2015 20:27:04 +0200 - -manaplus (1.5.8.15-1) unstable; urgency=medium - - * New upstream release. - - Adjust debian/copyright. - * Add missing license paragraphs. - - -- Patrick Matthäi <pmatthaei@debian.org> Thu, 27 Aug 2015 19:32:00 +0200 - -manaplus (1.5.8.1-1) unstable; urgency=medium - - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Tue, 04 Aug 2015 10:56:05 +0200 - -manaplus (1.5.7.18-1) unstable; urgency=medium - - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Mon, 27 Jul 2015 17:58:54 +0200 - -manaplus (1.5.7.4-1) unstable; urgency=low - - * New upstream release. - * Remove around 3700 useless lines from debian/copyright. - - -- Patrick Matthäi <pmatthaei@debian.org> Tue, 07 Jul 2015 10:12:39 +0200 - -manaplus (1.5.6.20-1) unstable; urgency=low - - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Mon, 22 Jun 2015 10:46:24 +0200 - -manaplus (1.5.6.6-1) unstable; urgency=low - - * New upstream release. - - Adjust debian/copyright. - - -- Patrick Matthäi <pmatthaei@debian.org> Tue, 16 Jun 2015 13:36:42 +0200 - -manaplus (1.5.5.23-1) unstable; urgency=low - - * New upstream release. - - Adjust debian/copyright. - - -- Patrick Matthäi <pmatthaei@debian.org> Fri, 29 May 2015 11:51:16 +0200 - -manaplus (1.5.5.9-1) unstable; urgency=low - - * New upstream release. - - Adjust debian/copyright. - - -- Patrick Matthäi <pmatthaei@debian.org> Tue, 12 May 2015 20:07:43 +0200 - -manaplus (1.5.4.25-1) unstable; urgency=low - - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Sun, 26 Apr 2015 13:46:44 +0200 - -manaplus (1.5.4.11-1) unstable; urgency=low - - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Mon, 13 Apr 2015 18:42:23 +0200 - -manaplus (1.5.3.14-1) unstable; urgency=low - - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Tue, 17 Mar 2015 15:42:44 +0100 - -manaplus (1.5.2.28-1) unstable; urgency=low - - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Mon, 02 Mar 2015 08:40:07 +0100 - -manaplus (1.5.2.14-1) unstable; urgency=low - - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Sat, 14 Feb 2015 16:30:45 +0100 - -manaplus (1.5.1.31-1) unstable; urgency=low - - * New upstream release. - * Fix some wildcard-matches-nothing-in-dep5-copyright warnings. - - -- Patrick Matthäi <pmatthaei@debian.org> Thu, 05 Feb 2015 10:52:57 +0100 - -manaplus (1.5.1.17-1) unstable; urgency=low - - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Mon, 19 Jan 2015 19:32:00 +0100 - -manaplus (1.5.1.3-1) unstable; urgency=low - - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Wed, 07 Jan 2015 11:00:54 +0100 - -manaplus (1.4.12.20-1) unstable; urgency=low - - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Tue, 30 Dec 2014 19:26:33 +0100 - -manaplus (1.4.12.6-1) unstable; urgency=low - - [ Andrei Karas ] - * Updated debian/copyright. - - [ Patrick Matthäi ] - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Fri, 12 Dec 2014 18:24:32 +0100 - -manaplus (1.4.11.8-1) unstable; urgency=low - - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Sun, 09 Nov 2014 21:20:57 +0100 - -manaplus (1.4.10.25-1) unstable; urgency=low - - [ Andrei Karas ] - * Updated debian/copyright. - - [ Patrick Matthäi ] - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Mon, 27 Oct 2014 18:15:40 +0100 - -manaplus (1.4.10.11-1) unstable; urgency=medium - - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Sun, 12 Oct 2014 12:23:57 +0200 - -manaplus (1.4.9.27-1) unstable; urgency=medium - - * New upstream release. - * Bump Standards-Version to 3.9.6 (no changes required). - - -- Patrick Matthäi <pmatthaei@debian.org> Tue, 30 Sep 2014 18:10:18 +0200 - -manaplus (1.4.9.14-1) unstable; urgency=medium - - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Wed, 17 Sep 2014 10:40:04 +0200 - -manaplus (1.4.8.30-1) unstable; urgency=medium - - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Wed, 03 Sep 2014 10:15:37 +0200 - -manaplus (1.4.8.16-1) unstable; urgency=medium - - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Wed, 20 Aug 2014 09:15:48 +0200 - -manaplus (1.4.8.2-1) unstable; urgency=medium - - [ Andrei Karas ] - * Enable parallel building (Closes: #755944) - - [ Patrick Matthäi ] - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Thu, 07 Aug 2014 10:14:44 +0200 - -manaplus (1.4.7.19-1) unstable; urgency=medium - - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Thu, 24 Jul 2014 19:07:38 +0200 - -manaplus (1.4.7.5-1) unstable; urgency=medium - - * New upstream release. - * Switch away from hardening-wrapper. - - -- Patrick Matthäi <pmatthaei@debian.org> Mon, 07 Jul 2014 13:21:59 +0200 - -manaplus (1.4.6.7-1) unstable; urgency=medium - - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Tue, 10 Jun 2014 10:47:30 +0200 - -manaplus (1.4.5.24-1) unstable; urgency=medium - - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Tue, 27 May 2014 10:43:52 +0200 - -manaplus (1.4.5.10-1) unstable; urgency=medium - - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Sat, 10 May 2014 22:13:42 +0200 - -manaplus (1.4.4.26-1) unstable; urgency=medium - - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Mon, 28 Apr 2014 09:57:12 +0200 - -manaplus (1.4.4.12-1) unstable; urgency=medium - - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Mon, 14 Apr 2014 21:15:45 +0200 - -manaplus (1.4.3.29-1) unstable; urgency=low - - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Mon, 31 Mar 2014 11:43:54 +0200 - -manaplus (1.4.3.15-1) unstable; urgency=low - - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Mon, 17 Mar 2014 10:03:57 +0100 - -manaplus (1.4.3.1.1-1) unstable; urgency=low - - [ Andrei Karas ] - * Remove guichan from dependency. - - [ Patrick Matthäi ] - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Thu, 06 Mar 2014 09:57:20 +0100 - -manaplus (1.4.2.15-1) unstable; urgency=low - - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Thu, 20 Feb 2014 11:25:50 +0100 - -manaplus (1.4.2.1-1) unstable; urgency=low - - [ Andrei Karas ] - * Add missing directories into package - * Add fonts-wqy-microhei into recommends - - [ Patrick Matthäi ] - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Wed, 12 Feb 2014 09:14:45 +0100 - -manaplus (1.4.1.18-1) unstable; urgency=low - - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Mon, 20 Jan 2014 10:44:16 +0100 - -manaplus (1.4.1.4-1) unstable; urgency=low - - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Fri, 10 Jan 2014 11:00:12 +0100 - -manaplus (1.3.12.22-1) unstable; urgency=low - - [ Andrei Karas ] - * Update copyright file. - - [ Patrick Matthäi ] - * New upstream release. - * Remove another extra license file. - - -- Patrick Matthäi <pmatthaei@debian.org> Fri, 03 Jan 2014 11:32:13 +0100 - -manaplus (1.3.11.24-1) unstable; urgency=low - - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Mon, 02 Dec 2013 13:52:14 +0100 - -manaplus (1.3.11.10-1) unstable; urgency=low - - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Mon, 18 Nov 2013 15:19:44 +0100 - -manaplus (1.3.10.27.2-1) unstable; urgency=low - - * New upstream release. - * Bump Standards-Version to 3.9.5 (no changes needed). - * Don't explicitly request xz compression - dpkg 1.17 does this by default. - - -- Patrick Matthäi <pmatthaei@debian.org> Fri, 08 Nov 2013 11:57:04 +0100 - -manaplus (1.3.10.12-1) unstable; urgency=low - - * New upstream release. - * Overwrite false positive lintian warning about a spelling error. - - -- Patrick Matthäi <pmatthaei@debian.org> Tue, 15 Oct 2013 10:30:56 +0200 - -manaplus (1.3.9.29-1) unstable; urgency=low - - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Mon, 07 Oct 2013 10:26:14 +0200 - -manaplus (1.3.9.15-1) unstable; urgency=low - - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Tue, 17 Sep 2013 10:35:51 +0200 - -manaplus (1.3.9.1-1) unstable; urgency=low - - [ Andrei Karas ] - * Add new files to copyright file. - - [ Patrick Matthäi ] - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Mon, 02 Sep 2013 10:54:55 +0200 - -manaplus (1.3.8.18-1) unstable; urgency=low - - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Wed, 21 Aug 2013 08:50:08 +0200 - -manaplus (1.3.8.4-1) unstable; urgency=low - - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Tue, 13 Aug 2013 10:18:49 +0200 - -manaplus (1.3.7.21-1) unstable; urgency=low - - [ Andrei Karas ] - * Add new files to copyright file. - - [ Patrick Matthäi ] - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Tue, 23 Jul 2013 12:48:43 +0200 - -manaplus (1.3.7.7.1-1) unstable; urgency=low - - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Thu, 11 Jul 2013 10:09:41 +0200 - -manaplus (1.3.6.9-1) unstable; urgency=low - - [ Andrei Karas ] - * Add new files to copyright file. - - [ Patrick Matthäi ] - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Mon, 10 Jun 2013 10:53:26 +0200 - -manaplus (1.3.5.26-1) unstable; urgency=low - - [ Andrei Karas ] - * Add new files to copyright file. - * Update homepage URL. - - [ Patrick Matthäi ] - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Mon, 27 May 2013 09:14:03 +0200 - -manaplus (1.3.5.12-1) unstable; urgency=low - - [ Andrei Karas ] - * Add new files to copyright file. - - [ Patrick Matthäi ] - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Sat, 18 May 2013 21:06:29 +0200 - -manaplus (1.3.4.28-1) unstable; urgency=low - - [ Andrei Karas ] - * Add new files to copyright file. - - [ Patrick Matthäi ] - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Sun, 05 May 2013 21:01:43 +0200 - -manaplus (1.3.4.14-1) unstable; urgency=low - - [ Andrei Karas ] - * Initial release (Closes: #627141) - - [ Patrick Matthäi ] - * New upstream release. - - -- Patrick Matthäi <pmatthaei@debian.org> Thu, 18 Apr 2013 12:49:18 +0200 diff --git a/packaging/debian/compat b/packaging/debian/compat deleted file mode 100644 index ec635144f..000000000 --- a/packaging/debian/compat +++ /dev/null @@ -1 +0,0 @@ -9 diff --git a/packaging/debian/control b/packaging/debian/control deleted file mode 100644 index 406256830..000000000 --- a/packaging/debian/control +++ /dev/null @@ -1,73 +0,0 @@ -Source: manaplus -Section: games -Priority: optional -Homepage: http://manaplus.org/ -Maintainer: Andrei Karas <akaras@inbox.ru> -Uploaders: Patrick Matthäi <pmatthaei@debian.org> -Standards-Version: 3.9.7 -Build-Depends: debhelper (>= 9), - libcurl4-gnutls-dev, - libgl1-mesa-dev, - libsdl1.2-dev, - libsdl-image1.2-dev, - libsdl-net1.2-dev, - libsdl-mixer1.2-dev, - libphysfs-dev, - libpng-dev, - libxml2-dev, - zlib1g-dev, - libsdl-ttf2.0-dev, - libsdl-gfx1.2-dev, - dh-autoreconf, - autopoint - -Package: manaplus -Architecture: any -Depends: ${shlibs:Depends}, - ${misc:Depends}, - manaplus-data (= ${source:Version}), - xsel, - x11-utils, - xdg-utils -Suggests: mumble -Description: Extended client for Evol Online and The Mana World - ManaPlus is an extended client for Evol Online, The Mana World, and similar - servers based on a fork of eAthena. Evol Online is a 2D fantasy-style game - which aims to create a friendly environment for interacting with others where - people can escape reality and enjoy themselves. The Mana World (TMW) is a - serious effort to create an innovative free and open source MMORPG. - TMW uses 2D graphics and aims to create a large and diverse interactive world. - -Package: manaplus-dbg -Section: debug -Architecture: any -Priority: extra -Depends: ${misc:Depends}, - manaplus (= ${binary:Version}) -Description: Extended client for Evol Online and The Mana World (debugging symbols) - ManaPlus is an extended client for Evol Online, The Mana World, and similar - servers based on a fork of eAthena. Evol Online is a 2D fantasy-style game - which aims to create a friendly environment for interacting with others where - people can escape reality and enjoy themselves. The Mana World (TMW) is a - serious effort to create an innovative free and open source MMORPG. - TMW uses 2D graphics and aims to create a large and diverse interactive world. - . - This package provides debugging symbols for the manaplus package. - -Package: manaplus-data -Architecture: all -Depends: ${misc:Depends}, - ttf-dejavu-core, - fonts-liberation -Recommends: manaplus, - fonts-mplus, - fonts-wqy-microhei -Description: Extended client for Evol Online and The Mana World (data files) - ManaPlus is an extended client for Evol Online, The Mana World, and similar - servers based on a fork of eAthena. Evol Online is a 2D fantasy-style game - which aims to create a friendly environment for interacting with others where - people can escape reality and enjoy themselves. The Mana World (TMW) is a - serious effort to create an innovative free and open source MMORPG. - TMW uses 2D graphics and aims to create a large and diverse interactive world. - . - This package contains the data files. diff --git a/packaging/debian/copyright b/packaging/debian/copyright deleted file mode 100644 index 846ea7e19..000000000 --- a/packaging/debian/copyright +++ /dev/null @@ -1,1094 +0,0 @@ -Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ -Upstream-Name: manaplus -Source: http://download.evolonline.org/manaplus/download/ - -Files: * -Copyright: 2004-2009 The Mana World Development Team - 2009-2010 The Mana Developers - 2011-2014 The ManaPlus Developers -License: GPL-2 - 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 St, 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". - -Files: src/debug/* -Copyright: 2004-2008 Wu Yongwei <adah at users dot sourceforge dot net> - 2012-2014 The ManaPlus Developers -License: zlib - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - . - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - . - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. - . - This file is part of Stones of Nvwa: - http://sourceforge.net/projects/nvwa - . - original version changed for ManaPlus - -Files: src/sdl2gfx/* -Copyright: 2001-2012 Andreas Schiffler - 2013-2014 The ManaPlus Developers -License: zlib - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - . - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - . - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - . - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - . - 3. This notice may not be removed or altered from any source - distribution. - -Files: src/particle/animationparticle.cpp - src/particle/animationparticle.h - src/gui/widgets/dropdown.cpp - src/gui/widgets/dropdown.h - src/gui/widgets/textpreview.cpp - src/gui/widgets/textpreview.h - src/particle/imageparticle.cpp - src/particle/imageparticle.h - src/particle/particle.cpp - src/particle/particle.h - src/particle/particleemitter.cpp - src/particle/particleemitter.h - src/particle/particleemitterprop.h - src/particle/rotationalparticle.cpp - src/particle/rotationalparticle.h - src/particle/textparticle.cpp - src/particle/textparticle.h -Copyright: 2006-2009 The Mana World Development Team - 2009-2010 The Mana Developers - 2011-2014 The ManaPlus Developers -License: GPL-2 - -Files: src/being/beingflag.h - src/being/compounditem.h - src/being/homunculusinfo.h - src/being/mercenaryinfo.h - src/being/petinfo.h - src/gamemodifiers.cpp - src/gamemodifiers.h - src/gui/buttoninfo.h - src/gui/buttontext.h - src/gui/colorpair.h - src/gui/fonts/textchunklist.cpp - src/gui/fonts/textchunklist.h - src/gui/fonts/textchunksmall.cpp - src/gui/fonts/textchunksmall.h - src/gui/models/colormodel.cpp - src/gui/models/colormodel.h - src/gui/models/extendedlistmodel.h - src/gui/models/extendednamesmodel.cpp - src/gui/models/extendednamesmodel.h - src/gui/models/fontsizechoicelistmodel.h - src/gui/models/listmodel.h - src/gui/models/namesmodel.cpp - src/gui/models/namesmodel.h - src/gui/models/opengllistmodel.h - src/gui/models/questsmodel.h - src/gui/themeinfo.h - src/gui/touchactiondata.cpp - src/gui/touchactiondata.h - src/gui/widgets/equipmentbox.h - src/gui/widgets/equipmentpage.h - src/gui/widgets/extendedlistboxitem.h - src/gui/widgets/setupbuttonitem.cpp - src/gui/widgets/setupbuttonitem.h - src/gui/widgets/tabs/chat/gmtab.cpp - src/gui/widgets/tabs/chat/gmtab.h - src/gui/widgets/tabs/chat/langtab.cpp - src/gui/widgets/tabs/chat/langtab.h - src/gui/widgets/tabs/shortcuttab.h - src/gui/widgets/tabs/socialattacktab.h - src/gui/widgets/tabs/socialfriendsfunctor.h - src/gui/widgets/tabs/socialfriendstab.h - src/gui/widgets/tabs/socialnavigationtab.h - src/gui/widgets/tabs/socialpickuptab.h - src/gui/widgets/tabs/socialplayerstab.h - src/gui/widgets/tabs/socialtabbase.h - src/input/inputactionsortfunctor.h - src/input/inputfunction.h - src/input/inputitem.h - src/input/pages/chat.cpp - src/input/pages/chat.h - src/input/pages/gui.cpp - src/input/pages/gui.h - src/listeners/awaylistener.h - src/listeners/charrenamelistener.cpp - src/listeners/charrenamelistener.h - src/listeners/focuslistener.h - src/listeners/pincodelistener.cpp - src/listeners/pincodelistener.h - src/listeners/playerlistener.cpp - src/listeners/playerlistener.h - src/listeners/renamelistener.cpp - src/listeners/renamelistener.h - src/listeners/uploadlistener.cpp - src/net/auctionhandler.h - src/net/bankhandler.h - src/net/buyingstorehandler.h - src/net/cashshophandler.h - src/net/eathena/auctionhandler.cpp - src/net/eathena/auctionhandler.h - src/net/eathena/bankhandler.cpp - src/net/eathena/bankhandler.h - src/net/eathena/buyingstorehandler.cpp - src/net/eathena/buyingstorehandler.h - src/net/eathena/cashshophandler.cpp - src/net/eathena/cashshophandler.h - src/net/eathena/elementalhandler.cpp - src/net/eathena/elementalhandler.h - src/net/eathena/familyhandler.cpp - src/net/eathena/familyhandler.h - src/net/eathena/friendshandler.cpp - src/net/eathena/friendshandler.h - src/net/eathena/homunculushandler.cpp - src/net/eathena/homunculushandler.h - src/net/eathena/mailhandler.cpp - src/net/eathena/mailhandler.h - src/net/eathena/mercenaryhandler.cpp - src/net/eathena/mercenaryhandler.h - src/net/eathena/serverfeatures.cpp - src/net/eathena/serverfeatures.h - src/net/elementalhandler.h - src/net/familyhandler.h - src/net/friendshandler.h - src/net/homunculushandler.h - src/net/mailhandler.h - src/net/mercenaryhandler.h - src/net/packetlimiter.cpp - src/net/packetlimiter.h - src/net/questhandler.h - src/net/serverfeatures.h - src/net/tmwa/auctionhandler.cpp - src/net/tmwa/auctionhandler.h - src/net/tmwa/bankhandler.cpp - src/net/tmwa/bankhandler.h - src/net/tmwa/buyingstorehandler.cpp - src/net/tmwa/buyingstorehandler.h - src/net/tmwa/cashshophandler.cpp - src/net/tmwa/cashshophandler.h - src/net/tmwa/elementalhandler.cpp - src/net/tmwa/elementalhandler.h - src/net/tmwa/familyhandler.cpp - src/net/tmwa/familyhandler.h - src/net/tmwa/friendshandler.cpp - src/net/tmwa/friendshandler.h - src/net/tmwa/homunculushandler.cpp - src/net/tmwa/homunculushandler.h - src/net/tmwa/mailhandler.cpp - src/net/tmwa/mailhandler.h - src/net/tmwa/mercenaryhandler.cpp - src/net/tmwa/mercenaryhandler.h - src/net/tmwa/serverfeatures.cpp - src/net/tmwa/serverfeatures.h - src/resources/delayedmanager.cpp - src/resources/delayedmanager.h - src/resources/map/mapitem.cpp - src/resources/map/mapitem.h - src/resources/map/maprowvertexes.h - src/resources/map/objectslayer.cpp - src/resources/map/objectslayer.h - src/resources/map/speciallayer.cpp - src/resources/map/speciallayer.h - src/resources/modinfo.cpp - src/resources/modinfo.h - src/resources/skillowner.h - src/resources/skilltype.h - src/utils/booleanoptions.h - src/utils/chatutils.cpp - src/utils/chatutils.h - src/utils/gettexthelper.cpp - src/utils/gettexthelper.h -Copyright: 2011-2014 The ManaPlus Developers -License: GPL-2 - -Files: src/events/actionevent.h - src/events/event.h - src/events/inputevent.h - src/events/inputguievent.h - src/events/keyevent.h - src/events/mouseevent.h - src/events/selectionevent.h - src/gui/cliprect.cpp - src/gui/cliprect.h - src/gui/color.cpp - src/gui/color.h - src/gui/rect.cpp - src/gui/rect.h - src/gui/widgets/basiccontainer.cpp - src/gui/widgets/basiccontainer.h - src/gui/widgets/basiccontainer2.cpp - src/gui/widgets/basiccontainer2.h - src/gui/widgets/widget.cpp - src/gui/widgets/widget.h - src/input/key.cpp - src/input/key.h - src/input/mouseinput.h - src/listeners/actionlistener.h - src/listeners/keylistener.h - src/listeners/mouselistener.h - src/listeners/selectionlistener.h - src/listeners/widgetlistener.h - src/utils/sdlpixel.h -Copyright: 2011-2014 The ManaPlus Developers - 2004-2008 Olof Naessén and Per Larsson -License: GPL-2 - -Files: src/gui/models/sortlistmodelinv.h - src/gui/models/soundsmodel.h - src/gui/models/updatetypemodel.h - src/gui/widgets/flowcontainer.cpp - src/gui/widgets/flowcontainer.h - src/gui/widgets/horizontcontainer.cpp - src/gui/widgets/horizontcontainer.h - src/events/mouseevent.h - src/gui/widgets/vertcontainer.cpp - src/gui/widgets/vertcontainer.h - src/net/download.cpp - src/net/download.h - src/net/ea/guildhandler.cpp - src/net/ea/guildhandler.h - src/net/eathena/guildhandler.cpp - src/net/eathena/guildhandler.h - src/net/tmwa/guildhandler.cpp - src/net/tmwa/guildhandler.h - src/resources/ambientlayer.cpp - src/resources/ambientlayer.h -Copyright: 2009-2010 The Mana Developers - 2011-2014 The ManaPlus Developers -License: GPL-2 - -Files: src/utils/base64.cpp -Copyright: 1997-2000 PHP Development Team -License: GPL-2+ or PHP - -License: GPL-2+ - 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 St, 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: PHP - Redistribution and use in source and binary forms, with or without - modification, is 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 documentation and/or other materials provided - with the distribution. - . - 3. The name "PHP" must not be used to endorse or promote products - derived from this software without prior permission from the - PHP Group. This does not apply to add-on libraries or tools - that work in conjunction with PHP. In such a case the PHP - name may be used to indicate that the product supports PHP. - . - 4. The PHP Group may publish revised and/or new versions of the - license from time to time. Each version will be given a - distinguishing version number. - Once covered code has been published under a particular version - of the license, you may always continue to use it under the - terms of that version. You may also choose to use such covered - code under the terms of any subsequent version of the license - published by the PHP Group. No one other than the PHP Group has - the right to modify the terms applicable to covered code created - under this License. - . - 5. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes PHP, freely available from - http://www.php.net/". - . - 6. The software incorporates the Zend Engine, a product of Zend - Technologies, Ltd. ("Zend"). The Zend Engine is licensed to the - PHP Association (pursuant to a grant from Zend that can be - found at http://www.php.net/license/ZendGrant/) for - distribution to you under this license agreement, only as a - part of PHP. In the event that you separate the Zend Engine - (or any portion thereof) from the rest of the software, or - modify the Zend Engine, or any portion thereof, your use of the - separated or modified Zend Engine software shall not be governed - by this license, and instead shall be governed by the license - set forth at http://www.zend.com/license/ZendLicense/. - . - THIS SOFTWARE IS PROVIDED BY THE PHP DEVELOPMENT TEAM ``AS IS'' AND - ANY EXPRESSED 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 PHP - DEVELOPMENT TEAM OR ITS CONTRIBUTORS 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. - -Files: src/utils/base64.h -Copyright: 1997-1998 PHP Development Team -License: GPL-2+ or PHP - -Files: src/net/beinghandler.h -Copyright: 2004 The Mana World Development Team - 2012-2014 The ManaPlus Developers -License: GPL-2 - -Files: src/gui/windows/outfitwindow.cpp - src/gui/windows/outfitwindow.h - src/gui/windows/shortcutwindow.cpp - src/gui/windows/shortcutwindow.h - src/gui/widgets/containerplacer.cpp - src/gui/widgets/containerplacer.h - src/gui/widgets/itemshortcutcontainer.cpp - src/gui/widgets/itemshortcutcontainer.h - src/gui/widgets/layout.cpp - src/gui/widgets/layout.h - src/gui/widgets/shortcutcontainer.cpp - src/gui/widgets/shortcutcontainer.h - src/position.cpp - src/utils/gettext.h - src/utils/stringutils.cpp - src/utils/stringutils.h - src/vector.cpp - src/vector.h -Copyright: 2007-2009 The Mana World Development Team - 2009-2010 The Mana Developers - 2011-2014 The ManaPlus Developers -License: GPL-2 - -Files: src/gui/models/iconsmodel.h - src/gui/models/magicschoolmodel.h - src/gui/windows/editdialog.cpp - src/gui/windows/editdialog.h - src/gui/windows/killstats.cpp - src/gui/windows/killstats.h - src/gui/widgets/tabs/setup_theme.cpp - src/gui/widgets/tabs/setup_theme.h - src/gui/windows/textcommandeditor.cpp - src/gui/windows/textcommandeditor.h - src/gui/windows/whoisonline.cpp - src/gui/windows/whoisonline.h - src/gui/widgets/spellshortcutcontainer.cpp - src/gui/widgets/spellshortcutcontainer.h - src/spellmanager.cpp - src/spellmanager.h - src/textcommand.cpp - src/textcommand.h -Copyright: 2009 The Mana World Development Team - 2009-2010 Andrei Karas - 2011-2014 The ManaPlus Developers -License: GPL-2 - -Files: data/perserver/* - src/being/beingcacheentry.h - src/beingequipbackend.cpp - src/beingequipbackend.h - src/debug.h - src/graphicsvertexes.cpp - src/graphicsvertexes.h - src/gui/widgets/tabs/chat/langtab.cpp - src/gui/widgets/tabs/chat/langtab.h - src/gui/widgets/setupitem.cpp - src/gui/widgets/setupitem.h - src/gui/widgets/tabs/setuptabscroll.cpp - src/gui/widgets/tabs/setuptabscroll.h - src/gui/widgets/sliderlist.cpp - src/gui/widgets/sliderlist.h - src/localconsts.h - src/resources/db/deaddb.cpp - src/resources/db/deaddb.h - src/test/testlauncher.cpp - src/test/testlauncher.h - src/test/testmain.cpp - src/test/testmain.h - src/utils/langs.cpp - src/utils/langs.h - src/utils/paths.cpp - src/utils/paths.h - src/utils/process.cpp - src/utils/process.h - src/utils/timer.cpp - src/utils/timer.h -Copyright: 2011-2014 The ManaPlus Developers -License: GPL-2 - -Files: src/utils/copynpaste.cpp - src/utils/copynpaste.h -Copyright: 2001-2010 Wormux Team - 2011-2014 The ManaPlus Developers -License: GPL-2 - -Files: src/gui/sdlinput.cpp - src/gui/sdlinput.h -Copyright: 2004, 2005, 2006, 2007 Olof Naessén and Per Larsson - 2007-2010 The Mana World Development Team - 2011-2014 The ManaPlus Developers -License: BSD-3-clause - 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 - documentation and/or other materials provided with the distribution. - 3. Neither the name of the project nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - . - THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``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 PROJECT OR CONTRIBUTORS 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. - -Files: src/mumblemanager.h src/mumblemanager.cpp -Copyright: Mumble Wiki editors - The ManaPlus Developers -License: public-domain - Based on code from http://mumble.sourceforge.net/Link - Example for mumble integration. - . - Which is declared Public Domain: - All code listed below is in the public domain and can be used, shared or - modified freely. - -Files: src/utils/physfsrwops.cpp - src/utils/physfsrwops.h -Copyright: Ryan C. Gordon - 2012-2014 The ManaPlus Developers -License: public-domain - -Files: data/themes/golden-delicious/* -Copyright: 2012-2013 Francesco Miglietta - 2013 t3st3r - 2012-2014 ManaPlus developers -License: CC-BY-SA-3.0 - -Files: data/themes/jewelry/* -Copyright: 2012-2013 Francesco Miglietta - 2012-2014 ManaPlus developers -License: CC-BY-SA-3.0 - -Files: data/themes/pink/* -Copyright: 2011 Aline Ferraz de Souza - 2011-2014 ManaPlus developers -License: CC-BY-SA-3.0 - -Files: data/themes/unity/* -Copyright: 2011 Aline Ferraz de Souza - 2011-2014 ManaPlus developers -License: CC-BY-SA-3.0 - -Files: data/graphics/gui/target-cursor-in-range-l.xml - data/graphics/gui/target-cursor-in-range-m.xml - data/graphics/gui/target-cursor-in-range-s.xml - data/graphics/gui/target-cursor-normal-l.xml - data/graphics/gui/target-cursor-normal-m.xml - data/graphics/gui/target-cursor-normal-s.xml -Copyright: 2013 Alige - 2013 Evol Online - 2013-2014 The ManaPlus Developers -License: CC-BY-SA-3.0 - -Files: data/graphics/flags/* -Copyright: 2012-2013 Alige - 2012-2014 The ManaPlus Developers -License: CC-BY-SA-3.0 - -Files: data/graphics/sprites/arrow_down.png - data/graphics/sprites/arrow_left.png - data/graphics/sprites/arrow_right.png - data/graphics/sprites/arrow_up.png - data/graphics/gui/buttonplay.png -Copyright: 2011-2014 The ManaPlus Developers -License: CC-BY-SA-3.0 - -Files: data/sfx/system/attention.ogg - data/sfx/system/finish.ogg - data/sfx/system/start.ogg - data/sfx/system/notify.ogg - data/sfx/system/watcher.ogg - data/sfx/system/error.ogg - data/sfx/system/move.ogg - data/sfx/system/email.ogg - data/sfx/system/reminder.ogg -Comment: taken wav from psi-plus and converted to ogg -Copyright: 2009-2010 Rion (Sergey Ilinyh) <rion4ik@gmail.com> - 2009-2010 Khryukin Evgeny - 2009-2010 Virnik - 2006-2007 Maciej Niedzielski - 2009-2010 Kravtsov Nikolai - 2009-2010 VampiRus - 2009-2010 Ivan Borzenkov <ivan1986@list.ru> - 2011 Ivan Romanov aka taurus <drizt@land.ru> - 2003 Justin Karneges <justin@affinix.com> - 2010 senu - 2008 Ustyugov Roman <qtdevel@gmail.com> - 2010 Michail Pishchagin <mblsha@users.sourceforge.net> - 2010 Dmitriy.trt - 2008 Armando Jagucki - 2010 Vitaly Tonkacheyev - 2010 KukuRuzo - 2011 Aleksey Andreev -License: GPL-2+ - -Files: data/sfx/system/chat1.ogg - data/sfx/system/chat2.ogg - data/sfx/system/complete.ogg - data/sfx/system/incoming.ogg - data/sfx/system/offline.ogg - data/sfx/system/online.ogg - data/sfx/system/send.ogg -Comment: taken wav from psi-plus and converted to ogg -Copyright: 2001-2008 Justin Karneges <justin@affinix.com> - 2003-2009 Michail Pishchagin <mblsha@users.sourceforge.net> - 2001-2008 Remko Troncon - 2010-2011 Rion <rion4ik@gmail.com> - 2006-2007 Kevin Smith <kismith@psi-im.org>, - 2006-2008 Martin Hostettler - 2006-2008 Joonas Govenius - 1992-2007 Trolltech ASA. - 2005 SilverSoft.Net (Denis Kozadaev) <denis@silversoft.net> - 2009 Barracuda Networks, Inc. - 2010 Tobias Markmann - 2006 Cestonaro Thilo - 2007 Maciek Niedzielski -License: GPL-2+ with OpenSSL exception - 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, see <http://www.gnu.org/licenses/>. - . - On Debian systems, the complete text of the GNU General Public License - can be found in `/usr/share/common-licenses/GPL-2'. - . - As a special exception, Justin Karneges gives permission to link this program - with the Qt Library (commercial or non-commercial edition), and distribute the - resulting executable, without including the source code for the Qt library - in the source distribution. - . - As a special exception, Justin Karneges gives permission to link this program - with the OpenSSL Library (or with modified versions of it that use the same - license as the "OpenSSL" library), and distribute the linked executables. - You must obey the GNU General Public License in all respects for all of the - code used other than "OpenSSL". If you modify this file, you may extend this - exception to your version of the file, but you are not obligated to do so. If - you do not wish to do so, delete this exception statement from your version. - -Files: data/fonts/dejavusans-bold.ttf - data/fonts/dejavusans.ttf - data/fonts/dejavusansmono-bold.ttf - data/fonts/dejavusansmono.ttf - data/fonts/dejavuserifcondensed-bold.ttf - data/fonts/dejavuserifcondensed.ttf -Copyright: Stepan Roh <src@users.sourceforge.net> - abysta at yandex.ru - Adrian Schroeter - Aleksey Chalabyan - Andrey Valentinovich Panov - Ben Laenen - Besarion Gugushvili - Bhikkhu Pesala - Clayborne Arevalo - Dafydd Harries - Danilo Segan - Davide Viti - David Jez - David Lawrence Ramsey - Denis Jacquerye - Dwayne Bailey - Eugeniy Meshcheryakov - Gee Fung Sit - Heikki Lindroos - James Cloos - James Crippen - John Karp - Keenan Pepper - Lars Naesbye Christensen - Lior Halphon - MaEr - Mashrab Kuvatov - Max Berger - Mederic Boquien - Michael Everson - MihailJP - Misu Moldovan - Nguyen Thai Ngoc Duy - Nicolas Mailhot - Norayr Chilingarian - Ognyan Kulev - Ondrej Koala Vacha - Peter Cernak - Remy Oudompheng - Roozbeh Pournader - Rouben Hakobian - Sahak Petrosyan - Sander Vesik - Stepan Roh - Stephen Hartke - Steve Tinney - Tavmjong Bah - Thomas Henlich - Tim May - Valentin Stoykov - Vasek Stodulka - Wesley Transue -License: public-domain - -Files: data/fonts/mplus-1p-bold.ttf - data/fonts/mplus-1p-regular.ttf -Copyright: 2002-2012 Coji Morishita -License: public-domain - -License: CC-BY-SA-3.0 - THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE - COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY - COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS - AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. - . - BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE - TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY - BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS - CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND - CONDITIONS. - . - 1. Definitions - . - a. "Adaptation" means a work based upon the Work, or upon the Work and - other pre-existing works, such as a translation, adaptation, derivative - work, arrangement of music or other alterations of a literary or - artistic work, or phonogram or performance and includes cinematographic - adaptations or any other form in which the Work may be recast, - transformed, or adapted including in any form recognizably derived from - the original, except that a work that constitutes a Collection will not - be considered an Adaptation for the purpose of this License. For the - avoidance of doubt, where the Work is a musical work, performance or - phonogram, the synchronization of the Work in timed-relation with a - moving image ("synching") will be considered an Adaptation for the - purpose of this License. - . - b. "Collection" means a collection of literary or artistic works, such - as encyclopedias and anthologies, or performances, phonograms or - broadcasts, or other works or subject matter other than works listed in - Section 1(f) below, which, by reason of the selection and arrangement of - their contents, constitute intellectual creations, in which the Work is - included in its entirety in unmodified form along with one or more other - contributions, each constituting separate and independent works in - themselves, which together are assembled into a collective whole. A work - that constitutes a Collection will not be considered an Adaptation (as - defined below) for the purposes of this License. - . - c. "Creative Commons Compatible License" means a license that is listed - at http://creativecommons.org/compatiblelicenses that has been approved - by Creative Commons as being essentially equivalent to this License, - including, at a minimum, because that license: (i) contains terms that - have the same purpose, meaning and effect as the License Elements of - this License; and, (ii) explicitly permits the relicensing of - adaptations of works made available under that license under this - License or a Creative Commons jurisdiction license with the same License - Elements as this License. - . - d. "Distribute" means to make available to the public the original and - copies of the Work or Adaptation, as appropriate, through sale or other - transfer of ownership. - . - e. "License Elements" means the following high-level license attributes - as selected by Licensor and indicated in the title of this License: - Attribution, ShareAlike. - . - f. "Licensor" means the individual, individuals, entity or entities that - offer(s) the Work under the terms of this License. - . - g. "Original Author" means, in the case of a literary or artistic work, - the individual, individuals, entity or entities who created the Work or - if no individual or entity can be identified, the publisher; and in - addition (i) in the case of a performance the actors, singers, - musicians, dancers, and other persons who act, sing, deliver, declaim, - play in, interpret or otherwise perform literary or artistic works or - expressions of folklore; (ii) in the case of a phonogram the producer - being the person or legal entity who first fixes the sounds of a - performance or other sounds; and, (iii) in the case of broadcasts, the - organization that transmits the broadcast. - . - h. "Work" means the literary and/or artistic work offered under the - terms of this License including without limitation any production in the - literary, scientific and artistic domain, whatever may be the mode or - form of its expression including digital form, such as a book, pamphlet - and other writing; a lecture, address, sermon or other work of the same - nature; a dramatic or dramatico-musical work; a choreographic work or - entertainment in dumb show; a musical composition with or without words; - a cinematographic work to which are assimilated works expressed by a - process analogous to cinematography; a work of drawing, painting, - architecture, sculpture, engraving or lithography; a photographic work - to which are assimilated works expressed by a process analogous to - photography; a work of applied art; an illustration, map, plan, sketch - or three-dimensional work relative to geography, topography, - architecture or science; a performance; a broadcast; a phonogram; a - compilation of data to the extent it is protected as a copyrightable - work; or a work performed by a variety or circus performer to the extent - it is not otherwise considered a literary or artistic work. - . - i. "You" means an individual or entity exercising rights under this - License who has not previously violated the terms of this License with - respect to the Work, or who has received express permission from the - Licensor to exercise rights under this License despite a previous - violation. - . - j. "Publicly Perform" means to perform public recitations of the Work - and to communicate to the public those public recitations, by any means - or process, including by wire or wireless means or public digital - performances; to make available to the public Works in such a way that - members of the public may access these Works from a place and at a place - individually chosen by them; to perform the Work to the public by any - means or process and the communication to the public of the performances - of the Work, including by public digital performance; to broadcast and - rebroadcast the Work by any means including signs, sounds or images. - . - k. "Reproduce" means to make copies of the Work by any means including - without limitation by sound or visual recordings and the right of - fixation and reproducing fixations of the Work, including storage of a - protected performance or phonogram in digital form or other electronic - medium. - . - 2. Fair Dealing Rights. Nothing in this License is intended to reduce, - limit, or restrict any uses free from copyright or rights arising from - limitations or exceptions that are provided for in connection with the - copyright protection under copyright law or other applicable laws. - . - 3. License Grant. Subject to the terms and conditions of this License, - Licensor hereby grants You a worldwide, royalty-free, non-exclusive, - perpetual (for the duration of the applicable copyright) license to - exercise the rights in the Work as stated below: - . - a. to Reproduce the Work, to incorporate the Work into one or more - Collections, and to Reproduce the Work as incorporated in the - Collections; - . - b. to create and Reproduce Adaptations provided that any such - Adaptation, including any translation in any medium, takes reasonable - steps to clearly label, demarcate or otherwise identify that changes - were made to the original Work. For example, a translation could be - marked "The original work was translated from English to Spanish," or a - modification could indicate "The original work has been modified."; - . - c. to Distribute and Publicly Perform the Work including as incorporated - in Collections; and, - . - d. to Distribute and Publicly Perform Adaptations. - . - e. For the avoidance of doubt: - . - i. Non-waivable Compulsory License Schemes. In those jurisdictions in - which the right to collect royalties through any statutory or compulsory - licensing scheme cannot be waived, the Licensor reserves the exclusive - right to collect such royalties for any exercise by You of the rights - granted under this License; - . - ii. Waivable Compulsory License Schemes. In those jurisdictions in which - the right to collect royalties through any statutory or compulsory - licensing scheme can be waived, the Licensor waives the exclusive right - to collect such royalties for any exercise by You of the rights granted - under this License; and, - . - iii. Voluntary License Schemes. The Licensor waives the right to collect - royalties, whether individually or, in the event that the Licensor is a - member of a collecting society that administers voluntary licensing - schemes, via that society, from any exercise by You of the rights - granted under this License. - . - The above rights may be exercised in all media and formats whether now - known or hereafter devised. The above rights include the right to make - such modifications as are technically necessary to exercise the rights - in other media and formats. Subject to Section 8(f), all rights not - expressly granted by Licensor are hereby reserved. - . - 4. Restrictions. The license granted in Section 3 above is expressly - made subject to and limited by the following restrictions: - . - a. You may Distribute or Publicly Perform the Work only under the terms - of this License. You must include a copy of, or the Uniform Resource - Identifier (URI) for, this License with every copy of the Work You - Distribute or Publicly Perform. You may not offer or impose any terms on - the Work that restrict the terms of this License or the ability of the - recipient of the Work to exercise the rights granted to that recipient - under the terms of the License. You may not sublicense the Work. You - must keep intact all notices that refer to this License and to the - disclaimer of warranties with every copy of the Work You Distribute or - Publicly Perform. When You Distribute or Publicly Perform the Work, You - may not impose any effective technological measures on the Work that - restrict the ability of a recipient of the Work from You to exercise the - rights granted to that recipient under the terms of the License. This - Section 4(a) applies to the Work as incorporated in a Collection, but - this does not require the Collection apart from the Work itself to be - made subject to the terms of this License. If You create a Collection, - upon notice from any Licensor You must, to the extent practicable, - remove from the Collection any credit as required by Section 4(c), as - requested. If You create an Adaptation, upon notice from any Licensor - You must, to the extent practicable, remove from the Adaptation any - credit as required by Section 4(c), as requested. - . - b. You may Distribute or Publicly Perform an Adaptation only under the - terms of: (i) this License; (ii) a later version of this License with - the same License Elements as this License; (iii) a Creative Commons - jurisdiction license (either this or a later license version) that - contains the same License Elements as this License (e.g., - Attribution-ShareAlike 3.0 US)); (iv) a Creative Commons Compatible - License. If you license the Adaptation under one of the licenses - mentioned in (iv), you must comply with the terms of that license. If - you license the Adaptation under the terms of any of the licenses - mentioned in (i), (ii) or (iii) (the "Applicable License"), you must - comply with the terms of the Applicable License generally and the - following provisions: (I) You must include a copy of, or the URI for, - the Applicable License with every copy of each Adaptation You Distribute - or Publicly Perform; (II) You may not offer or impose any terms on the - Adaptation that restrict the terms of the Applicable License or the - ability of the recipient of the Adaptation to exercise the rights - granted to that recipient under the terms of the Applicable License; - (III) You must keep intact all notices that refer to the Applicable - License and to the disclaimer of warranties with every copy of the Work - as included in the Adaptation You Distribute or Publicly Perform; (IV) - when You Distribute or Publicly Perform the Adaptation, You may not - impose any effective technological measures on the Adaptation that - restrict the ability of a recipient of the Adaptation from You to - exercise the rights granted to that recipient under the terms of the - Applicable License. This Section 4(b) applies to the Adaptation as - incorporated in a Collection, but this does not require the Collection - apart from the Adaptation itself to be made subject to the terms of the - Applicable License. - . - c. If You Distribute, or Publicly Perform the Work or any Adaptations or - Collections, You must, unless a request has been made pursuant to - Section 4(a), keep intact all copyright notices for the Work and - provide, reasonable to the medium or means You are utilizing: (i) the - name of the Original Author (or pseudonym, if applicable) if supplied, - and/or if the Original Author and/or Licensor designate another party or - parties (e.g., a sponsor institute, publishing entity, journal) for - attribution ("Attribution Parties") in Licensor's copyright notice, - terms of service or by other reasonable means, the name of such party or - parties; (ii) the title of the Work if supplied; (iii) to the extent - reasonably practicable, the URI, if any, that Licensor specifies to be - associated with the Work, unless such URI does not refer to the - copyright notice or licensing information for the Work; and (iv) , - consistent with Ssection 3(b), in the case of an Adaptation, a credit - identifying the use of the Work in the Adaptation (e.g., "French - translation of the Work by Original Author," or "Screenplay based on - original Work by Original Author"). The credit required by this Section - 4(c) may be implemented in any reasonable manner; provided, however, - that in the case of a Adaptation or Collection, at a minimum such credit - will appear, if a credit for all contributing authors of the Adaptation - or Collection appears, then as part of these credits and in a manner at - least as prominent as the credits for the other contributing authors. - For the avoidance of doubt, You may only use the credit required by this - Section for the purpose of attribution in the manner set out above and, - by exercising Your rights under this License, You may not implicitly or - explicitly assert or imply any connection with, sponsorship or - endorsement by the Original Author, Licensor and/or Attribution Parties, - as appropriate, of You or Your use of the Work, without the separate, - express prior written permission of the Original Author, Licensor and/or - Attribution Parties. - . - d. Except as otherwise agreed in writing by the Licensor or as may be - otherwise permitted by applicable law, if You Reproduce, Distribute or - Publicly Perform the Work either by itself or as part of any Adaptations - or Collections, You must not distort, mutilate, modify or take other - derogatory action in relation to the Work which would be prejudicial to - the Original Author's honor or reputation. Licensor agrees that in those - jurisdictions (e.g. Japan), in which any exercise of the right granted - in Section 3(b) of this License (the right to make Adaptations) would be - deemed to be a distortion, mutilation, modification or other derogatory - action prejudicial to the Original Author's honor and reputation, the - Licensor will waive or not assert, as appropriate, this Section, to the - fullest extent permitted by the applicable national law, to enable You - to reasonably exercise Your right under Section 3(b) of this License - (right to make Adaptations) but not otherwise. - . - 5. Representations, Warranties and Disclaimer - . - UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR - OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY - KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, - INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, - FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF - LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, - WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE - EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. - . - 6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE - LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR - ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES - ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS - BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - . - 7. Termination - . - a. This License and the rights granted hereunder will terminate - automatically upon any breach by You of the terms of this License. - Individuals or entities who have received Adaptations or Collections - from You under this License, however, will not have their licenses - terminated provided such individuals or entities remain in full - compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will - survive any termination of this License. - . - b. Subject to the above terms and conditions, the license granted here - is perpetual (for the duration of the applicable copyright in the Work). - Notwithstanding the above, Licensor reserves the right to release the - Work under different license terms or to stop distributing the Work at - any time; provided, however that any such election will not serve to - withdraw this License (or any other license that has been, or is - required to be, granted under the terms of this License), and this - License will continue in full force and effect unless terminated as - stated above. - . - 8. Miscellaneous - . - a. Each time You Distribute or Publicly Perform the Work or a - Collection, the Licensor offers to the recipient a license to the Work - on the same terms and conditions as the license granted to You under - this License. - . - b. Each time You Distribute or Publicly Perform an Adaptation, Licensor - offers to the recipient a license to the original Work on the same terms - and conditions as the license granted to You under this License. - . - c. If any provision of this License is invalid or unenforceable under - applicable law, it shall not affect the validity or enforceability of - the remainder of the terms of this License, and without further action - by the parties to this agreement, such provision shall be reformed to - the minimum extent necessary to make such provision valid and - enforceable. - . - d. No term or provision of this License shall be deemed waived and no - breach consented to unless such waiver or consent shall be in writing - and signed by the party to be charged with such waiver or consent. - . - e. This License constitutes the entire agreement between the parties - with respect to the Work licensed here. There are no understandings, - agreements or representations with respect to the Work not specified - here. Licensor shall not be bound by any additional provisions that may - appear in any communication from You. This License may not be modified - without the mutual written agreement of the Licensor and You. - . - f. The rights granted under, and the subject matter referenced, in this - License were drafted utilizing the terminology of the Berne Convention - for the Protection of Literary and Artistic Works (as amended on - September 28, 1979), the Rome Convention of 1961, the WIPO Copyright - Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and - the Universal Copyright Convention (as revised on July 24, 1971). These - rights and subject matter take effect in the relevant jurisdiction in - which the License terms are sought to be enforced according to the - corresponding provisions of the implementation of those treaty - provisions in the applicable national law. If the standard suite of - rights granted under applicable copyright law includes additional rights - not granted under this License, such additional rights are deemed to be - included in the License; this License is not intended to restrict the - license of any rights under applicable law. - -License: zlib - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - . - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - . - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. - -License: public-domain - this code is public domain. I make no warranty that it is useful, - correct, harmless, or environmentally safe. - . - This particular file may be used however you like, including copying it - verbatim into a closed-source project, exploiting it commercially, and - removing any trace of my name from the source (although I hope you won't - do that). I welcome enhancements and corrections to this file, but I do - not require you to send me patches if you make changes. This code has - NO WARRANTY. - -License: GPL-2 - 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 St, 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". diff --git a/packaging/debian/manaplus-data.install b/packaging/debian/manaplus-data.install deleted file mode 100644 index 186b1cf5a..000000000 --- a/packaging/debian/manaplus-data.install +++ /dev/null @@ -1,9 +0,0 @@ -usr/share/locale -usr/share/manaplus/data/graphics -usr/share/manaplus/data/help -usr/share/manaplus/data/icons -usr/share/manaplus/data/themes -usr/share/manaplus/data/sfx -usr/share/manaplus/data/sfx/system -usr/share/manaplus/data/perserver -usr/share/manaplus/data/translations diff --git a/packaging/debian/manaplus-data.links b/packaging/debian/manaplus-data.links deleted file mode 100644 index 0754ce07d..000000000 --- a/packaging/debian/manaplus-data.links +++ /dev/null @@ -1,11 +0,0 @@ -usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf usr/share/manaplus/data/fonts/dejavusans.ttf -usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf usr/share/manaplus/data/fonts/dejavusans-bold.ttf -usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono.ttf usr/share/manaplus/data/fonts/dejavusansmono.ttf -usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono-Bold.ttf usr/share/manaplus/data/fonts/dejavusansmono-bold.ttf -usr/share/fonts/truetype/liberation/LiberationSans-Bold.ttf usr/share/manaplus/data/fonts/liberationsans-bold.ttf -usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf usr/share/manaplus/data/fonts/liberationsans.ttf -usr/share/fonts/truetype/liberation/LiberationMono-Bold.ttf usr/share/manaplus/data/fonts/liberationsansmono-bold.ttf -usr/share/fonts/truetype/liberation/LiberationMono-Regular.ttf usr/share/manaplus/data/fonts/liberationsansmono.ttf -usr/share/fonts/truetype/mplus/mplus-1p-bold.ttf usr/share/manaplus/data/fonts/mplus-1p-bold.ttf -usr/share/fonts/truetype/mplus/mplus-1p-regular.ttf usr/share/manaplus/data/fonts/mplus-1p-regular.ttf -usr/share/fonts/truetype/wqy/wqy-microhei.ttc usr/share/manaplus/data/fonts/wqy-microhei.ttf diff --git a/packaging/debian/manaplus.docs b/packaging/debian/manaplus.docs deleted file mode 100644 index 594403310..000000000 --- a/packaging/debian/manaplus.docs +++ /dev/null @@ -1,3 +0,0 @@ -AUTHORS -README -docs/FAQ.txt diff --git a/packaging/debian/manaplus.install b/packaging/debian/manaplus.install deleted file mode 100644 index b6f7c99b6..000000000 --- a/packaging/debian/manaplus.install +++ /dev/null @@ -1,4 +0,0 @@ -usr/share/applications/manaplus.desktop -usr/share/manaplus/data/icons/manaplus.png usr/share/pixmaps -usr/games/manaplus -data/icons/manaplus.xpm usr/share/pixmaps diff --git a/packaging/debian/manaplus.lintian-overrides b/packaging/debian/manaplus.lintian-overrides deleted file mode 100644 index fb8da9244..000000000 --- a/packaging/debian/manaplus.lintian-overrides +++ /dev/null @@ -1,3 +0,0 @@ -manaplus: spelling-error-in-binary usr/games/manaplus dont don't -manaplus: spelling-error-in-binary usr/games/manaplus standart standard -manaplus: spelling-error-in-binary usr/games/manaplus spaw spawn diff --git a/packaging/debian/manaplus.manpages b/packaging/debian/manaplus.manpages deleted file mode 100644 index dfa31fe89..000000000 --- a/packaging/debian/manaplus.manpages +++ /dev/null @@ -1,2 +0,0 @@ -docs/manaplus.6 -docs/manaplustest.6 diff --git a/packaging/debian/manaplus.menu b/packaging/debian/manaplus.menu deleted file mode 100644 index df633b0e9..000000000 --- a/packaging/debian/manaplus.menu +++ /dev/null @@ -1,5 +0,0 @@ -?package(manaplus):needs="X11" section="Games/Adventure" \ - title="ManaPlus" \ - longtitle="ManaPlus is a 2D MMORPG client." \ - command="/usr/games/manaplus" \ - icon="/usr/share/pixmaps/manaplus.xpm" diff --git a/packaging/debian/rules b/packaging/debian/rules deleted file mode 100755 index 7533b4c82..000000000 --- a/packaging/debian/rules +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/make -f - -export DEB_BUILD_MAINT_OPTIONS = hardening=+all - -DEB_CONFIGURE_EXTRA_FLAGS := \ - --bindir=/usr/games - -override_dh_auto_configure: - dh_auto_configure -- $(DEB_CONFIGURE_EXTRA_FLAGS) - -override_dh_strip: - dh_strip -a --dbg-package=manaplus-dbg - -override_dh_install: - dh_install - rm -f $(CURDIR)/debian/manaplus-data/usr/share/manaplus/data/themes/jewelry/LICENSE.txt - rm -f $(CURDIR)/debian/manaplus-data/usr/share/manaplus/data/themes/golden-delicious/LICENSE.txt - -%: - dh $@ --parallel --with autoreconf diff --git a/packaging/debian/source.lintian-overrides b/packaging/debian/source.lintian-overrides deleted file mode 100644 index 615c5ddde..000000000 --- a/packaging/debian/source.lintian-overrides +++ /dev/null @@ -1,2 +0,0 @@ -manaplus source: dep5-copyright-license-name-not-unique -manaplus source: missing-license-paragraph-in-dep5-copyright gpl-2 diff --git a/packaging/debian/source/format b/packaging/debian/source/format deleted file mode 100644 index 163aaf8d8..000000000 --- a/packaging/debian/source/format +++ /dev/null @@ -1 +0,0 @@ -3.0 (quilt) diff --git a/packaging/debian/source/include-binaries b/packaging/debian/source/include-binaries deleted file mode 100644 index 95a390b97..000000000 --- a/packaging/debian/source/include-binaries +++ /dev/null @@ -1 +0,0 @@ -debian/upstream-signing-key.pgp diff --git a/packaging/debian/upstream-signing-key.pgp b/packaging/debian/upstream-signing-key.pgp Binary files differdeleted file mode 100644 index a8bfab91e..000000000 --- a/packaging/debian/upstream-signing-key.pgp +++ /dev/null diff --git a/packaging/debian/watch b/packaging/debian/watch deleted file mode 100644 index 1641bca30..000000000 --- a/packaging/debian/watch +++ /dev/null @@ -1,2 +0,0 @@ -version=3 -opts=pgpsigurlmangle=s/$/.sig/ http://download.evolonline.org/manaplus/download/latest/manaplus-([\d+.]+)\.tar\.xz diff --git a/packaging/nacl/ports/manaplus/build.sh b/packaging/nacl/ports/manaplus/build.sh deleted file mode 100755 index 19f97cabd..000000000 --- a/packaging/nacl/ports/manaplus/build.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/bash -# Copyright (c) 2011 The Native Client Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -ConfigureStep() { - Banner "Configuring ${PACKAGE_NAME}" - - SetupCrossEnvironment - - # export the nacl tools - export PKG_CONFIG_PATH=${NACLPORTS_LIBDIR}/pkgconfig - export PKG_CONFIG_LIBDIR=${NACLPORTS_LIBDIR} - - export SDL_CONFIG=${NACLPORTS_LIBDIR}/../bin/sdl-config - SDL_CFLAGS=`$SDL_CONFIG --cflags` - SDL_LIBS="-lSDL_image -lSDL_ttf -lSDL_mixer -lSDL_gfx -lSDL_net -lfreetype -ljpeg -lpng16 -lwebp -lvorbisfile -lvorbis -logg -lmikmod -lz -lbz2 -ltiff" - export LIBS="-L${NACLPORTS_LIBDIR} ${SDL_LIBS} -lnacl_io -lpthread -lRegal -lm" - export MANAPLUSDIR="${START_DIR}/src" - -# autoreconf -i ${SRC_DIR} - autoreconf -i ${MANAPLUSDIR} -# ${SRC_DIR}/configure - ${MANAPLUSDIR}/configure \ - --enable-naclbuild \ - --disable-nls \ - --with-opengl \ - --without-librt \ - --without-mumble \ - --without-dyecmd \ - --host=nacl \ - --prefix=${PREFIX} -} diff --git a/packaging/nacl/ports/manaplus/pkg_info b/packaging/nacl/ports/manaplus/pkg_info deleted file mode 100644 index 314dfb0b7..000000000 --- a/packaging/nacl/ports/manaplus/pkg_info +++ /dev/null @@ -1,6 +0,0 @@ -NAME=manaplus -VERSION=1 -#URL=https://gitlab.com/manaplus/manaplus.git@master -LICENSE=GPL -DEPENDS=(sdl sdl-gfx sdl-mixer sdl-ttf sdl-image sdl-net curl libxml2 libwebp zlib) -SHA1=4178d0c709b34b811d1781fc6dc183ea4979c2b5 diff --git a/packaging/nacl/ports/sdl-gfx/build.sh b/packaging/nacl/ports/sdl-gfx/build.sh deleted file mode 100755 index f7bfe8572..000000000 --- a/packaging/nacl/ports/sdl-gfx/build.sh +++ /dev/null @@ -1,11 +0,0 @@ -# Copyright (c) 2014 The Native Client Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -# sdl2-config --libs includes -lppapi which cannot be linked -# with shared libraries, so for now we disable the shared build. -# In the future we could instead filter out this flag or remove -# it and force SDL2 programs to add it themselves. -EXTRA_CONFIGURE_ARGS="--enable-mmx=no --host=nacl --disable-shared" -export RANLIB=${NACLRANLIB} - diff --git a/packaging/nacl/ports/sdl-gfx/pkg_info b/packaging/nacl/ports/sdl-gfx/pkg_info deleted file mode 100644 index a32b0f393..000000000 --- a/packaging/nacl/ports/sdl-gfx/pkg_info +++ /dev/null @@ -1,7 +0,0 @@ -NAME=sdl-gfx -VERSION=2.0.24 -ARCHIVE_ROOT=SDL_gfx-2.0.24 -URL=http://www.ferzkopp.net/Software/SDL_gfx-2.0/SDL_gfx-2.0.24.tar.gz -LICENSE=LGPL2 -DEPENDS=(sdl) -SHA1=34e8963188e4845557468a496066a8fa60d5f563 diff --git a/packaging/nacl/ports/sdl-net/build.sh b/packaging/nacl/ports/sdl-net/build.sh deleted file mode 100644 index 781e4fcfc..000000000 --- a/packaging/nacl/ports/sdl-net/build.sh +++ /dev/null @@ -1,9 +0,0 @@ -# Copyright (c) 2014 The Native Client Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -# sdl2-config --libs includes -lppapi which cannot be linked -# with shared libraries, so for now we disable the shared build. -# In the future we could instead filter out this flag or remove -# it and force SDL2 programs to add it themselves. -EXTRA_CONFIGURE_ARGS=--disable-shared diff --git a/packaging/nacl/ports/sdl-net/nacl.patch b/packaging/nacl/ports/sdl-net/nacl.patch deleted file mode 100644 index f07fdcffd..000000000 --- a/packaging/nacl/ports/sdl-net/nacl.patch +++ /dev/null @@ -1,1590 +0,0 @@ -diff -Naur a/Makefile.am b/Makefile.am ---- a/Makefile.am 2007-07-21 09:26:47.000000000 +0400 -+++ b/Makefile.am 2015-11-28 01:09:05.901015000 +0300 -@@ -8,7 +8,7 @@ - - libSDL_net_la_SOURCES = \ - SDLnet.c \ -- SDLnetTCP.c \ -+ SDLnetTCP.cpp \ - SDLnetUDP.c \ - SDLnetselect.c \ - SDLnetsys.h -diff -Naur a/Makefile.in b/Makefile.in ---- a/Makefile.in 2007-07-21 11:55:27.000000000 +0400 -+++ b/Makefile.in 2015-11-28 01:09:18.049151000 +0300 -@@ -244,7 +244,7 @@ - - libSDL_net_la_SOURCES = \ - SDLnet.c \ -- SDLnetTCP.c \ -+ SDLnetTCP.cpp \ - SDLnetUDP.c \ - SDLnetselect.c \ - SDLnetsys.h -diff -Naur a/SDLnetselect.c b/SDLnetselect.c ---- a/SDLnetselect.c 2007-07-02 06:04:03.000000000 +0400 -+++ b/SDLnetselect.c 2015-11-30 00:33:29.895731000 +0300 -@@ -111,109 +111,24 @@ - first. This function returns the number of sockets ready for reading, - or -1 if there was an error with the select() system call. - */ --#ifdef MACOS_OPENTRANSPORT --int SDLNet_CheckSockets(SDLNet_SocketSet set, Uint32 timeout) --{ --Uint32 stop; --int numReady; -- -- /* Loop, polling the network devices */ -- -- stop = SDL_GetTicks() + timeout; -- -- do -- { -- OTResult status; -- size_t numBytes; -- int i; -- -- numReady = 0; -- -- for (i = set->numsockets-1;i >= 0;--i) -- { -- status = OTLook( set->sockets[i]->channel ); -- if( status > 0 ) -- { -- switch( status ) -- { -- case T_UDERR: -- OTRcvUDErr( set->sockets[i]->channel , nil); -- break; -- case T_DISCONNECT: -- OTRcvDisconnect( set->sockets[i]->channel, nil ); -- break; -- case T_ORDREL: -- OTRcvOrderlyDisconnect(set->sockets[i]->channel ); -- break; -- case T_CONNECT: -- OTRcvConnect( set->sockets[i]->channel, nil ); -- break; -- -- -- default: -- set->sockets[i]->ready = 1; -- ++numReady; -- } -- } -- else if( OTCountDataBytes(set->sockets[i]->channel, &numBytes ) != kOTNoDataErr ) -- { -- set->sockets[i]->ready = 1; -- ++numReady; -- } -- else -- set->sockets[i]->ready = 0; -- } -- -- } while (!numReady && (SDL_GetTicks() < stop)); - -- return(numReady); --} --#else - int SDLNet_CheckSockets(SDLNet_SocketSet set, Uint32 timeout) - { - int i; -- SOCKET maxfd; - int retval; -- struct timeval tv; -- fd_set mask; -- -- /* Find the largest file descriptor */ -- maxfd = 0; -- for ( i=set->numsockets-1; i>=0; --i ) { -- if ( set->sockets[i]->channel > maxfd ) { -- maxfd = set->sockets[i]->channel; -- } -- } -- -- /* Check the file descriptors for available data */ -- do { -- errno = 0; -- -- /* Set up the mask of file descriptors */ -- FD_ZERO(&mask); -- for ( i=set->numsockets-1; i>=0; --i ) { -- FD_SET(set->sockets[i]->channel, &mask); -- } - -- /* Set up the timeout */ -- tv.tv_sec = timeout/1000; -- tv.tv_usec = (timeout%1000)*1000; -+ retval = 0; - -- /* Look! */ -- retval = select(maxfd+1, &mask, NULL, NULL, &tv); -- } while ( errno == EINTR ); -- -- /* Mark all file descriptors ready that have data available */ -- if ( retval > 0 ) { -- for ( i=set->numsockets-1; i>=0; --i ) { -- if ( FD_ISSET(set->sockets[i]->channel, &mask) ) { -- set->sockets[i]->ready = 1; -- } -- } -+ for (i = 0; i < set->numsockets; ++i) { -+ if (set->sockets[i]->ready) -+ retval++; -+ else -+#warning SDLNet_CheckSockets can work only with TCPsockets! -+ SDLNet_TCP_Recv (set->sockets[i], NULL, 0); - } -- return(retval); -+ -+ return retval; - } --#endif /* MACOS_OPENTRANSPORT */ - - /* Free a set of sockets allocated by SDL_NetAllocSocketSet() */ - extern void SDLNet_FreeSocketSet(SDLNet_SocketSet set) -diff -Naur a/SDLnetTCP.c b/SDLnetTCP.c ---- a/SDLnetTCP.c 2007-07-15 09:55:42.000000000 +0400 -+++ b/SDLnetTCP.c 1970-01-01 03:00:00.000000000 +0300 -@@ -1,953 +0,0 @@ --/* -- SDL_net: An example cross-platform network library for use with SDL -- Copyright (C) 1997-2004 Sam Lantinga -- -- This library is free software; you can redistribute it and/or -- modify it under the terms of the GNU Library General Public -- License as published by the Free Software Foundation; either -- version 2 of the License, or (at your option) any later version. -- -- This library 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 -- Library General Public License for more details. -- -- You should have received a copy of the GNU Library General Public -- License along with this library; if not, write to the Free -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -- -- Sam Lantinga -- slouken@libsdl.org --*/ -- --/* $Id: SDLnetTCP.c 3280 2007-07-15 05:55:42Z slouken $ */ -- --#include "SDLnetsys.h" --#include "SDL_net.h" -- --/* The network API for TCP sockets */ -- --/* Since the UNIX/Win32/BeOS code is so different from MacOS, -- we'll just have two completely different sections here. --*/ -- --#ifdef MACOS_OPENTRANSPORT -- --#include <Events.h> --#include <Threads.h> --#include <OpenTransport.h> --#include <OpenTptInternet.h> --#include <OTDebug.h> -- --struct _TCPsocket { -- int ready; -- SOCKET channel; -- -- // These are taken from GUSI interface. -- // I'm not sure if it's really necessary here yet -- // ( masahiro minami<elsur@aaa.letter.co.jp> ) -- // ( 01/02/19 ) -- OTEventCode curEvent; -- OTEventCode newEvent; -- OTEventCode event; -- OTEventCode curCompletion; -- OTEventCode newCompletion; -- OTEventCode completion; -- OSStatus error; -- TEndpointInfo info; -- Boolean readShutdown; -- Boolean writeShutdown; -- Boolean connected; -- OTConfigurationRef config; // Master configuration. you can clone this. -- TCPsocket nextListener; -- // ( end of new members --- masahiro minami<elsur@aaa.letter.co.jp> -- -- IPaddress remoteAddress; -- IPaddress localAddress; -- int sflag; -- -- // Maybe we don't need this---- it's from original SDL_net -- // (masahiro minami<elsur@aaa.letter.co.jp>) -- // ( 01/02/20 ) -- int rcvdPassConn; --}; -- --// To be used in WaitNextEvent() here and there.... --// (010311 masahiro minami<elsur@aaa.letter.co.jp>) --EventRecord macEvent; -- --#if TARGET_API_MAC_CARBON --/* for Carbon */ --OTNotifyUPP notifier; --#endif -- --/* Input: ep - endpointref on which to negotiate the option -- enableReuseIPMode - desired option setting - true/false -- Return: kOTNoError indicates that the option was successfully negotiated -- OSStatus is an error if < 0, otherwise, the status field is -- returned and is > 0. -- -- IMPORTANT NOTE: The endpoint is assumed to be in synchronous more, otherwise -- this code will not function as desired --*/ -- --/* --NOTE: As this version is written async way, we don't use this function... --(010526) masahiro minami<elsur@aaa.letter.co.jp> --*/ --/* --OSStatus DoNegotiateIPReuseAddrOption(EndpointRef ep, Boolean enableReuseIPMode) -- --{ -- UInt8 buf[kOTFourByteOptionSize]; // define buffer for fourByte Option size -- TOption* opt; // option ptr to make items easier to access -- TOptMgmt req; -- TOptMgmt ret; -- OSStatus err; -- -- if (!OTIsSynchronous(ep)) -- { -- return (-1); -- } -- opt = (TOption*)buf; // set option ptr to buffer -- req.opt.buf = buf; -- req.opt.len = sizeof(buf); -- req.flags = T_NEGOTIATE; // negotiate for option -- -- ret.opt.buf = buf; -- ret.opt.maxlen = kOTFourByteOptionSize; -- -- opt->level = INET_IP; // dealing with an IP Level function -- opt->name = IP_REUSEADDR; -- opt->len = kOTFourByteOptionSize; -- opt->status = 0; -- *(UInt32*)opt->value = enableReuseIPMode; // set the desired option level, true or false -- -- err = OTOptionManagement(ep, &req, &ret); -- -- // if no error then return the option status value -- if (err == kOTNoError) -- { -- if (opt->status != T_SUCCESS) -- err = opt->status; -- else -- err = kOTNoError; -- } -- -- return err; --} --*/ -- --/* A helper function for Mac OpenTransport support*/ --// This function is a complete copy from GUSI --// ( masahiro minami<elsur@aaa.letter.co.jp> ) --// ( 01/02/19 ) --static __inline__ Uint32 CompleteMask(OTEventCode code) --{ -- return 1 << (code & 0x1F); --} -- --/* Notifier for async OT calls */ --static pascal void AsyncTCPNotifier( TCPsocket sock, OTEventCode code, -- OTResult result, void* cookie ) --{ -- --#ifdef DEBUG_NET -- printf("AsyncTCPNotifier got an event : 0x%8.8x\n", code ); --#endif -- -- switch( code & 0x7f000000L) -- { -- case 0: -- sock->newEvent |= code; -- result = 0; -- break; -- case kCOMPLETEEVENT: -- if(!(code & 0x00FFFFE0 )) -- sock->newCompletion |= CompleteMask( code ); -- if( code == T_OPENCOMPLETE ) -- sock->channel = (SOCKET)(cookie); -- break; -- default: -- if( code != kOTProviderWillClose ) -- result = 0; -- } -- // Do we need these ???? TODO -- // sock->SetAsyncMacError( result ); -- // sock->Wakeup(); --} -- --/* Retrieve OT event */ --// This function is taken from GUSI interface. --// ( 01/02/19 masahiro minami<elsur@aaa.letter.co.jp> ) --static void AsyncTCPPopEvent( TCPsocket sock ) --{ -- // Make sure OT calls are not interrupted -- // Not sure if we really need this. -- OTEnterNotifier( sock->channel ); -- -- sock->event |= (sock->curEvent = sock->newEvent ); -- sock->completion |= ( sock->curCompletion = sock->newCompletion ); -- sock->newEvent = sock->newCompletion = 0; -- -- OTLeaveNotifier( sock->channel ); -- -- if( sock->curEvent & T_UDERR) -- { -- // We just clear the error. -- // Should we feed this back to users ? -- // (TODO ) -- OTRcvUDErr( sock->channel, NULL ); -- --#ifdef DEBUG_NET -- printf("AsyncTCPPopEvent T_UDERR recognized"); --#endif -- } -- -- // Remote is disconnecting... -- if( sock->curEvent & ( T_DISCONNECT | T_ORDREL )) -- { -- sock->readShutdown = true; -- } -- -- if( sock->curEvent &T_CONNECT ) -- { -- // Ignore the info of remote (second parameter). -- // Shoule we care ? -- // (TODO) -- OTRcvConnect( sock->channel, NULL ); -- sock->connected = 1; -- } -- -- if( sock->curEvent & T_ORDREL ) -- { -- OTRcvOrderlyDisconnect( sock->channel ); -- } -- -- if( sock->curEvent & T_DISCONNECT ) -- { -- OTRcvDisconnect( sock->channel, NULL ); -- } -- -- // Do we need to ? -- // (masahiro minami<elsur@aaa.letter.co.jp>) -- //YieldToAnyThread(); --} -- --/* Create a new TCPsocket */ --// Because TCPsocket structure gets bigger and bigger, --// I think we'd better have a constructor function and delete function. --// ( 01/02/25 masahiro minami<elsur@aaa.letter.co.jp> ) --static TCPsocket AsyncTCPNewSocket() --{ -- TCPsocket sock; -- -- sock = (TCPsocket)malloc(sizeof(*sock)); -- if ( sock == NULL ) { -- SDLNet_SetError("Out of memory"); -- return NULL; -- } -- -- sock->newEvent = 0; -- sock->event = 0; -- sock->curEvent = 0; -- sock->newCompletion = 0; -- sock->completion = 0; -- sock->curCompletion = 0; -- //sock->info = NULL; -- sock->readShutdown = sock->writeShutdown = sock->connected = false; -- sock->error = 0; -- sock->config = NULL; -- sock->nextListener = NULL; -- sock->sflag = 0; -- return sock; --} -- --// hmmm.... do we need this ??? --// ( 01/02/25 masahiro minami<elsur@aaa.letter.co.jp>) --static void AsycnTCPDeleteSocket( TCPsocket sock ) --{ -- SDLNet_TCP_Close( sock ); --} --/* Open a TCP network socket -- If 'remote' is NULL, this creates a local server socket on the given port, -- otherwise a TCP connection to the remote host and port is attempted. -- The newly created socket is returned, or NULL if there was an error. -- -- ( re-written by masahiro minami<elsur@aaa.letter.co.jp> -- Now endpoint is created in Async mode. -- 01/02/20 ) --*/ --TCPsocket SDLNet_TCP_Open(IPaddress *ip) --{ -- EndpointRef dummy = NULL; -- -- TCPsocket sock = AsyncTCPNewSocket(); -- if( ! sock) -- return NULL; -- -- // Determin whether bind locally, or connect to remote -- if ( (ip->host != INADDR_NONE) && (ip->host != INADDR_ANY) ) -- { -- // ######## Connect to remote -- OTResult stat; -- InetAddress inAddr; -- TBind bindReq; -- -- // Open endpoint -- sock->error = OTAsyncOpenEndpoint( -- OTCreateConfiguration(kTCPName), NULL, &(sock->info), -- (OTNotifyProcPtr)(AsyncTCPNotifier), -- sock ); -- -- AsyncTCPPopEvent( sock ); -- while( !sock->error && !( sock->completion & CompleteMask(T_OPENCOMPLETE))) -- { -- //SetThreadState( kCurrentThreadID, kReadyThreadState, kNoThreadID ); -- //YieldToAnyThread(); -- //WaitNextEvent(everyEvent, &macEvent, 1, NULL); -- AsyncTCPPopEvent( sock ); -- } -- -- if( !sock->channel ) -- { -- SDLNet_SetError("OTAsyncOpenEndpoint failed --- client socket could not be opened"); -- goto error_return; -- } -- -- // Set blocking mode -- // I'm not sure if this is a good solution.... -- // Check out Apple's sample code, OT Virtual Server -- // ( 010314 masahiro minami<elsur@aaa.letter.co.jp>) -- -- sock->error = OTSetBlocking( sock->channel ); -- if( sock->error != kOTNoError ) -- { -- SDLNet_SetError("OTSetBlocking() returned an error"); -- goto error_return; -- } -- -- // Bind the socket -- OTInitInetAddress(&inAddr, 0, 0 ); -- bindReq.addr.len = sizeof( InetAddress ); -- bindReq.addr.buf = (unsigned char*)&inAddr; -- bindReq.qlen = 0; -- -- sock->error = OTBind( sock->channel, &bindReq, NULL ); -- AsyncTCPPopEvent(sock); -- while( !sock->error && !( sock->completion & CompleteMask(T_BINDCOMPLETE))) -- { -- //YieldToAnyThread(); -- //WaitNextEvent(everyEvent, &macEvent, 1, NULL); -- AsyncTCPPopEvent(sock); -- } -- -- -- switch( stat = OTGetEndpointState( sock->channel )) -- { -- InetAddress inAddr; -- TCall sndCall; -- OTResult res; -- -- case T_OUTCON: -- SDLNet_SetError("SDLNet_Open() failed -- T_OUTCON"); -- goto error_return; -- break; -- case T_IDLE: -- sock->readShutdown = false; -- sock->writeShutdown = false; -- sock->event &=~T_CONNECT; -- -- OTMemzero(&sndCall, sizeof(TCall)); -- OTInitInetAddress(&inAddr, ip->port, ip->host ); -- sndCall.addr.len = sizeof(InetAddress); -- sndCall.addr.buf = (unsigned char*)&inAddr; -- sock->connected = 0; -- res = OTConnect( sock->channel, &sndCall, NULL ); -- AsyncTCPPopEvent(sock); -- while( sock->error == kOTNoDataErr || !sock->connected ) -- AsyncTCPPopEvent(sock); -- break; -- default: -- // What's to be done ? (TODO) -- SDLNet_SetError("SDLNet_TCP_Open() failed -- EndpointState not good"); -- goto error_return; -- -- } -- if( !(sock->event & (T_CONNECT|T_DISCONNECT))) -- goto error_return; -- -- AsyncTCPPopEvent( sock ); -- while( !(sock->event & (T_CONNECT|T_DISCONNECT))) -- { -- AsyncTCPPopEvent( sock ); -- } -- // OTConnect successfull -- if( sock->event & T_CONNECT) -- { -- sock->remoteAddress.host = inAddr.fHost; -- sock->remoteAddress.port = inAddr.fPort; -- sock->sflag = false; -- } -- else -- { -- // OTConnect failed -- sock->event &= ~T_DISCONNECT; -- goto error_return; -- } -- } -- else -- { -- // ######## Bind locally -- TBind bindReq; -- InetAddress inAddr; -- -- // First, get InetInterfaceInfo. -- // I don't search for all of them. -- // Does that matter ? -- -- sock->error = OTAsyncOpenEndpoint( -- OTCreateConfiguration("tilisten, tcp"), NULL, &(sock->info), -- (OTNotifyProcPtr)(AsyncTCPNotifier), -- sock); -- AsyncTCPPopEvent( sock ); -- while( !sock->error && !( sock->completion & CompleteMask( T_OPENCOMPLETE))) -- { -- AsyncTCPPopEvent( sock ); -- } -- -- if( ! sock->channel ) -- { -- SDLNet_SetError("OTAsyncOpenEndpoint failed --- server socket could not be opened"); -- goto error_return; -- } -- -- // Create a master OTConfiguration -- sock->config = OTCreateConfiguration(kTCPName); -- if( ! sock->config ) -- { -- SDLNet_SetError("Could not create master OTConfiguration"); -- goto error_return; -- } -- -- // Bind the socket -- OTInitInetAddress(&inAddr, ip->port, 0 ); -- inAddr.fAddressType = AF_INET; -- bindReq.addr.len = sizeof( InetAddress ); -- bindReq.addr.buf = (unsigned char*)&inAddr; -- bindReq.qlen = 35; // This number is NOT well considered. (TODO) -- sock->localAddress.host = inAddr.fHost; -- sock->localAddress.port = inAddr.fPort; -- sock->sflag = true; -- -- sock->error = OTBind( sock->channel, &bindReq, NULL ); -- AsyncTCPPopEvent(sock); -- while( !sock->error && !( sock->completion & CompleteMask(T_BINDCOMPLETE))) -- { -- AsyncTCPPopEvent(sock); -- } -- if( sock->error != kOTNoError ) -- { -- SDLNet_SetError("Could not bind server socket"); -- goto error_return; -- } -- -- if( dummy ) -- OTCloseProvider( dummy ); -- -- } -- -- sock->ready = 0; -- return sock; -- -- error_return: -- if( dummy ) -- OTCloseProvider( dummy ); -- SDLNet_TCP_Close( sock ); -- return NULL; --} -- --/* Accept an incoming connection on the given server socket. -- The newly created socket is returned, or NULL if there was an error. --*/ --TCPsocket SDLNet_TCP_Accept(TCPsocket server) --{ -- -- /* Only server sockets can accept */ -- if ( ! server->sflag ) { -- SDLNet_SetError("Only server sockets can accept()"); -- return(NULL); -- } -- server->ready = 0; -- -- /* Accept a new TCP connection on a server socket */ -- { -- InetAddress peer; -- TCall peerinfo; -- TCPsocket sock = NULL; -- Boolean mustListen = false; -- OTResult err; -- -- memset(&peerinfo, 0, (sizeof peerinfo )); -- peerinfo.addr.buf = (Uint8 *) &peer; -- peerinfo.addr.maxlen = sizeof(peer); -- -- while( mustListen || !sock ) -- { -- // OTListen -- // We do NOT block ---- right thing ? (TODO) -- err = OTListen( server->channel, &peerinfo ); -- -- if( err ) -- goto error_return; -- else -- { -- mustListen = false; -- sock = AsyncTCPNewSocket(); -- if( ! sock ) -- goto error_return; -- } -- } -- if( sock ) -- { -- // OTAsyncOpenEndpoint -- server->error = OTAsyncOpenEndpoint( OTCloneConfiguration( server->config ), -- NULL, &(sock->info), (OTNotifyProcPtr)AsyncTCPNotifier, sock ); -- AsyncTCPPopEvent( sock ); -- while( !sock->error && !( sock->completion & CompleteMask( T_OPENCOMPLETE))) -- { -- AsyncTCPPopEvent( sock ); -- } -- if( ! sock->channel ) -- { -- mustListen = false; -- goto error_return; -- } -- -- // OTAccept -- server->completion &= ~(CompleteMask(T_ACCEPTCOMPLETE)); -- server->error = OTAccept( server->channel, sock->channel, &peerinfo ); -- AsyncTCPPopEvent( server ); -- while( !(server->completion & CompleteMask(T_ACCEPTCOMPLETE))) -- { -- AsyncTCPPopEvent( server ); -- } -- -- switch( server->error ) -- { -- case kOTLookErr: -- switch( OTLook(server->channel )) -- { -- case T_LISTEN: -- mustListen = true; -- break; -- case T_DISCONNECT: -- goto error_return; -- } -- break; -- case 0: -- sock->nextListener = server->nextListener; -- server->nextListener = sock; -- sock->remoteAddress.host = peer.fHost; -- sock->remoteAddress.port = peer.fPort; -- return sock; -- // accept successful -- break; -- default: -- free( sock ); -- } -- } -- sock->remoteAddress.host = peer.fHost; -- sock->remoteAddress.port = peer.fPort; -- sock->sflag = 0; -- sock->ready = 0; -- -- /* The socket is ready */ -- return(sock); -- -- // Error; close the socket and return -- error_return: -- SDLNet_TCP_Close(sock); -- return(NULL); -- } --} -- --/* Get the IP address of the remote system associated with the socket. -- If the socket is a server socket, this function returns NULL. --*/ --IPaddress *SDLNet_TCP_GetPeerAddress(TCPsocket sock) --{ -- if ( sock->sflag ) { -- return(NULL); -- } -- return(&sock->remoteAddress); --} -- --/* Send 'len' bytes of 'data' over the non-server socket 'sock' -- This function returns the actual amount of data sent. If the return value -- is less than the amount of data sent, then either the remote connection was -- closed, or an unknown socket error occurred. --*/ --int SDLNet_TCP_Send(TCPsocket sock, const void *datap, int len) --{ -- const Uint8 *data = (const Uint8 *)datap; /* For pointer arithmetic */ -- int sent, left; -- -- /* Server sockets are for accepting connections only */ -- if ( sock->sflag ) { -- SDLNet_SetError("Server sockets cannot send"); -- return(-1); -- } -- -- /* Keep sending data until it's sent or an error occurs */ -- left = len; -- sent = 0; -- errno = 0; -- do { -- len = OTSnd(sock->channel, (void *)data, left, 0); -- if (len == kOTFlowErr) -- len = 0; -- if ( len > 0 ) { -- sent += len; -- left -= len; -- data += len; -- } -- // Do we need to ? -- // ( masahiro minami<elsur@aaa.letter.co.jp> ) -- // (TODO) -- //WaitNextEvent(everyEvent, &macEvent, 1, NULL); -- //AsyncTCPPopEvent(sock); -- } while ( (left > 0) && (len > 0) ); -- -- return(sent); --} -- --/* Receive up to 'maxlen' bytes of data over the non-server socket 'sock', -- and store them in the buffer pointed to by 'data'. -- This function returns the actual amount of data received. If the return -- value is less than or equal to zero, then either the remote connection was -- closed, or an unknown socket error occurred. --*/ --int SDLNet_TCP_Recv(TCPsocket sock, void *data, int maxlen) --{ -- int len = 0; -- OSStatus res; -- /* Server sockets are for accepting connections only */ -- if ( sock->sflag ) { -- SDLNet_SetError("Server sockets cannot receive"); -- return(-1); -- } -- -- do -- { -- res = OTRcv(sock->channel, data, maxlen-len, 0); -- if (res > 0) { -- len = res; -- } -- --#ifdef DEBUG_NET -- if ( res != kOTNoDataErr ) -- printf("SDLNet_TCP_Recv received ; %d\n", res ); --#endif -- -- AsyncTCPPopEvent(sock); -- if( res == kOTLookErr ) -- { -- res = OTLook(sock->channel ); -- continue; -- } -- } while ( (len == 0) && (res == kOTNoDataErr) ); -- -- sock->ready = 0; -- if ( len == 0 ) { /* Open Transport error */ --#ifdef DEBUG_NET -- printf("Open Transport error: %d\n", res); --#endif -- return(-1); -- } -- return(len); --} -- --/* Close a TCP network socket */ --void SDLNet_TCP_Close(TCPsocket sock) --{ -- if ( sock != NULL ) { -- if ( sock->channel != INVALID_SOCKET ) { -- //closesocket(sock->channel); -- OTSndOrderlyDisconnect( sock->channel ); -- } -- free(sock); -- } --} -- --#else /* !MACOS_OPENTRANSPORT */ -- --struct _TCPsocket { -- int ready; -- SOCKET channel; -- IPaddress remoteAddress; -- IPaddress localAddress; -- int sflag; --}; -- --/* Open a TCP network socket -- If 'remote' is NULL, this creates a local server socket on the given port, -- otherwise a TCP connection to the remote host and port is attempted. -- The newly created socket is returned, or NULL if there was an error. --*/ --TCPsocket SDLNet_TCP_Open(IPaddress *ip) --{ -- TCPsocket sock; -- struct sockaddr_in sock_addr; -- -- /* Allocate a TCP socket structure */ -- sock = (TCPsocket)malloc(sizeof(*sock)); -- if ( sock == NULL ) { -- SDLNet_SetError("Out of memory"); -- goto error_return; -- } -- -- /* Open the socket */ -- sock->channel = socket(AF_INET, SOCK_STREAM, 0); -- if ( sock->channel == INVALID_SOCKET ) { -- SDLNet_SetError("Couldn't create socket"); -- goto error_return; -- } -- -- /* Connect to remote, or bind locally, as appropriate */ -- if ( (ip->host != INADDR_NONE) && (ip->host != INADDR_ANY) ) { -- -- // ######### Connecting to remote -- -- memset(&sock_addr, 0, sizeof(sock_addr)); -- sock_addr.sin_family = AF_INET; -- sock_addr.sin_addr.s_addr = ip->host; -- sock_addr.sin_port = ip->port; -- -- /* Connect to the remote host */ -- if ( connect(sock->channel, (struct sockaddr *)&sock_addr, -- sizeof(sock_addr)) == SOCKET_ERROR ) { -- SDLNet_SetError("Couldn't connect to remote host"); -- goto error_return; -- } -- sock->sflag = 0; -- } else { -- -- // ########## Binding locally -- -- memset(&sock_addr, 0, sizeof(sock_addr)); -- sock_addr.sin_family = AF_INET; -- sock_addr.sin_addr.s_addr = INADDR_ANY; -- sock_addr.sin_port = ip->port; -- --/* -- * Windows gets bad mojo with SO_REUSEADDR: -- * http://www.devolution.com/pipermail/sdl/2005-September/070491.html -- * --ryan. -- */ --#ifndef WIN32 -- /* allow local address reuse */ -- { int yes = 1; -- setsockopt(sock->channel, SOL_SOCKET, SO_REUSEADDR, (char*)&yes, sizeof(yes)); -- } --#endif -- -- /* Bind the socket for listening */ -- if ( bind(sock->channel, (struct sockaddr *)&sock_addr, -- sizeof(sock_addr)) == SOCKET_ERROR ) { -- SDLNet_SetError("Couldn't bind to local port"); -- goto error_return; -- } -- if ( listen(sock->channel, 5) == SOCKET_ERROR ) { -- SDLNet_SetError("Couldn't listen to local port"); -- goto error_return; -- } -- -- /* Set the socket to non-blocking mode for accept() */ --#if defined(__BEOS__) && defined(SO_NONBLOCK) -- /* On BeOS r5 there is O_NONBLOCK but it's for files only */ -- { -- long b = 1; -- setsockopt(sock->channel, SOL_SOCKET, SO_NONBLOCK, &b, sizeof(b)); -- } --#elif defined(O_NONBLOCK) -- { -- fcntl(sock->channel, F_SETFL, O_NONBLOCK); -- } --#elif defined(WIN32) -- { -- unsigned long mode = 1; -- ioctlsocket (sock->channel, FIONBIO, &mode); -- } --#elif defined(__OS2__) -- { -- int dontblock = 1; -- ioctl(sock->channel, FIONBIO, &dontblock); -- } --#else --#warning How do we set non-blocking mode on other operating systems? --#endif -- sock->sflag = 1; -- } -- sock->ready = 0; -- --#ifdef TCP_NODELAY -- /* Set the nodelay TCP option for real-time games */ -- { int yes = 1; -- setsockopt(sock->channel, IPPROTO_TCP, TCP_NODELAY, (char*)&yes, sizeof(yes)); -- } --#endif /* TCP_NODELAY */ -- -- /* Fill in the channel host address */ -- sock->remoteAddress.host = sock_addr.sin_addr.s_addr; -- sock->remoteAddress.port = sock_addr.sin_port; -- -- /* The socket is ready */ -- return(sock); -- --error_return: -- SDLNet_TCP_Close(sock); -- return(NULL); --} -- --/* Accept an incoming connection on the given server socket. -- The newly created socket is returned, or NULL if there was an error. --*/ --TCPsocket SDLNet_TCP_Accept(TCPsocket server) --{ -- TCPsocket sock; -- struct sockaddr_in sock_addr; -- int sock_alen; -- -- /* Only server sockets can accept */ -- if ( ! server->sflag ) { -- SDLNet_SetError("Only server sockets can accept()"); -- return(NULL); -- } -- server->ready = 0; -- -- /* Allocate a TCP socket structure */ -- sock = (TCPsocket)malloc(sizeof(*sock)); -- if ( sock == NULL ) { -- SDLNet_SetError("Out of memory"); -- goto error_return; -- } -- -- /* Accept a new TCP connection on a server socket */ -- sock_alen = sizeof(sock_addr); -- sock->channel = accept(server->channel, (struct sockaddr *)&sock_addr, --#ifdef USE_GUSI_SOCKETS -- (unsigned int *)&sock_alen); --#else -- &sock_alen); --#endif -- if ( sock->channel == SOCKET_ERROR ) { -- SDLNet_SetError("accept() failed"); -- goto error_return; -- } --#ifdef WIN32 -- { -- /* passing a zero value, socket mode set to block on */ -- unsigned long mode = 0; -- ioctlsocket (sock->channel, FIONBIO, &mode); -- } --#elif defined(O_NONBLOCK) -- { -- int flags = fcntl(sock->channel, F_GETFL, 0); -- fcntl(sock->channel, F_SETFL, flags & ~O_NONBLOCK); -- } --#endif /* WIN32 */ -- sock->remoteAddress.host = sock_addr.sin_addr.s_addr; -- sock->remoteAddress.port = sock_addr.sin_port; -- -- sock->sflag = 0; -- sock->ready = 0; -- -- /* The socket is ready */ -- return(sock); -- --error_return: -- SDLNet_TCP_Close(sock); -- return(NULL); --} -- --/* Get the IP address of the remote system associated with the socket. -- If the socket is a server socket, this function returns NULL. --*/ --IPaddress *SDLNet_TCP_GetPeerAddress(TCPsocket sock) --{ -- if ( sock->sflag ) { -- return(NULL); -- } -- return(&sock->remoteAddress); --} -- --/* Send 'len' bytes of 'data' over the non-server socket 'sock' -- This function returns the actual amount of data sent. If the return value -- is less than the amount of data sent, then either the remote connection was -- closed, or an unknown socket error occurred. --*/ --int SDLNet_TCP_Send(TCPsocket sock, const void *datap, int len) --{ -- const Uint8 *data = (const Uint8 *)datap; /* For pointer arithmetic */ -- int sent, left; -- -- /* Server sockets are for accepting connections only */ -- if ( sock->sflag ) { -- SDLNet_SetError("Server sockets cannot send"); -- return(-1); -- } -- -- /* Keep sending data until it's sent or an error occurs */ -- left = len; -- sent = 0; -- errno = 0; -- do { -- len = send(sock->channel, (const char *) data, left, 0); -- if ( len > 0 ) { -- sent += len; -- left -= len; -- data += len; -- } -- } while ( (left > 0) && ((len > 0) || (errno == EINTR)) ); -- -- return(sent); --} -- --/* Receive up to 'maxlen' bytes of data over the non-server socket 'sock', -- and store them in the buffer pointed to by 'data'. -- This function returns the actual amount of data received. If the return -- value is less than or equal to zero, then either the remote connection was -- closed, or an unknown socket error occurred. --*/ --int SDLNet_TCP_Recv(TCPsocket sock, void *data, int maxlen) --{ -- int len; -- -- /* Server sockets are for accepting connections only */ -- if ( sock->sflag ) { -- SDLNet_SetError("Server sockets cannot receive"); -- return(-1); -- } -- -- errno = 0; -- do { -- len = recv(sock->channel, (char *) data, maxlen, 0); -- } while ( errno == EINTR ); -- -- sock->ready = 0; -- return(len); --} -- --/* Close a TCP network socket */ --void SDLNet_TCP_Close(TCPsocket sock) --{ -- if ( sock != NULL ) { -- if ( sock->channel != INVALID_SOCKET ) { -- closesocket(sock->channel); -- } -- free(sock); -- } --} -- --#endif /* MACOS_OPENTRANSPORT */ -diff -Naur a/SDLnetTCP.cpp b/SDLnetTCP.cpp ---- a/SDLnetTCP.cpp 1970-01-01 03:00:00.000000000 +0300 -+++ b/SDLnetTCP.cpp 2015-11-30 00:34:59.378830000 +0300 -@@ -0,0 +1,483 @@ -+/* -+ SDL_net: An example cross-platform network library for use with SDL -+ Copyright (C) 1997-2004 Sam Lantinga -+ -+ This library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Library General Public -+ License as published by the Free Software Foundation; either -+ version 2 of the License, or (at your option) any later version. -+ -+ This library 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 -+ Library General Public License for more details. -+ -+ You should have received a copy of the GNU Library General Public -+ License along with this library; if not, write to the Free -+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -+ -+ Sam Lantinga -+ slouken@libsdl.org -+*/ -+ -+/* $Id: SDLnetTCP.c 3280 2007-07-15 05:55:42Z slouken $ */ -+ -+#include "SDLnetsys.h" -+#include "SDL_net.h" -+ -+#include "ppapi_simple/ps.h" -+#include "ppapi/cpp/tcp_socket.h" -+#include "ppapi/cpp/instance_handle.h" -+#include "ppapi/cpp/message_loop.h" -+#include "ppapi/cpp/instance.h" -+#include "ppapi/c/ppb_net_address.h" -+#include "ppapi/cpp/var.h" -+#include "ppapi/utility/completion_callback_factory.h" -+ -+#include "pthread.h" -+#include <condition_variable> -+#include <mutex> -+ -+/* The network API for TCP sockets */ -+ -+#define BUFFER_SIZE 2000 -+ -+struct _TCPsocket { -+ int ready; -+ pp::TCPSocket channel; -+ IPaddress remoteAddress; -+ IPaddress localAddress; -+ int sflag; -+ -+ bool readInProgress; -+ int bufferAmount; -+ int bufferOffset; -+ char buffer [BUFFER_SIZE]; -+}; -+ -+class SDLNetSynchronizer { -+ public: -+ pp::CompletionCallbackFactory <SDLNetSynchronizer> factory; -+ pp::InstanceHandle handle; -+ pp::Instance instance; -+ -+ static pp::MessageLoop loop; -+ -+ pp::TCPSocket sock_result; -+ int32_t result; -+ bool ready; -+ std::condition_variable cv; -+ std::mutex mtx; -+ -+ SDLNetSynchronizer () : factory (this), handle (PSGetInstanceId ()), instance (PSGetInstanceId ()) { -+ ready = false; -+ if (loop.is_null ()) -+ loop = pp::MessageLoop::GetForMainThread (); -+ } -+ -+ int32_t Connect (pp::TCPSocket &sock, IPaddress *ip_addr) { -+ int32_t code; -+ PP_NetAddress_IPv4 ipv4_addr; -+ IpToIpv4 (ip_addr, &ipv4_addr); -+ -+ pp::CompletionCallback cb = factory.NewCallback ( -+ &SDLNetSynchronizer::ConnectWork, -+ sock, -+ pp::NetAddress (handle, ipv4_addr) -+ ); -+ -+ loop.PostWork (cb, 0); -+ wait (); -+ -+ return result; -+ } -+ -+ int32_t Bind (pp::TCPSocket &sock, IPaddress *ip_addr) { -+ PP_NetAddress_IPv4 ipv4_addr; -+ IpToIpv4 (ip_addr, &ipv4_addr); -+ -+ -+ pp::CompletionCallback cb = factory.NewCallback ( -+ &SDLNetSynchronizer::BindWork, -+ sock, -+ pp::NetAddress (handle, ipv4_addr) -+ ); -+ -+ loop.PostWork (cb, 0); -+ -+ wait (); -+ return result; -+ } -+ -+ int32_t Listen (pp::TCPSocket &sock, int32_t backlog) { -+ -+ pp::CompletionCallback cb = factory.NewCallback ( -+ &SDLNetSynchronizer::ListenWork, -+ sock, backlog -+ ); -+ -+ loop.PostWork (cb, 0); -+ -+ wait (); -+ return result; -+ } -+ -+ void WriteWork (int32_t result, pp::TCPSocket &sock, const char *data, size_t size) { -+ sock.Write ( -+ data, size, -+ factory.NewCallback (&SDLNetSynchronizer::resultCallback) -+ ); -+ } -+ -+ int32_t Write (pp::TCPSocket &sock, const char *data, size_t size) { -+ pp::CompletionCallback cb = factory.NewCallback ( -+ &SDLNetSynchronizer::WriteWork, -+ sock, data, size -+ ); -+ -+ loop.PostWork (cb, 0); -+ -+ wait (); -+ return result; -+ } -+ -+ void ReadAsyncCallback (int32_t result, TCPsocket sock) { -+ if (result <= 0) -+ return; -+ -+ sock->bufferOffset = 0; -+ sock->bufferAmount = result; -+ sock->ready = 1; -+ sock->readInProgress = false; -+ } -+ -+ void ReadAsyncWork (int32_t result, TCPsocket sock) { -+ sock->channel.Read ( -+ sock->buffer, BUFFER_SIZE, -+ factory.NewCallback (&SDLNetSynchronizer::ReadAsyncCallback, sock) -+ ); -+ } -+ -+ void ReadAsync (TCPsocket sock) { -+ pp::CompletionCallback cb = factory.NewCallback ( -+ &SDLNetSynchronizer::ReadAsyncWork, -+ sock -+ ); -+ -+ sock->readInProgress = true; -+ loop.PostWork (cb, 0); -+ } -+ -+ void AcceptWork (int32_t result, pp::TCPSocket &sock) { -+ sock.Accept ( -+ factory.NewCallbackWithOutput (&SDLNetSynchronizer::acceptCallback) -+ ); -+ } -+ -+ pp::TCPSocket Accept (pp::TCPSocket &sock, int32_t &out) { -+ pp::CompletionCallback cb = factory.NewCallback ( -+ &SDLNetSynchronizer::AcceptWork, -+ sock -+ ); -+ -+ loop.PostWork (cb, 0); -+ -+ wait (); -+ out = result; -+ return sock_result; -+ } -+ -+ void IpToIpv4 (IPaddress *ip_addr, PP_NetAddress_IPv4 *ipv4_addr) { -+ ipv4_addr->port = ip_addr->port; -+ for (int i = 0; i < 4; ++i) -+ ipv4_addr->addr[i] = (ip_addr->host >> (8 * i)) & 0xFF; -+ } -+ -+ void NetToIp (pp::NetAddress net_addr, IPaddress *ip_addr) { -+ PP_NetAddress_IPv4 ipv4_addr; -+ net_addr.DescribeAsIPv4Address (&ipv4_addr); -+ Ipv4ToIp (&ipv4_addr, ip_addr); -+ } -+ -+ void Ipv4ToIp (PP_NetAddress_IPv4 *ipv4_addr, IPaddress *ip_addr) { -+ ip_addr->port = ipv4_addr->port; -+ ip_addr->host = 0; -+ for (int i = 0; i < 4; ++i) -+ ip_addr->host ^= (((uint32_t) ipv4_addr->addr[i]) << (8 * i)); -+ } -+ -+ void postMessage (std::string msg) { -+ instance.PostMessage (pp::Var (msg)); -+ } -+ -+ void postMessage (int32_t msg) { -+ instance.PostMessage (pp::Var (msg)); -+ } -+ -+ private: -+ void ConnectWork (int32_t result, pp::TCPSocket &sock, pp::NetAddress &addr) { -+ sock.Connect ( -+ addr, -+ factory.NewCallback (&SDLNetSynchronizer::resultCallback) -+ ); -+ } -+ -+ void BindWork (int32_t result, pp::TCPSocket &sock, pp::NetAddress &addr) { -+ sock.Bind ( -+ addr, -+ factory.NewCallback (&SDLNetSynchronizer::resultCallback) -+ ); -+ } -+ -+ void ListenWork (int32_t result, pp::TCPSocket &sock, int32_t backlog) { -+ sock.Listen ( -+ backlog, -+ factory.NewCallback (&SDLNetSynchronizer::resultCallback) -+ ); -+ } -+ -+ void resultCallback (int32_t res) { -+ result = res; -+ unlock (); -+ } -+ -+ void acceptCallback (int32_t res, pp::TCPSocket sock) { -+ result = res; -+ sock_result = sock; -+ -+ unlock(); -+ } -+ -+ void wait () { -+ std::unique_lock <std::mutex> lck (mtx); -+ while (!ready) -+ cv.wait (lck); -+ ready = false; -+ } -+ -+ void unlock () { -+ std::unique_lock <std::mutex> lck (mtx); -+ ready = true; -+ cv.notify_all (); -+ } -+}; -+ -+pp::MessageLoop SDLNetSynchronizer::loop = pp::MessageLoop (); -+ -+SDLNetSynchronizer *__read_syncer = NULL; -+ -+/* Open a TCP network socket -+ If 'remote' is NULL, this creates a local server socket on the given port, -+ otherwise a TCP connection to the remote host and port is attempted. -+ The newly created socket is returned, or NULL if there was an error. -+*/ -+TCPsocket SDLNet_TCP_Open (IPaddress *ip) -+{ -+ TCPsocket sock; -+ SDLNetSynchronizer syncer; -+ -+ /* Allocate a TCP socket structure */ -+ sock = (TCPsocket)malloc (sizeof (*sock)); -+ if ( sock == NULL ) { -+ SDLNet_SetError ("Out of memory"); -+ goto error_return; -+ } -+ -+ sock->channel = pp::TCPSocket (syncer.handle); -+ -+ /* Connect to remote, or bind locally, as appropriate */ -+ if ( (ip->host != INADDR_NONE) && (ip->host != INADDR_ANY) ) { -+ -+ // ######### Connecting to remote -+ -+ /* Connect to the remote host */ -+ if ( syncer.Connect (sock->channel, ip) != PP_OK ) { -+ SDLNet_SetError("Couldn't connect to remote host"); -+ goto error_return; -+ } -+ sock->sflag = 0; -+ -+ } else { -+ -+ // ########## Binding locally -+ -+ /* Bind the socket for listening */ -+ if ( syncer.Bind (sock->channel, ip) != PP_OK ) { -+ SDLNet_SetError("Couldn't bind to local port"); -+ goto error_return; -+ } -+ -+ if ( syncer.Listen (sock->channel, 5) != PP_OK ) { -+ SDLNet_SetError("Couldn't listen to local port"); -+ goto error_return; -+ } -+ -+ /* Set the socket to non-blocking mode for accept() */ -+ -+ { -+ /* In nacl O_NONBLOCK is defined */ -+ // fcntl(sock->channel, F_SETFL, O_NONBLOCK); -+ } -+ -+ sock->sflag = 1; -+ } -+ -+ sock->readInProgress = 0; -+ sock->ready = 0; -+ sock->bufferOffset = sock->bufferAmount = 0; -+ -+#ifdef TCP_NODELAY -+ /* Set the nodelay TCP option for real-time games */ -+ { int yes = 1; -+ setsockopt(sock->channel, IPPROTO_TCP, TCP_NODELAY, (char*)&yes, sizeof(yes)); -+ } -+#endif /* TCP_NODELAY */ -+ -+ /* Fill in the channel host address */ -+ sock->remoteAddress = *ip; -+ -+ /* The socket is ready */ -+ return(sock); -+ -+error_return: -+ SDLNet_TCP_Close(sock); -+ return(NULL); -+} -+ -+/* Accept an incoming connection on the given server socket. -+ The newly created socket is returned, or NULL if there was an error. -+*/ -+TCPsocket SDLNet_TCP_Accept(TCPsocket server) -+{ -+ TCPsocket sock; -+ SDLNetSynchronizer syncer; -+ int acc_res; -+ -+ /* Only server sockets can accept */ -+ if ( ! server->sflag ) { -+ SDLNet_SetError("Only server sockets can accept()"); -+ return(NULL); -+ } -+ server->ready = 0; -+ -+ /* Allocate a TCP socket structure */ -+ sock = (TCPsocket)malloc (sizeof (*sock)); -+ if ( sock == NULL ) { -+ SDLNet_SetError("Out of memory"); -+ goto error_return; -+ } -+ -+ /* Accept a new TCP connection on a server socket */ -+ sock->channel = syncer.Accept (server->channel, acc_res); -+ -+ if ( acc_res != PP_OK ) { -+ SDLNet_SetError("accept() failed"); -+ goto error_return; -+ } -+ -+ -+ { -+ /* int flags = fcntl(sock->channel, F_GETFL, 0); -+ fcntl(sock->channel, F_SETFL, flags & ~O_NONBLOCK); */ -+ } -+ -+ syncer.NetToIp ((sock->channel).GetRemoteAddress (), &sock->remoteAddress); -+ -+ sock->sflag = 0; -+ sock->ready = 0; -+ -+ /* The socket is ready */ -+ return(sock); -+ -+error_return: -+ SDLNet_TCP_Close(sock); -+ return(NULL); -+} -+ -+/* Get the IP address of the remote system associated with the socket. -+ If the socket is a server socket, this function returns NULL. -+*/ -+IPaddress *SDLNet_TCP_GetPeerAddress(TCPsocket sock) -+{ -+ if ( sock->sflag ) { -+ return(NULL); -+ } -+ return(&sock->remoteAddress); -+} -+ -+/* Send 'len' bytes of 'data' over the non-server socket 'sock' -+ This function returns the actual amount of data sent. If the return value -+ is less than the amount of data sent, then either the remote connection was -+ closed, or an unknown socket error occurred. -+*/ -+int SDLNet_TCP_Send(TCPsocket sock, const void *datap, int len) -+{ -+ SDLNetSynchronizer syncer; -+ Uint8 *data = (Uint8 *)datap; /* For pointer arithmetic */ -+ int sent, left; -+ -+ /* Server sockets are for accepting connections only */ -+ if ( sock->sflag ) { -+ SDLNet_SetError("Server sockets cannot send"); -+ return(-1); -+ } -+ -+ /* Keep sending data until it's sent or an error occurs */ -+ left = len; -+ sent = 0; -+ errno = 0; -+ do { -+ len = syncer.Write (sock->channel, (const char *) data, left); -+ if ( len > 0 ) { -+ sent += len; -+ left -= len; -+ data += len; -+ } -+ } while ( (left > 0) && (len >= 0 || errno == EINTR) ); -+ -+ return(sent); -+} -+ -+/* Receive up to 'maxlen' bytes of data over the non-server socket 'sock', -+ and store them in the buffer pointed to by 'data'. -+ This function returns the actual amount of data received. If the return -+ value is less than or equal to zero, then either the remote connection was -+ closed, or an unknown socket error occurred. -+*/ -+int SDLNet_TCP_Recv(TCPsocket sock, void *data, int maxlen) -+{ -+ SDLNetSynchronizer syncer; -+ int len = 0; -+ -+ /* Server sockets are for accepting connections only */ -+ if ( sock->sflag ) { -+ SDLNet_SetError("Server sockets cannot receive"); -+ return(-1); -+ } -+ -+ if ( sock->ready && maxlen > 0 ) { -+ len = std::min (sock->bufferAmount - sock->bufferOffset, maxlen); -+ memcpy (data, sock->buffer + sock->bufferOffset, len); -+ sock->bufferOffset += len; -+ if ( sock->bufferOffset == sock->bufferAmount ) -+ sock->ready = 0; -+ } -+ -+ if ( sock->ready == 0 && sock->readInProgress == 0) { -+ if (__read_syncer == NULL) -+ __read_syncer = new SDLNetSynchronizer (); -+ __read_syncer->ReadAsync (sock); -+ } -+ -+ return(len); -+} -+ -+/* Close a TCP network socket */ -+void SDLNet_TCP_Close(TCPsocket sock) -+{ -+ SDLNetSynchronizer syncer; -+ if ( sock != NULL ) { -+ sock->channel.Close (); -+ free (sock); -+ } -+} diff --git a/packaging/nacl/ports/sdl-net/pkg_info b/packaging/nacl/ports/sdl-net/pkg_info deleted file mode 100644 index 29f94bb20..000000000 --- a/packaging/nacl/ports/sdl-net/pkg_info +++ /dev/null @@ -1,8 +0,0 @@ -NAME=sdl-net -VERSION=1.2.7 -ARCHIVE_ROOT=SDL_net-1.2.7 -URL=http://www.libsdl.org/projects/SDL_net/release/SDL_net-1.2.7.tar.gz -LICENSE=LGPL2 -DEPENDS=(sdl) -SHA1=b46c7e3221621cc34fec1238f1b5f0ce8972274d -DISABLED_TOOLCHAIN=(emscripten) diff --git a/packaging/nacl/ports/sdl/build.sh b/packaging/nacl/ports/sdl/build.sh deleted file mode 100644 index ee30577d1..000000000 --- a/packaging/nacl/ports/sdl/build.sh +++ /dev/null @@ -1,24 +0,0 @@ -# Copyright (c) 2011 The Native Client Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -EXTRA_CONFIGURE_ARGS="--disable-assembly --disable-pthread-sem" - -AutogenStep() { - ChangeDir ${SRC_DIR} - # For some reason if we don't remove configure before running - # autoconf it doesn't always get updates correctly. About half - # the time the old configure script (with no reference to nacl) - # will remain after ./autogen.sh - rm -f configure - ./autogen.sh - PatchConfigure - PatchConfigSub - cd - -} - -ConfigureStep() { - AutogenStep - SetupCrossEnvironment - DefaultConfigureStep -} diff --git a/packaging/nacl/ports/sdl/nacl.patch b/packaging/nacl/ports/sdl/nacl.patch deleted file mode 100644 index 7c82591cc..000000000 --- a/packaging/nacl/ports/sdl/nacl.patch +++ /dev/null @@ -1,529 +0,0 @@ -diff --git a/configure.in b/configure.in -index ab0e314..c7ae13b 100644 ---- a/configure.in -+++ b/configure.in -@@ -957,7 +957,7 @@ AC_HELP_STRING([--enable-naclvideo], [enable the nacl video driver [[default=yes - AC_DEFINE(SDL_VIDEO_DRIVER_NACL) - SOURCES="$SOURCES $srcdir/src/video/nacl/*.c" - EXTRA_LDFLAGS="-lppapi_simple -l${NACL_CXX_LIB:-stdc++} $EXTRA_LDFLAGS" -- SDL_LIBS="-Wl,-unacl_main -Wl,-undefined=PSUserMainGet -lSDLmain $SDL_LIBS -lppapi_gles2 -lcli_main -lnacl_spawn -ltar -lppapi_simple -lnacl_io -lppapi -lm -l${NACL_CXX_LIB:-stdc++}" -+ SDL_LIBS="-lSDLmain $SDL_LIBS -lppapi_gles2 -lcli_main -lnacl_spawn -ltar -lppapi_simple_cpp -lnacl_io -lppapi -lm -l${NACL_CXX_LIB:-stdc++} -lppapi_cpp" - SDL_CFLAGS="$SDL_CFLAGS -Dmain=SDL_main" - fi - -@@ -2449,7 +2449,7 @@ case "$host" in - have_timers=yes - fi - CheckPTHREAD -- SDLMAIN_SOURCES="$srcdir/src/main/nacl/*.c" -+ SDLMAIN_SOURCES="$srcdir/src/main/nacl/*.cc" - ;; - *-*-linux*|*-*-uclinux*|*-*-gnu*|*-*-k*bsd*-gnu|*-*-bsdi*|*-*-freebsd*|*-*-dragonfly*|*-*-netbsd*|*-*-openbsd*|*-*-sysv5*|*-*-solaris*|*-*-hpux*|*-*-irix*|*-*-aix*|*-*-osf*) - case "$host" in -diff --git a/src/events/SDL_keyboard.c b/src/events/SDL_keyboard.c -index 5753927..da37fe6 100644 ---- a/src/events/SDL_keyboard.c -+++ b/src/events/SDL_keyboard.c -@@ -371,6 +371,13 @@ Uint8 * SDL_GetKeyState (int *numkeys) - *numkeys = SDLK_LAST; - return(SDL_KeyState); - } -+ -+// private (used in naclevents.c) -+void SDL_SetKeyState (SDLKey key, Uint8 state) -+{ -+ SDL_KeyState[key] = state; -+} -+ - SDLMod SDL_GetModState (void) - { - return(SDL_ModState); -diff --git a/src/main/nacl/SDL_nacl_main.c b/src/main/nacl/SDL_nacl_main.c -deleted file mode 100644 -index ef26120..0000000 ---- a/src/main/nacl/SDL_nacl_main.c -+++ /dev/null -@@ -1,125 +0,0 @@ --/* -- Simple DirectMedia Layer -- Copyright (C) 1997-2014 Sam Lantinga <slouken@libsdl.org> -- -- This software is provided 'as-is', without any express or implied -- warranty. In no event will the authors be held liable for any damages -- arising from the use of this software. -- -- Permission is granted to anyone to use this software for any purpose, -- including commercial applications, and to alter it and redistribute it -- freely, subject to the following restrictions: -- -- 1. The origin of this software must not be misrepresented; you must not -- claim that you wrote the original software. If you use this software -- in a product, an acknowledgment in the product documentation would be -- appreciated but is not required. -- 2. Altered source versions must be plainly marked as such, and must not be -- misrepresented as being the original software. -- 3. This notice may not be removed or altered from any source distribution. --*/ --#include "SDL_config.h" -- --#if SDL_VIDEO_DRIVER_NACL -- --/* Include the SDL main definition header */ --#include "SDL_main.h" --#include "../../SDL_trace.h" -- --#include <errno.h> --#include <ppapi_simple/ps_main.h> --#include <ppapi_simple/ps_event.h> --#include <ppapi_simple/ps_interface.h> --#include <nacl_io/nacl_io.h> --#include <sys/mount.h> --#include <nacl_main.h> --#include <unistd.h> -- --extern void NACL_SetScreenResolution(int width, int height); -- --static int --ProcessArgs(int argc, char** argv) { -- const char* arg = getenv("SDL_TAR_EXTRACT"); -- if (arg != NULL) { -- const char* source; -- const char* target = "/"; -- char* sep; -- char buf[64]; -- int n; -- -- const char* q, *p = arg; -- while (*p) { -- while (*p && isspace((unsigned char)*p)) ++p; -- if (!*p) break; -- q = p; -- while (*p && !isspace((unsigned char)*p)) ++p; -- -- n = sizeof(buf) - 1; -- if (p - q < n) n = p - q; -- strncpy(buf, q, n); -- buf[n] = '\0'; -- -- sep = strchr(buf, ':'); -- source = buf; -- if (sep) { -- target = sep + 1; -- *sep = '\0'; -- } -- -- SDL_log("extracting tar file '%s' -> '%s'\n", source, target); -- if (nacl_startup_untar(argv[0], source, target) != 0) -- return 1; -- } -- } -- -- return 0; --} -- --/* This is started in a worker thread by ppapi_simple! */ --int --nacl_main(int argc, char *argv[]) --{ -- SDL_TRACE("nacl_main\n"); -- PSEvent* ps_event; -- PP_Resource event; -- struct PP_Rect rect; -- int ready = 0; -- const PPB_View *ppb_view = PSInterfaceView(); -- -- if (ProcessArgs(argc, argv) != 0) { -- return 1; -- } -- -- /* Wait for the first PSE_INSTANCE_DIDCHANGEVIEW event before starting the app */ -- PSEventSetFilter(PSE_INSTANCE_DIDCHANGEVIEW); -- /* Process all waiting events without blocking */ -- while (!ready) { -- ps_event = PSEventWaitAcquire(); -- event = ps_event->as_resource; -- switch(ps_event->type) { -- /* From DidChangeView, contains a view resource */ -- case PSE_INSTANCE_DIDCHANGEVIEW: -- ppb_view->GetRect(event, &rect); -- NACL_SetScreenResolution(rect.size.width, rect.size.height); -- ready = 1; -- break; -- default: -- break; -- } -- PSEventRelease(ps_event); -- } -- -- /* -- * Startup in /mnt/http by default so resources hosted on the webserver -- * are accessible in the current working directory. -- */ -- if (getenv("PWD") == NULL) { -- if (chdir("/mnt/http") != 0) { -- SDL_log("chdir to /mnt/http failed: %s\n", strerror(errno)); -- } -- } -- -- return SDL_main(argc, argv); --} -- --#endif /* SDL_VIDEO_DRIVER_NACL */ -diff --git a/src/main/nacl/SDL_nacl_main.cc b/src/main/nacl/SDL_nacl_main.cc -new file mode 100644 -index 0000000..ee80b9a ---- /dev/null -+++ b/src/main/nacl/SDL_nacl_main.cc -@@ -0,0 +1,129 @@ -+/* -+ Simple DirectMedia Layer -+ Copyright (C) 1997-2014 Sam Lantinga <slouken@libsdl.org> -+ -+ This software is provided 'as-is', without any express or implied -+ warranty. In no event will the authors be held liable for any damages -+ arising from the use of this software. -+ -+ Permission is granted to anyone to use this software for any purpose, -+ including commercial applications, and to alter it and redistribute it -+ freely, subject to the following restrictions: -+ -+ 1. The origin of this software must not be misrepresented; you must not -+ claim that you wrote the original software. If you use this software -+ in a product, an acknowledgment in the product documentation would be -+ appreciated but is not required. -+ 2. Altered source versions must be plainly marked as such, and must not be -+ misrepresented as being the original software. -+ 3. This notice may not be removed or altered from any source distribution. -+*/ -+#include "SDL_config.h" -+ -+#if SDL_VIDEO_DRIVER_NACL -+ -+/* Include the SDL main definition header */ -+#include "SDL_main.h" -+#include "../../SDL_trace.h" -+ -+#include <errno.h> -+#include <ppapi_simple/ps_main.h> -+#include <ppapi_simple/ps_event.h> -+#include <ppapi_simple/ps_interface.h> -+#include <nacl_io/nacl_io.h> -+#include <sys/mount.h> -+#include <nacl_main.h> -+#include <unistd.h> -+ -+extern "C" void NACL_SetScreenResolution(int width, int height); -+ -+static int -+ProcessArgs(int argc, char** argv) { -+ const char* arg = getenv("SDL_TAR_EXTRACT"); -+ if (arg != NULL) { -+ const char* source; -+ const char* target = "/"; -+ char* sep; -+ char buf[64]; -+ int n; -+ -+ const char* q, *p = arg; -+ while (*p) { -+ while (*p && isspace((unsigned char)*p)) ++p; -+ if (!*p) break; -+ q = p; -+ while (*p && !isspace((unsigned char)*p)) ++p; -+ -+ n = sizeof(buf) - 1; -+ if (p - q < n) n = p - q; -+ strncpy(buf, q, n); -+ buf[n] = '\0'; -+ -+ sep = strchr(buf, ':'); -+ source = buf; -+ if (sep) { -+ target = sep + 1; -+ *sep = '\0'; -+ } -+ -+ SDL_log("extracting tar file '%s' -> '%s'\n", source, target); -+ if (nacl_startup_untar(argv[0], source, target) != 0) -+ return 1; -+ } -+ } -+ -+ return 0; -+} -+ -+#undef main -+ -+/* This is started in a worker thread by ppapi_simple! */ -+int -+main(int argc, char *argv[]) -+{ -+ SDL_TRACE("main\n"); -+ PSEvent* ps_event; -+ PP_Resource event; -+ struct PP_Rect rect; -+ int ready = 0; -+ const PPB_View *ppb_view = PSInterfaceView(); -+ -+ if (ProcessArgs(argc, argv) != 0) { -+ return 1; -+ } -+ -+ /* Wait for the first PSE_INSTANCE_DIDCHANGEVIEW event before starting the app */ -+ PSEventSetFilter(PSE_INSTANCE_DIDCHANGEVIEW); -+ /* Process all waiting events without blocking */ -+ while (!ready) { -+ ps_event = PSEventWaitAcquire(); -+ event = ps_event->as_resource; -+ switch(ps_event->type) { -+ /* From DidChangeView, contains a view resource */ -+ case PSE_INSTANCE_DIDCHANGEVIEW: -+ ppb_view->GetRect(event, &rect); -+ NACL_SetScreenResolution(rect.size.width, rect.size.height); -+ ready = 1; -+ break; -+ default: -+ break; -+ } -+ PSEventRelease(ps_event); -+ } -+ -+ mount("", /* source */ -+ "/persistent", /* target */ -+ "html5fs", /* filesystemtype */ -+ 0, /* mountflags */ -+ "type=PERSISTENT,expected_size=1048576"); /* data */ -+ -+ mount("", /* source. Use relative URL */ -+ "/http", /* target */ -+ "httpfs", /* filesystemtype */ -+ 0, /* mountflags */ -+ ""); /* data */ -+ -+ return SDL_main(argc, argv); -+} -+ -+#endif /* SDL_VIDEO_DRIVER_NACL */ -diff --git a/src/video/nacl/SDL_naclevents.c b/src/video/nacl/SDL_naclevents.c -index a2f7e19..a97134f 100644 ---- a/src/video/nacl/SDL_naclevents.c -+++ b/src/video/nacl/SDL_naclevents.c -@@ -29,6 +29,7 @@ - - #include <math.h> - #include <ppapi_simple/ps_event.h> -+#include <ppapi/c/ppb_input_event.h> - - #define PPAPI_KEY_CTRL 17 - #define PPAPI_KEY_ALT 18 -@@ -176,12 +177,85 @@ static SDLKey translateKey(uint32_t code) { - } - } - -+static SDL_bool SDL_NeedModUpdate = SDL_TRUE; -+ -+static int Utf8ToUtf16(const Uint8 *utf8, const int utf8_length, Uint16 *utf16, const int utf16_max_length) { -+ -+ /* p moves over the output buffer. max_ptr points to the next to the last slot of the buffer. */ -+ Uint16 *p = utf16; -+ Uint16 const *const max_ptr = utf16 + utf16_max_length; -+ -+ /* end_of_input points to the last byte of input as opposed to the next to the last byte. */ -+ Uint8 const *const end_of_input = utf8 + utf8_length - 1; -+ -+ while (utf8 <= end_of_input) { -+ Uint8 const c = *utf8; -+ if (p >= max_ptr) { -+ /* No more output space. */ -+ return -1; -+ } -+ if (c < 0x80) { -+ /* One byte ASCII. */ -+ *p++ = c; -+ utf8 += 1; -+ } else if (c < 0xC0) { -+ /* Follower byte without preceeding leader bytes. */ -+ return -1; -+ } else if (c < 0xE0) { -+ /* Two byte sequence. We need one follower byte. */ -+ if (end_of_input - utf8 < 1 || (((utf8[1] ^ 0x80)) & 0xC0)) { -+ return -1; -+ } -+ *p++ = (Uint16)(0xCF80 + (c << 6) + utf8[1]); -+ utf8 += 2; -+ } else if (c < 0xF0) { -+ /* Three byte sequence. We need two follower byte. */ -+ if (end_of_input - utf8 < 2 || (((utf8[1] ^ 0x80) | (utf8[2] ^ 0x80)) & 0xC0)) { -+ return -1; -+ } -+ *p++ = (Uint16)(0xDF80 + (c << 12) + (utf8[1] << 6) + utf8[2]); -+ utf8 += 3; -+ } else if (c < 0xF8) { -+ int plane; -+ /* Four byte sequence. We need three follower bytes. */ -+ if (end_of_input - utf8 < 3 || (((utf8[1] ^ 0x80) | (utf8[2] ^0x80) | (utf8[3] ^ 0x80)) & 0xC0)) { -+ return -1; -+ } -+ plane = (-0xC8 + (c << 2) + (utf8[1] >> 4)); -+ if (plane == 0) { -+ /* This four byte sequence is an alias that -+ corresponds to a Unicode scalar value in BMP. -+ It fits in an UTF-16 encoding unit. */ -+ *p++ = (Uint16)(0xDF80 + (utf8[1] << 12) + (utf8[2] << 6) + utf8[3]); -+ } else if (plane <= 16) { -+ /* This is a legal four byte sequence that corresponds to a surrogate pair. */ -+ if (p + 1 >= max_ptr) { -+ /* No enough space on the output buffer for the pair. */ -+ return -1; -+ } -+ *p++ = (Uint16)(0xE5B8 + (c << 8) + (utf8[1] << 2) + (utf8[2] >> 4)); -+ *p++ = (Uint16)(0xDB80 + ((utf8[2] & 0x0F) << 6) + utf8[3]); -+ } else { -+ /* This four byte sequence is out of UTF-16 code space. */ -+ return -1; -+ } -+ utf8 += 4; -+ } else { -+ /* Longer sequence or unused byte. */ -+ return -1; -+ } -+ } -+ return p - utf16; -+} -+ -+ - void HandleInputEvent(_THIS, PP_Resource event) { - static Uint8 last_scancode = 0; - static int alt_down = 0; - static int ctrl_down = 0; - PP_InputEvent_Type type; - PP_InputEvent_Modifier modifiers; -+ SDLMod sdl_mod; - Uint8 button; - Uint8 state; - Uint8 gained; -@@ -197,9 +271,49 @@ void HandleInputEvent(_THIS, PP_Resource event) { - int sdl_wheel_clicks_y; - int i; - -+ // defining modifiers array for conversion -+ static const size_t modcnt = 6; -+ static const int ppapi_mods[modcnt] = { -+ PP_INPUTEVENT_MODIFIER_SHIFTKEY, -+ PP_INPUTEVENT_MODIFIER_CONTROLKEY, -+ PP_INPUTEVENT_MODIFIER_ALTKEY, -+ PP_INPUTEVENT_MODIFIER_METAKEY, -+ PP_INPUTEVENT_MODIFIER_CAPSLOCKKEY, -+ PP_INPUTEVENT_MODIFIER_NUMLOCKKEY -+ }; -+ static const SDLMod sdl_mods[modcnt] = { -+ KMOD_LSHIFT, -+ KMOD_LCTRL, -+ KMOD_LALT, -+ KMOD_LMETA, -+ KMOD_CAPS, -+ KMOD_NUM -+ }; -+ static const SDLKey sdl_keys[modcnt] = { -+ SDLK_LSHIFT, -+ SDLK_LCTRL, -+ SDLK_LALT, -+ SDLK_LMETA, -+ SDLK_CAPSLOCK, -+ SDLK_NUMLOCK -+ }; -+ static const SDLKey sdl_rkeys[modcnt] = { -+ SDLK_RSHIFT, -+ SDLK_RCTRL, -+ SDLK_RALT, -+ SDLK_RMETA, -+ SDLK_CAPSLOCK, -+ SDLK_NUMLOCK -+ }; -+ - type = dd->ppb_input_event->GetType(event); - modifiers = dd->ppb_input_event->GetModifiers(event); - -+ // alt_down and ctrl_down correction -+ // needed when one of these keys were pressed outside of the module -+ alt_down = modifiers & PP_INPUTEVENT_MODIFIER_ALTKEY ? 1 : 0; -+ ctrl_down = modifiers & PP_INPUTEVENT_MODIFIER_CONTROLKEY ? 1 : 0; -+ - switch (type) { - case PP_INPUTEVENT_TYPE_MOUSEDOWN: - case PP_INPUTEVENT_TYPE_MOUSEUP: -@@ -216,13 +330,13 @@ void HandleInputEvent(_THIS, PP_Resource event) { - sdl_wheel_clicks_y = trunc(wheel_clicks_y); - button = (sdl_wheel_clicks_x > 0) ? SDL_BUTTON_X1 : SDL_BUTTON_X2; - for (i = 0; i < abs(sdl_wheel_clicks_x); i++) { -- SDL_PrivateMouseButton(SDL_MOUSEBUTTONDOWN, button, 0, 0); -- SDL_PrivateMouseButton(SDL_MOUSEBUTTONUP, button, 0, 0); -+ SDL_PrivateMouseButton(SDL_PRESSED, button, 0, 0); -+ SDL_PrivateMouseButton(SDL_RELEASED, button, 0, 0); - } - button = (sdl_wheel_clicks_y > 0) ? SDL_BUTTON_WHEELUP : SDL_BUTTON_WHEELDOWN; - for (i = 0; i < abs(sdl_wheel_clicks_y); i++) { -- SDL_PrivateMouseButton(SDL_MOUSEBUTTONDOWN, button, 0, 0); -- SDL_PrivateMouseButton(SDL_MOUSEBUTTONUP, button, 0, 0); -+ SDL_PrivateMouseButton(SDL_PRESSED, button, 0, 0); -+ SDL_PrivateMouseButton(SDL_RELEASED, button, 0, 0); - } - wheel_clicks_x -= sdl_wheel_clicks_x; - wheel_clicks_y -= sdl_wheel_clicks_y; -@@ -259,7 +373,12 @@ void HandleInputEvent(_THIS, PP_Resource event) { - // It seems that SDL 1.3 is better in this regard. - keysym.scancode = dd->ppb_keyboard_input_event->GetKeyCode(event); - unicode_var = dd->ppb_keyboard_input_event->GetCharacterText(event); -- keysym.unicode = dd->ppb_var->VarToUtf8(unicode_var, &unicode_var_len)[0]; -+ const Uint8 *utf8_buf = dd->ppb_var->VarToUtf8(unicode_var, &unicode_var_len); -+ -+ Uint8 utf16_buf[10]; -+ Utf8ToUtf16(utf8_buf, unicode_var_len, (Uint16*)&utf16_buf[0], 1); -+ keysym.unicode = *(Uint16*)&utf16_buf[0]; -+ - dd->ppb_var->Release(unicode_var); - keysym.sym = translateKey(keysym.scancode); - -@@ -318,6 +437,34 @@ void HandleInputEvent(_THIS, PP_Resource event) { - state = SDL_RELEASED; - last_scancode = 0; - } -+ -+ if (SDL_NeedModUpdate) { -+ // copying keyboard modifiers from PPAPI -+ sdl_mod = KMOD_NONE; -+ for (i = 0; i < modcnt; ++i) { -+ if (sdl_keys[i] == keysym.sym) // if key is a modifier -+ continue; // then do not copy it -+ if (modifiers & ppapi_mods[i]) { -+ sdl_mod |= sdl_mods[i]; -+ SDL_SetKeyState(sdl_keys[i], SDL_PRESSED); -+ } else { -+ SDL_SetKeyState(sdl_keys[i], SDL_RELEASED); -+ } -+ } -+ SDL_SetModState(sdl_mod); -+ SDL_NeedModUpdate = SDL_FALSE; -+ } -+ -+ if (modifiers & PP_INPUTEVENT_MODIFIER_ISRIGHT) { -+ // convert left modifier keycode to the right one -+ for (i = 0; i < modcnt; ++i) { -+ if (keysym.sym == sdl_keys[i]) { -+ keysym.sym = sdl_rkeys[i]; -+ break; -+ } -+ } -+ } -+ - keysym.mod = KMOD_NONE; - SDL_TRACE("Key event: %d: %s\n", state, SDL_GetKeyName(keysym.sym)); - SDL_PrivateKeyboard(state, &keysym); -@@ -352,6 +499,7 @@ static void HandleEvent(_THIS, PSEvent* ps_event) { - - /* From DidChangeFocus, contains a PP_Bool with the current focus state. */ - case PSE_INSTANCE_DIDCHANGEFOCUS: -+ SDL_NeedModUpdate = SDL_TRUE; - break; - - /* When the 3D context is lost, no resource. */ diff --git a/packaging/nacl/ports/sdl/pkg_info b/packaging/nacl/ports/sdl/pkg_info deleted file mode 100644 index 21813f18c..000000000 --- a/packaging/nacl/ports/sdl/pkg_info +++ /dev/null @@ -1,7 +0,0 @@ -NAME=sdl -VERSION=1.2.15 -URL=https://github.com/sbc100/SDL-mirror.git@1c6f2d0 -LICENSE=LGPL2 -DEPENDS=(nacl-spawn regal) -SHA1=0c5f193ced810b0d7ce3ab06d808cbb5eef03a2c -DISABLED_TOOLCHAIN=(emscripten) diff --git a/packaging/openSUSE Build Service/manaplus.spec b/packaging/openSUSE Build Service/manaplus.spec deleted file mode 100644 index 852f6422c..000000000 --- a/packaging/openSUSE Build Service/manaplus.spec +++ /dev/null @@ -1,101 +0,0 @@ -Name: manaplus -Version: 1.1.6.26 -Release: 1 -Summary: A client for Evol Online and The Mana World: 2D MMORPG -Group: Games/Other -License: GPLv2+ -Url: http://manaplus.evolonline.org/ -Source0: http://download.evolonline.org/manaplus/download/%{version}/%{name}-%{version}.tar.bz2 -BuildRoot: %{_topdir}/%{name}-%{version}-root - -BuildRequires: gcc-c++ -BuildRequires: make -BuildRequires: SDL-devel -BuildRequires: SDL_image-devel -BuildRequires: SDL_mixer-devel -Buildrequires: SDL_net-devel -BuildRequires: SDL_ttf-devel -BuildRequires: SDL_gfx-devel -BuildRequires: libcurl-devel -BuildRequires: libxml2-devel -BuildRequires: libpng-devel -BuildRequires: gettext-devel - -Provides: evolonline-client = %{version}-%{release} -Provides: manaworld-client = %{version}-%{release} - -%description -ManaPlus is extended client for Evol Online, The Mana World and similar -servers based on eAthena fork. -As a 2D style game, Evol Online aims to create a friendly environment where -people can escape reality and interact with others while enjoying themselves -through a fantasy style game. -The Mana World (TMW) is a serious effort to create an innovative free and -open source MMORPG. TMW uses 2D graphics and aims to create a large and -diverse interactive world. - -%prep -%setup -q - -%build -%configure --host= -%{__make} - -%install -rm -rf %{buildroot} -%makeinstall - -%find_lang %{name} - -%clean -rm -rf %{buildroot} - -%files -f %{name}.lang -%attr(-, root, root) %doc AUTHORS ChangeLog COPYING docs/*.txt NEWS README -%attr(0755, root, root) %{_bindir}/%{name} -%attr(-, root, root) %{_datadir}/%{name} -%attr(-, root, root) %{_datadir}/pixmaps/%{name}.png -%attr(-, root, root) %{_datadir}/applications/%{name}.desktop -%attr(-, root, root) %{_mandir}/man6/%{name}* - - -%changelog -* Sat Jul 02 2011 Andrei Karas <akaras@inbox.ru> 1.1.6.26 -- Add missing dependency SDL_image and compilation tools - -* Fri May 27 2011 Maarten Vanraes <maarten.vanraes@gmail.com> 1.1.5.15 -- Generalise spec file to work for multiple rpm-based distros - -* Sun Apr 17 2011 alien <alien> 1.1.4.17-1.mga1 -+ Revision: 87336 -- upgrade to 1.1.4.17 - -* Fri Apr 08 2011 alien <alien> 1.1.4.3-1.mga1 -+ Revision: 82020 -- Update to new version 1.1.4.3 -- manaplus is now primarily for Evol Online, updating Summary and Description and add Provides -- suggests mumble - -* Sat Feb 26 2011 alien <alien> 1.1.2.20-1.mga1 -+ Revision: 61040 -- Fix BuildRequires -- Fix configure part -- Remove unneeded mv files -- Remove BuildRoot -- use tmw spec file as basis -- imported package manaplus - - -* Sun Jan 31 2010 Jérôme Brenier <incubusss@mandriva.org> 0.0.29.1-3mdv2010.1 -+ Revision: 498772 -- add version and release for Provides - -* Tue Jan 05 2010 Jérôme Brenier <incubusss@mandriva.org> 0.0.29.1-2mdv2010.1 -+ Revision: 486410 -- use _gamesbindir and _gamesdatadir -- Suggests: tmwmusic - -* Tue Jan 05 2010 Jérôme Brenier <incubusss@mandriva.org> 0.0.29.1-1mdv2010.1 -+ Revision: 486388 -- add some provides on themanaworld and manaworld -- import tmw diff --git a/packaging/patches/physfs/zip_seek.diff b/packaging/patches/physfs/zip_seek.diff deleted file mode 100644 index 0d9b17f5e..000000000 --- a/packaging/patches/physfs/zip_seek.diff +++ /dev/null @@ -1,13 +0,0 @@ -diff -r 34ebe997c5c0 archivers/zip.c ---- a/archivers/zip.c Fri Jan 01 12:53:41 2016 -0500 -+++ b/archivers/zip.c Wed Jan 25 20:56:26 2017 +0300 -@@ -327,7 +327,8 @@ - return(0); - - inflateEnd(&finfo->stream); -- memcpy(&finfo->stream, &str, sizeof (z_stream)); -+ inflateCopy(&finfo->stream, &str); -+ inflateEnd(&str); - finfo->uncompressed_position = finfo->compressed_position = 0; - } /* if */ - diff --git a/packaging/windows/FileAssociation.nsh b/packaging/windows/FileAssociation.nsh deleted file mode 100644 index 71a9162ef..000000000 --- a/packaging/windows/FileAssociation.nsh +++ /dev/null @@ -1,190 +0,0 @@ -/* -_____________________________________________________________________________ - - File Association -_____________________________________________________________________________ - - Based on code taken from http://nsis.sourceforge.net/File_Association - - Usage in script: - 1. !include "FileAssociation.nsh" - 2. [Section|Function] - ${FileAssociationFunction} "Param1" "Param2" "..." $var - [SectionEnd|FunctionEnd] - - FileAssociationFunction=[RegisterExtension|UnRegisterExtension] - -_____________________________________________________________________________ - - ${RegisterExtension} "[executable]" "[extension]" "[description]" - -"[executable]" ; executable which opens the file format - ; -"[extension]" ; extension, which represents the file format to open - ; -"[description]" ; description for the extension. This will be display in Windows Explorer. - ; - - - ${UnRegisterExtension} "[extension]" "[description]" - -"[extension]" ; extension, which represents the file format to open - ; -"[description]" ; description for the extension. This will be display in Windows Explorer. - ; - -_____________________________________________________________________________ - - Macros -_____________________________________________________________________________ - - Change log window verbosity (default: 3=no script) - - Example: - !include "FileAssociation.nsh" - !insertmacro RegisterExtension - ${FileAssociation_VERBOSE} 4 # all verbosity - !insertmacro UnRegisterExtension - ${FileAssociation_VERBOSE} 3 # no script -*/ - - -!ifndef FileAssociation_INCLUDED -!define FileAssociation_INCLUDED - -!include Util.nsh - -!verbose push -!verbose 3 -!ifndef _FileAssociation_VERBOSE - !define _FileAssociation_VERBOSE 3 -!endif -!verbose ${_FileAssociation_VERBOSE} -!define FileAssociation_VERBOSE `!insertmacro FileAssociation_VERBOSE` -!verbose pop - -!macro FileAssociation_VERBOSE _VERBOSE - !verbose push - !verbose 3 - !undef _FileAssociation_VERBOSE - !define _FileAssociation_VERBOSE ${_VERBOSE} - !verbose pop -!macroend - - - -!macro RegisterExtensionCall _EXECUTABLE _EXTENSION _DESCRIPTION - !verbose push - !verbose ${_FileAssociation_VERBOSE} - Push `${_DESCRIPTION}` - Push `${_EXTENSION}` - Push `${_EXECUTABLE}` - ${CallArtificialFunction} RegisterExtension_ - !verbose pop -!macroend - -!macro UnRegisterExtensionCall _EXTENSION _DESCRIPTION - !verbose push - !verbose ${_FileAssociation_VERBOSE} - Push `${_EXTENSION}` - Push `${_DESCRIPTION}` - ${CallArtificialFunction} UnRegisterExtension_ - !verbose pop -!macroend - - - -!define RegisterExtension `!insertmacro RegisterExtensionCall` -!define un.RegisterExtension `!insertmacro RegisterExtensionCall` - -!macro RegisterExtension -!macroend - -!macro un.RegisterExtension -!macroend - -!macro RegisterExtension_ - !verbose push - !verbose ${_FileAssociation_VERBOSE} - - Exch $R2 ;exe - Exch - Exch $R1 ;ext - Exch - Exch 2 - Exch $R0 ;desc - Exch 2 - Push $0 - Push $1 - - ReadRegStr $1 HKCR $R1 "" ; read current file association - StrCmp "$1" "" NoBackup ; is it empty - StrCmp "$1" "$R0" NoBackup ; is it our own - WriteRegStr HKCR $R1 "backup_val" "$1" ; backup current value -NoBackup: - WriteRegStr HKCR $R1 "" "$R0" ; set our file association - - ReadRegStr $0 HKCR $R0 "" - StrCmp $0 "" 0 Skip - WriteRegStr HKCR "$R0" "" "$R0" - WriteRegStr HKCR "$R0\shell" "" "open" - WriteRegStr HKCR "$R0\DefaultIcon" "" "$R2,0" -Skip: - WriteRegStr HKCR "$R0\shell\open\command" "" '"$R2" "%1"' - WriteRegStr HKCR "$R0\shell\edit" "" "Edit $R0" - WriteRegStr HKCR "$R0\shell\edit\command" "" '"$R2" "%1"' - - Pop $1 - Pop $0 - Pop $R2 - Pop $R1 - Pop $R0 - - !verbose pop -!macroend - - - -!define UnRegisterExtension `!insertmacro UnRegisterExtensionCall` -!define un.UnRegisterExtension `!insertmacro UnRegisterExtensionCall` - -!macro UnRegisterExtension -!macroend - -!macro un.UnRegisterExtension -!macroend - -!macro UnRegisterExtension_ - !verbose push - !verbose ${_FileAssociation_VERBOSE} - - Exch $R1 ;desc - Exch - Exch $R0 ;ext - Exch - Push $0 - Push $1 - - ReadRegStr $1 HKCR $R0 "" - StrCmp $1 $R1 0 NoOwn ; only do this if we own it - ReadRegStr $1 HKCR $R0 "backup_val" - StrCmp $1 "" 0 Restore ; if backup="" then delete the whole key - DeleteRegKey HKCR $R0 - Goto NoOwn - -Restore: - WriteRegStr HKCR $R0 "" $1 - DeleteRegValue HKCR $R0 "backup_val" - DeleteRegKey HKCR $R1 ;Delete key with association name settings - -NoOwn: - - Pop $1 - Pop $0 - Pop $R1 - Pop $R0 - - !verbose pop -!macroend - -!endif # !FileAssociation_INCLUDED diff --git a/packaging/windows/evol.nsi b/packaging/windows/evol.nsi deleted file mode 100644 index 84b9cae9e..000000000 --- a/packaging/windows/evol.nsi +++ /dev/null @@ -1,497 +0,0 @@ -; This script allows the following parameters being overwritten from -; command line. When called without any parameters it behaves exactly -; like the old install script. -; -; DLLDIR - directory containing required dlls -; EXEDIR - directory containing manaplus.exe -; EXESUFFIX - offset to SRCDIR pointing to a directory containing manaplus.exe -; PRODUCT_VERSION - software version -; UPX - upx binary name -; -; For a cmake build on UNIX the following should give you a working installer: -; makensis -DDLLDIR=/path/to/dlls \ -; -DPRODUCT_VERSION=0.1.`date +%Y%m%d` -; -DUPX=upx -; -DEXESUFFIX=/src - -CRCCheck on -SetCompress off -SetCompressor /SOLID lzma - -RequestExecutionLevel admin - -!define SRCDIR "..\.." -!ifndef UPX - !define "UPX upx\upx.exe" -!endif - -!ifdef EXESUFFIX - !define EXEDIR ${SRCDIR}/${EXESUFFIX} -!endif - -!ifndef EXEDIR - !define EXEDIR ${SRCDIR} -!endif - -!ifndef DLLDIR - !define DLLDIR ${SRCDIR}/dll -!endif - -!ifndef BITS - !define BITS 32 -!endif - -!ifndef SEHDLL - !define SEHDLL "libgcc_s_sjlj-1.dll" -!endif - -;--- (and without !defines ) --- -!System "${UPX} --best --crp-ms=999999 --compress-icons=0 --nrv2d ${EXEDIR}\manaplus.exe" - -!define MULTIUSER_INSTALLMODE_COMMANDLINE -!include "MultiUser.nsh" - -; HM NIS Edit helper defines -!define PRODUCT_NAME "EvolClient" -!ifndef PRODUCT_VERSION - !define PRODUCT_VERSION "1.1" -!endif -!define PRODUCT_PUBLISHER "Evol Online Delopment Team" -!define PRODUCT_WEB_SITE "http://www.evolonline.org/" -!define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\manaplus.exe" -!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" -!define PRODUCT_UNINST_ROOT_KEY "SHCTX" - -!include "FileAssociation.nsh" - -; MUI 1.67 compatible ------ -!include "MUI.nsh" - -; MUI Settings -!define MUI_ABORTWARNING -;!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\win-install.ico" -!define MUI_ICON "${SRCDIR}\data\evol\icons\evol-client.ico" -;!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\win-uninstall.ico" -!define MUI_UNICON "${SRCDIR}\data\evol\icons\evol-client.ico" - -;Language Selection Dialog Settings -;Remember the installer language -!define MUI_LANGDLL_REGISTRY_ROOT "HKCU" -!define MUI_LANGDLL_REGISTRY_KEY "Software\EvolOnline" -!define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language" - -!define MUI_WELCOMEFINISHPAGE_BITMAP "setup_welcome.bmp" -!define MUI_UNWELCOMEFINISHPAGE_BITMAP "setup_welcome.bmp" - -; Welcome page - -!define MUI_WELCOMEPAGE_TITLE_3LINES -!insertmacro MUI_PAGE_WELCOME -; License page -!insertmacro MUI_PAGE_LICENSE "${SRCDIR}\COPYING" -; Directory page -!insertmacro MUI_PAGE_DIRECTORY -; Components page -!insertmacro MUI_PAGE_COMPONENTS -; Instfiles page -!insertmacro MUI_PAGE_INSTFILES -; Finish page -!define MUI_FINISHPAGE_RUN -!define MUI_FINISHPAGE_RUN_FUNCTION RunEvol -!define MUI_FINISHPAGE_SHOWREADME 'notepad.exe "$\"$INSTDIR\README$\""' -!define MUI_PAGE_CUSTOMFUNCTION_PRE changeFinishImage -!define MUI_FINISHPAGE_LINK "Visit EvolOnline website for the latest news, FAQs and support" -!define MUI_FINISHPAGE_LINK_LOCATION "http://www.evolonline.org/" -!insertmacro MUI_PAGE_FINISH - -Function RunEvol -SetOutPath $INSTDIR -Exec "$INSTDIR\manaplus.exe $INSTDIR\evol.manaplus" -FunctionEnd - -Function changeFinishImage -!insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 1" "Text" "$PLUGINSDIR\setup_finish.bmp" -FunctionEnd - -; Uninstaller pages - -!insertmacro MUI_UNPAGE_CONFIRM -!insertmacro MUI_UNPAGE_INSTFILES -!define MUI_FINISHPAGE_TITLE_3LINES -!insertmacro MUI_UNPAGE_FINISH - -;Languages -!insertmacro MUI_LANGUAGE "English" # first language is the default language -!insertmacro MUI_LANGUAGE "French" -!insertmacro MUI_LANGUAGE "German" -!insertmacro MUI_LANGUAGE "Spanish" -!insertmacro MUI_LANGUAGE "SimpChinese" -!insertmacro MUI_LANGUAGE "TradChinese" -!insertmacro MUI_LANGUAGE "Japanese" -!insertmacro MUI_LANGUAGE "Korean" -!insertmacro MUI_LANGUAGE "Italian" -!insertmacro MUI_LANGUAGE "Dutch" -!insertmacro MUI_LANGUAGE "Danish" -!insertmacro MUI_LANGUAGE "Swedish" -!insertmacro MUI_LANGUAGE "Norwegian" -!insertmacro MUI_LANGUAGE "Finnish" -!insertmacro MUI_LANGUAGE "Greek" -!insertmacro MUI_LANGUAGE "Russian" -!insertmacro MUI_LANGUAGE "Portuguese" -!insertmacro MUI_LANGUAGE "PortugueseBR" -!insertmacro MUI_LANGUAGE "Polish" -!insertmacro MUI_LANGUAGE "Ukrainian" -!insertmacro MUI_LANGUAGE "Czech" -!insertmacro MUI_LANGUAGE "Slovak" -!insertmacro MUI_LANGUAGE "Croatian" -!insertmacro MUI_LANGUAGE "Bulgarian" -!insertmacro MUI_LANGUAGE "Hungarian" -!insertmacro MUI_LANGUAGE "Thai" -!insertmacro MUI_LANGUAGE "Romanian" -!insertmacro MUI_LANGUAGE "Latvian" -!insertmacro MUI_LANGUAGE "Macedonian" -!insertmacro MUI_LANGUAGE "Estonian" -!insertmacro MUI_LANGUAGE "Turkish" -!insertmacro MUI_LANGUAGE "Lithuanian" -!insertmacro MUI_LANGUAGE "Catalan" -!insertmacro MUI_LANGUAGE "Slovenian" -!insertmacro MUI_LANGUAGE "Serbian" -!insertmacro MUI_LANGUAGE "SerbianLatin" -!insertmacro MUI_LANGUAGE "Arabic" -!insertmacro MUI_LANGUAGE "Farsi" -!insertmacro MUI_LANGUAGE "Hebrew" -!insertmacro MUI_LANGUAGE "Indonesian" -!insertmacro MUI_LANGUAGE "Mongolian" -!insertmacro MUI_LANGUAGE "Luxembourgish" -!insertmacro MUI_LANGUAGE "Albanian" -!insertmacro MUI_LANGUAGE "Breton" -!insertmacro MUI_LANGUAGE "Belarusian" -!insertmacro MUI_LANGUAGE "Icelandic" -!insertmacro MUI_LANGUAGE "Malay" -!insertmacro MUI_LANGUAGE "Bosnian" -!insertmacro MUI_LANGUAGE "Kurdish" - -!insertmacro MUI_RESERVEFILE_LANGDLL - -ReserveFile "setup_finish.bmp" - -; MUI end ------ - -Name "${PRODUCT_NAME} ${PRODUCT_VERSION}" -OutFile "evol-${PRODUCT_VERSION}-win${BITS}.exe" -InstallDir "$PROGRAMFILES\EvolOnline" -InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" "" -ShowInstDetails show -ShowUnInstDetails show -RequestExecutionLevel admin - -Function .onInit - !insertmacro MULTIUSER_INIT - !insertmacro MUI_LANGDLL_DISPLAY - InitPluginsDir - File /oname=$PLUGINSDIR\setup_finish.bmp "setup_finish.bmp" - - ReadRegStr $R0 SHCTX \ - "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" \ - "UninstallString" - StrCmp $R0 "" done - - MessageBox MB_YESNO|MB_ICONEXCLAMATION \ - "${PRODUCT_NAME} is already installed. $\n$\nClick `YES` (recomended) to remove the \ - previous version or `NO` to install new version over old version." \ - IDNO done - -;Run the uninstaller -uninst: - ClearErrors - ExecWait '$R0' ;Do not copy the uninstaller to a temp file - - IfErrors no_remove_uninstaller done - ;You can either use Delete /REBOOTOK in the uninstaller or add some code - ;here to remove the uninstaller. Use a registry key to check - ;whether the user has chosen to uninstall. If you are using an uninstaller - ;components page, make sure all sections are uninstalled. - no_remove_uninstaller: - -done: - -FunctionEnd - - -Section "Core files (required)" SecCore - SectionIn RO - SetOutPath "$INSTDIR" - SetOverwrite ifnewer - CreateDirectory "$INSTDIR\data" - CreateDirectory "$INSTDIR\data\evol" - CreateDirectory "$INSTDIR\data\evol\icons" - CreateDirectory "$INSTDIR\data\evol\images" - CreateDirectory "$INSTDIR\data\fonts" - CreateDirectory "$INSTDIR\data\graphics" - CreateDirectory "$INSTDIR\data\help" - CreateDirectory "$INSTDIR\data\help\idx" - CreateDirectory "$INSTDIR\data\help\tips" - CreateDirectory "$INSTDIR\data\icons" - CreateDirectory "$INSTDIR\data\music" - CreateDirectory "$INSTDIR\data\perserver" - CreateDirectory "$INSTDIR\data\perserver\default" - CreateDirectory "$INSTDIR\data\graphics\badges" - CreateDirectory "$INSTDIR\data\graphics\gui" - CreateDirectory "$INSTDIR\data\graphics\flags" - CreateDirectory "$INSTDIR\data\graphics\images" - CreateDirectory "$INSTDIR\data\graphics\shaders" - CreateDirectory "$INSTDIR\data\graphics\sprites" - CreateDirectory "$INSTDIR\data\sfx" - CreateDirectory "$INSTDIR\data\sfx\system" - CreateDirectory "$INSTDIR\data\themes" - CreateDirectory "$INSTDIR\data\themes\blacknblack" - CreateDirectory "$INSTDIR\data\themes\blackwood" - CreateDirectory "$INSTDIR\data\themes\classic" - CreateDirectory "$INSTDIR\data\themes\enchilado" - CreateDirectory "$INSTDIR\data\themes\golden-delicious" - CreateDirectory "$INSTDIR\data\themes\jewelry" - CreateDirectory "$INSTDIR\data\themes\mana" - CreateDirectory "$INSTDIR\data\themes\pink" - CreateDirectory "$INSTDIR\data\themes\unity" - CreateDirectory "$INSTDIR\data\themes\wood" - CreateDirectory "$INSTDIR\data\translations" - CreateDirectory "$INSTDIR\data\translations\help" - CreateDirectory "$INSTDIR\docs" - - SetOverwrite ifnewer - SetOutPath "$INSTDIR" - - File "${EXEDIR}\manaplus.exe" - File "${DLLDIR}\SDL.dll" - File "${DLLDIR}\SDL_image.dll" -; File "${DLLDIR}\SDL_mixer.dll" - File "${DLLDIR}\SDL_net.dll" - File "${DLLDIR}\SDL_ttf.dll" - File "${DLLDIR}\libSDL_gfx-15.dll" - File "${DLLDIR}\libcurl-4.dll" - File "${DLLDIR}\libfreetype-6.dll" - File "${DLLDIR}\${SEHDLL}" - File "${DLLDIR}\libiconv-2.dll" - File "${DLLDIR}\libintl-8.dll" - File "${DLLDIR}\libjpeg-9.dll" - File "${DLLDIR}\libogg-0.dll" - File "${DLLDIR}\libpng16-16.dll" - File "${DLLDIR}\libstdc++-6.dll" - File "${DLLDIR}\libvorbis-0.dll" - File "${DLLDIR}\libvorbisfile-3.dll" - File "${DLLDIR}\libxml2-2.dll" - File "${DLLDIR}\libwinpthread-1.dll" - File "${DLLDIR}\zlib1.dll" - File "${SRCDIR}\AUTHORS" - File "${SRCDIR}\COPYING" - File "${SRCDIR}\NEWS" - File "${SRCDIR}\README.txt" - SetOutPath "$INSTDIR\data\fonts" - File "${SRCDIR}\data\fonts\*.ttf" - SetOutPath "$INSTDIR\data\graphics\badges" - File "${SRCDIR}\data\graphics\badges\*.png" - File "${SRCDIR}\data\graphics\badges\*.xml" - SetOutPath "$INSTDIR\data\graphics\flags" - File "${SRCDIR}\data\graphics\flags\*.png" - SetOutPath "$INSTDIR\data\graphics\gui" - File "${SRCDIR}\data\graphics\gui\*.png" - File "${SRCDIR}\data\graphics\gui\*.xml" - SetOutPath "$INSTDIR\data\graphics\images" - File /x minimap_*.png ${SRCDIR}\data\graphics\images\*.png - File "${SRCDIR}\data\graphics\images\error.png" - SetOutPath "$INSTDIR\data\graphics\shaders" - File "${SRCDIR}\data\graphics\shaders\*.glsl" - SetOutPath "$INSTDIR\data\graphics\sprites" - File "${SRCDIR}\data\graphics\sprites\*.png" - File "${SRCDIR}\data\graphics\sprites\*.xml" - SetOutPath "$INSTDIR\data\sfx\system" - File "${SRCDIR}\data\sfx\system\*.ogg" - SetOutPath "$INSTDIR\data\themes\blacknblack" - File "${SRCDIR}\data\themes\blacknblack\*.png" - File "${SRCDIR}\data\themes\blacknblack\*.xml" - SetOutPath "$INSTDIR\data\themes\blackwood" - File "${SRCDIR}\data\themes\blackwood\*.png" - File "${SRCDIR}\data\themes\blackwood\*.xml" - SetOutPath "$INSTDIR\data\themes\mana" - File "${SRCDIR}\data\themes\mana\*.png" - File "${SRCDIR}\data\themes\mana\*.xml" - SetOutPath "$INSTDIR\data\themes\enchilado" - File "${SRCDIR}\data\themes\enchilado\*.png" - File "${SRCDIR}\data\themes\enchilado\*.xml" - SetOutPath "$INSTDIR\data\themes\golden-delicious" - File "${SRCDIR}\data\themes\golden-delicious\*.png" - File "${SRCDIR}\data\themes\golden-delicious\*.xml" - SetOutPath "$INSTDIR\data\themes\jewelry" - File "${SRCDIR}\data\themes\jewelry\*.png" - File "${SRCDIR}\data\themes\jewelry\*.xml" - SetOutPath "$INSTDIR\data\themes\pink" - File "${SRCDIR}\data\themes\pink\*.png" - File "${SRCDIR}\data\themes\pink\*.xml" - SetOutPath "$INSTDIR\data\themes\unity" - File "${SRCDIR}\data\themes\unity\*.png" - File "${SRCDIR}\data\themes\unity\*.xml" - SetOutPath "$INSTDIR\data\themes\wood" - File "${SRCDIR}\data\themes\wood\*.png" - File "${SRCDIR}\data\themes\wood\*.xml" - SetOutPath "$INSTDIR\data\translations\help" - File "${SRCDIR}\data\translations\help\*.po" - SetOutPath "$INSTDIR\data\help" - File "${SRCDIR}\data\help\*.txt" - SetOutPath "$INSTDIR\data\help\tips" - File "${SRCDIR}\data\help\tips\*.txt" - File "${SRCDIR}\data\help\tips\*.jpg" - SetOutPath "$INSTDIR\data\help\idx" - File "${SRCDIR}\data\help\idx\*.idx" - SetOutPath "$INSTDIR\data\icons\" - File "${SRCDIR}\data\icons\manaplus.ico" - SetOutPath "$INSTDIR\data\music\" - File "${SRCDIR}\data\music\*.ogg" - SetOutPath "$INSTDIR\data\perserver\default\" - File "${SRCDIR}\data\perserver\default\*.txt" - File "${SRCDIR}\data\perserver\default\*.xml" - SetOutPath "$INSTDIR\docs" - File "${SRCDIR}\docs\FAQ.txt" - SetOutPath "$INSTDIR" - File "${SRCDIR}\data\evol\evol.manaplus" - SetOutPath "$INSTDIR\data\evol\images" - File "${SRCDIR}\data\evol\images\*.png" - SetOutPath "$INSTDIR\data\evol\icons" - File "${SRCDIR}\data\evol\icons\*.ico" -SectionEnd - -Section "Create Shortcuts" SecShortcuts - SetOutPath "$INSTDIR" - SetOverwrite ifnewer - CreateDirectory "$SMPROGRAMS\EvolOnline" - CreateShortCut "$SMPROGRAMS\EvolOnline\EvolOnline.lnk" '"$INSTDIR\manaplus.exe"' '"$INSTDIR\evol.manaplus"' "$INSTDIR\manaplus.exe" 1 - CreateShortCut "$SMPROGRAMS\EvolOnline\EvolOnline (no opengl).lnk" '"$INSTDIR\manaplus.exe"' '"--no-opengl" "$INSTDIR\evol.manaplus"' "$INSTDIR\manaplus.exe" 1 - CreateShortCut "$SMPROGRAMS\EvolOnline\EvolOnline (safemode).lnk" '"$INSTDIR\manaplus.exe"' '"--safemode" "$INSTDIR\evol.manaplus"' "$INSTDIR\manaplus.exe" 1 - CreateShortCut "$SMPROGRAMS\EvolOnline\EvolOnline (tests).lnk" '"$INSTDIR\manaplus.exe"' '"--tests" "$INSTDIR\evol.manaplus"' "$INSTDIR\manaplus.exe" 1 - CreateShortCut "$DESKTOP\EvolOnline.lnk" '"$INSTDIR\manaplus.exe"' '"$INSTDIR\evol.manaplus"' "$INSTDIR\manaplus.exe" 1 - CreateShortCut "$DESKTOP\EvolOnline (tests).lnk" '"$INSTDIR\manaplus.exe"' '"--tests" "$INSTDIR\evol.manaplus"' "$INSTDIR\manaplus.exe" 1 - - ${registerExtension} "$INSTDIR\manaplus.exe" ".manaplus" "ManaPlus brandings" -SectionEnd - -Section /o "Portable" SecPortable - SetOutPath "$INSTDIR" - File "portable.xml" -SectionEnd - -Section /o "Debugger" SecDebug - SetOutPath "$INSTDIR" - File "${DLLDIR}\gdb.exe" - File "${DLLDIR}\libdl.dll" - File "${DLLDIR}\libexpat-1.dll" - File "${DLLDIR}\libreadline6.dll" - File "${DLLDIR}\libtermcap.dll" - File "${EXEDIR}\manaplusd.exe" - ${If} ${SectionIsSelected} ${SecShortcuts} - CreateShortCut "$SMPROGRAMS\EvolOnline\EvolOnline (debug).lnk" '"$INSTDIR\gdb.exe"' '"$INSTDIR\manaplusd.exe"' "$INSTDIR\manaplusd.exe" 1 - CreateShortCut "$DESKTOP\EvolOnline (debug).lnk" '"$INSTDIR\gdb.exe"' '"$INSTDIR\manaplusd.exe"' "$INSTDIR\manaplusd.exe" 1 - ${EndIf} -SectionEnd - -Section /o "Profiler" SecProfiler - SetOutPath "$INSTDIR" - File "${EXEDIR}\manaplusp.exe" - - ${If} ${SectionIsSelected} ${SecShortcuts} - CreateShortCut "$SMPROGRAMS\EvolOnline\EvolOnline (profiler).lnk" '"$INSTDIR\manaplusp.exe"' '"$INSTDIR\evol.manaplus"' "$INSTDIR\manaplus.exe" 1 - CreateShortCut "$DESKTOP\EvolOnline (profiler).lnk" '"$INSTDIR\manaplusp.exe"' '"$INSTDIR\evol.manaplus"' "$INSTDIR\manaplus.exe" 1 - ${EndIf} -SectionEnd - -; Section "Tools" SecTools -; SetOutPath "$INSTDIR" -; File "${EXEDIR}\dyecmd.exe" -; SectionEnd - -Section /o "Evol Online music" SecEvolMusic - AddSize 9787 - CreateDirectory "$INSTDIR\data\music" - SetOutPath "$INSTDIR\data\music" - NSISdl::download "http://downloads.sourceforge.net/project/evolonline/music/evolmusic-beta2-1.tar.gz" "$TEMP\evolmusic-beta2-1.tar.gz" - untgz::extract -j -d "$INSTDIR\data\music" "$TEMP\evolmusic-beta2-1.tar.gz" - Delete "$TEMP\evolmusic-beta2-1.tar.gz" -SectionEnd - -Section "Translations" SecTrans - SetOutPath "$INSTDIR" - File /nonfatal /r "${SRCDIR}\translations" -SectionEnd - -;Package descriptions -!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN - !insertmacro MUI_DESCRIPTION_TEXT ${SecCore} "The core program files." - !insertmacro MUI_DESCRIPTION_TEXT ${SecShortcuts} "Create game shortcuts and register extensions." - !insertmacro MUI_DESCRIPTION_TEXT ${SecPortable} "Portable client. (If selected client will work as portable client.)" - !insertmacro MUI_DESCRIPTION_TEXT ${SecEvolMusic} "Background evol music. (If selected the evol music will be downloaded from the internet.)" - !insertmacro MUI_DESCRIPTION_TEXT ${SecTrans} "Translations for the user interface. Uncheck this component to leave it in English." - !insertmacro MUI_DESCRIPTION_TEXT ${SecDebug} "Install debugger for try to detect stability issues." - !insertmacro MUI_DESCRIPTION_TEXT ${SecProfiler} "Install profiler build to detect perfomance issues." -; !insertmacro MUI_DESCRIPTION_TEXT ${SecTools} "Install tools like dyecmd." -!insertmacro MUI_FUNCTION_DESCRIPTION_END - - - -Section -AdditionalIcons - WriteIniStr "$INSTDIR\${PRODUCT_NAME}.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}" - WriteIniStr "$INSTDIR\ManaPlus.url" "InternetShortcut" "URL" "http://manaplus.evolonline.org/" - CreateShortCut "$SMPROGRAMS\EvolOnline\Website.lnk" "$INSTDIR\${PRODUCT_NAME}.url" - CreateShortCut "$SMPROGRAMS\EvolOnline\Readme.lnk" "notepad.exe" "$INSTDIR\README.txt" - CreateShortCut "$SMPROGRAMS\EvolOnline\FAQ.lnk" "$INSTDIR\docs\FAQ.txt" - CreateShortCut "$SMPROGRAMS\EvolOnline\Uninstall.lnk" "$INSTDIR\uninst.exe" -SectionEnd - -Section -Post - WriteUninstaller "$INSTDIR\uninst.exe" - WriteRegStr SHCTX "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\manaplus.exe" - WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)" - WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe" - WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\manaplus.exe" - WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}" - WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}" - WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}" -SectionEnd - -Function un.onInit - !insertmacro MUI_UNGETLANGUAGE - !insertmacro MULTIUSER_UNINIT -FunctionEnd - -Section Uninstall - DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\EvolOnline" - - Delete "$INSTDIR\*.*" - - Delete "$SMPROGRAMS\EvolOnline\Uninstall.lnk" - Delete "$DESKTOP\EvolOnline.lnk" - Delete "$DESKTOP\EvolOnline (debug).lnk" - Delete "$DESKTOP\EvolOnline (profiler).lnk" - Delete "$DESKTOP\EvolOnline (tests).lnk" - Delete "$SMPROGRAMS\EvolOnline\EvolOnline.lnk" - Delete "$SMPROGRAMS\EvolOnline\EvolOnline (debug).lnk" - Delete "$SMPROGRAMS\EvolOnline\EvolOnline (profiler).lnk" - Delete "$SMPROGRAMS\EvolOnline\EvolOnline (no opengl).lnk" - Delete "$SMPROGRAMS\EvolOnline\EvolOnline (safemode).lnk" - Delete "$SMPROGRAMS\EvolOnline\EvolOnline (tests).lnk" - Delete "$SMPROGRAMS\EvolOnline\Website.lnk" - Delete "$SMPROGRAMS\EvolOnline\Readme.lnk" - Delete "$SMPROGRAMS\EvolOnline\FAQ.lnk" - Delete "$SMPROGRAMS\EvolOnline\EvolOnline.lnk" - Delete "$DESKTOP\EvolOnline.lnk" - - RMDir "$SMPROGRAMS\EvolOnline" - - RMDir /r "$INSTDIR\data" - RMDir /r "$INSTDIR\docs" - RMDir /r "$INSTDIR\translations" - RMDir /r "$INSTDIR\updates" - RMDir "$INSTDIR" - - DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" - DeleteRegKey SHCTX "${PRODUCT_DIR_REGKEY}" - ${unregisterExtension} ".manaplus" "ManaPlus brandings" - SetAutoClose true -SectionEnd diff --git a/packaging/windows/make-translations.sh b/packaging/windows/make-translations.sh deleted file mode 100755 index 1d4132397..000000000 --- a/packaging/windows/make-translations.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh - -for i in `grep -v ^# ../../po/LINGUAS`; do - mkdir -p ../../translations/$i/LC_MESSAGES - msgfmt -c -o ../../translations/$i/LC_MESSAGES/manaplus.mo ../../po/$i.po -done diff --git a/packaging/windows/make-translations.vbs b/packaging/windows/make-translations.vbs deleted file mode 100644 index 339a0299e..000000000 --- a/packaging/windows/make-translations.vbs +++ /dev/null @@ -1,42 +0,0 @@ -Set fso = CreateObject("Scripting.FileSystemObject") -Set WshShell = CreateObject("WScript.Shell") -Dim s, infile, outfile, command - -Function CreateFolderIfNonexistent(folder) - if not fso.FolderExists(folder) then - fso.CreateFolder(folder) - end if -end Function - -'check for existence of msgfmt -if not fso.FileExists("msgfmt.exe") then - WScript.echo "msgfmt.exe not found. Please get gettext for windows from http://gnuwin32.sourceforge.net/packages/gettext.htm and copy the files msgfmt.exe and all dll files from the gettext/bin directory into this directory and run this script again." - WScript.Quit(1) -end if - -CreateFolderIfNonexistent("..\..\translations\") - -'open translation list -Set stream = fso.GetFile("..\..\po\LINGUAS").OpenAsTextStream(1, 0) - -'iterate contents of translations file -translations = 0 -do while not stream.AtEndOfStream - s = stream.ReadLine() - if inStr(s, "#") = false then - 'create the output directory - CreateFolderIfNonexistent("..\..\translations\" + s) - CreateFolderIfNonexistent("..\..\translations\" + s + "\LC_MESSAGES") - 'build the translate command - infile = "../../po/" + s + ".po" - outfile = "../../translations/" + s +"/LC_MESSAGES/mana.mo" - command = "msgfmt -c -o " + outfile + " " + infile - 'execute translate command - errval = WshShell.run(command, 0, true) - if errval = 0 then - translations = translations + 1 - end if - end if -loop - -WScript.echo translations, " translations compiled." diff --git a/packaging/windows/portable.xml b/packaging/windows/portable.xml deleted file mode 100644 index dcc00f999..000000000 --- a/packaging/windows/portable.xml +++ /dev/null @@ -1,6 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<configuration> - <option name="dataDir" value="logs"/> - <option name="configDir" value="configs"/> - <option name="screenshotDir" value="screenshots"/> -</configuration> diff --git a/packaging/windows/setup.nsi b/packaging/windows/setup.nsi deleted file mode 100644 index 14a208c44..000000000 --- a/packaging/windows/setup.nsi +++ /dev/null @@ -1,514 +0,0 @@ -; This script allows the following parameters being overwritten from -; command line. When called without any parameters it behaves exactly -; like the old install script. -; -; DLLDIR - directory containing required dlls -; EXEDIR - directory containing manaplus.exe -; EXESUFFIX - offset to SRCDIR pointing to a directory containing manaplus.exe -; PRODUCT_VERSION - software version -; UPX - upx binary name -; -; For a cmake build on UNIX the following should give you a working installer: -; makensis -DDLLDIR=/path/to/dlls \ -; -DPRODUCT_VERSION=0.1.`date +%Y%m%d` -; -DUPX=upx -; -DEXESUFFIX=/src - -CRCCheck on -SetCompress off -SetCompressor /SOLID lzma - -RequestExecutionLevel admin - -!define SRCDIR "..\.." -!ifndef UPX - !define "UPX upx\upx.exe" -!endif - -!ifdef EXESUFFIX - !define EXEDIR ${SRCDIR}/${EXESUFFIX} -!endif - -!ifndef EXEDIR - !define EXEDIR ${SRCDIR} -!endif - -!ifndef DLLDIR - !define DLLDIR ${SRCDIR}/dll -!endif - -!ifndef BITS - !define BITS 32 -!endif - -!ifndef SEHDLL - !define SEHDLL "libgcc_s_sjlj-1.dll" -!endif - -;--- (and without !defines ) --- -!System "${UPX} --best --crp-ms=999999 --compress-icons=0 --nrv2d ${EXEDIR}\manaplus.exe" - -!define MULTIUSER_INSTALLMODE_COMMANDLINE -!include "MultiUser.nsh" - -; HM NIS Edit helper defines -!define PRODUCT_NAME "ManaPlus" -!ifndef PRODUCT_VERSION - !define PRODUCT_VERSION "1.1" -!endif -!define PRODUCT_PUBLISHER "ManaPlus Development Team" -!define PRODUCT_WEB_SITE "http://manaplus.evolonline.org/" -!define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\manaplus.exe" -!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" -!define PRODUCT_UNINST_ROOT_KEY "SHCTX" - -!include "FileAssociation.nsh" - -; MUI 1.67 compatible ------ -!include "MUI.nsh" - -; MUI Settings -!define MUI_ABORTWARNING -;!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\win-install.ico" -!define MUI_ICON "${SRCDIR}\data\icons\manaplus.ico" -;!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\win-uninstall.ico" -!define MUI_UNICON "${SRCDIR}\data\icons\manaplus.ico" - -;Language Selection Dialog Settings -;Remember the installer language -!define MUI_LANGDLL_REGISTRY_ROOT "HKCU" -!define MUI_LANGDLL_REGISTRY_KEY "Software\Mana" -!define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language" - -!define MUI_WELCOMEFINISHPAGE_BITMAP "setup_welcome.bmp" -!define MUI_UNWELCOMEFINISHPAGE_BITMAP "setup_welcome.bmp" - -; Welcome page - -!define MUI_WELCOMEPAGE_TITLE_3LINES -!insertmacro MUI_PAGE_WELCOME -; License page -!insertmacro MUI_PAGE_LICENSE "${SRCDIR}\COPYING" -; Directory page -!insertmacro MUI_PAGE_DIRECTORY -; Components page -!insertmacro MUI_PAGE_COMPONENTS -; Instfiles page -!insertmacro MUI_PAGE_INSTFILES -; Finish page -!define MUI_FINISHPAGE_RUN -!define MUI_FINISHPAGE_RUN_FUNCTION RunMana -!define MUI_FINISHPAGE_SHOWREADME 'notepad.exe "$\"$INSTDIR\README$\""' -!define MUI_PAGE_CUSTOMFUNCTION_PRE changeFinishImage -!define MUI_FINISHPAGE_LINK "Visit ManaPlus website for the latest news, FAQs and support" -!define MUI_FINISHPAGE_LINK_LOCATION "http://manaplus.evolonline.org/" -!insertmacro MUI_PAGE_FINISH - -Function RunMana -SetOutPath $INSTDIR -Exec "$INSTDIR\manaplus.exe" -FunctionEnd - -Function changeFinishImage -!insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 1" "Text" "$PLUGINSDIR\setup_finish.bmp" -FunctionEnd - -; Uninstaller pages - -!insertmacro MUI_UNPAGE_CONFIRM -!insertmacro MUI_UNPAGE_INSTFILES -!define MUI_FINISHPAGE_TITLE_3LINES -!insertmacro MUI_UNPAGE_FINISH - -;Languages -!insertmacro MUI_LANGUAGE "English" # first language is the default language -!insertmacro MUI_LANGUAGE "French" -!insertmacro MUI_LANGUAGE "German" -!insertmacro MUI_LANGUAGE "Spanish" -!insertmacro MUI_LANGUAGE "SimpChinese" -!insertmacro MUI_LANGUAGE "TradChinese" -!insertmacro MUI_LANGUAGE "Japanese" -!insertmacro MUI_LANGUAGE "Korean" -!insertmacro MUI_LANGUAGE "Italian" -!insertmacro MUI_LANGUAGE "Dutch" -!insertmacro MUI_LANGUAGE "Danish" -!insertmacro MUI_LANGUAGE "Swedish" -!insertmacro MUI_LANGUAGE "Norwegian" -!insertmacro MUI_LANGUAGE "Finnish" -!insertmacro MUI_LANGUAGE "Greek" -!insertmacro MUI_LANGUAGE "Russian" -!insertmacro MUI_LANGUAGE "Portuguese" -!insertmacro MUI_LANGUAGE "PortugueseBR" -!insertmacro MUI_LANGUAGE "Polish" -!insertmacro MUI_LANGUAGE "Ukrainian" -!insertmacro MUI_LANGUAGE "Czech" -!insertmacro MUI_LANGUAGE "Slovak" -!insertmacro MUI_LANGUAGE "Croatian" -!insertmacro MUI_LANGUAGE "Bulgarian" -!insertmacro MUI_LANGUAGE "Hungarian" -!insertmacro MUI_LANGUAGE "Thai" -!insertmacro MUI_LANGUAGE "Romanian" -!insertmacro MUI_LANGUAGE "Latvian" -!insertmacro MUI_LANGUAGE "Macedonian" -!insertmacro MUI_LANGUAGE "Estonian" -!insertmacro MUI_LANGUAGE "Turkish" -!insertmacro MUI_LANGUAGE "Lithuanian" -!insertmacro MUI_LANGUAGE "Catalan" -!insertmacro MUI_LANGUAGE "Slovenian" -!insertmacro MUI_LANGUAGE "Serbian" -!insertmacro MUI_LANGUAGE "SerbianLatin" -!insertmacro MUI_LANGUAGE "Arabic" -!insertmacro MUI_LANGUAGE "Farsi" -!insertmacro MUI_LANGUAGE "Hebrew" -!insertmacro MUI_LANGUAGE "Indonesian" -!insertmacro MUI_LANGUAGE "Mongolian" -!insertmacro MUI_LANGUAGE "Luxembourgish" -!insertmacro MUI_LANGUAGE "Albanian" -!insertmacro MUI_LANGUAGE "Breton" -!insertmacro MUI_LANGUAGE "Belarusian" -!insertmacro MUI_LANGUAGE "Icelandic" -!insertmacro MUI_LANGUAGE "Malay" -!insertmacro MUI_LANGUAGE "Bosnian" -!insertmacro MUI_LANGUAGE "Kurdish" - -!insertmacro MUI_RESERVEFILE_LANGDLL - -ReserveFile "setup_finish.bmp" - -; MUI end ------ - -Name "${PRODUCT_NAME} ${PRODUCT_VERSION}" -OutFile "manaplus-${PRODUCT_VERSION}-win${BITS}.exe" -InstallDir "$PROGRAMFILES\Mana" -InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" "" -ShowInstDetails show -ShowUnInstDetails show -RequestExecutionLevel admin - -Function .onInit - !insertmacro MULTIUSER_INIT - !insertmacro MUI_LANGDLL_DISPLAY - InitPluginsDir - File /oname=$PLUGINSDIR\setup_finish.bmp "setup_finish.bmp" - - ReadRegStr $R0 SHCTX \ - "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" \ - "UninstallString" - StrCmp $R0 "" done - - MessageBox MB_YESNO|MB_ICONEXCLAMATION \ - "${PRODUCT_NAME} is already installed. $\n$\nClick `YES` (recomended) to remove the \ - previous version or `NO` to install new version over old version." \ - IDNO done - -;Run the uninstaller -uninst: - ClearErrors - ExecWait '$R0' ;Do not copy the uninstaller to a temp file - - IfErrors no_remove_uninstaller done - ;You can either use Delete /REBOOTOK in the uninstaller or add some code - ;here to remove the uninstaller. Use a registry key to check - ;whether the user has chosen to uninstall. If you are using an uninstaller - ;components page, make sure all sections are uninstalled. - no_remove_uninstaller: - -done: - -FunctionEnd - - -Section "Core files (required)" SecCore - SectionIn RO - SetOutPath "$INSTDIR" - SetOverwrite ifnewer - CreateDirectory "$INSTDIR\data" - CreateDirectory "$INSTDIR\data\fonts" - CreateDirectory "$INSTDIR\data\graphics" - CreateDirectory "$INSTDIR\data\help" - CreateDirectory "$INSTDIR\data\help\idx" - CreateDirectory "$INSTDIR\data\help\tips" - CreateDirectory "$INSTDIR\data\icons" - CreateDirectory "$INSTDIR\data\music" - CreateDirectory "$INSTDIR\data\perserver" - CreateDirectory "$INSTDIR\data\perserver\default" - CreateDirectory "$INSTDIR\data\graphics\badges" - CreateDirectory "$INSTDIR\data\graphics\gui" - CreateDirectory "$INSTDIR\data\graphics\flags" - CreateDirectory "$INSTDIR\data\graphics\images" - CreateDirectory "$INSTDIR\data\graphics\shaders" - CreateDirectory "$INSTDIR\data\graphics\sprites" - CreateDirectory "$INSTDIR\data\sfx" - CreateDirectory "$INSTDIR\data\sfx\system" - CreateDirectory "$INSTDIR\data\themes" - CreateDirectory "$INSTDIR\data\themes\blacknblack" - CreateDirectory "$INSTDIR\data\themes\blackwood" - CreateDirectory "$INSTDIR\data\themes\classic" - CreateDirectory "$INSTDIR\data\themes\enchilado" - CreateDirectory "$INSTDIR\data\themes\golden-delicious" - CreateDirectory "$INSTDIR\data\themes\jewelry" - CreateDirectory "$INSTDIR\data\themes\mana" - CreateDirectory "$INSTDIR\data\themes\pink" - CreateDirectory "$INSTDIR\data\themes\unity" - CreateDirectory "$INSTDIR\data\themes\wood" - CreateDirectory "$INSTDIR\data\translations" - CreateDirectory "$INSTDIR\data\translations\help" - CreateDirectory "$INSTDIR\docs" - - SetOverwrite ifnewer - SetOutPath "$INSTDIR" - - File "${EXEDIR}\manaplus.exe" - File "${DLLDIR}\SDL.dll" - File "${DLLDIR}\SDL_image.dll" -; File "${DLLDIR}\SDL_mixer.dll" - File "${DLLDIR}\SDL_net.dll" - File "${DLLDIR}\SDL_ttf.dll" - File "${DLLDIR}\libSDL_gfx-15.dll" - File "${DLLDIR}\libcurl-4.dll" - File "${DLLDIR}\libfreetype-6.dll" - File "${DLLDIR}\${SEHDLL}" - File "${DLLDIR}\libiconv-2.dll" - File "${DLLDIR}\libintl-8.dll" - File "${DLLDIR}\libjpeg-9.dll" - File "${DLLDIR}\libogg-0.dll" - File "${DLLDIR}\libpng16-16.dll" - File "${DLLDIR}\libstdc++-6.dll" - File "${DLLDIR}\libvorbis-0.dll" - File "${DLLDIR}\libvorbisfile-3.dll" - File "${DLLDIR}\libxml2-2.dll" - File "${DLLDIR}\libwinpthread-1.dll" - File "${DLLDIR}\zlib1.dll" - File "${SRCDIR}\AUTHORS" - File "${SRCDIR}\COPYING" - File "${SRCDIR}\NEWS" - File "${SRCDIR}\README.txt" - SetOutPath "$INSTDIR\data\fonts" - File "${SRCDIR}\data\fonts\*.ttf" - SetOutPath "$INSTDIR\data\graphics\badges" - File "${SRCDIR}\data\graphics\badges\*.png" - File "${SRCDIR}\data\graphics\badges\*.xml" - SetOutPath "$INSTDIR\data\graphics\flags" - File "${SRCDIR}\data\graphics\flags\*.png" - SetOutPath "$INSTDIR\data\graphics\gui" - File "${SRCDIR}\data\graphics\gui\*.png" - File "${SRCDIR}\data\graphics\gui\*.xml" - SetOutPath "$INSTDIR\data\graphics\images" - File /x minimap_*.png ${SRCDIR}\data\graphics\images\*.png - File "${SRCDIR}\data\graphics\images\error.png" - SetOutPath "$INSTDIR\data\graphics\shaders" - File "${SRCDIR}\data\graphics\shaders\*.glsl" - SetOutPath "$INSTDIR\data\graphics\sprites" - File "${SRCDIR}\data\graphics\sprites\*.png" - File "${SRCDIR}\data\graphics\sprites\*.xml" - SetOutPath "$INSTDIR\data\sfx\system" - File "${SRCDIR}\data\sfx\system\*.ogg" - SetOutPath "$INSTDIR\data\themes\blacknblack" - File "${SRCDIR}\data\themes\blacknblack\*.png" - File "${SRCDIR}\data\themes\blacknblack\*.xml" - SetOutPath "$INSTDIR\data\themes\blackwood" - File "${SRCDIR}\data\themes\blackwood\*.png" - File "${SRCDIR}\data\themes\blackwood\*.xml" - SetOutPath "$INSTDIR\data\themes\mana" - File "${SRCDIR}\data\themes\mana\*.png" - File "${SRCDIR}\data\themes\mana\*.xml" - SetOutPath "$INSTDIR\data\themes\enchilado" - File "${SRCDIR}\data\themes\enchilado\*.png" - File "${SRCDIR}\data\themes\enchilado\*.xml" - SetOutPath "$INSTDIR\data\themes\golden-delicious" - File "${SRCDIR}\data\themes\golden-delicious\*.png" - File "${SRCDIR}\data\themes\golden-delicious\*.xml" - SetOutPath "$INSTDIR\data\themes\jewelry" - File "${SRCDIR}\data\themes\jewelry\*.png" - File "${SRCDIR}\data\themes\jewelry\*.xml" - SetOutPath "$INSTDIR\data\themes\pink" - File "${SRCDIR}\data\themes\pink\*.png" - File "${SRCDIR}\data\themes\pink\*.xml" - SetOutPath "$INSTDIR\data\themes\unity" - File "${SRCDIR}\data\themes\unity\*.png" - File "${SRCDIR}\data\themes\unity\*.xml" - SetOutPath "$INSTDIR\data\themes\wood" - File "${SRCDIR}\data\themes\wood\*.png" - File "${SRCDIR}\data\themes\wood\*.xml" - SetOutPath "$INSTDIR\data\translations\help" - File "${SRCDIR}\data\translations\help\*.po" - SetOutPath "$INSTDIR\data\help" - File "${SRCDIR}\data\help\*.txt" - SetOutPath "$INSTDIR\data\help\tips" - File "${SRCDIR}\data\help\tips\*.txt" - File "${SRCDIR}\data\help\tips\*.jpg" - SetOutPath "$INSTDIR\data\help\idx" - File "${SRCDIR}\data\help\idx\*.idx" - SetOutPath "$INSTDIR\data\icons\" - File "${SRCDIR}\data\icons\manaplus.ico" - SetOutPath "$INSTDIR\data\music" - File "${SRCDIR}\data\music\*.ogg" - SetOutPath "$INSTDIR\data\perserver\default\" - File "${SRCDIR}\data\perserver\default\*.txt" - File "${SRCDIR}\data\perserver\default\*.xml" - SetOutPath "$INSTDIR\docs" - File "${SRCDIR}\docs\FAQ.txt" -SectionEnd - -Section "Create Shortcuts" SecShortcuts - SetOutPath "$INSTDIR" - SetOverwrite ifnewer - CreateDirectory "$SMPROGRAMS\Mana" - CreateShortCut "$SMPROGRAMS\Mana\ManaPlus.lnk" "$INSTDIR\manaplus.exe" - CreateShortCut "$SMPROGRAMS\Mana\ManaPlus (no opengl).lnk" "$INSTDIR\manaplus.exe" --no-opengl - CreateShortCut "$SMPROGRAMS\Mana\ManaPlus (safemode).lnk" "$INSTDIR\manaplus.exe" --safemode - CreateShortCut "$SMPROGRAMS\Mana\ManaPlus (tests).lnk" "$INSTDIR\manaplus.exe" --tests - CreateShortCut "$DESKTOP\ManaPlus.lnk" "$INSTDIR\manaplus.exe" - CreateShortCut "$DESKTOP\ManaPlus (tests).lnk" "$INSTDIR\manaplus.exe" --tests - - ${registerExtension} "$INSTDIR\manaplus.exe" ".manaplus" "ManaPlus brandings" -SectionEnd - -Section /o "Tmw music" SecTmwMusic - AddSize 25200 - CreateDirectory "$INSTDIR\data\music" - SetOutPath "$INSTDIR\data\music" - NSISdl::download "http://downloads.sourceforge.net/themanaworld/tmwmusic-0.3.tar.gz" "$TEMP\tmwmusic-0.3.tar.gz" - ;Requires an additional plugin from http://nsis.sourceforge.net/UnTGZ_plug-in Place untgz.dll in your nsis/plugin dir - untgz::extract -j -d "$INSTDIR\data\music" "$TEMP\tmwmusic-0.3.tar.gz" - Delete "$TEMP\tmwmusic-0.3.tar.gz" -SectionEnd - -Section /o "Portable" SecPortable - SetOutPath "$INSTDIR" - File "portable.xml" -SectionEnd - -Section /o "Debugger" SecDebug - SetOutPath "$INSTDIR" - File "${DLLDIR}\gdb.exe" - File "${DLLDIR}\libdl.dll" - File "${DLLDIR}\libexpat-1.dll" - File "${DLLDIR}\libreadline6.dll" - File "${DLLDIR}\libtermcap.dll" - File "${EXEDIR}\manaplusd.exe" - ${If} ${SectionIsSelected} ${SecShortcuts} - CreateShortCut "$SMPROGRAMS\Mana\ManaPlus (debug).lnk" '"$INSTDIR\gdb.exe"' '"$INSTDIR\manaplusd.exe"' "$INSTDIR\manaplusd.exe" - CreateShortCut "$DESKTOP\ManaPlus (debug).lnk" '"$INSTDIR\gdb.exe"' '"$INSTDIR\manaplusd.exe"' "$INSTDIR\manaplusd.exe" - ${EndIf} -SectionEnd - -Section /o "Profiler" SecProfiler - SetOutPath "$INSTDIR" - File "${EXEDIR}\manaplusp.exe" - ${If} ${SectionIsSelected} ${SecShortcuts} - CreateShortCut "$SMPROGRAMS\Mana\ManaPlus (profiler).lnk" "$INSTDIR\manaplusp.exe" - CreateShortCut "$DESKTOP\ManaPlus (profiler).lnk" "$INSTDIR\manaplusp.exe" - ${EndIf} -SectionEnd - -; Section "Tools" SecTools -; SetOutPath "$INSTDIR" -; File "${EXEDIR}\dyecmd.exe" -; SectionEnd - -Section /o "Evol Online music" SecEvolMusic - AddSize 9787 - CreateDirectory "$INSTDIR\data\music" - SetOutPath "$INSTDIR\data\music" - NSISdl::download "http://downloads.sourceforge.net/project/evolonline/music/evolmusic-beta2-1.tar.gz" "$TEMP\evolmusic-beta2-1.tar.gz" - untgz::extract -j -d "$INSTDIR\data\music" "$TEMP\evolmusic-beta2-1.tar.gz" - Delete "$TEMP\evolmusic-beta2-1.tar.gz" -SectionEnd - -Section "Evol Online shortcuts" SecEvol - SetOutPath "$INSTDIR" - CreateDirectory "$INSTDIR\data\evol" - CreateDirectory "$INSTDIR\data\evol\icons" - CreateDirectory "$INSTDIR\data\evol\images" - - SetOutPath "$INSTDIR" - File "${SRCDIR}\data\evol\evol.manaplus" - SetOutPath "$INSTDIR\data\evol\images" - File "${SRCDIR}\data\evol\images\*.png" - SetOutPath "$INSTDIR\data\evol\icons" - File "${SRCDIR}\data\evol\icons\*.ico" - - CreateShortCut "$SMPROGRAMS\Mana\EvolOnline.lnk" '"$INSTDIR\manaplus.exe"' '"$INSTDIR\evol.manaplus"' "$INSTDIR\manaplus.exe" 1 - CreateShortCut "$DESKTOP\EvolOnline.lnk" '"$INSTDIR\manaplus.exe"' '"$INSTDIR\evol.manaplus"' "$INSTDIR\manaplus.exe" 1 -SectionEnd - -Section "Translations" SecTrans - SetOutPath "$INSTDIR" - File /nonfatal /r "${SRCDIR}\translations" -SectionEnd - -;Package descriptions -!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN - !insertmacro MUI_DESCRIPTION_TEXT ${SecCore} "The core program files." - !insertmacro MUI_DESCRIPTION_TEXT ${SecShortcuts} "Create game shortcuts and register extensions." - !insertmacro MUI_DESCRIPTION_TEXT ${SecTmwMusic} "Background tmw music. (If selected the tmw music will be downloaded from the internet.)" - !insertmacro MUI_DESCRIPTION_TEXT ${SecPortable} "Portable client. (If selected client will work as portable client.)" - !insertmacro MUI_DESCRIPTION_TEXT ${SecEvol} "Create shortcuts for Evol Online." - !insertmacro MUI_DESCRIPTION_TEXT ${SecEvolMusic} "Background evol music. (If selected the evol music will be downloaded from the internet.)" - !insertmacro MUI_DESCRIPTION_TEXT ${SecTrans} "Translations for the user interface. Uncheck this component to leave it in English." - !insertmacro MUI_DESCRIPTION_TEXT ${SecDebug} "Install debugger for try to detect stability issues." - !insertmacro MUI_DESCRIPTION_TEXT ${SecProfiler} "Install profiler build to detect perfomance issues." -; !insertmacro MUI_DESCRIPTION_TEXT ${SecTools} "Install tools like dyecmd." -!insertmacro MUI_FUNCTION_DESCRIPTION_END - - -Section -AdditionalIcons - WriteIniStr "$INSTDIR\${PRODUCT_NAME}.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}" - CreateShortCut "$SMPROGRAMS\Mana\Website.lnk" "$INSTDIR\${PRODUCT_NAME}.url" - CreateShortCut "$SMPROGRAMS\Mana\Readme.lnk" "notepad.exe" "$INSTDIR\README.txt" - CreateShortCut "$SMPROGRAMS\Mana\FAQ.lnk" "$INSTDIR\docs\FAQ.txt" - CreateShortCut "$SMPROGRAMS\Mana\Uninstall.lnk" "$INSTDIR\uninst.exe" -SectionEnd - -Section -Post - WriteUninstaller "$INSTDIR\uninst.exe" - WriteRegStr SHCTX "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\manaplus.exe" - WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)" - WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe" - WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\manaplus.exe" - WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}" - WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}" - WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}" -SectionEnd - -Function un.onInit - !insertmacro MUI_UNGETLANGUAGE - !insertmacro MULTIUSER_UNINIT -FunctionEnd - -Section Uninstall - DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Mana" - - Delete "$INSTDIR\*.*" - - Delete "$SMPROGRAMS\Mana\Uninstall.lnk" - Delete "$DESKTOP\ManaPlus.lnk" - Delete "$DESKTOP\ManaPlus (debug).lnk" - Delete "$DESKTOP\ManaPlus (profiler).lnk" - Delete "$DESKTOP\ManaPlus (tests).lnk" - Delete "$SMPROGRAMS\Mana\ManaPlus.lnk" - Delete "$SMPROGRAMS\Mana\ManaPlus (debug).lnk" - Delete "$SMPROGRAMS\Mana\ManaPlus (profiler).lnk" - Delete "$SMPROGRAMS\Mana\ManaPlus (no opengl).lnk" - Delete "$SMPROGRAMS\Mana\ManaPlus (safemode).lnk" - Delete "$SMPROGRAMS\Mana\ManaPlus (tests).lnk" - Delete "$SMPROGRAMS\Mana\Website.lnk" - Delete "$SMPROGRAMS\Mana\Readme.lnk" - Delete "$SMPROGRAMS\Mana\FAQ.lnk" - Delete "$SMPROGRAMS\Mana\EvolOnline.lnk" - Delete "$DESKTOP\EvolOnline.lnk" - - RMDir "$SMPROGRAMS\Mana" - - RMDir /r "$INSTDIR\data" - RMDir /r "$INSTDIR\docs" - RMDir /r "$INSTDIR\translations" - RMDir /r "$INSTDIR\updates" - RMDir "$INSTDIR" - - DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" - DeleteRegKey SHCTX "${PRODUCT_DIR_REGKEY}" - ${unregisterExtension} ".manaplus" "ManaPlus brandings" - SetAutoClose true -SectionEnd diff --git a/packaging/windows/setup_finish.bmp b/packaging/windows/setup_finish.bmp Binary files differdeleted file mode 100644 index 412db0a90..000000000 --- a/packaging/windows/setup_finish.bmp +++ /dev/null diff --git a/packaging/windows/setup_welcome.bmp b/packaging/windows/setup_welcome.bmp Binary files differdeleted file mode 100644 index 412db0a90..000000000 --- a/packaging/windows/setup_welcome.bmp +++ /dev/null diff --git a/packaging/windows/tmw.nsi b/packaging/windows/tmw.nsi deleted file mode 100644 index 4f7d8c5e0..000000000 --- a/packaging/windows/tmw.nsi +++ /dev/null @@ -1,486 +0,0 @@ -; This script allows the following parameters being overwritten from -; command line. When called without any parameters it behaves exactly -; like the old install script. -; -; DLLDIR - directory containing required dlls -; EXEDIR - directory containing manaplus.exe -; EXESUFFIX - offset to SRCDIR pointing to a directory containing manaplus.exe -; PRODUCT_VERSION - software version -; UPX - upx binary name -; -; For a cmake build on UNIX the following should give you a working installer: -; makensis -DDLLDIR=/path/to/dlls \ -; -DPRODUCT_VERSION=0.1.`date +%Y%m%d` -; -DUPX=upx -; -DEXESUFFIX=/src - -CRCCheck on -SetCompress off -SetCompressor /SOLID lzma - -RequestExecutionLevel admin - -!define SRCDIR "..\.." -!ifndef UPX - !define "UPX upx\upx.exe" -!endif - -!ifdef EXESUFFIX - !define EXEDIR ${SRCDIR}/${EXESUFFIX} -!endif - -!ifndef EXEDIR - !define EXEDIR ${SRCDIR} -!endif - -!ifndef DLLDIR - !define DLLDIR ${SRCDIR}/dll -!endif - -!ifndef BITS - !define BITS 32 -!endif - -!ifndef SEHDLL - !define SEHDLL "libgcc_s_sjlj-1.dll" -!endif - -;--- (and without !defines ) --- -!System "${UPX} --best --crp-ms=999999 --compress-icons=0 --nrv2d ${EXEDIR}\manaplus.exe" - -!define MULTIUSER_INSTALLMODE_COMMANDLINE -!include "MultiUser.nsh" - -; HM NIS Edit helper defines -!define PRODUCT_NAME "The Mana World" -!ifndef PRODUCT_VERSION - !define PRODUCT_VERSION "1.1" -!endif -!define PRODUCT_PUBLISHER "ManaPlus Delopment Team" -!define PRODUCT_WEB_SITE "http://www.themanaworld.org" -!define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\manaplus.exe" -!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" -!define PRODUCT_UNINST_ROOT_KEY "SHCTX" - -!include "FileAssociation.nsh" - -; MUI 1.67 compatible ------ -!include "MUI.nsh" - -; MUI Settings -!define MUI_ABORTWARNING -;!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\win-install.ico" -!define MUI_ICON "${SRCDIR}\data\tmw\icons\tmw-client.ico" -;!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\win-uninstall.ico" -!define MUI_UNICON "${SRCDIR}\data\tmw\icons\tmw-client.ico" - -;Language Selection Dialog Settings -;Remember the installer language -!define MUI_LANGDLL_REGISTRY_ROOT "HKCU" -!define MUI_LANGDLL_REGISTRY_KEY "Software\The Mana World" -!define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language" - -!define MUI_WELCOMEFINISHPAGE_BITMAP "setup_welcome.bmp" -!define MUI_UNWELCOMEFINISHPAGE_BITMAP "setup_welcome.bmp" - -; Welcome page - -!define MUI_WELCOMEPAGE_TITLE_3LINES -!insertmacro MUI_PAGE_WELCOME -; License page -!insertmacro MUI_PAGE_LICENSE "${SRCDIR}\COPYING" -; Directory page -!insertmacro MUI_PAGE_DIRECTORY -; Components page -!insertmacro MUI_PAGE_COMPONENTS -; Instfiles page -!insertmacro MUI_PAGE_INSTFILES -; Finish page -!define MUI_FINISHPAGE_RUN -!define MUI_FINISHPAGE_RUN_FUNCTION RunTmw -!define MUI_FINISHPAGE_SHOWREADME 'notepad.exe "$\"$INSTDIR\README$\""' -!define MUI_PAGE_CUSTOMFUNCTION_PRE changeFinishImage -!define MUI_FINISHPAGE_LINK "Visit our website for the latest news, FAQs and support" -!define MUI_FINISHPAGE_LINK_LOCATION "http://themanaworld.org" -!insertmacro MUI_PAGE_FINISH - -Function RunTmw -SetOutPath $INSTDIR -Exec "$INSTDIR\manaplus.exe $INSTDIR\tmw.manaplus" -FunctionEnd - -Function changeFinishImage -!insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Field 1" "Text" "$PLUGINSDIR\setup_finish.bmp" -FunctionEnd - -; Uninstaller pages - -!insertmacro MUI_UNPAGE_CONFIRM -!insertmacro MUI_UNPAGE_INSTFILES -!define MUI_FINISHPAGE_TITLE_3LINES -!insertmacro MUI_UNPAGE_FINISH - -;Languages -!insertmacro MUI_LANGUAGE "English" # first language is the default language -!insertmacro MUI_LANGUAGE "French" -!insertmacro MUI_LANGUAGE "German" -!insertmacro MUI_LANGUAGE "Spanish" -!insertmacro MUI_LANGUAGE "SimpChinese" -!insertmacro MUI_LANGUAGE "TradChinese" -!insertmacro MUI_LANGUAGE "Japanese" -!insertmacro MUI_LANGUAGE "Korean" -!insertmacro MUI_LANGUAGE "Italian" -!insertmacro MUI_LANGUAGE "Dutch" -!insertmacro MUI_LANGUAGE "Danish" -!insertmacro MUI_LANGUAGE "Swedish" -!insertmacro MUI_LANGUAGE "Norwegian" -!insertmacro MUI_LANGUAGE "Finnish" -!insertmacro MUI_LANGUAGE "Greek" -!insertmacro MUI_LANGUAGE "Russian" -!insertmacro MUI_LANGUAGE "Portuguese" -!insertmacro MUI_LANGUAGE "PortugueseBR" -!insertmacro MUI_LANGUAGE "Polish" -!insertmacro MUI_LANGUAGE "Ukrainian" -!insertmacro MUI_LANGUAGE "Czech" -!insertmacro MUI_LANGUAGE "Slovak" -!insertmacro MUI_LANGUAGE "Croatian" -!insertmacro MUI_LANGUAGE "Bulgarian" -!insertmacro MUI_LANGUAGE "Hungarian" -!insertmacro MUI_LANGUAGE "Thai" -!insertmacro MUI_LANGUAGE "Romanian" -!insertmacro MUI_LANGUAGE "Latvian" -!insertmacro MUI_LANGUAGE "Macedonian" -!insertmacro MUI_LANGUAGE "Estonian" -!insertmacro MUI_LANGUAGE "Turkish" -!insertmacro MUI_LANGUAGE "Lithuanian" -!insertmacro MUI_LANGUAGE "Catalan" -!insertmacro MUI_LANGUAGE "Slovenian" -!insertmacro MUI_LANGUAGE "Serbian" -!insertmacro MUI_LANGUAGE "SerbianLatin" -!insertmacro MUI_LANGUAGE "Arabic" -!insertmacro MUI_LANGUAGE "Farsi" -!insertmacro MUI_LANGUAGE "Hebrew" -!insertmacro MUI_LANGUAGE "Indonesian" -!insertmacro MUI_LANGUAGE "Mongolian" -!insertmacro MUI_LANGUAGE "Luxembourgish" -!insertmacro MUI_LANGUAGE "Albanian" -!insertmacro MUI_LANGUAGE "Breton" -!insertmacro MUI_LANGUAGE "Belarusian" -!insertmacro MUI_LANGUAGE "Icelandic" -!insertmacro MUI_LANGUAGE "Malay" -!insertmacro MUI_LANGUAGE "Bosnian" -!insertmacro MUI_LANGUAGE "Kurdish" - -!insertmacro MUI_RESERVEFILE_LANGDLL - -ReserveFile "setup_finish.bmp" - -; MUI end ------ - -Name "${PRODUCT_NAME} ${PRODUCT_VERSION}" -OutFile "tmw-${PRODUCT_VERSION}-win${BITS}.exe" -InstallDir "$PROGRAMFILES\The Mana World" -InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" "" -ShowInstDetails show -ShowUnInstDetails show -RequestExecutionLevel admin - -Function .onInit - !insertmacro MULTIUSER_INIT - !insertmacro MUI_LANGDLL_DISPLAY - InitPluginsDir - File /oname=$PLUGINSDIR\setup_finish.bmp "setup_finish.bmp" - - ReadRegStr $R0 SHCTX \ - "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" \ - "UninstallString" - StrCmp $R0 "" done - - MessageBox MB_YESNO|MB_ICONEXCLAMATION \ - "${PRODUCT_NAME} is already installed. $\n$\nClick `YES` (recomended) to remove the \ - previous version or `NO` to install new version over old version." \ - IDNO done - -;Run the uninstaller -uninst: - ClearErrors - ExecWait '$R0' ;Do not copy the uninstaller to a temp file - - IfErrors no_remove_uninstaller done - ;You can either use Delete /REBOOTOK in the uninstaller or add some code - ;here to remove the uninstaller. Use a registry key to check - ;whether the user has chosen to uninstall. If you are using an uninstaller - ;components page, make sure all sections are uninstalled. - no_remove_uninstaller: - -done: - -FunctionEnd - - -Section "Core files (required)" SecCore - SectionIn RO - SetOutPath "$INSTDIR" - SetOverwrite ifnewer - CreateDirectory "$INSTDIR\data" - CreateDirectory "$INSTDIR\data\tmw" - CreateDirectory "$INSTDIR\data\tmw\icons" - CreateDirectory "$INSTDIR\data\tmw\images" - CreateDirectory "$INSTDIR\data\fonts" - CreateDirectory "$INSTDIR\data\graphics" - CreateDirectory "$INSTDIR\data\help" - CreateDirectory "$INSTDIR\data\help\idx" - CreateDirectory "$INSTDIR\data\help\tips" - CreateDirectory "$INSTDIR\data\icons" - CreateDirectory "$INSTDIR\data\music" - CreateDirectory "$INSTDIR\data\perserver" - CreateDirectory "$INSTDIR\data\perserver\default" - CreateDirectory "$INSTDIR\data\graphics\badges" - CreateDirectory "$INSTDIR\data\graphics\gui" - CreateDirectory "$INSTDIR\data\graphics\flags" - CreateDirectory "$INSTDIR\data\graphics\images" - CreateDirectory "$INSTDIR\data\graphics\shaders" - CreateDirectory "$INSTDIR\data\graphics\sprites" - CreateDirectory "$INSTDIR\data\sfx" - CreateDirectory "$INSTDIR\data\sfx\system" - CreateDirectory "$INSTDIR\data\themes" - CreateDirectory "$INSTDIR\data\themes\blacknblack" - CreateDirectory "$INSTDIR\data\themes\blackwood" - CreateDirectory "$INSTDIR\data\themes\classic" - CreateDirectory "$INSTDIR\data\themes\enchilado" - CreateDirectory "$INSTDIR\data\themes\golden-delicious" - CreateDirectory "$INSTDIR\data\themes\jewelry" - CreateDirectory "$INSTDIR\data\themes\mana" - CreateDirectory "$INSTDIR\data\themes\pink" - CreateDirectory "$INSTDIR\data\themes\unity" - CreateDirectory "$INSTDIR\data\themes\wood" - CreateDirectory "$INSTDIR\data\translations" - CreateDirectory "$INSTDIR\data\translations\help" - CreateDirectory "$INSTDIR\docs" - - SetOverwrite ifnewer - SetOutPath "$INSTDIR" - - File "${EXEDIR}\manaplus.exe" - File "${DLLDIR}\SDL.dll" - File "${DLLDIR}\SDL_image.dll" -; File "${DLLDIR}\SDL_mixer.dll" - File "${DLLDIR}\SDL_net.dll" - File "${DLLDIR}\SDL_ttf.dll" - File "${DLLDIR}\libSDL_gfx-15.dll" - File "${DLLDIR}\libcurl-4.dll" - File "${DLLDIR}\libfreetype-6.dll" - File "${DLLDIR}\${SEHDLL}" - File "${DLLDIR}\libiconv-2.dll" - File "${DLLDIR}\libintl-8.dll" - File "${DLLDIR}\libjpeg-9.dll" - File "${DLLDIR}\libogg-0.dll" - File "${DLLDIR}\libpng16-16.dll" - File "${DLLDIR}\libstdc++-6.dll" - File "${DLLDIR}\libvorbis-0.dll" - File "${DLLDIR}\libvorbisfile-3.dll" - File "${DLLDIR}\libxml2-2.dll" - File "${DLLDIR}\libwinpthread-1.dll" - File "${DLLDIR}\zlib1.dll" - File "${SRCDIR}\AUTHORS" - File "${SRCDIR}\COPYING" - File "${SRCDIR}\NEWS" - File "${SRCDIR}\README.txt" - SetOutPath "$INSTDIR\data\fonts" - File "${SRCDIR}\data\fonts\*.ttf" - SetOutPath "$INSTDIR\data\graphics\badges" - File "${SRCDIR}\data\graphics\badges\*.png" - File "${SRCDIR}\data\graphics\badges\*.xml" - SetOutPath "$INSTDIR\data\graphics\flags" - File "${SRCDIR}\data\graphics\flags\*.png" - SetOutPath "$INSTDIR\data\graphics\gui" - File "${SRCDIR}\data\graphics\gui\*.png" - File "${SRCDIR}\data\graphics\gui\*.xml" - SetOutPath "$INSTDIR\data\graphics\images" - File /x minimap_*.png ${SRCDIR}\data\graphics\images\*.png - File "${SRCDIR}\data\graphics\images\error.png" - SetOutPath "$INSTDIR\data\graphics\shaders" - File "${SRCDIR}\data\graphics\shaders\*.glsl" - SetOutPath "$INSTDIR\data\graphics\sprites" - File "${SRCDIR}\data\graphics\sprites\*.png" - File "${SRCDIR}\data\graphics\sprites\*.xml" - SetOutPath "$INSTDIR\data\sfx\system" - File "${SRCDIR}\data\sfx\system\*.ogg" - SetOutPath "$INSTDIR\data\themes\blacknblack" - File "${SRCDIR}\data\themes\blacknblack\*.png" - File "${SRCDIR}\data\themes\blacknblack\*.xml" - SetOutPath "$INSTDIR\data\themes\blackwood" - File "${SRCDIR}\data\themes\blackwood\*.png" - File "${SRCDIR}\data\themes\blackwood\*.xml" - SetOutPath "$INSTDIR\data\themes\mana" - File "${SRCDIR}\data\themes\mana\*.png" - File "${SRCDIR}\data\themes\mana\*.xml" - SetOutPath "$INSTDIR\data\themes\enchilado" - File "${SRCDIR}\data\themes\enchilado\*.png" - File "${SRCDIR}\data\themes\enchilado\*.xml" - SetOutPath "$INSTDIR\data\themes\golden-delicious" - File "${SRCDIR}\data\themes\golden-delicious\*.png" - File "${SRCDIR}\data\themes\golden-delicious\*.xml" - SetOutPath "$INSTDIR\data\themes\jewelry" - File "${SRCDIR}\data\themes\jewelry\*.png" - File "${SRCDIR}\data\themes\jewelry\*.xml" - SetOutPath "$INSTDIR\data\themes\pink" - File "${SRCDIR}\data\themes\pink\*.png" - File "${SRCDIR}\data\themes\pink\*.xml" - SetOutPath "$INSTDIR\data\themes\unity" - File "${SRCDIR}\data\themes\unity\*.png" - File "${SRCDIR}\data\themes\unity\*.xml" - SetOutPath "$INSTDIR\data\themes\wood" - File "${SRCDIR}\data\themes\wood\*.png" - File "${SRCDIR}\data\themes\wood\*.xml" - SetOutPath "$INSTDIR\data\translations\help" - File "${SRCDIR}\data\translations\help\*.po" - SetOutPath "$INSTDIR\data\help" - File "${SRCDIR}\data\help\*.txt" - SetOutPath "$INSTDIR\data\help\tips" - File "${SRCDIR}\data\help\tips\*.txt" - File "${SRCDIR}\data\help\tips\*.jpg" - SetOutPath "$INSTDIR\data\help\idx" - File "${SRCDIR}\data\help\idx\*.idx" - SetOutPath "$INSTDIR\data\icons\" - File "${SRCDIR}\data\icons\manaplus.ico" - SetOutPath "$INSTDIR\data\music" - File "${SRCDIR}\data\music\*.ogg" - SetOutPath "$INSTDIR\data\perserver\default\" - File "${SRCDIR}\data\perserver\default\*.txt" - File "${SRCDIR}\data\perserver\default\*.xml" - SetOutPath "$INSTDIR\docs" - File "${SRCDIR}\docs\FAQ.txt" - SetOutPath "$INSTDIR" - File "${SRCDIR}\data\tmw\tmw.manaplus" - SetOutPath "$INSTDIR\data\tmw\images" - File "${SRCDIR}\data\tmw\images\*.png" - SetOutPath "$INSTDIR\data\tmw\icons" - File "${SRCDIR}\data\tmw\icons\*.ico" -SectionEnd - -Section "Create Shortcuts" SecShortcuts - SetOutPath "$INSTDIR" - SetOverwrite ifnewer - CreateDirectory "$SMPROGRAMS\The Mana World" - CreateShortCut "$SMPROGRAMS\The Mana World\The Mana World.lnk" '"$INSTDIR\manaplus.exe"' '"$INSTDIR\tmw.manaplus"' "$INSTDIR\manaplus.exe" 2 - CreateShortCut "$SMPROGRAMS\The Mana World\The Mana World (no opengl).lnk" '"$INSTDIR\manaplus.exe"' '"--no-opengl" "$INSTDIR\tmw.manaplus"' "$INSTDIR\manaplus.exe" 2 - CreateShortCut "$SMPROGRAMS\The Mana World\The Mana World (safemode).lnk" '"$INSTDIR\manaplus.exe"' '"--safemode" "$INSTDIR\tmw.manaplus"' "$INSTDIR\manaplus.exe" 2 - CreateShortCut "$SMPROGRAMS\The Mana World\The Mana World (tests).lnk" '"$INSTDIR\manaplus.exe"' '"--tests" "$INSTDIR\tmw.manaplus"' "$INSTDIR\manaplus.exe" 2 - CreateShortCut "$DESKTOP\The Mana World.lnk" '"$INSTDIR\manaplus.exe"' '"$INSTDIR\tmw.manaplus"' "$INSTDIR\manaplus.exe" 2 - CreateShortCut "$DESKTOP\The Mana World (tests).lnk" '"$INSTDIR\manaplus.exe"' '"--tests" "$INSTDIR\tmw.manaplus"' "$INSTDIR\manaplus.exe" 2 - - ${registerExtension} "$INSTDIR\manaplus.exe" ".manaplus" "ManaPlus brandings" -SectionEnd - -Section /o "Portable" SecPortable - SetOutPath "$INSTDIR" - File "portable.xml" -SectionEnd - -Section /o "Debugger" SecDebug - SetOutPath "$INSTDIR" - File "${DLLDIR}\gdb.exe" - File "${DLLDIR}\libdl.dll" - File "${DLLDIR}\libexpat-1.dll" - File "${DLLDIR}\libreadline6.dll" - File "${DLLDIR}\libtermcap.dll" - File "${EXEDIR}\manaplusd.exe" - ${If} ${SectionIsSelected} ${SecShortcuts} - CreateShortCut "$SMPROGRAMS\The Mana World\The Mana World (debug).lnk" '"$INSTDIR\gdb.exe"' '"$INSTDIR\manaplusd.exe"' "$INSTDIR\manaplusd.exe" 2 - CreateShortCut "$DESKTOP\The Mana World (debug).lnk" '"$INSTDIR\gdb.exe"' '"$INSTDIR\manaplusd.exe"' "$INSTDIR\manaplusd.exe" 2 - ${EndIf} -SectionEnd - -Section /o "Profiler" SecProfiler - SetOutPath "$INSTDIR" - File "${EXEDIR}\manaplusp.exe" - - ${If} ${SectionIsSelected} ${SecShortcuts} - CreateShortCut "$SMPROGRAMS\The Mana World\The Mana World (profiler).lnk" '"$INSTDIR\manaplusp.exe"' '"$INSTDIR\tmw.manaplus"' "$INSTDIR\manaplus.exe" 2 - CreateShortCut "$DESKTOP\The Mana World (profiler).lnk" '"$INSTDIR\manaplusp.exe"' '"$INSTDIR\tmw.manaplus"' "$INSTDIR\manaplus.exe" 2 - ${EndIf} -SectionEnd - -; Section "Tools" SecTools -; SetOutPath "$INSTDIR" -; File "${EXEDIR}\dyecmd.exe" -; SectionEnd - -Section "Translations" SecTrans - SetOutPath "$INSTDIR" - File /nonfatal /r "${SRCDIR}\translations" -SectionEnd - -;Package descriptions -!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN - !insertmacro MUI_DESCRIPTION_TEXT ${SecCore} "The core program files." - !insertmacro MUI_DESCRIPTION_TEXT ${SecShortcuts} "Create game shortcuts and register extensions." - !insertmacro MUI_DESCRIPTION_TEXT ${SecPortable} "Portable client. (If selected client will work as portable client.)" - !insertmacro MUI_DESCRIPTION_TEXT ${SecTrans} "Translations for the user interface. Uncheck this component to leave it in English." - !insertmacro MUI_DESCRIPTION_TEXT ${SecDebug} "Install debugger for try to detect stability issues." - !insertmacro MUI_DESCRIPTION_TEXT ${SecProfiler} "Install profiler build to detect perfomance issues." -; !insertmacro MUI_DESCRIPTION_TEXT ${SecTools} "Install tools like dyecmd." -!insertmacro MUI_FUNCTION_DESCRIPTION_END - - - -Section -AdditionalIcons - WriteIniStr "$INSTDIR\${PRODUCT_NAME}.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}" - WriteIniStr "$INSTDIR\The Mana World.url" "InternetShortcut" "URL" "http://www.themanaworld.org" - CreateShortCut "$SMPROGRAMS\The Mana World\Website.lnk" "$INSTDIR\${PRODUCT_NAME}.url" - CreateShortCut "$SMPROGRAMS\The Mana World\Readme.lnk" "notepad.exe" "$INSTDIR\README.txt" - CreateShortCut "$SMPROGRAMS\The Mana World\FAQ.lnk" "$INSTDIR\docs\FAQ.txt" - CreateShortCut "$SMPROGRAMS\The Mana World\Uninstall.lnk" "$INSTDIR\uninst.exe" -SectionEnd - -Section -Post - WriteUninstaller "$INSTDIR\uninst.exe" - WriteRegStr SHCTX "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\manaplus.exe" - WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)" - WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe" - WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\manaplus.exe" - WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}" - WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}" - WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}" -SectionEnd - -Function un.onInit - !insertmacro MUI_UNGETLANGUAGE - !insertmacro MULTIUSER_UNINIT -FunctionEnd - -Section Uninstall - DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\The Mana World" - - Delete "$INSTDIR\*.*" - - Delete "$SMPROGRAMS\The Mana World\Uninstall.lnk" - Delete "$DESKTOP\The Mana World.lnk" - Delete "$DESKTOP\The Mana World (debug).lnk" - Delete "$DESKTOP\The Mana World (profiler).lnk" - Delete "$DESKTOP\The Mana World (tests).lnk" - Delete "$SMPROGRAMS\The Mana World\The Mana World.lnk" - Delete "$SMPROGRAMS\The Mana World\The Mana World (debug).lnk" - Delete "$SMPROGRAMS\The Mana World\The Mana World (profiler).lnk" - Delete "$SMPROGRAMS\The Mana World\The Mana World (no opengl).lnk" - Delete "$SMPROGRAMS\The Mana World\The Mana World (safemode).lnk" - Delete "$SMPROGRAMS\The Mana World\The Mana World (tests).lnk" - Delete "$SMPROGRAMS\The Mana World\Website.lnk" - Delete "$SMPROGRAMS\The Mana World\Readme.lnk" - Delete "$SMPROGRAMS\The Mana World\FAQ.lnk" - Delete "$DESKTOP\The Mana World.lnk" - - RMDir "$SMPROGRAMS\The Mana World" - - RMDir /r "$INSTDIR\data" - RMDir /r "$INSTDIR\docs" - RMDir /r "$INSTDIR\translations" - RMDir /r "$INSTDIR\updates" - RMDir "$INSTDIR" - - DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" - DeleteRegKey SHCTX "${PRODUCT_DIR_REGKEY}" - ${unregisterExtension} ".manaplus" "ManaPlus brandings" - SetAutoClose true -SectionEnd |