summaryrefslogtreecommitdiff
path: root/user/jkoenig.mdwn
blob: b7dd5ce68c0dd2943ed8e18815da91ea1d5da7d8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]

[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
id="license" text="Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with no Invariant
Sections, no Front-Cover Texts, and no Back-Cover Texts.  A copy of the license
is included in the section entitled [[GNU Free Documentation
License|/fdl]]."]]"""]]

## Hurd Debian-Installer

My [proposal](http://wiki.debian.org/SummerOfCode2010/HurdDebianInstaller/JeremieKoenig)
to work on porting d-i on Hurd
as a [Google Summer of Code](http://code.google.com/soc/) student
has been accepted by the Debian project.

I will be keeping track of my progress on this page.

### Latest news

  * current status:
    [busybox](http://lists.debian.org/debian-bsd/2010/05/msg00048.html),
    [genext2fs](http://bugs.debian.org/562999),
    [libdebian-installer](http://bugs.debian.org/584538);
  * [modified packages](http://jk.fr.eu.org/debian/unstable) and
    [images](http://jk.fr.eu.org/debian/hurd-installer) published;
  * mach initrd support underway:
    I get the ramdisk with `$(ramdisk-create)` in the boot script,
    `getstat()` and `read()` should be ok I believe,
    but for some reason `ext2fs copy:device:rd0` complains that
    it cannot get the "hypermetadata".
    Also to be noted:
    grub2 has a 16MiB limit on the size of multiboot modules,
    and does not have a `modulenounzip` command anymore,
    I guess the former would be ok for the forseeable future,
    but I will need to fix the latter.

### Roadmap

#### Week 3 (2010-06-07..13)

* busybox: submit upstream and to #323670,
  fix stty/stat/ipcs on kFreeBSD,
  generally port more stuff,
  notably (u)mount/swaponoff.
* mach ramdisks: implement more device ops,
  fix the remaining problems
* grub2: modulenounzip or something
* libc0.3-udeb: investigate it not having `/lib/ld.so -> ld.so.1`
* netcfg: make it work on Hurd somehow (port `busybox ip`?)
* see what breaks in the installer and fix the problems one by one
  (install-time netcfg, cdrom detection, whatever)
* tweak the hurd debian package to handle
  what native-install used to be required for
  [apparently there's already some relevant stuff done in the postinst,
  it might just work though maybe something is missing,
  or some special code would be needed in the installer
  to enable say, /servers/socket/local before anything
  is attempted in the chroot]
* roadmap: redistribute all that stuff in the following weeks
  (or maybe, reorganize the roadmap around milestones instead of weeks,
  with expected completion dates, as suggested by antrik)

#### Week 4 (2010-06-14..20)

* Hurd-specific partitionning (use supported fs types and options).
  NB: we will need support in mach to reload the partition tables,
  or alternatively use the parted support in libstore somehow.
* grub2 installation

#### Week 5-6 (2010-06-21..07-04)

* unexpected stuff
* cleanup
* call for testing
* fix bugs

At this point we would have a basic but working installer.
Hopefully the summer would not be over yet...

#### Week 7-8 (2010-07-05..18)

* hurd console
* better DHCP support during and after installation
* support more types of installation images

#### Week 9-10 (2010-07-19..08-01)

* give a shot at the graphical installer ?

#### Week 11-12 (2010-08-02..15)

* test, fix, document


### Mostly done

#### Week 1 (2010-05-24)

* genext2fs: patches [submitted](http://bugs.debian.org/562999)
  which add support for all block sizes and choosing them at runtime.
* busybox: started porting the upstream and Debian package to Hurd and FreeBSD
* rebuilding hurd-udeb from the pkg-hurd version
  and adding a ld.so link to the initrd
  fixes the exec translator crashing on startup.
  (BTW would there be a mean to detect this from the libdiskfs bootstrap code
  and report it ?)

#### Week 2 (2010-05-31 to 2010-06-06)

* *busybox*: patches [posted](http://lists.debian.org/debian-bsd/2010/05/msg00048.html).
* *libdebian-installer4*: [ditto](http://bugs.debian.org/584538)
* started working on mach initrd support
* the installation images could boot into the main-menu
  with the following changes:
      * rebuild hurd-udeb from with the latest pkg-hurd patches
      * use busybox from my osports-debian branch (see link above)
      * tweak the d-i image build scripts
      * the symlink /lib/ld.so -> ld.so.1 needs to be created somehow
        (youpi mentionned it being the job of libc0.3-udeb I think)
      * fix the poll() issue in libdebian-installer
        (patch to be submitted soon),
        also there is some hurd doxygen short-circuiting stuff
        there which does not apply any more and prevents is to build.
      * feed the initrd as a hard drive in qemu
        (with some more space added to avoid it from becoming full)