summaryrefslogtreecommitdiff
path: root/hurd
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2009-05-01 02:24:43 +0200
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2009-05-01 02:24:43 +0200
commit6119b39385d8a6f352474a862ee56eddf0bd3224 (patch)
tree0ef69858d9d5d8b4b5c1c9bd104199c774daad58 /hurd
parentd0a62a4d27708547f9f64979ec797d7c15c3a701 (diff)
parente100a2b696891c93f96b99aabf4f067716427690 (diff)
Merge branch 'master' of flubber:~hurd-web/hurd-web
Diffstat (limited to 'hurd')
-rw-r--r--hurd/faq/old-stuff.mdwn2
-rw-r--r--hurd/hurd_hacking_guide.mdwn2
-rw-r--r--hurd/porting.mdwn14
-rw-r--r--hurd/porting/guidelines.mdwn237
-rw-r--r--hurd/porting/system_api_limitations.mdwn31
-rw-r--r--hurd/running/debian/BtsFiling.mdwn52
-rw-r--r--hurd/running/debian/GnuDebianRelationship.mdwn4
-rw-r--r--hurd/running/debian/porting.mdwn5
-rw-r--r--hurd/running/distrib.mdwn6
-rw-r--r--hurd/running/gnu/universal_package_manager.mdwn1
-rw-r--r--hurd/running/qemu.mdwn5
-rw-r--r--hurd/translator/fatfs.mdwn6
12 files changed, 303 insertions, 62 deletions
diff --git a/hurd/faq/old-stuff.mdwn b/hurd/faq/old-stuff.mdwn
index 1bcc09a0..e4132d50 100644
--- a/hurd/faq/old-stuff.mdwn
+++ b/hurd/faq/old-stuff.mdwn
@@ -28,7 +28,7 @@ If you still have problems, do not hesitate to make use of the [[mailing_lists]]
* These are different versions of the Mach microkernel that supports the Hurd that runs on top of it. For more info, see [[Mach]]
* **_What software is available for GNU?_**
- * Most packages from [Debian](http://www.debian.org/) [GNU/Linux](http://www.gnu.org/gnu/linux-and-gnu.html) which aren't linux-specific ([Packages That Won't Be Ported](http://www.debian.org/ports/hurd/hurd-devel-debian)) are expected to work on GNU/Hurd too. See the database in <http://packages.debian.org/>. Programs which need pthreads, including [GNOME](http://www.gnome.org), [KDE](http://www.kde.org), [Mozilla](http://www.mozilla.org), [OpenOffice](http://www.openoffice.org), [SDL](http://www.libsdl.org), etc. are being worked on currently using Neal Walfields libpthreads. See the [[Distrib/PortingIssues]] document for some common build problems and their solutions.
+ * Most packages from [Debian](http://www.debian.org/) [GNU/Linux](http://www.gnu.org/gnu/linux-and-gnu.html) which aren't linux-specific ([Packages That Won't Be Ported](http://www.debian.org/ports/hurd/hurd-devel-debian)) are expected to work on GNU/Hurd too. See the database in <http://packages.debian.org/>. Programs which need pthreads, including [GNOME](http://www.gnome.org), [KDE](http://www.kde.org), [Mozilla](http://www.mozilla.org), [OpenOffice](http://www.openoffice.org), [SDL](http://www.libsdl.org), etc. are being worked on currently using Neal Walfields libpthreads. See the [[porting/guidelines]] document for some common build problems and their solutions.
* If you can't fetch a package with "apt-get install ", try building it from source: "apt-get source &amp;&amp; cd &lt;package\_dir&gt; &amp;&amp; debian/rules binary".
* As of January 2007, 50% of Debian packages have been ported on the Hurd. Of course, bug testing is welcome.
diff --git a/hurd/hurd_hacking_guide.mdwn b/hurd/hurd_hacking_guide.mdwn
index 2ef08f8a..6ee5b2f2 100644
--- a/hurd/hurd_hacking_guide.mdwn
+++ b/hurd/hurd_hacking_guide.mdwn
@@ -13,6 +13,8 @@ introduction to GNU Hurd and GNU Mach programming, an overview of some of the
Hurd's features. It also contains a tutorial on writing your own
[[translator]].
+Before using the code in the example (trivfs) please do read the Changelog. A lot of changes might have taken place.
+
* [HTML version](http://www.gnu.org/software/hurd/hacking-guide/hhg.html) for
browsing online,
* [PostScript version](http://www.gnu.org/software/hurd/hacking-guide/hhg.ps)
diff --git a/hurd/porting.mdwn b/hurd/porting.mdwn
new file mode 100644
index 00000000..d1900f0b
--- /dev/null
+++ b/hurd/porting.mdwn
@@ -0,0 +1,14 @@
+[[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]]."]]"""]]
+
+ * [[Guidelines]]
+ * [[System_API_Limitations]]
+
+ * Debian: [[running/debian/Porting]]
diff --git a/hurd/porting/guidelines.mdwn b/hurd/porting/guidelines.mdwn
new file mode 100644
index 00000000..f9fac668
--- /dev/null
+++ b/hurd/porting/guidelines.mdwn
@@ -0,0 +1,237 @@
+[[meta copyright="Copyright © 2002, 2003, 2005, 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
+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]]."]]"""]]
+
+This is a compilation of common porting problems and their solutions.
+
+
+Additionally to this page, also see the section *General Porting Issues* of
+<http://www.debian.org/ports/hurd/hurd-devel-debian><!-- TODO: merge these two
+pages. -->, as well as further Debian-specific [[running/debian/porting]]
+information.
+
+There is a separate page about [[System_API_Limitations]].
+
+You may ask on the [[mailing_lists/bug-hurd]] mailing list for details or
+questions about fixing bugs.
+
+
+## <a name="Undefined_bits_confname_h_tt_mac"> Undefined `bits/confname.h` macros (`PIPE_BUF`, ...) </a>
+
+If macro `XXX` is undefined, but macro `_SC_XXX` or `_PC_XXX` is defined in `bits/confname.h`, you probably need to use `sysconf`, `pathconf` or `fpathconf` to obtain it dynamicaly.
+
+The following macros have been found in this offending situation (add more if you find them): `PIPE_BUF`
+
+An example with `sysconf`: (when you find a `sysconf` offending macro, put a better example)
+
+ #ifndef XXX
+ #define XXX sysconf(_SC_XXX)
+ #endif
+ /* offending code using XXX follows */
+
+An example with `fpathconf`:
+
+ #ifdef PIPE_BUF
+ read(fd, buff, PIPE_BUF - 1);
+ #else
+ read(fd, buff, fpathconf(fd, _PC_PIPE_BUF) - 1);
+ #endif
+ /* note we can't #define PIPE_BUF, because it depends
+ on the "fd" variable */
+
+## <a name="Bad_File_Descriptor"> Bad File Descriptor </a>
+
+If you get Bad File Descriptor error when trying to read from a file (or accessing it at all), check the `open()` invocation. The second argument is the access method. If it is a hard coded number instead of a symbol defined in the standard header files, the code is screwed and should be fixed to either use `O_RDONLY`, `O_WRONLY` or `O_RDWR`. This bug was observed in the `fortunes` and `mtools` packages for example.
+
+## <a name="PATH_MAX_tt_MAX_PATH_tt_MAXPATHL"> `PATH_MAX` / `MAX_PATH` / `MAXPATHLEN` </a>
+
+Every unconditionalized use of `PATH_MAX`, `MAX_PATH` or `MAXPATHLEN` is a POSIX incompatibility. If there is no upper limit on the length of a path (as its the case for GNU), this symbol is not defined in any header file. Instead, you need to either use a different implementation that does not rely on the length of a string or use `sysconf()` to query the length at runtime. If `sysconf()` returns -1, you have to use `realloc()` to allocate the needed memory dynamically. Usually it is thus simpler to just use dynamic allocation. Sometimes the amount is actually known. Else, a geometrically growing loop can be used: for instance, see [Alioth patch](http://alioth.debian.org/tracker/download.php/30628/410472/303735/1575/cpulimit-path-max-fix.patch) or [Pulseaudio patch](http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=5;filename=patch-pulse;att=1;bug=522100). Note that in some cases there are GNU extensions that just work fine: when the `__GLIBC__` macro is defined, `getcwd()` calls can be just replaced by `get_current_dir_name()` calls.
+
+## <a name="ARG_MAX"> `ARG_MAX` </a>
+
+Same rationale as `PATH_MAX`. There is no limit on the number of arguments.
+
+## <a name="IOV_MAX"> `IOV_MAX` </a>
+
+Same rationale as `PATH_MAX`. There is no limit on the number of iovec items.
+
+## <a name="MAXHOSTNAMELEN_tt_"> `MAXHOSTNAMELEN` </a>
+
+Same as `PATH_MAX`. When you find a `gethostname()` function, which acts on a static buffer, you can replace it with Neal's [xgethostname function](http://ftp.walfield.org/pub/people/neal/xgethostname/) which returns the hostname as a dynamic buffer. For example:
+
+Buggy code:
+
+ char localhost[MAXHOSTNAMELEN];
+ ...
+ gethostname(localhost, sizeof(localhost));
+
+Fixed code:
+
+ #include "xgethostname.h"
+ ...
+ char *localhost;
+ ...
+ localhost = xgethostname();
+ if (! localhost)
+ {
+ perror ("xgethostname");
+ return ERROR;
+ }
+ ...
+ /* use LOCALHOST. */
+ free (localhost);
+
+## <a name="NOFILE_tt_"> `NOFILE` </a>
+
+Replace with `getrlimit(RLIMIT_NOFILE,...)`
+
+## <a name="GNU_specific_define_tt_"> </a> GNU specific `#define`
+
+If you need to include specific code for GNU/Hurd using `#if` ... `#endif`, then you can use the `__GNU__` symbol to do so. But think (at least) thrice! before doing so. In most situations, this is completely unnecessary and will create more problems than it may solve. Better ask on the mailing list how to do it right if you can't think of a better solution.
+
+## <a name="sys_errlist_tt_vs_strerror_tt_"> `sys_errlist[]` vs. `strerror()` </a>
+
+If a program has only support for `sys_errlist[]` you will have to do some work to make it compile on GNU, which has dropped support for it and does only provide `strerror()`. Steinar Hamre writes about `strerror()`:
+
+`strerror()` should be used because:
+
+* It is the modern, POSIX way.
+* It is localized.
+* It handles invalid signals/numbers out of range. (better errorhandling and not a buffer-overflow-candidate/security risk)
+
+`strerror()` should always be used if it is available. Unfortunaly there are still some old non-POSIX systems that do not have `strerror()`, only `sys_errlist[]`.
+
+Today, only supporting `strerror()` is far better than only supporting `sys_errlist[]`. The best (from a portability viewpoint), however is supporting both. For configure.in, you will need:
+
+ AC_CHECK_FUNCS(strerror)
+
+To `config.h.in`, you need to add:
+
+ #undef HAVE_STRERROR
+
+Then something like:
+
+ #ifndef HAVE_STRERROR
+ static char *
+ private_strerror (errnum)
+ int errnum;
+ {
+ extern char *sys_errlist[];
+ extern int sys_nerr;
+
+ if (errnum > 0 && errnum <= sys_nerr)
+ return sys_errlist[errnum];
+
+ return "Unknown system error";
+ }
+ #define strerror private_strerror
+ #endif /* HAVE_STRERROR */
+
+You can for example look in the latest coreutils (the above is a simplified version of what I found there.) Patches should of course be sent to upstream maintainers, this is very useful even for systems with a working `sys_errlist[]`.
+
+Of course, if you don't care about broken systems (like MS-DOG) not supporting `strerror()` you can just replace `sys_errlist[]` directly (upstream might not accept your patch, but debian should have no problem)
+
+## <a name="C++_error_t"> C++, `error_t` and `E*` </a>
+
+On the Hurd, `error_t` is an enumeration of the `E*` constants. However, C++
+does not like `E*` integer macros being directly assigned to that enumeration. In short, replace
+
+ error_t err = EINTR;
+
+by
+
+ error_t err = error_t(EINTR);
+
+## <a name="Filenames_ending_in_a_slash_"> Filenames ending in a slash \`/' </a>
+
+Those are evil if they don't exist and you want to name a directory this way. For example, `mkdir foobar/` will not work on GNU. This is POSIX compatible. POSIX says that the path of a directory may have slashes appended to it. But the directory does not exist yet, so the path does not refer to a directory, and hence trailing slashes are not guaranteed to work. Just drop the slashes, and you're fine.
+
+## <a name="Missing_termio_h_tt_"> Missing `termio.h` </a>
+
+Change it to use `termios.h` (check for it properly with autoconf `HAVE_TERMIOS_H` or the `__GLIBC__` macro)
+
+Also, change calls to `ioctl(fd, TCGETS, ...)` and `ioctl(fd, TCSETS, ...)` with `tcgetattr(fd, ...)` and `tcsetattr(fd, ...)`.
+
+## <a name="AC_HEADER_TERMIO_tt_"> `AC_HEADER_TERMIO` </a>
+
+The autoconf check for `AC_HEADER_TERMIO` tryes to check for termios, but it's only really checking for termio in `termios.h`. It is better to use `AC_CHECK_HEADERS(termio.h termios.h)`
+
+## <a name="_IOT"> missing `_IOT` </a>
+
+This comes from ioctls. Fixing this is easy if the structure members can be expressed by using the _IOT() macro, else it's simply impossible... See `bits/termios.h` for an instance:
+
+`#define _IOT_termios /* Hurd ioctl type field. */ \
+ _IOT (_IOTS (tcflag_t), 4, _IOTS (cc_t), NCCS, _IOTS (speed_t), 2)`
+
+because `struct termios` holds 4 members of type `tcflag_ts`, then `NCCS`
+members of type `cc_tsi` and finaly 2 members of type `speed_ts`.
+
+As you can see, this limits the number of kinds of members to 3, and in
+addition to that (see the bitfield described in `ioctls.h`), the third
+kind of member is limited to 3 members. However, since at the API
+compatibility layer you are generally allowed to reorder fields in
+structures, you can usually manage to fit into these limits.
+
+Note: if a field member is a pointer, then the ioctl can't be expressed
+this way, and that makes sense, since the server you're talking to
+doesn't have direct access to your memory. Ways other than ioctls must
+then be found.
+
+## <a name="SA_SIGINFO"> `SA_SIGINFO` </a>
+
+Not implemented, packages may be fixed for working around this: use void sighandler(int num) prototype and sa_handler field.
+
+## <a name="SOL_IP"> `SOL_IP` </a>
+
+Not implemented yet.
+
+## <a name="HZ"> `HZ` </a>
+
+Linuxish and doesn't even make sense since the value may vary according to the running kernel. Should use `sysconf(_SC_CLK_TCK)` or `CLK_TCK` instead.
+
+## <a name="SIOCDEVPRIVATE"> `SIOCDEVPRIVATE` </a>
+
+Oh, we should probably provide it.
+
+## <a name="MAP_NORESERVE"> `MAP_NORESERVE` </a>
+
+Not POSIX, but we could implement it.
+
+## <a name="O_DIRECT"> `O_DIRECT` </a>
+
+Long story to implement.
+
+## <a name="PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP"> `PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP` </a>
+
+We could easily provide it;
+
+## <a name="PTHREAD_STACK_MIN"> `PTHREAD_STACK_MIN` </a>
+
+We should actually provide it.
+
+## <a name="types"> `linux/types.h` or `asm/types.h` </a>
+
+These are not POSIX, `sys/types.h` and `stdint.h` should be used instead.
+
+## <a name="iopl"> `iopl` </a>
+
+Not supported. Try to replace with `ioperm(0, 65536, 1)` (conditionned with `__GNU__` as that will not work in Linux).
+
+## <a name="iopl"> `semget`, `sem_open` </a>
+
+Not implemented, will always fail. Use `sem_init()` instead if possible.
+
+## <a name="net/..."> `net/if_arp.h`, `net/ethernet.h`, etc. </a>
+
+Not implemented, not POSIX. Try to disable the feature in the package.
+
+## <a name="broken_libc6_dependency"> broken libc6 dependency </a>
+
+Some packages use an erroneous dependency on `libc6-dev`. This is incorrect because `libc6` is specific to GNU/Linux. The corresponding package for GNU is `libc0.3-dev` but other OSes will have different ones. You can locate the problem in the `debian/control` file of the source tree. Typical solutions include detecting the OS using `dpkg-architecture` and hardcoding the soname, or better, use a logical OR. eg: `libc6-dev | libc0.3-dev | libc-dev`. The `libc-dev` is a virtual package that works for any soname but you have to put it only as the last option.
diff --git a/hurd/porting/system_api_limitations.mdwn b/hurd/porting/system_api_limitations.mdwn
new file mode 100644
index 00000000..83a54654
--- /dev/null
+++ b/hurd/porting/system_api_limitations.mdwn
@@ -0,0 +1,31 @@
+[[meta copyright="Copyright © 2003, 2004, 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]]."]]"""]]
+
+Sometimes building or running a program will fail due to bugs in the system API
+implementation (in [[glibc]] and the [[Hurd]]). Make sure you check this list
+and know them before porting, otherwise you'll end up debugging something just
+to find out its an already known bug.
+
+Taken from the bug lists in [[running/Debian]] BTS. If you find more of them
+(and it is clear in the bug log that it is a bug), please add them to the list
+below.
+
+These are the known system API limits that have porting implications.
+
+**_[\#47998](http://bugs.debian.org/47998): `msgget` IPC not implemented_**
+
+**_[\#184565](http://bugs.debian.org/184565): libc0.3: missing shm\* functions (from `<sys/shm.h>`)_**<br />**breaks:** cdrtools<br />**error:** warning: shm\* is not implemented and will always fail
+
+**_[\#190581](http://bugs.debian.org/190581): nice() doesn't work_**<br />**breaks:** coreutils<br />**error:** `nice()` doesn't take effect on some situations
+
+**_[\#187391](http://bugs.debian.org/187391): libc0.3-dev: `sockaddr_un.sun_path` can't be assigned a `const char *` when compiling with g++_**<br />**breaks:** fam, gail<br />**status:** maybe this should be in [[PortingIssues]] (see _long_ bug log)
+
+**_[\#190367](http://bugs.debian.org/190367): libc0.3-dev: `fcntl` `F_GETLK` not implemented (`ENOSYS`)_**<br />**breaks:** gnome-session (and others) from running<br />**error:** misc lock-related errors
diff --git a/hurd/running/debian/BtsFiling.mdwn b/hurd/running/debian/BtsFiling.mdwn
deleted file mode 100644
index 90f451a8..00000000
--- a/hurd/running/debian/BtsFiling.mdwn
+++ /dev/null
@@ -1,52 +0,0 @@
-When you encounter any GNU/Hurd related bugs in a Debian package you can fix, please use the Debian BTS (Bug Tracking System) to report them.
-
-Managing Debian packages and using the BTS is quite simple. If you're new to Debian, here's a short guide:
-
-* first of all, check [http://bugs.debian.org/&lt;package&gt;](http://bugs.debian.org) to ensure the problem is not in the BTS already. This is possible for packages and bug numbers. [[TWiki/InterWikis]] is a shorthand way of linking to bugs and packages from this site. i.e. [[DebianBug]]:hurd [[DebianPackage]]:oskit
-* you can fetch package sources with:
-
- apt-get source <package>
-
-note: this should unpack already
-
-* and unpack with:
-
- dpkg-source -x <package>x-y_z.dsc
-
-* then get all dependencies:
-
- apt-get -y build-dep <package>
-
-note: if some dependencies are missing, it most probably means you have to port them first. follow this instructions recursively until done
-
- :)
-
-* Debian packages have a makefile in debian/rules, with (at least) the following targets: <dl>
- <dt> build</dt>
- <dd> Yup, to build </dd>
- <dt> binary</dt>
- <dd> Generates deb files in <code>../</code></dd>
- <dt> clean</dt>
- <dd> Full clean </dd>
-</dl>
-
-* when you have a patch, send it to the BTS using the reportbug utility (or manually as explained in <http://bugs.debian.org/)>. The following parameters should be used:
-
- Severity: important (when the package is unbuildable or uninstallable, lower otherwise.)
- Tags: sid, patch
-
-* be nice to the maintainers. most are friendly and cooperative, and a few could annoy you for months before applying. Be patient.
-
-Read <http://bugs.debian.org/> for extensive documentation on the BTS.
-
--- [[Main/RobertMillan]] - 10 Jun 2002
-
-----
-
-Wikification &amp; small changes.
-
--- [[Main/JoachimNilsson]] - 24 Jun 2002
-
-Updates with the new [[TWiki/InterWikis]] rules.
-
--- [[Main/GrantBow]] - 15 Jan 2003
diff --git a/hurd/running/debian/GnuDebianRelationship.mdwn b/hurd/running/debian/GnuDebianRelationship.mdwn
index ede808c8..94fd6265 100644
--- a/hurd/running/debian/GnuDebianRelationship.mdwn
+++ b/hurd/running/debian/GnuDebianRelationship.mdwn
@@ -2,11 +2,11 @@ I have hesitated in starting this page due to the sensitive nature of this relat
This is a work in progress. Please email me directly if you have comments or suggestions.
-* Debian Advantages of Hurd [[Distrib/PortingIssues]] Efforts
+* Debian Advantages of Hurd [[porting/guidelines]] Efforts
* One of the first ports to non-Linux system along with \*BSD and win32.
* Official GNU system distribution.
-* Debian Disadvantages of Hurd [[Distrib/PortingIssues]] Efforts
+* Debian Disadvantages of Hurd [porting/guidelines]] Efforts
* Perceived zealous GNU and FSF promotion.
* Hurd Port Advantages of Debian
diff --git a/hurd/running/debian/porting.mdwn b/hurd/running/debian/porting.mdwn
index eb46c4c3..3ad25e01 100644
--- a/hurd/running/debian/porting.mdwn
+++ b/hurd/running/debian/porting.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
@@ -30,6 +31,8 @@ that need someone to work on them.
When you have a patch to submit, please adhere to the [[patch_submission]]
guidelines.
+There is also further information available about [[hurd/porting]].
+
[[inline
pages="hurd/running/debian/porting/* and !*/discussion"
show=0
diff --git a/hurd/running/distrib.mdwn b/hurd/running/distrib.mdwn
index 935c0c2d..bbf0a380 100644
--- a/hurd/running/distrib.mdwn
+++ b/hurd/running/distrib.mdwn
@@ -68,7 +68,7 @@ about getting applications to work (if possible).
</dl>
<dl>
- <dt>[[PortingIssues]] FAQ</dt>
+ <dt>[[porting/guidelines]] FAQ</dt>
<dd> What does it take to move a piece of Debian packaged software to the GNU/Hurd port? </dd>
</dl>
@@ -79,7 +79,7 @@ about getting applications to work (if possible).
<dl>
<dt> Debain Infrastructure</dt>
- <dd> Testing is critical in helping the development effort. Bugs (defect reports) can be filed against the Debian software package in which they are found. [[BtsFiling]] tells how to file a Debian bug report. [[DebianPackages]] has some information about how Debian splits the software into packages and some references. There is a buildd autobuilder compiling the Debian Sid archive software for the GNU/Hurd port. [[BuilddStatus]] includes information on the buildd &amp;amp; turtle efforts. </dd>
+ <dd> Testing is critical in helping the development effort. Bugs (defect reports) can be filed against the Debian software package in which they are found. [[debian/patch_submission]] tells how to file a Debian bug report. [[DebianPackages]] has some information about how Debian splits the software into packages and some references. There is a buildd autobuilder compiling the Debian Sid archive software for the GNU/Hurd port. [[BuilddStatus]] includes information on the buildd &amp;amp; turtle efforts. </dd>
</dl>
<dl>
@@ -95,7 +95,7 @@ about getting applications to work (if possible).
* GNU [Coding Standards](http://www.gnu.org/prep/standards.html)
* [[TestSuites]] - Posix, Perl, results feedback, etc.
* [[Documentation]]
-* [[SystemAPILimits]]
+* [[System_API_Limitations]]
* [[CodeAnnouncements]] - Recent coding projects related to the Hurd
<dl>
diff --git a/hurd/running/gnu/universal_package_manager.mdwn b/hurd/running/gnu/universal_package_manager.mdwn
index 440f1122..5a160409 100644
--- a/hurd/running/gnu/universal_package_manager.mdwn
+++ b/hurd/running/gnu/universal_package_manager.mdwn
@@ -151,3 +151,4 @@ To join the project just list your name below.
5. Nidhin Raghavan
6. Ajish.B
7. Ambili.B
+ 8. Abhradip Mukherjee
diff --git a/hurd/running/qemu.mdwn b/hurd/running/qemu.mdwn
index f13ef5c8..d5f27311 100644
--- a/hurd/running/qemu.mdwn
+++ b/hurd/running/qemu.mdwn
@@ -15,7 +15,7 @@ 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. -[[community/weblogs/ArneBab]]
+ 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]]
<!--* [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. //-->
@@ -78,6 +78,9 @@ The Hurd [[`fatfs`_translator|translator/fatfs]] currently is read-only, but
for testing executables (etc.) that is enough. And it is much easier than
loop-mounting the file systems images. (Also you don't need `root' rights.)
+However, note that there is a bug in [[translator/fatfs]]: [[GNU_Savannah_bug
+25961]].
+
# Networking in QEMU
diff --git a/hurd/translator/fatfs.mdwn b/hurd/translator/fatfs.mdwn
index b534b97e..fd537896 100644
--- a/hurd/translator/fatfs.mdwn
+++ b/hurd/translator/fatfs.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,4 +9,5 @@ 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]]."]]"""]]
-The current `fatfs` translator is read-only.
+The current `fatfs` translator is read-only, and it has a severe bug:
+[[GNU_Savannah_bug 25961]].