This is the mail archive of the
cygwin-developers
mailing list for the Cygwin project.
Re: MSYS mode (continue)
- From: Alexey Pavlov <alexpux at gmail dot com>
- To: cygwin-developers at cygwin dot com
- Date: Tue, 30 Jul 2013 14:27:20 +0400
- Subject: Re: MSYS mode (continue)
- References: <51F3394A dot 6050309 at cwilson dot fastmail dot fm> <CAF1jjLv_znaB_EH4LDo_xTq3d+-QuZR3R5jWQYpKiZJdDPKWFA at mail dot gmail dot com> <20130729092958 dot GB3731 at calimero dot vinschen dot de> <51F64B38 dot 8000500 at gmail dot com> <20130729111856 dot GD30069 at calimero dot vinschen dot de> <51F68BED dot 5010506 at gmail dot com> <20130729154725 dot GD4166 at calimero dot vinschen dot de> <51F70C96 dot 8040808 at gmail dot com> <20130730090428 dot GL4166 at calimero dot vinschen dot de> <CABEPuQJxfk42ApfWi4dpqxO_6WAqko_+eNprHs=unbkWdA5H+A at mail dot gmail dot com> <20130730094702 dot GN4166 at calimero dot vinschen dot de>
2013/7/30 Corinna Vinschen:
> On Jul 30 13:32, Alexey Pavlov wrote:
>> 2013/7/30 Corinna Vinschen
>> >
>> > On Jul 30 04:45, LRN wrote:
>> > > On 29.07.2013 19:47, Corinna Vinschen wrote:
>> > > > On Jul 29 19:36, LRN wrote:
>> > > >> I would expect people to get cygwin/msys in one place, and get MinGW in
>> > > >> another. Even mingw-get, while being a source of both msys and mingw
>> > > >> packages, clearly distinguishes betweent he two.
>> > > >
>> > > > That's what I understood differently. From the discussion on mingw-w64
>> > > > it seemed that a mingw dev using Cygwin/MSYS would prefer if the default
>> > > > gcc creates non-CYgwin/MSYS, but rather Windows-only binaries.
>> > >
>> > > The problem is not that you can't have a W32-targetted gcc.exe in /usr/bin.
>> > >
>> > > The problem is that the convention that everyone has been following for
>> > > years now is that all mingw stuff lives in /mingw, and all msys (cygwin)
>> > > stuff lives in /usr. These two are never mixed.
>> > > [...]
>> > > So i'd suggest to stick with /usr and /mingw convention and let mingw
>> > > take care of itself. It's simpler that way.
>> >
>> > Fine with me, of course. I don't have that problem myself so whatever
>> > works better for you is ok. But then the number of changed packages
>> > doesn't really matter. From my POV MSYS sticks to being it's own distro
>> > with another focus than the Cygwin distro.
>> >
>> > So we're back to discussing in how far MSYS can be implemented using a
>> > stock Cygwin DLL under the hood and the tweaks being in an external MSYS
>> > DLL so users can mix the best of both worlds as they see fit for their
>> > purpose.
>> >
>>
>> As I see all discussion not about implementing but about philosophy of
>> MSYS.
>
> No. We were talking about how to implement the changes. Your patches
> change Cygwin directly, but the idea is to keep the actual changes
> separate, outside of Cygwin, as hooks.
>
>> At the start of discussion I wrote about my changes in Cygwin
>> sources to have MSYS. And also send small patches but nothing really
>> doing in this direction.
>> What steps do we need to start any work on implementing it?
>> Now I see next points where we can change Cygwin functionality:
>> 1. uname function
>> 2. reading /etc/fstab
>> 3. passing arguments and environment variables to non-Cygwin
>> processes ( environ.cc, spawn.cc )
>> 4. symlinks changes (copy instead symlink)
>
> Yes, these are the behavioral changes you want to implement, but this is
> the discussion as to *how* to implement them. You never actually took
> part in this discssion yet.
>
Now there are not many changes that I do in Cygwin sources and it
change only small functionality without breaking anything for cygwin
users (only symlinks is breaking thing).
If we need to implement changes in external DLL we doesn't want to
full rewrite modified functions in this DLL. External DLL need only do
changes inside the Cygwin functions not full replace this functions I
think.
Maybe you create separate branch in CVS source where we can try to
implement MSYS mode and also create hook in uname function, for
example, to try how it work?
>From my POV we need to create separate distro for MSYS where in bash
profile we can activate MSYS mode for Cygwin.dll with some environment
variable that tell to load msys.dll. But if you want has working
applications between normal Cygwin and msys-in-cygwin then they need
to be linked only with cygwin.dll and doesn't need to know anything
about msys.dll.
>
> Corinna
>
> --
> Corinna Vinschen Please, send mails regarding Cygwin to
> Cygwin Maintainer cygwin AT cygwin DOT com
> Red Hat