X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=-3.1 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_13,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: sourceware.org Message-ID: <49D9FDA4.7050005@cwilson.fastmail.fm> Date: Mon, 06 Apr 2009 09:03:32 -0400 From: Charles Wilson User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.8.1.21) Gecko/20090302 Thunderbird/2.0.0.21 Mnenhy/0.7.6.666 MIME-Version: 1.0 To: cygwin AT cygwin DOT com Subject: Re: Reverting from 1.7.0-45 [was Re: [1.7]: For the love of god, don't update!] References: <49D97797 DOT 9080902 AT gmail DOT com> <49D9913B DOT 7030708 AT cwilson DOT fastmail DOT fm> <49D99981 DOT 4030503 AT gmail DOT com> <49D99A02 DOT 7070407 AT gmail DOT com> <49D99D65 DOT 8040304 AT cwilson DOT fastmail DOT fm> <49D9C684 DOT 8030201 AT gmail DOT com> In-Reply-To: <49D9C684.8030201@gmail.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Dave Korn wrote: > LOLWUT? It turns out something has gone horribly wrong in the alternatives > department now: > > $ gcc > bash: gcc: command not found > > $ gcc.exe > bash: gcc.exe: command not found > > $ file /bin/gcc.exe > /bin/gcc.exe: broken symbolic link to `/etc/alternatives/gcc' > > $ ls /etc/alternatives/gcc -la > lrwxrwxrwx 1 DKAdmin None 3 Apr 6 04:29 /etc/alternatives/gcc -> ??/ > > $ /usr/sbin/alternatives.exe --help > > $ echo $? > 128 > > $ > > And, right; alternatives.exe needs the ctype_ptr import. And I'll bet that > p7zip doesn't use any ctype functions. It looks like if you want to revert > back across the change, you need to revert any/all of these as well: > > cygwin > m4 > alternatives Actually, from Corinna's reply, it appears that, in addition to reverting *alternatives* because of the dependence that the new -10 package has on the the cygwin-1.7.0-45 ctype export, you may also need to revert any package that USES alternatives (or, at least, run /usr/sbin/alternatives to recreate the symlinks using the "old" method) alternatives, when it is installed or reinstalled, does not create any symlinks. It's only when it is /used/ that that happens. Now, if you upgrade (say) gcc4 while you have cygwin-1.7.0-45 installed, then that process has two parts: 1) uninstall the old version This will run '/usr/sbin/alternatives --remove' on the version of gcc that your are upgrading. Assuming your gcc system was already set to have gcc4 as the default (as I suspect DK's system is), then this has the effect of recreating all of the symlinks in /etc/alternatives to point to the gcc3 versions. Since you have cygwin-1.7.0-45, these (now) become UTF16 symlinks. 2) install the new version This will run '/usr/sbin/alternatives --add' on the new gcc4. However, because the current "priority" of gcc4 under alternatives is below gcc3, nothing will change, until you... 3) manually run '/usr/sbin/alternatives' to reset (in DK's likely case) gcc to be gcc4. Again, this will re-create the symlinks in /etc/alternatives to point at gcc4 (and, again, because you have cygwin-1.7.0-45 installed, these will be UTF16 symlinks. My suggestion with regards to this, and rolling back across the -45/-44 ABI break, is to manually execute all of: /etc/preremove/gcc.sh.done /etc/preremove/gcc-g77.sh.done /etc/preremove/gcc-g++.sh.done ( and others, depending on what components of gcc3 you have installed ) /etc/preremove/gcc4.sh.done /etc/preremove/gcc4-g77.sh.done /etc/preremove/gcc4-g++.sh.done ( and others, depending on what components of gcc4 you have installed ) Then, roll back both alternatives and cygwin (and vim, and...). Next, manaully execute all of: /etc/postinstall/gcc.sh.done /etc/postinstall/gcc-g77.sh.done /etc/postinstall/gcc-g++.sh.done ( and others, depending on what components of gcc3 you have installed ) /etc/postinstall/gcc4.sh.done /etc/postinstall/gcc4-g77.sh.done /etc/postinstall/gcc4-g++.sh.done ( and others, depending on what components of gcc4 you have installed ) And finally, (if you're DK), /usr/sbin/alternatives --set "gcc" "/usr/bin/gcc-4.exe" /usr/sbin/alternatives --set "g++" "/usr/bin/g++-4.exe" /usr/sbin/alternatives --set "g77" "/usr/bin/g77-4.exe" ( and others, depending on what components of gcc4 you wish to have be the default ) > diffstat > vim > xxd > So, IIUC, alternatives-1.3.30c-10 isn't *itself* actually broken, right? -- Chuck -- 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/