Packages in non-ascii paths cannot be installed with qapt-deb-installer
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
qapt (Ubuntu) |
Fix Released
|
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
ProcVersionSign
Uname: Linux 3.0.0-8-generic i686
NonfreeKernelMo
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)
summary: |
- can not install packages with dependencies + Packages in non-ascii paths cannot be installed with qapt-deb-installer |
Git commit 928a512050f38e1 86b34e6f06f63a9 e5d711575e 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/ 928a512050f38e1 86b34e6f06f63a9 e5d711575e
diff --git a/src/worker/ worker. cpp b/src/worker/ worker. cpp worker. cpp worker. cpp :QAptWorker( int &argc, char **argv)
index 782b592..087d6d8 100644
--- a/src/worker/
+++ b/src/worker/
@@ -76,7 +76,10 @@ QAptWorker:
return;
}
- QTimer: :singleShot( 30000, this, SLOT(quit())); >setSingleShot( true); >start( 30000);
+ m_timeout = new QTimer(this);
+ connect(m_timeout, SIGNAL(timeout()), this, SLOT(quit()));
+ m_timeout-
+ m_timeout-
}
QAptWorker: :~QAptWorker( ) :installDebFile (const QString &fileName) false);
@@ -542,6 +545,7 @@ void QAptWorker:
emit workerFinished(
return;
}
+ m_timeout->stop();
emit workerStarted();
@@ -597,6 +601,8 @@ void QAptWorker: :dpkgFinished( int exitCode, QProcess: :ExitStatus exitStatus) QApt::DebInstal lFinished) ;
emit workerEvent(
}
+ m_timeout->start(); !exitStatus) ; worker. h b/src/worker/ worker. h worker. h worker. h
+
emit workerFinished(
delete m_dpkgProcess;
m_dpkgProcess = 0;
diff --git a/src/worker/
index e4b4bac..a2b1433 100644
--- a/src/worker/
+++ b/src/worker/
@@ -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;