forked from openkylin/libqapt
517 lines
30 KiB
Plaintext
517 lines
30 KiB
Plaintext
|
2.2.0:
|
||
|
======
|
||
|
- Features:
|
||
|
* Handles multiple sources.list-formatted files
|
||
|
* Supports arbitrary sources.list loading, parsing, and writing
|
||
|
(meaning you can load any source file directly, or use the default set.)
|
||
|
* Added the ability to query a list of all loaded sources.list files.
|
||
|
* You can now fetch only the files for a specific repository.
|
||
|
* gstreamer1.0 port completed by Harald Sitter
|
||
|
* Dropped qtgstreamer in favor of native gstreamer API
|
||
|
- Bugfixes:
|
||
|
* There was a bug in the unreleased alpha where removing all entries from
|
||
|
any file could potentially result in overwriting the defaulatet /etc/apt/sources.list.
|
||
|
* Various minor (but important) bug fixes (Harald)
|
||
|
|
||
|
2.1: (as of 2.1 alpha, unreleased)
|
||
|
======
|
||
|
- Features:
|
||
|
* Added a new SourcesList class for manipulating APT source list files.
|
||
|
* Added a new SourceEntry class for manipulating individual APT sources within source list
|
||
|
files.
|
||
|
* Added a "frontend capabilities" API which frontends use to advertise which forms of user
|
||
|
interaction they support during the commit process. (Config file conflict, untrusted packages
|
||
|
prompt, debconf, etc) This will prevent frontends that don't explicitly support these
|
||
|
interactions from hanging the commit process indefinitely.
|
||
|
* Add support for the new Synaptic marking file syntax (BKO: #314549)
|
||
|
- Bugfixes:
|
||
|
* Stop leaking a file descriptor when reading APT pin files.
|
||
|
* Stop taking the address of a temporary variable in the package search function.
|
||
|
|
||
|
2.0.1:
|
||
|
======
|
||
|
- Bugfixes:
|
||
|
* Fixed a crash that could occur if an empty cache state is passed to
|
||
|
Backend::stateChanges(). An empty change set is returned in this case.
|
||
|
|
||
|
2.0
|
||
|
======
|
||
|
- Release Notes:
|
||
|
* This release includes API/ABI changes, that, while mostly source compatible, aren't
|
||
|
100% compatible with code written aginst LibQApt 1.x. Additionally, code that invokes
|
||
|
asynchronous worker actions will need more code to work now.
|
||
|
- Features:
|
||
|
* New transaction-based worker API. Asyncronous actions run by the QApt Worker are now
|
||
|
tracked with QApt::Transaction objects. The worker transactions can be tracked and
|
||
|
controlled through the transaction object, and the transaction object will also signal
|
||
|
property/state changes for the worker transaction. This fixes the long-standing issue of
|
||
|
the QApt Backend listening for worker signals globally, potentially broadcasting information
|
||
|
about a worker action initiated by another QApt frontend.
|
||
|
* The new QApt Worker queues transactions as dispatched by either a single frontend or from
|
||
|
multiple frontends.
|
||
|
* If a non-QApt package manager such as apt-get, synaptic, aptdaemon, etc currently has a lock
|
||
|
on the package system, the QApt Worker will wait until it can obtain the lock instead of
|
||
|
immediately failing.
|
||
|
* Added a new class QApt::DownloadProgress to replace the global download progress signal in
|
||
|
QApt::Backend. Instances of QApt::Transaction will emit DownloadProgress objects to report
|
||
|
new progress information for a file the QApt Worker is downloading. (E.g. a package file,
|
||
|
on in the case of a cache update, package information lists.)
|
||
|
* QApt::ChangelogEntry now has a CVEUrls() method to return a list of urls to websites
|
||
|
describing vulnerability exploits which the version specified in the changelog entry fixes.
|
||
|
* Backend::init() and Backend::reload() now return a boolean value based on whether or not
|
||
|
the backend could be (re)initialized. If not, an error message can be retrieved through the
|
||
|
new Backend::initErrorMessage() method. If init() or reload() return false, applications
|
||
|
should immediately exit.
|
||
|
* The QApt::Backend constructor now takes a QObject parameter to use as a parent, removing the
|
||
|
need for manual deletion. (This could perhaps be considered a bug that it didn't before...)
|
||
|
* Added API to QApt::DependencyInfo analgous to libapt-pkg's pkgCache::DepType() static method
|
||
|
for obtaining a user-readable string from a QApt::DependencyType.
|
||
|
- API changes:
|
||
|
* The Cache class was removed. It really had no external uses and now is a trivial wrapper
|
||
|
around libapt-pkg's pkgCacheFile with a few additions for internal use.
|
||
|
* The Backend::workerEvent() signal and Backend::workerState() method have been removed.
|
||
|
The new Transaction object reports state changes on a per-transaction basis now.
|
||
|
* Similarly, Backend::errorOccurred() and Backend::workerQuestion() have been replaced by
|
||
|
analogous code in the Transaction class.
|
||
|
* The Backend::setProxy() and setLocale() functions have been removed. Proxy and locale are now
|
||
|
set on a per-transaction basis via the QApt::Transaction class.
|
||
|
* Global signals for download/commit progress in QApt::Backend have been replaced by signals in
|
||
|
the Transaction class for reporting info on a per-transaction basis.
|
||
|
* The already-deprecated Backend::downloadMessage() signal was removed.
|
||
|
* The Backend::packageChanged() signal no longer emits a pointer to the package that changed.
|
||
|
There wasn't much use in emitting a pointer to the package just changed, as there was no
|
||
|
garuantee that it was the only package that had changed (without doing expensive checks on
|
||
|
every package), which meant that you had to assume that everything had changed.
|
||
|
* Added a Backend::upgradeSystem() method that starts a worker transaction to upgrade all
|
||
|
upgradeable packages. This is useful if you want to run a commit that will only upgrade
|
||
|
packages, and will result in faster upgrade marking in the worker.
|
||
|
* Added a new MarkingErrorInfo class to replace the QHash<int, QHash<QString, QVariantMap> >
|
||
|
mess that Package::brokenReason() returned. The new class features a much nicer API.
|
||
|
* Package::supportedUntil() now returns a QDateTime to allow localization in KDE applications.
|
||
|
- Bugfixes:
|
||
|
* QApt::Backend will no longer emit progress information for worker actions not initiated by
|
||
|
your application. (By virtue of not emitting progress information at all. Info is now emitted
|
||
|
on a per-transaction basis.) This fixes a bunch of potential crashes where applications
|
||
|
inappropriately react to worker state changes. (Muon worked around a bunch of these,
|
||
|
but not all) (BKO: #305277, #307951)
|
||
|
* Frontends can gracefully wait in line to use the QApt Worker (BKO: #274262)
|
||
|
* The dependencies of an application marked for installation are now properly marked as
|
||
|
auto-installed. (Before they weren't, which means they couldn't be autoremoved after all
|
||
|
packages depending on them had been removed)
|
||
|
- Optimizations:
|
||
|
* Public functions that took references to QLatin1String objects now take QLatin1String objects
|
||
|
passed by value. A QLatin1String is nothing more than a char pointer with some convenience
|
||
|
functions, so passing them by reference is really just introducing a double-indirection to get
|
||
|
to the char pointer. (API change, should be source compatible)
|
||
|
* QApt::Backend::origin() takes a const reference to a QString instead of a QString passed by
|
||
|
value, preventing the need to copy the QString given as a parameter. (API change, source
|
||
|
compatible)
|
||
|
* Package::name() and Package::section() have been changed to return QLatin1Strings, using the
|
||
|
implementations of the the latin1Name() and latin1Section() methods, which have been removed.
|
||
|
(API change, usage of latin1Name() and latin1Section() should be changed to name() and
|
||
|
section(). additionally, current usage that depends on the rvalues of name() and section()
|
||
|
being QString need to be changed to first assign the result of name() or section() to a
|
||
|
QString variable before running QString methods.
|
||
|
* HistoryItems are now implicitly shared, copy-on-write objects. This makes copying HistoryItem
|
||
|
instances around very cheap, and allows us to not need to use pointers to share access to them.
|
||
|
(The History class now returns QList<HistoryItem> vs QList<HistoryItem *>)
|
||
|
* Upgradeable packages that have not been marked for upgrade are no longer sent to the worker,
|
||
|
for consideration when committing packages. This speeds up the dependency calculation for
|
||
|
a commit involving a handful of packages, when hundreds of upgrades are also available.
|
||
|
* Make QApt::Package constructing faster by storing the APT pkgIterator as a member variable
|
||
|
in PackagePrivate, rather than having a pointer to a pkgIterator and storing the pkgIterator
|
||
|
on the heap. Does not appreciably reduce memory usage, but reduced the number of times a
|
||
|
heap memory allocation is performed.
|
||
|
* Small speed optimizations to Backend::stateChanges()
|
||
|
* Qt containers such as QList specialized for QApt types are now declared as movable, decreasing
|
||
|
the amount of memory used to store these containers.
|
||
|
* Small optimization in Package::setVersion()
|
||
|
|
||
|
|
||
|
1.4.0
|
||
|
======
|
||
|
- Features:
|
||
|
* Make the supported architectures list available from the Config class.
|
||
|
* Implemented APT MultiArch support in the QApt Deb Installer utility.
|
||
|
* Add an origins() function to QApt::Backend to return a list of machine-readable
|
||
|
origin names.
|
||
|
* Add a function for retrieving a list of origins by its host URL.
|
||
|
* Add a dialog to show additional changes to packages when installing a .deb package with
|
||
|
the QApt Deb Installer. (LP: #1021966)
|
||
|
- Optimizations:
|
||
|
* Use a faster QString -> const char * conversion when looking up packages by name
|
||
|
|
||
|
1.3.2:
|
||
|
======
|
||
|
- Bugfixes
|
||
|
* Report APT errors that occur during marking in the worker as InitErrors with details.
|
||
|
There wasn't a check for these errors before, so the APT error stack still had them
|
||
|
on top, and we were getting them when we checked for LockErrors. (BKO: #285787)
|
||
|
* Resolve all dependency problems on package upgrades using the ResolveByKeep paradigm.
|
||
|
Often when a package that is to be upgraded has dependencies which also depend on packages
|
||
|
that need upgraded, APT will not be able to immediately resolve potential breaks by marking
|
||
|
these. However, since we are passed a list of other packages that will also be marked for
|
||
|
upgrade, we will most likely resolve this situation manually later. With ResolveByKeep we
|
||
|
can avoid trying to remove to-be-upgraded packages with dep problems until we can manually
|
||
|
fix them. (Matching the behavior of libapt-pkg's pkgAllUpgrade method)
|
||
|
* After package marking on commit, clear errors on the error stack caused by marking packages
|
||
|
as long as there are no breaks currently. This fixes a bug where dependency issues that
|
||
|
were fixed by the end of the commit marking would stay on the error stack, failing the
|
||
|
entire commit.
|
||
|
* Fix usage of transient apt-pkg headers which caused FTBFS with APT 0.9.x
|
||
|
* Fixed an issue with the duplicate directory entry detection in Package::installedFilesList
|
||
|
which caused similarly named files to be incorrectly deleted from the list.
|
||
|
(E.g. /usr/bin/kppp was being removed since the next entry was /usr/bin/kppplogviewer, and
|
||
|
we were incorrectly considering /usr/bin/kppp as a directory)
|
||
|
* Fixed unallocated memory access when loading pinned packages in the QApt Backend.
|
||
|
* Reset the package index vector to be filled with -1 on reload, to prevent weird things
|
||
|
happening with uninitialized fields.
|
||
|
* Delete all package objects in the Backend destructor to make memory leak checking easier.
|
||
|
(Technically a memory leak, but the Backend class is usually a singleton-type class that
|
||
|
lives throughout an application's lifetime)
|
||
|
* Fix a situation where the APT package fetcher would say everything was fine to continue, but
|
||
|
several packages had failed by manually checking what has failed and seeing if APT can
|
||
|
continue safely. (BKO: #299887)
|
||
|
* Fix an unchecked indexed vector access that causes a rare crash on application startup.
|
||
|
(BKO: #299551)
|
||
|
|
||
|
1.3.1:
|
||
|
======
|
||
|
- Bugfixes
|
||
|
* Fixed the QApt GStreamer Helper offering to install a blank list of packages if no
|
||
|
plugin was found.
|
||
|
* Fixed the QApt GStreamer Helper offering plugins for the wrong architecture,
|
||
|
preventing the proper ones from being installed.
|
||
|
* Fixed Package::installedFilesList() returning an empty list on foreign-architecture
|
||
|
packages
|
||
|
|
||
|
1.3.0:
|
||
|
======
|
||
|
- Features:
|
||
|
* Introducing the QApt::Changelog class, which provides an interface for retreiving
|
||
|
information from a package's changelog. Individual entries in the changelog can
|
||
|
be retreived along with other data such as version, date and an update description.
|
||
|
* Added Backend::stateChanges() to provide lists of changed packages since a given
|
||
|
CacheState.
|
||
|
* Added QApt::Package::archives() function to return a list of archives that a package
|
||
|
is available from. (E.g. oneiric, oneiric-updates, sid, etc)
|
||
|
- Bugfixes:
|
||
|
* Fixed not being able to unmark a package when it is a dependency of another package
|
||
|
that is also marked.
|
||
|
* Fixed build with PolkitQt-1 0.100+
|
||
|
* Fixed a spelling error in the QApt Deb Installer
|
||
|
* Support Debian changelog servers, fixes changelogs containing HTML on Debian systems
|
||
|
* Fixed a documentation typo in QAptConfig.cmake
|
||
|
* Fix deprecated values and other desktop spec violations in the QApt Deb Installer's
|
||
|
desktop file.
|
||
|
* Fixed the GStreamer Plugin Installer not finding packages for entire GStreamer elements
|
||
|
(as opposed to plugins for specific element capabilities) (LP: #883604)
|
||
|
* Fixed the GStreamer Plugin Installer hanging when plugins can not be found.
|
||
|
* Fixed a crash in the GStreamer Plugin Installer where a QGst::CapsPtr was used without
|
||
|
a null check.
|
||
|
* Make the QApt Worker report the URI for fetch errors instead of the fetch description.
|
||
|
* Fix build issues with APT 0.8.16+
|
||
|
* Fix failure to build on systems without KDE development headers installed.
|
||
|
- Optimizations:
|
||
|
* Added Backend::markPackages() for marking multiple packages at once.
|
||
|
It utilizes event compression, avoiding additional internal dependency checking or
|
||
|
emitting packageChanged() signals until everything is marked. Increases the speed
|
||
|
of marking multiple packages by 300% in Muon.
|
||
|
* Added Backend::setCompressEvents() function so that programs can utilize the event
|
||
|
compression speed benefits in their own custom marking loops if they can't use
|
||
|
Backend::markPackages()
|
||
|
* Normalize all signals/slots for a (micro)optimization.
|
||
|
* Other:
|
||
|
- Dropped legacy support for PolKit-Qt 0.98.x. Polkit-Qt 0.99 or greater is now required.
|
||
|
- Utilize language features of C++11, GCC 4.6+ or similar is now required.
|
||
|
- API documentation updates
|
||
|
|
||
|
1.2.3:
|
||
|
======
|
||
|
- Bugfixes:
|
||
|
* Fixed a bug with the QApt Deb Installer where files with spaces would fail to install.
|
||
|
(BKO: #290510)
|
||
|
* Read the dpkg pty regularly to prevent it from filling.Fixes an issue where long/verbose
|
||
|
commits would hang the QApt Worker, by extension causing QApt frontends to hang.
|
||
|
(BKO: #292423, LP: #840306)
|
||
|
* Restart the QApt Worker's timeout timer and note the end of a commit if commitChanges
|
||
|
fails. Otherwise, the QApt Worker will remain as a zombie indefinitely, hanging
|
||
|
frontends. (BKO: #292549)
|
||
|
* Emit a FetchFailed error if enough packages fail to download to prevent a commit from
|
||
|
happening at all. Fixes a hang on frontends when packages fail to download. (BKO: #287274)
|
||
|
|
||
|
1.2.2:
|
||
|
======
|
||
|
- Bugfixes:
|
||
|
* Fixed a bug in QApt::Debfile where the reported install size was
|
||
|
always one unit too low. (E.g. showing 5 KiB instead of 5 MiB)
|
||
|
Fixes the QApt Deb Installer showing too small installed sizes.
|
||
|
* More fixes for MultiArch. The last round of fixes were made with the assumption that all
|
||
|
installable foreign-arch packages would be marked with a Multi-Arch field in their control
|
||
|
files. This was a bad assumption. Non-native foreign-arch packages need no changes made to
|
||
|
them as long as their dependencies are multi-arch.
|
||
|
|
||
|
As such, we cannot only add foreign-arch packages marked as MultiArch to the cache, or else
|
||
|
we lose foreign-arch binary packages such as Skype. (Which is what people actually want!)
|
||
|
|
||
|
Unfortunately, this means that there will be "duplicate" entries for most packages in the
|
||
|
cache, but these can be differentiated by placing (arch) after the names in your display
|
||
|
model.
|
||
|
|
||
|
Package::isMultiArchEnabled() has been deprecated, and a new Package::isForeignArch()
|
||
|
function has been added. It does the same thing, but includes all foreign-arch packages
|
||
|
that the APT install supports.
|
||
|
* Be a bit less strict about the quality cutoff for the quick search. Fixes very few
|
||
|
results being found for the "linux" search term. (BKO: #283523)
|
||
|
* Fixed an issue with the QApt Deb Installer hanging during long installations.
|
||
|
(LP: #850902)
|
||
|
* Fixed random "this package is incompatible with your computer" errors with the
|
||
|
QApt Deb Installer.
|
||
|
|
||
|
1.2.1:
|
||
|
======
|
||
|
- Bugfixes:
|
||
|
* Added support for MultiArch packages when used with APT 0.8.16+. By default,
|
||
|
APT shows every foreign-arch package available. LibQApt filters these and
|
||
|
only shows foreign-arch packages that are explicitly marked as MultiArch.
|
||
|
To differentiate between the package names, LibQApt consumers can use the
|
||
|
new Package::architecture to get the arch as a QString to help disambiguate.
|
||
|
(BKO: #276389)
|
||
|
* Added Backend::isMultiArchEnabled() to return whether or not dpkg/apt are
|
||
|
set up for multiarch
|
||
|
* Added Package::isMultiArchEnabled() to return whether or not a package is
|
||
|
set up for multiarch
|
||
|
* Fixed a bug where the lack of an apt-xapian cache would not trigger a
|
||
|
cache rebuild. (A.K.A. search doesn't work on new installs of $DISTRO)
|
||
|
(LP: #839411)
|
||
|
* Fixed a bug where the QApt Worker would quit during a xapian cache update,
|
||
|
causing consumer apps to lose update progress notification.
|
||
|
* Fixed a bug where the QApt Worker would quit during long installations of
|
||
|
local .deb files with qapt-deb-installer. (BKO: #280890, LP: #830786)
|
||
|
* Fixed a crash when the qapt-gst-helper is given invalid GStreamer caps.
|
||
|
(LP: #847748)
|
||
|
* Fixed xdg compliance issues with the QApt Deb Thumbnailer's .desktop file.
|
||
|
Fixes warnings from kbuildsycoca4.
|
||
|
|
||
|
1.2.0:
|
||
|
======
|
||
|
- Features:
|
||
|
* Added the ability to pin and unpin packages via writing files to
|
||
|
/etc/apt/preferences.d/
|
||
|
* Added the QApt::DebFile class, an information retreval interface for .deb
|
||
|
package archives.
|
||
|
* Added Backend::saveDownloadList() to create a download list usable by the
|
||
|
downloadArchives() function.
|
||
|
* Added a downloadArchives() function to download a list of archives to an
|
||
|
arbitrary directory. The worker will emit package download signals as usual.
|
||
|
This can be useful, for example, for downloading packages to a USB stick.
|
||
|
* Added Backend::addArchiveToCache(), whichs adds .deb files for the candidate
|
||
|
versions of existing packages to the apt .deb cache. This function can be used
|
||
|
to add .debs from e.g. a USB stick so that computers without internet
|
||
|
connections can update packages.
|
||
|
* Added an installDebFile method to QApt::Backend and the QApt Worker. This
|
||
|
method starts the installation of the given .deb file, complete with a
|
||
|
DebInstallStarted event signal on start, DebInstallFinished when finished,
|
||
|
and a debInstallMessage() signal in between for dpkg output.
|
||
|
A new error, WrongArchError, has been added to QApt::ErrorCode for when a
|
||
|
.deb file cannot be installed due to incompatible CPU architectures for binary
|
||
|
packages. (No multiarch support yet)
|
||
|
* Added a new DependencyInfo class to help describe a package's relational
|
||
|
dependencies. Useful for when working without APT's dependency solving
|
||
|
while using .deb files
|
||
|
* Added functions to QApt::Package for returning lists of DependenyInfo objects
|
||
|
for various relational dependencies.
|
||
|
* Added an upstreamVersion() function to the Package class to return the upstream
|
||
|
version of a package. Also include a static version in case we have a package
|
||
|
version without a Package object and want the upstream version without having
|
||
|
a Package object instantiated.
|
||
|
* Added a static method "compareVersion()" to the Package class to compare the
|
||
|
versions of two packages, returning the standard less than 0, 0 or greater than
|
||
|
zero when appropriate.
|
||
|
|
||
|
- Optimizations:
|
||
|
* Speed up concatenation of the release file URI in
|
||
|
PackagePrivate::getReleaseFileForOrigin() (Helps speed up the
|
||
|
Package::isSupported() function)
|
||
|
* Speed up Package::state() by 66% by caching state info that cannot change
|
||
|
between cache reloads.
|
||
|
* Don't pass const references to QLatin1Strings to PackagePrivate::searchPkgFileIter()
|
||
|
and getReleaseFileForOrigin(). QL1S already has a pointer to a c-string, so we are
|
||
|
pointlessly dereferencing a refernce to a pointer, making things a tad bit slower.
|
||
|
These are private functions, so API/ABI is untouched.
|
||
|
|
||
|
- Bugfixes:
|
||
|
* Fixed a copy/paste error in the documentation for the QApt::Group typedef
|
||
|
* Fixed a constructor being incorrectly called a default constructor in the api docs.
|
||
|
* Send the value of the http_proxy env var to the worker, since it normally runs in
|
||
|
a shell-less environment with no env vars defined. Fixes proxies defined in the
|
||
|
http_proxy environment variable not working. (BKO: 275276)
|
||
|
* Fixed a divide-by-zero crash in the QApt Worker when built against APT 0.8.16 or
|
||
|
higher. (BKO: 279690)
|
||
|
|
||
|
- New Utilities:
|
||
|
* Introducing the Installer Plasma Runner plugin, providing package installation
|
||
|
suggestions using the command-not-found utility and QApt Batch.
|
||
|
* Introducing the QApt Deb Installer, a utility for installing .deb packages.
|
||
|
* Introducing the QApt Deb Thumbnailer, a thumbnailing plugin for KDE that
|
||
|
produces thumbnail previews for Dolphin and friends.
|
||
|
* Introducing the QApt GStreamer Helper, a utility that can be used by Phonon's
|
||
|
GStreamer backend for automatically suggesting and installing GStreamer codecs
|
||
|
for media playback.
|
||
|
|
||
|
1.1.3:
|
||
|
======
|
||
|
- Bugfixes:
|
||
|
* Don't waste time searching if the given file is empty, and return a null pointer.
|
||
|
Fixes Backend::packageForFile() returning unpredictable results when passed an
|
||
|
empty file string.
|
||
|
* Innocuous errors can occur at certain times during the execution of
|
||
|
downloadSize() can cause initialization errors, so discard all errors incurred
|
||
|
in this function. (BKO: #265741)
|
||
|
|
||
|
1.1.2:
|
||
|
======
|
||
|
- This was a translations-only update
|
||
|
|
||
|
1.1.1:
|
||
|
======
|
||
|
- Bugfixes:
|
||
|
* Don't crash in Package::supportedUntil() when packages in Ubuntu's main
|
||
|
archive do not have a "Supported" field.
|
||
|
* Prevent a potential crash in Package::supportedUntil() when a corrupt
|
||
|
/etc/lsb-release file is present.
|
||
|
* Set LC_MESSAGES as the worker's locale rather than LC_ALL. If extra locale
|
||
|
categories are set, LC_ALL will return a rather unuseful composite of all of them.
|
||
|
Thanks to Colin Watson for the patch.
|
||
|
* Don't close stdout inside the QApt Worker. Packages' post-installation scripts
|
||
|
that use stdout will silently fail when it is closed with newer versions of APT.
|
||
|
* Use a pty instead of a pipe for write access to enable apt to produce useful
|
||
|
entries in /var/log/apt/term.log.
|
||
|
Adapted from a patch by Colin Watson.
|
||
|
* Don't hardcode the changelog server used in Package::changelogUrl() to
|
||
|
changelogs.ubuntu.com. Debian would have to patch the source file for
|
||
|
changelogs to work, plus it is configurable at the APT level in the first place.
|
||
|
- Optimizations:
|
||
|
* Don't try to build the entire changelog URL ourselves in Package::changelogUrl(),
|
||
|
as the package's control records has much of the URL we need in the form of
|
||
|
its filename.
|
||
|
|
||
|
|
||
|
1.1:
|
||
|
======
|
||
|
- Features:
|
||
|
* Added a new QApt::Config class. It features a KConfig-like API to the APT system
|
||
|
configuration, as well as provides config writing support without dumping the
|
||
|
entire APT configuration settings to a file like APT does. It currently supports
|
||
|
reading and writing int, bool and string settings. QApt::Backend has a
|
||
|
QApt::Config instance that can be accessed by its config() method after
|
||
|
initialization.
|
||
|
* Added a new QApt::History class. It provides an interface to the APT history
|
||
|
log(s). It provides a list of all entries in the logs, with each entry providing
|
||
|
a start date, a list of packages acted upon as well as any errors that may have
|
||
|
occurred during the transaction.
|
||
|
* Added pretty includes in the form of <LibQApt/Include> (e.g. <LibQApt/Backend>)
|
||
|
* Added a packageDownloadProgress() signal for per-package download progress reporting.
|
||
|
This enables client applications to give more detailed information about
|
||
|
currently-downloading packages, including parallel package downloads.
|
||
|
* Added a markPackagesForAutoRemove() method that acts like apt-get autoremove,
|
||
|
marking packages for removal that APT deems obsolete.
|
||
|
* Added a new setUndoRedoCacheSize() function to QApt::Backend. This allows
|
||
|
applications to customize the undo/redo stack size, allowing them to increase
|
||
|
it if RAM usage is less of an issue, or decrease/eliminate the cache if RAM is tight.
|
||
|
* Added Add a saveInstalledPackagesList() function to QApt::Backend that exports a
|
||
|
list of all installed packages to the given path. This list can be ready by
|
||
|
Backend::readSelections() and is fully compatible with the Synaptic Package Manager.
|
||
|
* Add some new functions: recommendsList(), suggestsList(), enhancesList() and enhancedByList()
|
||
|
to return QStringLists of the names of packages that have the aforementioned relational statuses
|
||
|
with the Package.
|
||
|
* Added an areChangesMarked() function to provide an easier/more efficient way to check if there are
|
||
|
pending changes without checking the emptiness of the QApt::PackageList that
|
||
|
Backend::MarkedPackages() constructs and returns.
|
||
|
* API documentation updates, including making note of which functions are asynchronous
|
||
|
and have signals to report events/data.
|
||
|
* LibQApt now compiles with QT_NO_CAST_TO_ASCII and QT_NO_CAST_FROM_ASCII.
|
||
|
|
||
|
- Optimizations:
|
||
|
* APT system initialization in Backend::init() is no longer blocking, so that you
|
||
|
can paint your UI sooner to give a perception of increased speed.
|
||
|
* General optimizations have been made throughout to significantly speed up
|
||
|
Backend::init()
|
||
|
* Speed up Package::isSupported() by making a cache of package index files to
|
||
|
prevent doing a binary search for the index file from the sources list each time
|
||
|
isSupported() is called.
|
||
|
* Speed Package::isInstalled() up by checking for installation without calling state().
|
||
|
* Added an installedCount() function that is faster than using the packageCount()
|
||
|
overload function that takes a package state flag.
|
||
|
* Add more efficient toInstallCount() and toRemoveCount() functions to Backend.
|
||
|
These both just grab int's already cached in memory by APT, meaning that we
|
||
|
don't have to iterate through every Package and get a full state reading to
|
||
|
determine whether it is being installed/removed.
|
||
|
* Add a more efficient latin1Section() function. to QApt::Package Since
|
||
|
QLatin1String returns an empty string when it encounters null char pointers, we
|
||
|
can use latin1Section() in section() to have equivalent, simpler code that still
|
||
|
retains safety.
|
||
|
* Improve the speed of Backend::loadSelections() by parsing selection files with
|
||
|
QByteArray, as well as some other miscellaneous optimizations.
|
||
|
* Change the Backend's origin/human readable name mapping to use a QHash, giving some
|
||
|
minor optimizations to the originLabel() and origin() functions.
|
||
|
* Add a Backend::package() overload that takes a QLatin1String. If you can use this overload,
|
||
|
it is more efficient since you don't have to go QString -> ascii -> latin1 -> const char.
|
||
|
* Make the regular Backend::package() implementation use the QL1S overload. This is slightly
|
||
|
more efficient since we can convert directly from QString -> latin1 without converting to
|
||
|
ascii in between (since APT package names will always be latin1)
|
||
|
* Use the new Backend::package(QL1S) overload inside Backend::search(). the QL1S overload is
|
||
|
faster in the first place, plus since Xapian gives us an std::string it is also faster to go
|
||
|
to QL1S than to QString.
|
||
|
* Since package names are always latin1-compliant, prevent the unnecessary conversion of const char *
|
||
|
-> std::string -> QString::fromAscii -> QString::fromLatin1 by using QLatin1String to wrap around
|
||
|
the const char *, making the conversion process look more like const char * -> QL1S -> QString::fromLatin1.
|
||
|
|
||
|
- Bugfixes:
|
||
|
* Added a NotFound error for the QApt Batch Installer to use when it encounters
|
||
|
a non-existant package. Before it was not catching this error at all and went
|
||
|
straight to completion as if nothing was wrong.
|
||
|
* QAptBatch: Don't say we were successful if there were errors. That looks a bit
|
||
|
silly, especially when we have error dialogs to contradict ourselves.
|
||
|
* Fixed a bug where installing a package locally did not make the
|
||
|
xapianIndexNeedsUpdate() return true;
|
||
|
* Fixed a bug where the worker would never respond to DBus requests when heavy
|
||
|
load was present on the system. (BKO: #249929)
|
||
|
* Fixed a bug where calling originLabel() with an origin that did not have a
|
||
|
label would insert the origin into the origin map, wasting memory.
|
||
|
* Fixed a blank line being snuck in to the end of lists returned by the
|
||
|
Package::installedFilesList() function
|
||
|
* Fix a potential problem with homepage URLs with UTF8 characters not displaying correctly.
|
||
|
* Fix a small memory leak in PackagePrivate. We had a pointer that we allocate to in the
|
||
|
Package constructor which we weren't deleting in the PackagePrivate destructor
|
||
|
* Compile with -fvisibility=hidden by default so that libqapt doesn't expose
|
||
|
symbols from libraries it links against, making life easier for packagers
|
||
|
everywhere.
|
||
|
|
||
|
- Other
|
||
|
* Documentation for the detail QVariantMaps of ErrorCodes, WarningCodes and
|
||
|
WorkerQuestions is now provided, whereas they were completely undocumented
|
||
|
in previous releases.
|
||
|
|
||
|
1.0.4:
|
||
|
======
|
||
|
- Bugfixes:
|
||
|
* Respect preference files in the /etc/apt/preferences.d/ dir, and not just the
|
||
|
/etc/apt/preferences file itself
|
||
|
* Catch and report initialization errors in places we were missing for
|
||
|
* Report that package state has changed when loading selection files
|
||
|
|
||
|
1.0.3:
|
||
|
======
|
||
|
- Bugfixes:
|
||
|
* Implementing proper locking, fixing the "Doesn't respect APT system locks" bug
|
||
|
|
||
|
1.0.2:
|
||
|
======
|
||
|
- Bugfixes:
|
||
|
* QAptBatch: Set the focus to the appropriate button for each mode
|
||
|
|
||
|
1.0.0:
|
||
|
====
|
||
|
* Initial release
|