app-shells/fish-1.21.8 does not create an entry in /etc/shells. Additionally, unlike other shells, it installs into /usr/bin instead of just /bin. Is there a reason for this? # cat /etc/shells # /etc/shells: valid login shells /bin/sh /bin/bash /bin/tcsh /bin/csh /bin/esh /bin/ksh /bin/zsh /bin/sash # emerge --info Portage 2.1.1 (default-linux/x86/2006.1, gcc-4.1.1, glibc-2.4-r3, 2.6.18-gentoo i686) ================================================================= System uname: 2.6.18-gentoo i686 Pentium II (Deschutes) Gentoo Base System version 1.12.5 Last Sync: Wed, 18 Oct 2006 00:50:01 +0000 app-admin/eselect-compiler: [Not Present] dev-java/java-config: 1.3.7, 2.0.30 dev-lang/python: 2.4.3-r4 dev-python/pycrypto: 2.0.1-r5 dev-util/ccache: [Not Present] dev-util/confcache: [Not Present] sys-apps/sandbox: 1.2.17 sys-devel/autoconf: 2.13, 2.59-r7 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.16.1-r3 sys-devel/gcc-config: 1.3.13-r4 sys-devel/libtool: 1.5.22 virtual/os-headers: 2.6.17-r1 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CBUILD="i686-pc-linux-gnu" CFLAGS="-march=pentium2 -O3 -pipe -fomit-frame-pointer" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc" CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf /etc/java-config/vms/ /etc/revdep-rebuild /etc/terminfo" CXXFLAGS="-march=pentium2 -O3 -pipe -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs autoconfig ccache distcc distlocks metadata-transfer sandbox sfperms strict" GENTOO_MIRRORS="ftp://gentoo.mirrors.pair.com http://gentoo.osuosl.org" LINGUAS="" MAKEOPTS="-j2" 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" SYNC="rsync://rsync.namerica.gentoo.org/gentoo-portage" USE="x86 aim apache2 authdaemond berkdb bitmap-fonts bzip2 cli cracklib crypt cups curl dlloader dri elibc_glibc encode ffmpeg fortran fpx gcj gd gdbm geoip gif gpm icq icu imagemagick input_devices_evdev input_devices_keyboard input_devices_mouse ipv6 isdnlog j-noaim j-nojud j-nomsn j-noyahoo jabber java jpeg kernel_linux ldap libclamav libg++ mad maildir mmx mpeg mpm-worker msn mysql nagios-dns nagios-game nagios-ntp nagios-ping nagios-ssh ncurses nls nptl nptlonly ogg pam pcre perl php png postgres ppds pppd pri python readline reflection ruby samba sasl session spl ssh ssl swat tcpd threads tiff truetype-fonts type1-fonts udev unicode unzip ups usb userland_GNU vhosts video_cards_apm video_cards_ark video_cards_ati video_cards_chips video_cards_cirrus video_cards_cyrix video_cards_dummy video_cards_fbdev video_cards_glint video_cards_i128 video_cards_i740 video_cards_i810 video_cards_imstt video_cards_mga video_cards_neomagic video_cards_nsc video_cards_nv video_cards_rendition video_cards_s3 video_cards_s3virge video_cards_savage video_cards_siliconmotion video_cards_sis video_cards_sisusb video_cards_tdfx video_cards_tga video_cards_trident video_cards_tseng video_cards_v4l video_cards_vesa video_cards_vga video_cards_via video_cards_vmware video_cards_voodoo vorbis wmf xml xorg xvid yahoo zaptel zip zlib" Unset: CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY
/etc/shells is owned by baselayout, not fish. Have you tested installing it to bin and adding it to /etc/shells?
Even if it installs to /usr (and I know of one person who has a separate /usr partition and need a shell before /usr is mounted), there should be an entry in /etc/shells. Please look at the pkg_postinst() of the shish ebuild for how they add an entry to /etc/shells, and also consider changing the default install directory to /bin instead of /usr/bin (though the install path change is optional).
(In reply to comment #2) > Even if it installs to /usr (and I know of one person who has a separate /usr > partition and need a shell before /usr is mounted), there should be an entry in > /etc/shells. Please look at the pkg_postinst() of the shish ebuild for how they > add an entry to /etc/shells, and also consider changing the default install > directory to /bin instead of /usr/bin (though the install path change is > optional). I consider the two things tied together. We can't have it available as a default shell when /usr may not be available yet on many systems. The shish thing is a complete hack and whoever did it should be injured. Getting it into official baselayout is the only way to go.
Just a further note to emphasize that I will be happy for both things to happen, I'm just asking you to test it.
Ok, I understand more of why it wasn't put into /etc/shells now. Is adding --prefix=/ to the configure line not an option? Would it still rely on libraries in /usr to run? I personally don't have a separate /usr partition, so I can't test it, though adding --prefix=/ does make the binaries install to /bin.
(In reply to comment #5) > Ok, I understand more of why it wasn't put into /etc/shells now. Is adding > --prefix=/ to the configure line not an option? Think about all the other stuff it'll install to the wrong place. /share/doc, /share/man, etc. > Would it still rely on > libraries in /usr to run? The only library the fish binary links against is ncurses, which is in /lib. > I personally don't have a separate /usr partition, so > I can't test it, though adding --prefix=/ does make the binaries install to > /bin. The bash ebuild just moves the binary manually after the install in src_install().
1.22.2 installs to /bin but does not yet have an /etc/shells entry in baselayout.
This is fixed in baselayout SVN and should hit a release soon.