Summary: | Problem emerging kdejava with sun-jdk-1.5.0.07 installed | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Gilbert Assaf <gassaf> |
Component: | [OLD] KDE | Assignee: | Gentoo KDE team <kde> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | java, neurolabs.de, telefrancisco, world.root, zlin |
Priority: | High | ||
Version: | unspecified | ||
Hardware: | x86 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | 114327 | ||
Bug Blocks: | |||
Attachments: |
fix sed call
kdejava-3.5.2-sed-fix.patch kdejava-3.5.2.ebuild kdejava-3.5.2.ebuild new ebuild patch |
Description
Gilbert Assaf
2006-07-02 16:17:30 UTC
This error happens also with sun-jdk 1.4.2.12 in x86. Created attachment 91207 [details, diff]
fix sed call
Created attachment 91233 [details, diff] kdejava-3.5.2-sed-fix.patch Idea from comment #2 is good, but, sed string from original ebuild was broken. Applying this patch to current ebuild (kdejava-3.5.2.ebuild) should solve the problem. Created attachment 91235 [details]
kdejava-3.5.2.ebuild
Kdejava 3.5.2 (whole) ebuild corrected.
Created attachment 91259 [details]
kdejava-3.5.2.ebuild
I only changed the sed command from "s/regexp/regexp" to the proper "s/regexp/regexp/". It wouldn't work without this.
Still a problem with the 1.8 version of the ebuild: <snip>lo KCompletionBase.lo KCompletion.lo KComboBox.lo KCombiView.lo KColorDrag.lo KColorCombo.lo KColorButton.lo KCmdLineAr ts.lo KCharSelectTable.lo KCharSelect.lo KCModule.lo KButtonBox.lo KBugReport.lo KAuthIcon.lo KAudioPlayer.lo KApplicat idget.lo KActionSeparator.lo KActionMenu.lo KActionCollection.lo KAction.lo KAccel.lo KAboutWidget.lo KAboutPerson.lo K AboutDialog.lo KAboutData.lo KAboutContainer.lo KAboutApplication.lo DCOPObjectProxy.lo DCOPObject.lo DCOPClient.lo Bro .lo ../../../qtjava/javalib/qtjava/libqtjavasupport.la -lkmdi -lkhtml -lkspell -lkio make[4]: Leaving directory `/var/tmp/portage/kdejava-3.5.2/work/kdejava-3.5.2/kdejava/koala/kdejava' make[4]: Entering directory `/var/tmp/portage/kdejava-3.5.2/work/kdejava-3.5.2/kdejava/koala' i686-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I/usr/kde/3.5/include -I/usr/qt/3/include -I. -DQT_THREAD_SUPP RANT -Wno-long-long -Wundef -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts -Wall arith -DNDEBUG -DNO_DEBUG -O2 -O2 -march=pentium3 -pipe -fomit-frame-pointer -Wformat-security -Wmissing-format-attribu irtual-dtor -fno-exceptions -fno-check-new -fno-common -c -o main.o `test -f 'main.cpp' || echo './'`main.cpp make[4]: *** No rule to make target `org/kde/koala/classnoinst.stamp', needed by `koala.jar'. Stop. make[4]: *** Waiting for unfinished jobs.... make[4]: Leaving directory `/var/tmp/portage/kdejava-3.5.2/work/kdejava-3.5.2/kdejava/koala' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/var/tmp/portage/kdejava-3.5.2/work/kdejava-3.5.2/kdejava/koala' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/var/tmp/portage/kdejava-3.5.2/work/kdejava-3.5.2/kdejava' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/kdejava-3.5.2/work/kdejava-3.5.2' make: *** [all] Error 2 !!! ERROR: kde-base/kdejava-3.5.2 failed. Call stack: ebuild.sh, line 1543: Called dyn_compile ebuild.sh, line 938: Called src_compile kdejava-3.5.2.ebuild, line 45: Called kde-meta_src_compile kde-meta.eclass, line 410: Called kde_src_compile kde.eclass, line 164: Called kde_src_compile 'all' kde.eclass, line 323: Called kde_src_compile 'myconf' 'configure' 'make' kde.eclass, line 319: Called die !!! died running emake, kde_src_compile:make !!! If you need support, post the topmost build error, and the call stack if relevant. </snip> # emerge --info Portage 2.1.1_pre4-r1 (default-linux/x86/2006.0, gcc-4.1.1, glibc-2.4-r3, 2.6.16-reiser4-r6 i686) ================================================================= System uname: 2.6.16-reiser4-r6 i686 AMD Athlon(tm) XP 2000+ Gentoo Base System version 1.6.15 distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled] ccache version 2.3 [enabled] app-admin/eselect-compiler: [Not Present] dev-lang/python: 2.3.5-r2, 2.4.3-r1 dev-python/pycrypto: 2.0.1-r5 dev-util/ccache: 2.3 dev-util/confcache: [Not Present] sys-apps/sandbox: 1.2.17 sys-devel/autoconf: 2.13, 2.59-r7 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2 sys-devel/binutils: 2.16.1-r3 sys-devel/gcc-config: 1.3.13-r3 sys-devel/libtool: 1.5.22 virtual/os-headers: 2.6.11-r2 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CBUILD="i686-pc-linux-gnu" CFLAGS=" -O2 -march=pentium3 -pipe -fomit-frame-pointer" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/3.3/env /usr/kde/3.3/share/config /usr/kde/3.3/shutdown /usr/kde/3.4/env /usr/kde/3.4/sha r/kde/3.4/shutdown /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/confi CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf /etc/java-config/vms/ /etc/revdep-rebuild /etc/splash /etc/ CXXFLAGS=" -O2 -march=pentium3 -pipe -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig buildpkg ccache distlocks metadata-transfer sandbox sfperms strict userpriv usersandbox" GENTOO_MIRRORS="http://grumpy.346net/gentoo http://gentoo.netnitco.net http://gentoo.osuosl.org http://www.ibiblio.org/ tributions/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete- --timeout=180 --exclude='/distfiles' --exclude='/local' --exclude='/packages'" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" SYNC="rsync://grumpy.346net/gentoo-portage" USE="x86 X acpi alsa apache2 apm arts audiofile avi berkdb bitmap-fonts bzip2 cddb cli crypt cups dlloader dri eds embo exif flac font-server foomaticdb fortran gdbm gif gphoto2 gpm gstreamer gtk gtk2 hal ide imlib ipv6 isdnlog jpeg kde k g++ libwww mad mikmod mmx motif mp3 mpeg nas ncurses nls nptl nsplugin oav odbc ogg opengl oss pam pcre pdf pdflib perl pd pthreads python qt qt3 qt4 quicktime readline reflection samba scanner sdl session snmp softmmu spell spl sse ssl sv truetype truetype-fonts type1-fonts udev usb userlocales vorbis wxgtk1 xine xinerama xml xmms xorg xscreensaver xv zlib input_devices_keyboard input_devices_mouse kernel_linux userland_GNU video_cards_mga video_cards_fbdev video_cards_vga" Unset: CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, LINGUAS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_O tried again while performing the following update method: emerge -uD world everything worked fine until kdejava failed. redundantly rebuilding the system didn't fix anything either: emerge -e system emerge -e system emerge -e world emerge -e world the rebuild failed on kdejava with the same result. sed: -e expression #1, char 16: unknown option to `s' sed: -e expression #1, char 16: unknown option to `s' This comes from this line (as stated previously): for x in Makefile.am Makefile.in; do [...] sed -e "s:_CLASSPATH_:$(java-config -p qtjava):" $x.orig > $x [...] done I think this is due to a bug in the second generation java system: # java-config -p qtjava :/usr/kde/3.5/lib/java/qtjava.jar # java-config-1 -p qtjava /usr/kde/3.5/lib/java/qtjava.jar # java-config-2 -p qtjava :/usr/kde/3.5/lib/java/qtjava.jar Replacing java-config with java-config-1 resolves the issue for me. Of course that won't work for people using the generation 1 java system (dev-java/java-config-1.2.11-r1). (In reply to comment #8) > # java-config -p qtjava > :/usr/kde/3.5/lib/java/qtjava.jar > # java-config-1 -p qtjava > /usr/kde/3.5/lib/java/qtjava.jar > # java-config-2 -p qtjava > :/usr/kde/3.5/lib/java/qtjava.jar And this comes from the following in /usr/share/qtjava/package.env CLASSPATH=:/usr/kde/3.5/lib/java/qtjava.jar: looks like java-config-1 cares to strip any ':' from both beginning and end, and java-config-2 just from the end. That could be fixed easily. But, properly generated package.env files created by java eclasses don't start or end with ':'. This ebuild forges package.env on its own, and not properly. Moreso, java environment isn't set properly in qtjava-3.5.2 because it doesn't inherit java-pkg eclass, resulting in 1.5 bytecode jar when used with generation-2 java system and 1.5 system vm. qtjava-3.4.3-r1 inherits java-pkg and calls dojar which results in proper bytecode and package.env (done wrt bug 114327). I think this change should be propagated in 3.5 slot as well. After reading comment 9 I have tested the ebuild from bug #114327 for qtjava. It does work and installs /usr/share/qtjava/package.env as /usr/share/qtjava-3.5/package.env instead (hence making qtjava properly slotted). The CLASSPATH entry becomes: CLASSPATH=/usr/share/qtjava-3.5/lib/qtjava.jar and hence fixes this issue. If bug #114327 is properly resolved like that "-3.5" should be added to the sed call in this bug (or something equivalent). I've just tested with success with: sed -e "s#_CLASSPATH_#$(java-config -p qtjava-3.5)#" $x.orig > $x Forgot to mention that I have added a comment to bug #114327. I hope someone with appropriate permissions will reopen or fix it properly.. Created attachment 95992 [details, diff]
new ebuild patch
Okay, fixing qtjava is one thing, but kdejava isn't perfect itself. As with qtjava, kdejava-3.4.3-r1 was fixed to inherit java-pkg and register its jar, but it didn't make it to 3.5 slot. This patch ensures this. Also classpath for qtjava isn't determined by java-config -p, but calling eclass function java-pkg_getjar which records the DEPEND into kdejava's package.env. Sed is using # delimiters because classpath typically contains / and : characters.
Removing blocker as there hasn't any progress on this bug, and I don't want it to hold up stabilizing the new Java system. Should be fixed in -r1 revisions of kdejava-3.5.x. |