>> 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' >> >> }}} >> >> >> >> 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 >> > >> > >> > >> > >> > >> > -- >> > >> >> 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' ? > > > For ref: > ---- > $ grep -r 'n/a' ./lsb-release-1.4/ > ./lsb-release-1.4/lsb_release:MSG_NA="n/a" > ./lsb-release-1.4/lsb_release: echo -e "$MSG_LSBVER$LSB_VERSION" > # at least "n/a" > ./lsb-release-1.4/lsb_release.examples:LSB Version: n/a > $ > $ grep -r MSG_NA ./lsb-release-1.4/ > ./lsb-release-1.4/lsb_release:MSG_NA="n/a" > ./lsb-release-1.4/lsb_release: [ -z "$LSB_VERSION" ] && > LSB_VERSION=$MSG_NA > ./lsb-release-1.4/lsb_release: [ -z "$DISTRIB_ID" ] && > DISTRIB_ID=$MSG_NA > ./lsb-release-1.4/lsb_release: [ -z "$DISTRIB_RELEASE" ] && > DISTRIB_RELEASE=$MSG_NA > ./lsb-release-1.4/lsb_release: [ -z "$DISTRIB_CODENAME" ] && > DISTRIB_CODENAME=$MSG_NA > ./lsb-release-1.4/lsb_release: [ -z "$DISTRIB_ID" ] && > DISTRIB_ID=$MSG_NA > ./lsb-release-1.4/lsb_release: [ -z "$DISTRIB_RELEASE" ] && > DISTRIB_RELEASE=$MSG_NA > ./lsb-release-1.4/lsb_release: [ -z "$DISTRIB_CODENAME" ] && > DISTRIB_CODENAME=$MSG_NA > ./lsb-release-1.4/lsb_release: DISTRIB_ID=$MSG_NA > ./lsb-release-1.4/lsb_release: && DISTRIB_RELEASE=$MSG_NA > ./lsb-release-1.4/lsb_release: && DISTRIB_CODENAME=$MSG_NA > $ > ---- > > > > rgds, > akh > > > > > > -- > -- > http://linuxfromscratch.org/mailman/listinfo/blfs-support > FAQ: http://www.linuxfromscratch.org/blfs/faq.html > Unsubscribe: See the above information page >
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. -- http://linuxfromscratch.org/mailman/listinfo/blfs-support FAQ: http://www.linuxfromscratch.org/blfs/faq.html Unsubscribe: See the above information page