summaryrefslogtreecommitdiff
path: root/user/jkoenig.mdwn
blob: def5ce8faf25bf1beb8e814b74ea246160c287a2 (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
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
[[!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.

### Links

  * [Modified packages](http://jk.fr.eu.org/debian/unstable)
  * [Latest images](http://jk.fr.eu.org/debian/hurd-installer)
  * [Debian bugs](http://bugs.debian.org/cgi-bin/pkgreport.cgi?users=jk@jk.fr.eu.org&tag=gsoc2010)
  * [BusyBox port](http://lists.debian.org/debian-bsd/2010/05/msg00048.html)
  * [GNU Mach initrd](http://lists.gnu.org/archive/html/bug-hurd/2010-06/msg00047.html)

### Roadmap

* **mach**: initrd support
    * (./) preliminary patch posted and self-built (2010-06-12)
    * adjustments will be needed (postponed)
    * consider the alternatives discussed on bug-hurd (postponed)

* **glibc**: fix `mkdir("/")` which returned `EINVAL`
    * (./) eglibc 2.11.2-1 includes a quick fix by youpi (2010-06-15)
    * (./) more complete patch posted to bug-hurd,
      since other calls return incorrect errors under some circumstances
      (2010-06-16)
    * more work on it will be needed to make it fix the whole thing
      (postponed)

* (./) **partman** (2010-06-23)
    * (./) add hurd-i386 to
      `partman-partitioning/lib/disk-label.sh`
      (2010-06-16, commited by youpi on 2010-06-23)
    * (./) short-circuit
      `partman-basicfilesystems/init.d/kernelmodules_basicfilesystems`
      (2010-06-16)
    * (./) partman-auto recipes:
      make the default filesystem os-dependent
      when it has not been preseeded (ie. the *seen* flag is clear)
    * (./) force 4k blocks and 128 bytes inodes
    * (./) submit patches to bugs.debian.org
      ([[!debbug 586870]] and [[!debbug 586871]])
    * (./) rebuild with responsible version numbers and upload to my repository

* (./) **libparted** (2010-06-23)
    * (./) fix device paths ([[!debbug 586696]])
    * (./) fix crash on exit for part:* stores ([[!debbug 586682]])

* **hurd-udeb** (2010-06-23)
    * (./) rebuild with the hack suggested by youpi for qemu network configuration
    * (./) fix mount to accept `-o defaults`
    * cleanup, ask youpi to commit

* reloading the partition table (urgent)
    * unfortunately, *non-workable-aroud* without a reboot
    * (./) hurd-udeb now uses `part:N:device:X` for partition devices
      (2010-06-23)
    * it should drop-in a partman script
      to reload them through `settrans -ag /dev/[hs]d*`.
    * As an alternative,
      Mach has some support in the form of linux drivers,
      using it would require wiring the `BLKRRPART` ioctl,
      but so far my attempts at this have failed.

* **busybox**: submit upstream and to [[!debbug 323670]] (expected 2010-06-20)
    * (./) I have mentioned my work on the upstream mailing list,
    * (./) merge the recent changes from upstream,
      notably to the build system.
      (2010-06-23)
    * ask upstream for review and merge
    * backport any additional changes onto the debian branch
    * hijack [[!debbug 323670]] and submit my patches

* **base-installer**: 
  implement the arch-specific shell functions for kernel selection
  and devices in /target.

* **d-i/installer/build**: (expected 2010-06-19)
    * publish the patch I use
    * sort out the changes suitable for inclusion
      and ask youpi and/or debian-boot@l.d.o to commit them

**Milestone (expected... sometime soon):
installer kindof works, with documented manual intervention required**

* **partman**: further adjustments
    * hide irrelevant mount options? (sync, relatime)

* **busybox**: port 
    * fix stty/stat/ipcs on kFreeBSD,
    * generally port more stuff,
    * *ip* is needed for network configuration,
    * *mount*, *swaponoff* can be from hurd-udeb for now,
      though the kFreeBSD people will need them

* 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]

* investigate the /hurd/proc issue

* netcfg: make it work on Hurd somehow (port `busybox ip`?)

* 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

**Milestone (expected 2010-07-05):
installer works but it's still somewhat ugly and broken**

* call for testing and fix the bugs
* improve the [initrd situation](FIXME: link to bug-hurd post):
  ajust the ramdisk support in Mach,
  use tmpfs if possible,
  possibly add `module -nounzip` to grub2.
* mklibs{,-copy}:
  test library reduction,
  make it copy the ld.so -> ld.so.1 symlink.
* hurd console fonts
* better DHCP support during and after installation

**Milestone (expected 2010-07-19):
it works great and it's beautiful**

* test, fix, document
* support more types of installation images
* give a shot at the graphical installer if time permits
* see how [[zhengda]]'s work on DDE could be integrated
* etc..

### Mostly done

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

* genext2fs: patches submitted, [[!debbug 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*: [[!debbug 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)