Bug 151108 - app-shells/bash-3.2 changes =~ semantics and breaks baselayout
|
Bug#:
151108
|
Product: Gentoo Linux
|
Version: 2006.1
|
Platform: All
|
|
OS/Version: Linux
|
Status: RESOLVED
|
Severity: critical
|
Priority: P1
|
|
Resolution: FIXED
|
Assigned To: base-system@gentoo.org
|
Reported By: sebastian@gentoo.org
|
|
Component: baselayout
|
|
|
URL:
http://lists.gnu.org/archive/html/bug-bash/2006-10/msg00045.html
|
|
Summary: app-shells/bash-3.2 changes =~ semantics and breaks baselayout
|
|
Keywords:
|
|
Status Whiteboard:
|
|
Opened: 2006-10-13 00:14 0000
|
After upgrading to app-shells/bash-3.2 my laptop stopped booting. At the start
of sysvinit the system tells me that the kernel is missing support for tmpfs,
which it does not.
Downgrading to app-shells/bash-3.1_p17 solved the issue.
--
Portage 2.1.2_pre2-r9 (default-linux/x86/2006.1, gcc-4.1.1, glibc-2.5-r0,
2.6.18-gentoo i686)
=================================================================
System uname: 2.6.18-gentoo i686 Genuine Intel(R) CPU L2400 @
1.66GHz
Gentoo Base System version 1.13.0_alpha1
Last Sync: Fri, 13 Oct 2006 06:00:01 +0000
ccache version 2.4 [disabled]
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: 2.4-r6
dev-util/confcache: [Not Present]
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
sys-devel/gcc-config: 1.3.13-r4
sys-devel/libtool: 1.5.22
virtual/os-headers: 2.6.17-r1
ACCEPT_KEYWORDS="x86 ~x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-march=pentium-m -O2 -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/X11/xkb"
CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf
/etc/java-config/vms/ /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c"
CXXFLAGS="-march=pentium-m -O2 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs autoconfig cvs digest distlocks fixpackages
metadata-transfer parallel-fetch sandbox sfperms sign strict"
GENTOO_MIRRORS="http://mirror.gentoo.no/ ftp://ftp.du.se/pub/os/gentoo
ftp://trumpetti.atm.tut.fi/gentoo/
ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo
http://gentoo.oregonstate.edu"
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"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="x86 X a52 aac acpi alsa asf berkdb bitmap-fonts bluetooth browserplugin
bzip2 cairo cli crypt cups dbus dga divx4linux dlloader dri dvd dvdread eds
elibc_glibc exif fame firefox flac foomaticdb fortran gaim galago gdbm gif
glitz gnome gpm graphviz gstreamer gtk hal input_devices_evdev
input_devices_keyboard input_devices_mouse iproute2 ipv6 isdnlog java jpeg
kdeenablefinal kdehiddenvisibility kernel_linux libg++ libnotify libsexy lzo
mad matroska mjpeg mmx mmxext mng mono moznocompose moznoirc moznomail mozsvg
mp3 mpeg ncurses nls nomotif nptl nptlonly nsplugin ogg oggvorbis opengl pam
pam_console pcre pdf perl png ppds pppd python quicktime readline reflection
samba session smp spl sse sse2 ssl startup-notification svg tcpd tetex theora
tiff truetype truetype-fonts type1-fonts udev unicode usb userland_GNU
video_cards_i810 vorbis win32codecs wmf xcb xml xml2 xorg xv xvid xvmc zlib"
Unset: CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LDFLAGS,
LINGUAS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY
In bash 3.2 the binary operator =~ is broken.
[[ "one two three" =~ "one (.*) three" ]] && echo $? ${BASH_REMATCH[1]} || echo
$?
bash 3.1_p17 gives 0 two
bash 3,2 gives 1
The exact call in baselayout that is failing is this
local filesystems=$(</proc/filesystems)
if [[ ${filesystems} =~ "[[:space:]]tmpfs"$'\n' ]] ; then
fs="tmpfs"
else
<work out ramfs, etc>
fi
baelayout-1.12 shouldn't be affected by this as we use these tests in 1.13
(currently alpha, unstable and p.masked)
3.2 Changelog
f. Quoting the string argument to the [[ command's =~ operator now forces
string matching, as with the other pattern-matching operators.
match="one (.*) three"
[[ "one two three" =~ ${match} ]] && echo $? ${BASH_REMATCH[1]} || echo $?
now gives
0 two
in bash 3.2
That sucks
I suppose we could do
match="one (.*) three"
[[ "one two three" =~ ${dummyvar:-one (.*) three} ]] && echo $?
${BASH_REMATCH[1]} || echo $?
which works also, but that sucks too.
Hmmmmmm
I have another problem with bash and baselayout,
related with reboot and poweroff,
after their run
/sbin/reboot or /sbin/poweroff
I got something
INIT: no more processes left on runlevel
and root filesystem not unmounted correctly, and machine was not rebooted, or
halted, I have to do it manualy,
downgrade to < bash-3.2 was solved the problem.
baselayout 1.12.5-r2
bash 3.2
Although this bug is only about =~ semantics, I'd like to note (just not to
forgive about this) that there are some other problems with bash-3.2. Fex,
compilation of kate and some other packages became broken. And I have not
checked but may be this error also exist:
http://lists.gnu.org/archive/html/bug-bash/2006-10/msg00046.html
the KDE issue is tracked in another bug ... it's a different issue so it gets a
different bug
baselayout-1.12.6 works with all bash versions.