#############################################################################
# Makefile for building: fapman
-# Generated by qmake (2.01a) (Qt 4.6.2) on: Wed Aug 18 17:34:07 2010
+# Generated by qmake (2.01a) (Qt 4.6.2) on: Fri Aug 20 14:06:45 2010
# Project: fapman.pro
# Template: app
# Command: /opt/NokiaQtSDK/Maemo/4.6.2/targets/fremantle-1030/bin/qmake -spec /opt/NokiaQtSDK/Maemo/4.6.2/sysroots/fremantle-arm-sysroot-1030-slim/usr/share/qt4/mkspecs/linux-g++-maemo5 -unix -o Makefile fapman.pro
0.6.5
-- a bugfix release (if needed)
+- ignore upgrades for pinned packages
+- warn when trying to do a system upgrade
- promote to extras-testing
iLastListUpdate.setTime_t(0);
iLastDpkgUpdate.setTime_t(0);
+ iDataReadBuffer = new char[KDataReadBufferSize];
+
iProcAptGetUpdate = new QProcess(this);
iProcAptGetSimulate = new QProcess(this);
iProcAptGetInstall = new QProcess(this);
iProcAptGetInstall->kill();
if( iProcAptGetClean->state() != QProcess::NotRunning )
iProcAptGetClean->kill();
+
+ delete iDataReadBuffer;
}
void AAptInterface::addQueuedOperation(interfaceMode mode_)
bool pkgready = false;
// this is faster than directly reading to QByteArray...
- char* data = new char[25000];
QByteArray line;
while( !pkgready && !f.atEnd() ) {
- f.readLine(data,25000);
- line = data;
+ f.readLine(iDataReadBuffer,KDataReadBufferSize);
+ line = iDataReadBuffer;
currentreaddata += line.size();
if( processPackageDataLine(pkg,line) ) {
pkgready = true;
}
}
- delete data;
if( !pkg->name().isEmpty() && pkg->isInstalled() ) {
QFileInfo f( KDpkgInfoDir + "/" + pkg->name() + ".list" );
const QString KAptSourceList = "/opt/fapman-cache/sources.list";
const QString KAptListDir = "/opt/fapman-cache/lists";
const QString KAptArchivePartialDir = "/var/cache/apt/archives/partial";
+const QString KAptPreferencesFile = "/etc/apt/preferences";
const QString KDpkgStatusFile = "/var/lib/dpkg/status";
const QString KDpkgInfoDir = "/var/lib/dpkg/info";
const int KListExpireTime = 3600;
+const int KDataReadBufferSize = 100000;
+
class MainWindow;
class FileReadThread;
class DateFetchThread;
QStringList iBlacklist;
multiLine iMultiLine;
+ char* iDataReadBuffer;
int iDateRequestsWaiting;
int iDateRequestsSent;
+fapman (0.6.5-1) unstable; urgency=low
+
+ *
+
+ -- Heikki Holstila <heikki.holstila@gmail.com> Fri, 20 Aug 2010 14:09:25 +0300
+
fapman (0.6.4-1) unstable; urgency=low
* show user/hidden category apps in the list of installed apps (remove only)
* show "recommends" and "suggests" in package dependencies if there are any
* check rootfs and opt free space on startup and warn if low
* option to disable automatic catalog updates
- * option to start fetching changelogs immediately when package view is opened
+ * option to start fetching changelogs immediately when package dialog is opened
* warn about immediate conflicts when selecting a package for operation
* don't use hildon banner in portrait mode
* use the proxy settings for fetching package date information and changelogs
* package list read speed optimizations
* switched to garage bugtracker
- -- Heikki Holstila <heikki.holstila@gmail.com> Thu, 19 Aug 2010 12:57:31 +0300
+ -- Heikki Holstila <heikki.holstila@gmail.com> Thu, 19 Aug 2010 13:17:26 +0300
fapman (0.6.3-1) unstable; urgency=low
w.show();
#endif
-#ifdef Q_WS_MAEMO_5
uid_t userUID = getuid();
if( userUID != 0 ) {
ConfirmDialog d(false, &w);
d.exec();
}
+#ifdef Q_WS_MAEMO_5
// *** from patch by qwerty12 ***
if (!QDBusConnection::sessionBus().isConnected()) {
qWarning("Cannot connect to the D-Bus session bus.");
qWarning("%s", qPrintable(QDBusConnection::sessionBus().lastError().message()));
}
// ***
-
#endif
return a.exec();
if( inst.count()>0 )
pkglist += QString("Total download size: %L1 kB<br>").arg(total_dl_size);
bool mismatch = false;
+ bool warn_system_package = false;
if( remv.count()>0 ) {
pkglist += "<br><b><u>REMOVE:</u></b><br><font size=\"-1\">";
pkglist += "<font color=\"red\">***UNKNOWN***</font>";
mismatch = true;
}
+#ifdef Q_WS_MAEMO_5
+ if( pkg && pkg->maemoDisplayName()=="Maemo 5" ) {
+ warn_system_package = true;
+ }
+#endif
if( remvver.count()>i ) {
pkglist += " " + remvver.at(i);
if( pkg && remvver.at(i) != pkg->version() ) {
pkglist += "<font color=\"red\">***BLACKLISTED***</font>";
installing_blacklisted = true;
}
+#ifdef Q_WS_MAEMO_5
+ if( pkg && pkg->maemoDisplayName()=="Maemo 5" ) {
+ warn_system_package = true;
+ }
+#endif
if( instver.count()>i ) {
pkglist += " " + instver.at(i);
if( pkg && instver.at(i) != pkg->version() ) {
b.setText("Warning","Blacklisted package(s) will be installed");
b.exec();
}
+ if( warn_system_package ) {
+ ConfirmDialog s(false, this);
+ s.setText("Warning","You are trying to perform an operation on a critical system package. This is an operation which has not been tested and " \
+ "it is unknown whether it will succeed or result in a horrible failure. You have been warned.");
+ s.exec();
+ }
busyDialog(false);
ConfirmDialog d(true, this);
} else {
#ifdef Q_WS_MAEMO_5
QMaemo5InformationBox::information(0, text, QMaemo5InformationBox::NoTimeout);
+#else
+ ConfirmDialog d(false, this);
+ d.setText(title,msgs.join("<br>"));
+ d.exec();
#endif
}
Package::Package(QByteArray name_, AAptInterface *apt_):
iAptInterface(apt_), iName(name_), iIsInstalled(false), iMarkedForOperation(false),
iPkgStatus(PkgStatUnknown), iSize(0), iInstalledSize(0), iMarkedOperation(PkgOpNone),
- iBlacklist(BlacklistSelect::BlacklistNone), iIcon(0)
+ iBlacklist(BlacklistSelect::BlacklistNone), iIcon(0), iPinned(false)
{
}
inline void appendRecommends(QByteArray line_) { iRecommends << line_.split(','); }
inline void appendSuggests(QByteArray line_) { iSuggests << line_.split(','); }
inline void appendUpgradeDescription(QByteArray d_) { iUpgradeDescription.append(d_); }
+ inline void setPinned(bool p_) { iPinned=p_; }
void convertIcon();
inline QList<QByteArray> breaks() { return iBreaks; }
inline QList<QByteArray> recommends() { return iRecommends; }
inline QList<QByteArray> suggests() { return iSuggests; }
+ inline bool isPinned() { return iPinned; }
QStringList checkConflicts_RichText();
QList<QByteArray> iBreaks;
QList<QByteArray> iRecommends;
QList<QByteArray> iSuggests;
+
+ bool iPinned;
};
#endif // PACKAGE_H
return;
}
-#ifdef Q_WS_MAEMO_5
if( iAptInterface->numSelectedPackages() == 0 )
{
resetWindow();
event->ignore();
}
}
-#else // for simulator
- resetWindow();
- event->accept();
-#endif
}
void PackageView::changeEvent(QEvent *e)
+/*
+ This file is part of Faster Application Manager.
+
+ Faster Application Manager is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Faster Application Manager is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Faster Application Manager. If not, see <http://www.gnu.org/licenses/>.
+
+ (C) Heikki Holstila 2010
+*/
+
#include "searchoptions.h"
#include "ui_searchoptions.h"
+/*
+ This file is part of Faster Application Manager.
+
+ Faster Application Manager is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Faster Application Manager is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Faster Application Manager. If not, see <http://www.gnu.org/licenses/>.
+
+ (C) Heikki Holstila 2010
+*/
+
#ifndef SEARCHOPTIONS_H
#define SEARCHOPTIONS_H
-const QString PROGRAM_VERSION="0.6.4";
+const QString PROGRAM_VERSION="0.6.5";