[devel] java-1.5.0-poisoning announce
Igor Vlasenko
=?iso-8859-1?q?vlasenko_=CE=C1_imath=2Ekiev=2Eua?=
Вс Дек 2 00:15:31 MSK 2007
Java - изменения в политике.
Уважаемые коллеги!
До ноября 2007 года основными javac компиляторами, использовавшимися
у нас для сборки java пакетов, были javac из java-1.4.2-{sun,blackdown}.
Технически это было связано с тем, что для получения гарантированно
рабочего на старых JVM кода опций -source и -target недостаточно,
простые примеры, обьясняющие почему это так, см.
((http://www.javaworld.com/javaworld/javaqa/2003-05/02-qa-0523-version.html?page=1))
и наиболее простым и надежным способом получения совместимости
была сборка с помощью старого компилятора.
Идейная причина была в gcj. В настоящее время у нас пакеты собираются
без поддержки gcj, но я хотел сохранить возможность в любой момент
безболезненно (gcj не поддерживал диалект java >= 5)
начать работу по его внедрению.
Эта же причина сдерживала основные апстримы от использования java5,
поэтому такая политика проблем не создавала.
Однако появление openjdk, а также недавний gcj,
который стал понимать java5, произвели брожение в апстримах.
Скоро в Сизиф хлынет поток софта, написанного на java5.
Появление в репозитории свежего eclipse знаменует его начало.
Проблема здесь следующая. javac из java-1.4.2-{sun,blackdown} не сможет
слинковать класс, если в classpath попадется хотя бы один class
с версией 49.0 и выше (java >=5). Получается что-то вроде GPL virus
или `java 1.5 poisoning`.
Это означает, что новые пакеты придется в массе собирать javac = 1.5.0.
Напомню, установку -source и -target это не отменяет, их, как и прежде,
желательно ставить в минимальные разумные значения.
Однако сборка с javac = 1.5.0 уже не гарантирует работоспособность
под java-1.4.2 по вышеизложенным причинам.
Для тех, кому позарез нужна именно java-1.4.2, будет retroweaver
((http://retroweaver.sourceforge.net/))
с оберткой, которая локально в системе будет перекомпилировать байткод
установленных пакетов под java-1.4.2.
Что же касается старых пакетов, то в какой-то момент их сборка рассыпется.
Это не страшно, так как они не несут прямых зависимостей на java-1.4.2,
а зависят от jpackage-1.4-compat, вытягивающий java-1.4.2.
В какой-то момент я его подменю пакетом, вытягивающим java5.
Этот же прием рекомендую людям, желающим выпустить замкнутый
по сборочным зависимостям дистрибутив, который бы не таскал с собой
старые java.
Но пока сборка старых пакетов не рассыпалась, очень прошу
уважаемых инкомингеров исполнить заявку #13481
((https://bugzilla.altlinux.org/show_bug.cgi?id=13481))
и переложить орду указанных пакетов в branch.
Также, начиная с этого анонса, неработоспособность под java 1.4.2
не желательна, но больше не считается BUG.
--
Dr. Igor Vlasenko
--------------------
Topology Department
Institute of Math
Kiev, Ukraine
Подробная информация о списке рассылки Devel