usr/src/cmd/bash/METADATA
author Cyril Plisko <cyril.plisko@grigale.com>
Tue, 06 Apr 2010 16:00:14 +0300
changeset 11 87960ed158f9
parent 5 d07534556b03
child 40 63cda99131e9
permissions -rw-r--r--
Import sfw build 137 Bugs Fixed ---------- 6926835 Wireshark cannot open files typed into the location bar 6930214 CVE-2010-0624: Heap-based buffer overflow in GNU Tar 6933424 Various sfw manual pages need to be adjusted to use the new OpenSolaris package names. 6937764 upgrade OpenSSL to 0.9.8n (and fix CVE-2010-0740)

NAME:             bash
VERSION:          4.0
DESCRIPTION:      GNU Bourne Again Shell
LICENSE:          GPLv3
PACKAGE:          SUNWbash
PROJECT_URL:      http://www.gnu.org/software/bash/bash.html
SOURCE_DOWNLOAD:  ftp://ftp.gnu.org/gnu/bash/bash-4.0.tar.gz
SUPPORT:          B
BUGTRAQ:          solaris/utility/bash
OSR:              12655
COMMENTS:
    
    Needs special compiler flags and additional Solaris patches

===============================================================

Explanation of some unusual compiler flags:

1. We must use the c99 C Compiler driver, and not cc -xc99=%all.
Some functions from the Standard Math Library are only available
with the c99 driver, for example, isinf(3M).

2. The included libreadline.a and libsh.a want to use FIONREAD.
The Linux assumption is that FIONREAD is defined in <sys/ioctl.h>,
but on Solaris it is defined in <sys/filio.h>. The workaround is
to raise -DSOLARIS on compiler line, and #ifdef guard the inclusion
of <sys/filio.h> on the SOLARIS macro being raised.

3. Bash supports full multi-byte and internationalization. Because
we want this feature, we must raise all the C99 conformance compiler
flags, in order to make available all the wchar_t Standard C Library
functions.

4. We want to use the curses library in /usr/lib/libcurses.so.1.
But because we are raising the full C99 conformance macros, the
compiler will automatically link /usr/xpg4/lib/libcurses.so.2.
The workaround is to pass /usr/lib/libcurses.so.1 with absolute
path in ./configure during the libcurses availability test. This
gets passed verbatim to the Makefile.

5. The file $(top_srcdir)/support/signames.c creates some bogus
signal names (named SIGJUNK%d) because it does not know about
Solaris' SIGJVM1 and SIGJVM2. This, in turn, creates a big problem
with the actual number of signal names  defined in
$(top_srcdir)/signames.h -- namely, the number of signal strings
in the signal_names array ends up exceeding the number of char pointers
defined by NSIG + 4, and the compiler aborts. We work around this by
patching $(top_srcdir)/support/signames.c appropriately, and create
the signal name strings for SIGJVM1 and SIGJVM2.

6. The bash test harness passes 100% if and only if all the UTF-8
locales are installed on the build/test system.

7. The test harness will, for certain tests, print out what appears
to be errors. Please read the output of the test harness, and determine
that what appears to be an error is actually an error. Some tests will
warn that test output is expected, and does not necessarily indicate
an error condition.

===============================================================

Known Bugs:

Memory leak within read builtin in both bash 4.0.x and 3.[12].x:

http://www.mail-archive.com/[email protected]/msg05774.html

-----