Package: brewtarget
Version: 1.2.4-1
Severity: grave
Tags: patch
Justification: renders package unusable

Crashes every time on start up.  I applied a patch from upstream to simplify
checkForNewVersion().  Recompiled and it works.



-- System Information:
Debian Release: wheezy/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 3.2.0-2-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages brewtarget depends on:
ii  libc6               2.13-33
ii  libgcc1             1:4.7.1-1
ii  libphonon4          4:4.6.0.0-2
ii  libqt4-dbus         4:4.8.2-1
ii  libqt4-network      4:4.8.2-1
ii  libqt4-svg          4:4.8.2-1
ii  libqt4-xml          4:4.8.2-1
ii  libqt4-xmlpatterns  4:4.8.2-1
ii  libqtcore4          4:4.8.2-1
ii  libqtgui4           4:4.8.2-1
ii  libqtwebkit4        2.2.1-4+b1
ii  libstdc++6          4.7.1-1
ii  phonon              4:4.6.0.0-2

brewtarget recommends no packages.

brewtarget suggests no packages.

-- no debconf information
--- a/src/brewtarget.cpp
+++ b/src/brewtarget.cpp
@@ -56,6 +56,7 @@
 #include "CelsiusTempUnitSystem.h"
 #include "ImperialVolumeUnitSystem.h"
 #include "BtSplashScreen.h"
+#include "MainWindow.h"
 
 QApplication* Brewtarget::app;
 MainWindow* Brewtarget::mainWindow;
@@ -127,7 +128,7 @@
    return true;
 }
 
-void Brewtarget::checkForNewVersion()
+void Brewtarget::checkForNewVersion(MainWindow* mw)
 {
 
    // Don't do anything if the checkVersion flag was set false
@@ -135,53 +136,10 @@
       return;
 
    QNetworkAccessManager manager;
-   QEventLoop loop;
    QUrl url("http://brewtarget.sourceforge.net/version";);
-   QSharedPointer<QNetworkReply> reply = QSharedPointer<QNetworkReply>(manager.get( QNetworkRequest(url) ));
-   QObject::connect( reply.data(), SIGNAL(finished()), &loop, SLOT(quit()));
+   QNetworkReply* reply = manager.get( QNetworkRequest(url) );
+   QObject::connect( reply, SIGNAL(finished()), mw, SLOT(finishCheckingVersion()));
 
-   loop.exec(); // Waits until the reply comes back.
-
-   QString remoteVersion(reply->readAll());
-
-   // If there is an error, just return.
-   if( reply->error() != QNetworkReply::NoError )
-      return;
-
-   // If the remote version is newer...
-   if( !remoteVersion.startsWith(VERSIONSTRING) )
-   {
-      // ...and the user wants to download the new version...
-      if( QMessageBox::information(mainWindow,
-                               QObject::tr("New Version"),
-                               QObject::tr("Version %1 is now available. Download it?").arg(remoteVersion),
-                               QMessageBox::Yes | QMessageBox::No,
-                               QMessageBox::Yes) == QMessageBox::Yes )
-      {
-         // ...take them to the website.
-         QDesktopServices::openUrl(QUrl("http://brewtarget.sourceforge.net";));
-      }
-      else // ... and the user does NOT want to download the new version...
-      {
-         // ... and they want us to stop bothering them...
-         if( QMessageBox::question(mainWindow,
-                                  QObject::tr("New Version"),
-                                  QObject::tr("Stop bothering you about new versions?"),
-                                  QMessageBox::Yes | QMessageBox::No,
-                                  QMessageBox::Yes) == QMessageBox::Yes)
-         {
-            // ... tell brewtarget to stop bothering the user about the new version.
-            checkVersion = false;
-         }
-      }
-   }
-   else // The current version is newest so...
-   {
-      // ...tell brewtarget to bother users about future new versions.
-      // This means that when a user downloads the new version, this
-      // variable will always get reset to true.
-      checkVersion = true;
-   }
 }
 
 bool Brewtarget::copyDataFiles(QString newPath)
@@ -544,7 +502,7 @@
    
    splashScreen.finish(mainWindow);
 
-   checkForNewVersion();
+   checkForNewVersion(mainWindow);
 
    ret = app->exec();
    savePersistentOptions();
--- a/src/brewtarget.h
+++ b/src/brewtarget.h
@@ -137,7 +137,7 @@
    //! Load translation files.
    static void loadTranslations();
    //! Checks for a newer version and prompts user to download.
-   static void checkForNewVersion();
+   static void checkForNewVersion(MainWindow* mw);
    
    //! If this option is false, do not bother the user about new versions.
    static bool checkVersion;

Reply via email to