Re: [ROOT] Cygwin setup to install ROOT in Windows

From: Fons Rademakers (Fons.Rademakers@cern.ch)
Date: Wed May 23 2001 - 11:22:27 MEST


Hi Christian,

  any port of ROOT on Windows using Linux compatible mode will be
X11 based. No Win32 headers can and should be directly used (as
Valery did point out). To be able to run such a version one would
need the Cygwin environment at run time, including an X server
(eXceed or the now beta XFree86 port under Cygwin). I think it
is a hassle not worth the effort for the time being considering
the available native Win32 port under VC++.


Cheers, Fons.



On Tue, May 22, 2001 at 09:48:11PM +0200, Christian Holm Christensen wrote:
> Hi Valeri and Fons and others, 
> 
> On Tue, 22 May 2001 14:35:24 +0000
> Fons Rademakers <Fons.Rademakers@cern.ch> wrote
> concerning ": Re: [ROOT] Cygwin setup to install ROOT in Windows":
> > Hi Christian,
> > 
> >   on Windows only the installation using MS Visual C++ is supported
> > for the time being (./configure win32). The build process needs
> > cygwin, 
> 
> I knew that!
> 
> > but for running the executable you don't need cygwin. Building using
> > gcc under cygwin is currently not supported (should be ./configure
> > win32gcc). 
> 
> I was just hoping (more or less optimistic - I know) that someone had
> had a go at it. 
> 
> > This build would need cygwin also  to run the executable. If you are
> > willing to make this port we are  happy to support it.
> 
> Uh, sorry, no time at the moment, and to be honest, I'm not really a
> big fan of Micros**t OSs (if that concept really applies :-).   
> 
> On Tue, 22 May 2001 12:57:49 -0400
> "Valeri Fine" <fine@bnl.gov> wrote
> concerning ": Re: [ROOT] Cygwin setup to install ROOT in Windows":
> > > Last time I tried to compile ROOT using Cygwin GCC, I got loads of
> > > errors regarding missing functions (especially in the CINT code,
> > > though it may not be Masa's problem) - one I can remember of the top
> > > of my head was "unlink".  
> > 
> >      It is Makefile file problem 
> 
> Err, what do you mean?  What I did when I tried to compile ROOT using
> Cygwin GCC was to take Makefile.linuxegcs and use that (following
> Fons' suggestion back ages ago).  However, I soon saw errors like
> "implicit declaration of unknown function ..." and later "unresolved
> reference to ...".  
> 
> Now looking through the code then I basically saw no problem with
> Makefile.linuxegcs under Cygwin, though I did have to change a few
> preprocessor things in the CINT sources.  
> 
> I got as far as compling and linking cint and makecint - as far as I
> remember - but  rootcint defently failed to link.  
> 
> Now I really don't believe that it's a Makefile problem.  Rather, it's
> a source code problem, 'cause for a great many things, you want to use
> the Unix source code, and for a tiny piece you'd like to use the Win32
> source code (Win32 graphics rather than X same), but there was no
> obvious way that could be achived by only setting preprossor flags in
> the Makefile - source code changes is needed, probably both in CINT
> and ROOT. 
>  
> >    Hmm. as far as I know Cygwin staff is compiled with "gcc"
> >    and linked with gcc run-time library against of the special Cygwin DLL.
> >    
> >    All "UNIX-Windows" and "Windows - UNIX" mapping (this means all I/O) 
> >    is provided by that DLL at run-time. The user code, including
> >    Cygwin utilites commuinicate Windows via that  DLL. 
> 
> Hmm.  As far as I gather your answer is "no". Rather, it's a feature
> of cygwin.dll an cygdrive is just an application exploiting that
> feature.  I this correctly understood?  Damn, I was rather hoping that
> the Cygnus people had used the idea of extented inode, like in
> GNU/Hurd. 
> 
> >  As Fons has explained this  entails Cygwin must be present at
> >  Run-time, this means ROOT team has to provide it somehow. 
> 
> According to the GPL, it's enough to provide a pointer, like 
> 
>   You need <a href="http://www.cygwin.com">Cygwin</a> installed on you
>   machine. 
> 
> Bloody close to saying:
> 
>   You need a C++ compiler installed on your machine. 
> 
> or even, 
> 
>   You need an Operating System installed on your machine. 
> 
> See, really no problem in that :-) 
> 
> > According
> >  http://www.cygwin.com/licensing.html this entails:
> > 
> >    ". . .  unless you modify the tools so that compiled executables
> >    do not make use of the Cygwin library, your compiled programs will
> >    also have to be free software distributed under the GPL with
> >    source code available to all. "
> 
> Although it's on the Cygnus homepage, I believe this is a rather
> strong reading of GPL, and not entirely correct either.  
> 
> This reading would also imply that ROOT can in fact not redistribute
> h2root and g2root since they are (statically) linked against the
> GPL'ed CERNLIB libraries.
> 
> What I think they got a bit cooked up, is the notion of "modified
> work" and "work that uses the program".  The former must be
> distributed under GPL (or as Cygwin allows it, any OpenSource License,
> like say LGPL). The later, however is not restricted to be licensed as
> OpenSource, since it's not a "modification" to the Program.  In
> reference to GPL: The former falls under section 2, while the later
> under section 3.  Section 3 only requires that you make source code of
> the GPL'ed program avaliable (like above), not what license it should
> carry. 
> 
> Having said all that, ROOT's License is bloody close to being
> OpenSource.  If they would only take out the line 
> 
>   Additionally, the authors grant permission to modify this software
>   and its documentation for any purpose, provided that such
>   modifications are not distributed without the explicit consent of
>   the authors and that existing copyright notices are retained in all
>   copies. 
> 
> Suppose ROOT would exchange those lines with 
> 
>   Additionally, the authors grant permission to modify this software
>   and its documentation for any purpose, provided that explicit notice
>   in the modified work mark it as such.  Also, due notice of the
>   authors must be present, but not misused for the promotion of the
>   modified work. 
> 
> then I believe ROOT would classify as OpenSource.  An alternative is
> the Library General Public License (LGPL) which is not as strict as
> the above GPL, in regards to derived work.  A license like the one for
> CINT is also considered as OpenSource. 
> 
> Having said that, I know that the ROOT Team is not really keen on
> changing the license just yet, so patience ... 
> 
> >  "Native" basic ROOT is about 10 Mb of DLL's, Cygwin takes about 135 Mb.
> >  and such ROOT will communicate the Windows system via extra Cygwin layer, so
> >  it must be slower and takes extra resource.
> 
> As far as I know, Cygwin does not have a reputation of being slow, but
> that may be because Windoze (zzz ZZZ) is slow in the first place :-) 
> 
> >  Another issue "Fortran compiler" and CERNLIB etc etc etc.
> 
> I guess that CERNLIB libraries on Windoze are statically linked, so
> that should not really pose a problem.  The main obtacle for using a
> Micros**t (Un)Visual C++ compiled library with Cygwin GCC, is really
> the name mangling and export libraries, at least that's what I've let
> my self be convinced of once. 
> 
> Yours, 
> 
> Christian  -----------------------------------------------------------
> Holm Christensen                             Phone:  (+45) 35 35 96 91 
>   Sankt Hansgade 23, 1. th.                  Office: (+45) 353  25 305 
>   DK-2200 Copenhagen N                       Web:    www.nbi.dk/~cholm    
>   Denmark                                    Email:       cholm@nbi.dk

-- 
Org:    CERN, European Laboratory for Particle Physics.
Mail:   1211 Geneve 23, Switzerland
E-Mail: Fons.Rademakers@cern.ch              Phone: +41 22 7679248
WWW:    http://root.cern.ch/~rdm/            Fax:   +41 22 7677910



This archive was generated by hypermail 2b29 : Fri Jun 08 2001 - 11:51:25 MEST