delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2019/06/29/23:11:22

X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f
Message-Id: <201906300302.x5U32uET003723@delorie.com>
Date: Sun, 30 Jun 2019 02:21:47 +0200
From: "Juan Manuel Guerrero (juan DOT guerrero AT gmx DOT de) [via djgpp-announce AT delorie DOT com]" <djgpp-announce AT delorie DOT com>
To: djgpp-announce AT delorie DOT com
Subject: ANNOUNCE: Release 2 of the DJGPP port of GNU Bash 4.1.17 uploaded.
Reply-To: djgpp AT delorie DOT com

This is a port of GNU Bash 4.1.17 to MSDOS/DJGPP.


   Bash is the GNU Project's Bourne Again SHell, a complete implementation
   of the POSIX.2 shell spec, but also with interactive command line editing,
   job control on architectures that support it, csh-like features such as
   history substitution and brace expansion, and a slew of other features.



   DJGPP specific changes.
   =======================

   - This port is based on the last port of bash to DJGPP (aka bsh205b*.zip).

   - The most remarkable change for this port is that it uses its own pipe
     emulation instead of using the pipe function provided by libc.  This
     is necessary to get the port working on plain DOS.  The pipe function
     provided by libc exploits features that are only available for the file
     system of the different Windows versions and thus fails if used on plain
     DOS.  This has the consequence that no one of the existing bash ports do
     work on plain DOS as soon as pipes are involved.  They work flawlessly
     on Win98SE, Win2K and WinXP.

   - This port may not work neither on FreeDOS 1.2 nor on FreeDOS 1.3RC1.
     The issue concerns the handling of the file pointer by the kernel when
     reading and writing to a file, thus having very serious implications
     when STDOUT and/or STDIN is redirected to files by shell scripts.  The
     same applies to pipe line handling through temporary files.  Of course
     this does not only affect this port but all other ones that depend on
     these features.  The rule of thumb seem to be that if the file system
     used by the disk does not match the file system for which the kernel
     has been compiled then scripts run by bash may fail.  E.g.: letting
     bash do some STDOUT and/or STDIN redirections on a partition using
     FAT16 with a FAT32 kernel will make bash fail.  In general the output
     file created by the shell script can still be read but contains only
     unreadable nonsens.  Continuous repetitions of calling bash with the
     same script may corrupt the file system (aka partition) in such a way
     that it cannot even be restored using tools like norton utilities.
     This behavior is very surprising to me because I have never observed
     such a behavior on any miscrosoft OS I have used.  These are MS-DOS 3.2,
     MS-DOS 6.22, Win98SE, Win2K and WinXP.
     Because DJGPP is quite old and has been designed in the days of MS-DOS,
     it may be possible that it has exploited microsoft specific features
     that have not been correctly reproduced by the FreeDOS developer and
     thus leads to this behavior.  It is very difficulty to say if we are
     observing a DJGPP specific bug that triggers a FreeDOS specific bug
     that does not exist in MS-DOS.  Anyway, I have stopped in investigating
     this issue.  If the file system support compiled into  the kernel
     matches the file system used on the partition, every thing seems to
     work.  If not you are in trouble.
     Neitherless I have decided to make small changes to the pipe line
     emulation code and thus to make this update.  Although this will not
     solve the situation on FreeDOS.  I see no reason in keep the old port
     thus I have replaced it with this new one.

   - The port checks at run time if LFN support is available or not and
     selects the file names of temporary files that are created accordingly.

   - There may exist much more DOS specific bugs in this port that have
     still not been discovered and that will be fixed as they appeare.

   - The testsuite is POSIX centric and has not been ported.  Especially
     assumptions about paths that are POSIX specific make it really difficult
     to adjust the testsuite to DOS.  Currently the port can only be tested
     by using it.

   - The port has been configured and compiled on WinXP SP3, Win98SE,
     MS-DOS 7.10 using DOSLFN 0.41c and MS-DOS 6.22 using DOSLFN 0.41c.
     There is no guarantee that this may be possible with any other DOS-
     like OS.  Due to the use of long file names it will not be possible
     to configure and compile without LFN support.  The port has been
     compiled using gcc346 and bnu232b.

   - The coprocess support and the coproc reserved word have been disabled.
     This feature requires special pipe support and this may be implemented
     in the future.

   - To be able to build this port you may need to have LFN support.

   - If NLS support is wanted, then the sources must be reconfigured passing
     the nls option to config.bat.


   As usual, all djgpp specific files (diffs, README files, etc.) are stored
   in the "djgpp" directory.  The sources have been configured to be build
   in the "_build" directory.  If for some reason it does not work for you,
   delete it contents and configure from scratch again.

   Please read the docs to become familiar with this product.


   Here is an extract of the NEWS file showing the user visible changes
   from the last port (GNU Bash 2.05b) to this one:

-------------------------------------------------------------------------------



-------------------------------------------------------------------------------




   The port consists of the usual three packages that have been produced
   using djdev205 and can be downloaded from ftp.delorie.com and mirrors
   as (time stamp 2019-06-01):

     Bash 4.1.17 binary, info and man format documentation:
     ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/bsh4117br2.zip

     Bash 4.1.17 dvi, html, pdf and ps format documentation:
     ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/bsh4117dr2.zip

     Bash 4.1.17 source:
     ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/bsh4117sr2.zip



   Send Bash specific bug reports to <bug-bash AT gnu DOT org>.
   Send suggestions and bug reports concerning the DJGPP port
   to comp.os.msdos.djgpp or <djgpp AT delorie DOT com>.

Enjoy.

       Guerrero, Juan Manuel <juan DOT guerrero AT igd DOT fhg DOT de>

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019