From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from lists.gentoo.org ([140.105.134.102] helo=robin.gentoo.org) by nuthatch.gentoo.org with esmtp (Exim 4.54) id 1FWbg3-00019E-PY for garchives@archives.gentoo.org; Thu, 20 Apr 2006 16:06:44 +0000 Received: from robin.gentoo.org (localhost [127.0.0.1]) by robin.gentoo.org (8.13.6/8.13.5) with SMTP id k3KG69b1009920; Thu, 20 Apr 2006 16:06:09 GMT Received: from home.yosifov.net (mail.yosifov.net [193.200.14.114]) by robin.gentoo.org (8.13.6/8.13.5) with ESMTP id k3KG60on019094 for ; Thu, 20 Apr 2006 16:06:02 GMT Received: by home.yosifov.net (Postfix, from userid 1000) id 9ACE92922B58; Thu, 20 Apr 2006 19:03:22 +0300 (EEST) From: Ivan Yosifov Organization: Yosifov Engineering To: gentoo-java@lists.gentoo.org Subject: Re: [gentoo-java] migration/eclass/java-utils.eclass: line 97: [: -ge: unary operator expected Date: Thu, 20 Apr 2006 19:03:21 +0300 User-Agent: KMail/1.9.1 Cc: Joshua Nichols References: <200604181531.47237.ivan@yosifov.net> <200604191108.28151.ivan@yosifov.net> <44465419.3010503@gentoo.org> In-Reply-To: <44465419.3010503@gentoo.org> Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-java@gentoo.org MIME-Version: 1.0 Content-Type: Multipart/Mixed; boundary="Boundary-00=_KD7REdFd8vOk9XN" Message-Id: <200604201903.22261.ivan@yosifov.net> X-Archives-Salt: 02860fb8-7e88-414c-a475-20d3da9dbaa4 X-Archives-Hash: a35338259dfd792451385abaea8833c3 --Boundary-00=_KD7REdFd8vOk9XN Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Am Mittwoch, 19. April 2006 18:15 schrieb Joshua Nichols: > Ivan Yosifov wrote: > > Am Dienstag, 18. April 2006 19:36 schrieb Joshua Nichols: > >> Ivan Yosifov wrote: > >>> Hello, > >>> > >>> Happens while emergeing eclipse: > >>> > >>> home ~ # emerge -1 eclipse-sdk > >>> Calculating dependencies... done! > >>> > >>>>>> Emerging (1 of 1) dev-util/eclipse-sdk-3.1.2 to / > >>>>>> checksums files .... > >>>>>> checksums src_uri ;-) eclipse-sourceBuild-srcIncluded-3.1.2.zip > >>> > >>> * Checking for sufficient physical RAM > >>> * Checking for bad CFLAGS > >>> * Found offending option -fomit-frame-pointer in your CFLAGS > >>> .... > >>> * Tip: use equery depgraph "=eclipse-sdk-3.1.2" to list all > >>> dependencies. > >>> > >>> /usr/local/portage/migration/migration/eclass/java-utils.eclass: line > >>> 97: [: -ge: unary operator expected > >>> Detected a JDK < 1.5.0 > >>> Detected a JDK >= 1.4.2 > >>> > >>>>>> Unpacking source... > >>> > >>> /usr/local/portage/migration/migration/ is where I've put the migration > >>> overlay revision 2114. Bash is 3.1_p17. Is this an eclass bug or > >>> something else ? > >> > >> Something else, I think. I've been working on the eclipse ebuilds (while > >> using migration-overlay, obviously), and hadn't noticed any problems. > >> > >> It might have something to do with the ebuild itself. Someone went and > >> committed a bump to 3.1.2 without consulting with us Java folks, so I'm > >> not sure what condition it is. Expect to see a new revision in a day or > >> so... > >> > >> Josh > > > > I am getting the same with the new eclipse-sdk-3.1.2-r1. I added some > > debugging output to the eclass in java-utils_is-vm-version-ge(): > > > > --- ./java-utils.eclass 2006-04-19 10:58:43.000000000 +0300 > > +++ /usr/local/portage/migration/migration/eclass/java-utils.eclass > > 2006-04-19 11:00:25.000000000 +0300 > > @@ -91,6 +91,12 @@ > > local vm_patch=$(echo ${vm_version} | cut -d. -f3) > > local vm_extra=$(echo ${vm_version} | cut -d. -f4) > > > > + echo ${vm_major} > > + echo ${vm_minor} > > + echo ${user_major} > > + echo ${user_minor} > > + echo ${vm_patch} > > + echo ${user_patch} > > if [ ${vm_major} -ge ${user_major} ] && [ ${vm_minor} -gt > > ${user_minor} ] ; then > > echo "Detected a JDK >= ${user_version}" > > return 0 > > > > and the output is: > > > > * Tip: use equery depgraph "=eclipse-sdk-3.1.2-r1" to list all > > dependencies. > > > > 1 > > 5 > > 1 > > 5 > > > > 0 > > /usr/local/portage/migration/migration/eclass/java-utils.eclass: line > > 103: [: -ge: unary operator expected > > Detected a JDK < 1.5.0 > > 1 > > 5 > > 1 > > 4 > > > > 2 > > Detected a JDK >= 1.4.2 > > > >>>> Unpacking source... > > > > ,meaning that vm_patch is ending up empty and that seems to confuse -ge > > conditionals using it. > > I'll have to look into this, but it probably just needs to sanity > checking for the vm_extra and company. > > Aside from that, what is the original of the ebuild for eclipse that you > are using? Also, which VM are you using? I haven't been able to quite > reproduce this problem... > > Josh I am using the eclipse-sdk-3.1.2-r1 ebuild from the main tree, attached here for reference. I have sun-jdk 1.4.2.10-r13 and 1.5.0.06-r13 installed. The problem with vm_patch seems to be that java-config -f | sed -e "s/.*-\([0-9.]\+\).*/\1/" ( in java-utils_get-vm-version ) returns just "1.5" and so vm_patch=$(echo ${vm_version} | cut -d. -f3) ( in java-utils_is-vm-version-ge ) ends up being an empty string. There is no third field to cut. -- Cheers, Ivan Yosifov. --Boundary-00=_KD7REdFd8vOk9XN Content-Type: text/plain; charset="iso-8859-1"; name="eclipse-sdk-3.1.2-r1.ebuild" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="eclipse-sdk-3.1.2-r1.ebuild" # Copyright 1999-2006 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/dev-util/eclipse-sdk/eclipse-sdk-3.1.2-r1.ebuild,v 1.1 2006/04/19 04:39:41 nichoj Exp $ inherit eutils java-utils flag-o-matic check-reqs MY_A="eclipse-sourceBuild-srcIncluded-${PV}.zip" RELEASE_DATE="200601181600" DESCRIPTION="Eclipse Tools Platform" HOMEPAGE="http://www.eclipse.org/" SRC_URI="http://download.eclipse.org/eclipse/downloads/drops/R-${PV}-${RELEASE_DATE}/${MY_A}" IUSE="gecko-sdk gnome jikes source doc atk" SLOT="3.1" LICENSE="CPL-1.0" KEYWORDS="~x86 ~ppc ~amd64" S="${WORKDIR}" RDEPEND=">=virtual/jre-1.4.2 >=x11-libs/gtk+-2.2.4 gecko-sdk? ( net-libs/gecko-sdk ) atk? ( >=dev-libs/atk-1.6 ) gnome? ( =gnome-base/gnome-vfs-2* =gnome-base/libgnomeui-2* )" DEPEND="${RDEPEND} >=virtual/jdk-1.4.2 jikes? ( >=dev-java/jikes-1.21 ) >=dev-java/ant-1.6.2 >=dev-java/ant-core-1.6.2-r4 >=sys-apps/findutils-4.1.7 app-arch/unzip app-arch/zip" ECLIPSE_DIR="/usr/lib/eclipse-${SLOT}" ECLIPSE_LINKS_DIR="${ECLIPSE_DIR}/links" # TODO: # - use CFLAGS from make.conf when building native libraries # - must patch eclipse build files # - also submit patch to bugs.eclipse.org # - ppc support not tested, but not explicitly broken either # - make a extension location in /var/lib that's writable by 'eclipse' group # -use make_desktop_entry from eutils instead of our own stuff pkg_setup() { debug-print "Checking for sufficient physical RAM" CHECKREQS_MEMORY="768" check_reqs debug-print "Checking for bad CFLAGS" check-cflags # Make sure our vm is sane java-utils_setup-vm java-utils_ensure-vm-version-ge 1 4 2 # All other gentoo archs match in eclipse build system except amd64 if use amd64 ; then eclipsearch=x86_64 else eclipsearch=${ARCH} fi # All other gentoo archs match in sun jdk library patch except x86 if use x86 ; then jvmarch=i386 else jvmarch=${ARCH} fi # eventually, we'll have a plugin directory that's user writable, as group # 'eclipse' -nichoj # Add the eclipse group, for our plugin directories #enewgroup eclipse } src_unpack() { unpack ${A} # TODO figure out what this does -nichoj epatch ${FILESDIR}/06-path-fixups.patch einfo "Setting up virtual machine" java-utils_setup-vm einfo "Cleaning out prebuilt code" clean-prebuilt-code einfo "Patching makefiles" fix_makefiles fix_amd64_ibm_jvm } src_compile() { # karltk: this should be handled by the java-pkg eclass in setup-vm addwrite "/proc/self/maps" addwrite "/proc/cpuinfo" addwrite "/dev/random" # Figure out VM, set up ant classpath and native library paths setup-jvm-opts if use gecko-sdk ; then einfo "Will compile embedded Mozilla support against net-libs/gecko-sdk" setup-mozilla-opts else einfo "Not building embedded Mozilla support" fi use jikes && bootstrap_ant_opts="-Dbuild.compiler=jikes" debug-print "Bootstrapping bootstrap ecj" ant ${bootstrap_ant_opts} -q -f jdtcoresrc/compilejdtcorewithjavac.xml || die "Failed to bootstrap ecj" debug-print "Bootstrapping ecj" ant -lib jdtcoresrc/ecj.jar -q -f jdtcoresrc/compilejdtcore.xml || die "Failed to bootstrap ecj" debug-print "Compiling Eclipse -- see ${S}/compilelog.txt for details" ANT_OPTS="-Xmx1024M" \ ant -lib jdtcoresrc/ecj.jar -q -f build.xml \ -DinstallOs=linux \ -DinstallWs=gtk \ -DinstallArch=${eclipsearch} \ -Dbootclasspath=${bootclasspath} \ -Dlibsconfig=true \ -DjavacTarget=1.4 \ -DjavacSource=1.4 \ -DjavacVerbose=false \ -DjavacFailOnError=true \ -DjavacDebugInfo=true \ -DbuildId="Gentoo Linux ${PF}" \ || die "Failed to compile Eclipse" cp launchertmp/eclipse eclipse-gtk || die "Cannot find eclipse binary" # TODO use make_desktop_entry from eutils during src_install instead -nichoj create-desktop-entry } src_install() { dodir /usr/lib debug-print "Installing features and plugins" [ -f result/linux-gtk-${eclipsearch}-sdk.tar.gz ] || die "tar.gz bundle was not built properly!" tar zxf result/linux-gtk-${eclipsearch}-sdk.tar.gz -C ${D}/usr/lib || die "Failed to extract the built package" mv ${D}/usr/lib/eclipse ${D}/${ECLIPSE_DIR} insinto ${ECLIPSE_DIR} exeinto ${ECLIPSE_DIR} debug-print "Installing eclipse-gtk binary" doexe eclipse-gtk || die "Failed to install eclipse binary" # need to rename inf file to eclipse-gtk.ini, see bug #128128 if use "!source" ; then debug-print "Removing source code" strip-src fi if use "!doc" ; then debug-print "Removing documentation" strip-docs fi # Install startup script exeinto /usr/bin doexe ${FILESDIR}/eclipse-${SLOT} install-desktop-entry doman ${FILESDIR}/eclipse.1 install-link-files # eventually, we'll have a user writable extension location -nichoj # TODO make g+w #dodir /var/lib/eclipse-${SLOT} #touch ${D}/var/lib/eclipse-${SLOT}/.eclipseextension #fowners root:eclipse /var/lib/eclipse-${SLOT} } # ----------------------------------------------------------------------------- # Helper functions # ----------------------------------------------------------------------------- fix_makefiles() { # Comment out hard-coded JAVA_HOME sed -i 's/^JAVA_HOME/#JAVA_HOME/' plugins/org.eclipse.core.resources.linux/src/Makefile || die "Failed to patch Makefile" # Select the set of native libraries to compile local libs="make_swt make_awt make_atk" if use gnome ; then einfo "Building GNOME VFS support" libs="${libs} make_gnome" fi if use gecko-sdk ; then einfo "Building Mozilla embed support" libs="${libs} make_mozilla" fi if use atk ; then einfo "Building ATK support" libs="${libs} make_atk" fi sed -i "s/^all:.*/all: ${libs}/" "plugins/org.eclipse.swt/Eclipse SWT PI/gtk/library/make_linux.mak" || die "Failed to patch make_linux.mak" } fix_amd64_ibm_jvm() { # the ibm jdk ebuild should have fixed headers, but until then # we just fix the compiling here (see bug #97421) if use amd64 ; then if [ ! -z "`java-config --java-version | grep IBM`" ] ; then einfo "Fixing IBM jdk header problem" find plugins -name "make_linux.mak" -print0 | xargs -0 sed -i -e 's/^CFLAGS =/CFLAGS = -D_JNI_IMPORT_OR_EXPORT_= /' fi fi } clean-prebuilt-code() { find ${S} -type f \( -name '*.class' -o -name '*.so' -o -name '*.so.*' -o -name 'eclipse' \) | xargs rm -f } check-cflags() { local badflags="-fomit-frame-pointer -msse2" local error=false local flag for flag in ${badflags} ; do if is-flag ${flag}; then ewarn "Found offending option ${flag} in your CFLAGS" error=true fi done if [ ${error} == "true" ]; then echo ewarn "One or more potentially gruesome CFLAGS detected. When you run into trouble," ewarn "please edit /etc/make.conf and remove all offending flags, then recompile" ewarn "Eclipse and all its dependencies before submitting a bug report." echo ewarn "In particular, gtk+ is extremely sensitive to which which flags it was" ewarn "compiled with." echo einfo "Tip: use equery depgraph \"=${PF}\" to list all dependencies." echo ebeep fi } setup-jvm-opts() { # Figure out correct boot classpath # karltk: this should be handled by the java-pkg eclass in setup-vm if [ ! -z "`java-config --java-version | grep IBM`" ] ; then # IBM JDK local bp="$(java-config --jdk-home)/jre/lib" bootclasspath="${bp}/core.jar:${bp}/xml.jar:${bp}/graphics.jar:${bp}/security.jar:${bp}/server.jar" JAVA_LIB_DIR="$(java-config --jdk-home)/jre/bin" else # Sun derived JDKs (Blackdown, Sun) local bp="$(java-config --jdk-home)/jre/lib" bootclasspath="${bp}/rt.jar:${bp}/jsse.jar" JAVA_LIB_DIR="$(java-config --jdk-home)/jre/lib/${jvmarch}" fi einfo "Using bootclasspath ${bootclasspath}" einfo "Using JVM library path ${JAVA_LIB_DIR}" if [ ! -f ${JAVA_LIB_DIR}/libawt.so ] ; then die "Could not find libawt.so native library" fi export AWT_LIB_PATH=${JAVA_LIB_DIR} } setup-mozilla-opts() { mozilla_dir="--mozdir-unset---" if [ -f ${ROOT}/usr/lib/gecko-sdk/lib/libgtkembedmoz.so ] ; then mozilla_dir=/usr/lib/gecko-sdk else # TODO need to update this appropriately for gecko-sdk eerror "You have enabled the embedded mozilla component, but no suitable" eerror "provider was found. You need gecko-sdk compiled against" eerror "gtk+ v2.0 or newer." eerror "To merge it, execute 'USE=\"gtk2\" emerge mozilla' as root." eerror "To disable embedded mozilla, remove \"mozilla\" from your USE flags." die "Need Mozilla compiled with gtk+-2.x support" fi export GECKO_SDK="${mozilla_dir}" # TODO should this be using pkg-config? export GECKO_INCLUDES="-include ${GECKO_SDK}/include/mozilla-config.h \ -I${GECKO_SDK}/include/nspr \ -I${GECKO_SDK}/include/nspr \ -I${GECKO_SDK}/include/xpcom \ -I${GECKO_SDK}/include/string \ -I${GECKO_SDK}/include/embed_base \ -I${JAVA_HOME}/include/linux" export GECKO_LIBS="-L${GECKO_SDK}/lib -lgtkembedmoz" } build-native() { sh features/org.eclipse.platform.launchers/library/gtk/build.sh \ -os linux -ws gtk \ -arch ${eclipsearch} || die "Failed to build launcher" } create-desktop-entry() { sed -e "s/@PV@/${PV}/" ${FILESDIR}/eclipse-${SLOT}.desktop \ > eclipse-${SLOT}.desktop || die "Failed to create desktop entry" } install-desktop-entry() { dodir /usr/share/applications insinto /usr/share/applications doins eclipse-${SLOT}.desktop } install_link_file() { local path=${1} local file=${2} echo "path=${path}" > "${D}/${ECLIPSE_LINKS_DIR}/${file}" } install-link-files() { einfo "Installing link files" dodir ${ECLIPSE_LINKS_DIR} install_link_file /opt/eclipse-extensions-3 eclipse-binary-extensions-3.link install_link_file /opt/eclipse-extensions-3.1 eclipse-binary-extensions-3.1.link install_link_file /usr/lib/eclipse-extensions-3 eclipse-extensions-3.link install_link_file /usr/lib/eclipse-extensions-3.1 eclipse-extensions-3.1.link # install_link_file /var/lib/eclipse-3 eclipse-var-3.link # install_link_file /var/lib/eclipse-3.1 eclipse-var-3.1.link } strip-src() { local bp=${D}/${ECLIPSE_DIR} rm -rf ${bp}/plugins/org.eclipse.pde.source_3* \ ${bp}/plugins/org.eclipse.jdt.source_3* \ ${bp}/plugins/org.eclipse.platform.source.linux.* \ ${bp}/plugins/org.eclipse.platform.source_3* \ ${bp}/features/org.eclipse.jdt.source_3* \ ${bp}/features/org.eclipse.pde.source_3* \ ${bp}/features/org.eclipse.platform.source_3* } strip-docs() { local bp=${D}/${ECLIPSE_DIR} rm -rf ${bp}/plugins/org.eclipse.platform.doc.* \ ${bp}/plugins/org.eclipse.jdt.doc.* \ ${bp}/plugins/org.eclipse.pde.doc.* } --Boundary-00=_KD7REdFd8vOk9XN-- -- gentoo-java@gentoo.org mailing list