[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