Re: [Mingw-w64-public] MSYS2 GPL infringement (was Re: MSYS2)

2013-06-12 Thread Corinna Vinschen
Hi Алексей,

On Jun 11 21:10, Алексей Павлов wrote:
 Cygwin and MSYS have significantly different goals (even if MSYS is
 entirely based on Cygwin).
 
 My understanding is that MSYS is the minimal shell required to run
 autotools and get sources from internet from different repositories.

I'm again puzzled as to the mixup between the underlying POSIX DLL
called Cygwin/MSYS2, and the full distro (The DLL plus all tools) called
Cygwin/MSYS2.

I'm concerned about forking the Cygwin DLL.

I have no problems at all if you create a distro called MSYS2 centered
around the upstream Cygwin DLL.

 MSYS is about porting Unix programs to Windows without having a Posix
 emulation layer, and then (hopefully!) getting those changes up-streamed.

But Cygwin/MSYS2, the DLL *is* a POSIX layer.  You can call it a parrot,
and it's still a POSIX layer.

 Typically, on MSYS, the executables that are run want to be native Win32
 where-as on Cygwin they want to be Posix and this will always be the case
 and a problem.

Why?  Cygwin (the DLL) never refused to run native applications.

 MSYS includes the following changes to Cygwin to support using native Win32
 programs:
 1. Automatic path mangling of command line arguments and environment
 variables to Win32 form on the fly for Win32 applications inside bash.exe

That's a bash change which does not affect the underlying Cygwin/MSYS DLL.

 2. Ability to change OSNAME with an environment variable (MSYSTEM) to
 change it between MSYS and MINGW32 (so people can add to or fix MSYS
 programs should they need to).

Ditto.

 3. Conversion of output of native Win32 application output from Windows
 line endings to Posix line endings - removing trailing '\r' symbol - in
 bash.exe so that e.g. bb=$(gcc --print-search-dirs) works as expected.

Ditto.

 4. Replaced Cygwin symlinks with copying (we can investigate an option for
 mklink symlinks on Vista and above but this is a topic for discussion -
 MSYS compliant software tend to work around most ln-as-cp issues when
 possible anyway).

I said my share about what I think of copying files when the application
expects to get a symlink.  It's wrong.  It's dangerous.  You still have
the CYGWIN=winsymlinks:lnk and CYGWIN=winsymlinks:native or
CYGWIN=winsymlinks:nativestrict options available when using Cygwin
unchanged (http://cygwin.com/cygwin-ug-net/using-cygwinenv.html)

 5. Add -W option to bash.exe's pwd command for compatibility with old
 MSYS.

Bash again, the underlying Cygwin DLL is not affected.

 6. Perhaps remove /cygdrive prefix to simply typing paths. Mostly this is
 to retain compatibility with MSYS-enabled software that makes assumptions
 about /c/ being equivalent to C:/

It's not necessary at all to change the Cygwin/MSYS2 DLL to make this
happen.  Just add this to /etc/fstab:

  none / cygdrive binary,posix=0,user 0 0

Stop all Cygwin processes, login to your bash and try this:

  $ cd /c
  $ ls
  $Recycle.Bin  Documents and Settings  ProgramData   System Volume Information
  bootmgr   pagefile.sysPython32  Users
  BOOTNXT   PerfLogsrhcygwin  Windows
  cygwinProgram Files   swapfile.sys
  cygwin64  Program Files (x86) Symbols

 7. Minor changes to other userland programs (such as Perl so it reports
 msys as $^O) which again helps to retain compatibility.

Again, some tool, doesn't affect the Cygwin DLL.

 The reality is that MSYS exists and it's really old and getting in the way
 of developers, and MSYS2 is needed to replace this. I'm surprised therefore
 at the negative reaction, but really hope that MSYS2 can be viewed as a
 complimentary off-shot from Cygwin (even *hopefully* by the Cygwin
 developers!).

I'm not negative.  I'm just defending the integrity of the Cygwin DLL.

Again, I'm perfectly happy if you provide an MSYS2 distro containing
special tools, like a tweaked bash and an entire, Mingw-centric
toolchain arrangement, as long as you keep the underlying Cygwin DLL
intact as provided upstream.  Also, don't change the name of the DLL and
the target name of the toolchain ({i686/x86_64}-pc-cygwin).

Everyone would have an advantage of this:

- There would be only one source of the underlying POSIX-providing DLL.
  Central repository, only one source to care about, no merging and
  tweaking hassle.

- The DLL name stays intact, thus every tool built in and for the MSYS2
  environment would run in a Cygwin distro environment as well.
  
- The toolchain name stays intact.  You can just grab the latest gcc and
  binutils sources and build them for the upstream supported
  ${arch}-pc-cygwin target and it would create files running in both
  environments.

- While the normal Mingw/MSYS2 user would not have to look into the
  Cygwin distro since the MSYS2 distro provides what he or she needs,
  the more demanding user of MSYS2 would have free access to all tools
  provided by the Cygwin distro with thousands of tools and applications,
  not to mention a fully 

Re: [Mingw-w64-public] MSYS2 GPL infringement (was Re: MSYS2)

2013-06-12 Thread Corinna Vinschen
On Jun 12 12:47, Corinna Vinschen wrote:
  6. Perhaps remove /cygdrive prefix to simply typing paths. Mostly this is
  to retain compatibility with MSYS-enabled software that makes assumptions
  about /c/ being equivalent to C:/
 
 It's not necessary at all to change the Cygwin/MSYS2 DLL to make this
 happen.  Just add this to /etc/fstab:
 
   none / cygdrive binary,posix=0,user 0 0
 
 Stop all Cygwin processes, login to your bash and try this:
 
   $ cd /c
   $ ls
   $Recycle.Bin  Documents and Settings  ProgramData   System Volume 
 Information
   bootmgr   pagefile.sysPython32  Users
   BOOTNXT   PerfLogsrhcygwin  Windows
   cygwinProgram Files   swapfile.sys
   cygwin64  Program Files (x86) Symbols

I forgot to provide a link to the User's Guide describing the mount table
and the cygdrive prefix handling:

  http://cygwin.com/cygwin-ug-net/using.html#mount-table
  http://cygwin.com/cygwin-ug-net/using.html#cygdrive

The mount command also has changed from how it worked in earlier Cygwin
versions:

  http://cygwin.com/cygwin-ug-net/using-utils.html#mount

  
HTH,
Corinna

-- 
Corinna Vinschen
Cygwin Maintainer
Red Hat

--
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] MSYS2 GPL infringement (was Re: MSYS2)

2013-06-12 Thread Alexpux


--  
Alexpux
Отправлено с помощью Sparrow (http://www.sparrowmailapp.com/?sig)


среда, 12 июня 2013 г. в 14:47, Corinna Vinschen написал:

 Hi Алексей,
  
 On Jun 11 21:10, Алексей Павлов wrote:
  Cygwin and MSYS have significantly different goals (even if MSYS is
  entirely based on Cygwin).
   
  My understanding is that MSYS is the minimal shell required to run
  autotools and get sources from internet from different repositories.
   
  
  
 I'm again puzzled as to the mixup between the underlying POSIX DLL
 called Cygwin/MSYS2, and the full distro (The DLL plus all tools) called
 Cygwin/MSYS2.
  
 I'm concerned about forking the Cygwin DLL.
  
 I have no problems at all if you create a distro called MSYS2 centered
 around the upstream Cygwin DLL.
  
  MSYS is about porting Unix programs to Windows without having a Posix
  emulation layer, and then (hopefully!) getting those changes up-streamed.
   
  
  
 But Cygwin/MSYS2, the DLL *is* a POSIX layer. You can call it a parrot,
 and it's still a POSIX layer.
  
  Typically, on MSYS, the executables that are run want to be native Win32
  where-as on Cygwin they want to be Posix and this will always be the case
  and a problem.
   
  
  
 Why? Cygwin (the DLL) never refused to run native applications.
  
  MSYS includes the following changes to Cygwin to support using native Win32
  programs:
  1. Automatic path mangling of command line arguments and environment
  variables to Win32 form on the fly for Win32 applications inside bash.exe
   
  
  
 That's a bash change which does not affect the underlying Cygwin/MSYS DLL.
  
This is changes in Cygwin dll not in bash. See changes in path.cc, spawn.cc and 
new files msys.cc and is msys.cc  
  
  2. Ability to change OSNAME with an environment variable (MSYSTEM) to
  change it between MSYS and MINGW32 (so people can add to or fix MSYS
  programs should they need to).
   
  
  
 Ditto.
Cygwin dll function uname changes  
  3. Conversion of output of native Win32 application output from Windows
  line endings to Posix line endings - removing trailing '\r' symbol - in
  bash.exe so that e.g. bb=$(gcc --print-search-dirs) works as expected.
   
  
  
 Ditto.
Yes it is bash changes and they also can be integrated in Cygwin bash I think  
  4. Replaced Cygwin symlinks with copying (we can investigate an option for
  mklink symlinks on Vista and above but this is a topic for discussion -
  MSYS compliant software tend to work around most ln-as-cp issues when
  possible anyway).
   
  
  
 I said my share about what I think of copying files when the application
 expects to get a symlink. It's wrong. It's dangerous. You still have
 the CYGWIN=winsymlinks:lnk and CYGWIN=winsymlinks:native or
 CYGWIN=winsymlinks:nativestrict options available when using Cygwin
 unchanged (http://cygwin.com/cygwin-ug-net/using-cygwinenv.html)
  
  

Yes it dangerous but native symlinks work need elevated shell and OS Vista+
  
  5. Add -W option to bash.exe's pwd command for compatibility with old
  MSYS.
   
  
  
 Bash again, the underlying Cygwin DLL is not affected.
You are right
  
  6. Perhaps remove /cygdrive prefix to simply typing paths. Mostly this is
  to retain compatibility with MSYS-enabled software that makes assumptions
  about /c/ being equivalent to C:/  
   
  
  

  
 It's not necessary at all to change the Cygwin/MSYS2 DLL to make this
 happen. Just add this to /etc/fstab:
  
 none / cygdrive binary,posix=0,user 0 0
  
 Stop all Cygwin processes, login to your bash and try this:
  
 $ cd /c
 $ ls
 $Recycle.Bin Documents and Settings ProgramData System Volume Information
 bootmgr pagefile.sys Python32 Users
 BOOTNXT PerfLogs rhcygwin Windows
 cygwin Program Files swapfile.sys
 cygwin64 Program Files (x86) Symbols
  
  

thanks for it!  
  7. Minor changes to other userland programs (such as Perl so it reports
  msys as $^O) which again helps to retain compatibility.
   
  
  
 Again, some tool, doesn't affect the Cygwin DLL.
  
Not very critical for me because it can be resolved  
  
  The reality is that MSYS exists and it's really old and getting in the way
  of developers, and MSYS2 is needed to replace this. I'm surprised therefore
  at the negative reaction, but really hope that MSYS2 can be viewed as a
  complimentary off-shot from Cygwin (even *hopefully* by the Cygwin
  developers!).
   
  
  
 I'm not negative. I'm just defending the integrity of the Cygwin DLL.
  
 Again, I'm perfectly happy if you provide an MSYS2 distro containing
 special tools, like a tweaked bash and an entire, Mingw-centric
 toolchain arrangement, as long as you keep the underlying Cygwin DLL
 intact as provided upstream. Also, don't change the name of the DLL and
 the target name of the toolchain ({i686/x86_64}-pc-cygwin).
  
 Everyone would have an advantage of this:
  
 - There would be only one source of the underlying POSIX-providing DLL.
 Central repository, only one source to care about, no merging and
 tweaking hassle.
  
 - 

Re: [Mingw-w64-public] MSYS2 GPL infringement (was Re: MSYS2)

2013-06-12 Thread Alexpux


--  
Alexpux
Отправлено с помощью Sparrow (http://www.sparrowmailapp.com/?sig)


среда, 12 июня 2013 г. в 14:47, Corinna Vinschen написал:

 Hi Алексей,
  
 On Jun 11 21:10, Алексей Павлов wrote:
  Cygwin and MSYS have significantly different goals (even if MSYS is
  entirely based on Cygwin).
   
  My understanding is that MSYS is the minimal shell required to run
  autotools and get sources from internet from different repositories.
   
  
  
 I'm again puzzled as to the mixup between the underlying POSIX DLL
 called Cygwin/MSYS2, and the full distro (The DLL plus all tools) called
 Cygwin/MSYS2.
  
 I'm concerned about forking the Cygwin DLL.
  
 I have no problems at all if you create a distro called MSYS2 centered
 around the upstream Cygwin DLL.
  
  MSYS is about porting Unix programs to Windows without having a Posix
  emulation layer, and then (hopefully!) getting those changes up-streamed.
   
  
  
 But Cygwin/MSYS2, the DLL *is* a POSIX layer. You can call it a parrot,
 and it's still a POSIX layer.
  
  Typically, on MSYS, the executables that are run want to be native Win32
  where-as on Cygwin they want to be Posix and this will always be the case
  and a problem.
   
  
  
 Why? Cygwin (the DLL) never refused to run native applications.
  
  MSYS includes the following changes to Cygwin to support using native Win32
  programs:
  1. Automatic path mangling of command line arguments and environment
  variables to Win32 form on the fly for Win32 applications inside bash.exe
   
  
  
 That's a bash change which does not affect the underlying Cygwin/MSYS DLL.
  
This is changes in Cygwin dll not in bash. See changes in path.cc, spawn.cc and 
new files msys.cc and is msys.cc  
  2. Ability to change OSNAME with an environment variable (MSYSTEM) to
  change it between MSYS and MINGW32 (so people can add to or fix MSYS
  programs should they need to).
   
  
  
 Ditto.
Cygwin dll function uname changes  
  3. Conversion of output of native Win32 application output from Windows
  line endings to Posix line endings - removing trailing '\r' symbol - in
  bash.exe so that e.g. bb=$(gcc --print-search-dirs) works as expected.
   
  
  
 Ditto.
Yes it is bash changes and they also can be integrated in Cygwin bash I think  
  4. Replaced Cygwin symlinks with copying (we can investigate an option for
  mklink symlinks on Vista and above but this is a topic for discussion -
  MSYS compliant software tend to work around most ln-as-cp issues when
  possible anyway).
   
  
  
 I said my share about what I think of copying files when the application
 expects to get a symlink. It's wrong. It's dangerous. You still have
 the CYGWIN=winsymlinks:lnk and CYGWIN=winsymlinks:native or
 CYGWIN=winsymlinks:nativestrict options available when using Cygwin
 unchanged (http://cygwin.com/cygwin-ug-net/using-cygwinenv.html)
  
  

Yes it dangerous but native symlinks work need elevated shell and OS Vista+
  
  5. Add -W option to bash.exe's pwd command for compatibility with old
  MSYS.
   
  
  
 Bash again, the underlying Cygwin DLL is not affected.
You are right
  
  6. Perhaps remove /cygdrive prefix to simply typing paths. Mostly this is
  to retain compatibility with MSYS-enabled software that makes assumptions
  about /c/ being equivalent to C:/  
   
  
  
 It's not necessary at all to change the Cygwin/MSYS2 DLL to make this
 happen. Just add this to /etc/fstab:
  
 none / cygdrive binary,posix=0,user 0 0
  
 Stop all Cygwin processes, login to your bash and try this:
  
 $ cd /c
 $ ls
 $Recycle.Bin Documents and Settings ProgramData System Volume Information
 bootmgr pagefile.sys Python32 Users
 BOOTNXT PerfLogs rhcygwin Windows
 cygwin Program Files swapfile.sys
 cygwin64 Program Files (x86) Symbols
  
  

thanks for it!  
  7. Minor changes to other userland programs (such as Perl so it reports
  msys as $^O) which again helps to retain compatibility.
   
  
  
 Again, some tool, doesn't affect the Cygwin DLL.
  
Not very critical for me because it can be resolved  
  The reality is that MSYS exists and it's really old and getting in the way
  of developers, and MSYS2 is needed to replace this. I'm surprised therefore
  at the negative reaction, but really hope that MSYS2 can be viewed as a
  complimentary off-shot from Cygwin (even *hopefully* by the Cygwin
  developers!).
   
  
  
 I'm not negative. I'm just defending the integrity of the Cygwin DLL.
  
 Again, I'm perfectly happy if you provide an MSYS2 distro containing
 special tools, like a tweaked bash and an entire, Mingw-centric
 toolchain arrangement, as long as you keep the underlying Cygwin DLL
 intact as provided upstream. Also, don't change the name of the DLL and
 the target name of the toolchain ({i686/x86_64}-pc-cygwin).
  
 Everyone would have an advantage of this:
  
 - There would be only one source of the underlying POSIX-providing DLL.
 Central repository, only one source to care about, no merging and
 tweaking hassle.
  
 - The DLL 

Re: [Mingw-w64-public] MSYS2 GPL infringement (was Re: MSYS2)

2013-06-12 Thread Kai Tietz
2013/6/12 LRN lrn1...@gmail.com:
 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1

 On 12.06.2013 14:47, Corinna Vinschen wrote:
 Hi Алексей,

 On Jun 11 21:10, Алексей Павлов wrote:
 MSYS includes the following changes to Cygwin to support using native Win32
 programs:
 1. Automatic path mangling of command line arguments and environment
 variables to Win32 form on the fly for Win32 applications inside bash.exe

 That's a bash change which does not affect the underlying Cygwin/MSYS DLL.
 You misinterpreted that.

 The mangling is done in msys-2.dll, it's done every time a process is
 spawned. The parent checks the dependencies of the child, and if child
 does NOT depend on msys-2.dll (that is, if child is not a MSYS
 application), the parent will spawn it with mangled environment (thus
 the child will not get POSIX paths in envvars, such as PATH) mangled and
 arguments (thus the code that invokes the spawning functionality is free
 to give POSIX paths in the arguments to the child, but the actual child
 will get appropriate DOS paths in the arguments instead).

 Try doing this in Cygwin:

 $ echo 123 ~/test.txt
 $ $WINDIR/notepad.exe ~/test.txt

 I expect that this wouldn't work, unless Cygwin expands ~ to a DOS path.

 Or this (obviously, fix the path to sh.exe for your machine):

 $ echo A=%PATH%  C:\Cygwin\bin\sh.exe --login -i -c echo B=$PATH;
 percent=%; $COMSPEC //C echo C=${percent}PATH${percent}

 When i do this in MSYS, i get something like this:
 A=C:\Windows\system32;C:\Windows
 B=.:/usr/local/bin:/mingw/bin:/bin:/c/Windows/system32:/c/Windows
 C=.;f:\msys05\local\bin;F:\mingw05\bin;f:\msys05\bin;c:\Windows\system32;c:\Windows

 I'm not sure about the implementation details, you'd have to ask alexey
 (namely, is that a change in fork() or exec()? What about posix_spawn()?).

hmm, to translate environment on process-start for
none-cygwin-processes looks to me like a feature belonging in general
to cygwin-dll, isn't it?
If not done, then I see it more as a bug there then a good argument
for cloning it.

Kai

--
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] MSYS2 GPL infringement (was Re: MSYS2)

2013-06-12 Thread LRN
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 12.06.2013 15:57, Ray Donnelly wrote:
 I wonder if it would be possible to have a plugin system to allow for
 the behaviour changes we need to cygwin.dll, so msys.dll exists and
 only handles those parts and cygwin.dll loads that as a plugin, if
 there's no plugin specified then everything proceeds as 'normal
 cygwin'.

I don't see how this is better than simply adding the necessary code to
Cygwin DLL and adding a setting for switching that code on and off.

For that to truly make sense, you have to design a complete plugin
system for Cygwin, with multiple plug points, a generic way for plugins
to affect Cygwin (plugin API), a way to solve plugin conflicts...
No, that's too complex.

If Cygwin DLL is aware of Msys plugin dll, explicitly loads it, gives
it particular data, and makes assumptions about the way Msys modifies
Cygwin state - that's not really a plugin anymore.

- -- 
O ascii ribbon - stop html email! - www.asciiribbon.org
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.11 (MingW32)

iQEcBAEBAgAGBQJRuGRpAAoJEOs4Jb6SI2CwK5wH/0qkypWqpzpE045wvrzsztcO
xywLV7P3JvGzx9e/T8SX84n1mV8R0RPbMPmLuRX+i1aarmdJoIG10o5nch2uVucp
4QmjMUAV54LYl2venCNCvbuBaX2Qru1y+XNQFvayDciLiBYejIMXKRfHeziM9KQV
juJKnFFTxNuEeB8XZQfe9K0tcUdKiA8jTHU+ZmBx5/KCxDF8si5BFjppvfJyNY2U
SjCtGPffiHdDPxKlCGYaprqfQWid8VFoteKj4xmpn8uMU+EzENEXtRCDKOQ8tviW
EnRyfih8swDB4AP7k17+KocK3hqj6BEbPZ+0C7mFBwRlI38tbUp0OPwhq1qHgkQ=
=ZfyY
-END PGP SIGNATURE-

--
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] MSYS2 GPL infringement (was Re: MSYS2)

2013-06-12 Thread Corinna Vinschen
On Jun 12 16:00, LRN wrote:
 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1
 
 On 12.06.2013 14:47, Corinna Vinschen wrote:
  Hi Алексей,
  
  On Jun 11 21:10, Алексей Павлов wrote:
  MSYS includes the following changes to Cygwin to support using native Win32
  programs:
  1. Automatic path mangling of command line arguments and environment
  variables to Win32 form on the fly for Win32 applications inside bash.exe
  
  That's a bash change which does not affect the underlying Cygwin/MSYS DLL.
 You misinterpreted that.
 
 The mangling is done in msys-2.dll, it's done every time a process is
 spawned. The parent checks the dependencies of the child, and if child
 does NOT depend on msys-2.dll (that is, if child is not a MSYS
 application), the parent will spawn it with mangled environment (thus
 the child will not get POSIX paths in envvars, such as PATH) mangled and
 arguments

This is default in Cygwin for a long time.  When Cygwin starts, a small
number of variables is converted from Windows to POSIX style, namely
PATH, HOME, LD_LIBRARY_PATH, TMPDIR, TMP, and TEMP.

If a Cygwin process execve's a non-Cygwin process, the whole thing
is done backwards.

This is not done for any other variable, and in no direction, because
trying to recognize other variable's content as path and then converting
it to the other style is pure speculation on the DLL's part.  The result
is broken as often as not.


Corinna

-- 
Corinna Vinschen
Cygwin Maintainer
Red Hat

--
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] MSYS2 GPL infringement (was Re: MSYS2)

2013-06-12 Thread Corinna Vinschen
On Jun 12 15:50, Alexpux wrote:
 среда, 12 июня 2013 г. в 14:47, Corinna Vinschen написал:
  On Jun 11 21:10, Алексей Павлов wrote:
   MSYS includes the following changes to Cygwin to support using native 
   Win32
   programs:
   1. Automatic path mangling of command line arguments and environment
   variables to Win32 form on the fly for Win32 applications inside bash.exe

   
   
  That's a bash change which does not affect the underlying Cygwin/MSYS DLL.
   
 This is changes in Cygwin dll not in bash. See changes in path.cc, spawn.cc 
 and new files msys.cc and is msys.cc  

You wrote it's a bash change.  As a bash change I can understand it, as
a Cygwin change not so much.  This is pure speculating on the DLL side
again.  You simply don't know exactly if something is a path and in what
form the argument is used by the called application.  If in doubt, use
cygpath.

   2. Ability to change OSNAME with an environment variable (MSYSTEM) to
   change it between MSYS and MINGW32 (so people can add to or fix MSYS
   programs should they need to).

   
   
  Ditto.
 Cygwin dll function uname changes  

Sigh.

   3. Conversion of output of native Win32 application output from Windows
   line endings to Posix line endings - removing trailing '\r' symbol - in
   bash.exe so that e.g. bb=$(gcc --print-search-dirs) works as expected.

   
   
  Ditto.
 Yes it is bash changes and they also can be integrated in Cygwin bash I think 
  
man dos2unix

   4. Replaced Cygwin symlinks with copying (we can investigate an option for
   mklink symlinks on Vista and above but this is a topic for discussion -
   MSYS compliant software tend to work around most ln-as-cp issues when
   possible anyway).

   
   
  I said my share about what I think of copying files when the application
  expects to get a symlink. It's wrong. It's dangerous. You still have
  the CYGWIN=winsymlinks:lnk and CYGWIN=winsymlinks:native or
  CYGWIN=winsymlinks:nativestrict options available when using Cygwin
  unchanged (http://cygwin.com/cygwin-ug-net/using-cygwinenv.html)
   
   
 
 Yes it dangerous but native symlinks work need elevated shell and OS Vista+

Again, if you need a copy, use cp, not ln -s.  It's plainly a bug in the
scripts or tools you're using, if they use ln -s (or symlink(2)) when
called in a Mingw environment.  Neither of them must rely on symlinks.

  I'm not negative. I'm just defending the integrity of the Cygwin DLL.
   
  Again, I'm perfectly happy if you provide an MSYS2 distro containing
  special tools, like a tweaked bash and an entire, Mingw-centric
  toolchain arrangement, as long as you keep the underlying Cygwin DLL
  intact as provided upstream. Also, don't change the name of the DLL and
  the target name of the toolchain ({i686/x86_64}-pc-cygwin).
   
  Everyone would have an advantage of this:
   
  - There would be only one source of the underlying POSIX-providing DLL.
  Central repository, only one source to care about, no merging and
  tweaking hassle.
   
  - The DLL name stays intact, thus every tool built in and for the MSYS2
  environment would run in a Cygwin distro environment as well.
  - The toolchain name stays intact. You can just grab the latest gcc and
  binutils sources and build them for the upstream supported
  ${arch}-pc-cygwin target and it would create files running in both
  environments.
   
  - While the normal Mingw/MSYS2 user would not have to look into the
  Cygwin distro since the MSYS2 distro provides what he or she needs,
  the more demanding user of MSYS2 would have free access to all tools
  provided by the Cygwin distro with thousands of tools and applications,
  not to mention a fully function X server with X clients.
   
  That's all I'm trying to say. I don't see a good reason to change the
  Cygwin DLL. Use it as is and build your Mingw-targeting environment
  around it. I'm here to help if something doesn't work out as you need
  it. Maybe we find another, working solution, without having to fork
  Cygwin.

Corinna

--  
Corinna Vinschen
Cygwin Maintainer
Red Hat

--
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] MSYS2 GPL infringement (was Re: MSYS2)

2013-06-12 Thread Ray Donnelly
Ok, We're back to asking for a plugin with a clearly defined interface for
env. var and path translation; despite LRNs reasonable objections I think
it might be the only acceptable solution?

.. that way we can continue to speculate (as MSYS always has) about what's
a path and what isn't and also use the cygwin.dll unmodified.

Otherwise we're at an impasse.


On Wed, Jun 12, 2013 at 3:00 PM, Corinna Vinschen vinsc...@redhat.comwrote:

 On Jun 12 15:50, Alexpux wrote:
  среда, 12 июня 2013 г. в 14:47, Corinna Vinschen написал:
   On Jun 11 21:10, Алексей Павлов wrote:
MSYS includes the following changes to Cygwin to support using
 native Win32
programs:
1. Automatic path mangling of command line arguments and environment
variables to Win32 form on the fly for Win32 applications inside
 bash.exe
   
  
  
   That's a bash change which does not affect the underlying Cygwin/MSYS
 DLL.
  
  This is changes in Cygwin dll not in bash. See changes in path.cc,
 spawn.cc and new files msys.cc and is msys.cc

 You wrote it's a bash change.  As a bash change I can understand it, as
 a Cygwin change not so much.  This is pure speculating on the DLL side
 again.  You simply don't know exactly if something is a path and in what
 form the argument is used by the called application.  If in doubt, use
 cygpath.

2. Ability to change OSNAME with an environment variable (MSYSTEM) to
change it between MSYS and MINGW32 (so people can add to or fix MSYS
programs should they need to).
   
  
  
   Ditto.
  Cygwin dll function uname changes

 Sigh.

3. Conversion of output of native Win32 application output from
 Windows
line endings to Posix line endings - removing trailing '\r' symbol -
 in
bash.exe so that e.g. bb=$(gcc --print-search-dirs) works as
 expected.
   
  
  
   Ditto.
  Yes it is bash changes and they also can be integrated in Cygwin bash I
 think
 man dos2unix

4. Replaced Cygwin symlinks with copying (we can investigate an
 option for
mklink symlinks on Vista and above but this is a topic for
 discussion -
MSYS compliant software tend to work around most ln-as-cp issues when
possible anyway).
   
  
  
   I said my share about what I think of copying files when the
 application
   expects to get a symlink. It's wrong. It's dangerous. You still have
   the CYGWIN=winsymlinks:lnk and CYGWIN=winsymlinks:native or
   CYGWIN=winsymlinks:nativestrict options available when using Cygwin
   unchanged (http://cygwin.com/cygwin-ug-net/using-cygwinenv.html)
  
  
 
  Yes it dangerous but native symlinks work need elevated shell and OS
 Vista+

 Again, if you need a copy, use cp, not ln -s.  It's plainly a bug in the
 scripts or tools you're using, if they use ln -s (or symlink(2)) when
 called in a Mingw environment.  Neither of them must rely on symlinks.

   I'm not negative. I'm just defending the integrity of the Cygwin DLL.
  
   Again, I'm perfectly happy if you provide an MSYS2 distro containing
   special tools, like a tweaked bash and an entire, Mingw-centric
   toolchain arrangement, as long as you keep the underlying Cygwin DLL
   intact as provided upstream. Also, don't change the name of the DLL and
   the target name of the toolchain ({i686/x86_64}-pc-cygwin).
  
   Everyone would have an advantage of this:
  
   - There would be only one source of the underlying POSIX-providing DLL.
   Central repository, only one source to care about, no merging and
   tweaking hassle.
  
   - The DLL name stays intact, thus every tool built in and for the MSYS2
   environment would run in a Cygwin distro environment as well.
   - The toolchain name stays intact. You can just grab the latest gcc and
   binutils sources and build them for the upstream supported
   ${arch}-pc-cygwin target and it would create files running in both
   environments.
  
   - While the normal Mingw/MSYS2 user would not have to look into the
   Cygwin distro since the MSYS2 distro provides what he or she needs,
   the more demanding user of MSYS2 would have free access to all tools
   provided by the Cygwin distro with thousands of tools and applications,
   not to mention a fully function X server with X clients.
  
   That's all I'm trying to say. I don't see a good reason to change the
   Cygwin DLL. Use it as is and build your Mingw-targeting environment
   around it. I'm here to help if something doesn't work out as you need
   it. Maybe we find another, working solution, without having to fork
   Cygwin.

 Corinna

 --
 Corinna Vinschen
 Cygwin Maintainer
 Red Hat


 --
 This SF.net email is sponsored by Windows:

 Build for Windows Store.

 http://p.sf.net/sfu/windows-dev2dev
 ___
 Mingw-w64-public mailing list
 Mingw-w64-public@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] MSYS2 GPL infringement (was Re: MSYS2)

2013-06-12 Thread Corinna Vinschen
On Jun 12 15:11, Ray Donnelly wrote:
 Ok, We're back to asking for a plugin with a clearly defined interface for
 env. var and path translation; despite LRNs reasonable objections I think
 it might be the only acceptable solution?
 
 .. that way we can continue to speculate (as MSYS always has) about what's
 a path and what isn't and also use the cygwin.dll unmodified.
 
 Otherwise we're at an impasse.

First, may I politely ask, if this is really necessary, or if everybody
thinks it's necessary just because the old MSYS did so.

Does anybody have a real world example which requires this, and isn't
easily fixed by using cygpath at the crucial stage?


Corinna

-- 
Corinna Vinschen
Cygwin Maintainer
Red Hat

--
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] MSYS2 GPL infringement (was Re: MSYS2)

2013-06-12 Thread Alexpux


--  
Alexpux
Отправлено с помощью Sparrow (http://www.sparrowmailapp.com/?sig)


среда, 12 июня 2013 г. в 18:33, Corinna Vinschen написал:

 On Jun 12 15:11, Ray Donnelly wrote:
  Ok, We're back to asking for a plugin with a clearly defined interface for
  env. var and path translation; despite LRNs reasonable objections I think
  it might be the only acceptable solution?
   
  .. that way we can continue to speculate (as MSYS always has) about what's
  a path and what isn't and also use the cygwin.dll unmodified.
   
  Otherwise we're at an impasse.
  
 First, may I politely ask, if this is really necessary, or if everybody
 thinks it's necessary just because the old MSYS did so.
  
 Does anybody have a real world example which requires this, and isn't
 easily fixed by using cygpath at the crucial stage?
  
  
 Corinna
  
 --  
 Corinna Vinschen
 Cygwin Maintainer
 Red Hat
  
 --
 This SF.net email is sponsored by Windows:
  
 Build for Windows Store.
  
 http://p.sf.net/sfu/windows-dev2dev
 ___
 Mingw-w64-public mailing list
 Mingw-w64-public@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
  
  

Corinna, the best example - try to use native mingw compiler under Cygwin to 
build binutils, for example. And you see all issues that MSYS resolve for 
developers.
Regards,
Alexey.
--
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] MSYS2 GPL infringement (was Re: MSYS2)

2013-06-12 Thread Alexpux


--  
Alexpux
Отправлено с помощью Sparrow (http://www.sparrowmailapp.com/?sig)


среда, 12 июня 2013 г. в 18:00, Corinna Vinschen написал:

 On Jun 12 15:50, Alexpux wrote:
  среда, 12 июня 2013 г. в 14:47, Corinna Vinschen написал:
   On Jun 11 21:10, Алексей Павлов wrote:
MSYS includes the following changes to Cygwin to support using native 
Win32
programs:
1. Automatic path mangling of command line arguments and environment
variables to Win32 form on the fly for Win32 applications inside 
bash.exe
 

   That's a bash change which does not affect the underlying Cygwin/MSYS DLL.

   
  This is changes in Cygwin dll not in bash. See changes in path.cc, spawn.cc 
  and new files msys.cc and is msys.cc  
   
  
  
 You wrote it's a bash change. As a bash change I can understand it, as
 a Cygwin change not so much. This is pure speculating on the DLL side
 again. You simply don't know exactly if something is a path and in what
 form the argument is used by the called application. If in doubt, use
 cygpath.
  
But It works in MSYS for many years.  
  
2. Ability to change OSNAME with an environment variable (MSYSTEM) to
change it between MSYS and MINGW32 (so people can add to or fix MSYS
programs should they need to).
 

   Ditto.

   
  Cygwin dll function uname changes  
   
  
  
 Sigh.
  
3. Conversion of output of native Win32 application output from Windows
line endings to Posix line endings - removing trailing '\r' symbol - in
bash.exe so that e.g. bb=$(gcc --print-search-dirs) works as expected.
 

   Ditto.

   
  Yes it is bash changes and they also can be integrated in Cygwin bash I 
  think  
   
  
 man dos2unix
  
  

It can't be fixed by dos2unix because this issue is during configure and build 
steps  
  
4. Replaced Cygwin symlinks with copying (we can investigate an option 
for
mklink symlinks on Vista and above but this is a topic for discussion -
MSYS compliant software tend to work around most ln-as-cp issues when
possible anyway).
 

   I said my share about what I think of copying files when the application
   expects to get a symlink. It's wrong. It's dangerous. You still have
   the CYGWIN=winsymlinks:lnk and CYGWIN=winsymlinks:native or
   CYGWIN=winsymlinks:nativestrict options available when using Cygwin
   unchanged (http://cygwin.com/cygwin-ug-net/using-cygwinenv.html)

   
   
  Yes it dangerous but native symlinks work need elevated shell and OS Vista+
  
 Again, if you need a copy, use cp, not ln -s. It's plainly a bug in the
 scripts or tools you're using, if they use ln -s (or symlink(2)) when
 called in a Mingw environment. Neither of them must rely on symlinks.
  
  

And I need patch every configure script and Makefile to fix it?
   I'm not negative. I'm just defending the integrity of the Cygwin DLL.
   Again, I'm perfectly happy if you provide an MSYS2 distro containing
   special tools, like a tweaked bash and an entire, Mingw-centric
   toolchain arrangement, as long as you keep the underlying Cygwin DLL
   intact as provided upstream. Also, don't change the name of the DLL and
   the target name of the toolchain ({i686/x86_64}-pc-cygwin).
   Everyone would have an advantage of this:
   - There would be only one source of the underlying POSIX-providing DLL.
   Central repository, only one source to care about, no merging and
   tweaking hassle.
   - The DLL name stays intact, thus every tool built in and for the MSYS2
   environment would run in a Cygwin distro environment as well.
   - The toolchain name stays intact. You can just grab the latest gcc and
   binutils sources and build them for the upstream supported
   ${arch}-pc-cygwin target and it would create files running in both
   environments.
   - While the normal Mingw/MSYS2 user would not have to look into the
   Cygwin distro since the MSYS2 distro provides what he or she needs,
   the more demanding user of MSYS2 would have free access to all tools
   provided by the Cygwin distro with thousands of tools and applications,
   not to mention a fully function X server with X clients.
   That's all I'm trying to say. I don't see a good reason to change the
   Cygwin DLL. Use it as is and build your Mingw-targeting environment
   around it. I'm here to help if something doesn't work out as you need
   it. Maybe we find another, working solution, without having to fork
   Cygwin.

   
  
  
 Corinna
  
 --  
 Corinna Vinschen
 Cygwin Maintainer
 Red Hat
  
 --
 This SF.net email is sponsored by Windows:
  
 Build for Windows Store.
  
 http://p.sf.net/sfu/windows-dev2dev
 ___
 Mingw-w64-public mailing list
 Mingw-w64-public@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
  
  



[Mingw-w64-public] Redundant declarations

2013-06-12 Thread LRN
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

A log is attached. There are more stuff like that.

- -- 
O ascii ribbon - stop html email! - www.asciiribbon.org
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.11 (MingW32)

iQEcBAEBAgAGBQJRuIq4AAoJEOs4Jb6SI2Cw1fcH/2jxbZOSdJ40eODKak/qjxMp
9M/pLQ2ySG29sx2uPRQ7muJidnkeNryb+/td5jwYR2kaEA9jMYJ0JU6hd8Xz/ftG
FGg8b1q75n0dNCuADbJSj5joDampYrvMuQGkS7Pbb4VG4MsRrTq4q8jTC+LayUsk
keUGLS29/kRX63wyg2Qvzi++SrcYVfTm/PeDYZj/ZJnCYQKvG/JoHLHXkynmB67r
ysFd1GHj7de9ivxjA5Kq2c6GLufRmUSGBIK6aCjijjGjmkCClucjWmZnK7BvSM4h
xe5mhetHza0FedvGvtJSm4VhLc4iHGWZ9zxjpoH90SYSwuWJ2+nypTl1AI39DdI=
=EtOL
-END PGP SIGNATURE-


redundant.log.xz
Description: Binary data
--
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] MSYS2 GPL infringement (was Re: MSYS2)

2013-06-12 Thread LRN
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 12.06.2013 17:50, Corinna Vinschen wrote:
 On Jun 12 16:00, LRN wrote:
 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1

 On 12.06.2013 14:47, Corinna Vinschen wrote:
 Hi Алексей,

 On Jun 11 21:10, Алексей Павлов wrote:
 MSYS includes the following changes to Cygwin to support using native Win32
 programs:
 1. Automatic path mangling of command line arguments and environment
 variables to Win32 form on the fly for Win32 applications inside bash.exe

 That's a bash change which does not affect the underlying Cygwin/MSYS DLL.
 You misinterpreted that.

 The mangling is done in msys-2.dll, it's done every time a process is
 spawned. The parent checks the dependencies of the child, and if child
 does NOT depend on msys-2.dll (that is, if child is not a MSYS
 application), the parent will spawn it with mangled environment (thus
 the child will not get POSIX paths in envvars, such as PATH) mangled and
 arguments
 
 This is default in Cygwin for a long time.  When Cygwin starts, a small
 number of variables is converted from Windows to POSIX style, namely
 PATH, HOME, LD_LIBRARY_PATH, TMPDIR, TMP, and TEMP.
 
 If a Cygwin process execve's a non-Cygwin process, the whole thing
 is done backwards.
 
 This is not done for any other variable, and in no direction, because
 trying to recognize other variable's content as path and then converting
 it to the other style is pure speculation on the DLL's part.  The result
 is broken as often as not.

I can't say anything about variables (i can easily imagine cases where
not converting variables would break the build process, but i can't name
a package that does need it - because i never tried to compile anything
without that feature, and i don't remember it misfiring on me and
converting something that shouldn't have been converted).

However, the fact that command line arguments are not converted (at
least you didn't mention anything about converting arguments; i assume
they are left untouched; my googling also supports that assumption)
means that command line arguments like these:

- -I/mingw/lib/glib-2.0/include

/src/mingw-w64/mingw-w64-libraries/winpthreads/src/clock.c

will not be converted, which makes it next to impossible to use W32
tools in conjunction with autotools (ok, the /src thing can be avoided
by carefully using relative paths only, but i can't say how much things
will slip past that and bite you, if mangling is switched off).

You are also incorrect in assuming that the probability of MSys
correctly guessing that something should be mangled is 0.5 (as often as
not, as you put it). In my experience, the probability of a correct
guess goes up to 0.9 and above. The logic is quite complex (see [1] for
the list of rules MSYS1 uses; see MSYS2 source for the list of rules
MSYS2 uses).
There ARE cases when you don't want MSys to mangle things, but it does
anyway, and the result is unsatisfactory. In these cases buildsystem has
to be patched.

Mostly it's when something that looks like a path (such as a prefix, i.e
/mingw) is used in a construction like -DSOMEPREFIX=\/mingw\. The
problem is solved by using config.h instead of -D (since the contents of
files are not mangled).
The reverse is also true - sometimes buildsystems will generate source
files on the fly (usually - by processing .in files and substituting
@VARIABLES@), and will insert absolute paths to files into generated
code, i.e. fopen (/src/libcdio/blah/blah/foobar.data, r) (usually
it's for testcases that are not designed to be relocatable anyway). This
can be fixed directly (using relative names explicitly), or worked
around by calling configure relatively (i.e. cd builddir ;
../srcdir/configure arguments - assuming that builddir and srcdir are
siblings) when doing OOTSD builds (in which case all names will be
relative no matter what).

There are also selected cases where something looks like a path, but
isn't one. One example that comes to mind is xmlcatalog.exe, which is
given arguments like -//OASIS//ELEMENTS DocBook Information Pool
V4.2//EN, which look like paths, but shouldn't be mangled.
The solution is to use msys version of xmlcatalog (that fixes some other
problems as well) instead of mingw version.

Same goes for git. As i mentioned earlier in this thread, one of the
things that msysGit devs did to their fork of MSYS1 was to slightly
alter the mangling code to not to mangle some things (some kind of git
refs, i forgot the specifics).
Again, this is fixed by using real msys-git that needs no mangling.

But most of the time things just work™

[1] http://www.mingw.org/wiki/Posix_path_conversion

- -- 
O ascii ribbon - stop html email! - www.asciiribbon.org
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.11 (MingW32)

iQEcBAEBAgAGBQJRuJTKAAoJEOs4Jb6SI2CwLwoIAL6GWU8LrXwO5WWvmlGzK/RF
U+PRw62X9WVkyMY1IvHtHoMPlXjuAuphbZtH7NQGspECZtdUQLyQfacD47IvavGz
jDQVXLUe4SdwQVcv4QLVOr3KC4YY0QFZqBfis3e8egRGqoHfI28+WynJU9X463CC

Re: [Mingw-w64-public] MSYS2 GPL infringement (was Re: MSYS2)

2013-06-12 Thread Rainer Emrich
Am 12.06.2013 17:33, schrieb LRN:
 On 12.06.2013 17:50, Corinna Vinschen wrote:
 On Jun 12 16:00, LRN wrote:
 -BEGIN PGP SIGNED MESSAGE- Hash: SHA1

 On 12.06.2013 14:47, Corinna Vinschen wrote:
 Hi Алексей,

 On Jun 11 21:10, Алексей Павлов wrote:
 MSYS includes the following changes to Cygwin to support using
 native Win32 programs: 1. Automatic path mangling of command line
 arguments and environment variables to Win32 form on the fly for
 Win32 applications inside bash.exe

 That's a bash change which does not affect the underlying Cygwin/MSYS
 DLL.
 You misinterpreted that.

 The mangling is done in msys-2.dll, it's done every time a process is
 spawned. The parent checks the dependencies of the child, and if child
 does NOT depend on msys-2.dll (that is, if child is not a MSYS
 application), the parent will spawn it with mangled environment (thus
 the child will not get POSIX paths in envvars, such as PATH) mangled
 and arguments

 This is default in Cygwin for a long time.  When Cygwin starts, a small
 number of variables is converted from Windows to POSIX style, namely
 PATH, HOME, LD_LIBRARY_PATH, TMPDIR, TMP, and TEMP.

 If a Cygwin process execve's a non-Cygwin process, the whole thing is
 done backwards.

 This is not done for any other variable, and in no direction, because
 trying to recognize other variable's content as path and then converting
 it to the other style is pure speculation on the DLL's part.  The result
 is broken as often as not.

 I can't say anything about variables (i can easily imagine cases where not
 converting variables would break the build process, but i can't name a
 package that does need it - because i never tried to compile anything
 without that feature, and i don't remember it misfiring on me and
 converting something that shouldn't have been converted).

 However, the fact that command line arguments are not converted (at least
 you didn't mention anything about converting arguments; i assume they are
 left untouched; my googling also supports that assumption) means that
 command line arguments like these:

 -I/mingw/lib/glib-2.0/include

 /src/mingw-w64/mingw-w64-libraries/winpthreads/src/clock.c

 will not be converted, which makes it next to impossible to use W32 tools
 in conjunction with autotools (ok, the /src thing can be avoided by
 carefully using relative paths only, but i can't say how much things will
 slip past that and bite you, if mangling is switched off).

 You are also incorrect in assuming that the probability of MSys correctly
 guessing that something should be mangled is 0.5 (as often as not, as you
 put it). In my experience, the probability of a correct guess goes up to
 0.9 and above. The logic is quite complex (see [1] for the list of rules
 MSYS1 uses; see MSYS2 source for the list of rules MSYS2 uses). There ARE
 cases when you don't want MSys to mangle things, but it does anyway, and
 the result is unsatisfactory. In these cases buildsystem has to be
 patched.

 Mostly it's when something that looks like a path (such as a prefix, i.e
 /mingw) is used in a construction like -DSOMEPREFIX=\/mingw\. The
 problem is solved by using config.h instead of -D (since the contents of
 files are not mangled). The reverse is also true - sometimes buildsystems
 will generate source files on the fly (usually - by processing .in files
 and substituting @VARIABLES@), and will insert absolute paths to files into
 generated code, i.e. fopen (/src/libcdio/blah/blah/foobar.data, r)
 (usually it's for testcases that are not designed to be relocatable
 anyway). This can be fixed directly (using relative names explicitly), or
 worked around by calling configure relatively (i.e. cd builddir ;
 ../srcdir/configure arguments - assuming that builddir and srcdir are
 siblings) when doing OOTSD builds (in which case all names will be relative
 no matter what).

 There are also selected cases where something looks like a path, but isn't
 one. One example that comes to mind is xmlcatalog.exe, which is given
 arguments like -//OASIS//ELEMENTS DocBook Information Pool V4.2//EN,
 which look like paths, but shouldn't be mangled. The solution is to use
 msys version of xmlcatalog (that fixes some other problems as well) instead
 of mingw version.

 Same goes for git. As i mentioned earlier in this thread, one of the things
 that msysGit devs did to their fork of MSYS1 was to slightly alter the
 mangling code to not to mangle some things (some kind of git refs, i forgot
 the specifics). Again, this is fixed by using real msys-git that needs no
 mangling.

 But most of the time things just work™

 [1] http://www.mingw.org/wiki/Posix_path_conversion

To add a little bit to this discussion. I just did a native gcc
x86_64-w64-mingw32 3-stage bootstrap using the MSYS2 version dated 10.06.. It
worked out of the box, without any issues. That wasn't possible with the old
MSYS because of it's 32-bitness and it's impossible with resent cygwin.

Cheers

Rainer



Re: [Mingw-w64-public] Mingw-builds

2013-06-12 Thread NightStrike
On Jun 7, 2013 2:17 AM, Алексей Павлов alex...@gmail.com wrote:

 Hi everyone!

 We release on-line installer for our builds.
 You can download it from mingw-builds-install.exe.
 This installer automatically receive file with all our builds and you can
choose what version you want to install.


Thanks for providing that service! It should be very useful for users.
--
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] MSYS2 GPL infringement (was Re: MSYS2)

2013-06-12 Thread NightStrike
On Jun 12, 2013 11:53 AM, Rainer Emrich sf.rai...@emrich-ebersheim.de
wrote:

 Am 12.06.2013 17:33, schrieb LRN:
  On 12.06.2013 17:50, Corinna Vinschen wrote:
  On Jun 12 16:00, LRN wrote:
  -BEGIN PGP SIGNED MESSAGE- Hash: SHA1
 
  On 12.06.2013 14:47, Corinna Vinschen wrote:
  Hi Алексей,
 
  On Jun 11 21:10, Алексей Павлов wrote:
  MSYS includes the following changes to Cygwin to support using
  native Win32 programs: 1. Automatic path mangling of command line
  arguments and environment variables to Win32 form on the fly for
  Win32 applications inside bash.exe
 
  That's a bash change which does not affect the underlying Cygwin/MSYS
  DLL.
  You misinterpreted that.
 
  The mangling is done in msys-2.dll, it's done every time a process is
  spawned. The parent checks the dependencies of the child, and if child
  does NOT depend on msys-2.dll (that is, if child is not a MSYS
  application), the parent will spawn it with mangled environment (thus
  the child will not get POSIX paths in envvars, such as PATH) mangled
  and arguments
 
  This is default in Cygwin for a long time.  When Cygwin starts, a small
  number of variables is converted from Windows to POSIX style, namely
  PATH, HOME, LD_LIBRARY_PATH, TMPDIR, TMP, and TEMP.
 
  If a Cygwin process execve's a non-Cygwin process, the whole thing is
  done backwards.
 
  This is not done for any other variable, and in no direction, because
  trying to recognize other variable's content as path and then
converting
  it to the other style is pure speculation on the DLL's part.  The
result
  is broken as often as not.
 
  I can't say anything about variables (i can easily imagine cases where
not
  converting variables would break the build process, but i can't name a
  package that does need it - because i never tried to compile anything
  without that feature, and i don't remember it misfiring on me and
  converting something that shouldn't have been converted).
 
  However, the fact that command line arguments are not converted (at
least
  you didn't mention anything about converting arguments; i assume they
are
  left untouched; my googling also supports that assumption) means that
  command line arguments like these:
 
  -I/mingw/lib/glib-2.0/include
 
  /src/mingw-w64/mingw-w64-libraries/winpthreads/src/clock.c
 
  will not be converted, which makes it next to impossible to use W32
tools
  in conjunction with autotools (ok, the /src thing can be avoided by
  carefully using relative paths only, but i can't say how much things
will
  slip past that and bite you, if mangling is switched off).
 
  You are also incorrect in assuming that the probability of MSys
correctly
  guessing that something should be mangled is 0.5 (as often as not, as
you
  put it). In my experience, the probability of a correct guess goes up to
  0.9 and above. The logic is quite complex (see [1] for the list of rules
  MSYS1 uses; see MSYS2 source for the list of rules MSYS2 uses). There
ARE
  cases when you don't want MSys to mangle things, but it does anyway, and
  the result is unsatisfactory. In these cases buildsystem has to be
  patched.
 
  Mostly it's when something that looks like a path (such as a prefix, i.e
  /mingw) is used in a construction like -DSOMEPREFIX=\/mingw\. The
  problem is solved by using config.h instead of -D (since the contents of
  files are not mangled). The reverse is also true - sometimes
buildsystems
  will generate source files on the fly (usually - by processing .in files
  and substituting @VARIABLES@), and will insert absolute paths to files
into
  generated code, i.e. fopen (/src/libcdio/blah/blah/foobar.data, r)
  (usually it's for testcases that are not designed to be relocatable
  anyway). This can be fixed directly (using relative names explicitly),
or
  worked around by calling configure relatively (i.e. cd builddir ;
  ../srcdir/configure arguments - assuming that builddir and srcdir are
  siblings) when doing OOTSD builds (in which case all names will be
relative
  no matter what).
 
  There are also selected cases where something looks like a path, but
isn't
  one. One example that comes to mind is xmlcatalog.exe, which is given
  arguments like -//OASIS//ELEMENTS DocBook Information Pool V4.2//EN,
  which look like paths, but shouldn't be mangled. The solution is to use
  msys version of xmlcatalog (that fixes some other problems as well)
instead
  of mingw version.
 
  Same goes for git. As i mentioned earlier in this thread, one of the
things
  that msysGit devs did to their fork of MSYS1 was to slightly alter the
  mangling code to not to mangle some things (some kind of git refs, i
forgot
  the specifics). Again, this is fixed by using real msys-git that needs
no
  mangling.
 
  But most of the time things just work™
 
  [1] http://www.mingw.org/wiki/Posix_path_conversion
 
 To add a little bit to this discussion. I just did a native gcc
 x86_64-w64-mingw32 3-stage bootstrap using the MSYS2 version dated
10.06.. It