2000-05-18 DJ Delorie * setup.c (optionprompt): allow multi-column, clean up message about more options, be more robust about user input. (getdownloadsource): make the mirror URL a macro. (main): do mounts after done prompting user. Tue May 2 00:56:41 2000 Christopher Faylor * setup.c (cleanup): Inverse order of deletion stands a better chance of deleting cygpath.exe. Still seems to suffer from occasional races, though. (cleanup_on_signal): Perform convoluted dance to accomodate win95 and w2k. (output_file): Defend against an unlikely handle leak. (main): Don't set up signal handling until we have something special to do. Mon May 1 17:56:32 2000 Christopher Faylor * path.c (kill_cygpath): Delete function. (exit_cygpath): Make more defensive so that it can be called at any time. (cygpath_pipe): Don't set up signal here. Do it in main(). * setup.c (istargz): New function. (recurse_dirs): Look for *.gz pattern rather than *tar.gz since *tar.gz inexplicably fails on samba mounted partitions. Use istargz to match tar.gz tail. (processdirlisting) Use istargz to match tar.gz tail. (cleanup): Renamed from filedel. (cleanup_on_signal): New function. Called on CTRL-C. (main): Record handle of main thread so that it can be suspended when CTRL-C occurs. Set up cleanup_on_signal signal handler. Mon May 1 11:05:07 2000 Christopher Faylor * setup.c (do_start_menu): Don't concatenate paths to already built paths. Sun Apr 30 22:37:34 2000 Christopher Faylor * path.c (exit_cygpath): Wait for subprocess to exit before returning. (cygpath_pipe): Don't call exit_cygpath. Let main atexit routine do that. * pkg.c (init_pkgs): Accept root argument. Make registry key "cygwin root"-specific. * setup.c (filedel): Call exit_cygpath here so that we can be assured that cygpath subprocess has died. This allows us to delete cygpath.exe and cygwin1.dll. (optionprompt): Initialize response to -1 so that second screen of mirrors will appear. (get_pkg_stuff): Don't attempt to use HKCLU. Pass root to init_pkgs. * setup.h: Reflect init_pkgs prototype change. Sat Apr 29 23:53:30 2000 Christopher Faylor * pkg.c (init_pkgs): Accept an argument to control what root registry key should be used. * setup.c (get_pkg_stuff): Use HKCLU registry key if default fails. * setup.h: Reflect init_pkgs prototype change. Sat Apr 29 23:27:14 2000 Christopher Faylor * error.c (winerror): Respond to gcc warning. * path.c (cygpath_pipe): Ditto. * setup.c (filedel): Call sa_cleanup on deleteme. (create_shortcut): Coerce argument to eliminate compiler warning. (tarx): Use installed version of cygwin1.dll, overriding tar file name. (refmatches): New function. Tests if ref is contained in a list of packages to install. (filematches): New function. Tests if filename matches one of a list of packages to install. (recurse_dirs): Accept list of packages to install. Generalize tar.gz test to accomodate _tar.gz. (prompt): Ensure that stdout is flushed prior to asking for input. (findhref): Initialize variables to quiet a compiler warning. (processdirlisting): Accept list of packages to install. Special case cygwin tar file version number. (downloaddir): Accept list of packages to install. (downloadfrom): Ditto. (create_uninstall): Eliminate unneeded variables. Quote arguments to regtool. (do_start_menu): Don't create uninstall bat file if updating or user specified a list of packages. (mkmount): Eliminate unneeded variables. (get_pkg_stuff): New function. Checks for previous unversioned installation. (main): Accept -u and -f options and package names on the command line. Use get_pkg_stuff to initialize package information. Umount /etc. Call recurse_dirs and downloadfrom with list of package to install. Ensure that all /usr/local directories are created. Output installation time to setup.log. * setup.h: Add some prototypes. * xsystem.c (xcreate_process): Eliminate unneeded variable. Sat Apr 29 12:43:08 2000 Christopher Faylor * setup.c (optionprompt): Don't overlap display of already seen options on next page. (geturl): Print name of site which we're connecting to rather than "ftp site". (processdirlisting): Avoid URLs that contain a /. or ./ . Is this test too simplistic? (do_start_menu): Use pathcat to build path to \bin to avoid problems when user chooses x:\ as their root. (main): For now, default to "non-update" mode. Allow -u option to signify an update. Sat Apr 29 00:26:06 2000 Christopher Faylor * pkg.c: New file. * setup.c (tarx): Skip already installed or older packages. Report when a package has been updated. (processdirlisting): Skip already installed or older packages. (main): Detect -f option for forced installation. Initialize pkg stuff if appropriate. * setup.h: Add pkg definitions. Thu Apr 27 14:21:30 2000 Christopher Faylor * setup.c (findhref): Return NULL on empty string. Eat any trailing ";something". (processdirlisting): Attempt to limit recursively processing the same directory. Thu Apr 27 11:42:23 2000 Christopher Faylor * setup.c (filedel): New function. (output_file): Keep track of files extracted from setup.exe for subsequent deletion. (tarx): Close process handle of child tar process or suffer handle leak. (getdownloadsource): Close mirror file so that it can be unlinked. (processdirlisting): Return total number of files extracted. (main): Initialize array of files to delete. Ensure that files are closed on exit. Make the directory that setup.exe is started from == the directory where temporary files are placed. Issue an error if no files were found to download. * xsystem.c (xcreate_process): Close the thread handle. Close the process handle if we waited for it to exit. Thu Apr 27 09:54:19 2000 Christopher Faylor * setup.c (main): Change version number output. Thu Apr 27 09:23:17 2000 Christopher Faylor * setup.c (tarx): Use full path name to tar executable. (main): Build full pathname to tar executable. Create /usr/local/etc by default. Wed Apr 26 22:16:57 2000 Christopher Faylor * setup.c (findhref): Change method for scanning for href= to choose the last one on the line. This is still not foolproof and probably will need to be changed eventually. Don't abort if no "size" field is evident. (processdirlisting): Fix boolean algebra. Wed Apr 26 01:10:39 2000 Christopher Faylor * main.c (tarx): Add some code for future task of unmounting directories encountered in tar file. Sat Apr 22 16:37:03 2000 Christopher Faylor * setup.c (findhref): Decode file size, when appropriate. (needfile): New function. Returns 1 when file should be downloaded. (processdirlisting): Always download if file size does not match. Prompt when download fails for some reason. (getdownloadsource): Accomodate findhref argument changes. Sat Apr 22 15:13:42 2000 Christopher Faylor Throughout, use global session handle rather than reinitializing for each connect. Don't pass session as an argument to setup.c functions. * setup.c (geturl): Only issue "Connecting to.." message when using http or first time for ftp since subsequent connections will be fast. (processdirlisting): Allocate space for "N" when user has specified "N"ever option so that it can be subsequently freed. (main): Abort if we can't get the list of mirrors. Thu Apr 20 16:41:42 2000 Christopher Faylor * setup.c (main): Umount /bin and /lib. Wed Apr 19 13:34:44 2000 Christopher Faylor * setup.c (main): Create an empty /var/run/utmp. Tue Apr 18 19:16:56 2000 Christopher Faylor * Makefile.in: Add umount to list of files to include in setup.exe. * setup.c (xumount): New function for unmounting directories. (main): Unmount /usr. (mkmount): Unmount "unix directory" before trying to figure out where to create the directory. Tue Apr 18 17:28:55 2000 Christopher Faylor * setup.c (mkmount): Use xcreate_process to start mount process, avoiding the shell. (main): Don't do buffering on stdout or prompts won't be displayed correctly if running in a cygwin shell with CYGWIN=tty. Tue Apr 18 15:35:19 2000 Christopher Faylor * setup.c (main): Remove the CYGWIN environment variable before starting any cygwin programs. Mon Apr 17 19:20:52 2000 Vadim Egorov * setup.c (geturl): Use alternative method for finding filename part of a URL. (processdirlisting): Accomodate strange output from non-MS ftp proxy. (downloaddir): Unlink file containing dir listing. (downloadfrom): Ditto. Mon Apr 17 00:00:49 2000 Christopher Faylor * setup.c (main): Disallow running setup.exe from the "root". Sun Apr 16 18:50:58 2000 Christopher Faylor Use "warning" function, where appropriate, to output warnings. * setup.c (warning): New function -- outputs warning to console and log file. (tarx): Fix index used to reset file protection. (main): Open the log file earlier so that more stuff can be sent to it. Sat Apr 15 20:05:33 2000 Christopher Faylor * setup.c (processdirlisting): Make "N" option a little less aggressive. Fri Apr 14 11:11:29 2000 Christopher Faylor * setup.c (tarx): Wait to after tar has completed to reset protections or suffer races with tar process. Thu Apr 13 12:51:19 2000 Christopher Faylor * Makefile.in: Eliminate duplicate -nostdinc from CFLAGS. * setup.c (create_uninstall): Create the uninstall .bat file in the "root" so that we can remove the /bin directory. Add bin\cygwin.bat to list of files to be deleted. Fix directory detection for determining when to use 'rmdir'. (do_start_menu): Add /usr/local/bin to the path. (main): Add slop to files.array allocation so that we don't have to worry about reallocating the array when it grows too large when doing some trivial "pushes". Add /tmp and /usr/local/{bin,lib} to list of files. Thu Apr 13 01:59:44 2000 Christopher Faylor * setup.c (processdirlisting): Fix handling of "A" for "A"lways download. Thu Apr 13 01:11:45 2000 Christopher Faylor * path.c (kill_cygpath): New cleanup function. (exit_cygpath): New cleanup function. (cygpath_pipe): New function. Sets up cygpath in the background for translating filenames. (pathcvt): Use background cygpath for file translation. * setup.c (tarx): New function. Called to extract tar files, capture logging output, and translate it to Windows format. (recurse_dirs): Use 'tarx' function to extract files. (create_uninstall): Use file list built up by tarx rather than reading the log file. (mkmount): Add ability to mount root. (main): Track elapsed install time. Mount root. * starry.h: Add index field to strarry for tracking of tarx's usage of this structure. * xsystem.c (xcreate_process): Return proces handle when not waiting. Mon Apr 10 22:44:56 2000 Christopher Faylor * path.c: New file. (pathfp): New function. Preliminary work for new -f cygpath functionality. * Makefile.in: Add new file. (pathcvt): Move to new file. (dtoupath): Ditto. (utodpath): Ditto. (pathcat): Ditto. * setup.c (processdirlisting): Always open file in text mode. (create_uninstall): Ditto. (getdownloadsource): Ditto. (main): Ditto. Mon Apr 10 20:33:40 2000 Christopher Faylor * xsystem.c: New file. * Makefile.in: Accomodate new file. * setup.c (xsystem): Move to new file. (recurse_dirs): Accept handle to output log file. Don't use ">" redirection to trap tar output. Use supplied handle instead. (create_uninstall): Accept FILE pointer to opened log file. Don't unlink log file here. (do_start_menu): Accept FILE pointer to pass to create_uninstall. (main): Open log file here and pass it to various functions. Unlink when done. Mon Apr 10 17:15:52 2000 Christopher Faylor Change occurrences of .usr.bin to .bin throughout. * setup.c (geturl): Increase number of retries to 20. Let user know what's going on during long connects. (processdirlisting): Accept "A"lways and "N"ever as update options. (create_uninstall): Load cygwin1.dll from the current directory rather than \bin. (main): Add some expository text. Sun Apr 9 20:59:15 2000 Christopher Faylor * Makefile.in: Change method for compressing cygwin1.dll to avoid creating a cygwin1.dll in the current directory. Ensure the addition of -nostdinc to MINGW_CFLAGS. Sun Apr 9 02:15:47 2000 Christopher Faylor * Makefile.in: Augment clean target. Fri Apr 7 17:04:02 Ron Parker * README: Added info about non-working mingw implementation * gzip.exe.gz: Replace with a version from the same build as the other tools. * tar.exe.gz: Replace with a version from the same build as the other tools. * mount.exe.gz: Add to repository until, mingw can build setup. * cygpath.exe.gz: ditto * cygwin1.dll.gz: ditto * setup.c: Overwrite /bin and /lib mounts. Generate working shortcut for Win9x. Display only a screenfull of options at a time. Call all tools with an absolute path. * setup.dsp: Restore the carriage returns, MS Developer Studio needs them. * setup.dsw: ditto * zlib.dsw: ditto Thu Apr 6 19:15:27 2000 Christopher Faylor * Makefile.in: Add "-nostdinc" to regular CFLAGS. Add target to grab cygwin1.dll from ../cygwin subdirectory. * gzip.exe.gz: Update. * tar.exe.gz: Update. Wed Apr 5 10:52:08 2000 Christopher Faylor * Makefile.in: Use ZLIB variable as a target. Sat Apr 1 22:49:09 2000 Christopher Faylor * Makefile.in: Eliminate traces of cygwinisms. Don't link with libmsvcrt.a. It's unneeded. Build .rc file on the fly from various sources. * configure.in: Locate correct objcopy. * configure: Regenerate. Sat Apr 1 20:48:09 2000 Christopher Faylor * Makefile.in: New file. * configure.in: New file. * configure: New file. * zlib/Makefile.am: New file. * zlib/configure.in: New file. * zlib/aclocal.m4: New file. * zlib/acinclude.m4: New file. * zlib/configure: Regenerate from configure.in. * zlib/Makefile.in: Regenerate from Makefile.am