From 053c2d0057d9b69463ae9d871a17e1d2283570cd Mon Sep 17 00:00:00 2001 From: Rex Dieter Date: Wed, 20 Jun 2012 11:23:36 -0500 Subject: [PATCH 1/4] Parsing token page failed (kde#301240) --- akonadi-google-auth_token.patch | 25 +++++++++++++++++++++++++ akonadi-google.spec | 19 ++++++++++++++----- 2 files changed, 39 insertions(+), 5 deletions(-) create mode 100644 akonadi-google-auth_token.patch diff --git a/akonadi-google-auth_token.patch b/akonadi-google-auth_token.patch new file mode 100644 index 0000000..313f684 --- /dev/null +++ b/akonadi-google-auth_token.patch @@ -0,0 +1,25 @@ +diff -up akonadi-google/libkgoogle/authdialog.cpp.auth_token akonadi-google/libkgoogle/authdialog.cpp +--- akonadi-google/libkgoogle/authdialog.cpp.auth_token 2012-04-27 08:19:17.000000000 -0500 ++++ akonadi-google/libkgoogle/authdialog.cpp 2012-06-20 11:19:59.436455525 -0500 +@@ -102,13 +102,18 @@ void AuthDialog::webviewFinished() + } + + if (url.host() == "accounts.google.com" && url.path() == "/o/oauth2/approval") { +- QWebElement el = m_webiew->page()->mainFrame()->findFirstElement("textarea"); +- if (el.isNull()) { ++ QString title = webview->title(); ++ QString token; ++ ++ if (title.startsWith(QLatin1String("success"), Qt::CaseInsensitive)) { ++ int pos = title.indexOf(QLatin1String("code=")); ++ /* Skip the 'code=' string as well */ ++ token = title.mid (pos + 5); ++ } else { + emitError(KGoogle::AuthError, i18n("Parsing token page failed.")); + return; + } + +- QString token = el.toInnerXml(); + if (token.isEmpty()) { + emitError(KGoogle::AuthError, i18n("Failed to obtain token.")); + return; diff --git a/akonadi-google.spec b/akonadi-google.spec index cd299ef..268a8dc 100644 --- a/akonadi-google.spec +++ b/akonadi-google.spec @@ -1,6 +1,6 @@ Name: akonadi-google Version: 0.3.1 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Akonadi Resources for accessing Google services License: GPLv3 @@ -16,6 +16,10 @@ URL: http://projects.kde.org/akonadi-google # master Source0: akonadi-google-0.3.1.tar.gz +## backported upstream patches +# https://projects.kde.org/projects/kdereview/libkgoogle/repository/revisions/5c92e2fb5ced528a20fd1d8723fd7a8d7ba686a3 +Patch100: akonadi-google-auth_token.patch + BuildRequires: cmake BuildRequires: qt-devel BuildRequires: kdepimlibs-devel @@ -24,7 +28,7 @@ BuildRequires: akonadi-devel BuildRequires: qjson-devel BuildRequires: libxslt-devel -Requires: libkgoogle = %{version}-%{release} +Requires: libkgoogle%{?_isa} = %{version}-%{release} Requires: %{name}-calendar = %{version}-%{release} Requires: %{name}-contacts = %{version}-%{release} @@ -44,13 +48,13 @@ Group: System Environment/Libraries %package -n libkgoogle-devel Summary: Development files for %{name} Group: Development/Libraries -Requires: libkgoogle = %{version}-%{release} +Requires: libkgoogle%{?_isa} = %{version}-%{release} %description -n libkgoogle-devel Libraries and header files for developing applications that use %{name}. %package calendar Summary: Akonadi resource for Google Calendar and Tasks -Requires: libkgoogle = %{version}-%{release} +Requires: libkgoogle%{?_isa} = %{version}-%{release} Obsoletes: akonadi-google-tasks < 0.3 Provides: akonadi-google-tasks = %{version}-%{release} %description calendar @@ -58,13 +62,15 @@ Provides: akonadi-google-tasks = %{version}-%{release} %package contacts Summary: Akonadi resource for Google Contacts -Requires: libkgoogle = %{version}-%{release} +Requires: libkgoogle%{?_isa} = %{version}-%{release} %description contacts %{summary}. %prep %setup -q -n %{name} +%patch100 -p1 -b .auth_token + %build mkdir -p %{_target_platform} pushd %{_target_platform} @@ -104,6 +110,9 @@ make install/fast DESTDIR=%{buildroot} -C %{_target_platform} %{_datadir}/akonadi/agents/googlecontactsresource.desktop %changelog +* Wed Jun 20 2012 Rex Dieter 0.3.1-2 +- Parsing token page failed (kde#301240) + * Mon Apr 30 2012 Mario Santagiuliana 0.3.1-1 - New version 0.3.1 From 5f8d35cdca91694da1bb0a5bf3fdd064ea4fd599 Mon Sep 17 00:00:00 2001 From: Rex Dieter Date: Wed, 20 Jun 2012 11:25:06 -0500 Subject: [PATCH 2/4] Package is retired --- .gitignore | 5 -- akonadi-google.spec | 133 -------------------------------------------- dead.package | 1 + sources | 1 - 4 files changed, 1 insertion(+), 139 deletions(-) delete mode 100644 .gitignore delete mode 100644 akonadi-google.spec create mode 100644 dead.package delete mode 100644 sources diff --git a/.gitignore b/.gitignore deleted file mode 100644 index d9f5f03..0000000 --- a/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -/akonadi-google-0.2-git11bf6ad.tar.gz -/akonadi-google-0.2-gitbe021c6.tar.gz -/akonadi-google-0.2-git41cd7c5.tar.gz -/akonadi-google-0.3-git3e0a93e.tar.gz -/akonadi-google-0.3.1.tar.gz diff --git a/akonadi-google.spec b/akonadi-google.spec deleted file mode 100644 index cd299ef..0000000 --- a/akonadi-google.spec +++ /dev/null @@ -1,133 +0,0 @@ -Name: akonadi-google -Version: 0.3.1 -Release: 1%{?dist} -Summary: Akonadi Resources for accessing Google services - -License: GPLv3 -URL: http://projects.kde.org/akonadi-google - -# Package from git snapshots, create example: -# git clone git://anongit.kde.org/akonadi-google -# cd akonadi-google -# git archive \\ -# --format=tar.gz \\ -# --prefix=akonadi-google/ \\ -# -o ../akonadi-google-0.2-git754771b.tar.gz \\ -# master -Source0: akonadi-google-0.3.1.tar.gz - -BuildRequires: cmake -BuildRequires: qt-devel -BuildRequires: kdepimlibs-devel -BuildRequires: kdelibs-devel -BuildRequires: akonadi-devel -BuildRequires: qjson-devel -BuildRequires: libxslt-devel - -Requires: libkgoogle = %{version}-%{release} -Requires: %{name}-calendar = %{version}-%{release} -Requires: %{name}-contacts = %{version}-%{release} - -%{?_kde4_macros_api:Requires: kde4-macros(api) = %{_kde4_macros_api} } - -%description -Akonadi Resources for accessing Google services, like Google Calendar, Google -Tasks and Google Contacts. - - -%package -n libkgoogle -Summary: Library to access to Google services -Group: System Environment/Libraries -%description -n libkgoogle -%{summary}. - -%package -n libkgoogle-devel -Summary: Development files for %{name} -Group: Development/Libraries -Requires: libkgoogle = %{version}-%{release} -%description -n libkgoogle-devel -Libraries and header files for developing applications that use %{name}. - -%package calendar -Summary: Akonadi resource for Google Calendar and Tasks -Requires: libkgoogle = %{version}-%{release} -Obsoletes: akonadi-google-tasks < 0.3 -Provides: akonadi-google-tasks = %{version}-%{release} -%description calendar -%{summary}. - -%package contacts -Summary: Akonadi resource for Google Contacts -Requires: libkgoogle = %{version}-%{release} -%description contacts -%{summary}. - -%prep -%setup -q -n %{name} - -%build -mkdir -p %{_target_platform} -pushd %{_target_platform} -%{cmake_kde4} .. -popd - -make %{?_smp_mflags} -C %{_target_platform} - - -%install -rm -rf %{buildroot} -make install/fast DESTDIR=%{buildroot} -C %{_target_platform} - - -%post -n libkgoogle -p /sbin/ldconfig - -%postun -n libkgoogle -p /sbin/ldconfig - -%files - -%files -n libkgoogle -%doc README TODO CHANGELOG LICENSE -%{_libdir}/libkgoogle.so.0* - -%files -n libkgoogle-devel -%{_kde4_includedir}/libkgoogle/* -%{_libdir}/pkgconfig/*.pc -%{_libdir}/*.so -%{_datadir}/kde4/apps/cmake/modules/FindLibKGoogle.cmake - -%files calendar -%{_bindir}/akonadi_googlecalendar* -%{_datadir}/akonadi/agents/googlecalendarresource.desktop - -%files contacts -%{_bindir}/akonadi_googlecontacts* -%{_datadir}/akonadi/agents/googlecontactsresource.desktop - -%changelog -* Mon Apr 30 2012 Mario Santagiuliana 0.3.1-1 -- New version 0.3.1 - -* Thu Apr 01 2012 Mario Santagiuliana 0.3-1.20120402git3e0a93e -- New version 0.3 -- Update to git snapshot 3e0a93e1b24cd7b6e394cf76d153c428246f9fa9 -- Obsolete akonadi-google-tasks -- Fix error in changelog - -* Thu Mar 01 2012 Mario Santagiuliana 0.2-12.20120301git41cd7c5 -- Update to git snapshot 41cd7c5d6e9cfb62875fd21f8a920a235b7a7d9c - -* Wed Jan 20 2012 Mario Santagiuliana 0.2-11.20120121gitbe021c6 -- Update to git snapshot be021c6f12e6804976dcac203a1864686a219c26 - -* Wed Jan 20 2012 Mario Santagiuliana 0.2-10.20120120git11bf6ad -- Update spec file follow comment 1: -https://bugzilla.redhat.com/show_bug.cgi?id=783317#c1 -- Update to git snapshot 11bf6ad40dd93eda1f880a99d592009ea3ff47ac -- Include LICENSE - -* Thu Jan 19 2012 Mario Santagiuliana 0.2-9.20120119git754771b -- Create spec file for Fedora Review -- Source package create from git snapshot 754771b6081b194aedf750fac76a9af2709a5de3 - -* Wed Nov 16 2011 Dan Vratil 0.2-8.1 -- Initial SPEC diff --git a/dead.package b/dead.package new file mode 100644 index 0000000..0f98991 --- /dev/null +++ b/dead.package @@ -0,0 +1 @@ +Package is retired diff --git a/sources b/sources deleted file mode 100644 index a5377e4..0000000 --- a/sources +++ /dev/null @@ -1 +0,0 @@ -917129191be3c4497afca33a877c12f3 akonadi-google-0.3.1.tar.gz From da362955b055de1beb14a47a19ab7551f9d2d2d9 Mon Sep 17 00:00:00 2001 From: Rex Dieter Date: Wed, 20 Jun 2012 11:25:51 -0500 Subject: [PATCH 3/4] mention who Obsoletes --- dead.package | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dead.package b/dead.package index 0f98991..2b09524 100644 --- a/dead.package +++ b/dead.package @@ -1 +1,3 @@ Package is retired + +Obsoleted by libkgapi and kdepim-runtime >= 4.8.80+ From 56fd9c057df0870b9574395fb58f84d6321734aa Mon Sep 17 00:00:00 2001 From: Rex Dieter Date: Wed, 20 Jun 2012 11:46:05 -0500 Subject: [PATCH 4/4] fix/rebase patch --- akonadi-google-auth_token.patch | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/akonadi-google-auth_token.patch b/akonadi-google-auth_token.patch index 313f684..e6e503a 100644 --- a/akonadi-google-auth_token.patch +++ b/akonadi-google-auth_token.patch @@ -1,13 +1,13 @@ diff -up akonadi-google/libkgoogle/authdialog.cpp.auth_token akonadi-google/libkgoogle/authdialog.cpp --- akonadi-google/libkgoogle/authdialog.cpp.auth_token 2012-04-27 08:19:17.000000000 -0500 -+++ akonadi-google/libkgoogle/authdialog.cpp 2012-06-20 11:19:59.436455525 -0500 ++++ akonadi-google/libkgoogle/authdialog.cpp 2012-06-20 11:44:03.179406253 -0500 @@ -102,13 +102,18 @@ void AuthDialog::webviewFinished() } if (url.host() == "accounts.google.com" && url.path() == "/o/oauth2/approval") { - QWebElement el = m_webiew->page()->mainFrame()->findFirstElement("textarea"); - if (el.isNull()) { -+ QString title = webview->title(); ++ QString title = m_webiew->title(); + QString token; + + if (title.startsWith(QLatin1String("success"), Qt::CaseInsensitive)) {