Packages in non-ascii paths cannot be installed with qapt-deb-installer

Bug #830786 reported by Sandra Karuving on 2011-08-22
14
This bug affects 3 people
Affects Status Importance Assigned to Milestone
qapt (Ubuntu)
High
Unassigned

Bug Description

for example skype. go to skype.com and download the deb. next klick it. The installapp launches. now click on install. type your passwd. at first it loads the depends and install them. after that.. nothing happens. now i have to close the app and click the skype.deb another time. to install it

ProblemType: Bug
DistroRelease: Ubuntu 11.10
Package: qapt-deb-installer 1.2.0-0ubuntu1
ProcVersionSignature: Ubuntu 3.0.0-8.11-generic 3.0.1
Uname: Linux 3.0.0-8-generic i686
NonfreeKernelModules: ufs qnx4 hfsplus hfs minix ntfs vfat msdos fat jfs xfs reiserfs cryptd aes_i586 aes_generic rfcomm bnep bluetooth pci_stub vboxpci vboxnetadp vboxnetflt vboxdrv parport_pc ppdev dm_crypt snd_hda_codec_idt snd_hda_intel snd_hda_codec snd_hwdep snd_pcm snd_seq_midi arc4 snd_rawmidi snd_seq_midi_event snd_seq r852 sm_common nand nand_ids iwl3945 snd_timer snd_seq_device iwl_legacy snd dell_laptop joydev dcdbas nand_bch bch dell_wmi nand_ecc mtd mac80211 sparse_keymap soundcore snd_page_alloc cfg80211 psmouse serio_raw lp parport dm_raid45 xor btrfs zlib_deflate libcrc32c firewire_ohci radeon b44 ssb firewire_core sdhci_pci sdhci ttm drm_kms_helper drm crc_itu_t i2c_algo_bit video wmi
Architecture: i386
Date: Mon Aug 22 02:20:38 2011
InstallationMedia: Kubuntu 11.10 "Oneiric Ocelot" - Alpha i386 (20110803)
ProcEnviron:
 LANGUAGE=
 LANG=de_DE.UTF-8
 SHELL=/bin/bash
SourcePackage: qapt
UpgradeStatus: No upgrade log present (probably fresh install)

Sandra Karuving (lumks) wrote :

Git commit 928a512050f38e186b34e6f06f63a9e5d711575e by Jonathan Thomas.
Committed on 27/08/2011 at 21:31.
Pushed by jmthomas into branch '1.2'.

Since deb file installation is an asynchronous process compared to installing packages via
APT, the QApt Worker's idle timeout was not being blocked during deb file installation.
This caused .deb file installations that went on for 30 seconds or longer to fail due to
the QApt Worker's idle timer timing out and quitting the process.

Fixes issues with the installation of Skype and Opera packages failing by appearing to hang.

BUG: 280890
CCMAIL: <email address hidden>
FIXED-IN:1.2.1, 1.2.65

M +7 -1 src/worker/worker.cpp
M +3 -0 src/worker/worker.h

http://commits.kde.org/libqapt/928a512050f38e186b34e6f06f63a9e5d711575e

diff --git a/src/worker/worker.cpp b/src/worker/worker.cpp
index 782b592..087d6d8 100644
--- a/src/worker/worker.cpp
+++ b/src/worker/worker.cpp
@@ -76,7 +76,10 @@ QAptWorker::QAptWorker(int &argc, char **argv)
         return;
     }

- QTimer::singleShot(30000, this, SLOT(quit()));
+ m_timeout = new QTimer(this);
+ connect(m_timeout, SIGNAL(timeout()), this, SLOT(quit()));
+ m_timeout->setSingleShot(true);
+ m_timeout->start(30000);
 }

 QAptWorker::~QAptWorker()
@@ -542,6 +545,7 @@ void QAptWorker::installDebFile(const QString &fileName)
         emit workerFinished(false);
         return;
     }
+ m_timeout->stop();

     emit workerStarted();

@@ -597,6 +601,8 @@ void QAptWorker::dpkgFinished(int exitCode, QProcess::ExitStatus exitStatus)
         emit workerEvent(QApt::DebInstallFinished);
     }

+ m_timeout->start();
+
     emit workerFinished(!exitStatus);
     delete m_dpkgProcess;
     m_dpkgProcess = 0;
diff --git a/src/worker/worker.h b/src/worker/worker.h
index e4b4bac..a2b1433 100644
--- a/src/worker/worker.h
+++ b/src/worker/worker.h
@@ -30,6 +30,7 @@ class pkgRecords;

 class QEventLoop;
 class QProcess;
+class QTimer;

 namespace QApt {
     class Cache;
@@ -54,12 +55,14 @@ private:
     pkgPolicy *m_policy;
     pkgRecords *m_records;
     bool m_systemLocked;
+ pid_t m_child_id;

     QVariantMap m_questionResponse;
     WorkerAcquire *m_acquireStatus;
     QEventLoop *m_questionBlock;
     QProcess *m_xapianProc;
     QProcess *m_dpkgProcess;
+ QTimer *m_timeout;

 public Q_SLOTS:
     void setLocale(const QString &locale) const;

Git commit bf2eec718c5d7ea8eef3ad35d375e2837dab8e94 by Jonathan Thomas.
Committed on 27/08/2011 at 21:31.
Pushed by jmthomas into branch 'master'.

Since deb file installation is an asynchronous process compared to installing packages via
APT, the QApt Worker's idle timeout was not being blocked during deb file installation.
This caused .deb file installations that went on for 30 seconds or longer to fail due to
the QApt Worker's idle timer timing out and quitting the process.

Fixes issues with the installation of Skype and Opera packages failing by appearing to hang.

BUG: 280890
CCMAIL: <email address hidden>
FIXED-IN:1.2.1, 1.2.65

M +7 -1 src/worker/worker.cpp
M +3 -0 src/worker/worker.h

http://commits.kde.org/libqapt/bf2eec718c5d7ea8eef3ad35d375e2837dab8e94

diff --git a/src/worker/worker.cpp b/src/worker/worker.cpp
index 782b592..087d6d8 100644
--- a/src/worker/worker.cpp
+++ b/src/worker/worker.cpp
@@ -76,7 +76,10 @@ QAptWorker::QAptWorker(int &argc, char **argv)
         return;
     }

- QTimer::singleShot(30000, this, SLOT(quit()));
+ m_timeout = new QTimer(this);
+ connect(m_timeout, SIGNAL(timeout()), this, SLOT(quit()));
+ m_timeout->setSingleShot(true);
+ m_timeout->start(30000);
 }

 QAptWorker::~QAptWorker()
@@ -542,6 +545,7 @@ void QAptWorker::installDebFile(const QString &fileName)
         emit workerFinished(false);
         return;
     }
+ m_timeout->stop();

     emit workerStarted();

@@ -597,6 +601,8 @@ void QAptWorker::dpkgFinished(int exitCode, QProcess::ExitStatus exitStatus)
         emit workerEvent(QApt::DebInstallFinished);
     }

+ m_timeout->start();
+
     emit workerFinished(!exitStatus);
     delete m_dpkgProcess;
     m_dpkgProcess = 0;
diff --git a/src/worker/worker.h b/src/worker/worker.h
index e4b4bac..a2b1433 100644
--- a/src/worker/worker.h
+++ b/src/worker/worker.h
@@ -30,6 +30,7 @@ class pkgRecords;

 class QEventLoop;
 class QProcess;
+class QTimer;

 namespace QApt {
     class Cache;
@@ -54,12 +55,14 @@ private:
     pkgPolicy *m_policy;
     pkgRecords *m_records;
     bool m_systemLocked;
+ pid_t m_child_id;

     QVariantMap m_questionResponse;
     WorkerAcquire *m_acquireStatus;
     QEventLoop *m_questionBlock;
     QProcess *m_xapianProc;
     QProcess *m_dpkgProcess;
+ QTimer *m_timeout;

 public Q_SLOTS:
     void setLocale(const QString &locale) const;

Changed in qapt (Ubuntu):
status: New → Fix Committed
importance: Undecided → High
summary: - can not install packages with dependencies
+ Packages in non-ascii paths cannot be installed with qapt-deb-installer
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package qapt - 1.2.1-0ubuntu1

---------------
qapt (1.2.1-0ubuntu1) oneiric; urgency=low

  * New upstream bugfix release (LP: #830786, 847748, 839411)
 -- Jonathan Thomas <email address hidden> Sun, 18 Sep 2011 12:48:47 -0400

Changed in qapt (Ubuntu):
status: Fix Committed → Fix Released
Sandra Karuving (lumks) wrote :

Still present in 1.2.1
tried with google chrome:
2 dependencies > after installation of them it does nothing anymore and i have to click the chrome deb another time to install :(

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers