>Description: The new POSIX standard is now official (IEEE Std 1003.1-2001), and it has removed support for some obsolete utility options that mysql uses in a few places. Basically, the new POSIX has removed digit-string options (e.g., "tail -1") and options beginning with "+" (e.g., "sort +1"). I'm using an experimental environment that insists on the new standard, so I tend to run into these problems before other people do. >How-To-Repeat: Build and run Mysql on a host that insists on POSIX 1003.1-2001 semantics. >Fix:
2002-02-22 Paul Eggert <[EMAIL PROTECTED]> * bdb/dist/s_recover: Use the standard -k option if it works; otherwise fall back on the traditional notation. * bdb/dist/s_recover, mysql-test/mysql-test-run.sh, sql-bench/server-cfg.sh: Don't use head -1. * scripts/safe_mysqld.sh: Don't use tail -1. =================================================================== RCS file: bdb/dist/s_recover,v retrieving revision 3.23.49.0 retrieving revision 3.23.49.1 diff -pu -r3.23.49.0 -r3.23.49.1 --- bdb/dist/s_recover 2001/04/18 08:45:53 3.23.49.0 +++ bdb/dist/s_recover 2002/02/22 23:56:22 3.23.49.1 @@ -12,6 +12,13 @@ rm -f $loglist trap 'rm -f $t; exit 1' 1 2 3 13 15 +# Use the standard -k option if it works; +# otherwise fall back on the traditional notation. +if sort -k 1,1 /dev/null +then sort_2_etc='-k 2' +else sort_2_etc='+1' +fi + # Check to make sure we haven't duplicated a log record entry, and build # the list of log record types that the test suite uses. for i in $DIR; do @@ -19,13 +26,14 @@ for i in $DIR; do for f in ../$i/*.src; do # Grab the PREFIX; there should only be one per file, and # so it's okay to just take the first. - grep '^PREFIX' $f | head -1 + grep '^PREFIX' $f | sed q egrep '^DEPRECATED[ ]|^BEGIN[ ]' $f | \ awk '{print $1 "\t" $2 "\t" $3}' done done > $loglist -grep -v '^PREFIX' $loglist | awk '{print $2 "\t" $3}' | sort +1 -n | \ +grep -v '^PREFIX' $loglist | awk '{print $2 "\t" $3}' | \ + sort $sort_2_etc -n | \ uniq -d -f 1 > $t [ -s $t ] && { echo "DUPLICATE LOG VALUES:" =================================================================== RCS file: mysql-test/mysql-test-run.sh,v retrieving revision 3.23.49.0 retrieving revision 3.23.49.1 diff -pu -r3.23.49.0 -r3.23.49.1 --- mysql-test/mysql-test-run.sh 2002/02/14 17:30:24 3.23.49.0 +++ mysql-test/mysql-test-run.sh 2002/02/22 23:56:22 3.23.49.1 @@ -44,21 +44,22 @@ which () # No paths below as we can't be sure where the program is! -BASENAME=`which basename | head -1` -DIFF=`which diff | head -1` +SED=sed + +BASENAME=`which basename | $SED q` +DIFF=`which diff | $SED q` CAT=cat CUT=cut TAIL=tail ECHO=echo # use internal echo if possible EXPR=expr # use internal if possible FIND=find -GCOV=`which gcov | head -1` +GCOV=`which gcov | $SED q` PRINTF=printf RM=rm TIME=time TR=tr -XARGS=`which xargs | head -1` -SED=sed +XARGS=`which xargs | $SED q` # Are we using a source or a binary distribution? =================================================================== RCS file: scripts/safe_mysqld.sh,v retrieving revision 3.23.49.0 retrieving revision 3.23.49.1 diff -pu -r3.23.49.0 -r3.23.49.1 --- scripts/safe_mysqld.sh 2002/02/14 17:30:15 3.23.49.0 +++ scripts/safe_mysqld.sh 2002/02/22 23:56:22 3.23.49.1 @@ -253,7 +253,7 @@ do I=1 while test "$I" -le "$numofproces" do - PROC=`ps xa | grep $ledir/$MYSQLD | grep -v "grep" | tail -1` + PROC=`ps xa | grep $ledir/$MYSQLD | grep -v "grep" | sed -n '$p'` for T in $PROC do break =================================================================== RCS file: sql-bench/server-cfg.sh,v retrieving revision 3.23.49.0 retrieving revision 3.23.49.1 diff -pu -r3.23.49.0 -r3.23.49.1 --- sql-bench/server-cfg.sh 2002/02/14 17:30:18 3.23.49.0 +++ sql-bench/server-cfg.sh 2002/02/22 23:56:22 3.23.49.1 @@ -932,7 +932,7 @@ sub version { if ($dir && -e "$dir/bin/solcon") { - $version=`$dir/bin/solcon -e"ver" $main::opt_user $main::opt_password | grep Server | head -1`; + $version=`$dir/bin/solcon -e"ver" $main::opt_user $main::opt_password | grep +Server | sed q`; if ($? == 0) { chomp($version); >Submitter-Id: [EMAIL PROTECTED] >Originator: >Organization: Twin Sun, Inc. >MySQL support: none >Synopsis: mysql 3.23.49 porting problem on POSIX 1003.1-2001 hosts >Severity: non-critical >Priority: low >Category: mysql >Class: sw-bug >Release: mysql-3.23.49 (Source distribution) >Environment: System: SunOS sic.twinsun.com 5.8 Generic_108528-13 sun4u sparc SUNW,UltraSPARC-IIi-Engine Architecture: sun4 Some paths: /usr/bin/perl /usr/ccs/bin/make /opt/reb/bin/gmake /opt/reb/bin/gcc /opt/SUNWspro/bin/cc GCC: Reading specs from /opt/reb/lib/gcc-lib/sparc-sun-solaris2.8/3.0.3/specs Configured with: ../gcc-3.0.3/configure --disable-nls --enable-languages=c,c++ --prefix=/opt/reb --with-local-prefix=/opt/reb --with-system-zlib Thread model: posix gcc version 3.0.3 Compilation info: CC='gcc' CFLAGS='' CXX='gcc' CXXFLAGS='' LDFLAGS='' LIBC: -rw-r--r-- 1 root bin 1768120 Feb 11 12:45 /lib/libc.a lrwxrwxrwx 1 root root 11 May 8 2001 /lib/libc.so -> ./libc.so.1 -rwxr-xr-x 1 root bin 1146392 Feb 11 12:45 /lib/libc.so.1 -rw-r--r-- 1 root bin 1768120 Feb 11 12:45 /usr/lib/libc.a lrwxrwxrwx 1 root root 11 May 8 2001 /usr/lib/libc.so -> ./libc.so.1 -rwxr-xr-x 1 root bin 1146392 Feb 11 12:45 /usr/lib/libc.so.1 Configure command: ./configure --with-unix-socket-path=/var/tmp/mysql.sock --with-low-memory --with-mit-threads=yes --without-perl --enable-thread-safe-client --with-berkeley-db --enable-local-infile --with-innodb Perl: This is perl, version 5.005_03 built for sun4-solaris --------------------------------------------------------------------- Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php