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-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 -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org