From 0f3f5afb945bb13bd02ec8865a8793ec5d9ac8f0 Mon Sep 17 00:00:00 2001 From: Pacho Ramos Date: Sat, 24 Oct 2015 11:21:59 +0200 Subject: dev-vcs/rapidsvn: Support wxGTK:3.0 (#563348) Package-Manager: portage-2.2.23 --- dev-vcs/rapidsvn/files/rapidsvn-0.12.1-wx3.0.patch | 192 +++++++++++++++++++++ dev-vcs/rapidsvn/rapidsvn-0.12.1-r2.ebuild | 126 ++++++++++++++ 2 files changed, 318 insertions(+) create mode 100644 dev-vcs/rapidsvn/files/rapidsvn-0.12.1-wx3.0.patch create mode 100644 dev-vcs/rapidsvn/rapidsvn-0.12.1-r2.ebuild (limited to 'dev-vcs') diff --git a/dev-vcs/rapidsvn/files/rapidsvn-0.12.1-wx3.0.patch b/dev-vcs/rapidsvn/files/rapidsvn-0.12.1-wx3.0.patch new file mode 100644 index 000000000000..2862e30b21fd --- /dev/null +++ b/dev-vcs/rapidsvn/files/rapidsvn-0.12.1-wx3.0.patch @@ -0,0 +1,192 @@ +Description: Update for wx 3.0.0 + Update configure to recognise that wx 3.0.0 >= 2.4.2. + Fix code for wx API changes. +Author: Olly Betts +Origin: debian +Forwarded: no +Last-Update: 2014-04-10 + +--- a/configure.ac ++++ b/configure.ac +@@ -171,6 +171,8 @@ + ;; + [2.[5-9].*]) + ;; ++ 3.*) ++ ;; + *) + AC_MSG_ERROR([wxWidgets >= 2.4.2 required, found version $WX_VERSION]) + AC_MSG_ERROR([Try --with-wx-config.]) +--- a/src/filelist_ctrl.cpp ++++ b/src/filelist_ctrl.cpp +@@ -1029,7 +1029,7 @@ + + // Workaround for issue 324 (only local+non-flat+update): + // we chdir to the requested dir and pass "." to svn +- if (!pathUtf8.isUrl() && m->WithUpdate && !m->FlatMode) ++ if (!pathUtf8.isUrl() && m->WithUpdate && !m->FlatMode && !m->Path.empty()) + { + m->IsRelative = true; + ::wxSetWorkingDirectory(m->Path); +@@ -1606,7 +1606,7 @@ + } + } + +-inline void ++bool + FileListCtrl::SetColumnWidth(const int col, const int width) + { + m->ColumnWidth[col] = width; +@@ -1614,8 +1614,9 @@ + int index = m->ColumnIndex[col]; + if (index != -1) + { +- wxListCtrl::SetColumnWidth(index, width); ++ return wxListCtrl::SetColumnWidth(index, width); + } ++ return false; + } + + int +--- a/src/filelist_ctrl.hpp ++++ b/src/filelist_ctrl.hpp +@@ -118,7 +118,7 @@ + * @param col column number + * @param width + */ +- void ++ bool + SetColumnWidth(const int col, const int width); + + /** +--- a/src/hist_val.cpp ++++ b/src/hist_val.cpp +@@ -113,7 +113,7 @@ + } + + // if we have an entry, select it +- if (!comboBox->IsEmpty()) ++ if (!comboBox->IsListEmpty()) + comboBox->SetSelection(0, 0); + } + +--- a/src/listener.cpp ++++ b/src/listener.cpp +@@ -167,7 +167,7 @@ + wxMutexLocker lock(mutex); + wxString localCertFile = wxFileSelector( + _("Select Certificate File"), wxT(""), wxT(""), wxT(""), +- wxT("*.*"), wxOPEN | wxFILE_MUST_EXIST, parent); ++ wxT("*.*"), wxFD_OPEN | wxFD_FILE_MUST_EXIST, parent); + LocalToUtf8(localCertFile, certFile); + + dataReceived = !localCertFile.empty(); +--- a/src/log_dlg.cpp ++++ b/src/log_dlg.cpp +@@ -211,7 +211,7 @@ + + for (size_t idx = 0; idx < str.Length(); idx++) + { +- switch (str[idx]) ++ switch ((wchar_t)str[idx]) + { + case wxT('\r'): + case wxT('\n'): +--- a/src/preferences_dlg.cpp ++++ b/src/preferences_dlg.cpp +@@ -126,7 +126,7 @@ + PreferencesDlg::SelectExecutable(const wxString & title, wxTextCtrl * textCtrl) + { + wxFileDialog dlg(this, title, wxEmptyString, wxEmptyString, +- EXECUTABLE_WILDCARD, wxOPEN); ++ EXECUTABLE_WILDCARD, wxFD_OPEN); + dlg.SetPath(textCtrl->GetValue()); + + if (dlg.ShowModal() != wxID_OK) +--- a/src/verblist.cpp ++++ b/src/verblist.cpp +@@ -71,7 +71,7 @@ + const wxString & + VerbList::GetName(size_t /*index*/) const + { +- return wxT(""); ++ return wxEmptyString; + } + + +--- a/src/checkout_action.cpp ++++ b/src/checkout_action.cpp +@@ -120,7 +120,8 @@ + pegRevision = svn::Revision(revnum); + } + +- wxSetWorkingDirectory(m_data.DestFolder); ++ if (!m_data.DestFolder.empty()) ++ wxSetWorkingDirectory(m_data.DestFolder); + + svn::Path repUrlUtf8(PathUtf8(m_data.RepUrl)); + svn::Path destFolderUtf8(PathUtf8(dest_folder)); +--- a/src/action.cpp ++++ b/src/action.cpp +@@ -218,7 +218,9 @@ + bool + Action::Prepare() + { +- wxSetWorkingDirectory(Utf8ToLocal(m->path.c_str())); ++ const wxString & dir = Utf8ToLocal(m->path.c_str()); ++ if (!dir.empty()) ++ wxSetWorkingDirectory(dir); + + return true; + } +--- a/src/cleanup_action.cpp ++++ b/src/cleanup_action.cpp +@@ -52,7 +52,9 @@ + svn::Client client(GetContext()); + const svn::Path & path = GetPath(); + +- wxSetWorkingDirectory(Utf8ToLocal(path.c_str())); ++ const wxString & dir = Utf8ToLocal(path.c_str()); ++ if (!dir.empty()) ++ wxSetWorkingDirectory(dir); + client.cleanup(path.c_str()); + + return true; +--- a/src/export_action.cpp ++++ b/src/export_action.cpp +@@ -111,7 +111,8 @@ + pegRevision = svn::Revision(revnum); + } + +- wxSetWorkingDirectory(m_data.DestPath); ++ if (!m_data.DestPath.empty()) ++ wxSetWorkingDirectory(m_data.DestPath); + + svn::Path srcPathUtf8(PathUtf8(m_data.SrcPath)); + svn::Path destPathUtf8(PathUtf8(m_data.DestPath)); +--- a/src/get_action.cpp ++++ b/src/get_action.cpp +@@ -56,7 +56,9 @@ + m_data.revision.revnum()); + Trace(msg); + +- wxSetWorkingDirectory(Utf8ToLocal(GetPath().c_str())); ++ const wxString & dir = Utf8ToLocal(GetPath().c_str()); ++ if (!dir.empty()) ++ wxSetWorkingDirectory(dir); + client.update(svn::Path(LocalToUtf8(m_data.path)), + m_data.revision, + true, false); +--- a/src/update_action.cpp ++++ b/src/update_action.cpp +@@ -75,7 +75,9 @@ + } + } + +- wxSetWorkingDirectory(Utf8ToLocal(GetPath().c_str())); ++ const wxString & dir = Utf8ToLocal(GetPath().c_str()); ++ if (!dir.empty()) ++ wxSetWorkingDirectory(dir); + svn::Client client(GetContext()); + + client.update(GetTargets(), revision, m_data.recursive, diff --git a/dev-vcs/rapidsvn/rapidsvn-0.12.1-r2.ebuild b/dev-vcs/rapidsvn/rapidsvn-0.12.1-r2.ebuild new file mode 100644 index 000000000000..61172ba59fba --- /dev/null +++ b/dev-vcs/rapidsvn/rapidsvn-0.12.1-r2.ebuild @@ -0,0 +1,126 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +PYTHON_COMPAT=( python2_7 ) + +WX_GTK_VER=3.0 + +AUTOTOOLS_AUTORECONF=true + +inherit autotools-utils fdo-mime flag-o-matic python-single-r1 versionator wxwidgets + +MY_PV=$(get_version_component_range 1-2) +MY_REL="1" + +DESCRIPTION="Cross-platform GUI front-end for the Subversion revision system" +HOMEPAGE="http://rapidsvn.tigris.org/" +SRC_URI=" + http://www.rapidsvn.org/download/release/${PV}/${P}.tar.gz + doc? ( https://dev.gentoo.org/~jlec/distfiles/svncpp.dox.xz )" + +LICENSE="GPL-2 LGPL-2.1 FDL-1.2" +SLOT="0" +KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux" +IUSE="doc static-libs" + +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +COMMON_DEP=" + ${PYTHON_DEPS} + dev-libs/apr + dev-libs/apr-util + dev-vcs/subversion + x11-libs/wxGTK:${WX_GTK_VER}[X]" +DEPEND="${COMMON_DEP} + doc? ( + dev-libs/libxslt + app-text/docbook-sgml-utils + app-doc/doxygen + app-text/docbook-xsl-stylesheets + media-gfx/graphviz +)" +RDEPEND="${COMMON_DEP}" + +PATCHES=( + "${FILESDIR}/${P}-svncpp_link.patch" + "${FILESDIR}/${P}-locale.patch" + "${FILESDIR}/${P}-wx3.0.patch" ) + +AUTOTOOLS_IN_SOURCE_BUILD=1 + +DOCS=( HACKING.txt TRANSLATIONS ) + +src_prepare() { + need-wxwidgets unicode + if use doc; then + mv "${WORKDIR}"/svncpp.dox doc/svncpp/ || die + fi + strip-linguas $(grep ^RAPIDSVN_LANGUAGES src/locale/Makefile.am | sed 's:RAPIDSVN_LANGUAGES=::g') + sed \ + -e "/^RAPIDSVN_LANGUAGES/s:=.*:=${LINGUAS}:g" \ + -i src/locale/Makefile.am || die + + mv configure.in configure.ac || die + + autotools-utils_src_prepare +} + +src_configure() { + local myeconfargs=( --with-wx-config=${WX_CONFIG} ) + + if use doc; then + myeconfargs+=( --with-manpage=yes ) + else + myeconfargs+=( + --without-xsltproc + --with-manpage=no + --without-doxygen + --without-dot ) + fi + + append-cppflags $( apr-1-config --cppflags ) + + myeconfargs+=( + --with-svn-lib="${EPREFIX}"/usr/$(get_libdir) + --with-svn-include="${EPREFIX}"/usr/include + --with-apr-config="${EPREFIX}/usr/bin/apr-1-config" + --with-apu-config="${EPREFIX}/usr/bin/apu-1-config" + ) + autotools-utils_src_configure +} + +src_compile() { + autotools-utils_src_compile + use doc && autotools-utils_src_compile -C doc/manpage manpage +} + +src_install() { + autotools-utils_src_install + + doicon src/res/rapidsvn.ico src/res/bitmaps/${PN}*.png + make_desktop_entry rapidsvn "RapidSVN ${PV}" \ + "${EPREFIX}/usr/share/pixmaps/rapidsvn_32x32.png" \ + "RevisionControl;Development" + + if use doc ; then + doman doc/manpage/${PN}.1 + dohtml "${S}"/doc/svncpp/html/* + fi +} + +src_test() { + pushd "${BUILD_DIR}"/src/tests/svncpp > /dev/null || die + emake + ./svncpptest | grep OK || die +} + +pkg_postinst() { + fdo-mime_desktop_database_update +} + +pkg_postrm() { + fdo-mime_desktop_database_update +} -- cgit v1.2.3-65-gdbad