[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