Skip to content

Commit

Permalink
* Bumped version to 9.04
Browse files Browse the repository at this point in the history
* Added required binaries (will be compiled at a later stage)
* Added uninstallation page
* Added BitTorrent source
* Added documentation and licenses
* Connected download managers
* Fixed download status updates
* Added more information to the README
* Made the tasklist thread daemonic so that it does not prevent the
  main application from quitting
  • Loading branch information
agoru committed Dec 4, 2008
1 parent 841327b commit b60cb55
Show file tree
Hide file tree
Showing 1,369 changed files with 168,584 additions and 15,011 deletions.
10 changes: 2 additions & 8 deletions .bzrignore
@@ -1,8 +1,2 @@
/old
/wine
/dist*
wubi.exe
bin.old
wine.old
wine.old2
build
build/*
wine
1 change: 0 additions & 1 deletion MANIFEST.in
@@ -1,4 +1,3 @@
recursive-include storm *.py *.c
recursive-include tests *.py *.txt

include MANIFEST.in LICENSE README TODO NEWS Makefile setup.cfg test
50 changes: 25 additions & 25 deletions Makefile
@@ -1,37 +1,37 @@
PYTHON = python
PYWINE = tools/pywine

all: build

build: build_with_cx_freeze
build: wubi

wubi: check_wine pylauncher src/main.py src/wubi/*.py
rm -rf build/wubi
cp wine/drive_c/windows/system32/python23.dll build/pylauncher #TBD
PYTHONPATH=src tools/pywine -OO build/pylauncher/pack.py src/main.py build/wubi data bin
mv build/wubi/application.exe build/wubi.exe

pylauncher: 7z src/pylauncher/*.c src/pylauncher/*.py
cp -rf src/pylauncher build
cd build/pylauncher; make

build_with_pyinstaller:
rm -rf dist
mkdir -p dist
tools/pyinstaller_build pyinstaller.spec
# not compiling 7z at the moment, but source is used by pylauncher
7z: src/7z/C/*.c
cp -rf src/7z build

build_with_cx_freeze:
rm -rf build
mkdir -p build/wubi
tools/wine c:/cx_freeze/FreezePython.exe -OO --include-path src --install-dir build/wubi --base-binary Win32GUI src/wubi/wubi.py
cp -a bin build/wubi
cp -a data build/wubi
cd build;7z a -t7z -m0=lzma -mx=9 -mfb=256 -md=32m -ms=on wubi.7z wubi
echo ';!@Install@!UTF-8!\nTitle="Wubi, Windows Ubuntu Installer"\nRunProgram="wubi\wubi.exe "\n;!@InstallEnd@!'> build/7z.conf
cat src/selfextract/7zS.sfx build/7z.conf build/wubi.7z > build/wubi.exe
runbin: wubi
rm -rf build/test
mkdir build/test
cd build/test; ../../tools/wine ../wubi.exe -v --skipsizecheck

test: build/wubi.exe
tools/wine build/wubi.exe -v
check_wine: tools/check_wine
tools/check_wine

unittest:
$(pywine) tools/test
tools/pywine tools/test

run:
PYTHONPATH=src $(PYWINE) src/wubi/wubi.py -v --skipsizecheck
runpy:
PYTHONPATH=src tools/pywine src/main.py -v --skipsizecheck

clean:
rm -rf dist
rm -rf build
rm -rf buildpyinstaller
rm -rf dist/*
rm -rf build/*

.PHONY: all build test
56 changes: 53 additions & 3 deletions README
@@ -1,9 +1,59 @@
Wubi is the Windows Ubuntu Installer.
== Introduction ==

Wubi is the Windows Ubuntu Installer. Wubi installs Ubuntu inside a file within a windows partition, and thus it does not require CD burning or dedicated partitions. Jet the installation is a dual boot setup identical to a normal installation.

For more information see:

http://wubi-installer.org
http://wiki.ubuntu.com/WubiGuide

To run wubi under wine directly from source, execute "make run" in the toplevel directory.
To build and run the packaged binary, execute "make test" in the toplevel directory.
== Compiling ==

* make: builds wubi.exe, note that the first time you run it, you will have to install python inside of wine, this is performed automatically, just confirm all the default choices in the installation screens that will appear.
* make runpy: runs wubi under wine directly from source
* make runbin: builds wubi and runs the packaged binary under wine

== Code overview ==

* src/winui: thin ctypes wrapper around win32 native graphical user interface
* src/pylauncher: makes python code into an executable, the python script is
examined and all the dependencies are added to an lzma archive, then an
executable header is concatenated to the archive that decompresses it and runs
the script using the python dll
* src/wubi: the main wubi application, the code is split between backend and
frontend, where each runs in its own thread. The two interact via a tasklist object,
where the frontend usually runs a tasklist which is a set of backend tasks. Backends
and frontends are platform specific. For now only the Windows platform is supported.
* data: settings for wubi branding and customization
* po: translations

== Wubi tasks ==

Wubi performs the following tasks

* feteches information about the running system which will be used during installation
* checks that the minimum installation requirements are met
* retrieves required user information via a GUI
* looks for available local CDs and ISO files
* downloads the ISO if one is required, using bittorrent and an http download manager
* checks the ISO/CD md5 sums and the md5 signature
* extracts the kernel and initrd from the ISO
* adds a new boot entry to the existing windows bootloader
* prepares a preseed file to be used during the linux-side installation
* allocates space for the virtual disk files

The actual installation is performed within linux after rebooting the machine

== Customizations ==

* edit the files in data as appropriate and build your image
* you will need to provide an ISO that is similar to the Ubuntu ISO and in particular it must have .disk/info formatted like .disk/info in the Ubuntu ISO
* you must provide a webserver with metalink file, metalink file md5 checksums and signatures for the md5 sums
* add your signing key to data/trustedkeys.gpg

== License ==

GPL v2

See LICENSE

7 changes: 3 additions & 4 deletions THANKS
@@ -1,8 +1,8 @@

Thanks to:

- Geza Kovacs <geza0kovacs@gmail.com>, initial prototypes and lupin patches.
- Oliver Mattos <omattos@gmail.com>, initial nsis GUI.
- Geza Kovacs <geza0kovacs@gmail.com>, for the initial prototypes and lupin patches.
- Oliver Mattos <omattos@gmail.com>, for the initial nsis GUI.
- Ecology2006 <ecology2007@gmail.com>, for maintaining and improving the nsis GUI.
- Colin J Watson <cjwatson@ubuntu.com>, for rewriting and improving the installation code
- Evan D'andrea <evand@ubuntu.com>, for merging the Lupin patches into Ubuntu
Expand All @@ -11,7 +11,6 @@ Thanks to:
- Szabolcs Szakacsits <szaka@ntfs-3g.org>, for ntfs-3g support.
- Computer Guru for enabling the Vista bootloader.
- The GCC project, for 64-bit detection code.
- The win32-loader project, for ideas and code.
- Nullsoft, for the install system.
- The win32-loader project, for ideas.
- All the translators
- All the users that helped us testing/improving Wubi
26 changes: 13 additions & 13 deletions data/isolist.ini
@@ -1,5 +1,5 @@
[DEFAULT]
version=8.10
version=9.04
info_file=.disk/info
kernel=casper/vmlinuz
initrd=casper/initrd.gz
Expand All @@ -15,46 +15,46 @@ maxsize=900000000
arch=i386
name=Ubuntu
packages=ubuntu-desktop
metalink=http://releases.ubuntu.com/8.10/ubuntu-8.10-desktop-i386.metalink
metalink2=http://cdimage.ubuntu.com/daily-live/current/intrepid-desktop-i386.metalink
metalink=http://releases.ubuntu.com/9.04/ubuntu-9.04-desktop-i386.metalink
metalink2=http://cdimage.ubuntu.com/daily-live/current/jaunty-desktop-i386.metalink
ordering=1

[Ubuntu-amd64]
arch=amd64
name=Ubuntu
packages=ubuntu-desktop
metalink=http://releases.ubuntu.com/8.10/ubuntu-8.10-desktop-amd64.metalink
metalink2=http://cdimage.ubuntu.com/daily-live/current/intrepid-desktop-amd64.metalink
metalink=http://releases.ubuntu.com/9.04/ubuntu-9.04-desktop-amd64.metalink
metalink2=http://cdimage.ubuntu.com/daily-live/current/jaunty-desktop-amd64.metalink
ordering=1

[Kubuntu-i386]
arch=i386
name=Kubuntu
packages=kubuntu-kde4-desktop
metalink=http://cdimage.ubuntu.com/kubuntu-kde4/releases/8.10/release/kubuntu-kde4-8.10-desktop-i386.metalink
metalink2=http://cdimage.ubuntu.com/kubuntu-kde4/daily-live/current/intrepid-desktop-i386.metalink
metalink=http://cdimage.ubuntu.com/kubuntu-kde4/releases/9.04/release/kubuntu-kde4-9.04-desktop-i386.metalink
metalink2=http://cdimage.ubuntu.com/kubuntu-kde4/daily-live/current/jaunty-desktop-i386.metalink
ordering=2

[Kubuntu-amd64]
arch=amd64
name=Kubuntu
packages=kubuntu-kde4-desktop
metalink=http://cdimage.ubuntu.com/kubuntu-kde4/releases/8.10/release/kubuntu-kde4-8.10-desktop-amd64.metalink
metalink2=http://cdimage.ubuntu.com/kubuntu-kde4/daily-live/current/intrepid-desktop-amd64.metalink
metalink=http://cdimage.ubuntu.com/kubuntu-kde4/releases/9.04/release/kubuntu-kde4-9.04-desktop-amd64.metalink
metalink2=http://cdimage.ubuntu.com/kubuntu-kde4/daily-live/current/jaunty-desktop-amd64.metalink
ordering=2

[Xubuntu-i386]
arch=i386
name=Xubuntu
packages=xubuntu-desktop
metalink=http://cdimage.ubuntu.com/xubuntu/releases/8.10/release/xubuntu-8.10-desktop-i386.metalink
metalink2=http://cdimage.ubuntu.com/xubuntu/daily-live/current/intrepid-desktop-i386.metalink
metalink=http://cdimage.ubuntu.com/xubuntu/releases/9.04/release/xubuntu-9.04-desktop-i386.metalink
metalink2=http://cdimage.ubuntu.com/xubuntu/daily-live/current/jaunty-desktop-i386.metalink
ordering=3

[Xubuntu-amd64]
arch=amd64
name=Xubuntu
packages=xubuntu-desktop
metalink=http://cdimage.ubuntu.com/xubuntu/releases/8.10/release/xubuntu-8.10-desktop-amd64.metalink
metalink2=http://cdimage.ubuntu.com/xubuntu/daily-live/current/intrepid-desktop-amd64.metalink
metalink=http://cdimage.ubuntu.com/xubuntu/releases/9.04/release/xubuntu-9.04-desktop-amd64.metalink
metalink2=http://cdimage.ubuntu.com/xubuntu/daily-live/current/jaunty-desktop-amd64.metalink
ordering=3
2 changes: 1 addition & 1 deletion data/preseed.lupin
Expand Up @@ -29,7 +29,7 @@ d-i apt-setup/security-updates-failed note
d-i mirror/http/proxy string

## SUITE
d-i mirror/suite string intrepid
d-i mirror/suite string jaunty

## PARTITIONING
$(partitioning)s
Expand Down

0 comments on commit b60cb55

Please sign in to comment.