summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--community/gsoc.mdwn9
-rw-r--r--community/gsoc/project_ideas/unionmount.mdwn55
-rw-r--r--community/weblogs/ArneBab/niches_for_the_hurd.mdwn24
-rw-r--r--community/weblogs/antrik/hurd-mission-statement.mdwn39
-rw-r--r--contributing.mdwn2
-rw-r--r--history.mdwn (renamed from hurd/history.mdwn)3
-rw-r--r--history/hurd-announce (renamed from hurd/history/hurd-announce)0
-rw-r--r--history/hurd-announce2 (renamed from hurd/history/hurd-announce2)0
-rw-r--r--history/hurd-flash (renamed from hurd/history/hurd-flash)0
-rw-r--r--history/hurd-flash10 (renamed from hurd/history/hurd-flash10)0
-rw-r--r--history/hurd-flash11 (renamed from hurd/history/hurd-flash11)0
-rw-r--r--history/hurd-flash12 (renamed from hurd/history/hurd-flash12)0
-rw-r--r--history/hurd-flash13 (renamed from hurd/history/hurd-flash13)0
-rw-r--r--history/hurd-flash14 (renamed from hurd/history/hurd-flash14)0
-rw-r--r--history/hurd-flash15 (renamed from hurd/history/hurd-flash15)0
-rw-r--r--history/hurd-flash2 (renamed from hurd/history/hurd-flash2)0
-rw-r--r--history/hurd-flash3 (renamed from hurd/history/hurd-flash3)0
-rw-r--r--history/hurd-flash4 (renamed from hurd/history/hurd-flash4)0
-rw-r--r--history/hurd-flash5 (renamed from hurd/history/hurd-flash5)0
-rw-r--r--history/hurd-flash6 (renamed from hurd/history/hurd-flash6)0
-rw-r--r--history/hurd-flash7 (renamed from hurd/history/hurd-flash7)0
-rw-r--r--history/hurd-flash8 (renamed from hurd/history/hurd-flash8)0
-rw-r--r--history/hurd-flash9 (renamed from hurd/history/hurd-flash9)0
-rw-r--r--history/port_to_l4.mdwn (renamed from hurd/history/port_to_l4.mdwn)14
-rw-r--r--hurd-l4.mdwn11
-rw-r--r--hurd/libnetfs.mdwn2
-rw-r--r--hurd/running.mdwn2
-rw-r--r--hurd/running/debian.mdwn28
-rw-r--r--hurd/running/debian/porting.mdwn3
-rw-r--r--hurd/running/distrib.mdwn9
-rw-r--r--hurd/running/gentoo.mdwn30
-rw-r--r--hurd/running/qemu.mdwn9
-rw-r--r--hurd/running/qemu/babhurd_image.mdwn67
-rw-r--r--hurd/status.mdwn39
-rw-r--r--hurd/translator.mdwn1
-rw-r--r--hurd/translator/tmpfs.mdwn11
-rw-r--r--hurd/translator/tmpfs/notes_bing.mdwn5
-rw-r--r--hurd/translator/tmpfs/notes_various.mdwn6
-rw-r--r--hurd/translator/unionfs.mdwn10
-rw-r--r--hurd/translator/unionmount.mdwn60
-rw-r--r--hurd/translator/wishlist_2.mdwn2
-rw-r--r--index.mdwn30
-rw-r--r--irc.mdwn2
-rw-r--r--local.css44
-rw-r--r--microkernel/mach/gnumach/ports/xen.mdwn2
-rw-r--r--news/2008-09-11.mdwn6
-rw-r--r--news/2009-04-20.mdwn12
-rw-r--r--open_issues/glibc_ptrace.mdwn47
-rw-r--r--open_issues/grub2.mdwn21
-rw-r--r--open_issues/grub_legacy.mdwn40
-rw-r--r--open_issues/grub_legacy/grub-install.patch23
-rw-r--r--open_issues/tinyproxy.mdwn18
-rw-r--r--rules/source_repositories.mdwn14
-rw-r--r--tag/open_issue_porting.mdwn7
-rw-r--r--user/scolobb.mdwn118
55 files changed, 709 insertions, 116 deletions
diff --git a/community/gsoc.mdwn b/community/gsoc.mdwn
index 2719d2ab..ce3b26fb 100644
--- a/community/gsoc.mdwn
+++ b/community/gsoc.mdwn
@@ -23,8 +23,13 @@ always open to introducing newcomers to the world of the GNU Hurd outside of
any Google Summer of whatever project. Just pick a task from the list pointed
to below on this page and get in touch with us!
-The GSoC 2009 student application time has come to an end -- we are now
-evaluating your applications.
+<!-- The GSoC 2009 student application time has come to an end -- we
+are now evaluating your applications. -->
+
+The applications have been evaluated and the following student has
+been accepted:
+
+ * [[Sergiu Ivanov|scolobb]]
# History
diff --git a/community/gsoc/project_ideas/unionmount.mdwn b/community/gsoc/project_ideas/unionmount.mdwn
index 47a3d85d..86ef96c7 100644
--- a/community/gsoc/project_ideas/unionmount.mdwn
+++ b/community/gsoc/project_ideas/unionmount.mdwn
@@ -5,56 +5,7 @@ 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]]."]]"""]]
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
-[[!meta title="Union Mounts"]]
-
-When setting a translator on Hurd -- similar to mounting a file system on UNIX
--- the new node(s) exported by the translator are obscuring the original node
-where the translator is set, and any nodes below it in the directory tree. The
-translator itself can access the underlying node (which is a very nice feature,
-as it allows translators presenting the contents of the node in a different
-format); but it's no longer accessible from the "outside".
-
-Plan9 has a feature where a file system can be mounted in union mode: the new
-file system doesn't obscure the mount point in this case, but instead the
-contents are combined. (This feature has also been under discussion in Linux
-for a couple of years now, under the label "VFS-based union mounts".)
-
-This kind of union mounts is generally useful, as it's sometimes more
-convenient than unioning existing filesystem locations with unionfs -- it's not
-necessary to mount a file system that is to be unioned at some external
-location first: just union-mount it directly at the target location.
-
-But union mounts also allow creating passive translator hierarchies: If there
-is a passive translator on a parent node, and further passive translators on
-child nodes, the union mount allows the child nodes with the further translator
-settings still to be visible after the parent translator has started.
-
-This could be useful for device nodes for example: let's say we have an
-ethernet multiplexer at /dev/veth. Now the virtual subnodes could all be
-directly under /dev, i.e. /dev/veth0, /dev/veth1 etc., and explicitely refer to
-the main /dev/veth node in the translator command line. It would be more
-elegant however to store the virtual nodes direcly below the main multiplexer
-node -- /dev/veth/0, /dev/veth/1 etc.
-
-There are two possible approaches how union mounts could be implemented in the
-Hurd. The first one is to let the various translators handle union mounts
-internally, i.e. let them present the underlying nodes to the clients in
-addition to the actual nodes they export themselfs. This probably can be
-implemented as some kind of extension to the existing netfs and diskfs
-libraries.
-
-The other possible apporach is less efficient and probably more tricky, but
-probably also more generic: create a special unionmount translator, which
-serves as a kind of proxy: setting the union-mounted translator on some
-internal node; and at the actual mount location, presenting a union of the
-nodes exported by this translator, and the nodes from the underlying file
-system.
-
-The goal of this project is implementing union mounts using either of the
-approaches described above. (Though it might be useful initially to prototype
-both for comparision.) The ethernet multiplexer shall serve as an example use
-case -- any changes necessary to allow using it with the union mount
-functionality are also to be considered part of the task.
+[[!meta redir=hurd/translator/unionmount]]
diff --git a/community/weblogs/ArneBab/niches_for_the_hurd.mdwn b/community/weblogs/ArneBab/niches_for_the_hurd.mdwn
index 8b6c4226..ff169b0a 100644
--- a/community/weblogs/ArneBab/niches_for_the_hurd.mdwn
+++ b/community/weblogs/ArneBab/niches_for_the_hurd.mdwn
@@ -112,7 +112,13 @@ monologue at the end... I really should put these ideas into my blog.)"*
Another example of features which would be easily possible with the Hurd:
-* media-player translator:
+* transparent ftp (already possible!):
+ - settrans -c ftp: /hurd/hostmux /hurd/ftpfs /
+ - ls ftp://ftp.gnu.org/
+ - # -> list the files on the FTP server.
+
+
+* media-player translator:
- settrans play /hurd/mediaplayer_play
- cp song1.ogg song2.ogg play
- # -> files get buffered and played.
@@ -246,8 +252,8 @@ Applications
A minor phase, which will surely be interleaved with the others: Making the ideas
tangible to turn them into ways how people can use the Hurd.
-"Hey, look, this is the Hurd. You can use it like this to do that which you can't do
-as well/easily/elegantly in any other way."
+*"Hey, look, this is the Hurd. You can use it like this to do that which you can't do
+as well/easily/elegantly in any other way."*
### Applications for private use
@@ -264,18 +270,18 @@ it's too hard.
From what I see, each direct cool application must be about as simple as
-$ qemu hurd-is-cool.img
-$ login root
-$ settrans cool /hurd/cool
+$ qemu hurd-is-cool.img
+$ login root
+$ settrans cool /hurd/cool
$ ls cool
One main focus in this example is: No command line parameters but the ones we
really need. No "-a", if the example is also cool without it.
No "--console" if it works otherwise.
-Especially no "qemu --cd livecd --hda hurd.img ..." - that one is great for
-specialists, but the goal here isn't to teach people better usage of qemu,
-but to show them that the Hurd is cool, and only that.
+Especially no *"qemu --cd livecd --hda hurd.img ..."* - that one is great for
+people who already know qemu or want to learn it, but the goal here isn't to teach people
+better usage of qemu, but to show them that the Hurd is cool, and only that.
All that interesting advanced stuff just gets newcomers confused.
diff --git a/community/weblogs/antrik/hurd-mission-statement.mdwn b/community/weblogs/antrik/hurd-mission-statement.mdwn
new file mode 100644
index 00000000..592e176a
--- /dev/null
+++ b/community/weblogs/antrik/hurd-mission-statement.mdwn
@@ -0,0 +1,39 @@
+For a while I have been thinking about the lack of a roadmap for the
+Hurd; but now I realized that we lack something even more fundamental: a
+simple mission statement -- i.e. saying where we want to go, rather
+than how we want to get there. I think many of the problems we have are
+directly or indirectly related to that.
+
+As we didn't have such a mission statement so far, the people currently
+involved have vastly different ideas about the mission, which of course
+makes it a bit hard to come up with a suitable one now. However, I
+managed to come up with something that I believe is generic enough so
+all contributors can subscribe to it:
+
+> *The mission of the Hurd project is: to create a general-purpose
+> kernel suitable for the GNU operating system, which is viable for
+> everyday use, and gives users and programs as much control over their
+> computing environment as possible.*
+
+*"Suitable for GNU"* in the first part implies a number of things. I
+explicitely mentioned *"general-purpose"*, because this an important
+feature that sets the Hurd apart from many other microkernel projects,
+but isn't immediately obvious.
+
+I didn't mention that it must be entirely free software, as this should
+be obvious to anyone familiar with GNU.
+
+Another thing I did not mention, because it's too controversial: how
+much UNIX do we need? I think that being suitable for GNU requires a
+pretty high degree of UNIX compatibility, and also that the default
+environment looks to the user more or less like UNIX. However, some
+people claimed in the past that GNU could do without UNIX -- the wording
+used here doesn't totally preclude such views.
+
+The second part also leaves a lot of slack: I for my part still believe
+that a Mach-based Hurd can be viable for everyday use; but those who
+think that a microkernel change is required, should be happy with this
+wording as well.
+
+The third part tries to express the major idea behind the Hurd design in
+the most compact and generic way possible.
diff --git a/contributing.mdwn b/contributing.mdwn
index 9e2396cf..a5b3a34e 100644
--- a/contributing.mdwn
+++ b/contributing.mdwn
@@ -41,7 +41,7 @@ For one there's the implementation of the *[[Hurd]] running on the
meant when people are talking about GNU/Hurd systems.
This system has mostly been designed and implemented
-[[in_the_'90s|hurd/history]]. It works and is usable.
+[[in the '90s|history]]. It works and is usable.
For example, these web pages are rendered on a [GNU/Hurd
system](http://www.bddebian.com/cgi-bin/uptime).
diff --git a/hurd/history.mdwn b/history.mdwn
index 18a1506f..927482d9 100644
--- a/hurd/history.mdwn
+++ b/history.mdwn
@@ -48,7 +48,8 @@ full functionality. Later we hope to have a modular emulator divided
into multiple processes. [Gnusletter, Jan. 1991].
</BLOCKQUOTE>
-RMS explains the relationship between the [[documentation/Hurd_and_Linux]], where he mentions
+RMS explains the relationship between [[the Hurd and
+Linux|hurd/documentation/hurd-and-linux]], where he mentions
that the FSF started developing the Hurd in 1990. As of [Gnusletter,
Nov. 1991], the Hurd (running on Mach) is GNU's official kernel.
diff --git a/hurd/history/hurd-announce b/history/hurd-announce
index 2f165ad8..2f165ad8 100644
--- a/hurd/history/hurd-announce
+++ b/history/hurd-announce
diff --git a/hurd/history/hurd-announce2 b/history/hurd-announce2
index dce41c43..dce41c43 100644
--- a/hurd/history/hurd-announce2
+++ b/history/hurd-announce2
diff --git a/hurd/history/hurd-flash b/history/hurd-flash
index d1bacc79..d1bacc79 100644
--- a/hurd/history/hurd-flash
+++ b/history/hurd-flash
diff --git a/hurd/history/hurd-flash10 b/history/hurd-flash10
index d6d5685b..d6d5685b 100644
--- a/hurd/history/hurd-flash10
+++ b/history/hurd-flash10
diff --git a/hurd/history/hurd-flash11 b/history/hurd-flash11
index 57851b01..57851b01 100644
--- a/hurd/history/hurd-flash11
+++ b/history/hurd-flash11
diff --git a/hurd/history/hurd-flash12 b/history/hurd-flash12
index 5be9c94e..5be9c94e 100644
--- a/hurd/history/hurd-flash12
+++ b/history/hurd-flash12
diff --git a/hurd/history/hurd-flash13 b/history/hurd-flash13
index a2de6bfd..a2de6bfd 100644
--- a/hurd/history/hurd-flash13
+++ b/history/hurd-flash13
diff --git a/hurd/history/hurd-flash14 b/history/hurd-flash14
index 2d67687a..2d67687a 100644
--- a/hurd/history/hurd-flash14
+++ b/history/hurd-flash14
diff --git a/hurd/history/hurd-flash15 b/history/hurd-flash15
index 0785ac59..0785ac59 100644
--- a/hurd/history/hurd-flash15
+++ b/history/hurd-flash15
diff --git a/hurd/history/hurd-flash2 b/history/hurd-flash2
index b1d4f66f..b1d4f66f 100644
--- a/hurd/history/hurd-flash2
+++ b/history/hurd-flash2
diff --git a/hurd/history/hurd-flash3 b/history/hurd-flash3
index 19a5f371..19a5f371 100644
--- a/hurd/history/hurd-flash3
+++ b/history/hurd-flash3
diff --git a/hurd/history/hurd-flash4 b/history/hurd-flash4
index 89ae9848..89ae9848 100644
--- a/hurd/history/hurd-flash4
+++ b/history/hurd-flash4
diff --git a/hurd/history/hurd-flash5 b/history/hurd-flash5
index 041a0ef7..041a0ef7 100644
--- a/hurd/history/hurd-flash5
+++ b/history/hurd-flash5
diff --git a/hurd/history/hurd-flash6 b/history/hurd-flash6
index e774714e..e774714e 100644
--- a/hurd/history/hurd-flash6
+++ b/history/hurd-flash6
diff --git a/hurd/history/hurd-flash7 b/history/hurd-flash7
index ce6e08d2..ce6e08d2 100644
--- a/hurd/history/hurd-flash7
+++ b/history/hurd-flash7
diff --git a/hurd/history/hurd-flash8 b/history/hurd-flash8
index 555186ec..555186ec 100644
--- a/hurd/history/hurd-flash8
+++ b/history/hurd-flash8
diff --git a/hurd/history/hurd-flash9 b/history/hurd-flash9
index 1ff32ba9..1ff32ba9 100644
--- a/hurd/history/hurd-flash9
+++ b/history/hurd-flash9
diff --git a/hurd/history/port_to_l4.mdwn b/history/port_to_l4.mdwn
index ec72def4..cdf048e6 100644
--- a/hurd/history/port_to_l4.mdwn
+++ b/history/port_to_l4.mdwn
@@ -21,20 +21,20 @@ in November 2000.
The project itself then was mostly lead by Marcus Brinkmann and Neal Walfield.
Even though there was progress -- see, for example, the
-[[QEMU_image_for_L4|running/qemu/image_for_l4]] -- this port never reached a
+[[QEMU image for L4|hurd/running/qemu/image for l4]] -- this port never reached a
releasable state. Eventually, a straight-forward port of the original Hurd's
design wasn't deemed feasible anymore by the developers, partly due to them not
cosidering L4 suitable for implementing a general-purpose operating system on
top of it, and because of deficiencies in the original Hurd's design, which
-they discovered along their way. Read the [[critique]] and a
-[[ng/position_paper]].
+they discovered along their way. Read the [[hurd/critique]] and a
+[[hurd/ng/position paper]].
By now, the development of Hurd/L4 has stopped. However, Neal Walfield moved
on to working on a newly designed kernel called [[microkernel/viengoos]].
Over the years, a lot of discussion have been held on the
[[mailing lists/l4-hurd]] mailing list, which today is still the right place
-for [[next-generation_Hurd|ng]] discussions.
+for [[next-generation Hurd|hurd/ng]] discussions.
Development of Hurd/L4 was done in the `hurd-l4` module of the Hurd CVS
repository. The `doc` directory contains a design document that is worth
@@ -83,10 +83,10 @@ explains:
> rejected some parts of the Hurd's design. The
> [[open issues/resource management problems]] were
> what prompted me to look at L4. Also, some of the problems with
-> [[translator]]s were already well-known to us. (For a more detailed
-> description of the problems we have identified, see our [[critique]] in the
+> [[hurd/translator]]s were already well-known to us. (For a more detailed
+> description of the problems we have identified, see our [[hurd/critique]] in the
> 2007 July's SIGOPS OSR. We have also written a forward-looking
-> [[ng/position_paper]].)
+> [[hurd/ng/position paper]].)
> We visited Jonathan Shapiro at Hopkins in January 2006. This resulted in a
> number of discussions, some quite influential, and not always in a way which
diff --git a/hurd-l4.mdwn b/hurd-l4.mdwn
new file mode 100644
index 00000000..5ad3c3d4
--- /dev/null
+++ b/hurd-l4.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2009 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]]."]]"""]]
+
+[[!meta redir=history/port_to_l4]]
diff --git a/hurd/libnetfs.mdwn b/hurd/libnetfs.mdwn
index fef6a8ef..a2bf47ee 100644
--- a/hurd/libnetfs.mdwn
+++ b/hurd/libnetfs.mdwn
@@ -148,7 +148,7 @@ result. Therefore, it is not quite right to perceive *libnetfs* nodes
as filesystem nodes. Instead, the focus of attention should stay upon
light nodes.
-##How It Wors: A More Verbose Description
+##How It Works: A More Verbose Description
At first let us see how the a *libnetfs*-based translator responds to
lookup requests. At the beginning the *netfs_attempt_lookup* callback
diff --git a/hurd/running.mdwn b/hurd/running.mdwn
index 95dc024a..470b5f0b 100644
--- a/hurd/running.mdwn
+++ b/hurd/running.mdwn
@@ -8,6 +8,8 @@ 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]]."]]"""]]
+There are several different ways to run a GNU/Hurd system:
+
* [[Distrib]] - Distributions based on the Hurd
* [[microkernel/mach/gnumach/ports/Xen]] - In Xen
* [[Live_CD]]
diff --git a/hurd/running/debian.mdwn b/hurd/running/debian.mdwn
index 82d84bbe..97d35bd7 100644
--- a/hurd/running/debian.mdwn
+++ b/hurd/running/debian.mdwn
@@ -1,16 +1,28 @@
[[!meta title="Debian GNU/Hurd"]]
-- Debian [[FAQ]] -- Frequently Asked Questions
-- [[After_install]] -- Do this to get networking, new console and X
-- [Presentation](http://people.debian.org/~mbanck/talks/hurd_lt2004/html/)
- *Debian GNU/Hurd* by [[MichaelBanck]], LinuxTag 2004 Karlsruhe
-- [[Status]]
-- [[Porting]] -- Helping with porting packages
- * [[Patch_submission]] -- How to submit patches for build failures
+### Debian Resources
- Official page about the Debian GNU/Hurd port: [Debian GNU/Hurd](http://www.debian.org/ports/hurd/)
+
+- Debian [[FAQ]] -- Frequently Asked Questions
+
+### Installing
+
- [Installation Instructions](http://www.debian.org/ports/hurd/hurd-install)
- [Upgrading K11 or K14 based systems to
unstable](http://lists.debian.org/debian-hurd/2007/09/msg00007.html)
-- [Archive Qualification](http://wiki.debian.org/ArchiveQualification/hurd-i386)
+- [[After_install]] -- Do this to get networking, new console and X
+
+### Contributing
+
+- [[Porting]] -- Helping with porting packages
+ * [[Patch_submission]] -- How to submit patches for build failures
- [[Creating_image_tarball]]
+
+### Additional Information
+
+- [Presentation](http://people.debian.org/~mbanck/talks/hurd_lt2004/html/)
+ *Debian GNU/Hurd* by [[MichaelBanck]], LinuxTag 2004 Karlsruhe
+- [[Status]]
+- [Archive Qualification](http://wiki.debian.org/ArchiveQualification/hurd-i386)
+
diff --git a/hurd/running/debian/porting.mdwn b/hurd/running/debian/porting.mdwn
index 0882bea3..aa044570 100644
--- a/hurd/running/debian/porting.mdwn
+++ b/hurd/running/debian/porting.mdwn
@@ -24,6 +24,9 @@ the list below or in the [Alioth task
tracker](http://alioth.debian.org/pm/task.php?group_project_id=34&group_id=30628&func=browse)
so other people do not do duplicated work.
+Also, the [[community/HurdFr]] guys maintain their own [liste des travaux de
+packaging](http://wiki.hurdfr.org/index.php/Liste_des_travaux_de_packaging).
+
Aside from the Alioth task tracker, here is a list of some packages (the
important ones, as they're, e.g., blocking other packages from being built)
that need someone to work on them.
diff --git a/hurd/running/distrib.mdwn b/hurd/running/distrib.mdwn
index bbf0a380..229e2d8f 100644
--- a/hurd/running/distrib.mdwn
+++ b/hurd/running/distrib.mdwn
@@ -1,8 +1,15 @@
+Working distributions of GNU/Hurd:
+
* [[Debian]]
+
+GNU/Hurd distributions in early stages of development:
+
* [[Gentoo]]
-* [[Bee]]
* [[GNU]]
+<!-- Bee GNU/Hurd doesn't seem to exist anymore.
+* [[Bee]]
+-->
# Issues
diff --git a/hurd/running/gentoo.mdwn b/hurd/running/gentoo.mdwn
index 89d5d9cf..2a979f41 100644
--- a/hurd/running/gentoo.mdwn
+++ b/hurd/running/gentoo.mdwn
@@ -3,6 +3,32 @@
Unofficial port to Gentoo and the portage system. It was
[announced](http://forums.gentoo.org/viewtopic.php?t=41939&amp;postdays=0&amp;postorder=asc&amp;start=0)
March 17, 2003 in the Gentoo forums. There's a #gentoo-irc channel similar to
-[[IRC]]. At present (May 2005), there's no activity and Eric Olinger has not
-the time to maintain this distri.
+[[IRC]].
+### State of the GGH, 2009-05
+
+> *Did you work a bit more on the Gentoo GNU/Hurd?*
+
+I tried to resume my work 3-4 months ago but I found some problems with
+portage and python functions not implemented on Hurd so I stopped. I think
+that back in 2006 with portage 2.0.54 those functiones weren't necessary.
+
+> *And do you have some information which might help others advance what you began?*
+
+I just have all the ebuilds and binary packages I merged online on
+[http://www.mundurat.net/ggh/portage](http://www.mundurat.net/ggh/portage).
+
+To continue my work just take a Debian/Hurd and install portage by hand.
+
+Once there take the profile and start bootstraping portage and all the
+ebuild it needs (patch, python, bzip2...).
+
+The major problems are:
+
+- combine the perfect gcc/binutils/glibc/gnumach/hurd and to be able to boot
+- lack of development on gnumach/hurd and current 'degraded' status.
+
+I don't think I can help much right now, but if you have any other
+question just write me.
+
+MiKeL
diff --git a/hurd/running/qemu.mdwn b/hurd/running/qemu.mdwn
index 661084d3..a059f3b1 100644
--- a/hurd/running/qemu.mdwn
+++ b/hurd/running/qemu.mdwn
@@ -4,8 +4,9 @@ This page discusses things for [[Unix]] systems, there is a separate page for
# Readily Available Images
-[Official Debian GNU/Hurd QEMU
-image](http://ftp.debian-ports.org/debian-cd/K16/debian-hurd-k16-qemu.img.tar.gz)
+To try out the Hurd you can use the image of the Debian GNU/Hurd:
+
+* [Official Debian GNU/Hurd QEMU image](http://ftp.debian-ports.org/debian-cd/K16/debian-hurd-k16-qemu.img.tar.gz)
(!) Note that the following are unofficial images: they have been prepared by
volunteers and may not have been tested extensively.
@@ -15,7 +16,9 @@ volunteers and may not have been tested extensively.
* [Disk image](http://draketo.de/dateien/hurd/bab-hurd-qemu-2008-10-29.img.tar.bz2)
with a short intro on translators. Just start it with 'qemu *disk_image.img*'.
- It should work without any of the configuration below. when you use it, please [tell me your experience with it](http://draketo.de/contact)! - [[community/weblogs/ArneBab]]
+ It should work without any of the configuration below. If you want to know what you can do
+ with it, please have a look at [[its_wikipage|hurd/running/qemu/babhurd_image]]. And when
+ you use it, please [tell me your experience with it](http://draketo.de/contact)! - [[community/weblogs/ArneBab]]
<!--* [Announcement](http://lists.debian.org/debian-hurd/2007/09/msg00000.html) of another image. - The link in the email doesn't work anymore, too old. //-->
diff --git a/hurd/running/qemu/babhurd_image.mdwn b/hurd/running/qemu/babhurd_image.mdwn
new file mode 100644
index 00000000..c0952fcf
--- /dev/null
+++ b/hurd/running/qemu/babhurd_image.mdwn
@@ -0,0 +1,67 @@
+What this little Hurd image can do
+----------------------------------
+
+### About this text
+
+This is the README file accompanying a
+[disk\_image](http://draketo.de/dateien/hurd/bab-hurd-qemu-2008-10-29.img.tar.bz2) for
+[[running_the_GNU/Hurd_via_qemu|hurd/running/qemu]]. To run the disk image, just use *'qemu
+disk_image.img'*.
+
+You can find the custom *.bashrc* used to tell the user about it as well as this text itself
+in the Mercurial repository [hurd_intro](http://bitbucket.org/ArneBab/hurd_intro).
+
+### Intro
+
+The Hurd has some unique capabilities, and we created this simple image
+to enable you to easily try two of them:
+
+* The simplest of translators: Hello World!
+* Transparent FTP
+
+### Hello World
+
+To try out the simplest of translators, you can go the following simple steps:
+
+ $ cat hello
+ $ setrans hello /hurd/hello
+ $ cat hello
+ "Hello World!"
+ $ settrans -g hello
+ $ cat hello
+
+What you do with these steps is first verifying that the file "hello" is empty.
+
+Then you setup the translator /hurd/hello in the file/node hello.
+
+After that you check the contents of the file, and the translator returns "Hello World!".
+
+To finish it, you tell the translator to go away from the file "hello" via "settrans -g hello" and verify that now the file is empty again.
+
+### Transparent FTP
+
+We already setup a a transparent FTP translator for you at /ftp:
+
+With it you can easily access public FTP via the file system, for example the one from the GNU project:
+
+ $ ls /ftp://ftp.gnu.org/
+
+But you can also do this very easily yourself:
+
+ $ # Setup the translator on the node ftp:
+ $ settrans -c ftp: /hurd/hostmux /hurd/ftpfs /
+
+and you can access FTP sites via the pseudo-directory ftp:, for example with
+
+ $ ls ftp://ftp.gnu.org/
+
+What you do here is setting up the translator /hurd/hostmux on ftp: and passing it the translator /hurd/ftpfs to use for resolving accesses as well as / as additional path component.
+
+
+These were only two basic usages of translators on the Hurd. We're sure you'll quickly see many other ways to use this.
+
+As a last comment: You can setup a translator on any node you have access to, so you can for example mount any filesystems as normal user.
+
+You might currently be logged in as root, but you could just as well do the same as normal user.
+
+Why don't you try it out?
diff --git a/hurd/status.mdwn b/hurd/status.mdwn
index 1122b703..a22802ff 100644
--- a/hurd/status.mdwn
+++ b/hurd/status.mdwn
@@ -1,5 +1,5 @@
-[[!meta copyright="Copyright © 2001, 2002, 2007, 2008 Free Software Foundation,
-Inc."]]
+[[!meta copyright="Copyright © 2001, 2002, 2007, 2008, 2009 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
@@ -61,3 +61,38 @@ well would be unfortunate. Moreover, it would lessen the
possibility that they would want to try the Hurd again in the future.
+## Usability Reports
+
+### Olaf Buddenhagen, 2009-06-09
+
+> I have been using the Hurd for most of my everyday work for some two
+> years now. Most of the time it's pretty OK, but occasionally programs
+> crash, or the screen session dies, or even the whole system. Also,
+> various programs simply don't work at all, or don't work in certain
+> situations.
+>
+> While I have learned to work around many of these issues, I don't
+> believe I would be able to use it as my primary system, without having a
+> GNU/Linux system running in parallel, as a fallback for all the stuff
+> that doesn't work on the Hurd.
+>
+> [...]
+>
+> One particular problem for desktop use is the fact that while X does
+> work, it works very poorly -- it's not only slow and jerky all the time,
+> but also tends to lock up completely. (At least with the local socket
+> transport... Haven't tried whether forcing TCP works better.)
+>
+> Note that while many of the stability problems are simply bugs to fix,
+> the system will still be very fragile in the absence of these -- a
+> simple port leak is sufficient to kill it within seconds. This is
+> something that can't be easily solved. Properly fixing this will require
+> a sound resource accounting framework, i.e. very fundamental changes to
+> the system... Though I tend to believe that it could be improved at
+> least partially, at the expense of flexibility, by enforcing certain
+> fixed limits on users, processes etc. like other UNIX systems do.
+>
+> [...]
+>
+> [But] unlike a few years back [...] the system is stable enough under
+> load nowadays [...].
diff --git a/hurd/translator.mdwn b/hurd/translator.mdwn
index 8f2f07b4..5c14cfa9 100644
--- a/hurd/translator.mdwn
+++ b/hurd/translator.mdwn
@@ -70,6 +70,7 @@ available.
* [[cvsfs]]
* [[tmpfs]]
* [[procfs]]
+* [[unionmount]]
* ...
diff --git a/hurd/translator/tmpfs.mdwn b/hurd/translator/tmpfs.mdwn
index abd47c96..0179ad6c 100644
--- a/hurd/translator/tmpfs.mdwn
+++ b/hurd/translator/tmpfs.mdwn
@@ -1,4 +1,5 @@
-[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008, 2009 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
@@ -13,7 +14,13 @@ is included in the section entitled
It is based on [[libdiskfs]].
-It's not working correctly at the moment.
+Even though there are other possibilities of creating a
+[[libstore/examples/ramdisk]] and running a regular, for example, [[`ext2` file
+system|ext2fs]] on it, having a real `tmpfs` is better, as it need not deal
+with the additional block-level indirection layer that `ext2` (or any other
+disk-based file system) imposes.
+
+However, `tmpfs` is not working correctly at the moment:
[[!inline
pages="hurd/translator/tmpfs/*"
diff --git a/hurd/translator/tmpfs/notes_bing.mdwn b/hurd/translator/tmpfs/notes_bing.mdwn
index b36fc1aa..fa3eeac2 100644
--- a/hurd/translator/tmpfs/notes_bing.mdwn
+++ b/hurd/translator/tmpfs/notes_bing.mdwn
@@ -1,4 +1,5 @@
-[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008, 2009 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
@@ -8,6 +9,8 @@ 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]]."]]"""]]
+[[!tag open_issue_hurd]]
+
1. to run tmpfs as a regular user, /servers/default-pager must be executable by
that user. by default it seems to be set to read/write.
diff --git a/hurd/translator/tmpfs/notes_various.mdwn b/hurd/translator/tmpfs/notes_various.mdwn
index 3ec649e5..01dc87d2 100644
--- a/hurd/translator/tmpfs/notes_various.mdwn
+++ b/hurd/translator/tmpfs/notes_various.mdwn
@@ -1,5 +1,5 @@
-[[!meta copyright="Copyright © 2005, 2006, 2007, 2008 Free Software Foundation,
-Inc."]]
+[[!meta copyright="Copyright © 2005, 2006, 2007, 2008, 2009 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
@@ -9,6 +9,8 @@ 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]]."]]"""]]
+[[!tag open_issue_hurd]]
+
<antrik> hde: what's the status on tmpfs?
<hde> Broke
<hde> k0ro traced the errors like the assert show above to a pager problem.
diff --git a/hurd/translator/unionfs.mdwn b/hurd/translator/unionfs.mdwn
index 8a29d0f7..6f845102 100644
--- a/hurd/translator/unionfs.mdwn
+++ b/hurd/translator/unionfs.mdwn
@@ -1,4 +1,4 @@
-[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008, 2009 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
@@ -15,3 +15,11 @@ is included in the section entitled
# `stowfs`
... is a special mode of `unionfs`.
+
+# See Also
+
+ * [[unionmount]]
+
+# External Links
+
+ * [*Unioning file systems for Linux*](http://valerieaurora.org/union/)
diff --git a/hurd/translator/unionmount.mdwn b/hurd/translator/unionmount.mdwn
new file mode 100644
index 00000000..47a3d85d
--- /dev/null
+++ b/hurd/translator/unionmount.mdwn
@@ -0,0 +1,60 @@
+[[!meta copyright="Copyright © 2009 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]]."]]"""]]
+
+[[!meta title="Union Mounts"]]
+
+When setting a translator on Hurd -- similar to mounting a file system on UNIX
+-- the new node(s) exported by the translator are obscuring the original node
+where the translator is set, and any nodes below it in the directory tree. The
+translator itself can access the underlying node (which is a very nice feature,
+as it allows translators presenting the contents of the node in a different
+format); but it's no longer accessible from the "outside".
+
+Plan9 has a feature where a file system can be mounted in union mode: the new
+file system doesn't obscure the mount point in this case, but instead the
+contents are combined. (This feature has also been under discussion in Linux
+for a couple of years now, under the label "VFS-based union mounts".)
+
+This kind of union mounts is generally useful, as it's sometimes more
+convenient than unioning existing filesystem locations with unionfs -- it's not
+necessary to mount a file system that is to be unioned at some external
+location first: just union-mount it directly at the target location.
+
+But union mounts also allow creating passive translator hierarchies: If there
+is a passive translator on a parent node, and further passive translators on
+child nodes, the union mount allows the child nodes with the further translator
+settings still to be visible after the parent translator has started.
+
+This could be useful for device nodes for example: let's say we have an
+ethernet multiplexer at /dev/veth. Now the virtual subnodes could all be
+directly under /dev, i.e. /dev/veth0, /dev/veth1 etc., and explicitely refer to
+the main /dev/veth node in the translator command line. It would be more
+elegant however to store the virtual nodes direcly below the main multiplexer
+node -- /dev/veth/0, /dev/veth/1 etc.
+
+There are two possible approaches how union mounts could be implemented in the
+Hurd. The first one is to let the various translators handle union mounts
+internally, i.e. let them present the underlying nodes to the clients in
+addition to the actual nodes they export themselfs. This probably can be
+implemented as some kind of extension to the existing netfs and diskfs
+libraries.
+
+The other possible apporach is less efficient and probably more tricky, but
+probably also more generic: create a special unionmount translator, which
+serves as a kind of proxy: setting the union-mounted translator on some
+internal node; and at the actual mount location, presenting a union of the
+nodes exported by this translator, and the nodes from the underlying file
+system.
+
+The goal of this project is implementing union mounts using either of the
+approaches described above. (Though it might be useful initially to prototype
+both for comparision.) The ethernet multiplexer shall serve as an example use
+case -- any changes necessary to allow using it with the union mount
+functionality are also to be considered part of the task.
diff --git a/hurd/translator/wishlist_2.mdwn b/hurd/translator/wishlist_2.mdwn
index 3ea68999..a927db55 100644
--- a/hurd/translator/wishlist_2.mdwn
+++ b/hurd/translator/wishlist_2.mdwn
@@ -76,6 +76,8 @@ Here's an [idea](http://www.circlemud.org/~jelson/software/fusd/docs/node13.html
Am I off my rocker, or does an IMAP/POP translator sound like a good idea? It would make your remote mail servers look like local ones. Or what about a translator that makes a mbox format mail spool look like a directory. Can anyone think of a good use for an SMTP translator?
+*Definitely: Copy my email in there to send it.* -- [[ArneBab|community/weblogs/ArneBab]]
+
## <a name="UUEncode"> </a> UUEncode
How about a UUEncode translator for those places you can only store ASCII. Combine this with a NNTP translator and store your data in someone's Usenet archive. Or since, (as far as I know), there are no size limitations on file names in the Hurd, why not have a filesystem translator whose underlying store is a file name. (Now ls becomes cat).
diff --git a/index.mdwn b/index.mdwn
index 960300c8..6129d4ef 100644
--- a/index.mdwn
+++ b/index.mdwn
@@ -9,12 +9,25 @@ 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]]."]]"""]]
-**What Is the GNU Hurd?**
-The GNU Hurd is the GNU project's replacement for the Unix kernel.
-The Hurd is a collection of servers that run on the Mach microkernel
+<div id="statements">
+<div id="what-is">
+<p class="statement-title">What is the GNU Hurd?</p>
+<p>The GNU Hurd is the GNU project's replacement for the Unix kernel.
+It is a collection of servers that run on the Mach microkernel
to implement file systems, network protocols, file access control, and
other features that are implemented by the Unix kernel or similar
-kernels (such as Linux). *[[More_detailed.|hurd/what_is_the_gnu_hurd]]*
+kernels (such as Linux).
+<em>[[More_detailed|hurd/what_is_the_gnu_hurd]].</em></p>
+</div>
+<div id="mission">
+<p class="statement-title">What is the mission of the GNU Hurd project?</p>
+<p>Our mission is to create a general-purpose kernel suitable
+for the GNU operating system, which is viable for everyday use,
+and gives users and programs as much control over their
+computing environment as possible.
+<em>[[Our mission explained|community/weblogs/antrik/hurd-mission-statement]].</em></p>
+</div>
+</div>
---
@@ -73,10 +86,15 @@ The most functional distribution of the Hurd is the one provided by Debian.
Find more information about it at the
[Debian GNU/Hurd website](http://www.debian.org/ports/hurd/hurd-install).
-There are [[various_possibilities|hurd/running]] of running a GNU/Hurd system.
+Along with it there are [[various_ways|hurd/running]] to run a GNU/Hurd system.
+Three of them are
+
+* installing a [[GNU/Hurd_distribution|hurd/running/distrib]],
+* running it [[in_Xen|microkernel/mach/gnumach/ports/xen]] and
+* starting a [[Hurd_qemu_image|hurd/running/qemu]] or [[Hurd_LiveCD|hurd/running/live_cd/]].
And these web pages are a living proof of the usability of the Hurd, as they
-are rendered on a Debian GNU/Hurd system.
+are rendered on a [[Debian_GNU/Hurd|hurd/running/debian]] system.
## Current Status
diff --git a/irc.mdwn b/irc.mdwn
index 9d73311d..5d562786 100644
--- a/irc.mdwn
+++ b/irc.mdwn
@@ -53,7 +53,7 @@ to always greet the channel when you enter and before leave.
Starting in early 2008, there have been regular IRC meetings held between the
(now former) [[community/GSoC]] students and their mentors. These continue to
take place even that the [[Google_Summer_of_Code_2008|community/gsoc/2008]] is
-over, and still take place, **every Friday at 19:00 UTC in the `#hurd`
+over, and still take place, currently **every Tuesday and Friday at 12:00 UTC in the `#hurd`
channel**. Of course, the meetings are not only for (former) GSoC students and
mentors, but open to any interested party. So, everyone, take your chance to
chat with GNU Hurd developers!
diff --git a/local.css b/local.css
index 97f12a64..49930eb4 100644
--- a/local.css
+++ b/local.css
@@ -192,7 +192,7 @@ a:hover
.newsitem
{
- border: 1px solid black;
+ border: 1px solid grey;
overflow: auto;
}
.newsitem .newsitemheader .header
@@ -200,8 +200,8 @@ a:hover
max-width: 30%;
float: left;
margin-right: 1em;
- border-bottom: 1px solid black;
- border-right: 1px solid black;
+ border-bottom: 1px solid grey;
+ border-right: 1px solid grey;
}
.newsitem .header,
.newsitem .author
@@ -216,9 +216,15 @@ a:hover
.newsitem .actions ul
{
border-bottom-style: none;
- padding: 0.5em 0;
+ padding: 0.5em 0em;
line-height: 1;
}
+.newsitemcontent
+{
+ padding-left: 0.2em;
+ padding-top: 0.1em;
+
+}
.newsitemcontent p
{
margin: 0.3em;
@@ -251,3 +257,33 @@ a:hover
border-width: thin;
border-style: dotted;
}
+
+#statements
+{
+ display: table;
+}
+.statement-title
+{
+ text-align: center;
+ font-weight: bold;
+}
+#what-is
+{
+ display: table-cell;
+ width: 50%;
+ vertical-align: top;
+ text-align: justify;
+ padding-right: 1ex;
+ padding-top: 0.3em;
+ padding-bottom: 0.3em;
+}
+
+#mission
+{
+ display: table-cell;
+ vertical-align: top;
+ text-align: justify;
+ padding-left: 1em;
+ padding-top: 0.3em;
+ padding-bottom: 0.3em;
+}
diff --git a/microkernel/mach/gnumach/ports/xen.mdwn b/microkernel/mach/gnumach/ports/xen.mdwn
index a4c27c6a..c544fd57 100644
--- a/microkernel/mach/gnumach/ports/xen.mdwn
+++ b/microkernel/mach/gnumach/ports/xen.mdwn
@@ -22,7 +22,7 @@ You can either get binaries at <http://youpibouh.thefreecat.org/hurd-xen/> or bu
## GNU/Hurd system
-/!\ You need an already installed GNU/Hurd system.
+/!\ You need an already installed [[GNU/Hurd_system|hurd/running]].
If you have a free partition, you can fdisk to type 0x83, create a filesystem using:
diff --git a/news/2008-09-11.mdwn b/news/2008-09-11.mdwn
index 8dc39924..7d25e5a6 100644
--- a/news/2008-09-11.mdwn
+++ b/news/2008-09-11.mdwn
@@ -8,6 +8,6 @@ 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]]."]]"""]]
-Please see [[the_community/gsoc_page|community/gsoc]] for information about how
-our **Google Summer of Code 2008 participation** worked out. **Congratulations
-to both students and mentors!**
+All five students who worked on the Hurd during the **Google Summer of Code 2008** succeeded
+in their projects. For more information please see [[the_community/gsoc_page|community/gsoc]].
+**Congratulations to both students and mentors!**
diff --git a/news/2009-04-20.mdwn b/news/2009-04-20.mdwn
new file mode 100644
index 00000000..69831cca
--- /dev/null
+++ b/news/2009-04-20.mdwn
@@ -0,0 +1,12 @@
+[[!meta copyright="Copyright © 2009 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]]."]]"""]]
+
+Sergiu Ivanov will be working on [[unionmount_translators|user/scolobb]] during
+the **Google Summer of Code 2009**.
diff --git a/open_issues/glibc_ptrace.mdwn b/open_issues/glibc_ptrace.mdwn
new file mode 100644
index 00000000..b4c529d7
--- /dev/null
+++ b/open_issues/glibc_ptrace.mdwn
@@ -0,0 +1,47 @@
+[[!meta copyright="Copyright © 2009 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]]."]]"""]]
+
+[[!meta title="glibc: ptrace"]]
+
+[[!tag open_issue_glibc]]
+
+`ptrace` has some issues (`sysdeps/mach/hurd/ptrace.c`).
+
+ * Our implementation (and the generic one in `misc/ptrace.c`) differ
+ from the Linux one (`sysdeps/unix/sysv/linux/ptrace.c`)
+ w.r.t. handling of...
+
+ * the third argument: `int data` vs. `void *data`;
+
+ * `void *addr2` -- Linux doesn't have this, but we provide some
+ additional functionalty using this;
+
+ * function declaration: Linux has **`long`** `int ptrace (enum
+ __ptrace_request __request, ...)` **`__THROW`**, we have `int ptrace
+ (enum __ptrace_request __request, ...)`;
+
+ * interface do differ, e.g., Linux' `PTRACE_GETREGS` uses `void
+ *data`, we use `void *addr` for returning the struct, and in
+ Linux this is a `struct user_regs_struct` from `linux/user.h`,
+ and for us it is a `struct i386_thread_state` from
+ `mach/i386/thread_status.h`;
+
+ * Linux probides some functionality that we don't provide, e.g.,
+ `PTRACE_SINGLESTEP`.
+
+ * Some parts are wrongly implemented, e.g., `PTRACE_GETREGS` and
+ `PTRACE_SETREGS` both do the same thing.
+
+ * `return` values are wrong, e.g., `return EOPNOTSUPP` should instead
+ set `errno = EOPNOTSUPP` and `return -1` in a few places (but not
+ with the three `PTRACE_PEEK*` requests.
+
+Also consider the `sysdeps/generic/sys/ptrace.h` and
+`sysdeps/unix/sysv/linux/sys/ptrace.h` files.
diff --git a/open_issues/grub2.mdwn b/open_issues/grub2.mdwn
new file mode 100644
index 00000000..235950a4
--- /dev/null
+++ b/open_issues/grub2.mdwn
@@ -0,0 +1,21 @@
+[[!meta copyright="Copyright © 2009 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]]."]]"""]]
+
+[[!meta title="GRUB2"]]
+
+[[!tag open_issue_porting]]
+
+Just like [[GRUB (legacy)|grub_legacy]], GRUB2 needs to be ported for being
+installable when attempted to be installed *from* GNU/Hurd systems:
+
+ $ sudo grub-probe --target=device /boot/grub
+ grub-probe: error: cannot find a device for /boot/grub.
+
+Etc.
diff --git a/open_issues/grub_legacy.mdwn b/open_issues/grub_legacy.mdwn
new file mode 100644
index 00000000..cb69d10b
--- /dev/null
+++ b/open_issues/grub_legacy.mdwn
@@ -0,0 +1,40 @@
+[[!meta copyright="Copyright © 2005, 2009 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]]."]]"""]]
+
+[[!meta title="GRUB (legacy)"]]
+
+[[!tag open_issue_porting]]
+
+Even though it is customarily used *for* booting GNU/Hurd systems, [[GRUB]],
+specifically GRUB legacy (which is still in wide-spread use, despite that
+rather depricative nickname), has never been ported to be installable when
+attempted to be installed *from* GNU/Hurd systems:
+
+ # grub-install \(hd0\)
+ df: Warning: cannot read table of mounted filesystems
+ df: Warning: cannot read table of mounted filesystems
+ Could not find device for /boot: Not found or not a block device.
+
+There is a patch, [[grub-install.patch]], to fix that.
+
+
+`grub-install`, however, still fails while invoking `grub`:
+
+ # grub-install \(hd0\)
+ The file /boot/grub/stage1 not read correctly.
+
+ # grub
+ [...]
+ grub> dump (hd0,0)/boot/grub/stage1 /tmp/grub_stage1
+
+ Error 18: Selected cylinder exceeds maximum supported by BIOS
+
+
+The successor, [[GRUB2]], also needs to be ported.
diff --git a/open_issues/grub_legacy/grub-install.patch b/open_issues/grub_legacy/grub-install.patch
new file mode 100644
index 00000000..3f6341b4
--- /dev/null
+++ b/open_issues/grub_legacy/grub-install.patch
@@ -0,0 +1,23 @@
+2005-08-23 Thomas Schwinge <tschwinge@gnu.org>
+
+ * grub-install (find_device): Rough port for GNU/Hurd.
+
+
+--- grub-install.orig 2005-08-23 16:56:02.000000000 +0200
++++ grub-install 2005-08-23 17:01:55.000000000 +0200
+@@ -263,7 +263,14 @@
+ find_device () {
+ # For now, this uses the program `df' to get the device name, but is
+ # this really portable?
+- tmp_fname=`df $1/ | sed -n 's%.*\(/dev/[^ ]*\).*%\1%p'`
++ # No. (Not even on GNU/Linux.) - Thomas Schwinge
++
++ case $host_os in
++ gnu*) # TODO: What about using multiple devices?
++ tmp_fname=`fsysopts $1/ | sed -n 's%.*device:\([^ ]*\).*%/dev/\1%p'`;;
++ *)
++ tmp_fname=`df $1/ | sed -n 's%.*\(/dev/[^ ]*\).*%\1%p'`;;
++ esac
+
+ if test -z "$tmp_fname"; then
+ echo "Could not find device for $1" 2>&1
diff --git a/open_issues/tinyproxy.mdwn b/open_issues/tinyproxy.mdwn
new file mode 100644
index 00000000..9a4a0cfb
--- /dev/null
+++ b/open_issues/tinyproxy.mdwn
@@ -0,0 +1,18 @@
+[[!meta copyright="Copyright © 2009 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]]."]]"""]]
+
+[[!meta title="Problem with using tinyproxy for tunneling HTTPS"]]
+
+`tinyproxy` works fine for HTTP connections, but fails to proxy HTTPS ones:
+
+ ERROR Jun 12 14:58:51 [20676]: relay_connection: select() error "Interrupted system call". Closing connection (client_fd:7, server_fd:8)
+
+This is supposedly due to the already known select bug, which is a [[!taglink
+open_issue_glibc]].
diff --git a/rules/source_repositories.mdwn b/rules/source_repositories.mdwn
index 2c2092f8..6240b422 100644
--- a/rules/source_repositories.mdwn
+++ b/rules/source_repositories.mdwn
@@ -51,6 +51,20 @@ Examples:
* `master-viengoos-on-bare-metal` -- port to Viengoos running on bare
metal; branched off of `master-viengoos` at some point
+ * unionfs
+
+ * `master` -- the mainline branch
+ * `master-unionmount` -- develop `unionmount` based on `unionfs`' master
+ branch
+
+To give a concrete example, the latter one was created like this:
+
+ $ git clone --no-checkout ssh://git.savannah.gnu.org/srv/git/hurd/unionfs.git
+ $ cd unionfs/
+ $ git checkout -b master-unionmount origin/master
+ $ ...
+ $ git push master-unionmount
+
## Merging
Merging between Git branches is trivial, at least as long as no conflicts
diff --git a/tag/open_issue_porting.mdwn b/tag/open_issue_porting.mdwn
index 5ab1e2c0..f89badcb 100644
--- a/tag/open_issue_porting.mdwn
+++ b/tag/open_issue_porting.mdwn
@@ -10,7 +10,12 @@ License|/fdl]]."]]"""]]
[[!meta title=open_issue_porting]]
- * List of [[Debian packages that need porting|hurd/running/debian/porting]]
+Here is a list of open issues in porting software to run on GNU/Hurd systems.
+This list also includes [[hurd/toolchain]]-level items, items that are either
+already solved in [[Debian GNU/Hurd|hurd/running/debian]] systems (tagged
+*fixed_in_debian*) or being worked around, so if you're out for working on
+application-level porting issues, then perusing through the list of [[Debian
+packages that need porting|hurd/running/debian/porting]] may be better.
[[!map pages="tagged(open_issue_porting) and !open_issues and !*/discussion"
show=title]]
diff --git a/user/scolobb.mdwn b/user/scolobb.mdwn
index 09016edb..2182f12e 100644
--- a/user/scolobb.mdwn
+++ b/user/scolobb.mdwn
@@ -1,4 +1,4 @@
-[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008, 2009 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
@@ -8,13 +8,122 @@ 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]]."]]"""]]
-# scolobb
-Sergiu Ivanov, interested non-student
+Sergiu Ivanov
Mail: <mailto:unlimitedscolobb@gmail.com>
-Project: Namespace-based translator selection
+
+# Google Summer of Code: 2009 Project
+
+**Unionmount**: The goal of this project is to make it possible to set
+translators in unionmount mode, which means that the filesystem
+published by the mounted translator will get merged with the directory
+tree of the node the translator is mounted onto.
+
+For documentation, see [[hurd/translator/unionmount]].
+
+---
+
+## Roadmap
+
+### DONE
+
+(Dates in brackets show the completion date)
+
+* **Make `unionfs` build.** *(24 May)* For reasons unknown to me,
+ `unionfs` Makefile was configured to search for include files from
+ under `$(prefix)/include`, while `$(prefix)` was never
+ defined. Setting `$(prefix)` to `/usr` solved the problem.
+
+* **Change the command line parsing in `unionfs` to comply with the
+ requirements of `unionmount`.** *(25 May)* Although the core
+ functionality of `unionmount` heavily relies on `unionfs`, the
+ command line interface of these two programs is completely
+ different: `unionfs` operates on directories, the list of which is
+ explicitly specified, while `unionmount` *always* merges the
+ underlying filesystem and the filesystem published by the
+ mountee. Therefore, options like `--add`, `--remove`, `--underlying`
+ (specific to `unionfs`) make little sense in `unionmount`
+ context. These options have been removed. Also, `unionmount` must be
+ able to pass some switches to the mountee, which means that it
+ should stop parsing the command line arguments immediately after
+ having encountered the path to the mountee (very similar to how
+ `settrans` works). This functionality has also been implemented.
+
+* **Make `unionmount` capable of starting the mountee.** *(28 May)*
+ The idea behind implementation of this goal is that `unionmount`
+ should provide a proxy node on which to set the mountee. The main
+ issue about this goal was the fact that the mountee *cannot* be
+ started during the initialization of `unionmount`, because in this
+ phase `unionmount` is not capable of responding to RPCs, while many
+ translators try to `io_stat` their underlying node or do other
+ interesting things on startup. The solution to this problem is,
+ obviously, *lazy* startup, i.e. the mountee is started at the first
+ attempt to access (via `dir_lookup` or `dir_readdir`) the merged
+ filesystem published by `unionmount`.
+
+* **Include the filesystem published by the mountee in the list of
+ merged filesystems.** *(1 Jun)* `unionfs` operates on a list of
+ ports to the underlying filesystems, therefore, to finish the
+ unionmount functionality, I had to include the port to the mountee
+ in this list.
+
+* **Learn Texinfo.** *(Jun 4)* In order to produce canonical
+ documentation I had to learn the Texinfo documentation format.
+
+* **Write documentation for `unionmount`.** *(Jun 5)* The basic
+ unionmount functionality being finished, it has to be documented
+ properly, lest it should lag behind and remain unfinished
+ eventually.
+
+* **Write documentation for `unionfs`.** *(Jun 5)* `unionfs` is not
+ exactly well-documented at the moment, the only help being provided
+ by the comments in the sources. The goal is to write a more coherent
+ documentation.
+
+### TODO
+
+(Dates in brackets show the *expected* completion date)
+
+* **Study eth-multiplexer.** *(12 Jun)* In order to get an idea of
+ what should the rules for eth-multipexer be, I will have to study
+ the current state of eth-multiplexer.
+
+* **Start with a clean unionfs and implement the `--mount` argument**
+ *(12 Jun)* It was suggested to implement the union mount
+ functionality first, instead of doing some partial adaptation of
+ `unionfs` to `unionmount` and leaving the complete adaptation for
+ the future.
+
+* **Implement merging rules.** *(25 Jul)* Some details are still
+ awaiting discovery by me.
+
+* **Wrap up the project for upstream inclusion.** *(1 Aug)*
+ `unionmount` is intended to be included upstream, therefore it
+ should be mostly complete and polished by the end of GSoC.
+
+* **Decide as to location of unionmount.** *(1 Aug)* Presently,
+ `unionmount` is a (local) branch in `unionfs` git repository. The
+ first step of publishing it is planned to be pushing it to the
+ Savannah `unionfs` repository. Some agree that there should also be
+ a second step consisting in splitting `unionmount` in a separate git
+ repository, since the destinations of `unionfs` and `unionmount` are
+ *similar*, and not identical.
+
+* **Employ `unionmount` in eth-multiplexer.** *(10 Aug)* I still have
+ to scrounge for details.
+
+* **Use a different (better?) implementation idea.** *(17 Aug)* It has
+ been pointed out several times that `unionmount` could be
+ implemented not by forking off `unionfs`, but by keeping the merging
+ functionality in a stand-alone module (which could then be used by
+ `unionfs` as well). Different implementation ideas with their own
+ specific advantages may also arise in the future.
+
+---
+
+# Google Summer of Code: 2008 Project: Namespace-based translator selection
---
@@ -131,4 +240,3 @@ The code is at <http://github.com/scolobb/nsmux/tree/master>.
####0: Sun Apr 27:
> Followed the code of *dmesgd* (<http://www.bddebian.com/junk/dmesgd/>) kindly offered by **bddebian** and rewrote it from scratch as a tutorial.
-