What is the purpose of MSYS?

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

What is the purpose of MSYS?

Keith Marshall
I'd like to clear up some misconceptions, which recently appeared in
the thread `[Mingw-users] ALSA / libasound':
http://thread.gmane.org/gmane.comp.gnu.mingw.user/27767/focus=27883

On Tuesday 14 October 2008 02:04:23 John Brown wrote:

> >> I began MSYS with the purpose to facilitate executing configure
> >> scripts to create a Makefile that you could then execute gmake
> >> on.
> >
> > That's fine, and completely understood; it establishes the
> > *minimum* functional requirement, *not* the ultimate capability.
> >
> > By analogy, I need a motor vehicle to facilitate my daily commute
> > to and from work.  Suppose I choose a Volkswagen Golf.  Does this
> > imply that a Volkswagen Golf can only be used for commuting to
> > and from work?  Perhaps I need a different vehicle, to go and
> > collect a few bags of groceries from a nearby supermarket?
>
> Let me rush in (where angels fear to tread?) with an analogy of my
> own.

So, you thought you'd join in the sport?

> An axe is a tool for chopping wood. Nevertheless, axe murderers
> have used axes with great effect for other purposes.  However, most
> people who need to kill somebody use a gun, which was, in fact,
> designed to kill people efficiently. As much as the axe murderer's
> creativity in seeing a murder weapon where the rest of us see only
> a humble cousin to the hammer, screwdriver, and friends is to be
> admired, it in no way changes the fact that killing people is not
> what axes are for.

And I certainly wouldn't contest that; however, I would suggest that
this may not be a particularly good analogy, in the circumstances.

> MSYS is a Minimal SYStem for runing configure scripts on Windows.

This isn't as far from reality, as some of the earlier assertions have
been, but it is still an unsatisfactory description.  Let us rather
define it rigorously:

  MSYS is a minimal command line interpreter (CLI) system, built
  around the GNU Bourne Again Shell (bash), for running *Bourne*
  *shell* scripts on MS-Windows.  In addition to this shell, it
  includes a carefully selected minimal set of common POSIX tools
  to facilitate running configure scripts; it also includes the
  GNU make utility, to facilitate the processing of makefiles.

> I am sure that I have seen discussions on this list about what to
> include or leave out to prevent MSYS from becoming another Cygwin
> and losing sight of the Minimal in MSYS.

No one, and certainly not I, is suggesting that MSYS should grow into
another Cygwin.  Let's make it perfectly clear, however, that the
`Minimal' refers to the collection of accompanying tools, and not to
any restriction on capabilities of the bash shell.  When Stephen
Bourne developed his original shell, it was not with the intention
that it should only be used to run configure scripts.  Similarly,
when the GNU developers created bash, it was with the intention that
it would remain compatible with, and would *extend* the feature set of
Bourne's original shell.  Now, the MSYS shell *is* GNU bash, and its
intended purpose is to interpret Bourne shell commands and scripts,
which conform to bash syntax.

The running of configure scripts may be seen as the analogue of my
commute to work.  Just as commuting to work is *not* the primary
purpose of a Volkswagen Golf, running configure scripts is not the
primary purpose of bash, and hence it is not the primary purpose of
the MSYS shell; as the Volkswagen Golf is suitable for any type of
journey which might be reasonably undertaken in a mid-sized family
run-about, the MSYS shell is suitable for running any Bourne shell
script, including any extended syntax Bourne shell script, which may
be executed by bash.  Unlike your `axe as a murder weapon' analogy,
execution of Bourne shell scripts is *precisely* the purpose of the
shell, and such scripts are, by no means, restricted to configure
scripts only.

Now, the power of a shell is considerably enhanced by the collection
of additional tools, which are provided for shell scripts to use.  In
the case of MSYS, those are restricted to the minimal set which has
been found to be necessary, to facilitate the execution of configure
scripts, in particular; this is where the `minimal' concept applies,
and any request to add additional tools, which are not required to
facilitate this objective, as standard components of the basic MSYS
distribution, will be strenuously declined.  However, that minimal
set of tools just happens to include all of the tools most commonly
used in shell scripts of a much more general nature than configure
scripts; thus, to say that MSYS is only useful for running configure
scripts is clearly ridiculous.

Even more ridiculous, is to assert that `MSYS is only for building
MinGW applications'; in fact, MSYS alone is *incapable* of performing
that function!  This becomes possible, only when MinGW, (a tool set
which is significantly larger than a basic MSYS installation), is
installed, in *addition* to MSYS.

As I've stated previously, building MinGW applications is not *my*
predominant use for MSYS; (I perform that function using a mingw32
cross-compiler suite, hosted on GNU/Linux).  Rather, I use MSYS
predominantly for document compilation, using pdfroff; this is a
Bourne shell script, included with GNU troff, to facilitate the
formatting of PDF document files; it is *not* a configure script, but
it requires mostly the same tools as a configure script would, and
MSYS is eminently suited to running it, whereas there is no standard
MS-Windows facility which can do so.  Instead of MinGW, my additional
tool set comprises GNU troff (groff) -- which must be added to a
basic MSYS installation anyway, if the ability to read manpages is
desired -- and AFPL GhostScript, (which serves as the PDF generating
back-end for groff).

Ok, I've said enough on this subject now.  If *you* use MSYS, along
with MinGW, to build MinGW applications, and do not wish to use it
for any other purpose, that is fine; this is your prerogative, but
please do not claim that it is unsuited to any other purpose, for
that is untrue.  My own usage is just one perfectly legitimate
alternative use.  Of course, I could have chosen to use Cygwin
instead, but I have no need for such a behemoth; for my purposes,
MSYS is a better choice.

Regards,
Keith.

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
MinGW-users mailing list
[hidden email]

You may change your MinGW Account Options or unsubscribe at:
https://lists.sourceforge.net/lists/listinfo/mingw-users
Reply | Threaded
Open this post in threaded view
|

Re: What is the purpose of MSYS?

John Brown

On Thu, 23 Oct 2008 20:45:00 +0100, Keith Marshall wrote:
>
> I'd like to clear up some misconceptions, which recently appeared in
> the thread `[Mingw-users] ALSA / libasound':

First of all, it's not worth a quarrel.

> http://thread.gmane.org/gmane.comp.gnu.mingw.user/27767/focus=27883
>
> On Tuesday 14 October 2008 02:04:23 John Brown wrote:
>>>> I began MSYS with the purpose to facilitate executing configure
>>>> scripts to create a Makefile that you could then execute gmake
>>>> on.
>>>
>>> That's fine, and completely understood; it establishes the
>>> *minimum* functional requirement, *not* the ultimate capability.
>>>

But if we are going to argue, then I would argue that the purpose, i.e.,
the goal of MSYS is to run configure scripts on Windows. The fact that it
can do more is incidental. You didn't seriously expect Earnie to modify
bash so that when you try to run yourprog it says:

'-bash: yourprog: command not found. Actually, I know exactly where
yourprog is, but because I have been modified to only permit the running
of configure scripts, I refuse to run yourprog. Take that!'  ?

>>> By analogy, I need a motor vehicle to facilitate my daily commute
>>> to and from work.  Suppose I choose a Volkswagen Golf.  Does this
>>> imply that a Volkswagen Golf can only be used for commuting to
>>> and from work?  Perhaps I need a different vehicle, to go and
>>> collect a few bags of groceries from a nearby supermarket?
>>
>> Let me rush in (where angels fear to tread?) with an analogy of my
>> own.
>
> So, you thought you'd join in the sport?
>
>> An axe is a tool for chopping wood. Nevertheless, axe murderers
>> have used axes with great effect for other purposes.  However, most
>> people who need to kill somebody use a gun, which was, in fact,
>> designed to kill people efficiently. As much as the axe murderer's
>> creativity in seeing a murder weapon where the rest of us see only
>> a humble cousin to the hammer, screwdriver, and friends is to be
>> admired, it in no way changes the fact that killing people is not
>> what axes are for.
>
> And I certainly wouldn't contest that; however, I would suggest that
> this may not be a particularly good analogy, in the circumstances.
>
>> MSYS is a Minimal SYStem for runing configure scripts on Windows.
>
> This isn't as far from reality, as some of the earlier assertions have
> been, but it is still an unsatisfactory description.  Let us rather
> define it rigorously:
>
>   MSYS is a minimal command line interpreter (CLI) system, built
>   around the GNU Bourne Again Shell (bash), for running *Bourne*
>   *shell* scripts on MS-Windows.  In addition to this shell, it
>   includes a carefully selected minimal set of common POSIX tools
>   to facilitate running configure scripts; it also includes the
>   GNU make utility, to facilitate the processing of makefiles.
>

Certainly, in order to run configure scripts, you need to be able to run
bash scripts in general, and you will need sed, awk, and so on much
of the time.

>> I am sure that I have seen discussions on this list about what to
>> include or leave out to prevent MSYS from becoming another Cygwin
>> and losing sight of the Minimal in MSYS.
>
> No one, and certainly not I, is suggesting that MSYS should grow into
> another Cygwin.  Let's make it perfectly clear, however, that the
> `Minimal' refers to the collection of accompanying tools, and not to
> any restriction on capabilities of the bash shell.

I agree with that definition of Minimal. As I pointed out above,
it would be ridiculous to try to prevent bash from being bash.

> When Stephen
> Bourne developed his original shell, it was not with the intention
> that it should only be used to run configure scripts.  Similarly,
> when the GNU developers created bash, it was with the intention that
> it would remain compatible with, and would *extend* the feature set of
> Bourne's original shell.  Now, the MSYS shell *is* GNU bash, and its
> intended purpose is to interpret Bourne shell commands and scripts,
> which conform to bash syntax.
>
> The running of configure scripts may be seen as the analogue of my
> commute to work.  Just as commuting to work is *not* the primary
> purpose of a Volkswagen Golf, running configure scripts is not the
> primary purpose of bash,

But it *is* the primary purpose of MSYS. Bash is one of the tools
required for that purpose, but is not limited to it. Earnie was just trying
to give people a smaller download than Cygwin, for which I am grateful.

> and hence it is not the primary purpose of
> the MSYS shell; as the Volkswagen Golf is suitable for any type of
> journey which might be reasonably undertaken in a mid-sized family
> run-about, the MSYS shell is suitable for running any Bourne shell
> script, including any extended syntax Bourne shell script, which may
> be executed by bash.  Unlike your `axe as a murder weapon' analogy,
> execution of Bourne shell scripts is *precisely* the purpose of the
> shell, and such scripts are, by no means, restricted to configure
> scripts only.
>
> Now, the power of a shell is considerably enhanced by the collection
> of additional tools, which are provided for shell scripts to use.  In
> the case of MSYS, those are restricted to the minimal set which has
> been found to be necessary, to facilitate the execution of configure
> scripts, in particular; this is where the `minimal' concept applies,
> and any request to add additional tools, which are not required to
> facilitate this objective, as standard components of the basic MSYS
> distribution, will be strenuously declined.  However, that minimal
> set of tools just happens to include all of the tools most commonly
> used in shell scripts of a much more general nature than configure
> scripts; thus, to say that MSYS is only useful for running configure
> scripts is clearly ridiculous.
>

My main point is that MSYS can certainly be used for other things, but
its intended purpose is to run configure scripts on Windows. If it were
possible to limit it to running configure scripts and nothing else, then
the design goal would have been met, and I would still have all the
libraries from aalib to zlib that I have built with MSYS over the years.

> Even more ridiculous, is to assert that `MSYS is only for building
> MinGW applications'; in fact, MSYS alone is *incapable* of performing
> that function!  This becomes possible, only when MinGW, (a tool set
> which is significantly larger than a basic MSYS installation), is
> installed, in *addition* to MSYS.
>

Somebody else said that, and I agree with you that it is not accurate.

> As I've stated previously, building MinGW applications is not *my*
> predominant use for MSYS; (I perform that function using a mingw32
> cross-compiler suite, hosted on GNU/Linux).  Rather, I use MSYS
> predominantly for document compilation, using pdfroff; this is a
> Bourne shell script, included with GNU troff, to facilitate the
> formatting of PDF document files; it is *not* a configure script, but
> it requires mostly the same tools as a configure script would, and
> MSYS is eminently suited to running it, whereas there is no standard
> MS-Windows facility which can do so.  Instead of MinGW, my additional
> tool set comprises GNU troff (groff) -- which must be added to a
> basic MSYS installation anyway, if the ability to read manpages is
> desired -- and AFPL GhostScript, (which serves as the PDF generating
> back-end for groff).
>
> Ok, I've said enough on this subject now.  If *you* use MSYS, along
> with MinGW, to build MinGW applications, and do not wish to use it
> for any other purpose, that is fine; this is your prerogative, but
> please do not claim that it is unsuited to any other purpose, for
> that is untrue.  

I never said that.

> My own usage is just one perfectly legitimate
> alternative use.

If MSYS were a commercial product, and you contacted the vendor
about some issue with your setup, you should not be surprised if they
told you that they couldn't help you because your configuration is not
supported.


  Of course, I could have chosen to use Cygwin
> instead, but I have no need for such a behemoth; for my purposes,
> MSYS is a better choice.
>
> Regards,
> Keith.
>

Regards,
Alias John Brown.
_________________________________________________________________
Stay organized with simple drag and drop from Windows Live Hotmail.
http://windowslive.com/Explore/hotmail?ocid=TXT_TAGLM_WL_hotmail_102008
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
MinGW-users mailing list
[hidden email]

You may change your MinGW Account Options or unsubscribe at:
https://lists.sourceforge.net/lists/listinfo/mingw-users
Reply | Threaded
Open this post in threaded view
|

Re: What is the purpose of MSYS?

Earnie Boyd
In reply to this post by Keith Marshall

Quoting Keith Marshall <[hidden email]>:

>
>> MSYS is a Minimal SYStem for runing configure scripts on Windows.
>
> This isn't as far from reality, as some of the earlier assertions have
> been, but it is still an unsatisfactory description.  Let us rather
> define it rigorously:
>
>  MSYS is a minimal command line interpreter (CLI) system, built
>  around the GNU Bourne Again Shell (bash), for running *Bourne*
>  *shell* scripts on MS-Windows.  In addition to this shell, it
>  includes a carefully selected minimal set of common POSIX tools
>  to facilitate running configure scripts; it also includes the
>  GNU make utility, to facilitate the processing of makefiles.
>

And the description as I wrote it from www.mingw.org:
MSYS: A Minimal SYStem providing a POSIX compatible Bourne shell
environment, with a small collection of UNIX command line tools.
Primarily developed as a means to execute the configure scripts and
Makefiles used to build Open Source software, but also useful as a
general purpose command line interface to replace Windows cmd.exe.

Keith's description is similar.  There is always a but in the face of
assertions and I carefully crafted the words to include it to the
definition of MSYS.  I might want to add to the description some text
mentioning the extensible nature of the MSYS that can be accomplished
by adding more command line tools but I don't think it is really
necessary.

Earnie

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
MinGW-users mailing list
[hidden email]

You may change your MinGW Account Options or unsubscribe at:
https://lists.sourceforge.net/lists/listinfo/mingw-users
Reply | Threaded
Open this post in threaded view
|

Re: What is the purpose of MSYS?

John Brown

On  Fri, 24 Oct 2008 07:47:20 -0400, Earnie Boyd wrote:

>
> Quoting Keith Marshall :
>
>>
>>> MSYS is a Minimal SYStem for runing configure scripts on Windows.
>>
>> This isn't as far from reality, as some of the earlier assertions have
>> been, but it is still an unsatisfactory description.  Let us rather
>> define it rigorously:
>>
>>  MSYS is a minimal command line interpreter (CLI) system, built
>>  around the GNU Bourne Again Shell (bash), for running *Bourne*
>>  *shell* scripts on MS-Windows.  In addition to this shell, it
>>  includes a carefully selected minimal set of common POSIX tools
>>  to facilitate running configure scripts; it also includes the
>>  GNU make utility, to facilitate the processing of makefiles.
>>
>
> And the description as I wrote it from www.mingw.org:
> MSYS: A Minimal SYStem providing a POSIX compatible Bourne shell
> environment, with a small collection of UNIX command line tools.
> Primarily developed as a means to execute the configure scripts and
> Makefiles used to build Open Source software, but also useful as a
> general purpose command line interface to replace Windows cmd.exe.
>

I yield to the author, who says that while MSYS is *primarily* for running
configure scripts, it was, in fact, contemplated that people might use it for
other purposes, and such use is not unsupported.

> Keith's description is similar.  There is always a but in the face of
> assertions and I carefully crafted the words to include it to the
> definition of MSYS.  I might want to add to the description some text
> mentioning the extensible nature of the MSYS that can be accomplished
> by adding more command line tools but I don't think it is really
> necessary.
>

Especially since you don't want it to turn into another Cygwin.

> Earnie
>


_________________________________________________________________
When your life is on the go—take your life with you.
http://clk.atdmt.com/MRT/go/115298558/direct/01/
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
MinGW-users mailing list
[hidden email]

You may change your MinGW Account Options or unsubscribe at:
https://lists.sourceforge.net/lists/listinfo/mingw-users
Reply | Threaded
Open this post in threaded view
|

Re: What is the purpose of MSYS?

Caleb Cushing
My feelings on MSYS are as such.

I don't want cygwin, having used it once (meaning vague memories) it
has a full init system and X11, which is way more than I need.

I see msys/mingw like this, msys is to cygwin as gentoo is to fedora.
msys is one of the tools I use to make windows more like linux for me.

msys/mingw is a minimal gnu cli distro for windows that is developer centric.

now I seem to have missed the original argument which led to this...
'discussion'. anyone care to point me where it got started? I'm
guessing that some unsupported package doesn't work and the argument
is trying to lead to why it should or should not be supported. the
question I would raise is (if my assumptions are correct) could the
fix to make this package build fix something else?

--
Caleb Cushing

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
MinGW-users mailing list
[hidden email]

You may change your MinGW Account Options or unsubscribe at:
https://lists.sourceforge.net/lists/listinfo/mingw-users
Reply | Threaded
Open this post in threaded view
|

Re: What is the purpose of MSYS?

Brian Dessent
Caleb Cushing wrote:

> I don't want cygwin, having used it once (meaning vague memories) it
> has a full init system and X11, which is way more than I need.

Cygwin has those packages available but they are not selected by default
and are certainly not required.  A base Cygwin install as of this moment
consists of 14.5MB.

Brian

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
MinGW-users mailing list
[hidden email]

You may change your MinGW Account Options or unsubscribe at:
https://lists.sourceforge.net/lists/listinfo/mingw-users