> From blfs-support-boun...@linuxfromscratch.org Fri Feb 14 13:19:25 2014
> Date: Fri, 14 Feb 2014 10:13:47 -0300
> From: Fernando de Oliveira <fam...@yahoo.com.br>
> To: BLFS Support List <blfs-support@linuxfromscratch.org>
> Subject: Re: [blfs-support] Iced Tea 2.4.1 and iced tea 2.4.5 sed unknown
>  option to `s'
>
        .
        .
>
> I am trying to understand this better, and have found that configure and
> configure.ac have mentions to lsb_release. I am trying to understand if
> it is a required, recommended or optional dependency. However, in one
> machine I do not have it installed and it gives me linux-gnu and builds
> fine, so, I am intending to add as optional.
>
> What do you all think about this? I cannot understand why Christopher's
> is getting n/a.
>
> In the following, I am writing some observations and guesses.
>
> In configure, for 2.4.4, which is a build dir still in place in yet
> another machine, I see:
>
> {{{
> if test -n "$ac_tool_prefix"; then
>   # Extract the first word of "${ac_tool_prefix}lsb_release", so it can
> be a program name with args.
> set dummy ${ac_tool_prefix}lsb_release; ac_word=$2
> { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
> $as_echo_n "checking for $ac_word... " >&6; }
> if ${ac_cv_path_LSB_RELEASE+:} false; then :
>   $as_echo_n "(cached) " >&6
> else
>   case $LSB_RELEASE in
>   [\\/]* | ?:[\\/]*)
>   ac_cv_path_LSB_RELEASE="$LSB_RELEASE" # Let the user override the test
> with a path.
>   ;;
>   *)
>   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
> }}}
>
>
> Also, I noticed that he is building at /opt, so probably as root. I have:
>
> {{{
> $ xzgrep -C6 distro_name
> /home/fernando/Downloads/blfs/OpenJDK-1.7.0.51-2.4.5-2014.01.29-18h12m38s.log.xz
> rm -f
> /home/fernando/tmp/paco-build-2014.01.29-18h12m38s/icedtea-2.4.5/generated.build/sun/misc/Version.java
> rm -f
> /home/fernando/tmp/paco-build-2014.01.29-18h12m38s/icedtea-2.4.5/generated.build/sun/misc/Version.java.temp
> /bin/sed -e 's/@@launcher_name@@/java/g' \
>     -e 's/@@java_version@@/1.7.0_51-blfs/g' \
>     -e 's/@@java_runtime_version@@/1.7.0_51-blfs-b31/g' \
>     -e 's/@@jdk_derivative_name@@/IcedTea 2.4.5/g' \
>     -e 's/@@distro_name@@/Linux From Scratch/g' \
>     -e 's/@@distro_package_version@@/'7u51-2.4.5-blfs'/g' \
>     -e 's/@@java_runtime_name@@/OpenJDK Runtime Environment/g' \
>     -e 's/@@jdk_revid@@//g' \
>     -e 's/@@hotspot_revid@@//g' \
> ../../../src/share/classes/sun/misc/Version.java.template >
> /home/fernando/tmp/paco-build-2014.01.29-18h12m38s/icedtea-2.4.5/generated.build/sun/misc/Version.java.temp
> make[5]: Leaving directory
> `/home/fernando/tmp/paco-build-2014.01.29-18h12m38s/icedtea-2.4.5/openjdk-boot/jdk/make/java/version'
> }}}
>
> I remember having sometime ago problems with PATH, for some packages, if
> I build as root, and for those, I have a line in the script:
>
> source /etc/profile
>
> and the PATH is well defined, because he needs:
>
> export CLASSPATH=.:/usr/share/java &&
> export PATH="$PATH:/opt/OpenJDK-1.7.0.51-bin/bin"
>
> or similar, if the binary is another one, i.e., the binary has to be in
> the path, and, in my case, it is provided by:
>
> /etc/profile.d/openjdk.sh
>
> which is defined in OJDK/Icedtea BLFS page.
>


Yes, tracing through the code indicates that the problem may be
stemming from 'lsb_release -is' outputting 'n/a' (others on web have
reported various breakages - not just re icedtea - that seem to stem
from lsb_release using 'n/a' as a return value - and the code that uses
said output not sanitising its own input).


The following is working from blfs-svn ('OpenJDK-1.7.0.51/IcedTea-2.4.5'
, 'http://www.linuxfromscratch.org/blfs/view/svn/general/openjdk.html'),
but should be similar for blfs-7.4 (I've broken/re-wrapped some of the 
longer outputted lines):
----
(0) # Unpack src tarballs into . for the purposes of following greps. NB
    that this is not making any suggestion on how you should unpack
    stuff for the build: follow the book for that, of course.

(1) grep -r '@@distro_name@@' .
./jdk-9db88c18e114/make/java/version/Makefile:
      -e 's/@@distro_name@@/$(DISTRO_NAME)/g' \

(2) grep -r 'DISTRO_NAME' .
./icedtea-2.4.5/Makefile.am:
    echo "DISTRO_NAME=$(DIST_NAME)" >>openjdk/jdk/make/common/shared/Defs.gmk ;
./icedtea-2.4.5/Makefile.in:
    echo "DISTRO_NAME=$(DIST_NAME)" >>openjdk/jdk/make/common/shared/Defs.gmk ;
./jdk-9db88c18e114/make/java/version/Makefile:
      -e 's/@@distro_name@@/$(DISTRO_NAME)/g' \

(3) grep -r 'DIST_NAME' .
./icedtea-2.4.5/Makefile.am:
    echo "DISTRO_NAME=$(DIST_NAME)" >>openjdk/jdk/make/common/shared/Defs.gmk ;
./icedtea-2.4.5/ChangeLog:      DIST_NAME to build.
./icedtea-2.4.5/configure:DIST_NAME
./icedtea-2.4.5/configure:  DIST_NAME="$($LSB_RELEASE -is | sed 
's/^"//;s/"$//')"
./icedtea-2.4.5/configure:  DIST_NAME="$build_os"
./icedtea-2.4.5/acinclude.m4:  DIST_NAME="$($LSB_RELEASE -is | sed 
's/^"//;s/"$//')"
./icedtea-2.4.5/acinclude.m4:  DIST_NAME="$build_os"
./icedtea-2.4.5/acinclude.m4:AC_SUBST(DIST_NAME)
./icedtea-2.4.5/Makefile.in:DIST_NAME = @DIST_NAME@
./icedtea-2.4.5/Makefile.in:
    echo "DISTRO_NAME=$(DIST_NAME)" >>openjdk/jdk/make/common/shared/Defs.gmk ;

(4) grep -lrE 'LSB_RELEASE|build_os' .
./icedtea-2.4.5/ChangeLog
./icedtea-2.4.5/configure
./icedtea-2.4.5/acinclude.m4
./icedtea-2.4.5/Makefile.in
./icedtea-2.4.5/configure.ac

(5) From the files in '(4)', you can see that build_os is only set
    if there's no LSB_RELEASE / lsb_release *detected* (which doesn't
    necessarily mean that you've not got it present).

    I'd suggest tracing the execution of './configure ...' to verify that
    the variables it's using, and the code paths that it thus follows,
    are what you're expecting them to be. A crude but simple & effective
    way to do that, is to stick in 'echo ....' lines at judicious places,
    mainly in './icedtea-2.4.5/configure' - and with, per earlier post
    today, appropriate marker text strings so that you can readily
    grep/locate them from the logged output &/or stdout/stderr.
----



hth,
akh





--
-- 
http://linuxfromscratch.org/mailman/listinfo/blfs-support
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page

Reply via email to