Затем чтобы ненужный зоопарк не разводить.
Это не рациональный и очень трудоёмкий путь - ради бага в rpm менять и пересобирать 400 пакетов, тем более, что нет никакой гарантии, что они пересоберутся.
Шутка?
При сборке спек уже открыт — посмотреть, проверить, изменить, причём это всё равно делается независимо от обсуждаемой пробемы. Дополнительно только меняем несколько символов в "%description -l", если несколько таких строк — копипастой. Сохраняем в целевой кодировке. Финита комедия ля. Вы это трудоёмкостью называете? При всех последующих сборках уже ничего делать не надо.
Нерационально было изначально делать в чужеродных кодировках.
ради бага в rpm менять и пересобирать 400 пакетов
Не ради бага в rpm, а ради исправления ничем не оправданных предыдущих действий при написании спеков.
И никто не требует разом все 400. Всего лишь, собираете новую версию пакета или пересобираете старый пакет — поправьте спек. Собираемость от этого вряд-ли ухудшится.
С патчами хуже. Патч навеки будет болтаться в исходном пакете, и его при каждом изменении спека (а это происходит каждый раз) надо будет переделывать. Патчи как раз только усугубят проблему.