Intro. ====== This is an overview of the yum changes post 3.2.8, as I can never remember exactly when we did something and also so people don't have to ask me when we did something. A couple of maybe not obvious things: 1. This doesn't contain a line for all bug fixes, only if they have a significant user visibile change. Or it wouldn't be much of an overview. 2. Note that RHEL-5.2 yum-3.2.8 contains some of the fixes that are listed afterwards (and some that aren't :). Dito. Fedora releases, like 3.2.16. 3. The list is in cronological order, however sometimes a line item had many commits over a release if so I tried to use the latest commit. 4. In the same vein as #3 a few features were added in one release, but then fixed in a later one, at which point the fix might well be a minor change. 5. Even more so than the other items I've had to guess about minor/major labels on the resource changes, realistically you probably want to merge them per-release. So if a major resource fix happened within a release then expect all of the resource fixes in that release combined to give a big boost (although possibly only for cases you don't use). Also I didn't list if it was CPU or memory, live with it :). 6. As a bunch of the features in yum are from plugins in yum-utils, the below list doesn't list them (and for instance a bunch of the resource fixes were to make plugins not request data they didn't need). yum overview changelog ====================== stats. ------ 3.0.1 => 3.2.8 - ~640 commits 67 files changed, 14,980 insertions(+), 6,643 deletions(-) 42 files changed, 5,785 insertions(+), 2,875 deletions(-) [main] Wed Nov 1 2006 => Mon Dec 3 2007 == ~13 months 3.2.8 => 3.2.19 - ~751 commits 75 files changed, 42,709 insertions(+), 4,469 deletions(-) 36 files changed, 7,036 insertions(+), 2,474 deletions(-) [main] Mon Dec 3 2007 => Tue Aug 26 2008 == ~9 months 3.0.1 => 3.2.19-10 - ~1,433 98 files changed, 56,917 insertions(+), 10,131 deletions(-) 46 files changed, 12,069 insertions(+), 4,388 deletions(-) [main] Wed Nov 1 2006 => Fri Sep 26 2008 == ~23 months [main] = yum rpmUtils bin *.py key --- * = Upstream release a = minor API addition A = major API addition c = compatability (with older python/sqlite/etc.) f = minor feature (Ie. input) F = major feature u = minor UI change (Ie. output) U = major UI change r = minor resource reduction R = major resource reduction t = updated translation T = new translation Type Summary * HEAD - 78 commits - 2009-06-30 u Allow shell like quotes in urls, in config. u Don't allow installing pkgs. obsoleted by installed. R Speed up searchFiles() (provides */gedit). R Speed up installs with lots of providers (install font(:lang=en)). a Allow callers to set most of the repo. dir. attrs. u Fix --color=off u Let aliases be used in shells. U Show reinstall/downgrade in listTransaction(). u Tidy up reinstall messages on problems. aR Change exclude backend (make includepkgs much faster). u Skip bad updateinfo files, instead of failing. A Add ArchStorage object etc. a Add setCacheDir() aU Allow config. vars. in cachedir/installroot/etc. U Add version command. a Add simpleVersion() functions. a Add checksum_type and checksum_data to yumdb. * 3.2.23 - 173 commits: Tue May 19 15:54:50 2009 -0400 48 files changed, 8,208 insertions(+), 4,789 deletions(-) 31 files changed, 1,375 insertions(+), 461 deletions(-) [main] a Will "checksum" repo. MD, if createrepo added them. u Can reinstall local packages. r Don't checksum local packages. a Make a default setting for GenericHolder. au Do skip-broken before postresolve_hook. U Auto. create yumdb data at the end of the transaction. a Add args_hook for plugins. u Pass packages instead of packagenames in requires/conflicts callbacks. u Convert pkgname to a package, when we can on rpm erase events. u install prov (Eg. MTA) will now prefer pkgs where the latest provides it. r Check filenames for ending in .rpm before we call stat(). r Speed up searchNames() when we've loaded all the pkg objects. u Allow reinstall to work on obsoleted packages. u Add messages about programs being in yum-utils. u Sort packages in returnByDep() and compare_providers(). u Fix message translation code (broken in 3.2.22 by ngettext change *sigh*). U Add yumdb_info data to list/etc. A Add yumdb_info to installed packages. u Change downloading to alphanumeric pkg sort. u Add grouped options. a Allow pkgtup as an arg to install/remove/update/etc. r Speed up text wrapping (info etc.). u Add metalink's latest updated time to repolist -v. r Don't load filelists for 'perl(*)' etc. r Cache verifyLocalPkg() successes. U Add downgrade command. u Let remove+install in shell, work like reinstall. u Output groupid in verbose mode of grouplist. * 3.2.22 - 155 commits: Tue Mar 24 16:07:58 2009 -0400 44 files changed, 6,755 insertions(+), 2,541 deletions(-) 29 files changed, 1,010 insertions(+), 513 deletions(-) [main] U Allow file provides globbing to hit multiple pkgs: "install '/usr/bin/*'". R Speedup some repo/conf stuff, yum list now firmly under a second. U Change users from caching to own dirs. Allow them to makecache. t Added support code for ngettext, no usage atm. ua Allow mirrorlist to point to metalink data. r Speedup returnLeafNodes(). u Output message about possible ways forward, when depsolving fails. u Sort lots of things internally, so the fail the same ways across machines. ur Skip ftp URLs for hosts we have http URLs for. a Allow getCacheDir() to use "temporary" dirs. a pkg.verify() now works with non-md5 checksums. u Add highlighting for update/etc. showing which pkgs are on disk. u Move some "verbose" messages to be "debug only". u Show groupid in verbose mode of groupinfo. a Make the directory attrs. magic properties. u Fixup "preload" when using getCacheDir() cache directories. u Move to 6h default for metadata_expire. u Don't print a download total time, if there were errors. a Complete support for sha256, and make it the default (need hashlib). u Use better "providers resolution" algo. on install by dep. a Add preconf, to be used instead of _getConfig() (compat. function exists). r Don't limit obsoletes to newest on install, when it doesn't matter. u Output transaction details, in quiet mode, when assumeyes isn't on. * 3.2.21 - 131 commits: Fri Feb 8 14:03:54 2009 -0500 40 files changed, 7,044 insertions(+), 4,058 deletions(-) 23 files changed, 1,301 insertions(+), 322 deletions(-) [main] u Can include the same file in multiple config. sections. U Write a usable, utf8 aware, textwrap for "info" description and others. Ua Change the default for obsoletes processing to be true. a Work with the latest version of MM metalink support. U When --showduplicates is on, we'll now show reinstall available versions. t Update german. t Update polish. U Add configurable color/highlighting for list/info/groupinfo/search. U Add --color option, to force ANSI colors to pipe's etc. U Highlight list available data for newest/older/available. U Highlight list install "extra" packages. a Add reinstall_available and old_available to doPackageLists(). U Add reinstall command. u Dynamic columns in repolist, and never truncate the repoid. u Add Repo line into search -v output. u Do the update available highlighting in yum list installed. u Parse arguments to grouplist, to only matches (like list/etc.). t Update catalan. u check-update -v shows obsoletes. Au Add utf8_width() functions and use it to get nice output for non-en. * 3.2.20 - 104 commits: Mon Oct 27 16:11:52 2008 -0400 41 files changed, 7,519 insertions(+), 12,763 deletions(-) 20 files changed, 1,358 insertions(+), 428 deletions(-) [main] a Fix installed size for metadata/local packages. A Add timestamp_check option, so API users can turn off check. A Add revision/tags support to the repoMD object. u Change the downloading metadata text to use the index name. U Catch repo/mirror errors and revert, if possible. u Change internal progress bars to be dynamic. a Make yb.term.columns be a dynamic property. u Cleanup post transaction text. UFr Add metalink support to repos. a checksum() can do multiple algos. on a single file. u Add "maybe you meant" to update/remove. U Try and catch plugin exceptions. a Add ui_ properties to the comps. objects. U groupremove can now work wihout metadata from the repos. (needs group data) u Fix grouplist sorting, now uses display_order. u Dynamically size check-update. t Update french. au Sort group package names properly for XML/UI. u Use calcColumns in groupinfo, list. Tweak list obsoletes output. A Create calcColumns API for outputting dynamically sized columns of data. r Speed up includepkgs. a returnPackages() will now always filter to patterns. R Fix corner case of large (1000s) of exclude package names. U Emit warning and point to yum-complete-transaction, when needed. t Update german. aRU Allow special remove only transactions, which don't need network. * 3.2.19 - 57 commits: Tue Aug 26 15:41:47 2008 -0400 23 files changed, 2,667 insertions(+), 176 deletions(-) 18 files changed, 897 insertions(+), 174 deletions(-) [main] a Auto unlock on YumBase.__del__ R Change list extras to do O(1) lookups. a Don't allow repos. called "installed". r Don't do a single large excludeArch() query. r Don't checksum "old" .sqlite files in repos on open. r Only search the name field, if we can, for exclude/list/info/etc. r Don't walk all possible config. options. T Chinese translation added. u Fix "maybe you meant" to also include installed packages. u Fix "maybe you meant" with multiple installs to not output all packages. u Highlight installed applications that have updates, in list/info/groupinfo. A Revert the conditional API break from 3.2.18. a Do setup/close when we add/remove a repo object. U Dynamic size the fields in the Transaction text, and no chopping of text. aU Sort package requirements, this works around a few old "features". U Allow the syslog configuration to be altered. au Fix: yum list installed-only-pkg * 3.2.18 - 73 commits: Thu Aug 7 09:30:28 2008 -0400 26 files changed, 3,950 insertions(+), 630 deletions(-) 20 files changed, 1,183 insertions(+), 287 deletions(-) [main] AU Add @group cmd line support to install/update/remove. Au Add repo_gpgcheck support. u Fix for repolist/etc. to work with repo names that contain utf-8. a Add get_applicable_notices() for security plugin etc. u Add total download stats. line in command line. U Don't fail at arg. limit, do the cmd multiple times (search, list, etc.). u Give more info. when we fail the disk space checks. U Add --enableplugin option, this overrides --disableplugin. u Give nicer messages when we can't find things due to case sensitivity. U Add repo. stats. to "repolist -v". a Use hashlib when available, and allow sha256 when using it. a Add a yum.__version_info__ for easy testing. a selectGroup takes group_package_types and enable_group_conditionals. t German update. a remove has option to turn off "No package matched" warnings. u groupremove doesn't emit "No package matched" warnings. r Minor speedup for init. of lots of disabled repos. R Add a look-aside cache for the 666 requires on a single package problem. r Add skip_all optimization to a few more places. a Add simpleEnvraList() U Add groupinfo -v list the versions of packages (installed, or available) T Catalan translation added a Add RepoMD.timestamp u Use RepoMD.timestamp for timestamp checking, and tweak the error message a Add the XML MD generation calls from createrepo * 3.2.17 - 89 commits: Tue Jul 8 17:31:20 2008 -0400 27 files changed, 2,295 insertions(+), 1,327 deletions(-) 15 files changed, 676 insertions(+), 292 deletions(-) [main] u Don't die if mirrorlist fetching fails, and we have an old one. r Faster lookup for installed providers. ar Package version only comparison API, remove pkg.EVR usage. f Do real SQL escaping, so _ and % should dtrt everywhere now. r Do single load package creations for some SQL queries. UF Fix list to do matches ignoring case (broken since 3.2.10). AR Add searchNames() API to v. quickly convert group names to pkgs. U Make --version much more useful. u Do total progress resets, so it doesn't go astray on bad downloads. u Nicer error messages when groups aren't configured. u Always log in C locale time. U Wrap output for large packages names in "yum list" output. Ut Do specspo lookups for search/provides verbose output. u Add build/install/commit times to info output. R Speedup large prco data (needed for 1,000s of kernel provides) f Can now import multiple keys from a single gpg key file. u Tweak provides output to be more useful, and explain *bin/foo lookups. a postresolve hook runs after installonlyn magic. aFt Allow y/n in all locales as long as there is no overlap. aR Turn off SQL "fast" matching if given "lots" of terms. u Add number of packages in repo to repolist output, and total. * 3.2.16 - 4 commits: Fri May 16 08:12:14 2008 -0400 5 files changed, 32 insertions(+), 3 deletions(-) * 3.2.15 - 82 commits: Wed May 14 17:05:37 2008 -0400 32 files changed, 4,811 insertions(+), 1,883 deletions(-) 18 files changed, 474 insertions(+), 238 deletions(-) [main] u Allow ':' chars in repo id's (SuSE repos need this). R Undo pre-load for requires. r Don't look for file deps. when we don't have to. u Manage being behind a protected AP better for mirrorlists. Uc Work around so we accept 4 year old metadata (now non-std.) U Add comma/wildcard support to groups. t Update french. U More rpm magic to make C-c work again. u Don't chop translated names. u Internal progress bar tweaks to match current urlgrabber. U Download smallest packages first. UT Add translation names to grouplist/groupinfo. uA Add support for groups with the same name but differen ids. a Fix anaconda special exceptions. u Add "obsoleting" message. AU Fix "yum list install / extras" to work again with no args. TU Huge translation fixes, and fixes for for i18n tracebacks. TU Add gaftonmode to turn translations off. * 3.2.14 - 71 commits: Mon Apr 7 23:45:53 2008 -0400 34 files changed, 11,311 insertions(+), 5,235 deletions(-) 17 files changed, 626 insertions(+), 400 deletions(-) [main] U Add code to use "total progress" feature in Fedora urlgrabber a Add showdups arg. to "list/info" API. U Fix list available, for newer pkgs than in repos. t Update Italian t Update German t Update Polish t Update French u Fix "yum -c" etc. error messages uR Don't need to load repos for "yum list installed foo" U Make repolist command nicer r prco opts. T Add serbian r Use weakref to avoid circular refs. u Warn users if repomd is old r Add dropCachedData() to rpmsack Ar Push pkg search down to rpmsack ar Push pkg matching down to rpmsack a pkg.arch is now always 'src' for .src.rpm r don't create pkgs. for rpm tuple lists R don't keep all of rpmsack data in core * 3.2.13 - 59 commits: Thu Mar 20 10:29:41 2008 -0400 26 files changed, 5,362 insertions(+), 529 deletions(-) 15 files changed, 454 insertions(+), 180 deletions(-) [main] R Drop cached data, post transaction r remove old dcobj tracking u Plugins output f Disable plugins via. wildcard ar Speedup some glob checking R Pre-load all requires when depsolving aR Add packagesNewestBy* f Add cmd: clean expire-cache T Add italian u Use rpm's transaction problems data U Add headers to section headers to search command t Updated german c Work with python-sqlite-1.x again. T Add french F Add --showduplicates option * 3.2.12 - 79 commits: Mon Mar 3 13:31:43 2008 -0500 29 files changed, 9,321 insertions(+), 696 deletions(-) 17 files changed, 910 insertions(+), 458 deletions(-) [main] aF Full pkg.verify support R share data between pkgs FU Change compare_providers() to do more than just shortest wins f Obsoletes fixes, so install X actually installs Y F Pre-load system repo-data for non-root users T Add malay f Double pkgs in excludes fix t Updated norwegian T Add german f Super-H arch. support T Add brazilian T Add Euro. portuguese T Add polish T Add danish af package sorting uses rpm version sorting R exclude processing direct to SQL * 3.2.11 - 86 commits: Fri Feb 8 15:34:24 2008 -0500 37 files changed, 9,294 insertions(+), 2,545 deletions(-) 20 files changed, 1,138 insertions(+), 579 deletions(-) [main] FU i18n support f Change cmd: clean dbcache to remove xml too AF Fix pirut/API search multi versions problem AF Add reinstall f Create needed dirs. for logfile (chroot) U Plugins output F Support for comps.gz files AF Add multilib_policy config. R Speedup rpmsack FU Add committer/URL to info. a Add validate param. to getReposFromConfigFile() A Add pkg.verify() r Shared installed repo. u Fix nice help command * 3.2.10 - 5 commits: Thu Jan 24 23:50:09 2008 -0500 5 files changed, 71 insertions(+), 13 deletions(-) * 3.2.9 - 135 commits: Thu Jan 24 17:29:28 2008 -0500 33 files changed, 2,964 insertions(+), 801 deletions(-) 24 files changed, 1,572 insertions(+), 790 deletions(-) [main] U Add nice help command f Fix Group MD downloads. * 3.2.9 - not a _real_ upstream release AF Group MD downloads, mdpolicy config. aR list/info processing direct to SQL R Skip pkg processing incompat-arch repos u Add profiling option into main yum command Ru Don't search pkg.group and pkg.packager r Cache .lower() result in searches U Show already downloaded pkg sizes R Share prco data between pkgs U Wrap search output Au Add comparison ops to pkgs a Add allowed ranges to Int config. options u Change str(pkg) AF Make --skip-broken code core U Print full pkg names/repos in depsolving errors u Don't add log handlers twice aR Search processing direct to SQL r Don't use pkg.pkgtup for just pkg.arch R Don't resort transaction each loop iteration r Don't create arrays just to read-only iterate r Cache pkg.pkgtup R Cache hash(pkg) R Use pkg.pkgKey instead of pkg.pkgId R Don't create multiple instances of pkgs U Split cmd line options on comma, whitespace, etc. R Obsoletes speed ups R Don't create all the pkgs, just to get the number of them r Cache .lower() result in buildPkgRefDict() R Don't rebuild pkgobjlist, make simplePkgList() based on returnPackages() RU Change default metadata_expire from 30 mins to 90 mins. Af Add Seconds option, so you can do mirrorlist_expire = 1d etc. u Don't run an empty transaction fu Don't accept random stuff for y/N u Present sqlite errors as repo errors. u Fix disk space needed results u Fix gpg user id's * 3.2.8 - 88 commits: Mon Dec 3 12:37:02 2007 -0500 34 files changed, 2188 insertions(+), 408 deletions(-)