[Nix-dev] Nix/Nixpkgs on Cygwin
Sander van der Burg - EWI
S.vanderBurg at tudelft.nl
Thu May 29 15:08:58 CEST 2014
Hello Nixers,
Recently I had to do couple of development tasks on *cough cough* MS Windows.
Unfortunately, Nix did not seem to work on it anymore, so I have decided revive the Cygwin support. I had to make a few subtle modifications to the Nix package manager, such as including cstdlib at several places, because a few functions were undeclared according to the compiler.
Moreover, the -std=c++0x gcc parameter caused another file not to compile because fdopen() could not be found (because it's not ANSI/ISO C). I solved it changing the gcc parameter to -std=gnu++0x
Currently, these changes live in my personal Nix fork:
https://github.com/svanderburg/nix/commit/7f685b6550d7393874fc6ef26b9a03a8ace2f90e
Moreover, I had to fix a couple of things in Nixpkgs. These changes also live in my personal fork of Nixpkgs:
https://github.com/svanderburg/nixpkgs/commit/9ec52d632302ad6267a83b563de9927f886e1817
Besides a couple of essential cygwin fixes, I also added support for x86_64-cygwin, which also seems to exist these days.
To make the Nix package manager work on Cygwin, I had to install the following Perl packages through CPAN (besides having all the relevant development packages installed):
perl -MCPAN -e 'install DBD::SQLite'
perl -MCPAN -e 'install WWW::Curl'
I compiled and installed Nix by running the following command-line instructions:
./configure --disable-perl-bindings
make BUILD_SHARED_LIBS=0
make BUILD_SHARED_LIBS=0 install
I disabled building shared libs, as they can't really be properly used with Nix on Cygwin anyway, so there is no need to investigate how to enable them.
I don't know if anyone is in favour of getting these changes merged upstream? Our current policy is that "Cygwin is not officially supported". But if that doesn't matter, I can file a pull request so that anyone can benefit from these changes.
Moreover, any feedback is welcome!
Regards,
Sander van der Burg
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.science.uu.nl/pipermail/nix-dev/attachments/20140529/93f60ffc/attachment.html
More information about the nix-dev
mailing list