Your message dated Thu, 24 Jul 2014 22:03:23 +0000
with message-id <e1xar6h-0002ja...@franck.debian.org>
and subject line Bug#749128: fixed in filezilla 3.9.0.1-0.1
has caused the Debian Bug report #749128,
regarding filezilla: Please update to use wxwidgets3.0
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)


-- 
749128: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=749128
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Package: filezilla
Version: 3.8.0-1
Severity: normal
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.

I've rebuilt the filezilla package using the attached patch (mostly
based on the patch which Macports are using), and have done some
simple testing.  Everything looks good to me.

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

Cheers,
    Olly
diff -Nru filezilla-3.8.0/debian/changelog filezilla-3.8.0/debian/changelog
--- filezilla-3.8.0/debian/changelog	2014-04-29 14:35:05.000000000 +1200
+++ filezilla-3.8.0/debian/changelog	2014-05-23 16:32:20.000000000 +1200
@@ -1,3 +1,10 @@
+filezilla (3.8.0-1.1) unstable; urgency=low
+
+  * Non-maintainer upload.
+  * Update to use wxWidgets 3.0 (new patch 02_wx3.0-compat.patch)
+
+ -- Olly Betts <o...@survex.com>  Fri, 23 May 2014 16:32:03 +1200
+
 filezilla (3.8.0-1) unstable; urgency=medium
 
   * New upstream release
diff -Nru filezilla-3.8.0/debian/control filezilla-3.8.0/debian/control
--- filezilla-3.8.0/debian/control	2014-04-29 14:35:05.000000000 +1200
+++ filezilla-3.8.0/debian/control	2014-05-23 16:02:46.000000000 +1200
@@ -3,7 +3,7 @@
 Priority: optional
 Maintainer: Adrien Cunin <adri2...@ubuntu.com>
 Build-Depends: debhelper (>= 9), autotools-dev, pkg-config, dh-autoreconf,
- libwxgtk2.8-dev (>= 2.8.6) | libwxgtk-dev (>= 2.8.6), wx-common, libgtk2.0-dev,
+ libwxgtk3.0-dev, wx-common, libgtk2.0-dev,
  libidn11-dev, gettext, libgnutls-dev (>= 2.8.3), imagemagick, libdbus-1-dev,
  libtinyxml-dev, libsqlite3-dev
 Standards-Version: 3.9.5
diff -Nru filezilla-3.8.0/debian/patches/02_wx3.0-compat.patch filezilla-3.8.0/debian/patches/02_wx3.0-compat.patch
--- filezilla-3.8.0/debian/patches/02_wx3.0-compat.patch	1970-01-01 12:00:00.000000000 +1200
+++ filezilla-3.8.0/debian/patches/02_wx3.0-compat.patch	2014-05-24 18:53:17.000000000 +1200
@@ -0,0 +1,940 @@
+Description: Fix to compile with wx3.0
+ Patch adapted from macports.
+Author: mo...@macports.org
+Last-Update: 2014-05-23
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -111,9 +111,6 @@
+         equivalent variable and wxWidgets version is $MIN_WX_VERSION or above.
+     ])
+   fi
+-  if test "$wx_config_major_version" -gt "2" || test "$wx_config_minor_version" -gt "8"; then
+-    AC_MSG_ERROR([You need to use wxWidgets 2.8.x to compile this program.])
+-  fi
+ 
+   # --universal=no doesn't work correctly, it still accepts universal builds. Reject it manually here.
+   if echo "$WX_CPPFLAGS" | grep __WXUNIVERSAL__ > /dev/null; then
+--- a/src/engine/local_path.cpp
++++ b/src/engine/local_path.cpp
+@@ -48,6 +48,7 @@
+ 
+ 	wxChar* out;
+ 	wxChar* start;
++	wxStringBuffer* buffer = 0;
+ 	if (*in == '\\')
+ 	{
+ 		// possibly UNC
+@@ -59,7 +60,8 @@
+ 			return false;
+ 		}
+ 
+-		start = m_path.GetWriteBuf(path.Len() + 2);
++		buffer = new wxStringBuffer(m_path, path.Len() + 2);
++		start = *buffer;
+ 		out = start;
+ 		*out++ = '\\';
+ 		*out++ = '\\';
+@@ -77,7 +79,7 @@
+ 		{
+ 			// not a valid UNC path
+ 			*start = 0;
+-			m_path.UngetWriteBuf( 0 );
++			delete buffer;
+ 			return false;
+ 		}
+ 
+@@ -87,21 +89,22 @@
+ 	{
+ 		// Regular path
+ 
+-		start = m_path.GetWriteBuf(path.Len() + 2);
++		buffer = new wxStringBuffer(m_path, path.Len() + 2);
++		start = *buffer;
+ 		out = start;
+ 		*out++ = *in++;
+ 
+ 		if (*in++ != ':')
+ 		{
+ 			*start = 0;
+-			m_path.UngetWriteBuf( 0 );
++			delete buffer;
+ 			return false;
+ 		}
+ 		*out++ = ':';
+ 		if (*in != '/' && *in != '\\' && *in)
+ 		{
+ 			*start = 0;
+-			m_path.UngetWriteBuf( 0 );
++			delete buffer;
+ 			return false;
+ 		}
+ 		*out++ = path_separator;
+@@ -120,8 +123,13 @@
+ 		return false;
+ 	}
+ 
++#if wxCHECK_VERSION(2, 9, 0)
++	wxStringBuffer* buffer = new wxStringBuffer(m_path, path.Len() + 2);
++	wxChar* out = *buffer;
++#else
+ 	wxChar* start = m_path.GetWriteBuf(path.Len() + 2);
+ 	wxChar* out = start;
++#endif
+ 
+ 	*out++ = '/';
+ 	segments.push_back(out);
+@@ -210,9 +218,13 @@
+ 	}
+ 
+ 	*out = 0;
+-
++#if !wxCHECK_VERSION(2, 9, 0)
+ 	m_path.UngetWriteBuf( out - start );
+-
++#else
++	if (buffer != 0) {
++		delete buffer;
++	}
++#endif
+ 	::Coalesce(m_path);
+ 
+ 	return true;
+--- a/src/engine/logging.cpp
++++ b/src/engine/logging.cpp
+@@ -51,6 +51,38 @@
+ 	}
+ }
+ 
++#if wxCHECK_VERSION(2, 9, 0)
++void CLogging::LogMessage(MessageType nMessageType, const wxChar *msgFormat, int value1) const
++{
++        LogMessage(nMessageType, msgFormat, (const char*)(wxString() << value1).c_str());
++}
++
++void CLogging::LogMessage(MessageType nMessageType, const wxChar *msgFormat, int value1, wxCStrData value2) const
++{
++        LogMessage(nMessageType, msgFormat, (const char*)(wxString() << value1).c_str(), value2.AsWChar());
++}
++
++void CLogging::LogMessage(MessageType nMessageType, const wxChar *msgFormat, int value1, wxCStrData value2, wxCStrData value3) const
++{
++        LogMessage(nMessageType, msgFormat, (const char*)(wxString() << value1).c_str(), value2.AsWChar(), value3.AsWChar());
++}
++
++void CLogging::LogMessage(MessageType nMessageType, const wxChar *msgFormat, wxCStrData value1) const
++{
++        LogMessage(nMessageType, msgFormat, value1.AsWChar());
++}
++
++void CLogging::LogMessage(MessageType nMessageType, const wxChar *msgFormat, wxCStrData value1, wxCStrData value2) const
++{
++        LogMessage(nMessageType, msgFormat, value1.AsWChar(), value2.AsWChar());
++}
++
++void CLogging::LogMessage(MessageType nMessageType, const wxChar *msgFormat, wxCStrData value1, wxCStrData value2, wxCStrData value3, wxCStrData value4) const
++{
++        LogMessage(nMessageType, msgFormat, value1.AsWChar(), value2.AsWChar(), value3.AsWChar(), value4.AsWChar());
++}
++#endif
++
+ void CLogging::LogMessage(MessageType nMessageType, const wxChar *msgFormat, ...) const
+ {
+ 	InitLogFile();
+--- a/src/engine/logging_private.h
++++ b/src/engine/logging_private.h
+@@ -7,6 +7,15 @@
+ 	CLogging(CFileZillaEnginePrivate *pEngine);
+ 	virtual ~CLogging();
+ 
++#if wxCHECK_VERSION(2, 9, 0)
++	void LogMessage(MessageType nMessageType, const wxChar *msgFormat, int value1) const;
++	void LogMessage(MessageType nMessageType, const wxChar *msgFormat, int value1, wxCStrData value2) const;
++	void LogMessage(MessageType nMessageType, const wxChar *msgFormat, int value1, wxCStrData value2, wxCStrData value3) const;
++	void LogMessage(MessageType nMessageType, const wxChar *msgFormat, wxCStrData value1) const;
++	void LogMessage(MessageType nMessageType, const wxChar *msgFormat, wxCStrData value1, wxCStrData value2) const;
++	void LogMessage(MessageType nMessageType, const wxChar *msgFormat, wxCStrData value1, wxCStrData value2, wxCStrData value3, wxCStrData value4) const;
++#endif
++
+ 	void LogMessage(MessageType nMessageType, const wxChar *msgFormat, ...) const;
+ 	void LogMessageRaw(MessageType nMessageType, const wxChar *msg) const;
+ 	void LogMessage(wxString sourceFile, int nSourceLine, void *pInstance, MessageType nMessageType, const wxChar *msgFormat, ...) const;
+--- a/src/engine/misc.cpp
++++ b/src/engine/misc.cpp
+@@ -349,11 +349,24 @@
+ {
+ 	for (size_t i = 0; i < str.Len(); i++)
+ 	{
++#if wxCHECK_VERSION(2, 9, 0)
++		char c;
++		str.GetChar(i).GetAsChar(&c);
++		if (c >= 'A' && c <= 'Z')
++		{
++			c += 32;
++			str.SetChar(i, wxUniChar(c));
++		} else if (c == 0x130 || c == 0x131) {
++			c = 'i';
++			str.SetChar(i, wxUniChar(c));
++		}
++#else
+ 		wxChar& c = str[i];
+ 		if (c >= 'A' && c <= 'Z')
+ 			c += 32;
+ 		else if (c == 0x130 || c == 0x131)
+ 			c = 'i';
++#endif
+ 	}
+ }
+ 
+--- a/src/engine/server.cpp
++++ b/src/engine/server.cpp
+@@ -12,13 +12,13 @@
+ };
+ 
+ static const t_protocolInfo protocolInfos[] = {
+-	{ FTP,          _T("ftp"),    false, 21,  true,  wxTRANSLATE("FTP - File Transfer Protocol with optional encryption"),                 true  },
++	{ FTP,          _T("ftp"),    false, 21,  true,  _T("FTP - File Transfer Protocol with optional encryption"),                 true  },
+ 	{ SFTP,         _T("sftp"),   true,  22,  false, _T("SFTP - SSH File Transfer Protocol"),                              false },
+ 	{ HTTP,         _T("http"),   true,  80,  false, _T("HTTP - Hypertext Transfer Protocol"),                             false  },
+-	{ HTTPS,        _T("https"),  true, 443,  true,  wxTRANSLATE("HTTPS - HTTP over TLS"),                                 false  },
+-	{ FTPS,         _T("ftps"),   true, 990,  true,  wxTRANSLATE("FTPS - FTP over implicit TLS/SSL"),                      true  },
+-	{ FTPES,        _T("ftpes"),  true,  21,  true,  wxTRANSLATE("FTPES - FTP over explicit TLS/SSL"),                     true  },
+-	{ INSECURE_FTP, _T("ftp"),    false, 21,  true,  wxTRANSLATE("FTP - Insecure File Transfer Protocol"), true  },
++	{ HTTPS,        _T("https"),  true, 443,  true,  _T("HTTPS - HTTP over TLS"),                                 false  },
++	{ FTPS,         _T("ftps"),   true, 990,  true,  _T("FTPS - FTP over implicit TLS/SSL"),                      true  },
++	{ FTPES,        _T("ftpes"),  true,  21,  true,  _T("FTPES - FTP over explicit TLS/SSL"),                     true  },
++	{ INSECURE_FTP, _T("ftp"),    false, 21,  true,  _T("FTP - Insecure File Transfer Protocol"), true  },
+ 	{ UNKNOWN,      _T(""),       false, 21,  false, _T(""), false }
+ };
+ 
+--- a/src/engine/serverpath.cpp
++++ b/src/engine/serverpath.cpp
+@@ -272,8 +272,13 @@
+ 		len += iter->Length() + 2 + INTLENGTH;
+ 
+ 	wxString safepath;
++#if wxCHECK_VERSION(2, 9, 0)
++	wxStringBuffer* buffer = new wxStringBuffer(safepath, len);
++	wxChar* t = *buffer;
++#else
+ 	wxChar* start = safepath.GetWriteBuf(len);
+ 	wxChar* t = start;
++#endif
+ 
+ 	t = fast_sprint_number(t, m_type);
+ 	*(t++) = ' ';
+@@ -295,8 +300,11 @@
+ 		t += iter->size();
+ 	}
+ 	*t = 0;
+-
++#if !wxCHECK_VERSION(2, 9, 0)
+ 	safepath.UngetWriteBuf( t - start );
++#else
++	delete buffer;
++#endif
+ 	safepath.Shrink();
+ 
+ 	return safepath;
+--- a/src/engine/socket.cpp
++++ b/src/engine/socket.cpp
+@@ -1298,7 +1298,7 @@
+ 	}
+ }
+ 
+-#define ERRORDECL(c, desc) { c, _T(#c), wxTRANSLATE(desc) },
++#define ERRORDECL(c, desc) { c, _T(#c), _T(desc) },
+ 
+ struct Error_table
+ {
+--- a/src/engine/string_coalescer.cpp
++++ b/src/engine/string_coalescer.cpp
+@@ -67,7 +67,11 @@
+ 	{
+ 		// wxString is CoW, yet it doesn't even do this fast pointer
+ 		// comparison in it's less and/or equal operator(s).
++#if wxCHECK_VERSION(2, 9, 0)
++		return lhs == rhs;
++#else
+ 		return lhs.c_str() == rhs.c_str() || lhs == rhs;
++#endif
+ 	}
+ };
+ 
+--- a/src/include/libfilezilla.h
++++ b/src/include/libfilezilla.h
+@@ -21,6 +21,10 @@
+ #include <wx/datetime.h>
+ #include <wx/event.h>
+ #include <wx/string.h>
++#if wxCHECK_VERSION(2, 9, 0)
++#include <wx/translation.h>
++#include <wx/dcclient.h>
++#endif
+ 
+ #include <list>
+ #include <vector>
+--- a/src/interface/FileZilla.cpp
++++ b/src/interface/FileZilla.cpp
+@@ -269,7 +269,7 @@
+ #else
+ 		if (!pInfo || !SetLocale(pInfo->Language))
+ 		{
+-			if (pInfo && pInfo->Description)
++			if (pInfo && !pInfo->Description.IsEmpty())
+ 				wxMessageBoxEx(wxString::Format(_("Failed to set language to %s (%s), using default system language"), pInfo->Description.c_str(), language.c_str()), _("Failed to change language"), wxICON_EXCLAMATION);
+ 			else
+ 				wxMessageBoxEx(wxString::Format(_("Failed to set language to %s, using default system language"), language.c_str()), _("Failed to change language"), wxICON_EXCLAMATION);
+@@ -783,7 +783,7 @@
+ 	if (!found)
+ 	{
+ 		wxMessageBoxEx(wxString::Format(_("%s could not be found. Without this component of FileZilla, SFTP will not work.\n\nPossible solutions:\n- Make sure %s is in a directory listed in your PATH environment variable.\n- Set the full path to %s in the FZ_FZSFTP environment variable."), program.c_str(), program.c_str(), program.c_str()),
+-			_("File not found"), wxICON_ERROR);
++			_("File not found"), wxICON_ERROR | wxOK);
+ 		executable.clear();
+ 	}
+ #endif
+--- a/src/interface/Mainfrm.cpp
++++ b/src/interface/Mainfrm.cpp
+@@ -759,14 +759,19 @@
+ 			// Do a crude approach: Drop everything unexpected...
+ 			for (unsigned int i = 0; i < version.Len(); i++)
+ 			{
++#if wxCHECK_VERSION(2, 9, 0)
++				char c;
++				version.GetChar(i).GetAsChar(&c);
++#else
+ 				wxChar& c = version[i];
++#endif
+ 				if ((version[i] >= '0' && version[i] <= '9') ||
+ 					(version[i] >= 'a' && version[i] <= 'z') ||
+ 					(version[i] >= 'A' && version[i] <= 'Z') ||
+ 					version[i] == '-' || version[i] == '.' ||
+ 					version[i] == '_')
+ 				{
+-					url += c;
++					url.Append(c);
+ 				}
+ 			}
+ 		}
+@@ -784,7 +789,11 @@
+ 			{
+ 				pStatusBar->Show(show);
+ 				wxSizeEvent evt;
++#if wxCHECK_VERSION(2, 9, 0)
++				controls->pLocalListViewPanel->ProcessWindowEvent(evt);
++#else
+ 				controls->pLocalListViewPanel->ProcessEvent(evt);
++#endif
+ 			}
+ 		}
+ 		if (controls && controls->pRemoteListViewPanel)
+@@ -794,7 +803,11 @@
+ 			{
+ 				pStatusBar->Show(show);
+ 				wxSizeEvent evt;
++#if wxCHECK_VERSION(2, 9, 0)
++				controls->pRemoteListViewPanel->ProcessWindowEvent(evt);
++#else
+ 				controls->pRemoteListViewPanel->ProcessEvent(evt);
++#endif
+ 			}
+ 		}
+ 	}
+--- a/src/interface/QueueView.cpp
++++ b/src/interface/QueueView.cpp
+@@ -3451,9 +3451,13 @@
+ 	const wxChar replace = COptions::Get()->GetOption(OPTION_INVALID_CHAR_REPLACE)[0];
+ 
+ 	wxString result;
+-
++#if wxCHECK_VERSION(2, 9, 0)
++	wxStringBuffer* buffer = new wxStringBuffer(result, filename.Len() + 1);
++	wxChar* buf = *buffer;
++#else
+ 	wxChar* start = result.GetWriteBuf(filename.Len() + 1);
+ 	wxChar* buf = start;
++#endif
+ 
+ 	const wxChar* p = filename.c_str();
+ 	while (*p)
+@@ -3488,9 +3492,11 @@
+ 		p++;
+ 	}
+ 	*buf = 0;
+-
++#if wxCHECK_VERSION(2, 9, 0)
++	delete buffer;
++#else
+ 	result.UngetWriteBuf( buf - start );
+-
++#endif
+ 	return result;
+ }
+ 
+--- a/src/interface/RemoteTreeView.cpp
++++ b/src/interface/RemoteTreeView.cpp
+@@ -350,7 +350,7 @@
+ 	SetItemImages(parent, false);
+ 
+ #ifndef __WXMSW__
+-	m_freezeCount--;
++	Thaw();
+ #endif
+ 	if (!modified)
+ 		SafeSelectItem(parent);
+--- a/src/interface/StatusView.cpp
++++ b/src/interface/StatusView.cpp
+@@ -71,7 +71,7 @@
+ 	{
+ 		wxWindow* parent = GetParent();
+ 		event.SetEventObject(parent);
+-		parent->ProcessEvent(event);
++		parent->GetEventHandler()->ProcessEvent(event);
+ 	}
+ #else
+ 	void OnKeyDown(wxKeyEvent& event)
+@@ -89,7 +89,7 @@
+ 		navEvent.SetDirection(!event.ShiftDown());
+ 		navEvent.SetFromTab(true);
+ 		navEvent.ResumePropagation(1);
+-		parent->ProcessEvent(navEvent);
++		parent->GetEventHandler()->ProcessEvent(navEvent);
+ 	}
+ #endif
+ };
+--- a/src/interface/aui_notebook_ex.cpp
++++ b/src/interface/aui_notebook_ex.cpp
+@@ -3,7 +3,16 @@
+ #include "aui_notebook_ex.h"
+ #include <wx/dcmirror.h>
+ 
++#if wxCHECK_VERSION(2, 9, 0)
++wxColor wxAuiStepColour(const wxColor& c, int ialpha)
++{
++	wxColor* result = new wxColor(c);
++	result->ChangeLightness(ialpha);
++	return *result;
++}
++#else
+ wxColor wxAuiStepColour(const wxColor& c, int ialpha);
++#endif
+ 
+ #ifdef __WXMSW__
+ #define TABCOLOUR wxSYS_COLOUR_3DFACE
+@@ -184,9 +193,6 @@
+ 		}
+ 	}
+ 
+-#ifdef __WXGTK__
+-	virtual GdkWindow* GetGDKWindow() const { return m_original_dc->GetGDKWindow(); }
+-#endif
+ protected:
+ 	int m_gradient_called;
+ 	int m_rectangle_called;
+@@ -215,9 +221,15 @@
+ 	virtual wxAuiTabArt* Clone()
+ 	{
+ 		wxAuiTabArtEx *art = new wxAuiTabArtEx(m_pNotebook, m_bottom, m_data);
++#if wxCHECK_VERSION(2, 9, 0)
++		art->SetNormalFont(m_normalFont);
++		art->SetSelectedFont(m_selectedFont);
++		art->SetMeasuringFont(m_measuringFont);
++#else
+ 		art->SetNormalFont(m_normal_font);
+ 		art->SetSelectedFont(m_selected_font);
+ 		art->SetMeasuringFont(m_measuring_font);
++#endif
+ 		return art;
+ 	}
+ 
+@@ -257,12 +269,21 @@
+ 						 int* x_extent)
+ 	{
+ #ifndef __WXMAC__
++#if wxCHECK_VERSION(2, 9, 0)
++		m_baseColour = wxSystemSettings::GetColour(TABCOLOUR);
++#else
+ 		m_base_colour = wxSystemSettings::GetColour(TABCOLOUR);
+ #endif
++#endif
+ 		if (!pane.active)
+ 		{
++#if wxCHECK_VERSION(2, 9, 0)
++			if (m_baseColour.Red() + m_baseColour.Green() + m_baseColour.Blue() >= 384)
++				m_baseColour = wxColour( m_baseColour.Red() * 0.95, m_baseColour.Green() * 0.95, m_baseColour.Blue() * 0.95 );
++#else
+ 			if (m_base_colour.Red() + m_base_colour.Green() + m_base_colour.Blue() >= 384)
+ 				m_base_colour = wxColour( m_base_colour.Red() * 0.95, m_base_colour.Green() * 0.95, m_base_colour.Blue() * 0.95 );
++#endif
+ 
+ 			dc.SetTextForeground(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT));
+ 			if (m_pNotebook->Highlighted(m_pNotebook->GetPageIndex(pane.window)))
+@@ -270,27 +291,49 @@
+ 				if (!m_fonts_initialized)
+ 				{
+ 					m_fonts_initialized = true;
++#if wxCHECK_VERSION(2, 9, 0)
++					m_original_normal_font = m_normalFont;
++					m_highlighted_font = m_normalFont;
++#else
+ 					m_original_normal_font = m_normal_font;
+ 					m_highlighted_font = m_normal_font;
++#endif
+ 					m_highlighted_font.SetWeight(wxFONTWEIGHT_BOLD);
+ 					m_highlighted_font.SetStyle(wxFONTSTYLE_ITALIC);
+ 				}
++#if wxCHECK_VERSION(2, 9, 0)
++				m_normalFont = m_highlighted_font;
++#else
+ 				m_normal_font = m_highlighted_font;
++#endif
+ 			}
+ 			else if (m_fonts_initialized)
++#if wxCHECK_VERSION(2, 9, 0)
++				m_normalFont = m_original_normal_font;
++#else
+ 				m_normal_font = m_original_normal_font;
++#endif
+ 		}
+-
++#if wxCHECK_VERSION(2, 9, 0)
++		CFilterDC filter_dc(dc, pane.active ? 1 : 0, (m_tabCtrlHeight % 2) != 0, m_bottom);
++		wxAuiGenericTabArt::DrawTab(*((wxDC*)&filter_dc), wnd, pane, in_rect, close_button_state, out_tab_rect, out_button_rect, x_extent);
++		m_baseColour = wxSystemSettings::GetColour(TABCOLOUR);
++#else
+ 		CFilterDC filter_dc(dc, pane.active ? 1 : 0, (m_tab_ctrl_height % 2) != 0, m_bottom);
+ 		wxAuiDefaultTabArt::DrawTab(*((wxDC*)&filter_dc), wnd, pane, in_rect, close_button_state, out_tab_rect, out_button_rect, x_extent);
+-
+ 		m_base_colour = wxSystemSettings::GetColour(TABCOLOUR);
++#endif
+ 	}
+ 
+ 	virtual void DrawBackground(wxDC& dc, wxWindow* wnd, const wxRect& rect)
+ 	{
++#if wxCHECK_VERSION(2, 9, 0)
++		CFilterDC filter_dc(dc, 2, (m_tabCtrlHeight % 2) != 0, m_bottom);
++		wxAuiGenericTabArt::DrawBackground(*((wxDC*)&filter_dc), wnd, rect);
++#else
+ 		CFilterDC filter_dc(dc, 2, (m_tab_ctrl_height % 2) != 0, m_bottom);
+ 		wxAuiDefaultTabArt::DrawBackground(*((wxDC*)&filter_dc), wnd, rect);
++#endif
+ 	}
+ protected:
+ 	wxAuiNotebookEx* m_pNotebook;
+--- a/src/interface/commandqueue.cpp
++++ b/src/interface/commandqueue.cpp
+@@ -289,7 +289,7 @@
+ 
+ 	wxCommandEvent evt(fzEVT_GRANTEXCLUSIVEENGINEACCESS);
+ 	evt.SetId(m_requestId);
+-	m_pMainFrame->GetQueue()->AddPendingEvent(evt);
++	m_pMainFrame->GetQueue()->GetEventHandler()->AddPendingEvent(evt);
+ }
+ 
+ CFileZillaEngine* CCommandQueue::GetEngineExclusive(int requestId)
+--- a/src/interface/filezilla.h
++++ b/src/interface/filezilla.h
+@@ -72,5 +72,6 @@
+ #include <wx/toolbar.h>
+ #include <wx/treectrl.h>
+ #include <wx/xrc/xmlres.h>
++#include <wx/xml/xml.h>
+ 
+ #endif
+--- a/src/interface/import.cpp
++++ b/src/interface/import.cpp
+@@ -146,7 +146,7 @@
+ 			return _T("");
+ 		int number = (pass[i] - '0') * 100 +
+ 						(pass[i + 1] - '0') * 10 +
+-						pass[i + 2] - '0';
++						(pass[i + 2] - '0');
+ 		wxChar c = number ^ key[(i / 3 + pos) % strlen(key)];
+ 		output += c;
+ 	}
+--- a/src/interface/listctrlex.cpp
++++ b/src/interface/listctrlex.cpp
+@@ -73,7 +73,7 @@
+ #ifndef __WXMSW__
+ wxScrolledWindow* wxListCtrlEx::GetMainWindow() const
+ {
+-#ifdef __WXMAC__
++#if defined(__WXMAC__) && !wxCHECK_VERSION(2, 9, 0)
+ 	return (wxScrolledWindow*)m_genericImpl->m_mainWin;
+ #else
+ 	return (wxScrolledWindow*)m_mainWin;
+--- a/src/interface/netconfwizard.cpp
++++ b/src/interface/netconfwizard.cpp
+@@ -777,7 +777,12 @@
+ 			wxString hexIP = ip;
+ 			for (unsigned int i = 0; i < hexIP.Length(); i++)
+ 			{
++#if wxCHECK_VERSION(2, 9, 0)
++				char c;
++				hexIP.GetChar(i).GetAsChar(&c);
++#else
+ 				wxChar& c = hexIP[i];
++#endif
+ 				if (c == '.')
+ 					c = '-';
+ 				else
+--- a/src/interface/queue.cpp
++++ b/src/interface/queue.cpp
+@@ -1310,7 +1310,7 @@
+ 	}
+ 	else
+ 	{
+-		if (m_folderScanCount)
++		if (m_folderScanCount && m_fileCount > 0)
+ 			str.Printf(m_title + _T(" (0+)"), m_fileCount);
+ 		else
+ 			str = m_title;
+@@ -1442,7 +1442,11 @@
+ void CQueueViewBase::OnNavigationKey(wxNavigationKeyEvent& event)
+ {
+ 	event.SetEventObject(m_pQueue);
++#if wxCHECK_VERSION(2, 9, 0)
++	m_pQueue->ProcessWindowEvent(event);
++#else
+ 	m_pQueue->ProcessEvent(event);
++#endif
+ }
+ 
+ void CQueueViewBase::OnChar(wxKeyEvent& event)
+--- a/src/interface/queue_storage.cpp
++++ b/src/interface/queue_storage.cpp
+@@ -135,7 +135,11 @@
+ 	{
+ 		// wxString is CoW, yet it doesn't even do this fast pointer
+ 		// comparison in it's less and/or equal operator(s).
++#if wxCHECK_VERSION(2, 9, 0)
++		return (const char*)lhs.c_str() == (const char*)rhs.c_str() || lhs == rhs;
++#else
+ 		return lhs.c_str() == rhs.c_str() || lhs == rhs;
++#endif
+ 	}
+ };
+ 
+@@ -561,9 +565,11 @@
+ extern "C" {
+ static void custom_free(void* v)
+ {
+-#ifdef __WXMSW__
++#if defined(__WXMSW__)
++#if !wxCHECK_VERSION(2, 9, 0)
+ 	wxStringData* data = reinterpret_cast<wxStringData*>(v) - 1;
+ 	data->Unlock();
++#endif
+ #else
+ 	char* s = reinterpret_cast<char*>(v);
+ 	delete [] s;
+@@ -574,11 +580,16 @@
+ bool CQueueStorage::Impl::Bind(sqlite3_stmt* statement, int index, const wxString& value)
+ {
+ #ifdef __WXMSW__
++#if wxCHECK_VERSION(2, 9, 0)
++	char* data = value.char_str();
++	return sqlite3_bind_text16(statement, index, data, value.length(), custom_free) == SQLITE_OK;
++#else
+ 	// Increase string reference and pass the data to sqlite with a custom deallocator that
+ 	// reduces the reference once sqlite is done with it.
+ 	wxStringData* data = reinterpret_cast<wxStringData*>(const_cast<wxChar*>(value.c_str())) - 1;
+ 	data->Lock();
+ 	return sqlite3_bind_text16(statement, index, data + 1, data->nDataLength * 2, custom_free) == SQLITE_OK;
++#endif
+ #else
+ 	char* out = new char[value.size() * 2];
+ 	size_t outlen = utf16_.FromWChar(out, value.size() * 2, value.c_str(), value.size());
+@@ -831,9 +842,18 @@
+ 	int len = sqlite3_column_bytes16(statement, index);
+ 	if (text)
+ 	{
++#if wxCHECK_VERSION(2, 9, 0)
++		wxStringBuffer* buffer = new wxStringBuffer(ret, len);
++		wxChar* out = *buffer;
++#else
+ 		wxChar* out = ret.GetWriteBuf( len );
++#endif
+ 		int outlen = utf16_.ToWChar( out, len, text, len );
++#if wxCHECK_VERSION(2, 9, 0)
++		delete buffer;
++#else
+ 		ret.UngetWriteBuf( outlen );
++#endif
+ 		if (shrink)
+ 			ret.Shrink();
+ 	}
+--- a/src/interface/quickconnectbar.cpp
++++ b/src/interface/quickconnectbar.cpp
+@@ -222,12 +222,12 @@
+ 	if (event.GetDirection() && event.GetEventObject() == XRCCTRL(*this, "ID_QUICKCONNECT_DROPDOWN", wxButton))
+ 	{
+ 		event.SetEventObject(this);
+-		GetParent()->ProcessEvent(event);
++		GetParent()->GetEventHandler()->ProcessEvent(event);
+ 	}
+ 	else if (!event.GetDirection() && event.GetEventObject() == m_pHost)
+ 	{
+ 		event.SetEventObject(this);
+-		GetParent()->ProcessEvent(event);
++		GetParent()->GetEventHandler()->ProcessEvent(event);
+ 	}
+ 	else
+ 		event.Skip();
+--- a/src/interface/resources/settings.xrc
++++ b/src/interface/resources/settings.xrc
+@@ -427,7 +427,7 @@
+               </object>
+               <cols>1</cols>
+               <vgap>3</vgap>
+-              <rows>2</rows>
++              <rows>3</rows>
+             </object>
+             <flag>wxLEFT|wxRIGHT|wxBOTTOM</flag>
+             <border>4</border>
+@@ -632,9 +632,9 @@
+               <object class="sizeritem">
+                 <object class="wxListCtrl" name="ID_KEYS">
+                   <style>wxLC_REPORT|wxSUNKEN_BORDER</style>
++                  <size>400,-1</size>
+                 </object>
+-                <option>1</option>
+-                <flag>wxGROW</flag>
++                <flag>wxSHAPED</flag>
+               </object>
+               <vgap>5</vgap>
+               <growablecols>0</growablecols>
+@@ -1368,7 +1368,7 @@
+           <object class="sizeritem">
+             <object class="wxFlexGridSizer">
+               <cols>2</cols>
+-              <rows>2</rows>
++              <rows>3</rows>
+               <object class="sizeritem">
+                 <object class="wxStaticText">
+                   <label>&amp;Theme:</label>
+@@ -2080,7 +2080,6 @@
+                   </object>
+                   <growablecols>1</growablecols>
+                 </object>
+-                <flag>wxGROW</flag>
+                 <minsize>400,0</minsize>
+               </object>
+               <growablecols>0</growablecols>
+--- a/src/interface/settings/optionspage_dateformatting.cpp
++++ b/src/interface/settings/optionspage_dateformatting.cpp
+@@ -16,7 +16,7 @@
+ 	const wxString& dateFormat = m_pOptions->GetOption(OPTION_DATE_FORMAT);
+ 	if (dateFormat == _T("1"))
+ 		SetRCheck(XRCID("ID_DATEFORMAT_ISO"), true, failure);
+-	else if (dateFormat[0] == '2')
++	else if (!dateFormat.IsEmpty() && dateFormat[0] == '2')
+ 	{
+ 		SetRCheck(XRCID("ID_DATEFORMAT_CUSTOM"), true, failure);
+ 		SetText(XRCID("ID_CUSTOM_DATEFORMAT"), dateFormat.Mid(1), failure);
+@@ -27,7 +27,7 @@
+ 	const wxString& timeFormat = m_pOptions->GetOption(OPTION_TIME_FORMAT);
+ 	if (timeFormat == _T("1"))
+ 		SetRCheck(XRCID("ID_TIMEFORMAT_ISO"), true, failure);
+-	else if (timeFormat[0] == '2')
++	else if (!timeFormat.IsEmpty() && timeFormat[0] == '2')
+ 	{
+ 		SetRCheck(XRCID("ID_TIMEFORMAT_CUSTOM"), true, failure);
+ 		SetText(XRCID("ID_CUSTOM_TIMEFORMAT"), timeFormat.Mid(1), failure);
+--- a/src/interface/sitemanager.cpp
++++ b/src/interface/sitemanager.cpp
+@@ -525,6 +525,8 @@
+ 
+ bool CSiteManager::GetBookmarks(wxString sitePath, std::list<wxString> &bookmarks)
+ {
++	if (sitePath.IsEmpty())
++		return false;
+ 	wxChar c = sitePath[0];
+ 	if (c != '0' && c != '1')
+ 		return false;
+--- a/src/interface/statusbar.cpp
++++ b/src/interface/statusbar.cpp
+@@ -153,10 +153,10 @@
+ void wxStatusBarEx::SetStatusText(const wxString& text, int number /*=0*/)
+ {
+ 	// Basically identical to the wx one, but not calling Update
+-	wxString oldText = m_statusStrings[number];
++	wxString oldText = GetStatusText(number);
+ 	if (oldText != text)
+ 	{
+-		m_statusStrings[number] = text;
++		wxStatusBar::SetStatusText(text, number);
+ 
+ 		wxRect rect;
+ 		GetFieldRect(number, rect);
+--- a/src/interface/timeformatting.cpp
++++ b/src/interface/timeformatting.cpp
+@@ -23,7 +23,7 @@
+ 
+ 		if (dateFormat == _T("1"))
+ 			m_dateFormat = _T("%Y-%m-%d");
+-		else if (dateFormat[0] == '2')
++		else if (!dateFormat.IsEmpty() && dateFormat[0] == '2')
+ 			m_dateFormat = dateFormat.Mid(1);
+ 		else
+ 			m_dateFormat = _T("%x");
+@@ -33,7 +33,7 @@
+ 
+ 		if (timeFormat == _T("1"))
+ 			m_dateTimeFormat += _T("%H:%M");
+-		else if (timeFormat[0] == '2')
++		else if (!timeFormat.IsEmpty() && timeFormat[0] == '2')
+ 			m_dateTimeFormat += timeFormat.Mid(1);
+ 		else
+ 			m_dateTimeFormat += _T("%X");
+--- a/src/interface/viewheader.cpp
++++ b/src/interface/viewheader.cpp
+@@ -24,7 +24,11 @@
+ {
+ public:
+ 	CComboBoxEx(CViewHeader* parent)
+-		: wxComboBox(parent, wxID_ANY, _T(""), wxDefaultPosition, wxDefaultSize, wxArrayString(), wxCB_DROPDOWN | wxTE_PROCESS_ENTER | wxCB_SORT)
++		: wxComboBox(parent, wxID_ANY, _T(""), wxDefaultPosition, wxDefaultSize, wxArrayString(), wxCB_DROPDOWN | wxTE_PROCESS_ENTER
++#if !defined(__WXMAC__) || !wxCHECK_VERSION(2, 9, 0)
++            | wxCB_SORT
++#endif
++    )
+ 	{
+ 		m_parent = parent;
+ 	}
+@@ -67,7 +71,7 @@
+ 		navEvent.SetDirection(!event.ShiftDown());
+ 		navEvent.SetFromTab(true);
+ 		navEvent.ResumePropagation(1);
+-		m_parent->ProcessEvent(navEvent);
++		m_parent->GetEventHandler()->ProcessEvent(navEvent);
+ 	}
+ 
+ 	void OnChar(wxKeyEvent& event)
+--- a/src/interface/wrapengine.cpp
++++ b/src/interface/wrapengine.cpp
+@@ -232,24 +232,24 @@
+ 	bool containsURL = false;
+ 	for (int i = 0; i <= strLen; i++)
+ 	{
+-		if ((text[i] == ':' && text[i + 1] == '/' && text[i + 2] == '/') || // absolute
+-			(text[i] == '/' && (!i || text[i - 1] == ' '))) // relative
++		if ((i < strLen - 2 && text[i] == ':' && text[i + 1] == '/' && text[i + 2] == '/') || // absolute
++			(i < strLen && text[i] == '/' && (!i || text[i - 1] == ' '))) // relative
+ 		{
+ 			url = true;
+ 			containsURL = true;
+ 		}
+-		if (text[i] != ' ' && text[i] != 0)
++		if (i < strLen && text[i] != ' ')
+ 		{
+ 			// If url, wrap on slashes and ampersands, but not first slash of something://
+ 			if (!url ||
+-				 ((text[i] != '/' || text[i + 1] == '/') && (text[i] != '&' || text[i + 1] == '&') && text[i] != '?'))
++				 ((i < strLen - 1 && (text[i] != '/' || text[i + 1] == '/')) && (i < strLen - 1 && (text[i] != '&' || text[i + 1] == '&')) && text[i] != '?'))
+ 			continue;
+ 		}
+ 
+ 		wxString segment;
+ 		if (wrapAfter == -1)
+ 		{
+-			if (text[i] == '/' || text[i] == '?' || text[i] == '&')
++			if (i < strLen && (text[i] == '/' || text[i] == '?' || text[i] == '&'))
+ 				segment = text.Mid(start, i - start + 1);
+ 			else
+ 				segment = text.Mid(start, i - start);
+@@ -257,7 +257,7 @@
+ 		}
+ 		else
+ 		{
+-			if (text[i] == '/' || text[i] == '?' || text[i] == '&')
++			if (i < strLen && (text[i] == '/' || text[i] == '?' || text[i] == '&'))
+ 				segment = text.Mid(wrapAfter + 1, i - wrapAfter);
+ 			else
+ 				segment = text.Mid(wrapAfter + 1, i - wrapAfter - 1);
+@@ -272,7 +272,7 @@
+ 			if (wrappedText != _T(""))
+ 				wrappedText += _T("\n");
+ 			wrappedText += text.Mid(start, wrapAfter - start);
+-			if (text[wrapAfter] != ' ' && text[wrapAfter] != '\0')
++			if (wrapAfter < strLen && text[wrapAfter] != ' ' && text[wrapAfter] != '\0')
+ 				wrappedText += text[wrapAfter];
+ 
+ 			if (width + spaceWidth >= (int)maxLength)
+@@ -302,7 +302,7 @@
+ 			if (wrappedText != _T(""))
+ 				wrappedText += _T("\n");
+ 			wrappedText += text.Mid(start, i - start);
+-			if (text[i] != ' ' && text[i] != '\0')
++			if (i < strLen && text[i] != ' ' && text[i] != '\0')
+ 				wrappedText += text[i];
+ 			start = i + 1;
+ 			wrapAfter = -1;
+@@ -316,7 +316,7 @@
+ 			wrapAfter = i;
+ 		}
+ 
+-		if (text[i] == ' ')
++		if (i < strLen && text[i] == ' ')
+ 			url = false;
+ 	}
+ 	if (start < strLen)
+--- a/src/engine/httpcontrolsocket.cpp
++++ b/src/engine/httpcontrolsocket.cpp
+@@ -424,7 +424,7 @@
+ 	}
+ 
+ 	if( !m_current_uri.HasScheme() || !m_current_uri.HasServer() || !m_current_uri.HasPath() ) {
+-		LogMessage(__TFILE__, __LINE__, this, Debug_Warning, _T("Invalid URI: %s"), m_current_uri.BuildURI().c_str());
++		LogMessage(__TFILE__, __LINE__, this, Debug_Warning, _T("Invalid URI: %s"), (const wxChar *)m_current_uri.BuildURI().c_str());
+ 		ResetOperation(FZ_REPLY_INTERNALERROR);
+ 		return FZ_REPLY_ERROR;
+ 	}
+--- a/src/interface/update_dialog.cpp
++++ b/src/interface/update_dialog.cpp
+@@ -8,6 +8,7 @@
+ #include "update_dialog.h"
+ #include "themeprovider.h"
+ 
++#include <wx/animate.h>
+ #include <wx/hyperlink.h>
+ 
+ BEGIN_EVENT_TABLE(CUpdateDialog, wxDialogEx)
+@@ -215,7 +216,7 @@
+ #else
+ 	bool program_exists = false;
+ 	wxString cmd = GetSystemOpenCommand(f, program_exists);
+-	if( program_exists && cmd ) {
++	if( program_exists && !cmd.empty() ) {
+ 		if (wxExecute(cmd))
+ 			return;
+ 	}
+--- a/m4/wxwin.m4
++++ b/m4/wxwin.m4
+@@ -145,7 +145,7 @@
+       AC_MSG_CHECKING([for wxWidgets version >= $min_wx_version ($5)])
+     fi
+ 
+-    WX_CONFIG_WITH_ARGS="$WX_CONFIG_PATH $wx_config_args $5 $4"
++    WX_CONFIG_WITH_ARGS="$WX_CONFIG_PATH $wx_config_args $5"
+ 
+     WX_VERSION=`$WX_CONFIG_WITH_ARGS --version 2>/dev/null`
+     wx_config_major_version=`echo $WX_VERSION | \
+@@ -169,14 +169,14 @@
+     if test -n "$wx_ver_ok"; then
+ 
+       AC_MSG_RESULT(yes (version $WX_VERSION))
+-      WX_LIBS=`$WX_CONFIG_WITH_ARGS --libs`
++      WX_LIBS=`$WX_CONFIG_WITH_ARGS --libs $4`
+ 
+       dnl is this even still appropriate?  --static is a real option now
+       dnl and WX_CONFIG_WITH_ARGS is likely to contain it if that is
+       dnl what the user actually wants, making this redundant at best.
+       dnl For now keep it in case anyone actually used it in the past.
+       AC_MSG_CHECKING([for wxWidgets static library])
+-      WX_LIBS_STATIC=`$WX_CONFIG_WITH_ARGS --static --libs 2>/dev/null`
++      WX_LIBS_STATIC=`$WX_CONFIG_WITH_ARGS --static --libs $4 2>/dev/null`
+       if test "x$WX_LIBS_STATIC" = "x"; then
+         AC_MSG_RESULT(no)
+       else
diff -Nru filezilla-3.8.0/debian/patches/series filezilla-3.8.0/debian/patches/series
--- filezilla-3.8.0/debian/patches/series	2014-04-29 14:35:05.000000000 +1200
+++ filezilla-3.8.0/debian/patches/series	2014-05-23 16:29:53.000000000 +1200
@@ -1 +1,2 @@
 01_remove-xdg-check.patch
+02_wx3.0-compat.patch

--- End Message ---
--- Begin Message ---
Source: filezilla
Source-Version: 3.9.0.1-0.1

We believe that the bug you reported is fixed in the latest version of
filezilla, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 749...@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Gianfranco Costamagna <costamagnagianfra...@yahoo.it> (supplier of updated 
filezilla package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmas...@ftp-master.debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.8
Date: Wed, 23 Jul 2014 17:08:21 +0200
Source: filezilla
Binary: filezilla filezilla-common
Architecture: source amd64 all
Version: 3.9.0.1-0.1
Distribution: unstable
Urgency: medium
Maintainer: Adrien Cunin <adri2...@ubuntu.com>
Changed-By: Gianfranco Costamagna <costamagnagianfra...@yahoo.it>
Description:
 filezilla  - Full-featured graphical FTP/FTPS/SFTP client
 filezilla-common - Architecture independent files for filezilla
Closes: 749128
Changes:
 filezilla (3.9.0.1-0.1) unstable; urgency=medium
 .
   * Non-maintainer upload.
   * New upstream release (Closes: #749128)
   * Switch to gnutls28-dev, required by configure script.
   * Drop 02_wx3.0-compat.patch.
Checksums-Sha1:
 f93ae42d8a9a5d937b8e81761d7e43b8ad10e5c8 2122 filezilla_3.9.0.1-0.1.dsc
 b9b798c9fa6043970888ab93e5b236ae718bf6e6 4170813 filezilla_3.9.0.1.orig.tar.bz2
 c54345ab548636a4d6b3c9b71f5888b2632dca45 7964 
filezilla_3.9.0.1-0.1.debian.tar.xz
 a26465fb76aa065957d8536a4222cf3ff2cfba4e 1360200 
filezilla_3.9.0.1-0.1_amd64.deb
 d256169b7c42047b402b77e372463f07902af832 1883298 
filezilla-common_3.9.0.1-0.1_all.deb
Checksums-Sha256:
 0d5bf2b80fab66ee0f8ab50f536690af509506166fdbda136ade5dc53ed747b9 2122 
filezilla_3.9.0.1-0.1.dsc
 3333927474cc5c39a912f9dbce283523264832f1714cad92c49acc7cc4803d56 4170813 
filezilla_3.9.0.1.orig.tar.bz2
 d1baa125f562458be98944556c79d3d323f7c8b52fa68d15271e9c86af908b65 7964 
filezilla_3.9.0.1-0.1.debian.tar.xz
 e7db9cc8602d8c07bd6c055c98d4abdca3b5f8dbe4ff7d779b31aac201cdedb5 1360200 
filezilla_3.9.0.1-0.1_amd64.deb
 dd8582259d393db660ebf8e1fcb2bf9cd13bc2a36f2be306c1cc0afada12b225 1883298 
filezilla-common_3.9.0.1-0.1_all.deb
Files:
 49fdcfbae12151c737c3bbf06905b174 1360200 net optional 
filezilla_3.9.0.1-0.1_amd64.deb
 603e282494079171b05228fc5cc868de 1883298 net optional 
filezilla-common_3.9.0.1-0.1_all.deb
 f31928264ee116beb4a29413b38e8661 2122 net optional filezilla_3.9.0.1-0.1.dsc
 bfea3d4d451803f45855b64e1a95ddcb 4170813 net optional 
filezilla_3.9.0.1.orig.tar.bz2
 5fb2ee085a87c07a973be27e1b629b8f 7964 net optional 
filezilla_3.9.0.1-0.1.debian.tar.xz

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQIcBAEBAgAGBQJT0X76AAoJEBgUewc7rSsH3sQQAMH6mwm0X3LA8Y2Chjuzey4x
GTlUOVW3fTeTOu3caPwFRhYSBIgvhKa1KN/F0H7q29S3ogQju0APpWDU3k+e8/jx
EcwtSKt1XsFTFoOPH1MvQmrWU92ZD2hnel4GUknxGLBAStU+Xo5bkYM3b454ZjEK
rQNL+1+rXmdX0SoOSiygqSvmtmfdOyvX2a8fE0AMuP1jKO3T3YSt+K/ND/TVSno8
BDitY/v4pV95jIUDsbUSsParYEAUJy175sZut73v7c9N2YDiPIw85M/KJsfBX1nd
0lRuTz8ux2aCRIYl2JSb8p1J8ROW6QLL/4RJ4ZwQUpniA9XLySyMCNuVVyYliTVK
xtojvMlWJ9XjfmvwHHYL1hyKemSqBm/U9iJN5K0WBaPatWcq3H4Hf7z1sE+OQQe+
UnYVanK78L4z/jDFVh8UOZ7MzNNV7iAu8Pz54lykoT3AmybI2Etk9DzeS2Ojtct0
TsXGVcFP0pcLg+zCjq1QZD6h8ixXJtTsoxjbVSpYph8UR4V6mDTmRp1c91+2JC+1
qnBawgIhMQNT8ed7mw2NQnpQc55dTjxFoYAAE53pi+OmBUiATf9pYdrTe685rcDh
vmxaljyXK42szH4NHDgXnj4cyzFh88NxtTm0qMf+6JahuQbzcAS9DoGPLwr9uT/b
TGRjN9v8/2/jRXZMFmgV
=XC6U
-----END PGP SIGNATURE-----

--- End Message ---

Reply via email to