summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.templates/autotag.tmpl2
-rw-r--r--community/gsoc.mdwn36
-rw-r--r--community/gsoc/project_ideas.mdwn8
-rw-r--r--community/gsoc/project_ideas/physical_memory_management.mdwn51
-rw-r--r--community/meetings.mdwn7
-rw-r--r--community/meetings/debconf15.mdwn25
-rw-r--r--community/meetings/fosdem_2010.mdwn25
-rw-r--r--community/meetings/fosdem_2013.mdwn10
-rw-r--r--community/meetings/fosdem_2014.mdwn12
-rw-r--r--community/meetings/fosdem_2015.mdwn47
-rw-r--r--config_edittemplate/open_issue_page.mdwn2
-rw-r--r--config_edittemplate/regular_page.mdwn2
-rw-r--r--contributing.mdwn38
-rw-r--r--contributing/web_pages.mdwn13
-rw-r--r--contributing/web_pages/news/skeleton.mdwn2
-rw-r--r--copyright.mdwn2
-rw-r--r--documentation.mdwn44
-rw-r--r--faq/2_gib_partition_limit.mdwn4
-rw-r--r--faq/drivers.mdwn27
-rw-r--r--faq/fsck.mdwn (renamed from faq/fd.mdwn)18
-rw-r--r--faq/libpthread_dlopen.mdwn12
-rw-r--r--faq/off.mdwn30
-rw-r--r--faq/old_faq.txt12
-rw-r--r--faq/release.mdwn10
-rw-r--r--faq/software.mdwn2
-rw-r--r--glibc.mdwn8
-rw-r--r--history.mdwn11
-rw-r--r--hurd-paper.html23
-rw-r--r--hurd.mdwn5
-rw-r--r--hurd/ada4hurd.mdwn68
-rw-r--r--hurd/documentation.mdwn23
-rw-r--r--hurd/documentation/netfs_ada_results.mdwn295
-rw-r--r--hurd/libfuse.mdwn2
-rw-r--r--hurd/libstore/examples/ramdisk.mdwn7
-rw-r--r--hurd/libstore/nbd_store.mdwn15
-rw-r--r--hurd/networking.mdwn17
-rw-r--r--hurd/porting/guidelines.mdwn8
-rw-r--r--hurd/running.mdwn1
-rw-r--r--hurd/running/chroot.mdwn4
-rw-r--r--hurd/running/debian/CrossInstall.mdwn6
-rw-r--r--hurd/running/debian/dhcp.mdwn18
-rw-r--r--hurd/running/debian/qemu_image.mdwn2
-rw-r--r--hurd/running/distrib.mdwn11
-rw-r--r--hurd/running/nix.mdwn2
-rw-r--r--hurd/running/qemu.mdwn29
-rw-r--r--hurd/running/qemu/babhurd_image.mdwn3
-rw-r--r--hurd/running/qemu/microsoft_windows.mdwn2
-rw-r--r--hurd/running/qemu/networking.mdwn2
-rw-r--r--hurd/running/virtualbox.mdwn4
-rw-r--r--hurd/status.mdwn9
-rw-r--r--hurd/translator/pfinet/ipv6.mdwn8
-rw-r--r--index.mdwn5
-rw-r--r--index/discussion.mdwn34
-rw-r--r--media_appearances.mdwn29
-rw-r--r--microkernel/mach/deficiencies.mdwn2
-rw-r--r--microkernel/mach/external_pager_mechanism.mdwn8
-rw-r--r--microkernel/mach/gnumach.mdwn6
-rw-r--r--microkernel/mach/gnumach/boot_trace.mdwn191
-rw-r--r--microkernel/mach/gnumach/debugging.mdwn5
-rw-r--r--microkernel/mach/gnumach/hardware_compatibility_list.mdwn7
-rw-r--r--microkernel/mach/gnumach/ports/xen.mdwn87
-rw-r--r--microkernel/mach/history.mdwn3
-rw-r--r--microkernel/mach/mig/gnu_mig.mdwn6
-rw-r--r--news/2015-03-20-gsoc.mdwn (renamed from faq/sudo.mdwn)11
-rw-r--r--news/2015-04-10-releases.mdwn55
-rw-r--r--news/2015-04-29-debian_gnu_hurd_2015.mdwn46
-rw-r--r--news/2015-10-31-releases.mdwn169
-rw-r--r--open_issues/_san.mdwn12
-rw-r--r--open_issues/automatically_checking_port_deallocation.mdwn10
-rw-r--r--open_issues/blkrrpart_ioctl.mdwn32
-rw-r--r--open_issues/code_analysis.mdwn8
-rw-r--r--open_issues/console_vs_xorg.mdwn13
-rw-r--r--open_issues/e2fsck_i_file_acl_hi.mdwn9
-rw-r--r--open_issues/ext2fs_dtime.mdwn21
-rw-r--r--open_issues/gcc.mdwn24
-rw-r--r--open_issues/glibc/static.mdwn34
-rw-r--r--open_issues/gnumach_PCI_access.mdwn18
-rw-r--r--open_issues/kill_setuid.mdwn49
-rw-r--r--open_issues/kvm.mdwn12
-rw-r--r--open_issues/libpthread_dlopen.mdwn13
-rw-r--r--open_issues/perl.mdwn12
-rw-r--r--open_issues/problematic_packages.mdwn (renamed from faq/apt_umount.mdwn)27
-rw-r--r--open_issues/procfs_umount.mdwn24
-rw-r--r--open_issues/ssh.mdwn3
-rw-r--r--open_issues/symlink_translator.mdwn24
-rw-r--r--open_issues/virtualization/fakeroot.mdwn4
-rw-r--r--open_issues/virtualization/networking.mdwn72
-rw-r--r--open_issues/wine.mdwn10
-rw-r--r--overview.mdwn89
-rw-r--r--public_hurd_boxen/installation/darnassus.mdwn157
-rw-r--r--sidebar.mdwn12
-rw-r--r--toolchain/cross-gnu.mdwn2
-rw-r--r--unsorted/CrossHurd.mdwn4
-rw-r--r--unsorted/MakeImage.mdwn2
94 files changed, 1746 insertions, 639 deletions
diff --git a/.templates/autotag.tmpl b/.templates/autotag.tmpl
index de885b73..b21ed9ed 100644
--- a/.templates/autotag.tmpl
+++ b/.templates/autotag.tmpl
@@ -1,4 +1,4 @@
-[[!meta copyright="Copyright © 2014 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2015 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
diff --git a/community/gsoc.mdwn b/community/gsoc.mdwn
index 5a373014..bd68b3fa 100644
--- a/community/gsoc.mdwn
+++ b/community/gsoc.mdwn
@@ -1,4 +1,4 @@
-[[!meta copyright="Copyright © 2008, 2009, 2010, 2011, 2012, 2013, 2014 Free
+[[!meta copyright="Copyright © 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Free
Software Foundation, Inc."]]
[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
@@ -12,26 +12,28 @@ License|/fdl]]."]]"""]]
[[!meta title="Google Summer of Code"]]
<!--
-The Google Summer of Code 2013 is over. Chances are that we will again be
-participating in 2014, stay tuned.
+The Google Summer of Code 2014 is over. Chances are that we will again be
+participating in 2015, stay tuned.
-->
We're in! The GNU Hurd project is again participating in the [Google Summer of
Code](http://www.google-melange.com/) under the [GNU
umbrella](http://www.gnu.org/software/soc-projects/).
-Per the [Google Summer of Code 2014 Program
-Timeline](http://www.google-melange.com/gsoc/events/google/gsoc2014), on
-Monday, from 2014-03-10 to 2014-03-21, it's the *student application period*,
-which
-is plenty of time for preparing and discussing your applications -- but please
-don't wait to the last minute!
-
-<!--
This year's *student application period* is over. Thanks for sending in your
applications! We're now reviewing and discussing these, so please pay
attention to any questions posted on your proposal's page. The Google site's
notification system should be sending out emails, too.
+
+Per the [Google Summer of Code 2015 Program
+Timeline](http://www.google-melange.com/gsoc/events/google/gsoc2015),
+we're now waiting for Google to announce the number of slots that the whole GNU
+project gets, and we'll be discussing with our GNU peers about how to split
+these up among all the GNU subprojects.
+<!--
+from 2015-03-16 to 2015-03-27, it's the *student application period*, which
+is plenty of time for preparing and discussing your applications -- but please
+don't wait to the last minute!
-->
As we only have finite resources (meaning that we won't be able to accept all
@@ -64,15 +66,6 @@ how to do `X`, can someone please help me?* And, as we're not working next to
each other in a conventional office or university setup, we'll need to
establish and get used to different communication channels.
-<!--
-[Timeline](http://www.google-melange.com/gsoc/events/google/gsoc2013).
-
-As
-boring as it is, but the next step is waiting: we will have to wait for Google
-to announce the number of slots that the whole GNU project gets, and we'll be
-discussing with our GNU peers about how to split these up among all the GNU
-subprojects.
--->
# Possible projects
@@ -99,6 +92,7 @@ with Hurd development, even outside of the GSoC context. Please don't hesitate
to contact us regarding mentoring even if it's not GSoC time at the moment, or
if you aren't a student anyway.
+
# History
In 2006 and [[2007]], we participated in GSoC under the umbrella of the GNU
@@ -107,4 +101,4 @@ participated on our own, instead of as a suborganization of the GNU project.
Read about our five students' success on the [[2008]] page. In the next years,
we again participated under the GNU umbrella with one slot in [[2009]], three
in [[2010]], one in [[2011]], two in [[2012]], three in [[2013]] (one GNU, one
-GCC, one Debian).
+GCC, one Debian), one in [[2014]].
diff --git a/community/gsoc/project_ideas.mdwn b/community/gsoc/project_ideas.mdwn
index 262ead82..643a4240 100644
--- a/community/gsoc/project_ideas.mdwn
+++ b/community/gsoc/project_ideas.mdwn
@@ -1,5 +1,5 @@
-[[!meta copyright="Copyright © 2008, 2009, 2010, 2011, 2012, 2013, 2014 Free
-Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015
+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
@@ -97,7 +97,8 @@ All project ideas inlined:
project_ideas:
- "community/gsoc/project_ideas/language_bindings
+ "community/gsoc/project_ideas/physical_memory_management
+ community/gsoc/project_ideas/language_bindings
community/gsoc/project_ideas/virtualization
community/gsoc/project_ideas/file_locking
community/gsoc/project_ideas/gdb
@@ -105,7 +106,6 @@ project_ideas:
community/gsoc/project_ideas/nfs
community/gsoc/project_ideas/sound
community/gsoc/project_ideas/disk_io_performance
- community/gsoc/project_ideas/vm_tuning
community/gsoc/project_ideas/gnumach_cleanup
community/gsoc/project_ideas/xmlfs
community/gsoc/project_ideas/unionfs_boot
diff --git a/community/gsoc/project_ideas/physical_memory_management.mdwn b/community/gsoc/project_ideas/physical_memory_management.mdwn
new file mode 100644
index 00000000..2baa7a90
--- /dev/null
+++ b/community/gsoc/project_ideas/physical_memory_management.mdwn
@@ -0,0 +1,51 @@
+[[!meta copyright="Copyright © 2015 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="Physical memory management"]]
+
+GNU Mach is currently suffering from severe limitations caused by the way
+it manages physical memory. For example, since it requires pages to be mapped
+in kernel space in order to be used, the maximum amount of usable physical
+memory is currently around 800MB (or 1.8GB if a 2/2 split is set). And
+because the page allocator is unable to easily return blocks of contiguous
+pages, the kernel has to use virtual memory to provide contiguity.
+But the kernel virtual space is separate from the direct mapping of
+physical memory, so the larger it is, the less physical pages available.
+The size of the kernel space is currently around 200MB, with around 100MB
+for kernel objects. This small size prevents the system from achieving
+scalability, since a panic occurs when the kernel is unable to allocate
+a kernel object such as a port. In addition, the kernel uses mainly tables
+to store IPC rights. When a table is full, it is enlarged through a kernel
+specific version of realloc(). When a file system starts managing many
+files (e.g. because some of their content is cached in physical memory),
+these tables can get big enough to make realloc() fail because of
+fragmentation.
+
+The goal of this project is to make as much physical memory available as
+possible for both the kernel and applications, by rewriting the page
+allocator into a buddy allocator to support contiguous block allocations,
+using it directly instead of virtual memory as the backend of the slab
+allocator for kernel objects, and, if time allows it, transform IPC right
+tables (e.g. into radix trees) and get rid of realloc().
+
+This project requires a good understanding of virtual memory (both physical
+mappings at the MMU level and virtual mappings at the VM level), and strong
+skills in C programming. Note that some work has already been done in the
+X15 project about this, and can be reused as a reference.
+
+Useful links :
+
+ * <https://www.sceen.net/mapping-physical-memory-directly/>
+
+ * <http://git.sceen.net/rbraun/x15.git/>
+
+ * <http://git.sceen.net/rbraun/librbraun.git/blob/HEAD:/rdxtree.h>
+
+Possible mentors: Richard Braun
diff --git a/community/meetings.mdwn b/community/meetings.mdwn
index 1713ce3a..98ced949 100644
--- a/community/meetings.mdwn
+++ b/community/meetings.mdwn
@@ -1,5 +1,5 @@
-[[!meta copyright="Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
-Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014,
+2015 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,8 +13,11 @@ License|/fdl]]."]]"""]]
# Upcoming
+
# Past
+ * [[DebConf15]]
+ * [[FOSDEM_2015]]
* [[FOSDEM_2014]]
* [[GNU Hackers Meeting, 2013, Paris|ghm2013]]
* [[FOSDEM_2013]]
diff --git a/community/meetings/debconf15.mdwn b/community/meetings/debconf15.mdwn
new file mode 100644
index 00000000..f071b5d7
--- /dev/null
+++ b/community/meetings/debconf15.mdwn
@@ -0,0 +1,25 @@
+[[!meta copyright="Copyright © 2015 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="DebConf15"]]
+
+<http://debconf15.debconf.org/>
+
+ * {{$youpi_hurd}}
+
+
+[[!ymlfront data="""
+
+youpi_hurd:
+
+ "presentation (including video) by Samuel Thibault: [*Debian GNU/Hurd Status update*](https://summit.debconf.org/debconf15/meeting/298/debian-gnuhurd-status-update/)
+ ([slides](http://people.debian.org/~sthibault/hurd-i386/2015-08-17-debconf.pdf)|[video](http://meetings-archive.debian.net/pub/debian-meetings/2015/debconf15/Debian_GNUHurd_status_update.webm)|[transcript](https://people.debian.org/~sthibault/hurd-i386/2015-08-17-debconf.txt))"
+
+"""]]
diff --git a/community/meetings/fosdem_2010.mdwn b/community/meetings/fosdem_2010.mdwn
index 9def3c1c..0ef53979 100644
--- a/community/meetings/fosdem_2010.mdwn
+++ b/community/meetings/fosdem_2010.mdwn
@@ -1,4 +1,4 @@
-[[!meta copyright="Copyright © 2006, 2007, 2008, 2009, 2010 Free Software
+[[!meta copyright="Copyright © 2006, 2007, 2008, 2009, 2010, 2015 Free Software
Foundation, Inc."]]
[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
@@ -75,12 +75,23 @@ page](http://dev.haiku-os.org/wiki/FOSDEM2010AltOSDevroomSchedule)) where at
least some of us will [spend their
time](http://lists.gnu.org/archive/html/bug-hurd/2009-12/msg00080.html).
-At this very place, Olaf will be giving two presentations: [*Why is Anyone
-Still Working on the GNU
-Hurd?*](http://fosdem.org/2010/schedule/events/altos_hurd) (Sun., 10:30, Alt-OS
-Developer Room), and [*Porting KGI graphics drivers from Linux to GNU
-Hurd*](http://fosdem.org/2010/schedule/events/altos_kgi_hurd) (Sun., 13:00,
-Alt-OS Developer Room).
+At this very place, Olaf will be giving two presentations:
+
+ * {{$olaf_hurd1}}
+
+ * {{$olaf_hurd2}}
There'll be further GNU folks around; [Mini GNU Hackers Meeting at FOSDEM
Brussels 2010](http://www.gnu.org/ghm/2010/fosdem/).
+
+[[!ymlfront data="""
+
+olaf_hurd1:
+
+ "[*Why is Anyone Still Working on the GNU Hurd?*](http://fosdem.org/2010/schedule/events/altos_hurd) (Sun., 10:30, Alt-OS Developer Room)"
+
+olaf_hurd2:
+
+ "[*Porting KGI graphics drivers from Linux to GNU Hurd*](http://fosdem.org/2010/schedule/events/altos_kgi_hurd) (Sun., 13:00, Alt-OS Developer Room)."
+
+"""]]
diff --git a/community/meetings/fosdem_2013.mdwn b/community/meetings/fosdem_2013.mdwn
index 2d55e76b..5cbae067 100644
--- a/community/meetings/fosdem_2013.mdwn
+++ b/community/meetings/fosdem_2013.mdwn
@@ -1,4 +1,4 @@
-[[!meta copyright="Copyright © 2012, 2013, 2014 Free Software Foundation,
+[[!meta copyright="Copyright © 2012, 2013, 2014, 2015 Free Software Foundation,
Inc."]]
[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
@@ -61,3 +61,11 @@ http://people.debian.org/~sthibault/hurd-i386/2013-02-02-fosdem.pdf
Duration:
50m
+
+[[!ymlfront data="""
+
+thibault_hurd:
+
+ "presentation by Samuel Thibault: [*The GNU/Hurd architecture, nifty features, and latest news*](https://archive.fosdem.org/2013/schedule/event/hurd_microkernel/) ([slides](http://people.debian.org/~sthibault/hurd-i386/2013-02-02-fosdem.pdf))"
+
+"""]]
diff --git a/community/meetings/fosdem_2014.mdwn b/community/meetings/fosdem_2014.mdwn
index 655c8e2e..b68a907d 100644
--- a/community/meetings/fosdem_2014.mdwn
+++ b/community/meetings/fosdem_2014.mdwn
@@ -1,4 +1,4 @@
-[[!meta copyright="Copyright © 2012, 2013, 2014 Free Software Foundation,
+[[!meta copyright="Copyright © 2012, 2013, 2014, 2015 Free Software Foundation,
Inc."]]
[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
@@ -34,6 +34,12 @@ Bruxelles.
<https://fosdem.org/2014/schedule/track/microkernel_based_operating_systems/>
-## GNU/Hurd DDE userland device drivers (Samuel Thibault)
+ * {{$thibault_hurd}}
-<https://fosdem.org/2014/schedule/event/07_uk_dde_on_hurd/>
+[[!ymlfront data="""
+
+thibault_hurd:
+
+ "presentation by Samuel Thibault: [GNU/Hurd DDE userland device drivers](https://fosdem.org/2014/schedule/event/07_uk_dde_on_hurd/) ([slides](http://people.debian.org/~sthibault/hurd-i386/2013-02-02-fosdem.pdf), [video](http://video.fosdem.org/2014/H2214/Sunday/GNUHurd_DDE_userland_device_drivers.webm))"
+
+"""]]
diff --git a/community/meetings/fosdem_2015.mdwn b/community/meetings/fosdem_2015.mdwn
new file mode 100644
index 00000000..03c2009d
--- /dev/null
+++ b/community/meetings/fosdem_2015.mdwn
@@ -0,0 +1,47 @@
+[[!meta copyright="Copyright © 2012, 2013, 2014, 2015 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="FOSDEM 2015"]]
+
+<http://fosdem.org/2015>
+
+FOSDEM will take place on January 31st/February 1st at the Université Libre de
+Bruxelles.
+
+
+# Who and When
+
+[[!table class="table_style_1" data="""
+"Name","Attending","Arrival","Return"
+"Ludovic Courtès","yes","Friday afternoon","Sunday, ~17:00"
+"Manolis Ragkousis","yes","Friday, 11:00","Monday ~12:00"
+"Samuel Thibault","yes","Saturday, 09:23 BRU","Sunday, 20:14 BRU"
+"[[Thomas Schwinge|tschwinge]]","yes","Friday, 08:00, BRU","Sunday, 20:15, BRU"
+"""]]
+
+
+# Microkernels devroom
+
+[[!message-id desc="Announcement and CfP"
+"8EB88D29-62CD-405A-B41A-5A15269312D9@ksyslabs.org"]].
+
+<https://fosdem.org/2015/schedule/track/microkernels/>
+
+
+ * {{$thibault_hurd}}
+
+[[!ymlfront data="""
+
+thibault_hurd:
+
+ "presentation by Samuel Thibault: [*Along the GNU Hurd RPC way -- A starting guide to contributing to the GNU Hurd*](https://fosdem.org/2015/schedule/event/hurd/) ([slides](https://fosdem.org/2015/schedule/event/hurd/attachments/slides/684/export/events/attachments/hurd/slides/684/2015_02_01_fosdem.pdf))"
+
+"""]]
diff --git a/config_edittemplate/open_issue_page.mdwn b/config_edittemplate/open_issue_page.mdwn
index 704c9423..bc4e71bb 100644
--- a/config_edittemplate/open_issue_page.mdwn
+++ b/config_edittemplate/open_issue_page.mdwn
@@ -1,4 +1,4 @@
-[[!meta copyright="Copyright © 2014 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2015 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
diff --git a/config_edittemplate/regular_page.mdwn b/config_edittemplate/regular_page.mdwn
index a479268f..cea6f021 100644
--- a/config_edittemplate/regular_page.mdwn
+++ b/config_edittemplate/regular_page.mdwn
@@ -1,4 +1,4 @@
-[[!meta copyright="Copyright © 2014 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2015 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
diff --git a/contributing.mdwn b/contributing.mdwn
index 485bdd47..23eefdd0 100644
--- a/contributing.mdwn
+++ b/contributing.mdwn
@@ -1,5 +1,5 @@
[[!meta copyright="Copyright © 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013,
-2014 Free Software Foundation, Inc."]]
+2014, 2015 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
@@ -68,6 +68,15 @@ concepts|microkernel/mach/concepts]], [[Hurd's concepts|hurd/concepts]], the
*[[hurd/critique]]*. Until you can understand and do the basic exercises
listed there, you won't be able to significantly contribute to the Hurd.
+You can also have a look at the
+[starting guide talk](https://fosdem.org/2015/schedule/event/hurd/).
+
+In terms of building and hacking on software, the easiest way to avoid having to
+understand the whole picture from the start is install the Debian distribution,
+and patch over the Debian source code. Installing from upstream source is much
+more complexe since you would need to know which piece fits where. Building and
+installing patched packages is much more simple.
+
For more reading resources, please see these web pages, for example,
[[Hurd_documentation|hurd/documentation]] and
[[Mach_documentation|microkernel/mach/documentation]] for links to a bunch of
@@ -80,7 +89,11 @@ Here is a list of small hacks, which can serve as entries into the Hurd code for
people who would like to dive into the code but just lack a "somewhere to begin
with".
-* Some translators do not support [[hurd/fsysopts]].
+* Add `UTIME_NOW` and `UTIME_OMIT`. It is a matter of taking the BSD values, add the `#define`s to the proper header, and implement the support in `*_S_file_utimes` functions. Flávio Cruz is having a look.
+ See also [[!debbug 762677]].
+* cat /dev/null/ should fail with ENOTDIR, i.e. make libdiskfs's diskfs_S_dir_lookup properly pass the trailing / to translators (so that libtrivfs (which null is based on) trivfs_S_dir_lookup returns ENOTDIR). See also [[!debbug 785404]]
+* Some translators do not support [[hurd/fsysopts]], i.e. support for the
+file_get_fs_options and fsys_set_options RPCs.
* Extend `device_read`/`device_write` into supporting > 2TiB disk sizes.
* Make the Hurd [[hurd/console]]'s configuration use [[xkb layout/variant instead of keymap|hurd/console/discussion]].
* Add a [[futex kernel trap|microkernel/mach/gnumach/interface#futex]] to GNU Mach.
@@ -93,15 +106,16 @@ which exposes the partitions of the disk image, using parted, and
the parted-based storeio (`settrans -c foos1 /hurd/storeio -T typed
part:1:file:/home/samy/tmp/foo`). This would be libnetfs-based.
* Write [[virtio drivers for KVM|open_issues/virtio#KVM]].
-* Port valgrind. There is a whole
-[[GSoC proposal|community/gsoc/project_ideas/valgrind ]] about this, but the
-basic port could be small.
-* Add `/proc/$pid/maps`. `vminfo` already has this kind of information, it's a matter of making procfs do the same. [[!GNU_Savannah_bug 32770]]
* Move the [[mount/umount|open_issues/glibc#mount]] logic from
`utils/{,u}mount.c` into [[glibc]].
* Fix [[`/proc/self`|hurd/translator/procfs/jkoenig/discussion#self]].
-Look at `[glibc]/hurd/lookup-retry.c` for how [`FS_RETRY_MAGICAL`
+Look at `[glibc]/hurd/lookup-retry.c` for how [[`FS_RETRY_MAGICAL`
lookups|hurd/interface/dir_lookup]] work.
+* Add a tool to trace system calls, by using gnumach's Syscall-Emulation, see <http://www.gnu.org/software/hurd/gnumach-doc/Syscall-Emulation.html>
+* Improve our [[FUSE library|hurd/libfuse]].
+* Add a relatime or lazytime option to ext2fs.
+* Fix our [[open_issues/symlink_translator]].
+* Fix chmod on fifos: mkfifo foo ; sudo chmod g+w foo
<a name="porting"></a>
## Porting Packages
@@ -114,9 +128,10 @@ For guidelines, please have a look at the dedicated [[porting_page|hurd/porting]
### Debian GNU/Hurd
-Along with the official Debian "wheezy" release (but not as an official Debian
-release), in May 2013 the Debian GNU/Hurd team released [[Debian GNU/Hurd
-2013|news/2013-05-debian_gnu_hurd_2013]].
+Along with the official Debian "jessie" release (but not as an
+official Debian release), in April 2015 the [[Debian
+GNU/Hurd|hurd/running/debian]] team released [[Debian GNU/Hurd
+2015|news/2015-04-29-debian_gnu_hurd_2015]].
There is a goal of getting Debian GNU/Hurd into shape for a technology
preview for integration as a proper Debian release candidate.
@@ -127,7 +142,6 @@ packages, and are thus good candidates for porting, in order to increase
archive coverage:
* umount functionality in busybox
-* ruby1.9.1
Here is a [[list of packages that need porting|hurd/running/debian/porting]].
@@ -169,7 +183,7 @@ I'll have to think about it some more.
* Install qemu-kvm via your distros packages.
* Download the [qemu image](http://people.debian.org/~sthibault/hurd-i386/debian-hurd.img.tar.gz): `wget http://people.debian.org/~sthibault/hurd-i386/debian-hurd.img.tar.gz`
* Unpack it: `tar xf debian-hurd.img.tar.gz`
-* Run it: `qemu-kvm -m 512 -no-kvm-irqchip -drive cache=writeback,index=0,media=disk,file=debian-hurd.img` # …irq… is a currently necessary fix due to some changes in Linux. Optionally use `--curses` to keep your keyboard layout. If need be modprobe kvm_amd, kvm intel and kvm to get kvm support (which is much, much faster). See also: [kvm FAQ](http://www.linux-kvm.org/page/FAQ).
+* Run it: `qemu-kvm -m 512 -no-kvm-irqchip -drive cache=writeback,file=debian-hurd.img` # …irq… is a currently necessary fix due to some changes in Linux. Optionally use `--curses` to keep your keyboard layout. If need be modprobe kvm_amd, kvm intel and kvm to get kvm support (which is much, much faster). See also: [kvm FAQ](http://www.linux-kvm.org/page/FAQ).
* login as root
* `apt-get update`
* `apt-get install -y git mercurial emacs vim`
diff --git a/contributing/web_pages.mdwn b/contributing/web_pages.mdwn
index 84e5af14..cb05be8e 100644
--- a/contributing/web_pages.mdwn
+++ b/contributing/web_pages.mdwn
@@ -1,5 +1,5 @@
-[[!meta copyright="Copyright © 2007, 2008, 2009, 2010, 2011, 2013, 2014 Free
-Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008, 2009, 2010, 2011, 2013, 2014, 2015
+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
@@ -94,6 +94,15 @@ editing endeavours you're going to undertake. Doing so should help to (a) avoid
double work and (b) avoid merge conflicts if you install your changes into the
main repository.
+## Ikiwiki Installation
+
+You'll want to install [[ikiwiki]] in order to locally render the pages you're
+editing.
+
+### Debian Wheezy
+
+ $ apt-get install ikiwiki libyaml-syck-perl markdown libsearch-xapian-perl texinfo
+
## Identifying Yourself
First, let's make sure that you're properly identifying yourself towards Git.
diff --git a/contributing/web_pages/news/skeleton.mdwn b/contributing/web_pages/news/skeleton.mdwn
index d45b87d1..d2ff5fad 100644
--- a/contributing/web_pages/news/skeleton.mdwn
+++ b/contributing/web_pages/news/skeleton.mdwn
@@ -1,4 +1,4 @@
-[[!meta copyright="Copyright © 2014 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2015 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
diff --git a/copyright.mdwn b/copyright.mdwn
index 34719931..07d46051 100644
--- a/copyright.mdwn
+++ b/copyright.mdwn
@@ -1,2 +1,2 @@
Copyright © 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012,
-2013, 2014 The Contributing Authors
+2013, 2014, 2015 The Contributing Authors
diff --git a/documentation.mdwn b/documentation.mdwn
index 5ab08bfb..b27ad8f3 100644
--- a/documentation.mdwn
+++ b/documentation.mdwn
@@ -1,4 +1,4 @@
-[[!meta copyright="Copyright © 2008, 2010, 2011 Free Software Foundation,
+[[!meta copyright="Copyright © 2008, 2010, 2011, 2015 Free Software Foundation,
Inc."]]
[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
@@ -52,6 +52,11 @@ text="*[[shapiro\_capintro\_1999|capability]]*:
system architecture.
+# Quick overview
+
+You may want to start reading a [[quick overview|overview]] of how the GNU/Hurd system
+starts, and thus how it is structured.
+
# FAQ
[[FAQ]]
@@ -59,7 +64,14 @@ text="*[[shapiro\_capintro\_1999|capability]]*:
# Specific Components
-Documentation for...
+The GNU/Hurd system is composed of the Hurd servers running on top of the
+GNU Mach microkernel. Mach only handles scheduling tasks and threads, memory
+management, and message passing. Mig is used to abstract RPCs on top of Mach's
+message passing. Eventually, the Hurd servers and Unix processes discuss with
+each other using these RPCs.
+
+Depending on your background, you may want to start reading the documentation
+from userlandish interfaces (Hurd) or from the micro kernel itself (Mach).
* [[GNU_Hurd|hurd/documentation]]
@@ -72,6 +84,34 @@ Documentation for...
# Presentations
+## 2015
+
+ * FOSDEM: {{$community/meetings/fosdem_2015#thibault_hurd}}
+ * Debconf 15: {{$community/meetings/debconf15#youpi_hurd}}
+
+## 2014
+
+ * FOSDEM: {{$community/meetings/fosdem_2014#thibault_hurd}}
+
+## 2013
+
+ * GNU Hackers Meeting in Paris: {{$community/meetings/ghm2013#thibault_hurd}}
+
+ * FOSDEM: {{$community/meetings/fosdem_2013#thibault_hurd}}
+
+## 2011
+
+ * GNU Hackers Meeting in Paris: {{$community/meetings/ghm2011#thibault_hurd}}
+
+## 2010
+
+ * GNU Hackers Meeting in the Hague: {{$community/meetings/ghm2010#walfield_hurd}}
+
+ * Debconf 10: {{$community/meetings/debconf10#banck_hurd}}
+
+ * Fosdem 2010: {{$community/meetings/fosdem_2010#olaf_hurd1}}
+ * Fosdem 2010: {{$community/meetings/fosdem_2010#olaf_hurd2}}
+
## 2004
* 2004-07-02
diff --git a/faq/2_gib_partition_limit.mdwn b/faq/2_gib_partition_limit.mdwn
index 6b48cc5f..210d8afb 100644
--- a/faq/2_gib_partition_limit.mdwn
+++ b/faq/2_gib_partition_limit.mdwn
@@ -11,9 +11,9 @@ License|/fdl]]."]]"""]]
[[!tag faq/support]]
-[[!meta title="Is there still a 2 GiB Partition Limit?"]]
+[[!meta title="Is there still a 2 GiB ext2fs disk partition limit?"]]
-The 2 GiB limit has been removed in Debian GNU/Hurd.
+The 2 GiB limit has been removed.
IDE disk drivers however currently do not support more than 2^28 sectors, i.e. 128GiB.
diff --git a/faq/drivers.mdwn b/faq/drivers.mdwn
index 57ed7ea9..50bd4542 100644
--- a/faq/drivers.mdwn
+++ b/faq/drivers.mdwn
@@ -1,4 +1,5 @@
-[[!meta copyright="Copyright © 2009, 2013 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2009, 2013, 2015 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
@@ -10,18 +11,18 @@ License|/fdl]]."]]"""]]
[[!tag faq/support faq/_important]]
-[[!meta title="What drivers does GNU/Hurd have?"]]
+[[!meta title="what hardware is supported? What drivers does GNU/Hurd have?"]]
+
+Currently, for disks Mach integrates old drivers from Linux through some
+[[community/gsoc/project_ideas/driver_glue_code]], which provide
+IDE disk support, and we have an AHCI driver which provides [[SATA
+support|faq/sata_disk_drives]]. For network boards, we use the [[DDE]] toolkit
+to run linux 2.6.32 drivers in userland processes, which provides both long-term
+support for new hardware and safety against driver bugs. Note however that we
+have of course not tested all drivers, we obviously don't even have all kinds of
+hardware. So we can not promise that they will all work. What probably
+works for sure is what we usually use: the rtl8139 and e1000 drivers for
+instance. Firmware loading is not implemented yet.
-Currently, for disks Mach integrates drivers from Linux 2.0 through some
-[[community/gsoc/project_ideas/driver_glue_code]]. As it's very old, that
-limits hardware support a lot, of course. For network boards, we use the
-[[DDE]] toolkit to run linux 2.6.32 drivers in userland processes,
-which provides both long-term support for new hardware and safety against driver
-bugs. Firmware loading is however not implemented yet.
[[microkernel/mach/gnumach/ports/Xen]] is also supported, both blkfront and
netfront.
-
-Note however that we have of course not tested all drivers, we obviously don't
-even have all kinds of hardware. So we can not promise that they will all
-work. What probably works for sure is what we usually use: the rtl8139 or e1000
-drivers for instance.
diff --git a/faq/fd.mdwn b/faq/fsck.mdwn
index bae611f8..e7496646 100644
--- a/faq/fd.mdwn
+++ b/faq/fsck.mdwn
@@ -1,4 +1,4 @@
-[[!meta copyright="Copyright © 2013 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2014, 2015 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
@@ -10,12 +10,14 @@ License|/fdl]]."]]"""]]
[[!tag faq/open_issues]]
-[[!meta title="I'm getting I/O eror, dev 02:00, sector 0"]]
+[[!meta title="fsck shows a lot of errors"]]
-dev 02:00 is the floppy drive. This message simply means that reading the floppy
-was attempted, but no floppy disk was inserted, so it failed. It commonly
-happens during installer disk detection, or grub setup, and is completely
-harmless.
+Quite a few of them are actually benign:
-To avoid it, you can as well remove `/dev/fd0` (do you really have a floppy
-around you anyway?)
+ /dev/hd0s1: Deleted inode 95849 has zero dtime. FIXED.
+
+see [[open_issues/ext2fs_dtime]]
+
+ /dev/hd0s1: i_file_acl_hi for inode 81872 (/proc) is 32, shoud be 0.
+
+see [[open_issues/e2fsck_i_file_acl_hi]], fixed in e2fsprogs 1.42.13
diff --git a/faq/libpthread_dlopen.mdwn b/faq/libpthread_dlopen.mdwn
index 94d091a4..3b365fad 100644
--- a/faq/libpthread_dlopen.mdwn
+++ b/faq/libpthread_dlopen.mdwn
@@ -1,4 +1,5 @@
-[[!meta copyright="Copyright © 2013, 2014 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2013, 2014, 2015 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
@@ -14,12 +15,13 @@ License|/fdl]]."]]"""]]
Some applications don't themselves link against libpthread, but then load
plugins which do link against libpthread. This means internally switching from
-single-threading to multi-threading, which is [[not yet
-supported|open_issues/libpthread_dlopen]] by our [[/libpthread]], and results
-in errors such as:
+single-threading to multi-threading, which is only supported since libc0.3
+2.19-16~2. Previously, it would result in errors such as:
./pthread/../sysdeps/generic/pt-mutex-timedlock.c:70: __pthread_mutex_timedlock_internal: Assertion `__pthread_threads' failed.
-This can be worked around by making the application link against libpthread (i.e. not only the plugin, but also the main binary), or without recompiling by explicitly pre-loading libpthread, for example:
+This could be worked around by making the application link against libpthread (i.e. not only the plugin, but also the main binary), or without recompiling by explicitly pre-loading libpthread, for example:
$ LD_PRELOAD=/lib/i386-gnu/libpthread.so.0.3 [application]
+
+But it should now be gone, simply upgrade libc0.3.
diff --git a/faq/off.mdwn b/faq/off.mdwn
deleted file mode 100644
index 4d012449..00000000
--- a/faq/off.mdwn
+++ /dev/null
@@ -1,30 +0,0 @@
-[[!meta copyright="Copyright © 2010, 2013 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 faq/running]]
-
-[[!meta title="shutdown does not work, how am I supposed to shut my Hurd system down?"]]
-
-The GNU/Hurd does not use SYSV runlevels, so commands like
-
- # shutdown -h now
-
-will not work. Simply use the equivalent shortcuts
-
- # halt
- # reboot
-
-to respectively shutdown and reboot Hurd, provided natively,
-instead of from SYSV runlevels.
-
-[[!tag open_issue_gnumach]]
-GNU Mach does not have APM or ACPI support, so it will just stop with
-`In tight loop: hit ctl-alt-del to reboot`, and you can switch off the
-system.
diff --git a/faq/old_faq.txt b/faq/old_faq.txt
index e370277e..7946062e 100644
--- a/faq/old_faq.txt
+++ b/faq/old_faq.txt
@@ -219,9 +219,9 @@ prompt.
?? How do I enable color on the console?
{NHW} If you are using the GNU Mach microkernel, you can set your
-terminal to `mach-color'. For instance:
+terminal to `mach-gnu-color'. For instance:
- # export TERM=mach-color
+ # export TERM=mach-gnu-color
?? How can I enable virtual consoles?
@@ -238,15 +238,15 @@ then hitting C-A-<backspace> will exit it.
?? What is the status of X?
{MB} It works! The packages are available at any Debian ftp mirror.
-XFree86 4.0.2 is available, as are some of the v3 servers. Instructions
+Xorg is available, as are some of the v3 servers. Instructions
on how to use the packages are in the mailing list archive (link follow
later).
?? What are these strange pids `0`, `2', `3', `4`, and `5`?
-{MB,ST} Zero is the `proc` processus server (and thus does not really have a pid
-:) ) Two is the kernel, three is the root filesystem server, four is the `exec`
-server (which handles starting programs), five is the `auth` server (which
+{MB,ST} Zero is the kernel, one is the root filesystem server, two is the
+`exec` server (which handles starting programs), three is the init process, four
+is the `proc` processus server, five is the `auth` server (which
handles user authentication).
?? Why does `ps aux' give me strange output?
diff --git a/faq/release.mdwn b/faq/release.mdwn
index 6ec26925..d8c459ae 100644
--- a/faq/release.mdwn
+++ b/faq/release.mdwn
@@ -1,4 +1,5 @@
-[[!meta copyright="Copyright © 2008, 2013 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008, 2013, 2015 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
@@ -12,12 +13,13 @@ License|/fdl]]."]]"""]]
[[!meta title="When will the Hurd be released?"]]
-0.5 has been [[released on 2013-09-27|news/2013-09-27]]. Read about the
-[[Hurd's status|hurd/status]].
+GNU Hurd 0.7 has been [[released on 2015-10-31|news/2015-10-31-releases]],
+along with GNU Mach 1.6, and GNU MIG 1.6. Read about the [[Hurd's
+status|hurd/status]].
> OK, but when will it be finished?
-Well, is the Linux kernel considered to be really "finished"? Hurd 0.5 does
+Well, is the Linux kernel considered to be really "finished"? Hurd 0.7 does
work, but of course it can still become better -- beginning to
[[contribute|contributing]] and [[joining us|how_many_developers]] is the best
way for you to help achieve that. :-)
diff --git a/faq/software.mdwn b/faq/software.mdwn
index 4ab7bbfc..719e123c 100644
--- a/faq/software.mdwn
+++ b/faq/software.mdwn
@@ -13,7 +13,7 @@ License|/fdl]]."]]"""]]
[[!meta title="What software is available for GNU?"]]
-As of March 2013, 78% of all [Debian](http://www.debian.org/)
+As of March 2014, 79% of all [Debian](http://www.debian.org/)
[packages](http://packages.debian.org/) are available for [[Debian
GNU/Hurd|hurd/running/debian]]. Of course, testing and bug fixing is welcome,
as we have obviously not tested all of them.
diff --git a/glibc.mdwn b/glibc.mdwn
index e3988180..9dc66c89 100644
--- a/glibc.mdwn
+++ b/glibc.mdwn
@@ -1,5 +1,5 @@
-[[!meta copyright="Copyright © 2007, 2008, 2010, 2011, 2012, 2013 Free Software
-Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008, 2010, 2011, 2012, 2013, 2015 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
@@ -35,9 +35,9 @@ have been removed.
## [[Hurd-specific Port|hurd/glibc]]
-An important part of the [[Hurd]] actually resides in glibc: here, the POSIX
+An important part of the [[Hurd]] actually resides in glibc: here, the system
interfaces are implemented on top of the [[Hurd IPC protocols|hurd/interface]].
-This is different to the Linux port, where most simple POSIX interfaces are in
+This is different to the Linux port, where most simple system interfaces are in
fact simply forwarded to/implemented as [[system_call]]s.
diff --git a/history.mdwn b/history.mdwn
index 7cf5cd6e..914e57fb 100644
--- a/history.mdwn
+++ b/history.mdwn
@@ -1,5 +1,5 @@
[[!meta copyright="Copyright © 1998, 1999, 2001, 2002, 2007, 2008, 2009, 2011,
-2013 Free Software Foundation, Inc."]]
+2013, 2015 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
@@ -112,6 +112,10 @@ mailing lists.
"20020830194413.GA6819@outpost.dnsalias.org"]] (2002-08-30)
* [[GNU Hurd 0.5, GNU Mach 1.4, GNU MIG 1.4 released|news/2013-09-27]]
(2013-09-27)
+ * [[GNU Hurd 0.6, GNU Mach 1.5, GNU MIG 1.5
+ released|news/2015-04-10-releases]] (2015-04-10)
+ * [[GNU Hurd 0.7, GNU Mach 1.6, GNU MIG 1.6
+ released|news/2015-10-31-releases]] (2015-10-31)
# An Incomplete GNU Hurd Timeline
@@ -165,3 +169,8 @@ mailing lists.
Hackers Meeting in Paris|community/meetings/ghm2013]], *Happy 30th
birthday, GNU*: [[GNU Hurd 0.5, GNU Mach 1.4, GNU MIG 1.4
released|news/2013-09-27]].
+ * [...]
+ * 2015: [...], [[GNU Hurd 0.6, GNU Mach 1.5, GNU MIG 1.5
+ released|news/2015-04-10-releases]], [[Debian GNU/Hurd
+ 2015|news/2015-04-29-debian_gnu_hurd_2015]], [[GNU Hurd 0.7, GNU Mach 1.6,
+ GNU MIG 1.6 released|news/2015-10-31-releases]].
diff --git a/hurd-paper.html b/hurd-paper.html
index 880f5fca..272b7178 100644
--- a/hurd-paper.html
+++ b/hurd-paper.html
@@ -1,5 +1,5 @@
-[[!meta copyright="Copyright © 1996, 1997, 1998, 2007, 2008, 2009 Free Software
-Foundation, Inc."]]
+[[!meta copyright="Copyright © 1996, 1997, 1998, 2007, 2008, 2009, 2015 Free
+Software Foundation, Inc."]]
[[!meta license="Verbatim copying and distribution of this entire article is
permitted in any medium, provided this notice is preserved."]]
@@ -21,7 +21,9 @@ The design and implementation of the Hurd is being lead by Michael
Bushnell, with assistance from Richard Stallman, Roland McGrath,
Jan Brittenson, and others.
+<a name=design>
<H2>Part 1: A More Usable Approach to OS Design</H2>
+</a>
<P>
The fundamental purpose of an operating system (OS) is to enable a variety of
programs to share a single computer efficiently and productively.
@@ -148,7 +150,9 @@ None of the remaining services carry any special
status; not the network implementation, the filesystems, the program
execution mechanism (including setuid), or any others.
+<a name=translator>
<H3>The Translator Mechanism</H3>
+</a>
<P>
The Hurd uses Mach ports primarily as methods for communicating between users
and servers.
@@ -324,7 +328,9 @@ those semantics to allow users to improve, bypass, or replace them.
<H2>Part 2: A Look at Some of the Hurd's Beasts</H2>
+<a name=auth>
<H3>The Authentication Server</H3>
+</a>
<P>
One of the Hurd's more central servers is the authentication server.
Each
@@ -363,7 +369,9 @@ we have designed its interface to make any safe operation possible, and to
include no extraneous operations.
(This is why there is a separate password
server.)
+<a name=proc>
<H3>The Process Server</H3>
+</a>
<P>
The process server acts as an information categorization repository.
There
@@ -419,7 +427,9 @@ Those process server features which do not require root privileges
to be implemented could be done as per-user servers.
The user's hands are
not tied.
+<a name=ftpfs>
<H3>Transparent FTP</H3>
+</a>
<P>
Transparent FTP is an intriguing idea whose time has come.
The popular
@@ -429,7 +439,8 @@ virtually transparent to all the Emacs file manipulation functions.
Transparent FTP does the same thing, but in a system wide fashion.
This
server is not yet written; the details remain to be fleshed out, and will
-doubtless change with experience.
+doubtless change with experience [Note: since the writing of this, ftpfs was
+implemented and works as described here]
<P>
In a BSD kernel, a transparent FTP filesystem would be no harder to write
than in the Hurd.
@@ -492,7 +503,9 @@ more /ftp/ftp.uu.net/inet/rfc/rfc1097.
</CODE>
A copy command to a local disk
could be used if the RFC would be read frequently.
+<a name=fs>
<H3>Filesystems</H3>
+</a>
<P>
Ordinary filesystems are also being implemented.
The initial release of the
@@ -529,7 +542,9 @@ deficiencies.
There will also be various ``little'' filesystems, such as the
MS-DOS filesystem, to help people move files between GNU and other OSs.
+<a name=term>
<H3>Terminals</H3>
+</a>
<P>
An I/O server will provide the terminal semantics of Posix.
The GNU C
@@ -574,7 +589,9 @@ Instead they will be using the
underlying Mach device ports for terminals, which support moving large
amounts of data efficiently.
+<a name=exec>
<H3>Executing Programs</H3>
+</a>
<P>
The implementation of the
<CODE>execve</CODE>
diff --git a/hurd.mdwn b/hurd.mdwn
index 46d96c0a..ff676cb3 100644
--- a/hurd.mdwn
+++ b/hurd.mdwn
@@ -1,5 +1,5 @@
[[!meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
-2009, 2010, 2011, 2013 Free Software Foundation, Inc."]]
+2009, 2010, 2011, 2013, 2015 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
@@ -12,7 +12,7 @@ License|/fdl]]."]]"""]]
The GNU Hurd is under active development. Because of that, there is no
*stable* version. We mainly distribute the Hurd sources through
[[Git|source_repositories]]. The latest release is [[GNU Hurd
-0.5|news/2013-09-27]].
+0.7|news/2015-10-31-releases]].
Although it is possible to bootstrap the GNU/Hurd system from the sources by
cross-compiling and installing the system software and the basic applications,
@@ -105,6 +105,5 @@ in the *unstable* branch of the Debian archive.
* [[IO_Path]]
* [[Porting]]
* [[Debugging]]
-* [Hurd Sourcecode Reference](http://www.htu.tugraz.at/~past/hurd/global/): Searchable and browsable index of the code.
* [[Networking]]
* [[Console]]
diff --git a/hurd/ada4hurd.mdwn b/hurd/ada4hurd.mdwn
new file mode 100644
index 00000000..c783e53b
--- /dev/null
+++ b/hurd/ada4hurd.mdwn
@@ -0,0 +1,68 @@
+[[!meta copyright="Copyright © 2015 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]]."]]"""]]
+
+# Ada4Hurd
+
+## Introduction
+
+Ada4Hurd provides tools and examples to ease Ada development in Hurd. It is at an early stage.
+
+### ada2def
+
+ * It is based on the [ASIS](http://libre.adacore.com/tools/gnat-gpl-edition/) standard
+ * It analyse an Ada specification and generates some .defs file
+
+### def2ada
+
+ * Using [opentoken](http://stephe-leake.org/ada/opentoken.html) it analyse a .defs file
+ * it can generate server skeleton
+ * it can generate a client library for easy connection to the server
+
+### xmladafs
+
+ * Mainly a translation of xmlfs in Ada
+ * write capabilities development is undergoing
+ * use [xmlada](http://libre.adacore.com/tools/xmlada/)
+
+### hello
+
+ * Hello World example translated in Ada
+
+### netfs_base
+
+ * Mainly a dummy translator to understand netfs mechanisms
+ * [[Some results of netfs experimentation|documentation/netfs_ada_results]]
+
+## Where to find the code
+
+ * Ada4Hurd is a [sourceforge](https://sourceforge.net/projects/ada4hurd/) based project
+ * Mercurial is used as DVCS
+
+ $ hg clone http://hg.code.sf.net/p/ada4hurd/code ada4hurd-code
+
+## Build the code
+
+ * Install the build dependencies as root
+
+ $ apt-get install gnat libopentoken4-dev libxmlada5-dev libasis2014-dev
+
+ * Build
+
+ $ cd ada4hurd-code
+ $ make
+
+ * Play with xmladafs
+
+ $ make trans_on
+
+ * Run netfs tests
+ * In netfs\_base directory
+
+ $ make trans\_dbg\_on \ No newline at end of file
diff --git a/hurd/documentation.mdwn b/hurd/documentation.mdwn
index ec19e90b..a85f4d4f 100644
--- a/hurd/documentation.mdwn
+++ b/hurd/documentation.mdwn
@@ -1,5 +1,5 @@
[[!meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
-2009, 2011, 2012 Free Software Foundation, Inc."]]
+2009, 2011, 2012, 2015 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
@@ -20,9 +20,24 @@ is included in the section entitled
* [[*The_Hurd_and_Linux*|/hurd-and-linux]], a comment by Richard Stallman.
* [[*Towards_a_New_Strategy_of_OS_Design*|/hurd-paper]], an architectural
- overview by Thomas Bushnell, BSG.
+ overview by Thomas Bushnell, BSG, notably:
- * [[*The_Hurd*|/hurd-talk]], a presentation by Marcus Brinkmann.
+ * [[The design|/hurd-paper#design]]
+ * [[Translators|/hurd-paper#translator]]
+ * [[The auth translator|/hurd-paper#auth]]
+ * [[The proc translator|/hurd-paper#proc]]
+ * [[The exec translator|/hurd-paper#exec]]
+ * [[The ftpfs translator|/hurd-paper#ftpfs]]
+
+ * [[*The_Hurd*|/hurd-talk]], a presentation by Marcus Brinkmann, notably:
+
+ * [[How to get a port?|/hurd-talk#how]]
+ * [[Pathname resolution example|/hurd-talk#pat]]
+ * [[Mapping the POSIX Interface|/hurd-talk#map]]
+ * [[Active vs Passive|/hurd-talk#act]]
+ * [[Authentication|/hurd-talk#aut]]
+ * [[Password Server|/hurd-talk#pas]]
+ * [[Process Server|/hurd-talk#pro]]
* The *[[translator_primer]]*.
@@ -73,3 +88,5 @@ is included in the section entitled
investigates the mobility aspect of stores
and how it can be generalized and used for other applications.
The background chapter may be of interest to new developers.
+
+ * [[Ada4Hurd]]: some tools to write translators with Ada \ No newline at end of file
diff --git a/hurd/documentation/netfs_ada_results.mdwn b/hurd/documentation/netfs_ada_results.mdwn
new file mode 100644
index 00000000..0365951d
--- /dev/null
+++ b/hurd/documentation/netfs_ada_results.mdwn
@@ -0,0 +1,295 @@
+[[!meta copyright="Copyright © 2015 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]]."]]"""]]
+
+# Netfs Ada experimentations
+
+## Rev 05c2ac288ad2
+
+ * Nothing is implemented in the Netfs\_Implementation package
+ * node is the translator inode in directory .
+
+### ls -la .
+
+ * Leads to a call of Validate\_Stat : line 115 of Netfs\_Implementation package
+ * Returns an error :
+ * bash: cd: node: Not a directory
+
+### ls -la node
+
+ * Returns an error :
+ * ls: cannot access node: Not a directory
+ * Leads also to a call of Validate\_Stat : line 115 of Netfs\_Implementation package
+
+### cd node
+
+ * Returns an error :
+ * bash: cd: node: Not a directory
+ * Validate\_Stat get called three times
+
+## Rev 6052185bf877
+
+ * Only a very simple Validate\_State is implemented
+
+### ls -la .
+
+ * Leads to a call of Validate\_Stat : line 120 of Netfs\_Implementation package then a call to Check\_Open\_Permissions : line 13
+ * Returns this error :
+ * "ls: cannot access node: Not a directory"
+
+### ls -la node
+
+ * Returns an error :
+ * ls: cannot access node: Not a directory
+ * Leads to a call of Validate\_Stat : line 120 of Netfs\_Implementation package then a call to Check\_Open\_Permissions : line 13
+
+### cd node
+
+ * Returns an error :
+ * bash: cd: node: Not a directory
+ * Validate\_Stat then Check\_Open\_Permissions sequence is called three times
+
+## Rev dd3e6b7ea5c7
+
+ * Check\_Open\_Permissions implemented
+
+### ls -la .
+ * No more error : node is displayed as a directory
+ * Sequence call : validate\_state / check\_open\_permissions / validate\_state
+
+### ls -la node
+
+ * Returns an error :
+ * ls: reading directory node: Operation not supported
+ * Call sequence :
+ * validate\_state
+ * check\_open\_permissions
+ * validate\_state
+ * validate\_state
+ * check\_open\_permissions
+ * validate\_state
+ * get\_dirents line 90 of netfs\_implementation package
+
+### cd node
+
+ * Hangs
+ * Call sequence :
+ * Validate\_Stat
+ * Check\_Open\_Permissions
+ * Validate\_Stat
+ * Validate\_Stat
+ * Check\_Open\_Permissions
+ * netfs\_implementation.adb:57 Netfs\_Implementation.Attempt\_Lookup
+
+## Rev 68f905dc9b7c
+
+ * Attemp\_Lookup implemented
+
+### ls -la .
+ * No more error : node is displayed as a directory
+ * Sequence call : validate\_state / check\_open\_permissions / validate\_state
+
+### ls -la node
+
+ * Returns an error :
+ * ls: reading directory node: Operation not supported
+ * get\_dirents still not implemented
+ * Call sequence :
+ * validate\_state
+ * check\_open\_permissions
+ * validate\_state
+ * validate\_state
+ * check\_open\_permissions
+ * validate\_state
+ * get\_dirents line 90 of netfs\_implementation package
+
+### cd node
+
+ * No more hang
+ * Call sequence :
+ * Validate\_Stat
+ * check\_open\_permissions
+ * Validate\_Stat
+ * Validate\_Stat
+ * check\_open\_permissions
+ * attemp\_lookup
+ * Validate\_Stat
+ * check\_open\_permissions
+ * attemp\_lookup
+ * Validate\_Stat
+ * Validate\_Stat
+ * check\_open\_permissions
+ * Validate\_Stat
+ * Not Implemented Netfs\_Implementation.Get\_Dirents
+ * attemp\_lookup
+ * Validate\_Stat
+ * Validate\_Stat
+ * check\_open\_permissions
+ * Validate\_Stat
+ * Not Implemented Netfs\_Implementation.Get\_Dirents
+ * attemp\_lookup
+ * Validate\_Stat
+ * Validate\_Stat
+ * check\_open\_permissions
+ * Validate\_Stat
+ * Not Implemented Netfs\_Implementation.Get\_Dirents
+ * attemp\_lookup
+ * Validate\_Stat
+ * Validate\_Stat
+ * check\_open\_permissions
+ * Validate\_Stat
+ * Not Implemented Netfs\_Implementation.Get\_Dirents
+
+## Rev 98c74b2027c9
+
+ * Get_Dirents implemented
+ * Tested with depth option set to two (only regular files in node)
+
+### ls -la .
+
+ * OK
+
+### ls -la node
+
+ * OK, display leafs regular files
+ * Call Sequence
+ * Validate\_Stat
+ * Check\_Open\_Permissions
+ * Validate\_Stat
+ * Validate\_Stat
+ * Check\_Open\_Permissions
+ * Validate\_Stat
+ * enter get dirents netfs_implementation.adb:141 Netfs_Implementation.Get_Dirents
+ * then attemp\_lookup for each leaf
+
+### cd node
+ * OK
+ * ls in node directory display leafs
+
+## Rev 2270e1726850
+
+ * depth parameter goes from 2 to 3
+
+### ls node then ls node/path\ 2
+ * OK
+ * display leafs in directory path 2
+
+### ls node/path\ 2
+ * OK
+ * needed to fix a missing update in the child node (because update was done only on get_dirents call)
+
+### cat node/path\ 2/leaf\ 1
+ * NOK
+ * Call sequence
+ * Validate\_Stat
+ * Check\_Open\_Permissions
+ * Attempt\_Lookup
+ * Validate\_Stat
+ * Attempt\_Lookup
+ * Validate\_Stat
+ * Check\_Open\_Permissions
+ * Validate_Stat
+ * netfs\_implementation.adb:113 Netfs\_Implementation.Attempt\_Read
+ * need for attemp\_read implementation
+
+## Rev 3126bd9ce609
+
+ * Read is implemented
+ * next step : write
+
+### echo "elle souffle" > node/path\ 2/leaf\ 1
+ * NOK
+ * command result - bash: node/path 2/leaf 1: Permission denied
+ * Call sequence
+ * Validate\_Stat
+ * Check\_Open\_Permissions
+ * Attempt_Lookup path 2 * Validate\_Stat
+ * Attempt\_Lookup leaf 1 * Validate\_Stat
+ * Validate_Stat
+ * Check\_Open\_Permissions - Check failed WRITE 1073741837
+
+## Rev 242f59899045
+
+ * node are created with 0755 permission
+
+### echo "elle souffle" > node/path\ 2/leaf\ 1
+ * NOK
+ * command result - bash: node/path 2/leaf 1: Operation not supported
+ * Call sequence
+ * Validate\_Stat
+ * Check\_Open\_Permissions
+ * Attempt_Lookup path 2 * Validate\_Stat
+ * Attempt\_Lookup leaf 1 * Validate\_Stat
+ * Validate_Stat
+ * Check\_Open\_Permissions
+ * netfs\_implementation.adb:366 Netfs\_Implementation.Attempt\_Set\_Size : not yet implemented
+
+## Rev dceb291aaf1c
+
+ * Set_Size minimal implementation
+
+### echo "elle souffle" > node/path\ 2/leaf\ 1
+ * NOK
+ * command result - bash: node/path 2/leaf 1: Operation not supported
+ * Call sequence
+ * Validate\_Stat
+ * Check\_Open\_Permissions
+ * Attempt_Lookup path 2 * Validate\_Stat
+ * Attempt\_Lookup leaf 1 * Validate\_Stat
+ * Validate_Stat
+ * Check\_Open\_Permissions
+ * Attempt\_Set\_Size
+ * netfs_implementation.adb:481 Netfs\_Implementation.Attemp\_Write
+
+## Rev 93311515a6c2
+
+ * Attempt_Write is implemented
+
+### echo "elle souffle" > node/path\ 2/leaf\ 1
+ * OK
+
+## Rev 8395215263d3
+
+ * Test of mkdir
+
+### mkdir node/toto
+
+ * NOK
+ * command result - mkdir: cannot create directory ‘node/toto’: Operation not supported
+ * Call sequence
+ * Validate\_Stat
+ * Check\_Open\_Permissions
+ * netfs_implementation.adb:421 Netfs_Implementation.Attempt_Mkdir
+
+## Rev 3425f5c837fb
+
+ * mkdir implementation
+
+### mkdir node/toto
+
+ * OK
+ * need to create leaf now : write to an inexistent file
+
+### echo "elle souffle" > node/test
+
+ * NOK
+ * command result - bash: node/test: Not a directory
+ * CAll sequence
+ * Validate\_Stat
+ * Check\_Open\_Permissions
+ * Attempt\_Lookup
+ * Attempt\_Create\_File
+
+## Rev a1f5464f0e53
+
+ * Attempt_Create_File is implemented
+
+### echo "elle souffle" > node/test
+
+ * OK \ No newline at end of file
diff --git a/hurd/libfuse.mdwn b/hurd/libfuse.mdwn
index 28125dd9..0c76645a 100644
--- a/hurd/libfuse.mdwn
+++ b/hurd/libfuse.mdwn
@@ -25,7 +25,7 @@ etc.
* lowlevel API not implemented
* Options handling (`fuse_parse_cmdline` and `fuse_opt_*`) not implemented
* CUSE lowlevel not supported (compatibility level 29)
-* Supports up to the compatibility level 25 (while current libfuse 2.9.x provides 26)
+* Supports the compatibility level 25 and 26, up to libfuse 2.6.x
* File I/O is quite slow.
diff --git a/hurd/libstore/examples/ramdisk.mdwn b/hurd/libstore/examples/ramdisk.mdwn
index 33d33601..92e00f5c 100644
--- a/hurd/libstore/examples/ramdisk.mdwn
+++ b/hurd/libstore/examples/ramdisk.mdwn
@@ -11,9 +11,8 @@ License|/fdl]]."]]"""]]
$ settrans --create --active ramdisk0 /hurd/storeio -T copy zero:32M
$ mkfs.ext2 -F -b 4096 ramdisk0
[...]
- $ settrans --active --orphan ramdisk0 /hurd/ext2fs.static ramdisk0
+ $ settrans --active --orphan ramdisk0 /hurd/ext2fs ramdisk0
$ df -h ramdisk0/
- df: Warning: cannot read table of mounted file systems
Filesystem Size Used Avail Use% Mounted on
- 32M 1.1M 30M 4% /media/data/home/tschwinge/ramdisk0
@@ -24,9 +23,5 @@ translator running on the `ramdisk0` node with a instance of the [[`ext2fs`
translator|translator/ext2fs]] running on the same node ([[translator
stacking|translator/stacking]]).
-It is a [[!taglink open_issue_hurd]] why this does only work with
-`ext2fs.static`, but not the dynamically linked `ext2fs` (`settrans:
-/hurd/ext2fs: Translator died`).
-
A (better) alternative would be using the [[`tmpfs`
translator|translator/tmpfs]], but that one is broken at the moment.
diff --git a/hurd/libstore/nbd_store.mdwn b/hurd/libstore/nbd_store.mdwn
index 3f161ba8..1e3d9071 100644
--- a/hurd/libstore/nbd_store.mdwn
+++ b/hurd/libstore/nbd_store.mdwn
@@ -1,5 +1,5 @@
-[[!meta copyright="Copyright © 2007, 2008, 2009, 2012 Free Software Foundation,
-Inc."]]
+[[!meta copyright="Copyright © 2007, 2008, 2009, 2012, 2015 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
@@ -25,6 +25,8 @@ Perhaps the protocol was extended?
### IRC, freenode, #hurd, 2012-12-20
+[[!tag open_issue_hurd]]
+
<youpi> if somebody has time to spend, building the nbd package makes
pfinet crash
@@ -45,4 +47,11 @@ Perhaps the protocol was extended?
# Open Issues
- * [[!GNU_Savannah_task 5722]]
+## [[!GNU_Savannah_task 5722]]
+
+## Platform-specific Error Values in the Wire Protocol
+
+See, for example, the threads starting at [[!message-id
+"1431012374-14113-2-git-send-email-pbonzini@redhat.com"]], [[!message-id
+"1431078628-7856-1-git-send-email-pbonzini@redhat.com"]], [[!message-id
+"1431014292-24645-1-git-send-email-pbonzini@redhat.com"]].
diff --git a/hurd/networking.mdwn b/hurd/networking.mdwn
index bdf9def2..2f13813a 100644
--- a/hurd/networking.mdwn
+++ b/hurd/networking.mdwn
@@ -9,11 +9,18 @@ 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]]."]]"""]]
-For each supported `PF_*` protocol family, there is a file `/servers/socket/N`
-where `N` is the numberic value fo the `PF_*` symbol. Right now
-[[`PF_LOCAL`|translator/pflocal]] (a.k.a. `PF_UNIX`) and
-[[`PF_INET`|translator/pfinet]] (together with
-[[`PF_INET6`|translator/pfinet/ipv6]]) are supported.
+For each supported `PF_*` protocol family (domain), there is a file `/servers/socket/N`
+where `N` is the numeric value for the `PF_*` symbol. libc's `socket()`,
+`socketpair()` and friends use `_hurd_socket_server` to open them: the latter
+computes the `/servers/socket/N` path, then opens it with `__file_name_lookup`,
+and returns the result. Since those paths are translated (see showtrans on
+`/servers/socket/N`), it's a port to a translator which is returned. Right now
+[[`PF_LOCAL`|translator/pflocal]] (a.k.a. `PF_UNIX` or `AF_UNIX`) `N=1`,
+[[`PF_INET`|translator/pfinet]] (a.k.a `AF_INET`) `N=2` and
+[[`PF_INET6`|translator/pfinet/ipv6]] (a.k.a `AF_INET6`) `N=26` are supported.
+
+In case of problems to find out which server is called rpctrace can be of use:
+search for the output `dir_lookup ("servers/socket/N" ...)`
User programs open those files, and use the `socket_create` [[RPC]] to make a
new socket. With that socket, they can use the other `socket_*` RPCs and also
diff --git a/hurd/porting/guidelines.mdwn b/hurd/porting/guidelines.mdwn
index c4c864f7..66c6ae28 100644
--- a/hurd/porting/guidelines.mdwn
+++ b/hurd/porting/guidelines.mdwn
@@ -305,7 +305,13 @@ We could easily provide it;
## <a name="PTHREAD_STACK_MIN"> `PTHREAD_STACK_MIN` </a>
-We should actually provide it.
+We don't really have a minimum value. We could define it to 4096 (or ~16, which
+is our actual minimum), but most applications making use of `PTHREAD_STACK_MIN`
+would just crash with such a value.
+
+The application knows way better than the OS which stack size it needs and have
+its own hint about the stack size, and thus use `PTHREAD_STACK_MIN` only as a
+minimum, not as a hint.
## <a name="types"> `linux/types.h` or `asm/types.h` </a>
diff --git a/hurd/running.mdwn b/hurd/running.mdwn
index b3caf21a..7653b387 100644
--- a/hurd/running.mdwn
+++ b/hurd/running.mdwn
@@ -20,6 +20,7 @@ There are several different ways to run a GNU/Hurd system:
* [[cloud]] - In the "cloud": OpenStack
* [[chroots|chroot]] need a couple of tricks to work properly.
* [[VirtualBox]] - In VirtualBox
+* [[https://github.com/bbesim/vagrant_GNU-debian-hurd_basebox]] - On Vagrant
* [[vmware]] (**non-free!**)
* [[FAQ]]
diff --git a/hurd/running/chroot.mdwn b/hurd/running/chroot.mdwn
index 38bab04e..699f05a1 100644
--- a/hurd/running/chroot.mdwn
+++ b/hurd/running/chroot.mdwn
@@ -13,8 +13,7 @@ This documents the currently-needed tricks to successfully build a
# Preparation
-For proper translator startup, the chroot storage needs to be handled by a
-separate translator, for instance:
+It can be a good idea to put the chroot on a separate translator, for instance:
# dd [...] < /dev/zero > storage
# mke2fs storage
@@ -45,3 +44,4 @@ programs inside the chroot need to be able to access them:
# settrans -kp chroot/dev /hurd/firmlink /dev
# settrans chroot/tmp /hurd/firmlink /tmp
# settrans -c chroot/var/lib/dbus /hurd/firmlink /var/lib/dbus
+ # settrans -c chroot/run/dbus /hurd/firmlink /run/dbus
diff --git a/hurd/running/debian/CrossInstall.mdwn b/hurd/running/debian/CrossInstall.mdwn
index eca47a86..c7a099c6 100644
--- a/hurd/running/debian/CrossInstall.mdwn
+++ b/hurd/running/debian/CrossInstall.mdwn
@@ -17,7 +17,7 @@ Next we create a useful mountpoint and mount the partition.
### <a name="Retrieving_CrossHurd"> Retrieving CrossHurd </a>
-Unless you don't run Debian GNU/Linux download it from <http://packages.debian.org/crosshurd>, or simply apt-get the package from Testing or Unstable.
+Unless you don't run Debian GNU/Linux download it from <http://packages.debian.org/crosshurd>, or simply apt-get the package from Testing or Unstable. Avoid using the version from Stable since it probably is outdated. In case of problems, make sure to try the Unstable version before reporting the issue.
# apt-get install crosshurd
@@ -36,9 +36,9 @@ Now the program starts retrieving all the necessary base packages.
When all packages have been extracted we must prepare [[GRUB]] for the Hurd when we reboot. Add the below entry to your `/boot/grub/menu.lst` file to boot the Hurd in single user mode (-s). Single user mode is needed only for the two reboots when running the Native Install.
- title GNU (kernel GNUmach 1.3)
+ title GNU (kernel GNUmach 1.5)
root (hd0,2)
- kernel /boot/gnumach.gz root=device:hd0s3 -s
+ kernel /boot/gnumach-1.5-486.gz root=device:hd0s3 -s
module /hurd/ext2fs.static \
--multiboot-command-line=${kernel-command-line} \
--host-priv-port=${host-port} \
diff --git a/hurd/running/debian/dhcp.mdwn b/hurd/running/debian/dhcp.mdwn
index 8846769a..aa9adfd9 100644
--- a/hurd/running/debian/dhcp.mdwn
+++ b/hurd/running/debian/dhcp.mdwn
@@ -1,5 +1,5 @@
-[[!meta copyright="Copyright © 2011, 2012, 2013, 2014 Free Software Foundation,
-Inc."]]
+[[!meta copyright="Copyright © 2011, 2012, 2013, 2014, 2015 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
@@ -11,20 +11,6 @@ License|/fdl]]."]]"""]]
[[!tag open_issue_porting]]
-In order to use DHCP, you need to install the `ifupdown` and `isc-dhcp-client`
-packages, and manually create the following symbolic link:
-
- # ln -s ../rcS.d/S10networking /etc/rc.boot/
-
-During execution at boot time, the `S10networking` script will emit some error
-messages while trying to configure the loopback interface. These are not
-fatal.
-
-Debian GNU/Hurd doesn't currently execute Debian standard `/etc/rcS.d/*` boot
-scripts, but has its own `/libexec/rc` script -- which integrates scripts from
-`/etc/rc.boot/` instead.
-
-
# Open Issues
* [[!debbug 616290]]
diff --git a/hurd/running/debian/qemu_image.mdwn b/hurd/running/debian/qemu_image.mdwn
index 97af245c..af22de13 100644
--- a/hurd/running/debian/qemu_image.mdwn
+++ b/hurd/running/debian/qemu_image.mdwn
@@ -16,7 +16,7 @@ Usage:
$ wget http://people.debian.org/~sthibault/hurd-i386/debian-hurd.img.tar.gz
$ tar -xz < debian-hurd.img.tar.gz
- $ qemu -m 512 -net nic,model=rtl8139 -net user -drive cache=writeback,index=0,media=disk,file=$(echo debian-hurd-*.img)
+ $ qemu -m 512 -drive cache=writeback,file=$(echo debian-hurd-*.img)
If you have troubles extracting the image, you can use
the gz version <http://people.debian.org/~sthibault/hurd-i386/debian-hurd.img.gz>,
diff --git a/hurd/running/distrib.mdwn b/hurd/running/distrib.mdwn
index 74325e25..8c411fd0 100644
--- a/hurd/running/distrib.mdwn
+++ b/hurd/running/distrib.mdwn
@@ -1,3 +1,14 @@
+[[!template id=note text="""**GNU Free System Distribution Guidelines (GNU
+FSDG)**
+
+The [Free Software Foundation](http://www.fsf.org/) can't recommend Debian
+GNU/Hurd or the Arch distribution; we must suppose that they don't meet our
+freedom standards any more than Debian GNU/Linux and the Arch distribution
+based on the Linux kernel do. Likewise we have not evaluated other GNU/Hurd
+distributions in regard to ethical criteria. Please visit
+<http://www.gnu.org/distros/free-system-distribution-guidelines.html> to learn
+what those standards are."""]]
+
Working distributions of GNU/Hurd:
* [[Debian]]
diff --git a/hurd/running/nix.mdwn b/hurd/running/nix.mdwn
index 68052948..b77404a4 100644
--- a/hurd/running/nix.mdwn
+++ b/hurd/running/nix.mdwn
@@ -47,7 +47,7 @@ Nix, and because of that, it uses per-package installation directories under
Guix
-# <a href="guix">Guix</a>
+# <a name="guix">Guix</a>
## <http://www.gnu.org/software/guix/>
diff --git a/hurd/running/qemu.mdwn b/hurd/running/qemu.mdwn
index 5a13a655..dfc9cdd2 100644
--- a/hurd/running/qemu.mdwn
+++ b/hurd/running/qemu.mdwn
@@ -33,7 +33,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 -m 512
- -drive cache=writeback,index=0,media=disk,file=disk_image.img`.
+ -drive cache=writeback,file=disk_image.img`.
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]]
@@ -139,7 +139,7 @@ First off you will need to create a disk image using `qemu-img`. I have set mine
Next you will want to start up QEMU and begin the installation process.
- $ qemu -m 512 -drive cache=writeback,index=0,media=disk,file=hd0.img -cdrom mini.iso -net nic,model=rtl8139 -net user
+ $ qemu -m 512 -drive cache=writeback,file=hd0.img -cdrom debian-7.0-hurd-i386-NETINST-1.iso -net nic,model=rtl8139 -net user
Now at his point do the regular install using `hd0` as your harddrive. Partition it and install the base system.
@@ -187,7 +187,7 @@ Once you have finished installing the base system (might take some time) the sys
Starting qemu/qemu-kvm:
- $ kvm -m 512 -net nic,model=rtl8139 -net user,hostfwd=tcp::5555-:22 -drive cache=writeback,index=0,media=disk,file=hd0.img -vga vmware
+ $ kvm -m 512 -net nic -net user,hostfwd=tcp::5555-:22 -drive cache=writeback,file=hd0.img -vga vmware
vmsvga_value_write: guest runs Linux.
Note: See below on port forwarding in the networking section.
@@ -200,6 +200,14 @@ If you have problems with grub hanging during boot with the vmware vga driver: D
uncomment GRUB_TERMINAL=console
$ /usr/sbin/update-grub
+### `qemu: fatal: Trying to execute code outside RAM or ROM at 0x000000010010001e`
+
+This is due to a bug in QEMU, where the x86_64 QEMU binary fails to properly
+truncate addresses in 32-bit mode. Waiting for [[!message-id
+"1386334344-24620-1-git-send-email-agraf@suse.de"]] to be applied and become
+generally available, just use the `qemu-system-i386` binary instead.
+See [[!debbug 719633]]
+
### A few words about the qemu console
During the graphical emulation, you can use the following keys:
@@ -302,7 +310,7 @@ This is the recommended way to work with a Command Line Interface (CLI) since al
a) with ssh (assuming you have installed openssh-server)
- $ kvm -m 512 -net nic,model=rtl8139 -net user,hostfwd=tcp::5555-:22 -drive cache=writeback,index=0,media=disk,file=hd0.img &
+ $ kvm -m 512 -net nic -net user,hostfwd=tcp::5555-:22 -drive cache=writeback,file=hd0.img &
Logging in to the running Hurd:
@@ -319,7 +327,7 @@ Copying files:
b) with telnet (assuming you have installed a telnet server, like telnetd)
- $ kvm -m 512 -net nic,model=rtl8139 -net user,hostfwd=tcp::5556-:23 -drive cache=writeback,index=0,media=disk,file=hurd-install.qemu &
+ $ kvm -m 512 -net nic -net user,hostfwd=tcp::5556-:23 -drive cache=writeback,file=hurd-install.qemu &
Logging in to the running Hurd:
@@ -360,7 +368,7 @@ Now it is time to start-up your QEMU Hurd system and get networking going in the
**Important:** Remember you may need to use the `-M isapc` or `-isa` flag if using an older version of the gnumach package.
- $ qemu -m 512 -drive cache=writeback,index=0,media=disk,file=hd0.img -cdrom debian-K9-hurd-i386-CD1.iso -fda floppy.img -boot a -net nic -net tap
+ $ qemu -m 512 -drive cache=writeback,file=hd0.img -cdrom debian-K9-hurd-i386-CD1.iso -fda floppy.img -boot a -net nic -net tap
Once you have logged in as `root` run the `pfinet` translator with values that apply to your network. Think of your QEMU client as another computer in your network.
@@ -395,14 +403,7 @@ on their command line...
You can also use `--append [...]`, which will show up in `/proc/cmdline`.
-
-# `qemu: fatal: Trying to execute code outside RAM or ROM at 0x000000010010001e`
-
-This is due to a bug in QEMU, where the x86_64 QEMU binary fails to properly
-truncate addresses in 32-bit mode. Waiting for [[!message-id
-"1386334344-24620-1-git-send-email-agraf@suse.de"]] to be applied and become
-generally available, just use the `qemu-system-i386` binary instead.
-
+Command line above crashes with old qemu versions, for instance qemu 1.1.2 on Debian Wheezy, fixed by upgrading to wheezy-backports currently qemu 1.7.0, see [[!debbug 741873]]
# Related Links
diff --git a/hurd/running/qemu/babhurd_image.mdwn b/hurd/running/qemu/babhurd_image.mdwn
index 6a3bb30e..0bb9c074 100644
--- a/hurd/running/qemu/babhurd_image.mdwn
+++ b/hurd/running/qemu/babhurd_image.mdwn
@@ -6,8 +6,7 @@ What this little Hurd image can do
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 -m 512 -drive
-cache=writeback,index=0,media=disk,file=disk_image.img`.
+just use `qemu -m 512 -drive cache=writeback,file=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).
diff --git a/hurd/running/qemu/microsoft_windows.mdwn b/hurd/running/qemu/microsoft_windows.mdwn
index e2c8636c..f426a793 100644
--- a/hurd/running/qemu/microsoft_windows.mdwn
+++ b/hurd/running/qemu/microsoft_windows.mdwn
@@ -48,4 +48,4 @@ Welcome, This document is for getting you started in a few minutes.
The Debian GNU/Hurd K16 QEmu image hangs during the boot process. You may have better luck by converting the image to qcow format
..\qemu-0.9.0-x86\qemu-img.exe convert debian-hurd-k16-qemu.img -O qcow debian-hurd-k16-qemu.qcow
- ..\qemu-0.9.0-x86\qemu.exe -L ..\qemu-0.9.0-x86 -m 512 -drive cache=writeback,index=0,media=disk,file=debian-hurd-k16-qemu.qcow -localtime -M pc
+ ..\qemu-0.9.0-x86\qemu.exe -L ..\qemu-0.9.0-x86 -m 512 -drive cache=writeback,file=debian-hurd-k16-qemu.qcow -localtime -M pc
diff --git a/hurd/running/qemu/networking.mdwn b/hurd/running/qemu/networking.mdwn
index d20b84b1..0c8e0ae8 100644
--- a/hurd/running/qemu/networking.mdwn
+++ b/hurd/running/qemu/networking.mdwn
@@ -21,7 +21,7 @@ Netmask is 255.255.255.0
You can setup the pfinet translator with the command
- $ settrans -fgap /servers/socket/2 /hurd/pfinet -i eth0 -a 10.0.2.15 -g 10.0.2.2 -m 255.255.255.0
+ $ settrans -fgap /servers/socket/2 /hurd/pfinet -i /dev/eth0 -a 10.0.2.15 -g 10.0.2.2 -m 255.255.255.0
Configure nameserver in /etc/resolve.conf
diff --git a/hurd/running/virtualbox.mdwn b/hurd/running/virtualbox.mdwn
index 23a0b156..b48f7ebd 100644
--- a/hurd/running/virtualbox.mdwn
+++ b/hurd/running/virtualbox.mdwn
@@ -1,4 +1,5 @@
-[[!meta copyright="Copyright © 2011, 2013 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2011, 2013, 2015 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
@@ -21,6 +22,7 @@ supported.
The network controller should be configured as PCnet-PCI II or PCNet-FAST III
for instance. INTEL PRO or Paravirtualized Network do not work.
+Note: If your Hurd image freezes on startup with "start ext2fs: ext2fs: device:hd0s1: No such device or address", then you may need to manually edit the hard disk controller to be "IDE", because VirtualBox defaults to "SATA" which does not work. Go in to the "Storage" tab and check whether there is an entry for "Controller: SATA". If the SATA entry exists and the Hurd disk image is attached to it, delete the SATA controller and then add a new hard disk under "Controller: IDE". Restart the virtual machine. The hard disk should now be accessible via an IDE interface and Hurd should start successfully and reach the login prompt. (This is the case on VirtualBox 4.3.28 on Mac OS.)
## Converting from qemu image
diff --git a/hurd/status.mdwn b/hurd/status.mdwn
index 6aa319d1..742dea03 100644
--- a/hurd/status.mdwn
+++ b/hurd/status.mdwn
@@ -1,5 +1,5 @@
[[!meta copyright="Copyright © 2001, 2002, 2007, 2008, 2009, 2010, 2011, 2012,
-2013 Free Software Foundation, Inc."]]
+2013, 2015 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
@@ -50,9 +50,10 @@ align="right"
[[Debian GNU/Hurd|running/debian]] closely tracks the progress of the Hurd (and
often includes new features). They offer *LiveCDs and QEMU images* to
test-drive the Hurd, and about 78% of the Debian software archive are
-available. Along with the official Debian "wheezy" release (but not as an
-official Debian release), in May 2013 the Debian GNU/Hurd team released [[Debian
-GNU/Hurd 2013|news/2013-05-debian_gnu_hurd_2013]].
+available. Along with the official Debian "jessie" release (but not as an
+official Debian release), in April 2015 the [[Debian
+GNU/Hurd|hurd/running/debian]] team released [[Debian GNU/Hurd
+2015|news/2015-04-29-debian_gnu_hurd_2015]].
[[hurd/running/Arch_Hurd]] offers *LiveCDs* for testing and installation.
diff --git a/hurd/translator/pfinet/ipv6.mdwn b/hurd/translator/pfinet/ipv6.mdwn
index 81826e00..ccb359cb 100644
--- a/hurd/translator/pfinet/ipv6.mdwn
+++ b/hurd/translator/pfinet/ipv6.mdwn
@@ -35,20 +35,20 @@ IPv6 address shall be assigned using IPv6 auto-configuration.
settrans -fgp /servers/socket/2 ↩
/hurd/pfinet -6 /servers/socket/26 ↩
- -i eth0 -a 192.168.7.23 -m 255.255.255.0 -g 192.168.7.1
+ -i /dev/eth0 -a 192.168.7.23 -m 255.255.255.0 -g 192.168.7.1
settrans -fgp /servers/socket/26 ↩
/hurd/pfinet -4 /servers/socket/2 ↩
- -i eth0 -a 192.168.7.23 -m 255.255.255.0 -g 192.168.7.1
+ -i /dev/eth0 -a 192.168.7.23 -m 255.255.255.0 -g 192.168.7.1
Quite the same, but with static IPv6 address assignment:
settrans -fgp /servers/socket/2 ↩
/hurd/pfinet -6 /servers/socket/26 ↩
- -i eth0 -a 192.168.7.23 -m 255.255.255.0 -g 192.168.7.1 ↩
+ -i /dev/eth0 -a 192.168.7.23 -m 255.255.255.0 -g 192.168.7.1 ↩
-A 2001:4b88:10e4:0:216:3eff:feff:4223/64 -G 2001:4b88:10e4::1
settrans -fgp /servers/socket/26 ↩
/hurd/pfinet -4 /servers/socket/2 ↩
- -i eth0 -a 192.168.7.23 -m 255.255.255.0 -g 192.168.7.1 ↩
+ -i /dev/eth0 -a 192.168.7.23 -m 255.255.255.0 -g 192.168.7.1 ↩
-A 2001:4b88:10e4:0:216:3eff:feff:4223/64 -G 2001:4b88:10e4::1
diff --git a/index.mdwn b/index.mdwn
index 66109b08..b23f8b9a 100644
--- a/index.mdwn
+++ b/index.mdwn
@@ -1,5 +1,5 @@
[[!meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
-2009, 2010, 2011, 2013 Free Software Foundation, Inc."]]
+2009, 2010, 2011, 2013, 2015 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
@@ -98,7 +98,8 @@ are rendered on a [[Debian_GNU/Hurd|hurd/running/debian]] system.
# Current Status
-The last release is [[GNU Hurd 0.5|news/2013-09-27]], 2013-09-27. The Hurd is
+The latest releases are [[GNU Hurd 0.7, GNU Mach 1.6, GNU MIG
+1.6|news/2015-10-31-releases]], 2015-10-31. The Hurd is
developed by [[a few volunteers in their spare time|faq/how_many_developers]].
The project welcomes any assistance [[you can provide|contributing]].
Porting and development expertise is still badly needed in many key areas.
diff --git a/index/discussion.mdwn b/index/discussion.mdwn
deleted file mode 100644
index 9483791a..00000000
--- a/index/discussion.mdwn
+++ /dev/null
@@ -1,34 +0,0 @@
-[[!meta copyright="Copyright © 2007, 2008, 2013 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]]."]]"""]]
-
-
-# TODO
-
-Please add your comments here about what you think needs to be done on these
-web pages.
-
-
-## What to Add
-
-I would like to see the contributions page modified to include hardware needed, documentation wanted etc Much like the OpenBSD project has done http://www.openbsd.org/want.html --gregory
-
- <azeem-uni> tschwinge: so, first plan: don't mention www.d.o/ports/hurd on the wiki
- <azeem-uni> but transfer that information to the wiki, and keep it uptodate there
- <azeem-uni> and proabably make links to that on w.d.o
-
-
-## How to Rearrange
-
-[[Hurd]] and [[Distrib]] are a messy conglomeration of everything and should be
-cleaned and re-ordered. --[[tschwinge]]
-
-
-## [[open_issues/Mission_Statement]]
diff --git a/media_appearances.mdwn b/media_appearances.mdwn
index 2f8df76c..99af13ec 100644
--- a/media_appearances.mdwn
+++ b/media_appearances.mdwn
@@ -1,5 +1,5 @@
-[[!meta copyright="Copyright © 2010, 2011, 2012, 2013 Free Software Foundation,
-Inc."]]
+[[!meta copyright="Copyright © 2010, 2011, 2012, 2013, 2015 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,6 +16,20 @@ A lot of stuff is missing here.
[[!toc levels=2]]
+# 2015
+
+## February
+
+ * FOSDEM: {{$community/meetings/fosdem_2015#thibault_hurd}}
+
+
+# 2014
+
+## February
+
+ * FOSDEM: {{$community/meetings/fosdem_2014#thibault_hurd}}
+
+
# 2013
@@ -86,8 +100,14 @@ A lot of stuff is missing here.
released](http://www.osnews.com/story/27059/Debian_GNU_Hurd_2013_released)*,
OS News, Thom Holwerda, 2013-05-22
+ * *[Exploring GNU/Hurd – The lost operating system]
+ (http://www.linux-magazine.com/Issues/2013/154/Exploring-the-Hurd/%28language%29/eng-US)*,
+ Linux Pro Magazine #154, 2013-05 (front cover!!)
+
## February
+ * FOSDEM: {{$community/meetings/fosdem_2013#thibault_hurd}}
+
* *[GNU/Hurd Plans For A Future With USB, SATA,
64-Bit](http://www.phoronix.com/scan.php?page=news_item&px=MTI5ODM)*,
Phoronix, Michael Larabel, 2013-02-10
@@ -185,6 +205,11 @@ A lot of stuff is missing here.
# 2010
+## February
+
+ * FOSDEM 2010: {{$community/meetings/fosdem_2010#olaf_hurd1}}
+
+ * FOSDEM 2010: {{$community/meetings/fosdem_2010#olaf_hurd2}}
## August
diff --git a/microkernel/mach/deficiencies.mdwn b/microkernel/mach/deficiencies.mdwn
index 4cd4131f..8242e0bd 100644
--- a/microkernel/mach/deficiencies.mdwn
+++ b/microkernel/mach/deficiencies.mdwn
@@ -11,7 +11,7 @@ License|/fdl]]."]]"""]]
[[!tag open_issue_documentation open_issue_gnumach]]
-[[!toc]]
+[[!toc levels=2]]
# Deficiencies
diff --git a/microkernel/mach/external_pager_mechanism.mdwn b/microkernel/mach/external_pager_mechanism.mdwn
index 54492b71..ccb72421 100644
--- a/microkernel/mach/external_pager_mechanism.mdwn
+++ b/microkernel/mach/external_pager_mechanism.mdwn
@@ -1,5 +1,5 @@
-[[!meta copyright="Copyright © 2002, 2007, 2008, 2010, 2011, 2012 Free Software
-Foundation, Inc."]]
+[[!meta copyright="Copyright © 2002, 2007, 2008, 2010, 2011, 2012, 2015 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
@@ -136,8 +136,8 @@ resource, yet it cannot safely transfer its handle to the client. In
this case, it would proxy the requests.
(C) The storeio server contacts, for instance, a [[device_driver]] to do
-the read. This could also be a network block device (the NBD server
-in GNU/Linux), a file, a memory object, etc.
+the read. This could also be a [[network block device (the NBD server
+in GNU/Linux)|hurd/libstore/nbd_store]], a file, a memory object, etc.
(D) The device driver allocates an [[anonymous_page]] from the
[[default_pager]] and reads the data into it. Once all of the operations are
diff --git a/microkernel/mach/gnumach.mdwn b/microkernel/mach/gnumach.mdwn
index 84307a49..88aa1432 100644
--- a/microkernel/mach/gnumach.mdwn
+++ b/microkernel/mach/gnumach.mdwn
@@ -1,5 +1,5 @@
-[[!meta copyright="Copyright © 2001, 2002, 2007, 2008, 2011, 2013 Free Software
-Foundation, Inc."]]
+[[!meta copyright="Copyright © 2001, 2002, 2007, 2008, 2011, 2013, 2015 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 +24,7 @@ GNU Mach runs on x86 machines. See the
[[hardware_compatibility_list]] and information about
[[ports]] to other architectures.
-The latest release is [[GNU Mach 1.4|news/2013-09-27]].
+The latest release is [[GNU Mach 1.6|news/2015-10-31-releases]].
# Advantages of GNU Mach
diff --git a/microkernel/mach/gnumach/boot_trace.mdwn b/microkernel/mach/gnumach/boot_trace.mdwn
index ea999a9b..e2de4a28 100644
--- a/microkernel/mach/gnumach/boot_trace.mdwn
+++ b/microkernel/mach/gnumach/boot_trace.mdwn
@@ -1,5 +1,5 @@
-[[!meta copyright="Copyright © 2007, 2008, 2011, 2013 Free Software Foundation,
-Inc."]]
+[[!meta copyright="Copyright © 2007, 2008, 2011, 2013, 2015 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
@@ -11,190 +11,187 @@ License|/fdl]]."]]"""]]
`if NCPUS > 1` stuff is not being considered so far.
+grub starts the execution at boot\_entry
-> i386/i386at/boothdr.S: \_start
+> i386/i386at/boothdr.S: boot\_entry: sets up C environment, i.e. sets up a basic stack and clears BSS, fixes ifunc.
-> i386/i386at/boothdr.S: boot\_entry
+> i386/i386at/model\_dep.c: c\_boot\_entry: gets multiboot parameters
->> i386/i386at/model\_dep.c: c\_boot\_entry
+>> i386/i386at/boothdr.S: discover\_x86\_cpu\_type: detect processor type
->>> i386/i386at/boothdr.S: discover\_x86\_cpu\_type
+>> i386/i386at/model\_dep.c: i386at\_init: initialize PC-specific stuff
->>> i386/i386at/model\_dep.c: i386at\_init
+>>> i386/i386/pic.c: picinit: initialize 8259 PIC
->>>> i386/i386/pic.c: picinit
+>>> i386/i386at/model\_dep.c: mem\_size\_init: compute memory size
->>>> i386/i386at/model\_dep.c: mem\_size\_init
+>>> i386/intel/pmap.c: pmap\_bootstrap: initialize x86 page table
->>>> i386/intel/pmap.c: pmap\_bootstrap
+>>> i386/i386/gdt.c: gdt\_init: initialize x86 segmentation
->>>> i386/i386/gdt.c: gdt\_init
+>>> i386/i386/idt.c: idt\_init: initialize x86 traps
->>>> i386/i386/idt.c: idt\_init
+>>> i386/i386at/int\_init.c: int\_init: initialize PC interrupts
->>>> i386/i386at/int\_init.c: int\_init
+>>> i386/i386/ldt.c: ldt\_init: initialize x86 segmentation
->>>> i386/i386/ldt.c: ldt\_init
+>>> i386/i386/ktss.c: ktss\_init: initialize x86 task switching
->>>> i386/i386/ktss.c: ktss\_init
+>> kern/startup.c: setup\_main: set up non-hardware specific stuff
->>> kern/startup.c: setup\_main
+>>> kern/debug.c: panic\_init: initialize panic data
->>>> kern/debug.c: panic\_init
+>>> kern/printf.c: printf\_init: initialize printf
->>>> kern/printf.c: printf\_init
+>>> kern/sched\_prim.c: sched\_init: initialize scheduler
->>>> kern/sched\_prim.c: sched\_init
+>>>> kern/processor.c: pset\_sys\_bootstrap: initialize processor sets
->>>>> kern/sched\_prim.c: wait\_queue\_init
+>>>> kern/ast.c: ast\_init: initialize Asychronous System Traps
->>>>> kern/processor.c: pset\_sys\_bootstrap
+>>> vm/vm\_init.c: vm\_mem\_bootstrap: initialize virtual memory
->>>>> kern/ast.c: ast\_init
+>>>> vm/vm\_resident.c: vm\_page\_bootstrap: turn physical pages into virtually allocatable pages
->>>> vm/vm\_init.c: vm\_mem\_bootstrap
+>>>>> vm/vm\_resident.c: pmap\_startup: initialize pages
->>>>> vm/vm\_resident.c: vm\_page\_bootstrap
+>>>> kern/slab.c: slab\_bootstrap: early-initialize SLAB
->>>>>> vm/vm\_resident.c: pmap\_startup
+>>>> vm/vm\_object.c: vm\_object\_bootstrap: initialize VM object management
->>>>> kern/zalloc.c: zone\_bootstrap
+>>>>> vm/vm\_external.c: vm\_external\_module\_initialize: initialize VM external object management
->>>>> vm/vm\_object.c: vm\_object\_bootstrap
+>>>> vm/vm\_map.c: vm\_map\_init: initialize VM maps
->>>>>> vm/vm\_external.c: vm\_external\_module\_initialize
+>>>> vm/vm\_kern.c: kmem\_init: initialize kernel's virtual memory
->>>>> vm/vm\_map.c: vm\_map\_init
+>>>> i386/intel/pmap.c: pmap\_init: initialize remainder of x86 page table
->>>>> vm/vm\_kern.c: kmem\_init
+>>>> kern/slab.c: slab\_init: initialize remainder of SLAB
->>>>> i386/intel/pmap.c: pmap\_init
+>>>> kern/kalloc.c: kalloc\_init: initialize kallocator
->>>>> kern/zalloc.c: zone\_init
+>>>> vm/vm\_fault.c: vm\_fault\_init: initialize VM fault management
->>>>> kern/kalloc.c: kalloc\_init
+>>>> vm/vm\_resident.c: vm\_page\_module\_init: initialize remainder of virtual memory
->>>>> vm/vm\_fault.c: vm\_fault\_init
+>>>> vm/memory\_object.c: memory\_manager\_default\_init: initialize remainder of VM object management
->>>>> vm/vm\_resident.c: vm\_page\_module\_init
+>>> ipc/ipc\_init.c: ipc\_bootstrap: initialize IPC
->>>>> vm/memory\_object.c: memory\_manager\_default\_init
+>>>> ipc/ipc\_table.c: ipc\_table\_init: initialize IPC tables
->>>> ipc/ipc\_init.c: ipc\_bootstrap
+>>>> ipc/ipc\_notify.c: ipc\_notify\_init: initialize IPC notification
->>>>> ipc/ipc\_table.c: ipc\_table\_init
+>>>> ipc/ipc\_hash.c: ipc\_hash\_init: initialize IPC reverse hash table
->>>>> ipc/ipc\_notify.c: ipc\_notify\_init
+>>>> ipc/ipc\_marequest.c: ipc\_marequest\_init: initialize msg-accepted request
->>>>> ipc/ipc\_hash.c: ipc\_hash\_init
+>>> vm/vm\_init.c: vm\_mem\_init: finish initializing VM
->>>>> ipc/ipc\_marequest.c: ipc\_marequest\_init
+>>>> vm/vm\_object.c: vm\_object\_init: finish initializing kernel object
->>>> vm/vm\_init.c: vm\_mem\_init
+>>>> vm/memory\_object\_proxy: memory\_object\_proxy\_init: initialize memory object proxy
->>>>> vm/vm\_object.c: vm\_object\_init
+>>> ipc/ipc\_init.c: ipc\_init: finish initializing IPC
->>>> ipc/ipc\_init.c: ipc\_init
+>>>> kern/ipc\_host.c: ipc\_host\_init: initialize host IPC
->>>>> kern/ipc\_host.c: ipc\_host\_init
+>>>>> kern/ipc\_host.c: ipc\_pset\_init: initialize processor sets ports
->>>>>> kern/ipc\_host.c: ipc\_pset\_init
+>>>>> kern/ipc\_host.c: ipc\_processor\_init: initialize processor ports
->>>>>> kern/ipc\_host.c: ipc\_pset\_enable
+>>> i386/intel/pmap.h: PMAP\_ACTIVATE\_KERNEL: activate kernel page table
->>>>>> kern/ipc\_host.c: ipc\_processor\_init
+>>> kern/timer.c: init\_timers: initialize timers
->>>> i386/intel/pmap.h: PMAP\_ACTIVATE\_KERNEL
+>>> kern/mach\_clock.c: init\_timeout: initialize timeout
->>>> kern/timer.c: init\_timers
+>>> kern/xpr.c: xprbootstrap: initialize xpr buffer
->>>> kern/mach\_clock.c: init\_timeout
+>>> kern/time\_stamp.c: timestamp\_init: initialize tick
->>>> kern/xpr.c: xprbootstrap
+>>> kern/mach\_clock.c: [[mapable\_time\_init|interface/device/time]]
->>>> kern/time\_stamp.c: timestamp\_init
+>>> i386/i386at/model\_dep.c: machine\_init: initialize x86 machine
->>>> kern/mach\_clock.c: [[mapable\_time\_init|interface/device/time]]
+>>>> device/cons.c: cninit: initialize console
->>>> i386/i386at/model\_dep.c: machine\_init
+>>>> i386/i386/fpu.c: init\_fpu: initialize 8087 FPU
->>>>> device/cons.c: cninit
+>>>> linux/dev/init/main.c: linux\_init: initialize linux drivers
->>>>> i386/i386/fpu.c: init\_fpu
+>>>>> linux/dev/arch/i386/kernel/irq.c: init\_IRQ: initialize IRQs
->>>>> linux/dev/init/main.c: linux\_init
+>>>>>> linux/dev/arch/i386/kernel/irq.c: reserve\_mach\_irqs: register IRQs to mach
->>>>>> linux/dev/arch/i386/kernel/irq.c: init\_IRQ
+>>>>> linux/dev/kernel/sched.c: linux\_sched\_init: initialize dumb scheduler
->>>>>>> linux/dev/arch/i386/kernel/irq.c: reserve\_mach\_irqs
+>>>>> linux/dev/init/main.c: calibrate\_delay: calibrate delay loop
->>>>>> linux/dev/kernel/sched.c: linux\_sched\_init
+>>>>> linux/dev/glue/kmem.c: linux\_kmem\_init: initialize memory management
->>>>>> linux/dev/init/main.c: calibrate\_delay
+>>>>> linux/src/drivers/pci/pci.c: pci\_init: initialize PCI bus
->>>>>> linux/dev/glue/kmem.c: linux\_kmem\_init
+>>>>>> linux/src/arch/i386/kernel/bios32.c: pcibios\_init: call PCI BIOS32 initialization
->>>>>> linux/src/drivers/pci/pci.c: pci\_init
+>>>>>> linux/src/drivers/pci/pci.c: scan\_bus: enumerate PCI devices
->>>>>>> linux/src/arch/i386/kernel/bios32.c: pcibios\_init
+>>>>>> linux/src/arch/i386/kernel/bios32.c: pcibios\_fixup: apply platform-specific fixes
->>>>>>> linux/src/drivers/pci/pci.c: scan\_bus
+>>>>> linux/dev/glue/net.c: linux\_net\_emulation\_init: initialize network glue
->>>>>>> linux/src/arch/i386/kernel/bios32.c: pcibios\_fixup
+>>>>> linux/dev/drivers/block/genhd.c: device\_setup: initialize block devices
->>>>>> linux/dev/glue/net.c: linux\_net\_emulation\_init
+>>>>>> linux/dev/glue/block.c: blk\_dev\_init: initialize linux block devices
->>>>>> linux/dev/drivers/block/genhd.c: device\_setup
+>>>>>>> linux/src/drivers/block/ide.c: ide\_init: initialize IDE driver
->>>>>>> linux/dev/glue/block.c: blk\_dev\_init
+>>>>>>> linux/dev/drivers/block/floppy.c: floppy\_init: initialize floppy driver
->>>>>>>> linux/src/drivers/block/ide.c: ide\_init
+>>>>>> linux/src/drivers/scsi/scsi.c: scsi\_dev\_init: initialize SCSI drivers
->>>>>>>> linux/dev/drivers/block/floppy.c: floppy\_init
+>>>>>> linux/dev/net/core/dev.c: net\_dev\_init: initialize network drivers
->>>>>>> linux/src/drivers/scsi/scsi.c: scsi\_dev\_init
+>>>>> linux/pcmcia-cs/glue/pcmcia.c: pcmcia\_init: initialize PCMCIA drivers
->>>>>>> linux/dev/net/core/dev.c: net\_dev\_init
+>>>> i386/i386at/autoconf.c: probeio: probe mach-managed devices (com, lpr)
->>>>>> linux/pcmcia-cs/glue/pcmcia.c: pcmcia\_init
+>>>> i386/i386at/model\_dep.c: inittodr: get RTC time
->>>>> i386/i386at/autoconf.c: probeio
+>>>> i386/intel/pmap.c: pmap\_unmap\_page\_zero: unmap address 0
->>>>> i386/i386at/model\_dep.c: inittodr
+>>>> kern/mach\_clock.c: mapable\_time\_init: initialize mappable time
->>>>> i386/intel/pmap.c: pmap\_unmap\_page\_zero
+>>> kern/task.c: task\_init: initialize gnuamch atsk
->>>> kern/task.c: task\_init
+>>>> kern/syscall\_emulation.c: eml\_init: initialize user space emulation code
->>>>> kern/syscall\_emulation.c: eml\_init
+>>> kern/thread.c: thread\_init: initialize thread management
->>>> kern/thread.c: thread\_init
+>>>> i386/i386/pcb.c: pcb\_module\_init: initialize PCB management
->>>>> i386/i386/pcb.c: pcb\_module\_init
+>>>>> i386/i386/fpu.c: fpu\_module\_init: initialize FPU management
->>>>>> i386/i386/fpu.c: fpu\_module\_init
+>>> kern/thread\_swap.c: swapper\_init: initialize thread swapper
->>>>>> i386/i386/iopb.c: iopb\_init
+>>> kern/sched\_prim.c: recompute\_priorities: initial priorities computation
->>>> kern/thread\_swap.c: swapper\_init
+>>> kern/mach\_factor.c: compute\_mach\_factor: initial mach factor computation
->>>> kern/sched\_prim.c: recompute\_priorities
+>>> kern/startup.c: thread\_start: create initial kernel thread
->>>> kern/mach\_factor.c: compute\_mach\_factor
+>>> kern/startup.c: cpu\_launch\_first\_thread: start first user thread
->>>> kern/startup.c: start\_kernel\_threads
+>>>> i386/intel/pmap.h: PMAP\_ACTIVATE\_KERNEL: activate kernel page table
-[...]
-
->>>> kern/startup.c: cpu\_launch\_first\_thread
-
->>>>> i386/i386at/model\_dep.c: startrtclock
+>>>> i386/i386at/model\_dep.c: startrtclock: start clock
->>>>>> i386/i386/pit.c: clkstart
+>>>>> i386/i386/pit.c: clkstart: start 8254 PIT
->>>>> i386/intel/pmap.h: PMAP\_ACTIVATE\_KERNEL
+>>>> i386/intel/pmap.h: PMAP\_ACTIVATE\_KERNEL: activate user page table
->>>>> i386/i386/pcb.c: load\_context
+>>>> i386/i386/pcb.c: load\_context: load first context
[...]
@@ -224,7 +221,7 @@ License|/fdl]]."]]"""]]
>> [...]
->> vm\_pageout
+>> vm\_pageout: run the paging out daemon
>> Does not return.
diff --git a/microkernel/mach/gnumach/debugging.mdwn b/microkernel/mach/gnumach/debugging.mdwn
index a5daf4f1..c14f6111 100644
--- a/microkernel/mach/gnumach/debugging.mdwn
+++ b/microkernel/mach/gnumach/debugging.mdwn
@@ -65,9 +65,12 @@ Another interesting feature is watching a variable, by using
watch 0x123400
-and then type continue, to let Mach continue execution. The debugger will be entered again on any change in that variable. The watch is implemented in hardware, so it does not disturb or slow down execution at all.
+and then type continue, to let Mach continue execution. The debugger will be entered again on any change in that variable. The watch is implemented in hardware, so it does not disturb or slow down execution at all. The same can be achieved programmatically, e.g. using
+ struct db_watchpoint watch = { .task = NULL, .loaddr= 0x40e, .hiaddr = 0x40e+2, .link = NULL};
+ db_set_hw_watchpoint(&watch, 0);
+
# GDB in QEMU
When you're [[running_a_system_in_QEMU|hurd/running/qemu]] you can directly
diff --git a/microkernel/mach/gnumach/hardware_compatibility_list.mdwn b/microkernel/mach/gnumach/hardware_compatibility_list.mdwn
index 32e712c9..460c8aba 100644
--- a/microkernel/mach/gnumach/hardware_compatibility_list.mdwn
+++ b/microkernel/mach/gnumach/hardware_compatibility_list.mdwn
@@ -96,6 +96,11 @@ on the hardware devices they support.
[[hurd/DDE]] provides more up-to-date network device drivers, based on Linux
2.6.29 code, running as user-space processes.
+# BIOS32 Service Directory
+
+GNU Mach is not yet compatible with mmconfig, and PCI access requires the presence of the BIOS32 Service Directory.
+You can check for its presence by running a Linux 32 bits kernel with the kernel parameter "pci=bios" and checking if PCI devices work.
+
# User Success Reports
These boards are known to work. Gnumach/Hurd has been installed and run on these board successfully.
@@ -115,7 +120,7 @@ These boards are known to work. Gnumach/Hurd has been installed and run on these
Some people couldn't get these hardware combinations to work with Hurd.
-Note: The Debian GNU/Hurd installer actually runs on Linux, so it (almost) always works. The critical bit is booting after installation.
+The present Debian GNU/Hurd installer itself runs on Hurd, so failure on the installer may mean that the hardware is uncompatible with Hurd.
* ASUS P5A motherboard and AMD K6-2 333MHz CPU - doesn't boot
* ASUS P2B-LS motherboard with an Intel PII-MMX 400 MHz CPU - this board had a defective onboard NIC (that could not be disable in BIOS) and working 3COM Etherlink III NIC in a PCI bus slot. This combination worked with GNU/Linux. The 3COM NIC is known to work with the Hurd. However, while gnumach/Hurd will boot on this system, it is confused by the defective onboard NIC and unable to use the 3COM NIC. Attempting to start networking generates a continous stream of eth0 and eth1 reset messages on the console that renders the system unusable.
diff --git a/microkernel/mach/gnumach/ports/xen.mdwn b/microkernel/mach/gnumach/ports/xen.mdwn
index a8a1fcbf..1af19257 100644
--- a/microkernel/mach/gnumach/ports/xen.mdwn
+++ b/microkernel/mach/gnumach/ports/xen.mdwn
@@ -1,5 +1,5 @@
-[[!meta copyright="Copyright © 2007, 2008, 2009, 2011, 2013, 2014 Free Software
-Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008, 2009, 2011, 2013, 2014, 2015 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
@@ -34,23 +34,46 @@ Replace /dev/sda4 with your partition. Install and use crosshurd to setup a GNU/
# /etc/xen/hurd configuration
+There are two ways to boot a Hurd system: either directly boot gnumach, or boot it through PV-Grub. The former is a bit more complex.
+
+## Directly booting gnumach
+
Here is a sample /etc/xen/hurd configuration
kernel = "/boot/gnumach-xen-pae"
- memory = 256
+ memory = 512
disk = ['phy:sda4,hda,w']
extra = "root=device:hd0"
vif = [ '' ]
ramdisk = "/boot/hurd-modules"
-Do not give more than 580MB memory (due to bootstrap limitations, it's not easy
-to map more).
+`hurd-modules` from http://youpibouh.thefreecat.org/hurd-xen/ was built from a specific libc version,
+/!\ This means that when using this image, your GNU/Hurd system also needs to have the same version!
+
+It is preferrable to rebuild your own hurd-modules, using your own libc version, by using the
+http://youpibouh.thefreecat.org/hurd-xen/build_hurd-modules script.
Suggestions about [[networking_configuration]] are available.
If you need stable MAC addresses, use a syntax like `vif = [
'mac=00:16:3e:XX:XX:XX, bridge=br0' ]`.
+## Booting through pv-grub
+
+# `pv-grub`
+
+Starting from Xen 4.0, you can run the GNU Hurd using `pv-grub`.
+
+Download http://youpibouh.thefreecat.org/hurd-xen/pv-grub.gz into /boot, and use the following for instance:
+
+ kernel = "/boot/pv-grub.gz"
+ memory = 512
+ disk = ['phy:sda4,hda,w']
+ extra = "(hd0)/boot/grub/menu.lst"
+ vif = [ '' ]
+
+extra is now the path to the grub config file, which must contain the usual grub
+command to boot a hurd system.
# Running Hurd with Xen
@@ -66,36 +89,30 @@ and gnumach should get started. Proceed with native-install.
- If `xm` complains about networking (`vif could not be connected`), it's Xen scripts' fault, see Xen documentation for how to configure the network. The simplest way is network-bridge with fixed IPs (note that you need the bridge-utils package for this). You can also just disable networking by commenting the vif line in the config.
- If `xm` complains `Error: (2, 'Invalid kernel', 'xc_dom_compat_check: guest type xen-3.0-x86_32 not supported by xen kernel, sorry\n')`, you most probably have a PAE-enabled hypervisor and a non-PAE gnumach. Either install and boot non-PAE hypervisor and kernel, or rebuilt gnumach in PAE mode.
+# Partitions
-# Building from sources
+You will need the following notation for the gnumach root= parameter:
-If you want to generate these images, first get the `gnumach-1-branch-Xen-branch` branch from gnumach CVS.
-Then look for "Ugly" in `kern/bootstrap.c`, how to generate `hurd-modules` is explained there, and you'll have to fix `EXT2FS_SIZE` and `LD_SO_SIZE` by hand.
-Then use
+root=part:2:device:hd0
- ./configure --enable-platform=xen
- make
+to access the second partition of hd0, for instance.
-The current `hurd-modules` was built from the debian packages `hurd 20070606-2` and `libc0.3 2.6.1-1`.
-/!\ This means that when using this image, your GNU/Hurd system also needs to be a glibc version 2.6 or later-based one!
+You will also need to use the parted storeio module for the /dev entries, for instance:
-# `pv-grub`
+settrans -fgap /dev/hd0s1 /hurd/storeio -T typed part:1:device:hd0
-From Xen 4.0 on you can run the GNU Hurd directly using `pv-grub`,
-without the need to [prepare a special bootstrap
-image](http://youpibouh.thefreecat.org/hurd-xen/build_hurd-modules) (like an
-initrd).
+# Miscellaneous
-Download http://youpibouh.thefreecat.org/hurd-xen/pv-grub.gz into /boot, and use the following for instance:
+[[Internals]].
- kernel = "/boot/pv-grub.gz"
- memory = 256
- disk = ['phy:sda4,hda,w']
- extra = "(hd0,1)/boot/grub/menu.lst"
- vif = [ '' ]
+[[!GNU_Savannah_task 5468]], [[!GNU_Savannah_task 6584]].
-extra is now the path to the grub config file.
+# Building from sources
+If you want to generate your own gnumach kernel, see [[microkernel/mach/gnumach/building]], and use
+
+ ./configure --enable-platform=xen
+ make
## IRC, freenode, #hurd, 2013-11-09
@@ -266,19 +283,6 @@ extra is now the path to the grub config file.
<youpi> we didn't have to care about that in grub1 indeed :)
-# Partitions
-
-You will need the following notation for the gnumach root= parameter:
-
-root=part:2:device:hd0
-
-to access the second partition of hd0, for instance.
-
-You will also need to use the parted storeio module for the /dev entries, for instance:
-
-settrans -fgap /dev/hd0s1 /hurd/storeio -T typed part:1:device:hd0
-
-
## IRC, freenode, #hurd, 2013-11-09
<phcoder> youpi: now I get "hd0: dom0's VBD 768
@@ -295,13 +299,6 @@ settrans -fgap /dev/hd0s1 /hurd/storeio -T typed part:1:device:hd0
[[hurd/libstore/part]].
-# Miscellaneous
-
-[[Internals]].
-
-[[!GNU_Savannah_task 5468]], [[!GNU_Savannah_task 6584]].
-
-
# Host-side Writeback Caching
Optimization possible as it is with
diff --git a/microkernel/mach/history.mdwn b/microkernel/mach/history.mdwn
index 62bd3e34..c9d3bba9 100644
--- a/microkernel/mach/history.mdwn
+++ b/microkernel/mach/history.mdwn
@@ -216,4 +216,5 @@ IRC, freenode, #hurd, 2013-07-04:
---
[[!tag open_issue_documentation]]Update for [[GNU Mach 1.4
-release|news/2013-09-27]].
+release|news/2013-09-27]], [[GNU Mach 1.5|news/2015-04-10-releases]], [[GNU
+Mach 1.6|news/2015-10-31-releases]].
diff --git a/microkernel/mach/mig/gnu_mig.mdwn b/microkernel/mach/mig/gnu_mig.mdwn
index 933453f7..e6f51802 100644
--- a/microkernel/mach/mig/gnu_mig.mdwn
+++ b/microkernel/mach/mig/gnu_mig.mdwn
@@ -1,5 +1,5 @@
-[[!meta copyright="Copyright © 2001, 2006, 2008, 2009, 2010, 2013 Free Software
-Foundation, Inc."]]
+[[!meta copyright="Copyright © 2001, 2006, 2008, 2009, 2010, 2013, 2015 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 +24,7 @@ Like its predecessor, it can only generate C code, that has to be compiled and
linked to client and server programs respectively ([[!taglink
open_issue_mig]]).
-The latest release is [[GNU MIG 1.4|news/2013-09-27]].
+The latest release is [[GNU MIG 1.6|news/2015-10-31-releases]].
* [[Building]] - building (and obtaining) GNU MIG
* [[Open Issues|tag/open_issue_mig]]
diff --git a/faq/sudo.mdwn b/news/2015-03-20-gsoc.mdwn
index 3e2a76e7..143865f4 100644
--- a/faq/sudo.mdwn
+++ b/news/2015-03-20-gsoc.mdwn
@@ -1,4 +1,4 @@
-[[!meta copyright="Copyright © 2013 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2015 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,9 +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]]."]]"""]]
-[[!tag faq/running]]
+[[!meta date="2015-03-20 08:30 UTC"]]
-[[!meta title="dhclient, halt, mke2fs not available through sudo su"]]
-
-Debian GNU/Hurd's ``sudo su`` does not add `/sbin` into `PATH`, unlike Linux has
-been doing since recently. One has to use ``sudo su -`` .
+The **Google Summer of Code 2015** is on! If you're a student, consider
+applying for a GNU Hurd project -- details to be found on our
+[[community/GSoC]] and [[community/gsoc/project_ideas]] pages.
diff --git a/news/2015-04-10-releases.mdwn b/news/2015-04-10-releases.mdwn
new file mode 100644
index 00000000..f3064f20
--- /dev/null
+++ b/news/2015-04-10-releases.mdwn
@@ -0,0 +1,55 @@
+[[!meta copyright="Copyright © 2015 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 date="2015-04-17 13:25 UTC"]]
+
+GNU Hurd 0.6, GNU Mach 1.5, GNU MIG 1.5 released.
+[[!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="""
+
+ * **GNU Hurd 0.6**: [[!message-id desc=announcement
+ "8738415d4z.fsf@kepler.schwinge.homeip.net"]],
+ [NEWS](http://git.savannah.gnu.org/cgit/hurd/hurd.git/tree/NEWS?id=v0.6)
+ * **GNU Mach 1.5**: [[!message-id desc=announcement
+ "87618x5d5o.fsf@kepler.schwinge.homeip.net"]],
+ [NEWS](http://git.savannah.gnu.org/cgit/hurd/gnumach.git/tree/NEWS?id=v1.5)
+ * **GNU MIG 1.5**: [[!message-id desc=announcement
+ "874moh5d5c.fsf@kepler.schwinge.homeip.net"]],
+ [NEWS](http://git.savannah.gnu.org/cgit/hurd/mig.git/tree/NEWS?id=v1.5)
+
+If you want to give the Hurd a try, you may easily do so with [[Debian
+GNU/Hurd|hurd/running/debian]].
+
+Please read the [[FAQ]].
+Bug reports should be sent to [[mailing_lists/bug-hurd]] or filed on
+<http://savannah.gnu.org/bugs/?group=hurd>. Requests for assistance
+should be sent to [[mailing_lists/help-hurd]] or filed on
+<http://savannah.gnu.org/support/?group=hurd>. You can also find us on
+the Freenode IRC network in the [[#hurd|IRC]] channel.
+
+---
+
+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/documentation]].
+
+**GNU Mach** is the microkernel upon which a GNU Hurd system is based. It
+provides an Inter Process Communication (IPC) mechanism that the Hurd uses to
+define interfaces for implementing in a distributed multi-server fashion the
+services a traditional operating system kernel provides. [[More
+detailed|microkernel/mach/gnumach]].
+
+"""]]
diff --git a/news/2015-04-29-debian_gnu_hurd_2015.mdwn b/news/2015-04-29-debian_gnu_hurd_2015.mdwn
new file mode 100644
index 00000000..9e5d978e
--- /dev/null
+++ b/news/2015-04-29-debian_gnu_hurd_2015.mdwn
@@ -0,0 +1,46 @@
+[[!meta copyright="Copyright © 2015 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 date="2015-05-03 20:00 UTC"]]
+
+Debian GNU/Hurd 2015 released!
+[[!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="""
+
+It is with huge pleasure that the Debian GNU/Hurd team announces the
+**release of Debian GNU/Hurd 2015**.
+
+This is a snapshot of Debian "sid" at the time of the stable Debian
+"jessie" release (April 2015), so it is mostly based on the same
+sources. It is not an official Debian release, but it is an official
+[[Debian GNU/Hurd|hurd/running/debian]] port release.
+
+Read the [[!message-id desc="announcement email"
+"20150429224658.GN4713@type.home"]].
+
+---
+
+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/documentation]].
+
+**GNU Mach** is the microkernel upon which a GNU Hurd system is based. It
+provides an Inter Process Communication (IPC) mechanism that the Hurd uses to
+define interfaces for implementing in a distributed multi-server fashion the
+services a traditional operating system kernel provides. [[More
+detailed|microkernel/mach/gnumach]].
+
+"""]]
diff --git a/news/2015-10-31-releases.mdwn b/news/2015-10-31-releases.mdwn
new file mode 100644
index 00000000..57cd7ec7
--- /dev/null
+++ b/news/2015-10-31-releases.mdwn
@@ -0,0 +1,169 @@
+[[!meta copyright="Copyright © 2015 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 date="2015-10-31 15:15 UTC"]]
+
+GNU Hurd 0.7, GNU Mach 1.6, GNU MIG 1.6 released.
+[[!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="""
+
+We're pleased to announce new releases!
+
+ * **GNU Hurd 0.7**,
+ [NEWS](http://git.savannah.gnu.org/cgit/hurd/hurd.git/tree/NEWS?id=v0.7):
+
+ Version 0.7 (2015-10-31)
+
+ The node cache in ext2fs has been improved, generalized, and moved to
+ libdiskfs. It is now also used by isofs and fatfs.
+
+ The native fakeroot tool has been greatly improved. It now handles
+ named sockets, and multiple corner cases related to permissions were
+ identified and fixed.
+
+ A new utility `rpcscan' has been introduced. It scans Mach servers
+ and displays the RPCs handled by the associated demuxer.
+
+ A long-standing synchronization issue involving the filesystem
+ translators, libdiskfs, and libpager has been identified and fixed.
+
+ The code has been updated to work with newer versions of the compiler
+ and libc, and numerous bugs have been fixed throughout the code.
+
+ Release tarballs may be downloaded from <ftp://ftp.gnu.org/gnu/hurd/>,
+ <http://ftp.gnu.org/gnu/hurd/>, or checked out of Git,
+ <http://git.savannah.gnu.org/cgit/hurd/hurd.git>. SHA1 checksums:
+
+ a735a07687f7996face3bd310af2254192a02f40 hurd-0.7.tar.bz2
+ d10b3c1de191ac88425aa30a03c4130e2a883b14 hurd-0.7.tar.bz2.sig
+ 62032e04bf6b22e4c874772f1f77d5678d916054 hurd-0.7.tar.gz
+ 7fafd66e0003ea3768f76bd597e617bdc202e312 hurd-0.7.tar.gz.sig
+
+ The [[**GNU Hurd**|hurd]] is the GNU project's replacement for the [[Unix]]
+ kernel. It is a collection of [[servers|hurd/translator]] 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/documentation]],
+ [[hurd/what_is_the_GNU_Hurd]].
+
+ * **GNU Mach 1.6**,
+ [NEWS](http://git.savannah.gnu.org/cgit/hurd/gnumach.git/tree/NEWS?id=v1.6):
+
+ Version 1.6 (2015-10-31)
+
+ The code has been updated to work with newer versions of the compiler,
+ and numerous bugs have been fixed throughout the code.
+
+ The lock debugging infrastructure has been revived and improved, and
+ many locking issues have been fixed.
+
+ The IPC tables and the hash table mapping objects to IPC entries have
+ been replaced by radix trees. This addresses a scalability issue, as
+ IPC tables required huge amounts of continuous virtual kernel memory.
+
+ The kernel now allows non-privileged users to wire a small amount of
+ memory.
+
+ A bug hindering the eviction of inactive pages by the pageout daemon
+ has been identified and fixed.
+
+ The kernel now keeps timestamps relative to the system boot time.
+ Among other things this fixes bogus uptime readings if the system time
+ is altered.
+
+ A reference leak in the exception handling mechanism has been
+ identified and fixed.
+
+ ANSI escape sequences are now handled when using `printf'. This fixes
+ the formatting of messages printed by various Linux drivers.
+
+ Release tarballs may be downloaded from <ftp://ftp.gnu.org/gnu/gnumach/>,
+ <http://ftp.gnu.org/gnu/gnumach/>, or checked out of Git,
+ <http://git.savannah.gnu.org/cgit/hurd/gnumach.git>. SHA1 checksums:
+
+ 73e09c43955ef2e3459b2877b5e6d6bbe517b8c3 gnumach-1.6.tar.bz2
+ 96ff426b3b94acf327a88f25c80ab5b5f26ed94a gnumach-1.6.tar.bz2.sig
+ 448cd88974a5264736c900691c9ab62a810aff28 gnumach-1.6.tar.gz
+ e06e733ad11f2e048dd9ad3348c2d3100be26078 gnumach-1.6.tar.gz.sig
+
+ [[**GNU Mach**|microkernel/mach/gnumach]] is the GNU distribution of the
+ [[Mach microkernel|microkernel/mach]], upon which a GNU Hurd system is
+ based. The [[microkernel]] provides an [[Inter Process Communication
+ (IPC)|ipc]] mechanism that the Hurd uses to define interfaces for
+ implementing in a distributed multi-server fashion the services a
+ traditional operating system kernel provides. More detailed:
+ [[microkernel/mach/documentation]].
+
+ * **GNU MIG 1.6**,
+ [NEWS](http://git.savannah.gnu.org/cgit/hurd/mig.git/tree/NEWS?id=v1.6):
+
+ Version 1.6 (2015-10-31)
+
+ * MIG now emits RPC lookup functions that are declared `static inline'
+ improving compatibility with newer dialects of C.
+
+ Release tarballs may be downloaded from <ftp://ftp.gnu.org/gnu/mig/>,
+ <http://ftp.gnu.org/gnu/mig/>, or checked out of Git,
+ <http://git.savannah.gnu.org/cgit/hurd/mig.git>. SHA1 checksums:
+
+ a9a4b5666834afe8fb861453c5b3ef324201f1d3 mig-1.6.tar.bz2
+ 93562c45bbda40ad31f74f6f2fd0c064ef8f0ec5 mig-1.6.tar.bz2.sig
+ 6e937a35229da02e9e739d75a03020e24a1b5297 mig-1.6.tar.gz
+ fc25bb9652406675fed63c4581493a6fc39d9690 mig-1.6.tar.gz.sig
+
+ [[**GNU MIG**|microkernel/mach/mig/gnu_mig]] is the GNU distribution of the
+ [[Mach 3.0 Interface Generator (MIG)|microkernel/mach/mig]]. This tool
+ translates [[Remore Procedure Call (RPC)|rpc]] definition files to C code,
+ and is required to compile any packages that are receiving or invoking
+ RPCs, such as GNU Mach, GNU Hurd, and the GNU C Library (glibc) when
+ compiled for the Hurd. More detailed:
+ [[microkernel/mach/mig/documentation]].
+
+ * **glibc-2.19-hurd+libpthread-20151031**
+
+ Snapshot tarballs may be downloaded from <ftp://alpha.gnu.org/gnu/hurd/>,
+ <http://alpha.gnu.org/gnu/hurd/>, or checked out of Git,
+ <http://git.savannah.gnu.org/cgit/hurd/glibc.git> and
+ <http://git.savannah.gnu.org/cgit/hurd/libpthread.git>. SHA1 checksums:
+
+ 5b709297f8622444695f13723f77dfc8754b8ed9 glibc-2.19-hurd+libpthread-20151031.tar.bz2
+ b970e604368fd80420ef029bb1c86fc2f7b2c382 glibc-2.19-hurd+libpthread-20151031.tar.bz2.sig
+ 68f02cd3890654588183539428253a12ff98ea0d glibc-2.19-hurd+libpthread-20151031.tar.gz
+ da8b38a9a9914a2dedba82a0cf353a4ce0ea30e7 glibc-2.19-hurd+libpthread-20151031.tar.gz.sig
+
+ The [[**GNU C Library** (glibc)|glibc]] implements a system's standard
+ library functions (as described by ISO C, and POSIX, for example). An
+ important part of the Hurd actually resides in glibc: here, the system
+ interfaces are implemented on top of the [[Hurd IPC
+ protocols|hurd/interface]]. This is different to the Linux port, where
+ most simple system interfaces are in fact simply forwarded to/implemented
+ as [[system_call]]s.
+
+Many thanks to all the people who are helping!
+
+If you want to give the Hurd a try, you may easily do so with [[Debian
+GNU/Hurd|hurd/running/debian]].
+
+The GNU Hurd system currently runs on 32-bit x86 machines. To compile the
+Hurd, you need a toolchain configured to target `i?86-gnu`; you cannot use a
+toolchain targeting GNU/Linux.
+
+Please read the [[FAQ]].
+Bug reports should be sent to [[mailing_lists/bug-hurd]] or filed on
+<http://savannah.gnu.org/bugs/?group=hurd>. Requests for assistance
+should be sent to [[mailing_lists/help-hurd]] or filed on
+<http://savannah.gnu.org/support/?group=hurd>. You can also find us on
+the Freenode IRC network in the [[#hurd|IRC]] channel.
+
+"""]]
diff --git a/open_issues/_san.mdwn b/open_issues/_san.mdwn
index fad53727..5980784b 100644
--- a/open_issues/_san.mdwn
+++ b/open_issues/_san.mdwn
@@ -1,4 +1,5 @@
-[[!meta copyright="Copyright © 2012, 2013 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2012, 2013, 2015 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
@@ -10,7 +11,7 @@ License|/fdl]]."]]"""]]
[[!meta title="Port the GCC and LLVM/clang Sanitizers (*san) to the Hurd"]]
-[[!tag open_issue_gcc]]
+[[!tag open_issue_gcc open_issue_llvm]]
GCC and LLVM/clang provide several *sanitizers*,
<http://clang.llvm.org/docs/UsersManual.html#controlling-code-generation>, such
@@ -23,7 +24,7 @@ as:
GNU Tools Cauldron 2012. <http://code.google.com/p/address-sanitizer/>.
* Memory Sanitizer, an detector of uninitialized reads (MSan;
- `-fsanitize=memory)
+ `-fsanitize=memory`)
<http://code.google.com/p/memory-sanitizer/>
@@ -62,3 +63,8 @@ first look they reimplement a lot of [[/glibc]] by directly using
<jakub> richi: that said, I don't want to spend as much time as I've done
so far on it, and in the time I'll allocate for it optimizing the code it
generates is higher on the todo list than ports to other targets
+
+
+# 2015-04-14
+
+[[!message-id "20150414130851.GA6154@type.bordeaux.inria.fr"]].
diff --git a/open_issues/automatically_checking_port_deallocation.mdwn b/open_issues/automatically_checking_port_deallocation.mdwn
index fb8cfd01..6aeaf207 100644
--- a/open_issues/automatically_checking_port_deallocation.mdwn
+++ b/open_issues/automatically_checking_port_deallocation.mdwn
@@ -20,3 +20,13 @@ IRC, unknown channel, unknown date.
<youpi> which is already a good thing
<youpi> of course the coverage can't be perfect
<youpi> one of the bugs I fixed happened only for setuid binaries for instance
+
+- - -
+
+portseal can automatically detect port leaks. It is somewhat
+intrusive, as it leverages a source-transformation and hence requires
+a recompilation of the code that contains the port leak. Currently,
+it is a prototype. If you are looking for a port leak, I'd love you
+to try it though:
+
+[[http://darnassus.sceen.net/gitweb/teythoon/portseal.git]]
diff --git a/open_issues/blkrrpart_ioctl.mdwn b/open_issues/blkrrpart_ioctl.mdwn
deleted file mode 100644
index b3a91bfb..00000000
--- a/open_issues/blkrrpart_ioctl.mdwn
+++ /dev/null
@@ -1,32 +0,0 @@
-[[!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="BLKRRPART IOCTL"]]
-
-[[!tag open_issue_glibc open_issue_hurd open_issue_gnumach]]
-
-Just like in other Unix systems one can, for example, use `fdisk` or `parted`
-to manage hard disks' partition tables. After doing changes to a disk's
-partition table, the kernel has to be instructed to reinitialize its internal
-data structures: where does a partition begin, where does it end, etc.
-
-With `fdisk` and friends this is done on Linux with the `BLKRRPART` IOCTL,
-which is used to tell the kernel to reread the disk's partition table.
-
-`parted` also uses this interface on Linux, but for GNU Hurd, the corresponding
-function, `libparted/arch/gnu.c (gnu_disk_commit)`, doesn't do anything at all.
-The infrastructure in [[GNU_Mach|microkernel/mach/gnumach]] is already there,
-`linux/src/drivers/block/ide.c (ide_ioctl) <BLKRRPART>` and
-`linux/src/drivers/scsi/sd_ioctl.c (sd_ioctl) <BLKRRPART>`, but the IOCTL needs
-to be routed from `libparted` through [[hurd/glibc]]'s Hurd IOCTL interface,
-through Hurd's [[hurd/libstore]], to [[GNU_Mach|microkernel/mach/gnumach]].
-
-This is not a huge project, and actually one that is suitable for someone who
-wants to start with hacking the system.
diff --git a/open_issues/code_analysis.mdwn b/open_issues/code_analysis.mdwn
index 2e3d2dea..2e10da80 100644
--- a/open_issues/code_analysis.mdwn
+++ b/open_issues/code_analysis.mdwn
@@ -63,6 +63,10 @@ There is a [[!FF_project 276]][[!tag bounty]] on some of these tasks.
* [clang](http://www.google.com/search?q=clang+analysis)
+ * <http://darnassus.sceen.net/~teythoon/qa/gnumach/scan-build>
+
+ * <http://darnassus.sceen.net/~teythoon/qa/hurd/scan-build>
+
* [Linux' sparse](https://sparse.wiki.kernel.org/)
* <http://klee.llvm.org/>
@@ -122,7 +126,9 @@ There is a [[!FF_project 276]][[!tag bounty]] on some of these tasks.
<teythoon> that, and most tools are horrible to use, frama-c is really
an exception in this regard
- * [Coverity](http://www.coverity.com/) (nonfree?)
+ * [Coverity](http://www.coverity.com/) (nonfree)
+
+ * <https://scan.coverity.com/projects/1307> If you want access, speak up in #hurd or on the mailing list.
* IRC, OFTC, #debian-hurd, 2014-02-03
diff --git a/open_issues/console_vs_xorg.mdwn b/open_issues/console_vs_xorg.mdwn
index ffefb389..39a3336d 100644
--- a/open_issues/console_vs_xorg.mdwn
+++ b/open_issues/console_vs_xorg.mdwn
@@ -1,4 +1,4 @@
-[[!meta copyright="Copyright © 2012 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2012, 2015 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
@@ -11,6 +11,17 @@ License|/fdl]]."]]"""]]
[[!tag open_issue_glibc open_issue_hurd]]
+# console switching and DMs
+
+Something like VT_ACTIVATE would need to be implemented to allow console
+switching. In the meanwhile xorg refuses the vtx option, thus making lightdm &
+such fail with an Xserver error:
+
+ (EE) Fatal server error:
+ (EE) Unrecognized option: vt7
+
+In the meanwhile DMs could be taught not to use the vtx option.
+
# IRC, freenode, #hurd, 2012-08-30
<gean> braunr: I have some errors about keyboard in the xorg log, but
diff --git a/open_issues/e2fsck_i_file_acl_hi.mdwn b/open_issues/e2fsck_i_file_acl_hi.mdwn
index d03b733c..7fe347f6 100644
--- a/open_issues/e2fsck_i_file_acl_hi.mdwn
+++ b/open_issues/e2fsck_i_file_acl_hi.mdwn
@@ -1,4 +1,5 @@
-[[!meta copyright="Copyright © 2010, 2011 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2010, 2011, 2015 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]]."]]"""]]
+Fixed in e2fsprogs 1.42.13
+
IRC, unknown channel, unknown date.
<Duck> something's broken in ext2, fsck, or the like
@@ -36,3 +39,7 @@ IRC, unknown channel, unknown date.
This is due to an erroneous read/write from e2fsck, see
<http://sourceforge.net/tracker/?func=detail&aid=3379227&group_id=2406&atid=102406>.
+
+Fixed in e2fsprogs 1.42.13
+
+See [[!debbug 760275]]
diff --git a/open_issues/ext2fs_dtime.mdwn b/open_issues/ext2fs_dtime.mdwn
new file mode 100644
index 00000000..5cb5fb7b
--- /dev/null
+++ b/open_issues/ext2fs_dtime.mdwn
@@ -0,0 +1,21 @@
+[[!meta copyright="Copyright © 2014 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_hurd]]
+
+ /dev/hd0s1: Deleted inode 95849 has zero dtime. FIXED.
+
+This is actually sorta benign. What typically happens is that one upgrades e.g.
+a library, and there are still some processes using it (e.g. because it's libc).
+The library file is thus kept on the filesystem, so as to be able to load parts
+of it on demand. The file is thus marked as deleted, but the deletion hasn't
+been effective yet, thus dtime being zero. e2fsck notices this and finishes
+deleting the file. To really fix this, we would probably have to really unmount
+the filesystem.
diff --git a/open_issues/gcc.mdwn b/open_issues/gcc.mdwn
index 45590928..b46a48cc 100644
--- a/open_issues/gcc.mdwn
+++ b/open_issues/gcc.mdwn
@@ -1,5 +1,5 @@
-[[!meta copyright="Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
-Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014,
+2015 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
@@ -835,23 +835,6 @@ kepler.SCHWINGE and [[12 min|performance#measure]] on laplace.SCHWINGE.
<http://gcc.gnu.org/install/test.html>
-Testing on GNU/Hurd is blocked on
-[[fork_mach_port_mod_refs_ekern_urefs_owerflow]].
-
-TODO. On GNU/Hurd, it is advisable to reboot after having built and installed
-GCC, before running the testsuite, as otherwise there seems to be a tendency
-that the system crashes during the `gcc.c-torture/compile/limits-structnest.c`
-tests, which are rather memory hungry, see [[!message-id
-"87bol6aixd.fsf@schwinge.name"]]. Likewise, it also seems advisable to add
-further reboots in between, that is, separate `make check`'s `check-host` into
-several separate runs, and then one for `check-target` (see
-`[build]/Makefile:do-check`, `[build]/gcc/Makefile:CHECK_TARGETS`), as
-otherwise there seems to be a tendency for the system crashing sooner or later.
-(Running `check-host` accumulates to something like 44 hours worth of
-forking/execing of GCC and testcases.) On GNU/Linux we run it in one go, so
-that we'll catch any fundamental rearrangements of/additions to the testsuites.
-
-
$ make -k check 2>&1 | tee log_test
[...]
@@ -861,6 +844,9 @@ This runs for [[7 h 35 min|performance#measure]] on kepler.SCHWINGE and [[15 h
## Analysis
+ A lot of the failures are due to gcc's unwind support not knowing about signal trampoline on GNU/Hurd, this is a TODO.
+
+
$ toolchain/logs/process gcc test
* PTYs
diff --git a/open_issues/glibc/static.mdwn b/open_issues/glibc/static.mdwn
new file mode 100644
index 00000000..26076a5e
--- /dev/null
+++ b/open_issues/glibc/static.mdwn
@@ -0,0 +1,34 @@
+[[!meta copyright="Copyright © 2015 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_glibc]]
+
+statically-linked executables don't work with i686 libc (which happens to be the default), from the 2015 glibc tarball:
+
+ ../configure --prefix=/ --enable-add-ons=libpthread --enable-pt_chown --disable-nscd CFLAGS=-O2
+ make lib
+ make -C ../mach objdir=$PWD subdir=mach ..=../
+ make -C ../hurd objdir=$PWD subdir=hurd ..=../
+
+ # create a test.c
+ gcc test.c -o test.o -c
+ gcc test.o -o test -static -v
+
+the last command gives
+
+ /usr/lib/gcc/i586-gnu/4.9/collect2 -plugin /usr/lib/gcc/i586-gnu/4.9/liblto_plugin.so -plugin-opt=/usr/lib/gcc/i586-gnu/4.9/lto-wrapper -plugin-opt=-fresolution=/tmp/ccBtYgpy.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_eh -plugin-opt=-pass-through=-lc --sysroot=/ --build-id -m elf_i386 --hash-style=gnu -static -o test /usr/lib/gcc/i586-gnu/4.9/../../../i386-gnu/crt0.o /usr/lib/gcc/i586-gnu/4.9/../../../i386-gnu/crti.o /usr/lib/gcc/i586-gnu/4.9/crtbeginT.o -L/usr/lib/gcc/i586-gnu/4.9 -L/usr/lib/gcc/i586-gnu/4.9/../../../i386-gnu -L/usr/lib/gcc/i586-gnu/4.9/../../.. -L/lib/i386-gnu -L/usr/lib/i386-gnu test.o --start-group -lgcc -lgcc_eh -lc --end-group /usr/lib/gcc/i586-gnu/4.9/crtend.o /usr/lib/gcc/i586-gnu/4.9/../../../i386-gnu/crtn.o
+
+thus using the following to statically link against the just-build glibc:
+
+ BUILD=/path/to/glibc-2.19-hurd+libpthread-20150515/build /usr/lib/gcc/i586-gnu/4.9/collect2 -plugin /usr/lib/gcc/i586-gnu/4.9/liblto_plugin.so -plugin-opt=/usr/lib/gcc/i586-gnu/4.9/lto-wrapper -plugin-opt=-fresolution=/tmp/ccDjhjdt.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_eh -plugin-opt=-pass-through=-lc --sysroot=/ --build-id -m elf_i386 --hash-style=gnu -static -o test $BUILD/csu/crt0.o $BUILD/csu/crti.o /usr/lib/gcc/i586-gnu/4.9/crtbeginT.o -L/usr/lib/gcc/i586-gnu/4.9 -L/usr/lib/gcc/i586-gnu/4.9/../../../i386-gnu -L/usr/lib/gcc/i586-gnu/4.9/../../.. -L/lib/i386-gnu -L/usr/lib/i386-gnu test.o --start-group -lgcc -lgcc_eh $BUILD/libc.a $BUILD/hurd/libhurduser.a $BUILD/mach/libmachuser.a --end-group /usr/lib/gcc/i586-gnu/4.9/crtend.o $BUILD/csu/crtn.o
+
+And then ./test gets killed early during libc initialization.
+
+Passing --host=i586-gnu --build=i586-gnu fixes the kill, so the issue is most probably in some i686-specific file.
diff --git a/open_issues/gnumach_PCI_access.mdwn b/open_issues/gnumach_PCI_access.mdwn
new file mode 100644
index 00000000..dc099563
--- /dev/null
+++ b/open_issues/gnumach_PCI_access.mdwn
@@ -0,0 +1,18 @@
+[[!meta copyright="Copyright © 2014 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]]."]]"""]]
+
+Currently, GNU Mach requires the presence of the BIOS32 Service Directory for PCI access.
+The other possible methods are direct access, which is somewhat dangerous and using mmconfig, the preferred default in Linux.
+Direct access is already supported, but only used if BIOS32 is present for safety reasons.
+The relevant Linux code could be adapted and reused.
+
+
+[[!tag open_issue_gnumach]]
+
diff --git a/open_issues/kill_setuid.mdwn b/open_issues/kill_setuid.mdwn
new file mode 100644
index 00000000..047dceda
--- /dev/null
+++ b/open_issues/kill_setuid.mdwn
@@ -0,0 +1,49 @@
+[[!meta copyright="Copyright © 2015 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_hurd]]
+
+http://bugs.debian.org/413326
+
+The X server does not terminate when the user X session is finished. This is due
+to xinit not being able to kill the setuid Xorg.
+
+On the sending side, glibc does:
+
+ err = HURD_MSGPORT_RPC (__proc_getmsgport (proc, pid, &msgport),
+ (taskerr = __proc_pid2task (proc, pid,
+ &refport)) ?
+ __proc_getsidport (proc, &refport) : 0, 1,
+ kill_port (msgport, refport));
+ }
+
+I.e. asks proc for the task port, and if that fails, asks proc for the
+session port, then it sends the signal.
+
+It happens that since the target got setuid'ed, the proc server had set it
+owned by root, and hence (rightfully) refuses to return the task port through
+pid2task. As a result only proc_getsidport() works, but that will be accepted
+by the receiving side only for some signals.
+
+POSIX says
+
+ For a process to have permission to send a signal to a process designated
+ by pid, unless the sending process has appropriate privileges, the real or
+ effective user ID of the sending process shall match the real or saved
+ set-user-ID of the receiving process.
+
+And indeed Xorg keeps the original user uid as real uid, so that xinit can kill
+it when the session is finished.
+
+We probably need to implement another reference port that the killer can send to
+the killee. It may be useful for some other operations that users can do on the
+setuid processes they have started.
diff --git a/open_issues/kvm.mdwn b/open_issues/kvm.mdwn
index 6dfffc9a..327f97ca 100644
--- a/open_issues/kvm.mdwn
+++ b/open_issues/kvm.mdwn
@@ -23,3 +23,15 @@ with Virtualbox.
<pochu> ok, ty
2010-07-31, GNU Mach commit 039176372b4271f370ef38eb2ee5d43923a5b28b.
+
+# KVM-on-KVM (nested KVM)
+
+This seems sluggish like hell. jenkins.debian.net suffers badly from it: it
+takes like an hour to complete the "Loading additional components" step.
+
+It's actually slower than just running qemu-on-KVM.
+
+This doesn't happen with Linux L2 guests.
+
+Date: Tue, 11 Nov 2014
+https://www.mail-archive.com/kvm@vger.kernel.org/msg109570.html
diff --git a/open_issues/libpthread_dlopen.mdwn b/open_issues/libpthread_dlopen.mdwn
index a825fdff..9e127841 100644
--- a/open_issues/libpthread_dlopen.mdwn
+++ b/open_issues/libpthread_dlopen.mdwn
@@ -1,5 +1,5 @@
-[[!meta copyright="Copyright © 2011, 2012, 2013, 2014 Free Software Foundation,
-Inc."]]
+[[!meta copyright="Copyright © 2011, 2012, 2013, 2014, 2015 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,6 +15,15 @@ License|/fdl]]."]]"""]]
# [[FAQ entry|faq/libpthread_dlopen]]
+Some applications don't themselves link against libpthread, but then load
+plugins which do link against libpthread. This means internally switching from
+single-threading to multi-threading, which is only supported since libc0.3
+2.19-16~2. Previously, it would result in errors such as:
+
+ ./pthread/../sysdeps/generic/pt-mutex-timedlock.c:70: __pthread_mutex_timedlock_internal: Assertion `__pthread_threads' failed.
+
+*This is now fixed as of libc0.3 2.19-16~2.*
+
# IRC, freenode, #hurd, 2010-01-24
<pinotree> youpi: hm, thought about the pthread/stubs issue w/ dlopen'ed
diff --git a/open_issues/perl.mdwn b/open_issues/perl.mdwn
index 48343e3e..62d29ac1 100644
--- a/open_issues/perl.mdwn
+++ b/open_issues/perl.mdwn
@@ -24,6 +24,18 @@ features.
There is a [[!FF_project 264]][[!tag bounty]] on this task.
+# Bugs in perl
+
+There is a bug in perl's putenv which makes it interact badly with fakeroot-tcp and fakeroot-sysv (not fakeroot-hurd), this shows up as this
+
+ *** glibc detected *** /usr/bin/perl: free(): invalid pointer: 0x01026000 ***
+
+See http://rt.perl.org/rt3/Ticket/Display.html?id=91452 for details
+
+A workaround is to do this before building packages calling perl inside fakeroot:
+
+export FAKEROOTUID=0 FAKEROOTEUID=0 FAKEROOTSUID=0 FAKEROOTFUID=0 FAKEROOTGID=0 FAKEROOTEGID=0 FAKEROOTSGID=0 FAKEROOTFGID=0
+
---
diff --git a/faq/apt_umount.mdwn b/open_issues/problematic_packages.mdwn
index c8dc3eb4..b4784e59 100644
--- a/faq/apt_umount.mdwn
+++ b/open_issues/problematic_packages.mdwn
@@ -1,5 +1,4 @@
-[[!meta copyright="Copyright © 2007, 2008, 2013 Free Software Foundation,
-Inc."]]
+[[!meta copyright="Copyright © 2014, 2015 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,20 +8,22 @@ 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 faq/debian]]
+[[!meta title="Problematic packages"]]
-[[!meta title="apt: unmount cdroms"]]
+[[!tag open_issue_gnumach open_issue_hurd]]
-You can add a shell script umount so that apt can automatically unmount cdroms.
+This page lists the few packages whose build makes the Debian buildd box crash as of 2015, August:
- #!/bin/sh
- # Filename: /usr/bin/umount
-
- settrans -fg "$@"
+* Kill pfinet
-Give executable permission to the script.
+ * [[nbd|hurd/libstore/nbd_store]]
+ * rsyslog
- # chmod +x /usr/bin/umount
+* Kill the session
-In `/etc/fstab` add a trailing `/` after cdrom like `/cdrom/` since apt uses a
-trailing `/`.
+ * ruby-hiredis
+ * libxs
+
+* ext2fs gets stuck
+
+ * emacs24
diff --git a/open_issues/procfs_umount.mdwn b/open_issues/procfs_umount.mdwn
new file mode 100644
index 00000000..f31467df
--- /dev/null
+++ b/open_issues/procfs_umount.mdwn
@@ -0,0 +1,24 @@
+[[!meta copyright="Copyright © 2014 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_hurd]]
+
+As soon as one has accessed /proc/mounts, /proc can't be umount:
+
+ # settrans -ga /proc
+ settrans: /proc: Device or resource busy
+
+This is because mtab is still mounted on /proc/mounts:
+
+ # settrans -ga /proc/mounts
+ # settrans -ga /proc
+
+settrans -R is supposed to be doing this, but unfortunately this is not
+implemented yet in libnetfs, see #ifdef NOTYET in netfs_shutdown.
diff --git a/open_issues/ssh.mdwn b/open_issues/ssh.mdwn
index 6d000b00..965cfddf 100644
--- a/open_issues/ssh.mdwn
+++ b/open_issues/ssh.mdwn
@@ -1,4 +1,4 @@
-[[!meta copyright="Copyright © 2013 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2013, 2015 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
@@ -18,3 +18,4 @@ One has to disable compression in /etc/sshd_config:
Compression no
+The error returned by `inflate` is `Z_DATA_ERROR`.
diff --git a/open_issues/symlink_translator.mdwn b/open_issues/symlink_translator.mdwn
new file mode 100644
index 00000000..80ce7f0e
--- /dev/null
+++ b/open_issues/symlink_translator.mdwn
@@ -0,0 +1,24 @@
+[[!meta copyright="Copyright © 2015 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_hurd]]
+
+The /hurd/symlink translator does not work as expected:
+
+ % settrans -ca broken /hurd/symlink missing
+ % file broken
+ broken: empty
+
+Here is the expected behavior, as implemented by the short-cut logic
+in lib*fs:
+
+ % ln -s missing broken_symlink
+ % file broken_symlink
+ broken_symlink: broken symbolic link to missing
diff --git a/open_issues/virtualization/fakeroot.mdwn b/open_issues/virtualization/fakeroot.mdwn
index 88a18a93..441d5c13 100644
--- a/open_issues/virtualization/fakeroot.mdwn
+++ b/open_issues/virtualization/fakeroot.mdwn
@@ -1324,3 +1324,7 @@ License|/fdl]]."]]"""]]
<braunr> it happens (rarely) when directly using ext2
<braunr> and more often through fakeroot
<braunr> i didn't take the time to investigate
+
+## youpi
+
+ the daily script of debian-installer uses the -s / -i options of fakeroot. How could we manage to implement them?
diff --git a/open_issues/virtualization/networking.mdwn b/open_issues/virtualization/networking.mdwn
index f8bda063..122f21ab 100644
--- a/open_issues/virtualization/networking.mdwn
+++ b/open_issues/virtualization/networking.mdwn
@@ -34,48 +34,34 @@ Collection about stuff that is relevant for *virtualization* and *networking*.
[[community/meetings/GHM2013]].
-
-## IRC, freenode, #hurd, 2013-08-23
-
- <youpi> good news
- <youpi> with a couple small patches, openvpn does work as joe user
-
-
-## IRC, freenode, #hurd, 2013-08-30
-
- <youpi> it's really cool that openvpn ended up working completely the day
- before :)
-
-
-## IRC, freenode, #hurd, 2013-09-03
-
- <_d3f> Hey guys, how did you get openvpn working on the Hurd? just curious
- as I saw it in the GHM video
- <_d3f> no one here who has a clue how to get *vpn working on the Hurd?
- <braunr> _d3f: youpi did it
- <braunr> i don't know the details
- <_d3f> okay, I will question him when I see him around, thx. Do you know if
- it was a lot of work to get the tun device working? Because I would like
- to use tinc on the Hurd.
- <braunr> _d3f: a bit but not that much either
- <_d3f> braunr: well, okay. Do you know if the source of his 'port' is
- online, I haven't found it :/
- <braunr> it should be soon
-
-
-## IRC, freenode, #hurd, 2013-09-04
-
- <_d3f> youpi: you are the guy who has brought openvpn to the hurd, right? I
- would like to know how you got the tun/tap thing working as I would like
- to use tinc on it. :)
- <youpi> _d3f: essentially no modification of openvpn iirc
- <youpi> just tell it to open the tun node created by pfinet
- <youpi> and read/write it
- <youpi> i.e. the existing generic code in place in openvpn
- <_d3f> I will have a look at it, somekind tinc builds with the linux
- specific device.c but I wasn't able to exchange keys. I will have a look
- at the device handling again and try to get the pfinet tun node used.
-
+OpenVPN can use pfinet's tun as it is, and be configured completely as joe user,
+as shown below. Note that the tun0 node name has to begin with "tun", so pfinet
+knows it's a tun.
+
+ $ mkdir -p $HOME/servers/socket
+ $ touch $HOME/servers/tun0
+ $ settrans -ca $HOME/servers/socket/2 /hurd/pfinet $HOME/servers/tun0 -a 10.0.0.1 -p 10.0.0.2
+ $ cat vpn.conf
+ client
+ dev tun
+ dev-node /home/samy/servers/tun0
+ ...
+ $ openvpn --config vpn.conf --verb 5
+ ...
+
+So we let openvpn running, and now we can make applications use the pfinet
+TCP/IP stack started above: the remap command below starts a new shell, where
+it redirects /servers/socket/2 (where the system TCP/IP stack resides) onto
+$HOME/servers/socket/2 (where the new TCP/IP stack resides).
+
+ $ remap /servers/socket/2 $HOME/servers/socket/2
+ $ wget www.gnu.org
+
+Ideally openvpn would be made to setup pfinet itself, but at least for now it
+can be configured by hand like that.
+
+It would probably be possible to make pfinet able to produce a tap too, would
+need some code.
## IRC, freenode, #hurd, 2013-09-07
@@ -98,3 +84,5 @@ Collection about stuff that is relevant for *virtualization* and *networking*.
<d3f> yeah I know, I talked to him as I am tring to get tinc working on the
Hurd (tinc builds by now). I will give him a shot about creating the
"tun" device
+
+tun has indeed nothing to do with devnode and netdde, it's pfinet which creates it, as documented above.
diff --git a/open_issues/wine.mdwn b/open_issues/wine.mdwn
index 842442f1..6d48fda0 100644
--- a/open_issues/wine.mdwn
+++ b/open_issues/wine.mdwn
@@ -1,5 +1,5 @@
-[[!meta copyright="Copyright © 2010, 2011, 2013, 2014 Free Software Foundation,
-Inc."]]
+[[!meta copyright="Copyright © 2010, 2011, 2013, 2014, 2015 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
@@ -174,3 +174,9 @@ allocation. There is kernel support for this,* however.
<Andre_H> gnu_srs1: well, the stable branch is called stable because not
everything get's there :)7
<Andre_H> gnu_srs1: the PATH_MAX patch needs more thinking...
+
+## IRC, freenode, #hurd, 2015-02-09
+
+ <Andre_H> since Wine 1.7.28 it runs quite well on Gnu/Hurd - wiki.winehq.org/Hurd
+ <Andre_H> ( https://source.winehq.org/git/wine.git/commitdiff/6d50cfcac28f84e07777fc10874887356832102e )
+
diff --git a/overview.mdwn b/overview.mdwn
new file mode 100644
index 00000000..11d9382b
--- /dev/null
+++ b/overview.mdwn
@@ -0,0 +1,89 @@
+[[!meta copyright="Copyright © 2015 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 provides an quick overview of how the GNU/Hurd system starts, and thus how
+it is structured.
+
+# Grub
+
+The GNU/Hurd system uses multiboot, and thus usually booted from grub, which
+loads into memory the GNU Mach kernel, the ext2fs server (see later), and the
+exec server (see later). It then gives hand to GNU Mach, passing ext2fs and exec
+as payloads.
+
+# GNU Mach
+
+GNU Mach initializes a basic console, and tasks, memory management and
+interprocess communication (details can be read on
+[[microkernel/mach/gnumach/boot_trace]]). It also initializes drivers for
+disk. It then creates two tasks for the ext2fs and exec servers.
+
+# ext2fs
+
+ext2fs is given as a parameter the name of the device of the root filesystem. It
+opens it through the GNU Mach disk driver, and mounts the filesystem found on
+it. When it is ready, it can start booting the system by starting the "startup",
+"proc", and "auth" servers. It does so by using the "exec" server already loaded
+by GNU Mach. We then have a posixish environment, ext2fs gives hand to
+"startup".
+
+# exec
+
+"exec" handles loading binaries into processes. Details are available in
+[[Thomas' overview|/hurd-paper#exec]].
+
+# proc
+
+Proc knows about processes: what pid they have, passing signals, managing tty
+sessions, etc. Details are available in [[Thomas' overview|/hurd-paper#proc]]
+and [[Marcus' presentation|/hurd-talk#pro]].
+
+# auth
+
+Auth knows about identities: uid, gid, etc. Details are available in
+[[Thomas' overview|/hurd-paper#auth]] and
+[[Marcus' presentation|/hurd-talk#aut]].
+
+# startup
+
+"startup" is the unixish system starting point: it basically runs /sbin/init, at
+which point we end up with the standard Unix boot up.
+
+# netdde / pfinet
+
+At some point of the boot process, networking will have to be configured. This
+is done by starting "pfinet", the TCP/IP stack, from /servers/socket/2, which
+itself starts the network device driver server, "netdde", from /dev/netdde.
+
+# everydaylife
+
+Normal processes use glibc to interact with the system. Depending on the kind of
+call, glibc will perform RPCs with the various servers mentioned above: opening
+files will trigger RPCs with ext2fs, calling getpid() and such will trigger RPCs
+with proc, calling getuid() and such will trigger RPCs with auth, opening a
+network socket will trigger RPCs with pfinet. Details are available in [[the RPC page|/hurd/rpc]]
+
+One can read the [[details how reading a file happens|hurd/io_path]].
+
+# how translators get started
+
+There are three ways translators get started:
+
+* exec, startup, proc, auth are explictly started during the boot as explained
+above.
+* some file of the filesystem have a *passive translator* record, i.e. it is
+recorded in the filesystem that when you open the file, it actually starts a
+translator which provides the content. For instance, */dev/null* is actually a
+translator which eats your data and produces no data.
+* one can manually start a translator and bind it on a file of the
+filesystem. It will stay there until getting killed or the system is
+restarted. For instance, one may want to temporarily mount an ISO image.
+
+Details are available in [[Marcus' presentation|/hurd-talk#act]].
diff --git a/public_hurd_boxen/installation/darnassus.mdwn b/public_hurd_boxen/installation/darnassus.mdwn
index 907be198..4a86f609 100644
--- a/public_hurd_boxen/installation/darnassus.mdwn
+++ b/public_hurd_boxen/installation/darnassus.mdwn
@@ -1,4 +1,5 @@
-[[!meta copyright="Copyright © 2013, 2014 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2013, 2014, 2015 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,21 +14,41 @@ License|/fdl]]."]]"""]]
# Packages
- * apache2-mpm-prefork (used to be apache2-mpm-worker but changed because of some threading issues with CGI)
+ * apache2
- * ikiwiki libcgi-session-perl libtext-csv-perl libcgi-formbuilder-perl
- libauthen-passphrase-perl libnet-openid-consumer-perl
- libterm-readline-gnu-perl libgravatar-url-perl
- librpc-xml-perl libtext-wikiformat-perl libhighlight-perl perlmagick
- graphviz texinfo
+ Installation done by Richard.
+
+ * ikiwiki
+
+ Modified package, `ikiwiki_3.20140227_all.deb`, which contains some patch
+ (not yet in a suitable form for upstream) to get rendering of our news
+ pages correct (correct?). Thus, set the package to `hold` with `dpkg
+ --set-selections`. To avoid [garbled non-ascii characters in body in web
+ interface](https://ikiwiki.info/bugs/garbled_non-ascii_characters_in_body_in_web_interface/),
+ manually `patch /usr/share/perl5/IkiWiki/CGI.pm` with upstream commits
+ feb21ebfacb341fc34244e1c9b8557fd81d1dfc1, and
+ f35c6a97d1837a37879996211bd6f3c8eb356df9 ([[!debbug 776181]]).
+
+ * libcgi-session-perl libtext-csv-perl libcgi-formbuilder-perl
+ libauthen-passphrase-perl libnet-openid-consumer-perl
+ libterm-readline-gnu-perl libgravatar-url-perl librpc-xml-perl
+ libtext-wikiformat-perl libhighlight-perl perlmagick graphviz texinfo
* libemail-send-perl (for my *sendmail vs. ikiwiki* patch)
+ 2015-10-05:
+
+ E: Package 'libemail-send-perl' has no installation candidate
+
+ * <http://snapshot.debian.org/package/libreturn-value-perl/1.666004-1/#libreturn-value-perl_1.666004-1>
+ * <http://snapshot.debian.org/package/libemail-send-perl/2.199-1/#libemail-send-perl_2.199-1>
+
* libsearch-xapian-perl xapian-omega (for ikiwiki's search plugin)
* libyaml-perl libyaml-syck-perl (for ikiwiki's YAML field plugins)
- * libtext-markdown-perl (used instead of libtext-markdown-discount-perl)
+ * libtext-markdown-perl (used instead of libtext-markdown-discount-perl,
+ but the latter still needs to be installed)
Make sure that liblwpx-paranoidagent-perl is not installed; OpenID logins
with fail otherwise: *no_identity_server: Could not determine ID provider
@@ -35,9 +56,11 @@ License|/fdl]]."]]"""]]
actually occur. Nothing in the apache logs. Not fixed by the update to
ikiwiki 3.20140227.
- * gitweb highlight
+ * gitweb
+
+ So one can view diffs of the wiki pages, etc.
- sudo ln -s ~hurd-web/hurd-web.git /var/lib/git/
+ $ sudo ln -s ~hurd-web/hurd-web.git /var/lib/git/
* git-daemon-sysvinit
@@ -47,7 +70,29 @@ License|/fdl]]."]]"""]]
# `~hurd-web/`
+<http://darnassus.sceen.net/~hurd-web/>, and Git access: push to/pull from
+`darnassus:~hurd-web/hurd-web.git`.
+
+
+## Setup
+
$ mkdir hurd-web.git && GIT_DIR=hurd-web.git git init
+ [...]
+
+Configure the [`post-update` hook](http://ikiwiki.info/post-commit/):
+
+ $ ln -is ../../public_html.workspace.update hurd-web.git/hooks/post-update
+
+For a full rebuild:
+
+ $ ./public_html.workspace.generate\ wrappers --rebuild
+
+May want to clean up `~hurd-web/public_html.workspace/.ikiwiki/` before that.
+/!\ But preserve the `userdb` file.
+
+As a user with appropriate permissions, then install the CGI file:
+
+ $ sudo mv ~hurd-web/public_html.workspace.cgi /usr/lib/cgi-bin/hurd-web
# `~tschwinge/`
@@ -102,65 +147,10 @@ The goal is that robots rather index the official pages,
<tschwinge> braunr: http://www.gnu.org/software/hurd/public_hurd_boxen.html
<tschwinge> snubber
<tschwinge> That was the web server.
- <braunr> isn't it gnu.org ?
<tschwinge> And flubber had the repository for developers to push to.
- <tschwinge> No, gnu.org is updated manually (by me).
- <braunr> ah
- <tschwinge> It'S a snapshot of the wiki so to say.
- <braunr> ok so, is this wiki really meant to be modifiable from a browser ?
- <tschwinge>
- http://www.gnu.org/software/hurd/contributing/web_pages.html#index5h2
- <tschwinge> Yes.
- <braunr> i see
- <tschwinge> I should still be able to access the data from Barry's zenhost
- (including all the VMs it hosted), so I should be able to replicate that
- quite easily.
- <braunr> do you think it could be hosted on darnassus, or would you like a
- separate vm ?
<tschwinge> The repository for people to push to and pull from (used to be
on flubber) would be on darnassus now.
- <tschwinge> About the web server, hmm.
- <tschwinge> It's basically a security concern.
- <tschwinge> And it might get hammered by bots from time to time.
- <braunr> it won't need much resources i suppose
- <tschwinge> No. The web server (snubber) was running with 242 MiB of RAM,
- and had uptimes of several weeks typically.
- <braunr> tschwinge: otherwise, could it use the web server running on the
- host ?
- <tschwinge> The host being darnassus?
- <braunr> no
- <braunr> shattrath, the linux system
- <tschwinge> Ah.
- <tschwinge> Sure.
- <tschwinge> There is no requirement this to be a Hurd system -- was just
- nice to show to people.
- <braunr> i think it is too
- <braunr> what's the problem with darnassus ?
- <braunr> yçou mentioned security
- <tschwinge> The web server being a public-facing component which might be
- broken into.
- <braunr> how ?
- <braunr> it's so much easier to just ask for an account .. :)
- <tschwinge> Web server bugs, CGI script bugs, etc.
- <tschwinge> Sure.
- <tschwinge> I just wanted to make you aware of it. :-)
- <braunr> oh don't worry
- <braunr> ok so darnassus it is
- <pinotree> was it running apache? maybe, if other (lighter?) web servers
- are tested to work on hurd, they could be used
- <tschwinge> pinotree: Yes, and yes.
- <braunr> doesn't ikiwiki need php ?
- <tschwinge> Only requirement (I think) is abaility to run CGI scripts.
- <tschwinge> braunr: No. It's written in perl.
- <braunr> ok
- <braunr> i still think i'll use apache
- <braunr> it's really not that heavy
- <braunr> lighter servers matter when the number of concurrent clients get
- very high
- <tschwinge> Then I'll figure out how exactly the setup was between flubber
- and snubber.
- <braunr> ok
- <braunr> it's good to finally get that going :)
+
<tschwinge> braunr: Of course ;-) -- I had some parts of the process
documented:
http://www.gnu.org/software/hurd/public_hurd_boxen/installation/snubber.html
@@ -169,19 +159,7 @@ The goal is that robots rather index the official pages,
<tschwinge> Still trying to figure out what I had done there... ;-)
<tschwinge> OK, I again understand the setup. Last been touched in the
2008/2009 timeframe. ;-)
- <braunr> :)
- <tschwinge> braunr: Please use the following ikiwiki packages: dpkg -i
- ~tschwinge/tmp/ikiwiki_3.20110608_all.deb
- <braunr> what makes this package special ?
- <tschwinge> Some patch that I added to get rendering of our news pages
- correct.
- <braunr> ok
- <tschwinge> I have not updated it ever since (and the patch was not yet in
- a suitable form for upstream).
- <tschwinge> Nothing major.
- <braunr> tschwinge: why is the ikiwiki package status hi ?
- <tschwinge> braunr: I set it to hold.
- <braunr> ah ok
+
<braunr> so you finished your pat i suppose
<braunr> i'll install apache
<braunr> part*
@@ -226,24 +204,3 @@ The goal is that robots rather index the official pages,
will render the pages accordingly.
<tschwinge> OK.
<braunr> and just named hurd-web
-
-
-## IRC, freenode, #hurd, 2013-02-10
-
- <tschwinge> http://darnassus.sceen.net/~hurd-web/
- <tschwinge> Have at it!
- <tschwinge> braunr: ^
- <braunr> :)
- <braunr> great
- <tschwinge> And push to/pull from darnassus:~hurd-web/hurd-web.git for Git
- access.
- <tschwinge> Will update the web pages tomorrow, and all that.
- <tschwinge> braunr: And also install gitweb on darnassus, so one can view
- diffs of the wiki pages, etc. OK?
- <braunr> tschwinge: there are still links towards bddebian
- <braunr> history for example
- <braunr> just fyi, we can look at this tomorrow
- <tschwinge> braunr: Yes, that'S what I need gitweb for.
- <tschwinge> braunr: gitweb installed, hurd-web URLs fixed
- (s%bddebian%darnassus), also some more ikiwiki-related Perl pacakges
- installed (openID login, for example).
diff --git a/sidebar.mdwn b/sidebar.mdwn
index a5daebe5..c55f7235 100644
--- a/sidebar.mdwn
+++ b/sidebar.mdwn
@@ -1,5 +1,5 @@
-[[!meta copyright="Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
-Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014,
+2015 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
@@ -11,14 +11,6 @@ License|/fdl]]."]]"""]]
Welcome to... [[!img /logo/boxes-redrawn.png link=/logo]] ... the GNU Hurd!
-[[!template id=highlight text="""**Breaking News**
-
----
-
-The **Google Summer of Code 2014** is on! If you're a student, consider
-applying for a GNU Hurd project -- details to be found on our
-[[community/GSoC]] and [[community/gsoc/project_ideas]] pages."""]]
-
---
* **[[Home|/index]]**
diff --git a/toolchain/cross-gnu.mdwn b/toolchain/cross-gnu.mdwn
index 451e9d44..53a85214 100644
--- a/toolchain/cross-gnu.mdwn
+++ b/toolchain/cross-gnu.mdwn
@@ -201,7 +201,7 @@ cross compiler will be found automatically.
This will need an additional 2 GiB.
-After setting up the environemt, just run `cross-gnu` and watch the messages
+After setting up the environment, just run `cross-gnu` and watch the messages
flow by. In the end you should see a message: *[...]/cross-gnu: Everything
should be in place now.*
diff --git a/unsorted/CrossHurd.mdwn b/unsorted/CrossHurd.mdwn
index 08e03c1f..69cc1dfb 100644
--- a/unsorted/CrossHurd.mdwn
+++ b/unsorted/CrossHurd.mdwn
@@ -36,9 +36,9 @@ Before we reboot you must setup a Hurd entry in the menu.lst file of Grub. Do it
The first two runs (reboots) you must run the Hurd in single-user mode!
- title GNU (kernel GNUmach 1.3)
+ title GNU (kernel GNUmach 1.5)
root (hd1,1)
- kernel /boot/gnumach.gz root=device:hd1s2 -s
+ kernel /boot/gnumach-1.5-486.gz root=device:hd1s2 -s
module /hurd/ext2fs.static \
--multiboot-command-line=${kernel-command-line} \
--host-priv-port=${host-port} \
diff --git a/unsorted/MakeImage.mdwn b/unsorted/MakeImage.mdwn
index ff64ce46..b9b6e21a 100644
--- a/unsorted/MakeImage.mdwn
+++ b/unsorted/MakeImage.mdwn
@@ -53,7 +53,7 @@ I use this for testing OSKit...
## <a name="Booting_Qemu"> Booting Qemu </a>
- qemu -m 512 -user-net -isa -boot d -cdrom grub.iso -drive cache=writeback,index=0,media=disk,file=gnu.img
+ qemu -m 512 -boot d -cdrom grub.iso -drive cache=writeback,file=gnu.img
The switch `-isa` is for current gnumach.gz on hda.