I just ran a test on some of my older boxes after being puzzled why emerge was getting slow over recent months. And it turns out it's the use of WHIRLPOOL as a cipher for the digests. I have an ARM v4l box running at 276MHz, and here's some timings..... bash# time openssl dgst -sha256 /usr/portage/distfiles/binutils-2.22.tar.bz2 SHA256(/usr/portage/distfiles/binutils-2.22.tar.bz2)= 6c7af8ed1c8cf9b4b9d6e6fe09a3e1d3d479fe63984ba8b9b26bf356b6313ca9 real 0m4.452s user 0m3.380s sys 0m1.060s bash# time openssl dgst -sha512 /usr/portage/distfiles/binutils-2.22.tar.bz2 SHA512(/usr/portage/distfiles/binutils-2.22.tar.bz2)= ffe8ef263ef99183e8cc823fe8487ff7d0f7bf9a8efd2853b5f4636aca0023850d13de4eac7d77a5f69413d8a50e6f95bb14569be53df86c0bce38034525ab74 real 0m7.143s user 0m6.060s sys 0m1.080s bash# time openssl dgst -whirlpool /usr/portage/distfiles/binutils-2.22.tar.bz2 whirlpool(/usr/portage/distfiles/binutils-2.22.tar.bz2)= 8bea2f2082600587649a5f9fffada9c6cf14f42ebddd1e6a4b4d7be25446d7ad76e1335cf8cefe30c812ced408c9dacb55d0033e4b0eaff83efbbfb5ea5f60dc real 1m8.535s user 1m4.310s sys 0m1.780s Is there any way which older systems don't need to use WHIRLPOOL as I'm sure other systems will be suffering.
We can add a PORTAGE_CHECKSUM_FILTER variable that will allow you to exclude hash functions that you don't want. If we make it behave similarly to the ACCEPT_LICENSE variable, the you'll be able to use a setting like "* -WHIRLPOOL" to exclude just the whirlpool checksums.
Sounds good.
PORTAGE_CHECKSUM_FILTER is implemented in git: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=accee1b7c61da284022f86d9ab39bcb492ea4023
This is fixed in 2.1.11.11 and 2.2.0_alpha122.