Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 140633 - 'eselect --no-color compiler list' shows files in ./ directory
Summary: 'eselect --no-color compiler list' shows files in ./ directory
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Hosted Projects
Classification: Unclassified
Component: eselect (show other bugs)
Hardware: All Linux
: High normal
Assignee: Gentoo eselect Team
URL:
Whiteboard:
Keywords: InVCS
Depends on:
Blocks:
 
Reported: 2006-07-16 06:46 UTC by Piotr Miedzik
Modified: 2006-10-03 12:36 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Piotr Miedzik 2006-07-16 06:46:31 UTC
----------------------
command result:
----------------------
qbot ~ # eselect --no-color compiler  list
Available compilers for CTARGET i686-pc-linux-gnu
  [1]   i686-pc-linux-gnu-3.4.6/hardened
  [2]   i686-pc-linux-gnu-3.4.6/hardenednopie
  [3]   i686-pc-linux-gnu-3.4.6/hardenednopiessp
  [4]   i686-pc-linux-gnu-3.4.6/hardenednossp
  [5]   i686-pc-linux-gnu-3.4.6/vanilla
  [6]   i686-pc-linux-gnu-4.1.1/vanilla

Activated profiles:
  i686-pc-linux-gnu 1 5 asterisk-perl-0.08 chroot codb1 ddc Desktop dpkg_1.10.28_i386.deb eKomm emerge emerge.sh _eselect examples fonts.sh hasla headers idea ipssend ivr ivr1 john.log john.pot libgstvideobalance.so libgstvideotestsrc.so lista manuale.tar.bz2 maskarada.txt minicom.log n n.tar.gz nvidia-bug-report.log out.orange out.orange2 out.pnm out.txt out.wp p.c p.jar pld plik.log plik.txt plikz pl_PL polski.txt popcracker popcracker.tar.gz q.wav random-call.py skrypt2.zsh skrypt.zsh symbian vmware voip wake.sh xgl-cmd xorg.conf1 xorg.conf.new Xorg-timing zjebane_bramki       i686-pc-linux-gnu-3.4.6/vanilla

-----------------------------
my eselect version:
-----------------------------
qbot ~ # eselect version
eselect 1.0.2

Copyright (c) 2005 Gentoo Foundation. Distributed under the
terms of the GNU General Public License v2
Comment 1 Hiel Van Campen 2006-07-16 18:50:48 UTC
The problem is in eselect. While investigating "eselect --no-color compiler  list"  globing the "*" giving the dir listing I tried it with "eselect --no-color binutils list" and got
 
hielvc@tester ~ $ eselect --no-color binutils list
Installed binutils for target i386-pc-linux-gnu
Installed binutils for target i686-pc-linux-gnu
  [1]   2.17.50.0.2 , 531_cl1.gif Desktop GoogleEarthLinux.bin Joint_North_Area_June_2006_Calendar__2_.doc Kate.desktop MD2_prg_dsk.img MD2_prg_dsk2.img Mail March_2006_North_Area_Calendar__1.pdf Marla De Barros.doc PDFs Philps-webcam SGI TC backups bashrc bin block.lst books build build.lst char.py cracklib-words.gz dep depchk dep~ em_No_gccselect.sh em_No_gccselect.sh~ emtest emwrap.sh failed.lst file foo-0020a4d4f3.desktop frog.gif frontPgEmwrap frontPgEmwrap~ fstab gcac-0.6.3.tar gcac.ebuild gcc_libs_update_xplntn google-earth greasy-00cb7c9ab7.desktop greep-2.5.1-perl.ebuild grep-2.5.1-perl.ebuild~ grep-2.5.1-r10.ebuild grep-2.5.1a-r10.ebuild head-me.bmp html info install iso larry-002403b7b4.desktop libstdc_post mothers_group.doc mp3 my_hist office openssl.time~ pics pluggins post posts post~ print.ps rmlist scan_missing.sh scan_missing.sh~ select.lst setiboincInfo smb.conf src sys.lst tars tc.lst test test.c testing test~ tmp torrent tst tst.lst tst.org tst_block_mask.sh tst~ uclib udept-0.5.93.1.ebuild video world.sql.gz wrld.lst x11.ebuild

Output without no-color
hielvc@tester ~ $ eselect binutils list
Installed binutils for target i386-pc-linux-gnu
Installed binutils for target i686-pc-linux-gnu
  [1]   2.17.50.0.2 *

Youll see that the "*" is globed
Output 
hielvc@tester ~ $ eselect compiler list
Available compilers for CTARGET i686-pc-linux-gnu
  [1]   i686-pc-linux-gnu-3.4.6/hardened
  [2]   i686-pc-linux-gnu-3.4.6/hardenednopie
  [3]   i686-pc-linux-gnu-3.4.6/hardenednopiessp
  [4]   i686-pc-linux-gnu-3.4.6/hardenednossp
  [5]   i686-pc-linux-gnu-3.4.6/vanilla
  [6]   i686-pc-linux-gnu-4.1.1/vanilla

Activated profiles:
  i686-pc-linux-gnu *       i686-pc-linux-gnu-4.1.1/vanilla

Versions:
[ebuild   R   ] app-admin/eselect-1.0.2  
[ebuild   R   ] app-admin/eselect-compiler-2.0.0_rc2-r1

 emerge --info
Portage 2.1.1_pre3 (default-linux/x86/2006.0, gcc-4.1.1/vanilla, glibc-2.4-r3, 2.6.17.1 i686)
=================================================================
System uname: 2.6.17.1 i686 AMD Sempron(tm) Processor 2800+
Gentoo Base System version 1.12.1
distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled]
app-admin/eselect-compiler: 2.0.0_rc2-r1
dev-lang/python:     2.4.3-r1
dev-python/pycrypto: 2.0.1-r5
dev-util/ccache:     [Not Present]
dev-util/confcache:  0.4.2-r1
sys-apps/sandbox:    1.2.18.1
sys-devel/autoconf:  2.13, 2.60
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2
sys-devel/binutils:  2.17.50.0.2
sys-devel/gcc-config: 2.0.0_rc1
sys-devel/libtool:   1.5.22
virtual/os-headers:  2.6.11-r5
ACCEPT_KEYWORDS="x86 ~x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-march=athlon-xp -Os -pipe "
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/lib/mozilla/defaults/pref /usr/share/X11/xkb /usr/share/config"
CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/eselect/compiler /etc/gconf /etc/java-config/vms/ /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c"
CXXFLAGS="-march=athlon-xp -Os -pipe  "
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig buildpkg confcache distlocks metadata-transfer sandbox sfperms strict userpriv"
GENTOO_MIRRORS="http://mirror.datapipe.net/pub/gentoo/ ftp://ftp.ucsb.edu/pub/mirrors/linux/gentoo/"
MAKEOPTS="-j3"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude='/distfiles' --exclude='/local' --exclude='/packages'"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/include/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="x86 3dnow 3dnowext X alsa apache2 async avi berkdb bitmap-fonts bzip2 cairo chroot cli cpdflib crypt cups dba dillo divx4linux dlloader doc dri eds emboss encode esd examples fbdev foomaticdb fpx freetype gd gdbm gif gnome gpm gstreamer gtk gtk2 imagemagick imlib ipv6 isdnlog java javascript jpeg kde libg++ libwww live lynxkeymap lzw lzw-tiff mad mikmod mmx mmxext mono motif mozilla mp3 mpeg mpeg4 ncurses network nptl nptlonly nsplugin ogg opengl openssh oss pam pango pcre pdflib perl php player png ppds pppd python qt qt3 qt4 quicktime readline real reflection rtc ruby sdl session spell spl sse sse2 ssl tcpd truetype truetype-fonts type1 type1-fonts uamba udev vim vorbis win32codecs xml xmms xorg xv zlib elibc_glibc input_devices_keyboard input_devices_mouse input_devices_evdev kernel_linux userland_GNU video_cards_fbdev video_cards_nv video_cards_nvidia"
Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, LINGUAS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 2 Jakub Moc (RETIRED) gentoo-dev 2006-08-15 03:46:07 UTC
Doesn't look like eselect-compiler specific issue.
Comment 3 Hiel Van Campen 2006-08-15 12:35:53 UTC
I agree. I think the prob is in "/usr/share/eselect/libs/output.bash". Its in this function

# highlight PUBLIC                                 
# Highlight all arguments. Text highlighting function.
highlight() {                                      
    echo -n -e "%%%HI%%%${*}%%%RE%%%"              
}


You get the same dir listing when you run "eselect --no-color binutils list". I changed the "*" to "+" in " /usr/share/eselect/modules/compiler.eselect " 
do_list() {
        local ctarget
        local profiles_v
        local set_v
        local profile
        local i
        local active='+' <<<< was "*" <<<<<<<<<<<<<<<<
        local preopts=""

        while [[ ${#} -gt 0 ]]; do

That prevents the globbing.

hielvc@tester ~ $ eselect --no-color compiler list
Available compilers for CTARGET i686-pc-linux-gnu
  [1]   i686-pc-linux-gnu-3.4.6/hardened
  [2]   i686-pc-linux-gnu-3.4.6/hardenednopie
  [3]   i686-pc-linux-gnu-3.4.6/hardenednopiessp
  [4]   i686-pc-linux-gnu-3.4.6/hardenednossp
  [5]   i686-pc-linux-gnu-3.4.6/vanilla
  [6]   i686-pc-linux-gnu-4.1.1/vanilla

Activated profiles:
  i686-pc-linux-gnu +       i686-pc-linux-gnu-4.1.1/vanilla

greping about ../eselect/modules/ for "active=" gives 4 occurences active=' *' and 1 of active='*'. Changeing these prevents the prob. 

Comment 4 Piotr Miedzik 2006-08-16 00:47:31 UTC
In my opinion, this scripts should be rewriten in other scripting language - for example in python.
Comment 5 Ciaran McCreesh 2006-08-29 17:25:00 UTC
Yes, because rewriting it in Python's really going to help when it's being used for library changes that mean Python's not available...

Simple quoting issue. echo -n -e $(apply_text_highlights "${left}" "${key}") needs more quotes.
Comment 6 Danny van Dyk (RETIRED) gentoo-dev 2006-08-29 17:33:43 UTC
(In reply to comment #2)
> Doesn't look like eselect-compiler specific issue.
>
Correct, still appears in 1.0.5

(In reply to comment #3)
> I agree. I think the prob is in "/usr/share/eselect/libs/output.bash". Its in
> this function
Correct.

> # highlight PUBLIC                                 
> # Highlight all arguments. Text highlighting function.
> highlight() {                                      
>     echo -n -e "%%%HI%%%${*}%%%RE%%%"              
> }
> 
Wrong. This isn't the problem. The real problem is missing quoting in
write_{numbered,kb}_list_entry in two places.

(In reply to comment #4)
> In my opinion, this scripts should be rewriten in other scripting language -
> for example in python.
> 
In my opinion it's good that you have no say here. This is no voting contest,
this is bugzilla. It's about facts, not preferences.

Fixed in SVN r301. Will be in the next release.
Comment 7 Hiel Van Campen 2006-08-29 23:27:25 UTC
Actually I had figured that it was a "quoting issue. echo -n -e $(apply_text_highlights "${left}" "${key}")
needs more quotes". But I had not seen and didnt and still dont understand how "echo -n -e "%%%HI%%%${*}%%%RE%%%" works. I planed playing with it but between work, honey dos I never got back to it. It might help in cleaning this up. 

#!/bin/bash
emerge portage && \
emerge system -eqp|cut -f2 -d "]" -s|cut -f1 -d "["| awk \
	'!/linux-h|glibc|binutils-[0-9]+|gcc-[0-9]+/'>build.lst && emerge -1 \
	USE="-fortran" gcc && emerge -1 glibc binutils gcc  ^&& \
# getting deps. Sometimes in long builds, build time deps are not fully 
# calculated correctly. Hopefully this will pick them up.
for t in $(< build.lst);do
	emerge -p =$t >dep.lst
	if [ "$(wc -l dep.lst)" > "1" ]; then
		# removeing "t" from build list and the same with any bdeps 
		grep -v "$t" build.lst >> tmp; mv tmp build.lst
		for bdep in $(< dep.lst); do
			echo "$d" >> build_time_deps
			# If bdeps are in build.lst but further back remove them
			# so we dont build them twice or more.
			grep -v "$bdep" build.lst >> tmp; mv tmp build.lst
		done
		echo "$t" >> build_time_deps
	fi
done
mv build_time_deps build
for z in $(< build); do
	( ( emerge -1p =${z} ) || ( echo "${t} failed to build" >> faild.lst ))
done

which to me is a cleaner way to do the gcc and glibc upgrade. To let you know useing a simpler version with out the "for" loop and bootstraping a stage1, changing CHOST worked fine with no circular dependency's probs.. 
Comment 8 Danny van Dyk (RETIRED) gentoo-dev 2006-10-03 12:36:55 UTC
Fixed as of eselect-1.0.6.