On Sun, May 19, 2013 at 10:44:21PM +1000, Allan McRae wrote:
When attempting to install a package (either via -S or -U) and the signature is missing, the current error message "invalid or corrupted package (PGP signature)" is very unclear. Instead inform the user that the package is missing the required signature.
Partial fix for FS#34741.
Signed-off-by: Allan McRae <allan@archlinux.org> ---
This causes a whole bunch of tests to fail. I ran a bisect on your working branch, and e35a061 (this commit) was bad. The full output of the make check results is at the bottom.
lib/libalpm/alpm.h | 1 + lib/libalpm/be_package.c | 6 +++++- lib/libalpm/error.c | 2 ++ 3 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/lib/libalpm/alpm.h b/lib/libalpm/alpm.h index 2277a69..806cd95 100644 --- a/lib/libalpm/alpm.h +++ b/lib/libalpm/alpm.h @@ -1267,6 +1267,7 @@ typedef enum _alpm_errno_t { ALPM_ERR_PKG_INVALID, ALPM_ERR_PKG_INVALID_CHECKSUM, ALPM_ERR_PKG_INVALID_SIG, + ALPM_ERR_PKG_MISSING_SIG, ALPM_ERR_PKG_OPEN, ALPM_ERR_PKG_CANT_REMOVE, ALPM_ERR_PKG_INVALID_NAME, diff --git a/lib/libalpm/be_package.c b/lib/libalpm/be_package.c index cfe5fb3..ea48b6e 100644 --- a/lib/libalpm/be_package.c +++ b/lib/libalpm/be_package.c @@ -323,9 +323,13 @@ int _alpm_pkg_validate_internal(alpm_handle_t *handle, }
/* even if we don't have a sig, run the check code if level tells us to */ - if(has_sig || level & ALPM_SIG_PACKAGE) { + if(level & ALPM_SIG_PACKAGE) { const char *sig = syncpkg ? syncpkg->base64_sig : NULL; _alpm_log(handle, ALPM_LOG_DEBUG, "sig data: %s\n", sig ? sig : "<from .sig>"); + if(!sig) { + handle->pm_errno = ALPM_ERR_PKG_MISSING_SIG; + return -1; + } if(_alpm_check_pgp_helper(handle, pkgfile, sig, level & ALPM_SIG_PACKAGE_OPTIONAL, level & ALPM_SIG_PACKAGE_MARGINAL_OK, level & ALPM_SIG_PACKAGE_UNKNOWN_OK, sigdata)) { diff --git a/lib/libalpm/error.c b/lib/libalpm/error.c index a59f4fe..8622180 100644 --- a/lib/libalpm/error.c +++ b/lib/libalpm/error.c @@ -111,6 +111,8 @@ const char SYMEXPORT *alpm_strerror(alpm_errno_t err) return _("invalid or corrupted package (checksum)"); case ALPM_ERR_PKG_INVALID_SIG: return _("invalid or corrupted package (PGP signature)"); + case ALPM_ERR_PKG_MISSING_SIG: + return _("package missing required signature"); case ALPM_ERR_PKG_OPEN: return _("cannot open package file"); case ALPM_ERR_PKG_CANT_REMOVE:
================================================================================ Results -------------------------------------------------------------------------------- Passed: [PASS] clean001 Rules: OK = 5 FAIL = 0 SKIP = 0 [PASS] clean002 Rules: OK = 5 FAIL = 0 SKIP = 0 [PASS] clean003 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] clean004 Rules: OK = 6 FAIL = 0 SKIP = 0 [PASS] clean005 Rules: OK = 6 FAIL = 0 SKIP = 0 [PASS] config001 Rules: OK = 1 FAIL = 0 SKIP = 0 [PASS] config002 Rules: OK = 1 FAIL = 0 SKIP = 0 [PASS] database001 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] database002 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] database010 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] depconflict100 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] depconflict120 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] deptest001 Rules: OK = 5 FAIL = 0 SKIP = 0 [PASS] epoch001 Rules: OK = 2 FAIL = 0 SKIP = 0 [PASS] epoch002 Rules: OK = 2 FAIL = 0 SKIP = 0 [PASS] epoch003 Rules: OK = 2 FAIL = 0 SKIP = 0 [PASS] epoch004 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] epoch005 Rules: OK = 6 FAIL = 0 SKIP = 0 [PASS] epoch010 Rules: OK = 2 FAIL = 0 SKIP = 0 [PASS] epoch011 Rules: OK = 2 FAIL = 0 SKIP = 0 [PASS] epoch012 Rules: OK = 2 FAIL = 0 SKIP = 0 [PASS] fileconflict001 Rules: OK = 5 FAIL = 0 SKIP = 0 [PASS] fileconflict002 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] fileconflict003 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] fileconflict004 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] fileconflict005 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] fileconflict006 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] fileconflict008 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] fileconflict009 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] fileconflict010 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] fileconflict011 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] fileconflict012 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] fileconflict013 Rules: OK = 2 FAIL = 0 SKIP = 0 [PASS] fileconflict015 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] fileconflict016 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] fileconflict017 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] fileconflict020 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] fileconflict021 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] fileconflict022 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] fileconflict023 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] fileconflict024 Rules: OK = 2 FAIL = 0 SKIP = 0 [PASS] fileconflict025 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] ignore001 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] ignore002 Rules: OK = 5 FAIL = 0 SKIP = 0 [PASS] ignore003 Rules: OK = 5 FAIL = 0 SKIP = 0 [PASS] ignore004 Rules: OK = 6 FAIL = 0 SKIP = 0 [PASS] ignore005 Rules: OK = 6 FAIL = 0 SKIP = 0 [PASS] ignore006 Rules: OK = 2 FAIL = 0 SKIP = 0 [PASS] ignore007 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] ignore008 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] ldconfig003 Rules: OK = 2 FAIL = 0 SKIP = 0 [PASS] pacman001 Rules: OK = 1 FAIL = 0 SKIP = 0 [PASS] pacman002 Rules: OK = 1 FAIL = 0 SKIP = 0 [PASS] pacman003 Rules: OK = 1 FAIL = 0 SKIP = 0 [PASS] pacman004 Rules: OK = 1 FAIL = 0 SKIP = 0 [PASS] pacman005 Rules: OK = 1 FAIL = 0 SKIP = 0 [PASS] provision001 Rules: OK = 2 FAIL = 0 SKIP = 0 [PASS] provision002 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] provision003 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] provision004 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] provision010 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] provision012 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] provision020 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] provision021 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] provision022 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] query001 Rules: OK = 2 FAIL = 0 SKIP = 0 [PASS] query002 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] query003 Rules: OK = 2 FAIL = 0 SKIP = 0 [PASS] query004 Rules: OK = 2 FAIL = 0 SKIP = 0 [PASS] query005 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] query007 Rules: OK = 1 FAIL = 0 SKIP = 0 [PASS] query010 Rules: OK = 2 FAIL = 0 SKIP = 0 [PASS] query011 Rules: OK = 2 FAIL = 0 SKIP = 0 [PASS] query012 Rules: OK = 2 FAIL = 0 SKIP = 0 [PASS] reason001 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] remove001 Rules: OK = 2 FAIL = 0 SKIP = 0 [PASS] remove002 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] remove010 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] remove011 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] remove012 Rules: OK = 7 FAIL = 0 SKIP = 0 [PASS] remove020 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] remove021 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] remove030 Rules: OK = 2 FAIL = 0 SKIP = 0 [PASS] remove031 Rules: OK = 2 FAIL = 0 SKIP = 0 [PASS] remove040 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] remove041 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] remove042 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] remove043 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] remove044 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] remove045 Rules: OK = 5 FAIL = 0 SKIP = 0 [PASS] remove047 Rules: OK = 5 FAIL = 0 SKIP = 0 [PASS] remove049 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] remove050 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] remove051 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] remove052 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] remove060 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] remove070 Rules: OK = 8 FAIL = 0 SKIP = 0 [PASS] remove071 Rules: OK = 14 FAIL = 0 SKIP = 0 [PASS] replace101 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] replace102 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] replace103 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] replace104 Rules: OK = 6 FAIL = 0 SKIP = 0 [PASS] scriptlet002 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] sign001 Rules: OK = 1 FAIL = 0 SKIP = 0 [PASS] sign002 Rules: OK = 2 FAIL = 0 SKIP = 0 [PASS] smoke002 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] smoke003 Rules: OK = 8 FAIL = 0 SKIP = 0 [PASS] smoke004 Rules: OK = 1 FAIL = 0 SKIP = 0 [PASS] symlink002 Rules: OK = 15 FAIL = 0 SKIP = 0 [PASS] symlink010 Rules: OK = 8 FAIL = 0 SKIP = 0 [PASS] symlink011 Rules: OK = 8 FAIL = 0 SKIP = 0 [PASS] symlink012 Rules: OK = 8 FAIL = 0 SKIP = 0 [PASS] sync001 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] sync002 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] sync003 Rules: OK = 2 FAIL = 0 SKIP = 0 [PASS] sync009 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] sync010 Rules: OK = 11 FAIL = 0 SKIP = 0 [PASS] sync011 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] sync012 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] sync020 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] sync021 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] sync022 Rules: OK = 5 FAIL = 0 SKIP = 0 [PASS] sync023 Rules: OK = 5 FAIL = 0 SKIP = 0 [PASS] sync024 Rules: OK = 5 FAIL = 0 SKIP = 0 [PASS] sync030 Rules: OK = 5 FAIL = 0 SKIP = 0 [PASS] sync031 Rules: OK = 5 FAIL = 0 SKIP = 0 [PASS] sync040 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] sync041 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] sync042 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] sync043 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] sync044 Rules: OK = 5 FAIL = 0 SKIP = 0 [PASS] sync045 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] sync050 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] sync1000 Rules: OK = 2 FAIL = 0 SKIP = 0 [PASS] sync1003 Rules: OK = 6 FAIL = 0 SKIP = 0 [PASS] sync1004 Rules: OK = 2 FAIL = 0 SKIP = 0 [PASS] sync1008 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] sync100 Rules: OK = 2 FAIL = 0 SKIP = 0 [PASS] sync101 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] sync102 Rules: OK = 5 FAIL = 0 SKIP = 0 [PASS] sync103 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] sync104 Rules: OK = 2 FAIL = 0 SKIP = 0 [PASS] sync1100 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] sync1101 Rules: OK = 2 FAIL = 0 SKIP = 0 [PASS] sync1102 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] sync1103 Rules: OK = 2 FAIL = 0 SKIP = 0 [PASS] sync1104 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] sync1105 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] sync110 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] sync120 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] sync130 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] sync131 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] sync132 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] sync133 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] sync134 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] sync135 Rules: OK = 7 FAIL = 0 SKIP = 0 [PASS] sync136 Rules: OK = 2 FAIL = 0 SKIP = 0 [PASS] sync137 Rules: OK = 2 FAIL = 0 SKIP = 0 [PASS] sync138 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] sync139 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] sync140 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] sync141 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] sync150 Rules: OK = 5 FAIL = 0 SKIP = 0 [PASS] sync200 Rules: OK = 1 FAIL = 0 SKIP = 0 [PASS] sync300 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] sync306 Rules: OK = 2 FAIL = 0 SKIP = 0 [PASS] sync400 Rules: OK = 5 FAIL = 0 SKIP = 0 [PASS] sync401 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] sync402 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] sync404 Rules: OK = 5 FAIL = 0 SKIP = 0 [PASS] sync405 Rules: OK = 5 FAIL = 0 SKIP = 0 [PASS] sync407 Rules: OK = 8 FAIL = 0 SKIP = 0 [PASS] sync500 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] sync501 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] sync502 Rules: OK = 5 FAIL = 0 SKIP = 0 [PASS] sync503 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] sync600 Rules: OK = 26 FAIL = 0 SKIP = 0 [PASS] sync890 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] sync891 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] sync892 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] sync893 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] sync895 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] sync896 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] sync897 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] sync898 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] sync899 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] sync900 Rules: OK = 5 FAIL = 0 SKIP = 0 [PASS] sync901 Rules: OK = 5 FAIL = 0 SKIP = 0 [PASS] sync990 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] sync992 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] sync993 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] sync999 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] sync-nodepversion01 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] sync-nodepversion02 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] sync-nodepversion03 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] sync-nodepversion04 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] sync-nodepversion05 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] sync-nodepversion06 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] trans001 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] unresolvable001 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] upgrade011 Rules: OK = 2 FAIL = 0 SKIP = 0 [PASS] upgrade013 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] upgrade029 Rules: OK = 6 FAIL = 0 SKIP = 0 [PASS] upgrade050 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] upgrade052 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] upgrade058 Rules: OK = 2 FAIL = 0 SKIP = 0 [PASS] upgrade059 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] upgrade060 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] upgrade061 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] upgrade071 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] upgrade075 Rules: OK = 3 FAIL = 0 SKIP = 0 [PASS] upgrade076 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] upgrade077 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] upgrade081 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] upgrade083 Rules: OK = 4 FAIL = 0 SKIP = 0 [PASS] xfercommand001 Rules: OK = 10 FAIL = 0 SKIP = 0 -------------------------------------------------------------------------------- Expected Failures: [FAIL] replace100 Rules: OK = 5 FAIL = 1 SKIP = 0 Sysupgrade with a replace and dependency chain [FAIL] replace110 Rules: OK = 5 FAIL = 2 SKIP = 0 Replace a package with a file in 'backup' (local modified) [FAIL] sync403 Rules: OK = 1 FAIL = 3 SKIP = 0 Choice between two providers (2) [FAIL] sync406 Rules: OK = 1 FAIL = 5 SKIP = 0 phonon/qt issue (2) [FAIL] sync700 Rules: OK = 0 FAIL = 3 SKIP = 0 do not remove directory symlink if another package has file in its path [FAIL] sync701 Rules: OK = 0 FAIL = 3 SKIP = 0 do not remove directory symlink if incoming package has file in its path (order 1) [FAIL] sync702 Rules: OK = 0 FAIL = 3 SKIP = 0 do not remove directory symlink if incoming package has file in its path (order 2) [FAIL] upgrade078 Rules: OK = 3 FAIL = 8 SKIP = 0 -U --recursive upgrades outdated dependencies -------------------------------------------------------------------------------- Unexpected Passes: [PASS] query006 Rules: OK = 6 FAIL = 0 SKIP = 0 -------------------------------------------------------------------------------- Failed: [FAIL] database011 Rules: OK = 2 FAIL = 2 SKIP = 0 Install a package with --dbonly, no files touched [FAIL] database012 Rules: OK = 4 FAIL = 2 SKIP = 0 Upgrade a package with --dbonly, no files touched [FAIL] depconflict110 Rules: OK = 0 FAIL = 3 SKIP = 0 conflict with version (conflict) [FAIL] depconflict111 Rules: OK = 1 FAIL = 2 SKIP = 0 conflict with version (no conflict) [FAIL] dummy001 Rules: OK = 0 FAIL = 1 SKIP = 0 Dummy test case (modify for own use) [FAIL] fileconflict007 Rules: OK = 1 FAIL = 2 SKIP = 0 Fileconflict with symlinks (klibc case) [FAIL] ldconfig001 Rules: OK = 0 FAIL = 2 SKIP = 0 Make sure ldconfig runs on an upgrade operation [FAIL] ldconfig002 Rules: OK = 0 FAIL = 3 SKIP = 0 Make sure ldconfig runs on an upgrade operation [FAIL] mode001 Rules: OK = 0 FAIL = 3 SKIP = 0 Check the mode of default files in a package [FAIL] mode002 Rules: OK = 0 FAIL = 3 SKIP = 0 Check execute mode on files in a package [FAIL] mode003 Rules: OK = 3 FAIL = 3 SKIP = 0 Backup file permissions test (same as orig) [FAIL] provision011 Rules: OK = 1 FAIL = 2 SKIP = 0 provision>=1.0-2 dependency (2) [FAIL] scriptlet001 Rules: OK = 0 FAIL = 3 SKIP = 0 Scriptlet test (pre/post install) [FAIL] smoke001 Rules: OK = 0 FAIL = 4 SKIP = 0 Install a thousand packages in a single transaction [FAIL] symlink001 Rules: OK = 2 FAIL = 5 SKIP = 0 Dir symlinks overwritten on install (the perl/git bug) [FAIL] type001 Rules: OK = 0 FAIL = 6 SKIP = 0 Check the types of default files in a package [FAIL] upgrade001 Rules: OK = 0 FAIL = 4 SKIP = 0 Upgrade a package (newer version) [FAIL] upgrade002 Rules: OK = 1 FAIL = 3 SKIP = 0 Upgrade a package (same version) [FAIL] upgrade003 Rules: OK = 0 FAIL = 4 SKIP = 0 Upgrade a package (older version) [FAIL] upgrade004 Rules: OK = 0 FAIL = 4 SKIP = 0 Upgrade a package (not installed) [FAIL] upgrade005 Rules: OK = 0 FAIL = 10 SKIP = 0 Install a set of three packages [FAIL] upgrade006 Rules: OK = 1 FAIL = 5 SKIP = 0 Upgrade a package with several files [FAIL] upgrade010 Rules: OK = 2 FAIL = 2 SKIP = 0 Upgrade a package, with a file in NoUpgrade [FAIL] upgrade012 Rules: OK = 0 FAIL = 4 SKIP = 0 Install a package with a filesystem conflict (--force) [FAIL] upgrade014 Rules: OK = 0 FAIL = 11 SKIP = 0 Install two packages with a conflicting file (--force) [FAIL] upgrade015 Rules: OK = 2 FAIL = 3 SKIP = 0 Install a package with an existing file (--force) [FAIL] upgrade016 Rules: OK = 1 FAIL = 4 SKIP = 0 Install a package with an existing file (--force, new modified) [FAIL] upgrade020 Rules: OK = 2 FAIL = 3 SKIP = 0 Upgrade a package, with a file in 'backup' (local unchanged, new modified) [FAIL] upgrade021 Rules: OK = 3 FAIL = 2 SKIP = 0 Upgrade a package, with a file in 'backup' (local modified, new unchanged) [FAIL] upgrade022 Rules: OK = 2 FAIL = 3 SKIP = 0 Upgrade a package, with a file in 'backup' (local and new modified) [FAIL] upgrade023 Rules: OK = 2 FAIL = 3 SKIP = 0 Upgrade a package, with a backup file in the NEW package only [FAIL] upgrade024 Rules: OK = 0 FAIL = 4 SKIP = 0 Upgrade a package, with a file leaving 'backup' [FAIL] upgrade025 Rules: OK = 2 FAIL = 3 SKIP = 0 Upgrade a package, with a file leaving 'backup' but staying in the pkg [FAIL] upgrade026 Rules: OK = 1 FAIL = 4 SKIP = 0 Upgrade a package, with a file leaving the pkg but staying in 'backup' [FAIL] upgrade027 Rules: OK = 3 FAIL = 3 SKIP = 0 Upgrade a package, with a file entering the pkg in 'backup' (changed) [FAIL] upgrade028 Rules: OK = 4 FAIL = 2 SKIP = 0 Upgrade a package, with a file entering the pkg in 'backup' (unchanged) [FAIL] upgrade030 Rules: OK = 2 FAIL = 1 SKIP = 0 Upgrade packages with various reasons [FAIL] upgrade031 Rules: OK = 0 FAIL = 5 SKIP = 0 Install packages non-explicitly [FAIL] upgrade032 Rules: OK = 0 FAIL = 5 SKIP = 0 Install packages explicitly [FAIL] upgrade040 Rules: OK = 3 FAIL = 4 SKIP = 0 File relocation between two packages [FAIL] upgrade041 Rules: OK = 3 FAIL = 4 SKIP = 0 File relocation between two packages (reverse order) [FAIL] upgrade042 Rules: OK = 2 FAIL = 4 SKIP = 0 Backup file relocation [FAIL] upgrade043 Rules: OK = 2 FAIL = 4 SKIP = 0 Backup file relocation (reverse order) [FAIL] upgrade045 Rules: OK = 0 FAIL = 3 SKIP = 0 FS#9235, backup file is broken symlink [FAIL] upgrade046 Rules: OK = 3 FAIL = 4 SKIP = 0 File relocation between two packages (reverse order, --force) [FAIL] upgrade051 Rules: OK = 0 FAIL = 3 SKIP = 0 Upgrade to a package that provides another package [FAIL] upgrade053 Rules: OK = 1 FAIL = 2 SKIP = 0 Upgrade a package with dependency on provided package (same) [FAIL] upgrade054 Rules: OK = 1 FAIL = 2 SKIP = 0 Upgrade a package with dependency on provided package (different) [FAIL] upgrade055 Rules: OK = 3 FAIL = 2 SKIP = 0 Upgrade a package that provides one of two imaginary packages [FAIL] upgrade056 Rules: OK = 2 FAIL = 2 SKIP = 0 Upgrade a package that removes a provide but another package still provides it [FAIL] upgrade057 Rules: OK = 3 FAIL = 2 SKIP = 0 Upgrade a package that both provides and is a dependency [FAIL] upgrade070 Rules: OK = 1 FAIL = 3 SKIP = 0 Install a package with a file in NoExtract [FAIL] upgrade072 Rules: OK = 0 FAIL = 5 SKIP = 0 Install a package with a missing dependency (nodeps) [FAIL] upgrade073 Rules: OK = 0 FAIL = 11 SKIP = 0 Install a package with cascaded dependencies [FAIL] upgrade074 Rules: OK = 1 FAIL = 2 SKIP = 0 pkg2<2.0 dependency (satisfy) [FAIL] upgrade080 Rules: OK = 0 FAIL = 4 SKIP = 0 Install a package (correct architecture) [FAIL] upgrade082 Rules: OK = 0 FAIL = 4 SKIP = 0 Install a package (correct architecture, auto) [FAIL] upgrade084 Rules: OK = 0 FAIL = 4 SKIP = 0 Install a package ('any' architecture) [FAIL] upgrade090 Rules: OK = 1 FAIL = 8 SKIP = 0 -U syncdeps test -------------------------------------------------------------------------------- Total = 284 Pass = 216 ( 76.06%) Expected Fail = 8 ( 2.82%) Unexpected Pass = 1 ( 0.35%) Fail = 59 ( 20.77%) -- William Giokas | KaiSforza GnuPG Key: 0x73CD09CF Fingerprint: F73F 50EF BBE2 9846 8306 E6B8 6902 06D8 73CD 09CF