corsair: package takeover, cleaning, patching
authorMarcin Juszkiewicz <hrw@openembedded.org>
Fri, 4 Nov 2005 21:48:42 +0000 (21:48 +0000)
committerOpenEmbedded Project <openembedded-devel@lists.openembedded.org>
Fri, 4 Nov 2005 21:48:42 +0000 (21:48 +0000)
- added corsair-024.patch with bugfixes from 'mastermix'
  details: http://www.oesf.org/forums/index.php?showtopic=14661
- removed two pictures which collide with opie-pics and (R)DEPENDS on it
- cleaned DESCRIPTION

packages/corsair/corsair_0.2.0.bb
packages/corsair/files/corsair-024.patch [new file with mode: 0644]

index 1adcc17..2c5ce53 100644 (file)
@@ -1,16 +1,22 @@
-DESCRIPTION = "corsair: RSS aggregator for Qtopia/OZ"
+DESCRIPTION = "RSS aggregator for Qtopia"
 SECTION = "opie/applications"
-MAINTAINER = "I dont want to have my name here. <corsair@gotontheinter.net>"
+MAINTAINER = "Marcin Juszkiewicz <openembedded@hrw.one.pl>"
 LICENSE = "GPL"
 AUTHOR = "Joe Rumsey <joe@rumsey.org>"
 HOMEPAGE = "http://corsair.sf.net/"
+DEPENDS = "opie-pics"
+RDEPENDS = "opie-pics"
 PV = "0.2.0"
+PR = "r4"
+
 CVSDATE = "20050911"
 #application was released 20050910 - next versions will be released as tarballs
+#corsair-024.patch from 'mistermix' http://www.oesf.org/forums/index.php?showtopic=14661
 
 inherit palmtop
 
 SRC_URI = "cvs://anonymous@cvs.sourceforge.net/cvsroot/corsair;module=corsair \
+           file://corsair-024.patch;patch=1 \
            file://corsair-opie.patch;patch=1"
 
 S = "${WORKDIR}/corsair"
@@ -18,16 +24,12 @@ S = "${WORKDIR}/corsair"
 do_configure() {
 }
 
-# Files: bin/corsair apps/Applications/corsair.desktop pics/Corsair.png
-# pics/newfeed.png pics/get.png pics/reload.png pics/play.png
-
 do_install() {
         install -d ${D}${palmtopdir}/pics/
         install -d ${D}${palmtopdir}/apps/Applications/
         install -d ${D}${palmtopdir}/bin
         install -m 0644 ${S}/Corsair.png ${D}${palmtopdir}/pics/
         install -m 0644 ${S}/corsair.desktop ${D}${palmtopdir}/apps/Applications/
-        install -m 0644 ${S}/icons/newfeed.png ${S}/icons/get.png ${S}/icons/reload.png ${S}/icons/play.png ${D}${palmtopdir}/pics/
+        install -m 0644 ${S}/icons/newfeed.png ${S}/icons/get.png ${D}${palmtopdir}/pics/
         install -m 0755 ${S}/corsair ${D}${palmtopdir}/bin/
 }
-
diff --git a/packages/corsair/files/corsair-024.patch b/packages/corsair/files/corsair-024.patch
new file mode 100644 (file)
index 0000000..9cf160f
--- /dev/null
@@ -0,0 +1,351 @@
+Index: corsair.control
+===================================================================
+RCS file: /cvsroot/corsair/corsair/corsair.control,v
+retrieving revision 1.6
+diff -u -u -r1.6 corsair.control
+--- corsair/corsair.control    10 Sep 2005 20:05:51 -0000      1.6
++++ corsair/corsair.control    31 Oct 2005 20:00:43 -0000
+@@ -1,9 +1,9 @@
+-Files: bin/corsair apps/Applications/corsair.desktop pics/Corsair.png pics/newfeed.png pics/get.png pics/reload.png pics/play.png help/html/corsair.html help/html/corsair_usage.html help/html/corsair_intro.html help/html/gpl.html
++Files: bin/corsair apps/Applications/corsair.desktop pics/Corsair.png pics/newfeed.png pics/get.png pics/reload.png pics/play.png pics/details.png pics/UtilsIcon.png pics/list.png pics/volume.png pics/mute.png pics/fileopen.png pics/txt.xpm help/html/corsair.html help/html/corsair_usage.html help/html/corsair_intro.html help/html/gpl.html
+ Priority: optional
+ Section: qpe/applications
+ Maintainer: Joe Rumsey <corsair@rumsey.org>
+ Architecture: $CPU_ARCH
+ Arch: $DEVICE_ARCH
+-Version: 0.2.0
++Version: 0.2.4
+ License: GPL
+ Description: Corsair RSS/Podcast Aggregator
+Index: corsair.cpp
+===================================================================
+RCS file: /cvsroot/corsair/corsair/corsair.cpp,v
+retrieving revision 1.7
+diff -u -u -r1.7 corsair.cpp
+--- corsair/corsair.cpp        10 Sep 2005 20:05:51 -0000      1.7
++++ corsair/corsair.cpp        31 Oct 2005 20:00:44 -0000
+@@ -35,13 +35,13 @@
+ #include <qmenubar.h>
+ #include <qprogressbar.h>
+ #include <qmessagebox.h>
++#include <qaccel.h>
+ #include <qtopia/resource.h>
+ #include <qtopia/config.h>
+ #include <qtopia/global.h>
+ #include <qtopia/qcopenvelope_qws.h>
+-
+ #include "download.h"
+ #include "info.h"
+@@ -105,11 +105,15 @@
+       QPopupMenu *file = new QPopupMenu(m_menuPopup);
+       file->insertItem("&Load", this, SLOT(loadNewFile()));
+       file->insertItem("E&xit", this, SLOT(close()));
+-
+       QPopupMenu *view = new QPopupMenu(m_menuPopup);
+       view->insertItem("&Downloads", this, SLOT(viewDownloads()));
+       view->insertItem("&Preferences", this, SLOT(preferences()));
++      // bind Zaurus cancel key (escape)  to close
++      QAccel *a = new QAccel( this );        
++      a->connectItem( a->insertItem(Key_Escape), 
++                     this,                  
++                     SLOT(close()) );       
+       QPopupMenu *help = new QPopupMenu(m_menuPopup);
+       help->insertItem("&Help", this, SLOT(help()));
+       help->insertItem("&About", this, SLOT(about()));
+@@ -211,8 +215,10 @@
+               FeedShow *show = m_feeds.GetShow(item);
+               if(show && show->m_haveLocalCopy) {
+                       play(show);
+-              } else {
++              } else if (show && show->m_haveEnclosure) {
+                       grabItem(item);
++              } else {
++                      view(item);
+               }
+       }
+ }
+@@ -637,11 +643,12 @@
+ void CorsairWindow::play(FeedShow *show)
+ {
+       if(show->m_haveLocalCopy) {
+-              QCString player = (const char *)QString("QPE/Application/" + option("audioplayer", "player"));
++              QCString player = (const char *)QString("QPE/Application/" + option("audioplayer", "kino2"));
+               QCopEnvelope e(player, "setDocument(QString)");
+               QString sub;
+-              e << show->fullLocalPath(sub);
+-
++              QString filename = show->fullLocalPath(sub);
++              e << filename;
++              LOG(4, "filename=%s\n", (const char *)filename);
+               QCopEnvelope r(player, "raise()");
+       }
+ }
+Index: download.cpp
+===================================================================
+RCS file: /cvsroot/corsair/corsair/download.cpp,v
+retrieving revision 1.7
+diff -u -u -r1.7 download.cpp
+--- corsair/download.cpp       10 Sep 2005 20:05:51 -0000      1.7
++++ corsair/download.cpp       31 Oct 2005 20:00:44 -0000
+@@ -27,8 +27,10 @@
+ {
+       m_parent = parent;
+       m_url = url;
++      m_host = url.host();
+       m_param = param;
+       m_complete = false;
++      m_redirectCount = 0;
+       init();
+@@ -67,10 +69,10 @@
+       if(port < 0)
+               port = 80;
+-      LOG(2, "connecting to %s:%d\n", (const char *)m_url.host(), port);
+-      connectToHost(m_url.host(), port);
++      LOG(2, "connecting to %s:%d\n", (const char *)m_host, port);
++      connectToHost(m_host, port);
+-      emit statusUpdate("Connecting to " + m_url.host());
++      emit statusUpdate("Connecting to " + m_host);
+ }
+ void Download::openFile()
+@@ -144,8 +146,8 @@
+                       m_file.writeBlock((const char *)line, line.length());
+                       m_totalRead += line.length();
+               } else if(!m_gotResponse) {
+-                      LOG(2, "%s", (const char *)line);
+-                      if(line.contains("302 Found") || line.contains("301 Moved Permanently")) {
++                      LOG(2, "Response=%s", (const char *)line);
++                      if(line.contains("302 Found") || line.contains("301 Moved Permanently") || line.contains("302 Redirect")) {
+                               m_redirect = true;
+                       } else if(!line.contains("200 OK")) {
+                               complete(Error);
+@@ -153,7 +155,7 @@
+                       }
+                       m_gotResponse = true;
+               } else {
+-                      LOG(2, "%s", (const char *)line);
++                LOG(2, "Response Line=%s", (const char *)line);
+                       QString lower = line.lower();
+                       if(lower.startsWith("transfer-encoding: ") && line.contains("chunked")) {
+                               m_chunked = true;
+@@ -166,9 +168,15 @@
+                               m_redirectLocation = line.right(line.length() - (QString("location: ").length())).stripWhiteSpace();
+                       } else if(line.length() < 1 || line[0] == '\r' || line[0] == '\n') {
+                               if(m_redirect) {
++                                      if (m_redirectCount > REDIRECT_MAX ||
++                                          m_redirectLocation.isNull()) {
++                                              error(RedirectError);
++                                      }                               
+                                       init();
+                                       close();
++                                      m_redirectCount++;
+                                       m_url = QUrl(m_redirectLocation);
++                                      m_host = m_url.host();
+                                       go();
+                               } else {
+                                       m_headersComplete = true;
+@@ -194,14 +202,14 @@
+ void Download::connected()
+ {
+-      emit statusUpdate("Connected to " + m_url.host());
++      emit statusUpdate("Connected to " + m_host);
+       LOG(2, "connected\n");
+       QString get = m_url.encodedPathAndQuery();
+       QString req;
+       req = "GET " + get + " HTTP/1.1\r\n";
+-      req += "Host: " + m_url.host() + "\r\n";
++      req += "Host: " + m_host + "\r\n";
+       req += "\r\n";
+       LOG(2, "Grabbing %s with '%s'\n", (const char *)get, (const char *)req);
+@@ -212,16 +220,17 @@
+ void Download::hostFound()
+ {
+-      emit statusUpdate("Host " + m_url.host() + " found");
++      emit statusUpdate("Host " + m_host + " found");
+       LOG(2, "hostFound\n");
+ }
+ void Download::connectionClosed()
+ {
++      LOG(2, "connectionClosed to %s",(const char*)m_host);
+       readyRead();
+-      emit statusUpdate(m_url.host() + "Done");
+-      LOG(2, "connectionClosed\n");
++      statusUpdate(m_host + "done");
++
+       m_file.close();
+       complete(Error);
+ }
+Index: download.h
+===================================================================
+RCS file: /cvsroot/corsair/corsair/download.h,v
+retrieving revision 1.4
+diff -u -u -r1.4 download.h
+--- corsair/download.h 4 Sep 2005 16:52:22 -0000       1.4
++++ corsair/download.h 31 Oct 2005 20:00:44 -0000
+@@ -23,6 +23,8 @@
+ #include <qsocket.h>
+ #include <qurl.h>
++#define REDIRECT_MAX  5       // max redirects
++
+ class CorsairWindow;
+ class Download : public QSocket {
+@@ -43,6 +45,8 @@
+       bool m_redirect;
+       QString m_redirectLocation;
+       bool m_complete;
++      QString m_host;
++      int m_redirectCount;
+       void *m_param;
+@@ -54,6 +58,7 @@
+               NoData,
+               CantConnect,
+               NotFound,
++              RedirectError,
+               Error
+       };
+Index: feedparser.h
+===================================================================
+RCS file: /cvsroot/corsair/corsair/feedparser.h,v
+retrieving revision 1.3
+diff -u -u -r1.3 feedparser.h
+--- corsair/feedparser.h       10 Sep 2005 20:05:51 -0000      1.3
++++ corsair/feedparser.h       31 Oct 2005 20:00:44 -0000
+@@ -66,6 +66,7 @@
+                       m_elemTitle[m_level] = "";
+                       m_enclosure = "";
+                       m_description = "";
++                      m_elemLink[m_level] = "";
+               } else if(name == "enclosure") {
+                       m_enclosure = attr.value("url");
+               }
+@@ -84,14 +85,14 @@
+       {
+               LOG(3, "endElement %s\n", (const char *)name);
+               if(m_elementName[m_level] == "item") {
+-                      m_feed->addShow(m_elemTitle[m_level], 
++                      m_feed->addShow(m_elemTitle[m_level].simplifyWhiteSpace(),
+                                                       m_enclosure, 
+                                                       m_description, 
+                                                       m_elemLink[m_level]);
+               } else if(m_elementName[m_level] == "channel") {
+-                      m_feed->setName(m_elemTitle[m_level]);
++                      m_feed->setName(m_elemTitle[m_level].simplifyWhiteSpace());
+               } else if(m_elementName[m_level] == "title") {
+-                      m_elemTitle[m_level - 1] = m_elementData[m_level];
++                      m_elemTitle[m_level - 1] = m_elementData[m_level].simplifyWhiteSpace();
+               } else if(m_elementName[m_level] == "description") {
+                       m_description = m_elementData[m_level];
+               } else if(m_elementName[m_level] == "link") {
+Index: feeds.cpp
+===================================================================
+RCS file: /cvsroot/corsair/corsair/feeds.cpp,v
+retrieving revision 1.7
+diff -u -u -r1.7 feeds.cpp
+--- corsair/feeds.cpp  10 Sep 2005 20:05:51 -0000      1.7
++++ corsair/feeds.cpp  31 Oct 2005 20:00:44 -0000
+@@ -213,19 +213,26 @@
+       m_isNew(isNew),
+       m_index(index),
+       m_haveLocalCopy(false) ,
++      m_haveEnclosure(false),
+       m_listItem(NULL)
+ {
+       QString sub;
+       QFile f(fullLocalPath(sub));
+-      if(enclosure.length() > 0 && f.exists())
+-              m_haveLocalCopy = true;
++      QString filename = fileName();
++      if(enclosure.length() > 0) {
++              m_haveEnclosure = true;
++              if (f.exists()) {
++                      LOG(1,"Show file exists: (%s) (%s) \n",(const char *)sub, (const char *) filename);
++                      m_haveLocalCopy = true;
++              }
++      }
+ }
+ QString FeedShow::fullLocalPath(QString &sub)
+ {
+       sub = m_feed->m_list->owner()->showsDir() + "/" + m_feed->dirName() + "/";
+-      return sub + fileName();
++      return sub + cleanfileName();
+ }
+ void FeedShow::setHaveLocalCopy(bool haveit)
+@@ -292,8 +299,9 @@
+       FeedShow *i;
+       for(i = m_shows.first(); i; i = m_shows.next()) {
+               if(link.length() > 0) {
+-                      if(i->m_link == link)
++                      if(i->m_link == link) {
+                               return;
++                      }
+               } else if(enclosure.length() > 0) {
+                       if(i->m_enclosure == enclosure) {
+                               return;
+Index: feeds.h
+===================================================================
+RCS file: /cvsroot/corsair/corsair/feeds.h,v
+retrieving revision 1.5
+diff -u -u -r1.5 feeds.h
+--- corsair/feeds.h    10 Sep 2005 20:05:51 -0000      1.5
++++ corsair/feeds.h    31 Oct 2005 20:00:45 -0000
+@@ -74,6 +74,7 @@
+       int m_index;
+       
+       bool m_haveLocalCopy;
++      bool m_haveEnclosure;
+       ShowListViewItem *m_listItem;
+@@ -83,6 +84,13 @@
+               return f;
+       }
++      QString cleanfileName() { 
++              QString f = fileName();
++              int loc = f.findRev('?');
++              f = f.left(loc);
++              return f;
++      }
++
+       QString fullLocalPath(QString &subDir);
+       void setHaveLocalCopy(bool haveit);
+Index: main.cpp
+===================================================================
+RCS file: /cvsroot/corsair/corsair/main.cpp,v
+retrieving revision 1.3
+diff -u -u -r1.3 main.cpp
+--- corsair/main.cpp   10 Sep 2005 20:05:51 -0000      1.3
++++ corsair/main.cpp   31 Oct 2005 20:00:45 -0000
+@@ -23,7 +23,7 @@
+                                                                         
+ #include "corsair.h"
+-int g_debug = 2;
++int g_debug = 3;
+ #ifndef GOOD_MACROS
+ void LOG(int l, const char *fmt, ...)