Bug 10857 - /usr/bin/ant need a fix
Summary: /usr/bin/ant need a fix
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: ant (show other bugs)
Version: unstable
Hardware: all Linux
: P2 major
Assignee: viy
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-02-17 22:50 MSK by viy
Modified: 2007-02-26 18:00 MSK (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description viy 2007-02-17 22:50:46 MSK
готовлюсь потихоньку вынести /usr/bin/java из 
java-common, так как оно конфликтует с jpackage jvm.
но сначала, пока не переехали на ant из jpackage,
нужно внести изменения в наш /usr/bin/ant,
иначе сломается сборка openoffice.

сейчас в /usr/bin/ant вызывается просто exec java, 
вместо $JAVA_BIN или $JAVA_HOME/jre/bin/java.
openoffice делает env -i ant,
что ломает сборку при удалении нашей обертки /usr/bin/java.
воспроизводится так:
mv /usr/bin/java /usr/bin/java.save
ln -s <java home>/jre/bin/java /usr/bin/java
env -i ant

#-----------------------------------------------------
# кусок из /usr/bin/java, которого не хватает в 
# /usr/bin/ant :
#-----------------------------------------------------
# Try to find a JDK/JRE location if JAVA_HOME is not set
FindJVM

if test -z "$JAVA_BIN"; then
    echo "$0: cannot find the Java VM executable" >&2
    exit 1
fi

exec "$JAVA_BIN" <ant args>

Steps to Reproduce:
1.
2.
3.
mv /usr/bin/java /usr/bin/java.save
ln -s <java home>/jre/bin/java /usr/bin/java
env -i ant

Actual Results:  
Error: could not find libjava.so
Error: could not find Java 2 Runtime Environment.


Expected Results:  
env -i ant 
Buildfile: build.xml does not exist!
Build failed
Comment 1 Damir Shayhutdinov 2007-02-22 20:18:49 MSK
У меня чего-то не воспроизводится :(
Comment 2 viy 2007-02-22 20:33:47 MSK
Уточнение:
наверно, зависит от вложенности <java_home>
если ln -s /usr/lib/j2se1.5-sun/jre/bin/java /usr/bin/java
то да, действительно...
в java есть мозг.
----------------------------------------------------------
$ hsh-shell --root ~/hasher
[root@hasher32 .in]# 
[root@hasher32 .in]# 
[root@hasher32 .in]# 
[root@hasher32 .in]# cd /usr/bin/
[root@hasher32 bin]# 
[root@hasher32 bin]# l java
lrwxrwxrwx 1 root root 37 Feb 22 14:13 java -> /etc/alternatives/links/|usr|bin|java
[root@hasher32 bin]# mv java java.save
[root@hasher32 bin]# ln -s /usr/lib/j2se1.5-sun/jre/bin/java .
[root@hasher32 bin]# env -i ant
Java HotSpot(TM) Client VM warning: Can't detect initial thread stack location -
 find_vma failed
Buildfile: build.xml does not exist!
Build failed
-------------------------------------------------------
я сейчас воспроизвести не могу (Миша песочницу выключил)
но там я делал 
ln -s /usr/lib/jvm/java-1.5.0-sun-1.5.0.11/jre/bin/java
и было то что описываю.
Comment 3 viy 2007-02-22 20:37:28 MSK
Завтра еще посмотрю, когда Миша песочницу даст.
а то в самый не вовремя момент выбило ....
а jabber у вас есть?
----------------------------------------
(19:27:29) gvy: тыкс... попробуй выбраться из hasher32
(19:27:48) gvy: предстоит переезд на другую железку, интеловский инженерный
образец уезжает
(19:28:16) viy@altlinux.org/Gaim: ok
(19:28:24) gvy: минут через пять получается?
(19:28:33) gvy: диски/контейнеры остаются на местах, они наши
(19:28:37) viy@altlinux.org/Gaim: уже вышел
(19:28:41) gvy: надеюсь, завтра будет up

Comment 4 viy 2007-02-23 13:15:50 MSK
Все. понял. вот как это воспроизводится на самом свежем сизифе.
Sun binary java делает один readlink, а надо итерировать. :(

[root@hasher32 links]# cd /etc/alternatives/links/
[root@hasher32 links]# mv /etc/alternatives/links/\|usr\|bin\|java
/etc/alternatives/links/\|usr\|bin\|java.save
[root@hasher32 links]# ln -s /usr/lib/j2se/jre/bin/java \|usr\|bin\|java
[root@hasher32 links]# env -i ant
Error: could not find libjava.so
Error: could not find Java 2 Runtime Environment.
[root@hasher32 links]# 

Я, в принципе, еще раньше сделал workaround,
обертку /usr/bin/java сделал альтернативой на /usr/lib/java-common/java.sh
с наибольшим приоритетом,
(в java-common-1.3.3) т. е. сейчас openoffice пересобирается.
поэтому, чтобы воспроизвести, нужно еще
mv \|usr\|bin\|java  \|usr\|bin\|java.save
но все же желательно пофиксить.
Ведь иначе ant 
без обертки /usr/lib/java-common/java.sh
вообще говоря, не работает.
Comment 5 Damir Shayhutdinov 2007-02-26 09:01:26 MSK
Исправлено в 1.7.0-alt2