]> Pileus Git - ~andy/sunrise/commitdiff
net-mail/checkgmail: Fixed login procedure for checkgmail-1.13
authorGrygoriy Fuchedzhy (gry) <grygoriy.fuchedzhy@gmail.com>
Wed, 26 Aug 2009 00:49:43 +0000 (00:49 +0000)
committerGrygoriy Fuchedzhy (gry) <grygoriy.fuchedzhy@gmail.com>
Wed, 26 Aug 2009 00:49:43 +0000 (00:49 +0000)
svn path=/sunrise/; revision=9119

net-mail/checkgmail/ChangeLog
net-mail/checkgmail/Manifest
net-mail/checkgmail/checkgmail-1.13-r1.ebuild [new file with mode: 0644]
net-mail/checkgmail/checkgmail-1.13.ebuild [deleted file]
net-mail/checkgmail/files/gmail-login-procedure-fix.patch [new file with mode: 0644]

index bd8b76cd66046c7ba1322cd685f21de079dd8c25..62b9223065eb17cc749d62db6a98b3cd8ed72be2 100644 (file)
@@ -2,6 +2,11 @@
 # Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
 # $Header: $
 
+  26 Aug 2009; Grygoriy Fuchedzhy (gry) <grygoriy.fuchedzhy@gmail.com>
+  -checkgmail-1.13.ebuild, +checkgmail-1.13-r1.ebuild,
+  +files/gmail-login-procedure-fix.patch:
+  Fixed login procedure for checkgmail-1.13
+
   16 Mar 2009; Nick Fortino (nfortino) <nfortino@gmail.com>
   checkgmail-1.13.ebuild:
   Update ebuild to use EAPI 2. Thanks to Cristian Ruppert and Thomas Sachau
index 1262579c11da1a5e47cf6e798674dd5517699b50..4c03ca01a745547f40aa014d98f4a02ce3abcd0e 100644 (file)
@@ -1,4 +1,5 @@
+AUX gmail-login-procedure-fix.patch 2366 RMD160 bc338296771e1e7a81af6a2af3432dbdaeae50fc SHA1 5d78f9001574a7360c4a4175de67d6604b337253 SHA256 c91c1006494e58b1feefa5f74824f7ebdd4094ace516460fd97c4c9b131fc528
 DIST checkgmail-1.13.tar.bz2 58388 RMD160 f3a89ca6cde0499a70e14e91e988e20f0064d911 SHA1 d4b928838746975608803a79c258872b0dc8ccf9 SHA256 af191b34fd70748b050cdd233d3153e0cc5a334a72fc9a46519bbbecdb295e5d
-EBUILD checkgmail-1.13.ebuild 807 RMD160 46ef398fff6a2abdc675609cfdc4d826677d350a SHA1 41e7756ae0ea2b17ffd48a59e8d8d2a1ed7135fc SHA256 4b4ea72f42b4b2443a5acfc973b613f692968a5d697b9184770795b910aa9054
-MISC ChangeLog 1234 RMD160 df6aac9b9a2ba1e915fe75f399dcd37962890756 SHA1 5a4d85160ba62cbf78d10eaff2446c0e0c17e9f0 SHA256 79188f51a509b09fa3a76b909af043ad72778377e2933f6464e7ad32f7320d3d
+EBUILD checkgmail-1.13-r1.ebuild 878 RMD160 12c144e969a0db35c8094f0599339ae9d3d6d4c6 SHA1 b96de82ed4e09149e1734c561f9c2dd1a1c52251 SHA256 73563574c60690be7c1ef59fcdd179685d62a863164a883f1a55c415d08d429e
+MISC ChangeLog 1447 RMD160 3c9c728bc010e237f1be0e5d167cc642bc61dd33 SHA1 95005196ca8077e96b1ea4d2720904d409c8af8a SHA256 23ecb8dfbab37a1167038a737282e389c6abaf6e5e12a0deeca5e7b34d3cbcba
 MISC metadata.xml 360 RMD160 6f4fd23e788f691588791d7e2b726fe59f86420a SHA1 6166a60c03586fe2773a26b568d611230b0c0f6d SHA256 6367f0aa6816883df52d1e5295013da9d263cdb385310ccef4d83771323dcb6a
diff --git a/net-mail/checkgmail/checkgmail-1.13-r1.ebuild b/net-mail/checkgmail/checkgmail-1.13-r1.ebuild
new file mode 100644 (file)
index 0000000..2f16a81
--- /dev/null
@@ -0,0 +1,36 @@
+# Copyright 1999-2009 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI="2"
+
+inherit eutils
+
+DESCRIPTION="a Gmail Notifier for Linux"
+HOMEPAGE="http://checkgmail.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="clickurl savepwd"
+
+RDEPEND="dev-lang/perl[ithreads]
+       dev-perl/gtk2-perl
+       dev-perl/gtk2-trayicon
+       dev-perl/libwww-perl
+       dev-perl/Crypt-SSLeay
+       dev-perl/XML-Simple
+        clickurl? ( dev-perl/Gtk2-Sexy )
+       savepwd? ( dev-perl/Crypt-Simple )"
+
+src_prepare() {
+       # This patch combines changes from svn revisions r30, r33 and r36
+       epatch "${FILESDIR}"/gmail-login-procedure-fix.patch
+}
+
+src_install() {
+       dobin checkgmail || die "dobin failed"
+       dodoc ChangeLog Readme todo || die "dodoc failed"
+       doman man/checkgmail.1.gz || die "doman failed"
+}
diff --git a/net-mail/checkgmail/checkgmail-1.13.ebuild b/net-mail/checkgmail/checkgmail-1.13.ebuild
deleted file mode 100644 (file)
index 0320470..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright 1999-2009 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-EAPI="2"
-
-inherit eutils
-
-DESCRIPTION="a Gmail Notifier for Linux"
-HOMEPAGE="http://checkgmail.sourceforge.net/"
-SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="clickurl savepwd"
-
-DEPEND="dev-lang/perl[ithreads]
-       >=dev-perl/gtk2-perl-1.100
-       >=dev-perl/gtk2-trayicon-0.03
-       >=dev-perl/libwww-perl-5.800
-       >=dev-perl/Crypt-SSLeay-0.49
-       >=dev-perl/XML-Simple-2.12
-       >=x11-libs/gtk+-2.6
-       clickurl? ( >=x11-libs/libsexy-0.1.11
-                       >=dev-perl/Gtk2-Sexy-0.02 )
-       savepwd? ( >=dev-perl/Crypt-Simple-0.06 )"
-RDEPEND="${DEPEND}"
-
-src_install() {
-       dobin checkgmail || die "dobin failed"
-       dodoc ChangeLog Readme todo
-       doman man/checkgmail.1.gz
-}
diff --git a/net-mail/checkgmail/files/gmail-login-procedure-fix.patch b/net-mail/checkgmail/files/gmail-login-procedure-fix.patch
new file mode 100644 (file)
index 0000000..e1ef978
--- /dev/null
@@ -0,0 +1,47 @@
+diff -dupr checkgmail-1.13.orig/checkgmail checkgmail-1.13/checkgmail
+--- checkgmail-1.13.orig/checkgmail    2009-08-25 23:48:18.615575505 +0200
++++ checkgmail-1.13/checkgmail 2009-08-26 00:13:05.535569237 +0200
+@@ -682,6 +682,7 @@ sub http_check {
+               
+       # set up the useragent ....
+       $ua = LWP::UserAgent->new();
++      $ua->requests_redirectable (['GET', 'HEAD', 'POST']);
+       
+       # set time-out - defaults to 90 seconds or $delay, whichever is shorter
+       $ua->timeout($delay/1000<90 ? $delay/1000 : 90);        
+@@ -716,14 +717,21 @@ sub http_check {
+                       unless ($hosted) {
+                               # Normal Gmail login action ...
+                               $error = http_get("https://www.google.com/accounts/ServiceLoginAuth?ltmpl=yj_wsad&ltmplcache=2&continue=https%3A%2F%2Fmail.google.com%2Fmail%3F&service=mail&rm=false&ltmpl=yj_wsad&Email=$URI_user&Passwd=$URI_passwd&rmShown=1&null=Sign+in", "LOGIN");
+-                              # $cookie_jar->scan(\&scan_at);
++
++                              $cookie_jar->scan(\&scan_at);
++                              unless ($error || !$gmail_sid || !$gmail_gausr) {
++                                      $error = http_get("https://mail.google.com/mail/?pli=1&auth=$gmail_sid&gausr=$gmail_gausr", 'LOGIN');
++                              }
++
+                               # $error = http_get("https://mail.google.com/mail?nsr=0&auth=$gmail_sid&gausr=$gmail_gausr", "LOGIN");
+       
+                       } else {
+                               # hosted domains work differently ...
+                               # First we POST a login
+-                              $error = http_get("https://www.google.com/a/$hosted/LoginAction|at=null&continue=http%3A%2F%2Fmail.google.com%2Fa%2F$hosted&service=mail&userName=$URI_user&password=$URI_passwd", "POST");
+-                              
++                              # $error = http_get("https://www.google.com/a/$hosted/LoginAction|at=null&continue=http%3A%2F%2Fmail.google.com%2Fa%2F$hosted&service=mail&userName=$URI_user&password=$URI_passwd", "POST");
++                              # thanks to Olinto Neto for this fix for hosted domains:
++                              $error = http_get("https://www.google.com/a/$hosted/LoginAction2|at=null&continue=http%3A%2F%2Fmail.google.com%2Fa%2F$hosted&service=mail&Email=$URI_user&Passwd=$URI_passwd", "POST");
++
+                               # Then we grab the HID ("Hosted ID"?) cookie
+                               $cookie_jar->scan(\&scan_at);
+                               
+@@ -840,8 +848,10 @@ sub http_get {
+               if ($http =~ m/location\.replace\("(.*)"\)/) {
+                       my $new_addr = $1;
+                       $new_addr =~ s/\\u003d/=/g;
++                      $new_addr =~ s/\\x3d/=/g;
+                       $new_addr =~ s/\\075/=/g;
+                       $new_addr =~ s/\\46/&/g;
++                      $new_addr =~ s/\\x26/&/g;
+                       $new_addr =~ s/\\75/=/g;
+                       return unless $new_addr =~ m/^http/i;
+