[hedgewars] 01/03: Trying to use system physfs and fonts, reorganized debian/copyright file

Gianfranco Costamagna locutusofborg-guest at moszumanska.debian.org
Mon Jan 20 13:06:30 UTC 2014


This is an automated email from the git hooks/post-receive script.

locutusofborg-guest pushed a commit to branch master
in repository hedgewars.

commit 36da3f112540150b1e3c451615db91fccb9bfb9a
Author: Gianfranco Costamagna <costamagnagianfranco at yahoo.it>
Date:   Sun Jan 19 18:18:15 2014 +0100

    Trying to use system physfs and fonts, reorganized debian/copyright file
---
 debian/changelog                         |   2 +-
 debian/control                           |   3 +-
 debian/copyright                         | 194 +++++++++++++----------
 debian/patches/series                    |   2 +
 debian/patches/using_system_fonts.patch  | 165 +++++++++++++++++++
 debian/patches/using_system_physfs.patch | 263 +++++++++++++++++++++++++++++++
 6 files changed, 541 insertions(+), 88 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 06353ad..fe3328e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-hedgewars (0.9.20.5-2) UNRELEASED; urgency=low
+hedgewars (0.9.20.5-3) experimental; urgency=low
 
   * Trying to use the system libphysfs library
   * debian/control:
diff --git a/debian/control b/debian/control
index c5c3042..73dfafd 100644
--- a/debian/control
+++ b/debian/control
@@ -4,6 +4,7 @@ Priority: extra
 Maintainer: Debian Games Team <pkg-games-devel at lists.alioth.debian.org>
 Uploaders: Dmitry E. Oboukhov <unera at debian.org>,
  Gianfranco Costamagna <costamagnagianfranco at yahoo.it>
+Standards-Version: 3.9.5
 Build-Depends: debhelper (>= 9), dpkg-dev (>= 1.16.1~),
  cmake,
  qt4-qmake,
@@ -36,8 +37,6 @@ Build-Depends: debhelper (>= 9), dpkg-dev (>= 1.16.1~),
 # finding system fonts
  fonts-dejavu-core,
  ttf-wqy-zenhei
-
-Standards-Version: 3.9.5
 Homepage: http://hedgewars.org
 VCS-Git: git://anonscm.debian.org/pkg-games/hedgewars.git
 VCS-Browser: http://anonscm.debian.org/gitweb/?p=pkg-games/hedgewars.git
diff --git a/debian/copyright b/debian/copyright
index 25f05be..9ec4ac0 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -1,49 +1,65 @@
-This package was debianized by Dmitry E. Oboukhov <dimka at avanto.org> on
-Mon, 27 Nov 2006 13:58:41 +0300.
-
-It was downloaded from:
-	http://hedgewars.org/
-
-Upstream Author:
-	Andrey Korotaev <unC0Rr at gmail.com>
-	Igor Ulyanov aka Displacer <iulyanov at gmail.com>
-
+Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Source: http://hedgewars.org/
+Upstream-Contact: Andrey Korotaev <unC0Rr at gmail.com>, Igor Ulyanov aka Displacer <iulyanov at gmail.com>
 
+Files: *
+Copyright:
+        2004-2014 Andrey Korotaev <unC0Rr at gmail.com>
+        2006-2008 Igor Ulyanov aka Displacer <iulyanov at gmail.com>
+License: GPL-2
+ This package 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; version 2 of the License.
+ .
+ This package is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License
+ along with this package; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ .
+ On Debian systems, the full text of the GNU General Public
+ License version 2 can be found in the file
+ `/usr/share/common-licenses/GPL-2'.
+
+Files: hedgewars/*
 Copyright:
-	2004-2014 Andrey Korotaev <unC0Rr at gmail.com>
-	2006-2008 Igor Ulyanov aka Displacer <iulyanov at gmail.com>
-
-	hedgewars/*
 	2004-2013 Andrey Korotaev <unC0Rr at gmail.com>
 	1994-2006 Tecgraf, PUC-Rio (Lua wrapper)
 	2012      Richard Deurwaarder <xeli at xelification.com> (uTouch.pas)
 	2002-2009 Wolfgang Ehrhardt (adler32.pas)
+License: GPL-2
 
-	cmake_modules/*
+Files: cmake_modules/*
+Copyright:
 	2012      Petroules Corporation (TargetArch.cmake)
 
-	gameServer/*
+Files: gameServer/*
+Copyright:
 	2009 Anthony Simpson (Data/TConfig.hs)
+License: GPL-2
 
-	(not used by linux)
-	misc/winutils/include/*
+Files: misc/winutils/include/*
+Copyright:
 	1997-2012 Sam Lantinga <slouken at libsdl.org> (SDL_*.h, begin_code.h, close_code.h)
 	1991-2004 Silicon Graphics, Inc. (SDL_opengl.h)
 	1995-2010 Jean-loup Gailly and Mark Adler (zlib.h)
 	1995-2010 Jean-loup Gailly (zconf.h)
 
-	(not used by linux)
-	misc/winutils/include/png.h misc/winutils/include/pngconf.h
+Files: misc/winutils/include/png.h misc/winutils/include/pngconf.h
+Copyright:
 	1998-2012 Glenn Randers-Pehrson
 	1996,1997 Andreas Dilger (Version 0.96)
 	1995,1996 Guy Eric Schalnat, Group 42, Inc. (Version 0.88)
 
-	(not used by linux)
-	misc/winutils/include/libavformat/*
+Files: misc/winutils/include/libavformat/*
+Copyright:
 	2001      Fabrice Bellard
 
-	(not used by linux)
-	misc/winutils/include/libavcodec/*
+Files: misc/winutils/include/libavcodec/*
+Copyright:
 	2008      NVIDIA (vdpau.h)
 	2008-2009 Splitted-Desktop Systems (vaapi.h)
 	2011      Sebastien Zwickert (vda.h)
@@ -51,13 +67,13 @@ Copyright:
 	2001      Fabrice Bellard (avcodec.h)
 	2003      Ivan Kalvachev (xvmc.h)
 
-	(not used by linux)
-	misc/winutils/include/GL/glut.h
+Files: misc/winutils/include/GL/glut.h
+Copyright:
 	1994,1995 Mark J. Kilgard
         1996,1998 Mark J. Kilgard
 
-	(not used by linux)
-	misc/winutils/include/libavutil/*
+Files: misc/winutils/include/libavutil/*
+Copyright:
 	2005,2006 Michael Niedermayer <michaelni at gmx.at>
 	2007,2008 Michael Niedermayer <michaelni at gmx.at>
 	2006,2007 Mans Rullgard (adler32.h, avstring.h)
@@ -70,12 +86,12 @@ Copyright:
 	2006      Ryan Martell <rdm4 at martellventures.com> (base64.h)
 	2006      Reimar Doeffinger (lzo.h)
 
-	(hedgewars will use the embedded libphysfs until the development release 2.1.0 will be released as stable and packaged)
-	misc/libphysfs/*
+Files: misc/libphysfs/*
+Copyright:
 	2007      Ryan C. Gordon
 
-	(not used by linux)
-	project_files/Android-build/*
+Files: project_files/Android-build/*
+Copyright:
 	2011-2012 Richard Deurwaarder <xeli at xelification.com>
 	2012      Simeon Maxein <smaxein at googlemail.com>
 	2004-2013 Andrey Korotaev <unC0Rr at gmail.com>
@@ -83,10 +99,12 @@ Copyright:
 	2005,2009 Ivan SZKIBA (Licenses/ini4j)
 	2005-2008 The Android Open Source Project
 
-	(not used by linux)
-	frontlib/iniparser/*
+Files: frontlib/iniparser/*
+Copyright:
 	2000-2012 Nicolas Devillard
-	frontlib/*
+
+Files: frontlib/*
+Copyright:
 	2012      Simeon Maxein <smaxein at googlemail.com>
 	2004-2013 Andrey Korotaev <unC0Rr at gmail.com> (hwconsts.h, net/netconn.c)
 	1999,2002 Aladdin Enterprises. (md5/md5.{c,h})
@@ -96,11 +114,12 @@ Copyright:
 	2004-2006 Free Software Foundation, Inc. (base64/base64.c)
 	2009-2012 Free Software Foundation, Inc. (base64/base64.c)
 
-	(not used by linux)
-	cmdlineClient/cmdlineClient.c
+Files: cmdlineClient/cmdlineClient.c
+Copyright:
 	2012      Simeon Maxein <smaxein at googlemail.com>
 
-	QTfrontend/*
+Files: QTfrontend/*
+Copyright:
 	2004-2013 Andrey Korotaev <unC0Rr at gmail.com>
 	2006-2008 Igor Ulyanov <iulyanov at gmail.com>
 	2012-2013 Vittorio Giovara <vittorio.giovara at gmail.com> (HWApplication.h, weapons.h)
@@ -110,68 +129,73 @@ Copyright:
 	2007      Rainer Brockerhoff (util/platform/)
 	2006-2009 M Cubed Software (util/platform/)
 
-	share/*
+Files: share/*
+Copyright:
 	2004-2014 Hedgewars Project
 	2012      Vatten (Scripts/Multiplayer/Continental_supplies.lua)
 
-	Images in Data/Front, Data/Graphics/Graves,
+Files: Images in Data/Front Data/Graphics/Graves
+Copyright:
 	themes "ethereal", "norsk", "wood", "xtheme":
 		Copyright 2005 Alexey Andreev <grayfox at inbox.ru>
 	
-	theme "olympics"
+Files: theme "olympics"
+Copyright:
 		Copyright 2009 Guillaume Englert <genglert at hybird.org>
 
-	theme "cave"
+Files: theme "cave"
+Copyright:
 		Copyright 2011 Guillaume Englert <genglert at hybird.org>
 
-	images in Data/Graphics,
-	sounds in Data/Sounds,
-	themes "avematan", "bubbles", "tibet"
+Files: images in Data/Graphics
+Copyright:
+		Copyright 2004, 2005, 2006 Andrey Korotaev <unC0Rr at gmail.com>
+
+Files: sounds in Data/Sounds
+Copyright:
 		Copyright 2004, 2005, 2006 Andrey Korotaev <unC0Rr at gmail.com>
 
-	Map and theme "cheese":
+Files: themes "avematan" "bubbles" "tibet"
+Copyright:
+		Copyright 2004, 2005, 2006 Andrey Korotaev <unC0Rr at gmail.com>
+
+Files: Map and theme "cheese"
+Copyright:
 		based on Wormux map "cheese" by Anthony Carré <yeknan AT yahoo DOT fr>
 
-	Map and theme "Volcano": 
-		by Damion Brookes <nintendo_wii33 at hotmail.co.uk>
+Files: Map and theme "Volcano" 
+Copyright:
+		Damion Brookes <nintendo_wii33 at hotmail.co.uk>
 
-	(not used by linux)
-	tools/
+Files: tools/*
+Copyright:
 	2012     Vittorio Giovara <vittorio.giovara at gmail.com> (w32DownloadUnzip.vbs)
 	2011     Jared Hobbs (support/dmg-license.py)
 
-More informations on file:
-	QTfrontend/res/html/about.html
-
-License:
-   This package 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; version 2 of the License.
-
-   This package is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this package; if not, write to the Free Software
-   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
-
-
-   Images and sounds are distributed under the terms of the 
-   GNU FDL licence.
-
-
-On Debian systems, the complete text of the GNU General
-Public License can be found in `/usr/share/common-licenses/GPL-2'.
-
-Data/Fonts/DroidSansFallback.ttf:
-	Google Droid are © The Android Open Source Project under the
-	terms of the Apache license (2.0). Google Droid changes are in
-	public domain.
-On Debian systems, the complete text of the Apache License version 2.0
-can be found in `/usr/share/common-licenses/Apache-2.0'.
-
-The Debian packaging is © 2006, Dmitry E. Oboukhov <dimka at avanto.org>,
-2012-2014 Gianfranco Costamagna <costamagnagianfranco at yahoo.it> and
-is licensed under the GPL, see `/usr/share/common-licenses/GPL-2'.
+Files: debian/*
+Copyright: 2006      Dmitry E. Oboukhov <dimka at avanto.org>
+           2012-2014 Gianfranco Costamagna <costamagnagianfranco at yahoo.it>
+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 package; if not, write to the Free
+ Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ Boston, MA  02110-1301 USA
+ .
+ On Debian systems, the full text of the GNU General Public
+ License version 2 can be found in the file
+ `/usr/share/common-licenses/GPL-2'.
+
+Comment:
+ More information on file QTfrontend/res/html/about.html
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..42a5938
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1,2 @@
+using_system_physfs.patch
+using_system_fonts.patch
diff --git a/debian/patches/using_system_fonts.patch b/debian/patches/using_system_fonts.patch
new file mode 100644
index 0000000..d218444
--- /dev/null
+++ b/debian/patches/using_system_fonts.patch
@@ -0,0 +1,165 @@
+# HG changeset patch
+# User sheepluva
+# Date 1390062751 -3600
+#      Sat Jan 18 17:32:31 2014 +0100
+# Branch 0.9.20
+# Node ID ab94889bd185654aac3a587c162ed5e4ce90445c
+# Parent  f74ae7ee358599195c8e646f1f8e8652d0d38a24
+Description:
+backport of system fonts inclusion patches
+
+diff -r f74ae7ee3585 -r ab94889bd185 CMakeLists.txt
+--- a/CMakeLists.txt	Sat Jan 18 16:55:50 2014 +0100
++++ b/CMakeLists.txt	Sat Jan 18 17:32:31 2014 +0100
+@@ -38,6 +38,10 @@
+     set(DATA_INSTALL_DIR "share/hedgewars" CACHE STRING "Resource folder path")
+ endif()
+ 
++#system paths for finding required fonts (see share/hedgewars/Data/fonts)
++#subdirectories will NOT be searched.
++#all fonts that can't be found will be bundled with hedgewars
++set(FONTS_DIRS "" CACHE STRING "Additional paths to folders where required fonts can be found ( ; is separator)")
+ 
+ #versioning
+ set(CPACK_PACKAGE_VERSION_MAJOR 0)
+diff -r f74ae7ee3585 -r ab94889bd185 hedgewars/CMakeLists.txt
+--- a/hedgewars/CMakeLists.txt	Sat Jan 18 16:55:50 2014 +0100
++++ b/hedgewars/CMakeLists.txt	Sat Jan 18 17:32:31 2014 +0100
+@@ -23,6 +23,17 @@
+ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.inc.in ${CMAKE_CURRENT_BINARY_DIR}/config.inc)
+ include_directories(${CMAKE_CURRENT_BINARY_DIR})
+ 
++# convert list into pascal array
++list(LENGTH FONTS_DIRS ndirs)
++set(FONTS_DIRS_ARRAY "array [0..${ndirs}] of PChar = (")
++foreach(fontdir ${FONTS_DIRS})
++    set(FONTS_DIRS_ARRAY "${FONTS_DIRS_ARRAY}\n'${fontdir}',")
++endforeach(fontdir)
++set(FONTS_DIRS_ARRAY "${FONTS_DIRS_ARRAY}\nnil);\n")
++
++configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.inc.in ${CMAKE_CURRENT_BINARY_DIR}/config.inc)
++include_directories(${CMAKE_CURRENT_BINARY_DIR})
++
+ 
+ #set the sources with the correct order of dependencies so that cmake won't be confused
+ set(engine_sources
+diff -r f74ae7ee3585 -r ab94889bd185 hedgewars/config.inc.in
+--- a/hedgewars/config.inc.in	Sat Jan 18 16:55:50 2014 +0100
++++ b/hedgewars/config.inc.in	Sat Jan 18 17:32:31 2014 +0100
+@@ -26,3 +26,4 @@
+       cRevisionString = '${HEDGEWARS_REVISION}';
+       cHashString = '${HEDGEWARS_HASH}';
+       cDefaultPathPrefix = '${HEDGEWARS_FULL_DATADIR}/Data';
++      cFontsPaths: ${FONTS_DIRS_ARRAY}
+diff -r f74ae7ee3585 -r ab94889bd185 hedgewars/uPhysFSLayer.pas
+--- a/hedgewars/uPhysFSLayer.pas	Sat Jan 18 16:55:50 2014 +0100
++++ b/hedgewars/uPhysFSLayer.pas	Sat Jan 18 17:32:31 2014 +0100
+@@ -3,6 +3,8 @@
+ interface
+ uses SDLh, LuaPas;
+ 
++{$INCLUDE "config.inc"}
++
+ const PhysfsLibName = {$IFDEF PHYSFS_INTERNAL}'libhwphysfs'{$ELSE}'libphysfs'{$ENDIF};
+ const PhyslayerLibName = 'libphyslayer';
+ 
+@@ -41,12 +43,13 @@
+ function PHYSFSRWOPS_openRead(fname: PChar): PSDL_RWops; cdecl ; external PhyslayerLibName;
+ function PHYSFSRWOPS_openWrite(fname: PChar): PSDL_RWops; cdecl; external PhyslayerLibName;
+ 
+-function PHYSFS_mount(newDir, mountPoint: PChar; appendToPath: LongBool) : LongInt; cdecl; external PhysfsLibName;
++function PHYSFS_mount(newDir, mountPoint: PChar; appendToPath: LongBool) : LongBool; cdecl; external PhysfsLibName;
+ function PHYSFS_openRead(fname: PChar): PFSFile; cdecl; external PhysfsLibName;
+ function PHYSFS_eof(f: PFSFile): LongBool; cdecl; external PhysfsLibName;
+ function PHYSFS_readBytes(f: PFSFile; buffer: pointer; len: Int64): Int64; cdecl; external PhysfsLibName;
+ function PHYSFS_close(f: PFSFile): LongBool; cdecl; external PhysfsLibName;
+ function PHYSFS_exists(fname: PChar): LongBool; cdecl; external PhysfsLibName;
++function PHYSFS_getLastError(): PChar; cdecl; external PhysfsLibName;
+ 
+ procedure hedgewarsMountPackages(); cdecl; external PhyslayerLibName;
+ 
+@@ -127,9 +130,23 @@
+         pfsBlockRead:= r
+ end;
+ 
++procedure pfsMount(path: AnsiString; mountpoint: PChar);
++begin
++    if PHYSFS_mount(Str2PChar(path), mountpoint, false) then
++        AddFileLog('[PhysFS] mount ' + path + ' at ' + mountpoint + ' : ok')
++    else
++        AddFileLog('[PhysFS] mount ' + path + ' at ' + mountpoint + ' : FAILED ("' + PHYSFS_getLastError() + '")');
++end;
++
++procedure pfsMountAtRoot(path: AnsiString);
++begin
++    pfsMount(path, '/');
++end;
++
+ procedure initModule;
+ var i: LongInt;
+     cPhysfsId: shortstring;
++    fp: PChar;
+ begin
+ {$IFDEF HWLIBRARY}
+     //TODO: http://icculus.org/pipermail/physfs/2011-August/001006.html
+@@ -141,16 +158,21 @@
+     i:= PHYSFS_init(Str2PChar(cPhysfsId));
+     AddFileLog('[PhysFS] init: ' + inttostr(i));
+ 
+-    i:= PHYSFS_mount(Str2PChar(PathPrefix), nil, false);
+-    AddFileLog('[PhysFS] mount ' + PathPrefix + ': ' + inttostr(i));
+-    i:= PHYSFS_mount(Str2PChar(UserPathPrefix + '/Data'), nil, false);
+-    AddFileLog('[PhysFS] mount ' + UserPathPrefix + '/Data: ' + inttostr(i));
++    // mount system fonts paths first
++    for i:= low(cFontsPaths) to high(cFontsPaths) do
++        begin
++            fp := cFontsPaths[i];
++            if fp <> nil then
++                pfsMount(fp, '/Fonts');
++        end;
++
++    pfsMountAtRoot(PathPrefix);
++    pfsMountAtRoot(UserPathPrefix + '/Data');
+ 
+     hedgewarsMountPackages;
+ 
+-    i:= PHYSFS_mount(Str2PChar(UserPathPrefix), nil, false);
+     // need access to teams and frontend configs (for bindings)
+-    AddFileLog('[PhysFS] mount ' + UserPathPrefix + ': ' + inttostr(i)); 
++    pfsMountAtRoot(UserPathPrefix);
+ end;
+ 
+ procedure freeModule;
+diff -r f74ae7ee3585 -r ab94889bd185 share/hedgewars/Data/Fonts/CMakeLists.txt
+--- a/share/hedgewars/Data/Fonts/CMakeLists.txt	Sat Jan 18 16:55:50 2014 +0100
++++ b/share/hedgewars/Data/Fonts/CMakeLists.txt	Sat Jan 18 17:32:31 2014 +0100
+@@ -1,4 +1,26 @@
+-install(FILES
++set(FONTFILES
+     DejaVuSans-Bold.ttf
+-    wqy-zenhei.ttc
+-    DESTINATION ${SHAREPATH}Data/Fonts)
++    wqy-zenhei.ttc)
++
++if (FONTS_DIRS)
++    foreach(fontfile ${FONTFILES})
++        set(missing 1)
++        foreach(fontdir ${FONTS_DIRS})
++            if (EXISTS "${fontdir}/${fontfile}")
++                message(STATUS "Fonts: Found ${fontfile} in ${fontdir}")
++                set(missing 0)
++                break()
++            endif()
++        endforeach(fontdir)
++        if(missing)
++            set(MISSINGFONTFILES ${MISSINGFONTFILES} ${fontfile})
++            message(STATUS "Fonts: Could not find ${fontfile}, it will be installed")
++        endif()
++    endforeach(fontfile)
++else()
++    set(MISSINGFONTFILES ${FONTFILES})
++endif()
++
++if (MISSINGFONTFILES)
++    install(FILES ${MISSINGFONTFILES} DESTINATION ${SHAREPATH}Data/Fonts)
++endif()
diff --git a/debian/patches/using_system_physfs.patch b/debian/patches/using_system_physfs.patch
new file mode 100644
index 0000000..de07633
--- /dev/null
+++ b/debian/patches/using_system_physfs.patch
@@ -0,0 +1,263 @@
+# HG changeset patch
+# User sheepluva
+# Date 1390060550 -3600
+#      Sat Jan 18 16:55:50 2014 +0100
+# Branch 0.9.20
+# Node ID f74ae7ee358599195c8e646f1f8e8652d0d38a24
+# Parent  9d79a52c5586b3f2350c3d9dea6b9906b011c3ab
+Description:
+backport of PhysicsFS 2.0 compatibility patches
+
+diff -r 9d79a52c5586 -r f74ae7ee3585 CMakeLists.txt
+--- a/CMakeLists.txt	Sat Jan 04 02:36:55 2014 +0100
++++ b/CMakeLists.txt	Sat Jan 18 16:55:50 2014 +0100
+@@ -18,12 +18,12 @@
+ 
+ #libraries are built shared unless explicitly added as a static
+ option(BUILD_SHARED_LIBS "Build libraries as shared modules (on)" ON)
+-#set this to ON when 2.1.0 becomes more widespread (and only for linux)
+-option(PHYSFS_SYSTEM "Use system physfs (off)" OFF)
+ 
+ if(WIN32 OR APPLE)
++    option(PHYSFS_SYSTEM "Use system physfs (off)" OFF)
+     option(LUA_SYSTEM "Use system lua (off)" OFF)
+ else()
++    option(PHYSFS_SYSTEM "Use system physfs (on)" ON)
+     option(LUA_SYSTEM "Use system lua (on)" ON)
+ endif()
+ 
+@@ -152,8 +152,9 @@
+         string(REGEX MATCH "([0-9]+)" physfs_patchversion "${physfs_patchversion}")
+         set(physfs_detected_ver "${physfs_majorversion}.${physfs_minorversion}.${physfs_patchversion}")
+ 
+-        if (physfs_detected_ver VERSION_LESS "2.1.0")
+-            message(FATAL_ERROR "PhysFS version is too old (dected ${physfs_detected_ver}, required 2.1.0)")
++        if (physfs_detected_ver VERSION_LESS "2.0.0")
++            message(FATAL_ERROR "PhysFS version is too old (detected ${physfs_detected_ver}, required 2.0.0)\n"
++                                "Perform an update or rerun cmake with -DPHYSFS_SYSTEM=off to build the internal version")
+             set(physfs_too_old true)
+         endif()
+     endif()
+diff -r 9d79a52c5586 -r f74ae7ee3585 INSTALL
+--- a/INSTALL	Sat Jan 04 02:36:55 2014 +0100
++++ b/INSTALL	Sat Jan 18 16:55:50 2014 +0100
+@@ -8,7 +8,7 @@
+  - SDL_image >= 1.2
+  - SDL_ttf >= 2.0
+  - Lua >= 5.1.0
+- - Physfs >= 2.1.0
++ - Physfs >= 2.0.0
+ For server:
+  - Glasgow Haskell Compiler >= 6.10
+  - bytestring-show package
+diff -r 9d79a52c5586 -r f74ae7ee3585 hedgewars/CMakeLists.txt
+--- a/hedgewars/CMakeLists.txt	Sat Jan 04 02:36:55 2014 +0100
++++ b/hedgewars/CMakeLists.txt	Sat Jan 18 16:55:50 2014 +0100
+@@ -141,7 +141,7 @@
+     add_flag_append(CMAKE_Pascal_FLAGS "-XLAlua=${lua_output_name}")
+ endif()
+ 
+-if(PHYSFS_FOUND)
++if(PHYSFS_SYSTEM)
+     get_filename_component(PHYSFS_LIBRARY_DIR ${PHYSFS_LIBRARY} PATH)
+     add_flag_append(CMAKE_Pascal_FLAGS "-Fl${PHYSFS_LIBRARY}")
+ else()
+diff -r 9d79a52c5586 -r f74ae7ee3585 misc/libphyslayer/CMakeLists.txt
+--- a/misc/libphyslayer/CMakeLists.txt	Sat Jan 04 02:36:55 2014 +0100
++++ b/misc/libphyslayer/CMakeLists.txt	Sat Jan 18 16:55:50 2014 +0100
+@@ -7,6 +7,7 @@
+ ## extra functions needed by Hedgewars
+ ## TODO: maybe it's better to have them in a separate library?
+ set(PHYSLAYER_SRCS
++    physfscompat.c
+     physfsrwops.c
+     physfslualoader.c
+     hwpacksmounter.c
+diff -r 9d79a52c5586 -r f74ae7ee3585 misc/libphyslayer/hwpacksmounter.h
+--- a/misc/libphyslayer/hwpacksmounter.h	Sat Jan 04 02:36:55 2014 +0100
++++ b/misc/libphyslayer/hwpacksmounter.h	Sat Jan 18 16:55:50 2014 +0100
+@@ -3,6 +3,8 @@
+ 
+ #include "physfs.h"
+ 
++#include "physfscompat.h"
++
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+diff -r 9d79a52c5586 -r f74ae7ee3585 misc/libphyslayer/physfscompat.c
+--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
++++ b/misc/libphyslayer/physfscompat.c	Sat Jan 18 16:55:50 2014 +0100
+@@ -0,0 +1,73 @@
++/*
++ * Hedgewars, a free turn based strategy game
++ * Copyright (c) 2004-2014 Andrey Korotaev <unC0Rr at gmail.com>
++ *
++ * 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; version 2 of the License
++ *
++ * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
++ */
++
++#include "physfscompat.h"
++
++#ifdef HW_PHYSFS_COMPAT
++
++PHYSFS_DECL int PHYSFS_stat(const char *fname, PHYSFS_Stat *stat)
++{
++    PHYSFS_File * handle;
++
++    if (PHYSFS_exists(fname))
++    {
++        handle = PHYSFS_openRead(fname);
++        if (handle)
++        {
++            stat->filesize = PHYSFS_fileLength(handle);
++            PHYSFS_close(handle);
++            handle = 0;
++        }
++        else
++            stat->filesize = -1;
++
++        stat->modtime = PHYSFS_getLastModTime(fname);
++        stat->createtime = -1;
++        stat->accesstime = -1;
++
++        if (PHYSFS_isSymbolicLink(fname))
++            stat->filetype = PHYSFS_FILETYPE_SYMLINK;
++        else if (PHYSFS_isDirectory(fname))
++            stat->filetype = PHYSFS_FILETYPE_DIRECTORY;
++        else stat->filetype = PHYSFS_FILETYPE_REGULAR;
++
++        stat->readonly = 0; /* not supported */
++
++        /* success */
++        return 1;
++    }
++
++    /* does not exist, can't stat */
++    return 0;
++}
++
++PHYSFS_DECL PHYSFS_sint64 PHYSFS_readBytes(PHYSFS_File *handle, void *buffer,
++                                           PHYSFS_uint64 len)
++{
++    return PHYSFS_read(handle, buffer, 1, len);
++}
++
++
++PHYSFS_DECL PHYSFS_sint64 PHYSFS_writeBytes(PHYSFS_File *handle,
++                                            const void *buffer,
++                                            PHYSFS_uint64 len)
++{
++    return PHYSFS_write(handle, buffer, 1, len);
++}
++
++#endif /* HW_PHYSFS_COMPAT */
+diff -r 9d79a52c5586 -r f74ae7ee3585 misc/libphyslayer/physfscompat.h
+--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
++++ b/misc/libphyslayer/physfscompat.h	Sat Jan 18 16:55:50 2014 +0100
+@@ -0,0 +1,71 @@
++/*
++ * Hedgewars, a free turn based strategy game
++ * Copyright (c) 2004-2014 Andrey Korotaev <unC0Rr at gmail.com>
++ *
++ * 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; version 2 of the License
++ *
++ * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
++ */
++
++#ifndef _HEDGEWARS_PHYSFSCOMPAT_C_
++#define _HEDGEWARS_PHYSFSCOMPAT_C_
++
++#include "physfs.h"
++
++#if PHYSFS_VER_MAJOR == 2
++#if PHYSFS_VER_MINOR == 0
++
++#define HW_PHYSFS_COMPAT
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++#define PHYSFS_DECL __EXPORT__
++
++typedef enum PHYSFS_FileType
++{
++	PHYSFS_FILETYPE_REGULAR,
++	PHYSFS_FILETYPE_DIRECTORY,
++	PHYSFS_FILETYPE_SYMLINK,
++	PHYSFS_FILETYPE_OTHER
++} PHYSFS_FileType;
++
++typedef struct PHYSFS_Stat
++{
++	PHYSFS_sint64 filesize;
++	PHYSFS_sint64 modtime;
++	PHYSFS_sint64 createtime;
++	PHYSFS_sint64 accesstime;
++	PHYSFS_FileType filetype;
++	int readonly;
++} PHYSFS_Stat;
++
++PHYSFS_DECL int PHYSFS_stat(const char *fname, PHYSFS_Stat *stat);
++
++PHYSFS_DECL PHYSFS_sint64 PHYSFS_readBytes(PHYSFS_File *handle, void *buffer,
++                                           PHYSFS_uint64 len);
++
++
++PHYSFS_DECL PHYSFS_sint64 PHYSFS_writeBytes(PHYSFS_File *handle,
++                                            const void *buffer,
++                                            PHYSFS_uint64 len);
++
++
++#ifdef __cplusplus
++}
++#endif
++
++#endif /* PHYSFS_VER_MAJOR == 2 */
++#endif /* PHYSFS_VER_MINOR == 0 */
++
++#endif /* _HEDGEWARS_PHYSFSCOMPAT_C_ */
+diff -r 9d79a52c5586 -r f74ae7ee3585 misc/libphyslayer/physfslualoader.c
+--- a/misc/libphyslayer/physfslualoader.c	Sat Jan 04 02:36:55 2014 +0100
++++ b/misc/libphyslayer/physfslualoader.c	Sat Jan 18 16:55:50 2014 +0100
+@@ -1,6 +1,8 @@
+ #include "lua.h"
+ #include "physfs.h"
+ 
++#include "physfscompat.h"
++
+ #define BUFSIZE 1024
+ 
+ void *physfsReaderBuffer;
+diff -r 9d79a52c5586 -r f74ae7ee3585 misc/libphyslayer/physfsrwops.h
+--- a/misc/libphyslayer/physfsrwops.h	Sat Jan 04 02:36:55 2014 +0100
++++ b/misc/libphyslayer/physfsrwops.h	Sat Jan 18 16:55:50 2014 +0100
+@@ -26,6 +26,8 @@
+ #include "physfs.h"
+ #include "SDL.h"
+ 
++#include "physfscompat.h"
++
+ #ifdef __cplusplus
+ extern "C" {
+ #endif

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/collab-maint/hedgewars.git



More information about the Pkg-games-commits mailing list