[pacman-dev] Checking package validity

Allan McRae allan at archlinux.org
Sat Jul 30 23:28:38 EDT 2011


On 31/07/11 11:15, Allan McRae wrote:
> I was thinking of how we currently check package validity and had
> planned to do something like:
>
> 1) signature check
> 2) md5sum check _only_ if no signature to check
>
> with the intention of adding an sha256sum check in the middle in the
> future (perhaps only if pacman is built using openssl to save us having
> to provide the routines...).
>
> But as far as I can tell, _alpm_check_pgp_helper does not allow you to
> distinguish between a successful signature check and the case where no
> signature is available and signature checking is not required. Is that
> correct or am I missing something?
>


It appears that this is an area that needs work anyway...


 > pacman -Sw libcups
resolving dependencies...

Targets (1): libcups-1.4.7-3

Total Download Size:    0.00 MiB

Proceed with download? [Y/n]
(1/1) checking package integrity 
[######################] 100%
error: failed to commit transaction (invalid or corrupted package 
(checksum))
libcups-1.4.7-3-i686.pkg.tar.xz is invalid or corrupted
Errors occurred, no packages were upgraded.


This happened with a lot of packages so it definitely was not a checksum 
error...


[12:11:35] debug: using cachedir: /home/arch/pkgcache/i686/
checking package integrity...
[12:11:35] debug: found cached pkg: 
/home/arch/pkgcache/i686/libcups-1.4.7-3-i686.pkg.tar.xz
[12:11:35] debug: replacing pkgcache entry with package file for target 
libcups
[12:11:35] debug: md5sum: 772cf71cb8abb5afce923ae870130a51
[12:11:35] debug: checking md5sum for 
/home/arch/pkgcache/i686/libcups-1.4.7-3-i686.pkg.tar.xz
[12:11:35] debug: base64_sig: (null)
[12:11:35] debug: checking signatures for 
/home/arch/pkgcache/i686/libcups-1.4.7-3-i686.pkg.tar.xz
[12:11:35] debug: checking signature for 
/home/arch/pkgcache/i686/libcups-1.4.7-3-i686.pkg.tar.xz
[12:11:35] debug: 1 signatures returned
[12:11:35] debug: fingerprint: 976AC6FA3B94FA10
[12:11:35] debug: summary: key missing
[12:11:35] debug: status: No public key
[12:11:35] debug: timestamp: 1311845034
[12:11:35] debug: exp_timestamp: 0
[12:11:35] debug: validity: unknown; reason: Success
[12:11:35] debug: key lookup failed, unknown key
[12:11:35] debug: signature is not valid
[12:11:35] debug: returning error 33 from _alpm_sync_commit : invalid or 
corrupted package (checksum)
error: failed to commit transaction (invalid or corrupted package 
(checksum))


My cache is essentially a mirror of the repo so has a bunch of signature 
files in it.  So when I "download" a package from the repos and pacman 
finds its signature in the cache, that gets checked.  So, that was quite 
unexpected for me (but I suppose it is a good thing?).  We just need to 
fix that error message.

Allan


More information about the pacman-dev mailing list