Bug#750001: freedink-dfarc: Please update to wxwidgets3.0

beuc at debian.org beuc at debian.org
Sat May 31 14:23:12 UTC 2014


Hi,

I (as upstream) do not wish to update to wxWidgets2.8 yet because
wxGlade (used to generate the *_Base.cpp files) doesn't support it,
and because MXE (for the Windows cross-build) doesn't seem to either
(though it builds 2.9 already).

So while such a move is planned, it's too early to make it.
Please consider supporting both 2.8 and 3.0 in Jessie (as with 2.6/2.8).
It will also make backports easier.

Last, I (as package maintainer) would object to Debian diverging from
upstream, especially with forwarded:no patches, so no NMU please.

- Sylvain

On Sun, Jun 01, 2014 at 01:44:35AM +1200, Olly Betts wrote:
> Package: freedink-dfarc
> Version: 3.10-1.1
> Severity: important
> Tags: patch
> User: freewx-maint at 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 <olly at 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-devel at lists.alioth.debian.org>
>  Uploaders: Sylvain Beucler <beuc at 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 <olly at 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



More information about the Pkg-games-devel mailing list