welcome to

Debian GNU/w32

This web page documents the Debian GNU/w32 port; this is a port of many Debian packages to the Windows™ operating system by Microsoft™;, using the cygwin™ library by Cygnus™ (now a subsidary of RedHat™).
The Debian architecture name for this port is w32; we hope that it will help spread Debian into the large mass of those windows users that are not willing to completely abandon their usual operating system; and yet, by using Debian GNU/w32, they will start appreciate the usefullness and power of the Debian distribution of Open Source software; and in time, who knows... they may even start to prefer it! and completely switch to a full Open Source operating system.

Installing

the install system is not yet released. It will use cygwin's virtual mounts to provide a FHS filesystem to all debian applications.


However, we have started some of the porting activities. To get information on this activities, and get the software, check here:
readme

Building/Porting

This section describes how to add packages to the win port of Debian. If you wish to collaborate, please subscribe to the mailing list win32@lists.debian.org. If enough people will start collaborate, we will coordinate work through the list.

Cross building

"Cross building" means "using a computer system to build a package for another computer system"; in this case, we may wish to use a computer system running Debian GNU/Linux on a i386 CPU (or 486, or other compatible) (which is the most diffused of all Debian ports) to build packages for Debian GNU/w32
Why would we want to do it?
  1. a Debian package, say 'foo', have two types of dependencies in their control file; we have "Depends:", which tells which other packages are needed to use this package 'foo'; and "Build-depends:", which tells which other packages are needed to build this package 'foo' (aside from having downloaded the source code for 'foo'); the latter is usually much longer, and not all packages may be available in Debian GNU/w32.
  2. we may set up a "build host" that will automatically try to download and recompile packages.
How do you do it?
Most packages use the automated configuration system that is set up by autoconf; this helps a lot when cross building; this help page concentrates on those packages. You should read the autoconf documentation (type 'info autoconf' in a text terminal) and in particular read the section
 * Specifying Names::            Specifying the system type
(to search it, use 'ctrl-s' and type 'Specifying', then hit 'Enter' twice; I know, the footnote is annoyingly big: type "ctrl-x 1" to get rid of it); so you will get aquainted with the meaning of "build system", "host system" and "target system".
First of all, you will need to have the following packages installed
  1. a version of dpkg which supports the new port; try
    dpkg-architecture -aw32
    if this does print
    unknown Debian architecture w32...
    then you should get a newer copy of 'dpkg' and 'dpkg-dev'; otherwise, if you have the sources, you may try to apply the patch 'dpkg-diff' and recompile and reinstall dpkg.
  2. install 'i386-cygwin-gcc' and related packages.
  3. copy the file cross-config.w32 to /etc/dpkg/cross-config.w32, if it is not already there
When you build a package, use the command
CONFIG_SITE=/etc/dpkg/cross-config.w32  dpkg-buildpackage -aw32 -rfakeroot  -b -nc

Host building

This is the usual way of building packages. In time we will release enough Debian GNU/w32 packages to enable people to build other packages using their Debian GNU/w32 installed system.