[Bug 1536] JDK source install instructions seem to be slightly incorrect.

Paul Bowyer pbowyer at olynet.com
Sun Aug 21 17:44:30 PDT 2005


What happened was this:

"cp -v -a j2sdk-image /opt/jdk/jdk-1.5.0" placed the "j2sdk-image" directory 
in "/opt/jdk/jdk-1.5.0" rather than just its contents as was probably 
intended.

Then "ln -sf motif21/libmawt.so  /opt/jdk/jdk-1.5.0/jre/lib/i386/" failed 
because it couldn't find its file.

I must admit that I was using a modified build script from the "package-user" 
package management system, which is included here for your inspection.

*************************************************************************
#!/bin/bash
#
# Build script for <JDK>
#
# It will create 6 log files in the $HOME directory:
#   make.log: All messages output during make
#   make.err: Just the errors output during make
#   install.log: All messages output during make install
#   install.err: Just the errors output during make install
#
# After running the script you should check the *.err files to see
# if any problems have occurred. If that is the case, use the corresponding
# *.log files to see the error messages in context.

# Note: the ":;" before the "}" in *_commands() is a no-op that makes sure 
# that the function remains syntactically valid, even if you remove its
# contents (e.g. remove the "configure" line, because there's nothing to 
# configure for the package).

NAME="$1"
DIR="$PWD"

if [[ "$NAME" != "binary" && "$NAME" != "source" ]]; then
  echo "Usage is: 'build binary' or 'build source' from '/usr/src/jdk/work'"
  exit
elif [ "$NAME" == "binary" ]; then
  echo "Binary build"
  export VERSION=1.5.0_04
  export MV=`echo $VERSION | cut -d "_" -f 1,1`
  export V=`echo ${VERSION} | sed -e "s/\./_/g"`
  cp -v /blfs/jdk-${V}-linux-i?86.bin .
  sed -i "s:^PATH=.*::" jdk-${V}-linux-i?86.bin
  chmod -v +x jdk-${V}-linux-i?86.bin
  mkdir -v -p bin
  ln -v -sf /bin/true bin/more
  yes | PATH=$PWD/bin:$PATH ./jdk-${V}-linux-i?86.bin
elif [ "$NAME" == "source" ]; then
  echo "Source build"
  VERSION=1.5.0
  V=`echo $VERSION | sed -e "s/\./_/g"`
  export JAVA_HOME=/opt/jdk/jdk-precompiled-${VERSION}
  export PATH=$PATH:${JAVA_HOME}/bin
  mkdir -v -p jdk-build
  cd jdk-build
  rm -Rf *
  unzip /blfs/jdk-${V}-src-jrl.zip
  unzip /blfs/jdk-${V}-bin-jrl.zip
  unzip /blfs/jdk-${V}-mozilla_headers-unix.zip
  unzip /blfs/jdk_sec-${V}-src-scsl.zip
  for PATCH in /blfs/jdk-1.5.0*.patch
    do patch -Np1 -i ${PATCH}
  done
  cd ${DIR}
fi

make_commands()
{ :
  export ALT_BOOTDIR="$JAVA_HOME"
  unset JAVA_HOME
  unset CLASSPATH
  unset CFLAGS
  unset CXXFLAGS
  unset LDFLAGS
  export ALT_DEVTOOLS_PATH="/usr/bin"
  export BUILD_NUMBER="blfs-6.1"
  export DEV_ONLY=true
  export ALT_MOZILLA_PATH=$PWD
  export INSANE=true
  export MAKE_VERBOSE=true
  export ALT_CACERTS_FILE=${ALT_BOOTDIR}/jre/lib/security/cacerts
  cd jdk-build/control/make
  make
  cd ${DIR}
}

install_commands()
{ :
  if [ "$NAME" == "binary" ]; then
    echo "Installing binary JDK"
    cd jdk${VERSION}
    /usr/lib/pkgusr/install -v -d /opt/jdk/jdk-precompiled-${MV}
    mv -v * /opt/jdk/jdk-precompiled-${MV}
    chown -v -R jdk:jdk /opt/jdk/jdk-precompiled-${MV}
    cd ${DIR}
    rm -Rf jdk-${V}-linux-i?86.bin jdk${VERSION} bin
    unset VERSION
    unset MV
    unset V
  elif [ "$NAME" == "source" ]; then
    echo "Installing source JDK"
    cd jdk-build/control/build/linux-i?86
    /usr/lib/pkgusr/install -v -d /opt/jdk/jdk-1.5.0
    cp -v -a j2sdk-image/* /opt/jdk/jdk-1.5.0
    chown -v -R jdk:jdk /opt/jdk/jdk-1.5.0
    ln -sf motif21/libmawt.so  /opt/jdk/jdk-1.5.0/jre/lib/i386/
    cd ${DIR}
    rm -Rf jdk-build
    unset VERSION
    unset MV
    unset V
    unset ALT_BOOTDIR
    unset ALT_DEVTOOLS_PATH
    unset BUILD_NUMBER
    unset DEV_ONLY
    unset ALT_MOZILLA_PATH
    unset INSANE
    unset MAKE_VERBOSE
    unset ALT_CACERTS_FILE  
  fi
}


test_pipe()
{
  for i in "${PIPESTATUS[@]}" 
  do
    test $i != 0 && { echo FAILED! ; exit 1 ; }
  done
  echo successful!
  return 0
}

# NOTE: Simply using && instead of test_pipe would not work, because &&
# only tests the exit status of the last command in the pipe, which is tee.

if [ "$NAME" == "source" ]; then
  echo -n Making...
  { make_commands 3>&1 1>&2 2>&3 | tee "$HOME/make-$NAME.err" ;} 
&>"$HOME/make-$NAME.log"
  test_pipe
fi

echo -n Installing...
{ install_commands 3>&1 1>&2 2>&3 | tee "$HOME/install-$NAME.err" ;} 
&>"$HOME/install-$NAME.log"
test_pipe
*************************************************************************


On Friday 19 August 2005 09:34 am, you wrote:
> http://blfs-bugs.linuxfromscratch.org/show_bug.cgi?id=1536
>
>
>
>
>
> ------- Additional Comments From tushar at linuxfromscratch.org  2005-08-19
> 10:34 ------- What was the error that you got with the method in the book?
>
>
>
> ------- You are receiving this mail because: -------
> You reported the bug, or are watching the reporter.



More information about the blfs-book mailing list