Control: tags 758949 + patch Attached is a patch for wxWidgets 3.0 compatibility.
I've rebuilt with this patch, and the GUI seems to run OK, but I don't know enough about the domain it works in to really be able to usefully test its specific functionality. Cheers, Olly
diff -Nru mmass-5.5.0/debian/changelog mmass-5.5.0/debian/changelog --- mmass-5.5.0/debian/changelog 2014-08-18 10:11:16.000000000 -0300 +++ mmass-5.5.0/debian/changelog 2014-09-02 22:03:49.000000000 -0300 @@ -1,3 +1,11 @@ +mmass (5.5.0-3.1) unstable; urgency=medium + + * Non-maintainer upload. + * Update for wxwidgets3.0 (Closes: #758949): + + New patch wxwidgets3.0.patch + + -- Olly Betts <o...@survex.com> Wed, 03 Sep 2014 01:03:47 +0000 + mmass (5.5.0-3) unstable; urgency=medium * mv upstream upstream/metadata; diff -Nru mmass-5.5.0/debian/control mmass-5.5.0/debian/control --- mmass-5.5.0/debian/control 2014-08-18 10:11:16.000000000 -0300 +++ mmass-5.5.0/debian/control 2014-09-02 21:41:19.000000000 -0300 @@ -12,7 +12,7 @@ Package: mmass Architecture: all -Depends: ${misc:Depends}, ${python:Depends}, python-wxgtk2.8 (>= 2.8.10.1-3+b1), python-numpy (>= 1.4.1), mmass-modules (>= ${binary:Version}) +Depends: ${misc:Depends}, ${python:Depends}, python-wxgtk3.0, python-numpy (>= 1.4.1), mmass-modules (>= ${binary:Version}) XB-Python-Version: ${python:Versions} Description: Mass spectrometry tool for proteomics mMass is a free mass spectrum viewer/analyzer in which the diff -Nru mmass-5.5.0/debian/patches/series mmass-5.5.0/debian/patches/series --- mmass-5.5.0/debian/patches/series 1969-12-31 21:00:00.000000000 -0300 +++ mmass-5.5.0/debian/patches/series 2014-09-02 21:45:15.000000000 -0300 @@ -0,0 +1 @@ +wxwidgets3.0.patch diff -Nru mmass-5.5.0/debian/patches/wxwidgets3.0.patch mmass-5.5.0/debian/patches/wxwidgets3.0.patch --- mmass-5.5.0/debian/patches/wxwidgets3.0.patch 1969-12-31 21:00:00.000000000 -0300 +++ mmass-5.5.0/debian/patches/wxwidgets3.0.patch 2014-09-02 22:03:46.000000000 -0300 @@ -0,0 +1,295 @@ +Description: Update for wxWidgets3.0 + Changes should also be compatible with wxWidgets2.8. +Author: Olly Betts <o...@survex.com> +Bug-Debian: https://bugs.debian.org/758949 +Forwarded: no +Last-Update: 2014-09-02 + +Index: mmass-5.5.0/gui/main_frame.py +=================================================================== +--- mmass-5.5.0.orig/gui/main_frame.py ++++ mmass-5.5.0/gui/main_frame.py +@@ -1526,7 +1526,7 @@ class mainFrame(wx.Frame): + + # ask for name + fileName = document.title+'.msd' +- dlg = wx.FileDialog(self, "Save", config.main['lastDir'], fileName, "mMass Spectrum Document|*.msd", wx.SAVE|wx.OVERWRITE_PROMPT) ++ dlg = wx.FileDialog(self, "Save", config.main['lastDir'], fileName, "mMass Spectrum Document|*.msd", wx.FD_SAVE|wx.FD_OVERWRITE_PROMPT) + if dlg.ShowModal() == wx.ID_OK: + path = dlg.GetPath() + config.main['lastDir'] = os.path.split(path)[0] +Index: mmass-5.5.0/gui/panel_about.py +=================================================================== +--- mmass-5.5.0.orig/gui/panel_about.py ++++ mmass-5.5.0/gui/panel_about.py +@@ -40,7 +40,7 @@ class panelAbout(frame): + """About mMass.""" + + def __init__(self, parent): +- frame.__init__(self, parent, -1, frameTitle, style=wx.DEFAULT_FRAME_STYLE & ~ (wx.RESIZE_BORDER | wx.RESIZE_BOX | wx.MAXIMIZE_BOX | wx.MINIMIZE_BOX)) ++ frame.__init__(self, parent, -1, frameTitle, style=wx.DEFAULT_FRAME_STYLE & ~ (wx.RESIZE_BORDER | wx.MAXIMIZE_BOX | wx.MINIMIZE_BOX)) + self.parent = parent + + # make gui items +Index: mmass-5.5.0/gui/panel_calibration.py +=================================================================== +--- mmass-5.5.0.orig/gui/panel_calibration.py ++++ mmass-5.5.0/gui/panel_calibration.py +@@ -38,7 +38,7 @@ class panelCalibration(wx.MiniFrame): + """Calibration tool.""" + + def __init__(self, parent, tool='references'): +- wx.MiniFrame.__init__(self, parent, -1, 'Calibration', size=(400, 300), style=wx.DEFAULT_FRAME_STYLE & ~ (wx.RESIZE_BOX | wx.MAXIMIZE_BOX)) ++ wx.MiniFrame.__init__(self, parent, -1, 'Calibration', size=(400, 300), style=wx.DEFAULT_FRAME_STYLE & ~ wx.MAXIMIZE_BOX) + + self.parent = parent + self.processing = None +Index: mmass-5.5.0/gui/panel_compounds_search.py +=================================================================== +--- mmass-5.5.0.orig/gui/panel_compounds_search.py ++++ mmass-5.5.0/gui/panel_compounds_search.py +@@ -39,7 +39,7 @@ class panelCompoundsSearch(wx.MiniFrame) + """Compounds search tool.""" + + def __init__(self, parent, tool='compounds'): +- wx.MiniFrame.__init__(self, parent, -1, 'Compounds Search', size=(400, 300), style=wx.DEFAULT_FRAME_STYLE & ~ (wx.RESIZE_BOX | wx.MAXIMIZE_BOX)) ++ wx.MiniFrame.__init__(self, parent, -1, 'Compounds Search', size=(400, 300), style=wx.DEFAULT_FRAME_STYLE & ~ wx.MAXIMIZE_BOX) + + self.parent = parent + self.matchPanel = None +Index: mmass-5.5.0/gui/panel_document_export.py +=================================================================== +--- mmass-5.5.0.orig/gui/panel_document_export.py ++++ mmass-5.5.0/gui/panel_document_export.py +@@ -35,7 +35,7 @@ class panelDocumentExport(wx.MiniFrame): + """Document export tools.""" + + def __init__(self, parent, tool='image'): +- wx.MiniFrame.__init__(self, parent, -1, 'Export', size=(400, 300), style=wx.DEFAULT_FRAME_STYLE & ~ (wx.RESIZE_BORDER | wx.RESIZE_BOX | wx.MAXIMIZE_BOX)) ++ wx.MiniFrame.__init__(self, parent, -1, 'Export', size=(400, 300), style=wx.DEFAULT_FRAME_STYLE & ~ (wx.RESIZE_BORDER | wx.MAXIMIZE_BOX)) + + self.parent = parent + self.processing = None +@@ -508,7 +508,7 @@ class panelDocumentExport(wx.MiniFrame): + fileType = "JPEG image file|*.jpg" + + # raise export dialog +- dlg = wx.FileDialog(self, "Export Spectrum Image", config.main['lastDir'], fileName, fileType, wx.SAVE|wx.OVERWRITE_PROMPT) ++ dlg = wx.FileDialog(self, "Export Spectrum Image", config.main['lastDir'], fileName, fileType, wx.FD_SAVE|wx.FD_OVERWRITE_PROMPT) + if dlg.ShowModal() == wx.ID_OK: + path = dlg.GetPath() + config.main['lastDir'] = os.path.split(path)[0] +@@ -544,7 +544,7 @@ class panelDocumentExport(wx.MiniFrame): + fileType = "MGF file|*.mgf" + + # raise export dialog +- dlg = wx.FileDialog(self, "Export Peak List", config.main['lastDir'], fileName, fileType, wx.SAVE|wx.OVERWRITE_PROMPT) ++ dlg = wx.FileDialog(self, "Export Peak List", config.main['lastDir'], fileName, fileType, wx.FD_SAVE|wx.FD_OVERWRITE_PROMPT) + if dlg.ShowModal() == wx.ID_OK: + path = dlg.GetPath() + config.main['lastDir'] = os.path.split(path)[0] +@@ -579,7 +579,7 @@ class panelDocumentExport(wx.MiniFrame): + fileType = "ASCII file|*.txt" + + # raise export dialog +- dlg = wx.FileDialog(self, "Export Spectrum Data", config.main['lastDir'], fileName, fileType, wx.SAVE|wx.OVERWRITE_PROMPT) ++ dlg = wx.FileDialog(self, "Export Spectrum Data", config.main['lastDir'], fileName, fileType, wx.FD_SAVE|wx.FD_OVERWRITE_PROMPT) + if dlg.ShowModal() == wx.ID_OK: + path = dlg.GetPath() + config.main['lastDir'] = os.path.split(path)[0] +Index: mmass-5.5.0/gui/panel_document_info.py +=================================================================== +--- mmass-5.5.0.orig/gui/panel_document_info.py ++++ mmass-5.5.0/gui/panel_document_info.py +@@ -34,7 +34,7 @@ class panelDocumentInfo(wx.MiniFrame): + """Document info tools.""" + + def __init__(self, parent, tool='summary'): +- wx.MiniFrame.__init__(self, parent, -1, 'Document Information', size=(400, 200), style=wx.DEFAULT_FRAME_STYLE & ~ (wx.RESIZE_BORDER | wx.RESIZE_BOX | wx.MAXIMIZE_BOX)) ++ wx.MiniFrame.__init__(self, parent, -1, 'Document Information', size=(400, 200), style=wx.DEFAULT_FRAME_STYLE & ~ (wx.RESIZE_BORDER | wx.MAXIMIZE_BOX)) + + self.parent = parent + +Index: mmass-5.5.0/gui/panel_envelope_fit.py +=================================================================== +--- mmass-5.5.0.orig/gui/panel_envelope_fit.py ++++ mmass-5.5.0/gui/panel_envelope_fit.py +@@ -35,7 +35,7 @@ class panelEnvelopeFit(wx.MiniFrame): + """Envelope fit tool.""" + + def __init__(self, parent): +- wx.MiniFrame.__init__(self, parent, -1, 'Envelope Fit', size=(400, 300), style=wx.DEFAULT_FRAME_STYLE & ~ (wx.RESIZE_BOX | wx.MAXIMIZE_BOX)) ++ wx.MiniFrame.__init__(self, parent, -1, 'Envelope Fit', size=(400, 300), style=wx.DEFAULT_FRAME_STYLE & ~ wx.MAXIMIZE_BOX) + + self.parent = parent + +Index: mmass-5.5.0/gui/panel_mascot.py +=================================================================== +--- mmass-5.5.0.orig/gui/panel_mascot.py ++++ mmass-5.5.0/gui/panel_mascot.py +@@ -42,7 +42,7 @@ class panelMascot(wx.MiniFrame): + """Mascot search tool.""" + + def __init__(self, parent, tool=config.mascot['common']['searchType']): +- wx.MiniFrame.__init__(self, parent, -1, 'Mascot Tools', size=(300, -1), style=wx.DEFAULT_FRAME_STYLE & ~ (wx.RESIZE_BORDER | wx.RESIZE_BOX | wx.MAXIMIZE_BOX)) ++ wx.MiniFrame.__init__(self, parent, -1, 'Mascot Tools', size=(300, -1), style=wx.DEFAULT_FRAME_STYLE & ~ (wx.RESIZE_BORDER | wx.MAXIMIZE_BOX)) + + self.parent = parent + self.processing = None +Index: mmass-5.5.0/gui/panel_mass_calculator.py +=================================================================== +--- mmass-5.5.0.orig/gui/panel_mass_calculator.py ++++ mmass-5.5.0/gui/panel_mass_calculator.py +@@ -37,7 +37,7 @@ class panelMassCalculator(wx.MiniFrame): + """Mass calculator tools.""" + + def __init__(self, parent, tool='pattern'): +- wx.MiniFrame.__init__(self, parent, -1, 'Mass Calculator', size=(400, 300), style=wx.DEFAULT_FRAME_STYLE & ~ (wx.RESIZE_BOX | wx.MAXIMIZE_BOX)) ++ wx.MiniFrame.__init__(self, parent, -1, 'Mass Calculator', size=(400, 300), style=wx.DEFAULT_FRAME_STYLE & ~ wx.MAXIMIZE_BOX) + + self.parent = parent + +Index: mmass-5.5.0/gui/panel_mass_filter.py +=================================================================== +--- mmass-5.5.0.orig/gui/panel_mass_filter.py ++++ mmass-5.5.0/gui/panel_mass_filter.py +@@ -36,7 +36,7 @@ class panelMassFilter(wx.MiniFrame): + """Mass filter tool.""" + + def __init__(self, parent): +- wx.MiniFrame.__init__(self, parent, -1, 'Mass Filter', size=(400, 300), style=wx.DEFAULT_FRAME_STYLE & ~ (wx.RESIZE_BOX | wx.MAXIMIZE_BOX)) ++ wx.MiniFrame.__init__(self, parent, -1, 'Mass Filter', size=(400, 300), style=wx.DEFAULT_FRAME_STYLE & ~ wx.MAXIMIZE_BOX) + + self.parent = parent + self.matchPanel = None +Index: mmass-5.5.0/gui/panel_mass_to_formula.py +=================================================================== +--- mmass-5.5.0.orig/gui/panel_mass_to_formula.py ++++ mmass-5.5.0/gui/panel_mass_to_formula.py +@@ -38,7 +38,7 @@ class panelMassToFormula(wx.MiniFrame): + """Mass to formula tool.""" + + def __init__(self, parent): +- wx.MiniFrame.__init__(self, parent, -1, 'Mass To Formula', size=(400, 300), style=wx.DEFAULT_FRAME_STYLE & ~ (wx.RESIZE_BOX | wx.MAXIMIZE_BOX)) ++ wx.MiniFrame.__init__(self, parent, -1, 'Mass To Formula', size=(400, 300), style=wx.DEFAULT_FRAME_STYLE & ~ wx.MAXIMIZE_BOX) + + self.parent = parent + +Index: mmass-5.5.0/gui/panel_match.py +=================================================================== +--- mmass-5.5.0.orig/gui/panel_match.py ++++ mmass-5.5.0/gui/panel_match.py +@@ -36,7 +36,7 @@ class panelMatch(wx.MiniFrame): + """Data match tool.""" + + def __init__(self, parentTool, mainFrame, module): +- wx.MiniFrame.__init__(self, parentTool, -1, 'Match Data', size=(400, 300), style=wx.DEFAULT_FRAME_STYLE & ~ (wx.RESIZE_BOX | wx.MAXIMIZE_BOX)) ++ wx.MiniFrame.__init__(self, parentTool, -1, 'Match Data', size=(400, 300), style=wx.DEFAULT_FRAME_STYLE & ~ wx.MAXIMIZE_BOX) + + self.parentTool = parentTool + self.mainFrame = mainFrame +Index: mmass-5.5.0/gui/panel_monomer_library.py +=================================================================== +--- mmass-5.5.0.orig/gui/panel_monomer_library.py ++++ mmass-5.5.0/gui/panel_monomer_library.py +@@ -34,7 +34,7 @@ class panelMonomerLibrary(wx.MiniFrame): + """Monomer library.""" + + def __init__(self, parent, filterIn=[], filterOut=[], DnD=True): +- wx.MiniFrame.__init__(self, parent, -1, 'Monomer Library', size=(250, 300), style=wx.DEFAULT_FRAME_STYLE & ~ (wx.RESIZE_BOX | wx.MAXIMIZE_BOX)) ++ wx.MiniFrame.__init__(self, parent, -1, 'Monomer Library', size=(250, 300), style=wx.DEFAULT_FRAME_STYLE & ~ wx.MAXIMIZE_BOX) + + self.parent = parent + self.filterIn = filterIn +Index: mmass-5.5.0/gui/panel_periodic_table.py +=================================================================== +--- mmass-5.5.0.orig/gui/panel_periodic_table.py ++++ mmass-5.5.0/gui/panel_periodic_table.py +@@ -34,7 +34,7 @@ class panelPeriodicTable(wx.MiniFrame): + """Periodic table of elements.""" + + def __init__(self, parent): +- wx.MiniFrame.__init__(self, parent, -1, 'Periodic Table of the Elements', size=(400, 300), style=wx.DEFAULT_FRAME_STYLE & ~ (wx.RESIZE_BOX | wx.RESIZE_BORDER | wx.MAXIMIZE_BOX)) ++ wx.MiniFrame.__init__(self, parent, -1, 'Periodic Table of the Elements', size=(400, 300), style=wx.DEFAULT_FRAME_STYLE & ~ (wx.RESIZE_BORDER | wx.MAXIMIZE_BOX)) + + self.parent = parent + +Index: mmass-5.5.0/gui/panel_processing.py +=================================================================== +--- mmass-5.5.0.orig/gui/panel_processing.py ++++ mmass-5.5.0/gui/panel_processing.py +@@ -38,7 +38,7 @@ class panelProcessing(wx.MiniFrame): + """Data processing tools.""" + + def __init__(self, parent, tool='peakpicking'): +- wx.MiniFrame.__init__(self, parent, -1, 'Processing', size=(300, -1), style=wx.DEFAULT_FRAME_STYLE & ~ (wx.RESIZE_BORDER | wx.RESIZE_BOX | wx.MAXIMIZE_BOX)) ++ wx.MiniFrame.__init__(self, parent, -1, 'Processing', size=(300, -1), style=wx.DEFAULT_FRAME_STYLE & ~ (wx.RESIZE_BORDER | wx.MAXIMIZE_BOX)) + + self.parent = parent + +Index: mmass-5.5.0/gui/panel_profound.py +=================================================================== +--- mmass-5.5.0.orig/gui/panel_profound.py ++++ mmass-5.5.0/gui/panel_profound.py +@@ -37,7 +37,7 @@ class panelProfound(wx.MiniFrame): + """Profound search tool.""" + + def __init__(self, parent, tool='pmf'): +- wx.MiniFrame.__init__(self, parent, -1, 'ProFound Search', size=(300, -1), style=wx.DEFAULT_FRAME_STYLE & ~ (wx.RESIZE_BORDER | wx.RESIZE_BOX | wx.MAXIMIZE_BOX)) ++ wx.MiniFrame.__init__(self, parent, -1, 'ProFound Search', size=(300, -1), style=wx.DEFAULT_FRAME_STYLE & ~ (wx.RESIZE_BORDER | wx.MAXIMIZE_BOX)) + + self.parent = parent + +Index: mmass-5.5.0/gui/panel_prospector.py +=================================================================== +--- mmass-5.5.0.orig/gui/panel_prospector.py ++++ mmass-5.5.0/gui/panel_prospector.py +@@ -37,7 +37,7 @@ class panelProspector(wx.MiniFrame): + """ProteinProspector search tools.""" + + def __init__(self, parent, tool=config.prospector['common']['searchType']): +- wx.MiniFrame.__init__(self, parent, -1, 'Protein Prospector', size=(300, -1), style=wx.DEFAULT_FRAME_STYLE & ~ (wx.RESIZE_BORDER | wx.RESIZE_BOX | wx.MAXIMIZE_BOX)) ++ wx.MiniFrame.__init__(self, parent, -1, 'Protein Prospector', size=(300, -1), style=wx.DEFAULT_FRAME_STYLE & ~ (wx.RESIZE_BORDER | wx.MAXIMIZE_BOX)) + + self.parent = parent + +Index: mmass-5.5.0/gui/panel_sequence.py +=================================================================== +--- mmass-5.5.0.orig/gui/panel_sequence.py ++++ mmass-5.5.0/gui/panel_sequence.py +@@ -39,7 +39,7 @@ class panelSequence(wx.MiniFrame): + """Sequence tools.""" + + def __init__(self, parent, tool='editor'): +- wx.MiniFrame.__init__(self, parent, -1, 'Sequence', size=(500, 300), style=wx.DEFAULT_FRAME_STYLE & ~ (wx.RESIZE_BOX | wx.MAXIMIZE_BOX)) ++ wx.MiniFrame.__init__(self, parent, -1, 'Sequence', size=(500, 300), style=wx.DEFAULT_FRAME_STYLE & ~ wx.MAXIMIZE_BOX) + + self.parent = parent + self.matchPanel = None +Index: mmass-5.5.0/gui/panel_spectrum_generator.py +=================================================================== +--- mmass-5.5.0.orig/gui/panel_spectrum_generator.py ++++ mmass-5.5.0/gui/panel_spectrum_generator.py +@@ -35,7 +35,7 @@ class panelSpectrumGenerator(wx.MiniFram + """Spectrum generator tool.""" + + def __init__(self, parent): +- wx.MiniFrame.__init__(self, parent, -1, 'Spectrum Generator', size=(700, 400), style=wx.DEFAULT_FRAME_STYLE & ~ (wx.RESIZE_BOX | wx.MAXIMIZE_BOX)) ++ wx.MiniFrame.__init__(self, parent, -1, 'Spectrum Generator', size=(700, 400), style=wx.DEFAULT_FRAME_STYLE & ~ wx.MAXIMIZE_BOX) + + self.parent = parent + +Index: mmass-5.5.0/mmass.py +=================================================================== +--- mmass-5.5.0.orig/mmass.py ++++ mmass-5.5.0/mmass.py +@@ -38,6 +38,9 @@ class mMass(wx.App): + def OnInit(self): + """Init application.""" + ++ # Suppress WXDEBUG assertions, as happens by default with wx2.8. ++ self.SetAssertMode(wx.PYAPP_ASSERT_SUPPRESS) ++ + # set some special wx params + mwx.appInit() +