Version 4.27 - 4 May 2011, by Per Øyvind Karlsen - get the correct package filesize from header - fix proper return of 'src' as arch for src.rpms - fix confusion between %{sourcerpm} & %{sourcepackage} tags Version 4.26 - 3 May 2011, by Per Øyvind Karlsen - fix really odd issue with recognizing src.rpms Version 4.25 - 3 May 2011, by Per Øyvind Karlsen - start using gnu99 - fix some invalid free()s Version 4.24 - 3 May 2011, by Per Øyvind Karlsen - fix segfault caused by attempting to assign arch of wrong package Version 4.23 - 3 May 2011, by Per Øyvind Karlsen - check for termination signals so ie. that installs can be aborted with ^C - fix remaining memleaks - check that rpmdb was properly opened in read/write mode to prevent segfault if no write permissions Version 4.22 - 26 April 2011, by Per Øyvind Karlsen - add support for notriggers - add support for nofdigests - fix getting expected NVRA tag - fix possible breakage when trying to load non-existant dependency flags - fix provide flags not being loaded for headers read from rpm files Version 4.21 - 23 April 2011, by Per Øyvind Karlsen - fix a missing null terminator at end of @info@ string regression, causing random data to be appended at end of line Version 4.20 - 22 April 2011, by Per Øyvind Karlsen - merge in some DUDF changes from Alexandre Lissy - add disttag & distepoch to @info@ in synthesis for easier parsing Version 4.19 - 31 March 2011, by Per Øyvind Karlsen - fix regression caused by memleak fix in previous release Version 4.18 - 31 March 2011, by Per Øyvind Karlsen - fix memleak in URPM::Pkg->evr() - drop URPM::DB::close() and teardown properly by calling rpmcliFini() at exit - fix odd i586 specific bug triggering segfault with -fstack-protector (#61690) Version 4.17 - 30 March 2011, by Per Øyvind Karlsen - fix conversion to older hash database format resulting in "missing" package from rpmdb Version 4.16 - 29 March 2011, by Per Øyvind Karlsen - add setInternalVariable() for changing various variables for debugging etc. within rpmlib - support translate_message & raw_message options for URPM::Transaction->check() - support versioned suggests Version 4.15 - 19 Feb 2011, by Per Øyvind Karlsen - fix segfault when there's no provides in synthesis (ie. with src.rpm) Version 4.14 - 14 Feb 2011, by Per Øyvind Karlsen - use specified arch for packages to be removed, don't strip it away and remove every package if having multiple packages with same name and different arch - fix segfault when trying to open non-existing synthesis Version 4.13 - 24 Jan 2011, by Per Øyvind Karlsen - move disttag/distepoch pattern matching breakage hack into rpm - fix fetching EVR from rpm headers - fix evr extraction which broke for some packages with i586 synthesis - fix parsing of disttag from synthesis - add regression tests for tags extracted from synthesis & rpmdb Version 4.12 - 23 Jan 2011, by Per Øyvind Karlsen - order of %PROVIDEVERSION isn't always the same for all rpm versions synthesis is generated with, so locate it based on name, rather than hardcoding location assumption - enable automatic Berkeley DB log removal for URPM::DB::open() by default (#62271) Version 4.11 - 22 Jan 2011, by Per Øyvind Karlsen - fix URPM::Resolve::*_overlap() for packages having disttag - look for EVR of package at the first element of @provides@ rather than the last - replace incorrect usage of URPM::rpmvercmp on NVRA with rpmEVRcompare in URPM::Resolve::provided_version_that_overlaps() & URPM::Resolve::_find_required_package__sort() Version 4.10 - 21 Jan 2011, by Per Øyvind Karlsen - fix distepoch detection breakage with proper synthesis Version 4.9 - 21 Jan 2011, by Per Øyvind Karlsen - make URPM::Package::get_tag() handle NVRA tag for synthesis (fixing regression in previous version) Version 4.8 - 21 Jan 2011, by Per Øyvind Karlsen - fix a bug causing segfault when trying open a non-existing segfault which for some reaallly odd reason didn't get triggered before now - remove a last couple of remaining leftovers after db conversion - really include the workaround for removal issue that was accidentally omitted in the previous release - remove all indices for old rpmdb after conversion also when not doing rebuild Version 4.7 - 19 Jan 2011, by Per Øyvind Karlsen - work around package removal issue, resulting in "error: Invalid number of transaction elements." when using urpme on packages with distepoch. - add URPM::DB::archive() for transaction log cleaning - add URPM::DB::convert() for database conversion - add URPM::DB::info() to return berkeley db type & endianness Version 4.6 - 11 Jan 2011, by Per Øyvind Karlsen - revert missing db environment hack, proper fix has been done in rpm now - drop deprecated URPM::Pkg->header_filename - make URPM::Pkg->filename properly return the filename in synthesis, rather than trying to generate it from NVRA - add URPM::DB::close() Version 4.5 - 9 Jan 2011, by Per Øyvind Karlsen - ensure that a db environment with config & required directories exists for chroots before opening the rpmdb Version 4.4 - 6 Jan 2011, by Per Øyvind Karlsen - check URPM::Transactin::add() for errors and return them if any (#61746) - make URPM::Package::get_tag() & URPM::Package::get_tag_modifiers() accept string name of tags - URPM::DB::traverse_tag() & URPM::DB::traverse_tag_find() will now accept all available rpm tags Version 4.3 - 11 Dec 2010, by Per Øyvind Karlsen - fix issue with packages added to synthesis having disttag/disttag, but without those added to NVRA, leading to segfault - fix broken support for parsing hdlists, use rpmgi iterator from rpmlib to simplify code and get packages ordered as an extra benefit in the process. - URPM::Package::fullname will now always return six items for array in stead of four to make room for disttag & distepoch, arch will still be returned as last item (ie. array[5] in stead of array[3]) (#61702) - URPM::Package::files_md5sum() has been renamed to URPM::Package::files_digest() - fix NEVRA parsing of 'gpg-pubkey' Version 4.2 - 3 Dec 2010, by Per Øyvind Karlsen - fix URPM::Package::files() Version 4.1 - 19 Nov 2010, by Per Øyvind Karlsen - improve return value checking on headerGet() usage - fix update_provides_files with RPMTAG_OLDFILENAMES - ditch legacy compatibility use of headerPut() on FILENAME_TAG Version 4.0 - 11 Nov 2010, by Per Øyvind Karlsen - add support for uncompressed & xz/lzma compressed synthesis - fix URPM::DB::open() to work properly with relative paths - ditch legacy behaviour compatibility for packages without epoch, always promote epoch - pick up package name format from %_build_name_fmt rather than hardcoding it - add URPM::Package::evr() - add URPM::rpmEVRcmp() & URPM::rpmEVRcompare() - add regression tests for resolving - use rpmEVRcompare() from rpmlib everywhere - add full support for %distepoch/%disttag - refactorize code - rewrite for native rpm5 API (ditching rpm.org compatibility) Version 3.38 - 16 November 2010, by Joao Victor Martins - fix the key parsing to handle PEM encapsulated header portion (bug #61636) Version 3.37 - 20 October 2010 - fix crashing on undefined packages (#54521) Version 3.36 - 23 July 2010 - Fix wrong deferencement on HASH (warning triggered by perl 5.12) Version 3.35 - 23 April 2010 - when using auto-select, honour search-medias if some were specified Version 3.34.1 - 23 March 2010 - check selected packages for unsatisfied requires when a promoted package is backtracked and no replacement is found (#57224, Anssi Hannula) Version 3.34 - 24 February 2010 - check for conflicting selected packages before selecting a package (#57224) (by Anssi Hannula) Version 3.33 - 5 October 2009, by Christophe Fergeau - fix lookup of existing pubkeys (#53710) (by Pascal Terjan) Version 3.32 - 10 August 2009, by Christophe Fergeau - backtrack_selected: use set_rejected_and_compute_diff_provides for package removal (Anssi Hannula) - obey options (keep, nodeps) when unselecting current package in the case that was added in 3.31 (Anssi Hannula) Version 3.31 - 28 July 2009, by Christophe Fergeau - add support for querying %disttag & %distepoch (by Per Øyvind Karlsen) - clean up and bring back rpm5.org support (by Per Øyvind Karlsen) - keep track of sources for obsoleted/removed levels (#50666) Anssi Hannula) - keep psel/promote info and remove deadlocked pkg instead of aborting upgrade (#52105, Anssi Hannula) - _handle_conflicts: check all provides for conflicts, not just package name (#52135, Anssi Hannula) - unselect current package if an avoided package is already selected (#52145, Anssi Hannula) - do not try to promote to an older package (#52460, Anssi Hannula) - add a backtrack entry "conflicts" for avoided packages in backtrack_selected (#52153, Anssi Hannula) Version 3.30 - 11 May 2009, by Christophe Fergeau - rework public key handling since librpm behaviour has changed. It's no longer possible to tell it to add the same key multiple times which was causing weird "unable to import pubkey" messages when a mirror contains different pubkeys for the same key, fixes #50383 Version 3.29 - 27 March 2009, by Christophe Fergeau - fix regression introduced by fix for bug #47803 (fix by Anssi Hannula). Without this patch, urpmi got stuck in an infinite loop when trying to upgrade from 2008.1. Version 3.28 - 25 March 2009, by Christophe Fergeau - postpone user choices as much as possible to avoid asking the user unnecessary questions, (bug #48100, Anssi Hannula) Version 3.27 - 24 March 2009, by Christophe Fergeau - don't silently install suggests (bug #47934) - fix _handle_diff_provides in case of impossible-to-satisfy selected packages (bug #48223, Anssi Hannula) - check rep for another pkg providing X if the prev pkg gets removed due to a conflict (bug #47803, Anssi Hannula) Version 3.26 - 5 March 2009, by Thierry Vignaud - verify_signature: enable to check signatures against a chrooted rpmdb (especially important for installer where there's no rpmdb in / and thus no keys to check against) Version 3.25 - 16 January 2009, by Christophe Fergeau - previous fix for bug #46874 was bogus, really fix it this time Version 3.24 - 13 January 2009, by Christophe Fergeau - fix sorting choices on provided version (feature introduced in 3.08, but was not working if packages were coming from different repository) - when a "Requires:" can be fullfilled by several different packages and one of those packages is explicitly required by another package which is also being installed, silently choose this package instead of letting the choice up to perl-URPM user (fixes bug #46874) Version 3.23 - 12 December 2008, by Pascal "Pixel" Rigaux - fix bad free() (thanks to glibc for detecting it) Version 3.22 - 12 December 2008, by Pascal "Pixel" Rigaux - fix scriptlet failing: adapt to librpm4.6, rpmtsSetRootDir(ts, "") is forbidden Version 3.21 - 9 December 2008, by Pascal "Pixel" Rigaux - adapt to librpm4.6 - drop list_rpm_tag() Version 3.20 - 14 October 2008, by Pascal "Pixel" Rigaux - $trans->run can now return both the translated errors, and some parsable errors (useful for example to detect diskspace issues) Version 3.19 - 7 October 2008, by Pascal "Pixel" Rigaux - handle flag "replacefiles" Version 3.18 - 7 July 2008, by Pascal "Pixel" Rigaux - revert change introduced in 3.16 (it breaks too much, eg superuser--priority-upgrade.t test case), and introduce $state->{rejected_already_installed} instead Version 3.17 - 4 July 2008, by Pascal "Pixel" Rigaux - add traverse_tag_find(), removed_or_obsoleted_packages() - handle $state->{orphans_to_remove} in selected_size() and build_transaction_set() Version 3.16 - 26 June 2008, by Pascal "Pixel" Rigaux - when not selecting a package because already installed, put it in $state->{rejected} with flags {installed} Version 3.15 - 23 June 2008, by Pascal "Pixel" Rigaux - fix urpmi wrongly considering epochless conflicts to match any epoch in a case when urpmi should upgrade a conflicting package to an actually non-conflicting version (cf epochless-conflict-with-promotion urpmi test) (Anssi) Version 3.14 - 23 May 2008, by Pascal "Pixel" Rigaux - add is_package_installed() in URPM/Resolve.pm (to be used in urpmi 5.20) Version 3.13 - 20 May 2008, by Pascal "Pixel" Rigaux - do not ignore dropped provide from updated package (mdvbz#40842) Version 3.12 - 7 March 2008, by Pascal "Pixel" Rigaux - do allow to promoting a pkg even if it has unsatisfied require (since the code will then fix the unsatisfied require). fixes "big transaction" (cf urpmi split-transactions--strict-require.t test_efgh()) - rpm5.org port done (by Per Øyvind Karlsen) Version 3.11 - 26 February 2008, by Pascal "Pixel" Rigaux - restore FILENAME_TAG in generated hdlist (to be compatible with older distros where ->filename can rely on it) (thanks to Nanar) Version 3.10 - 26 February 2008, by Pascal "Pixel" Rigaux - add filesize to synthesis, add ->filesize to get it, and add selected_size_filesize() to compute the sum - allow urpmi to know a package was not selected because a newer version is installed (#29838) - handle new package providing xxx which conflicts with an installed package (#17106) - fix sort choices changed in perl-URPM 3.08 - allow fixing "using one big transaction" that occurs when using --keep (#30198) - do not add FILENAME_TAG and FILESIZE_TAG to hdlist anymore, deprecate ->header_filename, deprecate URPM::Build::parse_rpms_build_headers Version 3.08 - 25 February 2008, by Pascal "Pixel" Rigaux - sort choices on virtual package by provided version (#12645) Version 3.07 - 11 January 2008, by Pascal "Pixel" Rigaux - add URPM::Package->changelogs, a wrapper around ->changelog_time, ->changelog_name, ->changelog_text - resolve kmod requires even if first choice is a source dkms Version 3.05 - 8 January 2008, by Pascal "Pixel" Rigaux - fix regression in ->parse_rpm (introduced in 3.00) (was breaking genhdlist2 and mkcd) Version 3.04 - 20 December 2007, by Pascal "Pixel" Rigaux - fix regression in parse_pubkeys() (introduced in 3.00) (#36121) Version 3.03 - 14 December 2007, by Pascal "Pixel" Rigaux - suggests: handle both RPMTAG_SUGGESTSNAME (as done in SuSE and in Mandriva > 2008.0) and RPMTAG_REQUIRENAME + RPMSENSE_MISSINGOK (as done in Mandriva 2008.0) Version 3.02 - 14 December 2007, by Pascal "Pixel" Rigaux - fix "make test" on rpm 4.4.2.2 - fix rpm 4.5 support Version 3.01 - 11 December 2007, by Pascal "Pixel" Rigaux - add URPM::DB::verify() Version 3.00 - 11 December 2007, by Pascal "Pixel" Rigaux - replace ->import_needed_pubkeys and ->import_pubkey in favor of import_needed_pubkeys_from_file() and ->import_pubkey_file (! this breaks API !) - drop $package->upgrade_files() (unused for a long time afaik) - rpm.org HEAD support Version 2.10 - 22 November 2007, by Pascal "Pixel" Rigaux - much simpler --auto-select algorithm (fixes #35718, ie auto-selecting with strict-arch) (!! DANGEROUS CHANGE !!) - rpm 4.5 support (thanks to peroyvind) (#35323) Version 2.09 - 8 November 2007, by Pascal "Pixel" Rigaux - use a simple function to return simple string list from header (fixes getting >4096 long rpm changelogs) (!! static buffer size limitation in callback_list_str_xpush() should be fixed !!) Version 2.08 - 24 October 2007, by Pascal "Pixel" Rigaux - fix build on rpm 4.4.2.2 Version 2.07 - 1 October 2007, by Pascal "Pixel" Rigaux - prefer precompiled kmod packages corresponding to installed kernels - don't resolve suggested virtual packages if already installed (#34376) Version 2.06 - 28 September 2007, by Pascal "Pixel" Rigaux - also handle promotion via obsolete for conflicts Version 2.05 - 28 September 2007, by Pascal "Pixel" Rigaux - package promotion must respect strict_arch - enhance sorted graph by better taking into account conflicts from state->{rejected} (fixes "big transaction" in urpmi split-transactions--strict-require.t test) Version 2.04 - 27 September 2007, by Pascal "Pixel" Rigaux - handle promotion via obsolete, not only provides Version 2.03 - 20 September 2007, by Pascal "Pixel" Rigaux - fix bug doing "urpmi kernel-source" Version 2.02 - 18 September 2007, by Pascal "Pixel" Rigaux - prefer every kernel--devel- packages for which kernel-- is selected - fix regression in 2.00: we can't cache the platform, cache the result of is_arch_compat instead Version 2.01 - 14 September 2007, by Pascal "Pixel" Rigaux - fix bug occurring with --keep - fix regression in 2.00: keep_unrequested_dependencies is still used by installer. restore it, but must now be set trough $urpm->{keep_unrequested_dependencies} Version 2.00 - 13 September 2007, by Pascal "Pixel" Rigaux - speedup is_arch_compat (7 times faster) by keeping the platform in a cache - do not propose packages for non installed locales - pass the prefered choices to {callback_choices}: this allows urpmi to select all the prefered packages according to installed locales - handle promote for conflict from installed package (fixes test_gh() from urpmi split-transactions--promote test case) - handle promote from installed package which require a unselected package, whereas new package does not require it anymore (cf test_d & test_e from split-transactions--conflict urpmi test case) Version 1.80 - 3 September 2007, by Pascal "Pixel" Rigaux - fix bug in sort_graph (used by build_transaction_set) Version 1.78 - 31 August 2007, by Pascal "Pixel" Rigaux - fix dead-loop in build_transaction_set (#33020) Version 1.77 - 29 August 2007, by Pascal "Pixel" Rigaux - disable "dropping tags from rpm header" until we can safely use it Version 1.76 - 28 August 2007, by Pascal "Pixel" Rigaux - build_transaction_set: new sort algorithm which allow returning sets of circular dependent packages, taking into account obsoleted packages (fixes #31969). It may still fail in presence of conflicts - allow running transaction with justdb option - fix split_length > 1 (eg: "urpmi --split-length 2 a b c" will only install 2 pkgs) - spec2srcheader: workaround parseSpec returning a header where ->arch is set to %{_target_cpu} whereas we really want a header similar to .src.rpm (see #32824) Version 1.75 - 12 August 2007, by Pascal "Pixel" Rigaux - fix dropping tags from rpm header. it hasn't work since MDK8.1 and rpm 4.0. it may break urpmi!! but potentially allows a much smaller hdlist.cz :) Version 1.74 - 12 August 2007, by Pascal "Pixel" Rigaux - sort choices per media, then per version Version 1.73 - 11 August 2007, by Pascal "Pixel" Rigaux - allow running transaction with replagekgs option Version 1.72 - 10 August 2007, by Pascal "Pixel" Rigaux - modify parse_hdlist so that partial hdlist reading can be used (needed when some stuff is already done in the callback) Version 1.71 - 9 August 2007, by Pascal "Pixel" Rigaux - compilation fixes on rpm < 4.4.8 Version 1.69 - 9 August 2007, by Pascal "Pixel" Rigaux - "suggests" are no more handled as "requires" - resolve_requested support "suggests": a newly suggested package is installed as if required (can be disabled with option no_suggests) Version 1.68 - 3 August 2007, by Pascal "Pixel" Rigaux - add $trans->Element_version and $trans->Element_release Version 1.67 - 22 June 2007, by Olivier "Nanar" Thauvin - add osscore, archscore and platformscore function to URPM - is_platform_compat function to Pkg object - fix call to rpm function in spec2header() - fix some compilation warnings Version 1.66 - 2 July 2007, by Pascal "Pixel" Rigaux - fix --auto-select skipping some packages because of other packages providing a more recent version, but no obsolete between those packages. the fix is to revert commit from Aug 2002: "fixed propable old package (according provides) requested by request_packages_to_upgrade." Version 1.65 - 22 June 2007, by Olivier Thauvin - really fix arch_score evaluation Version 1.64 - 12 June 2007, by Pascal "Pixel" Rigaux - hack on $pkg->is_arch_compat to make it return true for noarch packages when using rpm 4.4.8 (#31314) Version 1.63 - 9 May 2007, by Pascal "Pixel" Rigaux - add $trans->Element_fullname Version 1.62 - 3 May 2007, by Pascal "Pixel" Rigaux - pass the virtual package name as a parameter to {callback_choices} in ->resolve_requested - add $trans->NElements and $trans->Element_name to be able to display name of uninstalled package in callback_uninst - fix b--obsoletes-->a and c--conflicts-->a prompting for upgrading a (need a fix in urpmi which rely on the $state->{rejected} to upgrade (-U) b instead of installing (-i) it) Version 1.60 - 8 March 2007, by Pascal "Pixel" Rigaux - more debugging hooks - create $urpm->packages_providing($name) and use it - create $urpm->packages_by_name($name) Version 1.59 - 1 March 2007, by Olivier Thauvin - rpm 4.4.8 adaptions - load rpm config files at module load, improve the mechanism Version 1.58 - 14 February 2007, by Pascal "Pixel" Rigaux - don't check signature and digest in ->traverse and ->traverse_tag (=> x15 speedup, ie 2.5 speedup on urpmi --auto-select and rpmdrake) Version 1.57 - 9 February 2007, by Pascal "Pixel" Rigaux - allow upgrading from noarch to x86_64 even if strict-arch Version 1.56 - 19 January 2007, by Pascal "Pixel" Rigaux - tell perl that strings from rpm headers are utf8 - add URPM::bind_rpm_textdomain_codeset() to set encoding of messages returned by rpmlib, and tell perl that those strings are utf8 - really use strict-arch by default on x86_64 Version 1.55 - 10 January 2007, by Pascal "Pixel" Rigaux - bug fix release - fix "not selecting foo-1 since the more recent foo-1 is installed" causing urpmi to try to remove the package it wants to install (#28076) Version 1.54 - 9 January 2007, by Pascal "Pixel" Rigaux - if we have a choice between foo-1 and bar-1 and foo-2 is installed, prefering bar-1 instead of foo-1 (otherwise we can hit: "the more recent foo-2 is installed, but does not provide xxx whereas foo-1 does", cf bug #27991) - bar is needed, foo-1 does provide bar, installed foo-2 does not provide bar: do not let the algorithm use foo-2 as if it also provides bar - allow understanding what ->resolve_requested is doing through a callback ($urpm->{debug_URPM}) - cleanup some code in ->resolve_requested - make the documentation for ->is_arch_compat more clear