From: Ivan Yosifov <ivan@yosifov.net>
To: gentoo-java@lists.gentoo.org
Cc: Joshua Nichols <nichoj@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 [thread overview]
Message-ID: <200604201903.22261.ivan@yosifov.net> (raw)
In-Reply-To: <44465419.3010503@gentoo.org>
[-- Attachment #1: Type: text/plain, Size: 3665 bytes --]
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.
[-- Attachment #2: eclipse-sdk-3.1.2-r1.ebuild --]
[-- Type: text/plain, Size: 10577 bytes --]
# 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.*
}
next prev parent reply other threads:[~2006-04-20 16:06 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-04-18 12:31 [gentoo-java] migration/eclass/java-utils.eclass: line 97: [: -ge: unary operator expected Ivan Yosifov
2006-04-18 16:36 ` Joshua Nichols
2006-04-19 8:08 ` Ivan Yosifov
2006-04-19 15:15 ` Joshua Nichols
2006-04-20 16:03 ` Ivan Yosifov [this message]
2006-04-25 12:18 ` Ivan Yosifov
2006-05-01 21:19 ` Joshua Nichols
2006-05-01 23:45 ` Mathew Robertson
2006-05-02 3:53 ` Joshua Nichols
2006-05-02 4:19 ` [gentoo-java] OT: eclipse auto-indent Mathew Robertson
2006-05-02 4:48 ` Qian Qiao
2006-05-02 4:50 ` Mathew Robertson
2006-05-02 18:01 ` [gentoo-java] migration/eclass/java-utils.eclass: line 97: [: -ge: unary operator expected Ivan Yosifov
2006-05-02 18:29 ` Joshua Nichols
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200604201903.22261.ivan@yosifov.net \
--to=ivan@yosifov.net \
--cc=gentoo-java@lists.gentoo.org \
--cc=nichoj@gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox