summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--community/gsoc/2008.mdwn3
-rw-r--r--contributing.mdwn2
-rw-r--r--hurd/debugging/rpctrace.mdwn4
-rw-r--r--hurd/glibc.mdwn5
-rw-r--r--hurd/glibc/internals.mdwn21
-rw-r--r--hurd/running/debian/faq/apt_umount.mdwn2
-rw-r--r--hurd/running/gnu/create_an_image.mdwn6
-rw-r--r--hurd/running/gnu/setup.mdwn2
-rw-r--r--hurd/translator.mdwn13
-rw-r--r--hurd/translator/nsmux.mdwn117
-rw-r--r--hurd/translator/unionfs.mdwn131
-rw-r--r--hurd/translator/unionmount.mdwn51
-rw-r--r--mailing_lists.mdwn4
-rw-r--r--microkernel/viengoos/projects.mdwn58
-rw-r--r--microkernel/viengoos/projects/address_space_management.mdwn40
-rw-r--r--microkernel/viengoos/projects/capability-aware_compiler.mdwn16
-rw-r--r--microkernel/viengoos/projects/new_hash_function.mdwn19
-rw-r--r--news/2009-09-30.mdwn (renamed from news/2009-08-30.mdwn)18
-rw-r--r--open_issues/bash.mdwn47
-rw-r--r--open_issues/bash_vs_screen_vs_sigint.mdwn12
-rw-r--r--open_issues/gdb_gcore.mdwn23
-rw-r--r--open_issues/m4_vs_stack.mdwn21
-rw-r--r--open_issues/screen.mdwn116
-rw-r--r--open_issues/xen_crash_copy-size_le_page_size.mdwn2
-rw-r--r--public_hurd_boxen/xen_handling.mdwn (renamed from public_hurd_boxen/domu_console.mdwn)24
-rw-r--r--public_hurd_boxen/zenhost.mdwn2
-rw-r--r--shortcuts.mdwn27
-rw-r--r--tag/open_issue_xen.mdwn (renamed from news/2009-09-31.mdwn)19
-rw-r--r--user/scolobb.mdwn13
29 files changed, 655 insertions, 163 deletions
diff --git a/community/gsoc/2008.mdwn b/community/gsoc/2008.mdwn
index d7b467bb..d994f2b0 100644
--- a/community/gsoc/2008.mdwn
+++ b/community/gsoc/2008.mdwn
@@ -23,7 +23,8 @@ did a great job!
vacation). The project however was hampered by various misunderstandings,
wrong assumptions, and several major redesigns during the course of the work
-- which is probably more our fault than the student's. In the end, though, he
- completed nsmux (the main namespace proxy handling the magic filename
+ completed [[hurd/translator/nsmux]] (the main namespace proxy handling the
+ magic filename
lookups, running dynamic translators on demand); he still works on
finishing the translator stack filtering necessary to implement some of the
desired functionality (accessing files while skipping existing translators).
diff --git a/contributing.mdwn b/contributing.mdwn
index dc7fcc89..12be38aa 100644
--- a/contributing.mdwn
+++ b/contributing.mdwn
@@ -23,7 +23,7 @@ one of the [[regular_IRC_meetings|IRC#regular_meetings]]!
Generally we also have a list of [[open_issues]] and one for
[[project_ideas|community/gsoc/project_ideas]] - the latter written for the
-Summer of Code.
+Google Summer of Code.
# Documentation
diff --git a/hurd/debugging/rpctrace.mdwn b/hurd/debugging/rpctrace.mdwn
index 63b72ee0..46f40508 100644
--- a/hurd/debugging/rpctrace.mdwn
+++ b/hurd/debugging/rpctrace.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
@@ -24,7 +25,6 @@ See `rpctrace --help` about how to use it.
* <http://savannah.gnu.org/patch/?1633> -- terminated with `C-c` `rpctrace`d
programs hang
* <http://savannah.gnu.org/patch/?5580> -- more readable output
-* <http://savannah.gnu.org/bugs/?20612> -- heisenbug
# TODO
diff --git a/hurd/glibc.mdwn b/hurd/glibc.mdwn
index e975a239..454b8e34 100644
--- a/hurd/glibc.mdwn
+++ b/hurd/glibc.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
@@ -16,3 +17,5 @@ For information about how the glibc integrates into the system, see sections
[[Hurd-specific_API]].
[[Debugging_glibc|debugging/glibc]].
+
+[[Internals.]]
diff --git a/hurd/glibc/internals.mdwn b/hurd/glibc/internals.mdwn
new file mode 100644
index 00000000..2ced0543
--- /dev/null
+++ b/hurd/glibc/internals.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]]."]]"""]]
+
+Some bits about this, some bits about that.
+
+---
+
+Hurd controlling tty behavior is generally consistent with BSD's, including
+`TIOCSCTTY`. Linux also has `TIOCSCTTY` and it is harmless to use it there.
+But BSD and Hurd never do an implicit `TIOCSCTTY` (hence our `O_NOCTTY` is
+zero).
+
+C.f. <http://lists.gnu.org/archive/html/bug-hurd/2009-10/msg00030.html> and the
+following messages.
diff --git a/hurd/running/debian/faq/apt_umount.mdwn b/hurd/running/debian/faq/apt_umount.mdwn
index f2889f3e..db0dbfd1 100644
--- a/hurd/running/debian/faq/apt_umount.mdwn
+++ b/hurd/running/debian/faq/apt_umount.mdwn
@@ -22,4 +22,4 @@ Give executable permission to the script.
# chmod +x /usr/bin/umount
In `/etc/fstab` add a trailing `/` after cdrom like `/cdrom/` since apt uses a
-traing `/`.
+trailing `/`.
diff --git a/hurd/running/gnu/create_an_image.mdwn b/hurd/running/gnu/create_an_image.mdwn
index 2cdb8e27..c7a97a4e 100644
--- a/hurd/running/gnu/create_an_image.mdwn
+++ b/hurd/running/gnu/create_an_image.mdwn
@@ -27,7 +27,7 @@ Creating a bootable qemu image from a root filesystem and bootloader
create the necessary partitions (root and swap partitions boot, home ... if
required)
-4. Create a file syatem for the root partiotion
+4. Create a file system for the root partition
mke2fs /dev/hda1
@@ -39,7 +39,7 @@ Creating a bootable qemu image from a root filesystem and bootloader
6. Copy the file system from the host machine to the mounted directory (use a
compressed file system to make the copying faster)
- Grab the GNU spapshot from ams' site
+ Grab the GNU snapshot from ams' site
<http://www.update.uu.se/~ams/home/slask/GNU/>
scp <user>@<host>:<path to the compressed file system> disk
@@ -58,7 +58,7 @@ Creating a bootable qemu image from a root filesystem and bootloader
poweroff
-10. To make the file syatem bootable download a grub floppy image
+10. To make the file system bootable download a grub floppy image
<http://hurd.in/pub/Hurd/HurdOnVMware/grub.img>
diff --git a/hurd/running/gnu/setup.mdwn b/hurd/running/gnu/setup.mdwn
index 57a19054..2fb30c7b 100644
--- a/hurd/running/gnu/setup.mdwn
+++ b/hurd/running/gnu/setup.mdwn
@@ -8,7 +8,7 @@ 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]]."]]"""]]
-Setup is very easy (You need a GNU/Linux system to install GNU, we are developing an installer for GNU and if you want to help us join us on [[http://lists.gnu.org/mailman/listinfo/gnu-system-discuss][gnu-system-discuss]]), just follow these steps ...
+Setup is very easy (You need a GNU/Linux system to install GNU, we are developing an installer for GNU and if you want to help us join us on [gnu-system-discuss](http://lists.gnu.org/mailman/listinfo/gnu-system-discuss)), just follow these steps ...
## Step 1: Find a home for GNU
diff --git a/hurd/translator.mdwn b/hurd/translator.mdwn
index 4995a005..e567938f 100644
--- a/hurd/translator.mdwn
+++ b/hurd/translator.mdwn
@@ -33,6 +33,17 @@ kernel and thus have absolute access to the machine.
As the protocols do not require any special privilege
to implement, this is not an issue on the Hurd.
+In Mach parlance, a *translator* is what they name a *server*: a process that
+participates in [[RPC]] interactions. In the Hurd, a translator is a server
+that is additionally attached to a filesystem node. Thus, it is quite common,
+even in the Hurd context, to speak about *server*s if you're stressing the RPC
+part, and on the other hand about *translator*s if you're stressing the
+filesystem part: a translator implements the [[interface/fs]] and
+[[interface/io]] interfaces. For example: *the [[pfinet]] server implements
+the socket API calls (which are mapped by [[glibc]] to equivalent RPC calls)*,
+compared to *a [[libdiskfs]]-based translator implements a filesystem, based on
+a backing store*.
+
To learn how to write a translator, read the code!
It is well documented, in particular, the header files.
The [[Hurd_Hacking_Guide]] also has a tutorial.
@@ -73,7 +84,7 @@ Read about translator [[short-circuiting]].
* [[cvsfs]]
* [[tmpfs]]
* [[procfs]]
-* [[unionmount]]
+* [[nsmux]]
* ...
diff --git a/hurd/translator/nsmux.mdwn b/hurd/translator/nsmux.mdwn
new file mode 100644
index 00000000..c07a30bd
--- /dev/null
+++ b/hurd/translator/nsmux.mdwn
@@ -0,0 +1,117 @@
+[[!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]]."]]"""]]
+
+# nsmux
+
+`nsmux` implements the simplest use-case of namespace-based translator
+selection (see below).
+
+To use `nsmux` do the following:
+
+ $ settrans -a <node> nsmux <directory>
+
+After this operation `<node>` will be a mirror of `<directory>` with
+namespace-based translator selection functionality enabled.
+
+Please note that due to some details `nsmux` may complain a lot when
+run as a normal user. This matter is the most urgent on the TODO
+list.
+
+## Source
+
+`nsmux` translator can be obtained with the following command:
+
+ $ git clone git://github.com/scolobb/nsmux.git
+
+`filter` translator can be obtained with the following command:
+
+ $ git clone git://github.com/scolobb/filter.git
+
+The filter is not yet working.
+
+It is highly probable that soon the code will be moved to Savannah.
+
+## Namespace-based Translator Selection
+
+Namespace-based translator selection is the special technique of using
+"magic" filenames for both accessing the file and setting translators
+on it.
+
+A "magic" filename is a filename which contains an unescaped sequence
+of two commas: ",,". This sequence can be escaped by adding another
+comma: ",,,". In the magic filename the part up to the first double
+commas is interpreted as the filename itself; the remaining segments
+into which the string is split by occurrences of ",," are treated as
+names of translators located under `/hurd/`.
+
+The simplest advantage before traditional way of setting
+translators is shown in the following examples. Compare this
+
+ $ settrans -a file translator1
+ $ settrans -a file translator2
+ $ cat file
+
+to this:
+
+ $ cat file,,translator1,,translator2
+
+One simple command versus three more lengthy ones is an obvious
+improvement. However, this advantage is not the only one and,
+probably, not even the most important.
+
+What is a good candidate for the most important advantage is that
+translators requested via "magic" filenames are session-bound. In
+other words, by running `cat file,,translator` we set a translator
+visible *only* to `cat`, while the original file remains untranslated.
+Such session-specific translators are called **dynamic** and there is
+no (theoretical) way for a client to get a port to a dynamic
+translator requested by another client.
+
+Obviously, dynamic translators can be stacked, similarly to static
+translators. Also, dynamic translator stacks may reside on top of
+static translator stacks.
+
+An important operation of namespace-based translator selection is
+*filtering*. Filtering basically consists in looking up a translator
+by name in the stack and ignoring translators located on top of it.
+Note that filtering does not mean dropping some translators: in the
+current implementation a filter is expected to be a normal dynamic
+translator, included in the dynamic translator stack similarly to
+other translators.
+
+An important detail is that filtering is not limited to dynamic
+translator stacks: a filter should be able to descend into static
+translator stacks as well.
+
+Although the concept of filtering may seem purely abstract in the
+simplest use-case of setting dynamic translators on top of files, the
+situation changes greatly when dynamic translator stacks on top of
+directories are considered. In this case, the implementation of
+namespace-based translator selection is expected to be able to
+propagate the dynamic translators associated with the directory down
+the directory structure. That is, all files located under a directory
+opened with magic syntax, are expected to be translated by the same
+set of translators. In this case having the possibility to
+specifically discard some of the translators set up on top of certain
+files is very useful.
+
+Note that the implementation of propagation of dynamic translators
+down directories is not fully conceived at the moment. The
+fundamental problem is distinguishing between situations when the
+dynamic translators are to be set on the underlying files of the
+directory or on the directory itself.
+
+## Currently Implemented
+
+Currently there a working (though not heavily tested) implementation
+of the simplest use-case of namespace-based translator selection in
+the form of translator `nsmux`. The filter is partially implemented
+and this is the immediate goal. Propagating translators down
+directories is the next objective.
diff --git a/hurd/translator/unionfs.mdwn b/hurd/translator/unionfs.mdwn
index b177b874..331ad19f 100644
--- a/hurd/translator/unionfs.mdwn
+++ b/hurd/translator/unionfs.mdwn
@@ -8,17 +8,140 @@ 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]]."]]"""]]
+# `unionfs`
+
+*Unionfs allows you to simply union one directory or translator into another one, so you see the files of both of them side by side.*
+
Source repository: <http://git.savannah.gnu.org/cgit/hurd/unionfs.git/>
+Right now there are some problems with syncing, so please be aware
+that it might not work as expected.
-<a name="stowfs"></a>
-# `stowfs`
+<a name="unionmount"></a>
+# `unionmount`
... is a special mode of `unionfs`.
-# See Also
+## Project Idea
+
+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.
+
+## Implementation
+
+### Source
+
+Union mounts are currently implemented as two additional command line
+options of the `unionfs` translator. This implementation resides in
+the master-unionmount branch of the unionfs git repository. To
+checkout the code, do the following:
+
+ $ git clone git://git.sv.gnu.org/hurd/unionfs.git
+ $ cd unionfs
+ $ git checkout -b master-unionmount
+ $ git pull origin master-unionmount
+
+You can skip the checkout step if you don't mind that the
+`master-unionmount` branch gets merged into the `master` branch.
+
+### Short Documentation
- * [[unionmount]]
+The `unionmount` project adds options "--mount" and "--no-mount" to
+`unionfs` (short versions: "-t" and "-n" correspondingly). Both
+options are used to implement union-mounting, but the first option
+will create a *transparent* union mount, while the second option will
+create a *nontransparent* union mount.
+
+One can create a transparent union mount with the following command:
+
+ $ settrans -a <node> unionfs --underlying --mount=<translator>
+
+When running
+
+ $ fsysopts <node>
+
+one will see the information about the `<translator>`, not the
+`unionfs` translator. Although this might seem the only natural way
+to do union mounts, one must keep in mind that such transparency
+deprives one of the possibility to modify the unioned virtual
+filesystem exported by `unionfs` at run-time (via `fsysopts`).
+
+One can create a nontransparent union mount with the following command:
+
+ $ settrans -a <node> unionfs --underlying --no-mount=<translator>
+
+When running
+
+ $ fsysopts <node>
+
+one will see the information about the `unionfs` translator. Although
+this way allows modifying the contents of the unioned filesystem
+exported by `unionfs` at runtime, the access to `<translator>` is
+blocked.
+
+The filesystem exported by the *mountee* (`<translator>`) is actually
+treated like a normal filesystem within `unionfs`, which means that
+one can assign priorities to the *mountee* to achieve the desired
+order of layering of the unioned directories. The following will make
+`unionfs` query the underlying filesystem first and then the
+*mountee*:
+
+ $ settrans -a <node> unionfs --priority=2 --underlying --priority=1 --mount=<translator>
+
+Note that the same functionality can also be achieved by assigning
+priority 1 to the underlying filesystem and keeping the priority of
+the *mountee* at 0.
+
+<a name="stowfs"></a>
+# `stowfs`
+
+... is a special mode of `unionfs`.
# External Links
diff --git a/hurd/translator/unionmount.mdwn b/hurd/translator/unionmount.mdwn
index 47a3d85d..7384afc7 100644
--- a/hurd/translator/unionmount.mdwn
+++ b/hurd/translator/unionmount.mdwn
@@ -8,53 +8,4 @@ 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.
+[[!meta redir=unionfs#unionmount]]
diff --git a/mailing_lists.mdwn b/mailing_lists.mdwn
index d64582b8..e4bd1368 100644
--- a/mailing_lists.mdwn
+++ b/mailing_lists.mdwn
@@ -44,7 +44,7 @@ mailing lists.
<bug-hurd@gnu.org>
<http://lists.gnu.org/mailman/listinfo/bug-hurd>
-Technical discussion and bug reports; main development list.
+Technical discussion and bug reports; main development list. If you want to **contribute**, please meet us here.
<a name="hurd-devel"></a>
## hurd-devel
@@ -68,7 +68,7 @@ to the latter, everyone is free to subscribe to this read-only list.
<help-hurd@gnu.org>
<http://lists.gnu.org/mailman/listinfo/help-hurd>
-Hurd-specific questions; for users of the Hurd.
+Hurd-specific questions; for users of the Hurd. If you need help on **using the Hurd** please ask in this list.
<a name="web-hurd"></a>
## web-hurd
diff --git a/microkernel/viengoos/projects.mdwn b/microkernel/viengoos/projects.mdwn
index 27dcc3e2..971206bb 100644
--- a/microkernel/viengoos/projects.mdwn
+++ b/microkernel/viengoos/projects.mdwn
@@ -8,58 +8,10 @@ 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_viengoos]]
-
Some projects:
-# Minor
-
-## New hash function
-
-The current hash function in libhurd-ihash results in a lot of
-collisions when the hash table is 80% full. To overcome this, we keep
-hash tables at most 30% full. This represents a fair amount of
-overhead. Find a better algorithm. There can either be one that is
-appropriate in the general case or one that works well in a relevant,
-specific case, e.g., viengoos/object.c uses a hash to find the object
-corresponding to a frame, which is keyed on its physical address.
-
-# Major
-
-## Address Space Management
-
-In Viengoos, a process's address space is managed entirely in user
-space by the process itself. This creates two interesting problems:
-dealing with circular dependencies resulting from having to manage the
-address space data structures and accessing and manipulating the
-address space data structures.
-
-First, managing the address space requires resources, which in turn
-may require address space (e.g., data structures require memory which
-require address space, etc.). We currently break this circular
-dependency by trying to keep enough resources in reserve that
-allocating resources for managing the address space never requires
-more resources than are minimally in the reserve. The reserve is
-currently chosen in an ad-hoc fashion. It would be nice to determine
-it more systematically. Moreover, it would be nice to reduce the
-cases in which a reserve is required. This may be possible by
-restructuring some of the code.
-
-Second, the address space data structures are protected using a single
-lock. This not only means that only a single thread can be updating
-the address space at a time, but that if a thread faults and the
-address space is locked, then the process dead locks! It should be
-possible to at least walk the address space using lock-free
-techniques. This requires updating the address space construction
-code such that all addresses remain valid during any given
-manipulation. Second, to avoid the mentioned dead-lock problem, we
-try to ensure that accessing the data structures will never result in
-a fault. This means protecting the stack. An alternative approach is
-to use undo buffers.
-
-# Thesis
-
-## Capability aware compiler
-
-Modify, e.g., gcc to understand capability semantics and teach gcc how
-to optimize it, e.g., how to batch and combine calls.
+[[!inline
+pages="microkernel/viengoos/projects/* and !microkernel/viengoos/projects/*/*"
+show=0
+feeds=no
+actions=yes]]
diff --git a/microkernel/viengoos/projects/address_space_management.mdwn b/microkernel/viengoos/projects/address_space_management.mdwn
new file mode 100644
index 00000000..2d00e4f4
--- /dev/null
+++ b/microkernel/viengoos/projects/address_space_management.mdwn
@@ -0,0 +1,40 @@
+[[!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
+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]]."]]"""]]
+
+[[!tag open_issue_viengoos]]
+
+In Viengoos, a process's address space is managed entirely in user
+space by the process itself. This creates two interesting problems:
+dealing with circular dependencies resulting from having to manage the
+address space data structures and accessing and manipulating the
+address space data structures.
+
+First, managing the address space requires resources, which in turn
+may require address space (e.g., data structures require memory which
+require address space, etc.). We currently break this circular
+dependency by trying to keep enough resources in reserve that
+allocating resources for managing the address space never requires
+more resources than are minimally in the reserve. The reserve is
+currently chosen in an ad-hoc fashion. It would be nice to determine
+it more systematically. Moreover, it would be nice to reduce the
+cases in which a reserve is required. This may be possible by
+restructuring some of the code.
+
+Second, the address space data structures are protected using a single
+lock. This not only means that only a single thread can be updating
+the address space at a time, but that if a thread faults and the
+address space is locked, then the process dead locks! It should be
+possible to at least walk the address space using lock-free
+techniques. This requires updating the address space construction
+code such that all addresses remain valid during any given
+manipulation. Second, to avoid the mentioned dead-lock problem, we
+try to ensure that accessing the data structures will never result in
+a fault. This means protecting the stack. An alternative approach is
+to use undo buffers.
diff --git a/microkernel/viengoos/projects/capability-aware_compiler.mdwn b/microkernel/viengoos/projects/capability-aware_compiler.mdwn
new file mode 100644
index 00000000..b4e465d9
--- /dev/null
+++ b/microkernel/viengoos/projects/capability-aware_compiler.mdwn
@@ -0,0 +1,16 @@
+[[!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
+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]]."]]"""]]
+
+[[!tag open_issue_viengoos]]
+
+Modify, e.g., gcc to understand capability semantics and teach gcc how
+to optimize it, e.g., how to batch and combine calls.
+
+This project is deemed suitable for a thesis.
diff --git a/microkernel/viengoos/projects/new_hash_function.mdwn b/microkernel/viengoos/projects/new_hash_function.mdwn
new file mode 100644
index 00000000..1747511d
--- /dev/null
+++ b/microkernel/viengoos/projects/new_hash_function.mdwn
@@ -0,0 +1,19 @@
+[[!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
+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]]."]]"""]]
+
+[[!tag open_issue_viengoos]]
+
+The current hash function in libhurd-ihash results in a lot of
+collisions when the hash table is 80% full. To overcome this, we keep
+hash tables at most 30% full. This represents a fair amount of
+overhead. Find a better algorithm. There can either be one that is
+appropriate in the general case or one that works well in a relevant,
+specific case, e.g., viengoos/object.c uses a hash to find the object
+corresponding to a frame, which is keyed on its physical address.
diff --git a/news/2009-08-30.mdwn b/news/2009-09-30.mdwn
index 8b28b410..5deeb7f5 100644
--- a/news/2009-08-30.mdwn
+++ b/news/2009-09-30.mdwn
@@ -8,25 +8,27 @@ 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 date="2009-09-01 00:00 UTC"]]
+[[!meta date="2009-10-01 11:52 UTC"]]
-[[!meta updated="2009-09-01 00:00 UTC"]]
+[[!meta updated="2009-10-01 11:52 UTC"]]
-A month of the Hurd: *Successful Summer of Code: unionmount*.
+A month of the Hurd: *Successful Google Summer of Code project: unionmount*.
[[!if test="included()" then="""[[!toggle id=full_news
text="Details."]][[!toggleable id=full_news text="[[!paste id=full_news]]"]]"""
else="[[!paste id=full_news]]"]]
[[!cut id="full_news" text="""
-> This month saw the successful pencils down of the Google Summer of Code 2009,
-> for which [[Sergiu_Ivanov|user/scolobb]] created a
+> This month saw the successful completion of the Google Summer of Code 2009,
+> for which [[Sergiu Ivanov|scolobb]] created a
> [[unionmount_translator|hurd/translator/unionmount]].
> His work allows you to simply union one directory or translator into another one,
> so you see the files of both of them side by side.
>
> He was mentored by Olaf Buddenhagen and both are now working on polishing the code
-> and extending the namespace based translator selection (nsmux) which allows you to
-> read a node with a selected translator by simply appending ",,&lt;translator&gt;" to its name.
+> and extending the namespace based translator selection ([[hurd/translator/nsmux]]) which allows you to
+> read a node with a selected translator by simply appending `,,<translator>` to its name.
>
-
+> That aside, we saw the usual steady rate of enhancement discussions, as well
+> as bugs getting fixed: X server crashing, preventing that GCC versions after
+> 4.2 optimize too much, etc.
"""]]
diff --git a/open_issues/bash.mdwn b/open_issues/bash.mdwn
new file mode 100644
index 00000000..47598071
--- /dev/null
+++ b/open_issues/bash.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]]."]]"""]]
+
+[[!tag open_issue_porting]]
+
+# *bash* 4.0 vs. typing `C-c` (*SIGINT*)
+
+Will show `-bash: echo: write error: (ipc/mig) wrong reply message ID` unter
+certain conditions.
+
+After having noticed that this error doesn't occur if starting *bash* with
+`--norc`, I isolated it to the following command in `.bashrc`:
+
+ case $TERM in
+ xterm* | rxvt*)
+ PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}:${PWD}\007"';;
+ esac
+
+... and indeed:
+
+ tschwinge@flubber:~ $ echo "$TERM" -- "$PROMPT_COMMAND"
+ xterm -- echo -ne "\033]0;${USER}@${HOSTNAME}:${PWD}\007"
+ tschwinge@flubber:~ $ ^C
+ -bash: echo: write error: (ipc/mig) wrong reply message ID
+ tschwinge@flubber:~ $ PROMPT_COMMAND=
+ tschwinge@flubber:~ $ ^C
+ tschwinge@flubber:~ $
+
+ bash-4.0$ PROMPT_COMMAND='echo >&2 -n foo\ '
+ foo bash-4.0$ ^C
+
+ bash-4.0$ PROMPT_COMMAND='echo >&1 -n foo\ '
+ foo bash-4.0$ ^C
+ bash: echo: write error: (ipc/mig) wrong reply message ID
+
+ bash-4.0$ PROMPT_COMMAND='/bin/echo >&1 -n foo\ '
+ foo bash-4.0$ ^C
+ bash: start_pipeline: pgrp pipe: (ipc/mig) wrong reply message ID
+
+So, there's something different with stdout in / after the SIGINT handler.
diff --git a/open_issues/bash_vs_screen_vs_sigint.mdwn b/open_issues/bash_vs_screen_vs_sigint.mdwn
new file mode 100644
index 00000000..9672041c
--- /dev/null
+++ b/open_issues/bash_vs_screen_vs_sigint.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]]."]]"""]]
+
+ * [[bash]]
+ * [[screen]]
diff --git a/open_issues/gdb_gcore.mdwn b/open_issues/gdb_gcore.mdwn
new file mode 100644
index 00000000..7d4980f1
--- /dev/null
+++ b/open_issues/gdb_gcore.mdwn
@@ -0,0 +1,23 @@
+[[!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="GDB: gcore"]]
+
+[[!tag open_issue_gdb]]
+
+GDB's `gcore` command doesn't work / needs to be implemented / ported in GDB:
+
+ tschwinge@flubber:~ $ gcore 8371
+ [New Thread 8371.1]
+ [New Thread 8371.2]
+ [New Thread 8371.3]
+ /media/data/home/tschwinge/core.cA0ICY:2: Error in sourced command file:
+ Undefined command: "gcore". Try "help".
+ gcore: failed to create core.8371
diff --git a/open_issues/m4_vs_stack.mdwn b/open_issues/m4_vs_stack.mdwn
new file mode 100644
index 00000000..c92cfb00
--- /dev/null
+++ b/open_issues/m4_vs_stack.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]]."]]"""]]
+
+[[!tag open_issue_porting]]
+
+ m4 (1.4.13-1+hurd.2) unreleased; urgency=low
+
+ * Drop stack overflow (checks/stackovf) check, test-c-stack and
+ test-c-stack2 checks, and /dev/null/ (test-open and test-fopen) checks.
+
+ -- Samuel Thibault <samuel.thibault@ens-lyon.org> Tue, 18 Aug 2009 20:54:30 +0000
+
+ <youpi> that was a quick fix (as not having m4 makes autoconf uninstallable, which is quite a problem)
+ <youpi> there's probably something wrong in the stack management of the Hurd, I haven't investigated
diff --git a/open_issues/screen.mdwn b/open_issues/screen.mdwn
new file mode 100644
index 00000000..6ece5c40
--- /dev/null
+++ b/open_issues/screen.mdwn
@@ -0,0 +1,116 @@
+[[!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]]."]]"""]]
+
+[[!tag open_issue_porting]]
+
+Typing `C-c` (*SIGINT*) in a *screen* session (Debian package 4.0.3-14; -11 is
+fine):
+
+ * shell prompt: no reaction (nothing printed)
+ * `sleep 10` running: `^C` printed, but SIGINT is not sent.
+
+[[!debbug 522689#38]].
+
+---
+
+Revisit this issue: [[!debbug 97343]] -- special handling of `TIOCSCTTY`
+depending on `__GNU__`.
+
+---
+
+`#ifdef linux` and friends are used in quite a number of places.
+
+---
+
+All diffs are GNU/Linux vs. GNU/Hurd.
+
+ /*
+ * If your system supports BSD4.4's seteuid() and setegid(), define
+ * HAVE_SETEUID.
+ */
+ -/* #undef HAVE_SETEUID */
+ +#define HAVE_SETEUID 1
+
+TODO: check.
+
+---
+
+ /*
+ * define HAVE_SVR4_PTYS if you have a /dev/ptmx character special
+ * device and support the ptsname(), grantpt(), unlockpt() functions.
+ */
+ -#define HAVE_SVR4_PTYS 1
+ +/* #undef HAVE_SVR4_PTYS */
+
+ /*
+ * define HAVE_GETPT if you have the getpt() function.
+ */
+ #define HAVE_GETPT 1
+
+ /*
+ * define HAVE_OPENPTY if your system has the openpty() call.
+ */
+ -/* #undef HAVE_OPENPTY */
+ +#define HAVE_OPENPTY 1
+
+ /*
+ * define PTYRANGE0 and or PTYRANGE1 if you want to adapt screen
+ * to unusual environments. E.g. For SunOs the defaults are "qpr" and
+ * "0123456789abcdef". For SunOs 4.1.2
+ * #define PTYRANGE0 "pqrstuvwxyzPQRST"
+ * is recommended by Dan Jacobson.
+ */
+ -/* #undef PTYRANGE0 */
+ -/* #undef PTYRANGE1 */
+ +#define PTYRANGE0 "pq"
+ +#define PTYRANGE1 "0123456789abcdefghijklmnopqrstuv"
+
+TODO: check: `HAVE_SVR4_PTYS` is due to `configure.in` doing `test -c
+/dev/ptmx`. But: even if we don't have that file, we still have `ptsname`,
+`grantpt`, `unlockpt`.
+
+---
+
+ gcc -c -I. -I. -g -O2 -O2 -g -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers pty.c
+ +pty.c: In function 'OpenPTY':
+ +pty.c:323: warning: implicit declaration of function 'openpty'
+ +pty.c: At top level:
+ +pty.c:75: warning: 'PtyName' defined but not used
+ +pty.c:86: warning: 'PtyProto' defined but not used
+ +pty.c:87: warning: 'TtyProto' defined but not used
+
+TODO: check.
+
+---
+
+ --- linux/osdef.h 2009-10-06 18:43:53.000000000 +0200
+ +++ screen-4.0.3/osdef.h 2009-10-06 18:49:49.000000000 +0200
+ @@ -42,13 +42,19 @@
+ #endif
+
+ #ifdef SYSV
+ +extern char *strchr __P((char *, int));
+ +extern char *strrchr __P((char *, int));
+ +extern char *memset __P((char *, int, int));
+ +extern int memcmp __P((char *, char *, int));
+ #else
+ #endif
+
+ #ifndef USEBCOPY
+ # ifdef USEMEMCPY
+ +extern void memcpy __P((char *, char *, int));
+ # else
+ # ifdef USEMEMMOVE
+ +extern void memmove __P((char *, char *, int));
+ # else
+ # endif
+ # endif
+
+TODO: check.
diff --git a/open_issues/xen_crash_copy-size_le_page_size.mdwn b/open_issues/xen_crash_copy-size_le_page_size.mdwn
index 0aa030fd..f2d8081e 100644
--- a/open_issues/xen_crash_copy-size_le_page_size.mdwn
+++ b/open_issues/xen_crash_copy-size_le_page_size.mdwn
@@ -8,7 +8,7 @@ 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_gnumach]]
+[[!tag open_issue_xen]]
`/dev/hd2` is 2 GiB in size (backed by LVM), unformatted.
diff --git a/public_hurd_boxen/domu_console.mdwn b/public_hurd_boxen/xen_handling.mdwn
index 02395e11..47d92c43 100644
--- a/public_hurd_boxen/domu_console.mdwn
+++ b/public_hurd_boxen/xen_handling.mdwn
@@ -8,13 +8,31 @@ 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="domU console"]]
+# listing running domUs
+
+ $ sudo xm list
+
+ $ sudo xm top
+
+# handling running domUs
+
+Forcefully killing a domU (that has crashed or is busy-looping, etc.):
+
+ $ sudo xm destroy [domU]
+
+As for (re-)starting a domU, read below in *domU consoles*.
+
+Using `xm shutdown [domU]` to gracefully shut down a running domU does not yet
+work -- this is not yet implemented in the [[Xen port of GNU
+Mach|microkernel/mach/gnumach/ports/xen]] ([[!taglink open_issue_xen]]).
+
+# domU consoles
To avoid any complications with people trying to use the same console at the
same time, please use this command for attaching to a domU's console (this
command line will also start the domU in case that it isn't running already):
- $ sudo screen -DRRS xen-console-[domU] sh -c 'xm console [domU] || xm create -c [domU]'
+ $ host=[domU] && sudo screen -DRRS console-$host sh -c "xm console $host || xm create -c $host"
Otherwise, if one attaches to the same console twice, the second instance will
in fact forward input to the domU (possibly infering with what the person is
@@ -22,7 +40,7 @@ doing on the first instance), but the output won't be sent back to the second
instance.
After having typed this once, Bash's `reverse-search-history` (`C-r`), followed
-by typing in `console-flubber`, for example, will be enough to get access to
+by typing in `host=flubber`, for example, will be enough to get access to
that machine's console.
/!\ TODO: How does one get the environment variables `COLUMNS` and `LINES` set
diff --git a/public_hurd_boxen/zenhost.mdwn b/public_hurd_boxen/zenhost.mdwn
index e5f42aab..525f4e36 100644
--- a/public_hurd_boxen/zenhost.mdwn
+++ b/public_hurd_boxen/zenhost.mdwn
@@ -12,4 +12,4 @@ License|/fdl]]."]]"""]]
(see the table on [[public hurd boxen]] for a list).
-[[!inline pages=public_hurd_boxen/domu_console feeds=no]]
+[[!inline pages=public_hurd_boxen/xen_handling feeds=no]]
diff --git a/shortcuts.mdwn b/shortcuts.mdwn
index 47698bb2..bd4a7ee3 100644
--- a/shortcuts.mdwn
+++ b/shortcuts.mdwn
@@ -7,6 +7,7 @@ Some examples of using shortcuts include:
\[[!google foo]]
\[[!wikipedia War_of_1812]]
\[[!debbug 12345]]
+ Check the \[[!cia ikiwiki desc="CIA page for %s"]].
This page controls what shortcut links the wiki supports.
@@ -16,14 +17,17 @@ This page controls what shortcut links the wiki supports.
* [[!shortcut name=gmsg url="http://groups.google.com/groups?selm=%s"]]
* [[!shortcut name=wikipedia url="http://en.wikipedia.org/wiki/%s"]]
* [[!shortcut name=wikitravel url="http://wikitravel.org/en/%s"]]
-* [[!shortcut name=debbug url="http://bugs.debian.org/%s" desc="bug #%s"]]
+* [[!shortcut name=wiktionary url="http://en.wiktionary.org/wiki/%s"]]
+* [[!shortcut name=debbug url="http://bugs.debian.org/%S" desc="Debian bug #%s"]]
* [[!shortcut name=deblist url="http://lists.debian.org/debian-%s" desc="debian-%s@lists.debian.org"]]
* [[!shortcut name=debpkg url="http://packages.debian.org/%s"]]
+* [[!shortcut name=debpkgsid url="http://packages.debian.org/sid/%s"]]
* [[!shortcut name=debpts url="http://packages.qa.debian.org/%s"]]
* [[!shortcut name=debmsg url="http://lists.debian.org/msgid-search/%s"]]
* [[!shortcut name=debrt url="https://rt.debian.org/Ticket/Display.html?id=%s"]]
* [[!shortcut name=debss url="http://snapshot.debian.net/package/%s"]]
* Usage: `\[[!debss package]]`, `\[[!debss package#version]]`, or `\[[!debss package/version]]`. See http://snapshot.debian.net for details.
+* [[!shortcut name=debwiki url="http://wiki.debian.org/%s"]]
* [[!shortcut name=fdobug url="https://bugs.freedesktop.org/show_bug.cgi?id=%s" desc="freedesktop.org bug #%s"]]
* [[!shortcut name=fdolist url="http://lists.freedesktop.org/mailman/listinfo/%s" desc="%s@lists.freedesktop.org"]]
* [[!shortcut name=gnomebug url="http://bugzilla.gnome.org/show_bug.cgi?id=%s" desc="GNOME bug #%s"]]
@@ -53,21 +57,24 @@ This page controls what shortcut links the wiki supports.
* [[!shortcut name=cia url="http://cia.vc/stats/project/%s"]]
* [[!shortcut name=ciauser url="http://cia.vc/stats/user/%s"]]
* [[!shortcut name=flickr url="http://www.flickr.com/photos/%s"]]
+* [[!shortcut name=man url="http://linux.die.net/man/%s"]]
+* [[!shortcut name=ohloh url="http://www.ohloh.net/projects/%s"]]
To add a new shortcut, use the `shortcut`
-[[ikiwiki/PreprocessorDirective]]. In the url, "%s" is replaced with the
-text passed to the named shortcut, after url-encoding it, and '%S' is
-replaced with the raw, non-encoded text. The optional `desc` parameter
-controls the description of the link.
+[[ikiwiki/directive]]. In the url, "%s" is replaced with the
+text passed to the named shortcut, after [[!wikipedia url_encoding]]
+it, and '%S' is replaced with the raw, non-encoded text. The optional
+`desc` parameter controls the description of the link.
Remember that the `name` you give the shortcut will become a new
-[[ikiwiki/PreprocessorDirective]]. Avoid using a `name` that conflicts
-with an existing directive.
+[[ikiwiki/directive]]. Avoid using a `name` that conflicts
+with an existing directive. These directives also accept a `desc`
+parameter that will override the one provided at definition time.
If you come up with a shortcut that you think others might find useful,
-consider contributing it to the [[!iki shortcuts]] page on the ikiwiki
-ikiwiki, so that future versions of ikiwiki will include your shortcut
-in the standard underlay.
+consider contributing it to the [shortcuts page on the ikiwiki
+wiki](http://ikiwiki.info/shortcuts/), so that future versions of
+ikiwiki will include your shortcut in the standard underlay.
# Local stuff
diff --git a/news/2009-09-31.mdwn b/tag/open_issue_xen.mdwn
index 04fdedb2..5ce9301c 100644
--- a/news/2009-09-31.mdwn
+++ b/tag/open_issue_xen.mdwn
@@ -8,17 +8,12 @@ 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 date="2009-09-01 00:00 UTC"]]
+[[!meta title=open_issue_xen]]
-[[!meta updated="2009-09-01 00:00 UTC"]]
+[[!map pages="tagged(open_issue_xen) and !open_issues and !*/discussion"
+show=title]]
-A month of the Hurd: ... .
-[[!if test="included()" then="""[[!toggle id=full_news
-text="Details."]][[!toggleable id=full_news text="[[!paste id=full_news]]"]]"""
-else="[[!paste id=full_news]]"]]
-
-[[!cut id="full_news" text="""
-> This month ...
->
-
-"""]]
+[[!inline
+pages="tagged(open_issue_xen) and !open_issues and !*/discussion"
+show=0
+feeds=no]]
diff --git a/user/scolobb.mdwn b/user/scolobb.mdwn
index 9044e278..d64ac133 100644
--- a/user/scolobb.mdwn
+++ b/user/scolobb.mdwn
@@ -23,6 +23,11 @@ tree of the node the translator is mounted onto.
For documentation, see [[hurd/translator/unionmount]].
+At the Final Evaluation, this project was given a passing evaluation
+by **antrik**. This means that the union-mount functionality is
+working and has been tested normally to collaborate with
+`eth-multiplexer`.
+
---
## Roadmap
@@ -195,14 +200,6 @@ For documentation, see [[hurd/translator/unionmount]].
filesystem will not obscure the `unionfs`'s one because the mountee
is *not attached* to the root node.
-### TODO
-
-(Dates in brackets show the *expected* completion date)
-
-* **Wrap up the project for upstream inclusion.** *(28 Aug)*
- `unionmount` is intended to be included upstream, therefore it
- should be mostly complete and polished by the end of GSoC.
-
---
# Google Summer of Code: 2008 Project: Namespace-based translator selection