Допилил тут гентушный скрипт emerge-delta-webrsync, чтобы он сверял pgp-подписи со снапшотов портежа: как с новых, так и с реконструированных по дельтам. То есть после синхронизации портежа, независимо от того, с каких зеркал качались снапшоты и дельты (при этом по открытым каналам), остаётся гарантия, что портеж находится в том виде, в каком был заверен на сервере Gentoo Foundation, и ничего лишнего в него не понапихали злобные враги.
Если оно кому нужно, то архив вот (правой кнопкой > сохранить как), подпись здесь.
Скрипт пригоден для автоматической работы по крону. Помимо прочего добавил в него дополнительный логгинг: все неудачные сверки подписей будут выводиться в authpriv с приоритетом warning. Разумеется, если подпись по той или иной причине не сверяется, скрипт немедленно прерывает исполнение ещё до синхронизации снапшота с рабочим деревом портежа в /usr/portage.
Для установки скопируйте сам emerge-delta-webrsync и небольшой скрипт-хэлпер gpg-check-file.py в /usr/bin или иной каталог, прописанный в PATH. Затем добавьте в /etc/make.conf следующие переменные:
SNAPSHOT_GPG_KEY="отпечаток ключа Gentoo Portage Snapshot Signing Key", которым заверяются снапшоты. (Если что, отпечаток текущего ключа, действующего до конца года, -- AE54 54F9 67B5 6AB0 9AE1 6064 0838 C26E 239C 75C4. Скопировать можно в таком виде, с пробелами или без, в любом регистре.) Эта переменная обязательна, без неё скрипт откажется работать.
PORTAGE_GPG_DIR="путь к домашнему каталогу GnuPG, где находится связка с указанным выше ключом". Отсутствие этой переменной (в отличие от предыдущей) некритично, по умолчанию принимается путь /root/.gnupg, но тогда убедитесь, что открытый ключ Portage Snapshot Signing Key действительно находится на связке ключей у рута.
DELTASYNC_MIRRORS="разделённый запятыми список зеркал для скачивания дельт и снапшотов". Поскольку я использую разные зеркала для получения дельт и исходников, посчитал такое расширение для себя удобным. Но если не хочется держать два списка, то при отсутствии этой переменной используются зеркала из основного списка GENTOO_MIRRORS.
Залогиньтесь рутом, скачайте ключ, заверяющий снапшоты, и заверьте его неэкспортируемой подписью (или что там предусматривает ваша политика сертификации):
gpg --keyserver subkeys.gpg.net --recv-key 0x239C75C4
gpg --lsign 0x239C75C4
В случае проблем сообщайте.
ДОБАВЛЕНО (30.05): Отредактировал постинг в соответствии с изменениями в скрипте. Спасибо Mellon'у за дельные советы.
ДОБАВЛЕНО (04.01): Бэкпорт багфикса #299443 из официальной версии emerge-delta-webrsync-3.5.1-r3 (случилась локальная Проблема-2010):
sed 's/portage-200\*/portage-2[[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]][[:digit:]]/g'
|