pacman/lib/libalpm
Dan McGee 30f53cfe8d Fix double read issue in maint releases
This is essentially a backport/cherry-pick of commit 33240e87b9 from
master, but has to be done by hand because the DB format has diverged. Read
more in the commit message used there, which follows.

Due to the way we funk around with package data loading, we had a condition
where the filelist got doubled up because it was loaded twice.

Packages are originally loaded with INFRQ_BASE. In an upgrade/sync, the
package is checked for file conflicts next, leaving us in an "INFRQ_BASE |
INFRQ_FILES" state. Later, when committing a single package, we have an
explicit call to _alpm_local_db_read() with INFRQ_ALL as the level. Because
the package's level did not match this, we skipped over our previous "does
the incoming level match where I'm at" shortcut, and continued to load
things again, because of a lack of fine-grained checking for each of DESC,
FILES, and INSTALL.

The end result is we loaded the filelist twice, causing our remove logic to
iterate twice over the installed files, spewing a bunch of "cannot find file
X" messages.

Fix the problem by doing a bit more bitmasking logic throughout the load
method, and also fix the sanity check at the beginning of the function- this
should *only* be used for local packages as opposed to the "not a package"
check that was there before.

Signed-off-by: Dan McGee <dan@archlinux.org>
2011-01-12 09:17:22 -06:00
..
po Update Kazakh translation 2010-09-15 07:19:51 -05:00
.gitignore Remove unnecessary entries from .gitignore files 2007-07-16 16:49:28 -04:00
Makefile.am Move vercmp code into a separate file 2010-05-04 23:32:13 -05:00
add.c Bump copyright dates to 2010 2010-03-14 19:46:59 -05:00
add.h Bump copyright dates to 2010 2010-03-14 19:46:59 -05:00
alpm.c Bump copyright dates to 2010 2010-03-14 19:46:59 -05:00
alpm.h Introduce -D, --database 2010-05-05 10:37:01 -05:00
alpm_list.c alpm_list_diff_sorted - make some arguments const 2010-03-25 21:31:37 -05:00
alpm_list.h alpm_list_diff_sorted - make some arguments const 2010-03-25 21:31:37 -05:00
backup.c Bump copyright dates to 2010 2010-03-14 19:46:59 -05:00
backup.h Bump copyright dates to 2010 2010-03-14 19:46:59 -05:00
be_files.c Fix double read issue in maint releases 2011-01-12 09:17:22 -06:00
be_package.c Read 'force' entry from packages 2010-10-11 17:48:11 -05:00
cache.c Bump copyright dates to 2010 2010-03-14 19:46:59 -05:00
cache.h Bump copyright dates to 2010 2010-03-14 19:46:59 -05:00
conflict.c Bump copyright dates to 2010 2010-03-14 19:46:59 -05:00
conflict.h Bump copyright dates to 2010 2010-03-14 19:46:59 -05:00
db.c Introduce -D, --database 2010-05-05 10:37:01 -05:00
db.h Compute package download size outside _alpm_sync_prepare 2010-05-05 18:15:52 -05:00
delta.c More consistent printing of off_t and time_t 2010-03-25 21:58:35 -05:00
delta.h Bump copyright dates to 2010 2010-03-14 19:46:59 -05:00
deps.c Partial fix for the phonon/qt issue 2010-05-18 11:33:00 -05:00
deps.h Partial fix for the phonon/qt issue 2010-05-18 11:33:00 -05:00
dload.c More consistent printing of off_t and time_t 2010-03-25 21:58:35 -05:00
dload.h Bump copyright dates to 2010 2010-03-14 19:46:59 -05:00
error.c Bump copyright dates to 2010 2010-03-14 19:46:59 -05:00
graph.h Bump copyright dates to 2010 2010-03-14 19:46:59 -05:00
group.c Bump copyright dates to 2010 2010-03-14 19:46:59 -05:00
group.h Bump copyright dates to 2010 2010-03-14 19:46:59 -05:00
handle.c Bump copyright dates to 2010 2010-03-14 19:46:59 -05:00
handle.h Bump copyright dates to 2010 2010-03-14 19:46:59 -05:00
log.c Bump copyright dates to 2010 2010-03-14 19:46:59 -05:00
log.h Bump copyright dates to 2010 2010-03-14 19:46:59 -05:00
md5.c Add note about XySSL/PolarSSL name change 2010-06-07 10:35:08 -05:00
md5.h libalpm/md5: Fix license header 2008-06-03 21:31:31 -05:00
package.c Move vercmp code into a separate file 2010-05-04 23:32:13 -05:00
package.h Bump copyright dates to 2010 2010-03-14 19:46:59 -05:00
remove.c libalpm/remove: fix funny progress bar problem with empty packages 2010-10-18 16:46:41 -05:00
remove.h Bump copyright dates to 2010 2010-03-14 19:46:59 -05:00
sync.c Respect Ignore{Pkg,Group} for group members 2010-12-30 09:35:03 -06:00
sync.h Bump copyright dates to 2010 2010-03-14 19:46:59 -05:00
trans.c Fix possible null pointer deref in check_arch 2010-12-10 19:45:14 -06:00
trans.h Bump copyright dates to 2010 2010-03-14 19:46:59 -05:00
util.c Bump copyright dates to 2010 2010-03-14 19:46:59 -05:00
util.h Bump copyright dates to 2010 2010-03-14 19:46:59 -05:00
version.c Remove call to function logger 2010-05-04 23:38:52 -05:00