[devel] migration to new alternatives [was: rpm-4.0.4-alt96.13]
Igor Vlasenko
=?iso-8859-1?q?vlasenko_=CE=C1_imath=2Ekiev=2Eua?=
Вт Ноя 25 14:32:10 MSK 2008
On Mon, Nov 24, 2008 at 12:29:29PM +0200, Igor Vlasenko wrote:
> В java репозитроии есть 12 пакетов, которые
> в %post вызывают build-classpath-* или build-jar-*
> это внутрення кухня, я ее обработаю самостоятельно.
>
> Таких программ на подобие build-classpath-*/build-jar-* не так много :)
> Наверно, все такие случаи достаточно будет занести на wiki.
Гм. таки грабли с миграцией на новые альтернативы вылезли.
Это связано с изменением поведения alternatives-helper, в который
раскрывается %register_alternatives.
Ранее alternatives-helper вызывал alternatives-update,
теперь он ничего не делает, только выдает WARNING.
Более правильным с точки зрения плавной миграции
было бы WARNING+alternatives-update.
Однако по результатам последней пересборки похоже, что и
даже с таким радикальным изменением никто не пострадал,
кроме java-подсистемы, а последнюю я буду лечить своими
методами.
Поэтому если больше пострадавших нет, пусть так и будет.
Проблемы с java, связанные с изменением в alternatives-helper,
следующие:
Сейчас alternatives-helper ничего не делает,
а раньше дергал update_alternatives.
В java-* пакетах стоит устаревший вызов %register_alternatives,
который раскрывается в alternatives-helper.
Соответственно сейчас /usr/bin/javac и много других симлинков не определены до окончания транзакции.
Программ, которые имеют такие %post, очень мало.
К сожалению, среди них maven1/maven2
(java аналог autotools) поэтому beehive log опять вспучило.
Я на время переезда решил эту проблему кувалдой.
Если jpackage-utils вызываются из %post скриптов,
они дергают alternatives-update.
--- a/jpackage-utils/java-utils/java-functions
+++ b/jpackage-utils/java-utils/java-functions
@@ -10,6 +10,11 @@
+# altlinux filetriggers support;
+# call alternatives-update inside the rpm transaction
+# or some java/jpackage alternatives might not be set yet
+[ -n "RPM_INSTALL_ARG1" ] && [ -x /usr/sbin/alternatives-update ] && /usr/sbin/alternatives-update ||:
+
И в дальнейшем уберу этот хак.
В новой сборке альтернатив будет макрос
%force_update_alternatives,
я его просто расставлю в %post скриптах
там, где это нужно.
--
Dr. Igor Vlasenko
--------------------
Topology Department
Institute of Math
Kiev, Ukraine
--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Подробная информация о списке рассылки Devel