Version 5.23 - 23 December 2019

- add support for synthesis compressed with zstd
- document URPM::Signature

Version 5.22 - 21 September 2018

- fix CPAN indexation (RT#119936)

Version 5.21 - 18 September 2018

- fix callback parameters doc 
- restore rpm-4.11.x compatibility

Version 5.20 - 16 September 2018

- restore support for rpm < 4.14.2

Version 5.19 - 14 September 2018

- add support for verify callback when installing (mga#23531)

Version 5.18 - 25 June 2018

- Don't select an obsolete package to resolve dependencies/conflicts
  (mga#23223)

Version 5.17 - 14 June 2018

- fix finding better pkg (mga#23037)
- make logs more reproductible

Version 5.16 - 10 February 2018

- make clear URPM needs rpm >= 4.14
- restore compatibility with rpm-4.12.x & 4.13.x
- revert fix for segfault with rpm-4.14 when checking invalid signatures as rpm
  got fixed
- restore rpm-4.12.x compatibility
- restore rpm-4.13.x compatibility
- use ExtUtils::PkgConfig in order to get rpm installed
- cpan testers:
  o add cflags reported by pkgconfig
    (needed for eg: FreeBSD where rpm is installed under /usr/local)
  o advertize the proper pkg for most distros
  o skip all rpmdb tests on Debian/Ubutun
  o skip failing tests on *BSD
- switch Urpm_verify_rpm() to use rpmReadPackageFile() to support back ignoring
  signatures with rpm 4.14 (mga#21886)

Version 5.15 - 3 October 2017

- testsuite:
  o fix segfault with rpm-4.14 when checking invalid signatures
  o revert workaround perl-5.26 vs librpm bug which results on exit cleanup

Version 5.14 - 7 September 2017

- use native 64bit integers instead of Math::Int64
  (needs perl >= 5.26.0-8.mga7)
    
Version 5.13 - 23 August 2017

- add support to rpm-4.14
  (thus breaking support for rpm <= 4.13)
- test failure:
  o fix test failure with perl-5.26
  o workaround perl-5.26 vs librpm bug which results on exit cleanup

Version 5.12 - 10 November 2016

- fix more compilation warnings

Version 5.11 - 20 October 2016

- fix some compilation warnings
- fix a crash introduced by mga#15353 fix if not in debug mode (mga#19618)

Version 5.10 - 18 October 2016

- support querying size of 4gb+ packages
- use 64bit for package size on 32bit too (mga#19571)

Version 5.09 - 16 October 2016

- don't crash if /etc/urpmi/skip.list RE is wrong (mga#15353)

Version 5.08 - 14 October 2016

- fix reporting problems when checking transaction
- fix reporting size on big packages (mga#19571)

Version 5.07 - 14 April 2016

- add support for "elem" callback
  (needs rpm >= rpm-4.13.0-0.rc1.28)
- don't push $fullname to callback stack
  (need a new urpmi)

Version 5.06 - 12 April 2015

- fix upgrade when package's in several media (mga#15350)

Version 5.05 - 26 February 2015

- fix a segfault when callbacks don't get a header

Version 5.04 - 26 February 2015

- callbacks now get pkg name instead of just pkg id
  thus fixing unknown package name on erases (mga#15032)

Version 5.03 - 14 November 2014

- add a missing PUTBACK in traverse_tag_find()
- handle non numeric returns for traverse_tag_find callback (warning fix)

Version 5.02 - 26 October 2014

- add >recommends method (mga#14376)

Version 5.01 - 23 October 2014

- fix crashing in pthread when using log callback with rpm-4.12 (mga#14172)

Version 5.00 - 12 September 2014

- make it compatible with rpm-4.12.0
- use new recommends tags instead of suggests ones
- rename "suggests" method as "recommends_nosense"
- add support for generating @recommends@ lines instead of @suggests@ ones in
  synthesis
- rename *suggests* subs as *recommends*
- rename "no_suggests" option as "no_recommends"
- {suggested} is renamed {recommended} in state

Version 4.31 - 27 June 2014

- compare(): croak if used on URPM::Package object (mga#12766)
- enhanced doc
- kill support for kernel-*source-stripped

Version 4.30 - 1 May 2014

- fix 64k size limit on provides size that break installing 32 bit kernel for
  drakx-installer-binaries
- fix a warning in debug mode

Version 4.29 - 5 November 2013

- enhanced doc
- "implement" create_transaction() in --env case
- $trans->order: add support for "deploops" option

Version 4.28 - 3 October 2013

- adapt to perl-5.18 random hash keys ordering
  now find_required_package() always sort matching packages by their names
  before sorting them by arch and score
- coverity fixes

Version 4.27 - 22 March 2013

- fix selecting right DKMS flavor (mga#9172)

Version 4.26 - 9 February 2013

- add basic support for --downgrade (mga#6655)

Version 4.25 - 5 February 2013

- fix retrieving payload format

Version 4.24 - 3 February 2013

- enhanced doc
- enable to report script & I/O errors

Version 4.23 - 20 January 2013

- fix scoring locale packages

Version 4.22 - 17 December 2012

- rpm-4.11 fixes:
  o fix compiling with it
  o prevent creating empty transactions in rare cases
    (that cause rpm to abort on assert while creating a new pool)

Version 4.21.1 - 7 December 2012

- fix EVR() on packages from rpmdb (was ok on synthesis ones) (mga#7739)

Version 4.21 - 4 December 2012

- prefer package from first medium when same NEVR exists in several media
  (thus prefering 64bit media over 32 bit ones) (mga#7524)

Version 4.20 - 3 December 2012

- fix a rare segfault

Version 4.19 - 2 December 2012

- kill pkg->disttag (unused, introduced for rpm5 prior to the fork)
- reduce code size

Version 4.18 - 21 November 2012

- further bump threshold for detecting looping forever
- workaround a segfault (mga#8158)

Version 4.17 - 19 November 2012

- bump threshold for detecting looping forever (mga#8106)
- drop header_filename (long obsolete, no more use)

Version 4.16 - 16 November 2012

- prevent urpmi from looping forever when some packages are broken

Version 4.15.1 - 11 October 2012

- drop support for repackage (non working since rpm-4.6 in 2009)

Version 4.15 - 26 September 2012

- API:
  o add EVR method
  o remove long deprecated find_chosen_packages() & find_candidate_packages()
  o rename find_candidate_packages_() as find_candidate_packages()

Version 4.14 - 21 September 2012

- API: add resolve_requested_suggests()
- slightly increase testsuite coverage
- update outdated doc 

Version 4.13 - 23 August 2012

- add an alias to Pkg_files to only list doc files. This avoids pushing more 
  than 50k strings on the stack to check if texmf has a README.urpmi

Version 4.12 - 11 August 2012

- do not try to parse current pointer when the line is invalid or
  empty (detected by valgrind)
- don't read/write after the string when the synthesis is slightly
  malformed

Version 4.11 - 10 August 2012

- drop compatibility with urpmi <= 4.5-13mdk (2004-07-09)
- fix arch of spec headers (regression introduced in 4.8)

Version 4.10 - 29 June 2012

- really enable to traverse rpm db by fullname

Version 4.9 - 25 June 2012

- fix setting rflags on packages (mga#6532)

Version 4.8 - 22 June 2012

- enable to read xz & bzip2 compressed synthesis
- internal cleanups
- ranges_overlap(): use rpm to compute whether it overlaps or not

Version 4.7 - 19 June 2012

- workaround changes in rpm-4.10.0 leaving us to leak fds (mga#6453)

Version 4.6 - 18 June 2012

- drop 'direction' parameter in obsoletes_overlap() & provides_overlap()
- fix default 'direction' for provides_overlap()
  (regression in URPM-4.2)
- internal cleanups

Version 4.5 - 17 June 2012

- drop support for old mdv2008.0 suggests (RPMTAG_REQUIRENAME + RPMSENSE_MISSINGOK)
- internal cleanups

Version 4.4 - 15 June 2012

- internal cleanups
- obsoletes_overlap(), ranges_overlap(): drop unused 'nopromotion' parameter
  (always hardcoded to 1 at least for 5 years)

Version 4.3 - 14 June 2012

- fix a very old segfault in unused code
- internal cleanups
- reduce code size

Version 4.2 - 13 June 2012

- clean DB API (needs a new urpmi)
- internal cleanups
- reduce code size

Version 4.1 - 11 June 2012

- drop import_pubkey function (dead for 5 years)
- fix importing pubkeys with rpm-4.10.0 (eg: when adding media)

Version 4.0 - 8 June 2012

- drop URPM::Query (broken for years)
- drop support for rpm-4.8.x
- kill functions unimplemented for years
- reduce code size

Version 3.40 - 16 March 2012

- add URPM::traverse_tag_find() for urpme --env

Version 3.39 - 27 February 2012

- do not add FILENAME_TAG to hdlist anymore (unused since mdv2008)
- fix for a rare crash (mga#4425)
- put real package file sizes in synthesis

Version 3.38.8 - 07 February 2012

- switch from forking unpacker to using librpm

Version 3.38.7 - 07 February 2012

- cleanups
- fix computing size of added/freed disk space when updating involves removing
  some packages (mga#4427)
- really prefer packages from first media, thus fixing downloading noarch
  packages from 32 bit repository (mga#1603)

Version 3.38.6 - 15 January 2012

- support kernel 3.x in kmod resolution

Version 3.38.5 - 19 December 2011

- fix parsing a spec file with rpm-4.9
  (regression introduced when adding support for rpm-4.9)
- enable to traverse db by fullname
- fix slow matching of individual regexes for skipping dependencies by creating
  a large regex to match them all at once (mdv#61389, Shlomi Fish)

Version 3.38.4 - 17 September 2011

- fix calling method in string
  (spoted by perl_checker, introduced in revision mga#267800 ("honour search
   medias when using --auto-select") but teuf on Fri Apr 23 2010

Version 3.38.3 - 12 September 2011

- fix urpmi segfaulting on 'urpmi foobar.spec' when some files are missing

Version 3.38.2 - 09 September 2011

- fix spec2srcheader() for rpm-4.9.x

Version 3.38.1 - 16 November 2010

- fix crashing while removing several packages (#248)
- enable to compile with rpm-4.9.x

Version 3.38 - 16 November 2010

- fix the key parsing to handle PEM encapsulated header portion (bug
  #61636)

Version 3.37 - 20 September 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-<flavor>-devel-<version> packages for which
  kernel-<flavor>-<version> 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

Version 1.53 - Jan 08 2007, by Pixel <pixel@mandriva.com>
- add missing files to the tarball to allow make test
- get rids of some "used of uninitialized value"

Version 1.52 - Dec 04 2006, by Pixel <pixel@mandriva.com>
- much stricter synthesis parsing:
  o fail on first error,
  o correctly handle gzread errors,
  o correctly handle parsing another synthesis after a buggy one

Version 1.51 - Dec 01 2006, by Pixel <pixel@mandriva.com>
- ensure verify_signature, parse_rpm and update_header do not segfault on weird rpm

Version 1.50 - Nov 30 2006, by Pixel <pixel@mandriva.com>
- fix segfault when using --excludepath (Thierry Vignaud)

Version 1.49 - Nov 24 2006, by Pixel <pixel@mandriva.com>
- strict-arch should not imply that noarch can't upgrade the real arch (#22558)

Version 1.48 - Nov 21 2006, by Pixel <pixel@mandriva.com>
- default to strict-arch on 64bits (tvignaud)
- handle empty hdlist.cz/synthesis.cz (in build_hdlist, build_synthesis, parse_hdlist, parse_synthesis)
- parse_rpms_build_headers: allow asking for packing (and so fixing an error in urpmi)
- documentation & comments enhancement

Version 1.47 - Oct 18 2006, by Rafael Garcia-Suarez <rgarciasuarez@mandriva.com>
- Ignore self-obsoletes (Pixel)
- Fix a bogus check, avoids some infinite loops

Version 1.46 - Sep 08 2006, by Rafael Garcia-Suarez <rgarciasuarez@mandriva.com>
- prefer stripped kernel source in choices list (needs to be refined)
- fix URL in spec file

Version 1.45 - Aug 09 2006, by Rafael Garcia-Suarez <rgarciasuarez@mandriva.com>
- fix a FD leak (P.Terjan); fix urpmi --strict-arch with SRPMS; cleanup

Version 1.44 - Jun 12 2006, by Rafael Garcia-Suarez <rgarciasuarez@mandriva.com>
- Fixes for rpm 4.4.6

Version 1.43 - May 23 2006, by Rafael Garcia-Suarez <rgarciasuarez@mandriva.com>
- Fix urpmi .spec by loading macros beforehand (Olivier Thauvin)

Version 1.42 - May 22 2006, by Rafael Garcia-Suarez <rgarciasuarez@mandriva.com>
- Fix FD leak (Pascal Terjan)

Version 1.41 - May 02 2006, by Rafael Garcia-Suarez <rgarciasuarez@mandriva.com>
- Use more recent defines from the rpmlib
- Add a function to traverse transactions

Version 1.40 - Mar 15 2006, by Rafael Garcia-Suarez <rgarciasuarez@mandriva.com>
- Fixes for rpm 4.4.5
- Fix traversing rpmdb for "triggeredby" relationship

Version 1.39 - Mar 07 2006, by Rafael Garcia-Suarez <rgarciasuarez@mandriva.com>
- More memory protection
- Fix gcc options

Version 1.38 - Mar 06 2006, by Rafael Garcia-Suarez <rgarciasuarez@mandriva.com>
- Fix deallocation of rpm transactions

Version 1.37 - Mar 03 2006, by Rafael Garcia-Suarez <rgarciasuarez@mandriva.com>
- Rewrite verify_rpm(), which wasn't working with recent rpms
  (note incompatible API change)
- New function verify_signature()
- Make sure -fno-strict-aliasing is used for compilation
- More docs

Version 1.36 - Feb 13 2006, by Rafael Garcia-Suarez <rgarciasuarez@mandriva.com>
- Add flag ignorearch for installations

Version 1.35 - Feb 10 2006, by Rafael Garcia-Suarez <rgarciasuarez@mandriva.com>
- repackage flag bug fix

Version 1.34 - Feb 10 2006, by Rafael Garcia-Suarez <rgarciasuarez@mandriva.com>
- Add $pkg->installtid method
- Doc nits, code cleanup
- No need for an explicit dependency on perl-base

Version 1.33 - Feb 09 2006, by Rafael Garcia-Suarez <rgarciasuarez@mandriva.com>
- Add repackage flag to run transactions

Version 1.32 - Jan 25 2006, by Rafael Garcia-Suarez <rgarciasuarez@mandriva.com>
- Minor modification to spec2srcheader()

Version 1.31 - Jan 19 2006, by Rafael Garcia-Suarez <rgarciasuarez@mandriva.com>
- New function spec2srcheader() (Olivier Thauvin)

Version 1.30-2mdk - Jan 06 2006, by Rafael Garcia-Suarez <rgarciasuarez@mandriva.com>
- Rebuild for rpm 4.4.4
- Fix a regression test

Version 1.30 - Dec 07 2005, by Rafael Garcia-Suarez <rgarciasuarez@mandriva.com>
- Fix epoch comparison bug
- Be compatible with rpm 4.4.3
- Add a URPM::Package::dump_flags debug method
- C code and makefile cleanup
- Don't require bzip2 anymore

Version 1.29 - Nov 02 2005, by Rafael Garcia-Suarez <rgarciasuarez@mandriva.com>
- Don't require packdrake, use MDV::Packdrakeng instead
- Support for --ignoresize

Version 1.28 - Oct 03 2005, by Rafael Garcia-Suarez <rgarciasuarez@mandriva.com>
- add some options to parse_rpm (nomd5, nopayload) (Olivier Thauvin)
- Build process cleanup

Version 1.27 - Sep 09 2005, by Rafael Garcia-Suarez <rgarciasuarez@mandriva.com>
- make add_macro quote embedded newlines. add_macro_noexpand now works like
  the previous version (i.e. like in the rpmlib)

Version 1.26 - Sep 01 2005, by Rafael Garcia-Suarez <rgarciasuarez@mandriva.com>
- Add noscripts option to run transactions

Version 1.25 - Aug 23 2005, by Rafael Garcia-Suarez <rgarciasuarez@mandriva.com>
- Better handle bad file descriptors returned by transaction callbacks (Pixel)
- Doc fixes

Version 1.24-3mdk - Aug 18 2005, by Rafael Garcia-Suarez <rgarciasuarez@mandriva.com>
- Allow to rebuild under non-C locales
- Doc nits

Version 1.24 - Jun 30 2005, by Rafael Garcia-Suarez <rgarciasuarez@mandriva.com>
- Add rpmErrorWriteTo() and rpmErrorString()

Version 1.23 - Jun 16 2005, by Rafael Garcia-Suarez <rgarciasuarez@mandriva.com>
- add setVerbosity function

Version 1.22 - Jun 07 2005, by Rafael Garcia-Suarez <rgarciasuarez@mandriva.com>
- Add make_delta_rpm function

Version 1.21 - May 31 2005, by Rafael Garcia-Suarez <rgarciasuarez@mandriva.com>
- Add the URPM::Package::payload_format method

Version 1.20 - May 04 2005, by Rafael Garcia-Suarez <rgarciasuarez@mandriva.com>
- Adaptations for rpm 4.4.1 (Olivier Thauvin)
- More deprecation for RPMSENSE_PREREQ
- Remove rpm 4.0 support
- when no preferred locale is found, put locales-en in front of choice list
  (bug #15628)

Version 1.11 - Mar 07 2005, by Rafael Garcia-Suarez <rgarciasuarez@mandrakesoft.com>
- Speed optimisation for updating media

Version 1.10 - Mar 02 2005, by Rafael Garcia-Suarez <rgarciasuarez@mandrakesoft.com>
- Prepare for obsolescence of PreReq rpm tag, introduce equivalent
  RPMSENSE_SCRIPT_* tags

Version 1.09 - Feb 15 2005, by Rafael Garcia-Suarez <rgarciasuarez@mandrakesoft.com>
- Force recomputation of rejected packages when deleting some in installation
  dependency resolution

Version 1.08 - Feb 11 2005, by Rafael Garcia-Suarez <rgarciasuarez@mandrakesoft.com>
- Add macro handling code (O. Thauvin)

Version 1.07-3mdk - Jan 21 2005, by Rafael Garcia-Suarez <rgarciasuarez@mandrakesoft.com>
- Error handling nits.

Version 1.07-2mdk - Dec 13 2004, by Rafael Garcia-Suarez <rgarciasuarez@mandrakesoft.com>
- Require packdrake (and no longer rpmtools)

Version 1.07 - Dec 13 2004, by Rafael Garcia-Suarez <rgarciasuarez@mandrakesoft.com>
- Now returns the list of chosen packages sorted by descending version.

Version 1.06 - Dec 09 2004, by Rafael Garcia-Suarez <rgarciasuarez@mandrakesoft.com>
- Don't fork a packdrake to build hdlists anymore, use Packdrakeng.pm instead.
- Remove unused requires.
- Add ChangeLog in documentation.

Version 1.05 - Nov 25 2004, by Rafael Garcia-Suarez <rgarciasuarez@mandrakesoft.com>
- Allow to use non-contiguous selection ranges (Olivier Thauvin)

Version 1.04 - Nov 10 2004, by Rafael Garcia-Suarez <rgarciasuarez@mandrakesoft.com>
- More info reported about failures in dependency resolution.

Version 1.03-2mdk - Oct 27 2004, by Rafael Garcia-Suarez <rgarciasuarez@mandrakesoft.com>
- Support for urpmi --strict-arch option
- Multiarch fix (Gwenole Beauchesne)
- Don't use $TMPDIR if not writable

Version 1.03 - Aug 29 2004, by Olivier Thauvin <thauvin@aerov.jussieu.fr>
- add rpmvercmp binding (from perl-Hdlist)

Version 1.02 - Aug 24 2004, by Rafael Garcia-Suarez <rgarciasuarez@mandrakesoft.com>
- From now, never promote epochs in comparing versions.

Version 1.01 - Aug 11 2004, by Rafael Garcia-Suarez <rgarciasuarez@mandrakesoft.com>
- Better fix for packages that obsolete themselves (François Pons)
- Protection against broken packages with bad fullnames (with an "@")

Version 1.00 - Aug 02 2004, by Rafael Garcia-Suarez <rgarciasuarez@mandrakesoft.com>
- Protection against packages that obsolete themselves.
- Backwards compatibility with perl 5.6.
- Cleanups.

Version 0.99 - Jul 30 2004, by Rafael Garcia-Suarez <rgarciasuarez@mandrakesoft.com>
- A small modification in the algorithm that searches for virtual provides:
  don't give a choice between several packages that are already installed.

Version 0.98 - Jul 22 2004, by Rafael Garcia-Suarez <rgarciasuarez@mandrakesoft.com>
- Add a function URPM::stream2header()

Version 0.97 - Jul 14 2004, by Olivier Thauvin <thauvin@aerov.jussieu.fr>
- Generate man page

Version 0.96 - Jul 12 2004, by Rafael Garcia-Suarez <rgarciasuarez@mandrakesoft.com>
- Simplify the parsing of skip.list and inst.list files
- Segfault fixes by Olivier Thauvin

Version 0.95-2mdk - May 21 2004, by Rafael Garcia-Suarez <rgarciasuarez@mandrakesoft.com>
- Don't include older packages than the installed ones in the dependencies
  (except when urpmi is invoked with --allow-force)

Version 0.95 - May 06 2004, by Rafael Garcia-Suarez <rgarciasuarez@mandrakesoft.com>
- Add a way to make some error messages non-fatal

Version 0.94-13mdk - Apr 30 2004, by Rafael Garcia-Suarez <rgarciasuarez@mandrakesoft.com>
- A few bugfixes
- Add the methods $pkg->queryformat() and $urpm->list_rpm_tag()
- More tests

Version 0.94-12mdk - Apr 21 2004, by Rafael Garcia-Suarez <rgarciasuarez@mandrakesoft.com>
- cleanup and documentation

Version 0.94-11mdk - Feb 25 2004, by Olivier Thauvin <thauvin@aerov.jussieu.fr>
- parse_rpm_build_headers

Version 0.94-10mdk - Dec  9 2003, by François Pons <fpons@mandrakesoft.com>
- added compability with RH 7.3.

Version 0.94-9mdk - Nov 17 2003, by François Pons <fpons@mandrakesoft.com>
- fixed bug preventing adding local media.

Version 0.94-8mdk - Nov 15 2003, by François Pons <fpons@mandrakesoft.com>
- added patch from Olivier Thauvin (new features).

Version 0.94-7mdk - Oct 13 2003, by François Pons <fpons@mandrakesoft.com>
- fixed search for package broken in full provides instead of
  simply better package version, so that pam-devel is upgraded
  to libpam0-devel for example.

Version 0.94-6mdk - Sep 10 2003, by François Pons <fpons@mandrakesoft.com>
- fixed diff provides on obsoleted provides still needed.

Version 0.94-5mdk - Sep 10 2003, by François Pons <fpons@mandrakesoft.com>
- fixed bad reference to ARRAY on promote.

Version 0.94-4mdk - Sep  5 2003, by François Pons <fpons@mandrakesoft.com>
- fixed diff provides generation to be always managed when
  requires have been completely handled.

Version 0.94-3mdk - Sep  2 2003, by François Pons <fpons@mandrakesoft.com>
- fixed updating with older package not properly handled.

Version 0.94-2mdk - Aug 22 2003, by François Pons <fpons@mandrakesoft.com>
- fixed potential deadlock on backtrack (use keep on the fly
  algorithm to complete backtracking).

Version 0.94 - Aug 21 2003, by François Pons <fpons@mandrakesoft.com>
- fix for pubkey name extraction (gc).
- updated code to be more adapted for both urpmi and DrakX
  in URPM::Signature.

Version 0.93-7mdk - Aug 20 2003, by François Pons <fpons@mandrakesoft.com>
- fixed diff provides to be ignored on obsoleted provides which caused
  resolver to choose bad package due to removed obsoleted provides.
- added URPM::Signature::compare_pubkeys to workaround rpm
  importation of key with modified armor.

Version 0.93-6mdk - Aug 19 2003, by François Pons <fpons@mandrakesoft.com>
- make URPM::Signature::import_armored_file independent from rpm.
- added URPM::import_pubkey in xs directly.

Version 0.93-5mdk - Aug 18 2003, by Pixel <pixel@mandrakesoft.com>
- perl_checker compliance

Version 0.93-4mdk - Aug 13 2003, by Guillaume Cottenceau <gc@mandrakesoft.com>
- provide URPM::Signature as well

Version 0.93-3mdk - Aug 11 2003, by François Pons <fpons@mandrakesoft.com>
- fixed limit case for string extraction from headers (files_md5sum).
- removed unsatisfied_requires2 from xs not used and not finished.

Version 0.93-2mdk - Aug 11 2003, by François Pons <fpons@mandrakesoft.com>
- fixed pubkey management, fixed importation of pubkey in rpmdb.

Version 0.93 - Aug  6 2003, by François Pons <fpons@mandrakesoft.com>
- added URPM::Signature for handling armored gpg file and
  internal rpm pubkey.
- take care of PreReq when building hdlist or synthesis files.
- removed id log during hdlist or synthesis creation.

Version 0.92-4mdk - Aug  4 2003, by François Pons <fpons@mandrakesoft.com>
- sanity check on transaction set (should be the same as
  normal selection, else something wrong has occured).
- updated with newer rpm with obsoletes fixed among others.

Version 0.92-2mdk - Jul 30 2003, by François Pons <fpons@mandrakesoft.com>
- fixed some missing unsatisfied in reason of rejected.
- fixed provide obsoleted which should not be taken into account
  when looking for obsoletes (arts problem).

Version 0.92 - Jul 28 2003, by François Pons <fpons@mandrakesoft.com>
- added keep option to URPM::resolve_requested to avoid removing
  packages.

Version 0.91-14mdk - Jul 24 2003, by François Pons <fpons@mandrakesoft.com>
- fixed handling of kde packages being splitted with different
  names which obfuscated the resolution algorithm, difference
  of provides are now handled later (fifo).

Version 0.91-13mdk - Jul 24 2003, by François Pons <fpons@mandrakesoft.com>
- modified internal handling of string list to allow complex
  combined method in pure C in order to increase speed.
- added provides_overlap and obsoletes_overlap in XS to implement
  a scalar grep of ranges_overlap on provides or obsoletes.
- fixed a small typo in constant character in ranges_overlap which
  may have caused some strange result.

Version 0.91-12mdk - Jul 16 2003, by François Pons <fpons@mandrakesoft.com>
- fixed typo in regex handling in URPM::compute_flags.
- fixed cache contents not taken into account.

Version 0.91-11mdk - Jul 10 2003, by François Pons <fpons@mandrakesoft.com>
- improved URPM::compute_flags.
- started coding URPM::unsatisfied_requires in XS (as
  URPM::unsatisfied_requires2).

Version 0.91-10mdk - Jul  7 2003, by François Pons <fpons@mandrakesoft.com>
- fixed backtracking not applied on promotion which now ends
  up in removing the initial packages.
- promote and psel are propagated into selected hash.

Version 0.91-9mdk - Jul  7 2003, by François Pons <fpons@mandrakesoft.com>
- fixed provides from package not examined for looking into
  unsatisfied requires.
- fixed handling of promoteepoch (if B requires A and both A and B
  are new packages, promoteepoch can be activated).
- updated comments about promoteepoch management (it is touchy
  enough without adding obfuscation here).
- fixed (a lot of people should be very happy now) global unsatisfied
  requires examined, so that it should now be possible to keep a
  rpmdb with unsatisfied dependencies.

Version 0.91-8mdk - Jul  4 2003, by François Pons <fpons@mandrakesoft.com>
- removed handling of promoteepoch as it is specifically obscure
  in rpm and make urpmi crazy.

Version 0.91-7mdk - Jun 26 2003, by François Pons <fpons@mandrakesoft.com>
- fixed possible transaction set build even for empty selection.
- fixed whatrequires hash abnormally populated (no problem raised).
- added unsatisfied information to selected hash when nodeps option
  is given to URPM::resolve_requested.

Version 0.91-6mdk - Jun 19 2003, by François Pons <fpons@mandrakesoft.com>
- make sure callback options are taken into account only if a
  reference is given.
- make sure URPM::build_transaction_set do not create empty
  transaction.
- added source of promotion selection.

Version 0.91-5mdk - Jun 19 2003, by François Pons <fpons@mandrakesoft.com>
- added promote to backtrack data for more info.
- fixed visual glitches when a package has its selection backtracked
  whereas it is already installed.

Version 0.91-4mdk - Jun 18 2003, by François Pons <fpons@mandrakesoft.com>
- fixed installation of old package due to missing closure.
- fixed nodeps option to used for building transaction set.
- fixed too many from source propagated which were not legal.
- fixed bad conflicts listing.

Version 0.91-3mdk - Jun 18 2003, by François Pons <fpons@mandrakesoft.com>
- fixed obssoletes on virtual provides not taken into account.
- fixed option name given to URPM::build_transaction_set.
- fixed missing closure on rejected (first one).
- fixed bad disable closure on rejected.

Version 0.91-2mdk - Jun 17 2003, by François Pons <fpons@mandrakesoft.com>
- fixed promotion of epoch to be rpm 4.2 compliant :
   - added promotion boolean to URPM::ranges_overlap.
   - changed URPM::find_candidate_packages interface.
- fixed compilation on old rpm-4.0.4.

Version 0.91 - Jun 16 2003, by François Pons <fpons@mandrakesoft.com>
- added transaction set methods.
- added disable_obsolete flags to improve installation mode of
  packages, now handled by resolve_requested.
- obsoleted URPM::compute_skip_flags (now URPM::compute_flags).
- fixed rpmdb.t test when gpg pubkey has been imported in rpmdb.

Version 0.90-10mdk - Jun 12 2003, by François Pons <fpons@mandrakesoft.com>
- changed return value of verify_rpm to allow looking at key id.

Version 0.90-9mdk - Jun 11 2003, by François Pons <fpons@mandrakesoft.com>
- fixed problem in disable_selected (ordering of operations).

Version 0.90-8mdk - Jun  5 2003, by François Pons <fpons@mandrakesoft.com>
- cleaned code to be more perl portable.
- fixed severe bug on perl stack manipulation when using callback.
- fixed order return value.

Version 0.90-7mdk - Jun  5 2003, by François Pons <fpons@mandrakesoft.com>
- no_flag_update is no more used.
- added clever cache management when building headers.
- fixed disable_selected_unrequested_dependencies.
- fixed packages still required when their root requested
  was deselected (option keep_unrequested_dependencies not set).
- fixed too early closure of rejected package when an older one
  was selected.
- fixed some reasons of removing packages to be lost.

Version 0.90-6mdk - Jun 03 2003, by Warly <warly@mandrakesoft.com>
- add Pkg_buildtime to get RPMTAG_BUILDTIME

Version 0.90-5mdk - Jun  3 2003, by François Pons <fpons@mandrakesoft.com>
- fixed typo in parse_rpm method.

Version 0.90-4mdk - Jun  2 2003, by François Pons <fpons@mandrakesoft.com>
- added an option to disable unrequested dependencies when
  backtracking a selection.
- added an option to avoid deselecting package with broken
  dependencies.
- simplified update_header and parse_rpm methods.
- cleaned XS code.

Version 0.90-3mdk - May 28 2003, by Warly <warly@mandrakesoft.com>
- add license function for urpm->{depslist}[$id]
- fix Urpm_parse_rpm argument initialization (sytematically setting packing and keep_all_tags to zero)

Version 0.90-2mdk - May 26 2003, by François Pons <fpons@mandrakesoft.com>
- fixed URPM::resolve_requested return value (list of package
  selected by this call).
- fixed backtrack reason to be stored in rejected hash (so that
  urpmi can say why a package is not selected).

Version 0.90 - May 23 2003, by François Pons <fpons@mandrakesoft.com>
- extended URPM::search with newer/modified options.
- fixed URPM::Package::compare_pkg to work with identical
  arguments.
- modified requested flag sense (now indicates a wish for
  a requested package but not necessary required or selected).
- obsoleted URPM::resolve_closure_ask_remove by
  URPM::resolve_rejected which compute closures on installed
  packages (used for obsoleted and removed resolution).
- obsoleted URPM::resolve_unrequested by URPM::disable_selected
  which is faster and simpler to invoke.
- newer method have been defined, much notably handle backtrack.
- keep_state is no more used for URPM::resolve_requested.
- obsoleted, ask_remove, ask_unselect have been obsoleted by
  rejected and backtrack facility in state.
- avoid returning number of transaction run problems.
- added compatiblity method to avoid breaking urpmi, rpmdrake and
  DrakX completely (though there could be some strange results).

Version 0.84 - May 16 2003, by François Pons <fpons@mandrakesoft.com>
- removed provided hash from state and added use_sense value to
  provides hash values when using sense.
- removed installed hash from state and added cached_installed
  which is no more updated and cached installed provides without
  sense associated.
- allow removing of package by giving the fullname (with arch).
- changed ask_remove hash keys to be fullname compliant.
- light improvement of speed (10%% faster on dependencies
  computation) and memory usage (provided hashes removed).

Version 0.83-4mdk - May 14 2003, by François Pons <fpons@mandrakesoft.com>
- completed URPM::Transaction::verify_rpm for signature checking
  and added a lot of more options (including db to avoid openning
  new transaction and new database (rpm 4.2 behaviour)).

Version 0.83-3mdk - May 13 2003, by Pons François <fpons@mandrakesoft.com>
- fixed URPM::Transaction::check and URPM::Transaction::run
  when returning error list.

Version 0.83-2mdk - May 12 2003, by Guillaume Cottenceau <gc@mandrakesoft.com>
- provide perl packages URPM::Resolve and URPM::Build since the
  perl packages are URPM for object export

Version 0.83 - Apr 29 2003, by François Pons <fpons@mandrakesoft.com>
- added preliminary support for rpm 4.2, there is lack of
  signature checking but interface of URPM is kept.

Version 0.82-4mdk - Apr 24 2003, by François Pons <fpons@mandrakesoft.com>
- intergrated another patch from Olivier Thauvin to add method
  for manipulating source rpm to URPM::Package (buildarchs,
  excludearchs, exclusivearchs).

Version 0.82-3mdk - Apr 22 2003, by François Pons <fpons@mandrakesoft.com>
- integrated patch from Olivier Thauvin to add misc method to
  URPM::Package (packager, buildhost, url).

Version 0.82-2mdk - Apr 14 2003, by François Pons <fpons@mandrakesoft.com>
- fixed skip flag computation.

Version 0.82 - Apr 11 2003, by François Pons <fpons@mandrakesoft.com>
- added flag skip for each package, added URPM::Package::flag_skip
  and URPM::Package::set_flag_skip as well as compute_skip_flags.
- added excludedocs parameter for transaction.
- reduced maximal number of packages supported to a little more
  than 1 million (instead of 2 millions previously).
- fixed possible core dumps when string rpm tag are not present.

Version 0.81-13mdk - Mar 12 2003, by François Pons <fpons@mandrakesoft.com>
- fixed bug 3207 (consolidated avoided hash with removed and
  conflicting packages).

Version 0.81-12mdk - Mar 10 2003, by François Pons <fpons@mandrakesoft.com>
- fixed typo in search method.
- fixed wrong resolution of conflicts where an older package
  may be used whereas only a newer one should be tested.
- make it somewhat perl_checker clean.

Version 0.81-11mdk - Mar  3 2003, by François Pons <fpons@mandrakesoft.com>
- fixed duplicated filehandle not with close-on-exec flag
  which caused removable device to be locked on some case
  using urpmi.

Version 0.81-10mdk - Feb 27 2003, by François Pons <fpons@mandrakesoft.com>
- allow choices to return mulitple selection.

Version 0.81-9mdk - Feb 19 2003, by François Pons <fpons@mandrakesoft.com>
- handle titi sucks on libalsa2 which obsoletes itself.

Version 0.81-8mdk - Feb 13 2003, by François Pons <fpons@mandrakesoft.com>
- fixed compute_installed_flags to take of compatible arch.

Version 0.81-7mdk - Jan 23 2003, by François Pons <fpons@mandrakesoft.com>
- fixed unsatisfied requires of already selected package to
  an installed properties which is removed later.
- simplified weight propagation when building depslist (ordering).

Version 0.81-6mdk - Jan  6 2003, by François Pons <fpons@mandrakesoft.com>
- fixed avoiding package with virtual provides obsoleted by
  another package as this is not a true obsoletes (openssh).

Version 0.81-5mdk - Jan  6 2003, by François Pons <fpons@mandrakesoft.com>
- fixed bad filename generation (cause problem to genhdlist if
  renamed packages are existing).

Version 0.81-4mdk - Dec 20 2002, by Pixel <pixel@mandrakesoft.com>
- perl_checker fixes (syntax only)

Version 0.81-3mdk - Dec 18 2002, by Pixel <pixel@mandrakesoft.com>
- help perl_checker recognise packages used as classes

Version 0.81-2mdk - Dec 18 2002, by Pixel <pixel@mandrakesoft.com>
- perl_checker fixes

Version 0.81 - Dec 17 2002, by François Pons <fpons@mandrakesoft.com>
- little improve on traverse_tag with tag name whit --env.
- big improve on traverse_tag with tag whatrequires and
  whatconflicts with --env.
- fixed dependencies resolution when various different version
  of a package are available.

Version 0.80-2mdk - Dec 11 2002, by François Pons <fpons@mandrakesoft.com>
- removed dSP in XS (sound like perl doesn't like them a lot),
  this fixes urpmf problem of reading first hdlist.

Version 0.80 - Dec  5 2002, by François Pons <fpons@mandrakesoft.com>
- added %%options for parse_(hdlist|synthesis|rpm) to support
  callback (for urpmf in perl).
- added summary in synthesis when parsing (for urpmf --summary
  with synthesis).

Version 0.71 - Dec  3 2002, by François Pons <fpons@mandrakesoft.com>
- added options to URPM::Transaction::add to handle excludepath
  option of rpm.

Version 0.70-10mdk - Sep 17 2002, by François Pons <fpons@mandrakesoft.com>
- fixed some packages which may not be upgraded on call to
  request_packages_to_upgrade according to packages in depslist.

Version 0.70-9mdk - Sep  9 2002, by François Pons <fpons@mandrakesoft.com>
- select package already installed to be taken instead of proposing
  choice to the user.
- fixed bad test for first package of first synthesis to be chosen
  to be upgraded.

Version 0.70-8mdk - Sep  2 2002, by François Pons <fpons@mandrakesoft.com>
- added start and end options to request_packages_to_upgrade
  for DrakX to choose updated packages to upgrade.

Version 0.70-7mdk - Aug 30 2002, by François Pons <fpons@mandrakesoft.com>
- fixed the fix of split of package (5mdk).

Version 0.70-6mdk - Aug 30 2002, by François Pons <fpons@mandrakesoft.com>
- improved URPM::resolve_closure_ask_remove to keep track of
  removal path and size of package being removed.

Version 0.70-5mdk - Aug 29 2002, by François Pons <fpons@mandrakesoft.com>
- fixed split of package that could lead to excesive number of
  package proposed to be removed.

Version 0.70-4mdk - Aug 29 2002, by François Pons <fpons@mandrakesoft.com>
- fixed requires examination for right locales.

Version 0.70-3mdk - Aug 28 2002, by François Pons <fpons@mandrakesoft.com>
- setup state to know if an old package will be upgraded.
- added optional parameter to keep all tags from an rpm.
- added URPM::Package::changelog_* method.

Version 0.70-2mdk - Aug 26 2002, by François Pons <fpons@mandrakesoft.com>
- added more flags to URPM::Transaction::run (oldpackage, test).
- fixed choices to prefer right locales dependent packages.
- added avoided hash to avoid mixing choices when a lot of
  possible packages are available and split have been done
  (openjade bug reported on cooker).

Version 0.70 - Aug 23 2002, by François Pons <fpons@mandrakesoft.com>
- fixed search method to work correctly.

Version 0.60-8mdk - Aug 13 2002, by François Pons <fpons@mandrakesoft.com>
- fixed request_packages_to_upgrade no more working correctly.

Version 0.60-7mdk - Aug 12 2002, by François Pons <fpons@mandrakesoft.com>
- fixed bad behaviour of request_packages_to_upgrade if upgrade flag
  has been computed before.
- fixed propable old package (according provides) requested by
  request_packages_to_upgrade.

Version 0.60-6mdk - Aug 12 2002, by François Pons <fpons@mandrakesoft.com>
- simplified compute_installed_flags return value (used by DrakX).

Version 0.60-5mdk - Aug  9 2002, by François Pons <fpons@mandrakesoft.com>
- fixed package not selected to be upgraded (--auto-select of
  urpmi) when there are sense conflicts (initscripts).

Version 0.60-4mdk - Aug  9 2002, by François Pons <fpons@mandrakesoft.com>
- compute_installed_flags returns size of package present.
- fixed too large ask_remove closure due to missing provides of
  package.

Version 0.60-3mdk - Aug  7 2002, by François Pons <fpons@mandrakesoft.com>
- added read_config_files and verify_rpm methods.

Version 0.60-2mdk - Aug  6 2002, by François Pons <fpons@mandrakesoft.com>
- fixed typo on diff provides resolved (unable to search requiring
  packages if a sense was given).
- fixed unecessary choices asked to user.

Version 0.60 - Aug  5 2002, by François Pons <fpons@mandrakesoft.com>
- ask_remove list of package now reference id instead of pkg.
- removed conflicts state not used.
- fixed ask_unselect not taken into account if two successive
  requested resolution.
- ask_remove is now cleaned on unrequested resolution.
- avoid selecting conflicting packages when resolving packages
  to upgrade (--auto-select).
- use perl multi-threaded.

Version 0.50-6mdk - Jul 25 2002, by François Pons <fpons@mandrakesoft.com>
- fixed incomplete search of best requested packages.

Version 0.50-5mdk - Jul 25 2002, by François Pons <fpons@mandrakesoft.com>
- fixed stupid error in URPM/Build.pm.

Version 0.50-4mdk - Jul 24 2002, by François Pons <fpons@mandrakesoft.com>
- fixed another best package choice to avoid choosing package too
  early.
- fixed pre-required files not correctly fetched in provides when
  parsing synthesis file.
- fixed bad behaviour of unresolved_provides_clean.

Version 0.50-3mdk - Jul 24 2002, by François Pons <fpons@mandrakesoft.com>
- fixed typo causing difference of provides to be not examined.
- fixed best package as choice to avoid choosing package too early.
- fixed mulitple definition of same package being selected.

Version 0.50-2mdk - Jul 23 2002, by François Pons <fpons@mandrakesoft.com>
- fixed resolve_closure_ask_remove to really closure.
- changed unsatisfied_requires to use options hash.

Version 0.50 - Jul 23 2002, by François Pons <fpons@mandrakesoft.com>
- changed existing interface for resolve_requested and
  resolve_unrequested having the same signature.
- fixed ask_unselect may containing erroneous id after resolution.

Version 0.20-2mdk - Jul 23 2002, by François Pons <fpons@mandrakesoft.com>
- fixed unrequested code resolution.

Version 0.20 - Jul 22 2002, by François Pons <fpons@mandrakesoft.com>
- added remove new package if an older package is requested.
- fixed incomplete closure on ask_remove.
- added unrequested code resolution.

Version 0.11-2mdk - Jul 22 2002, by François Pons <fpons@mandrakesoft.com>
- added option translate_message to URPM::Transaction::run.
- fixed missing by package reference on transaction check error.

Version 0.11 - Jul 19 2002, by François Pons <fpons@mandrakesoft.com>
- added whatconflicts to traverse_tag.
- fixed semantic of flag_available (package installed or selected).

Version 0.10-2mdk - Jul 16 2002, by François Pons <fpons@mandrakesoft.com>
- extended selected and available flag to take care of base flag.
- improved resolve_requested (use keep_state) and delete
  requested key once taken into account.

Version 0.10 - Jul 15 2002, by François Pons <fpons@mandrakesoft.com>
- added search method for search from name.
- added composite flag_available method (installed or selected).

Version 0.09-2mdk - Jul 11 2002, by François Pons <fpons@mandrakesoft.com>
- fixed ask_unselect computation.
- added clear_state option to relove_requested (rollback state
  modification needed by DrakX).

Version 0.09 - Jul 10 2002, by François Pons <fpons@mandrakesoft.com>
- changed semantics of some package flags to extend usability and
  simplicity.
- added no_flag_update to resolve_requested to avoid modifying
  requested or required flag directly.
- added closure on ask_remove.
- removed requires on perl (only perl-base should be enough).
- fixed wrong unsatisfied_requires return value whit a given name.

Version 0.08-4mdk - Jul  9 2002, by François Pons <fpons@mandrakesoft.com>
- fixed too many opened files when building hdlist.

Version 0.08-2mdk - Jul  8 2002, by François Pons <fpons@mandrakesoft.com>
- fixed rflags setting (now keep more than one element).
- fixed setting of ask_unselect correctly.

Version 0.08 - Jul  8 2002, by François Pons <fpons@mandrakesoft.com>
- added transaction flags (equivalence to --force and --ignoreSize).
- simplified some transaction method names.
- added script fd support.

Version 0.07-2mdk - Jul  5 2002, by François Pons <fpons@mandrakesoft.com>
- fixed transaction methods so that install works.

Version 0.07 - Jul  4 2002, by François Pons <fpons@mandrakesoft.com>
- added transaction methods and URPM::Transaction type (for DrakX).
- obsoleted URPM::DB::open_rw and removed it.

Version 0.06-2mdk - Jul  3 2002, by François Pons <fpons@mandrakesoft.com>
- fixed virtual provides obsoleted by other package (means kernel
  is requested to be installed even if other kernel is installed).

Version 0.06 - Jul  3 2002, by François Pons <fpons@mandrakesoft.com>
- added header_filename and update_header to URPM::Package.
- added virtual flag selected to URPM::Package.
- added rate and rflags tags to URPM::Package.
- added URPM::DB::rebuild.
- fixed build of hdlist with non standard rpm filename.

Version 0.05-2mdk - Jul  1 2002, by François Pons <fpons@mandrakesoft.com>
- fixed selection of obsoleted package already installed but
  present in depslist.

Version 0.05 - Jun 28 2002, by François Pons <fpons@mandrakesoft.com>
- fixed ask_remove not to contains arch.
- removed relocate_depslist (obsoleted).

Version 0.04-6mdk - Jun 26 2002, by François Pons <fpons@mandrakesoft.com>
- fixed work around of rpmlib where provides should be at
  left position of rpmRangesOverlap.

Version 0.04-5mdk - Jun 18 2002, by François Pons <fpons@mandrakesoft.com>
- fixed wrong range overlap evaluation (libgcc >= 3.1 and libgcc.so.1).

Version 0.04-4mdk - Jun 13 2002, by François Pons <fpons@mandrakesoft.com>
- fixed too many package selected on --auto-select.

Version 0.04-3mdk - Jun 13 2002, by François Pons <fpons@mandrakesoft.com>
- fixed compare_pkg (invalid arch comparisons sometimes).
- added (still unused) obsolete flag.

Version 0.04-2mdk - Jun 13 2002, by François Pons <fpons@mandrakesoft.com>
- added ranges_overlap method (uses rpmRangesOverlap in rpmlib).
- made Resolve module to be operational (and usable).

Version 0.04 - Jun 11 2002, by François Pons <fpons@mandrakesoft.com>
- added Resolve.pm file.

Version 0.03-2mdk - Jun  6 2002, by François Pons <fpons@mandrakesoft.com>
- fixed incomplete compare_pkg not taking into account score
  of arch.

Version 0.03 - Jun  6 2002, by François Pons <fpons@mandrakesoft.com>
- added more flag method to URPM::Package
- avoid garbage output when reading hdlist archive.
- moved id internal reference to bit field of flag.

Version 0.02-3mdk - Jun  5 2002, by François Pons <fpons@mandrakesoft.com>
- removed log on opening/closing rpmdb.
- modified reading of archive to avoid incomplete read.

Version 0.02-2mdk - Jun  5 2002, by François Pons <fpons@mandrakesoft.com>
- added log on opening/closing rpmdb.

Version 0.02 - Jun  3 2002, by François Pons <fpons@mandrakesoft.com>
- new version with extended parameters list for URPM::Build.
- fixed code to be -w clean.

Version 0.01 - May 31 2002, by François Pons <fpons@mandrakesoft.com>
- initial revision.
