This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Bug in setup.exe install


For the last 2+ years I've been unable to upgrade Cygwin on my Win2K system
without reinstalling from scratch. This has periodically been mentioned by
other users. I may have found at least one case for a failure. Apparently
Install.cc:do_install_thread passes a zero length string to install.cc:md5_one.
The failure is repeatable.

The sequence of events is:

1. Download but do not install update files.
2. Download Setup.exe version 2.510.2.2.
3. In the setup.exe (Cygwin Net Release Setup Program)
   a. Select 'Install from Local Directory'
      - Select 'All Users'
      - In my case: Root directory          > C:\Cygwin
                    Local Package Directory > D:\root\cygwin
   b. Select 'View > Partial' after parsing.
   c. Deselect all Binary and Source update selections except
      'gawk' Binary. 
     - The following dependencies are automatically chosen by
       the setup program(?):
       bash
       libiconv2
       libintl3
   d. Click 'Next'
4. The following failure message is output:
   Fatal Error: Uncaught Exception
   Thread: install
   Type: St16invalid_argument
   Message: URL Scheme for '' not registered!
5. The URL scheme is the empty string, "''".
6. I then built 'Setup.exe version 2.524' with the same results.
7. The debug output from version 5.524 is included in dbg.out.
   My observation is that:
   a. Install.cc:do_install_thread is entered once for 'gawk'
   b. The following loop is executed three times:
      for (vector <packagemeta *>::iterator 
           i = db.packages.begin ();
           i != db.packages.end (); ++i) /* indentation mine. sorry*/
   c. On the third iteration, the string passed to md5_one is
      an empty string(''). I'm not sure about this. The failure
      is in:
        io_stream *thefile = io_stream::open (fullname, "rb");

      and seems to be because 'fullname' is an empty string.

In the past it appeared that prior to failure, some files were deleted from
/bin, /usr/bin and perhaps other locations. This may have been changed in the
current release(s) because files are not removed until after all checks are
made - one issue disappears. 

I will try to track down the exact failure and report on it, but it's a long
hike to learn the code well enough to identify (and fix) the error.

Hope this helps.

art

Attachments: cygcheck  output
             dbg.out   debug output
             setup.ini setup file being used

Attachment: cygcheck.out
Description: 3924260979-cygcheck.out

Attachment: dbg.out
Description: 1013112982-dbg.out

Attachment: setup.ini
Description: 2445000593-setup.ini

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]