Package: freedink-dfarc
Version: 3.10-1.1
Severity: important
Tags: patch
User: freewx-ma...@lists.alioth.debian.org
Usertags: wx3.0

Dear maintainer,

We're aiming to migrate the archive to using wxwidgets3.0 instead of
wxwidgets2.8, and intend to drop wxwidgets2.8 before jessie is released.

I've rebuilt your package using the attached patch, and exercised the
GUI, though I don't have the dink game itself installed, so didn't I
didn't test actually launching a game.

I'm happy to NMU this change if you wish me to - just let me know.

Cheers,
    Olly
diff -Nru freedink-dfarc-3.10/debian/changelog freedink-dfarc-3.10/debian/changelog
--- freedink-dfarc-3.10/debian/changelog	2012-09-28 01:55:08.000000000 +1200
+++ freedink-dfarc-3.10/debian/changelog	2014-06-01 01:05:13.000000000 +1200
@@ -1,3 +1,10 @@
+freedink-dfarc (3.10-1.2) unstable; urgency=low
+
+  * Non-maintainer upload.
+  * Update to use wxwidgets3.0.  New patch: wx3.0-compat.patch
+
+ -- Olly Betts <o...@survex.com>  Sun, 01 Jun 2014 01:05:05 +1200
+
 freedink-dfarc (3.10-1.1) unstable; urgency=low
 
   * Non-maintainer upload
diff -Nru freedink-dfarc-3.10/debian/control freedink-dfarc-3.10/debian/control
--- freedink-dfarc-3.10/debian/control	2012-04-28 01:17:26.000000000 +1200
+++ freedink-dfarc-3.10/debian/control	2013-11-22 16:38:55.000000000 +1300
@@ -3,7 +3,7 @@
 Priority: extra
 Maintainer: Debian Games Team <pkg-games-de...@lists.alioth.debian.org>
 Uploaders: Sylvain Beucler <b...@debian.org>
-Build-Depends: debhelper (>= 7.0.50~), autotools-dev, libbz2-dev, libwxgtk2.8-dev, intltool (>= 0.31)
+Build-Depends: debhelper (>= 7.0.50~), autotools-dev, libbz2-dev, libwxgtk3.0-dev, intltool (>= 0.31)
 Standards-Version: 3.9.3
 Homepage: http://www.gnu.org/software/freedink/
 Vcs-Git: git://git.debian.org/git/pkg-games/freedink-dfarc.git
diff -Nru freedink-dfarc-3.10/debian/.gitignore freedink-dfarc-3.10/debian/.gitignore
--- freedink-dfarc-3.10/debian/.gitignore	2008-08-26 08:13:37.000000000 +1200
+++ freedink-dfarc-3.10/debian/.gitignore	1970-01-01 12:00:00.000000000 +1200
@@ -1,9 +0,0 @@
-# rules:
-build-stamp
-build
-dfarc2
-# debhelper:
-files
-dfarc2.postinst.debhelper
-dfarc2.postrm.debhelper
-dfarc2.substvars
diff -Nru freedink-dfarc-3.10/debian/patches/series freedink-dfarc-3.10/debian/patches/series
--- freedink-dfarc-3.10/debian/patches/series	1970-01-01 12:00:00.000000000 +1200
+++ freedink-dfarc-3.10/debian/patches/series	2013-11-22 16:57:14.000000000 +1300
@@ -0,0 +1 @@
+wx3.0-compat.patch
diff -Nru freedink-dfarc-3.10/debian/patches/wx3.0-compat.patch freedink-dfarc-3.10/debian/patches/wx3.0-compat.patch
--- freedink-dfarc-3.10/debian/patches/wx3.0-compat.patch	1970-01-01 12:00:00.000000000 +1200
+++ freedink-dfarc-3.10/debian/patches/wx3.0-compat.patch	2014-06-01 01:22:43.000000000 +1200
@@ -0,0 +1,285 @@
+Description: fix to build with wxwidgets 3.0
+ wxLogError, etc are macros in wx 3.0.
+Author: Olly Betts <o...@survex.com>
+Forwarded: no
+Last-Update: 2013-11-22
+
+--- a/src/InstallVerifyFrame.cpp
++++ b/src/InstallVerifyFrame.cpp
+@@ -166,7 +166,7 @@
+     }
+   else
+     {
+-      ::wxLogError(_("An error occured while extracting the .dmod file."));
++      wxLogError(_("An error occured while extracting the .dmod file."));
+     }
+   ::wxRemoveFile(mTarFilePath);
+   // TODO: return error code instead of wxID_OK if something goes wrong
+--- a/src/DFArcFrame.cpp
++++ b/src/DFArcFrame.cpp
+@@ -343,7 +343,7 @@
+ {
+   wxString description = _("D-Mod files (*.dmod)");
+   wxFileDialog FileDlg(0, _("Select a .dmod file"), _T(""), _T(""), description + _T("|*.dmod"),
+-        wxOPEN | wxFILE_MUST_EXIST);
++        wxFD_OPEN | wxFD_FILE_MUST_EXIST);
+      
+   if (FileDlg.ShowModal() == wxID_OK)
+     {
+@@ -912,7 +912,7 @@
+                 {
+ 		  if (::wxRmdir(mConfig->mSelectedDmod) == false)
+                     {
+-		      ::wxLogError(_("Unable to remove D-Mod directory. All other files were removed."));
++		      wxLogError(_("Unable to remove D-Mod directory. All other files were removed."));
+ 		      lSuccess = false;
+                     }
+                 }
+--- a/src/RecursiveDelete.cpp
++++ b/src/RecursiveDelete.cpp
+@@ -52,7 +52,7 @@
+       {
+         if (::wxRemoveFile(aFilename) == false)
+         {
+-	  ::wxLogError(_("Could not remove %s"), aFilename.c_str());
++	  wxLogError(_("Could not remove %s"), aFilename.c_str());
+ 	  mError = true;
+         }
+     }
+@@ -70,7 +70,7 @@
+     {
+       if ( ::wxRmdir( aDirname ) == false )
+ 	{
+-	  ::wxLogError(_("Could not remove %s"), aDirname.c_str());
++	  wxLogError(_("Could not remove %s"), aDirname.c_str());
+ 	  mError = true;
+ 	}
+     }
+--- a/src/Package.cpp
++++ b/src/Package.cpp
+@@ -120,7 +120,7 @@
+ {
+   if (mIdentifier->GetValue().Len() == 0)
+     {
+-      ::wxLogError(_("You must provide an identifier filename."));
++      wxLogError(_("You must provide an identifier filename."));
+       return;
+     }
+   
+--- a/src/BZip.cpp
++++ b/src/BZip.cpp
+@@ -297,7 +297,7 @@
+     
+     if ( lDmodFileIn == NULL )
+       {
+-	::wxLogError(_("Error: Could not open input file '%s' for bzip decompression."), mFilePath.c_str());
++	wxLogError(_("Error: Could not open input file '%s' for bzip decompression."), mFilePath.c_str());
+         return _T("");
+       }
+ 
+@@ -312,7 +312,7 @@
+ 
+     if( lError != BZ_OK )
+       {
+-	::wxLogError(_("Error: Invalid .dmod file selected!"));
++	wxLogError(_("Error: Invalid .dmod file selected!"));
+ 	fclose(lDmodFileIn);
+         return _T("");
+       }
+@@ -322,7 +322,7 @@
+     
+     if (lTarFileOut == NULL)
+       {
+-	::wxLogError(_("Error: Could not write to '%s'."), lTempFileName.c_str());
++	wxLogError(_("Error: Could not write to '%s'."), lTempFileName.c_str());
+         fclose(lDmodFileIn);
+         return _T("");
+     }
+@@ -354,35 +354,35 @@
+             }
+             else if ( lError == BZ_PARAM_ERROR )
+             {
+-                ::wxLogError( _("Invalid .dmod file specified.") );
++                wxLogError( _("Invalid .dmod file specified.") );
+             }
+             else if ( lError == BZ_SEQUENCE_ERROR )
+             {
+-                ::wxLogError( _("Critical program function error: opened for write.") );
++                wxLogError( _("Critical program function error: opened for write.") );
+             }
+             else if ( lError == BZ_IO_ERROR )
+             {
+-                ::wxLogError( _("Could not read .dmod file.") );
++                wxLogError( _("Could not read .dmod file.") );
+             }
+             else if ( lError == BZ_UNEXPECTED_EOF )
+             {
+-                ::wxLogError( _("Incomplete .dmod file. Please download it again.") );
++                wxLogError( _("Incomplete .dmod file. Please download it again.") );
+             }
+             else if ( lError == BZ_DATA_ERROR )
+             {
+-                ::wxLogError( _("The .dmod file is corrupted.  Please download it again.") );
++                wxLogError( _("The .dmod file is corrupted.  Please download it again.") );
+             }
+             else if ( lError == BZ_DATA_ERROR_MAGIC )
+             {
+-                ::wxLogError( _("The file is not a valid .dmod file.") );
++                wxLogError( _("The file is not a valid .dmod file.") );
+             }
+             else if ( lError == BZ_MEM_ERROR )
+             {
+-                ::wxLogError( _("Out of memory error.") );
++                wxLogError( _("Out of memory error.") );
+             }
+             else
+             {
+-                ::wxLogError( _("An unhandled error occured.") );
++                wxLogError( _("An unhandled error occured.") );
+             }
+             wxRemoveFile(lTempFileName);
+             lTempFileName = _T("");
+--- a/src/Tar.cpp
++++ b/src/Tar.cpp
+@@ -126,8 +126,8 @@
+   FILE* out = fopen(mFilePath.fn_str(), "wb");
+   if (!out)
+     {
+-      ::wxLogError(_("Error: Could not open tar file '%s' for bzip compression."), mFilePath.c_str());
+-      return _("ERROR");
++      wxLogError(_("Error: Could not open tar file '%s' for bzip compression."), mFilePath.c_str());
++      return true;
+     }
+   
+   /* libbz2 init */
+@@ -148,7 +148,7 @@
+   
+   if (iErr != BZ_OK)
+     {
+-      ::wxLogError(_("Error: Could not initialize compression method!"
++      wxLogError(_("Error: Could not initialize compression method!"
+ 		     "  "
+ 		     "Will not generate a correct .dmod file."
+ 		     "  "
+@@ -181,7 +181,7 @@
+       FILE *in = fopen(fileinfos[i].fullpath.fn_str(), "rb");
+       if (in == NULL)
+         {
+-	  ::wxLogFatalError(_("Error: File '%s' not found!  Cannot archive file."),
++	  wxLogFatalError(_("Error: File '%s' not found!  Cannot archive file."),
+ 			    fileinfos[i].fullpath.c_str());
+ 	  throw;
+         }
+@@ -473,7 +473,7 @@
+     if(!f_In.good())
+     {
+       lError = 1;
+-      ::wxLogFatalError(_("Error: File '%s' not found!  Cannot extract data."), mFilePath.c_str());
++      wxLogFatalError(_("Error: File '%s' not found!  Cannot extract data."), mFilePath.c_str());
+       throw;
+     }
+     
+@@ -483,7 +483,7 @@
+       wxFileName::Mkdir(destdir, 0777, wxPATH_MKDIR_FULL); // 0777 minus umask
+     if (!::wxDirExists(destdir))
+       {
+-	::wxLogFatalError(_("Error: Cannot create directory '%s'.  Cannot extract data."), destdir.c_str());
++	wxLogFatalError(_("Error: Cannot create directory '%s'.  Cannot extract data."), destdir.c_str());
+ 	throw;
+       }
+     // Move to the directory.
+@@ -565,7 +565,7 @@
+                 {
+                     lStreamOut.close();
+                     lStreamOut.clear();
+-		    ::wxLogError(_("Error: Improperly archived file '%s'.  Skipping."), lCurrentFilePath.c_str());
++		    wxLogError(_("Error: Improperly archived file '%s'.  Skipping."), lCurrentFilePath.c_str());
+                     lError = 1;
+                     continue;
+                 }
+--- a/src/Config.cpp
++++ b/src/Config.cpp
+@@ -213,7 +213,7 @@
+   strSysRoot += _T("/dinksmallwood.ini");
+   if (!::wxFileExists(strSysRoot))
+     {
+-      ::wxLogVerbose(_("Error: dinksmallwood.ini not found. "
++      wxLogVerbose(_("Error: dinksmallwood.ini not found. "
+ 		       "Please run the main game and try running this program again."));
+       return fallback_woe_dir;
+     }
+@@ -221,7 +221,7 @@
+   f_In.open(strSysRoot.fn_str(), std::ios::in);
+   if (!f_In.good())
+     {
+-      ::wxLogVerbose(_("Error opening dinksmallwood.ini"), strSysRoot.c_str());
++      wxLogVerbose(_("Error opening dinksmallwood.ini"), strSysRoot.c_str());
+       return fallback_woe_dir;
+     }
+   
+--- a/src/Options_Base.cpp
++++ b/src/Options_Base.cpp
+@@ -8,7 +8,7 @@
+ 
+ 
+ Options_Base::Options_Base(wxWindow* parent, int id, const wxString& title, const wxPoint& pos, const wxSize& size, long style):
+-    wxDialog(parent, id, title, pos, size, wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER|wxTHICK_FRAME)
++    wxDialog(parent, id, title, pos, size, wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER)
+ {
+     // begin wxGlade: Options_Base::Options_Base
+     mCloseCheck = new wxCheckBox(this, wxID_ANY, _("Close DFArc on play"));
+--- a/src/InstallVerifyFrame_Base.cpp
++++ b/src/InstallVerifyFrame_Base.cpp
+@@ -8,7 +8,7 @@
+ 
+ 
+ InstallVerifyFrame_Base::InstallVerifyFrame_Base(wxWindow* parent, int id, const wxString& title, const wxPoint& pos, const wxSize& size, long style):
+-    wxDialog(parent, id, title, pos, size, wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER|wxTHICK_FRAME)
++    wxDialog(parent, id, title, pos, size, wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER)
+ {
+     // begin wxGlade: InstallVerifyFrame_Base::InstallVerifyFrame_Base
+     mDmodDescription = new wxTextCtrl(this, wxID_ANY, _("Preparing..."), wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY);
+--- a/src/InstallVerifyFrame_Base.wxg
++++ b/src/InstallVerifyFrame_Base.wxg
+@@ -3,7 +3,7 @@
+ 
+ <application path="" name="" class="" option="0" language="C++" top_window="dialog_1" encoding="UTF-8" use_gettext="1" overwrite="1" use_new_namespace="1" for_version="2.6" is_template="0">
+     <object class="InstallVerifyFrame_Base" name="dialog_1" base="EditDialog">
+-        <style>wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER|wxTHICK_FRAME</style>
++        <style>wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER</style>
+         <title>DFArc - Install D-Mod</title>
+         <object class="wxBoxSizer" name="lVerticalSizer" base="EditBoxSizer">
+             <orient>wxVERTICAL</orient>
+--- a/src/Options_Base.wxg
++++ b/src/Options_Base.wxg
+@@ -3,7 +3,7 @@
+ 
+ <application path="" name="" class="" option="0" language="C++" top_window="dialog_1" encoding="UTF-8" use_gettext="1" overwrite="1" use_new_namespace="1" for_version="2.6" is_template="0">
+     <object class="Options_Base" name="dialog_1" base="EditDialog">
+-        <style>wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER|wxTHICK_FRAME</style>
++        <style>wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER</style>
+         <title>DFArc - Options</title>
+         <object class="wxBoxSizer" name="lMainSizer" base="EditBoxSizer">
+             <orient>wxVERTICAL</orient>
+--- a/src/Package_Base.cpp
++++ b/src/Package_Base.cpp
+@@ -8,7 +8,7 @@
+ 
+ 
+ Package_Base::Package_Base(wxWindow* parent, int id, const wxString& title, const wxPoint& pos, const wxSize& size, long style):
+-    wxDialog(parent, id, title, pos, size, wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER|wxTHICK_FRAME)
++    wxDialog(parent, id, title, pos, size, wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER)
+ {
+     // begin wxGlade: Package_Base::Package_Base
+     lIdentifierBox_staticbox = new wxStaticBox(this, -1, _("Identifier"));
+--- a/src/Package_Base.wxg
++++ b/src/Package_Base.wxg
+@@ -3,7 +3,7 @@
+ 
+ <application path="" name="" class="" option="0" language="C++" top_window="dialog_1" encoding="UTF-8" use_gettext="1" overwrite="1" use_new_namespace="1" for_version="2.6" is_template="0">
+     <object class="Package_Base" name="dialog_1" base="EditDialog">
+-        <style>wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER|wxTHICK_FRAME</style>
++        <style>wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER</style>
+         <title>DFArc - Package</title>
+         <object class="wxBoxSizer" name="lMainSizer" base="EditBoxSizer">
+             <orient>wxVERTICAL</orient>
diff -Nru freedink-dfarc-3.10/debian/rules freedink-dfarc-3.10/debian/rules
--- freedink-dfarc-3.10/debian/rules	2012-04-28 01:34:34.000000000 +1200
+++ freedink-dfarc-3.10/debian/rules	2014-06-01 01:33:20.000000000 +1200
@@ -27,7 +27,9 @@
 	#   (e.g. not the case for Fedora)
 	# Using '--disable-desktopfiles' to avoid installing FreeDesktop files
 	#   on the builder (rather than on the end-user computer)
-	dh_auto_configure -- --bindir=/usr/games --datadir=/usr/share/games --disable-desktopfiles
+	# Pass CPPFLAGS=-DNDEBUG to disable WXDEBUG assertions, which are on by
+	# default in wx3.0.
+	dh_auto_configure -- --bindir=/usr/games --datadir=/usr/share/games --disable-desktopfiles CPPFLAGS=-DNDEBUG
 
 override_dh_strip:
 	# Create -dbg package with debug symbols for gdb

Reply via email to