as those of you working on windows know, cygwin's setup.exe,
while nice, only installs packages in the Base category by default
when you're starting from scratch, and that is insufficient for 
building cvs ghc (in fact it doesn't even include cvs). so I've 
been wondering whether one could have "cygwin profiles", to 
tell setup.exe to install everything needed for building cvs ghc, 
or everything I tend to have on a laptop.

it turns out that there is such a possibility, by using setup.exe's
dependency checking and distributed package servers. 
essentially, you provide an empty cygwin package, but give it 
a list of required packages that corresponds to your desired 
"profile". if you select such a pseudo-package, hosted on your
own package server, setup.exe will download/install those 
dependencies in addition to the packages in Base (you can 
see whether that will work by selecting the 'partial' view in 
setup.exe, showing only the packages that will be installed/
modified).

I've just tried that approach on a new machine, installing only
the default and a 'ghc-depends' package (+ its dependencies),
and have arrived at a version that has let me build a recent
cvs head (you still need the non-cygwin dependencies as well).

so, I suggest that the attached ghc-depends package is hosted 
at

    http://www.haskell.org/ghc/cygwin

(or would some place on cvs.haskell.org be better?). Everyone
could then add this URL to the cygwin mirrors when running
setup.exe.

There is no need to host any other cygwin packages, and the 
only non-empty file is cygwin/setup.ini, which looks like this
(modulo line wrapping):
----------------------
setup-timestamp: 1116116565

@ ghc-depends
sdesc: "glasgow haskell compiler build dependencies"
ldesc: "glasgow haskell compiler build dependencies"
category: Devel
requires: ash autoconf (>=2.52) automake bash cygwin coreutils cvs diffutils doc
book-xml42 xmlto libxslt file make patch openssh sed
version: 2005-5
install: release/ghc-depends/ghc-depends-0.0.1-1.tar.bz2 0 d41d8cd98f00b204e9800
998ecf8427e
source: release/ghc-depends/ghc-depends-0.0.1-1-src.tar.bz2 0 d41d8cd98f00b204e9
800998ecf8427e
----------------------

the timestamp you get by "perl -e 'print time'", the numbers next to
the file names are file size and md5sum, so the only field that needs 
attention is  'requires:', which lists a sufficient set of dependencies
for building cvs head (one might want to add some things for 
convenience?) and generating html documentation.

note that the dependencies do *not* include any cygwin compilers
or linkers, as those will be taken from the separate mingw install.

as they stand, the dependencies do not allow building ps/pdf docs.
should one add tetex (but some folks will already have a complete
miktex installation anyway)? something else?

cheers,
claus

- setup.exe, its .ini files, the directory layout for (partial) cygwin 
    mirrors, etc., as well as the empty-package trick are documented:
    http://sourceware.org/cygwin-apps/package-server.html
    http://sourceware.org/cygwin-apps/setup-head.ini.html

    making and maintaining a real cygwin package would be a bit
    more involved
    http://cygwin.com/setup.html

- you can use the same trick locally, eg. by adding an empty 
    package for your typical personal cygwin setup to your local 
    cygwin download directory;-)

Attachment: ghc-depends-cygwin-dir.tar.gz
Description: GNU Zip compressed data

_______________________________________________
Cvs-ghc mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to