Em 17-02-2014 03:47, m...@pc-networking-services.com escreveu:
>>> Date: Sat, 15 Feb 2014 09:58:02 -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'
>>>
>>> Em 15-02-2014 08:29, akhiezer escreveu:
>>>>> 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'
>>>>> }}}
>>>>>


>>>>
>>>>
>>>> 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
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> --
>>>>
>>>
>>> Many thanks again, akh. Read quickly your mail (obliged to do other
>>> things, as I wrote earlier), and seems very good analysis indeed.
>>>
>>>
>>> But still spent some time with this, reading the config.log (it is fast
>>> to do it to this point).
>>>
>>> In one machine, I have:
>>>
>>> {{{
>>> DIST_ID='Custom build (Sat Feb 15 08:33:10 BRT 2014)'
>>> DIST_NAME='linux-gnu'
>>> }}}
>>>
>>> In another:
>>>
>>> {{{
>>> DIST_ID='Linux From Scratch, package '\''7u51-2.4.4-blfs'\'''
>>> DIST_NAME='Linux From Scratch'
>>> }}}
>>>
>>> First one does not have lsb_release, second one does:
>>>
>>> $ env LC_ALL=C which lsb_release
>>> which: no lsb_release in
>>> (/usr/local/bin:/bin:/sbin:/usr/sbin:/opt/gnome/bin:/opt/ant/bin:/opt/openjdk/bin:/opt/qt/bin:/usr/bin:/usr/X11R6/bin)
>>>
>>> $ grep -ri linux-gnu /etc/ 2>/dev/null
>>> /etc/gtk-2.0/gtk.immodules:# ModulesPath =
>>> /root/.gtk-2.0/2.10.0/i686-pc-linux-gnu/immodules:/root/.gtk-2.0/2.10.0/immodules:/root/.gtk-2.0/i686-pc-linux-gnu/immodules:/root/.gtk-2.0/immodules:/usr/lib/gtk-2.0/2.10.0/i686-pc-linux-gnu/immodules:/usr/lib/gtk-2.0/2.10.0/immodules:/usr/lib/gtk-2.0/i686-pc-linux-gnu/immodules:/usr/lib/gtk-2.0/immodules
>>>
>>> I cannot believe that it is taking
>>>
>>> Second machine:
>>>
>>> $ which lsb_release
>>> /usr/bin/lsb_release
>>>
>>> $ lsb_release -ds
>>> "Linux From Scratch"
>>>
>>>
>>> Configure search for DIST_NAME in:
>>>
>>> { $as_echo "$as_me:${as_lineno-$LINENO}: checking build identification"
>>>> &5
>>> $as_echo_n "checking build identification... " >&6; }
>>> if test -n "$LSB_RELEASE"; then
>>>   lsb_info="$($LSB_RELEASE -ds | sed 's/^"//;s/"$//')"
>>>   if test "x$PKGVERSION" = "xnone"; then
>>>     DIST_ID="Built on $lsb_info ($(date))"
>>>   else
>>>     DIST_ID="$lsb_info, package $PKGVERSION"
>>>   fi
>>>   DIST_NAME="$($LSB_RELEASE -is | sed 's/^"//;s/"$//')"
>>> else
>>>   DIST_ID="Custom build ($(date))"
>>>   DIST_NAME="$build_os"
>>> fi
>>>
>>> Thus, it should be able to find using the variable build_os, which seems
>>> to be defined in configure at:
>>>
>>> # Remember, the first character of IFS is used to create $*,
>>> # except with old shells:
>>> build_os=$*
>>>
>>> Value is defined everywhere, including Makefile, only after configure is
>>> run:
>>>
>>> Makefile:build_os = linux-gnu
>>> config.status:S["build_os"]="linux-gnu"
>>> config.log:build_os='linux-gnu'
>>>
>>> I still do not understand how it gets this value.
>>>
>>> I have to stop, now.
>>>
>>
>>
>> (Yes, likewise here doing this in parallel.)
>>
>>
>> I think that it looks like Christopher (OP) config _is_ finding and
>> executing 'lsb_release -is' (& likely also 'lsb_release -ds'), and
>> it's the 'lsb_release -is' that's returning the 'n/a' - iirc
>> usually from/via '/etc/lsb_release' or similar.
>>
>>
>> Christopher, can you confirm if your build environment does have
>> 'lsb_release -is', and if so what does it output? And similarly for
>> 'lsb_release -ds' ?


>>
>>
>>
>>
>>

> 
> Hello,
> 
> Thanks for all the effort.  As requested the output is:
> lsb_release -ds "7.4"  (the " are displayed in the output)
> lsb_release -is n/a
> 
> Not exactly sure what you wish me to try.
> 
> I have no problem with attempting to install a later version if needs be.
> 
> Please let me know what to try.  I did install the version listed as
> stable in the 7.4 book.  It was that one which I replaced the / with a %
> sign.  Was the only way to get it to build, and hence why I am not sure if
> it was a successful build or not.
> 
> Regards,
> 
> Christopher.
> 


I think I know what happened. You forgot or did not properly

http://www.linuxfromscratch.org/lfs/view/7.4/chapter09/theend.html
(before doing the following as root, backup, if you have them, the two
files, just for later comparison, so you will see the problem):

echo 7.4 > /etc/lfs-release

In the following, replace <your name here> by what you want the codename
to be. In may case, it is set by jhalfs to "lfs-jhalfs". In your case,
you can use christopher, lfs-christopher, anything you want.

cat > /etc/lsb-release << "EOF"
DISTRIB_ID="Linux From Scratch"
DISTRIB_RELEASE="7.4"
DISTRIB_CODENAME="<your name here>"
DISTRIB_DESCRIPTION="Linux From Scratch"
EOF

This should solve your problems.

You must do this, other software needs the lsb_release output.

Thus,

lsb_release -ds output comes from DISTRIB_DESCRIPTION
lsb_release -is output comes from DISTRIB_ID

Notice, in the referred page: Linux Standards Base (LSB)

-- 
[]s,
Fernando
-- 
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