aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.library/IkiWiki/Plugin/reset_mtimes.pm84
-rw-r--r--.templates/autotag.tmpl15
-rw-r--r--.templates/editpage.tmpl81
-rw-r--r--.templates/newsitem.tmpl52
-rw-r--r--.templates/page.tmpl142
-rw-r--r--abac.mdwn6
-rw-r--r--asbestos.mdwn6
-rw-r--r--asking_questions.mdwn6
-rw-r--r--binutils.mdwn6
-rw-r--r--capability.mdwn6
-rw-r--r--colophon.mdwn6
-rw-r--r--colophon/about_the_twiki_to_ikiwiki_conversion.mdwn8
-rw-r--r--community.mdwn20
-rw-r--r--community/communication.mdwn12
-rw-r--r--community/facebook.mdwn6
-rw-r--r--community/gsoc.mdwn63
-rw-r--r--community/gsoc/2007.mdwn16
-rw-r--r--community/gsoc/2008.mdwn9
-rw-r--r--community/gsoc/2008/minutes-2008-04-25.mdwn6
-rw-r--r--community/gsoc/2008/minutes-2008-05-02.mdwn6
-rw-r--r--community/gsoc/2008/minutes-2008-05-16.mdwn6
-rw-r--r--community/gsoc/2009.mdwn23
-rw-r--r--community/gsoc/organization_application.mdwn262
-rw-r--r--community/gsoc/project_ideas.mdwn1111
-rw-r--r--community/gsoc/project_ideas/cdparanoia.mdwn30
-rw-r--r--community/gsoc/project_ideas/debian_installer.mdwn41
-rw-r--r--community/gsoc/project_ideas/disk_io_performance.mdwn36
-rw-r--r--community/gsoc/project_ideas/download_backends.mdwn47
-rw-r--r--community/gsoc/project_ideas/driver_glue_code.mdwn49
-rw-r--r--community/gsoc/project_ideas/dtrace.mdwn46
-rw-r--r--community/gsoc/project_ideas/file_locking.mdwn38
-rw-r--r--community/gsoc/project_ideas/gnat.mdwn24
-rw-r--r--community/gsoc/project_ideas/gnumach_cleanup.mdwn46
-rw-r--r--community/gsoc/project_ideas/hardware_libs.mdwn42
-rw-r--r--community/gsoc/project_ideas/language_bindings.mdwn67
-rw-r--r--community/gsoc/project_ideas/lexical_dot-dot.mdwn40
-rw-r--r--community/gsoc/project_ideas/libcap.mdwn41
-rw-r--r--community/gsoc/project_ideas/libcap/details.mdwn766
-rw-r--r--community/gsoc/project_ideas/libdiskfs_locking.mdwn41
-rw-r--r--community/gsoc/project_ideas/libgtop.mdwn34
-rw-r--r--community/gsoc/project_ideas/maxpath.mdwn46
-rw-r--r--community/gsoc/project_ideas/mtab.mdwn74
-rw-r--r--community/gsoc/project_ideas/namespace-based_translator_selection.mdwn82
-rw-r--r--community/gsoc/project_ideas/nfs.mdwn45
-rw-r--r--community/gsoc/project_ideas/package_manager.mdwn51
-rw-r--r--community/gsoc/project_ideas/perl_python.mdwn38
-rw-r--r--community/gsoc/project_ideas/procfs.mdwn45
-rw-r--r--community/gsoc/project_ideas/pthreads.mdwn47
-rw-r--r--community/gsoc/project_ideas/secure_chroot.mdwn47
-rw-r--r--community/gsoc/project_ideas/server_overriding.mdwn74
-rw-r--r--community/gsoc/project_ideas/sound.mdwn42
-rw-r--r--community/gsoc/project_ideas/tcp_ip_stack.mdwn42
-rw-r--r--community/gsoc/project_ideas/testsuites.mdwn52
-rw-r--r--community/gsoc/project_ideas/tmpfs.mdwn45
-rw-r--r--community/gsoc/project_ideas/unionfs_boot.mdwn45
-rw-r--r--community/gsoc/project_ideas/unionmount.mdwn11
-rw-r--r--community/gsoc/project_ideas/valgrind.mdwn80
-rw-r--r--community/gsoc/project_ideas/virtualization.mdwn76
-rw-r--r--community/gsoc/project_ideas/vm_tuning.mdwn35
-rw-r--r--community/gsoc/project_ideas/xattr.mdwn47
-rw-r--r--community/gsoc/project_ideas/xmlfs.mdwn54
-rw-r--r--community/gsoc/student_application_form.mdwn75
-rw-r--r--community/gsoc/xorg_ideas.mdwn67
-rw-r--r--community/meetings.mdwn15
-rw-r--r--community/meetings/25c3.mdwn60
-rw-r--r--community/meetings/eurosys_2009.mdwn48
-rw-r--r--community/meetings/fosdem_2005.mdwn8
-rw-r--r--community/meetings/fosdem_2006.mdwn8
-rw-r--r--community/meetings/fosdem_2007.mdwn12
-rw-r--r--community/meetings/fosdem_2008.mdwn14
-rw-r--r--community/meetings/fosdem_2009.mdwn128
-rw-r--r--community/meetings/fosdem_2010.mdwn86
-rw-r--r--community/meetings/rmll_2006.mdwn8
-rw-r--r--community/meetings/self-organised.mdwn (renamed from community/meetings/self-organised_2008.mdwn)11
-rw-r--r--community/meetings/stesie_2007-10-12.mdwn6
-rw-r--r--community/weblogs.mdwn10
-rw-r--r--community/weblogs/ArneBab.mdwn10
-rw-r--r--community/weblogs/ArneBab/What_a_Hurd_release_should_be_able_to_do_for_me.mdwn40
-rw-r--r--community/weblogs/ArneBab/niches_for_the_hurd.mdwn42
-rw-r--r--community/weblogs/ArneBab/xkb-woes-trying-to-get-a-german-keyboard-layout.mdwn6
-rw-r--r--community/weblogs/antrik/hurd-mission-statement.mdwn39
-rw-r--r--community/weblogs/antrik/plan9-and-the-hurd-major-differences.mdwn50
-rw-r--r--community/weblogs/tschwinge/2009-06-23_split_patch_and_git_rebase_--interactive.mdwn545
-rw-r--r--community/weblogs/tschwinge/2009-06-23_split_patch_and_git_rebase_--interactive/0001-Bla.patch.bz2bin0 -> 33750 bytes
-rw-r--r--community/weblogs/tschwinge/2009-06-24_importing_from_gnu_arch_into_git.mdwn104
-rw-r--r--config_edittemplate.mdwn14
-rw-r--r--config_edittemplate/open_issue_page.mdwn33
-rw-r--r--config_edittemplate/regular_page.mdwn21
-rw-r--r--confused_deputy.mdwn6
-rw-r--r--contact_us.mdwn8
-rw-r--r--contributing.mdwn28
-rw-r--r--contributing/questionnaire.mdwn8
-rw-r--r--contributing/web_pages.mdwn202
-rw-r--r--contributing/web_pages/news.mdwn110
-rw-r--r--contributing/web_pages/news/merge-news13
-rw-r--r--contributing/web_pages/news/skeleton.mdwn33
-rw-r--r--copyright.mdwn3
-rw-r--r--dde.mdwn42
-rw-r--r--designation.mdwn6
-rw-r--r--destructive_interference.mdwn6
-rw-r--r--documentation.mdwn12
-rw-r--r--donate.mdwn6
-rw-r--r--download.mdwn (renamed from hurd/open_issues/libfshelp_in_hurdlibs.mdwn)11
-rw-r--r--emulation.mdwn6
-rw-r--r--extensibility.mdwn6
-rw-r--r--fdl.texi10
-rw-r--r--gcc.mdwn9
-rw-r--r--gdb.mdwn16
-rw-r--r--gdb/backtrace.mdwn6
-rwxr-xr-xgenerate_interface_redir_pages25
-rw-r--r--getting_help.mdwn8
-rw-r--r--glibc.mdwn6
-rw-r--r--grub.mdwn81
-rw-r--r--history.mdwn (renamed from hurd/history.mdwn)11
-rw-r--r--history/hurd-announce (renamed from hurd/history/hurd-announce)0
-rw-r--r--history/hurd-announce2 (renamed from hurd/history/hurd-announce2)0
-rw-r--r--history/hurd-flash (renamed from hurd/history/hurd-flash)0
-rw-r--r--history/hurd-flash10 (renamed from hurd/history/hurd-flash10)0
-rw-r--r--history/hurd-flash11 (renamed from hurd/history/hurd-flash11)0
-rw-r--r--history/hurd-flash12 (renamed from hurd/history/hurd-flash12)0
-rw-r--r--history/hurd-flash13 (renamed from hurd/history/hurd-flash13)0
-rw-r--r--history/hurd-flash14 (renamed from hurd/history/hurd-flash14)0
-rw-r--r--history/hurd-flash15 (renamed from hurd/history/hurd-flash15)0
-rw-r--r--history/hurd-flash2 (renamed from hurd/history/hurd-flash2)0
-rw-r--r--history/hurd-flash3 (renamed from hurd/history/hurd-flash3)0
-rw-r--r--history/hurd-flash4 (renamed from hurd/history/hurd-flash4)0
-rw-r--r--history/hurd-flash5 (renamed from hurd/history/hurd-flash5)0
-rw-r--r--history/hurd-flash6 (renamed from hurd/history/hurd-flash6)0
-rw-r--r--history/hurd-flash7 (renamed from hurd/history/hurd-flash7)0
-rw-r--r--history/hurd-flash8 (renamed from hurd/history/hurd-flash8)0
-rw-r--r--history/hurd-flash9 (renamed from hurd/history/hurd-flash9)0
-rw-r--r--history/port_to_l4.mdwn (renamed from hurd/history/port_to_l4.mdwn)30
-rw-r--r--hurd-and-linux.html (renamed from hurd/documentation/hurd-and-linux.html)10
-rw-r--r--hurd-l4.mdwn13
-rw-r--r--hurd-paper.html (renamed from hurd/documentation/hurd-paper.html)9
-rw-r--r--hurd-talk.html (renamed from hurd/documentation/hurd-talk.html)7
-rw-r--r--hurd.mdwn20
-rw-r--r--hurd/advantages.mdwn14
-rw-r--r--hurd/authentication.mdwn6
-rw-r--r--hurd/binutils.mdwn6
-rw-r--r--hurd/building/cross-compiling.mdwn178
-rw-r--r--hurd/building/cross-compiling/Makefile168
-rw-r--r--hurd/building/cross-compiling/discussion.mdwn6
-rw-r--r--hurd/building/example.mdwn6
-rw-r--r--hurd/concepts.mdwn6
-rw-r--r--hurd/console.mdwn4
-rw-r--r--hurd/critique.mdwn8
-rw-r--r--hurd/dde.mdwn22
-rw-r--r--hurd/dde/guide.mdwn158
-rw-r--r--hurd/debugging.mdwn6
-rw-r--r--hurd/debugging/gdb.mdwn6
-rw-r--r--hurd/debugging/gdb/noninvasive_debugging.mdwn6
-rw-r--r--hurd/debugging/glibc.mdwn6
-rw-r--r--hurd/debugging/rpctrace.mdwn24
-rw-r--r--hurd/debugging/translator.mdwn8
-rw-r--r--hurd/debugging/translator/capturing_stdout_and_stderr.mdwn13
-rw-r--r--hurd/debugging/translator/gdb.mdwn6
-rw-r--r--hurd/documentation.mdwn20
-rw-r--r--hurd/documentation/auth.html6
-rw-r--r--hurd/documentation/hurd-and-linux.mdwn11
-rw-r--r--hurd/documentation/hurd-paper.mdwn11
-rw-r--r--hurd/documentation/hurd-talk.mdwn11
-rw-r--r--hurd/documentation/translators.html6
-rw-r--r--hurd/faq.mdwn10
-rw-r--r--hurd/faq/old-stuff.mdwn10
-rw-r--r--hurd/faq/old_faq.txt6
-rw-r--r--hurd/faq/release.mdwn8
-rw-r--r--hurd/faq/slash_usr_symlink.mdwn8
-rw-r--r--hurd/faq/smp.mdwn17
-rw-r--r--hurd/faq/still_useful.mdwn46
-rw-r--r--hurd/faq/top.mdwn16
-rw-r--r--hurd/gcc.mdwn6
-rw-r--r--hurd/glibc.mdwn9
-rw-r--r--hurd/glibc/hurd-specific_api.mdwn8
-rw-r--r--hurd/glibc/internals.mdwn35
-rw-r--r--hurd/hurd_hacking_guide.mdwn8
-rw-r--r--hurd/interface.mdwn14
-rw-r--r--hurd/interface/dir_link.mdwn11
-rw-r--r--hurd/interface/dir_lookup.mdwn11
-rw-r--r--hurd/interface/dir_mkdir.mdwn11
-rw-r--r--hurd/interface/dir_mkfile.mdwn11
-rw-r--r--hurd/interface/dir_notice_changes.mdwn11
-rw-r--r--hurd/interface/dir_readdir.mdwn11
-rw-r--r--hurd/interface/dir_rename.mdwn11
-rw-r--r--hurd/interface/dir_rmdir.mdwn11
-rw-r--r--hurd/interface/dir_unlink.mdwn11
-rw-r--r--hurd/interface/file_chauthor.mdwn11
-rw-r--r--hurd/interface/file_check_access.mdwn11
-rw-r--r--hurd/interface/file_chflags.mdwn11
-rw-r--r--hurd/interface/file_chmod.mdwn11
-rw-r--r--hurd/interface/file_chown.mdwn11
-rw-r--r--hurd/interface/file_exec.mdwn11
-rw-r--r--hurd/interface/file_get_fs_options.mdwn11
-rw-r--r--hurd/interface/file_get_storage_info.mdwn11
-rw-r--r--hurd/interface/file_get_translator.mdwn11
-rw-r--r--hurd/interface/file_get_translator_cntl.mdwn11
-rw-r--r--hurd/interface/file_getcontrol.mdwn11
-rw-r--r--hurd/interface/file_getfh.mdwn11
-rw-r--r--hurd/interface/file_getlinknode.mdwn11
-rw-r--r--hurd/interface/file_lock.mdwn11
-rw-r--r--hurd/interface/file_lock_stat.mdwn11
-rw-r--r--hurd/interface/file_notice_changes.mdwn11
-rw-r--r--hurd/interface/file_reparent.mdwn11
-rw-r--r--hurd/interface/file_set_size.mdwn11
-rw-r--r--hurd/interface/file_set_translator.mdwn11
-rw-r--r--hurd/interface/file_statfs.mdwn11
-rw-r--r--hurd/interface/file_sync.mdwn11
-rw-r--r--hurd/interface/file_syncfs.mdwn11
-rw-r--r--hurd/interface/file_utimes.mdwn11
-rw-r--r--hurd/interface/fs.mdwn25
-rw-r--r--hurd/interface/fs/00.mdwn30
-rw-r--r--hurd/interface/fs/01.mdwn20
-rw-r--r--hurd/interface/fs/02.mdwn36
-rw-r--r--hurd/interface/fs/03.mdwn19
-rw-r--r--hurd/interface/fs/04.mdwn19
-rw-r--r--hurd/interface/fs/05.mdwn23
-rw-r--r--hurd/interface/fs/06.mdwn21
-rw-r--r--hurd/interface/fs/07.mdwn19
-rw-r--r--hurd/interface/fs/08.mdwn21
-rw-r--r--hurd/interface/fs/09.mdwn24
-rw-r--r--hurd/interface/fs/10.mdwn20
-rw-r--r--hurd/interface/fs/11.mdwn19
-rw-r--r--hurd/interface/fs/12.mdwn19
-rw-r--r--hurd/interface/fs/13.mdwn60
-rw-r--r--hurd/interface/fs/14.mdwn67
-rw-r--r--hurd/interface/fs/15.mdwn23
-rw-r--r--hurd/interface/fs/16.mdwn20
-rw-r--r--hurd/interface/fs/17.mdwn41
-rw-r--r--hurd/interface/fs/18.mdwn34
-rw-r--r--hurd/interface/fs/19.mdwn29
-rw-r--r--hurd/interface/fs/20.mdwn20
-rw-r--r--hurd/interface/fs/21.mdwn19
-rw-r--r--hurd/interface/fs/22.mdwn19
-rw-r--r--hurd/interface/fs/23.mdwn27
-rw-r--r--hurd/interface/fs/24.mdwn24
-rw-r--r--hurd/interface/fs/25.mdwn25
-rw-r--r--hurd/interface/fs/26.mdwn20
-rw-r--r--hurd/interface/fs/27.mdwn29
-rw-r--r--hurd/interface/fs/28.mdwn19
-rw-r--r--hurd/interface/fs/29.mdwn20
-rw-r--r--hurd/interface/fs/30.mdwn20
-rw-r--r--hurd/interface/fs/31.mdwn21
-rw-r--r--hurd/interface/fsys.mdwn15
-rw-r--r--hurd/interface/fsys/00.mdwn23
-rw-r--r--hurd/interface/fsys/01.mdwn19
-rw-r--r--hurd/interface/fsys/02.mdwn33
-rw-r--r--hurd/interface/fsys/03.mdwn22
-rw-r--r--hurd/interface/fsys/04.mdwn58
-rw-r--r--hurd/interface/fsys/05.mdwn20
-rw-r--r--hurd/interface/fsys/06.mdwn20
-rw-r--r--hurd/interface/fsys/07.mdwn19
-rw-r--r--hurd/interface/fsys/08.mdwn23
-rw-r--r--hurd/interface/fsys/09.mdwn19
-rw-r--r--hurd/interface/fsys_forward.mdwn11
-rw-r--r--hurd/interface/fsys_get_options.mdwn11
-rw-r--r--hurd/interface/fsys_getfile.mdwn11
-rw-r--r--hurd/interface/fsys_getpriv.mdwn11
-rw-r--r--hurd/interface/fsys_getroot.mdwn11
-rw-r--r--hurd/interface/fsys_goaway.mdwn11
-rw-r--r--hurd/interface/fsys_init.mdwn11
-rw-r--r--hurd/interface/fsys_set_options.mdwn11
-rw-r--r--hurd/interface/fsys_startup.mdwn11
-rw-r--r--hurd/interface/fsys_syncfs.mdwn11
-rw-r--r--hurd/io_path.mdwn9
-rw-r--r--hurd/libchannel.mdwn6
-rw-r--r--hurd/libfshelp.mdwn29
-rw-r--r--hurd/libhello_example.mdwn6
-rw-r--r--hurd/libihash.mdwn4
-rw-r--r--hurd/libnetfs.mdwn13
-rw-r--r--hurd/libpager.mdwn6
-rw-r--r--hurd/libports.mdwn16
-rw-r--r--hurd/libstore.mdwn39
-rw-r--r--hurd/libstore/bunzip2_store.mdwn12
-rw-r--r--hurd/libstore/concat_store.mdwn12
-rw-r--r--hurd/libstore/copy_store.mdwn25
-rw-r--r--hurd/libstore/device_store.mdwn12
-rw-r--r--hurd/libstore/examples/ramdisk.mdwn32
-rw-r--r--hurd/libstore/file_store.mdwn12
-rw-r--r--hurd/libstore/gunzip_store.mdwn12
-rw-r--r--hurd/libstore/ileave_store.mdwn12
-rw-r--r--hurd/libstore/nbd_store.mdwn12
-rw-r--r--hurd/libstore/part.mdwn26
-rw-r--r--hurd/libstore/query_store.mdwn12
-rw-r--r--hurd/libstore/remap_store.mdwn12
-rw-r--r--hurd/libstore/task_store.mdwn12
-rw-r--r--hurd/libstore/typed_store.mdwn12
-rw-r--r--hurd/libstore/url_store.mdwn12
-rw-r--r--hurd/libstore/zero_store.mdwn19
-rw-r--r--hurd/libtrivfs.mdwn31
-rw-r--r--hurd/logo.mdwn24
-rw-r--r--hurd/neighborhurd.mdwn6
-rw-r--r--hurd/networking.mdwn6
-rw-r--r--hurd/ng/discussion.mdwn13
-rw-r--r--hurd/ng/issues_with_mach.mdwn8
-rw-r--r--hurd/ng/limitations_of_the_original_hurd_design.mdwn6
-rw-r--r--hurd/ng/position_paper.mdwn6
-rw-r--r--hurd/open_issues.mdwn20
-rw-r--r--hurd/porting.mdwn14
-rw-r--r--hurd/porting/guidelines.mdwn (renamed from unsorted/PortingIssues.mdwn)111
-rw-r--r--hurd/porting/system_api_limitations.mdwn (renamed from unsorted/SystemAPILimits.mdwn)37
-rw-r--r--hurd/reference_manual.mdwn6
-rw-r--r--hurd/running.mdwn11
-rw-r--r--hurd/running/arch_hurd.mdwn13
-rw-r--r--hurd/running/debian.mdwn30
-rw-r--r--hurd/running/debian/BtsFiling.mdwn52
-rw-r--r--hurd/running/debian/DebianAptOffline.mdwn6
-rw-r--r--hurd/running/debian/GnuDebianRelationship.mdwn4
-rw-r--r--hurd/running/debian/MediaPressKitDiscuss.mdwn2
-rw-r--r--hurd/running/debian/after_install.mdwn2
-rw-r--r--hurd/running/debian/creating_image_tarball.mdwn6
-rw-r--r--hurd/running/debian/faq.mdwn13
-rw-r--r--hurd/running/debian/faq/2_gib_partition_limit.mdwn8
-rw-r--r--hurd/running/debian/faq/512_mib_ram_limit.mdwn23
-rw-r--r--hurd/running/debian/faq/apt_umount.mdwn10
-rw-r--r--hurd/running/debian/faq/bad_hypermeta_data.mdwn6
-rw-r--r--hurd/running/debian/faq/debugging_inside_glibc.mdwn6
-rw-r--r--hurd/running/debian/faq/debugging_translators.mdwn10
-rw-r--r--hurd/running/debian/faq/dev_random.mdwn8
-rw-r--r--hurd/running/debian/faq/df.mdwn6
-rw-r--r--hurd/running/debian/faq/eata.mdwn13
-rw-r--r--hurd/running/debian/faq/free_memory.mdwn6
-rw-r--r--hurd/running/debian/faq/hurd_console.mdwn6
-rw-r--r--hurd/running/debian/faq/kernel_logs.mdwn6
-rw-r--r--hurd/running/debian/faq/other_repositories.mdwn6
-rw-r--r--hurd/running/debian/faq/ps_hangs.mdwn9
-rw-r--r--hurd/running/debian/faq/reporting_bugs.mdwn6
-rw-r--r--hurd/running/debian/faq/sata_disk_drives.mdwn6
-rw-r--r--hurd/running/debian/faq/sshd_only_works_for_root_logins.mdwn6
-rw-r--r--hurd/running/debian/faq/xserver-common.mdwn6
-rw-r--r--hurd/running/debian/package_troubleshooting.mdwn4
-rw-r--r--hurd/running/debian/patch_submission.mdwn6
-rw-r--r--hurd/running/debian/porting.mdwn34
-rw-r--r--hurd/running/debian/porting/gcc/c++.mdwn39
-rw-r--r--hurd/running/debian/porting/git-core.mdwn25
-rw-r--r--hurd/running/debian/porting/libdbd-sqlite3-perl.mdwn26
-rw-r--r--hurd/running/distrib.mdwn19
-rw-r--r--hurd/running/faq.mdwn20
-rw-r--r--hurd/running/faq/native-install_doesnt_finish.mdwn24
-rw-r--r--hurd/running/gentoo.mdwn32
-rw-r--r--hurd/running/gnu.mdwn14
-rw-r--r--hurd/running/gnu/create_an_image.mdwn12
-rw-r--r--hurd/running/gnu/setup.mdwn8
-rw-r--r--hurd/running/gnu/universal_package_manager.mdwn27
-rw-r--r--hurd/running/live_cd.mdwn11
-rw-r--r--hurd/running/qemu.mdwn33
-rw-r--r--hurd/running/qemu/babhurd_image.mdwn67
-rw-r--r--hurd/running/qemu/microsoft_windows.mdwn6
-rw-r--r--hurd/running/qemu/networking.mdwn6
-rw-r--r--hurd/running/qemu/networking/sharing_files.mdwn6
-rw-r--r--hurd/running/vmware.mdwn6
-rw-r--r--hurd/running/vmware/discussion.mdwn6
-rw-r--r--hurd/settrans.mdwn6
-rw-r--r--hurd/status.mdwn59
-rw-r--r--hurd/status/hurd-fvwm-screenshot-2009-11-12.pngbin0 -> 195807 bytes
-rw-r--r--hurd/subhurd.mdwn6
-rw-r--r--hurd/subhurd/running_a_subhurd.mdwn8
-rw-r--r--hurd/syncfs.mdwn15
-rw-r--r--hurd/toolchain.mdwn6
-rw-r--r--hurd/translator.mdwn47
-rw-r--r--hurd/translator/auth.mdwn6
-rw-r--r--hurd/translator/cvsfs.mdwn6
-rw-r--r--hurd/translator/devfs.mdwn6
-rw-r--r--hurd/translator/emailfs.mdwn6
-rw-r--r--hurd/translator/examples.mdwn6
-rw-r--r--hurd/translator/exec.mdwn12
-rw-r--r--hurd/translator/ext2fs.mdwn16
-rw-r--r--hurd/translator/fatfs.mdwn10
-rw-r--r--hurd/translator/magic.mdwn6
-rw-r--r--hurd/translator/mboxfs.mdwn6
-rw-r--r--hurd/translator/nsmux.mdwn121
-rw-r--r--hurd/translator/pfinet.mdwn6
-rw-r--r--hurd/translator/pfinet/implementation.mdwn6
-rw-r--r--hurd/translator/pfinet/ipv6.mdwn15
-rw-r--r--hurd/translator/pflocal.mdwn6
-rw-r--r--hurd/translator/procfs.mdwn6
-rw-r--r--hurd/translator/procfs/htop.mdwn6
-rw-r--r--hurd/translator/procfs/killall.mdwn6
-rw-r--r--hurd/translator/procfs/procps.mdwn6
-rw-r--r--hurd/translator/procfs/top.mdwn6
-rw-r--r--hurd/translator/short-circuiting.mdwn88
-rw-r--r--hurd/translator/storeio.mdwn8
-rw-r--r--hurd/translator/stowfs.mdwn8
-rw-r--r--hurd/translator/tmpfs.mdwn17
-rw-r--r--hurd/translator/tmpfs/notes_bing.mdwn9
-rw-r--r--hurd/translator/tmpfs/notes_various.mdwn14
-rw-r--r--hurd/translator/tmpfs/tmpfs_vs_defpager.mdwn73
-rw-r--r--hurd/translator/unionfs.mdwn146
-rw-r--r--hurd/translator/unionmount.mdwn11
-rw-r--r--hurd/translator/wishlist_1.mdwn6
-rw-r--r--hurd/translator/wishlist_2.mdwn2
-rw-r--r--hurd/translator/writing/example.mdwn6
-rw-r--r--hurd/translator/xmlfs.mdwn6
-rw-r--r--hurd/virtual_file_system.mdwn8
-rw-r--r--hurd/virtualization.mdwn6
-rw-r--r--hurd/what_is_the_gnu_hurd.mdwn8
-rw-r--r--hurd/what_is_the_gnu_hurd/gramatically_speaking.mdwn8
-rw-r--r--hurd/what_is_the_gnu_hurd/origin_of_the_name.mdwn8
-rw-r--r--ibac.mdwn6
-rw-r--r--idl.mdwn6
-rw-r--r--ikiwiki.setup296
-rw-r--r--index.mdwn60
-rw-r--r--index/discussion.mdwn8
-rw-r--r--install.mdwn13
-rw-r--r--ipc.mdwn6
-rw-r--r--irc.mdwn25
-rw-r--r--isolation.mdwn6
-rw-r--r--license.mdwn4
-rw-r--r--liedtke.mdwn6
-rw-r--r--local.css62
-rw-r--r--logo.mdwn25
-rw-r--r--logo/boxes-redrawn.png (renamed from hurd/logo/boxes-redrawn.png)bin1764 -> 1764 bytes
-rw-r--r--logo/boxes-redrawn.svg (renamed from hurd/logo/boxes-redrawn.svg)0
-rw-r--r--mailing_lists.mdwn16
-rw-r--r--mailing_lists/bug-hurd.mdwn8
-rw-r--r--mailing_lists/debian-hurd.mdwn8
-rw-r--r--mailing_lists/gnu-system-discuss.mdwn8
-rw-r--r--mailing_lists/help-hurd.mdwn8
-rw-r--r--mailing_lists/hurd-devel-readers.mdwn8
-rw-r--r--mailing_lists/hurd-devel.mdwn8
-rw-r--r--mailing_lists/l4-hurd.mdwn8
-rw-r--r--mailing_lists/unmoderated.mdwn6
-rw-r--r--mailing_lists/web-hurd.mdwn8
-rw-r--r--mechanism.mdwn6
-rw-r--r--media_appearances.mdwn16
-rw-r--r--microkernel.mdwn6
-rw-r--r--microkernel/faq.mdwn12
-rw-r--r--microkernel/faq/multiserver_microkernel.mdwn12
-rw-r--r--microkernel/for_beginners.mdwn6
-rw-r--r--microkernel/for_beginners/discussion.mdwn20
-rw-r--r--microkernel/fud.mdwn7
-rw-r--r--microkernel/mach/documentation.mdwn17
-rw-r--r--microkernel/mach/external_pager_mechanism.mdwn7
-rw-r--r--microkernel/mach/gnumach.mdwn8
-rw-r--r--microkernel/mach/gnumach/boot_trace.mdwn6
-rw-r--r--microkernel/mach/gnumach/building/example.mdwn6
-rw-r--r--microkernel/mach/gnumach/debugging.mdwn9
-rw-r--r--microkernel/mach/gnumach/hardware_compatibility_list.mdwn16
-rw-r--r--microkernel/mach/gnumach/open_issues.mdwn20
-rw-r--r--microkernel/mach/gnumach/ports.mdwn17
-rw-r--r--microkernel/mach/gnumach/ports/xen.mdwn43
-rw-r--r--microkernel/mach/gnumach/ports/xen/internals.mdwn6
-rw-r--r--microkernel/mach/gnumach/ports/xen/networking_configuration.mdwn10
-rw-r--r--microkernel/mach/gnumach/projects.mdwn12
-rw-r--r--microkernel/mach/gnumach/projects/clean_up_the_code.mdwn50
-rw-r--r--microkernel/mach/gnumach/projects/gdb_stubs.mdwn6
-rw-r--r--microkernel/mach/gnumach/reference_manual.mdwn6
-rw-r--r--microkernel/mach/history.mdwn4
-rw-r--r--microkernel/mach/ipc.mdwn6
-rw-r--r--microkernel/mach/ipc/sequence_numbering.mdwn6
-rw-r--r--microkernel/mach/mig.mdwn6
-rw-r--r--microkernel/mach/mig/documentation.mdwn26
-rw-r--r--microkernel/mach/mig/documentation/dealloc.mdwn6
-rw-r--r--microkernel/mach/mig/documentation/servercopy.mdwn6
-rw-r--r--microkernel/mach/mig/gnu_mig.mdwn8
-rw-r--r--microkernel/mach/mig/gnu_mig/open_issues.mdwn21
-rw-r--r--microkernel/mach/port.mdwn6
-rw-r--r--microkernel/mach/rpc.mdwn6
-rw-r--r--microkernel/viengoos.mdwn15
-rw-r--r--microkernel/viengoos/building.mdwn140
-rw-r--r--microkernel/viengoos/documentation.mdwn6
-rw-r--r--microkernel/viengoos/grub2-config.diff47
-rw-r--r--microkernel/viengoos/hardware.mdwn6
-rw-r--r--microkernel/viengoos/projects.mdwn62
-rw-r--r--microkernel/viengoos/projects/address_space_management.mdwn40
-rw-r--r--microkernel/viengoos/projects/capability-aware_compiler.mdwn16
-rw-r--r--microkernel/viengoos/projects/new_hash_function.mdwn19
-rw-r--r--microkernel/viengoos/serial_port.mdwn6
-rw-r--r--naming_context.mdwn6
-rw-r--r--news.mdwn8
-rw-r--r--news/2002-01-13.mdwn6
-rw-r--r--news/2002-01-19.mdwn6
-rw-r--r--news/2002-02-18.mdwn6
-rw-r--r--news/2002-03-03.mdwn6
-rw-r--r--news/2002-03-08.mdwn6
-rw-r--r--news/2002-03-23.mdwn6
-rw-r--r--news/2002-05-05.mdwn6
-rw-r--r--news/2002-05-18.mdwn6
-rw-r--r--news/2002-05-24.mdwn6
-rw-r--r--news/2002-05-28.mdwn6
-rw-r--r--news/2002-06-22.mdwn6
-rw-r--r--news/2002-08-16.mdwn6
-rw-r--r--news/2002-10-03.mdwn6
-rw-r--r--news/2002-10-03_2.mdwn6
-rw-r--r--news/2002-10-19.mdwn6
-rw-r--r--news/2002-11-18.mdwn6
-rw-r--r--news/2003-01-18.mdwn6
-rw-r--r--news/2003-02-14.mdwn6
-rw-r--r--news/2003-07-02.mdwn6
-rw-r--r--news/2003-07-16.mdwn6
-rw-r--r--news/2003-08-21.mdwn6
-rw-r--r--news/2005-01-28.mdwn6
-rw-r--r--news/2005-09-20.mdwn6
-rw-r--r--news/2006-04-27.mdwn8
-rw-r--r--news/2007-01-07.mdwn6
-rw-r--r--news/2007-01-14.mdwn6
-rw-r--r--news/2007-03-14.mdwn8
-rw-r--r--news/2007-10-01.mdwn6
-rw-r--r--news/2007-10-12.mdwn6
-rw-r--r--news/2008-02-11.mdwn6
-rw-r--r--news/2008-03-19.mdwn6
-rw-r--r--news/2008-09-11.mdwn12
-rw-r--r--news/2008-11-14.mdwn6
-rw-r--r--news/2008-12-12.mdwn6
-rw-r--r--news/2009-03-28.mdwn13
-rw-r--r--news/2009-04-20.mdwn12
-rw-r--r--news/2009-06-30.mdwn29
-rw-r--r--news/2009-07-31.mdwn44
-rw-r--r--news/2009-09-30.mdwn32
-rw-r--r--news/2009-10-31.mdwn49
-rw-r--r--news/2009-11-30.mdwn51
-rw-r--r--news/2009-12-31.mdwn85
-rw-r--r--news/2010-01-31.mdwn58
-rw-r--r--news/2010-02-28.mdwn72
-rw-r--r--news/2010-03-31.mdwn48
-rw-r--r--news/2010-04-30.mdwn91
-rw-r--r--news/2010-05-31.mdwn66
-rw-r--r--news/2010-06-30.mdwn77
-rw-r--r--open_issues.mdwn26
-rw-r--r--open_issues/adduser.mdwn (renamed from hurd/running/debian/porting/adduser.mdwn)18
-rw-r--r--open_issues/bash.mdwn47
-rw-r--r--open_issues/bash_vs_screen_vs_sigint.mdwn12
-rw-r--r--open_issues/blkrrpart_ioctl.mdwn32
-rw-r--r--open_issues/bpf.mdwn72
-rw-r--r--open_issues/chroot_difference_from_linux.mdwn17
-rw-r--r--open_issues/crash_server.mdwn189
-rw-r--r--open_issues/cvs_tasks_file.mdwn (renamed from hurd/open_issues/cvs_tasks_file.mdwn)12
-rw-r--r--open_issues/cvs_todo_file.mdwn (renamed from hurd/open_issues/cvs_todo_file.mdwn)12
-rw-r--r--open_issues/dde.mdwn11
-rw-r--r--open_issues/debootstrap.mdwn24
-rw-r--r--open_issues/device_drivers_and_io_systems.mdwn94
-rw-r--r--open_issues/duplicate_inclusion_guards.mdwn (renamed from microkernel/mach/mig/gnu_mig/open_issues/duplicate_inclusion_guards.mdwn)8
-rw-r--r--open_issues/elinks.mdwn28
-rw-r--r--open_issues/emacs.mdwn43
-rw-r--r--open_issues/etc_fstab.mdwn18
-rw-r--r--open_issues/gcc.mdwn (renamed from hurd/running/debian/porting/gcc.mdwn)8
-rw-r--r--open_issues/gcc/libmudflap.mdwn (renamed from hurd/running/debian/porting/gcc/libmudflap.mdwn)8
-rw-r--r--open_issues/gcc_testsuite.mdwn211
-rw-r--r--open_issues/gdb_gcore.mdwn23
-rw-r--r--open_issues/gdb_head.mdwn44
-rw-r--r--open_issues/gdb_non-stop_mode.mdwn (renamed from hurd/open_issues/gdb_non-stop_mode.mdwn)10
-rw-r--r--open_issues/gdb_pending_execs.mdwn (renamed from hurd/open_issues/gdb_pending_execs.mdwn)10
-rw-r--r--open_issues/gdb_qemu_debugging_gnumach.mdwn19
-rw-r--r--open_issues/gdb_signal_thread_bt.mdwn31
-rw-r--r--open_issues/gdb_testsuite.mdwn2093
-rw-r--r--open_issues/gdb_thread_ids.mdwn (renamed from hurd/open_issues/gdb_thread_ids.mdwn)10
-rw-r--r--open_issues/git-core-2.mdwn (renamed from hurd/running/debian/porting/git-core-2.mdwn)15
-rw-r--r--open_issues/glibc_ptrace.mdwn47
-rw-r--r--open_issues/glibc_testsuite.mdwn105
-rw-r--r--open_issues/libfshelp_in_hurdlibs.mdwn17
-rw-r--r--open_issues/libpthread.mdwn44
-rw-r--r--open_issues/libstore_parted.mdwn11
-rw-r--r--open_issues/lsof.mdwn13
-rw-r--r--open_issues/m4_vs_stack.mdwn21
-rw-r--r--open_issues/mach-defpager_vs_defpager.mdwn25
-rw-r--r--open_issues/mig_error_reply.mdwn68
-rw-r--r--open_issues/neals_hurd-misc_papers.mdwn16
-rw-r--r--open_issues/open_posix_test_suite.mdwn2715
-rw-r--r--open_issues/perlmagick.mdwn64
-rw-r--r--open_issues/pth.mdwn (renamed from hurd/running/debian/porting/pth.mdwn)8
-rw-r--r--open_issues/resource_management_problems.mdwn (renamed from microkernel/mach/gnumach/open_issues/resource_management_problems.mdwn)19
-rw-r--r--open_issues/resource_management_problems/configure_max_command_line_length.mdwn17
-rw-r--r--open_issues/runit.mdwn (renamed from hurd/running/debian/porting/runit.mdwn)8
-rw-r--r--open_issues/screen.mdwn116
-rw-r--r--open_issues/socat.mdwn15
-rw-r--r--open_issues/some_todo_list.mdwn (renamed from hurd/open_issues/some_todo_list.mdwn)10
-rw-r--r--open_issues/sync_but_still_unclean_filesystem.mdwn18
-rw-r--r--open_issues/term_blocking.mdwn100
-rw-r--r--open_issues/time.mdwn55
-rw-r--r--open_issues/tinyproxy.mdwn18
-rw-r--r--open_issues/translate_fd_or_port_to_file_name.mdwn54
-rw-r--r--open_issues/user-space_device_drivers.mdwn160
-rw-r--r--open_issues/wrong_reply_message_id.mdwn (renamed from hurd/open_issues/wrong_reply_message_id.mdwn)14
-rw-r--r--open_issues/xen_crash_copy-size_le_page_size.mdwn104
-rw-r--r--open_issues/xen_domu_with_ro_hd.mdwn35
-rw-r--r--persistency.mdwn6
-rw-r--r--policy.mdwn6
-rw-r--r--principal.mdwn6
-rw-r--r--public_hurd_boxen.mdwn73
-rw-r--r--public_hurd_boxen/bddebian.mdwn21
-rw-r--r--public_hurd_boxen/installation.mdwn102
-rw-r--r--public_hurd_boxen/installation/flubber.mdwn25
-rw-r--r--public_hurd_boxen/installation/snubber.mdwn55
-rw-r--r--public_hurd_boxen/xen_handling.mdwn49
-rw-r--r--public_hurd_boxen/zenhost.mdwn18
-rwxr-xr-xpurify_html15
-rw-r--r--qemu.mdwn10
-rw-r--r--recent_changes.mdwn10
-rwxr-xr-xrender_locally61
-rw-r--r--rpc.mdwn6
-rw-r--r--rules.mdwn6
-rw-r--r--rules/savannah_group.mdwn23
-rw-r--r--rules/source_repositories.mdwn98
-rw-r--r--sandbox.mdwn2
-rw-r--r--security.mdwn6
-rwxr-xr-xset_mtimes56
-rw-r--r--sfi.mdwn6
-rw-r--r--shortcuts.mdwn127
-rw-r--r--sidebar.mdwn29
-rw-r--r--source_repositories.mdwn194
-rw-r--r--source_repositories/glibc.mdwn93
-rw-r--r--source_repositories/incubator.mdwn12
-rw-r--r--tag.mdwn39
-rw-r--r--tag/fixed_in_debian.mdwn15
-rw-r--r--tag/open_issue_documentation.mdwn15
-rw-r--r--tag/open_issue_gcc.mdwn15
-rw-r--r--tag/open_issue_gdb.mdwn15
-rw-r--r--tag/open_issue_glibc.mdwn15
-rw-r--r--tag/open_issue_gnumach.mdwn15
-rw-r--r--tag/open_issue_hurd.mdwn15
-rw-r--r--tag/open_issue_mig.mdwn15
-rw-r--r--tag/open_issue_porting.mdwn15
-rw-r--r--tag/open_issue_pthread.mdwn15
-rw-r--r--tag/open_issue_viengoos.mdwn15
-rw-r--r--tag/open_issue_xen.mdwn15
-rw-r--r--tag/stable_URL.mdwn15
-rw-r--r--tcb.mdwn6
-rw-r--r--topgit.mdwn23
-rw-r--r--trackers.mdwn6
-rw-r--r--trust.mdwn6
-rw-r--r--unix.mdwn8
-rw-r--r--unsorted/BochsFAQ.mdwn2
-rw-r--r--unsorted/BuildingOskitMach.mdwn7
-rw-r--r--unsorted/DebianX.mdwn14
-rw-r--r--unsorted/DebianXorg.mdwn4
-rw-r--r--unsorted/InstallNotes.mdwn5
-rw-r--r--unsorted/InstallTips.mdwn4
-rw-r--r--unsorted/JoachimNilssonHurdPage.mdwn12
-rw-r--r--unsorted/OskitMach.mdwn2
-rw-r--r--unsorted/OskitPatches.mdwn4
-rw-r--r--unsorted/RemoteDebugOskitMach.mdwn4
-rw-r--r--unsorted/SeenHurd.mdwn7
-rw-r--r--unsorted/WhoRunsGNU.mdwn31
-rw-r--r--unsorted/Xfree86.mdwn12
-rw-r--r--unsorted/changelogs.html2
-rw-r--r--user.mdwn21
-rw-r--r--user/flaviocruz.mdwn10
-rw-r--r--user/jkoenig.mdwn328
-rw-r--r--user/kam.mdwn152
-rw-r--r--user/madhusudancs.mdwn8
-rw-r--r--user/pochu.mdwn122
-rw-r--r--user/scolobb.mdwn244
-rw-r--r--user/tschwinge.mdwn8
-rw-r--r--user/vincentvikram.mdwn6
-rw-r--r--user/zhengda.mdwn50
-rw-r--r--user/zhengda/howto.mdwn35
-rw-r--r--virtualization.mdwn8
646 files changed, 19237 insertions, 4032 deletions
diff --git a/.library/IkiWiki/Plugin/reset_mtimes.pm b/.library/IkiWiki/Plugin/reset_mtimes.pm
new file mode 100644
index 00000000..a168652b
--- /dev/null
+++ b/.library/IkiWiki/Plugin/reset_mtimes.pm
@@ -0,0 +1,84 @@
+# Copyright © 2010 Thomas Schwinge <thomas@schwinge.name>
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the
+# Free Software Foundation; either version 2, or (at your option) any later
+# version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+package IkiWiki::Plugin::reset_mtimes;
+
+use warnings;
+use strict;
+use IkiWiki 3.00;
+
+# This plugin resets pages' / files' mtimes according to the RCS information
+# when using --refresh mode.
+#
+# Note that the files' mtimes are *always* set, even if the file has
+# un-committed changes.
+#
+# <http://ikiwiki.info/bugs/pagemtime_in_refresh_mode/>
+
+sub import
+{
+ hook (type => "needsbuild",
+ id => "reset_mtimes",
+ call => \&needsbuild);
+}
+
+sub needsbuild (@)
+{
+ # Only proceed if --gettime is in effect, as we're clearly not intersted in
+ # this functionality otherwise.
+ return unless $config{gettime};
+
+ my $files = shift;
+ foreach my $file (@$files)
+ {
+ # [TODO. Perhaps not necessary. Can this hook ever be called for
+ # removed pages -- that need to be ``rebuilt'' in the sense that
+ # they're to be removed?] Don't bother for pages that don't exist
+ # anymore.
+ next unless -e "$config{srcdir}/$file";
+
+ my $page = pagename ($file);
+ debug ("needsbuild: <$file> <$page>");
+
+ # Only ever update -- otherwise ikiwiki shall do its own thing.
+ if (defined $IkiWiki::pagemtime{$page})
+ {
+ debug ("pagemtime: " . $IkiWiki::pagemtime{$page});
+
+ my $mtime = 0;
+ eval
+ {
+ $mtime = IkiWiki::rcs_getmtime ($file);
+ };
+ if ($@)
+ {
+ print STDERR $@;
+ }
+ elsif ($mtime > 0)
+ {
+ $IkiWiki::pagemtime{$page} = $mtime;
+
+ # We have to set the actual file's mtime too, as otherwise
+ # ikiwiki will update it again and again.
+ utime($mtime, $mtime, "$config{srcdir}/$file");
+ }
+
+ debug ("pagemtime: " . $IkiWiki::pagemtime{$page});
+ }
+ }
+}
+
+1
diff --git a/.templates/autotag.tmpl b/.templates/autotag.tmpl
new file mode 100644
index 00000000..87b76eef
--- /dev/null
+++ b/.templates/autotag.tmpl
@@ -0,0 +1,15 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta title="<TMPL_VAR TAG>"]]
+
+[[!map
+pages="tagged(<TMPL_VAR TAG>)"
+show=title]]
diff --git a/.templates/editpage.tmpl b/.templates/editpage.tmpl
index 906f39ce..1ecbd0a9 100644
--- a/.templates/editpage.tmpl
+++ b/.templates/editpage.tmpl
@@ -1,44 +1,6 @@
-<TMPL_IF NAME="PAGE_CONFLICT">
-<p>
-<b>Your changes conflict with other changes made to the page.</b>
-</p>
-<p>
-Conflict markers have been inserted into the page content. Reconcile the
-conflict and commit again to save your changes.
-</p>
-</TMPL_IF>
-<TMPL_IF NAME="FAILED_SAVE">
-<p>
-<b>Failed to save your changes.</b>
-</p>
-<p>
-Your changes were not able to be saved to disk. The system gave the error:
-<blockquote>
-<TMPL_VAR ERROR_MESSAGE>
-</blockquote>
-Your changes are preserved below, and you can try again to save them.
-</p>
-</TMPL_IF>
-<TMPL_IF NAME="PAGE_GONE">
-<p>
-<b>The page you were editing has disappeared.</b>
-</p>
-<p>
-Perhaps someone else has deleted it or moved it. If you want to recreate
-this page with your text, click "Save Page" again.
-</p>
-</TMPL_IF>
-<TMPL_IF NAME="CREATION_CONFLICT">
-<p>
-<b>While you were creating this page, someone else independently created a page
-with the same name.</b>
-</p>
-<p>
-The edit box below contains the page's current content, followed by the
-content you entered previously, to allow you to merge the two
-together before saving.
-</p>
-</TMPL_IF>
+<TMPL_VAR JAVASCRIPT>
+<TMPL_VAR MESSAGE>
+<br />
<TMPL_VAR FORM-START>
<TMPL_VAR FIELD-DO>
<TMPL_VAR FIELD-SID>
@@ -46,17 +8,18 @@ together before saving.
<TMPL_VAR FIELD-RCSINFO>
<TMPL_VAR FIELD-NEWFILE>
<TMPL_IF NAME="PAGE_SELECT">
-Page location: <TMPL_VAR FIELD-PAGE>
-Page type: <TMPL_VAR FIELD-TYPE>
+<label for="page" class="inline">Page location:</label><TMPL_VAR FIELD-PAGE>
+<label for="type" class="inline">Page type:</label><TMPL_VAR FIELD-TYPE>
<TMPL_ELSE>
-<br />
<TMPL_VAR FIELD-PAGE>
<TMPL_VAR FIELD-TYPE>
</TMPL_IF>
+<div class="editcontentdiv">
<TMPL_VAR FIELD-EDITCONTENT><br />
+</div>
<TMPL_IF NAME="CAN_COMMIT">
-Optional comment about this change:<br />
-<TMPL_VAR FIELD-COMMENTS><br />
+<label for="editmessage" class="block">Optional comment about this change:</label>
+<TMPL_VAR FIELD-EDITMESSAGE><br />
</TMPL_IF>
<div class="copyright_assignment_notice">
@@ -71,14 +34,29 @@ rights to copy, modify, and redistribute your contributions.</p>
<p>We're requiring these copyright assignments, so that we'll easily
be able to include your contributions in official GNU documentation,
such as the GNU Hurd manual, etc. Send email to <a
-href="mailto:hurd-maintainers@gnu.org">&lt;hurd-maintainers@gnu.org&gt;</a>
+href="mailto:hurd-maintainers@gnu.org">hurd-maintainers@gnu.org</a>
if there are questions.</p>
</div>
<TMPL_VAR FORM-SUBMIT>
<TMPL_VAR HELPONFORMATTINGLINK>
+<TMPL_IF NAME="FIELD-ATTACHMENT">
+<a class="toggle" href="#attachments">Attachments</a>
+<div class="<TMPL_VAR ATTACHMENTS-CLASS>" id="attachments">
+<table>
+<tr><td colspan="5"><TMPL_VAR FIELD-ATTACHMENT><TMPL_VAR FIELD-UPLOAD></td></tr>
+<TMPL_LOOP NAME="ATTACHMENT_LIST">
+<tr><td><TMPL_VAR FIELD-SELECT><TMPL_VAR LINK></td><td><TMPL_VAR SIZE></td><td><TMPL_VAR MTIME></td></tr>
+</TMPL_LOOP>
+<TMPL_IF NAME="ATTACHMENT_LIST">
+<tr><td colspan="2"><TMPL_VAR FIELD-LINK><TMPL_VAR FIELD-RENAME><TMPL_VAR FIELD-REMOVE></td></tr>
+</TMPL_IF>
+</table>
+</div>
+</TMPL_IF>
<TMPL_VAR FORM-END>
+<TMPL_VAR WMD_PREVIEW>
<TMPL_IF NAME="PAGE_PREVIEW">
<hr />
@@ -89,3 +67,12 @@ if there are questions.</p>
<TMPL_VAR PAGE_PREVIEW>
</div>
</TMPL_IF>
+<TMPL_IF NAME="PAGE_DIFF">
+<hr />
+<div class="header">
+<span>Diff:</span>
+</div>
+<div id="diff">
+<TMPL_VAR PAGE_DIFF>
+</div>
+</TMPL_IF>
diff --git a/.templates/newsitem.tmpl b/.templates/newsitem.tmpl
index 1c8f2ae8..3b4fded1 100644
--- a/.templates/newsitem.tmpl
+++ b/.templates/newsitem.tmpl
@@ -1,59 +1,61 @@
-<div class="newsitem">
+<TMPL_IF HTML5><article class="newsitem"><TMPL_ELSE><div class="newsitem"></TMPL_IF>
-<div class="newsitemheader">
-
-<TMPL_IF NAME="AUTHOR">
+<TMPL_IF HTML5><section class="newsitemheader"><TMPL_ELSE><div class="newsitemheader"></TMPL_IF>
+<TMPL_IF AUTHOR>
<span class="author">
-<TMPL_IF NAME="AUTHORURL">
+<TMPL_IF AUTHORURL>
<a href="<TMPL_VAR AUTHORURL>"><TMPL_VAR AUTHOR></a>
<TMPL_ELSE>
<TMPL_VAR AUTHOR>
</TMPL_IF>
</span>
</TMPL_IF>
-<span class="header">
-<TMPL_IF NAME="PERMALINK">
+<TMPL_IF HTML5><header class="header"><TMPL_ELSE><span class="header"></TMPL_IF>
+<TMPL_IF PERMALINK>
<a href="<TMPL_VAR PERMALINK>"><TMPL_VAR TITLE></a>
<TMPL_ELSE>
<a href="<TMPL_VAR PAGEURL>"><TMPL_VAR TITLE></a>
</TMPL_IF>
-</span>
-<TMPL_IF NAME="HAVE_ACTIONS">
-<div class="actions">
+<TMPL_IF HTML5></header><TMPL_ELSE></span></TMPL_IF>
+
+<TMPL_IF HAVE_ACTIONS>
+<TMPL_IF HTML5><nav class="actions"><TMPL_ELSE><div class="actions"></TMPL_IF>
<ul>
-<TMPL_IF NAME="EDITURL">
+<TMPL_IF EDITURL>
<li><a href="<TMPL_VAR EDITURL>" rel="nofollow">Edit</a></li>
</TMPL_IF>
-<TMPL_IF NAME="DISCUSSIONLINK">
+<TMPL_IF COMMENTSLINK>
+<li><TMPL_VAR COMMENTSLINK></li>
+<TMPL_ELSE>
+<TMPL_IF DISCUSSIONLINK>
<li><TMPL_VAR DISCUSSIONLINK></li>
</TMPL_IF>
+</TMPL_IF>
</ul>
-</div><!--.actions-->
+<TMPL_IF HTML5></nav><TMPL_ELSE></div></TMPL_IF>
</TMPL_IF>
-</div><!--.newsitemheader-->
+<TMPL_IF HTML5></section><TMPL_ELSE></div></TMPL_IF>
-<div class="newsitemcontent">
+<TMPL_IF HTML5><section class="newsitemcontent"><TMPL_ELSE><div class="newsitemcontent"></TMPL_IF>
<TMPL_VAR CONTENT>
-</div><!--.newsitemcontent-->
+<TMPL_IF HTML5></section><TMPL_ELSE></div></TMPL_IF>
-<div class="newsitemfooter">
+<TMPL_IF HTML5><footer class="newsitemfooter"><TMPL_ELSE><div class="newsitemfooter"></TMPL_IF>
<!-- The saved space is more important that the information this provides.
-
<span class="pagedate">
Posted <TMPL_VAR CTIME>
</span>
-
-->
-<TMPL_IF NAME="TAGS">
-<span class="tags">
+<TMPL_IF TAGS>
+<TMPL_IF HTML5><nav class="tags"><TMPL_ELSE><span class="tags"></TMPL_IF>
Tags:
-<TMPL_LOOP NAME="TAGS">
+<TMPL_LOOP TAGS>
<TMPL_VAR LINK>
</TMPL_LOOP>
-</span>
+<TMPL_IF HTML5></nav><TMPL_ELSE></span></TMPL_IF>
</TMPL_IF>
<!-- For these tiny snippets we can abstain from displaying this again. It
@@ -73,6 +75,6 @@ License: <TMPL_VAR LICENSE>
-->
-</div><!--.newsitemfooter-->
+<TMPL_IF HTML5></footer><TMPL_ELSE></div></TMPL_IF>
-</div><!--.newsitem-->
+<TMPL_IF HTML5></article><TMPL_ELSE></div></TMPL_IF>
diff --git a/.templates/page.tmpl b/.templates/page.tmpl
index d546a88f..4ec3b4bf 100644
--- a/.templates/page.tmpl
+++ b/.templates/page.tmpl
@@ -1,85 +1,131 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+<TMPL_IF HTML5><!DOCTYPE html>
+<html>
+<TMPL_ELSE><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
+</TMPL_IF>
<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<TMPL_IF DYNAMIC>
+<TMPL_IF FORCEBASEURL><base href="<TMPL_VAR FORCEBASEURL>" /><TMPL_ELSE>
+<TMPL_IF BASEURL><base href="<TMPL_VAR BASEURL>" /></TMPL_IF>
+</TMPL_IF>
+</TMPL_IF>
+<TMPL_IF HTML5><meta charset="utf-8" /><TMPL_ELSE><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></TMPL_IF>
+<meta http-equiv="Cache-Control" content="must-revalidate" />
<title><TMPL_VAR TITLE></title>
-<TMPL_IF NAME="FAVICON">
+<TMPL_IF FAVICON>
<link rel="icon" href="<TMPL_VAR BASEURL><TMPL_VAR FAVICON>" type="image/x-icon" />
</TMPL_IF>
<link rel="stylesheet" href="<TMPL_VAR BASEURL>style.css" type="text/css" />
+<TMPL_IF LOCAL_CSS>
+<link rel="stylesheet" href="<TMPL_VAR BASEURL><TMPL_VAR LOCAL_CSS>" type="text/css" />
+<TMPL_ELSE>
<link rel="stylesheet" href="<TMPL_VAR BASEURL>local.css" type="text/css" />
-<TMPL_IF NAME="EDITURL">
+</TMPL_IF>
+<TMPL_IF EDITURL>
<link rel="alternate" type="application/x-wiki" title="Edit this page" href="<TMPL_VAR EDITURL>" />
</TMPL_IF>
-<TMPL_IF NAME="FEEDLINKS"><TMPL_VAR FEEDLINKS></TMPL_IF>
-<TMPL_IF NAME="RELVCS"><TMPL_VAR RELVCS></TMPL_IF>
-<TMPL_IF NAME="META"><TMPL_VAR META></TMPL_IF>
+<TMPL_IF FEEDLINKS><TMPL_VAR FEEDLINKS></TMPL_IF>
+<TMPL_IF RELVCS><TMPL_VAR RELVCS></TMPL_IF>
+<TMPL_IF META><TMPL_VAR META></TMPL_IF>
</head>
<body>
-<div class="pageheader">
-<div class="header">
+<TMPL_IF HTML5><article class="page"><TMPL_ELSE><div class="page"></TMPL_IF>
+
+<TMPL_IF HTML5><section class="pageheader"><TMPL_ELSE><div class="pageheader"></TMPL_IF>
+<TMPL_IF HTML5><header class="header"><TMPL_ELSE><div class="header"></TMPL_IF>
<span>
<span class="parentlinks">
-<TMPL_LOOP NAME="PARENTLINKS">
+<TMPL_LOOP PARENTLINKS>
<a href="<TMPL_VAR URL>"><TMPL_VAR PAGE></a>/
</TMPL_LOOP>
</span>
<span class="title">
<TMPL_VAR TITLE>
+<TMPL_IF ISTRANSLATION>
+&nbsp;(<TMPL_VAR PERCENTTRANSLATED>%)
+</TMPL_IF>
+</span>
</span>
-</span><!--.header-->
-<TMPL_IF NAME="SEARCHFORM">
+<TMPL_IF SEARCHFORM>
<TMPL_VAR SEARCHFORM>
</TMPL_IF>
-</div>
+<TMPL_IF HTML5></header><TMPL_ELSE></div></TMPL_IF>
-<TMPL_IF NAME="HAVE_ACTIONS">
-<div class="actions">
+<TMPL_IF HAVE_ACTIONS>
+<TMPL_IF HTML5><nav class="actions"><TMPL_ELSE><div class="actions"></TMPL_IF>
<span class="global">
<ul>
-<TMPL_IF NAME="RECENTCHANGESURL">
+<TMPL_IF RECENTCHANGESURL>
<li><a href="<TMPL_VAR RECENTCHANGESURL>">Recent Changes</a></li>
</TMPL_IF>
-<TMPL_IF NAME="PREFSURL">
+<TMPL_IF PREFSURL>
<li><a href="<TMPL_VAR PREFSURL>">Preferences</a></li>
</TMPL_IF>
</ul>
</span>
<span class="per_page">
<ul>
-<TMPL_IF NAME="EDITURL">
+<TMPL_IF EDITURL>
<li><a href="<TMPL_VAR EDITURL>" rel="nofollow">Edit</a></li>
</TMPL_IF>
-<TMPL_IF NAME="HISTORYURL">
+<TMPL_IF HISTORYURL>
<li><a href="<TMPL_VAR HISTORYURL>">History</a></li>
</TMPL_IF>
-<TMPL_IF NAME="COMMENTSLINK">
-<li><TMPL_VAR COMMENTSLINK><br /></li>
+<TMPL_IF GETSOURCEURL>
+<li><a href="<TMPL_VAR GETSOURCEURL>">Source</a></li>
+</TMPL_IF>
+<TMPL_IF ACTIONS>
+<TMPL_LOOP ACTIONS>
+<li><TMPL_VAR ACTION></li>
+</TMPL_LOOP>
+</TMPL_IF>
+<TMPL_IF COMMENTSLINK>
+<li><TMPL_VAR COMMENTSLINK></li>
<TMPL_ELSE>
-<TMPL_IF NAME="DISCUSSIONLINK">
-<li><TMPL_VAR DISCUSSIONLINK><br /></li>
+<TMPL_IF DISCUSSIONLINK>
+<li><TMPL_VAR DISCUSSIONLINK></li>
</TMPL_IF>
</TMPL_IF>
</ul>
</span>
-</div>
+<TMPL_IF HTML5></nav><TMPL_ELSE></div></TMPL_IF>
</TMPL_IF>
-</div> <!-- .pageheader -->
+
+<TMPL_IF OTHERLANGUAGES>
+<TMPL_IF HTML5><nav id="otherlanguages"><TMPL_ELSE><div id="otherlanguages"></TMPL_IF>
+<ul>
+<TMPL_LOOP OTHERLANGUAGES>
+<li>
+<a href="<TMPL_VAR URL>"><TMPL_VAR LANGUAGE></a>
+<TMPL_IF MASTER>
+(master)
+<TMPL_ELSE>
+&nbsp;(<TMPL_VAR PERCENT>%)
+</TMPL_IF>
+</li>
+</TMPL_LOOP>
+</ul>
+<TMPL_IF HTML5></nav><TMPL_ELSE></div></TMPL_IF>
+</TMPL_IF>
+
+<TMPL_IF HTML5></section><TMPL_ELSE></div></TMPL_IF>
<TMPL_IF SIDEBAR>
-<div id="sidebar">
+<TMPL_IF HTML5><aside class="sidebar"><TMPL_ELSE><div class="sidebar"></TMPL_IF>
<TMPL_VAR SIDEBAR>
-</div>
+<TMPL_IF HTML5></aside><TMPL_ELSE></div></TMPL_IF>
</TMPL_IF>
-<div id="content">
+<div id="pagebody">
+
+<TMPL_IF HTML5><section id="content"><TMPL_ELSE><div id="content"></TMPL_IF>
<TMPL_VAR CONTENT>
-</div>
+<TMPL_IF HTML5></section><TMPL_ELSE></div></TMPL_IF>
<TMPL_IF COMMENTS>
-<div id="comments">
+<TMPL_IF HTML5><section id="comments"><TMPL_ELSE><div id="comments"></TMPL_IF>
<TMPL_VAR COMMENTS>
<TMPL_IF ADDCOMMENTURL>
<div class="addcomment">
@@ -88,37 +134,40 @@
<TMPL_ELSE>
<div class="addcomment">Comments on this page are closed.</div>
</TMPL_IF>
-</div>
+<TMPL_IF HTML5></section><TMPL_ELSE></div></TMPL_IF>
</TMPL_IF>
-<div id="footer" class="pagefooter">
-<div id="pageinfo">
+</div>
-<TMPL_IF NAME="TAGS">
-<div class="tags">
+<TMPL_IF HTML5><footer id="footer" class="pagefooter"><TMPL_ELSE><div id="footer" class="pagefooter"></TMPL_IF>
+<TMPL_UNLESS DYNAMIC>
+<TMPL_IF HTML5><nav id="pageinfo"><TMPL_ELSE><div id="pageinfo"></TMPL_IF>
+
+<TMPL_IF TAGS>
+<TMPL_IF HTML5><nav class="tags"><TMPL_ELSE><div class="tags"></TMPL_IF>
Tags:
-<TMPL_LOOP NAME="TAGS">
+<TMPL_LOOP TAGS>
<TMPL_VAR LINK>
</TMPL_LOOP>
-</div>
+<TMPL_IF HTML5></nav><TMPL_ELSE></div></TMPL_IF>
</TMPL_IF>
-<TMPL_IF NAME="BACKLINKS">
-<div id="backlinks">
+<TMPL_IF BACKLINKS>
+<TMPL_IF HTML5><nav id="backlinks"><TMPL_ELSE><div id="backlinks"></TMPL_IF>
Links:
-<TMPL_LOOP NAME="BACKLINKS">
+<TMPL_LOOP BACKLINKS>
<a href="<TMPL_VAR URL>"><TMPL_VAR PAGE></a>
</TMPL_LOOP>
-<TMPL_IF NAME="MORE_BACKLINKS">
+<TMPL_IF MORE_BACKLINKS>
<span class="popup">...
<span class="balloon">
-<TMPL_LOOP NAME="MORE_BACKLINKS">
+<TMPL_LOOP MORE_BACKLINKS>
<a href="<TMPL_VAR URL>"><TMPL_VAR PAGE></a>
</TMPL_LOOP>
</span>
</span>
</TMPL_IF>
-</div><!-- #backlinks -->
+<TMPL_IF HTML5></nav><TMPL_ELSE></div></TMPL_IF>
</TMPL_IF>
<TMPL_IF COPYRIGHT>
@@ -140,10 +189,13 @@ Last edited <TMPL_VAR MTIME>
<!-- Created <TMPL_VAR CTIME> -->
</div>
-</div><!-- #pageinfo -->
+<TMPL_IF HTML5></nav><TMPL_ELSE></div></TMPL_IF>
<TMPL_IF EXTRAFOOTER><TMPL_VAR EXTRAFOOTER></TMPL_IF>
+</TMPL_UNLESS>
<!-- from <TMPL_VAR WIKINAME> -->
-</div><!-- .pagefooter #footer -->
+<TMPL_IF HTML5></footer><TMPL_ELSE></div></TMPL_IF>
+
+<TMPL_IF HTML5></article><TMPL_ELSE></div></TMPL_IF>
</body>
</html>
diff --git a/abac.mdwn b/abac.mdwn
index a260a986..41de2062 100644
--- a/abac.mdwn
+++ b/abac.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
ABAC stands for authorization-based access control.
In this model, access is not granted based on the
diff --git a/asbestos.mdwn b/asbestos.mdwn
index 65ab391e..3990eec1 100644
--- a/asbestos.mdwn
+++ b/asbestos.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
Asbestos is an operating system developed at MIT, Stanford
and UCLA to explore information flow control policies. The motivation
diff --git a/asking_questions.mdwn b/asking_questions.mdwn
index d58dee61..2d43cbbe 100644
--- a/asking_questions.mdwn
+++ b/asking_questions.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
Before asking a question, first make an effort to find the answer to your
question. A lot of questions have been asked and answered before, so please
diff --git a/binutils.mdwn b/binutils.mdwn
index 3e9e5889..3ce28bb1 100644
--- a/binutils.mdwn
+++ b/binutils.mdwn
@@ -1,11 +1,11 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
The [GNU Binutils](http://www.gnu.org/software/binutils/).
diff --git a/capability.mdwn b/capability.mdwn
index 2d4d2ce8..367ea163 100644
--- a/capability.mdwn
+++ b/capability.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
A capability is a protected reference. It is a reference in that
it designates an object; it is protected in that in cannot be
diff --git a/colophon.mdwn b/colophon.mdwn
index 9146bc15..a9a2952e 100644
--- a/colophon.mdwn
+++ b/colophon.mdwn
@@ -1,13 +1,13 @@
-[[meta copyright="Copyright © 2003, 2004, 2007, 2008, 2009 Free Software
+[[!meta copyright="Copyright © 2003, 2004, 2007, 2008, 2009 Free Software
Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
Just like a book, this topic is designed to help describe the tools used to
create this website and what methods were used to give it its look and feel.
diff --git a/colophon/about_the_twiki_to_ikiwiki_conversion.mdwn b/colophon/about_the_twiki_to_ikiwiki_conversion.mdwn
index 8c556261..0a1a5a00 100644
--- a/colophon/about_the_twiki_to_ikiwiki_conversion.mdwn
+++ b/colophon/about_the_twiki_to_ikiwiki_conversion.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
# Some Quick Notes About the *TWiki to ikiwiki* Conversion
@@ -38,7 +38,7 @@ also made available by the authors at
<http://svcs.cs.pdx.edu/~jamey/wikiconverter/>.
The Debian package *libhtml-wikiconverter-perl* is too old at least until
-[[debbug 419918]] is closed.
+[[!debbug 419918]] is closed.
For converting from rcs files (as used by TWiki) to a git repository you'll
need to get `git clone git://people.freedesktop.org/~keithp/parsecvs` and build
diff --git a/community.mdwn b/community.mdwn
index 73812494..9443f123 100644
--- a/community.mdwn
+++ b/community.mdwn
@@ -1,13 +1,13 @@
-[[meta copyright="Copyright © 2002, 2003, 2005, 2007, 2008, 2009 Free Software
-Foundation, Inc."]]
+[[!meta copyright="Copyright © 2002, 2003, 2005, 2007, 2008, 2009, 2010 Free
+Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
There is an expanding community of people developing and running test Debian
GNU/Hurd machines.
@@ -18,12 +18,12 @@ Further ways of getting in contact or getting information:
[[Shared-Wiki-Weblog|Weblogs]] -- A shared weblog by Hurd developers and enthusiasts.
+[[User Pages|/user]]
+
[[Meetings]] -- Meetings with Hurd developer attendance.
[[GSoC]] -- Participation in the Google Summer of Code
-[[Hurd/WhoRunsGNU]]
-
[[Hurd/HurdDevelopers]] -- Who's who?
[Hurd User's Guide](http://www.gnu.org/software/hurd/users-guide/using_gnuhurd.html).
@@ -36,6 +36,8 @@ Further ways of getting in contact or getting information:
[Advogato.org -- Hurd Project page](http://advogato.org/proj/HURD/)
+[[Media_Appearances]]
+
---
# Hurd User Groups
@@ -48,4 +50,8 @@ Further ways of getting in contact or getting information:
* [Hurdfr.org](http://www.hurdfr.org/)
* [HurdIt](http://hurd-it.sf.net/)
* [HurdUk](http://uwhug.org.uk/)
-* [HurdUs](http://hurd.gnufans.org/)
+
+# Other Community Pages
+
+ * [GNU Hurd Sverige](http://hurd.mtb-tech.se/) -- A Swedish website
+ about the GNU Hurd
diff --git a/community/communication.mdwn b/community/communication.mdwn
index d2eccceb..33941000 100644
--- a/community/communication.mdwn
+++ b/community/communication.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
The GNU Hurd community comprises of a crowd of people living in different areas
of the whole world. For that, having regular working-[[meetings]] -- usually
@@ -14,7 +14,7 @@ one of the more productive ways of coordination works -- is not easily
possible.
The two key resources most often used for communication are the Debian and GNU
-[[mailing_lists]], as well as [[IRC]].
+[[mailing lists]], as well as [[IRC]].
These are measures of communication that work (compared to, e.g., a one-to-one
telephone call) one-to-many. It is important to not send email only to a
@@ -31,10 +31,10 @@ discussing with single developers. And always use *reply to all* instead of
*reply* when answering to email.
If you're interested in keeping up with current events and taking part in
-discussions, you'll want to join the [[mailing_lists/bug-hurd]] mailing list or
+discussions, you'll want to join the [[mailing lists/bug-hurd]] mailing list or
have a look at its [archives](http://lists.gnu.org/archive/html/bug-hurd/).
Even if you're a beginner (we've also been, and some of us even still
remember), don't hesitate to make the first move and make active use of these
resources. But -- of course -- please try to adhere to the conventions as
-described on the [[mailing_lists]] and [[IRC]] pages.
+described on the [[mailing lists]] and [[IRC]] pages.
diff --git a/community/facebook.mdwn b/community/facebook.mdwn
index b5340224..27893cf9 100644
--- a/community/facebook.mdwn
+++ b/community/facebook.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
There is [a Facebook group for the Hurd](http://www.facebook.com/group.php?gid=5141429597). If you're on Facebook, join it and say hello.
diff --git a/community/gsoc.mdwn b/community/gsoc.mdwn
index aa27fd4f..2ce92d19 100644
--- a/community/gsoc.mdwn
+++ b/community/gsoc.mdwn
@@ -1,34 +1,63 @@
-[[meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008, 2009, 2010 Free Software Foundation,
+Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-# 2009
+[[!meta title="Google Summer of Code"]]
-The Google Summer of Code is currently in the planning phase.
+# 2010
+This year we are again participating in [Google Summer of Code](http://socghop.appspot.com)
+under the [GNU umbrella](http://socghop.appspot.com/gsoc/org/show/google/gsoc2010/gnuproject).
-# History
+ * *[[Jeremie Koenig|jkoenig]]*, mentored by *[[Samuel
+ Thibault|samuelthibault]]*, is working on adapting the Debian Installer to
+ [produce working Debian GNU/Hurd installation
+ images](http://socghop.appspot.com/gsoc/student_project/show/google/gsoc2010/debian/t127230758239)
+ so we can easily offer up to date disc-sets.
+ ([Details](http://wiki.debian.org/SummerOfCode2010/HurdDebianInstaller/JeremieKoenig).)
-2006 and 2007 we participated in GSoC under the umbrella of the GNU project,
-getting one slot each year.
+ * *[[Emilio Pozuelo Monfort|pochu]]*, mentored by *Carl Fredrik Hammar* (who
+ was a GSoC student in 2007), is working on a task that may be perceived as
+ less exciting from the outside, but yet is extremely valuable: [fixing
+ compatibility problems exposed by projects'
+ testsuites](http://socghop.appspot.com/gsoc/student_project/show/google/gsoc2010/gnuproject/t127230759396).
+ ([[Details|community/gsoc/project_ideas/testsuites]].)
-<!-- TODO. Extend. -->
+ * *[[Karim Allah Ahmed|kam]]*, mentored by *Sergio López*, is working on
+ [tuning the VM Subsystem in
+ GNU/Hurd](http://socghop.appspot.com/gsoc/student_project/show/google/gsoc2010/gnuproject/t127230759587)
+ to bring the virtual memory management in Hurd/Mach up to date.
+ ([[Details|community/gsoc/project_ideas/vm_tuning]].)
-In 2008 we successfully participated on our own, no longer within the GNU
-project. Read about our five students' success on the [[2008]] page.
+We always ask students that want to apply for a task (in the course of the
+Google Summer of Code) to mind our distinct [[student_application_form]].
+
+Apart from our own [[project_ideas]], there are also two [Hurd-related ideas
+for X.Org](http://wiki.x.org/wiki/Hurd_Porting).
+As the Google Summer of Code 2010 has already started, you can no longer
+participate as a GSoC student. However,
+working on one of these projects is still a good opportunity to get started with Hurd development.
+Please read up about [[contributing]] in general;
+and feel free to ask any questions you might have at one of our [[regular_IRC_meetings|IRC#regular_meetings]].
+Generally it's a good idea to [[contact_us|communication]] when starting to work on some project.
-# Joining in
+# History
+
+In 2006 and [[2007]], we participated in GSoC under the umbrella of the GNU
+project,
+getting one slot each year.
-If these successes got you interested in contributing some larger part yourself -
-in your free time or maybe in next years Google Summer of Code -
-please have a look at our [[project_ideas]] and read up about [[contributing]].
+In the following year, we successfully participated on our own, not only as a
+suborganization of the GNU
+project. Read about our five students' success on the [[2008]] page.
-Also, feel free to ask your questions at one of our
-[[regular_IRC_meetings|IRC#regular_meetings]].
+The next year, we participated under the GNU umbrella with one slot again.
+Read about it on the [[2009]] page.
diff --git a/community/gsoc/2007.mdwn b/community/gsoc/2007.mdwn
new file mode 100644
index 00000000..fa22f785
--- /dev/null
+++ b/community/gsoc/2007.mdwn
@@ -0,0 +1,16 @@
+[[!meta copyright="Copyright © 2008, 2009, 2010 Free Software Foundation,
+Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+Participated under the umbrella of the GNU project, getting one slot:
+
+ * Carl Fredrik Hammar has been working on [[hurd/libchannel]]; [Google's
+ project
+ page](http://code.google.com/soc/2007/gnu/appinfo.html?csaid=44FB3FD69C665A08).
diff --git a/community/gsoc/2008.mdwn b/community/gsoc/2008.mdwn
index 5bb5f314..d994f2b0 100644
--- a/community/gsoc/2008.mdwn
+++ b/community/gsoc/2008.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
The GNU Hurd project has successfully participated in the
[Google Summer of Code 2008](http://code.google.com/soc/2008/hurd/about.html)!
@@ -23,7 +23,8 @@ did a great job!
vacation). The project however was hampered by various misunderstandings,
wrong assumptions, and several major redesigns during the course of the work
-- which is probably more our fault than the student's. In the end, though, he
- completed nsmux (the main namespace proxy handling the magic filename
+ completed [[hurd/translator/nsmux]] (the main namespace proxy handling the
+ magic filename
lookups, running dynamic translators on demand); he still works on
finishing the translator stack filtering necessary to implement some of the
desired functionality (accessing files while skipping existing translators).
diff --git a/community/gsoc/2008/minutes-2008-04-25.mdwn b/community/gsoc/2008/minutes-2008-04-25.mdwn
index 3f2c0313..4c2039d4 100644
--- a/community/gsoc/2008/minutes-2008-04-25.mdwn
+++ b/community/gsoc/2008/minutes-2008-04-25.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
- People agreed that some small projects should be done to during the bonding
period: ideas that floated around were fixing some of the build failures or
diff --git a/community/gsoc/2008/minutes-2008-05-02.mdwn b/community/gsoc/2008/minutes-2008-05-02.mdwn
index 9c99a8e7..1dc99abe 100644
--- a/community/gsoc/2008/minutes-2008-05-02.mdwn
+++ b/community/gsoc/2008/minutes-2008-05-02.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
- madrazr wanted a wiki to keep track of progress. antrik suggested:
http://www.bddebian.com/~wiki/community/gsoc/ and that everyone use
diff --git a/community/gsoc/2008/minutes-2008-05-16.mdwn b/community/gsoc/2008/minutes-2008-05-16.mdwn
index 8adb838c..7e7da845 100644
--- a/community/gsoc/2008/minutes-2008-05-16.mdwn
+++ b/community/gsoc/2008/minutes-2008-05-16.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
* **madrazr** said that web commits for the wiki stall forever (more than half an hour); the reason is unknown. **antrik** said that it is not much of a problem if the problems with git access are solved.
diff --git a/community/gsoc/2009.mdwn b/community/gsoc/2009.mdwn
new file mode 100644
index 00000000..6efeb839
--- /dev/null
+++ b/community/gsoc/2009.mdwn
@@ -0,0 +1,23 @@
+[[!meta copyright="Copyright © 2008, 2009, 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!meta title="Google Summer of Code 2009"]]
+
+The GNU Hurd project unfortunately was not in the list of accepted
+mentoring organizations.
+
+We did get one slot from the GNU project's.
+
+The applications have been evaluated and the following student has
+been accepted:
+
+ * [[Sergiu Ivanov|scolobb]] -- working on a *[[VFS-style union
+ mount|hurd/translator/unionmount]]* functionality; [Google's project
+ page](http://socghop.appspot.com/gsoc/student_project/show/google/gsoc2009/karlberry/t124022551214).
diff --git a/community/gsoc/organization_application.mdwn b/community/gsoc/organization_application.mdwn
index be6867bb..8e672af1 100644
--- a/community/gsoc/organization_application.mdwn
+++ b/community/gsoc/organization_application.mdwn
@@ -1,161 +1,141 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008, 2009, 2010 Free Software Foundation,
+Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-* What is your Organization's Name?
+* Organization Name:
GNU Hurd
-* What is your Organization's Homepage?
+* Description:
+
+The mission of the Hurd project is to create a general-purpose kernel suitable
+for the [GNU operating system](http://gnu.org), which is viable for everyday
+use, and gives users and programs as much control over their computing
+environment as possible.
+
+In traditional operating systems, most system functionality is provided by the
+kernel, and thus cannot be easily modified. The Hurd on the other hand --
+following the GNU spirit of giving users more control over the software they
+use -- implements a unique design, which makes it feasible to change almost
+everything, down to the core features of the system.
+
+While on other systems, such changes would require a lot of effort and special
+privileges to rebuild the system core, with the Hurd this is not necessary: the
+extensible architecture enables users (or applications) to simply modify their
+local system environment at any time, while leaving the rest of the system in
+place.
+
+The most obvious example is the completely decentralized VFS mechanism: it can
+be extended in almost any imaginable way, simply by setting up suitable server
+processes (translators). Not only does this empower users, but also it helps
+application development: desktop environments such as GNOME for example, when
+making use of these possibilities, wouldn't need to create their own VFS
+mechanism -- they simply could extend the system VFS to suit their needs.
+
+One major element of the design which enables this extensibility, is the use of
+a true multiserver microkernel architecture. The Hurd is quite unique in being
+the only general-purpose multiserver microkernel system in development today,
+that is nearly ready for everyday use, and offering almost perfect UNIX
+compatibility. (About 65% of all packages in the Debian repository are
+available for the Hurd.) The "general-purpose" and "everyday use" bits are
+decisive here: all other existing true microkernel systems are either research
+projects not nearly complete enough for actual use; or limited to embedded
+systems and other special purposes; or both.
+
+Marcus Brinkmann and Neal Walfield, while working on improvements to the Hurd
+design, pushed at the forefront of microkernel operating system research. They
+worked with the most distinguished researchers in this field from the
+[L4](http://l4hq.org/) and
+[EROS](http://www.eros-os.org/eros.html)/[Coyotos](http://www.coyotos.org/)
+microkernel operating system groups, and published a couple of [research
+papers](http://walfield.org/) as well in this process.
+
+* Home Page:
http://hurd.gnu.org
-* Describe your organization.
-
-The Hurd project is a loose community of people sharing a common interest in
-developing the Hurd kernel, which is the official kernel of the [GNU operating
-system](http://gnu.org).
-
-When the Hurd was originally started in 1990, it was the last missing major
-component for a complete GNU system. Today Linux and other free kernels are
-available to fill this gap, and the combination of GNU and Linux (often
-[incorrectly](http://www.gnu.org/gnu/why-gnu-linux.html) called just "Linux")
-is in wide use. However, the Hurd is still interesting due to its unique
-design, better fitting the GNU philosophy than traditional monolithic kernels
-like Linux.
-
-The GNU GPL guarantees that all users of software published under this license
-get the legal permission to adapt the software they are using according to
-their wishes, and also get the source code and other tools necessary to put
-this permission to use. However, in traditional operating systems, the kernel
-and related low-level system software are protected from normal users, and
-cannot be easily modified; only the system administrator has power over these.
-
-The Hurd offers special mechanisms that allow any user to change almost all of
-the system functionality he uses, without affecting the rest of the system, and
-thus easily (at runtime) and without any special permissions.
-
-This ability to run subenvironments more or less independant from the rest of
-the system, can be classified as a very sophisticated [lightweight
-virtualization](http://tri-ceps.blogspot.com/2007/10/advanced-lightweight-virtualization.html)
-approach.
-
-To offer these possibilities, the Hurd uses a true multiserver microkernel
-architecture. That makes it quite unique: The Hurd is the only general-purpose
-multiserver microkernel system in development today that is nearly ready for
-everyday use, and offering almost perfect UNIX compatibility. (More than half
-of the packages in the Debian repository are available for the Hurd.) All other
-existing true microkernel systems are either research projects not nearly
-complete enough for actual use, or limited to embedded systems and other
-special purposes, or both.
-
-Marcus Brinkmann and Neal Walfield from the Hurd project are working at the
-bleeding edge of microkernel operating system research. They have been in
-contact with the most distinguished researchers in that field from the
-[L4](http://l4hq.org/) and
-[EROS](http://www.eros-os.org/eros.html)/[Coyotos](http://www.coyotos.org/)
-microkernel operating system groups, and have written a couple of [research
-papers](http://walfield.org/).
+* Main Organization License:
-* Why is your organization applying to participate in GSoC 2009? What do you
-hope to gain by participating?
+GNU General Public License (GPL)
-The primary goal of course is to find and introduce new long-term contributors
-to the project.
+* Why is your organization applying to participate in GSoC 2010? What do you hope to gain by participating?
-Aside from that, it is a way to make progress with tasks that require an amount of
-focused work, that is hard to do for volunteers working in their spare time
-only.
+The primary goal of our participation is of course to find and introduce new long-term contributors
+to the Hurd. We are trying to optimise for this in our student selection
+process, our mentoring approach, and our choice of project ideas.
-Also it is a good possibility to get valuable input from new people, as well as
-spreading technical and other knowledge about the Hurd among actual and
-potential contributors. More generally, participation should help raising
-awareness among people who might know about the existence of the Hurd, but
-otherwise having very little idea what the project is all about, and how its
-progress is.
+The mentor-student setup, together with the period of focused work during the
+summer session, also offer a unique opportunity for kick-starting innovative
+new projects apart from mainline development, which are hard to fit in among
+the normal day-to-day development work. This is particularily important for the
+Hurd, as innovative uses are crucial to show the benefits of the unique
+architecture. Several such projects came into being through the GSoC program
+over the past years.
-Last but not least, we hope the participation will have a positive effect on
-our community -- new impulses, increased communication etc.
+Last but not least, GSoC participation always yields a lot of valuable input from new people, and helps
+spreading technical and other knowledge about the Hurd among actual and
+potential contributors. It has a very positive effect on
+our community -- new impulses, increased communication, etc.
-* Did your organization participate in past GSoCs? If so, please summarize
-your involvement and the successes and challenges of your participation.
+* Did your organization participate in past GSoCs? If so, please summarize your involvement and the successes and challenges of your participation.
In 2006 and 2007,
we participated under the umbrella of the GNU project, getting one slot each
year.
-The 2006 participation was mostly a failure. After some intitial work
-(available in CVS), the student disappeared -- moving to another country and
-other personal issues from what we heard.
-
-The 2007 participation was a considerable success. The student was very bright
-and dedicated. We got some code, as well as a lot of ideas, which we continued
-discussing after the end of GSoC, and he intends to put into code as well in
-the future.
-
In 2008 we participated as an organisation on our own for the first time. This
-turned out extremely beneficial: Not only did it give us much better
-possibilities to find and select good students, as we hoped. We also get a lot
-more applications, mostly of good or excellent quality.
+turned out extremely beneficial: with the better visibility, we got a lot
+more applications (more than 20), mostly of good or excellent quality.
-We ended up with four slots. (We didn't request more, because we were not sure
-whether we would be able to mentor them properly, and generally didn't want to
-overdo it on our first "full" participation.) There was also a fifth student,
-who worked on his project in spite of not getting a slot.
+In 2009, we were rejected as an organisation, so we participated under the GNU
+umbrella again.
-All five students were pretty successful, most of them completing or almost
-completing the original goals -- some even exceeding them. Even our weakest
-student, after serious struggling in the beginning, did quite well in the end.
+While the 2006 student disappeared midway, in all the later years all of our
+students were successful -- even including one who worked on his project in
+spite of not getting an official slot. Half of them are regular Hurd contributors now.
-Two students are still regularily working on the Hurd -- not as much as we
-hoped of course, but probably as much as can be realistically expected...
+Selecting the most promising students, as well as suitable mentors, turned out
+to be the most tricky part of GSoC participation -- but we learned our lesson
+after the first failure: we didn't have any students that didn't meet our
+expectations since then, and we also believe our mentoring is exceptionally
+good now -- one project that was in serious trouble, turned out well after all,
+due to effective mentor intervention.
-All in all, the participation was a considerable amount of work, but it was
-definitely worth it :-)
+* If your organization participated in past GSoCs, please let us know the ratio of students passing to students allocated, e.g. 2006: 3/6 for 3 out of 6 students passed in 2006.
-* If your organization has not previously participated in GSoC, have you
-applied in the past? If so, for what year(s)?
+2008: 4/4
---
+(+1 inofficial in 2008)
+(under GNU umbrella: 2006: 0/1; 2007: 1/1; 2009: 1/1)
-* What license(s) does your project use?
+* If your organization has not previously participated in GSoC, have you applied in the past? If so, for what year(s)?
-Mostly GPLv2 or later. Some bits are GPLv2 only, and some three-clause BSD.
+--
* What is the URL for your ideas page?
-[[project_ideas]]
+http://www.gnu.org/software/hurd/community/gsoc/project_ideas.html
-* What is the main development mailing list or forum for your organization?
+* What is the main development mailing list for your organization? This question will be shown to students who would like to get more information about applying to your organization for GSoC 2010. If your organization uses more than one list, please make sure to include a description of the list so students know which to use.
-bug-hurd@gnu.org, see http://lists.gnu.org/mailman/listinfo/bug-hurd
+bug-hurd@gnu.org ( http://lists.gnu.org/mailman/listinfo/bug-hurd )
* What is the main IRC channel for your organization?
\#hurd on freenode.net
-* Does your organization have an application template you would like to see
-students use? If so, please provide it now.
+* Does your organization have an application template you would like to see students use? If so, please provide it now. Please note that it is a very good idea to ask students to provide you with their contact information as part of your template. Their contact details will not be shared with you automatically via the GSoC 2010 site.
[[student_application_form]]
-* Who will be your backup organization administrator? Please include Google
-Account information.
-
-
-
-* Who will your mentors be? Please include Google Account information.
-
-antrik at gmx.net
-
-* What criteria did you use to select these individuals as mentors? Please be
-as specific as possible.
+* What criteria did you use to select the individuals who will act as mentors for your organization? Please be as specific as possible:
The most important criterium is that the person is involved in the project for
some time, knowing the ways; so he can actually instruct the student; and if
@@ -167,9 +147,9 @@ won't be left on their own with any problems they face.
* What is your plan for dealing with disappearing students?
-The plan is mostly to avoid that happening in the first place. For that, we
-will be particularily careful with the selection of the students: Making sure
-that they have no other obligations during that time; that they are motivated
+The plan is mostly to avoid that happening in the first place. To this end, we
+are particularily careful with selection of students: Making sure
+that they have no other major obligations during that time; that they are motivated
enough; that they actually have the necessary skills to complete the task; that
they fit in our community.
@@ -177,49 +157,55 @@ Also, we will make sure that we are constantly in contact with the students --
asking about progress, discussing technical issues, etc. -- so we can act in
time if things go wrong.
-If a student disappears in spite of that, there is little we can do. Of course
+If a student disappears in spite of all this, there is little we can do. Of course
we will try to contact him and find out what the problem is; whether the
-project can perhaps be scaled down, or at least wrapped up to bring it in a
-state where it is useful even if not finished.
-
-We will also try to limit damage by insisting that students regularily check in
-their work, so that we get partial results at least if someone disappears.
+project can perhaps be scaled down, or otherwise salvaged, so that the effort
+already invested in the student and the project is not wasted. We also try to
+make sure that all important design discussions are archieved, and that all
+code produced is suitable for upstream inclusion from the beginning -- to allow
+others to pick up the project if necessary, without having to start from zero.
* What is your plan for dealing with disappearing mentors?
As our mentors all have been with the project for some time, the risk of them
disappearing is not too big. If one of them disappears nevertheless, it's not a
-problem for us: We have enough mentors, and someone else will take over.
+problem for us: we have enough mentors, and someone else will take over.
We will encourage the students to keep discussions public as much as possible,
keeping private conversations with the mentors to a minimum, so the transition
should go smoothly.
-* What steps will you take to encourage students to interact with your
-project's community before, during and after the program?
+* What steps will you take to encourage students to interact with your project's community before, during and after the program?
We try to make it very clear that we expect the students to get into regular
-contact with us before the end of the student selection process, and won't
+contact with us early during the student selection process already, and won't
consider their applications otherwise. This way we know that the students are
able and willing to communicate with us in the first place.
-After the selection, the regular contact will be kept up: We require the
-students to participate in weekly IRC meetings, where we ask the students
-actively about the work they do, problems they face, decisions they take etc.
-Furthermore, we will ask them to hang around on IRC most of the time while
-working on their projects, so we keep in close contact.
+After selection, the regular contact is kept up: we require the
+students to participate in IRC meetings up to twice a week, where we ask the students
+actively about the work they do, problems they face, decisions they take, etc.
+Furthermore, we ask them to be available on IRC while working on their
+projects, so we can communicate easily.
We also require the students to join our main development mailing list, so any
-design questions etc. can be discussed there. We will encourage them to take
+design questions, etc. can be discussed there. We encourage them to take
part in other conversations, not directly related to their projects, as well.
-After the program we continue the regular meetings, still discussing the
-projects: The application of the code created, future directions etc.
+After the program we continue the regular meetings, discussing the further
+development of their original projects; as well as new projects, after the
+original ones are done.
-* What will you do to ensure that your accepted students stick with the project
-after GSoC concludes?
+* What will you do to ensure that your accepted students stick with the project after GSoC concludes?
-We will try to invite all participating students to a conference afterwards,
-where we will discuss the projects, as well as other Hurd-related topics. We
-hope this will motivate them to follow up on the work they have done during the
+In addition to keeping up the regular IRC meetings,
+we try to invite all participating students to meet us at conferences afterwards,
+where we discuss the projects, as well as other Hurd-related topics. This should
+keep them motivated to follow up on the work they have done during the
program, and generally help keeping them involved.
+
+* Is there anything else you would like to tell the Google Summer of Code program administration team? :
+
+* Backup Admin (Link ID):
+
+tschwinge
diff --git a/community/gsoc/project_ideas.mdwn b/community/gsoc/project_ideas.mdwn
index bfd03ba6..ca10c8a2 100644
--- a/community/gsoc/project_ideas.mdwn
+++ b/community/gsoc/project_ideas.mdwn
@@ -1,1015 +1,108 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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 list offers a wide range of tasks: From rather straightforward to pretty
-involved ones; from low-level kernel hacking (drivers, VM) to high-level
-translators; from fixing bugs, implementing new functionality based on existing
-interfaces, to creating totally new mechanisms.
-
-If you have questions regarding the projects, or if there is more than one that
-you are interested in and you are unsure which to choose, don't hesitate to
-[[contact_us|communication]].
-
-Most project descriptions mention a possible exercise related to the respective
-task. Doing this exercise is part of the application process -- the purpose is
-to get more familiar with the stuff you will need to complete the project and
-with the Hurd community. Contact us if you encounter any difficulties -- we
-will assist you with as well as we can :-)
-
-Please report on the progress you make with the exercise. This allows us to get
-a better picture of how well you can cope with the task; as well as how well
-you manage the necessary communication with us :-)
-
-The exercise is part of the application process, but it's perfectly OK if you
-do it only after handing in the first version of your application. (The
-experience you get with the exercise should help you to further improve your
-application afterwards...) In general, don't hesitate too long -- the sooner
-you submit your first proposal, the sooner we can give feedback!
-
-Take a look at our [[application_template|student_application_form]] to get an
-idea what your application should contain.
-
-
-## Bindings to Other Programming Languages
-
-The main idea of the Hurd design is giving users the ability to easily
-modify/extend the system's functionality ([[extensible_system|extensibility]]).
-This is done by creating [[filesystem_translators|hurd/translator]] and other
-kinds of Hurd servers.
-
-However, in practice this is not as easy as it should, because creating
-translators and other servers is quite involved -- the interfaces for doing
-that are not exactly simple, and available only for C programs. Being able to
-easily create simple translators in RAD languages is highly desirable, to
-really be able to reap the advantages of the Hurd architecture.
-
-Originally Lisp was meant to be the second system language besides C in the GNU
-system; but that doesn't mean we are bound to Lisp. Bindings for any popular
-high-level language, that helps quickly creating simple programs, are highly
-welcome.
-
-Several approaches are possible when creating such bindings. One way is simply
-to provide wrappers to all the available C libraries ([[hurd/libtrivfs]], [[hurd/libnetfs]]
-etc.). While this is easy (it requires relatively little consideration), it may
-not be the optimal solution. It is preferable to hook in at a lower level, thus
-being able te create interfaces that are specially adapted to make good use of
-the features available in the respective language.
-
-These more specialised bindings could hook in at some of the lower level
-library interfaces ([[hurd/libports]], [[hurd/glibc]], etc.); use the
-[[microkernel/mach/MIG]]-provided [[microkernel/mach/RPC]] stubs directly; or
-even create native stubs directly from the interface definitions.
-
-The task is to create easy to use Hurd bindings for a language of the student's
-choice, and some example servers to prove that it works well in practice. This
-project will require gaining a very good understanding of the various Hurd
-interfaces. Skills in designing nice programming interfaces are a must.
-
-There has already been some [earlier work on Python
-bindings](http://www.sigill.org/files/pytrivfs-20060724-ro-test1.tar.bz2), that
-perhaps can be re-used. Also some work on [Perl
-bindings](http://www.nongnu.org/hurdextras/#pith) is availabled.
-
-### Lisp
-
-Most Lisp implementations provide a Foreign Function Interface (FFI) that
-enables the Lisp code to call functions written in another language.
-Specifically, most implementations provide an FFI to the C ABI (hence giving
-access to C, Fortran and possibly C++).
-
-Common Lisp has even a portability layer for such FFI,
-[CFFI](http://common-lisp.net/project/cffi/), so that you can write bindings
-purely in Lisp and use the same binding code on any implementation supported by
-CFFI.
-
-Many Scheme implementation also provide an FFI. [Scheme48](http://www.s48.org/)
-is even the implementation used to run scsh, a Scheme shell designed to provide
-instant access to POSIX functions.
-[Guile](http://www.gnu.org/software/guile/guile.html) is the GNU project's
-Scheme implementation, meant to be embeddable and provide access to C. At least
-[Gambit](http://dynamo.iro.umontreal.ca/~gambit/),
-[Chicken](http://www.call-with-current-continuation.org/),
-[Bigloo](http://www-sop.inria.fr/mimosa/fp/Bigloo/) and
-[PLT](http://www.plt-scheme.org/) are known to provide an FFI too.
-
-With respect to the packaging and dependencies, the good news is that Debian
-comes handy: 5 Common Lisp implementations are packaged, one of which has
-already been ported to Hurd (ECL), and CFFI is also packaged. As far as Scheme
-is concerned, 14 [R5RS](http://www.schemers.org/Documents/Standards/R5RS/)
-implementations are provided and 1 [R6RS](http://www.r6rs.org/).
-
-Possible mentors: Pierre THIERRY (nowhere_man) for Common Lisp or Scheme, and perhaps Python
-
-Exercise: Write some simple program(s) using Hurd-specific interfaces in the
-language you intend to work on. For a start, you could try printing the system
-uptime. A more advanced task is writing a simple variant of the hello
-translator (you can use the existing C imlementation as reference),
-implementing only open() and read() calls. Don't only write an implementations
-using the existing C libraries (libps, libtrivfs), but also try to work with
-the MiG-generated stubs directly. If you are ambitious, you could even try to
-write your own stubs...
-
-*Status*: Flavio Cruz has completed [[Lisp_bindings|flaviocruz]] for GSoC 2008!
-
-
-## Virtualization Using Hurd Mechanisms
-
-The main idea behind the Hurd design is to allow users to replace almost any
-system functionality ([[extensible_system|extensibility]]). Any user can easily
-create a subenvironment using some custom [[servers|hurd/translator]] instead
-of the default system servers. This can be seen as an
-[[advanced_lightweight_virtualization|hurd/virtualization]] mechanism, which
-allows implementing all kinds of standard and nonstandard virtualization
-scenarios.
-
-However, though the basic mechanisms are there, currently it's not easy to make
-use of these possibilities, because we lack tools to automatically launch the
-desired constellations.
-
-The goal is to create a set of powerful tools for managing at least one
-desirable virtualization scenario. One possible starting point could be the
-[[hurd/subhurd]]/[[hurd/neighborhurd]] mechanism, which allows a second almost totally
-independant instance of the Hurd in parallel to the main one. The current
-implementation has serious limitations though. A subhurd can only be started by
-root. There are no communication channels between the subhurd and the main one.
-There is no mechanism for safe sharing of hardware devices. Fixing this issues
-could turn subhurds into a very powerful solution for lightweight
-virtualization using so-called logical partitions. (Similar to Linux-vserver,
-OpenVZ etc.)
-
-While subhurd allow creating a complete second system instance, with an own set
-of Hurd servers and [[UNIX]] daemons and all, there are also situations where it is
-desirable to have a smaller subenvironment, living withing the main system and
-using most of its facilities -- similar to a chroot environment. A simple way
-to create such a subenvironment with a single command would be very helpful.
-
-It might be possible to implement (perhaps as a prototype) a wrapper using
-existing tools (chroot and [[hurd/translator/unionfs]]); or it might require more specific tools,
-like some kind of unionfs-like filesytem proxy that mirrors other parts of the
-filesystem, but allows overriding individual locations, in conjuction with
-either chroot or some similar mechanism to create a subenvironment with a
-different root filesystem.
-
-It's also desirable to have a mechanism allowing a user to set up such a custom
-environment in a way that it will automatically get launched on login --
-practically allowing the user to run a customized operating system in his own
-account.
-
-Yet another interesting scenario would be a subenvironment -- using some kind
-of special filesystem proxy again -- in which the user serves as root, being
-able to create local sub-users and/or sub-groups.
-
-This would allow the user to run "dangerous" applications (webbrowser, chat
-client etc.) in a confined fashion, allowing it access to only a subset of the
-user's files and other resources. (This could be done either using a lot of
-groups for individual resources, and lots of users for individual applications;
-adding a user to a group would give the corresponding application access to the
-corresponding resource -- an advanced [[ACL]] mechanism. Or leave out the groups,
-assigning the resources to users instead, and use the Hurd's ability for a
-process to have multiple user IDs, to equip individual applications with sets
-of user IDs giving them access to the necessary resources -- basically a
-[[capability]] mechanism.)
-
-The student will have to pick (at least) one of the described scenarios -- or
-come up with some other one in a similar spirit -- and implement all the tools
-(scripts, translators) necessary to make it available to users in an
-easy-to-use fashion. While the Hurd by default already offers the necessary
-mechanisms for that, these are not perfect and could be further refined for
-even better virtualization capabilities. Should need or desire for specific
-improvements in that regard come up in the course of this project, implementing
-these improvements can be considered part of the task.
-
-Completing this project will require gaining a very good understanding of the
-Hurd architecture and spirit. Previous experience with other virtualization
-solutions would be very helpful.
-
-Possible mentors: Olaf Buddenhagen (antrik)
-
-Exercise: Make some modification to the "boot" programm used to start subhurds.
-(More specific suggestions welcome... :-) )
-
-*Status*: Zheng da has has implemented [[network_virtualization|zhengda]] (an
-important prerequisite for unprivileged subhurds) for GSoC 2008, along with
-various other interesting bits, including a mechanism to override socket
-servers; a proc proxy that allows running processes/subenvironments with a
-pseudo device master port; and a mechanism to pass arbitrary virtual devices to
-a subhurd. He is still working on running subhurds by normal users.
-
-
-## Namspace-based Translator Selection
-
-The main idea behind the Hurd is to make (almost) all system functionality
-user-modifiable ([[extensible_system|extensibility]]). This includes a
-user-modifiable filesystem: the whole filesystem is implemented decentrally, by
-a set of filesystem servers forming the directory tree together, a
-[[hurd/virtual_file_system]]. These filesystem servers are called
-[[translators|hurd/translator]], and are the most visible feature of the Hurd.
-
-The reason they are called translators is because when you set a translator on
-a filesystem node, the underlying node(s) are hidden by the translator, but the
-translator itself can access them, and present their contents in a different
-format -- translate them. A simple example is a
-[[gunzip_translator|hurd/translator/storeio]], which can be set on a gzipped
-file, and presents a virtual file with the uncompressed contents. Or the other
-way around. Or a translator that presents an
-[[XML_file_as_a_directory_tree|hurd/translator/xmlfs]]. Or an mbox as a set of
-individual files for each mail ([[hurd/translator/mboxfs]]); or ever further
-breaking it down into headers, body, attachements...
-
-This gets even more powerful when translators are used as building blocks for
-larger applications: A mail reader for example doesn't need backends for
-understanding various mailbox formats anymore. All formats can be parsed by
-special translators, and the mail reader gets the data as a uniform, directly
-usable filesystem structure. Translators can also be stacked: If you have a
-compressed mailbox for example, first apply a gunzip translator, and then an
-mbox translator on top of that.
-
-There are a few problems with the way translators are set, though. For one,
-once a translator is set on a node, you always see the translated content. If
-you need the untranslated contents again, to do a backup for example, you first
-need to remove the translator again. Also, having to set a translator
-explicitely before accessing the contents is pretty cumbersome, making this
-feature almost useless.
-
-A possible solution is implementing a mechanism for selecting translators
-through special filename attributes. For example you could use
-`index.html.gz,,+` and `index.html.gz,,-` to choose between translated and
-untranslated versions of a file. Or you could use `index.html.gz,,u` to get
-the contents of the file with a gunzip translator applied automatically. You
-could also use attributes on whole directory trees: `.,,0/` would give you a
-directory tree corresponding to the current directory, but with any translators
-disabled, for doing a backup. And `site,,u/*.html.gz` would present a whole
-directory tree of compressed HTML files as uncompressed files.
-
-One benefit of the Hurd's flexibility is that it should be possible to
-implement such a mechanism without touching the existing Hurd components:
-Rather, just implement a special proxy, that mirrors the normal filesystem, but
-is able to interpret the special extensions and present transformed files in
-place of the original ones.
-
-In the long run it's probably desirable to have the mechanism implemented in
-the standard name lookup mechanism, so it will be available globally, and avoid
-the overhead of a proxy; but for the beginnig the proxy solution is much more
-flexible.
-
-The goal of this project is implementing a prototype proxy; perhaps also a
-first version of the global variant as proof of concept, if time permits. It
-requires good understanding of the name lookup mechanism, and translator
-programming; but the implementation should not be too hard. Perhaps the hardest
-part is finding a convenient, flexible, elegant, hurdish method for mapping the
-special extensions to actual translators...
-
-Possible mentors: Olaf Buddenhagen (antrik)
-
-Exercise: Try to make some modification to the existing unionfs and/or firmlink
-translators. (More specific suggestions welcome... :-) )
-
-*Status*: Sergiu Ivanov has been working *voluntarily* on
-[[namespace-based_translator_selection|scolobb]], as an inofficial GSoC 2008
-participant! Not all the desired functionality is in place yet; work is
-ongoing.
-
-
-## Fix File Locking
-
-Over the years, [[UNIX]] has aquired a host of different file locking mechanisms.
-Some of them work on the Hurd, while others are buggy or only partially
-implemented. This breaks many applications.
-
-The goal is to make all file locking mechanisms work properly. This requires
-finding all existing shortcomings (through systematic testing and/or checking
-for known issues in the bug tracker and mailing list archives), and fixing
-them.
-
-This task will require digging into parts of the code to understand how file
-locking works on the Hurd. Only general programming skills are required.
-
-Possible mentors: Samuel Thibault (youpi)
-
-Exercise: Find one of the existing issues, either by looking at the task/bug
-trackers on savannah, or by trying things out yourself; and take a go at it.
-Probably you wont' be able to fix the problem in a limited amount of time, but
-you should be able to do a detailed analysis of the issue at least.
-
-
-## `procfs`
-
-Although there is no standard (POSIX or other) for the layout of the `/proc`
-pseudo-filesystem, it turned out a very useful facility in GNU/Linux and other
-systems, and many tools concerned with process management use it. (`ps`, `top`,
-`htop`, `gtop`, `killall`, `pkill`, ...)
-
-Instead of porting all these tools to use [[hurd/libps]] (Hurd's official method for
-accessing process information), they could be made to run out of the box, by
-implementing a Linux-compatible `/proc` filesystem for the Hurd.
-
-The goal is to implement all `/proc` functionality needed for the various process
-management tools to work. (On Linux, the `/proc` filesystem is used also for
-debugging purposes; but this is highly system-specific anyways, so there is
-probably no point in trying to duplicate this functionality as well...)
-
-The [[existing_partially_working_procfs_implementation|hurd/translator/procfs]]
-can serve as a starting point, but needs to be largely rewritten. (It should
-use [[hurd/libnetfs]] rather than [[hurd/libtrivfs]]; the data format needs to
-change to be more Linux-compatible; and it needs adaptation to newer system
-interfaces.)
-
-This project requires learning [[hurd/translator]] programming, and
-understanding some of the internals of process management in the Hurd. It
-should not be too hard coding-wise; and the task is very nicely defined by the
-exising Linux `/proc` interface -- no design considerations necessary.
-
-**Note**: We already have several applications for this task.
-
-Possible mentors: Olaf Buddenhagen (antrik)
-
-Exercise: Add or fix one piece in the existing procfs translator.
-
-*Status*: Madhusudan.C.S has implemented a new, fully functional [[procfs|madhusudancs]] for
-GSoC 2008. He is still working on some outstanding issues.
-
-
-## New Driver Glue Code
-
-Although a driver framework in userspace would be desirable, presently the Hurd
-uses kernel drivers in the microkernel,
-[[GNU_Mach|microkernel/mach/gnumach]]. (And changing this would be far beyond a
-GSoC project...)
-
-The problem is that the drivers in GNU Mach are presently old Linux drivers
-(mostly from 2.0.x) accessed through a glue code layer. This is not an ideal
-solution, but works quite OK, except that the drivers are very old. The goal of
-this project is to redo the glue code, so we can use drivers from current Linux
-versions, or from one of the free BSD variants.
-
-Using [ddekit](http://demo.tudos.org/dsweeper_tutorial.html) instead of our
-own glue code can be explored as a possible alternative approach.
-
-This is a doable, but pretty involved project. Experience with driver
-programming under Linux (or BSD) is a must. (No Hurd-specific knowledge is
-required, though.)
-
-This is [[GNU_Savannah_task 5488]].
-
-Possible mentors: Samuel Thibault (youpi)
-
-Exercise: Try porting one driver from Linux 2.6 to run in the old framework.
-The port needn't be elegant or complete; but it would be nice if you could get
-it to work at least partially...
-
-
-## Server Overriding Mechanism
-
-The main idea of the Hurd is that every user can influence almost all system
-functionality ([[extensible_system|extensibility]]), by running private Hurd
-servers that replace or proxy the global default implementations.
-
-However, running such a cumstomized subenvironment presently is not easy,
-because there is no standard mechanism to easily replace an individual standard
-server, keeping everything else. (Presently there is only the [[hurd/subhurd]]
-method, which creates a completely new system instance with a completely
-independent set of servers.)
-
-The goal of this project is to provide a simple method for overriding
-individual standard servers, using environment variables, or a special
-subshell, or something like that.
-
-Various approaches for such a mechanism has been discussed before.
-Probably the easiest (1) would be to modify the Hurd-specific parts of [[hurd/glibc]],
-which are contacting various standard servers to implement certain system
-calls, so that instead of always looking for the servers in default locations,
-they first check for overrides in environment variables, and use these instead
-if present.
-
-A somewhat more generic solution (2) could use some mechanism for arbitrary
-client-side namespace overrides. The client-side part of the filename lookup
-mechanism would have to check an override table on each lookup, and apply the
-desired replacement whenever a match is found.
-
-Another approach would be server-side overrides. Again there are various
-variants. The actual servers themself could provide a mechanism to redirect to
-other servers on request. (3) Or we could use some more generic server-side
-namespace overrides: Either all filesystem servers could provide a mechanism to
-modify the namespace they export to certain clients (4), or proxies could be
-used that mirror the default namespace but override certain locations. (5)
-
-Variants (4) and (5) are the most powerful. They are intimately related to
-chroots: (4) is like the current chroot implementation works in the Hurd, and
-(5) has been proposed as an alternative. The generic overriding mechanism could
-be implemented on top of chroot, or chroot could be implemented on top of the
-generic overriding mechanism. But this is out of scope for this project...
-
-In practice, probably a mix of the different approaches would prove most useful
-for various servers and use cases. It is strongly recommended that the student
-starts with (1) as the simplest approach, perhaps augmenting it with (3) for
-certain servers that don't work with (1) because of indirect invocation.
-
-This tasks requires some understanding of the Hurd internals, especially a good
-understanding of the file name lookup mechanism. It's probably not too heavy on
-the coding side.
-
-This is [[GNU_Savannah_task 6612]]. Also there are quite a bit of emails
-discussing this topic, from a last year's GSoC application -- see
-<http://lists.gnu.org/archive/html/bug-hurd/2007-03/msg00050.html>,
-<http://lists.gnu.org/archive/html/bug-hurd/2007-03/msg00114.html>,
-<http://lists.gnu.org/archive/html/bug-hurd/2007-06/msg00082.html>,
-<http://lists.gnu.org/archive/html/bug-hurd/2008-03/msg00039.html>.
-
-Possible mentors: Olaf Buddenhagen (antrik)
-
-Exercise: Come up with a glibc patch that allows overriding one specific
-standard server using method (1).
-
-*Status*: Overriding of socket servers through environment variables has been
-implemented by Zheng Da for GSoC 2008, as part of his
-[[network_virtualization|zhengda]] project.
-
-
-## `dtrace` Support
-
-One of the main problems of the current Hurd implementation is very poor
-performance. While we have a bunch of ideas what could cause the performance
-problems, these are mostly just guesses. Better understanding what really
-causes bad performance is necessary to improve the situation.
-
-For that, we need tools for performance measurements. While all kinds of more
-or less specific profiling tools could be convieved, the most promising and
-generic approach seems to be a framework for logging certain events in the
-running system (both in the microkernel and in the Hurd servers). This would
-allow checking how much time is spent in certain modules, how often certain
-situations occur, how things interact, etc. It could also prove helpful in
-debugging some issues that are otherwise hard to find because of complex
-interactions.
-
-The most popular framework for that is Sun's dtrace; but there might be others.
-The student has to evaluate the existing options, deciding which makes most
-sense for the Hurd; and implement that one. (Apple's implementation of dtrace
-in their Mach-based kernel might be helpful here...)
-
-This project requires ability to evaluate possible solutions, and experience
-with integrating existing components as well as low-level programming.
-
-Possible mentors: Samuel Thibault (youpi)
-
-Exercise: In lack of a good exercise directly related to this taks, just pick
-one of the kernel-related or generally low-level tasks from the bug/task
-trackers on savannah, and make a go at it. You might not be able to finish the
-task in a limited amount of time, but you should at least be able to make a
-detailed analysis of the issue.
-
-*Status*: Andei Barbu was working on
-[SystemTap](http://csclub.uwaterloo.ca/~abarbu/hurd/) for GSoC 2008, but it
-turned out too Linux-specific. He implemented kernel probes, but there is no
-nice frontend yet.
-
-
-## Hurdish TCP/IP Stack
-
-The Hurd presently uses a [[TCP/IP_stack|hurd/translator/pfinet]] based on code from an old Linux version.
-This works, but lacks some rather important features (like PPP/PPPoE), and the
-design is not hurdish at all.
-
-A true hurdish network stack will use a set of stack of [[hurd/translator]] processes,
-each implementing a different protocol layer. This way not only the
-implementation gets more modular, but also the network stack can be used way
-more flexibly. Rather than just having the standard socket interface, plus some
-lower-level hooks for special needs, there are explicit (perhaps
-filesystem-based) interfaces at all the individual levels; special application
-can just directly access the desired layer. All kinds of packet filtering,
-routing, tunneling etc. can be easily achieved by stacking compononts in the
-desired constellation.
-
-While the general architecture is pretty much given by the various network
-layers, it's up to the student to design and implement the various interfaces
-at each layer. This task requires understanding the Hurd philosophy and
-translator programming, as well as good knowledge of TCP/IP.
-
-This is [[GNU_Savannah_task 5469]].
-
-Possible mentors: ?
-
-Exercise: Make some modification to the existing pfinet implementation. (More
-specific suggestions welcome... :-) )
-
-
-## Improved NFS Implementation
-
-The Hurd has both NFS server and client implementations, which work, but not
-very well: File locking doesn't work properly (at least in conjuction with a
-GNU/Linux server), and performance is extremely poor. Part of the problems
-could be owed to the fact that only NFSv2 is supported so far.
-
-This project encompasses implementing NFSv3 support, fixing bugs and
-performance problems -- the goal is to have good NFS support. The work done in
-a previous unfinished GSoC project can serve as a starting point.
-
-Both client and server parts need work, though the client is probably much more
-important for now, and shall be the major focus of this project.
-
-This task, [[GNU_Savannah_task 5497]], has no special prerequisites besides general programming skills, and
-an interest in file systems and network protocols.
-
-Possible mentors: ?
-
-Exercise: Make a go at one of the known issues in the NFS client. You might not
-be able to finish this in the limited amount of time, but you should at least
-be able to make a detailed analysis of the issue.
-
-
-## Fix `libdiskfs` Locking Issues
-
-Nowadays the most often encountered cause of Hurd crashes seems to be lockups
-in the [[hurd/translator/ext2fs]] server. One of these could be traced
-recently, and turned out to be a lock inside [[hurd/libdiskfs]] that was taken
-and not released in some cases. There is reason to believe that there are more
-faulty paths causing these lockups.
-
-The task is systematically checking the [[hurd/libdiskfs]] code for this kind of locking
-issues. To achieve this, some kind of test harness has to be implemented: For
-exmple instrumenting the code to check locking correctness constantly at
-runtime. Or implementing a unit testing framework that explicitely checks
-locking in various code paths. (The latter could serve as a template for
-implementing unit checks in other parts of the Hurd codebase...)
-
-This task requires experience with debugging locking issues in multithreaded
-applications.
-
-Possible mentors: ?
-
-Exercise: Hack libdiskfs to keep count of the number of locks currently held.
-
-
-## Convert Hurd Libraries and Servers to pthreads
-
-The Hurd was originally created at a time when the [pthreads
-standard](http://www.opengroup.org/onlinepubs/009695399/basedefs/pthread.h.html)
-didn't exist yet. Thus all Hurd servers and libraries are using the old
-[[cthreads|hurd/libcthreads]] package that came with [[microkernel/Mach]],
-which is not compatible with [[pthreads|hurd/libpthread]].
-
-Not only does that mean that people hacking on Hurd internals have to deal with
-a non-standard thread package, which nobody is familiar with. Although a
-pthreads implementation for the Hurd was created in the meantime, it's not
-possible to use both cthreads and pthreads in the same program. Consequently,
-pthreads can't presently be used in any Hurd servers -- including translators.
-
-Some work already has been done once on converting the Hurd servers and
-libraries to use pthreads, but that work hasn't been finished. It is available
-as [[GNU_Savannah_task 5487]] and can of course be used to base the new work
-upon.
-
-The goal of this project is to have all the Hurd code use pthreads. Should any
-limitations in the existing pthreads implementation turn up that hinder this
-transition, they will have to be fixed as well.
-
-One possible option is creating a wrapper that implements the cthreads
-interfaces on top of pthreads, to ease the transition -- but it might very well
-turn out that it's easier to just change all the existing code to use pthreads
-directly. This is up to the student. Such a wrapper has been proposed as
-[[GNU_Savannah_task 7895]] and its implementation would be a useful
-starting-point.
-
-This project requires relatively little Hurd-specific knowledge. Experience
-with multithreaded programming in general and pthreads in particular is
-required, though.
-
-Possible mentors: Samuel Thibault (youpi)
-
-Exercise: Take some small piece of code using ctreads and convert it to
-pthreads.
-
-
-## Sound Support
-
-The Hurd presently has no sound support. Fixing this, [[GNU_Savannah_task
-5485]], requires two steps: the first is to port some other kernel's drivers to
-[[GNU_Mach|microkernel/mach/gnumach]] so we can get access to actual sound
-hardware. The second is to implement a userspace server ([[hurd/translator]]),
-that implements an interface on top of the kernel device that can be used by
-applications -- probably OSS or maybe ALSA.
-
-Completing this task requires porting at least one driver (e.g. from Linux) for
-a popular piece of sound hardware, and the basic userspace server. For the
-driver part, previous experience with programming kernel drivers is strongly
-advisable. The userspace part requires some knowledge about programming Hurd
-translators, but shouldn't be too hard.
-
-Once the basic support is working, it's up to the student to use the remaining
-time for porting more drivers, or implementing a more sophisticated userspace
-infrastructure. The latter requires good understanding of the Hurd philosophy,
-to come up with an appropriate design.
-
-Another option would be to evaluate whether a driver that is completely running
-in user-space is feasible. <!-- TODO. Elaborate. -->
-
-Possible mentors: ?
-
-Exercise: Take a newer driver for a device in one of the subsystems we already
-implement (disk or network) from a newer Linux version, or some other operating
-system, and try to port it so that it runs in the existing driver framework.
-The port needn't be elegant or complete; but it would be nice if you could get
-it to work at least partially...
-
-
-## Disk I/O Performance Tuning
-
-The most obvious reason for the Hurd feeling slow compared to mainstream
-systems like GNU/Linux, is very slow harddisk access.
-
-The reason for this slowness is lack and/or bad implementation of common
-optimisation techniques, like scheduling reads and writes to minimalize head
-movement; effective block caching; effective reads/writes to partial blocks;
-reading/writing multiple blocks at once; and read-ahead. The
-[[ext2_filesystem_server|hurd/translator/ext2fs]] might also need some
-optimisations at a higher logical level.
-
-The goal of this project is to analyze the current situation, and implement/fix
-various optimisations, to achieve significantly better disk performance. It
-requires understanding the data flow through the various layers involved in
-disk acces on the Hurd ([[filesystem|hurd/virtual_file_system]],
-[[pager|hurd/libpager]], driver), and general experience with
-optimising complex systems. That said, the killing feature we are definitely
-missing is the read-ahead, and even a very simple implementation would bring
-very big performance speedups.
-
-Possible mentors: ?
-
-Exercise: Make some modification in at least one of the components involved in
-disk I/O. (More specific suggestions welcome... :-) )
-
-
-## VM Tuning
-
-Hurd/[[microkernel/Mach]] presently make very bad use of the available physical memory in the
-system. Some of the problems are inherent to the system design (the kernel
-can't distinguish between important application data and discardable disk
-buffers for example), and can't be fixed without fundamental changes. Other
-problems however are an ordinary lack of optimisation, like extremely crude
-heuristics when to start paging. (See <http://lists.gnu.org/archive/html/bug-hurd/2007-08/msg00034.html> for example.)
-Many parameters are based on assumptions from
-a time when typical machines had like 16 MiB of RAM, or simply have been set to
-arbitrary values and never tuned for actual use.
-
-The goal of this project is to bring the virtual memory management in Hurd/Mach
-closer to that of modern mainstream kernels (Linux, FreeBSD), by comparing the
-implementation to other systems, implementing any worthwhile improvements, and
-general optimisation/tuning. It requires very good understanding of the Mach
-VM, and virtual memory in general.
-
-This project is related to [[GNU_Savannah_task 5489]].
-
-Possible mentors: ?
-
-Exercise: Make some modification to the existing VM code. You could try to find
-a piece of code that can be improved with simple code optimization, for
-example.
-
-
-## `mtab`
-
-In traditional monolithic system, the kernel keeps track of all mounts; the
-information is available through `/proc/mounts` (on Linux at least), and in a
-very similar form in `/etc/mtab`.
-
-The Hurd on the other hand has a totally
-[[decentralized_file_system|hurd/virtual_file_system]]. There is no single
-entity involved in all mounts. Rather, only the parent file system to which a
-mountpoint ([[hurd/translator]]) is attached is involved. As a result, there
-is no central place keeping track of mounts.
-
-As a consequence, there is currently no easy way to obtain a listing of all
-mounted file systems. This also means that commands like `df` can only work on
-explicitely specified mountpoints, instead of displaying the usual listing.
-
-One possible solution to this would be for the translator startup mechanism to
-update the `mtab` on any `mount`/`unmount`, like in traditional systems.
-However, there are same problems with this approach. Most notably: what to do
-with passive translators, i.e., translators that are not presently running, but
-set up to be started automatically whenever the node is accessed? Probably
-these should be counted an among the mounted filesystems; but how to handle the
-`mtab` updates for a translator that is not started yet? Generally, being
-centralized and event-based, this is a pretty unelegant, non-hurdish solution.
-
-A more promising approach is to have `mtab` exported by a special translator,
-which gathers the necessary information on demand. This could work by
-traversing the tree of translators, asking each one for mount points attached
-to it. (Theoretically, it could also be done by just traversing *all* nodes,
-checking each one for attached translators. That would be very inefficient,
-though. Thus a special interface is probably required, that allows asking a
-translator to list mount points only.)
-
-There are also some other issues to keep in mind. Traversing arbitrary
-translators set by other users can be quite dangerous -- and it's probably not
-very interesting anyways what private filesystems some other user has mounted.
-But what about the global `/etc/mtab`? Should it list only root-owned
-filesystems? Or should it create different listings depending on what user
-contacts it?...
-
-That leads to a more generic question: which translators should be actually
-listed? There are different kinds of translators: ranging from traditional
-filesystems ([[disks|hurd/libdiskfs]] and other actual
-[[stores|hurd/translator/storeio]]), but also purely virtual filesystems like
-[[hurd/translator/ftpfs]] or [[hurd/translator/unionfs]], and even things that
-have very little to do with a traditional filesystem, like a
-[[gzip_translator|hurd/translator/storeio]],
-[[mbox_translator|hurd/translator/mboxfs]],
-[[xml_translator|hurd/translator/xmlfs]], or various device file translators...
-Listing all of these in `/etc/mtab` would be pretty pointless, so some kind of
-classification mechanism is necessary. By default it probably should list only
-translators that claim to be real filesystems, though alternative views with
-other filtering rules might be desirable.
-
-After taking decisions on the outstanding design questions, the student will
-implement both the actual [[mtab_translator|hurd/translator/mtabfs]], and the
-necessery interface(s) for gathering the data. It requires getting a good
-understanding of the translator mechanism and Hurd interfaces in general.
-
-Possible mentors: Olaf Buddenhagen (antrik)
-
-Exercise: Create a simple translator using libnetfs, that only allows creating
-directories and attaching other translators.
-
-
-## GNU Mach Code Cleanup
-
-Although there are some attempts to move to a more modern microkernel
-alltogether, the current Hurd implementation is based on
-[[GNU_Mach|microkernel/mach/gnumach]], which is only a slightly modified
-variant of the original CMU [[microkernel/Mach]].
-
-Unfortunately, Mach was created about two decades ago, and is in turn based on
-even older BSD code. Parts of the BSD kernel -- file systems, [[UNIX]] [[mechanism]]s
-like processes and signals, etc. -- were ripped out (to be implemented in
-[[userspace_servers|hurd/translator]] instead); while other mechanisms were
-added to allow implementing stuff in userspace.
-([[Pager_interface|microkernel/mach/external_pager_mechanism]],
-[[microkernel/mach/IPC]], etc.)
-
-Also, Mach being a research project, many things were tried, adding lots of
-optional features not really needed.
-
-The result of all this is that the current code base is in a pretty bad shape.
-It's rather hard to make modifications -- to make better use of modern hardware
-for example, or even to fix bugs. The goal of this project is to improve the
-situation.
-
-The task starts out easy, with fixing compiler warnings. Later it moves on to
-more tricky things: removing dead or unneeded code paths; restructuring code
-for readability and maintainability.
-
-This task requires good knowledge of C, and experience with working on a large
-existing code base. Previous kernel hacking experience is an advantage, but
-not really necessary.
-
-Possible mentors: Samuel Thibault (youpi)
-
-Exercise: Create a few simple patches that fix some of the compiler warnings,
-rework a piece of ugly code etc.
-
-
-## `xmlfs`
-
-Hurd [[translators|hurd/translator]] allow presenting underlying data in a
-different format. This is a very powerful ability: it allows using standard
-tools on all kinds of data, and combining existing components in new ways, once
-you have the necessary translators.
-
-A typical example for such a translator would be xmlfs: a translator that
-presents the contents of an underlying XML file in the form of a directory
-tree, so it can be studied and edited with standard filesystem tools, or using
-a graphical file manager, or to easily extract data from an XML file in a
-script etc.
-
-The exported directory tree should represent the DOM structure of the document,
-or implement XPath, or both, or some combination thereof (perhaps XPath could
-be implemented as a second translator working on top of the DOM one) --
-whatever works well, while sticking to XML standards as much as possible.
-
-Ideally, the translation should be reversible, so that another, complementary
-translator applied on the expanded directory tree would yield the original XML
-file again; and also the other way round, applying the complementary translator
-on top of some directory tree and xmlfs on top of that would yield the original
-directory again. However, with the different semantics of directory trees and
-XML files, it might not be possible to create such a universal mapping. Thus
-it is a desirable goal, but not a strict requirement.
-
-The goal of this project is to create a fully usable XML translator, that
-allows both reading and writing any XML file. Implementing the complementary
-translator also would be nice if time permits, but is not mandatory part of the
-task.
-
-The [[existing_partial_(read-only)_xmlfs_implementation|hurd/translator/xmlfs]]
-can serve as a starting point.
-
-This task requires pretty good designing skills. Good knowledge of XML is also
-necessary. Learning translator programming will obviously be necessary to
-complete the task.
-
-Possible mentors: Olaf Buddenhagen (antrik)
-
-Exercise: Make some modification to the existing xmlfs translator, and write a
-shell script that uses xmlfs to extract some interesting information from an
-.odt document. (More specific suggestions welcome... :-) )
-
-
-## Allow Using `unionfs` Early at Boot
-
-In [[UNIX]] systems, traditionally most software is installed in a common directory
-hierachy, where files from various packages live beside each other, grouped by
-function: user-invokable executables in `/bin`, system-wide configuration files
-in `/etc`, architecture specific static files in `/lib`, variable data in
-`/var`, and so on. To allow clean installation, deinstallation, and upgrade of
-software packages, GNU/Linux distributions usually come with a package manager,
-which keeps track of all files upon installation/removal in some kind of
-central database.
-
-An alternative approach is the one implemented by GNU Stow: each package is
-actually installed in a private directory tree. The actual standard directory
-structure is then created by collecting the individual files from all the
-packages, and presenting them in the common `/bin`, `/lib`, etc. locations.
-
-While the normal Stow package (for traditional UNIX systems) uses symlinks to
-the actual files, updated on installation/deinstallation events, the Hurd
-[[hurd/translator]] mechanism allows a much more elegant solution:
-[[hurd/translator/stowfs]] (which is actually a special mode of
-[[hurd/translator/unionfs]]) creates virtual directories on the fly, composed
-of all the files from the individual package directories.
-
-The problem with this approach is that unionfs presently can be launched only
-once the system is booted up, meaning the virtual directories are not available
-at boot time. But the boot process itself already needs access to files from
-various packages. So to make this design actually usable, it is necessary to
-come up with a way to launch unionfs very early at boot time, along with the
-root filesystem.
-
-Completing this task will require gaining a very good understanding of the Hurd
-boot process and other parts of the design. It requires some design skills
-also to come up with a working mechanism.
-
-Possible mentors: ?
-
-Exercise: Try to write a dummy server that is started instead of ext2fs on
-system boot, and starts the actual ext2fs in turn.
-
-
-## Fix `tmpfs`
-
-In some situations it is desirable to have a file system that is not backed by
-actual disk storage, but only by anonymous memory, i.e. lives in the RAM (and
-possibly swap space).
-
-A simplistic way to implement such a memory filesystem is literally creating a
-ramdisk, i.e. simply allocating a big chunck of RAM (called a memory store in
-Hurd terminology), and create a normal filesystem like ext2 on that. However,
-this is not very efficient, and not very convenient either (the filesystem
-needs to be recreated each time the ramdisk is invoked). A nicer solution is
-having a real [[hurd/translator/tmpfs]], which creates all filesystem
-structures directly in RAM, allocating memory on demand.
-
-The Hurd has had such a tmpfs for a long time. However, the existing
-implementation doesn't work anymore -- it got broken by changes in other parts
-of the Hurd design.
-
-There are several issues. The most serious known problem seems to be that for
-technical reasons it receives [[microkernel/mach/RPC]]s from two different
-sources on one [[microkernel/mach/port]], and gets mixed up with them. Fixing
-this is non-trivial, and requires a good understanding of the involved
-mechanisms.
-
-The goal of this project to get a fully working, full featured tmpfs
-implementation. It requires digging into some parts of the Hurd, incuding the
-[[pager_interface|hurd/libpager]] and [[hurd/translator]] programming. This
-task probably doesn't require any design work, only good debugging skills.
-
-Possible mentors: ?
-
-Exercise: Take a go at one of the existing issues in tmpfs. You may not be able
-to finish this in the limited amount of time, but you should at least be able
-to do a detailed analysis of the problem.
-
-
-## Lexical `..` Resolution
-
-For historical reasons, [[UNIX]] filesystems have a real (hard) `..` link from each
-directory pointing to its parent. However, this is problematic, because the
-meaning of "parent" really depends on context. If you have a symlink for
-example, you can reach a certain node in the filesystem by a different path. If
-you go to `..` from there, UNIX will traditionally take you to the hard-coded
-parent node -- but this is usually not what you want. Usually you want to go
-back to the logical parent from which you came. That is called "lexical"
-resolution.
-
-Some application already use lexical resolution internally for that reason. It
-is generally agreed that many problems could be avoided if the standard
-filesystem lookup calls used lexical resolution as well. The compatibility
-problems probably would be negligable.
-
-The goal of this project is to modify the filename lookup mechanism in the Hurd
-to use lexical resolution, and to check that the system is still fully
-functional afterwards. This task requires understanding the filename resolution
-mechanism. It's probably a relatively easy task.
-
-See also [[GNU_Savannah_bug 17133]].
-
-Possible mentors: ?
-
-Exercise: Make some modification to the name lookup mechanism. (More specific
-suggestions welcome... :-) )
-
-
-## Secure `chroot` implementation
-
-As the Hurd attempts to be (almost) fully [[UNIX]]-compatible, it also implements a
-`chroot()` system call. However, the current implementation is not really
-good, as it allows easily escaping the `chroot`, for example by use of
-[[passive_translators|hurd/translator]].
-
-Many solutions have been suggested for this problem -- ranging from simple
-workaround changing the behaviour of passive translators in a `chroot`;
-changing the context in which passive translators are exectuted; changing the
-interpretation of filenames in a chroot; to reworking the whole passive
-translator mechanism. Some involving a completely different approch to
-`chroot` implementation, using a proxy instead of a special system call in the
-filesystem servers.
-
-The task is to pick and implement one approach for fixing chroot.
-
-This task is pretty heavy: it requires a very good understanding of file name
-lookup and the translator mechanism, as well as of security concerns in general
--- the student must prove that he really understands security implications of
-the UNIX namespace approach, and how they are affected by the introduction of
-new mechanisms. (Translators.) More important than the acualy code is the
-documentation of what he did: he must be able to defend why he chose a certain
-approach, and explain why he believes this approach really secure.
-
-Possible mentors: ?
-
-Exercise: Make some modification to the chroot mechanism. (More specific
-suggestions welcome :-) )
-
-
-## Hurdish Package Manager for the GNU System
-
-Most GNU/Linux systems use pretty sophisticated package managers, to ease the
-management of installed software. These keep track of all installed files, and
-various kinds of other necessary information, in special databases. On package
-installation, deinstallation, and upgrade, scripts are used that make all kinds
-of modifications to other parts of the system, making sure the packages get
-properly integrated.
-
-This approach creates various problems. For one, *all* management has to be
-done with the distribution package management tools, or otherwise they would
-loose track of the system state. This is reinforced by the fact that the state
-information is stored in special databases, that only the special package
-management tools can work with.
-
-Also, as changes to various parts of the system are made on certain events
-(installation/deinstallation/update), managing the various possible state
-transitions becomes very complex and bug-prone.
-
-For the official (Hurd-based) GNU system, a different approach is intended:
-making use of Hurd [[translators|hurd/translator]] -- more specifically their
-ability to present existing data in a different form -- the whole system state
-will be created on the fly, directly from the information provided by the
-individual packages. The visible system state is always a reflection of the
-sum of packages installed at a certain moment; it doesn't matter how this state
-came about. There are no global databases of any kind. (Some things might
-require caching for better performance, but this must happen transparently.)
-
-The core of this approach is formed by [[hurd/translator/stowfs]], which
-creates a traditional unix directory structure from all the files in the
-individual package directories. But this only handles the lowest level of
-package management. Additional mechanisms are necessary to handle stuff like
-dependencies on other packages.
-
-The goal of this task is to create these mechanisms.
-
-Possible mentors: Ben Asselstine (bing)
-
-Exercise: Write a translator that observes a directory tree using
-dir_notify_changes(), and presents a file with a log of changes.
-
-
-## Port the Debian Installer to the Hurd
-
-The primary means of distributing the Hurd is through Debian GNU/Hurd.
-However, the installation CDs presently use an ancient, non-native installer.
-The situation could be much improved by making sure that the newer *Debian
-Installer* works on the Hurd.
-
-Some preliminary work has been done, see
-<http://wiki.debian.org/DebianInstaller/Hurd>.
-
-The goal is to have the Debian Installer fully working on the Hurd. It
-requires relatively little Hurd-specific knowledge.
-
-Possible mentors: Samuel Thibault (youpi)
-
-Exercise: Try to get one piece of the installer running on Hurd.
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+We offer a wide range of possible projects to choose from. If you have an idea
+not listed here, we'd love to hear about it!
+
+In either case, we encourage you to contact us (on [[IRC]] and/or our developer
+[[mailing lists]]), so we can discuss your idea, or help you pick a suitable
+task -- we will gladly explain the tasks in more detail, if the descriptions
+are not clear enough.
+
+In fact, we suggest you discuss your choice with us even if you have no trouble
+finding a task that suits you: as explained in the introduction section of the
+[[student_application_form]], we ask all students to get into regular
+communication with us for the application to be considered complete. Talking
+about your project choice is a good start :-)
+
+(We strongly suggest that you generally take a look at the
+[[student_application_form]] right now -- the sooner you know what we expect,
+the better you can cater to it :-) )
+
+Many of the project descriptions suggest some "exercise". The reason is that
+for the application to be complete, we require you to make a change to the Hurd
+code, and send us the resulting patch. (This is also explained in the
+[[student_application_form]].) If possible, the change should make some
+improvement to the code you will be working on during the summer, or to some
+related code.
+
+The "exercise" bit in the project description is trying to give you some ideas
+what kind of change this could be. In most cases it is quite obvious, though:
+Try to find something to improve in the relevant code, by looking at known
+issues in the [Savannah bug tracker](http://savannah.gnu.org/bugs/?group=hurd);
+by running the code and testing stuff; and by looking through the code. If you
+don't find anything, try with some related code -- if you task involves
+translator programming, make some improvement to an existing translator; if it
+involves glibc hacking, make an improvement to glibc; if it involves driver
+hacking, make an improvement to the driver framework; and so on... Makes sense,
+doesn't it? :-)
+
+Sometimes it's hard to come up with a useful improvement to the code in
+question, that isn't too complicated for the purposes of the application. In
+this case, we need to find a good alternative. You could for example make an
+improvement to some Hurd code that is not directly related to your project:
+this way you won't get familiar with working on the code you will actually need
+for the task, but at least you can show that you are able to work with the Hurd
+code in general.
+
+Another possible alternative would be making some change to the code in
+question, that isn't really a useful improvement, while still making sense in
+some way -- this could suffice to prove that you are able to work with the
+code.
+
+Don't despair if you can't come up with anything suitable by yourself. Contact
+us, and we will think of something together :-)
+
+In either case, we strongly suggest that you talk to us about the change you
+want to make up front, to be sure that it is something that will get our
+approval -- especially if the idea is not directly taken from the project
+description.
+
+Also, don't let this whole patch stuff discourage you from applying! As
+explained in the [[student_application_form]], it's not a problem if you do not
+yet have all the necessary knowledge to do this alone -- we don't expect that.
+After all, the purpose of GSoC is to introduce you to free software development
+:-) We only want to see that you are able to obtain the necessary knowledge
+before the end of the application process, with our help -- contact us, and we
+will assist you as well as we can.
+
+See also the list of [Hurd-related X.org project ideas](http://wiki.x.org/wiki/Hurd_Porting).
+
+[[!inline pages="community/gsoc/project_ideas/language_bindings" show=0 feeds=no actions=yes]]
+[[!inline pages="community/gsoc/project_ideas/virtualization" show=0 feeds=no actions=yes]]
+[[!inline pages="community/gsoc/project_ideas/file_locking" show=0 feeds=no actions=yes]]
+[[!inline pages="community/gsoc/project_ideas/server_overriding" show=0 feeds=no actions=yes]]
+[[!inline pages="community/gsoc/project_ideas/tcp_ip_stack" show=0 feeds=no actions=yes]]
+[[!inline pages="community/gsoc/project_ideas/nfs" show=0 feeds=no actions=yes]]
+[[!inline pages="community/gsoc/project_ideas/libdiskfs_locking" show=0 feeds=no actions=yes]]
+[[!inline pages="community/gsoc/project_ideas/pthreads" show=0 feeds=no actions=yes]]
+[[!inline pages="community/gsoc/project_ideas/sound" show=0 feeds=no actions=yes]]
+[[!inline pages="community/gsoc/project_ideas/disk_io_performance" show=0 feeds=no actions=yes]]
+[[!inline pages="community/gsoc/project_ideas/vm_tuning" show=0 feeds=no actions=yes]]
+[[!inline pages="community/gsoc/project_ideas/mtab" show=0 feeds=no actions=yes]]
+[[!inline pages="community/gsoc/project_ideas/gnumach_cleanup" show=0 feeds=no actions=yes]]
+[[!inline pages="community/gsoc/project_ideas/xmlfs" show=0 feeds=no actions=yes]]
+[[!inline pages="community/gsoc/project_ideas/unionfs_boot" show=0 feeds=no actions=yes]]
+[[!inline pages="community/gsoc/project_ideas/tmpfs" show=0 feeds=no actions=yes]]
+[[!inline pages="community/gsoc/project_ideas/lexical_dot-dot" show=0 feeds=no actions=yes]]
+[[!inline pages="community/gsoc/project_ideas/secure_chroot" show=0 feeds=no actions=yes]]
+[[!inline pages="community/gsoc/project_ideas/package_manager" show=0 feeds=no actions=yes]]
+[[!inline pages="community/gsoc/project_ideas/debian_installer" show=0 feeds=no actions=yes]]
+[[!inline pages="community/gsoc/project_ideas/download_backends" show=0 feeds=no actions=yes]]
+[[!inline pages="community/gsoc/project_ideas/libgtop" show=0 feeds=no actions=yes]]
+[[!inline pages="community/gsoc/project_ideas/maxpath" show=0 feeds=no actions=yes]]
+[[!inline pages="community/gsoc/project_ideas/gnat" show=0 feeds=no actions=yes]]
+[[!inline pages="community/gsoc/project_ideas/hardware_libs" show=0 feeds=no actions=yes]]
+[[!inline pages="community/gsoc/project_ideas/cdparanoia" show=0 feeds=no actions=yes]]
+[[!inline pages="community/gsoc/project_ideas/perl_python" show=0 feeds=no actions=yes]]
+[[!inline pages="community/gsoc/project_ideas/testsuites" show=0 feeds=no actions=yes]]
+[[!inline pages="community/gsoc/project_ideas/libcap" show=0 feeds=no actions=yes]]
+[[!inline pages="community/gsoc/project_ideas/xattr" show=0 feeds=no actions=yes]]
+[[!inline pages="community/gsoc/project_ideas/valgrind" show=0 feeds=no actions=yes]]
diff --git a/community/gsoc/project_ideas/cdparanoia.mdwn b/community/gsoc/project_ideas/cdparanoia.mdwn
new file mode 100644
index 00000000..a92329fe
--- /dev/null
+++ b/community/gsoc/project_ideas/cdparanoia.mdwn
@@ -0,0 +1,30 @@
+[[!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="Implement CD Audio Grabbing"]]
+
+The Hurd presently has only support for CD-ROMs, but not for audio extraction
+("grabbing"). As a result, cdparanoia (and other extraction
+libraries/utilities) are not available; and many other packages depending on
+these can't be built in Debian GNU/Hurd either.
+
+Adding support for audio extraction shouldn't be too hard. It requires
+implementing a number of additional ioctl()s, generating the appropriate ATAPI
+commands.
+
+The goal of this task is fully working cdparanoia in Debian GNU/Hurd. It will
+require digging a bit into Hurd internals and ATAPI commands, but should be
+quite doable without any previous knowledge about either.
+
+Possible mentors: Samuel Thibault (youpi)
+
+Exercise: Look at the implementation of the existing ioctl()s, and try to find
+something that could be easily added/improved. If you don't see anything
+obvious, talk to us about a different exercise task.
diff --git a/community/gsoc/project_ideas/debian_installer.mdwn b/community/gsoc/project_ideas/debian_installer.mdwn
new file mode 100644
index 00000000..43682e8b
--- /dev/null
+++ b/community/gsoc/project_ideas/debian_installer.mdwn
@@ -0,0 +1,41 @@
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!meta title="Port the Debian Installer to the Hurd"]]
+
+The primary means of distributing the Hurd is through Debian GNU/Hurd.
+However, the installation CDs presently use an ancient, non-native installer.
+The situation could be much improved by making sure that the newer *Debian
+Installer* works on the Hurd.
+
+Some preliminary work has been done, see
+<http://wiki.debian.org/DebianInstaller/Hurd>.
+
+The goal is to have the Debian Installer fully working on the Hurd. It
+requires relatively little Hurd-specific knowledge.
+
+A lot of the "non-Linux support" part of the project has already been done thanks to a previous GSoC, so at least no ground reason should bar the project. A lot of the required udebs are already in Debian or are pending upload, so that building an image and booting it does already work. A preliminary list of what remains is
+
+ * Add initrd support to GNU Mach, unless youpi does it before :) This should not be very complicated by re-using the iopl driver code.
+ * hurdify genext2fs to handle 4096 block size by default (see bug #562999) and support translator entries.
+ * Port busybox. This needs to be synchronized with kfreebsd people, who have probably already done some work, but that seemingly still hasn't been merged. In the meanwhile, youpi has a version with most of it disabled so a d-i image can actually be built.
+ * Port keyboard-setup to configure the xkb driver of the Hurd console
+
+As a starting point to get a grasp at how the debian installer is built, students might wish to look at the current Debian installer source and build process on Linux:
+
+ * svn co svn://svn.debian.org/d-i/trunk/installer/
+ * cd installer/build
+ * make build_monolithic
+
+The same can be done on hurd-i386 but a few non-uploaded packages are needed, see http://people.debian.org/~sthibault/hurd-i386/README-d-i
+
+Possible mentors: Samuel Thibault (youpi)
+
+Exercise: Fix a couple of Hurd issues in busybox.
diff --git a/community/gsoc/project_ideas/disk_io_performance.mdwn b/community/gsoc/project_ideas/disk_io_performance.mdwn
new file mode 100644
index 00000000..b6c857b0
--- /dev/null
+++ b/community/gsoc/project_ideas/disk_io_performance.mdwn
@@ -0,0 +1,36 @@
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!meta title="Disk I/O Performance Tuning"]]
+
+The most obvious reason for the Hurd feeling slow compared to mainstream
+systems like GNU/Linux, is very slow hard disk access.
+
+The reason for this slowness is lack and/or bad implementation of common
+optimization techniques, like scheduling reads and writes to minimize head
+movement; effective block caching; effective reads/writes to partial blocks;
+reading/writing multiple blocks at once; and read-ahead. The
+[[ext2_filesystem_server|hurd/translator/ext2fs]] might also need some
+optimizations at a higher logical level.
+
+The goal of this project is to analyze the current situation, and implement/fix
+various optimizations, to achieve significantly better disk performance. It
+requires understanding the data flow through the various layers involved in
+disk access on the Hurd ([[filesystem|hurd/virtual_file_system]],
+[[pager|hurd/libpager]], driver), and general experience with
+optimizing complex systems. That said, the killing feature we are definitely
+missing is the read-ahead, and even a very simple implementation would bring
+very big performance speedups.
+
+Possible mentors: Samuel Thibault (youpi)
+
+Exercise: Look through all the code involved in disk I/O, and try something
+easy to improve. It's quite likely though that you will find nothing obvious --
+in this case, please contact us about a different exercise task.
diff --git a/community/gsoc/project_ideas/download_backends.mdwn b/community/gsoc/project_ideas/download_backends.mdwn
new file mode 100644
index 00000000..f794e814
--- /dev/null
+++ b/community/gsoc/project_ideas/download_backends.mdwn
@@ -0,0 +1,47 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!meta title="Use Internet Protocol Translators (ftpfs etc.) as Backends for Other Programs"]]
+
+The Hurd design facilitates splitting up large applications into independent,
+generic components, which can be easily combined in different contexts, by
+moving common functionality into separate Hurd servers (translators),
+accessible trough filesystem interfaces and/or specialized RPC interfaces.
+
+Download protocols like FTP, HTTP, BitTorrent etc. are very good candidates for
+this kind of modularization: a program could simply use the download
+functionality by accessing FTP, HTTP etc. translators.
+
+There is already an ftpfs translator in the Hurd tree, as well as an [httpfs
+translator on hurdextras](http://www.nongnu.org/hurdextras/#httpfs); however,
+these are only suitable for very simple use cases: they just provide the actual
+file contents downloaded from the URL, but no additional status information
+that are necessary for interactive use. (Progress indication, error codes, HTTP
+redirects etc.)
+
+A new interface providing all this additional information (either as an
+extension to the existing translators, or as distinct translators) is required
+to make such translators usable as backends for programs like apt-get for
+example.
+
+The goal of this project is to design a suitable interface, implement it for at
+least one download protocol, and adapt apt-get (or some other program) to use
+this as a backend.
+
+This task requires some design skills and some knowledge of internet protocols,
+to create a suitable interface. Translator programming knowledge will have to
+be obtained while implementing it.
+
+It is not an easy task, but it shouldn't pose any really hard problems either.
+
+Possible mentors: Olaf Buddenhagen (antrik)
+
+Exercise: Make some improvement to one of the existing download translators --
+httpfs in particular is known to be buggy.
diff --git a/community/gsoc/project_ideas/driver_glue_code.mdwn b/community/gsoc/project_ideas/driver_glue_code.mdwn
new file mode 100644
index 00000000..9c063e9f
--- /dev/null
+++ b/community/gsoc/project_ideas/driver_glue_code.mdwn
@@ -0,0 +1,49 @@
+[[!meta copyright="Copyright © 2008, 2009, 2010 Free Software Foundation,
+Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!meta title="New Driver Glue Code"]]
+
+Although a driver framework in user space would be desirable, presently the Hurd
+uses kernel drivers in the microkernel,
+[[GNU_Mach|microkernel/mach/gnumach]]. (And changing this would be far beyond a
+GSoC project...)
+
+The problem is that the drivers in GNU Mach are presently old Linux drivers
+(mostly from 2.0.x) accessed through a glue code layer. This is not an ideal
+solution, but works quite OK, except that the drivers are very old. The goal of
+this project is to redo the glue code, so we can use drivers from current Linux
+versions, or from one of the free BSD variants.
+
+While it would be certainly possible to create custom glue code again, a more
+sustainable and probably also easier approach is to use
+[[DDE]] instead -- it already
+does the hard work of providing an environment where the foreign drivers can
+run, and has the additional advantage of being externally maintained.
+
+This is a doable, but pretty involved project. Previous experience with driver
+programming probably is a must. (No Hurd-specific knowledge is required,
+though.)
+
+This is [[!GNU_Savannah_task 5488]].
+[[open issues/user-space device drivers]].
+[[open issues/device drivers and io systems]].
+
+
+Possible mentors: Samuel Thibault (youpi)
+
+Exercise: Take a driver for some newer piece of hardware (e.g. Intel e1000
+ethernet) from a recent system, and try to port it to run in the existing
+driver framework in GNU Mach. Completing the port might be too involved for the
+exercise; but it's pretty likely that you will find something else to improve
+in the glue code while working on this...
+
+*Status*: [[Zheng Da|zhengda]] is working on DDE, and has mostly completed the
+initial port.
diff --git a/community/gsoc/project_ideas/dtrace.mdwn b/community/gsoc/project_ideas/dtrace.mdwn
new file mode 100644
index 00000000..4a46cf38
--- /dev/null
+++ b/community/gsoc/project_ideas/dtrace.mdwn
@@ -0,0 +1,46 @@
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!meta title="dtrace Support"]]
+
+One of the main problems of the current Hurd implementation is very poor
+performance. While we have a bunch of ideas what could cause the performance
+problems, these are mostly just guesses. Better understanding what really
+causes bad performance is necessary to improve the situation.
+
+For that, we need tools for performance measurements. While all kinds of more
+or less specific profiling tools could be conceived, the most promising and
+generic approach seems to be a framework for logging certain events in the
+running system (both in the microkernel and in the Hurd servers). This would
+allow checking how much time is spent in certain modules, how often certain
+situations occur, how things interact, etc. It could also prove helpful in
+debugging some issues that are otherwise hard to find because of complex
+interactions.
+
+The most popular framework for that is Sun's dtrace; but there might be others.
+The student has to evaluate the existing options, deciding which makes most
+sense for the Hurd; and implement that one. (Apple's implementation of dtrace
+in their Mach-based kernel might be helpful here...)
+
+This project requires ability to evaluate possible solutions, and experience
+with integrating existing components as well as low-level programming.
+
+Possible mentors: Samuel Thibault (youpi)
+
+Exercise: In lack of a good exercise directly related to this task, just pick
+one of the kernel-related or generally low-level tasks from the bug/task
+trackers on savannah, and make a go at it. You might not be able to finish the
+task in a limited amount of time, but you should at least be able to make a
+detailed analysis of the issue.
+
+*Status*: Andei Barbu was working on
+[SystemTap](http://csclub.uwaterloo.ca/~abarbu/hurd/) for GSoC 2008, but it
+turned out too Linux-specific. He implemented kernel probes, but there is no
+nice frontend yet.
diff --git a/community/gsoc/project_ideas/file_locking.mdwn b/community/gsoc/project_ideas/file_locking.mdwn
new file mode 100644
index 00000000..0159b091
--- /dev/null
+++ b/community/gsoc/project_ideas/file_locking.mdwn
@@ -0,0 +1,38 @@
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!meta title="Fix and Complete File Locking Support"]]
+
+Over the years, [[UNIX]] has acquired a host of different file locking mechanisms.
+Some of them work on the Hurd, while others are buggy or only partially
+implemented. This breaks many applications.
+
+The goal is to make all file locking mechanisms work properly. This requires
+finding all existing shortcomings (through systematic testing and/or checking
+for known issues in the bug tracker and mailing list archives), and fixing
+them. The biggest missing feature is record locking, i.e. the lockf variant,
+which needs a complete implementation.
+
+This task will require digging into parts of the code to understand how file
+locking works on the Hurd. Only general programming skills are required.
+
+Possible mentors: Samuel Thibault (youpi)
+
+Exercise: Find one of the existing issues, either by looking at the task/bug
+trackers on savannah, or by trying things out yourself; and take a go at it.
+Note though that most of these issues are probably not trivial -- it's quite
+likely that you won't be able to actually fix any of them in the time available
+during the application process. However, you might be able to spot something
+else that could be improved while looking into this.
+
+If after trying for a while you haven't found anything easy enough to improve
+in the locking-related code, talk to us about some alternative exercise task.
+Perhaps you actually find something you could do while looking through the bug
+tracker or trying stuff yourself in search of locking issues :-)
diff --git a/community/gsoc/project_ideas/gnat.mdwn b/community/gsoc/project_ideas/gnat.mdwn
new file mode 100644
index 00000000..97a4a552
--- /dev/null
+++ b/community/gsoc/project_ideas/gnat.mdwn
@@ -0,0 +1,24 @@
+[[!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="Porting GNAT"]]
+
+The GNU Ada Translator (GNAT) isn't available for the Hurd so far. There are
+also a number of other Debian packages depending on GNAT, and thus not
+buildable on the Hurd.
+
+The goal of this project is getting GNAT fully working in Debian GNU/Hurd. It
+requires implementing some explicitly system-specific stuff in GNAT, and maybe
+fixing a few other problems. Good knowledge of Ada is a must; some Hurd
+knowledge will have to be acquired while working on the project.
+
+Possible mentors: Samuel Thibault (youpi)
+
+Exercise: Fix one of the problems preventing GNAT from working on the Hurd.
diff --git a/community/gsoc/project_ideas/gnumach_cleanup.mdwn b/community/gsoc/project_ideas/gnumach_cleanup.mdwn
new file mode 100644
index 00000000..4aef0d1b
--- /dev/null
+++ b/community/gsoc/project_ideas/gnumach_cleanup.mdwn
@@ -0,0 +1,46 @@
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!meta title="GNU Mach Code Cleanup"]]
+
+Although there are some attempts to move to a more modern microkernel
+altogether, the current Hurd implementation is based on
+[[GNU_Mach|microkernel/mach/gnumach]], which is only a slightly modified
+variant of the original CMU [[microkernel/Mach]].
+
+Unfortunately, Mach was created about two decades ago, and is in turn based on
+even older BSD code. Parts of the BSD kernel -- file systems, [[UNIX]] [[mechanism]]s
+like processes and signals, etc. -- were ripped out (to be implemented in
+[[userspace_servers|hurd/translator]] instead); while other mechanisms were
+added to allow implementing stuff in user space.
+([[Pager_interface|microkernel/mach/external_pager_mechanism]],
+[[microkernel/mach/IPC]], etc.)
+
+Also, Mach being a research project, many things were tried, adding lots of
+optional features not really needed.
+
+The result of all this is that the current code base is in a pretty bad shape.
+It's rather hard to make modifications -- to make better use of modern hardware
+for example, or even to fix bugs. The goal of this project is to improve the
+situation.
+
+There are various things you can do here: Fixing compiler warnings; removing
+dead or unneeded code paths; restructuring code for readability and
+maintainability etc. -- a glance at the source code should quickly give you
+some ideas.
+
+This task requires good knowledge of C, and experience with working on a large
+existing code base. Previous kernel hacking experience is an advantage, but
+not really necessary.
+
+Possible mentors: Samuel Thibault (youpi)
+
+Exercise: You should have no trouble finding something to improve when looking
+at the gnumach code, or even just at compiler warnings.
diff --git a/community/gsoc/project_ideas/hardware_libs.mdwn b/community/gsoc/project_ideas/hardware_libs.mdwn
new file mode 100644
index 00000000..c30505cb
--- /dev/null
+++ b/community/gsoc/project_ideas/hardware_libs.mdwn
@@ -0,0 +1,42 @@
+[[!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="Stub Implementations of Hardware Specific Libraries"]]
+
+Many programs use special libraries to access certain hardware devices,
+like libusb, libbluetooth, libraw1394, libiw-dev (though there already is a
+wireless-tools-gnumach package), etc.
+
+The Hurd presently doesn't support these devices. Nevertheless, all of these
+programs could still be built -- and most of them would indeed be useful --
+without actual support of these hardware devices, kdebase for instance. However,
+as the libraries are presently not available for Hurd, the programs can't be
+easily built in Debian GNU/Hurd due to missing dependencies.
+
+This could be avoided by providing dummy libraries, which the programs could
+link against, but which wouldn't actually do any hardware access: instead, they
+would simply return appropriate error codes, reporting that no devices were
+found.
+
+There are two possible approaches for providing such stub libraries: Either
+implement replacement libraries providing the same API as the real ones; or
+implement dummy backends for the Hurd in the proper libraries. Which approach
+to prefer probably depends on the structure of the various libraries.
+
+The goal of this project is to create working dummy libraries/backends for the
+mentioned devices, and get them into Debian GNU/Hurd. It shouldn't require any
+special previous knowledge, though some experience with build systems would be
+helpful. Finishing this task will probably require learning a bit about the
+hardware devices in question, and about Debian packaging.
+
+Possible mentors: Samuel Thibault (youpi)
+
+Exercise: Get one of the libraries to compile on Debian GNU/Hurd. It doesn't
+need to report reasonable error codes yet -- just make it build at all for now.
diff --git a/community/gsoc/project_ideas/language_bindings.mdwn b/community/gsoc/project_ideas/language_bindings.mdwn
new file mode 100644
index 00000000..a27b0d30
--- /dev/null
+++ b/community/gsoc/project_ideas/language_bindings.mdwn
@@ -0,0 +1,67 @@
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!meta title="Bindings to Other Programming Languages"]]
+
+The main idea of the Hurd design is giving users the ability to easily
+modify/extend the system's functionality ([[extensible_system|extensibility]]).
+This is done by creating [[filesystem_translators|hurd/translator]] and other
+kinds of Hurd servers.
+
+However, in practice this is not as easy as it should, because creating
+translators and other servers is quite involved -- the interfaces for doing
+that are not exactly simple, and available only for C programs. Being able to
+easily create simple translators in RAD languages is highly desirable, to
+really be able to reap the advantages of the Hurd architecture.
+
+Originally Lisp was meant to be the second system language besides C in the GNU
+system; but that doesn't mean we are bound to Lisp. Bindings for any popular
+high-level language, that helps quickly creating simple programs, are highly
+welcome.
+
+Several approaches are possible when creating such bindings. One way is simply
+to provide wrappers to all the available C libraries ([[hurd/libtrivfs]], [[hurd/libnetfs]]
+etc.). While this is easy (it requires relatively little consideration), it may
+not be the optimal solution. It is preferable to hook in at a lower level, thus
+being able to create interfaces that are specially adapted to make good use of
+the features available in the respective language.
+
+These more specialized bindings could hook in at some of the lower level
+library interfaces ([[hurd/libports]], [[hurd/glibc]], etc.); use the
+[[microkernel/mach/MIG]]-provided [[microkernel/mach/RPC]] stubs directly; or
+even create native stubs directly from the interface definitions. The
+[[lisp_bindings_created_by_Flavio_Cruz|flaviocruz]] in last year's GSoC mostly
+use the latter approach, and can serve as a good example.
+
+There is another possible reason for preferring lower-level bindings:
+Presently, the Hurd server libraries use the cthreads threading library, which
+predates the pthread standard prevalent today. There is a pthread library for
+the Hurd as well, but it's not possible to use both cthreads and pthreads in
+the same executable. Thus, until
+[[porting_the_Hurd_libraries_to_pthreads|community/gsoc/project_ideas/pthreads]]
+is finished, implementing bindings for any language that uses pthreads (in the
+runtime environment or the actual programs) is only possible when not using the
+standard Hurd server libraries at all -- i.e. when binding at MIG stub level or
+interface definition level.
+
+The task is to create easy to use Hurd bindings for a language of the student's
+choice, and some example servers to prove that it works well in practice. This
+project will require gaining a very good understanding of the various Hurd
+interfaces. Skills in designing nice programming interfaces are a must.
+
+Anatoly A. Kazantsev has started working on [Python
+bindings](http://savannah.nongnu.org/projects/pyhurd/) last year -- if Python
+is your language of choice, you probably should take his work and complete it.
+
+There was also some previous work on [Perl
+bindings](http://www.nongnu.org/hurdextras/#pith), which might serve as a
+reference if you want to work on Perl.
+
+Possible mentors: Anatoly A. Kazantsev (anatoly) for Python
diff --git a/community/gsoc/project_ideas/lexical_dot-dot.mdwn b/community/gsoc/project_ideas/lexical_dot-dot.mdwn
new file mode 100644
index 00000000..e0dabc01
--- /dev/null
+++ b/community/gsoc/project_ideas/lexical_dot-dot.mdwn
@@ -0,0 +1,40 @@
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!meta title="Lexical .. Resolution"]]
+
+For historical reasons, [[UNIX]] filesystems have a real (hard) `..` link from each
+directory pointing to its parent. However, this is problematic, because the
+meaning of "parent" really depends on context. If you have a symlink for
+example, you can reach a certain node in the filesystem by a different path. If
+you go to `..` from there, UNIX will traditionally take you to the hard-coded
+parent node -- but this is usually not what you want. Usually you want to go
+back to the logical parent from which you came. That is called "lexical"
+resolution.
+
+Some application already use lexical resolution internally for that reason. It
+is generally agreed that many problems could be avoided if the standard
+filesystem lookup calls used lexical resolution as well. The compatibility
+problems probably would be negligible.
+
+The goal of this project is to modify the filename lookup mechanism in the Hurd
+to use lexical resolution, and to check that the system is still fully
+functional afterwards. This task requires understanding the filename resolution
+mechanism.
+
+See also [[!GNU_Savannah_bug 17133]].
+
+Possible mentors: Carl Fredrik Hammar (cfhammar)
+
+Exercise: This project requires changes to the name lookup mechanism in the
+Hurd-related glibc parts, as well as the Hurd servers. Thus, the exercise task
+should involve hacking glibc or Hurd servers, or even both. Fixing the bug in
+the client-side nfs translator (/hurd/nfs) that makes "rmdir foo/" fail while
+"rmdir foo" works, seems a good candidate.
diff --git a/community/gsoc/project_ideas/libcap.mdwn b/community/gsoc/project_ideas/libcap.mdwn
new file mode 100644
index 00000000..1346203d
--- /dev/null
+++ b/community/gsoc/project_ideas/libcap.mdwn
@@ -0,0 +1,41 @@
+[[!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="Implementing libcap"]]
+
+libcap is a library providing the API to access POSIX capabilities. These allow
+giving various kinds of specific privileges to individual users, without giving
+them full root permissions.
+
+Although the Hurd design should facilitate implementing such features in a quite
+natural fashion, there is no support for POSIX capabilities yet. As a
+consequence, libcap is not available on the Hurd, and thus various packages
+using it can not be easily built in Debian GNU/Hurd.
+
+The first goal of this project is implementing a dummy libcap, which doesn't
+actually do anything useful yet, but returns appropriate status messages, so
+program using the library can be built and run on Debian GNU/Hurd.
+
+Having this, actual support for at least some of the capabilities should be
+implemented, as time permits. This will require some digging into Hurd
+internals.
+
+Some knowledge of POSIX capabilities will need to be obtained, and for the
+latter part also some knowledge about the Hurd architecture. This project is
+probably doable without previous experience with either, though.
+
+David Hedberg applied for this project in 2010,
+and though he didn't go through with it,
+he fleshed out many [[libcap/details]].
+
+Possible mentors: Samuel Thibault (youpi)
+
+Exercise: Make libcap compile on Debian GNU/Hurd. It doesn't need to actually
+do anything yet -- just make it build at all for now.
diff --git a/community/gsoc/project_ideas/libcap/details.mdwn b/community/gsoc/project_ideas/libcap/details.mdwn
new file mode 100644
index 00000000..aa27a84e
--- /dev/null
+++ b/community/gsoc/project_ideas/libcap/details.mdwn
@@ -0,0 +1,766 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!meta title="Details on implementing libcap"]]
+
+
+This is the proposal submitted by David Hedberg for GSoC 2010 (who opted
+to go with another mentoring organization), adapted from an initial
+proposal and several amendments into a single document, but the idea
+is to further adapt it to a more neutral design document over time.
+
+
+# The proposal
+
+### Quick description of POSIX capabilities
+
+The original suggestion can be found [[here|libcap]].
+POSIX capabilities never actually entered the POSIX standard but was
+left as a draft. Linux has nevertheless implemented this draft, and
+there are reasons for doing the same in the Hurd - a more fine grained
+control of rights leading to increased security being one of them.
+
+POSIX capabilities are give on a per-process basis, and basically allows
+splitting up those rights usually granted to root into smaller and more
+specific rights. Examples of capabilities are CAP_CHOWN and CAP_KILL,
+overriding certain restrictions on chown and allowing the process to
+kill processes with different UID's, respectively.
+
+Each process is given three sets with capabilities: the Permitted set
+(P), the Effective set (E) and the Inheritable set (I). The effective
+set contains the capabilities that are currently active. The permitted
+set contains the capabilities that the process has the right to use.
+The inheritable set contains the capabilities that can be inherited
+by children to the process. A process can drop capabilities from its
+permitted set, but not set them. The effective set and the inheritable
+set can be changed freely as long as they stay subsets of the permitted
+set.
+
+Capabilities can also be set on executables. When executed, the resulting
+process is given the capabilities both as defined by the parent process
+and by the capabilities set on the file (formula below), resulting in
+what might be explained as a fine-grained setuid. Implementing this
+requires support for *xattr* or similar.
+
+Some applications that are currently using capabilities are samba, ntp,
+vsftp, pure-ftpd, proftpd, squid, asterisk and dovecot.
+
+
+### A quick description of capabilities in Linux
+
+Each process has a three bit fields representing each of the three
+sets (P, E and I). Each bit field is currently built up of two (32
+bit) integers to be able to hold the 33 currently defined capabilities
+(see linux/capability.h). Each process further has a bounding set which
+bounds the permitted set. Two syscalls handles the setting and getting
+of capabilities; *capset* and *capget*. Some related functionality
+can also be controlled by calling *prctl*: the right to read/drop the
+bounding capabilities (PR_CAPBSET_READ/PR_CAPBSET_DROP) and whether
+or not the process should keep its capabilities when a change is made
+to the threads UID's (PR_SET_KEEPCAPS/PR_GET_KEEPCAPS). User space
+applications are expected(recommended?) to use libcap to take advantage
+of the functionality provided. Some applications also use libcap-ng
+which is "intended to make programming with POSIX capabilities much
+easier than the traditional libcap library". Most applications seem
+to be using the original libcap, however.
+
+
+## Implementing libcap
+
+The exercise for this assignment was to get the libcap used in
+Linux to compile under the Hurd. This was accomplished using the
+latest git version of libcap from (..), corresponding to libcap
+2.19. The changes were simple and amounted to simply removing the
+dependency on some Linux-specific headers and creating stubs for
+capset, capget and prctl described above. This suggests that porting
+this library to the Hurd once the proper functionality is in place
+could be relatively simple. The patch is available
+[here](https://alioth.debian.org/tracker/index.php?func=detail&aid=312442&amp;group_id=30628&atid=410472 "Alioth").
+One could also consider implementing the three missing functions in the
+Hurd (or Hurd glibc) which would allow the usage of the Linux libcap
+without modifications. As the Linux libcap maintainer might or might
+not be interested in making libcap multi platform, this approach might
+be preferable.
+
+
+## Implementing POSIX capabilities in the Hurd
+
+As I am still reading up on how things fit together in the Hurd this is
+very likely to contain some misunderstandings and be at least partly off
+the mark. I intend to have grasped this by the time I start working on
+it however, if I were to be given the chance. Below are two possible
+approaches as I have understood them after some reading and discussions
+on #hurd@freenode.
+
+
+### The basics, Approach 1: Special UID's
+
+Let each capability be represented by a specific UID. One could imagine
+reserving a range of the possible uid_t's for this purpose. The euids
+vector in the authhandle struct could perhaps hold the effective set while
+the auids vector could hold the permitted set as these seem to roughly
+correspond to eachother in intent. This leaves the Inheritable set.
+One solution could be to store the inheritable set in the agids vector,
+but that does not seem to be a very natural nor nice solution. One could
+extend the authhandle struct with an additional vector, but one would then
+need to also extend the auth interface with RPC's to be able to modify
+and access it. Another possibility is to store all the capabilities
+in the same idvec and use separate defines for the the different sets
+(CAP_P_CHMOD, CAP_E_CHMOD, CAP_I_CHMOD). This does not seem like a
+good solution.
+
+Storing each capability in its own uid_t might also arguably be somewhat
+wasteful, although this is probably of secondary concern (if at all).
+One could also imagine that legacy applications might be confused,
+although I am not sure I can see any obvious problems. What happens
+when a process have only capability id's?
+
+
+### The basics, Approach 2: Extend the auth interface
+
+This approach would expand the auth interface and extend
+the auth server with another set of RPC's for capabilities
+(*auth_getcaps*, *auth_makecaps*, *auth_user_authenticate* and
+*auth_server_authenticate*), mirroring those currently declared for id's.
+This would obviously require changes to more parts of the Hurd for
+processes to be able to take advantage of capabilities, but as the logic
+behind handling capabilities and that behind handling user id's might
+not be completely comparable, this might make for a cleaner solution.
+It would also remove the problem of having to sensibly map all the
+three capability sets onto semantically differing sets of user/group
+ids, something that might be even more important if we were to also
+implement something like the bounding sets used in Linux or perhaps
+other related functionality. We are also not limited to having to store
+the capabilities as id vectors, although doing so would perhaps still
+make sense.
+
+
+### The individual capabilities
+
+Implementing the individual capabilities will probably have to be thought
+of on a case-by-case basis. Taking chown (in *libdiskfs*) as an example,
+the exact approach would differ slightly depending on how the approach
+taken to implement capabilities. If the first approach were to be taken,
+the UID's (and thus the capabilities) of the caller would already be
+available to the function through the *iouser* struct contained in the
+*protid* struct given as the first argument. Implementing capabilities
+would then simply be a matter of checking for the special UID's. If the
+second approach were to be taken, one would need to perhaps expand the
+iouser struct to contain information about the capabilities.
+
+Just like Linux has defined many Linux-specific capabilities - some of
+which could certainly be useful also applied to the Hurd - one could
+also imagine extending the POSIX capability system also for Hurd specific
+purposes.
+
+
+## Some applications using capabilities
+
+#### Samba 3
+
+Uses CAP_MKNOD and CAP_LEASE in smbd to only keep the necessary abilities.
+Documentation mentions CAP_LINUX_IMMUTABLE as a way to protect files
+from being deleted. Can also use a couple of IRIX specific capabilities
+(CAP_NETWORK_MGT and CAP_DEVICE_MGT) as alternatives to the Linux-specific
+ones if running on IRIX.
+
+
+#### ntpd
+
+Checks if capabilities are supported, more precisely if CAP_SYS_TIME,
+CAP_SETUID, CAP_SETGID, CAP_SYS_CHROOT and CAP_NET_BIND_SERVICE are
+supported. If they are supported, it uses prctl with PR_SET_KEEPCAPS
+to keep privileges across setuid() and then drops root. After done with
+CAP_SETUID, CAP_SETGID, CAP_SYS_CHROOT it drops every capability except
+CAP_SYS_TIME and, if needed, CAP_NET_BIND_SERVICE.
+
+
+#### vsftpd
+
+Uses CAP_CHOWN, CAP_NET_BIND_SERVICE when using the "one process"
+security model (typically disabled by default).
+
+
+#### proftpd-basic
+
+Provides support for capabilities from mod_cap. Uses CAP_USE_CHOWN,
+CAP_USE_DAC_OVERRIDE, CAP_USE_DAC_READ_SEARCH and CAP_USE_AUDIT_WRITE.
+Distribution contains README.capabilities with some explanations.
+Also ships with their own libcap for some reason, based on libcap 1.10.
+
+
+#### dovecot
+
+Keeps CAP_CHOWN, CAP_SYS_CHROOT, CAP_SETUID, CAP_SETGID,
+CAP_NET_BIND_SERVICE, CAP_DAC_OVERRIDE for proper operations, drops
+the rest.
+
+
+#### bind9
+
+Reasons for each capability are clearly noted in comments in update.c
+in linux_initialprivs() and linux_minprivs(). initialprivs drops all
+capabilities and proceeds to set CAP_NET_BIND_SERVICE, CAP_SYS_CHROOT,
+CAP_SETUID, CAP_SETGID, CAP_DAC_READ_SEARCH and CAP_CHOWN. minprivs only
+sets CAP_NET_BIND_SERVICE and CAP_SYS_RESOURCE.
+
+
+#### pulseaudio
+
+Mentions CAP_NICE (CAP_SYS_NICE), but does not appear to be using it
+(anymore?). Seems to use libcap to drop caps, however.
+
+
+#### pinentry
+
+Checks if CAP_IPC_LOCK is available and "uses it" to gain only the
+ability to lock memory when needed.
+
+
+#### zsh
+
+Comes with a module "caps" which contains "[b]uiltins for manipulating
+POSIX.1e (POSIX.6) capability (privilege) sets." Most useful here is the
+"cap" builtin, which makes it possible to change the shell's process
+capability sets. This might be useful for testing.
+
+
+#### inetutils (ping,traceroute)
+
+Does not use capabilities explicitly, but is nevertheless a useful
+example of how file capabilities could be used. ping and traceroute
+are currently installed suid root since they need to be able to open
+raw sockets. With file capabilities, this could be accomplished by
+instead setting the capability CAP_NET_RAW on the two executables,
+thus giving the utilities almost only the specific rights they need.
+
+
+## The capabilities
+
+The above might give some hint as to what capabilities should be
+prioritized. One assumption I have made is that the goal of this project
+is to implement, as far as possible, the same functionality as what is
+present in Linux. No effort has (so far) been made to look into possible
+applications specific to the Hurd.
+
+A few of the above mentioned applications also explicitly uses
+PR_SET_KEEPCAPS (through prctl()) to specify that capabilities should
+be passed on to children. This means that the implementation in the
+Hurd should take this into account.
+
+I have below done a preliminary classification of the capabilities
+as defined in Linux capability.h into four "classes": Network, File
+management, "glibc -> mach" and Other. There are also some capabilities
+that either depend on functionality not implemented or are too Linux
+specific. I have not described each capability in detail as looking
+at the comments in capability.h and reading in capabilities(7) are
+better sources.
+
+
+### The Networking Class
+
+These would mostly affect pfinet. The general picture seem to be that
+pfinet currently uses a boolean (int) isroot in struct sock_user to keep
+track of the credentials of the caller. This would need to be expanded
+somehow to keep track of the separate capabilities.
+
+CAP_NET_BIND_SERVICE: Allow binding to TCP/UDP sockets below 1024
+CAP_NET_RAW: Allow use of RAW and PACKET sockets.
+CAP_NET_BROADCAST: "Allow broadcasting, listen to multicast"
+CAP_NET_ADMIN: This seem to be a bit of a "catch-all" for network-related
+administration.
+
+
+### The Files Management Class
+
+The description of CAP_CHOWN in the original proposal should apply to
+(most of?) these. That is, modify the iouser struct. At least libdiskfs
+should be modified, but the same or similar modifications might need to
+be made to several servers (libnetfs..? The actual servers implementing
+the filesystem?)
+
+CAP_CHOWN: "Make arbitrary changes to file UIDs and GIDs"
+CAP_FOWNER: allow chmod, utime, .. for files not owned.
+CAP_FSETID: Don't clear setuid/setgid when a file is modified.
+CAP_DAC_OVERRIDE and
+CAP_DAC_READ_SEARCH: Bypasses file/directory read/write/execute permission
+checks. ( hurdexec.c, file-access.c, .. ? )
+CAP_MKNOD: allows usage of "the privileged aspects of mknod()". Does this
+one make sense in the Hurd?
+
+
+### The (glibc -> gnumach) Class
+
+These seem to be implemented in glibc by direct calls to gnumach.
+If they should be implemented, maybe a proxy in the Hurd is needed?
+
+CAP_SYS_TIME: manipulate the system clock, set real-time clock.
+CAP_IPC_LOCK: mlock, mlockall, mmap, shmctl
+CAP_KILL: No permission checks for killing processes
+CAP_SYS_NICE: setpriority/getpriority for arbitrary processes.
+
+
+### The Rest Class
+
+CAP_SYS_CHROOT: Allows usage of chroot().
+It's either really simple (not needed in the case of the Hurd) or really
+difficult. Needs some figuring out. One of the calls that should be
+high-priority.
+CAP_SYS_ADMIN: General administration rights. Seemingly sprinkled out
+into just about everything. Quick grep through the Linux sources gives
+440 hits in .c-files.
+CAP_SYS_BOOT: Allow use of reboot().
+glibc calls init:startup_reboot..
+CAP_SETGID: Allows usage of setgid,setgroups and "forged gids on socket
+credentials passing"
+CAP_SETUID: Allows usage of set*uid and "forged pids on socket credentials
+passing"
+CAP_SYS_TTY_CONFIG: vhangup, some other places. vhangup() is a stub in
+the Hurd, but maybe the console server is otherwise affected?
+CAP_SYS_RESOURCE: Override various limits. (quota, reserved space etc.
+on ext2, interrupt frequencies, consoles,...). According to "The Critique"
+mach performs no resource accounting so some of these might be moot to
+implement, while others still apply.
+CAP_SYS_RAWIO Allow raw input/output. Sprinkled in many places,
+device drivers among others. Many of these will probably be difficult
+to implement.
+CAP_SETPCAP: This one has (or had?) two different usages in Linux:
+If file capabilities are not supported it gives the right to grant
+or remove capabilities from the permitted set of arbitrary processes.
+If file capabilities are supported, it allows for removing capabilities
+from the bounding set of the current process. As the Hurd implementation
+won't have file capabilities initially it might make sense to implement
+this if possible. If bounding sets are implemented this should probably
+be the way provided to modify them.
+
+
+### Unimplementable
+
+*(At this point in time, as far as I can determine)*
+
+CAP_LINUX_IMMUTABLE: depends on chattr etc. working.
+CAP_SETFCAP: depends on xattr's
+CAP_SYS_PACCT: acct() missing in the Hurd.
+CAP_SYS_MODULE, CAP_SYS_PTRACE, CAP_MAC_OVERRIDE, CAP_MAC_ADMIN,
+CAP_AUDIT_WRITE, CAP_AUDIT_CONTROL, CAP_LEASE
+
+
+## Priority when implementing
+
+The two most used capabilities as unscientifically judged from
+the selection of applications above are CAP_NET_BIND_SERVICE and
+CAP_CHOWN, suggesting that implementing the "network class" and the
+"file management" class of capabilities as classified above might be a
+good start. These also, to me, seem to be easier classes to implement.
+CAP_NET_ADMIN might need some extra work.
+
+Second most common were CAP_SYS_CHROOT, CAP_SETGID and CAP_SETUID. I am
+not completely clear on how these should be handled.
+
+Assuming those are out of the way, CAP_IPC_LOCK, CAP_SYS_TIME, CAP_KILL
+and CAP_SYS_NICE might be a good choice to tackle if possible. This
+might, if I have understood things correctly, involve writing a proxy
+Hurd server for these calls in mach.
+
+CAP_SYS_ADMIN, CAP_SYS_RESOURCE and CAP_SYS_RAWIO. These contains a bit
+of "everything" (ADMIN being the worse one), meaning that experience
+and infrastructure gained from implementing the previous capabilities
+might come in handy. CAP_SYS_RAWIO might be difficult; it can be found
+inside many drivers in the Linux source.
+
+
+## Additional general details
+
+[This article](http://www.ibm.com/developerworks/library/l-posixcap.html)
+contains a good general description of how capabilities in Linux
+works. As there will be no file capabilities in the Hurd initially,
+an approach emulating the behavior Linux exhibits when SECURE_NOROOT
+and SECURE_NO_SETUID_FIXUP are *not* set seems to be a good start.
+This is called the "root-user-is-privileged" model in the article,
+and somewhat simplified it means that processes started by root, or
+setuid-root, is given all capabilities no matter what capabilities the
+parent might or might not hold at the time of execution. Quoting verbatim
+from the article:
+
+> * When SECURE_NOROOT is not set, then when a process executes a file,
+> the new capability sets may be calculated as though the file had some
+> file capability sets set fully populated. In particular:
+>
+> * The file inheritable and permitted sets will be full on if the
+> process's real or effective uid is 0 (root) or the file is setuid
+> root.
+>
+> * The file effective set will be full on if the process's effective
+> uid is root or the file is setuid root.
+>
+>
+> * When SECURE_NO_SETUID_FIXUP is not set, then when a process switches
+> its real or effective uids to or from 0, capability sets are further
+> shifted around:
+>
+> * If a process switches its effective uid from 0 to non-0, then its
+> effective capability set is cleared.
+>
+> * If a process switches its real, effective, or saved uids from at
+> least one being 0 to all being non-zero, then both the permitted
+> and effective capabilities are cleared.
+>
+> * If a process sets its effective uid from non-zero to 0, then the
+> effective capabilities are set equal to the permitted capabilities.
+
+The capabilities of the resulting process are determined by the following
+formulas, again taken from the article, with p for Process and f for file:
+
+> pI' = pI
+> pP' = fP | (fI & pI)
+> pE' = pP' & fE
+
+The security under the above described model, being what at least some
+of the applications I listed in my last comment employs, is basically
+the following (also detailed somewhat in the same article):
+
+* Execute process as root (or setuid) to gain all capabilities.
+
+* Use the prctl system call to enable keepcaps for the process
+ (same(?) effect as enabling SECURE_NO_SETUID_FIXUP for the process).
+ keepcaps should be off by default.
+
+* setuid to a non-root user, and by doing so losing the possibility to
+ regain capabilities by simply starting a new process.
+
+* Drop all the capabilities except those few actually needed.
+
+
+## Infrastructure details - Special UIDs approach
+
+The auth server must somehow keep track of three sets of capabilities.
+I suggest keeping these three sets in three additional idvec's in the
+authhandle struct, and will for the purpose of this description name
+these pcaps (permitted), ecaps (effective) and icaps (inheritable).
+This will simplify keeping track of the internal logic somewhat.
+In addition to this, there is a need to keep track of the "keepcaps" flag
+as described above. I suggest representing this with an int keepcaps
+in the same struct.
+
+1. Expand authhandle struct with three additional idvecs and one integer.
+Fix static functions handling the struct, such as destroy_authhandle.
+
+2. Implement the necessary logic in auth_makeauth to handle capabilities.
+
+Problems:
+Assume that all capabilities are mapped onto uids, given names on the form
+uid_<capability>, for example uid_cap_net_raw. Assume that the presence
+of an uid in euids suggest that the capability is in the effective set
+of the process, that the presence of this uid in auids suggests that it
+is in the permitted set of the process, and that the presence of this
+uid in aguids suggest that it is in the inheritable set of the process.
+That they are internally stored in separate idvec's can be ignored as
+an implementation detail.
+
+* The UID's have as it is different meanings depending on where in the
+ array they are positioned, and certain clients seem to rely on this.
+ The first UID in euids is the effective uid, and the first and second
+ UIDs in auids are the real and saved UIDS respectively. At least
+ some users of makeauth would need to made aware of capabilities,
+ for example setuid in glibc.
+
+* Setting/getting the keepcaps-flag is also a bit of a problem. To avoid
+ changing the auth interface yet another special UID could be used
+ for this purpose, although that seems to be really stretching it.
+ The cleaner solution would probably be to expand the interface with
+ something along the lines of auth_setkeepcaps/auth_getkeepcaps.
+ This interface would only be used by prctl.
+
+Another problem with this approach is that it seems a bit difficult
+to oversee the affects that using other RPC's like fsys_getroot and
+io_restrict_auth might have on capabilities.
+
+
+## Infrastructure details - "extend-interfaces" approach
+
+This approach has started to seem like the better way to me, as the
+usage of capabilities becomes more explicit through the entire "chain",
+perhaps making it somewhat more easy to understand all the interactions.
+
+I suggest something like the following new interface methods:
+
+***
+
+
+### The auth interface
+
+ routine auth_getauth_caps (
+ handle: auth_t;
+ out euids: idarray_t;
+ out auids: idarray_t;
+ out egids: idarray_t;
+ out agids: idarray_t;
+ out ecaps: idarray_t;
+ out pcaps: idarray_t;
+ out icaps: idarray_t);
+
+ routine auth_makeauth_caps (
+ handle: auth_t;
+ other_handles: portarray_t;
+ euids: idarray_t;
+ auids: idarray_t;
+ egids: idarray_t;
+ agids: idarray_t;
+ ecaps: idarray_t;
+ pcaps: idarray_t;
+ icaps: idarray_t;
+ flags: int; /* keepcaps.. ? */
+ out newhandle: mach_port_make_send_t);
+
+ routine auth_server_authenticate_caps (
+ handle: auth_t;
+ sreplyport reply: mach_port_poly_t;
+ rendezvous: mach_port_send_t;
+ newport: mach_port_poly_t;
+ out euids: idarray_t;
+ out auids: idarray_t;
+ out egids: idarray_t;
+ out agids: idarray_t;
+ out ecaps: idarray_t;
+ out pcaps: idarray_t;
+ out icaps: idarray_t);
+
+
+### The io interface
+
+ routine io_restrict_auth_caps (
+ io_object: io_t;
+ RPT
+ out new_object: mach_port_send_t;
+ uids: idarray_t SCP;
+ gids: idarray_t SCP;
+ ecaps: idarray_t SCP);
+
+
+### The fsys interface
+
+ routine fsys_getroot_caps (
+ fsys: fsys_t;
+ RPT
+ #ifdef FSYS_GETROOT_UREPLY
+ ureplyport ureply: mig_reply_port_t;
+ #endif
+ dotdot_node: mach_port_send_t;
+ gen_uids: idarray_t;
+ gen_gids: idarray_t;
+ out ecaps: idarray_t;
+ out pcaps: idarray_t;
+ out icaps: idarray_t;
+ flags: int;
+ out do_retry: retry_type;
+ out retry_name: string_t;
+ out file: mach_port_send_t);
+
+***
+
+These are meant to be able to replace the old methods with
+capability-aware methods, instead of merely complementing them.
+The replacing work could then be made a more gradual process. Steps:
+
+* Extend authhandle with the same data members as in the UID-case.
+
+* Implement new _caps-functions according to described interface
+ extensions above, refactor code a bit to share common uid-handling
+ logic. Both makeauth's should drop all capabilities if switching from
+ uid 0 without having keepcaps. For example, keepcaps should be unset
+ by default.
+
+* Fix glibc. Extend hurd_id_data in hurd/id.h to store capabilities,
+ switch to capability aware functions where necessary.
+
+* io-reauthenticate. Fix implementations to use
+ auth_server_authenticate_caps instead. For this we also need somewhere
+ to save the caps, so it ties in with for example the extension of
+ iouser as mentioned in the details.
+
+* fsys_getroot. Implement fsys_getroot_caps in libdiskfs, trans,
+ libtreefs, libtrivs, libnetfs. Fix users of function in libdiskfs,
+ libfshelp, settrans, libtreefs, clookup.
+
+* io_restrict_auth. Implement io_restrict_auth_caps in libdiskfs,
+ libtreefs, libtrivfs, libnetfs, boot. Fix users in utils(symlink,
+ firmlink), libtrivs, term, clookup
+
+Among the problems might be that there are a lot of arguments that
+needs to be passed around, and that it seems somewhat ugly to end up
+with function names referencing caps in particular.
+
+Below some more about the specific capabilities. This should in large
+be common to the two approaches above.
+
+
+## Actually handing out the capabilities to process
+
+This seems like a good job for the file_exec route in the fs interface.
+Quoting from the comments above the definition in fs.defs: "*Necessary
+initialization, including authentication changes associated with set[ug]id
+execution must be handled by the filesystem*". The capability-granting
+functionality should to be added in at least the implementations in
+libdiskfs and libnetfs as far as I can determine, and should be "easy
+enough" once the infrastructure for implementing the file-related
+capabilities (CAP_CHOWN etc.) are in place. This also seem to make
+sense considering the future possibility for file capabilities.
+
+
+## Some implementation details of individual capabilities.
+
+### Net-related capabilities.
+
+This turned out to be a bit less work than I had thought, as the
+imported Linux code already seem to contain all the necessary checks.
+What remains to do to implement all of these capabilities is mostly a
+matter of putting some infrastructure in place.
+
+* In struct sock_user (pfinet.h), change isroot for idvec
+ caps. Alternatively, add idvec caps.
+
+* Change the function make_sock_user in socket.c to take an idvec caps
+ as a parameter and properly set the given caps to the corresponding
+ idvec in sock_user.
+
+* Fix users of make_sock_user: S_io_reauthenticate, S_io_restrict_auth,
+ S_socket_create, S_socket_accept. This should be doable with the
+ current infrastructure. For example, S_socket_create currently
+ sets isroot in the new sock_user from the corresponding member in
+ the trivfs_protid struct. This does not present a problem however,
+ as the latter struct also provides access to an iouser (iohelp.h)
+ from which the needed uids of the user should be available.
+
+* Fix up parts of source from Linux, modify task_struct add idvec,
+ modify prepare_current to take the caps idvec instead of isroot.
+ Re-implement the existing function capable(int cap) to actually check
+ for the capability passed as an argument instead of just return isroot.
+
+* Change a few isroot's at 3 other places in the code to check for
+ capabilities. Since these places all have access to isroot and thus by
+ implication the sock_user, they also have access to the new capability
+ information; no restructuring necessary.
+
+
+### File-related capabilities
+
+While there are a lot of servers in the Hurd, I am not sure all of these
+capabilities actually make sense to implement in all of them.
+
+
+#### CAP_CHOWN
+
+Implementing this in libdiskfs should take care of it where it makes
+sense. Servers using libdiskfs uses iouser from libiohelp to hold
+user credentials. As noted above, this struct is already capable of
+holding our capabilities as uid's or is otherwise extended to contain
+the necessary idvecs if using the second general approach. Adding a
+check along the lines of *idvec_contains(uid_cap_chown)* in function
+diskfs_S_file_chown (file-chown.c) should be all that's needed.
+
+In libnetfs, netfs_attempt_chown is declared as a function that the
+server using the library must implement. Any checks for chown rights
+are however most likely performed on the server side, suggesting that
+there is nothing we can do here to implement CAP_CHOWN. Even if we do
+need to add something, an iouser containing the necessary information
+to implement the checks in a manner analogous to that in libdiskfs seems
+to be passed to each important function.
+
+
+#### CAP_DAC_*
+
+These might actually make sense to implement in more servers, and the
+logic seems somewhat involved. Need to add the necessary checks to
+at least file_check_access, file_exec in libdiskfs. file_exec also in
+libnetfs, probably. Possibly changes also in other places.
+
+The main difficulties overall seem to lie in getting the infrastructure
+properly in place rather than implementing most of the individual
+capabilities, and I have updated the schedule a bit in an attempt to
+reflect this.
+
+
+## Schedule updating
+
+The more I look into this the less time it seems likely to take to
+do the work. Below is my best estimation at the moment, and I have
+basically adjusted everything to what I think is more likely estimations.
+If this is correct I would be more or less around midterm. I haven't
+gone completely to the individual level as that doesn't seem to make
+sense, but what is clustered together are either related capabilities
+or a collection of capabilities classified roughly with regards to how
+much I know about the area and how many different rights they control.
+It's not my intention to "slack off" or anything, so if this estimation
+were to be correct I could perhaps take a look at the xattrs-patch,
+or spend the rest of my time fixing PATH_MAX-issues. Then again, maybe
+there is some great difficulty hidden somewhere.
+
+
+#### Some justifications:
+
+Dummy libcap, more or less done.
+*1 day* (making sure it "fails gracefully" shouldn't really take longer than this)
+
+Application for testing, the beginnings of a fairly extensive "test suit" on Linux.
+*2 days*
+
+Basic infrastructure.
+*5 days*, depends on the chosen approach, but it is probably wise to
+reserve at least a bunch of days for this.
+
+Implementations of prctl/capset/capget in libshouldbeinlibc,
+or a port of libcap to the Hurd in any other way.
+*5 days*
+
+CAP_NET_BIND_SERVICE, CAP_NET_RAW, CAP_NET_BROADCAST, CAP_NET_ADMIN
+*4 days*, as noted above this should be easy, but it might uncover bugs
+in the newly implemented infrastructure for example.
+
+CAP_CHOWN,CAP_FOWNER,CAP_FSETID
+*2 days*, I think these only needs to be done in libdiskfs
+
+CAP_DAC_OVERRIDE,CAP_DAC_READ_SEARCH
+*4 days*, these might need changes to various servers
+
+CAP_SYS_TIME,CAP_IPC_LOCK,CAP_KILL
+CAP_SYS_NICE,CAP_SYS_CHROOT,CAP_SYS_BOOT
+*2 weeks*, these are varied and I'm not that sure exactly how each should
+be tackled so some research is needed.
+
+CAP_SETGID,CAP_SETUID,CAP_SYS_TTY_CONFIG
+*4 days*
+
+CAP_SYS_ADMIN,CAP_SYS_RESOURCE,CAP_SYS_RAWIO
+*2 weeks*, these too are pretty varied and some might need some individual
+researching
+
+CAP_SETPCAP
+*1 day*
+
+
+## Schedule
+
+24/5 Start coding
+25/5 Dummy libcap ready for use.
+27/5 The beginnings of a "test suite", written on Linux.
+ 1/6 Basic infrastructure in place
+ 6/6 Dummy libcap extended with real functionality to make use of
+ implemented capability and infrastructure, or the Hurd adapted for
+ compatibility with Linux libcap.
+10/6 The "network class" of capabilities implemented.
+12/6 CAP_CHOWN, CAP_FOWNER, CAP_FSETID
+16/6 CAP_DAC_OVERRIDE, CAP_DAC_READ_SEARCH
+30/6 CAP_SYS_TIME, CAP_IPC_LOCK, CAP_KILL, CAP_SYS_NICE,
+ CAP_SYS_CHROOT, CAP_SYS_BOOT
+ 4/7 CAP_SETGID,CAP_SETUID,CAP_SYS_TTY_CONFIG
+12/7 "Mentors and students can begin submitting mid-term evaluations"
+16/7 GSoC Mid-term evaluations deadline.
+18/7 CAP_SYS_ADMIN, CAP_SYS_RESOURCE, CAP_SYS_RAWIO
+19/7 CAP_SETPCAP
diff --git a/community/gsoc/project_ideas/libdiskfs_locking.mdwn b/community/gsoc/project_ideas/libdiskfs_locking.mdwn
new file mode 100644
index 00000000..0618bbe6
--- /dev/null
+++ b/community/gsoc/project_ideas/libdiskfs_locking.mdwn
@@ -0,0 +1,41 @@
+[[!meta copyright="Copyright © 2008, 2009, 2010 Free Software Foundation,
+Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!meta title="Fix libdiskfs Locking Issues"]]
+
+Nowadays the most often encountered cause of Hurd crashes seems to be lockups
+in the [[hurd/translator/ext2fs]] server. One of these could be traced
+recently, and turned out to be a lock inside [[hurd/libdiskfs]] that was taken
+and not released in some cases. There is reason to believe that there are more
+faulty paths causing these lockups.
+
+The task is systematically checking the [[hurd/libdiskfs]] code for this kind of locking
+issues. To achieve this, some kind of test harness has to be implemented: For
+example instrumenting the code to check locking correctness constantly at
+runtime. Or implementing a unit testing framework that explicitly checks
+locking in various code paths. (The latter could serve as a template for
+implementing unit checks in other parts of the Hurd codebase...)
+
+(A systematic code review would probably suffice to find the existing locking
+issues; but it wouldn't document the work in terms of actual code produced, and
+thus it's not suitable for a GSoC project...)
+
+[Linux' *sparse*](https://sparse.wiki.kernel.org/) could be worth looking at.
+
+This task requires experience with debugging locking issues in multithreaded
+applications.
+
+Possible mentors: Samuel Thibault (youpi)
+
+Exercise: If you could actually track down and fix one of the existing locking
+errors before the end of the application process, that would be excellent. This
+might be rather tough though, so probably you need to talk to us about an
+alternative exercise task...
diff --git a/community/gsoc/project_ideas/libgtop.mdwn b/community/gsoc/project_ideas/libgtop.mdwn
new file mode 100644
index 00000000..14304de2
--- /dev/null
+++ b/community/gsoc/project_ideas/libgtop.mdwn
@@ -0,0 +1,34 @@
+[[!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="Porting libgtop"]]
+
+libgtop is a library used by many applications (especially GNOME applications)
+to abstract the system-specific methods for obtaining information about the
+current state of the system -- processes running, system load etc.
+
+A [[Linux-compatible_procfs|madhusudancs]] implementation has been created
+during GSoC 2008, and should cover a large part of the functionality of
+libgtop. However, not all necessary information is exported via /proc (even on
+Linux); there are some bits still missing in the Hurd procfs implementation;
+and there are a couple of bugs that need to be fixed to make it fully usable.
+
+The goal of this project is a fully functional libgtop in Debian GNU/Hurd. Some
+application(s) using it also need to be ported, e.g. gnome-system-monitor.
+
+Some bits of this work are easy, others need some digging into Hurd internals.
+This task doesn't require any specific previous knowledge (besides of general
+C/UNIX programming skills of course); but during the course of the project,
+some knowledge about Hurd internals will have to be obtained, along with a bit
+of Debian stuff.
+
+Possible mentors: Samuel Thibault (youpi)
+
+Exercise: Fix one of the shortcomings in the existing procfs implementation.
diff --git a/community/gsoc/project_ideas/maxpath.mdwn b/community/gsoc/project_ideas/maxpath.mdwn
new file mode 100644
index 00000000..5be8917f
--- /dev/null
+++ b/community/gsoc/project_ideas/maxpath.mdwn
@@ -0,0 +1,46 @@
+[[!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="Fixing Programs Using PATH_MAX et al Unconditionally"]]
+
+POSIX describes some constants (or rather macros) like PATH_MAX/MAXPATHLEN and
+similar, which may be defined by the system to indicate certain limits. Many
+people overlook the *may* though: Systems only should define them if they
+actually have such fixed limits. The Hurd, following the GNU Coding Standards,
+tries to avoid this kind of arbitrary limits, and consequently doesn't define
+the macros.
+
+Many programs however just assume their presence, and use them unconditionally.
+This is simply sloppy coding: not only does it violate POSIX and fails on
+systems not defining the macros, but in fact most common use cases of these
+macros are simply wrong! (See
+<http://insanecoding.blogspot.com/2007/11/pathmax-simply-isnt.html> for some
+hints as to why this is so.)
+
+There are a few hundred packages in Debian GNU/Hurd failing to build because of
+this -- simply grep for the offending macros in the
+[list_of_build_failures](http://unstable.buildd.net/buildd/hurd-i386_Failed.html).
+
+Fixing these issues usually boils down to replacing `char foo[PATH_MAX]`
+by `char *foo`, and using dynamic memory allocation, i.e. e.g. a loop
+that tries geometrically growing sizes. Sometimes this is tricky, but
+more often not very hard. Sometimes it is even trivial because the GNU
+system has proper replacements. See the corresponding section of the
+[[porting_guidelines_page|hurd/porting/guidelines]] for more details. With a bit of
+practice, it should be easily possible to fix several programs per day.
+
+The goal of this project is to fix the PATH_MAX and related problems in a
+significant number of packages, and make the fixes ready for inclusion in
+Debian and (where possible) upstream. No Hurd-specific knowledge is needed, nor
+any other special knowledge aside from general C programming skills.
+
+Possible mentors: Samuel Thibault (youpi)
+
+Exercise: Fix the PATH_MAX issues in some Debian package.
diff --git a/community/gsoc/project_ideas/mtab.mdwn b/community/gsoc/project_ideas/mtab.mdwn
new file mode 100644
index 00000000..a60a8038
--- /dev/null
+++ b/community/gsoc/project_ideas/mtab.mdwn
@@ -0,0 +1,74 @@
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!meta title="mtab"]]
+
+In traditional monolithic system, the kernel keeps track of all mounts; the
+information is available through `/proc/mounts` (on Linux at least), and in a
+very similar form in `/etc/mtab`.
+
+The Hurd on the other hand has a totally
+[[decentralized_file_system|hurd/virtual_file_system]]. There is no single
+entity involved in all mounts. Rather, only the parent file system to which a
+mountpoint ([[hurd/translator]]) is attached is involved. As a result, there
+is no central place keeping track of mounts.
+
+As a consequence, there is currently no easy way to obtain a listing of all
+mounted file systems. This also means that commands like `df` can only work on
+explicitly specified mountpoints, instead of displaying the usual listing.
+
+One possible solution to this would be for the translator startup mechanism to
+update the `mtab` on any `mount`/`unmount`, like in traditional systems.
+However, there are some problems with this approach. Most notably: what to do
+with passive translators, i.e., translators that are not presently running, but
+set up to be started automatically whenever the node is accessed? Probably
+these should be counted among the mounted filesystems; but how to handle the
+`mtab` updates for a translator that is not started yet? Generally, being
+centralized and event-based, this is a pretty inelegant, non-hurdish solution.
+
+A more promising approach is to have `mtab` exported by a special translator,
+which gathers the necessary information on demand. This could work by
+traversing the tree of translators, asking each one for mount points attached
+to it. (Theoretically, it could also be done by just traversing *all* nodes,
+checking each one for attached translators. That would be very inefficient,
+though. Thus a special interface is probably required, that allows asking a
+translator to list mount points only.)
+
+There are also some other issues to keep in mind. Traversing arbitrary
+translators set by other users can be quite dangerous -- and it's probably not
+very interesting anyways what private filesystems some other user has mounted.
+But what about the global `/etc/mtab`? Should it list only root-owned
+filesystems? Or should it create different listings depending on what user
+contacts it?...
+
+That leads to a more generic question: which translators should be actually
+listed? There are different kinds of translators: ranging from traditional
+filesystems ([[disks|hurd/libdiskfs]] and other actual
+[[stores|hurd/translator/storeio]]), but also purely virtual filesystems like
+[[hurd/translator/ftpfs]] or [[hurd/translator/unionfs]], and even things that
+have very little to do with a traditional filesystem, like a
+[[gzip_translator|hurd/translator/storeio]],
+[[mbox_translator|hurd/translator/mboxfs]],
+[[xml_translator|hurd/translator/xmlfs]], or various device file translators...
+Listing all of these in `/etc/mtab` would be pretty pointless, so some kind of
+classification mechanism is necessary. By default it probably should list only
+translators that claim to be real filesystems, though alternative views with
+other filtering rules might be desirable.
+
+After taking decisions on the outstanding design questions, the student will
+implement both the actual [[mtab_translator|hurd/translator/mtabfs]], and the
+necessary interface(s) for gathering the data. It requires getting a good
+understanding of the translator mechanism and Hurd interfaces in general.
+
+Possible mentors: Olaf Buddenhagen (antrik), Carl Fredrik Hammar (cfhammar)
+
+Exercise: Make some improvement to any of the existing Hurd translators.
+Especially those in [hurdextras](http://www.nongnu.org/hurdextras/) are often
+quite rudimentary, and it shouldn't be hard to find something to improve.
diff --git a/community/gsoc/project_ideas/namespace-based_translator_selection.mdwn b/community/gsoc/project_ideas/namespace-based_translator_selection.mdwn
new file mode 100644
index 00000000..67e3fc28
--- /dev/null
+++ b/community/gsoc/project_ideas/namespace-based_translator_selection.mdwn
@@ -0,0 +1,82 @@
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!meta title="Namespace-based Translator Selection"]]
+
+The main idea behind the Hurd is to make (almost) all system functionality
+user-modifiable ([[extensible_system|extensibility]]). This includes a
+user-modifiable filesystem: the whole filesystem is implemented decentrally, by
+a set of filesystem servers forming the directory tree together, a
+[[hurd/virtual_file_system]]. These filesystem servers are called
+[[translators|hurd/translator]], and are the most visible feature of the Hurd.
+
+The reason they are called translators is because when you set a translator on
+a filesystem node, the underlying node(s) are hidden by the translator, but the
+translator itself can access them, and present their contents in a different
+format -- translate them. A simple example is a
+[[gunzip_translator|hurd/translator/storeio]], which can be set on a gzipped
+file, and presents a virtual file with the uncompressed contents. Or the other
+way around. Or a translator that presents an
+[[XML_file_as_a_directory_tree|hurd/translator/xmlfs]]. Or an mbox as a set of
+individual files for each mail ([[hurd/translator/mboxfs]]); or ever further
+breaking it down into headers, body, attachments...
+
+This gets even more powerful when translators are used as building blocks for
+larger applications: A mail reader for example doesn't need backends for
+understanding various mailbox formats anymore. All formats can be parsed by
+special translators, and the mail reader gets the data as a uniform, directly
+usable filesystem structure. Translators can also be stacked: If you have a
+compressed mailbox for example, first apply a gunzip translator, and then an
+mbox translator on top of that.
+
+There are a few problems with the way translators are set, though. For one,
+once a translator is set on a node, you always see the translated content. If
+you need the untranslated contents again, to do a backup for example, you first
+need to remove the translator again. Also, having to set a translator
+explicitly before accessing the contents is pretty cumbersome, making this
+feature almost useless.
+
+A possible solution is implementing a mechanism for selecting translators
+through special filename attributes. For example you could use
+`index.html.gz,,+` and `index.html.gz,,-` to choose between translated and
+untranslated versions of a file. Or you could use `index.html.gz,,u` to get
+the contents of the file with a gunzip translator applied automatically. You
+could also use attributes on whole directory trees: `.,,0/` would give you a
+directory tree corresponding to the current directory, but with any translators
+disabled, for doing a backup. And `site,,u/*.html.gz` would present a whole
+directory tree of compressed HTML files as uncompressed files.
+
+One benefit of the Hurd's flexibility is that it should be possible to
+implement such a mechanism without touching the existing Hurd components:
+Rather, just implement a special proxy, that mirrors the normal filesystem, but
+is able to interpret the special extensions and present transformed files in
+place of the original ones.
+
+In the long run it's probably desirable to have the mechanism implemented in
+the standard name lookup mechanism, so it will be available globally, and avoid
+the overhead of a proxy; but for the beginning the proxy solution is much more
+flexible.
+
+The goal of this project is implementing a prototype proxy; perhaps also a
+first version of the global variant as proof of concept, if time permits. It
+requires good understanding of the name lookup mechanism, and translator
+programming; but the implementation should not be too hard. Perhaps the hardest
+part is finding a convenient, flexible, elegant, hurdish method for mapping the
+special extensions to actual translators...
+
+Possible mentors: Olaf Buddenhagen (antrik)
+
+Exercise: Try to make some modification to the existing unionfs and/or firmlink
+translators. (More specific suggestions welcome... :-) )
+
+*Status*: Sergiu Ivanov has been working *voluntarily* on
+[[namespace-based_translator_selection|scolobb]], as an inofficial GSoC 2008
+participant! Not all the desired functionality is in place yet; work is
+ongoing.
diff --git a/community/gsoc/project_ideas/nfs.mdwn b/community/gsoc/project_ideas/nfs.mdwn
new file mode 100644
index 00000000..e7c18324
--- /dev/null
+++ b/community/gsoc/project_ideas/nfs.mdwn
@@ -0,0 +1,45 @@
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!meta title="Improved NFS Implementation"]]
+
+The Hurd has both NFS server and client implementations, which work, but not
+very well: File locking doesn't work properly (at least in conjunction with a
+GNU/Linux server), and performance is extremely poor. Part of the problems
+could be owed to the fact that only NFSv2 is supported so far.
+
+(Note though that locking on the Hurd is problematic in general, not only in
+conjunction with NFS -- see the [[file_locking]] task.)
+
+This project encompasses implementing NFSv3 support, fixing bugs and
+performance problems -- the goal is to have good NFS support. The work done in
+a previous unfinished GSoC project can serve as a starting point.
+
+Both client and server parts need work, though the client is probably much more
+important for now, and shall be the major focus of this project.
+
+Some [discussion of NFS
+improvements](http://lists.gnu.org/archive/html/bug-hurd/2008-04/msg00035.html)
+has been done for a former GSoC application -- it might give you some pointers.
+But don't take any of the statements made there for granted -- check the facts
+yourself!
+
+This task, [[!GNU_Savannah_task 5497]], has no special prerequisites besides general programming skills, and
+an interest in file systems and network protocols.
+
+Possible mentors: ?
+
+Exercise: Look into one of the existing issues in the NFS code. It's quite
+possible that you will not be able to fix any of the visible problems before
+the end of the application process; but you might discover something else you
+could improve in the code while working on it :-)
+
+If you can't find anything suitable, talk to us about possible other exercise
+tasks.
diff --git a/community/gsoc/project_ideas/package_manager.mdwn b/community/gsoc/project_ideas/package_manager.mdwn
new file mode 100644
index 00000000..23304f6b
--- /dev/null
+++ b/community/gsoc/project_ideas/package_manager.mdwn
@@ -0,0 +1,51 @@
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!meta title="Hurdish Package Manager for the GNU System"]]
+
+Most GNU/Linux systems use pretty sophisticated package managers, to ease the
+management of installed software. These keep track of all installed files, and
+various kinds of other necessary information, in special databases. On package
+installation, deinstallation, and upgrade, scripts are used that make all kinds
+of modifications to other parts of the system, making sure the packages get
+properly integrated.
+
+This approach creates various problems. For one, *all* management has to be
+done with the distribution package management tools, or otherwise they would
+loose track of the system state. This is reinforced by the fact that the state
+information is stored in special databases, that only the special package
+management tools can work with.
+
+Also, as changes to various parts of the system are made on certain events
+(installation/deinstallation/update), managing the various possible state
+transitions becomes very complex and bug-prone.
+
+For the official (Hurd-based) GNU system, a different approach is intended:
+making use of Hurd [[translators|hurd/translator]] -- more specifically their
+ability to present existing data in a different form -- the whole system state
+will be created on the fly, directly from the information provided by the
+individual packages. The visible system state is always a reflection of the
+sum of packages installed at a certain moment; it doesn't matter how this state
+came about. There are no global databases of any kind. (Some things might
+require caching for better performance, but this must happen transparently.)
+
+The core of this approach is formed by [[hurd/translator/stowfs]], which
+creates a traditional Unix directory structure from all the files in the
+individual package directories. But this only handles the lowest level of
+package management. Additional mechanisms are necessary to handle stuff like
+dependencies on other packages.
+
+The goal of this task is to create these mechanisms.
+
+Possible mentors: Ben Asselstine (bing)
+
+Exercise: Make some improvement to any of the existing Hurd translators.
+Especially those in [hurdextras](http://www.nongnu.org/hurdextras/) are often
+quite rudimentary, and it shouldn't be hard to find something to improve.
diff --git a/community/gsoc/project_ideas/perl_python.mdwn b/community/gsoc/project_ideas/perl_python.mdwn
new file mode 100644
index 00000000..34e877ab
--- /dev/null
+++ b/community/gsoc/project_ideas/perl_python.mdwn
@@ -0,0 +1,38 @@
+[[!meta copyright="Copyright © 2009, 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!meta title="Improving Perl or Python Support"]]
+
+Perl and Python are available on the Hurd, but there are quite a lot of test suite
+failures. These could be caused by problems in the system-specific
+implementation bits of Perl/Python, and/or shortcomings in the actual system
+functionality which Perl/Python depends on.
+
+The student applying for this project can pick either Perl or Python,
+whichever he is more comfortable with.
+(Perl is higher priority though; and there are more failures too.)
+
+The goal then is to fix all of the problems with the chosen language if possible, or at
+least some of them. Some issues might require digging quite deep into Hurd
+internals, while others are probably easy to fix.
+
+Note that while some Perl/Python knowledge is probably necessary to understand what
+the test suite failures are about, the actual work necessary to fix these
+issues is mostly C programming -- in the implementation of Perl/Python and/or the
+Hurd.
+
+Possible mentors: Samuel Thibault (youpi)
+
+Exercise: Take a stab at one of the testsuite failures,
+and write a minimal testcase exposing the underlying problem.
+Actually fixing it would be a bonus of course --
+but as it's hard to predict which issues will be easy and which will be tricky,
+we will already be satisfied if the student makes a good effort.
+(We hope to see some discussion of the problems in this case though :-) )
diff --git a/community/gsoc/project_ideas/procfs.mdwn b/community/gsoc/project_ideas/procfs.mdwn
new file mode 100644
index 00000000..d4760aae
--- /dev/null
+++ b/community/gsoc/project_ideas/procfs.mdwn
@@ -0,0 +1,45 @@
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!meta title="procfs"]]
+
+Although there is no standard (POSIX or other) for the layout of the `/proc`
+pseudo-filesystem, it turned out a very useful facility in GNU/Linux and other
+systems, and many tools concerned with process management use it. (`ps`, `top`,
+`htop`, `gtop`, `killall`, `pkill`, ...)
+
+Instead of porting all these tools to use [[hurd/libps]] (Hurd's official method for
+accessing process information), they could be made to run out of the box, by
+implementing a Linux-compatible `/proc` filesystem for the Hurd.
+
+The goal is to implement all `/proc` functionality needed for the various process
+management tools to work. (On Linux, the `/proc` filesystem is used also for
+debugging purposes; but this is highly system-specific anyways, so there is
+probably no point in trying to duplicate this functionality as well...)
+
+The [[existing_partially_working_procfs_implementation|hurd/translator/procfs]]
+can serve as a starting point, but needs to be largely rewritten. (It should
+use [[hurd/libnetfs]] rather than [[hurd/libtrivfs]]; the data format needs to
+change to be more Linux-compatible; and it needs adaptation to newer system
+interfaces.)
+
+This project requires learning [[hurd/translator]] programming, and
+understanding some of the internals of process management in the Hurd. It
+should not be too hard coding-wise; and the task is very nicely defined by the
+existing Linux `/proc` interface -- no design considerations necessary.
+
+**Note**: We already have several applications for this task.
+
+Possible mentors: Olaf Buddenhagen (antrik)
+
+Exercise: Add or fix one piece in the existing procfs translator.
+
+*Status*: Madhusudan.C.S has implemented a new, fully functional [[procfs|madhusudancs]] for
+GSoC 2008. He is still working on some outstanding issues.
diff --git a/community/gsoc/project_ideas/pthreads.mdwn b/community/gsoc/project_ideas/pthreads.mdwn
new file mode 100644
index 00000000..61c8c079
--- /dev/null
+++ b/community/gsoc/project_ideas/pthreads.mdwn
@@ -0,0 +1,47 @@
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!meta title="Convert Hurd Libraries and Servers to pthreads"]]
+
+[[!tag open_issue_pthread]]
+
+The Hurd was originally created at a time when the [pthreads
+standard](http://www.opengroup.org/onlinepubs/009695399/basedefs/pthread.h.html)
+didn't exist yet. Thus all Hurd servers and libraries are using the old
+[[cthreads|hurd/libcthreads]] package that came with [[microkernel/Mach]],
+which is not compatible with [[pthreads|hurd/libpthread]].
+
+Not only does that mean that people hacking on Hurd internals have to deal with
+a non-standard thread package, which nobody is familiar with. Although a
+pthreads implementation for the Hurd was created in the meantime, it's not
+possible to use both cthreads and pthreads in the same program. Consequently,
+pthreads can't presently be used in any Hurd servers -- including translators.
+
+(Thus it's impossible to use the [Hurd
+libfuse](http://www.nongnu.org/hurdextras/#libfuse) with any FUSE modules
+depending on pthreads for example.)
+
+Most of the conversion has already been done in previous efforts (see
+[[!GNU_Savannah_task 5487]]) -- but the tricky parts are still missing.
+
+The goal of this project is to have all the Hurd code use pthreads. Should any
+limitations in the existing pthreads implementation turn up that hinder this
+transition, they will have to be fixed as well.
+
+This project requires relatively little Hurd-specific knowledge. Experience
+with multithreaded programming in general and pthreads in particular is
+required, though.
+
+Possible mentors: Barry deFreese (bddebian), Samuel Thibault (youpi)
+
+Exercise: Try to fix one of the outstanding issues with the work done so far.
+It's not yet complete, and there hasn't been much debugging yet, so it should
+not be too hard to find something needing improvement -- but if you don't see
+anything obvious, feel free to talk to us about an alternative exercise task.
diff --git a/community/gsoc/project_ideas/secure_chroot.mdwn b/community/gsoc/project_ideas/secure_chroot.mdwn
new file mode 100644
index 00000000..feb30a7c
--- /dev/null
+++ b/community/gsoc/project_ideas/secure_chroot.mdwn
@@ -0,0 +1,47 @@
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!meta title="Secure chroot Implementation"]]
+
+As the Hurd attempts to be (almost) fully [[UNIX]]-compatible, it also implements a
+`chroot()` system call. However, the current implementation is not really
+good, as it allows easily escaping the `chroot`, for example by use of
+[[passive_translators|hurd/translator]].
+
+Many solutions have been suggested for this problem -- ranging from simple
+workaround changing the behavior of passive translators in a `chroot`;
+changing the context in which passive translators are executed; changing the
+interpretation of filenames in a chroot; to reworking the whole passive
+translator mechanism. Some involving a completely different approach to
+`chroot` implementation, using a proxy instead of a special system call in the
+filesystem servers.
+
+See <http://tri-ceps.blogspot.com/2007/07/theory-of-filesystem-relativity.html>
+for some suggestions, as well as the followup discussions on
+<http://lists.gnu.org/archive/html/gnu-system-discuss/2007-09/msg00118.html>
+and <http://lists.gnu.org/archive/html/bug-hurd/2008-03/msg00089.html>.
+
+The task is to pick and implement one approach for fixing chroot.
+
+This task is pretty heavy: it requires a very good understanding of file name
+lookup and the translator mechanism, as well as of security concerns in general
+-- the student must prove that he really understands security implications of
+the UNIX namespace approach, and how they are affected by the introduction of
+new mechanisms. (Translators.) More important than the actual code is the
+documentation of what he did: he must be able to defend why he chose a certain
+approach, and explain why he believes this approach really secure.
+
+Possible mentors: Carl Fredrik Hammar (cfhammar)
+
+Exercise: It's hard to come up with a relevant exercise, as there are so many
+possible solutions... Probably best to make an improvement to one of the
+existing translators -- if possible, something touching name resolution or and
+such, e.g. implementing file_reparent() in a translator that doesn't support it
+yet.
diff --git a/community/gsoc/project_ideas/server_overriding.mdwn b/community/gsoc/project_ideas/server_overriding.mdwn
new file mode 100644
index 00000000..c35d88de
--- /dev/null
+++ b/community/gsoc/project_ideas/server_overriding.mdwn
@@ -0,0 +1,74 @@
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!meta title="Server Overriding Mechanism"]]
+
+The main idea of the Hurd is that every user can influence almost all system
+functionality ([[extensible_system|extensibility]]), by running private Hurd
+servers that replace or proxy the global default implementations.
+
+However, running such a customized subenvironment presently is not easy,
+because there is no standard mechanism to easily replace an individual standard
+server, keeping everything else. (Presently there is only the [[hurd/subhurd]]
+method, which creates a completely new system instance with a completely
+independent set of servers.)
+
+The goal of this project is to provide a simple method for overriding
+individual standard servers, using environment variables, or a special
+subshell, or something like that. It is closely related to the
+[[virtualization]] task.
+
+Various approaches for such a mechanism has been discussed before.
+Probably the easiest (1) would be to modify the Hurd-specific parts of [[hurd/glibc]],
+which are contacting various standard servers to implement certain system
+calls, so that instead of always looking for the servers in default locations,
+they first check for overrides in environment variables, and use these instead
+if present. Take a look at the [socket server overriding
+patch](http://www.assembla.com/spaces/VNetHurd/documents/aJidqKp6ur3z-Nab7jnrAJ/download/A%20patch%20of%20glibc)
+for an example.
+
+A somewhat more generic solution (2) could use some mechanism for arbitrary
+client-side namespace overrides. The client-side part of the filename lookup
+mechanism would have to check an override table on each lookup, and apply the
+desired replacement whenever a match is found.
+
+Another approach would be server-side overrides. Again there are various
+variants. The actual servers themselves could provide a mechanism to redirect to
+other servers on request. (3) Or we could use some more generic server-side
+namespace overrides: Either all filesystem servers could provide a mechanism to
+modify the namespace they export to certain clients (4), or proxies could be
+used that mirror the default namespace but override certain locations. (5)
+
+Variants (4) and (5) are the most powerful. They are intimately related to
+chroots: (4) is like the current chroot implementation works in the Hurd, and
+(5) has been proposed as an alternative. The generic overriding mechanism could
+be implemented on top of chroot, or chroot could be implemented on top of the
+generic overriding mechanism. But this is out of scope for this project...
+
+In practice, probably a mix of the different approaches would prove most useful
+for various servers and use cases. It is strongly recommended that the student
+starts with (1) as the simplest approach, perhaps augmenting it with (3) for
+certain servers that don't work with (1) because of indirect invocation.
+
+This tasks requires some understanding of the Hurd internals, especially a good
+understanding of the file name lookup mechanism. It's probably not too heavy on
+the coding side.
+
+This is [[!GNU_Savannah_task 6612]]. Also there are quite a bit of emails
+discussing this topic, from a previous year's GSoC application -- see
+<http://lists.gnu.org/archive/html/bug-hurd/2007-03/msg00050.html>,
+<http://lists.gnu.org/archive/html/bug-hurd/2007-03/msg00114.html>,
+<http://lists.gnu.org/archive/html/bug-hurd/2007-06/msg00082.html>,
+<http://lists.gnu.org/archive/html/bug-hurd/2008-03/msg00039.html>.
+
+Possible mentors: Olaf Buddenhagen (antrik), Carl Fredrik Hammar (cfhammar)
+
+Exercise: Come up with a glibc patch that allows overriding one specific
+standard server using method (1).
diff --git a/community/gsoc/project_ideas/sound.mdwn b/community/gsoc/project_ideas/sound.mdwn
new file mode 100644
index 00000000..8411831b
--- /dev/null
+++ b/community/gsoc/project_ideas/sound.mdwn
@@ -0,0 +1,42 @@
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!meta title="Sound Support"]]
+
+The Hurd presently has no sound support. Fixing this, [[!GNU_Savannah_task
+5485]], requires two steps: the first is to port some other kernel's drivers to
+[[GNU_Mach|microkernel/mach/gnumach]] so we can get access to actual sound
+hardware. The second is to implement a userspace server ([[hurd/translator]]),
+that implements an interface on top of the kernel device that can be used by
+applications -- probably OSS or maybe ALSA.
+
+Completing this task requires porting at least one driver (e.g. from Linux) for
+a popular piece of sound hardware, and the basic userspace server. For the
+driver part, previous experience with programming kernel drivers is strongly
+advisable. The userspace part requires some knowledge about programming Hurd
+translators, but shouldn't be too hard.
+
+Once the basic support is working, it's up to the student to use the remaining
+time for porting more drivers, or implementing a more sophisticated userspace
+infrastructure. The latter requires good understanding of the Hurd philosophy,
+to come up with an appropriate design.
+
+Another option would be to evaluate whether a driver that is completely running
+in user-space is feasible. <!-- TODO. Elaborate. -->
+
+Possible mentors: Samuel Thibault (youpi)
+
+Exercise: This project requires kernel (driver framework) hacking as well as
+some Hurd server hacking; so the exercise should involve either of these, or
+even both. You could for example port some newer driver to run in the existing
+framework (see the [[device_driver|driver_glue_code]] project description), or
+try to make some fix(es) to the [unfinished random device
+implementation](http://savannah.gnu.org/patch/?6088) created by Michael
+Casadevall.
diff --git a/community/gsoc/project_ideas/tcp_ip_stack.mdwn b/community/gsoc/project_ideas/tcp_ip_stack.mdwn
new file mode 100644
index 00000000..331336ac
--- /dev/null
+++ b/community/gsoc/project_ideas/tcp_ip_stack.mdwn
@@ -0,0 +1,42 @@
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!meta title="Hurdish TCP/IP Stack"]]
+
+The Hurd presently uses a [[TCP/IP_stack|hurd/translator/pfinet]] based on code from an old Linux version.
+This works, but lacks some rather important features (like PPP/PPPoE), and the
+design is not hurdish at all.
+
+A true hurdish network stack will use a set of [[hurd/translator]] processes,
+each implementing a different protocol layer. This way not only the
+implementation gets more modular, but also the network stack can be used way
+more flexibly. Rather than just having the standard socket interface, plus some
+lower-level hooks for special needs, there are explicit (perhaps
+filesystem-based) interfaces at all the individual levels; special application
+can just directly access the desired layer. All kinds of packet filtering,
+routing, tunneling etc. can be easily achieved by stacking components in the
+desired constellation.
+
+Implementing a complete modular network stack is not feasible as a GSoC
+project, though. Instead, the task is to take some existing user space TCP/IP
+implementation, and make it run as a single Hurd server for now, so it can be
+used in place of the existing pfinet. The idea is to split it up into
+individual layers later. The initial implementation, and the choice of a TCP/IP
+stack, should be done with this in mind -- it needs to be modular enough to
+make such a split later on feasible.
+
+This is [[!GNU_Savannah_task 5469]].
+
+Possible mentors: zhengda
+
+Exercise: You could try making some improvement to the existing pfinet
+implementation; or you could work towards running some existing userspace
+TCP/IP stack on Hurd. (As a normal program for now, not a proper Hurd server
+yet.)
diff --git a/community/gsoc/project_ideas/testsuites.mdwn b/community/gsoc/project_ideas/testsuites.mdwn
new file mode 100644
index 00000000..4f8d43fc
--- /dev/null
+++ b/community/gsoc/project_ideas/testsuites.mdwn
@@ -0,0 +1,52 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!meta title="Fix Compatibility Problems Exposed by Testsuites"]]
+
+A number of software packages come with extensive testsuites.
+Some notable ones are Perl, Python, GNU Coreutils, and glib.
+While these testsuites were written mostly to track regressions in the respective packages,
+some of the tests fail on the Hurd in general.
+
+While in some cases these might point to wrong usage of system interfaces,
+most of the time such failures are actually caused by shortcomings in Hurd's implementation of these interfaces.
+These shortcomings are often not obvious in normal use,
+but can be directly or indirectly responsible for all kinds of failures.
+The testsuites help in isolating such problems,
+so they can be tracked down and fixed.
+
+This task thus consists in running some of the mentioned testsuites
+(and/or any other ones that come to mind),
+and looking into the causes of failures.
+The goal is to analyze all failures in one or more of the listed testsuites,
+to find out what shortcomings in the Hurd implementation cause them (if any),
+and to fix at least some of these shortcomings.
+
+Note that this task somewhat overlaps with the [[Perl/Python task|perl_python]] listed above.
+Here the focus however is not on improving the support for any particular program,
+but on fixing general problems in the Hurd.
+
+This is a very flexible task:
+while less experienced students should be able to tackle at least a few of the easier problems,
+other issues will be challenging even for experienced hackers.
+No specific previous knowledge is required for this task;
+only fairly decent C programming skills.
+While tracking down the various issues,
+the student will be digging into the inner workings of the Hurd,
+and thus gradually gaining the knowledge required for Hurd development in general.
+
+Possible mentors: Samuel Thibault (youpi)
+
+Exercise: Take a stab at one of the testsuite failures,
+and write a minimal testcase exposing the underlying problem.
+Actually fixing it would be a bonus of course --
+but as it's hard to predict which issues will be easy and which will be tricky,
+we will already be satisfied if the student makes a good effort.
+(We hope to see some discussion of the problems in this case though :-) )
diff --git a/community/gsoc/project_ideas/tmpfs.mdwn b/community/gsoc/project_ideas/tmpfs.mdwn
new file mode 100644
index 00000000..63b4effe
--- /dev/null
+++ b/community/gsoc/project_ideas/tmpfs.mdwn
@@ -0,0 +1,45 @@
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!meta title="Fix tmpfs"]]
+
+In some situations it is desirable to have a file system that is not backed by
+actual disk storage, but only by anonymous memory, i.e. lives in the RAM (and
+possibly swap space).
+
+A simplistic way to implement such a memory filesystem is literally creating a
+ramdisk, i.e. simply allocating a big chunk of RAM (called a memory store in
+Hurd terminology), and create a normal filesystem like ext2 on that. However,
+this is not very efficient, and not very convenient either (the filesystem
+needs to be recreated each time the ramdisk is invoked). A nicer solution is
+having a real [[hurd/translator/tmpfs]], which creates all filesystem
+structures directly in RAM, allocating memory on demand.
+
+The Hurd has had such a tmpfs for a long time. However, the existing
+implementation doesn't work anymore -- it got broken by changes in other parts
+of the Hurd design.
+
+There are several issues. The most serious known problem seems to be that for
+technical reasons it receives [[microkernel/mach/RPC]]s from two different
+sources on one [[microkernel/mach/port]], and gets mixed up with them. Fixing
+this is non-trivial, and requires a good understanding of the involved
+mechanisms.
+
+The goal of this project is to get a fully working, full featured tmpfs
+implementation. It requires digging into some parts of the Hurd, including the
+[[pager_interface|hurd/libpager]] and [[hurd/translator]] programming. This
+task probably doesn't require any design work, only good debugging skills.
+
+Possible mentors: Carl Fredrik Hammar (cfhammar)
+
+Exercise: Take a look at tmpfs and try to fix one of the existing issues. Some
+of them are probably not too tricky; or you might discover something else you
+could improve while working on it. If you don't find anything obvious, contact
+us about a different exercise task.
diff --git a/community/gsoc/project_ideas/unionfs_boot.mdwn b/community/gsoc/project_ideas/unionfs_boot.mdwn
new file mode 100644
index 00000000..d9f1a9e1
--- /dev/null
+++ b/community/gsoc/project_ideas/unionfs_boot.mdwn
@@ -0,0 +1,45 @@
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!meta title="Allow Using unionfs Early at Boot"]]
+
+In [[UNIX]] systems, traditionally most software is installed in a common directory
+hierarchy, where files from various packages live beside each other, grouped by
+function: user-invokable executables in `/bin`, system-wide configuration files
+in `/etc`, architecture specific static files in `/lib`, variable data in
+`/var`, and so on. To allow clean installation, deinstallation, and upgrade of
+software packages, GNU/Linux distributions usually come with a package manager,
+which keeps track of all files upon installation/removal in some kind of
+central database.
+
+An alternative approach is the one implemented by GNU Stow: each package is
+actually installed in a private directory tree. The actual standard directory
+structure is then created by collecting the individual files from all the
+packages, and presenting them in the common `/bin`, `/lib`, etc. locations.
+
+While the normal Stow package (for traditional UNIX systems) uses symlinks to
+the actual files, updated on installation/deinstallation events, the Hurd
+[[hurd/translator]] mechanism allows a much more elegant solution:
+[[hurd/translator/stowfs]] (which is actually a special mode of
+[[hurd/translator/unionfs]]) creates virtual directories on the fly, composed
+of all the files from the individual package directories.
+
+The problem with this approach is that unionfs presently can be launched only
+once the system is booted up, meaning the virtual directories are not available
+at boot time. But the boot process itself already needs access to files from
+various packages. So to make this design actually usable, it is necessary to
+come up with a way to launch unionfs very early at boot time, along with the
+root filesystem.
+
+Completing this task will require gaining a very good understanding of the Hurd
+boot process and other parts of the design. It requires some design skills
+also to come up with a working mechanism.
+
+Possible mentors: Carl Fredrik Hammar (cfhammar)
diff --git a/community/gsoc/project_ideas/unionmount.mdwn b/community/gsoc/project_ideas/unionmount.mdwn
new file mode 100644
index 00000000..86ef96c7
--- /dev/null
+++ b/community/gsoc/project_ideas/unionmount.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta redir=hurd/translator/unionmount]]
diff --git a/community/gsoc/project_ideas/valgrind.mdwn b/community/gsoc/project_ideas/valgrind.mdwn
new file mode 100644
index 00000000..c6fc7459
--- /dev/null
+++ b/community/gsoc/project_ideas/valgrind.mdwn
@@ -0,0 +1,80 @@
+[[!meta copyright="Copyright © 2009, 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!meta title="Porting Valgrind to the Hurd"]]
+
+[Valgrind](http://valgrind.org/) is an extremely useful debugging tool for memory errors.
+(And some other kinds of hard-to-find errors too.)
+Aside from being useful for program development in general,
+a Hurd port will help finding out why certain programs segfault on the Hurd,
+although they work on Linux.
+Even more importantly, it will help finding bugs in the Hurd servers themselfs.
+
+To keep track of memory use,
+Valgrind however needs to know how each system call affects the validity of memory regions.
+This knowledge is highly kernel-specific,
+and thus Valgrind needs to be explicitely ported for every system.
+
+Such a port involves two major steps:
+making Valgrind understand how kernel traps work in general on the system in question;
+and how all the individual kernel calls affect memory.
+The latter step is where most of the work is,
+as the behaviour of each single system call needs to be described.
+
+Compared to Linux,
+Mach (the microkernel used by the Hurd) has very few kernel traps.
+Almost all system calls are implemented as RPCs instead --
+either handled by Mach itself, or by the various Hurd servers.
+All RPCs use a pair of mach\_msg() invocations:
+one to send a request message, and one to receive a reply.
+However, while all RPCs use the same mach\_msg() trap,
+the actual effect of the call varies greatly depending on which RPC is invoked --
+similar to the ioctl() call on Linux.
+Each request thus must be handled individually.
+
+Unlike ioctl(),
+the RPC invocations have explicit type information for the parameters though,
+which can be retrieved from the message header.
+By analyzing the parameters of the RPC reply message,
+Valgrind can know exactly which memory regions are affected by that call,
+even without specific knowledge of the RPC in question.
+Thus implementing a general parser for the reply messages
+will already give Valgrind a fairly good approximation of memory validity --
+without having to specify the exact semantic of each RPC by hand.
+
+While this should make Valgrind quite usable on the Hurd already, it's not perfect:
+some RPCs might return a buffer that is only partially filled with valid data;
+or some reply parameters might be optional,
+and only contain valid data under certain conditions.
+Such specific semantics can't be deduced from the message headers alone.
+Thus for a complete port,
+it will still be necessary to go through the list of all known RPCs,
+and implement special handling in Valgrind for those RPCs that need it.
+
+The goal of this task is at minimum to make Valgrind grok Mach traps,
+and to implement the generic RPC handler.
+Ideally, specific handling for RPCs needing it should also be implemented.
+
+Completing this project will require digging into Valgrind's handling of system calls,
+and into Hurd RPCs.
+It is not an easy task, but a fairly predictable one --
+there shouldn't be any unexpected difficulties,
+and no major design work is necessary.
+It doesn't require any specific previous knowledge:
+only good programming skills in general.
+On the other hand,
+the student will obtain a good understanding of Hurd RPCs while working on this task,
+and thus perfect qualifications for Hurd development in general :-)
+
+Possible mentors: Samuel Thibault (youpi)
+
+Exercise: As a starter,
+students can try to teach valgrind a couple of Linux ioctls,
+as this will make them learn how to use the read/write primitives of valgrind.
diff --git a/community/gsoc/project_ideas/virtualization.mdwn b/community/gsoc/project_ideas/virtualization.mdwn
new file mode 100644
index 00000000..822b8d99
--- /dev/null
+++ b/community/gsoc/project_ideas/virtualization.mdwn
@@ -0,0 +1,76 @@
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!meta title="Virtualization Using Hurd Mechanisms"]]
+
+The main idea behind the Hurd design is to allow users to replace almost any
+system functionality ([[extensible_system|extensibility]]). Any user can easily
+create a subenvironment using some custom [[servers|hurd/translator]] instead
+of the default system servers. This can be seen as an
+[[advanced_lightweight_virtualization|hurd/virtualization]] mechanism, which
+allows implementing all kinds of standard and nonstandard virtualization
+scenarios.
+
+However, though the basic mechanisms are there, currently it's not easy to make
+use of these possibilities, because we lack tools to automatically launch the
+desired constellations.
+
+The goal is to create a set of powerful tools for managing at least one
+desirable virtualization scenario. One possible starting point could be the
+[[hurd/subhurd]]/[[hurd/neighborhurd]] mechanism, which allows a second almost totally
+independent instance of the Hurd in parallel to the main one.
+
+While subhurd allow creating a complete second system instance, with an own set
+of Hurd servers and [[UNIX]] daemons and all, there are also situations where it is
+desirable to have a smaller subenvironment, living withing the main system and
+using most of its facilities -- similar to a chroot environment. A simple way
+to create such a subenvironment with a single command would be very helpful.
+
+It might be possible to implement (perhaps as a prototype) a wrapper using
+existing tools (chroot and [[hurd/translator/unionfs]]); or it might require more specific tools,
+like some kind of unionfs-like filesystem proxy that mirrors other parts of the
+filesystem, but allows overriding individual locations, in conjunction with
+either chroot or some similar mechanism to create a subenvironment with a
+different root filesystem.
+
+It's also desirable to have a mechanism allowing a user to set up such a custom
+environment in a way that it will automatically get launched on login --
+practically allowing the user to run a customized operating system in his own
+account.
+
+Yet another interesting scenario would be a subenvironment -- using some kind
+of special filesystem proxy again -- in which the user serves as root, being
+able to create local sub-users and/or sub-groups.
+
+This would allow the user to run "dangerous" applications (webbrowser, chat
+client etc.) in a confined fashion, allowing it access to only a subset of the
+user's files and other resources. (This could be done either using a lot of
+groups for individual resources, and lots of users for individual applications;
+adding a user to a group would give the corresponding application access to the
+corresponding resource -- an advanced [[ACL]] mechanism. Or leave out the groups,
+assigning the resources to users instead, and use the Hurd's ability for a
+process to have multiple user IDs, to equip individual applications with sets
+of user IDs giving them access to the necessary resources -- basically a
+[[capability]] mechanism.)
+
+The student will have to pick (at least) one of the described scenarios -- or
+come up with some other one in a similar spirit -- and implement all the tools
+(scripts, translators) necessary to make it available to users in an
+easy-to-use fashion. While the Hurd by default already offers the necessary
+mechanisms for that, these are not perfect and could be further refined for
+even better virtualization capabilities. Should need or desire for specific
+improvements in that regard come up in the course of this project, implementing
+these improvements can be considered part of the task.
+
+Completing this project will require gaining a very good understanding of the
+Hurd architecture and spirit. Previous experience with other virtualization
+solutions would be very helpful.
+
+Possible mentors: Olaf Buddenhagen (antrik), Carl Fredrik Hammar (cfhammar)
diff --git a/community/gsoc/project_ideas/vm_tuning.mdwn b/community/gsoc/project_ideas/vm_tuning.mdwn
new file mode 100644
index 00000000..ecc5f9f4
--- /dev/null
+++ b/community/gsoc/project_ideas/vm_tuning.mdwn
@@ -0,0 +1,35 @@
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!meta title="VM Tuning"]]
+
+Hurd/[[microkernel/Mach]] presently make very bad use of the available physical memory in the
+system. Some of the problems are inherent to the system design (the kernel
+can't distinguish between important application data and discardable disk
+buffers for example), and can't be fixed without fundamental changes. Other
+problems however are an ordinary lack of optimization, like extremely crude
+heuristics when to start paging. (See <http://lists.gnu.org/archive/html/bug-hurd/2007-08/msg00034.html> for example.)
+Many parameters are based on assumptions from
+a time when typical machines had like 16 MiB of RAM, or simply have been set to
+arbitrary values and never tuned for actual use.
+
+The goal of this project is to bring the virtual memory management in Hurd/Mach
+closer to that of modern mainstream kernels (Linux, FreeBSD), by comparing the
+implementation to other systems, implementing any worthwhile improvements, and
+general optimization/tuning. It requires very good understanding of the Mach
+VM, and virtual memory in general.
+
+This project is related to [[!GNU_Savannah_task 5489]].
+
+Possible mentors: Samuel Thibault (youpi)
+
+Exercise: Make some modification to the existing VM code. You could try to find
+a piece of code that can be improved with simple code optimization, for
+example.
diff --git a/community/gsoc/project_ideas/xattr.mdwn b/community/gsoc/project_ideas/xattr.mdwn
new file mode 100644
index 00000000..7178d826
--- /dev/null
+++ b/community/gsoc/project_ideas/xattr.mdwn
@@ -0,0 +1,47 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!meta title="Implement xattr Support"]]
+
+Extended attributes (xattr) are a standardized, generic method for storing
+additional metadata along with a file (inode). Most modern UNIX filesystems
+support xattrs.
+
+In general, xattrs should be used sparingly, as they are less transparent than
+data stored as explicit file contents; however, there are some cases where they
+really make sense. The Hurd's variant of ext2 presently uses some additional
+fields in the inode to store Hurd-specific metadata: most notable passive
+translator settings. As these fields are Hurd-specific, they can't be accessed
+by the standard methods from Linux for example, so it's not possible to fully
+work with a Hurd filesystem on GNU/Linux (copy, backup etc.); and also, even
+when on Hurd, only tools that explicitly support the Hurd-specific information
+can handle them.
+
+Using extended attributes instead of custom fields for the Hurd-specific
+information would be very helpful.
+
+The most important goal of this project thus is to make the Hurd ext2fs server
+able to store and read the Hurd-specific information with extended attributes
+instead of the custom fields, so it become accessible from other systems. Being
+able to access the information through the standard xattr API instead of
+Hurd-specific calls is also desirable. (And in turn requires implementing the
+generic xattr API first, which can be useful for other purposes as well.)
+
+Completing this project will require digging into some parts of the Hurd, but
+it should be quite doable without previous Hurd experience. Some experience
+with xattrs might help a bit, but shouldn't be really necessary either.
+
+Some previous work on xattr support is available in [[!GNU_Savannah_patch
+5126]], and might serve as a starting point.
+
+Possible mentors: Samuel Thibault (youpi)
+
+Exercise: Implement support for different inode sizes (other than 128 bytes) in
+Hurd's ext2fs.
diff --git a/community/gsoc/project_ideas/xmlfs.mdwn b/community/gsoc/project_ideas/xmlfs.mdwn
new file mode 100644
index 00000000..5e5eaa13
--- /dev/null
+++ b/community/gsoc/project_ideas/xmlfs.mdwn
@@ -0,0 +1,54 @@
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!meta title="xmlfs"]]
+
+Hurd [[translators|hurd/translator]] allow presenting underlying data in a
+different format. This is a very powerful ability: it allows using standard
+tools on all kinds of data, and combining existing components in new ways, once
+you have the necessary translators.
+
+A typical example for such a translator would be xmlfs: a translator that
+presents the contents of an underlying XML file in the form of a directory
+tree, so it can be studied and edited with standard filesystem tools, or using
+a graphical file manager, or to easily extract data from an XML file in a
+script etc.
+
+The exported directory tree should represent the DOM structure of the document,
+or implement XPath/XQuery, or both, or some combination thereof (perhaps XPath/XQuery could
+be implemented as a second translator working on top of the DOM one) --
+whatever works well, while sticking to XML standards as much as possible.
+
+Ideally, the translation should be reversible, so that another, complementary
+translator applied on the expanded directory tree would yield the original XML
+file again; and also the other way round, applying the complementary translator
+on top of some directory tree and xmlfs on top of that would yield the original
+directory again. However, with the different semantics of directory trees and
+XML files, it might not be possible to create such a universal mapping. Thus
+it is a desirable goal, but not a strict requirement.
+
+The goal of this project is to create a fully usable XML translator, that
+allows both reading and writing any XML file. Implementing the complementary
+translator also would be nice if time permits, but is not mandatory part of the
+task.
+
+The [[existing_partial_(read-only)_xmlfs_implementation|hurd/translator/xmlfs]]
+can serve as a starting point.
+
+This task requires pretty good designing skills. Very good knowledge of XML is also
+necessary. Learning translator programming will obviously be necessary to
+complete the task.
+
+Possible mentors: Olaf Buddenhagen (antrik)
+
+Exercise: Make some improvement to the existing xmlfs, or some other existing
+Hurd translator. (Especially those in
+[hurdextras](http://www.nongnu.org/hurdextras/) are often quite rudimental --
+it shouldn't be hard to find something to improve...)
diff --git a/community/gsoc/student_application_form.mdwn b/community/gsoc/student_application_form.mdwn
index e5639f9e..ba339dc9 100644
--- a/community/gsoc/student_application_form.mdwn
+++ b/community/gsoc/student_application_form.mdwn
@@ -1,61 +1,74 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
Before we get to the actual application form, some important remarks about the
application process -- please read them carefully.
+First of all, please give your application a useful title. In many cases, you
+can simply copy it from the project ideas list. Some ideas -- like language
+bindings for example -- are rather broad, and require an additional specifier.
+(e.g. "Python Bindings")
+
+If you are proposing a project not on the ideas list, you have to find a useful
+title yourself of course -- but surely this isn't hard, if you were able to
+come up with your own project idea :-)
+
Submitting the application form is only part of the deal: we expect a few other
-things on top of that. Lacking these, the application is not complete, and we
+things on top of that, as explained below. This is important, so please take
+it seriously -- without these things, the application is not complete, and we
won't consider it.
One of the things we expect is that you contact us directly as soon as possible
(preferably even before you send the application form), on our developer
-[[mailing_lists]] and [[IRC]] channel. Don't be afraid -- we won't bite :-) IRC
+[[mailing lists]] and [[IRC]] channel. Don't be afraid -- we won't bite :-) IRC
in particular allows for very informal conversations.
(Note though that we are not all in the same time zone, and people generally
-don't stare at the IRC screen all the time -- it can take quite a long time
-until somebody replies: even several hours. Don't get discouraged by that: Just
+don't stare at the IRC screen all the time: it can take quite a long time
+until somebody replies -- even several hours. Don't get discouraged by that. Just
be patient and hang on, or try again later.)
Contacting us as soon as possible is crucial, as regular communication is the
single most important factor for a successful GSoC project. We need to see that
-you are able and willing to talk to us regularily. Also it allows us getting to
-know you much better than the application form alone could.
+you are able and willing to talk to us regularly. Also, we get to
+know you much better this way than what the application form alone would allow us to.
-You shouldn't be at a loss for reason to contact us. You ought to discuss your
-project and application with us for exmple: You will gain a much better idea
-about the project, our expectations etc. -- in short, you will be able to
-submit a better application right from the beginnig, saving both yourself and
-us some tedious roundtrips :-)
+You shouldn't be at a loss for reasons to contact us. You ought to discuss your
+project and application with us for example -- you will gain a much better idea
+about the project, our expectations etc. In short, you will be able to
+submit a better application right from the beginning, saving both yourself and
+us some tedious round trips :-)
Also, if you really want to get involved with the Hurd project, there are
-surely many things you will want to know :-) All in all, you should have ample
+surely many things you will want to know -- after all, it's a fascinating
+project, with a fascinating architecture etc., right? :-)
+
+All in all, you should have ample
causes to get in touch during the application period. Bonus points if you also
participate in discussions not directly related to your project.
The other thing necessary to complete your application is making a change to
-some part of the Hurd code, and submitting a patch with the change. (If you are
+some part of the Hurd code, and submitting a patch implementing that change. (If you are
not sure what that means, ask us!)
This is important, as it shows that you have everything set up to start hacking
-on the project (source code, tool chain, testing environment etc.), and that
-you have all kinds of qualifications necessary to successfully finish the
-project: general programming abilities; working in the Hurd environment;
+on the project (source code, tool chain, testing environment etc.); and that
+you have all kinds of qualifications necessary to successfully finish your
+project: general programming skills; working in the Hurd environment;
submitting patches and reacting to feedback; finding and/or asking for any
information you need; and so on.
Don't get us wrong: We absolutely do *not* demand that you have and know all
this up front. After all, the idea of GSoC is to *introduce* you to free
software development in general, and to our project specifically :-) We are
-willing to help you with anything you will need to create the patch -- you just
+eager to help you with anything you will need to create the patch -- you just
need to ask!
We actively encourage you to contact us whenever you have any doubts. Don't be
@@ -63,7 +76,7 @@ afraid that we will think worse of you when you ask too much. On the contrary:
this is an occasion for you to show us that whenever there is something you
don't know yet, you are able to learn quickly, and know how to ask for help :-)
-As for the kind of change we want: Ideally, it would be some real improvement
+As for the kind of change we want: ideally, it would be some real improvement
(bug fix or new feature) in a part of the Hurd related to the specific project
you want to work on. (This is not always possible though -- in that case, a
useful change to some unrelated part of the Hurd would also do, or perhaps some
@@ -92,9 +105,17 @@ you are unsure about something.
And now that you are prepared to face the enemy, here we go :-)
+* Please supply your contact information here: full name, email address, IRC
+nick, Jabber ID, phone number, etc. -- anything we might need to recognize you
+and to keep in touch.
+
+* Introduce yourself: who are you, where are you from, what do you do, how did
+you get here... Don't write a long essay here -- just a bunch of basic facts
+you think we should know, so we get some idea whom we are talking to :-)
+
* Please describe the task of the project you want to work on, in your own
words. Be as specific as possible. It's not sufficient to rephrase the
-description from the project ideas page; show us that you actually understand
+description from the project ideas page -- show us that you actually understand
what this task involves! Read the available documentation (and possibly code)
if necessary. And don't hesitate to ask us if you have any doubts :-)
@@ -107,7 +128,7 @@ ready to be merged to mainline. Experience shows that adding the "final
touches" necessary for that, tends to take up quite a lot of time -- there are
always some bugs here and there, some misunderstandings about how things are
supposed to work, build system issues, missing documentation, forgotten bits,
-and so on. Thus, the schedule should suppose that a larger part of the main
+and so on. Thus, the schedule should assume that a larger part of the main
implementation work will be done by midterm!
Also note that by the beginning of the summer session, you need to be able to
@@ -153,12 +174,12 @@ the application process.
* Do you have a permanent internet connection, especially during the time of
the summer session? Are you able and willing to hang out on the Hurd IRC
-channel regularily? (As in: Running the IRC client more or less permanently and
+channel regularly? (As in: Running the IRC client more or less permanently and
checking for activity now and then.) If it turns out that your mentor lives in
a different time zone, could you shift your day/night rhythm to better match
that of your mentor and other Hurd developers?
-Hint: Hanging out on the channel regularily during the application process
+Hint: Hanging out on the channel regularly during the application process
would be a good start :-)
* When does your university term end, when are your exams, and when does the
@@ -181,8 +202,8 @@ intend to make sure you will be able to dedicate sufficient time to your
project nevertheless?
Please be open about this, and also mention things you are not yet sure about.
-We can be flexible about time arrangements; but we need to know about any
-possible obstacles up front.
+We can be flexible about time arrangements; but we absolutely need to know about any
+possible obstacles up front. Surprises on that score are not acceptable.
* How do you intend to make sure that your code will keep on being maintained
and supported properly after the end of the GSoC program?
diff --git a/community/gsoc/xorg_ideas.mdwn b/community/gsoc/xorg_ideas.mdwn
new file mode 100644
index 00000000..26177345
--- /dev/null
+++ b/community/gsoc/xorg_ideas.mdwn
@@ -0,0 +1,67 @@
+[[!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]]."]]"""]]
+
+## VT Switching for GNU Hurd
+
+While XFree86 was first ported to the Hurd more than a decade ago, and there
+are updates now and then to make newer versions of Xorg run as well,
+the support is quite rudimentary: in particular, there
+is no support for switching back to the text console while X is running.
+
+Implementing this requires creating an interface between the X server and the
+Hurd console, and implementing the necessary code on both sides.
+
+The goal of this project is to get console switching fully working on the Hurd.
+Some Hurd-specific and X-specific knowlegde will need to be obtained, but the
+task should be quite doable without previous experience with either. It
+requires implementing some pieces of code that are not quite trivial, but
+shouldn't be terribly hard either.
+
+Exercise: Try fixing <http://savannah.gnu.org/bugs/?21000>, or perhaps some
+other minor issue with X on the Hurd.
+
+
+## Initial work on porting DRM to GNU Hurd
+
+The Direct Rendering Manager (DRM) is a kernel driver component taking care of
+graphics hardware access. Originally, it only took care of the 3D acceleration
+unit, and was used mostly by the DRI (Direct Rendering Infrastructure) in Mesa.
+
+A few years ago, the developers came to the conclusion that a more robust
+and functional graphics stack requires the kernel driver to take care of other
+graphics access as well: mode setting in particular. (Essentially what the old
+KGI project proposed, see <http://www.kgi-project.org>.) Also, with the new GEM
+interface, the DRM now takes care of graphics memory management as well.
+
+With the new responsibilities, the DRM is no longer an optional addon for fast
+3D support, but a central component of the graphics stack. It needs to be
+implemented by any operating system that wants good Xorg driver support in the
+future. (Moreover, it is now also useful outside the context of Xorg.)
+
+The Hurd implementation of DRM will be somewhat special, as -- following the
+microkernel idea -- we want to run the drivers as priviledged user space server
+processes, rather than actual kernel modules.
+
+This task is about doing the first steps for porting the DRM to the Hurd. This
+can be done by taking one of the existing DRM modesetting drivers (Intel, Nouveau (Nvidia), or
+Radeon), trying to get parts of it running as a Hurd server, and
+porting/implementing necessary pieces of the general DRM framework as needed
+along the way.
+
+It is probably not realistic to get the driver fully working over the summer.
+The goal however is to get at least some parts going.
+
+This task will require obtaining a considerable amount of knowledge about the
+Hurd and Mach (especially things like virtual memory management) -- it goes
+deep into system internals. Previous experience with operating system and/or
+graphics driver development would definitely be helpful.
+
+Exercise: Try to get some part of the driver compiling on the Hurd, using stubs
+for any system-specific functionality.
diff --git a/community/meetings.mdwn b/community/meetings.mdwn
index f3f66420..c7ed664d 100644
--- a/community/meetings.mdwn
+++ b/community/meetings.mdwn
@@ -1,25 +1,24 @@
-[[meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation,
+[[!meta copyright="Copyright © 2007, 2008, 2009, 2010 Free Software Foundation,
Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-[[meta title="Meetings with Hurd developer attendance"]]
+[[!meta title="Meetings with Hurd developer attendance"]]
# Upcoming
- * [[25C3]]
- * [[Self-organised_2008]]
- * [[EuroSys_2009]]
- * [[FOSDEM_2009]]
+ * [[Self-organised]]
# Past
+ * [[FOSDEM 2010]]
+ * [[EuroSys_2009]]
* [[FOSDEM_2008]]
* [[Weekend_at_stesie's|stesie_2007-10-12]]
* [[FOSDEM_2007]]
diff --git a/community/meetings/25c3.mdwn b/community/meetings/25c3.mdwn
deleted file mode 100644
index 59e7b22a..00000000
--- a/community/meetings/25c3.mdwn
+++ /dev/null
@@ -1,60 +0,0 @@
-[[meta copyright="Copyright © 2006, 2007, 2008 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=25C3]]
-
-<http://events.ccc.de/congress/2008/>
-
-The 25th Chaos Communication Congress will take place from Dezember 27th to
-30th at the bcc (Berliner Congress Center) in Berlin, Germany.
-
-
-# Who and When
-
-[[table class="table_style_1" data="""
-"Name","Attending","Arrival","Return","Share room with us"
-"Jeroen Dekkers","yes","?","?","?"
-"Marcus Brinkmann","yes","?","?","?"
-"Michael Banck","intends to go","?","?","?"
-"Neal Walfield","no","?","?","?"
-"Olaf Buddenhagen","yes","?","?","?"
-"[[Thomas_Schwinge|tschwinge]]","no","?","?","?"
-"Wouter van Heyst","yes","?","?","?"
-"""]]
-
-
-<!--
-# Accommodation
--->
-
-<!--
-(Large) evening counts:
-
-[[table class="table_style_1" data="""
- , Bas, Gianluca, Marcus, Michael, Neal, Olaf, Samuel, Soeren, Thomas, Total
-Thu 21, , 1? , *<strike>1</strike>*, , , , 1 , , *<strike>1</strike>*, *<strike>4</strike>* 2
-Fri 22, 2 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ,10
-Sat 23, 2 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ,10
-Sun 24, 2 , 1 , 1 , 1 , 1 , 1 , 1 , *<strike>1</strike>*, 1 , *<strike>10</strike>* 9
-"""]]
--->
-
-
-<!--
-# What
--->
-
-
-<!--
-# Photos
-
-Put links to your photos here.
--->
diff --git a/community/meetings/eurosys_2009.mdwn b/community/meetings/eurosys_2009.mdwn
index 30230a26..24c2b112 100644
--- a/community/meetings/eurosys_2009.mdwn
+++ b/community/meetings/eurosys_2009.mdwn
@@ -1,55 +1,25 @@
-[[meta copyright="Copyright © 2006, 2007, 2008 Free Software Foundation,
+[[!meta copyright="Copyright © 2006, 2007, 2008, 2009 Free Software Foundation,
Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-[[meta title="EuroSys 2009"]]
+[[!meta title="EuroSys 2009"]]
<http://eurosys2009.informatik.uni-erlangen.de/>
EuroSys will take place on March 30th to April 3rd in Nuremberg, Germany.
-# Who And When
+# Who and When
-[[table class="table_style_1" data="""
-"Name","Attending","Arrival","Return","Share room with us"
-"Neal Walfield","intends to go","?","?","?"
-"[[Samuel_Thibault|SamuelThibault]]","intends to go","?","?","?"
-"[[Thomas_Schwinge|tschwinge]]","intends to go","?","?","?"
+[[!table class="table_style_1" data="""
+"Name","Attending","Arrival","Return"
+"Neal Walfield","yes","Monday evening","Friday"
+"[[Thomas_Schwinge|tschwinge]]","yes","Monday evening","Friday"
"""]]
-
-
-<!--
-# Accommodation
--->
-
-<!--
-(Large) evening counts:
-
-[[table class="table_style_1" data="""
- , Bas, Gianluca, Marcus, Michael, Neal, Olaf, Samuel, Soeren, Thomas, Total
-Thu 21, , 1? , *<strike>1</strike>*, , , , 1 , , *<strike>1</strike>*, *<strike>4</strike>* 2
-Fri 22, 2 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ,10
-Sat 23, 2 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ,10
-Sun 24, 2 , 1 , 1 , 1 , 1 , 1 , 1 , *<strike>1</strike>*, 1 , *<strike>10</strike>* 9
-"""]]
--->
-
-
-<!--
-# What
--->
-
-
-<!--
-# Photos
-
-Put links to your photos here.
--->
diff --git a/community/meetings/fosdem_2005.mdwn b/community/meetings/fosdem_2005.mdwn
index c34319fb..8d7f459d 100644
--- a/community/meetings/fosdem_2005.mdwn
+++ b/community/meetings/fosdem_2005.mdwn
@@ -1,14 +1,14 @@
-[[meta copyright="Copyright © 2006, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2006, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-[[meta title="FOSDEM 2005"]]
+[[!meta title="FOSDEM 2005"]]
<http://fosdem.org/2005>
diff --git a/community/meetings/fosdem_2006.mdwn b/community/meetings/fosdem_2006.mdwn
index 8bf9967f..a869f262 100644
--- a/community/meetings/fosdem_2006.mdwn
+++ b/community/meetings/fosdem_2006.mdwn
@@ -1,15 +1,15 @@
-[[meta copyright="Copyright © 2006, 2007, 2008 Free Software Foundation,
+[[!meta copyright="Copyright © 2006, 2007, 2008 Free Software Foundation,
Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-[[meta title="FOSDEM 2006"]]
+[[!meta title="FOSDEM 2006"]]
<http://fosdem.org/2006>
diff --git a/community/meetings/fosdem_2007.mdwn b/community/meetings/fosdem_2007.mdwn
index 55d346fd..ab9fa413 100644
--- a/community/meetings/fosdem_2007.mdwn
+++ b/community/meetings/fosdem_2007.mdwn
@@ -1,15 +1,15 @@
-[[meta copyright="Copyright © 2006, 2007, 2008 Free Software Foundation,
+[[!meta copyright="Copyright © 2006, 2007, 2008 Free Software Foundation,
Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-[[meta title="FOSDEM 2007"]]
+[[!meta title="FOSDEM 2007"]]
<http://fosdem.org/2007>
@@ -18,7 +18,7 @@ Bruxelles.
# Who And When
-[[table class="table_style_1" data="""
+[[!table class="table_style_1" data="""
"Name","Attending","Arrival","Return","Share room with us"
"[[AlfredoBeaumont]]","no","n/a","n/a","n/a"
"[[AndrewResch]]","no","n/a","n/a","n/a"
@@ -88,7 +88,7 @@ Been there in 2006. It was okay.
[[SamuelThibault]] booked rooms at ~ 18.60€ there:
-[[table class="table_style_1" data="""
+[[!table class="table_style_1" data="""
"Night of...","Persons"
"2007-02-22","<strike>7</strike>**6**"
"2007-02-23","10"
diff --git a/community/meetings/fosdem_2008.mdwn b/community/meetings/fosdem_2008.mdwn
index fb4a3ae9..e9625fdf 100644
--- a/community/meetings/fosdem_2008.mdwn
+++ b/community/meetings/fosdem_2008.mdwn
@@ -1,15 +1,15 @@
-[[meta copyright="Copyright © 2006, 2007, 2008 Free Software Foundation,
+[[!meta copyright="Copyright © 2006, 2007, 2008 Free Software Foundation,
Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-[[meta title="FOSDEM 2008"]]
+[[!meta title="FOSDEM 2008"]]
<http://fosdem.org/2008>
@@ -19,7 +19,7 @@ Bruxelles.
# Who And When
-[[table class="table_style_1" data="""
+[[!table class="table_style_1" data="""
"Name","Attending","Arrival","Return","Share room with us"
"[[Bas_Wijnen|baswijnen]] and girlfriend","yes","Friday","Monday","yes (two)"
"Christian Dietrich","no","n/a","n/a","n/a"
@@ -42,7 +42,7 @@ Bruxelles.
(Large) evening counts:
-[[table class="table_style_1" data="""
+[[!table class="table_style_1" data="""
, Bas, Gianluca, Marcus, Michael, Neal, Olaf, Samuel, Soeren, Thomas, Total
Thu 21, , 1? , *<strike>1</strike>*, , , , 1 , , *<strike>1</strike>*, *<strike>4</strike>* 2
Fri 22, 2 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ,10
@@ -94,7 +94,7 @@ gaah, Full!
<!--
[[SamuelThibault]] booked rooms at ~ 18.60&euro; there:
-[[table class="table_style_1" data="""
+[[!table class="table_style_1" data="""
"Night of...","Persons"
"2007-02-22","<strike>7</strike>**6**"
"2007-02-23","10"
diff --git a/community/meetings/fosdem_2009.mdwn b/community/meetings/fosdem_2009.mdwn
deleted file mode 100644
index abeb74db..00000000
--- a/community/meetings/fosdem_2009.mdwn
+++ /dev/null
@@ -1,128 +0,0 @@
-[[meta copyright="Copyright © 2006, 2007, 2008 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 2009"]]
-
-<http://fosdem.org/2009>
-
-FOSDEM will take place on February 7th/8th at the Université Libre de
-Bruxelles.
-
-
-# Who And When
-
-[[table class="table_style_1" data="""
-"Name","Attending","Arrival","Return","Share room with us"
-"Neal Walfield","no","n/a","n/a","n/a"
-"[[Thomas_Schwinge|tschwinge]]","no","n/a","n/a","n/a"
-"""]]
-
-
-# Accommodation
-
-<!--
-(Large) evening counts:
-
-[[table class="table_style_1" data="""
- , Bas, Gianluca, Marcus, Michael, Neal, Olaf, Samuel, Soeren, Thomas, Total
-Thu 21, , 1? , *<strike>1</strike>*, , , , 1 , , *<strike>1</strike>*, *<strike>4</strike>* 2
-Fri 22, 2 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ,10
-Sat 23, 2 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ,10
-Sun 24, 2 , 1 , 1 , 1 , 1 , 1 , 1 , *<strike>1</strike>*, 1 , *<strike>10</strike>* 9
-"""]]
--->
-
-
-## The Moon Hotel
-
-Rue de la Montagne 4B.
-
-EUR 33.5 per night.
-
-Breakfast is included, there is hotspot wifi
-
-check-in can be between 13:00 and 00:00, departure is before 11:00
-
-Been there in 2008. It was okay.
-
-
-## A-XL flathotel
-
-<http://www.axlflathotel.be/fr/tarifs.html>
-
-
-## Youth hostel _Bruegel_
-
-<http://www.vjh.be/jeugdherbergen/brussel/mainE.htm>
-
-Heilige Geeststraat 2
-1000 Brussels
-Phone: +32(0)2 511 04 36
-Fax: +32(0)2 512 07 11
-<brussel@vjh.be>
-
-[Map via Google maps](http://maps.google.com/maps?f=q&hl=en&q=Heilige+Geeststraat+2,+1000+Brussels,+Belgium&sll=50.846056,4.344578&sspn=0.022599,0.086517&ie=UTF8&om=1&z=15&ll=50.843942,4.351444&spn=0.0113,0.043259&iwloc=cent).
-[Map via Map24](http://link2.map24.com/?street0=Heilige%20Geeststraat&zip0=1000&city0=Br%FCssel&state0=&country0=be&name0=&lid=43c26f81&ol=de-de).
-
-Been there in 2006 and 2007. It was okay.
-
-Rooms at ~ 18.60&euro;
-
-We need someone to get the keys before
-20:00. Reservations last until 16:00, so either he gets the keys before 16:00,
-or we just need to call for confirming the reservation
-
-[[I|tschwinge]] seem to remember something that in 2007 the Madame at the
-reception wasn't really happy with us arriving later than 16:00 even with
-having had confirmed that via a phone call.
-
-
-## Sleep Well Youth Hostel
-
-<http://www.sleepwell.be/>
-
-
-## Youth Hostel Can Gogh
-
-<http://chab.be/>
-
-No under 18-ers and over 35-ers allowed.
-
-
-## Auberge de Jeunesse Jacques Brel
-
-<http://www.laj.be/html/fr/auberges/brel/aubergesbrel_01.htm>.
-
-Samuel knows that one and liked it. antrik too :-)
-
-
-<!--
-# What
--->
-
-<!--
-There will be a keysigning party, see <http://fosdem.org/2008/keysigning>.
--->
-
-<!--
-We don't have a Developers Room at FOSDEM.
--->
-
-<!--
-There is again a pre-FOSDEM meeting on Friday night, see <http://fosdem.org/2008/beerevent>.
--->
-
-
-<!--
-# Photos
-
-Put links to your photos here.
--->
diff --git a/community/meetings/fosdem_2010.mdwn b/community/meetings/fosdem_2010.mdwn
new file mode 100644
index 00000000..9def3c1c
--- /dev/null
+++ b/community/meetings/fosdem_2010.mdwn
@@ -0,0 +1,86 @@
+[[!meta copyright="Copyright © 2006, 2007, 2008, 2009, 2010 Free Software
+Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!meta title="FOSDEM 2010"]]
+
+<http://fosdem.org/2010>
+
+FOSDEM will take place on February 6th/7th at the Université Libre de
+Bruxelles.
+
+
+# Who And When
+
+[[!table class="table_style_1" data="""
+"Name","Attending","Arrival","Return","Share room with us"
+"Anatoly A. Kazantsev","no","","",""
+"Andrei Barbu","no","","",""
+"Arne Babenhauserheide","no","","",""
+"[[Bas Wijnen|baswijnen]]","Yes","Friday evening","Sunday afternoon","no"
+"Ben Asselstine","yes","?","?","yes (but no dates confirmed)"
+"Carl Fredrik Hammar","no","","",""
+"Colin Leitner","no","","",""
+"Emilio Pozuelo Monfort","probably not","","",""
+"Flavio Cruz","no","","",""
+"[[Gianluca Guida|GianlucaGuida]]","yes","Fr.","Mo.","yes"
+"Guillem Jover","no","","",""
+"Madhusudan C.S.","?","","",""
+"Marcus Brinkmann","yes","fr","mo","yes"
+"[[Michael Banck|MichaelBanck]]","yes","Fr., early afternoon","Su., night","yes"
+"Neal Walfield","yes","Fr","Mo","yes"
+"Olaf Buddenhagen","yes","fr","mo","yes"
+"Pino Toscano","no","","",""
+"[[Samuel Thibault|SamuelThibault]]","no","","",""
+"Sergiu Ivanov","no","","",""
+"[[Soeren Schulze|SoerenSchulze]]","yes","Fr","Mo","yes"
+"[[Stefan Siegl|stesie]]","no","","",""
+"[[Thomas Schwinge|tschwinge]]","yes","Fr., 10:35","Mo., 18:25","yes"
+"Vasily Sartakov","maybe","","",""
+"Zheng Da","no","","",""
+"""]]
+
+
+# Where (Accommodation)
+
+This year, we'll stay in the [Hotel Astrid](http://www.astridhotel.be/),
+together with the FSFE folks. The following data (without Ben's) has been
+forwarded to them:
+
+[[!table class="table_style_1" data="""
+ , Ben , Gianluca, Marcus, Michael, Neal, Olaf, Thomas, Total
+Fri 5, **?**, 1 , 1 , 1 , 1 , 1 , 1 , 6
+Sat 6, **?**, 1 , 1 , 1 , 1 , 1 , 1 , 6
+Sun 7, **?**, 1 , 1 , , 1 , 1 , 1 , 5
+"""]]
+
+
+# What
+
+On Saturday, Bas will be giving a [talk about *Iris*, his new
+kernel](http://fosdem.org/2010/schedule/events/emb_iris) (Sat., 18:00, Embedded
+Developer Room).
+
+On Sunday, one can join the other folks at the [Alt-OS Developer
+Room](http://fosdem.org/2010/schedule/devrooms/altos) (also see the [Haiku
+FOSDEM2010AltOSDevroomSchedule
+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).
+
+There'll be further GNU folks around; [Mini GNU Hackers Meeting at FOSDEM
+Brussels 2010](http://www.gnu.org/ghm/2010/fosdem/).
diff --git a/community/meetings/rmll_2006.mdwn b/community/meetings/rmll_2006.mdwn
index cb0ddd7e..0d82a2b1 100644
--- a/community/meetings/rmll_2006.mdwn
+++ b/community/meetings/rmll_2006.mdwn
@@ -1,15 +1,15 @@
-[[meta copyright="Copyright © 2006, 2007, 2008
+[[!meta copyright="Copyright © 2006, 2007, 2008
Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-[[meta title="RMLL 2006"]]
+[[!meta title="RMLL 2006"]]
The 7th Rencontres Mondiales du Logiciel Libre (also known as Libre Software
Meeting) will be held on July 4th-8th 2006 in Vandoeuvre-les-Nancy.
diff --git a/community/meetings/self-organised_2008.mdwn b/community/meetings/self-organised.mdwn
index 10d746fc..1403c115 100644
--- a/community/meetings/self-organised_2008.mdwn
+++ b/community/meetings/self-organised.mdwn
@@ -1,14 +1,14 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-[[meta title="Self-organised meeting, somewhere in 2008"]]
+[[!meta title="Self-organised meeting"]]
This meeting will be held in a to-be-determined place, at a to-be-determined time. This page hopes to help finding a good time and place, and finding out who wants to come.
@@ -36,6 +36,9 @@ Please add any suggestions here, and add to your name above if that time is good
This likely has the benefit of being relatively close to most people
+<http://www.linuxhotel.de/community.html> might be a suitable venue at very
+reasonable pricing.
+
## Somewhere in Italy
This likely has the benefit of better weather. ;-)
diff --git a/community/meetings/stesie_2007-10-12.mdwn b/community/meetings/stesie_2007-10-12.mdwn
index 8559c662..d59ceded 100644
--- a/community/meetings/stesie_2007-10-12.mdwn
+++ b/community/meetings/stesie_2007-10-12.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
On the weekend 2007-10-12 to 14 [[Stefan_Siegl|stesie]] invited Hurd people.
Colin Leitner and [[Thomas_Schwinge|tschwinge]] came, as well as novice
diff --git a/community/weblogs.mdwn b/community/weblogs.mdwn
index 016c483f..8df216ba 100644
--- a/community/weblogs.mdwn
+++ b/community/weblogs.mdwn
@@ -1,17 +1,17 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
Weblogs from Hurd programmers and enthusiasts.
-[[inline
-pages="community/weblogs/*/* and !*/discussion"
+[[!inline
+pages="community/weblogs/*/* and !community/weblogs/*/*/*"
show=0
actions=no
rootpage="community/weblogs" postformtext="Add a new user named:"]]
diff --git a/community/weblogs/ArneBab.mdwn b/community/weblogs/ArneBab.mdwn
index 8c7b377a..1e80e5a8 100644
--- a/community/weblogs/ArneBab.mdwn
+++ b/community/weblogs/ArneBab.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
I'm just a Hurd dabbler who likes the ideas behind the Hurd:
@@ -38,8 +38,8 @@ See you in the Hurd!
----- My Blog -----
-[[inline
-pages="community/weblogs/ArneBab/* and !*/discussion"
+[[!inline
+pages="community/weblogs/ArneBab/* and !community/weblogs/ArneBab/*/*"
show=0
actions=no
rootpage="community/weblogs/ArneBab" postformtext="Add a new entry named:"]]
diff --git a/community/weblogs/ArneBab/What_a_Hurd_release_should_be_able_to_do_for_me.mdwn b/community/weblogs/ArneBab/What_a_Hurd_release_should_be_able_to_do_for_me.mdwn
new file mode 100644
index 00000000..51ef2a85
--- /dev/null
+++ b/community/weblogs/ArneBab/What_a_Hurd_release_should_be_able_to_do_for_me.mdwn
@@ -0,0 +1,40 @@
+I thought a bit about what I’d need from Hurd to use it for some of my real life tasks.
+
+My desktop has to be able to do everything it does now, and that under high load, so it currently is no useful target for the Hurd.
+
+But then I have an OLPC XO sitting here, and I use it mostly for work and for clearly defined tasks. As such it seems natural to me to check, what the Hurd would have to be able to do to support my workflow on the OLPC.
+
+### What I need
+
+* Writing text and programming Python with emacs. - *works*.
+* Use Mercurial for my versiontracked stuff. - *works*.
+* Reading websites with emacs and w3m or with lynx. - *works*.
+* Use SSH to go on my desktop and on the university machine. - *should work*.
+* Run X11 with dwm and emacs. - *should work*.
+* Boot Hurd on the OLPC from a USB stick. - *not yet*?
+* Support networking over wlan and wpa_supplicant. - *not yet*? Might DDE kit help?
+* Listen to music with Quod Libet in X11. - *not yet*. Needs audio support.
+
+### What would be nice
+
+* Run a Gentoo system. - not *really* needed, but nice to update my system with the same tools.
+* Watch videos with mplayer. - unlikely. Even with Linux as kernel watching videos pushes my XO to the limit. But this is not essential.
+
+
+So, as soon as Debian GNU/Hurd (or Arch Hurd) supports the things I need, I’ll put it on a USB-stick and use it for coding and writing.
+
+To be frank: I’d likely even use it without audio-support. I have an mp3 player and can feed it via USB. So the essential features for me are:
+
+### Essential features
+
+* Writing text and programming Python with emacs. - works.
+* Use Mercurial for my versiontracked stuff. - works.
+* Use SSH to go on my desktop and on the university machine. - should work.
+* Boot Hurd on the OLPC from a USB stick. - not yet?
+* Support networking over wlan and wpa_supplicant. - not yet? Might DDE kit help?
+
+### Conclusion
+
+The Hurd doesn’t yet do everything I need for my OLPC, but it isn’t that far away either. Grub already gets [ported to OLPC](http://grub.enbug.org/OLPC), so what’s missing to make the Hurd a work system for me are just *booting on OLPC from USB stick* and *wlan-support on OLPC*.
+
+All the rest I need for work is already in place.
diff --git a/community/weblogs/ArneBab/niches_for_the_hurd.mdwn b/community/weblogs/ArneBab/niches_for_the_hurd.mdwn
index 8b6c4226..6f0af07e 100644
--- a/community/weblogs/ArneBab/niches_for_the_hurd.mdwn
+++ b/community/weblogs/ArneBab/niches_for_the_hurd.mdwn
@@ -94,16 +94,16 @@ sounds like an interesting option.*"
*"While I believe this can be applied to any kind of applications, I'm
personally most interested in more efficient and powerful desktop
environments -- these considerations are in fact what got me seriously
-interested in the Hurd.
+interested in the Hurd.*
-Even more specifically, I've done most considerations (though by far not
+*Even more specifically, I've done most considerations (though by far not
all) on modular web browsing environments. Those interested can read up
-some of my thoughts on this:
+some of my thoughts on this:*
http://sourceforge.net/mailarchive/message.php?msg_name=20080909073154.GB821%40alien.local
-(Just skip the text mode browsing stuff -- the relevant part is the long
+*(Just skip the text mode browsing stuff -- the relevant part is the long
monologue at the end... I really should put these ideas into my blog.)"*
@@ -112,7 +112,13 @@ monologue at the end... I really should put these ideas into my blog.)"*
Another example of features which would be easily possible with the Hurd:
-* media-player translator:
+* transparent ftp (already possible!):
+ - settrans -c ftp: /hurd/hostmux /hurd/ftpfs /
+ - ls ftp://ftp.gnu.org/
+ - # -> list the files on the FTP server.
+
+
+* media-player translator:
- settrans play /hurd/mediaplayer_play
- cp song1.ogg song2.ogg play
- # -> files get buffered and played.
@@ -121,7 +127,15 @@ or even:
* cp ftp://foo/bar/ogg play
-that's KDEs fabled network transparency on the filesystem / shell level.
+that's KDEs fabled network transparency on the filesystem / shell level (where it belongs to be desktop agnostic).
+
+* add temporary filesystems anywhere via `settrans -a NODE /hurd/ext2fs`
+
+* make everything temporarily writeable without really changing it via [[hurd/translator/unionfs]].
+
+* Read tar archives and mbox files via `ls foo.tar.gz,,tarfs` and `ls foo.mbox,,mboxfs`, respectively → [[hurd/translator/nsmux]].
+
+* Use stuff like the new akonady (personal information) framework in KDE more efficiently from the shell.
Reality check
@@ -246,8 +260,8 @@ Applications
A minor phase, which will surely be interleaved with the others: Making the ideas
tangible to turn them into ways how people can use the Hurd.
-"Hey, look, this is the Hurd. You can use it like this to do that which you can't do
-as well/easily/elegantly in any other way."
+*"Hey, look, this is the Hurd. You can use it like this to do that which you can't do
+as well/easily/elegantly in any other way."*
### Applications for private use
@@ -264,18 +278,18 @@ it's too hard.
From what I see, each direct cool application must be about as simple as
-$ qemu hurd-is-cool.img
-$ login root
-$ settrans cool /hurd/cool
+$ qemu hurd-is-cool.img
+$ login root
+$ settrans cool /hurd/cool
$ ls cool
One main focus in this example is: No command line parameters but the ones we
really need. No "-a", if the example is also cool without it.
No "--console" if it works otherwise.
-Especially no "qemu --cd livecd --hda hurd.img ..." - that one is great for
-specialists, but the goal here isn't to teach people better usage of qemu,
-but to show them that the Hurd is cool, and only that.
+Especially no *"qemu --cd livecd --hda hurd.img ..."* - that one is great for
+people who already know qemu or want to learn it, but the goal here isn't to teach people
+better usage of qemu, but to show them that the Hurd is cool, and only that.
All that interesting advanced stuff just gets newcomers confused.
diff --git a/community/weblogs/ArneBab/xkb-woes-trying-to-get-a-german-keyboard-layout.mdwn b/community/weblogs/ArneBab/xkb-woes-trying-to-get-a-german-keyboard-layout.mdwn
index fef628bc..693168a4 100644
--- a/community/weblogs/ArneBab/xkb-woes-trying-to-get-a-german-keyboard-layout.mdwn
+++ b/community/weblogs/ArneBab/xkb-woes-trying-to-get-a-german-keyboard-layout.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
Yesterday I spent a few hours trying to get my german keyboard to let me use my umlauts (and to let me type without having to hunt down the right keys), but without much luck.
diff --git a/community/weblogs/antrik/hurd-mission-statement.mdwn b/community/weblogs/antrik/hurd-mission-statement.mdwn
new file mode 100644
index 00000000..592e176a
--- /dev/null
+++ b/community/weblogs/antrik/hurd-mission-statement.mdwn
@@ -0,0 +1,39 @@
+For a while I have been thinking about the lack of a roadmap for the
+Hurd; but now I realized that we lack something even more fundamental: a
+simple mission statement -- i.e. saying where we want to go, rather
+than how we want to get there. I think many of the problems we have are
+directly or indirectly related to that.
+
+As we didn't have such a mission statement so far, the people currently
+involved have vastly different ideas about the mission, which of course
+makes it a bit hard to come up with a suitable one now. However, I
+managed to come up with something that I believe is generic enough so
+all contributors can subscribe to it:
+
+> *The mission of the Hurd project is: to create a general-purpose
+> kernel suitable for the GNU operating system, which is viable for
+> everyday use, and gives users and programs as much control over their
+> computing environment as possible.*
+
+*"Suitable for GNU"* in the first part implies a number of things. I
+explicitely mentioned *"general-purpose"*, because this an important
+feature that sets the Hurd apart from many other microkernel projects,
+but isn't immediately obvious.
+
+I didn't mention that it must be entirely free software, as this should
+be obvious to anyone familiar with GNU.
+
+Another thing I did not mention, because it's too controversial: how
+much UNIX do we need? I think that being suitable for GNU requires a
+pretty high degree of UNIX compatibility, and also that the default
+environment looks to the user more or less like UNIX. However, some
+people claimed in the past that GNU could do without UNIX -- the wording
+used here doesn't totally preclude such views.
+
+The second part also leaves a lot of slack: I for my part still believe
+that a Mach-based Hurd can be viable for everyday use; but those who
+think that a microkernel change is required, should be happy with this
+wording as well.
+
+The third part tries to express the major idea behind the Hurd design in
+the most compact and generic way possible.
diff --git a/community/weblogs/antrik/plan9-and-the-hurd-major-differences.mdwn b/community/weblogs/antrik/plan9-and-the-hurd-major-differences.mdwn
new file mode 100644
index 00000000..9e6143bf
--- /dev/null
+++ b/community/weblogs/antrik/plan9-and-the-hurd-major-differences.mdwn
@@ -0,0 +1,50 @@
+[[!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="Major differences between Plan9 and the Hurd"]]
+
+There are some similarities between the Hurd and Plan 9 regarding the file
+system handling -- but there are also very fundamental differences which go
+far beyond monolithic vs. microkernel design:
+
+- The Hurd is UNIX (POSIX) compatible
+
+- While (almost) all services are attached to the file system tree, not
+ all services actually export a file system interface!
+
+ Personally, I advocate using FS-based interfaces as much as possible.
+ Yet, there are some cases where they get very awkward and/or
+ inefficient, and domain-specific interfaces simply make a lot more
+ sense.
+
+ Also, some Hurd services are indeed used to implement the file systems
+ in the first place -- they work below the FS level, and obviously
+ can't use an FS interface!
+
+- File systems are completely decentralized -- clients always talk to
+ the FS servers directly, without any central VFS layer. (I don't think
+ that's the case in Plan 9?)
+
+ This offers much more flexibility -- the way the FS interfaces
+ themselves work can be modified. Many things can be implemented as
+ normal translators, that would require special VFS support on other
+ systems. (Extended attributes, VFS-based union mounts, local
+ namespaces, firmlink, magic file name suffixes etc.)
+
+- The system design allows users and applications to change almost all
+ aspects of the system functionality in the local environment easily
+ and without affecting other parts of the system.
+
+ (This is possible with Plan 9 to some extent; but the Hurd allows it
+ at a much lower level -- including stuff like the filesystem
+ interfaces, access control mechanisms, program execution and process
+ management, and so on.)
+
+I hope I didn't forget any major differences...
diff --git a/community/weblogs/tschwinge/2009-06-23_split_patch_and_git_rebase_--interactive.mdwn b/community/weblogs/tschwinge/2009-06-23_split_patch_and_git_rebase_--interactive.mdwn
new file mode 100644
index 00000000..bd08060e
--- /dev/null
+++ b/community/weblogs/tschwinge/2009-06-23_split_patch_and_git_rebase_--interactive.mdwn
@@ -0,0 +1,545 @@
+[[!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="splitting a patch into three, and then some git rebase
+--interactive"]]
+
+I was revisiting the issue of getting the Hurd's code base compiled with recent
+versions of GCC. Specifically, there were a lot of duplicate symbols shown at
+linking time, and all these were related to `inline` functions. Originally, in
+2007, we had solved this problem already (or rather, shifted it) by using GCC's
+`-fgnu89-inline` option, but as we [[!GNU_Savannah_patch 6840 desc="saw now"]],
+that one obviously doesn't help anymore if third-party code is using the Hurd's
+unfixed header files.
+
+So I was revisiting this issue. I was already prepared that this would take
+some hours, with lots of editing, compiling cycles, plus some analyzing of the
+binaries. So I made up a fresh repository for this work.
+
+ $ mkdir hurd-ei
+ $ cd hurd-ei/
+ $ git init
+ [...]
+ $ git remote add savannah git://git.savannah.gnu.org/hurd/hurd.git
+ $ git fetch
+ [...]
+
+Switch to a new topic-branch.
+
+ $ git checkout -b master-ei savannah/master
+ Branch master-ei set up to track remote branch master from savannah.
+ Switched to a new branch 'master-ei'
+
+(*`ei`* is short for `extern inline`.)
+
+The first thing to do was to disable that `-fgnu89-inline` option, so I edited
+`Makeconf` where it was added to `CFLAGS`.
+
+I started editing, compiling, editing, compiling, and so on.
+
+Finally, the tree was in a shape where everything was building fine and the
+resulting libraries contained the symbols they should, etc.
+
+I committed the whole junk as one *big blob* commit, to store it in a safe
+place (you never know with these Hurd machines...), and to continue working on
+it the next day.
+
+ $ git commit -a
+
+For the commit message, I already mostly assembled a `ChangeLog`-style log.
+Then:
+
+ $ git format-patch savannah/master..
+ 0001-Bla.patch
+
+... and here is [[0001-Bla.patch.bz2]] (compressed).
+
+
+The next day, a.k.a. today, in a different Git repository.
+
+ $ git checkout -b master-fix_inline savannah/master
+ Branch master-fix_inline set up to track remote branch master from savannah.
+ Switched to a new branch 'master-fix_inline'
+ $ bunzip2 < ../some/where/0001-Bla.patch.bz2 | git am
+ Applying: Bla.
+
+The *big blob* is now on top of savannah/master (which was
+`2772f5c6a6a51cf946fd95bf6ffe254273157a21`, by the way -- in case that you want
+to reproduce this tutorial later, simply substitute `savannah/master` with
+`2772...`).
+
+By then, I had come to the conclusion that the commit essentially was fine, but
+should be split into two, and the `configure` hunk shouldn't be in there. So
+be it.
+
+So, the `HEAD` of the active branch is our *big blob* commit that we want to
+work on. Check with `git show HEAD`:
+
+ $ git show HEAD
+ commit 93e97f3351337c349e2926f4041e61bc487ef9e6
+ Author: Thomas Schwinge <tschwinge@gnu.org>
+ Date: Tue Jun 23 00:27:28 2009 +0200
+
+ Bla.
+
+ * console-client/timer.h (fetch_jiffies): Use static inline instead of extern
+ inline.
+ * ext2fs/ext2fs.h (test_bit, set_bit, clear_bit, dino, global_block_modified)
+ (record_global_poke, sync_global_ptr, record_indir_poke, sync_global)
+ (alloc_sync): Likewise.
+ * libftpconn/priv.h (unexpected_reply): Likewise.
+ * term/term.h (qsize, qavail, clear_queue, dequeue_quote, dequeue)
+ (enqueue_internal, enqueue, enqueue_quote, unquote_char, char_quoted_p)
+ (queue_erase): Likewise.
+ * ufs/ufs.h (dino, indir_block, cg_locate, sync_disk_blocks, sync_dinode)
+ (swab_short, swab_long, swab_long_long): Likewise.
+ * term/munge.c (poutput): Use static inline instead of inline.
+
+ * libdiskfs/diskfs.h: Apply inline optimization only ifdef
+ [__USE_EXTERN_INLINES]. Use __extern_inline instead of extern inline.
+ * libftpconn/ftpconn.h: Likewise.
+ * libpipe/pipe.h: Likewise.
+ * libpipe/pq.h: Likewise.
+ * libshouldbeinlibc/idvec.h: Likewise.
+ * libshouldbeinlibc/maptime.h: Likewise.
+ * libshouldbeinlibc/ugids.h: Likewise.
+ * libstore/store.h: Likewise.
+ * libthreads/rwlock.h: Likewise.
+ * libdiskfs/extern-inline.c: Adapt to these changes.
+ * libftpconn/xinl.c: Likewise. And don't #include "priv.h".
+ * libpipe/pipe-funcs.c: Likewise.
+ * libpipe/pq-funcs.c: Likewise.
+ * libshouldbeinlibc/maptime-funcs.c: Likewise. And remove superfluous
+ includes.
+ * libstore/xinl.c: Likewise.
+ * libthreads/rwlock.c: Likewise.
+
+ * Makeconf (CFLAGS): Don't append $(gnu89-inline-CFLAGS).
+ * pfinet/Makefile (CFLAGS): Append $(gnu89-inline-CFLAGS).
+
+ diff --git a/Makeconf b/Makeconf
+ index e9b2045..236f1ec 100644
+ --- a/Makeconf
+ +++ b/Makeconf
+ @@ -65,7 +65,7 @@ INCLUDES += -I$(..)include -I$(top_srcdir)/include
+ CPPFLAGS += $(INCLUDES) \
+ -D_GNU_SOURCE -D_IO_MTSAFE_IO -D_FILE_OFFSET_BITS=64 \
+ $($*-CPPFLAGS)
+ -CFLAGS += -std=gnu99 $(gnu89-inline-CFLAGS) -Wall -g -O3 \
+ +CFLAGS += -std=gnu99 -Wall -g -O3 \
+ [...]
+
+We want to undo this one commit, but preserve its changes in the working
+directory.
+
+ $ git reset HEAD^
+ Makeconf: locally modified
+ configure: locally modified
+ console-client/timer.h: locally modified
+ ext2fs/ext2fs.h: locally modified
+ libdiskfs/diskfs.h: locally modified
+ libdiskfs/extern-inline.c: locally modified
+ libftpconn/ftpconn.h: locally modified
+ libftpconn/priv.h: locally modified
+ libftpconn/xinl.c: locally modified
+ libpipe/pipe-funcs.c: locally modified
+ libpipe/pipe.h: locally modified
+ libpipe/pq-funcs.c: locally modified
+ libpipe/pq.h: locally modified
+ libshouldbeinlibc/idvec.h: locally modified
+ libshouldbeinlibc/maptime-funcs.c: locally modified
+ libshouldbeinlibc/maptime.h: locally modified
+ libshouldbeinlibc/ugids.h: locally modified
+ libstore/store.h: locally modified
+ libstore/xinl.c: locally modified
+ libthreads/rwlock.c: locally modified
+ libthreads/rwlock.h: locally modified
+ pfinet/Makefile: locally modified
+ term/munge.c: locally modified
+ term/term.h: locally modified
+ ufs/ufs.h: locally modified
+
+Now, `HEAD` points to the commit before the previous `HEAD`, i.e. `HEAD^`.
+Again, check with `git show HEAD`:
+
+ $ git show HEAD
+ commit 2772f5c6a6a51cf946fd95bf6ffe254273157a21
+ Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
+ Date: Thu Apr 2 23:06:37 2009 +0000
+
+ 2009-04-03 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * exec.c (prepare): Call PREPARE_STREAM earlier to permit calling
+ finish_mapping on E even after errors, as is already done in do_exec.
+
+ diff --git a/exec/ChangeLog b/exec/ChangeLog
+ index 5a0ad1d..a9300bf 100644
+ --- a/exec/ChangeLog
+ +++ b/exec/ChangeLog
+ @@ -1,3 +1,8 @@
+ +2009-04-03 Samuel Thibault <samuel.thibault@ens-lyon.org>
+ +
+ + * exec.c (prepare): Call PREPARE_STREAM earlier to permit calling
+ + finish_mapping on E even after errors, as is already done in do_exec.
+ +
+ 2008-06-10 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * elfcore.c (TIME_VALUE_TO_TIMESPEC): Completely implement instead of
+ diff --git a/exec/exec.c b/exec/exec.c
+ index 05dc883..cb3d741 100644
+ --- a/exec/exec.c
+ +++ b/exec/exec.c
+ @@ -726,6 +726,9 @@ prepare (file_t file, struct execdata *e)
+
+ e->interp.section = NULL;
+
+ + /* Initialize E's stdio stream. */
+ + prepare_stream (e);
+ [...]
+
+Luckily, Git saves the previous (i.e. before the `git reset`) `HEAD` reference
+as `ORIG_HEAD`. Have a look at it with `git show ORIG_HEAD` -- it contains the
+*big blob* commit, including the preliminary commit message -- just what HEAD
+was before:
+
+ $ git show ORIG_HEAD
+ commit 93e97f3351337c349e2926f4041e61bc487ef9e6
+ Author: Thomas Schwinge <tschwinge@gnu.org>
+ Date: Tue Jun 23 00:27:28 2009 +0200
+
+ Bla.
+
+ * console-client/timer.h (fetch_jiffies): Use static inline instead of extern
+ inline.
+ [...]
+
+ diff --git a/Makeconf b/Makeconf
+ index e9b2045..236f1ec 100644
+ --- a/Makeconf
+ +++ b/Makeconf
+ @@ -65,7 +65,7 @@ INCLUDES += -I$(..)include -I$(top_srcdir)/include
+ CPPFLAGS += $(INCLUDES) \
+ -D_GNU_SOURCE -D_IO_MTSAFE_IO -D_FILE_OFFSET_BITS=64 \
+ $($*-CPPFLAGS)
+ -CFLAGS += -std=gnu99 $(gnu89-inline-CFLAGS) -Wall -g -O3 \
+ +CFLAGS += -std=gnu99 -Wall -g -O3 \
+ [...]
+
+OK, now let's pick the files that we want to have in the first of the
+envisioned two commits: these are the *static inline instead of extern inline*
+and *apply inline optimization only...* sections.
+
+ $ git add console-client/timer.h ext2fs/ext2fs.h [...] libthreads/rwlock.c
+
+Oh, we forgot something: now that we're preparing this stuff to go into the
+*master* repository, update the copyright years. Edit, edit, edit, and then,
+again:
+
+ $ git add console-client/timer.h ext2fs/ext2fs.h [...] libthreads/rwlock.c
+
+Now Git's staging area contains the changes that we want to commit (and the
+working directory contains the rest of the *big blob*). Commit these `add`ed
+files, and use *big blob*'s commit message as a template for the new one, as it
+already contains most of what we want (don't forget to chop off the unneeded
+parts).
+
+ $ git commit -c ORIG_HEAD
+ Waiting for Emacs...
+ [master-fix_inline 51c15bc] Use static inline where appropriate.
+ 6 files changed, 50 insertions(+), 51 deletions(-)
+ $ git show HEAD
+ commit c6c9d7a69dea26e04bba7010582e7bcd612e710c
+ Author: Thomas Schwinge <tschwinge@gnu.org>
+ Date: Tue Jun 23 00:27:28 2009 +0200
+
+ Use static inline where appropriate and use glibc's __extern_inline machinery.
+
+ * console-client/timer.h (fetch_jiffies): Use static inline instead of extern
+ inline.
+ * ext2fs/ext2fs.h (test_bit, set_bit, clear_bit, dino, global_block_modified)
+ (record_global_poke, sync_global_ptr, record_indir_poke, sync_global)
+ (alloc_sync): Likewise.
+ * libftpconn/priv.h (unexpected_reply): Likewise.
+ * term/term.h (qsize, qavail, clear_queue, dequeue_quote, dequeue)
+ (enqueue_internal, enqueue, enqueue_quote, unquote_char, char_quoted_p)
+ (queue_erase): Likewise.
+ * ufs/ufs.h (dino, indir_block, cg_locate, sync_disk_blocks, sync_dinode)
+ (swab_short, swab_long, swab_long_long): Likewise.
+ * term/munge.c (poutput): Use static inline instead of inline.
+
+ * libdiskfs/diskfs.h: Apply inline optimization only ifdef
+ [__USE_EXTERN_INLINES]. Use __extern_inline instead of extern inline.
+ * libftpconn/ftpconn.h: Likewise.
+ * libpipe/pipe.h: Likewise.
+ * libpipe/pq.h: Likewise.
+ * libshouldbeinlibc/idvec.h: Likewise.
+ * libshouldbeinlibc/maptime.h: Likewise.
+ * libshouldbeinlibc/ugids.h: Likewise.
+ * libstore/store.h: Likewise.
+ * libthreads/rwlock.h: Likewise.
+ * libdiskfs/extern-inline.c: Adapt to these changes.
+ * libftpconn/xinl.c: Likewise. And don't #include "priv.h".
+ * libpipe/pipe-funcs.c: Likewise.
+ * libpipe/pq-funcs.c: Likewise.
+ * libshouldbeinlibc/maptime-funcs.c: Likewise. And remove superfluous
+ includes.
+ * libstore/xinl.c: Likewise.
+ * libthreads/rwlock.c: Likewise.
+
+ diff --git a/console-client/timer.h b/console-client/timer.h
+ index 4204192..5e64e97 100644
+ --- a/console-client/timer.h
+ +++ b/console-client/timer.h
+ @@ -1,5 +1,7 @@
+ /* timer.h - Interface to a timer module for Mach.
+ - Copyright (C) 1995,96,2000,02 Free Software Foundation, Inc.
+ +
+ + Copyright (C) 1995, 1996, 2000, 2002, 2009 Free Software Foundation, Inc.
+ +
+ Written by Michael I. Bushnell, p/BSG and Marcus Brinkmann.
+
+ This file is part of the GNU Hurd.
+ @@ -54,7 +56,7 @@ int timer_remove (struct timer_list *timer);
+ /* Change the expiration time of the timer TIMER to EXPIRES. */
+ void timer_change (struct timer_list *timer, long long expires);
+
+ -extern inline long long
+ +static inline long long
+ [...]
+
+As you can see, `HEAD` now points to the new commit on top of the current
+branch. (`ORIG_HEAD` doesn't change.)
+
+On to the next, and last one, only two changes should be left: the `Makeconf`
+and `pfinet/Makefile` ones.
+
+ $ git status
+ # On branch master-fix_inline
+ # Your branch is ahead of 'savannah/master' by 1 commit.
+ #
+ # Changed but not updated:
+ # (use "git add <file>..." to update what will be committed)
+ # (use "git checkout -- <file>..." to discard changes in working directory)
+ #
+ # modified: Makeconf
+ # modified: configure
+ # modified: pfinet/Makefile
+ #
+ # Untracked files:
+ # (use "git add <file>..." to include in what will be committed)
+ #
+ # 0001-Bla.patch
+ # autom4te.cache/
+ # hurd_extern_inline_fix.patch?file_id=18191
+ no changes added to commit (use "git add" and/or "git commit -a")
+
+Alright, there is as well still the `configure` hunk that we want to get rid
+of. But first for the real second commit, after editing for again adding the
+copyright year update:
+
+ $ git add Makeconf pfinet/Makefile
+ $ git commit -c ORIG_HEAD
+ Waiting for Emacs...
+ [master-fix_inline 6a967d1] We're now C99 inline safe -- apart from the Linux code in pfinet.
+ 2 files changed, 6 insertions(+), 3 deletions(-)
+
+Check that we're in a clean state now:
+
+ $ git status
+ # On branch master-fix_inline
+ # Your branch is ahead of 'savannah/master' by 2 commits.
+ #
+ # Changed but not updated:
+ # (use "git add <file>..." to update what will be committed)
+ # (use "git checkout -- <file>..." to discard changes in working directory)
+ #
+ # modified: configure
+ #
+ # Untracked files:
+ # (use "git add <file>..." to include in what will be committed)
+ #
+ # 0001-Bla.patch
+ # autom4te.cache/
+ # hurd_extern_inline_fix.patch?file_id=18191
+ no changes added to commit (use "git add" and/or "git commit -a")
+
+Oops, we forgot something...
+
+ $ git checkout -- configure
+
+Now, our tree is clean again. (Check with `git status`.)
+
+By now, we came to the conclusion that the first of the two commits should have
+been further split into two separate ones. Of course, essentially we would do
+the same splitting again that we've done just now -- but how to easily modify
+the first commit, now that we have another one on top of it?
+
+Alright, `git rebase --interactive` to the rescue -- let's interactively
+*`rebase`* the last two commits, to modify them as wanted.
+
+ $ git rebase --interactive HEAD~2
+ Waiting for Emacs...
+
+Emacs wants us to tell which commits we want to keep as they are (`pick`),
+which should be merged into others (`squash`), and which we want to `edit`. In
+our scenario, we want to `edit` the first one and `pick` the second one.
+Change the file thusly and close it.
+
+ Stopped at 5becbb5... Use static inline where appropriate and use...
+ You can amend the commit now, with
+
+ git commit --amend
+
+ Once you are satisfied with your changes, run
+
+ git rebase --continue
+
+We want to undo this first commit to split it into two. Again, use `git reset`
+for that, while preserving the commit's changes in the working directory.
+
+ $ git reset HEAD^
+ console-client/timer.h: locally modified
+ [...]
+
+Pick the set of files that we want to have in the first of the envisioned two
+commits: the *static inline instead of extern inline* section, and commit them,
+again using the previous commit message as a template for the new one:
+
+ $ git add console-client/timer.h ext2fs/ext2fs.h [...] term/munge.c
+ $ git commit -c ORIG_HEAD
+ Waiting for Emacs...
+ [detached HEAD 51c15bc] Use static inline where appropriate.
+ 6 files changed, 50 insertions(+), 51 deletions(-)
+
+Next part: *apply inline optimization only...*. Again, `git add` those files
+that shall be part of the next commit, i.e. all remaining ones. As before, use
+the previous commit message as a template.
+
+ $ git add libdiskfs/diskfs.h [...] libthreads/rwlock.c
+ $ git commit -c ORIG_HEAD
+ Waiting for Emacs...
+ [detached HEAD 8ac30ea] [__USE_EXTERN_INLINES]: Use glibc's __extern_inline machinery.
+ 16 files changed, 508 insertions(+), 356 deletions(-)
+
+Now we're done with splitting that commit into two. (Check with `git status`
+that we didn't forget anything.) What's missing is getting back the other
+commit on top of the two now-split ones:
+
+ $ git rebase --continue
+ Successfully rebased and updated refs/heads/master-fix_inline.
+
+Here we go. The other commit has been applied on top of the two new ones.
+
+Due to time-honored tradition, I always double-check what I have just
+committed, before distributing it to the world:
+
+ $ git log --reverse -p -C --cc savannah/master..
+
+... and promptly, I recognize some changes that shouldn't be in there: when
+using it on some files, Emacs' `copyright-fix-years`, aside from indeed fixing
+the list of copyright years, and adding the current year, also changed *GPL
+... version 2* into *version 3*, which would be nice, but which we can't do for
+the moment. The error is present only in the first and second commit. If it
+were in only in the third (the last) one, simply editing the files, and then
+using `git commit --amend` would be the solution. But again there is the
+problem about how to modify the first (`HEAD~2`) and second (`HEAD~1`, or
+`HEAD^`) commit now that there is another one on top of it. By now, we know
+the solution:
+
+ $ git rebase --interactive HEAD~3
+ Waiting for Emacs...
+
+This time, we need to `edit` the first and second commits, and `pick` the third
+one.
+
+ Stopped at ffd215b... Use static inline where appropriate.
+ You can amend the commit now, with
+
+ git commit --amend
+
+ Once you are satisfied with your changes, run
+
+ git rebase --continue
+
+`git show` (which defaults to showing `HEAD`, by the way) can again be used to
+have a look at the current `HEAD` (which is the first of the three commits),
+and then we revert the unwanted changes in the editor, resulting with the
+following changed files:
+
+ $ git status
+ # Not currently on any branch.
+ # Changed but not updated:
+ # (use "git add <file>..." to update what will be committed)
+ # (use "git checkout -- <file>..." to discard changes in working directory)
+ #
+ # modified: ext2fs/ext2fs.h
+ # modified: libftpconn/priv.h
+ # modified: term/munge.c
+ # modified: term/term.h
+ # modified: ufs/ufs.h
+ #
+ # Untracked files:
+ # (use "git add <file>..." to include in what will be committed)
+ #
+ # 0001-Bla.patch
+ # autom4te.cache/
+ # hurd_extern_inline_fix.patch?file_id=18191
+ no changes added to commit (use "git add" and/or "git commit -a")
+
+Then, we can -- as `git rebase` suggested above -- *amend* the existing `HEAD`
+commit with these changes (`--amend` and `--all`), reusing `HEAD`'s commit
+message without spawning an editor (`-C HEAD`):
+
+ $ git commit --amend -C HEAD --all
+ [detached HEAD c6c9d7a] Use static inline where appropriate.
+ 6 files changed, 45 insertions(+), 46 deletions(-)
+
+Continue with the next commit:
+
+ $ git rebase --continue
+ Stopped at 8ac30ea... [__USE_EXTERN_INLINES]: Use glibc's __extern_inline machinery.
+ You can amend the commit now, with
+
+ git commit --amend
+
+ Once you are satisfied with your changes, run
+
+ git rebase --continue
+
+Again, have a look at the commit (`git show`), revert the unwanted changes,
+*amend* `HEAD`, and continue to the next commit:
+
+ $ git commit --amend -C HEAD --all
+ [detached HEAD 9990dc6] [__USE_EXTERN_INLINES]: Use glibc's __extern_inline machinery.
+ 16 files changed, 500 insertions(+), 348 deletions(-)
+ $ git rebase --continue
+ Stopped at 6a967d1... We're now C99 inline safe -- apart from the Linux code in pfinet.
+ You can amend the commit now, with
+
+ git commit --amend
+
+ Once you are satisfied with your changes, run
+
+ git rebase --continue
+
+Two files are left to be edited (`git show`, etc., again), and finally:
+
+ $ git commit --amend -C HEAD --all
+ [detached HEAD 241c605] We're now C99 inline safe -- apart from the Linux code in pfinet.
+ 2 files changed, 5 insertions(+), 2 deletions(-)
+ $ git rebase --continue
+ Successfully rebased and updated refs/heads/master-fix_inline.
+
+That's it. `git log --reverse -p -C --cc savannah/master..` now looks as nice
+as can be.
+
+
+Of course, this is only a small insight of what is possible to do with `git
+rebase` and friends -- see the manual for further explanations.
diff --git a/community/weblogs/tschwinge/2009-06-23_split_patch_and_git_rebase_--interactive/0001-Bla.patch.bz2 b/community/weblogs/tschwinge/2009-06-23_split_patch_and_git_rebase_--interactive/0001-Bla.patch.bz2
new file mode 100644
index 00000000..4a682c86
--- /dev/null
+++ b/community/weblogs/tschwinge/2009-06-23_split_patch_and_git_rebase_--interactive/0001-Bla.patch.bz2
Binary files differ
diff --git a/community/weblogs/tschwinge/2009-06-24_importing_from_gnu_arch_into_git.mdwn b/community/weblogs/tschwinge/2009-06-24_importing_from_gnu_arch_into_git.mdwn
new file mode 100644
index 00000000..f397e75b
--- /dev/null
+++ b/community/weblogs/tschwinge/2009-06-24_importing_from_gnu_arch_into_git.mdwn
@@ -0,0 +1,104 @@
+[[!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="converting from GNU arch to Git -- without direct repository
+access"]]
+
+I wanted to import an old GNU arch repository into Git, but only had HTTP
+access via ArchZoom. I spent quite some time to try teaching `git archimport`
+to use HTTP access to that repository, but this didn't work out. Too bad --
+but at least, using ArchZoom, I was able to get the individual revisions'
+tarballs:
+
+ $ ls -1 *.tar.gz
+ bpf--devel--0.0--base-0.tar.gz
+ bpf--devel--0.0--patch-1.tar.gz
+ bpf--devel--0.0--patch-10.tar.gz
+ bpf--devel--0.0--patch-11.tar.gz
+ bpf--devel--0.0--patch-12.tar.gz
+ bpf--devel--0.0--patch-2.tar.gz
+ bpf--devel--0.0--patch-3.tar.gz
+ [...]
+ bpf--devel--0.0--patch-9.tar.gz
+ bpf--release--0.1--base-0.tar.gz
+ bpf--release--0.1--patch-1.tar.gz
+ bpf--release--0.1--patch-2.tar.gz
+ [...]
+ bpf--release--0.1--patch-8.tar.gz
+
+I unpacked these:
+
+ $ for f in *.tar.gz; do tar -xz < "$f" || echo >&2 "$f" failed; done
+
+The last revision's tree apparently contains all previous revisions' commit
+information (author, date, message), so use that:
+
+ $ cp -a ↩
+ bpf--release--0.1--patch-8/{arch}/bpf/bpf--devel/bpf--devel--0.0/info@hurdfr.org--hurdfr/patch-log ↩
+ d-patch-log
+ $ cp -a ↩
+ bpf--release--0.1--patch-8/{arch}/bpf/bpf--release/bpf--release--0.1/info@hurdfr.org--hurdfr/patch-log ↩
+ r-patch-log
+
+... and extract the information that we need:
+
+ $ base=bpf--devel--0.0-- && ↩
+ for f in d-patch-log/*; do ↩
+ grep < "$f" ^Creator: | head -n 1 ↩
+ | { read j c && ↩
+ echo "$c" | sed s%' <.*'%% ↩
+ > "$base""$(basename "$f")".author_name && ↩
+ echo "$c" | sed -e 's%.*<%%' -e 's%>.*%%' ↩
+ > "$base""$(basename "$f")".author_email; } && ↩
+ grep < "$f" ^Standard-date: | head -n 1 | { read j d && echo "$d" ↩
+ > "$base""$(basename "$f")".author_date; } && ↩
+ { grep < "$f" ^Summary: | head -n 1 | { read j m && echo "$m"; } && ↩
+ echo && sed < "$f" '1,/^$/d'; } ↩
+ > "$base""$(basename "$f")".log ↩
+ || echo >&2 "$f" failed; ↩
+ done
+ $ base=bpf--release--0.1-- && ↩
+ for f in r-patch-log/*; [...]
+
+(Of course, I could have used something more elaborate than shell scripting...)
+
+Remove the GNU arch stuff that we don't need anymore:
+
+ $ find bpf--*/ -type d \( -name {arch} -o -name .arch-ids \) -print0 ↩
+ | xargs -0 rm -r
+
+The `base-0` revisions are actually either empty (the `devel` one) or
+equivalent to the previous revision (the `release` one), so remove these:
+
+ $ rm -rf bpf--devel--0.0--base-0 bpf--release--0.1--base-0
+
+Finally, import all the other ones:
+
+ $ mkdir g && ( cd g/ && git init )
+ $ for d in bpf--d*-? bpf--d*-?? bpf--r*; do ↩
+ test -d "$d"/ || continue && ↩
+ ( cd g/ && ↩
+ rsync -a --delete --exclude=/.git ../"$d"/ ./ && ↩
+ git add . && ↩
+ GIT_AUTHOR_NAME="$(cat ../"$d".author_name)" ↩
+ GIT_AUTHOR_EMAIL="$(cat ../"$d".author_email)" ↩
+ GIT_AUTHOR_DATE="$(cat ../"$d".author_date)" ↩
+ git commit -F ../"$d".log -a ); ↩
+ done
+
+Voilà!
+
+
+**Update 2009-06-25:**
+
+Half a day later, [[HurdFr]] published a `git archimport`-converted repository
+-- which was *identical* to my hand-crafted one (apart from having
+`git-archimport-id:` tags in the commit messages, and the first (empty) commit
+not being stripped off). :-)
diff --git a/config_edittemplate.mdwn b/config_edittemplate.mdwn
index 24641bb5..a61dbb5f 100644
--- a/config_edittemplate.mdwn
+++ b/config_edittemplate.mdwn
@@ -1,14 +1,18 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation,
+Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-This page exists purely for configuring the [[iki plugins/edittemplate]]
+This page exists purely for configuring the [[!iki plugins/edittemplate]]
plugin.
-[[edittemplate template="config_edittemplate/regular_page" match="*"]]
+ * [[!edittemplate template="config_edittemplate/regular_page" match="* and
+ !open_issues/*"]]
+ * [[!edittemplate template="config_edittemplate/open_issue_page"
+ match="open_issues/*"]]
diff --git a/config_edittemplate/open_issue_page.mdwn b/config_edittemplate/open_issue_page.mdwn
new file mode 100644
index 00000000..78533450
--- /dev/null
+++ b/config_edittemplate/open_issue_page.mdwn
@@ -0,0 +1,33 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+HERE STARTS YOUR NEW CONTENT -- remove everything from here on, including this
+line.
+
+By creating this page, you agree to assign copyright for your contribution to
+the Free Software Foundation, <http://www.fsf.org/>. The Free Software
+Foundation promises to always use a free documentation license (as per our
+criteria of free documentation) when publishing your contribution. We grant
+you back all your rights under copyright, including the rights to copy, modify,
+and redistribute your contributions.
+
+We're requiring these copyright assignments, so that we'll easily be able to
+include your contributions in official GNU documentation, such as the GNU Hurd
+Reference Manual, etc. Send email to <hurd-maintainers@gnu.org> if there are
+questions.
+
+
+As you're creating a new open issue page, please supply some suitable tags
+(like \[[!tag open_issue_porting]], or \[[!tag open_issue_hurd
+open_issue_mig]], etc.; remove the backslash, of course) to make sure that your
+report shows up on the relevant lists of open issues. Select *Preview* on this
+page to see all tags that are currently in active use.
+
+[[!inline pages=tag raw=yes feeds=no]]
diff --git a/config_edittemplate/regular_page.mdwn b/config_edittemplate/regular_page.mdwn
index 33aebd4d..63cc6343 100644
--- a/config_edittemplate/regular_page.mdwn
+++ b/config_edittemplate/regular_page.mdwn
@@ -1,23 +1,24 @@
-[[meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
HERE STARTS YOUR NEW CONTENT -- remove everything from here on, including this
line.
By creating this page, you agree to assign copyright for your contribution to
-the Free Software Foundation. The Free Software Foundation promises to always
-use a free documentation license (as per our criteria of free documentation)
-when publishing your contribution. We grant you back all your rights under
-copyright, including the rights to copy, modify, and redistribute your
-contributions.
+the Free Software Foundation, <http://www.fsf.org/>. The Free Software
+Foundation promises to always use a free documentation license (as per our
+criteria of free documentation) when publishing your contribution. We grant
+you back all your rights under copyright, including the rights to copy, modify,
+and redistribute your contributions.
We're requiring these copyright assignments, so that we'll easily be able to
include your contributions in official GNU documentation, such as the GNU Hurd
-manual, etc. Send email to <hurd-maintainers@gnu.org> if there are questions.
+Reference Manual, etc. Send email to <hurd-maintainers@gnu.org> if there are
+questions.
diff --git a/confused_deputy.mdwn b/confused_deputy.mdwn
index 16b3bebf..92be6415 100644
--- a/confused_deputy.mdwn
+++ b/confused_deputy.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
[The confused deputy](http://www.cis.upenn.edu/~KeyKOS/ConfusedDeputy.html)
problem was articulated by Norm Hardy. It is a possible consequence
diff --git a/contact_us.mdwn b/contact_us.mdwn
index 84371666..2f483780 100644
--- a/contact_us.mdwn
+++ b/contact_us.mdwn
@@ -1,13 +1,13 @@
-[[meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+[[!meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
* [[Community]] -- the community around GNU Hurd.
@@ -23,4 +23,4 @@ is included in the section entitled
If you have a concern you want to send to the Hurd maintainers without
writing to a public mailing list, then please send email to
<hurd-maintainers@gnu.org>. Please don't send general support requests or
- questions there, but instead use the [[mailing_lists]].
+ questions there, but instead use the [[mailing lists]].
diff --git a/contributing.mdwn b/contributing.mdwn
index 5c0fa0cb..12be38aa 100644
--- a/contributing.mdwn
+++ b/contributing.mdwn
@@ -1,13 +1,13 @@
-[[meta copyright="Copyright © 2006, 2007, 2008, 2009 Free Software Foundation,
+[[!meta copyright="Copyright © 2006, 2007, 2008, 2009 Free Software Foundation,
Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
So, you are interested in contributing to the GNU Hurd project?
@@ -21,6 +21,10 @@ If someone of you is lurking around here and would like to contribute, but
feels she / he could do so better under formal mentoring: please speak up at
one of the [[regular_IRC_meetings|IRC#regular_meetings]]!
+Generally we also have a list of [[open_issues]] and one for
+[[project_ideas|community/gsoc/project_ideas]] - the latter written for the
+Google Summer of Code.
+
# Documentation
@@ -41,7 +45,7 @@ For one there's the implementation of the *[[Hurd]] running on the
meant when people are talking about GNU/Hurd systems.
This system has mostly been designed and implemented
-[[in_the_'90s|hurd/history]]. It works and is usable.
+[[in the '90s|history]]. It works and is usable.
For example, these web pages are rendered on a [GNU/Hurd
system](http://www.bddebian.com/cgi-bin/uptime).
@@ -82,19 +86,9 @@ Here is a
You can also just [[install_Debian_GNU/Hurd|hurd/running/debian]] and find what
doesn't work or suit you and try to improve that.
-### Open Issues: GNU Hurd
-
-Here is a [[list_of_open_issues|hurd/open_issues]] for the [[GNU_Hurd|hurd]].
-
-### Open Issues: GNU Mach
-
-Here is a [[list_of_open_issues|microkernel/mach/gnumach/open_issues]] for
-[[GNU_Mach|microkernel/mach/gnumach]].
-
-### Open Issues: GNU MIG
+### Open Issues
-Here is a [[list_of_open_issues|microkernel/mach/mig/gnu_mig/open_issues]] for
-[[microkernel/mach/mig/GNU_MIG]].
+Here is a list of [[open_issues]].
<a name="hurd_on_modern_microkernel"> </a>
@@ -115,5 +109,5 @@ system nevertheless is a prerequisite. At least have a deep look at the
documentation pointers given in the previous section. Also read through the
[[HurdNG|hurd/ng]] section.
-Please send email to the [[mailing_lists/l4-hurd]] mailing list for discussing
+Please send email to the [[mailing lists/l4-hurd]] mailing list for discussing
this post-Mach system design.
diff --git a/contributing/questionnaire.mdwn b/contributing/questionnaire.mdwn
index 3320b80a..bc548b64 100644
--- a/contributing/questionnaire.mdwn
+++ b/contributing/questionnaire.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2006, 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2006, 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
People often come to us and state that they'd like to help with the GNU/Hurd.
This is very good and very much encouraged: we're always looking for volunteers
@@ -42,4 +42,4 @@ items and spend some time thinking about those.
Every new contributor is very much encouraged to take some notes about these
-items and post them to *[[mailing_lists/bug-hurd]]*.
+items and post them to *[[mailing lists/bug-hurd]]*.
diff --git a/contributing/web_pages.mdwn b/contributing/web_pages.mdwn
index 5796d56e..51ce873e 100644
--- a/contributing/web_pages.mdwn
+++ b/contributing/web_pages.mdwn
@@ -1,12 +1,20 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008, 2009, 2010 Free Software Foundation,
+Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!meta title="Contribute to the Web Pages"]]
+
+[[!toc levels=3]]
+
+
+# General Information
(!) Some general hints first; they may sound very familiar from other software
projects:
@@ -16,147 +24,197 @@ projects:
* Install your changes *early* and *often*: don't hold your contribution back
until you think it is perfect.
+## Syntax
+
Before doing any changes, you are encouraged to play a bit in the
[[sandbox]], to become familiar with the [[ikiwiki/Markdown]] syntax. Get some
[[help_on_formatting|ikiwiki/formatting]].
+## Commit Messages
+
Please comment every change you make, however small. Keep all comments short
and to the point, e.g. "Fixed typo." or "Added link to main page.".
+## Asking Questions -- on Sub-Pages
+
Feel free to ask questions or report problems on every page's [[discussion]]
sub-page. They're reachable from the *Discussion* link on the top of the page,
which will, when selected, create a new page if there isn't one yet.
+## Editing Pages
+
Every page on the site is editable, like in a wiki. Feel free to join in, but
we do have some simple requests. Please try to match the *tone* of your topics
and edits with the existing topics. If we all pull in the same direction these
pages will be more useful for everyone, especially for our own use.
+### News Items
+
+There are [[more detailed instructions about editing news items|news]].
+
+<a name="staging_area">
+## Staging Area
+</a>
+
When you commit changes, either using the web interface or checking them in
-into the repository, they'll not become visible on
-<http://www.gnu.org/software/hurd/> immediatelly, but first of all only on
+into the repository; they won't become visible on
+<http://www.gnu.org/software/hurd/> immediately, but on
<http://www.bddebian.com:8888/~hurd-web/> instead. The former set of pages,
the official GNU Hurd web appearance, will be updated periodically (but
-manually) from the latter one, where every edit is visible immediatelly. This
+manually) from the latter one, where every edit is visible immediately. This
is so that we have a chance to have the pages make fit for appearance on
`www.gnu.org`, but you are nevertheless able to work on all pages
unrestrictedly.
-# Edit Via the Web Interface
+# Editing via the Web Interface
-When you found a page you want to work on, just follow the *Edit* link on the
-top of the page. When doing this for the first time, this will first transfer
-you to a page where you have to create an account. After logging in, you
-can edit the pages.
+When you have found a page you want to work on, just follow the *Edit* link at the
+top of the page. When doing this for the first time, this will first redirect
+you to a page where you will have to create an account. After logging in, you
+can edit pages.
-# Working on a Checkout of the git Repository
+# Working on a Checkout of the Git Repository
-(!) What is being described here are only the basics. The checkouts are
-completely valid git repositories and can (and want to) be treated as such.
-Consult the git documentation about how to shuffle around with branches, how to
-rename files, how to upload arbitrary data files, and so on.
+(!) What is being described here is only the basics. The checkouts are
+completely valid Git repositories and can (and want to) be treated as such.
+Consult the Git documentation about how to shuffle around with branches, how to
+rename files, how to add arbitrary data files, and so on.
(!) Before attempting any bigger editing work (to which you are sincerely
-invited!) be sure to check the involved pages' *Discussion* subpages (linked
+invited!) be sure to check the involved pages' *Discussion* sub-pages (linked
from the pages' header line) and in there take down (short) notes about the
-editing endeavors you're going to undertake. Doing so should help to (a) avoid
-double work and (b) avoid merge conflict if you install your changes into the
+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.
+## Identifying Yourself
-First, let's make sure that you're properly identifying yourself towards git.
+First, let's make sure that you're properly identifying yourself towards Git.
- $ git var GIT_AUTHOR_IDENT
- Thomas Schwinge <tschwinge@gnu.org> 1186743435 +0200
+ $ git var GIT_AUTHOR_IDENT
+ Thomas Schwinge <tschwinge@gnu.org> 1186743435 +0200
If it doesn't look akin to that for you, you'd better adjust either your
-`EMAIL` environment variable or alternatively tell git about your real
+`EMAIL` environment variable or alternatively tell Git about your real
identity:
- $ git config --global user.name 'Your Name'
- $ git config --global user.email you@somewhere.invalid
+ $ git config --global user.name 'Your Name'
+ $ git config --global user.email you@somewhere.invalid
+## Getting the Sources
-For being able to do a checkout from which you can later directly push your
+To be able to do a checkout from which you can later directly push your
changes back into the master repository, you need a
[[shell_account_on_*flubber*|public_hurd_boxen]] and need to be a member of
-the *hurd-web* group. (It's also very much recommenable that you set up your local
-ssh configuration as advised on that page.) If you have an account on there:
+the *hurd-web* group. (It's also recommended that you set up your local
+SSH configuration as advised on that page.) If you have an account on there:
- $ git clone flubber:~hurd-web/hurd-web [dest]
+ $ git clone flubber:~hurd-web/hurd-web [dest]
If you don't have such an account or don't have your login data handy, you can
-still get the pages the read-only way.
-
-Note that this -- currently -- is not the data from the master server, but from
-a mirror of it, so it may be lacking behind a bit from time to time.
+still get pages the read-only way.
- $ git clone git://git.savannah.gnu.org/hurd/web.git [dest]
+ $ git clone git://flubber.bddebian.com/~hurd-web/hurd-web [dest]
-If that also doesn't work out, you have yet another chance: pull over the http
-protocol. Not very efficient (read: rather inefficient), but it works. This
+If that also doesn't work out, you have yet another chance: pull over the HTTP
+protocol. Not very efficient (read: rather inefficient), but it works. This
is also read-only.
- $ git clone http://www.bddebian.com:8888/git/hurd-web [dest]
+ $ git clone http://www.bddebian.com:8888/git/hurd-web [dest]
For all cases: if you omit `[dest]` it will default to `hurd-web`.
-Later, you can just `cd` into the `hurd-web` directory and run a `git pull` to get
-hold of the latest changes others have been installing in the mean time. (Even
-better would be to do a `git fetch`, followed by a `git rebase origin/master`
-to avoid those *Merge branch ...* messages. See the git documentation for
-details.)
+Later, you can just `cd` into the `hurd-web` directory and run a `git pull` to
+get hold of the latest changes others have been installing in the mean time.
+(In most cases, you should use `git pull --rebase`,
+to avoid useless *Merge branch ...* messages. See the
+Git documentation for details.)
+## Editing the Content
But now: work on these files.
- $ cd hurd-web/
- $ emacs hurd/ng.mdwn
- $ # Check what you've done.
- $ git diff hurd/ng.mdwn
- $ git commit hurd/ng.mdwn
- [...]
- $ # Add a new file.
- $ emacs microkernel/mach/issues.mdwn
- $ git add microkernel/mach/issues.mdwn
- $ git commit microkernel/mach/issues.mdwn
- [...]
- $ [...]
+ $ cd hurd-web/
+ $ emacs hurd/ng.mdwn
+ $ # Check what you've done.
+ $ git diff hurd/ng.mdwn
+ $ git commit hurd/ng.mdwn
+ [...]
+ $ # Add a new file.
+ $ emacs microkernel/mach/issues.mdwn
+ $ git add microkernel/mach/issues.mdwn
+ $ git commit microkernel/mach/issues.mdwn
+ [...]
+ $ [...]
Remember that at this stage your commits have only been installed into your
personal working copy. You'll finally have to explicitly install your changes
into the master repository, see below.
+## Preview Changes
You can also locally get the whole set of pages rendered to HTML:
- $ hurd-web/render_locally
- [...]
- scanning contributing/web_pages.mdwn
- rendering contributing/web_pages.mdwn
-
- Now open `hurd-web.rendered/index.html' to browse the pages.
+ $ hurd-web/render_locally
+ [...]
+ scanning contributing/web_pages.mdwn
+ rendering contributing/web_pages.mdwn
+
+ Now open `hurd-web.rendered/index.html' to browse the pages.
+
+### ikiwiki's `w3mmode`
+
+If you're a [`w3m`](http://w3m.sourceforge.net/) user, you can also use `w3m`
+to edit your files locally, as it were done through the web interface at
+<http://www.bddebian.com:8888/~hurd-web/>.
+
+First, generate the wrapper. Unless the configuration is changed, this has to
+be done only once.
+
+ $ hurd-web/render_locally --w3m-wrapper
+ successfully generated /home/thomas/.ikiwiki/wrappers/hurd-web.cgi
+
+Render the pages:
+
+ $ hurd-web/render_locally --w3m
+ [...]
+ scanning contributing/web_pages.mdwn
+ rendering contributing/web_pages.mdwn
+
+ Now open `hurd-web.rendered.w3m/index.html' to browse the pages.
+
+Invoke `w3m`:
+
+ $ w3m hurd-web.rendered.w3m/index.html
+
+Or, to directly create a new page:
+
+ $ w3m 'file:///$LIB/ikiwiki-w3m.cgi/hurd-web.cgi?page=open_issues/gnumach_has_a_bug&do=create'
+
+Note that the changes you do via `w3m` will not be committed to the VCS (see
+[[render_locally]] for details.)
+## Publish Your Changes
If you like what you've done, then it's now time to publish your changes.
If you can push directly into the master repository this is really simple:
- $ git push
- updating 'refs/heads/master'
- from d83f93f34b69633ca1afb588001df7addd708faf
- to c0b8171de9c69e029bf998aafd4682105c217eb8
- Generating pack...
- [...]
- Updating web pages. This may up to a few minutes at the utmost...
+ $ git push
+ updating 'refs/heads/master'
+ from d83f93f34b69633ca1afb588001df7addd708faf
+ to c0b8171de9c69e029bf998aafd4682105c217eb8
+ Generating pack...
+ [...]
+ Updating web pages. This may up to a few minutes at the utmost...
If you can't do that, then first prepare to publish your changes:
- $ git-format-patch -M -B origin
- 0001-Be-a-bit-more-expressive.patch
- [...]
+ $ git format-patch -M -B origin
+ 0001-Be-a-bit-more-expressive.patch
+ [...]
See through the generated `*.patch` files and simply delete those you don't
want to publish.
@@ -164,8 +222,8 @@ want to publish.
Finally, publish the good ones. If you have a local mail transfer agent
running, the following is all you have to do:
- $ git-send-email --to web-hurd@gnu.org *.patch
- [...]
+ $ git send-email --to web-hurd@gnu.org *.patch
+ [...]
If you don't have an MTA running, you'll have to find another way: either post
the `*.patch` files to <web-hurd@gnu.org> or upload them somewhere for us to
diff --git a/contributing/web_pages/news.mdwn b/contributing/web_pages/news.mdwn
new file mode 100644
index 00000000..a9a86d75
--- /dev/null
+++ b/contributing/web_pages/news.mdwn
@@ -0,0 +1,110 @@
+[[!meta copyright="Copyright © 2009, 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta title="""How to prepare and publish "a month of the Hurd" for the last
+month"""]]
+
+We prepare *a month of the Hurd* in a public git branch (`master-news_next`),
+and merge that one into `master` once we want to publish the news. The idea is
+to record to-be-published changes on that branch at they time they arise, and
+then publish them en bloc at the end of the month.
+
+As this is done on a separate branch, there are two options: you can have
+separate repositories (*clones*, or *checkouts*; what you get from `git clone`)
+for the `master` and `master-news_next` branches, or you can deal with both in
+the same repository. Having separate repositories you don't have to remember
+which branch you're on, and don't have to switch between branches before
+beginning to edit files, and it doesn't matter -- as no switching between
+branches is needed -- if you have uncomitted changes to some files. On the
+other hand, you may want to keep it all in one repository, to save disk space,
+and for shuffling different branches' commits being (a bit) easier.
+
+For practical work that means to use the following commands:
+
+ * create a local branch for `master-news_next`
+
+ $ git fetch
+ $ git checkout -b master-news_next origin/master-news_next
+
+ * if you already have created a local branch `master-news_next`: update to
+ the latest version of it
+
+ $ git checkout master-news_next
+ $ git pull --rebase
+
+ * edit
+
+ Always do check which branch you're on (asterisk in the first column of
+ `git branch`'s output), and only then begin to do your changes and commit
+ them.
+
+ We should not update news items that have already been published (that is,
+ on <http://www.gnu.org/software/hurd/news.html>; no problem for the
+ [[staging area|web_pages#staging_area]]), as the system will always also
+ update the RSS feeds, etc., causing the old news item to reappear on feeds,
+ which is a bit of a nuisance.
+
+ * at the beginning of a month: create a new news entry
+
+ $ cp contributing/web_pages/news/skeleton.mdwn news/YYYY-MM-DD.mdwn
+ $ # edit the new file, then add the changes in git
+ $ git add news/YYYY-MM-DD.mdwn
+ $ git commit -m "Begun the news entry for YYYY-MM-DD."
+
+ That is, use the [[news_skelleton|skeleton]] as a template for the new
+ news snippet.
+
+ * check the outgoing changes
+
+ $ git log --reverse -p -C origin/master-news_next..master-news_next
+
+ * push the changes
+
+ $ git push origin master-news_next
+
+ * if push fails, pull and rebase the local changes on top of the remote
+ changes
+
+ $ git pull --rebase
+
+ This will only happen if someone else has been installing commits into
+ `origin`'s `master-news_next` branch since the last time you
+ synchronized to it.
+
+ Note that this might cause some conflicts to arise -- if the remote
+ repository contains commits that conflict with any that you've been
+ recording in your local repository. For this reason, you might want to
+ already do this *rebase* before beginning you local edits, simply to
+ shorten the time frame in which such conflicts can arise.
+ (Theoretically, in the very rare case of very much concurrent editing
+ going on, you'd have to repeat this again (and again...) before
+ succeeding to push your changes.)
+
+ * at the end of the month: prepare for publishing the news
+
+ Edit the news entry's *meta date* value to the timestamp when the news
+ entry is [[published|news]]. We have to set that one manually, as
+ otherwise the timestamp of the news entry file's creation will be taken,
+ which is (much) earlier, and not what we want. We do not set the *meta
+ updated* value, as it's correct to update that one upon further
+ modifications of the news entries.
+
+ * ... and publish
+
+ $ git checkout master
+ $ git pull --rebase
+ $ git merge master-news_next
+ $ git push origin master
+
+ That means, for publishing we merge `master-news_next` into `master`.
+ After that merge, work for the next month's news item can continue on
+ `master-news_next`.
+
+ Arne Babenhauserheide uses a [[merge-news]] script for doing this.
diff --git a/contributing/web_pages/news/merge-news b/contributing/web_pages/news/merge-news
new file mode 100644
index 00000000..33c01b7b
--- /dev/null
+++ b/contributing/web_pages/news/merge-news
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+# merge into master
+git checkout master
+git pull --rebase
+git merge master-news_next
+
+# push master
+git push origin master
+
+# switch back to master-news_next
+git checkout master-news_next
+git pull --rebase
diff --git a/contributing/web_pages/news/skeleton.mdwn b/contributing/web_pages/news/skeleton.mdwn
new file mode 100644
index 00000000..0d0af8de
--- /dev/null
+++ b/contributing/web_pages/news/skeleton.mdwn
@@ -0,0 +1,33 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+<!-- Date when the news item is (to be) pulished (important for RSS feeds).
+Will be set by tschwinge when publishing.
+[[!meta date="YYYY-MM-DD HH:MM UTC"]]
+-->
+
+A month of the Hurd: **, ** and **.
+[[!if test="included()" then="""[[!toggle id=full_news
+text="Details."]][[!toggleable id=full_news text="[[!paste id=full_news]]"]]"""
+else="[[!paste id=full_news]]"]]
+
+[[!cut id="full_news" text="""
+> This month
+>
+> Also
+>
+> Mainly thanks to
+>
+> Additionally
+>
+> And
+>
+
+"""]]
diff --git a/copyright.mdwn b/copyright.mdwn
index fcdab55d..8cd0aa21 100644
--- a/copyright.mdwn
+++ b/copyright.mdwn
@@ -1 +1,2 @@
-Copyright © 2002, 2003, 2004, 2005, 2006, 2007, 2008 The Contributing Authors
+Copyright © 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 The Contributing
+Authors
diff --git a/dde.mdwn b/dde.mdwn
new file mode 100644
index 00000000..7d341da5
--- /dev/null
+++ b/dde.mdwn
@@ -0,0 +1,42 @@
+[[!meta copyright="Copyright © 2009, 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+ * [[community/gsoc/project ideas/driver glue code]]
+
+ * [[open issues/user-space device drivers]]
+
+ * [[open issues/device drivers and io systems]]
+
+---
+
+# Documentation
+
+ * <http://demo.tudos.org/dsweeper_tutorial.html>
+
+ Why device drivers in user space; different possibilities for getting
+ device drivers; DDE's origins and rationale.
+
+ * <http://wiki.tudos.org/DDE/DDEKit>,
+ <http://os.inf.tu-dresden.de/pipermail/l4-hackers/2009/004291.html>
+
+ Structural overview of the components.
+
+
+# Discussion
+
+DDE essentially is a glue layer to embed Linux device drivers into another
+environement. In the DDE case, this *other environment* is a user-space task
+-- compared to the GNU Mach kernel having a *in-kernel* Linux 2.0 device
+drivers glue code (cf. paper by Goel et al.).
+
+
+# Source Code
+
+ * <http://www.inf.tu-dresden.de/index.php?node_id=1584&ln=en>
diff --git a/designation.mdwn b/designation.mdwn
index 4307ec5b..771d8e66 100644
--- a/designation.mdwn
+++ b/designation.mdwn
@@ -1,11 +1,11 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
To designate is to name.
diff --git a/destructive_interference.mdwn b/destructive_interference.mdwn
index 1cda81a6..1f468034 100644
--- a/destructive_interference.mdwn
+++ b/destructive_interference.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
Interference can be destructive or non-destructive. When a [[principal]]
invokes an object (thereby requesting a service) and the implementation
diff --git a/documentation.mdwn b/documentation.mdwn
index 4e4b4b23..d96cb24b 100644
--- a/documentation.mdwn
+++ b/documentation.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008, 2010 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
Documentation for...
@@ -17,8 +17,6 @@ Documentation for...
* [[MIG|microkernel/mach/mig/documentation]]
-# [[Unix]] Programming
+# General
- * *The C Programming Language* by Brian W. Kernighan and Dennis M. Ritchie,
- [order from
- Amazon](http://www.amazon.com/Programming-Language-Prentice-Hall-Software/dp/0131103628/ref=pd_bxgy_b_img_a)
+ * [[Media_Appearances]]
diff --git a/donate.mdwn b/donate.mdwn
index 954b4ee4..22b218c1 100644
--- a/donate.mdwn
+++ b/donate.mdwn
@@ -1,13 +1,13 @@
-[[meta copyright="Copyright © 2003, 2006, 2007, 2008
+[[!meta copyright="Copyright © 2003, 2006, 2007, 2008
Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
If you feel like donating goods or money for the work the developers are doing,
then we're happy to confirm that this is indeed possible. Of course we'd
diff --git a/hurd/open_issues/libfshelp_in_hurdlibs.mdwn b/download.mdwn
index 7717cef8..542a9e5b 100644
--- a/hurd/open_issues/libfshelp_in_hurdlibs.mdwn
+++ b/download.mdwn
@@ -1,12 +1,13 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-[[libtrivfs]] seems to use [[libfshelp]], but doesn't have it listed in
-`HURDLIBS`. Should change that? Same for [[libnetfs]] and [[libdiskfs]]?
+[[!tag stable_URL]]
+
+[[!meta redir=source_repositories]]
diff --git a/emulation.mdwn b/emulation.mdwn
index 856e0f92..9e6a5e55 100644
--- a/emulation.mdwn
+++ b/emulation.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
# External
diff --git a/extensibility.mdwn b/extensibility.mdwn
index 4ef70986..01b1f3b1 100644
--- a/extensibility.mdwn
+++ b/extensibility.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
An extensible system is one that enables extensibility. Enabling extensibility
means providing non-privileged mechanisms to extend existing objects and to
diff --git a/fdl.texi b/fdl.texi
index a6845f40..26bc2d64 100644
--- a/fdl.texi
+++ b/fdl.texi
@@ -1,7 +1,9 @@
-[[meta copyright="Copyright © 2000, 2001, 2002 Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA"]]
-[[meta license="Everyone is permitted to copy and distribute verbatim copies of
-this license document, but changing it is not allowed."]]
+[[!meta copyright="Copyright © 2000, 2001, 2002 Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,
+USA"]]
+
+[[!meta license="Everyone is permitted to copy and distribute verbatim
+copies of this license document, but changing it is not allowed."]]
@c The GNU Free Documentation License.
@center Version 1.2, November 2002
diff --git a/gcc.mdwn b/gcc.mdwn
index 93256f1b..81a2a357 100644
--- a/gcc.mdwn
+++ b/gcc.mdwn
@@ -1,11 +1,14 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation,
+Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
The [GNU Compiler Collection](http://gcc.gnu.org/).
+
+ * [[Open Issues|tag/open_issue_gcc]]
diff --git a/gdb.mdwn b/gdb.mdwn
index 83113f9e..6c43728c 100644
--- a/gdb.mdwn
+++ b/gdb.mdwn
@@ -1,17 +1,21 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation,
+Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
The [GNU debugger *GDB*](http://www.gnu.org/software/gdb/).
-* [[Backtrace]]s
+ * [[Backtrace]]s
-* [Manual](http://sourceware.org/gdb/documentation/)
+ * [Manual](http://sourceware.org/gdb/documentation/)
-* [When disassemble doesn't work](http://lists.gnu.org/archive/html/bug-hurd/2007-02/msg00039.html)
+ * [When disassemble doesn't
+ work](http://lists.gnu.org/archive/html/bug-hurd/2007-02/msg00039.html)
+
+ * [[Open Issues|tag/open_issue_gdb]]
diff --git a/gdb/backtrace.mdwn b/gdb/backtrace.mdwn
index 9716a211..7411ad05 100644
--- a/gdb/backtrace.mdwn
+++ b/gdb/backtrace.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
When someone asks you to supply a backtrace (from a [[segmentation_fault]], for
example), here is roughly what you have to do.
diff --git a/generate_interface_redir_pages b/generate_interface_redir_pages
new file mode 100755
index 00000000..b6adc349
--- /dev/null
+++ b/generate_interface_redir_pages
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+for s; do
+ s=$(basename "$s") &&
+ for i in "$s"/??.mdwn; do
+ t=$(grep '^\[\[!meta title' | cut -d \" -f 2) \
+ < "$i" &&
+ i=$(expr "$i" : '\(.*\)\.mdwn') &&
+ cat \
+ > "$t".mdwn \
+ <<EOF
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta redir=$i]]
+EOF
+ done
+done
diff --git a/getting_help.mdwn b/getting_help.mdwn
index 11f56eec..92efabbe 100644
--- a/getting_help.mdwn
+++ b/getting_help.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
# Essential Documentation
@@ -23,7 +23,7 @@ is included in the section entitled
# Forums
-[[inline pages=asking_questions raw=yes feeds=no]]
+[[!inline pages=asking_questions raw=yes feeds=no]]
* [[Mailing_lists]]
* [[IRC]]
diff --git a/glibc.mdwn b/glibc.mdwn
index f6325ff8..c7e5eeb7 100644
--- a/glibc.mdwn
+++ b/glibc.mdwn
@@ -1,11 +1,11 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
The [GNU C Library](http://www.gnu.org/software/libc/).
diff --git a/grub.mdwn b/grub.mdwn
index a63ad181..9327ecdf 100644
--- a/grub.mdwn
+++ b/grub.mdwn
@@ -1,4 +1,41 @@
-# [GRUB](http://www.gnu.org/software/grub/)
+<http://www.gnu.org/software/grub/>
+
+This section complements the [[InstallNotes]] with complete information
+regarding the GRUB 2 boot loader. The syntax is different from GRUB Legacy aka
+GRUB 1 (see below).
+
+ * `update-grub` is *Debian specific* and very useful. It will automatically
+ create a `/boot/grub/grub.cfg` file for the kernels in `/boot/` and for
+ OSes that it finds on various partitions, including GNU/Hurd.
+
+ * Make sure that GRUB 2's version is at least 20091130 and GNU Mach's version
+ is at least 20091020.
+
+ * Sample file:
+
+ menuentry "GNU/Linux" {
+ insmod ext2
+ set root=(hd0,12)
+ linux /boot/vmlinuz-2.6.32 root=/dev/hda12 ro
+ initrd /boot/initrd.img-2.6.32
+ }
+
+ menuentry "GNU" {
+ insmod ext2
+ set root=(hd0,16)
+ multiboot /boot/gnumach.gz root=device:hd0s16
+ module /hurd/ext2fs.static ext2fs --readonly \
+ --multiboot-command-line='${kernel-command-line}' \
+ --host-priv-port='${host-port}' \
+ --device-master-port='${device-port}' \
+ --exec-server-task='${exec-task}' -T typed '${root}' \
+ '$(task-create)' '$(task-resume)'
+ module /lib/ld.so.1 exec /hurd/exec '$(exec-task=task-create)'
+ }
+
+---
+
+**The following information may be outdated and should be revised.**
This section complements the [[InstallNotes]] with complete information regarding the GRUB boot loader. The syntax is different from Lilo's and so to scratch my own itch I'm creating this quick reference. The [Grub manual](http://www.gnu.org/software/grub/manual/grub.html) is another good reference.
@@ -13,27 +50,27 @@ This section complements the [[InstallNotes]] with complete information regardin
* boot
* sample file
- title GNU/Linux
- root (hd0,11)
- kernel /boot/vmlinuz-2.4.18 root=/dev/hda12 ro
- initrd /boot/initrd.img-2.4.18
- savedefault
-
- title GNU
- root (hd0,15)
- kernel /boot/oskit-mach root=device:hd0s16 --
- module /hurd/ext2fs.static \
- --multiboot-command-line=${kernel-command-line} \
- --host-priv-port=${host-port} \
- --device-master-port=${device-port} \
- --exec-server-task=${exec-task} \
- -T typed ${root} $(task-create) $(task-resume)
- module /lib/ld.so.1 /hurd/exec $(exec-task=task-create)
- savedefault
-
- title DOS
- rootnoverify (hd0,0)
- chainloader +1
+ title GNU/Linux
+ root (hd0,11)
+ kernel /boot/vmlinuz-2.4.18 root=/dev/hda12 ro
+ initrd /boot/initrd.img-2.4.18
+ savedefault
+
+ title GNU
+ root (hd0,15)
+ kernel /boot/oskit-mach root=device:hd0s16 --
+ module /hurd/ext2fs.static \
+ --multiboot-command-line=${kernel-command-line} \
+ --host-priv-port=${host-port} \
+ --device-master-port=${device-port} \
+ --exec-server-task=${exec-task} \
+ -T typed ${root} $(task-create) $(task-resume)
+ module /lib/ld.so.1 /hurd/exec $(exec-task=task-create)
+ savedefault
+
+ title DOS
+ rootnoverify (hd0,0)
+ chainloader +1
-- [[Main/GrantBow]] - 01 Oct 2002 <br /> -- [[Main/GrantBow]] - 22 Dec 2002
diff --git a/hurd/history.mdwn b/history.mdwn
index 58a75927..8f155b54 100644
--- a/hurd/history.mdwn
+++ b/history.mdwn
@@ -1,13 +1,15 @@
-[[meta copyright="Copyright © 1998, 1999, 2001, 2002, 2007, 2008, 2009 Free
+[[!meta copyright="Copyright © 1998, 1999, 2001, 2002, 2007, 2008, 2009 Free
Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!tag stable_URL]]
Richard Stallman (RMS) started GNU in 1983, as a project to create a
complete free operating system. In the text of the GNU Manifesto, he
@@ -48,7 +50,8 @@ full functionality. Later we hope to have a modular emulator divided
into multiple processes. [Gnusletter, Jan. 1991].
</BLOCKQUOTE>
-RMS explains the relationship between the [[documentation/Hurd_and_Linux]], where he mentions
+RMS explains the relationship between [[the Hurd and
+Linux|hurd-and-linux]], where he mentions
that the FSF started developing the Hurd in 1990. As of [Gnusletter,
Nov. 1991], the Hurd (running on Mach) is GNU's official kernel.
diff --git a/hurd/history/hurd-announce b/history/hurd-announce
index 2f165ad8..2f165ad8 100644
--- a/hurd/history/hurd-announce
+++ b/history/hurd-announce
diff --git a/hurd/history/hurd-announce2 b/history/hurd-announce2
index dce41c43..dce41c43 100644
--- a/hurd/history/hurd-announce2
+++ b/history/hurd-announce2
diff --git a/hurd/history/hurd-flash b/history/hurd-flash
index d1bacc79..d1bacc79 100644
--- a/hurd/history/hurd-flash
+++ b/history/hurd-flash
diff --git a/hurd/history/hurd-flash10 b/history/hurd-flash10
index d6d5685b..d6d5685b 100644
--- a/hurd/history/hurd-flash10
+++ b/history/hurd-flash10
diff --git a/hurd/history/hurd-flash11 b/history/hurd-flash11
index 57851b01..57851b01 100644
--- a/hurd/history/hurd-flash11
+++ b/history/hurd-flash11
diff --git a/hurd/history/hurd-flash12 b/history/hurd-flash12
index 5be9c94e..5be9c94e 100644
--- a/hurd/history/hurd-flash12
+++ b/history/hurd-flash12
diff --git a/hurd/history/hurd-flash13 b/history/hurd-flash13
index a2de6bfd..a2de6bfd 100644
--- a/hurd/history/hurd-flash13
+++ b/history/hurd-flash13
diff --git a/hurd/history/hurd-flash14 b/history/hurd-flash14
index 2d67687a..2d67687a 100644
--- a/hurd/history/hurd-flash14
+++ b/history/hurd-flash14
diff --git a/hurd/history/hurd-flash15 b/history/hurd-flash15
index 0785ac59..0785ac59 100644
--- a/hurd/history/hurd-flash15
+++ b/history/hurd-flash15
diff --git a/hurd/history/hurd-flash2 b/history/hurd-flash2
index b1d4f66f..b1d4f66f 100644
--- a/hurd/history/hurd-flash2
+++ b/history/hurd-flash2
diff --git a/hurd/history/hurd-flash3 b/history/hurd-flash3
index 19a5f371..19a5f371 100644
--- a/hurd/history/hurd-flash3
+++ b/history/hurd-flash3
diff --git a/hurd/history/hurd-flash4 b/history/hurd-flash4
index 89ae9848..89ae9848 100644
--- a/hurd/history/hurd-flash4
+++ b/history/hurd-flash4
diff --git a/hurd/history/hurd-flash5 b/history/hurd-flash5
index 041a0ef7..041a0ef7 100644
--- a/hurd/history/hurd-flash5
+++ b/history/hurd-flash5
diff --git a/hurd/history/hurd-flash6 b/history/hurd-flash6
index e774714e..e774714e 100644
--- a/hurd/history/hurd-flash6
+++ b/history/hurd-flash6
diff --git a/hurd/history/hurd-flash7 b/history/hurd-flash7
index ce6e08d2..ce6e08d2 100644
--- a/hurd/history/hurd-flash7
+++ b/history/hurd-flash7
diff --git a/hurd/history/hurd-flash8 b/history/hurd-flash8
index 555186ec..555186ec 100644
--- a/hurd/history/hurd-flash8
+++ b/history/hurd-flash8
diff --git a/hurd/history/hurd-flash9 b/history/hurd-flash9
index 1ff32ba9..1ff32ba9 100644
--- a/hurd/history/hurd-flash9
+++ b/history/hurd-flash9
diff --git a/hurd/history/port_to_l4.mdwn b/history/port_to_l4.mdwn
index d4daeefa..cdf048e6 100644
--- a/hurd/history/port_to_l4.mdwn
+++ b/history/port_to_l4.mdwn
@@ -1,40 +1,40 @@
-[[meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009
+[[!meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009
Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-[[meta title="Porting the Hurd to L4: Hurd/L4"]]
+[[!meta title="Porting the Hurd to L4: Hurd/L4"]]
There was an effort to port the Hurd from [[microkernel/Mach]] to the
[[L4_microkernel_family|microkernel/L4]].
The idea of using L4 as a [[microkernel]] for a [[Hurd_system|hurd]] was
initially voiced in the [[Hurd_community|community]] by Okuji Yoshinori, who,
-for discussing this purpose, created the [[mailing_lists/l4-hurd]] mailing list
+for discussing this purpose, created the [[mailing lists/l4-hurd]] mailing list
in November 2000.
The project itself then was mostly lead by Marcus Brinkmann and Neal Walfield.
Even though there was progress -- see, for example, the
-[[QEMU_image_for_L4|running/qemu/image_for_l4]] -- this port never reached a
+[[QEMU image for L4|hurd/running/qemu/image for l4]] -- this port never reached a
releasable state. Eventually, a straight-forward port of the original Hurd's
design wasn't deemed feasible anymore by the developers, partly due to them not
cosidering L4 suitable for implementing a general-purpose operating system on
top of it, and because of deficiencies in the original Hurd's design, which
-they discovered along their way. Read the [[critique]] and a
-[[ng/position_paper]].
+they discovered along their way. Read the [[hurd/critique]] and a
+[[hurd/ng/position paper]].
By now, the development of Hurd/L4 has stopped. However, Neal Walfield moved
on to working on a newly designed kernel called [[microkernel/viengoos]].
Over the years, a lot of discussion have been held on the
-[[mailing_lists/l4-hurd]] mailing list, which today is still the right place
-for [[next-generation_Hurd|ng]] discussions.
+[[mailing lists/l4-hurd]] mailing list, which today is still the right place
+for [[next-generation Hurd|hurd/ng]] discussions.
Development of Hurd/L4 was done in the `hurd-l4` module of the Hurd CVS
repository. The `doc` directory contains a design document that is worth
@@ -81,12 +81,12 @@ explains:
> Before Marcus and I considered [[microkernel/Coyotos]], we had already
> rejected some parts of the Hurd's design. The
-> [[microkernel/mach/gnumach/open_issues/resource_management_problems]] were
+> [[open issues/resource management problems]] were
> what prompted me to look at L4. Also, some of the problems with
-> [[translator]]s were already well-known to us. (For a more detailed
-> description of the problems we have identified, see our [[critique]] in the
+> [[hurd/translator]]s were already well-known to us. (For a more detailed
+> description of the problems we have identified, see our [[hurd/critique]] in the
> 2007 July's SIGOPS OSR. We have also written a forward-looking
-> [[ng/position_paper]].)
+> [[hurd/ng/position paper]].)
> We visited Jonathan Shapiro at Hopkins in January 2006. This resulted in a
> number of discussions, some quite influential, and not always in a way which
@@ -94,7 +94,7 @@ explains:
> a number of security issues.
A lange number of discussion threads can be found in the archives of the
-[[mailing_lists/l4-hurd]] mailing list.
+[[mailing lists/l4-hurd]] mailing list.
> Hurd-NG, as we originally called it, was an attempt to articulate the system
> that we had come to envision in terms of interfaces and description of the
diff --git a/hurd/documentation/hurd-and-linux.html b/hurd-and-linux.html
index 8eccd62c..01b08aa1 100644
--- a/hurd/documentation/hurd-and-linux.html
+++ b/hurd-and-linux.html
@@ -1,10 +1,12 @@
-[[meta copyright="Copyright © 1996, 1997, 1998, 2008 Free Software Foundation,
-Inc."]]
+[[!meta copyright="Copyright © 1996, 1997, 1998, 2008, 2009 Free Software
+Foundation, Inc."]]
-[[meta license="Verbatim copying and distribution of this entire article is
+[[!meta license="Verbatim copying and distribution of this entire article is
permitted in any medium, provided this notice is preserved."]]
-[[meta title="The Hurd and Linux"]]
+[[!meta title="The Hurd and Linux"]]
+
+[[!tag stable_URL]]
by <A HREF="http://www.stallman.org/">Richard Stallman</A>.
diff --git a/hurd-l4.mdwn b/hurd-l4.mdwn
new file mode 100644
index 00000000..579c1190
--- /dev/null
+++ b/hurd-l4.mdwn
@@ -0,0 +1,13 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!tag stable_URL]]
+
+[[!meta redir=history/port_to_l4]]
diff --git a/hurd/documentation/hurd-paper.html b/hurd-paper.html
index 15d2daec..880f5fca 100644
--- a/hurd/documentation/hurd-paper.html
+++ b/hurd-paper.html
@@ -1,12 +1,13 @@
-[[meta copyright="Copyright © 1996, 1997, 1998, 2007, 2008 Free Software
+[[!meta copyright="Copyright © 1996, 1997, 1998, 2007, 2008, 2009 Free Software
Foundation, Inc."]]
-[[meta license="Verbatim copying and distribution of this entire article is
+[[!meta license="Verbatim copying and distribution of this entire article is
permitted in any medium, provided this notice is preserved."]]
-[[meta title="Towards a New Strategy of OS Design, an architectural overview by
-Thomas Bushnell, BSG."]]
+[[!meta title="Towards a New Strategy of OS Design, an architectural overview
+by Thomas Bushnell, BSG."]]
+[[!tag stable_URL]]
This article explains why FSF is developing a new operating system named the
Hurd, which will be a foundation of the whole GNU system.
diff --git a/hurd/documentation/hurd-talk.html b/hurd-talk.html
index d608e12a..ec9eb777 100644
--- a/hurd/documentation/hurd-talk.html
+++ b/hurd-talk.html
@@ -1,10 +1,11 @@
-[[meta copyright="Copyright © 2001 Marcus Brinkmann"]]
+[[!meta copyright="Copyright © 2001 Marcus Brinkmann"]]
-[[meta license="Verbatim copying and distribution of this entire article is
+[[!meta license="Verbatim copying and distribution of this entire article is
permitted in any medium, provided this notice is preserved."]]
-[[meta title="The Hurd, a presentation by Marcus Brinkmann"]]
+[[!meta title="The Hurd, a presentation by Marcus Brinkmann"]]
+[[!tag stable_URL]]
<H4><A NAME="contents">Table of Contents</A></H4>
<UL>
diff --git a/hurd.mdwn b/hurd.mdwn
index ec60601c..c5627e29 100644
--- a/hurd.mdwn
+++ b/hurd.mdwn
@@ -1,13 +1,13 @@
-[[meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
-2009 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
+2009, 2010 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
The GNU Hurd is under active development. Because of that, there is no
*stable* version. We distribute the Hurd sources only through CVS at present.
@@ -24,7 +24,7 @@ in the *unstable* branch of the Debian archive.
---
-[[toc ]]
+[[!toc]]
# Introduction
@@ -48,7 +48,7 @@ in the *unstable* branch of the Debian archive.
* [[Documentation]]
* [Gaël Le Mignot](http://kilobug.free.fr/hurd/pres-en/slides/slides.html)
* Architecture
- * [[Towards_a_New_Strategy_of_OS_Design|documentation/hurd-paper]] by Thomas Bushnell, BSG.
+ * [[Towards_a_New_Strategy_of_OS_Design|hurd-paper]] by Thomas Bushnell, BSG.
* Marcus Brinkmann's [revisit](http://lists.gnu.org/archive/html/l4-hurd/2005-10/msg00651.html)
* Jonathan S. Shapiro [comments](http://lists.gnu.org/archive/html/l4-hurd/2005-10/msg00654.html)
* [[Critique]] - Analysis
@@ -61,6 +61,7 @@ in the *unstable* branch of the Debian archive.
* [[running/Distrib]] -- Distributions
* [[Public_Hurd_Boxen]]
* [[Neighborhurd]]s and [[Subhurd]]s
+* [[DDE]] -- Device Driver Environment
## Common Problems
@@ -73,12 +74,11 @@ in the *unstable* branch of the Debian archive.
# Contributing
* [[Contributing]]
-* [[ToDo]]
* [[Building]]
* [[building/Cross-Compiling]]
-* [[Open_Issues]]
+* [[Open Issues|tag/open_issue_hurd]]
# Developer References
@@ -86,14 +86,18 @@ in the *unstable* branch of the Debian archive.
* [[Trackers]]
* [[Toolchain]]
* [[glibc]]
+* RPC [[Interface]]s
* Libraries
* [[libpager]]
+ * [[libports]]
* [[libstore]]
* [[libchannel]]
* [[libhello_example]] -- Hurd library example
+ * [[libtrivfs]]
* [[libnetfs]] -- short introductory material
* [[libihash]]
* [[IO_Path]]
+* [[Porting]]
* [[Debugging]]
* [Hurd Sourcecode Reference](http://www.htu.tugraz.at/~past/hurd/global/): Searchable and browsable index of the code.
* [[Networking]]
diff --git a/hurd/advantages.mdwn b/hurd/advantages.mdwn
index ff8c5560..ba3a134b 100644
--- a/hurd/advantages.mdwn
+++ b/hurd/advantages.mdwn
@@ -1,13 +1,13 @@
-[[meta copyright="Copyright © 2001, 2002, 2008 Free Software Foundation,
+[[!meta copyright="Copyright © 2001, 2002, 2008, 2010 Free Software Foundation,
Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
The Hurd is not the most advanced kernel known to the planet (yet),
but it does have a number of enticing features:
@@ -58,3 +58,11 @@ but it does have a number of enticing features:
The Hurd is real software that works Right Now. It is not a research
project or a proposal. You don't have to wait at all before you can start
using and developing it.
+
+---
+
+One advantage of the Hurd's separation of kernel-like functionality into
+separate components ([[servers|translator]]) is that these can be constructed
+using different programming lanugages, a thing that is not easily possible in a
+monolithic kernel. Essentially, only an interface from the programming
+environment to the RPC mechanism is required.
diff --git a/hurd/authentication.mdwn b/hurd/authentication.mdwn
index 14144d8e..2d6084bf 100644
--- a/hurd/authentication.mdwn
+++ b/hurd/authentication.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
UIDs on the Hurd are separate from processes. A process has
[[capabilities|capability]] designating so-called UID vectors that
diff --git a/hurd/binutils.mdwn b/hurd/binutils.mdwn
index 97c93602..76b0ae60 100644
--- a/hurd/binutils.mdwn
+++ b/hurd/binutils.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
[[General_information|/binutils]] about the binutils.
diff --git a/hurd/building/cross-compiling.mdwn b/hurd/building/cross-compiling.mdwn
index 80239860..d5beade9 100644
--- a/hurd/building/cross-compiling.mdwn
+++ b/hurd/building/cross-compiling.mdwn
@@ -1,31 +1,34 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008, 2010 Free Software Foundation,
+Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
# `cross-gnu`
[[Thomas_Schwinge|tschwinge]] has written a shell script for building a
complete cross-build environment for GNU/Hurd systems.
-For now, find the shell scripts at
-<http://nic-nac-project.de/~schwinge/tmp/cross-gnu> and
-<http://nic-nac-project.de/~schwinge/tmp/cross-gnu-env>.
+Find it in the [[source repositories/incubator]], *cross-gnu* branch.
## Using
Read through it. Understand it. Only then use it by following the next steps.
-/!\ Be made aware that -- while it is of course possible to build a working
-cross-compiler -- this is not trivial to do. You'll have to patch source
-packages. See the following list about needed patches, which have not yet been
-installed in the upstream repositories.
+
+## Status
+
+/!\ Please note that these cross toolchains does not yet encompass all of the
+functionality that native toolchains provide. For example, there is only
+support for C and C++ so far, but not for other languages. A bunch of fixes /
+enhancements of [[glibc]] are missing. We're working towards minimizing these
+differences, as well as towards pushing all patches upstream.
### Supported Versions of Source Packages
@@ -35,138 +38,95 @@ guarantee is given. Always the preferred version is listed first.
* `src/binutils`: [[GNU_Binutils|binutils]]
- * CVS `binutils-2_19-branch`
-
- $ mkdir binutils-2_19-branch
- $ cd binutils-2_19-branch
- $ cvs -d:pserver:anoncvs@sources.redhat.com:/cvs/src ↩
- co -r binutils-2_19-branch binutils
-
- The sources are rooted in `binutils-2_19-branch/src/`. Also use these
- commands for updating, instead of the usual `cvs update`.
-
- * The 2.19 release tarball from <ftp://ftp.gnu.org/gnu/binutils/> should
- also be fine.
-
- * CVS `binutils-2_18-branch`
+ * CVS `binutils-2_20-branch`
- $ mkdir binutils-2_18-branch
- $ cd binutils-2_18-branch
+ $ mkdir binutils-2_20-branch
+ $ cd binutils-2_20-branch/
$ cvs -d:pserver:anoncvs@sources.redhat.com:/cvs/src ↩
- co -r binutils-2_18-branch binutils
+ co -r binutils-2_20-branch binutils
- The sources are rooted in `binutils-2_18-branch/src/`. Also use these
+ The sources are rooted in `binutils-2_20-branch/src/`. Also use the above
commands for updating, instead of the usual `cvs update`.
- * The 2.18 release tarball from <ftp://ftp.gnu.org/gnu/binutils/> should
- also be fine, as should be all other recent releases.
+ * Release of the 2.20 series from <ftp://ftp.gnu.org/gnu/binutils/>
+ should also be fine.
* `src/gcc`: [[GNU_Compiler_Collection|gcc]]
- * SVN `gcc-4_1-branch`
+ * SVN `gcc-4_5-branch`
- $ svn co svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch
-
- Prepare:
+ $ svn co svn://gcc.gnu.org/svn/gcc/branches/gcc-4_5-branch
- $ ( cd gcc-4_1-branch/ && contrib/gcc_update --touch )
+ Patches:
- * Releases of the 4.1 series from <ftp://ftp.gnu.org/gnu/gcc/> should
- also be fine.
-
- * SVN `gcc-4_2-branch`
-
- $ svn co svn://gcc.gnu.org/svn/gcc/branches/gcc-4_2-branch
-
- * Patches:
- <http://lists.gnu.org/archive/html/bug-hurd/2007-11/msg00034.html>
+ * <http://gcc.gnu.org/ml/gcc-patches/2010-04/msg00602.html>
Prepare:
- $ ( cd gcc-4_2-branch/ && contrib/gcc_update --touch )
+ $ ( cd gcc-4_5-branch/ && contrib/gcc_update --touch )
- * Releases of the 4.2 series from <ftp://ftp.gnu.org/gnu/gcc/> should
- also be fine, but need the same set of patches as the `gcc-4_2-branch`
- needs.
+ * SVN `gcc-4_4-branch`
- * SVN `gcc-4_3-branch`
+ $ svn co svn://gcc.gnu.org/svn/gcc/branches/gcc-4_4-branch
- $ svn co svn://gcc.gnu.org/svn/gcc/branches/gcc-4_3-branch
+ Patches:
- * Patches:
- <http://lists.gnu.org/archive/html/bug-hurd/2007-11/msg00034.html>
+ * <http://gcc.gnu.org/ml/gcc-patches/2010-04/msg00602.html>
Prepare:
- $ ( cd gcc-4_3-branch/ && contrib/gcc_update --touch )
-
- * Releases of the 4.3 series from <ftp://ftp.gnu.org/gnu/gcc/> should
- also be fine, but need the same set of patches as the `gcc-4_3-branch`
- needs.
-
- * SVN `trunk` -- upcoming 4.4 series
+ $ ( cd gcc-4_4-branch/ && contrib/gcc_update --touch )
- $ svn co svn://gcc.gnu.org/svn/gcc/trunk
-
- Prepare:
-
- $ ( cd trunk/ && contrib/gcc_update --touch )
+ * Releases of the 4.5 and 4.4 series from <ftp://ftp.gnu.org/gnu/gcc/>
+ should also be fine, but need the same set of patches as the
+ `gcc-4_5-branch` needs.
* `src/gnumach`: [[GNU_Mach|microkernel/mach/gnumach]]
- * CVS `gnumach-1-branch`
+ * Git `master` branch
- $ cvs -d:pserver:anoncvs@cvs.gnu.org:/cvsroot/hurd ↩
- co -r gnumach-1-branch gnumach
- $ mv gnumach gnumach-1-branch
+ $ git clone ↩
+ git://git.sv.gnu.org/hurd/gnumach.git gnumach
Prepare:
- $ ( cd gnumach-1-branch/ && autoreconf -vfi )
+ $ ( cd gnumach/ && autoreconf -vi )
* `src/mig`: [[microkernel/mach/mig/GNU_MIG]]
- * CVS `HEAD`
+ * Git `master` branch
- $ cvs -d:pserver:anoncvs@cvs.gnu.org:/cvsroot/hurd co mig
+ $ git clone ↩
+ git://git.sv.gnu.org/hurd/mig.git mig
Prepare:
- $ ( cd mig/ && autoreconf -vfi )
+ $ ( cd mig/ && autoreconf -vi )
* `src/hurd`: [[GNU_Hurd|hurd]]
- * CVS `HEAD`
+ * Git `master` branch
- $ cvs -d:pserver:anoncvs@cvs.gnu.org:/cvsroot/hurd co hurd
+ $ git clone ↩
+ git://git.sv.gnu.org/hurd/hurd.git hurd
- * `src/glibc`: [[GNU_C_Library|glibc]]
-
- * CVS `glibc-2_7-branch`
+ * `src/libpthread`: [[libpthread]]
- $ cvs -d:pserver:anoncvs@sources.redhat.com:/cvs/glibc ↩
- co -r glibc-2_7-branch glibc
- $ mv libc glibc-2_7-branch
+ * Git `tschwinge/Peter_Herbolzheimer` branch
- * Patches:
- <http://lists.gnu.org/archive/html/bug-hurd/2007-11/msg00030.html>
+ $ git clone --no-checkout ↩
+ git://git.sv.gnu.org/hurd/libpthread.git libpthread
+ $ cd libpthread/
+ $ git checkout origin/tschwinge/Peter_Herbolzheimer
- * Recent releases of the 2.7 series from <ftp://ftp.gnu.org/gnu/glibc/>
- should also be fine, but need the same set of patches as the
- `glibc-2_7-branch` needs.
-
-<!--
-
- * CVS `HEAD`
-
- $ cvs -d:pserver:anoncvs@sources.redhat.com:/cvs/glibc ↩
- co glibc
- $ mv libc glibc-HEAD
+ * `src/glibc`: [[GNU_C_Library|glibc]]
- * TODO.
- <http://lists.gnu.org/archive/html/bug-hurd/2007-11/msg00026.html>
+ * Git `tschwinge/Roger_Whittaker` branch
--->
+ $ git clone --no-checkout ↩
+ git://git.sv.gnu.org/hurd/glibc.git glibc
+ $ cd glibc/
+ $ git checkout origin/tschwinge/Roger_Whittaker
<!--
@@ -207,7 +167,7 @@ the following.
The system you're running the script on (the *build* system) needs to have a
basic compiling environment installed, i.e., a C compiler with the basic
libraries and `make`. You might also need `flex` and `bison`. For building
-recent version of GCC (e.g., the upcoming 4.3, which is not yet supported)
+recent version of GCC (4.3 onwards)
you'll need to have development packages of GMP and MPFR installed.
@@ -236,29 +196,13 @@ flow by. In the end you should see a message: *[...]/cross-gnu: Everything
should be in place now.*
-### Makefile
-
-A [[Makefile]] has been written to automate the above steps. You will require
-an Internet connection and atleast 1.5 GiB of hard-disk space. Just run...
-
- make
-
-... to build the toolchain. To clean up, use...
-
- make clean
-
-
### Staying Up-To-Date
You can re-run `cross-gnu` to rebuild the parts of the sources that have
changed since the last run. This will save a lot of time compared to starting
from scratch again. Also, it is especially useful if you aren't working with
-unpacked tarballs, but on CVS's branches or want to quickly get a new tool
-chain with patches you applied to the source trees. However: do *not* use this
+unpacked tarballs, but on CVS's / SVN's / Git's branches or want to quickly get
+a new toolchain
+with patches you applied to the source trees. However: do *not* use this
technique when doing major changes to the source trees, like switching from GCC
-4.0 to GCC 4.1.
-
-
-# References
-
-* <http://lists.gnu.org/archive/html/bug-hurd/2004-09/msg00030.html>
+4.4 to GCC 4.5.
diff --git a/hurd/building/cross-compiling/Makefile b/hurd/building/cross-compiling/Makefile
deleted file mode 100644
index 7a6a9524..00000000
--- a/hurd/building/cross-compiling/Makefile
+++ /dev/null
@@ -1,168 +0,0 @@
-# "HurdToolchainMakefile" - a Makefile for setting up Hurd toolchain builds
-
-# Copyright (C) 2007 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by the
-# Free Software Foundation; either version 2, or (at your option) any later
-# version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-# for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-# Written by Shakthi Kannan <shakthi.kannan@qvantel.com>.
-
-
-## Variables
-TOPDIR=.
-DOWNLOADS=${TOPDIR}/downloads
-ROOT=${TOPDIR}/root
-SRC=${ROOT}/src
-GLIBC_DIR=${SRC}/glibc
-PATCH0_DIR=patch0
-PATCH1_DIR=patch1
-
-## Patches
-PATCH1 = 0003-2007-09-13-H.J.-Lu-hongjiu.lu-intel.com.patch \
- 0005-Hurd-specific-kernel-features.h.patch \
- 0007-2007-10-05-version-of-stat.patch.patch \
- 0008-r2425-of-debian-patches-hurd-i386-local-atomic-no-mu.patch \
- 0010-r2425-of-debian-patches-hurd-i386-local-gscope.diff.patch \
- 0012-r2425-of-debian-patches-hurd-i386-local-no-strerror_.patch \
- 0013-r2626-of-debian-patches-hurd-i386-local-tls-support.patch \
- 0014-r2591-of-debian-patches-hurd-i386-local-tls.diff.patch \
- 0015-r2630-of-debian-patches-hurd-i386-submitted-libc_onc.patch \
- 0016-Include-stdint.h.patch \
- 0017-r2598-of-debian-patches-any-local-stdio-lock.diff.patch \
- 0018-r2650-of-debian-patches-hurd-i386-submitted-strtoul.patch \
- 0019-2007-11-12-Aurelien-Jarno-aurelien-aurel32.net-Tho.patch \
- 0020-r2656-of-debian-patches-any-submitted-sched_h.diff.patch \
- 0022-2007-11-18-Roland-McGrath-roland-frob.com.patch
-
-PATCH0 = 0009-2007-07-22-version-of-init-first.c_vs._GCC_4.1.patch.patch \
- 0011-2007-02-08-version-of-resolv_res_send.c.patch.patch
-
-all: create_dir get_sources apply_glibc_patches build_all
-
-## Create directories
-create_dir:
- cd ${TOPDIR}
- mkdir ${DOWNLOADS}
- mkdir -p ${SRC}
-
-get_sources: get_cross_gnu get_binutils get_gcc get_gnumach get_mig get_hurd get_glibc
-
-get_cross_gnu:
- @ echo " ___ _ __ ___ ___ ___ __ _ _ __ _ _ "
- @ echo " / __| '__/ _ \/ __/ __|_____ / _\` | '_ \| | | |"
- @ echo "| (__| | | (_) \__ \__ \_____| (_| | | | | |_| |"
- @ echo " \___|_| \___/|___/___/ \__, |_| |_|\__,_|"
- @ echo " |___/ "
- cd ${DOWNLOADS}; \
- wget http://nic-nac-project.de/~schwinge/tmp/cross-gnu
- @ echo " ___ _ __ ___ ___ ___ __ _ _ __ _ _ ___ _ ____ __"
- @ echo " / __| '__/ _ \/ __/ __|_____ / _\` | '_ \| | | |_____ / _ \ '_ \ \ / /"
- @ echo "| (__| | | (_) \__ \__ \_____| (_| | | | | |_| |_____| __/ | | \ V / "
- @ echo " \___|_| \___/|___/___/ \__, |_| |_|\__,_| \___|_| |_|\_/ "
- @ echo " |___/ "
- cd ${DOWNLOADS}; \
- wget http://nic-nac-project.de/~schwinge/tmp/cross-gnu-env; \
- chmod +x cross-gnu; \
- chmod +x cross-gnu-env
-
-get_binutils:
- @ echo " _ _ _ _ _ "
- @ echo "| |__ (_)_ __ _ _| |_(_) |___ "
- @ echo "| '_ \| | '_ \| | | | __| | / __|"
- @ echo "| |_) | | | | | |_| | |_| | \__ \\"
- @ echo "|_.__/|_|_| |_|\__,_|\__|_|_|___/"
- cd ${SRC}; \
- cvs -d:pserver:anoncvs@sources.redhat.com:/cvs/src co -r binutils-2_18-branch binutils; \
- mv src binutils
-
-get_gcc:
- @ echo " __ _ ___ ___ "
- @ echo " / _\` |/ __/ __|"
- @ echo "| (_| | (_| (__ "
- @ echo " \__, |\___\___|"
- @ echo " |___/ "
- cd ${SRC}; \
- svn co svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch; \
- mv gcc-4_1-branch gcc; \
- ( cd gcc/ && contrib/gcc_update --touch )
-
-get_gnumach:
- @ echo " _ "
- @ echo " __ _ _ __ _ _ _ __ ___ __ _ ___| |__ "
- @ echo " / _\` | '_ \| | | | '_ \` _ \ / _\` |/ __| '_ \ "
- @ echo "| (_| | | | | |_| | | | | | | (_| | (__| | | |"
- @ echo " \__, |_| |_|\__,_|_| |_| |_|\__,_|\___|_| |_|"
- @ echo " |___/ "
- cd ${SRC}; \
- cvs -d:pserver:anoncvs@cvs.gnu.org:/cvsroot/hurd co -r gnumach-1-branch gnumach; \
- ( cd gnumach/ && autoreconf -vfi )
-
-get_mig:
- @ echo " _ "
- @ echo " _ __ ___ (_) __ _ "
- @ echo "| '_ \` _ \| |/ _\` |"
- @ echo "| | | | | | | (_| |"
- @ echo "|_| |_| |_|_|\__, |"
- @ echo " |___/ "
- cd ${SRC}; \
- cvs -d:pserver:anoncvs@cvs.gnu.org:/cvsroot/hurd co mig; \
- ( cd mig/ && autoreconf -vfi )
-
-get_hurd:
- @ echo " _ _ "
- @ echo "| |__ _ _ _ __ __| |"
- @ echo "| '_ \| | | | '__/ _\` |"
- @ echo "| | | | |_| | | | (_| |"
- @ echo "|_| |_|\__,_|_| \__,_|"
- cd ${SRC}; \
- cvs -d:pserver:anoncvs@cvs.gnu.org:/cvsroot/hurd co hurd
-
-get_glibc:
- @ echo " _ _ _ "
- @ echo " __ _| (_) |__ ___ "
- @ echo " / _\` | | | '_ \ / __|"
- @ echo "| (_| | | | |_) | (__ "
- @ echo " \__, |_|_|_.__/ \___|"
- @ echo " |___/ "
- cd ${SRC}; \
- cvs -d:pserver:anoncvs@sources.redhat.com:/cvs/glibc co -r glibc-2_7-branch glibc; \
- mv libc glibc
- mkdir ${GLIBC_DIR}/${PATCH0_DIR}
- mkdir ${GLIBC_DIR}/${PATCH1_DIR}
-
-get_patch0: $(PATCH0)
-
-get_patch1: $(PATCH1)
-
-$(PATCH1):
- wget -r -np -nd -P ${GLIBC_DIR}/${PATCH1_DIR} http://www.schwinge.homeip.net/~thomas/tmp/glibc-patches/$@
- cd ${GLIBC_DIR}; \
- patch -p1 < ${PATCH1_DIR}/$@
-
-$(PATCH0):
- wget -r -np -nd -P ${GLIBC_DIR}/${PATCH0_DIR} http://www.schwinge.homeip.net/~thomas/tmp/glibc-patches/$@
- cd ${GLIBC_DIR}; \
- patch -p0 < ${PATCH0_DIR}/$@
-
-apply_glibc_patches: get_patch0 get_patch1
-
-build_all:
- ROOT=${TOPDIR}/root ; \
- export PATH="$(PATH):$(DOWNLOADS)" ; \
- echo $$PATH ; \
- . ${DOWNLOADS}/cross-gnu-env ; \
- ${DOWNLOADS}/cross-gnu
-
-clean:
- rm -rf downloads root *~
diff --git a/hurd/building/cross-compiling/discussion.mdwn b/hurd/building/cross-compiling/discussion.mdwn
index f75e9e3e..dbe317ad 100644
--- a/hurd/building/cross-compiling/discussion.mdwn
+++ b/hurd/building/cross-compiling/discussion.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
What happens if the external link goes down? Is there any way to store files
within the wiki itself? --[[vincentvikram]]
diff --git a/hurd/building/example.mdwn b/hurd/building/example.mdwn
index afa18d8a..bf31bf7e 100644
--- a/hurd/building/example.mdwn
+++ b/hurd/building/example.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
I checked out the source code on my Ubuntu GNU/Linux system connected to the
Internet using:
diff --git a/hurd/concepts.mdwn b/hurd/concepts.mdwn
index e416f1e6..e8183d79 100644
--- a/hurd/concepts.mdwn
+++ b/hurd/concepts.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
* [[Translator]]
* [[Virtual_File_System]]
diff --git a/hurd/console.mdwn b/hurd/console.mdwn
index 3895531b..4f976efd 100644
--- a/hurd/console.mdwn
+++ b/hurd/console.mdwn
@@ -16,10 +16,6 @@ The latest Hurd package in Debian has all that is needed to run (dunno about hur
Additional information about the console can be found in the [Hurd Console Tutorial](http://uwhug.org.uk/index.pl?Hurd_Console_Tutorial)
-## <a name="Table_of_Contents"> Table of Contents </a>
-
-%TOC%
-
## <a name="What_is_the_new_console_"> What is the new console? </a>
**_The new Hurd console features:_**
diff --git a/hurd/critique.mdwn b/hurd/critique.mdwn
index dacd7bb8..c432cc17 100644
--- a/hurd/critique.mdwn
+++ b/hurd/critique.mdwn
@@ -1,12 +1,14 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!meta title="A Critique of the GNU Hurd Multi-server Operating System"]]
Neal Walfield and Marcus Brinkmann wrote a paper titled [*A Critique of
the GNU Hurd Multi-server Operating
diff --git a/hurd/dde.mdwn b/hurd/dde.mdwn
new file mode 100644
index 00000000..dedb7d10
--- /dev/null
+++ b/hurd/dde.mdwn
@@ -0,0 +1,22 @@
+[[!meta copyright="Copyright © 2009, 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+ * [[community/gsoc/project ideas/driver glue code]]
+
+ * [[open issues/user-space device drivers]]
+
+ * [[open issues/device drivers and io systems]]
+
+---
+
+There is an effort going on to make [[/DDE]] usable in GNU/Hurd
+userspace.
+
+See Zheng Da's [[project page|zhengda]], as well as another [[guide]].
diff --git a/hurd/dde/guide.mdwn b/hurd/dde/guide.mdwn
new file mode 100644
index 00000000..6518e0e4
--- /dev/null
+++ b/hurd/dde/guide.mdwn
@@ -0,0 +1,158 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+If you haven't: install hurd to partition
+get grub image
+boot hurd in single user (change grub entry accordingly to the installed partition)
+
+> $ export TERM=mach
+
+> $ ./native-install
+
+reboot to other debian
+
+suppose hurd partition is hdd1
+
+as root
+
+> $ mount /dev/hdd1 /mnt -t ext2
+
+> $ cd /mnt/etc/apt
+
+> $ echo "deb http://ftp.debian-ports.org/debian unreleased main" >> sources.list
+
+> $ echo "deb-src http://ftp.debian-ports.org/debian unreleased main" >> sources.list
+
+> $ echo "deb http://ftp.uk.debian.org/debian unstable main" >> sources.list
+
+> $ echo "deb-src http://ftp.uk.debian.org/debian unstable main" >> sources.list
+
+> $ wget http://www.gnu.org/software/hurd/hurd/running/debian/DebianAptOffline/apt.conf.offline
+
+> $ cd /mnt
+
+> $ apt-get -c etc/apt/apt.conf.offline update
+
+> $ apt-get -c etc/apt/apt.conf.offline upgrade
+
+> $ apt-get -c etc/apt/apt.conf.offline install git-core
+
+> $ apt-get -c etc/apt/apt.conf.offline build-dep hurd gnumach
+
+> $ apt-get -c etc/apt/apt.conf.offline install build-essential libpciaccess-dev libpcap0.8-dev
+
+> $ cd /mnt/home
+
+> $ git clone git://git.sv.gnu.org/hurd/incubator.git -b dde hurd_dde
+
+> $ git clone git://git.sv.gnu.org/hurd/gnumach.git -b master-user_level_drivers gnumach_dde
+
+
+suppose you need forcedeth driver
+
+Download http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.29.y.git;a=blob_plain;f=drivers/net/forcedeth.c;hb=HEAD from mozilla like
+browser to /mnt/home as forcedeth.c
+
+Download http://pastebin.com/RJAJT2MR the same way and rename it to 0001-Fix-up-DDE-paths.patch
+
+reboot back to hurd (multiuser)
+
+> $ apt-get update
+
+> $ apt-get upgrade
+
+> $ apt-get install git-core
+
+> $ apt-get build-dep hurd gnumach
+
+> $ apt-get install build-essential libpciaccess-dev libpcap0.8-dev
+
+
+> $ cd /home/gnumach_dde
+
+> $ autoreconf -i && ./configure --enable-kdb --enable-device-drivers=none --enable-lpr --enable-floppy --enable-ide
+
+> $ make
+
+> $ cd ../hurd_dde
+
+> $ git am ../0001-Fix-up-DDE-paths.patch
+
+> $ cp -r dde_pcnet32 dde_forcedeth
+
+> $ cd dde_forcedeth
+
+> $ rm pcnet32.c
+
+> $ cp /home/forcedeth.c ./
+
+> $ sed -i 's/pcnet32/forcedeth/g' Makefile
+
+> $ sed -i 's/pcnet32/forcedeth/g' .gitignore
+
+> $ sed -i 's:-lhurd-slab:../libhurd-slab/libhurd-slab.a:' Makefile
+
+> $ sed -i 's:-I/include:-I..:' Makefile
+
+> $ nano forcedeth.c
+
+add these 2 lines after the last #include
+
+ #include <ddekit/timer.h>
+ void get_random_byter(void *buf, int nbytes) { }
+
+> $ cd ..
+
+> $ git add dde_forcedeth
+
+> $ git commit -a -m 'Add forcedeth driver'
+
+> $ autoreconf -i && ./configure
+
+> $ mkdir -p hurd/include/ddekit
+
+> $ make libddekit libmachdev devnode pfinet
+
+> $ cd libdde_linux26
+
+> $ make
+
+> $ cd ../dde_forcedeth
+
+> $ make
+
+If the make fails it might be necassary to replace some of the -l options (or all) in Makefile with the real path to the library objects (example: change *-lhurd-slab* to *../libhurd-slab/libhurd-slab.a*)
+
+> $ cp /home/gnumach_dde/gnumach /boot/gnumach_dde
+
+> $ mkdir /hurd/dde
+
+> $ cp /home/hurd_dde/devnode/devnode /hurd/dde
+
+> $ cp /home/hurd_dde/pfinet/pfinet /hurd/dde
+
+> $ cp /home/hurd_dde/dde_forcedeth/dde_forcedeth /hurd/dde/forcedeth
+
+reboot to hurd with the new gnumach_dde
+
+> $ settrans -c /dev/forcedeth /hurd/dde/forcedeth
+
+> $ settrans -c /dev/eth0 /hurd/dde/devnode -M /dev/forcedeth eth0
+
+> $ settrans -c /servers/socket/2 /hurd/dde/pfinet -i /dev/eth0 -a 192.168.1.194 -g 192.168.1.254 -m 255.255.255.0
+
+
+replace the ip, gateway and mask with your own ones
+
+> $ nano /etc/resolv.conf
+
+add line: nameserver 192.168.1.254
+
+DONE
diff --git a/hurd/debugging.mdwn b/hurd/debugging.mdwn
index e4a98672..36ab769a 100644
--- a/hurd/debugging.mdwn
+++ b/hurd/debugging.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
# Strategies
diff --git a/hurd/debugging/gdb.mdwn b/hurd/debugging/gdb.mdwn
index 98c31435..1fede74f 100644
--- a/hurd/debugging/gdb.mdwn
+++ b/hurd/debugging/gdb.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
The [[GNU_debugger_*GDB*|/gdb]] works on GNU/Hurd
systems as it does on other system, but has some additional [hurd-specific
diff --git a/hurd/debugging/gdb/noninvasive_debugging.mdwn b/hurd/debugging/gdb/noninvasive_debugging.mdwn
index 62179f7d..fa7a3c5b 100644
--- a/hurd/debugging/gdb/noninvasive_debugging.mdwn
+++ b/hurd/debugging/gdb/noninvasive_debugging.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
Sometimes using [[GDB]] on a [[system_server|translator]] can result in a [[deadlock]]. You
can however still use GDB by using the [`set
diff --git a/hurd/debugging/glibc.mdwn b/hurd/debugging/glibc.mdwn
index 912f656c..905dd0da 100644
--- a/hurd/debugging/glibc.mdwn
+++ b/hurd/debugging/glibc.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
Here are some hints about how to approach testing after nontrivial changes to
glibc have been done.
diff --git a/hurd/debugging/rpctrace.mdwn b/hurd/debugging/rpctrace.mdwn
index 68edca2f..ee5ee3e7 100644
--- a/hurd/debugging/rpctrace.mdwn
+++ b/hurd/debugging/rpctrace.mdwn
@@ -1,12 +1,13 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008, 2009, 2010 Free Software Foundation,
+Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
*rpctrace* is -- roughly -- an equivavlent to Linux's *strace* or Solaris' or
BSD's *truss*. It is used to trace [[remote_procedure_call|rpc]]s a process is
@@ -17,6 +18,8 @@ See `rpctrace --help` about how to use it.
# Issues and Patches
+[[!tag open_issue_hurd]]
+
* <http://savannah.gnu.org/patch/?2104> -- don't assert that local port names
are valid
* <http://savannah.gnu.org/bugs/?3939> -- `rpctrace`d program hangs when signal
@@ -24,12 +27,15 @@ See `rpctrace --help` about how to use it.
* <http://savannah.gnu.org/patch/?1633> -- terminated with `C-c` `rpctrace`d
programs hang
* <http://savannah.gnu.org/patch/?5580> -- more readable output
-* <http://savannah.gnu.org/bugs/?20612> -- heisenbug
+* IRC, unknown channel, unknown date
+
+ <youpi> how to rpctrace a translator ?
+ <youpi> ah, just settrans /usr/bin/rpctrace...
+ <youpi> hum, it hung, and killing it got a Mach panic (thread in unexpected
+ state) ...
-# TODO
+* IRC, unknown channel, unknown date
- <youpi> how to rpctrace a translator ?
- <youpi> ah, just settrans /usr/bin/rpctrace...
- <youpi> hum, it hung, and killing it got a Mach panic (thread in unexpected
- state) ...
+ <antrik> hm... for a funny effect, try running rpctrace on
+ /servers/socket/1, and then use dpkg... ;-)
diff --git a/hurd/debugging/translator.mdwn b/hurd/debugging/translator.mdwn
index 8e8dd6fb..d439e17b 100644
--- a/hurd/debugging/translator.mdwn
+++ b/hurd/debugging/translator.mdwn
@@ -1,14 +1,14 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-[[inline
+[[!inline
pages="hurd/debugging/translator/* and !*/discussion"
show=0
feeds=no
diff --git a/hurd/debugging/translator/capturing_stdout_and_stderr.mdwn b/hurd/debugging/translator/capturing_stdout_and_stderr.mdwn
index e95d6e12..1e8c4ef6 100644
--- a/hurd/debugging/translator/capturing_stdout_and_stderr.mdwn
+++ b/hurd/debugging/translator/capturing_stdout_and_stderr.mdwn
@@ -1,15 +1,16 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
Sometimes it may already be helpful to capture a translator's `stdout` and
-`stderr`, for example like this:
+`stderr`, for example in this situation where [[translator/pfinet]] was
+silently dying all the time, without any console output:
$ sudo settrans -fgap ↩
/servers/socket/2 ↩
@@ -31,3 +32,7 @@ for appropriate `fflush`es on these, or force them to be line buffered again
using the appropriate glibc magic (`setvbuf`). Otherwise you'll see text in
the output files only if either glibc herself decides to flush (after some KiB
of text) the after translator exits.
+
+It is a [[!taglink open_issue_hurd]] to decide / implement / fix that
+(all?) running (passive?) translators' output should show up on the
+console / syslog.
diff --git a/hurd/debugging/translator/gdb.mdwn b/hurd/debugging/translator/gdb.mdwn
index bee41010..82a50736 100644
--- a/hurd/debugging/translator/gdb.mdwn
+++ b/hurd/debugging/translator/gdb.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
Say you want to try running file system server ([[`ext2fs`|translator/ext2fs]],
[[`jfs`|translator/jfs]], ...) against a modified version of
diff --git a/hurd/documentation.mdwn b/hurd/documentation.mdwn
index be0874e7..874ce847 100644
--- a/hurd/documentation.mdwn
+++ b/hurd/documentation.mdwn
@@ -1,13 +1,13 @@
-[[meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
-Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
+2009 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
# Introductory Material
@@ -17,12 +17,12 @@ is included in the section entitled
* [[FAQ]]
- * [[*The_Hurd_and_Linux*|hurd-and-linux]], a comment by Richard Stallman.
+ * [[*The_Hurd_and_Linux*|/hurd-and-linux]], a comment by Richard Stallman.
- * [[*Towards_a_New_Strategy_of_OS_Design*|hurd-paper]], an architectural
+ * [[*Towards_a_New_Strategy_of_OS_Design*|/hurd-paper]], an architectural
overview by Thomas Bushnell, BSG.
- * [[*The_Hurd*|hurd-talk]], a presentation by Marcus Brinkmann.
+ * [[*The_Hurd*|/hurd-talk]], a presentation by Marcus Brinkmann.
* A document about *[[translators]]* by Marcus Brinkmann.
@@ -63,3 +63,9 @@ is included in the section entitled
[[Position_paper_*Improving_Usability_via_Access_Decomposition_and_Policy*|ng/position_paper]]
Neal Walfield and Marcus Brinkmann give an overview about how a future,
subsequent system may be architected.
+
+ * [*Generalizing mobility for the Hurd*](http://users.student.lth.se/cs07fh9/2009-hammar-hurd-mobility.pdf),
+ a thesis written by Carl Fredrik Hammar,
+ 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.
diff --git a/hurd/documentation/auth.html b/hurd/documentation/auth.html
index 487fc1fe..27f9ca2c 100644
--- a/hurd/documentation/auth.html
+++ b/hurd/documentation/auth.html
@@ -1,9 +1,9 @@
-[[meta copyright="Copyright © 2002, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2002, 2008 Free Software Foundation, Inc."]]
-[[meta license="Verbatim copying and distribution of this entire article is
+[[!meta license="Verbatim copying and distribution of this entire article is
permitted in any medium, provided this notice is preserved."]]
-[[meta title="The Authentication Server, the transcript of a talk about the
+[[!meta title="The Authentication Server, the transcript of a talk about the
details of the authentication mechanisms in the Hurd by Wolfgang Jährling"]]
<H3><A NAME="contents">Table of Contents</A></H3>
diff --git a/hurd/documentation/hurd-and-linux.mdwn b/hurd/documentation/hurd-and-linux.mdwn
new file mode 100644
index 00000000..678ea8da
--- /dev/null
+++ b/hurd/documentation/hurd-and-linux.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!meta redir=/hurd-and-linux]]
diff --git a/hurd/documentation/hurd-paper.mdwn b/hurd/documentation/hurd-paper.mdwn
new file mode 100644
index 00000000..06c23662
--- /dev/null
+++ b/hurd/documentation/hurd-paper.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!meta redir=/hurd-paper]]
diff --git a/hurd/documentation/hurd-talk.mdwn b/hurd/documentation/hurd-talk.mdwn
new file mode 100644
index 00000000..83dcaf74
--- /dev/null
+++ b/hurd/documentation/hurd-talk.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!meta redir=/hurd-talk]]
diff --git a/hurd/documentation/translators.html b/hurd/documentation/translators.html
index 4e47a9c0..8ae2c180 100644
--- a/hurd/documentation/translators.html
+++ b/hurd/documentation/translators.html
@@ -1,10 +1,10 @@
-[[meta copyright="Copyright © 1998, 1999, 2007, 2008 Free Software Foundation,
+[[!meta copyright="Copyright © 1998, 1999, 2007, 2008 Free Software Foundation,
Inc."]]
-[[meta license="Verbatim copying and distribution of this entire article is
+[[!meta license="Verbatim copying and distribution of this entire article is
permitted in any medium, provided this notice is preserved."]]
-[[meta title="Translators"]]
+[[!meta title="Translators"]]
By Marcus Brinkmann.
diff --git a/hurd/faq.mdwn b/hurd/faq.mdwn
index 0227f1c1..be30e1b4 100644
--- a/hurd/faq.mdwn
+++ b/hurd/faq.mdwn
@@ -1,16 +1,16 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-[[meta title="GNU Hurd FAQ"]]
+[[!meta title="GNU Hurd FAQ"]]
-[[inline
+[[!inline
pages="hurd/faq/* and !*/discussion"
show=0
feeds=no
diff --git a/hurd/faq/old-stuff.mdwn b/hurd/faq/old-stuff.mdwn
index 1bcc09a0..df2058c0 100644
--- a/hurd/faq/old-stuff.mdwn
+++ b/hurd/faq/old-stuff.mdwn
@@ -1,12 +1,12 @@
In addition to the [general FAQ](http://www.gnu.org/software/hurd/docs.html#TOCfaq) there are the following typical newbie questions. (There is an [updated version](http://tuxou.ouvaton.org/hurd/) which is not official yet.)
-If you still have problems, do not hesitate to make use of the [[mailing_lists]] or the [[IRC]].
+If you still have problems, do not hesitate to make use of the [[mailing lists]] or the [[IRC]].
* **_You say GNU, don't you mean GNU/Hurd?_**
* Yes and no. GNU refers to the system as a whole, while GNU/Hurd is more specific, saying that it is the GNU system running on the Hurd -- to differentiate it from the GNU system running on Linux, GNU/Linux. Also see [[GNU/GnuNames]]
* **_What editor can I use?_**
- * `nano` is the default editor on a fresh install, not `ae`.
+ * `nano` is the default editor on a fresh install, not `ae`, but a lot of editors are available.
* **_Why can't I get the answers I need from Hurd hackers?_**
* This [document](http://www.catb.org/~esr/faqs/smart-questions.html) may help you understand some developers attitudes and social norms.
@@ -28,16 +28,16 @@ If you still have problems, do not hesitate to make use of the [[mailing_lists]]
* These are different versions of the Mach microkernel that supports the Hurd that runs on top of it. For more info, see [[Mach]]
* **_What software is available for GNU?_**
- * Most packages from [Debian](http://www.debian.org/) [GNU/Linux](http://www.gnu.org/gnu/linux-and-gnu.html) which aren't linux-specific ([Packages That Won't Be Ported](http://www.debian.org/ports/hurd/hurd-devel-debian)) are expected to work on GNU/Hurd too. See the database in <http://packages.debian.org/>. Programs which need pthreads, including [GNOME](http://www.gnome.org), [KDE](http://www.kde.org), [Mozilla](http://www.mozilla.org), [OpenOffice](http://www.openoffice.org), [SDL](http://www.libsdl.org), etc. are being worked on currently using Neal Walfields libpthreads. See the [[Distrib/PortingIssues]] document for some common build problems and their solutions.
+ * Most (2/3) packages from [Debian](http://www.debian.org/) [GNU/Linux](http://www.gnu.org/gnu/linux-and-gnu.html) which aren't linux-specific ([Packages That Won't Be Ported](http://www.debian.org/ports/hurd/hurd-devel-debian)) are expected to work on GNU/Hurd too. See the database in <http://packages.debian.org/>. Notably, [GNOME](http://www.gnome.org), and [KDE](http://www.kde.org) work. See the [[porting/guidelines]] document for some common build problems and their solutions.
* If you can't fetch a package with "apt-get install ", try building it from source: "apt-get source &amp;&amp; cd &lt;package\_dir&gt; &amp;&amp; debian/rules binary".
- * As of January 2007, 50% of Debian packages have been ported on the Hurd. Of course, bug testing is welcome.
+ * As of April 2010, 65% of Debian packages have been ported on the Hurd. Of course, bug testing is welcome.
* **_How do I initialize a serial console on the Hurd?_**
* You can try out the Serial Howto at <http://www.nongnu.org/thug/serial-howto.txt>
* For a real serial console at boot time you need to rebuild your GNUmach 1.x kernel. For more info see the Utah release notes at [http://www.cs.utah.edu/flux/mach4-i386/html/mach4-UK22.html#serial\_console](http://www.cs.utah.edu/flux/mach4-i386/html/mach4-UK22.html#serial_console)
* **_Will GNU work in Vmware?_**
- * It's highly recommended and easier to get a full image for Bochs. See [[Distrib]]
+ * It's highly recommended and easier to get a full image for qemu. See [[Distrib]]
* It didn't use to, [Hurd bootstrap fails](http://lists.debian.org/debian-hurd/2002/debian-hurd-200207/msg00069.html). Vmware is not [free software](http://www.gnu.org/philosophy/free-sw.html) and it is [[Distrib/VmWare]]. We recommend to use [free](http://www.gnu.org/philosophy/free-sw.html) alternatives, like [[Distrib/BochsEmulator]].
* A faster, more widespread and [free](http://www.gnu.org/philosophy/free-sw.html) recent alternative is [QEMU][[running/QEMU]]. You can find more informations on [[running/QEMU]].
* If someone prefers using VMWare:
diff --git a/hurd/faq/old_faq.txt b/hurd/faq/old_faq.txt
index de76889e..617d7661 100644
--- a/hurd/faq/old_faq.txt
+++ b/hurd/faq/old_faq.txt
@@ -1,13 +1,13 @@
-[[meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2008 Free Software
+[[!meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2008 Free Software
Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
Frequently Asked Questions about the GNU Hurd
diff --git a/hurd/faq/release.mdwn b/hurd/faq/release.mdwn
index c93ba353..d80c6825 100644
--- a/hurd/faq/release.mdwn
+++ b/hurd/faq/release.mdwn
@@ -1,14 +1,14 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-[[meta title="When will the Hurd be released?"]]
+[[!meta title="When will the Hurd be released?"]]
Next year.
diff --git a/hurd/faq/slash_usr_symlink.mdwn b/hurd/faq/slash_usr_symlink.mdwn
index 6fa6c58d..5c47f4e1 100644
--- a/hurd/faq/slash_usr_symlink.mdwn
+++ b/hurd/faq/slash_usr_symlink.mdwn
@@ -1,15 +1,15 @@
-[[meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2008 Free Software
+[[!meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2008 Free Software
Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-[[meta title="Why is `/usr' a symbolic link to `.'?"]]
+[[!meta title="Why is `/usr' a symbolic link to `.'?"]]
The distinction between `/` and `/usr` has historical reasons. Back when [[Unix]]
systems were booted from two tapes, a small root tape and a big user tape.
diff --git a/hurd/faq/smp.mdwn b/hurd/faq/smp.mdwn
new file mode 100644
index 00000000..953784da
--- /dev/null
+++ b/hurd/faq/smp.mdwn
@@ -0,0 +1,17 @@
+[[!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="Does GNU/Hurd support SMP/Multicore?"]]
+
+The Hurd servers themselves are multithreaded, so they should be able to take benefit of the parallelism brought by SMP/Multicore boxes. This has however never been tested yet because of the following.
+
+Mach used to be running on SMP boxes like the [[http://en.wikipedia.org/wiki/Intel_iPSC/860 | iPSC 860]], so has an infrastructure for running on them. It has however not (yet) been ported to nowadays' SMP standards like ACPI etc.
+
+That is why for now GNU/Hurd will only uses one logical processor (i.e. one core or one thread, depending on the socket type).
diff --git a/hurd/faq/still_useful.mdwn b/hurd/faq/still_useful.mdwn
new file mode 100644
index 00000000..bffeaebd
--- /dev/null
+++ b/hurd/faq/still_useful.mdwn
@@ -0,0 +1,46 @@
+[[!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]]."]]"""]]
+
+what are the advantages with the Hurd over Linux, in general of course, nothing
+in depth
+
+> Flexibility for the user:
+>
+> transparent ftp
+>
+> $ cd /ftp://ftp.debian.org/debian
+> $ ls
+>
+> personnal filesystem
+>
+> $ dd < /dev/zero > myspace.img bs=1M count=1024
+> $ mke2fs myspace.img
+> $ settrans myspace /hurd/ext2fs myspace.img
+> $ cd myspace
+
+>> Just curious, but I keep seeing these (and other similar) concepts being
+>> brought up as the amazing selling points of the Hurd, but all of this is
+>> entirely doable now in Linux with FUSE or things like it.
+
+>>> Nowadays, at LAST, yes, partly.
+
+>> I'm not sure if an ftp filesystem has been implemented for FUSE yet, but its
+>> definately doable; and loopback filesystems like in your second example have
+>> been supported for years.
+
+>>> As a normal user? And establish a tap interface connected through ppp over
+>>> ssh or whatever you could want to imagine?
+
+>> What, then, are the major selling points or benefits?
+
+>>> These were just examples, Linux is trying to catch up in ugly ways indeed
+>>> (yes, have a look at the details of fuse, it's deemed to be inefficient).
+>>> In the Hurd, it's that way from the _ground_ and there is no limitation
+>>> like having to be root or ask for root to add magic lines, etc.
diff --git a/hurd/faq/top.mdwn b/hurd/faq/top.mdwn
new file mode 100644
index 00000000..9e385c0f
--- /dev/null
+++ b/hurd/faq/top.mdwn
@@ -0,0 +1,16 @@
+[[!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="What is a replacement for procps' top?"]]
+
+Here is a replacement to use, until the real `top` works, which depends on
+[[hurd/translator/procfs]] and some [[!taglink porting|open_issue_porting]].
+
+ $ while :; do ps -e -v -s CPU --top=22 -r; sleep 5; done
diff --git a/hurd/gcc.mdwn b/hurd/gcc.mdwn
index 3700b8b8..53b5e071 100644
--- a/hurd/gcc.mdwn
+++ b/hurd/gcc.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
[[General_information|/gcc]] about the GCC.
diff --git a/hurd/glibc.mdwn b/hurd/glibc.mdwn
index de85c03d..bdfed833 100644
--- a/hurd/glibc.mdwn
+++ b/hurd/glibc.mdwn
@@ -1,12 +1,13 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation,
+Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
[[General_information|/glibc]] about the glibc.
@@ -16,3 +17,5 @@ For information about how the glibc integrates into the system, see sections
[[Hurd-specific_API]].
[[Debugging_glibc|debugging/glibc]].
+
+[[Internals]].
diff --git a/hurd/glibc/hurd-specific_api.mdwn b/hurd/glibc/hurd-specific_api.mdwn
index 7333ec0d..aeb63d91 100644
--- a/hurd/glibc/hurd-specific_api.mdwn
+++ b/hurd/glibc/hurd-specific_api.mdwn
@@ -1,14 +1,14 @@
-[[meta copyright="Copyright © 2002, 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2002, 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-[[meta title="Hurd-specific glibc API"]]
+[[!meta title="Hurd-specific glibc API"]]
These functions have meaning only under Hurd. They are needed to get port
names that are used in native Hurd API (the RPC calls to servers). The `.defs`
diff --git a/hurd/glibc/internals.mdwn b/hurd/glibc/internals.mdwn
new file mode 100644
index 00000000..897da92e
--- /dev/null
+++ b/hurd/glibc/internals.mdwn
@@ -0,0 +1,35 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+Some bits about this, some bits about that.
+
+# Controlling TTY
+
+Hurd controlling tty behavior is generally consistent with BSD's, including
+`TIOCSCTTY`. Linux also has `TIOCSCTTY` and it is harmless to use it there.
+But BSD and Hurd never do an implicit `TIOCSCTTY` (hence our `O_NOCTTY` is
+zero).
+
+C.f. <http://lists.gnu.org/archive/html/bug-hurd/2009-10/msg00030.html> and the
+following messages.
+
+# Sinals
+
+[[Unix]] signals are implemented in glibc.
+
+In every process, signals are handled in a separate signal thread.
+
+ [Why does kill hang sometimes?]
+ <youpi> kill send the signal to the process
+ <youpi> if the process is hung, killing waits
+ <youpi> signals should be just asynchronous, but apparently for some reason
+ Roland & co wanted some syunchronization
+
+[[!taglink open_issue_glibc]]
diff --git a/hurd/hurd_hacking_guide.mdwn b/hurd/hurd_hacking_guide.mdwn
index 2ef08f8a..ea9aa259 100644
--- a/hurd/hurd_hacking_guide.mdwn
+++ b/hurd/hurd_hacking_guide.mdwn
@@ -1,18 +1,20 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
Originally written by Wolfgang Jährling, the *Hurd Hacking Guide* contains an
introduction to GNU Hurd and GNU Mach programming, an overview of some of the
Hurd's features. It also contains a tutorial on writing your own
[[translator]].
+Before using the code in the example (trivfs) please do read the Changelog. A lot of changes might have taken place.
+
* [HTML version](http://www.gnu.org/software/hurd/hacking-guide/hhg.html) for
browsing online,
* [PostScript version](http://www.gnu.org/software/hurd/hacking-guide/hhg.ps)
diff --git a/hurd/interface.mdwn b/hurd/interface.mdwn
new file mode 100644
index 00000000..75fda808
--- /dev/null
+++ b/hurd/interface.mdwn
@@ -0,0 +1,14 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta title="Interfaces"]]
+
+[[!map pages="hurd/interface/* and !hurd/interface/*_*"
+show=title]]
diff --git a/hurd/interface/dir_link.mdwn b/hurd/interface/dir_link.mdwn
new file mode 100644
index 00000000..0f1db578
--- /dev/null
+++ b/hurd/interface/dir_link.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta redir=fs/23]]
diff --git a/hurd/interface/dir_lookup.mdwn b/hurd/interface/dir_lookup.mdwn
new file mode 100644
index 00000000..40e79538
--- /dev/null
+++ b/hurd/interface/dir_lookup.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta redir=fs/18]]
diff --git a/hurd/interface/dir_mkdir.mdwn b/hurd/interface/dir_mkdir.mdwn
new file mode 100644
index 00000000..bf386818
--- /dev/null
+++ b/hurd/interface/dir_mkdir.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta redir=fs/20]]
diff --git a/hurd/interface/dir_mkfile.mdwn b/hurd/interface/dir_mkfile.mdwn
new file mode 100644
index 00000000..01828a03
--- /dev/null
+++ b/hurd/interface/dir_mkfile.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta redir=fs/25]]
diff --git a/hurd/interface/dir_notice_changes.mdwn b/hurd/interface/dir_notice_changes.mdwn
new file mode 100644
index 00000000..5763a0a3
--- /dev/null
+++ b/hurd/interface/dir_notice_changes.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta redir=fs/26]]
diff --git a/hurd/interface/dir_readdir.mdwn b/hurd/interface/dir_readdir.mdwn
new file mode 100644
index 00000000..b41e8d49
--- /dev/null
+++ b/hurd/interface/dir_readdir.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta redir=fs/19]]
diff --git a/hurd/interface/dir_rename.mdwn b/hurd/interface/dir_rename.mdwn
new file mode 100644
index 00000000..3839487f
--- /dev/null
+++ b/hurd/interface/dir_rename.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta redir=fs/24]]
diff --git a/hurd/interface/dir_rmdir.mdwn b/hurd/interface/dir_rmdir.mdwn
new file mode 100644
index 00000000..d69fdd30
--- /dev/null
+++ b/hurd/interface/dir_rmdir.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta redir=fs/21]]
diff --git a/hurd/interface/dir_unlink.mdwn b/hurd/interface/dir_unlink.mdwn
new file mode 100644
index 00000000..a8861bac
--- /dev/null
+++ b/hurd/interface/dir_unlink.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta redir=fs/22]]
diff --git a/hurd/interface/file_chauthor.mdwn b/hurd/interface/file_chauthor.mdwn
new file mode 100644
index 00000000..6fcf97f1
--- /dev/null
+++ b/hurd/interface/file_chauthor.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta redir=fs/02]]
diff --git a/hurd/interface/file_check_access.mdwn b/hurd/interface/file_check_access.mdwn
new file mode 100644
index 00000000..5ab4af57
--- /dev/null
+++ b/hurd/interface/file_check_access.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta redir=fs/09]]
diff --git a/hurd/interface/file_chflags.mdwn b/hurd/interface/file_chflags.mdwn
new file mode 100644
index 00000000..6e55536b
--- /dev/null
+++ b/hurd/interface/file_chflags.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta redir=fs/04]]
diff --git a/hurd/interface/file_chmod.mdwn b/hurd/interface/file_chmod.mdwn
new file mode 100644
index 00000000..0bbb8d92
--- /dev/null
+++ b/hurd/interface/file_chmod.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta redir=fs/03]]
diff --git a/hurd/interface/file_chown.mdwn b/hurd/interface/file_chown.mdwn
new file mode 100644
index 00000000..a99bcf85
--- /dev/null
+++ b/hurd/interface/file_chown.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta redir=fs/01]]
diff --git a/hurd/interface/file_exec.mdwn b/hurd/interface/file_exec.mdwn
new file mode 100644
index 00000000..5f4b57f9
--- /dev/null
+++ b/hurd/interface/file_exec.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta redir=fs/00]]
diff --git a/hurd/interface/file_get_fs_options.mdwn b/hurd/interface/file_get_fs_options.mdwn
new file mode 100644
index 00000000..b04c70a3
--- /dev/null
+++ b/hurd/interface/file_get_fs_options.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta redir=fs/30]]
diff --git a/hurd/interface/file_get_storage_info.mdwn b/hurd/interface/file_get_storage_info.mdwn
new file mode 100644
index 00000000..87166c90
--- /dev/null
+++ b/hurd/interface/file_get_storage_info.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta redir=fs/15]]
diff --git a/hurd/interface/file_get_translator.mdwn b/hurd/interface/file_get_translator.mdwn
new file mode 100644
index 00000000..6c8565f4
--- /dev/null
+++ b/hurd/interface/file_get_translator.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta redir=fs/28]]
diff --git a/hurd/interface/file_get_translator_cntl.mdwn b/hurd/interface/file_get_translator_cntl.mdwn
new file mode 100644
index 00000000..befbf1a3
--- /dev/null
+++ b/hurd/interface/file_get_translator_cntl.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta redir=fs/29]]
diff --git a/hurd/interface/file_getcontrol.mdwn b/hurd/interface/file_getcontrol.mdwn
new file mode 100644
index 00000000..94503b23
--- /dev/null
+++ b/hurd/interface/file_getcontrol.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta redir=fs/11]]
diff --git a/hurd/interface/file_getfh.mdwn b/hurd/interface/file_getfh.mdwn
new file mode 100644
index 00000000..369afb17
--- /dev/null
+++ b/hurd/interface/file_getfh.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta redir=fs/17]]
diff --git a/hurd/interface/file_getlinknode.mdwn b/hurd/interface/file_getlinknode.mdwn
new file mode 100644
index 00000000..64efb810
--- /dev/null
+++ b/hurd/interface/file_getlinknode.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta redir=fs/16]]
diff --git a/hurd/interface/file_lock.mdwn b/hurd/interface/file_lock.mdwn
new file mode 100644
index 00000000..8860d24b
--- /dev/null
+++ b/hurd/interface/file_lock.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta redir=fs/07]]
diff --git a/hurd/interface/file_lock_stat.mdwn b/hurd/interface/file_lock_stat.mdwn
new file mode 100644
index 00000000..78abebb5
--- /dev/null
+++ b/hurd/interface/file_lock_stat.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta redir=fs/08]]
diff --git a/hurd/interface/file_notice_changes.mdwn b/hurd/interface/file_notice_changes.mdwn
new file mode 100644
index 00000000..f6646410
--- /dev/null
+++ b/hurd/interface/file_notice_changes.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta redir=fs/10]]
diff --git a/hurd/interface/file_reparent.mdwn b/hurd/interface/file_reparent.mdwn
new file mode 100644
index 00000000..80cd174e
--- /dev/null
+++ b/hurd/interface/file_reparent.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta redir=fs/31]]
diff --git a/hurd/interface/file_set_size.mdwn b/hurd/interface/file_set_size.mdwn
new file mode 100644
index 00000000..cf1e376c
--- /dev/null
+++ b/hurd/interface/file_set_size.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta redir=fs/06]]
diff --git a/hurd/interface/file_set_translator.mdwn b/hurd/interface/file_set_translator.mdwn
new file mode 100644
index 00000000..4a43bdad
--- /dev/null
+++ b/hurd/interface/file_set_translator.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta redir=fs/27]]
diff --git a/hurd/interface/file_statfs.mdwn b/hurd/interface/file_statfs.mdwn
new file mode 100644
index 00000000..f5086d34
--- /dev/null
+++ b/hurd/interface/file_statfs.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta redir=fs/12]]
diff --git a/hurd/interface/file_sync.mdwn b/hurd/interface/file_sync.mdwn
new file mode 100644
index 00000000..160c86ca
--- /dev/null
+++ b/hurd/interface/file_sync.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta redir=fs/13]]
diff --git a/hurd/interface/file_syncfs.mdwn b/hurd/interface/file_syncfs.mdwn
new file mode 100644
index 00000000..a52e92b0
--- /dev/null
+++ b/hurd/interface/file_syncfs.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta redir=fs/14]]
diff --git a/hurd/interface/file_utimes.mdwn b/hurd/interface/file_utimes.mdwn
new file mode 100644
index 00000000..ab09a58b
--- /dev/null
+++ b/hurd/interface/file_utimes.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta redir=fs/05]]
diff --git a/hurd/interface/fs.mdwn b/hurd/interface/fs.mdwn
new file mode 100644
index 00000000..4f217c5a
--- /dev/null
+++ b/hurd/interface/fs.mdwn
@@ -0,0 +1,25 @@
+[[!meta copyright="Copyright © 1994, 1995, 1996, 1997, 1998, 1999, 2002, 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="fs: Filesystem"]]
+
+All these objects also implement the generic IO facilities.
+
+To get or set the translator currently running on a file, use
+[[`file_set_translator`|file_set_translator]],
+[[`file_get_translator`|file_get_translator]], or
+[[`file_get_translator_cntl`|file_get_translator_cntl]] on a port gotten with
+the `FS_LOOKUP_NOTRANS` flag to [[`dir_lookup`|dir_lookup]]. You can send
+these [[RPC]]s to a port to a translated node (looked up without
+`FS_LOOKUP_NOTRANS`) to stack a new translator on top of the existing one.
+
+[[!map pages="hurd/interface/fs/* and !hurd/interface/fs/*/*"
+show=title]]
diff --git a/hurd/interface/fs/00.mdwn b/hurd/interface/fs/00.mdwn
new file mode 100644
index 00000000..29b93731
--- /dev/null
+++ b/hurd/interface/fs/00.mdwn
@@ -0,0 +1,30 @@
+[[!meta copyright="Copyright © 1994, 1995, 1996, 1997, 1998, 1999, 2002, 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="file_exec"]]
+
+ routine file_exec (
+ exec_file: file_t;
+ RPT
+ exec_task: task_t;
+ flags: int;
+ argv: data_t SCP;
+ envp: data_t SCP;
+ fdarray: portarray_t SCP;
+ portarray: portarray_t SCP;
+ intarray: intarray_t SCP;
+ deallocnames: mach_port_name_array_t SCP;
+ destroynames: mach_port_name_array_t SCP);
+
+Overlay a task with a file. Necessary initialization, including authentication
+changes associated with set[ug]id execution must be handled by the filesystem.
+Filesystems normally implement this by using [[`exec_newtask`|exec_newtask]] or
+[[`exec_loadtask`|exec_loadtask]] as appropriate.
diff --git a/hurd/interface/fs/01.mdwn b/hurd/interface/fs/01.mdwn
new file mode 100644
index 00000000..7b9c7a31
--- /dev/null
+++ b/hurd/interface/fs/01.mdwn
@@ -0,0 +1,20 @@
+[[!meta copyright="Copyright © 1994, 1995, 1996, 1997, 1998, 1999, 2002, 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="file_chown"]]
+
+ routine file_chown (
+ chown_file: file_t;
+ RPT
+ new_owner: uid_t;
+ new_group: gid_t);
+
+Change owner and/or group.
diff --git a/hurd/interface/fs/02.mdwn b/hurd/interface/fs/02.mdwn
new file mode 100644
index 00000000..3158d2c6
--- /dev/null
+++ b/hurd/interface/fs/02.mdwn
@@ -0,0 +1,36 @@
+[[!meta copyright="Copyright © 1994, 1995, 1996, 1997, 1998, 1999, 2002, 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="file_chauthor"]]
+
+ routine file_chauthor (
+ chauth_file: file_t;
+ RPT
+ new_author: uid_t);
+
+ Whan that Aprill with hith thoureth thoote
+ The droghte of March hath perthed to the roote,
+ And bathed every veyne in thwith licour,
+ Of which vertu engendred is the flour;
+ Whan Zephiruth eek with hith thweete breeth
+ Inthpired hath in every holt and heeth
+ The tender croppeth, and the yonge thonne
+ Hath in the Ram his halve courth yronne,
+ And thmale foweleth maken melodye,
+ That thlepen all the nyght with open ye
+ (Tho Priketh hem Nature in hir corageth),
+ Thanne longen folk to goon on pligrimageth,
+ And palmereth for to theken thtraunge thtrondeth,
+ To ferne halweth, kowthe in thondry londeth:
+ And thpethially, from every thireth ende
+ Of Engelond to Cantebury they wende,
+ The hooly blithful martyr for to theke,
+ That hem hath holpen whan that they were theeke.
diff --git a/hurd/interface/fs/03.mdwn b/hurd/interface/fs/03.mdwn
new file mode 100644
index 00000000..d697ec90
--- /dev/null
+++ b/hurd/interface/fs/03.mdwn
@@ -0,0 +1,19 @@
+[[!meta copyright="Copyright © 1994, 1995, 1996, 1997, 1998, 1999, 2002, 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="file_chmod"]]
+
+ routine file_chmod (
+ chmod_file: file_t;
+ RPT
+ new_mode: mode_t);
+
+Change mode bits.
diff --git a/hurd/interface/fs/04.mdwn b/hurd/interface/fs/04.mdwn
new file mode 100644
index 00000000..d0386eab
--- /dev/null
+++ b/hurd/interface/fs/04.mdwn
@@ -0,0 +1,19 @@
+[[!meta copyright="Copyright © 1994, 1995, 1996, 1997, 1998, 1999, 2002, 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="file_chflags"]]
+
+ routine file_chflags (
+ chflags_file: file_t;
+ RPT
+ new_flags: int);
+
+Change file flags.
diff --git a/hurd/interface/fs/05.mdwn b/hurd/interface/fs/05.mdwn
new file mode 100644
index 00000000..184e2ffd
--- /dev/null
+++ b/hurd/interface/fs/05.mdwn
@@ -0,0 +1,23 @@
+[[!meta copyright="Copyright © 1994, 1995, 1996, 1997, 1998, 1999, 2002, 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="file_utimes"]]
+
+ routine file_utimes (
+ utimes_file: file_t;
+ RPT
+ new_atime: time_value_t;
+ new_mtime: time_value_t);
+
+Change access and modify times.
+
+If the microseconds value is -1 (all bits on) then the time should be set to
+the current time and the remainder of the `time_value_t` ignored.
diff --git a/hurd/interface/fs/06.mdwn b/hurd/interface/fs/06.mdwn
new file mode 100644
index 00000000..393f1a9b
--- /dev/null
+++ b/hurd/interface/fs/06.mdwn
@@ -0,0 +1,21 @@
+[[!meta copyright="Copyright © 1994, 1995, 1996, 1997, 1998, 1999, 2002, 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="file_set_size"]]
+
+ routine file_set_size (
+ trunc_file: file_t;
+ RPT
+ new_size: loff_t);
+
+Change the size of the file. If the size increases, new blocks are
+zero-filled. After successful return, it is safe to reference mapped areas of
+the file up to `new_size`.
diff --git a/hurd/interface/fs/07.mdwn b/hurd/interface/fs/07.mdwn
new file mode 100644
index 00000000..d6408763
--- /dev/null
+++ b/hurd/interface/fs/07.mdwn
@@ -0,0 +1,19 @@
+[[!meta copyright="Copyright © 1994, 1995, 1996, 1997, 1998, 1999, 2002, 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="file_lock"]]
+
+ routine file_lock (
+ lock_file: file_t;
+ RPT
+ flags: int);
+
+Apply/manipulate advisory lock.
diff --git a/hurd/interface/fs/08.mdwn b/hurd/interface/fs/08.mdwn
new file mode 100644
index 00000000..fbb3d53b
--- /dev/null
+++ b/hurd/interface/fs/08.mdwn
@@ -0,0 +1,21 @@
+[[!meta copyright="Copyright © 1994, 1995, 1996, 1997, 1998, 1999, 2002, 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="file_lock_stat"]]
+
+ routine file_lock_stat (
+ lock_file: file_t;
+ RPT
+ out mystatus: int;
+ out otherstatus: int);
+
+Return current lock status. `mystatus` tells what kind of lock the caller has;
+`otherstatus` tells what kind of lock anyone has (including the caller).
diff --git a/hurd/interface/fs/09.mdwn b/hurd/interface/fs/09.mdwn
new file mode 100644
index 00000000..02c778c2
--- /dev/null
+++ b/hurd/interface/fs/09.mdwn
@@ -0,0 +1,24 @@
+[[!meta copyright="Copyright © 1994, 1995, 1996, 1997, 1998, 1999, 2002, 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="file_check_access"]]
+
+ routine file_check_access (
+ file: file_t;
+ RPT
+ out allowed: int);
+
+Find out what kind of access this file permits the current user (regardless of
+the current open modes for this port). `allowed` is a bitwise *or* of
+`O_READ`, `O_WRITE`, and `O_EXEC`. This is not necessarily the same as what an
+`open` or `exec` would allow; `O_EXEC` is set for *root* even if no executable
+bits are on (in which case [[`file_exec`|file_exec]] should fail) and `O_WRITE`
+is set a directory can be modified, even though it can't be written directly.
diff --git a/hurd/interface/fs/10.mdwn b/hurd/interface/fs/10.mdwn
new file mode 100644
index 00000000..56ce204f
--- /dev/null
+++ b/hurd/interface/fs/10.mdwn
@@ -0,0 +1,20 @@
+[[!meta copyright="Copyright © 1994, 1995, 1996, 1997, 1998, 1999, 2002, 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="file_notice_changes"]]
+
+ routine file_notice_changes (
+ file: file_t;
+ RPT
+ port: mach_port_send_t);
+
+Notice changes to file `file`. Send notification messages (see
+[[`fs_notify.defs`|fs_notify]]) to `port` as they occur.
diff --git a/hurd/interface/fs/11.mdwn b/hurd/interface/fs/11.mdwn
new file mode 100644
index 00000000..94aa4ee0
--- /dev/null
+++ b/hurd/interface/fs/11.mdwn
@@ -0,0 +1,19 @@
+[[!meta copyright="Copyright © 1994, 1995, 1996, 1997, 1998, 1999, 2002, 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="file_getcontrol"]]
+
+ routine file_getcontrol (
+ file: file_t;
+ RPT
+ out control: mach_port_send_t);
+
+Return control port for this filesystem.
diff --git a/hurd/interface/fs/12.mdwn b/hurd/interface/fs/12.mdwn
new file mode 100644
index 00000000..b69b591b
--- /dev/null
+++ b/hurd/interface/fs/12.mdwn
@@ -0,0 +1,19 @@
+[[!meta copyright="Copyright © 1994, 1995, 1996, 1997, 1998, 1999, 2002, 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="file_statfs"]]
+
+ routine file_statfs (
+ file: file_t;
+ RPT
+ out info: fsys_statfsbuf_t);
+
+Return filesystem status.
diff --git a/hurd/interface/fs/13.mdwn b/hurd/interface/fs/13.mdwn
new file mode 100644
index 00000000..2e06e0c4
--- /dev/null
+++ b/hurd/interface/fs/13.mdwn
@@ -0,0 +1,60 @@
+[[!meta copyright="Copyright © 1994, 1995, 1996, 1997, 1998, 1999, 2002, 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="file_sync"]]
+
+ routine file_sync (
+ file: file_t;
+ RPT
+ wait: int;
+ omit_metadata: int);
+
+Sync the individual file. If `omit_metadata` is set, then it is only necessary
+for the server to updated the actual contents of the file, not any associated
+metadata.
+
+# Implementation Examples
+
+Servers that either don't keep any unsynchronized state (or don't have a
+backing store at all) can simply `return 0`. Examples: [[translator/nfs]].
+
+## [[libtrivfs]]
+
+Pass the call through to the underlying node.
+
+### [[storeio]] / [[streamio]]
+
+Instead of to the underlying node, pass the call through to the backend
+(device).
+
+## [[libnetfs]]
+
+Invoke `netfs_attempt_sync`.
+
+## [[libdiskfs]]
+
+Invoke `diskfs_file_update`.
+
+# Usage Examples
+
+## [[glibc]]
+
+ * `fdatasync`
+
+ `file_syncfs (FD, true, true)` -- invoke it on the passed file descriptor,
+ do wait for completion, do allow omitting to update the associated
+ metadata.
+
+ * `fsync`
+
+ `file_syncfs (FD, true, false)` -- invoke it on the passed file descriptor,
+ do wait for completion, don't allow omitting to update the associated
+ metadata.
diff --git a/hurd/interface/fs/14.mdwn b/hurd/interface/fs/14.mdwn
new file mode 100644
index 00000000..a13c0bd8
--- /dev/null
+++ b/hurd/interface/fs/14.mdwn
@@ -0,0 +1,67 @@
+[[!meta copyright="Copyright © 1994, 1995, 1996, 1997, 1998, 1999, 2002, 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="file_syncfs"]]
+
+ routine file_syncfs (
+ file: file_t;
+ RPT
+ wait: int;
+ do_children: int);
+
+Synchronize the entire filesystem.
+
+This function has a companion in [[`fsys_syncfs`|fsys_syncfs]], which is
+invoked on the server's control port instead of an arbitrary node. Both of
+them are usually implemented in equivalent ways.
+
+# Implementation Examples
+
+Servers that either don't keep any unsynchronized state (or don't have a
+backing store at all) can simply `return 0`. Examples: [[translator/nfs]].
+
+The implementation typically doesn't care on which specific node (as exported
+by the implementing server) [[`file_syncfs`|file_syncfs]] is being invoked on.
+
+## [[libtrivfs]]
+
+Invoke [[`file_sync`|file_sync]] on the underlying node. Rationale: the
+underlying node represents this filesystem's backend, and once this node is
+synchronized, the whole [[libtrivfs]]-based filesystem is to be considered
+synchronized.
+
+### [[storeio]] / [[streamio]]
+
+Instead of the to underlying node, pass the call through to the backend
+(device).
+
+## [[libnetfs]]
+
+Invoke `netfs_attempt_syncfs`.
+
+## [[libdiskfs]]
+
+Invoke [[`fsys_syncfs`|fsys_syncfs]] on all active children, and invoke
+`diskfs_sync_everything` and `diskfs_set_hypermetadata`.
+
+# Usage Examples
+
+## [[glibc]]
+
+ * `sync`
+
+ `file_syncfs ("/", false, true)` -- invoke it on the process' root directory
+ (`INIT_PORT_CRDIR`), don't wait for completion, do synchronize child
+ filesystems.
+
+## [[Hurd]]
+
+ * [[`syncfs`|syncfs]]
diff --git a/hurd/interface/fs/15.mdwn b/hurd/interface/fs/15.mdwn
new file mode 100644
index 00000000..50dcce1b
--- /dev/null
+++ b/hurd/interface/fs/15.mdwn
@@ -0,0 +1,23 @@
+[[!meta copyright="Copyright © 1994, 1995, 1996, 1997, 1998, 1999, 2002, 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="file_get_storage_info"]]
+
+ routine file_get_storage_info (
+ file: file_t;
+ RPT
+ out ports: portarray_t, dealloc;
+ out ints: intarray_t, dealloc;
+ out offsets: off_array_t, dealloc;
+ out data: data_t, dealloc);
+
+Return information on the storage used to hold this file. See the comment for
+`enum file_storage_class` in `<hurd/hurd_types.h>` the details.
diff --git a/hurd/interface/fs/16.mdwn b/hurd/interface/fs/16.mdwn
new file mode 100644
index 00000000..8ba776c1
--- /dev/null
+++ b/hurd/interface/fs/16.mdwn
@@ -0,0 +1,20 @@
+[[!meta copyright="Copyright © 1994, 1995, 1996, 1997, 1998, 1999, 2002, 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="file_getlinknode"]]
+
+ routine file_getlinknode (
+ file: file_t;
+ RPT
+ out linknode: mach_port_send_t);
+
+Return the node for hard links to this potentially translated file. This
+returns a potentially unauthenticated node.
diff --git a/hurd/interface/fs/17.mdwn b/hurd/interface/fs/17.mdwn
new file mode 100644
index 00000000..8895434a
--- /dev/null
+++ b/hurd/interface/fs/17.mdwn
@@ -0,0 +1,41 @@
+[[!meta copyright="Copyright © 1994, 1995, 1996, 1997, 1998, 1999, 2002, 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="file_getfh"]]
+
+ routine file_getfh (
+ file: file_t;
+ RPT
+ out filehandle: data_t, dealloc);
+
+Return a file handle for this file. This can be used by NFS and such. It is
+not guaranteed that this call will work; if it doesn't, then this filesystem
+cannot be NFS mounted.
+
+Currently file handles are only used by `nfsd` with the purpose of
+having some stable representation of nodes (TODO: Add references).
+The only translator library that implements `file_getfh` and the
+complementary [[`fsys_getfile`|fsys_getfile]] is `libdiskfs`, so if
+you are linking against a different library you should expect that the
+filesystem exported by your translator will not be supported by `nfsd`
+by default.
+
+If you would like your non-`libdiskfs` translator to be supported by
+`nfsd`, you should implement these two RPCs on your own. The idea is
+that to each node exported by your translator you should put in
+correspondence a unique file handle. A file handle is a 28-byte
+value. The first 4 bytes are not used. Then comes a 4-byte number
+which should identify your node somehow (`libdiskfs` uses the index
+into the internally maintained node cache). After it there comes a
+4-byte number which should bear a similar function to the `st_gen`
+field of a `stat` structure. Following this specification, you should
+be able to implement `file_getfh` and `fsys_getfile` in a proper way
+to get `nfsd` support.
diff --git a/hurd/interface/fs/18.mdwn b/hurd/interface/fs/18.mdwn
new file mode 100644
index 00000000..dbe606f3
--- /dev/null
+++ b/hurd/interface/fs/18.mdwn
@@ -0,0 +1,34 @@
+[[!meta copyright="Copyright © 1994, 1995, 1996, 1997, 1998, 1999, 2002, 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="dir_lookup"]]
+
+ routine dir_lookup (
+ start_dir: file_t;
+ RPT
+ file_name: string_t;
+ flags: int;
+ mode: mode_t;
+ out do_retry: retry_type;
+ out retry_name: string_t;
+ out result: mach_port_send_t);
+
+Translate a file name, following all symlinks. Upon return, if `do_retry` is
+`FS_RETRY_MAGICAL` then `retry_name` specifies what to do, the list of
+possibilities is documented in `<hurd/hurd_types.h>`; if `FS_RETRY_REAUTH`,
+then `result` should be reauthenticated before being used. If `retry_name` is
+the empty string and the retry type is `FS_RETRY_NORMAL`, then no further
+[[`dir_lookup`|dir_lookup]] calls are required; `result` is the port to use.
+Otherwise the [[`dir_lookup`|dir_lookup]] call should be repeated, sent to
+`result` (or the reauthenticated port) with `retry_name` passed for
+`file_name`. This call is required to be supported by all files (even
+non-directories) if the filename is null, and should function in that case as a
+re-open of the file.
diff --git a/hurd/interface/fs/19.mdwn b/hurd/interface/fs/19.mdwn
new file mode 100644
index 00000000..86625d44
--- /dev/null
+++ b/hurd/interface/fs/19.mdwn
@@ -0,0 +1,29 @@
+[[!meta copyright="Copyright © 1994, 1995, 1996, 1997, 1998, 1999, 2002, 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="dir_readdir"]]
+
+ routine dir_readdir (
+ dir: file_t;
+ RPT
+ out data: data_t, dealloc[];
+ entry: int;
+ nentries: int;
+ bufsiz: vm_size_t;
+ out amount: int);
+
+Read entries from the directory. Each entry is identified by an index number
+starting at 0 and running through the file. This call fetches `nentries` (or
+any convenient number if `nentries` is -1) entries starting at `entry`,
+returning an array of struct directs in `data`. The number of entries
+successfully read is returned in `amount`. If `entry` is bigger than the index
+of the last entry, then 0 is returned in `amount`. If `bufsize` is nonzero,
+never return more than `bufsize` bytes of data regardless.
diff --git a/hurd/interface/fs/20.mdwn b/hurd/interface/fs/20.mdwn
new file mode 100644
index 00000000..da57f0b5
--- /dev/null
+++ b/hurd/interface/fs/20.mdwn
@@ -0,0 +1,20 @@
+[[!meta copyright="Copyright © 1994, 1995, 1996, 1997, 1998, 1999, 2002, 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="dir_mkdir"]]
+
+ routine dir_mkdir (
+ directory: file_t;
+ RPT
+ name: string_t;
+ mode: mode_t);
+
+Create directory.
diff --git a/hurd/interface/fs/21.mdwn b/hurd/interface/fs/21.mdwn
new file mode 100644
index 00000000..c562333a
--- /dev/null
+++ b/hurd/interface/fs/21.mdwn
@@ -0,0 +1,19 @@
+[[!meta copyright="Copyright © 1994, 1995, 1996, 1997, 1998, 1999, 2002, 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="dir_rmdir"]]
+
+ routine dir_rmdir (
+ directory: file_t;
+ RPT
+ name: string_t);
+
+Remove directory.
diff --git a/hurd/interface/fs/22.mdwn b/hurd/interface/fs/22.mdwn
new file mode 100644
index 00000000..24fcdd9e
--- /dev/null
+++ b/hurd/interface/fs/22.mdwn
@@ -0,0 +1,19 @@
+[[!meta copyright="Copyright © 1994, 1995, 1996, 1997, 1998, 1999, 2002, 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="dir_unlink"]]
+
+ routine dir_unlink (
+ directory: file_t;
+ RPT
+ name: string_t);
+
+Remove non-directory.
diff --git a/hurd/interface/fs/23.mdwn b/hurd/interface/fs/23.mdwn
new file mode 100644
index 00000000..44621d37
--- /dev/null
+++ b/hurd/interface/fs/23.mdwn
@@ -0,0 +1,27 @@
+[[!meta copyright="Copyright © 1994, 1995, 1996, 1997, 1998, 1999, 2002, 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="dir_link"]]
+
+ routine dir_link (
+ dir: file_t;
+ RPT
+ file: file_t;
+ name: string_t;
+ excl: int);
+
+Create a hard link.
+
+If `dir` and `file` are not implemented by the same filesystem, `EXDEV` should
+be returned. If the two filesystems, however can inter-operate and guarantee
+the appropriate POSIX semantics, they can communicate by a private protocol and
+allow hard links between them. If `excl` is set, then fail if `name` already
+exists in `dir`.
diff --git a/hurd/interface/fs/24.mdwn b/hurd/interface/fs/24.mdwn
new file mode 100644
index 00000000..aac2df60
--- /dev/null
+++ b/hurd/interface/fs/24.mdwn
@@ -0,0 +1,24 @@
+[[!meta copyright="Copyright © 1994, 1995, 1996, 1997, 1998, 1999, 2002, 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="dir_rename"]]
+
+ routine dir_rename (
+ olddirectory: file_t;
+ RPT
+ oldname: string_t;
+ newdirectory: file_t;
+ newname: string_t;
+ excl: int);
+
+Rename file -- comments similar to those for [[`dir_link`|dir_link]] apply here
+about `EXDEV`. If `excl` is set, then fail if `newname` already exists in
+`newdirectory`.
diff --git a/hurd/interface/fs/25.mdwn b/hurd/interface/fs/25.mdwn
new file mode 100644
index 00000000..9b08d54f
--- /dev/null
+++ b/hurd/interface/fs/25.mdwn
@@ -0,0 +1,25 @@
+[[!meta copyright="Copyright © 1994, 1995, 1996, 1997, 1998, 1999, 2002, 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="dir_mkfile"]]
+
+ routine dir_mkfile (
+ directory: file_t;
+ RPT
+ flags: int;
+ mode: mode_t;
+ out newnode: mach_port_send_t);
+
+Create a new file without linking it into the filesystem. You still must have
+write permission on the specified directory, even though it will not actually
+be written. Return in `newnode` a port to the file. `flags` are the same as
+for [[`dir_lookup`|dir_lookup]], but `O_CREAT` and `O_TRUNC` are assumed even
+if not specified.
diff --git a/hurd/interface/fs/26.mdwn b/hurd/interface/fs/26.mdwn
new file mode 100644
index 00000000..82a7bca1
--- /dev/null
+++ b/hurd/interface/fs/26.mdwn
@@ -0,0 +1,20 @@
+[[!meta copyright="Copyright © 1994, 1995, 1996, 1997, 1998, 1999, 2002, 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="dir_notice_changes"]]
+
+ routine dir_notice_changes (
+ directory: file_t;
+ RPT
+ port: mach_port_send_t);
+
+Notice changes to directory `dir`. Send directory change notifications (see
+[[`fs_notify.defs`|fs_notify]]) to `port` as they occur.
diff --git a/hurd/interface/fs/27.mdwn b/hurd/interface/fs/27.mdwn
new file mode 100644
index 00000000..9a7bd13f
--- /dev/null
+++ b/hurd/interface/fs/27.mdwn
@@ -0,0 +1,29 @@
+[[!meta copyright="Copyright © 1994, 1995, 1996, 1997, 1998, 1999, 2002, 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="file_set_translator"]]
+
+ routine file_set_translator (
+ file: file_t;
+ RPT
+ passive_flags: int;
+ active_flags: int;
+ oldtrans_flags: int;
+ passive: data_t SCP;
+ active: mach_port_send_t);
+
+Set a translator for future lookups to a file.
+
+`passive` is the passive translator; `active` is the active translator.
+
+The `flags` are `FS_TRANS_*`, defined in `<hurd/hurd_types.h>`. `oldflags` are
+sent in an [[`fsys_goaway`|fsys_goaway]] to an existing active translator if
+there is one and it is to be killed.
diff --git a/hurd/interface/fs/28.mdwn b/hurd/interface/fs/28.mdwn
new file mode 100644
index 00000000..13ac4b7a
--- /dev/null
+++ b/hurd/interface/fs/28.mdwn
@@ -0,0 +1,19 @@
+[[!meta copyright="Copyright © 1994, 1995, 1996, 1997, 1998, 1999, 2002, 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="file_get_translator"]]
+
+ routine file_get_translator (
+ file: file_t;
+ RPT
+ out translator: data_t, dealloc);
+
+Return the stored permanent translator for this file.
diff --git a/hurd/interface/fs/29.mdwn b/hurd/interface/fs/29.mdwn
new file mode 100644
index 00000000..1cc3950a
--- /dev/null
+++ b/hurd/interface/fs/29.mdwn
@@ -0,0 +1,20 @@
+[[!meta copyright="Copyright © 1994, 1995, 1996, 1997, 1998, 1999, 2002, 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="file_get_translator_cntl"]]
+
+ routine file_get_translator_cntl (
+ file: file_t;
+ RPT
+ out translator_cntl: mach_port_send_t);
+
+Return the translator control port to the active translator (if any) for this
+file.
diff --git a/hurd/interface/fs/30.mdwn b/hurd/interface/fs/30.mdwn
new file mode 100644
index 00000000..653af42f
--- /dev/null
+++ b/hurd/interface/fs/30.mdwn
@@ -0,0 +1,20 @@
+[[!meta copyright="Copyright © 1994, 1995, 1996, 1997, 1998, 1999, 2002, 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="file_get_fs_options"]]
+
+ routine file_get_fs_options (
+ file: file_t;
+ RPT
+ out options: data_t, dealloc);
+
+Return the options describing the way the receiving filesystem is running.
+(Suitable as an arg for [[`fsys_set_options`|fsys_set_options]]).
diff --git a/hurd/interface/fs/31.mdwn b/hurd/interface/fs/31.mdwn
new file mode 100644
index 00000000..32e7efda
--- /dev/null
+++ b/hurd/interface/fs/31.mdwn
@@ -0,0 +1,21 @@
+[[!meta copyright="Copyright © 1994, 1995, 1996, 1997, 1998, 1999, 2002, 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="file_reparent"]]
+
+ routine file_reparent (
+ file: file_t;
+ RPT
+ parent: mach_port_t;
+ out new_file: mach_port_send_t);
+
+Return a new file, `new_file`, with the same semantics as `file`, but with
+lookups of `..` (if `file` is a directory) redirected to `parent`.
diff --git a/hurd/interface/fsys.mdwn b/hurd/interface/fsys.mdwn
new file mode 100644
index 00000000..cea10d30
--- /dev/null
+++ b/hurd/interface/fsys.mdwn
@@ -0,0 +1,15 @@
+[[!meta copyright="Copyright © 1992, 1993, 1994, 1995, 1996, 1997, 2002, 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="fsys: Filesystem Control"]]
+
+[[!map pages="hurd/interface/fsys/* and !hurd/interface/fsys/*/*"
+show=title]]
diff --git a/hurd/interface/fsys/00.mdwn b/hurd/interface/fsys/00.mdwn
new file mode 100644
index 00000000..68e0479e
--- /dev/null
+++ b/hurd/interface/fsys/00.mdwn
@@ -0,0 +1,23 @@
+[[!meta copyright="Copyright © 1992, 1993, 1994, 1995, 1996, 1997, 2002, 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="fsys_startup"]]
+
+ routine fsys_startup (
+ bootstrap: mach_port_t;
+ RPT
+ openflags: int;
+ control_port: mach_port_send_t;
+ out realnode: mach_port_send_t);
+
+Sent by filesystem on its bootstrap port upon startup. `realnode` is the node
+this filesystem is the translator for, opened with flags `flags` (`O_NOTRANS`
+is assumed even if not provided).
diff --git a/hurd/interface/fsys/01.mdwn b/hurd/interface/fsys/01.mdwn
new file mode 100644
index 00000000..9cb95de5
--- /dev/null
+++ b/hurd/interface/fsys/01.mdwn
@@ -0,0 +1,19 @@
+[[!meta copyright="Copyright © 1992, 1993, 1994, 1995, 1996, 1997, 2002, 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="fsys_goaway"]]
+
+ routine fsys_goaway (
+ fsys: fsys_t;
+ RPT
+ flags: int);
+
+Filesystem should go away. Bye.
diff --git a/hurd/interface/fsys/02.mdwn b/hurd/interface/fsys/02.mdwn
new file mode 100644
index 00000000..63b84c48
--- /dev/null
+++ b/hurd/interface/fsys/02.mdwn
@@ -0,0 +1,33 @@
+[[!meta copyright="Copyright © 1992, 1993, 1994, 1995, 1996, 1997, 2002, 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="fsys_getroot"]]
+
+ routine fsys_getroot(
+ fsys: fsys_t;
+ RPT
+ #ifdef FSYS_GETROOT_UREPLY
+ ureplyport ureply: mig_reply_port_t;
+ #endif
+ dotdot_node: mach_port_send_t;
+ gen_uids: idarray_t;
+ gen_gids: idarray_t;
+ flags: int;
+ out do_retry: retry_type;
+ out retry_name: string_t;
+ out file: mach_port_send_t);
+
+Return a file to the root of the filesystem. `flags` are as for
+[[`dir_lookup`|dir_lookup]] (but `O_CREAT` and `O_EXCL` are not meaningful).
+`do_retry`, `retry_name`, and `result` are as for [[`dir_lookup`|dir_lookup]].
+The port should be authenticated with `gen_uids` and `gen_gids` (except, of
+course, for `FS_RETRY_REAUTH` and `FS_RETRY_MAGICAL). `dotdot_node` is an
+unauthenticated port for the directory in which this root is located.
diff --git a/hurd/interface/fsys/03.mdwn b/hurd/interface/fsys/03.mdwn
new file mode 100644
index 00000000..b0c033c2
--- /dev/null
+++ b/hurd/interface/fsys/03.mdwn
@@ -0,0 +1,22 @@
+[[!meta copyright="Copyright © 1992, 1993, 1994, 1995, 1996, 1997, 2002, 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="fsys_getfile"]]
+
+ routine fsys_getfile (
+ fsys: fsys_t;
+ RPT
+ gen_uids: idarray_t;
+ gen_gids: idarray_t;
+ filehandle: data_t;
+ out file: mach_port_send_t);
+
+Get a file given a file handle (see [[`file_getfh`|file_getfh]]).
diff --git a/hurd/interface/fsys/04.mdwn b/hurd/interface/fsys/04.mdwn
new file mode 100644
index 00000000..7b370d2b
--- /dev/null
+++ b/hurd/interface/fsys/04.mdwn
@@ -0,0 +1,58 @@
+[[!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="fsys_syncfs"]]
+
+ routine fsys_syncfs (
+ fsys: fsys_t;
+ RPT
+ wait: int;
+ do_children: int);
+
+Synchronize the entire filesystem.
+
+This function has a companion in [[`file_syncfs`|file_syncfs]], which is
+invoked on an arbitrary node instead of the server's control port. Both of
+them are usually implemented in equivalent ways.
+
+# Implementation Examples
+
+Servers that either don't keep any unsynchronized state (or don't have a
+backing store at all) can simply `return 0`. Examples: [[translator/symlink]],
+[[translator/nfs]].
+
+## [[libtrivfs]]
+
+Invoke [[`file_sync`|file_sync]] on the underlying node. Rationale: the
+underlying node represents this filesystem's backend, and once this node is
+synchronized, the whole [[libtrivfs]]-based filesystem is to be considered
+synchronized.
+
+### [[storeio]] / [[streamio]]
+
+Instead of to the underlying node, pass the call through to the backend
+(device).
+
+## [[libnetfs]]
+
+Invoke `netfs_attempt_syncfs`.
+
+## [[libdiskfs]]
+
+Invoke [[`fsys_syncfs`|fsys_syncfs]] on all active children, and invoke
+`diskfs_sync_everything` and `diskfs_set_hypermetadata`.
+
+# Usage Examples
+
+## [[libdiskfs]]
+
+In the implementations of both [[`file_syncfs`|file_syncfs]] and
+[[`fsys_syncfs`|fsys_syncfs]], [[`fsys_syncfs`|fsys_syncfs]] is invoked on all
+active children.
diff --git a/hurd/interface/fsys/05.mdwn b/hurd/interface/fsys/05.mdwn
new file mode 100644
index 00000000..5caf6b17
--- /dev/null
+++ b/hurd/interface/fsys/05.mdwn
@@ -0,0 +1,20 @@
+[[!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="fsys_set_options"]]
+
+ routine fsys_set_options (
+ fsys: fsys_t;
+ RPT
+ options: data_t;
+ do_children: int);
+
+Pass a server-specific options string. This usually includes flags similar to
+command line options, e.g., `--readonly`, or `--sync=30`.
diff --git a/hurd/interface/fsys/06.mdwn b/hurd/interface/fsys/06.mdwn
new file mode 100644
index 00000000..c8ccbed8
--- /dev/null
+++ b/hurd/interface/fsys/06.mdwn
@@ -0,0 +1,20 @@
+[[!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="fsys_getpriv"]]
+
+ routine fsys_getpriv (
+ fsys: fsys_t;
+ RPT
+ out host_priv: mach_port_send_t;
+ out device_master: mach_port_send_t;
+ out fstask: mach_port_send_t);
+
+This is only implemented by bootstrap filesystems.
diff --git a/hurd/interface/fsys/07.mdwn b/hurd/interface/fsys/07.mdwn
new file mode 100644
index 00000000..4700416d
--- /dev/null
+++ b/hurd/interface/fsys/07.mdwn
@@ -0,0 +1,19 @@
+[[!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="fsys_init"]]
+
+ routine fsys_init (
+ fsys: fsys_t;
+ sreplyport reply_port: sreply_port_t;
+ proc_server: mach_port_send_t;
+ auth_handle: auth_t);
+
+This is only implemented by bootstrap filesystems.
diff --git a/hurd/interface/fsys/08.mdwn b/hurd/interface/fsys/08.mdwn
new file mode 100644
index 00000000..42ac277d
--- /dev/null
+++ b/hurd/interface/fsys/08.mdwn
@@ -0,0 +1,23 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta title="fsys_forward"]]
+
+ routine fsys_forward (
+ server: mach_port_t;
+ RPT
+ requestor: mach_port_send_t;
+ argv: data_t);
+
+Ask `server` to provide [[`fsys`|fsys]] translation service for us.
+`requestor` is the bootstrap port supplied to the original translator, and
+`argv` are the command line arguments. If the recipient accepts the request,
+he (or some delegate) should send [[`fsys_startup`|fsys_startup]] to
+`requestor` to start the filesystem up.
diff --git a/hurd/interface/fsys/09.mdwn b/hurd/interface/fsys/09.mdwn
new file mode 100644
index 00000000..fa5c4117
--- /dev/null
+++ b/hurd/interface/fsys/09.mdwn
@@ -0,0 +1,19 @@
+[[!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="fsys_get_options"]]
+
+ routine fsys_get_options (
+ server: fsys_t;
+ RPT
+ out options: data_t, dealloc);
+
+Return the options describing the operation of the receiving filesystem
+(sutiable for [[`fsys_set_options`|fsys_set_options]]).
diff --git a/hurd/interface/fsys_forward.mdwn b/hurd/interface/fsys_forward.mdwn
new file mode 100644
index 00000000..1ab16003
--- /dev/null
+++ b/hurd/interface/fsys_forward.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta redir=fsys/08]]
diff --git a/hurd/interface/fsys_get_options.mdwn b/hurd/interface/fsys_get_options.mdwn
new file mode 100644
index 00000000..5a48d24d
--- /dev/null
+++ b/hurd/interface/fsys_get_options.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta redir=fsys/09]]
diff --git a/hurd/interface/fsys_getfile.mdwn b/hurd/interface/fsys_getfile.mdwn
new file mode 100644
index 00000000..d292f265
--- /dev/null
+++ b/hurd/interface/fsys_getfile.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta redir=fsys/03]]
diff --git a/hurd/interface/fsys_getpriv.mdwn b/hurd/interface/fsys_getpriv.mdwn
new file mode 100644
index 00000000..6c4332ba
--- /dev/null
+++ b/hurd/interface/fsys_getpriv.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta redir=fsys/06]]
diff --git a/hurd/interface/fsys_getroot.mdwn b/hurd/interface/fsys_getroot.mdwn
new file mode 100644
index 00000000..ff03c482
--- /dev/null
+++ b/hurd/interface/fsys_getroot.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta redir=fsys/02]]
diff --git a/hurd/interface/fsys_goaway.mdwn b/hurd/interface/fsys_goaway.mdwn
new file mode 100644
index 00000000..bf431a08
--- /dev/null
+++ b/hurd/interface/fsys_goaway.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta redir=fsys/01]]
diff --git a/hurd/interface/fsys_init.mdwn b/hurd/interface/fsys_init.mdwn
new file mode 100644
index 00000000..2be8dfb9
--- /dev/null
+++ b/hurd/interface/fsys_init.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta redir=fsys/07]]
diff --git a/hurd/interface/fsys_set_options.mdwn b/hurd/interface/fsys_set_options.mdwn
new file mode 100644
index 00000000..7f977c20
--- /dev/null
+++ b/hurd/interface/fsys_set_options.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta redir=fsys/05]]
diff --git a/hurd/interface/fsys_startup.mdwn b/hurd/interface/fsys_startup.mdwn
new file mode 100644
index 00000000..21cbdee3
--- /dev/null
+++ b/hurd/interface/fsys_startup.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta redir=fsys/00]]
diff --git a/hurd/interface/fsys_syncfs.mdwn b/hurd/interface/fsys_syncfs.mdwn
new file mode 100644
index 00000000..88955524
--- /dev/null
+++ b/hurd/interface/fsys_syncfs.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta redir=fsys/04]]
diff --git a/hurd/io_path.mdwn b/hurd/io_path.mdwn
index 96e6aa58..78e13efd 100644
--- a/hurd/io_path.mdwn
+++ b/hurd/io_path.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
# read
@@ -35,3 +35,6 @@ is included in the section entitled
`hurd/libstore/rdwr.c:store_read`, which eventually calls `device_read`,
which is an [[RPC]], i.e., that actually gets into the kernel calling
`gnumach/linux/dev/glue/block.c:device_read`.
+
+ * ext2fs eventually finishes the data_request() function, the kernel installs
+ the page into the process that got a fault.
diff --git a/hurd/libchannel.mdwn b/hurd/libchannel.mdwn
index d3dff162..91c7810f 100644
--- a/hurd/libchannel.mdwn
+++ b/hurd/libchannel.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
# libchannel
diff --git a/hurd/libfshelp.mdwn b/hurd/libfshelp.mdwn
new file mode 100644
index 00000000..4eda91b6
--- /dev/null
+++ b/hurd/libfshelp.mdwn
@@ -0,0 +1,29 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+TODO.
+
+
+# Open Issues
+
+[[!tag open_issue_hurd]]
+
+ * IRC, unknown channel, unknown date
+
+ <flavioc> antrik, i had some problems with CLISP. it goes into an infinite loop when there's no stdin or stdout (fshelp closes them when a translator starts). At first I tried to patch it but CLISP has very intricate dependencies on them, so I just created a wraper program (run-lisp-trans) that opens /dev/null as stdin and stdout and then exec's clisp
+ <marcus> flavioc, antrik: I would suggest to modify libfshelp to start translators with stdin/stdout mapped to /dev/null.
+ <marcus> or is there a good reason not to?
+ <flavioc> marcus, the problem is in clisp :-), it should not expect that stdin/stdout are always open
+ <marcus> flavioc: I agree, but there is really no point in making it hard. many programs will fail if stdin, stdout or stderr are not occupied. historically, they expect them to be there, so IMO libfshelp should be changed
+ <marcus> flavioc: it's a simple solution, works everywhere and shouldn't do any harm :)
+ <flavioc> marcus, I see. should I propose that on the mailing list? :-)
+ <marcus> flavioc: it might be simpler to just crack the svn server and sneak it in :)
+ <marcus> if you submit a patch I will look at it and check it in if it is ok
+ <marcus> and see if Roland is still watching ... :D
diff --git a/hurd/libhello_example.mdwn b/hurd/libhello_example.mdwn
index 9b4640e7..2c5490e2 100644
--- a/hurd/libhello_example.mdwn
+++ b/hurd/libhello_example.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
## Howto write a Hurd library
diff --git a/hurd/libihash.mdwn b/hurd/libihash.mdwn
index 4af92f71..58b6368c 100644
--- a/hurd/libihash.mdwn
+++ b/hurd/libihash.mdwn
@@ -1,6 +1,6 @@
-[[meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2009, 2010 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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
diff --git a/hurd/libnetfs.mdwn b/hurd/libnetfs.mdwn
index 404ae3f0..8625f8bc 100644
--- a/hurd/libnetfs.mdwn
+++ b/hurd/libnetfs.mdwn
@@ -1,12 +1,13 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008, 2010 Free Software Foundation,
+Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
#libnetfs
@@ -33,7 +34,7 @@ which is, generally speaking, seriously different from *libnetfs*.
All in all, *libnetfs* is the library you would choose when you want
to write a translator which will show a file (or a directory) in a
modified way (for example, if you'd like to show only *.sh* files or
-make an archive look unpacked). As different from *libtrivfs*, using
+make an archive look unpacked). As different from *[[libtrivfs]]*, using
*libnetfs*, you can show to your clients not just a single file, but a
whole directory tree.
@@ -148,7 +149,7 @@ result. Therefore, it is not quite right to perceive *libnetfs* nodes
as filesystem nodes. Instead, the focus of attention should stay upon
light nodes.
-##How It Wors: A More Verbose Description
+##How It Works: A More Verbose Description
At first let us see how the a *libnetfs*-based translator responds to
lookup requests. At the beginning the *netfs_attempt_lookup* callback
@@ -229,7 +230,7 @@ performance or to solve specific problems.
##Synchronization is Crucial
A *libnetfs* programmer shall always keep in mind that, as different
-from *libtrivfs*-based translators, *libnetfs*-based translators are
+from *[[libtrivfs]]*-based translators, *libnetfs*-based translators are
always multithreaded. To guard data against damage each node
incorporates a lock. Moreover, each light node usually contains a
lock, too. This happens because *libnetfs* nodes and light nodes are
diff --git a/hurd/libpager.mdwn b/hurd/libpager.mdwn
index 91beddfc..c9a1c0b6 100644
--- a/hurd/libpager.mdwn
+++ b/hurd/libpager.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
Mach's [[microkernel/mach/external_pager_mechanism]].
diff --git a/hurd/libports.mdwn b/hurd/libports.mdwn
new file mode 100644
index 00000000..f9aa518f
--- /dev/null
+++ b/hurd/libports.mdwn
@@ -0,0 +1,16 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+*libports* is a convenience library for easier handling of [[Mach
+ports|microkernel/mach/port]]. It is documented in the [[Reference_Manual]].
+
+*libports* is not (at least, not for now) a generalization / abstraction of
+Mach ports to the functionality the Hurd needs, that is, it is not meant to
+provide an interface independently of the underlying [[microkernel]].
diff --git a/hurd/libstore.mdwn b/hurd/libstore.mdwn
index 6b81691b..8eac39fe 100644
--- a/hurd/libstore.mdwn
+++ b/hurd/libstore.mdwn
@@ -1,37 +1,36 @@
-[[meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation,
+[[!meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation,
Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+`libstore` is used to provide a generic interface to access data (read/write)
+on backing stores.
+
+It more than just a thin layer between [[GNU Mach|microkernel/mach/gnumach]]
+devices (`hd0` for example) and the device node below `/dev/`...
-`libstore` is more than just a thin layer between
-[[GNU_Mach|microkernel/mach/gnumach]] devices (`hd0` for example) and the
-device node below `/dev`...
# Available Stores
-* `device`: raw device access, used for access to `hd0`, etc.
-* `file`: use a common file as some kind of block device.
-* `zero`: kind of an empty block device.
-* `task`: mach task store backend. TODO: what's this?
-* `ileave`: interleave store (striping).
-* `concat`: concatenate stuff.
-* `remap`: remap stuff.
-* `query`: TODO: what's this?
-* `copy`: TODO: what's this good for?
-* `gunzip`: `gunzip` data on the fly.
-* `bunzip2`: `bunzip2` data on the fly.
-* `nbd`: network block device (Linux-compatible).
-* `url`: typed store with URL syntax.
-* `typed`: typed store (chainable stores thingy).
+[[!map pages="*_store and !*/discussion"
+show=title]]
At <http://www.kataplop.net/pub/info/projets> you can find some effort to make
some crypto store.
At <http://www.trek.eu.org/devel/hurd/crypt-trans-0.0.3.tgz>, another package
can be found.
+
+
+# Examples
+
+[[!inline
+pages="hurd/libstore/examples/* and !*/discussion"
+show=0
+feeds=no]]
diff --git a/hurd/libstore/bunzip2_store.mdwn b/hurd/libstore/bunzip2_store.mdwn
new file mode 100644
index 00000000..bd5fc914
--- /dev/null
+++ b/hurd/libstore/bunzip2_store.mdwn
@@ -0,0 +1,12 @@
+[[!meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation,
+Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+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="bunzip2 store: bunzip2 data on the fly"]]
diff --git a/hurd/libstore/concat_store.mdwn b/hurd/libstore/concat_store.mdwn
new file mode 100644
index 00000000..1d3a895a
--- /dev/null
+++ b/hurd/libstore/concat_store.mdwn
@@ -0,0 +1,12 @@
+[[!meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation,
+Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+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="concat store: concatenate"]]
diff --git a/hurd/libstore/copy_store.mdwn b/hurd/libstore/copy_store.mdwn
new file mode 100644
index 00000000..5df5d220
--- /dev/null
+++ b/hurd/libstore/copy_store.mdwn
@@ -0,0 +1,25 @@
+[[!meta copyright="Copyright © 2000, 2007, 2008, 2009 Free Software Foundation,
+Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta title="copy store: copy-on-write; discard changes on termination"]]
+
+A *copy* store is meaningful only with respect to a child store. What a *copy*
+store does is to read the child store's entire contents into memory at startup
+time and then use that buffer as the contents of the store thereafter. (The
+code for this is in `libstore/copy.c`.)
+
+Because of how the interfaces are specified, reading the entire contents of a
+[[*zero* store|zero store]] in fact means just `vm_allocate`ing fresh memory.
+So, a *copy* store based on a [[*zero* store|zero store]] is just what you'd
+get from `vm_allocate`ing some memory and passing it into
+`store_buffer_create`.
+
+See a [[ramdisk example|examples/ramdisk]].
diff --git a/hurd/libstore/device_store.mdwn b/hurd/libstore/device_store.mdwn
new file mode 100644
index 00000000..4b97f8cc
--- /dev/null
+++ b/hurd/libstore/device_store.mdwn
@@ -0,0 +1,12 @@
+[[!meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation,
+Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+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="device store: Mach device access"]]
diff --git a/hurd/libstore/examples/ramdisk.mdwn b/hurd/libstore/examples/ramdisk.mdwn
new file mode 100644
index 00000000..33d33601
--- /dev/null
+++ b/hurd/libstore/examples/ramdisk.mdwn
@@ -0,0 +1,32 @@
+[[!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]]."]]"""]]
+
+ $ settrans --create --active ramdisk0 /hurd/storeio -T copy zero:32M
+ $ mkfs.ext2 -F -b 4096 ramdisk0
+ [...]
+ $ settrans --active --orphan ramdisk0 /hurd/ext2fs.static 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
+
+This uses [[settrans]] and [[storeio]] to create a ramdisk of 32 MiB by routing
+a thusly sized [[zero store]] through the [[copy store]], connecting
+that to the `ramdisk0` node, create a `ext2` filesystem on it, and replace the
+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/file_store.mdwn b/hurd/libstore/file_store.mdwn
new file mode 100644
index 00000000..5e9f6822
--- /dev/null
+++ b/hurd/libstore/file_store.mdwn
@@ -0,0 +1,12 @@
+[[!meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation,
+Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+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="file store: use a file as a kind of block device"]]
diff --git a/hurd/libstore/gunzip_store.mdwn b/hurd/libstore/gunzip_store.mdwn
new file mode 100644
index 00000000..25fca4bf
--- /dev/null
+++ b/hurd/libstore/gunzip_store.mdwn
@@ -0,0 +1,12 @@
+[[!meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation,
+Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+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="gunzip store: gunzip data on the fly"]]
diff --git a/hurd/libstore/ileave_store.mdwn b/hurd/libstore/ileave_store.mdwn
new file mode 100644
index 00000000..29b51b72
--- /dev/null
+++ b/hurd/libstore/ileave_store.mdwn
@@ -0,0 +1,12 @@
+[[!meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation,
+Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+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="ileave store: interleave store (striping)"]]
diff --git a/hurd/libstore/nbd_store.mdwn b/hurd/libstore/nbd_store.mdwn
new file mode 100644
index 00000000..5874b162
--- /dev/null
+++ b/hurd/libstore/nbd_store.mdwn
@@ -0,0 +1,12 @@
+[[!meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation,
+Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+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="nbd store: Linux-compatible network block device"]]
diff --git a/hurd/libstore/part.mdwn b/hurd/libstore/part.mdwn
new file mode 100644
index 00000000..5d727ad8
--- /dev/null
+++ b/hurd/libstore/part.mdwn
@@ -0,0 +1,26 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta title="part store"]]
+
+`part.c`
+
+Written by Neal in 2001, 2002.
+
+Useful if the microkernel / [[DDE]] / [[microkernel/mach/gnumach/ports/Xen]]
+doesn't export *partition devices*, but only *raw* devices.
+
+Neal:
+
+> The motivation was to be able to evict the partitioning logic from Mach.
+
+---
+
+TODO: How to use, etc.
diff --git a/hurd/libstore/query_store.mdwn b/hurd/libstore/query_store.mdwn
new file mode 100644
index 00000000..9ebf8e47
--- /dev/null
+++ b/hurd/libstore/query_store.mdwn
@@ -0,0 +1,12 @@
+[[!meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation,
+Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+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="query store"]]
diff --git a/hurd/libstore/remap_store.mdwn b/hurd/libstore/remap_store.mdwn
new file mode 100644
index 00000000..158ffe95
--- /dev/null
+++ b/hurd/libstore/remap_store.mdwn
@@ -0,0 +1,12 @@
+[[!meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation,
+Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+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="remap store"]]
diff --git a/hurd/libstore/task_store.mdwn b/hurd/libstore/task_store.mdwn
new file mode 100644
index 00000000..e4426639
--- /dev/null
+++ b/hurd/libstore/task_store.mdwn
@@ -0,0 +1,12 @@
+[[!meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation,
+Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+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="task store: Mach task store backend"]]
diff --git a/hurd/libstore/typed_store.mdwn b/hurd/libstore/typed_store.mdwn
new file mode 100644
index 00000000..e71ff67f
--- /dev/null
+++ b/hurd/libstore/typed_store.mdwn
@@ -0,0 +1,12 @@
+[[!meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation,
+Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+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="typed store: chainable stores"]]
diff --git a/hurd/libstore/url_store.mdwn b/hurd/libstore/url_store.mdwn
new file mode 100644
index 00000000..17a24e97
--- /dev/null
+++ b/hurd/libstore/url_store.mdwn
@@ -0,0 +1,12 @@
+[[!meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation,
+Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+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="url store: typed store with URL syntax"]]
diff --git a/hurd/libstore/zero_store.mdwn b/hurd/libstore/zero_store.mdwn
new file mode 100644
index 00000000..4c53ab56
--- /dev/null
+++ b/hurd/libstore/zero_store.mdwn
@@ -0,0 +1,19 @@
+[[!meta copyright="Copyright © 2000, 2007, 2008, 2009 Free Software Foundation,
+Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta title="zero store: empty block device"]]
+
+A *zero* store is what `/dev/zero` is (always reads zeros), the setting on
+`/dev/zero` gives no name (i.e. size) and the default size is the maximum
+possible. The only meaning of the size of a *zero* is what `st_size` will
+report and what offsets it will let you try to read or write from--there is
+never any data associated with a *zero* store. (The code for this is in
+`libstore/zero.c`.)
diff --git a/hurd/libtrivfs.mdwn b/hurd/libtrivfs.mdwn
new file mode 100644
index 00000000..b15aeabe
--- /dev/null
+++ b/hurd/libtrivfs.mdwn
@@ -0,0 +1,31 @@
+[[!meta copyright="Copyright © 1994, 1996, 1998, 1999, 2000, 2001, 2002, 2003,
+2004, 2005, 2007, 2008, 2009, 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+Certain [[translator]]s do not need to be very complex, because they represent
+a single file rather than an entire directory hierarchy. The *trivfs library*,
+which is declared in `<hurd/trivfs.h>`, does most of the work of implementing
+this kind of translator. This library requires the [[iohelp|libiohelp]] and
+[[ports|libports]] libraries.
+
+Using `libtrivfs` is not the only way to implement such a single-file
+translator, but is a convenient abstraction: the library hides a lot of
+low-level stuff and you just have to provide a number of call-back functions
+and symbols in order to get a functioning (for file I/O, etc.) node in the file
+system.
+
+
+# Further Reading
+
+ * In the *[[The_GNU_Hurd_Reference_Manual|reference_manual]]*:
+ <http://www.gnu.org/software/hurd/doc/hurd_6.html#SEC48>.
+
+ * In the *[[Hurd_Hacking_Guide]]*:
+ <http://www.gnu.org/software/hurd/hacking-guide/hhg.html#An-Example-using-trivfs>.
diff --git a/hurd/logo.mdwn b/hurd/logo.mdwn
index fcfe22dd..467e6ba8 100644
--- a/hurd/logo.mdwn
+++ b/hurd/logo.mdwn
@@ -1,25 +1,11 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
-The famous *Hurd Boxes* logo is available at
-<http://www.gnu.org/graphics/hurd_mf.html>.
-
-
-On some lonely Wednesday, Colin Leitner and [[Thomas_Schwinge|tschwinge]]
-converted these four boxes from the [original METAFONT
-sources](http://www.gnu.org/graphics/hurd.mf) to
-[[hand-written_SVG_code|boxes-redrawn.svg]].
-
-[[img boxes-redrawn.png]]
-
-
-This symbol is also being used as a favicon for this web site.
-
-[[img /favicon.ico]]
+[[!meta redir=/logo]]
diff --git a/hurd/neighborhurd.mdwn b/hurd/neighborhurd.mdwn
index 3298e07a..5a66f992 100644
--- a/hurd/neighborhurd.mdwn
+++ b/hurd/neighborhurd.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
It is possible to run multiple instances of the Hurd
in parallel, on a single instance of Mach. Other than
diff --git a/hurd/networking.mdwn b/hurd/networking.mdwn
index 6ed031ed..ff16eb25 100644
--- a/hurd/networking.mdwn
+++ b/hurd/networking.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2000, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2000, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[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
diff --git a/hurd/ng/discussion.mdwn b/hurd/ng/discussion.mdwn
new file mode 100644
index 00000000..d4632bd5
--- /dev/null
+++ b/hurd/ng/discussion.mdwn
@@ -0,0 +1,13 @@
+[[!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]]."]]"""]]
+
+To go beyond research project Hurd have to support thousands of various programs running on GNU/Linux nowadays.
+It looks like ExoKernel approach http://pdos.csail.mit.edu/exo.html might be useful here.
+Does somebody tried to look into something like Hurd exokernel + liblinux?
diff --git a/hurd/ng/issues_with_mach.mdwn b/hurd/ng/issues_with_mach.mdwn
index 4737f441..9fac498f 100644
--- a/hurd/ng/issues_with_mach.mdwn
+++ b/hurd/ng/issues_with_mach.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
- * [[microkernel/mach/gnumach/open_issues/Resource_management_problems]]
+ * [[open issues/Resource Management Problems]]
* [[Critique]]
diff --git a/hurd/ng/limitations_of_the_original_hurd_design.mdwn b/hurd/ng/limitations_of_the_original_hurd_design.mdwn
index 25f03372..96d8912b 100644
--- a/hurd/ng/limitations_of_the_original_hurd_design.mdwn
+++ b/hurd/ng/limitations_of_the_original_hurd_design.mdwn
@@ -1,11 +1,11 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
* [[Critique]]
diff --git a/hurd/ng/position_paper.mdwn b/hurd/ng/position_paper.mdwn
index e0f4bf60..abc781da 100644
--- a/hurd/ng/position_paper.mdwn
+++ b/hurd/ng/position_paper.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
Neal Walfield and Marcus Brinkmann wrote a paper titled [*Improving Usability
via Access Decomposition and Policy
diff --git a/hurd/open_issues.mdwn b/hurd/open_issues.mdwn
deleted file mode 100644
index c4bcce09..00000000
--- a/hurd/open_issues.mdwn
+++ /dev/null
@@ -1,20 +0,0 @@
-[[meta copyright="Copyright © 2008 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="Open Issues"]]
-
-This is a dumping ground for open issues for the GNU Hurd.
-
-[[inline
-pages="hurd/open_issues/* and !*/discussion"
-show=0
-feeds=no
-actions=yes
-rootpage="hurd/open_issues" postformtext="Add a new item titled:"]]
diff --git a/hurd/porting.mdwn b/hurd/porting.mdwn
new file mode 100644
index 00000000..c94572a4
--- /dev/null
+++ b/hurd/porting.mdwn
@@ -0,0 +1,14 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+ * [[Guidelines]]
+ * [[System_API_Limitations]]
+
+ * Debian: [[running/debian/Porting]]
diff --git a/unsorted/PortingIssues.mdwn b/hurd/porting/guidelines.mdwn
index ff63bda3..8dd27a52 100644
--- a/unsorted/PortingIssues.mdwn
+++ b/hurd/porting/guidelines.mdwn
@@ -1,26 +1,27 @@
-## <a name="Table_of_Contents"> Table of Contents </a>
+[[!meta copyright="Copyright © 2002, 2003, 2005, 2007, 2008, 2009 Free Software
+Foundation, Inc."]]
-%TOC%
+[[!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]]."]]"""]]
-## <a name="Overview"> Overview </a>
+This is a compilation of common porting problems and their solutions.
-This is a recompilation of common porting problems and their solutions. Information is gathered from the following sources:
-* [Debian GNU/Hurd port guidelines](http://www.debian.org/ports/hurd/hurd-devel-debian)
+Additionally to this page, also see the section *General Porting Issues* of
+<http://www.debian.org/ports/hurd/hurd-devel-debian><!-- TODO: merge these two
+pages. -->, as well as further Debian-specific [[running/debian/porting]]
+information.
-* [James Morrison's GNU/Hurd pages](http://hurd.dyndns.org/)
+There is a separate page about [[System_API_Limitations]].
-as well as other misc. sources.
+You may ask on the [[mailing lists/bug-hurd]] mailing list for details or
+questions about fixing bugs.
-First of all, see [[BtsFiling]] if you need instructions on manipulating [Debian](http://www.debian.org/) source packages and submitting patches to their [Bug Tracking System](http://bugs.debian.org/).
-
-## <a name="System_API_limitations"> </a> System API limitations
-
-Sometimes building or running a program will fail due to bugs in the system API implementation (in Glibc and the Hurd). Make sure you check this list and know them before porting, otherwise you'll end up debugging something just to find out its an already known bug.
-
-We maintain a separate Wiki page for information on these bugs, see [[Distrib/SystemAPILimits]]
-
-If you think you can fix any of them and send a patch to the debian BTS, that'd be much appreciated. You may ask in <bug-hurd@gnuNOSPAM.org> for details or questions on the bug.
## <a name="Undefined_bits_confname_h_tt_mac"> Undefined `bits/confname.h` macros (`PIPE_BUF`, ...) </a>
@@ -51,15 +52,15 @@ If you get Bad File Descriptor error when trying to read from a file (or accessi
## <a name="PATH_MAX_tt_MAX_PATH_tt_MAXPATHL"> `PATH_MAX` / `MAX_PATH` / `MAXPATHLEN` </a>
-Every unconditionalized use of `PATH_MAX`, `MAX_PATH` or `MAXPATHLEN` is a POSIX incompatibility. If there is no upper limit on the length of a path (as its the case for GNU), this symbol is not defined in any header file. Instead, you need to either use a different implementation that does not rely on the length of a string or use `sysconf()` to query the length at runtime. If `sysconf()` returns -1, you have to use `realloc()` to allocate the needed memory dynamically.
+Every unconditionalized use of `PATH_MAX`, `MAX_PATH` or `MAXPATHLEN` is a POSIX incompatibility. If there is no upper limit on the length of a path (as its the case for GNU), this symbol is not defined in any header file. Instead, you need to either use a different implementation that does not rely on the length of a string or use `sysconf()` to query the length at runtime. If `sysconf()` returns -1, you have to use `realloc()` to allocate the needed memory dynamically. Usually it is thus simpler to just use dynamic allocation. Sometimes the amount is actually known. Else, a geometrically growing loop can be used: for instance, see [Alioth patch](http://alioth.debian.org/tracker/download.php/30628/410472/303735/1575/cpulimit-path-max-fix.patch) or [Pulseaudio patch](http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=5;filename=patch-pulse;att=1;bug=522100). Note that in some cases there are GNU extensions that just work fine: when the `__GLIBC__` macro is defined, `getcwd()` calls can be just replaced by `get_current_dir_name()` calls.
## <a name="ARG_MAX"> `ARG_MAX` </a>
-Same as `PATH_MAX`. There is no limit on the number of arguments.
+Same rationale as `PATH_MAX`. There is no limit on the number of arguments.
## <a name="IOV_MAX"> `IOV_MAX` </a>
-Same as `PATH_MAX`. There is no limit on the number of iovec items.
+Same rationale as `PATH_MAX`. There is no limit on the number of iovec items.
## <a name="MAXHOSTNAMELEN_tt_"> `MAXHOSTNAMELEN` </a>
@@ -148,10 +149,6 @@ by
error_t err = error_t(EINTR);
-## <a name="Filenames_ending_in_a_slash_"> Filenames ending in a slash \`/' </a>
-
-Those are evil if they don't exist and you want to name a directory this way. For example, `mkdir foobar/` will not work on GNU. This is POSIX compatible. POSIX says that the path of a directory may have slashes appended to it. But the directory does not exist yet, so the path does not refer to a directory, and hence trailing slashes are not guaranteed to work. Just drop the slashes, and you're fine.
-
## <a name="Missing_termio_h_tt_"> Missing `termio.h` </a>
Change it to use `termios.h` (check for it properly with autoconf `HAVE_TERMIOS_H` or the `__GLIBC__` macro)
@@ -169,14 +166,15 @@ This comes from ioctls. Fixing this is easy if the structure members can be exp
`#define _IOT_termios /* Hurd ioctl type field. */ \
_IOT (_IOTS (tcflag_t), 4, _IOTS (cc_t), NCCS, _IOTS (speed_t), 2)`
-because `struct termios` holds 4 members of type `tcflag_ts`, then `NCCS`
-members of type `cc_tsi` and finaly 2 members of type `speed_ts`.
+The rationale behind is that on the Hurd ioctl numbers actually encode how the
+data should be transferred via RPC: here `struct termios` holds 4 members of
+type `tcflag_ts`, then `NCCS` members of type `cc_tsi` and finaly 2 members of
+type `speed_ts`, so the RPC mecanism will know how to transfer them.
-As you can see, this limits the number of kinds of members to 3, and in
-addition to that (see the bitfield described in `ioctls.h`), the third
-kind of member is limited to 3 members. However, since at the API
-compatibility layer you are generally allowed to reorder fields in
-structures, you can usually manage to fit into these limits.
+As you can see, this limits the number of contiguous kinds of members to 3, and
+in addition to that (see the bitfield described in `ioctls.h`), the third kind
+of member is limited to 3 members. This is a design limitation, there is no way
+to overcome it at the moment.
Note: if a field member is a pointer, then the ioctl can't be expressed
this way, and that makes sense, since the server you're talking to
@@ -231,40 +229,43 @@ Not implemented, will always fail. Use `sem_init()` instead if possible.
Not implemented, not POSIX. Try to disable the feature in the package.
-## <a name="broken_libc6_dependency"> broken libc6 dependency </a>
-
-Some packages use an erroneous dependency on `libc6-dev`. This is incorrect because `libc6` is specific to GNU/Linux. The corresponding package for GNU is `libc0.3-dev` but other OSes will have different ones. You can locate the problem in the `debian/control` file of the source tree. Typical solutions include detecting the OS using `dpkg-architecture` and hardcoding the soname, or better, use a logical OR. eg: `libc6-dev | libc0.3-dev | libc-dev`. The `libc-dev` is a virtual package that works for any soname but you have to put it only as the last option.
-
-----
-
-## <a name="ChangeLog"> ChangeLog </a>
-
--- [[Main/TWikiGuest]] - 13 Jan 2005
-
-Fix xgethostname example. - Neal
-
--- [[Main/RobertMillan]] - 22 Jul 2002
+## <a name="parport"> <linux/parport.h> <linux/ppdev.h> </a>
-Formatting and minor grammatical fixes.
+There is no programming interface for the parallel port on GNU/Hurd yet.
--- [[Main/JoachimNilsson]] - 09 Sep 2002
+## <a name="errno"> `errno` values </a>
-Added more examples and misc semantical fixes.
+When dealing with `errno`, you should always use the predefined error codes defined with the `E*` constants, instead of manually comparing/assigning/etc with their values.
--- [[Main/RobertMillan]] - 05 Oct 2002
+For example (C/C++):
-Added `xgethostname` example.
+ /* check whether it does not exist */
+ if (errno == 2)
+ ...
--- [[Main/RobertMillan]] - 15 Nov 2002
+or Python:
-Added broken libc6 dependency
+ # check whether it does not exist
+ try:
+ ...
+ except OSError, err:
+ err.errno == 2:
+ ...
--- [[Main/RobertMillan]] - 21 Nov 2002
+This is wrong, as [the actual values of the `E*` are unspecified (per POSIX)](http://www.opengroup.org/onlinepubs/009695399/functions/xsh_chap02_03.html#tag_02_03). You must always use the predefined constants for the possible errors.
-Text formatting.
+For example (C/C++):
--- Ognyan Kulev - 12 Mar 2003
+ /* check whether it does not exist */
+ if (errno == ENOENT)
+ ...
-Added `ioctl` entry.
+With Python, you can use the [`errno` module](http://docs.python.org/library/errno.html) for the various constants:
--- [[Main/RobertMillan]] - 19 Mar 2003
+ # check whether it does not exist
+ try:
+ ...
+ except OSError, err:
+ import errno
+ err.errno == errno.ENOENT:
+ ...
diff --git a/unsorted/SystemAPILimits.mdwn b/hurd/porting/system_api_limitations.mdwn
index 8930ef9c..06a6b382 100644
--- a/unsorted/SystemAPILimits.mdwn
+++ b/hurd/porting/system_api_limitations.mdwn
@@ -1,17 +1,22 @@
-## <a name="API_Limitations_of_the_GNU_syste"> </a> API Limitations of the GNU system
-
-----
-
-Sometimes building or running a program will fail due to bugs in the system API implementation (in Glibc and the Hurd). Make sure you check this list and know them before porting, otherwise you'll end up debugging something just to find out its an already known bug.
-
-Taken from the bug lists in debian BTS. If you find more of them (and it is clear in the bug log that it is a bug), please add them to the list below. See:
-
-* <http://bugs.debian.org/hurd> ([source](http://packages.qa.debian.org/h/hurd.html) and [binary](http://packages.debian.org/hurd) debs not synchronized)
-* <http://bugs.debian.org/hurd-dev> ([binary](http://packages.debian.org/hurd-dev))
-* <http://bugs.debian.org/libc0.3> ([source](http://packages.qa.debian.org/g/glibc.html) &amp; [binary](http://packages.debian.org/libc0.3) debs)
-* <http://bugs.debian.org/libc0.3-dev> ([binary](http://packages.debian.org/libc0.3-dev))
-
-----
+[[!meta copyright="Copyright © 2003, 2004, 2005, 2009 Free Software Foundation,
+Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+Sometimes building or running a program will fail due to bugs in the system API
+implementation (in [[glibc]] and the [[Hurd]]). Make sure you check this list
+and know them before porting, otherwise you'll end up debugging something just
+to find out its an already known bug.
+
+Taken from the bug lists in [[running/Debian]] BTS. If you find more of them
+(and it is clear in the bug log that it is a bug), please add them to the list
+below.
These are the known system API limits that have porting implications.
@@ -24,7 +29,3 @@ These are the known system API limits that have porting implications.
**_[\#187391](http://bugs.debian.org/187391): libc0.3-dev: `sockaddr_un.sun_path` can't be assigned a `const char *` when compiling with g++_**<br />**breaks:** fam, gail<br />**status:** maybe this should be in [[PortingIssues]] (see _long_ bug log)
**_[\#190367](http://bugs.debian.org/190367): libc0.3-dev: `fcntl` `F_GETLK` not implemented (`ENOSYS`)_**<br />**breaks:** gnome-session (and others) from running<br />**error:** misc lock-related errors
-
--- [[Main/RobertMillan]] - 01 May 2003
-
-Text formatting.<br /> -- [[Main/OgnyanKulev]] - 02 May 2003
diff --git a/hurd/reference_manual.mdwn b/hurd/reference_manual.mdwn
index 5b5bff2d..9337b784 100644
--- a/hurd/reference_manual.mdwn
+++ b/hurd/reference_manual.mdwn
@@ -1,13 +1,13 @@
-[[meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+[[!meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
*The GNU Hurd Reference Manual* documents the architecture, the usage and the
programming of the GNU Hurd. At the moment, the manual is quite incomplete.
diff --git a/hurd/running.mdwn b/hurd/running.mdwn
index 162bc9ea..f0058625 100644
--- a/hurd/running.mdwn
+++ b/hurd/running.mdwn
@@ -1,12 +1,15 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation,
+Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+There are several different ways to run a GNU/Hurd system:
* [[Distrib]] - Distributions based on the Hurd
* [[microkernel/mach/gnumach/ports/Xen]] - In Xen
@@ -15,4 +18,6 @@ is included in the section entitled
* [[vmware]] (**non-free!**)
* [[FlashHurd]] - From a flash stick
+* [[FAQ]]
+
* [[Public_hurd_boxen]]
diff --git a/hurd/running/arch_hurd.mdwn b/hurd/running/arch_hurd.mdwn
new file mode 100644
index 00000000..6635f415
--- /dev/null
+++ b/hurd/running/arch_hurd.mdwn
@@ -0,0 +1,13 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta title="Arch Hurd"]]
+
+<http://www.archhurd.org/>
diff --git a/hurd/running/debian.mdwn b/hurd/running/debian.mdwn
index f80c1cfc..97d35bd7 100644
--- a/hurd/running/debian.mdwn
+++ b/hurd/running/debian.mdwn
@@ -1,16 +1,28 @@
-[[meta title="Debian GNU/Hurd"]]
+[[!meta title="Debian GNU/Hurd"]]
-- Debian [[FAQ]] -- Frequently Asked Questions
-- [[After_install]] -- Do this to get networking, new console and X
-- [Presentation](http://people.debian.org/~mbanck/talks/hurd_lt2004/html/)
- *Debian GNU/Hurd* by [[MichaelBanck]], LinuxTag 2004 Karlsruhe
-- [[Status]]
-- [[Porting]] -- Helping with porting packages
- * [[Patch_submission]] -- How to submit patches for build failures
+### Debian Resources
- Official page about the Debian GNU/Hurd port: [Debian GNU/Hurd](http://www.debian.org/ports/hurd/)
+
+- Debian [[FAQ]] -- Frequently Asked Questions
+
+### Installing
+
- [Installation Instructions](http://www.debian.org/ports/hurd/hurd-install)
- [Upgrading K11 or K14 based systems to
unstable](http://lists.debian.org/debian-hurd/2007/09/msg00007.html)
-- [Archive Qualification](http://wiki.debian.org/ArchiveQualification/hurd-i386)
+- [[After_install]] -- Do this to get networking, new console and X
+
+### Contributing
+
+- [[Porting]] -- Helping with porting packages
+ * [[Patch_submission]] -- How to submit patches for build failures
- [[Creating_image_tarball]]
+
+### Additional Information
+
+- [Presentation](http://people.debian.org/~mbanck/talks/hurd_lt2004/html/)
+ *Debian GNU/Hurd* by [[MichaelBanck]], LinuxTag 2004 Karlsruhe
+- [[Status]]
+- [Archive Qualification](http://wiki.debian.org/ArchiveQualification/hurd-i386)
+
diff --git a/hurd/running/debian/BtsFiling.mdwn b/hurd/running/debian/BtsFiling.mdwn
deleted file mode 100644
index 90f451a8..00000000
--- a/hurd/running/debian/BtsFiling.mdwn
+++ /dev/null
@@ -1,52 +0,0 @@
-When you encounter any GNU/Hurd related bugs in a Debian package you can fix, please use the Debian BTS (Bug Tracking System) to report them.
-
-Managing Debian packages and using the BTS is quite simple. If you're new to Debian, here's a short guide:
-
-* first of all, check [http://bugs.debian.org/&lt;package&gt;](http://bugs.debian.org) to ensure the problem is not in the BTS already. This is possible for packages and bug numbers. [[TWiki/InterWikis]] is a shorthand way of linking to bugs and packages from this site. i.e. [[DebianBug]]:hurd [[DebianPackage]]:oskit
-* you can fetch package sources with:
-
- apt-get source <package>
-
-note: this should unpack already
-
-* and unpack with:
-
- dpkg-source -x <package>x-y_z.dsc
-
-* then get all dependencies:
-
- apt-get -y build-dep <package>
-
-note: if some dependencies are missing, it most probably means you have to port them first. follow this instructions recursively until done
-
- :)
-
-* Debian packages have a makefile in debian/rules, with (at least) the following targets: <dl>
- <dt> build</dt>
- <dd> Yup, to build </dd>
- <dt> binary</dt>
- <dd> Generates deb files in <code>../</code></dd>
- <dt> clean</dt>
- <dd> Full clean </dd>
-</dl>
-
-* when you have a patch, send it to the BTS using the reportbug utility (or manually as explained in <http://bugs.debian.org/)>. The following parameters should be used:
-
- Severity: important (when the package is unbuildable or uninstallable, lower otherwise.)
- Tags: sid, patch
-
-* be nice to the maintainers. most are friendly and cooperative, and a few could annoy you for months before applying. Be patient.
-
-Read <http://bugs.debian.org/> for extensive documentation on the BTS.
-
--- [[Main/RobertMillan]] - 10 Jun 2002
-
-----
-
-Wikification &amp; small changes.
-
--- [[Main/JoachimNilsson]] - 24 Jun 2002
-
-Updates with the new [[TWiki/InterWikis]] rules.
-
--- [[Main/GrantBow]] - 15 Jan 2003
diff --git a/hurd/running/debian/DebianAptOffline.mdwn b/hurd/running/debian/DebianAptOffline.mdwn
index b8dc3cac..9596040d 100644
--- a/hurd/running/debian/DebianAptOffline.mdwn
+++ b/hurd/running/debian/DebianAptOffline.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2005, 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2005, 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
# How to Installing Packages without a Network Connection from your Hurd Installation
diff --git a/hurd/running/debian/GnuDebianRelationship.mdwn b/hurd/running/debian/GnuDebianRelationship.mdwn
index ede808c8..94fd6265 100644
--- a/hurd/running/debian/GnuDebianRelationship.mdwn
+++ b/hurd/running/debian/GnuDebianRelationship.mdwn
@@ -2,11 +2,11 @@ I have hesitated in starting this page due to the sensitive nature of this relat
This is a work in progress. Please email me directly if you have comments or suggestions.
-* Debian Advantages of Hurd [[Distrib/PortingIssues]] Efforts
+* Debian Advantages of Hurd [[porting/guidelines]] Efforts
* One of the first ports to non-Linux system along with \*BSD and win32.
* Official GNU system distribution.
-* Debian Disadvantages of Hurd [[Distrib/PortingIssues]] Efforts
+* Debian Disadvantages of Hurd [porting/guidelines]] Efforts
* Perceived zealous GNU and FSF promotion.
* Hurd Port Advantages of Debian
diff --git a/hurd/running/debian/MediaPressKitDiscuss.mdwn b/hurd/running/debian/MediaPressKitDiscuss.mdwn
index e8b1cfff..2bd97290 100644
--- a/hurd/running/debian/MediaPressKitDiscuss.mdwn
+++ b/hurd/running/debian/MediaPressKitDiscuss.mdwn
@@ -1,5 +1,3 @@
-%TOC%
-
# <a name="Media_Press_Kit"> Media / Press Kit </a>
## <a name="Problem"> Problem </a>
diff --git a/hurd/running/debian/after_install.mdwn b/hurd/running/debian/after_install.mdwn
index 4cdcaea9..15ca9c83 100644
--- a/hurd/running/debian/after_install.mdwn
+++ b/hurd/running/debian/after_install.mdwn
@@ -5,7 +5,7 @@ mode?
Time to get to work.
-[[toc ]]
+[[!toc]]
### Get Networking Running
diff --git a/hurd/running/debian/creating_image_tarball.mdwn b/hurd/running/debian/creating_image_tarball.mdwn
index 977f2b1d..ac91dab4 100644
--- a/hurd/running/debian/creating_image_tarball.mdwn
+++ b/hurd/running/debian/creating_image_tarball.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
The following [[anonftpsync-ports]] is used to create a local Debian GNU/Hurd
repo. You will need atleast 12G of disk space. Change the
diff --git a/hurd/running/debian/faq.mdwn b/hurd/running/debian/faq.mdwn
index 227ade02..b3bd230d 100644
--- a/hurd/running/debian/faq.mdwn
+++ b/hurd/running/debian/faq.mdwn
@@ -1,18 +1,19 @@
-[[meta copyright="Copyright © 2007 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2009 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-[[meta title="Debian GNU/Hurd FAQ"]]
+[[!meta title="Debian GNU/Hurd FAQ"]]
-See also the [[Hurd_FAQ|hurd/FAQ]] and [[after_install]].
+See also the [[Hurd_FAQ|/hurd/FAQ]], [[after_install]], and the [[General FAQ
+About Running GNU/Hurd|/hurd/running/faq]].
-[[inline
+[[!inline
pages="hurd/running/debian/faq/* and !*/discussion"
show=0
feeds=no
diff --git a/hurd/running/debian/faq/2_gib_partition_limit.mdwn b/hurd/running/debian/faq/2_gib_partition_limit.mdwn
index aed47445..195191cb 100644
--- a/hurd/running/debian/faq/2_gib_partition_limit.mdwn
+++ b/hurd/running/debian/faq/2_gib_partition_limit.mdwn
@@ -1,13 +1,13 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-[[meta title="2 GiB Partition Limit"]]
+[[!meta title="2 GiB Partition Limit"]]
The 2 GiB limit has been removed in Debian GNU/Hurd.
diff --git a/hurd/running/debian/faq/512_mib_ram_limit.mdwn b/hurd/running/debian/faq/512_mib_ram_limit.mdwn
index 462ba73d..f89a5c01 100644
--- a/hurd/running/debian/faq/512_mib_ram_limit.mdwn
+++ b/hurd/running/debian/faq/512_mib_ram_limit.mdwn
@@ -1,18 +1,21 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-[[meta title="512 MiB RAM Limit"]]
+[[!meta title="512 MiB RAM Limit"]]
-GNU Mach does not cope well with lots of memory. Newer versions of the Debian
-`gnumach` package will limit themselves to around 1 GiB of memory. If you have
-an older version, or still experience problems with `vmstat` (see above)
-reported much less memory than you have, the best is to limit the memory it can
-see via GRUB's `upppermem` feature. Add `uppermem 786432` to GRUB's Hurd entry
-in `menu.lst`.
+Just like any 32bit OS without bad tricks, GNU Mach does not cope well with lots
+of memory. Newer versions of the Debian `gnumach` package will limit themselves
+to around 1 GiB of memory. If you want more, you can twiddle the VM_MAX_ADDRESS
+limit between kernelland and userland in i386/include/mach/i386/vm_param.h.
+
+If you have an older version, or still experience problems with `vmstat` (see
+above) reported much less memory than you have, the best is to limit the memory
+it can see via GRUB's `upppermem` feature. Add `uppermem 786432` to GRUB's Hurd
+entry in `menu.lst`.
diff --git a/hurd/running/debian/faq/apt_umount.mdwn b/hurd/running/debian/faq/apt_umount.mdwn
index 4a3b2dd2..db0dbfd1 100644
--- a/hurd/running/debian/faq/apt_umount.mdwn
+++ b/hurd/running/debian/faq/apt_umount.mdwn
@@ -1,14 +1,14 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-[[meta title="apt: unmount cdroms"]]
+[[!meta title="apt: unmount cdroms"]]
You can add a shell script umount so that apt can automatically unmount cdroms.
@@ -22,4 +22,4 @@ Give executable permission to the script.
# chmod +x /usr/bin/umount
In `/etc/fstab` add a trailing `/` after cdrom like `/cdrom/` since apt uses a
-traing `/`.
+trailing `/`.
diff --git a/hurd/running/debian/faq/bad_hypermeta_data.mdwn b/hurd/running/debian/faq/bad_hypermeta_data.mdwn
index eedb461d..bc960e30 100644
--- a/hurd/running/debian/faq/bad_hypermeta_data.mdwn
+++ b/hurd/running/debian/faq/bad_hypermeta_data.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
If you get the error `bad hypermeta data` when trying to mount an ext3
partition from GNU/Linux, that is usually because the file system has not been
diff --git a/hurd/running/debian/faq/debugging_inside_glibc.mdwn b/hurd/running/debian/faq/debugging_inside_glibc.mdwn
index 375f042e..91b71d64 100644
--- a/hurd/running/debian/faq/debugging_inside_glibc.mdwn
+++ b/hurd/running/debian/faq/debugging_inside_glibc.mdwn
@@ -1,13 +1,13 @@
-[[meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation,
+[[!meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation,
Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
To get [[debugging]] information for glibc, you need to install the
`libc0.3-dbg` package. At the place [[debugging/GDB]] looks for debugging
diff --git a/hurd/running/debian/faq/debugging_translators.mdwn b/hurd/running/debian/faq/debugging_translators.mdwn
index e87513c4..b55484e1 100644
--- a/hurd/running/debian/faq/debugging_translators.mdwn
+++ b/hurd/running/debian/faq/debugging_translators.mdwn
@@ -1,17 +1,15 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
In order to [[debug|debugging]] translators and being able to step into glibc
-during it, you need the `hurd-dbg` and `libc0.3-dbg` packages installed. Then
+during it, you need the `hurd-dbg` and `libc0.3-dbg` packages installed. If you need to debug the initialization of the translator,
start the translator like `settrans -P /foo /usr/bin/env
LD\_LIBRARY\_PATH=/usr/lib/debug /hurd/foofs`. The `-P` option will make it
pause and you will be able to attach [[debugging/GDB]] to the process.
-
-Is starting the translator like this really needed?
diff --git a/hurd/running/debian/faq/dev_random.mdwn b/hurd/running/debian/faq/dev_random.mdwn
index eee7d0be..3b5fdffe 100644
--- a/hurd/running/debian/faq/dev_random.mdwn
+++ b/hurd/running/debian/faq/dev_random.mdwn
@@ -1,14 +1,14 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-[[meta title="/dev/random"]]
+[[!meta title="/dev/random"]]
There is no random device by default as no secure implementation has been
finished yet. An easy (but very insecure) work-around is to copy a binary file
diff --git a/hurd/running/debian/faq/df.mdwn b/hurd/running/debian/faq/df.mdwn
index be0df444..4de232da 100644
--- a/hurd/running/debian/faq/df.mdwn
+++ b/hurd/running/debian/faq/df.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
There is no `/etc/mtab`, so just running `df` will yield an error. Pass `df` a
path like `df /` or `df ./` to see the disk usage of that particular file
diff --git a/hurd/running/debian/faq/eata.mdwn b/hurd/running/debian/faq/eata.mdwn
new file mode 100644
index 00000000..fa7dbdec
--- /dev/null
+++ b/hurd/running/debian/faq/eata.mdwn
@@ -0,0 +1,13 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+In some virtual machines (e.g. VirtualBox), "probing eata on XXX" may be
+quite long. This is apparently due to poor efficiency of the virtualizer, not
+Mach. There is no such issue on real hardware or using qemu/kvm.
diff --git a/hurd/running/debian/faq/free_memory.mdwn b/hurd/running/debian/faq/free_memory.mdwn
index c5c28d2d..c1c0a83c 100644
--- a/hurd/running/debian/faq/free_memory.mdwn
+++ b/hurd/running/debian/faq/free_memory.mdwn
@@ -1,11 +1,11 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
Run `vmstat` to see memory and swap usage.
diff --git a/hurd/running/debian/faq/hurd_console.mdwn b/hurd/running/debian/faq/hurd_console.mdwn
index 3d5a6035..c4a619a1 100644
--- a/hurd/running/debian/faq/hurd_console.mdwn
+++ b/hurd/running/debian/faq/hurd_console.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
Edit `/etc/default/hurd-console` to configure the Hurd console and enable it on
bootup. See [[console]] for further information about the Hurd console.
diff --git a/hurd/running/debian/faq/kernel_logs.mdwn b/hurd/running/debian/faq/kernel_logs.mdwn
index 0962f3aa..ff14ce5f 100644
--- a/hurd/running/debian/faq/kernel_logs.mdwn
+++ b/hurd/running/debian/faq/kernel_logs.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
The kernel logs are written to `/dev/klog`. Run `cat /dev/klog > foo` as root
and hit `ctrl+c` after a few seconds to catch the logs. You can do this only
diff --git a/hurd/running/debian/faq/other_repositories.mdwn b/hurd/running/debian/faq/other_repositories.mdwn
index d824f779..88781d46 100644
--- a/hurd/running/debian/faq/other_repositories.mdwn
+++ b/hurd/running/debian/faq/other_repositories.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
If you want to use the `apt-get source` facility, make sure that
`/etc/apt/sources.list` contains a line like
diff --git a/hurd/running/debian/faq/ps_hangs.mdwn b/hurd/running/debian/faq/ps_hangs.mdwn
index d2ffefeb..febfeb59 100644
--- a/hurd/running/debian/faq/ps_hangs.mdwn
+++ b/hurd/running/debian/faq/ps_hangs.mdwn
@@ -1,11 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-If `ps` hangs, try `ps -M` which might still work.
+If `ps` hangs, try `ps -M` which might still work by not getting detailed
+information from processes.
diff --git a/hurd/running/debian/faq/reporting_bugs.mdwn b/hurd/running/debian/faq/reporting_bugs.mdwn
index 5abac5ce..40781ab0 100644
--- a/hurd/running/debian/faq/reporting_bugs.mdwn
+++ b/hurd/running/debian/faq/reporting_bugs.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
Please try to reproduce bugs which are not obviously Hurd-specific on Debian
GNU/Linux and then file them there.
diff --git a/hurd/running/debian/faq/sata_disk_drives.mdwn b/hurd/running/debian/faq/sata_disk_drives.mdwn
index 929c08f0..dad10cb9 100644
--- a/hurd/running/debian/faq/sata_disk_drives.mdwn
+++ b/hurd/running/debian/faq/sata_disk_drives.mdwn
@@ -1,11 +1,11 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
GNU Mach does not support SATA disk drives (/dev/sda etc. in GNU/Linux) natively, so using device:sd0s1 will not work, sd* devices are for SCSI drives only. The only way to get those drives to work is to put them into compatibility mode in the BIOS, if such an option exists. GNU Mach will then recognize them as hda etc.
diff --git a/hurd/running/debian/faq/sshd_only_works_for_root_logins.mdwn b/hurd/running/debian/faq/sshd_only_works_for_root_logins.mdwn
index e98b5e03..517d59dc 100644
--- a/hurd/running/debian/faq/sshd_only_works_for_root_logins.mdwn
+++ b/hurd/running/debian/faq/sshd_only_works_for_root_logins.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
Privilege seperation does not work with Hurd currently. You need to explicitely
set `PrivilegeSeparation` to `no` in `/etc/ssh/sshd_options`, just commenting out
diff --git a/hurd/running/debian/faq/xserver-common.mdwn b/hurd/running/debian/faq/xserver-common.mdwn
index 5cf0ec11..09fbc902 100644
--- a/hurd/running/debian/faq/xserver-common.mdwn
+++ b/hurd/running/debian/faq/xserver-common.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
You need to run `dpkg-reconfigure xserver-common` and select `Anybody` for
starting X as there is no way to detect console users currently.
diff --git a/hurd/running/debian/package_troubleshooting.mdwn b/hurd/running/debian/package_troubleshooting.mdwn
index 829af8e3..43ecbc77 100644
--- a/hurd/running/debian/package_troubleshooting.mdwn
+++ b/hurd/running/debian/package_troubleshooting.mdwn
@@ -1,9 +1,5 @@
This page reports known Hurd-specific bugs, quirks and corresponding solutions and workarounds with Debian GNU/Hurd package installation and working.
-## <a name="Table_of_Contents"> Table of Contents </a>
-
-%TOC%
-
## <a name="Dpkg_wants_external_programs_"> Dpkg wants external programs? </a>
It may be that dpkg wants external GNU/Linux-specific programs that it can't found or that just don't exist on the Hurd. You can trick dpkg by copying and running this script as root:
diff --git a/hurd/running/debian/patch_submission.mdwn b/hurd/running/debian/patch_submission.mdwn
index 0a1bfb3f..66348dd9 100644
--- a/hurd/running/debian/patch_submission.mdwn
+++ b/hurd/running/debian/patch_submission.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
If you fixed a Debian package which *FTBFS* (fails to build from source), you
should submit the patch so that all users can profit from your work.
diff --git a/hurd/running/debian/porting.mdwn b/hurd/running/debian/porting.mdwn
index eb46c4c3..0eb15465 100644
--- a/hurd/running/debian/porting.mdwn
+++ b/hurd/running/debian/porting.mdwn
@@ -1,28 +1,38 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008, 2009, 2010 Free Software Foundation,
+Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-[[meta title="Debian packages that need porting"]]
+[[!meta title="Debian packages that need porting"]]
-Approximately half of the Debian archive has been compiled successfully on the
+More than half of the Debian archive has been compiled successfully on the
Hurd, however, many programs fail to build for various reasons.
A [list of build failures including error
messages](http://unstable.buildd.net/buildd/hurd-i386_Failed.html) can be
found, as well as a [preliminary
-analysis](http://lists.debian.org/debian-hurd/2007/07/msg00000.html) of them.
+analysis](http://lists.debian.org/debian-hurd/2007/07/msg00000.html) of them and [solutions](http://lists.debian.org/debian-hurd/2007/07/msg00001.html), and some more details in [[hurd/porting/guidelines]]. [Graphs and statistics](http://people.debian.org/~sthibault/) about the consequence in terms of build dependencies are available.
+
+There is a mailing list,
+[debian-hurd-build-logs](http://lists.alioth.debian.org/mailman/listinfo/debian-hurd-build-logs),
+where *builds logs from the Debian GNU/Hurd autobuilders* are posted. It is a
+high-traffic and high-volume list, and for that reason *not* archived, so you
+have to subscribe to see the messages.
It might be a good idea to record your intention to port something either in
the list below or in the [Alioth task
tracker](http://alioth.debian.org/pm/task.php?group_project_id=34&group_id=30628&func=browse)
so other people do not do duplicated work.
+Also, the [[community/HurdFr]] guys maintain their own [liste des travaux de
+packaging](http://wiki.hurdfr.org/index.php/Liste_des_travaux_de_packaging).
+
Aside from the Alioth task tracker, here is a list of some packages (the
important ones, as they're, e.g., blocking other packages from being built)
that need someone to work on them.
@@ -30,9 +40,15 @@ that need someone to work on them.
When you have a patch to submit, please adhere to the [[patch_submission]]
guidelines.
-[[inline
-pages="hurd/running/debian/porting/* and !*/discussion"
+There is also further information available about [[hurd/porting]].
+
+[[!map
+pages="tagged(open_issue_porting) and !tagged(fixed_in_debian) and !*/discussion"
+show=title]]
+
+[[!inline
+pages="tagged(open_issue_porting) and !tagged(fixed_in_debian) and !*/discussion"
show=0
feeds=no
actions=yes
-rootpage="hurd/running/debian/porting" postformtext="Add a new item titled:"]]
+rootpage="open_issues" postformtext="Add a new item titled:"]]
diff --git a/hurd/running/debian/porting/gcc/c++.mdwn b/hurd/running/debian/porting/gcc/c++.mdwn
deleted file mode 100644
index 1d64b9b5..00000000
--- a/hurd/running/debian/porting/gcc/c++.mdwn
+++ /dev/null
@@ -1,39 +0,0 @@
-[[meta copyright="Copyright © 2008 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]]."]]"""]]
-
-Modify the [[building/cross-compiling]] shell script to configure GCC for
-building GCC with C++ support when building its second (i.e., final) version.
-
-Compiling a most-trivial C++ program used to work with GCC 4.2 and 4.3 (and the
-resulting binaries would also work), but linking fails with GCC SVN trunk:
-
- $ $TARGET-g++ -Wall a.cc -lpthread
- /home/thomas/tmp/gnu-0/lib/gcc/i586-pc-gnu/4.4.0/../../../../i586-pc-gnu/lib/libgcc_s.so: undefined reference to `__multf3'
- /home/thomas/tmp/gnu-0/lib/gcc/i586-pc-gnu/4.4.0/../../../../i586-pc-gnu/lib/libgcc_s.so: undefined reference to `__fixunstfsi'
- /home/thomas/tmp/gnu-0/lib/gcc/i586-pc-gnu/4.4.0/../../../../i586-pc-gnu/lib/libgcc_s.so: undefined reference to `__subtf3'
- /home/thomas/tmp/gnu-0/lib/gcc/i586-pc-gnu/4.4.0/../../../../i586-pc-gnu/lib/libgcc_s.so: undefined reference to `__divtf3'
- /home/thomas/tmp/gnu-0/lib/gcc/i586-pc-gnu/4.4.0/../../../../i586-pc-gnu/lib/libgcc_s.so: undefined reference to `__copysigntf3'
- /home/thomas/tmp/gnu-0/lib/gcc/i586-pc-gnu/4.4.0/../../../../i586-pc-gnu/lib/libgcc_s.so: undefined reference to `__addtf3'
- /home/thomas/tmp/gnu-0/lib/gcc/i586-pc-gnu/4.4.0/../../../../i586-pc-gnu/lib/libgcc_s.so: undefined reference to `__lttf2'
- /home/thomas/tmp/gnu-0/lib/gcc/i586-pc-gnu/4.4.0/../../../../i586-pc-gnu/lib/libgcc_s.so: undefined reference to `__floatsitf'
- /home/thomas/tmp/gnu-0/lib/gcc/i586-pc-gnu/4.4.0/../../../../i586-pc-gnu/lib/libgcc_s.so: undefined reference to `__netf2'
- /home/thomas/tmp/gnu-0/lib/gcc/i586-pc-gnu/4.4.0/../../../../i586-pc-gnu/lib/libgcc_s.so: undefined reference to `__floatunsitf'
- /home/thomas/tmp/gnu-0/lib/gcc/i586-pc-gnu/4.4.0/../../../../i586-pc-gnu/lib/libgcc_s.so: undefined reference to `__eqtf2'
- /home/thomas/tmp/gnu-0/lib/gcc/i586-pc-gnu/4.4.0/../../../../i586-pc-gnu/lib/libgcc_s.so: undefined reference to `__fabstf2'
- collect2: ld returned 1 exit status
-
-Whether this defect report also applies to a natively-build GCC from SVN trunk
-has not yet been checked.
-
-[[Thomas_Schwinge|tschwinge]] suspects the problem to be a configuration issue
-of a GCC helper library, whose configuration setup has changed after GCC 4.3.
-
-The need for `-lpthread` is another story. See the Debian glibc patches
-repository for details.
diff --git a/hurd/running/debian/porting/git-core.mdwn b/hurd/running/debian/porting/git-core.mdwn
deleted file mode 100644
index 568ad966..00000000
--- a/hurd/running/debian/porting/git-core.mdwn
+++ /dev/null
@@ -1,25 +0,0 @@
-[[meta copyright="Copyright © 2008 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]]."]]"""]]
-
-Depends on [[libdbd-sqlite3-perl]].
-
-Does build, but has test-suite problems (only where libdbd-sqlite3-perl is
-involved, it seems):
-
- [...]
- DBD::SQLite::db table_info failed: database is locked(5) at dbdimp.c line 271 at /media/data/home/tschwinge/tmp/git-core/git-core-1.5.6.5/t/../
- git-cvsserver line 2783, <STDIN> line 17.
- Can't call method "fetchall_hashref" on an undefined value at /media/data/home/tschwinge/tmp/git-core/git-core-1.5.6.5/t/../git-cvsserver line
- 2783, <STDIN> line 17.
- [...]
-
-Stopping the test-stuite (`C-c`), doing a `touch build-arch-stamp`, followed by
-re-running `dpkg-buildpackage` with `-nc` will yield an installable `deb`
-package.
diff --git a/hurd/running/debian/porting/libdbd-sqlite3-perl.mdwn b/hurd/running/debian/porting/libdbd-sqlite3-perl.mdwn
deleted file mode 100644
index b5fdd14d..00000000
--- a/hurd/running/debian/porting/libdbd-sqlite3-perl.mdwn
+++ /dev/null
@@ -1,26 +0,0 @@
-[[meta copyright="Copyright © 2008 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]]."]]"""]]
-
-Does build, but has test-suite problems:
-
- t/02cr_table............ok 1/4DBD::SQLite::db do failed: database is locked(5) at dbdimp.c line 271 at t/02cr_table.t line 10.
- DBD::SQLite::db prepare failed: database is locked(5) at dbdimp.c line 271 at t/02cr_table.t line 11.
- Can't call method "execute" on an undefined value at t/02cr_table.t line 12.
- t/02cr_table............dubious
- Test returned status 118 (wstat 30208, 0x7600)
- DIED. FAILED tests 2-4
- Failed 3/4 tests, 25.00% okay
- t/03insert..............ok 1/11DBD::SQLite::db do failed: database is locked(5) at dbdimp.c line 271 at t/03insert.t line 6.
- # Failed test 2 in t/03insert.t at line 6
- [...]
-
-Stopping the test-stuite (`C-c`), doing a `touch build-stamp`, followed by
-re-running `dpkg-buildpackage` with `-nc` will yield an installable `deb`
-package.
diff --git a/hurd/running/distrib.mdwn b/hurd/running/distrib.mdwn
index 935c0c2d..92904d19 100644
--- a/hurd/running/distrib.mdwn
+++ b/hurd/running/distrib.mdwn
@@ -1,8 +1,15 @@
+Working distributions of GNU/Hurd:
+
* [[Debian]]
+
+GNU/Hurd distributions in early stages of development:
+
* [[Gentoo]]
-* [[Bee]]
* [[GNU]]
+<!-- Bee GNU/Hurd doesn't seem to exist anymore.
+* [[Bee]]
+-->
# Issues
@@ -64,11 +71,11 @@ about getting applications to work (if possible).
<dl>
<dt>[[SavannahProjects]]</dt>
- <dd> Savannah is a CVS &amp;amp; Bug system evolved from a free version of the code that powers <a href="http://sf.net" target="_top">sourceforge.net</a>. It has forked and been slightly modified for use by FSF, GNU and non-GNU projects. Actual Development takes place here. There is also a <a href="http://savannah.gnu.org/people/?group=hurd" target="_top">help wanted</a> list. </dd>
+ <dd> Savannah is a CVS &amp; Bug system evolved from a free version of the code that powers <a href="http://sf.net" target="_top">sourceforge.net</a>. It has forked and been slightly modified for use by FSF, GNU and non-GNU projects. Actual Development takes place here. There is also a <a href="http://savannah.gnu.org/people/?group=hurd" target="_top">help wanted</a> list. </dd>
</dl>
<dl>
- <dt>[[PortingIssues]] FAQ</dt>
+ <dt>[[porting/guidelines]] FAQ</dt>
<dd> What does it take to move a piece of Debian packaged software to the GNU/Hurd port? </dd>
</dl>
@@ -78,8 +85,8 @@ about getting applications to work (if possible).
</dl>
<dl>
- <dt> Debain Infrastructure</dt>
- <dd> Testing is critical in helping the development effort. Bugs (defect reports) can be filed against the Debian software package in which they are found. [[BtsFiling]] tells how to file a Debian bug report. [[DebianPackages]] has some information about how Debian splits the software into packages and some references. There is a buildd autobuilder compiling the Debian Sid archive software for the GNU/Hurd port. [[BuilddStatus]] includes information on the buildd &amp;amp; turtle efforts. </dd>
+ <dt> Debian Infrastructure</dt>
+ <dd> Testing is critical in helping the development effort. Bugs (defect reports) can be filed against the Debian software package in which they are found. [[debian/patch_submission]] tells how to file a Debian bug report. [[DebianPackages]] has some information about how Debian splits the software into packages and some references. There is a buildd autobuilder compiling the Debian Sid archive software for the GNU/Hurd port. [[BuilddStatus]] includes information on the buildd &amp; turtle efforts. </dd>
</dl>
<dl>
@@ -95,7 +102,7 @@ about getting applications to work (if possible).
* GNU [Coding Standards](http://www.gnu.org/prep/standards.html)
* [[TestSuites]] - Posix, Perl, results feedback, etc.
* [[Documentation]]
-* [[SystemAPILimits]]
+* [[System_API_Limitations]]
* [[CodeAnnouncements]] - Recent coding projects related to the Hurd
<dl>
diff --git a/hurd/running/faq.mdwn b/hurd/running/faq.mdwn
new file mode 100644
index 00000000..a59bce7e
--- /dev/null
+++ b/hurd/running/faq.mdwn
@@ -0,0 +1,20 @@
+[[!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="General FAQ About Running GNU/Hurd"]]
+
+See also the [[Hurd FAQ|hurd/FAQ]], and the [[Debian GNU/Hurd FAQ|debian/faq]].
+
+[[!inline
+pages="hurd/running/faq/* and !*/discussion"
+show=0
+feeds=no
+actions=yes
+rootpage="hurd/running/faq" postformtext="Add a new item titled:"]]
diff --git a/hurd/running/faq/native-install_doesnt_finish.mdwn b/hurd/running/faq/native-install_doesnt_finish.mdwn
new file mode 100644
index 00000000..a852e1dd
--- /dev/null
+++ b/hurd/running/faq/native-install_doesnt_finish.mdwn
@@ -0,0 +1,24 @@
+[[!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]]."]]"""]]
+
+Copying baseGNU to the virtual disk works. Even booting got through but when I
+try to run native-install it never gets to the very end. First time it froze on
+*sed* package, the other time on *sysv-rc*.
+
+> How much memory did you configure for the [[QEMU]] system? It may simply be
+> -- I've seen this myself -- that the system runs out of memory, as at the
+> native-install stage (I think at least) swap is not yet configured and
+> enabled. What I've been doing is: boot (with -s), MAKEDEV hdWHATEVER in
+> /dev/ for the swap device, run /hurd/mach-defpager, followed by swapon
+> /dev/hdWHATEVER. Does this help?
+
+>> Thank You very much, more memory solved the freezing.
+
+[[!tag open_issue_hurd]]
diff --git a/hurd/running/gentoo.mdwn b/hurd/running/gentoo.mdwn
index 89d5d9cf..ef72bfad 100644
--- a/hurd/running/gentoo.mdwn
+++ b/hurd/running/gentoo.mdwn
@@ -2,7 +2,33 @@
Unofficial port to Gentoo and the portage system. It was
[announced](http://forums.gentoo.org/viewtopic.php?t=41939&amp;postdays=0&amp;postorder=asc&amp;start=0)
-March 17, 2003 in the Gentoo forums. There's a #gentoo-irc channel similar to
-[[IRC]]. At present (May 2005), there's no activity and Eric Olinger has not
-the time to maintain this distri.
+March 17, 2003 in the Gentoo forums. There's a #gentoo and a #gentoo-hurd IRC channel similar to
+[[IRC]].
+### State of the GGH, 2009-05
+
+> *Did you work a bit more on the Gentoo GNU/Hurd?*
+
+I tried to resume my work 3-4 months ago but I found some problems with
+portage and python functions not implemented on Hurd so I stopped. I think
+that back in 2006 with portage 2.0.54 those functiones weren't necessary.
+
+> *And do you have some information which might help others advance what you began?*
+
+I just have all the ebuilds and binary packages I merged online on
+[http://www.mundurat.net/ggh/portage](http://www.mundurat.net/ggh/portage).
+
+To continue my work just take a Debian/Hurd and install portage by hand.
+
+Once there take the profile and start bootstraping portage and all the
+ebuild it needs (patch, python, bzip2...).
+
+The major problems are:
+
+- combine the perfect gcc/binutils/glibc/gnumach/hurd and to be able to boot
+- lack of development on gnumach/hurd and current 'degraded' status.
+
+I don't think I can help much right now, but if you have any other
+question just write me.
+
+MiKeL
diff --git a/hurd/running/gnu.mdwn b/hurd/running/gnu.mdwn
index 26d93279..94012ef5 100644
--- a/hurd/running/gnu.mdwn
+++ b/hurd/running/gnu.mdwn
@@ -15,32 +15,32 @@ It is our wish and goal to establish a new direction for the GNU system distribu
This is not intended to detract from Debian GNU/Hurd and we should help them where we can.
-I really want this to be more of a community driven effort in the spirit of say Ubuntu. We all have different motivations and skill levels but we need a common goal to get this system going.
+I really want this to be more of a community driven effort in the spirit of say, Ubuntu. We all have different motivations and skill levels but we need a common goal to get this system going.
-These are just some quick notes I am making late at night. Lets clean this up.
+These are just some quick notes I am making late at night. Let's clean this up.
## <a name="Motivations"> Motivations </a>
1. There is a possibility that Debian drops support for GNU/Hurd.
2. Other GNU/Linux distributions do not support the Hurd infrastructure well.
-3. Benefitting from the Hurd design and using a microkernel.
+3. Benefiting from the Hurd design and using a microkernel.
4. Freedom.
## <a name="Community"> Community </a>
-1. Lets establish some ground rules.
+1. Let's establish some ground rules.
2. We need infrastructure
* Wiki for community documentation
* Mailing lists like gnu-system-discuss exists for mostly technical items
* IRC channels like #hug and ##hurd
* Perhaps less formal and less intimidating channels and mailing lists would involve broader parts of the community
3. We need a community vision and direction.
- * Lets work together for a common goal
- * Lets establish goals and priorities and get resources on them. (More later)
+ * Let's work together for a common goal
+ * Let's establish goals and priorities and get resources on them. (More later)
* Major goal to create a system making full use of Hurd features?
* We should never hesitate to throw away existing stuff whenever it hinders us to make good use of Hurd features
* However, we should try to reuse existing stuff (from Debian for example) as long as it doesn't limit our possibilities or impose considerable overhead
- * Lets have fun. It's GNU and it's important but let's enjoy ourselves.
+ * Let's have fun. It's GNU and it's important but let's enjoy ourselves.
## Download
diff --git a/hurd/running/gnu/create_an_image.mdwn b/hurd/running/gnu/create_an_image.mdwn
index 42379f45..c7a97a4e 100644
--- a/hurd/running/gnu/create_an_image.mdwn
+++ b/hurd/running/gnu/create_an_image.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
Creating a bootable qemu image from a root filesystem and bootloader
@@ -27,7 +27,7 @@ Creating a bootable qemu image from a root filesystem and bootloader
create the necessary partitions (root and swap partitions boot, home ... if
required)
-4. Create a file syatem for the root partiotion
+4. Create a file system for the root partition
mke2fs /dev/hda1
@@ -39,7 +39,7 @@ Creating a bootable qemu image from a root filesystem and bootloader
6. Copy the file system from the host machine to the mounted directory (use a
compressed file system to make the copying faster)
- Grab the GNU spapshot from ams' site
+ Grab the GNU snapshot from ams' site
<http://www.update.uu.se/~ams/home/slask/GNU/>
scp <user>@<host>:<path to the compressed file system> disk
@@ -58,7 +58,7 @@ Creating a bootable qemu image from a root filesystem and bootloader
poweroff
-10. To make the file syatem bootable download a grub floppy image
+10. To make the file system bootable download a grub floppy image
<http://hurd.in/pub/Hurd/HurdOnVMware/grub.img>
diff --git a/hurd/running/gnu/setup.mdwn b/hurd/running/gnu/setup.mdwn
index 6ff32630..2fb30c7b 100644
--- a/hurd/running/gnu/setup.mdwn
+++ b/hurd/running/gnu/setup.mdwn
@@ -1,14 +1,14 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-Setup is very easy (You need a GNU/Linux system to install GNU, we are developing an installer for GNU and if you want to help us join us on [[http://lists.gnu.org/mailman/listinfo/gnu-system-discuss][gnu-system-discuss]]), just follow these steps ...
+Setup is very easy (You need a GNU/Linux system to install GNU, we are developing an installer for GNU and if you want to help us join us on [gnu-system-discuss](http://lists.gnu.org/mailman/listinfo/gnu-system-discuss)), just follow these steps ...
## Step 1: Find a home for GNU
diff --git a/hurd/running/gnu/universal_package_manager.mdwn b/hurd/running/gnu/universal_package_manager.mdwn
index 440f1122..e58a2058 100644
--- a/hurd/running/gnu/universal_package_manager.mdwn
+++ b/hurd/running/gnu/universal_package_manager.mdwn
@@ -1,12 +1,13 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation,
+Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
## Mission
@@ -19,10 +20,10 @@ Basically all package management schemes follow similar approach, it will have a
There can be both aproaches
- * Re-implement rpm, dpkg... to recognise stow as backend instead of its own data store. In that case we will have to re implement, apt-rpm, yum ...
- * Implement a translator which reads stow and show it as an rpm data store for yum, deb data store for apt-get ...
+ * Re-implement rpm, dpkg... to recognise stow as backend instead of its own data store. In that case we will have to re-implement, apt-rpm, yum ...
+ * Implement a translator which reads stow and show it as an rpm data store for yum, deb data store for apt-get ...
-One goal is obviously choice of packaging and hence availability of more packages. Also this gives maintainers a chioce to continue builing packages for GNU in the format they are already familiar with. The second goal is to demonstrate the flexibility GNU offers in implementing functionality in filesystems (open/read/write interface).
+One goal is obviously choice of packaging and hence availability of more packages. Also this gives maintainers a choice to continue building packages for GNU in the format they are already familiar with. The second goal is to demonstrate the flexibility GNU offers in implementing functionality in filesystems (open/read/write interface).
## Why?
@@ -39,7 +40,7 @@ With the increased flexibility in implementing filesystems as per the requiremen
## How?
- * Installtion of a package is just drag the pacakage (be it a tgz, rpm, deb or an exe) and drop it to the package manager.
+ * Installation of a package is just drag the package (be it a tgz, rpm, deb or an exe) and drop it to the package manager.
* apt-cache search vim --> ls -al /packages/meta/ |grep vim
* apt-get install vim --> install vim
@@ -76,12 +77,12 @@ just writing the new translator.
## Initial idea
-A bit complex than the earlier scheme but it is more exciting and we can look at this schem seriously once we have the simple scheme working.
+A bit more complex than the earlier scheme but it is more exciting and we can look at this scheme seriously once we have the simple scheme working.
All packages are installed at
`/packages/binary/<packagename>/<packageversion>`.
-For eaxmple vim 6.4 version can be installed from source like
+For example vim 6.4 version can be installed from source like
# cd vim64
# ./configure --prefix=/packages/binary/vim/6.4
@@ -98,7 +99,7 @@ Now if you have another vim version, say 7.0 then just follow the steps
# make
# make install
-You have 2 versions of vim and how can you sepcify which one is the current version? You can symlink the current version to select the version you would like to see as default
+You have 2 versions of vim and how can you specify which one is the current version? You can symlink the current version to select the version you would like to see as default
# ln -s /packages/binary/vim/7.0 /packages/vim/current
@@ -127,7 +128,7 @@ OK. I will give you steps.
i. Install a GNU System by folowing [[these_instructions|setup]]
-ii. Read about GNU Design: [[Towards_a_New_Strategy_of_OS_Design|documentation/hurd-paper]]
+ii. Read about GNU Design: [[Towards_a_New_Strategy_of_OS_Design|hurd-paper]]
iii. Read about translators <http://www.debian.org/ports/hurd/hurd-doc-translator>
@@ -140,7 +141,7 @@ v. Add your name below and give a shout in the list.
Add your comments here
-## Interesting?
+## Interested?
To join the project just list your name below.
@@ -151,3 +152,5 @@ To join the project just list your name below.
5. Nidhin Raghavan
6. Ajish.B
7. Ambili.B
+ 8. Abhradip Mukherjee
+ 9. Ermenegildo Fiorito
diff --git a/hurd/running/live_cd.mdwn b/hurd/running/live_cd.mdwn
index f8727118..42d85c5b 100644
--- a/hurd/running/live_cd.mdwn
+++ b/hurd/running/live_cd.mdwn
@@ -8,11 +8,18 @@ Use it like this:
$ qemu -cdrom hurd-tiny-cd-20060722.iso
-These [[wikipedia LiveCD]]s should be useful for those who want to try out the
+A more recent Live CD can be found at <http://teythoon.cryptobitch.de/hurd/livecd/hurd-live-install-1273300101.iso.xz>.
+
+It can be run with qemu via
+
+ $ wget http://teythoon.cryptobitch.de/hurd/livecd/hurd-live-install-1273300101.iso.xz
+ $ xz -d hurd-live-install-1273300101.iso.xz
+ $ qemu -cdrom hurd-live-install-1273300101.iso
+
+These [[!wikipedia LiveCD]]s should be useful for those who want to try out the
Hurd before they commit to installing it on their hard disks. In addition to
that, the bootable Hurd CDs should enable us to have a native installer instead
of relying on Linux.
-
* [[RequirementsForLiveCD]]
* [[BuildingHurdLiveCD]]
diff --git a/hurd/running/qemu.mdwn b/hurd/running/qemu.mdwn
index f13ef5c8..6989cf72 100644
--- a/hurd/running/qemu.mdwn
+++ b/hurd/running/qemu.mdwn
@@ -4,8 +4,9 @@ This page discusses things for [[Unix]] systems, there is a separate page for
# Readily Available Images
-[Official Debian GNU/Hurd QEMU
-image](http://ftp.debian-ports.org/debian-cd/K16/debian-hurd-k16-qemu.img.tar.gz)
+To try out the Hurd you can use the image of the Debian GNU/Hurd:
+
+* [Official Debian GNU/Hurd QEMU image](http://ftp.debian-ports.org/debian-cd/K16/debian-hurd-k16-qemu.img.tar.gz)
(!) Note that the following are unofficial images: they have been prepared by
volunteers and may not have been tested extensively.
@@ -15,7 +16,11 @@ volunteers and may not have been tested extensively.
* [Disk image](http://draketo.de/dateien/hurd/bab-hurd-qemu-2008-10-29.img.tar.bz2)
with a short intro on translators. Just start it with 'qemu *disk_image.img*'.
- It should work without any of the configuration below. -[[community/weblogs/ArneBab]]
+ It should work without any of the configuration below. 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]]
+
+Also you can use qemu to easily try one of our [[Hurd_LiveCDs|hurd/running/live_cd/]].
<!--* [Announcement](http://lists.debian.org/debian-hurd/2007/09/msg00000.html) of another image. - The link in the email doesn't work anymore, too old. //-->
@@ -23,7 +28,7 @@ volunteers and may not have been tested extensively.
# What is Needed to create a QEMU image
1. First thing is to install [[/QEMU]].
-2. A [[grub]] boot disk for the floppy disk image needed for booting. The [0\.97 version](ftp://alpha.gnu.org/gnu/grub/grub-0.97-i386-pc.ext2fs) works fine. I downloaded it an renamed to `floppy.img`. Alternatively, the Debian grub-disk package (up till version 0.97-28) is fine as well.
+2. A [[grub]] boot disk for the floppy disk image needed for booting. The [0\.97 version](ftp://alpha.gnu.org/gnu/grub/grub-0.97-i386-pc.ext2fs) works fine. I downloaded it and renamed to `floppy.img`. Alternatively, the Debian grub-disk package (up till version 0.97-28) is fine as well.
3. You will need a [Debian/Hurd installation CD](http://www.debian.org/ports/hurd/hurd-cd). K16 works fine.
@@ -40,6 +45,14 @@ Next you will want to start up QEMU and begin the installation process. The firs
Now at his point do the regular install using `hd0` as your harddrive. Partition it and install the base system. Once you have finished installing the base system select the reboot option as this will ensure the disk is properly un-mounted. When the Debian CD menu comes up again simply close QEMU.
Now run your image with floppy booting (`-boot a`) and finish the install (`./native-install` .. etc).
+You'll want to add more memory or activate swap for `./native-install` or it will hang.
+Starting qemu with `-m 512` worked for me.
+Swap can be activated like this (replace hd0s2 with your swap partition):
+
+ $ cd /dev/
+ $ MAKEDEV hd0s2
+ $ /hurd/mach-defpager
+ $ swapon /dev/hd0s2
**Important:** Older versions on gnumach needed that the `-M isapc` was passed to qemu. This is not needed anymore.
@@ -68,7 +81,7 @@ Now take the number of sectors for the beginning of the partition and multiply i
## Having QEMU create *virtual FAT disk images*
-[Manual](http://fabrice.bellard.free.fr/qemu/qemu-doc.html#SEC24).
+[Manual](http://www.nongnu.org/qemu/qemu-doc.html#SEC25).
QEMU has a facility to create FAT file systems on-the-fly:
@@ -78,6 +91,9 @@ The Hurd [[`fatfs`_translator|translator/fatfs]] currently is read-only, but
for testing executables (etc.) that is enough. And it is much easier than
loop-mounting the file systems images. (Also you don't need `root' rights.)
+However, note that there is a bug in [[translator/fatfs]]: [[!GNU_Savannah_bug
+25961]].
+
# Networking in QEMU
@@ -91,9 +107,14 @@ If you just want to access the internet from within QEMU, you can setup pfinet f
# settrans -afgp /servers/socket/2 /hurd/pfinet -i eth0 -a 10.0.2.15 -g 10.0.2.2 -m 255.255.255.0
# echo "nameserver 10.0.2.3" > /etc/resolv.conf
-(See also <http://fabrice.bellard.free.fr/qemu/qemu-doc.html#SEC30>.)
+(See also <http://www.nongnu.org/qemu/qemu-doc.html#SEC32>.)
Outgoing internet connections should just work then.
+Testing it can be difficult with a minimal installation,
+but `apt-get update` should work after you have filled out
+`/etc/apt/sources.list`.
+After that you should be able to install other network packages,
+but note that `ping` doesn't work with QEMU's user-networking stack.
If you want to connect from the host system to the Hurd system running in QEMU, you need to setup something more advanced, like bridged networking.
diff --git a/hurd/running/qemu/babhurd_image.mdwn b/hurd/running/qemu/babhurd_image.mdwn
new file mode 100644
index 00000000..c0952fcf
--- /dev/null
+++ b/hurd/running/qemu/babhurd_image.mdwn
@@ -0,0 +1,67 @@
+What this little Hurd image can do
+----------------------------------
+
+### About this text
+
+This is the README file accompanying a
+[disk\_image](http://draketo.de/dateien/hurd/bab-hurd-qemu-2008-10-29.img.tar.bz2) for
+[[running_the_GNU/Hurd_via_qemu|hurd/running/qemu]]. To run the disk image, just use *'qemu
+disk_image.img'*.
+
+You can find the custom *.bashrc* used to tell the user about it as well as this text itself
+in the Mercurial repository [hurd_intro](http://bitbucket.org/ArneBab/hurd_intro).
+
+### Intro
+
+The Hurd has some unique capabilities, and we created this simple image
+to enable you to easily try two of them:
+
+* The simplest of translators: Hello World!
+* Transparent FTP
+
+### Hello World
+
+To try out the simplest of translators, you can go the following simple steps:
+
+ $ cat hello
+ $ setrans hello /hurd/hello
+ $ cat hello
+ "Hello World!"
+ $ settrans -g hello
+ $ cat hello
+
+What you do with these steps is first verifying that the file "hello" is empty.
+
+Then you setup the translator /hurd/hello in the file/node hello.
+
+After that you check the contents of the file, and the translator returns "Hello World!".
+
+To finish it, you tell the translator to go away from the file "hello" via "settrans -g hello" and verify that now the file is empty again.
+
+### Transparent FTP
+
+We already setup a a transparent FTP translator for you at /ftp:
+
+With it you can easily access public FTP via the file system, for example the one from the GNU project:
+
+ $ ls /ftp://ftp.gnu.org/
+
+But you can also do this very easily yourself:
+
+ $ # Setup the translator on the node ftp:
+ $ settrans -c ftp: /hurd/hostmux /hurd/ftpfs /
+
+and you can access FTP sites via the pseudo-directory ftp:, for example with
+
+ $ ls ftp://ftp.gnu.org/
+
+What you do here is setting up the translator /hurd/hostmux on ftp: and passing it the translator /hurd/ftpfs to use for resolving accesses as well as / as additional path component.
+
+
+These were only two basic usages of translators on the Hurd. We're sure you'll quickly see many other ways to use this.
+
+As a last comment: You can setup a translator on any node you have access to, so you can for example mount any filesystems as normal user.
+
+You might currently be logged in as root, but you could just as well do the same as normal user.
+
+Why don't you try it out?
diff --git a/hurd/running/qemu/microsoft_windows.mdwn b/hurd/running/qemu/microsoft_windows.mdwn
index 736adf62..832b4bef 100644
--- a/hurd/running/qemu/microsoft_windows.mdwn
+++ b/hurd/running/qemu/microsoft_windows.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
Welcome, This document is for getting you started in a few minutes.
diff --git a/hurd/running/qemu/networking.mdwn b/hurd/running/qemu/networking.mdwn
index 8014e303..71daa576 100644
--- a/hurd/running/qemu/networking.mdwn
+++ b/hurd/running/qemu/networking.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
## User mode network
diff --git a/hurd/running/qemu/networking/sharing_files.mdwn b/hurd/running/qemu/networking/sharing_files.mdwn
index c0bd99e2..5bdec5f1 100644
--- a/hurd/running/qemu/networking/sharing_files.mdwn
+++ b/hurd/running/qemu/networking/sharing_files.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
# SCP
diff --git a/hurd/running/vmware.mdwn b/hurd/running/vmware.mdwn
index 0f15939e..1f99e247 100644
--- a/hurd/running/vmware.mdwn
+++ b/hurd/running/vmware.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
## Installation
diff --git a/hurd/running/vmware/discussion.mdwn b/hurd/running/vmware/discussion.mdwn
index 65179cec..2db08654 100644
--- a/hurd/running/vmware/discussion.mdwn
+++ b/hurd/running/vmware/discussion.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
I find that this is all quite quick to try and that I can run through the
./native-install and reboot cycle twice OK. However, at that point the
diff --git a/hurd/settrans.mdwn b/hurd/settrans.mdwn
index e4383961..5b381090 100644
--- a/hurd/settrans.mdwn
+++ b/hurd/settrans.mdwn
@@ -1,13 +1,13 @@
-[[meta copyright="Copyright © 2002, 2004, 2005, 2007, 2008 Free Software
+[[!meta copyright="Copyright © 2002, 2004, 2005, 2007, 2008 Free Software
Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
The `settrans` command is used to attach a [[translator]] (server) to a given
[[file_system_node|virtual_file_system]].
diff --git a/hurd/status.mdwn b/hurd/status.mdwn
index b4ece046..721cdeda 100644
--- a/hurd/status.mdwn
+++ b/hurd/status.mdwn
@@ -1,13 +1,13 @@
-[[meta copyright="Copyright © 2001, 2002, 2007, 2008 Free Software Foundation,
-Inc."]]
+[[!meta copyright="Copyright © 2001, 2002, 2007, 2008, 2009, 2010 Free Software
+Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
The Hurd, together with the GNU Mach microkernel, the GNU C Library
and the other GNU and non-GNU programs in the GNU system, provide a
@@ -16,13 +16,19 @@ for production use, as there are still many bugs and missing features.
However, it should be a good base for further development and
non-critical application usage.
-The GNU system (also called GNU/Hurd) is completely self-contained
+[[!img hurd-fvwm-screenshot-2009-11-12.png size=300x
+alt="FVWM and Gnumeric running on GNU/Hurd"
+title="FVWM and Gnumeric running on GNU/Hurd"
+align="right"
+
+]] The GNU system (also called GNU/Hurd) is completely self-contained
(you can compile all parts of it using GNU itself). You can run
several instances of the Hurd in parallel, and debug even critical
servers in one Hurd instance with gdb running on another Hurd
instance. You can run the X window system, applications that use it,
and advanced server applications like the Apache webserver.
+
On the negative side, the support for character devices (like sound
cards) and other hardware is mostly missing. Although the POSIX
interface is provided, some additional interfaces like POSIX shared
@@ -43,10 +49,10 @@ so little would be gained by creating an official pure Hurd release.
The Debian GNU/Hurd [[distribution|running/debian]] offers *LiveCDs and QEMU images*
to test-drive the Hurd in a real life system with access to about
-50% of the Debian software archive.
+65% of the Debian software archive.
The most recent version of the Debian port at the time of writing
-is *Debian GNU/Hurd K16*.
+is *Debian GNU/Hurd L1*.
That said, the last official release of the Hurd
@@ -61,3 +67,42 @@ well would be unfortunate. Moreover, it would lessen the
possibility that they would want to try the Hurd again in the future.
+## Usability Reports
+
+### Olaf Buddenhagen, 2009-06-09
+
+> I have been using the Hurd for most of my everyday work for some two
+> years now. Most of the time it's pretty OK, but occasionally programs
+> crash, or the screen session dies, or even the whole system. Also,
+> various programs simply don't work at all, or don't work in certain
+> situations.
+>
+> While I have learned to work around many of these issues, I don't
+> believe I would be able to use it as my primary system, without having a
+> GNU/Linux system running in parallel, as a fallback for all the stuff
+> that doesn't work on the Hurd.
+>
+> My everyday work includes reading/writing email and other texts, preparing and giving
+> presentations, text-mode web browsing, viewing pictures, IRC, reading
+> PDF documents, programming, and various other random stuff...
+>
+> [...]
+>
+> One particular problem for desktop use is the fact that while X does
+> work, it works very poorly -- it's not only slow and jerky all the time,
+> but also tends to lock up completely. (At least with the local socket
+> transport... Haven't tried whether forcing TCP works better.)
+>
+> Note that while many of the stability problems are simply bugs to fix,
+> the system will still be very fragile in the absence of these -- a
+> simple port leak is sufficient to kill it within seconds. This is
+> something that can't be easily solved. Properly fixing this will require
+> a sound resource accounting framework, i.e. very fundamental changes to
+> the system... Though I tend to believe that it could be improved at
+> least partially, at the expense of flexibility, by enforcing certain
+> fixed limits on users, processes etc. like other UNIX systems do.
+>
+> [...]
+>
+> [But] unlike a few years back [...] the system is stable enough under
+> load nowadays [...].
diff --git a/hurd/status/hurd-fvwm-screenshot-2009-11-12.png b/hurd/status/hurd-fvwm-screenshot-2009-11-12.png
new file mode 100644
index 00000000..445abf32
--- /dev/null
+++ b/hurd/status/hurd-fvwm-screenshot-2009-11-12.png
Binary files differ
diff --git a/hurd/subhurd.mdwn b/hurd/subhurd.mdwn
index d2b80cf9..5b132604 100644
--- a/hurd/subhurd.mdwn
+++ b/hurd/subhurd.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
A sub-Hurd is like a [[neighbor_Hurd|neighborhurd]], however, makes use of some
resources provided by another Hurd. For instance, backing store and the
diff --git a/hurd/subhurd/running_a_subhurd.mdwn b/hurd/subhurd/running_a_subhurd.mdwn
index 5d9693cd..f337108e 100644
--- a/hurd/subhurd/running_a_subhurd.mdwn
+++ b/hurd/subhurd/running_a_subhurd.mdwn
@@ -1,15 +1,15 @@
-[[meta copyright="Copyright © 1998, 1999, 2007, 2008 Free Software Foundation,
+[[!meta copyright="Copyright © 1998, 1999, 2007, 2008 Free Software Foundation,
Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-[[meta title="Running a Subhurd"]]
+[[!meta title="Running a Subhurd"]]
By Roland McGrath.
diff --git a/hurd/syncfs.mdwn b/hurd/syncfs.mdwn
new file mode 100644
index 00000000..7099a68d
--- /dev/null
+++ b/hurd/syncfs.mdwn
@@ -0,0 +1,15 @@
+[[!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]]."]]"""]]
+
+`syncfs` is a tiny wrapper around the [[`file_syncfs`
+RPC|interface/file_syncfs]].
+
+Its functionality should me merged into GNU coreutils' `sync` program, see
+[[!GNU_Savannah_task 6614]][[!tag open_issue_hurd open_issue_porting]].
diff --git a/hurd/toolchain.mdwn b/hurd/toolchain.mdwn
index e94029ba..8b852089 100644
--- a/hurd/toolchain.mdwn
+++ b/hurd/toolchain.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
* [[binutils]]
* [[GCC]]
diff --git a/hurd/translator.mdwn b/hurd/translator.mdwn
index 0cfcc5fa..dc3fd256 100644
--- a/hurd/translator.mdwn
+++ b/hurd/translator.mdwn
@@ -1,13 +1,13 @@
-[[meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation,
+[[!meta copyright="Copyright © 2007, 2008, 2009, 2010 Free Software Foundation,
Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
A translator is simply a normal program acting as
an object server and participating in the Hurd's
@@ -18,6 +18,12 @@ and [[pfinet]]) and thus translates object invocations
into calls appropriate for the backing store
(e.g., ext2 file system, nfs server, etc.).
+Another way of putting it is that it translates from one representation of a
+data structure into another representation, for example from the on-disk
+[[ext2|ext2fs]] data layout to a traditional file system hierarchy, or from a
+XML file to a virtual hierarchical manifestation. This translation can be a
+bidirectional process, but it need not be.
+
A translator is usually registered with a specific file system node by using
the [[`settrans`|settrans]] command.
@@ -33,6 +39,17 @@ kernel and thus have absolute access to the machine.
As the protocols do not require any special privilege
to implement, this is not an issue on the Hurd.
+In Mach parlance, a *translator* is what they name a *server*: a process that
+participates in [[RPC]] interactions. In the Hurd, a translator is a server
+that is additionally attached to a filesystem node. Thus, it is quite common,
+even in the Hurd context, to speak about *server*s if you're stressing the RPC
+part, and on the other hand about *translator*s if you're stressing the
+filesystem part: a translator implements the [[interface/fs]] and
+[[interface/io]] interfaces. For example: *the [[pfinet]] server implements
+the socket API calls (which are mapped by [[glibc]] to equivalent RPC calls)*,
+compared to *a [[libdiskfs]]-based translator implements a filesystem, based on
+a backing store*.
+
To learn how to write a translator, read the code!
It is well documented, in particular, the header files.
The [[Hurd_Hacking_Guide]] also has a tutorial.
@@ -46,10 +63,13 @@ Marcus Brinkmann has written a document about [[documentation/translators]].
Here are some [[hints_about_debugging_translators|debugging/translator]]
available.
+Read about translator [[short-circuiting]].
+
# Existing Translators
* [[auth]]
+* [[exec]]
* [[pfinet]]
* [[pflocal]]
* [[hostmux]]
@@ -57,9 +77,7 @@ available.
* [[ext2fs]]
* [[fatfs]]
* [[magic]]
-* [[mboxfs]]
* [[unionfs]]
-* [[xmlfs]]
* ...
@@ -70,8 +88,27 @@ available.
* [[cvsfs]]
* [[tmpfs]]
* [[procfs]]
+* [[nsmux]]
* ...
+# Translators (only) in Hurdextras
+
+*These Translators are available in the [hurdextras repository](http://savannah.nongnu.org/cvs/?group=hurdextras) but not yet described on this website. They are in varying stages of Development.*
+
+* [jfs](http://www.nongnu.org/hurdextras/#jfs)
+* [httpfs](http://www.nongnu.org/hurdextras/#httpfs)
+* [gopherfs](http://www.nongnu.org/hurdextras/#cvsfs)
+* [memfs](http://www.nongnu.org/hurdextras/#gopherfs)
+* [netio](http://www.nongnu.org/hurdextras/#netio)
+* [notice](http://www.nongnu.org/hurdextras/#notice)
+* [pith](http://www.nongnu.org/hurdextras/#pith)
+* [pptop](http://www.nongnu.org/hurdextras/#pptop)
+* [run](http://www.nongnu.org/hurdextras/#run)
+* [smbfs](http://www.nongnu.org/hurdextras/#smbfs)
+* [tarfs](http://www.nongnu.org/hurdextras/#tarfs)
+* [xmlfs](http://www.nongnu.org/hurdextras/#xmlfs)
+* [mboxfs](http://www.nongnu.org/hurdextras/#mboxfs)
+
# Translator Wishlists
diff --git a/hurd/translator/auth.mdwn b/hurd/translator/auth.mdwn
index 73e7e025..d9e70ec2 100644
--- a/hurd/translator/auth.mdwn
+++ b/hurd/translator/auth.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
[[*The_Authentication_Server*|documentation/auth]], the transcript of a talk
about the details of the authentication mechanisms in the Hurd by Wolfgang
diff --git a/hurd/translator/cvsfs.mdwn b/hurd/translator/cvsfs.mdwn
index 0dd682bf..f5f1a9e0 100644
--- a/hurd/translator/cvsfs.mdwn
+++ b/hurd/translator/cvsfs.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
## Setting up cvsfs on GNU/Hurd - A step by step process
diff --git a/hurd/translator/devfs.mdwn b/hurd/translator/devfs.mdwn
index 7a00519c..27df23aa 100644
--- a/hurd/translator/devfs.mdwn
+++ b/hurd/translator/devfs.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
`devfs` is a translator sitting on `/dev` and providing what is to be provided
in there in a dynamic fashion -- as compared to static passive translator
diff --git a/hurd/translator/emailfs.mdwn b/hurd/translator/emailfs.mdwn
index 04b58f33..80e2b150 100644
--- a/hurd/translator/emailfs.mdwn
+++ b/hurd/translator/emailfs.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
# How cool it would be if the email becomes similar to snail mail?
diff --git a/hurd/translator/examples.mdwn b/hurd/translator/examples.mdwn
index b9f145e3..6319df77 100644
--- a/hurd/translator/examples.mdwn
+++ b/hurd/translator/examples.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
## Setting up translators - HowTo
diff --git a/hurd/translator/exec.mdwn b/hurd/translator/exec.mdwn
new file mode 100644
index 00000000..d5b6bfbc
--- /dev/null
+++ b/hurd/translator/exec.mdwn
@@ -0,0 +1,12 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+The *exec* server, listening on `/servers/exec`, is responsible for
+preparing the execution of processes.
diff --git a/hurd/translator/ext2fs.mdwn b/hurd/translator/ext2fs.mdwn
index cfa8c997..69d035db 100644
--- a/hurd/translator/ext2fs.mdwn
+++ b/hurd/translator/ext2fs.mdwn
@@ -1,18 +1,28 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008, 2010 Free Software Foundation,
+Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+# Issues
The `ext2fs` translator from the upstream Hurd code base can only handle file
systems with sizes of less than roughly 2 GiB.
+[[!tag open_issue_hurd]]
+
A patch exists to lift this limitation (and is being used in the
[[Debian_GNU/Hurd_distribution|running/debian]]), but it introduces another
incompatibility: `ext2fs` then only supports block sizes of 4096 bytes.
Smaller block sizes are commonly automatically selected by `mke2fs` when using
small backend stores, like floppy devices.
+
+
+# Documentation
+
+<http://www.nongnu.org/ext2-doc/>
diff --git a/hurd/translator/fatfs.mdwn b/hurd/translator/fatfs.mdwn
index b534b97e..006fac0b 100644
--- a/hurd/translator/fatfs.mdwn
+++ b/hurd/translator/fatfs.mdwn
@@ -1,11 +1,13 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation,
+Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-The current `fatfs` translator is read-only.
+The current `fatfs` translator is read-only, and it has a severe bug:
+[[!GNU_Savannah_bug 25961]].
diff --git a/hurd/translator/magic.mdwn b/hurd/translator/magic.mdwn
index f6d0494b..06ee798b 100644
--- a/hurd/translator/magic.mdwn
+++ b/hurd/translator/magic.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2006, 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2006, 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
The magic translator provides `/dev/fd`.
diff --git a/hurd/translator/mboxfs.mdwn b/hurd/translator/mboxfs.mdwn
index be959d0b..e357294f 100644
--- a/hurd/translator/mboxfs.mdwn
+++ b/hurd/translator/mboxfs.mdwn
@@ -1,11 +1,11 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
<http://www.nongnu.org/hurdextras/#mboxfs>
diff --git a/hurd/translator/nsmux.mdwn b/hurd/translator/nsmux.mdwn
new file mode 100644
index 00000000..d156772b
--- /dev/null
+++ b/hurd/translator/nsmux.mdwn
@@ -0,0 +1,121 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+# nsmux
+
+`nsmux` implements the simplest use-case of namespace-based translator
+selection (see below).
+
+To use `nsmux` do the following:
+
+ $ settrans -a <node> nsmux <directory>
+
+After this operation `<node>` will be a mirror of `<directory>` with
+namespace-based translator selection functionality enabled.
+
+Please note that due to some details `nsmux` may complain a lot when
+run as a normal user. This matter is the most urgent on the TODO
+list.
+
+## Source
+
+`nsmux` translator can be obtained with the following series of
+commands:
+
+ $ git clone git://git.sv.gnu.org/hurd/incubator.git nsmux
+ $ cd nsmux/
+ $ git checkout -b nsmux origin/nsmux
+
+`filter` translator can be obtained with the following series of
+commands:
+
+ $ git clone git://git.sv.gnu.org/hurd/incubator.git filter
+ $ cd filter/
+ $ git checkout -b filter origin/filter
+
+The filter is not yet working.
+
+## Namespace-based Translator Selection
+
+Namespace-based translator selection is the special technique of using
+"magic" filenames for both accessing the file and setting translators
+on it.
+
+A "magic" filename is a filename which contains an unescaped sequence
+of two commas: ",,". This sequence can be escaped by adding another
+comma: ",,,". In the magic filename the part up to the first double
+commas is interpreted as the filename itself; the remaining segments
+into which the string is split by occurrences of ",," are treated as
+names of translators located under `/hurd/`.
+
+The simplest advantage before traditional way of setting
+translators is shown in the following examples. Compare this
+
+ $ settrans -a file translator1
+ $ settrans -a file translator2
+ $ cat file
+
+to this:
+
+ $ cat file,,translator1,,translator2
+
+One simple command versus three more lengthy ones is an obvious
+improvement. However, this advantage is not the only one and,
+probably, not even the most important.
+
+What is a good candidate for the most important advantage is that
+translators requested via "magic" filenames are session-bound. In
+other words, by running `cat file,,translator` we set a translator
+visible *only* to `cat`, while the original file remains untranslated.
+Such session-specific translators are called **dynamic** and there is
+no (theoretical) way for a client to get a port to a dynamic
+translator requested by another client.
+
+Obviously, dynamic translators can be stacked, similarly to static
+translators. Also, dynamic translator stacks may reside on top of
+static translator stacks.
+
+An important operation of namespace-based translator selection is
+*filtering*. Filtering basically consists in looking up a translator
+by name in the stack and ignoring translators located on top of it.
+Note that filtering does not mean dropping some translators: in the
+current implementation a filter is expected to be a normal dynamic
+translator, included in the dynamic translator stack similarly to
+other translators.
+
+An important detail is that filtering is not limited to dynamic
+translator stacks: a filter should be able to descend into static
+translator stacks as well.
+
+Although the concept of filtering may seem purely abstract in the
+simplest use-case of setting dynamic translators on top of files, the
+situation changes greatly when dynamic translator stacks on top of
+directories are considered. In this case, the implementation of
+namespace-based translator selection is expected to be able to
+propagate the dynamic translators associated with the directory down
+the directory structure. That is, all files located under a directory
+opened with magic syntax, are expected to be translated by the same
+set of translators. In this case having the possibility to
+specifically discard some of the translators set up on top of certain
+files is very useful.
+
+Note that the implementation of propagation of dynamic translators
+down directories is not fully conceived at the moment. The
+fundamental problem is distinguishing between situations when the
+dynamic translators are to be set on the underlying files of the
+directory or on the directory itself.
+
+## Currently Implemented
+
+Currently there a working (though not heavily tested) implementation
+of the simplest use-case of namespace-based translator selection in
+the form of translator `nsmux`. The filter is partially implemented
+and this is the immediate goal. Propagating translators down
+directories is the next objective.
diff --git a/hurd/translator/pfinet.mdwn b/hurd/translator/pfinet.mdwn
index a8da45d7..cbe50b48 100644
--- a/hurd/translator/pfinet.mdwn
+++ b/hurd/translator/pfinet.mdwn
@@ -1,13 +1,13 @@
-[[meta copyright="Copyright © 2002, 2004, 2005, 2007, 2008 Free Software
+[[!meta copyright="Copyright © 2002, 2004, 2005, 2007, 2008 Free Software
Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
To configure Internet connectivity, the `pfinet` (*Protocol Family Internet*)
[[translator]] must be configured. This is done using the
diff --git a/hurd/translator/pfinet/implementation.mdwn b/hurd/translator/pfinet/implementation.mdwn
index 08a29280..50b5dfc2 100644
--- a/hurd/translator/pfinet/implementation.mdwn
+++ b/hurd/translator/pfinet/implementation.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2000, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2000, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
The `pfinet` server is a hacked Linux internet implementation with a glue layer
translating between the Hurd [[RPC]]s and the middle layer of the Linux
diff --git a/hurd/translator/pfinet/ipv6.mdwn b/hurd/translator/pfinet/ipv6.mdwn
index 37fabcb7..5afee0c6 100644
--- a/hurd/translator/pfinet/ipv6.mdwn
+++ b/hurd/translator/pfinet/ipv6.mdwn
@@ -1,12 +1,13 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008, 2010 Free Software Foundation,
+Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
[[Stefan_Siegl|stesie]] has added IPv6 support to the pfinet [[translator]].
This was [Savannah task #5470](http://savannah.gnu.org/task/?5470).
@@ -51,10 +52,6 @@ Quite the same, but with static IPv6 address assignment:
-A 2001:4b88:10e4:0:216:3eff:feff:4223/64 -G 2001:4b88:10e4::1
-# Binaries
+# Missing Functionality
-For your convenience -- this work is not yet available in the Debian packages
--- binaries of a patched (multicast reception) GNU Mach kernel (including
-default driver set and debugging support) and a stripped pfinet translator
-(named `pfinet6` here) are being provided at
-<http://brokenpipe.de/GnuHurd/pfinet6/>
+Amongst other things, support for [[IOCTL]]s is missing.
diff --git a/hurd/translator/pflocal.mdwn b/hurd/translator/pflocal.mdwn
index c1d4ac2b..dc2434dc 100644
--- a/hurd/translator/pflocal.mdwn
+++ b/hurd/translator/pflocal.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2000, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2000, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
The implementation of the `pflocal` server is in the `pflocal` directory, and
uses [[`libpipe`|libpipe]] (shared code with the [[named_pipe|fifo]]
diff --git a/hurd/translator/procfs.mdwn b/hurd/translator/procfs.mdwn
index eb07a8f6..404a6764 100644
--- a/hurd/translator/procfs.mdwn
+++ b/hurd/translator/procfs.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
<http://www.nongnu.org/hurdextras/#procfs>
diff --git a/hurd/translator/procfs/htop.mdwn b/hurd/translator/procfs/htop.mdwn
index 5228c702..ce38b92c 100644
--- a/hurd/translator/procfs/htop.mdwn
+++ b/hurd/translator/procfs/htop.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
open("/proc/stat", O_RDONLY) = 3
open("/proc/meminfo", O_RDONLY) = 3
diff --git a/hurd/translator/procfs/killall.mdwn b/hurd/translator/procfs/killall.mdwn
index 99790a36..3d31b51a 100644
--- a/hurd/translator/procfs/killall.mdwn
+++ b/hurd/translator/procfs/killall.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
open("/proc/stat", O_RDONLY) = 3
open("/proc/self/stat", O_RDONLY) = 3
diff --git a/hurd/translator/procfs/procps.mdwn b/hurd/translator/procfs/procps.mdwn
index 99790a36..3d31b51a 100644
--- a/hurd/translator/procfs/procps.mdwn
+++ b/hurd/translator/procfs/procps.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
open("/proc/stat", O_RDONLY) = 3
open("/proc/self/stat", O_RDONLY) = 3
diff --git a/hurd/translator/procfs/top.mdwn b/hurd/translator/procfs/top.mdwn
index f0030d61..2cba78ad 100644
--- a/hurd/translator/procfs/top.mdwn
+++ b/hurd/translator/procfs/top.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
open("/proc/stat", O_RDONLY) = 3
open("/proc/sys/kernel/pid_max", O_RDONLY) = 3
diff --git a/hurd/translator/short-circuiting.mdwn b/hurd/translator/short-circuiting.mdwn
new file mode 100644
index 00000000..9de9f7b8
--- /dev/null
+++ b/hurd/translator/short-circuiting.mdwn
@@ -0,0 +1,88 @@
+[[!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]]."]]"""]]
+
+In traditional [[Unix]], file systems contain special files. These are:
+symbolic links, character devices, block devices, named pipes, and
+named sockets. Naturally the Hurd also support these.
+
+However, if you take a look at `hurd/io.defs` and `hurd/fs.defs`, you'll
+find that there are no [[RPC]]s that deal specifically with these types.
+Sure, you can get the type of the file through `io_stat` (among other
+things), but there are none that e.g. lets you create a symbolic link.
+
+If you take a look at how [[glibc]] implements `symlink`, you'll notice
+that all it does is create a new file and set its passive translator to
+`/hurd/symlink DEST`. You can verify this yourself by creating a symlink
+with `ln -s foo bar` and print its passive translator setting with `showtrans
+bar`.
+
+This is how the other special files are implemented as well. The header
+`hurd/paths.h` contains a list of paths that are used to implement
+special files:
+
+ * `/hurd/symlink`
+ * `/hurd/chrdev`
+ * `/hurd/blkdev`
+ * `/hurd/fifo`
+ * `/hurd/ifsock`
+
+So all special files are implemented through special-purpose translators,
+right? Not quite, instead the translators of this list are often
+implemented in their underlying filesystem through *translator
+short-circuiting*. In fact, `chrdev` and `blkdev` aren't even implemented
+as translators at all.
+
+Translator short-circuiting is when a file system server implements the
+functionality of a passive translator itself, instead of actually starting
+it. For instance, all the [[`symlink`|symlink]] translator does is return
+a `FS_RETRY_*` reply to the caller. So instead of starting it, the file
+system server can simply continue the file name look-up internally by
+appending the target of the symbolic link to the path being looked-up.
+
+This way, we can skip starting the `symlink` translator, skip retrying
+the look-up on the newly started translator, and we might also skip a
+retry to the same file system server again, if the target of the symbolic
+link is in it.
+
+In fact, the list's translators that actually are implemented (`symlink`,
+`fifo`, `ifsock`) are only used as a default implementation if the underlying
+file system's translator does not implement the functionality itself, i.e., if
+it doesn't short-circuit it.
+
+To make sure that you use one of these translators, there by bypassing the
+short-circuiting mechanism, you can either start it as
+an active translator, or use a different path from the one in
+`hurd/path.h`, e.g. `settrans bar /hurd/./symlink foo`.
+
+The best example of how short-circuiting is implemented can be found
+in [[`libdiskfs`|libdiskfs]]. Notice how it detects if a translator to store
+is a special file in `diskfs_S_file_set_translator` and instead
+of storing a real passive translator setting on the disk, stores it as a
+symlink node (using `diskfs_create_symlink_hook` or a generic implementation).
+
+In later look-ups to the node, it checks the node's `stat` structure in
+`diskfs_S_file_get_translator`, or
+`diskfs_S_dir_lookup` and handles special file types appropriately.
+
+Doing this translator short-circuiting has disadvantages: code duplication, or
+in general adding code complexity that isn't needed for implementing the same
+functionality, but it also has advantages: using functionality that the file
+system's data structures nevertheless already provide -- storing symbolic links
+in `ext2fs`' inodes instead of storing passive translator settings -- and thus
+staying compatible with other operating systems mounting that file system.
+
+Also, this short-circuiting does preserve system resources, as it's no longer
+required to start a `symlink` translator for resolving each symbolic link, as
+well as it does reduce the [[RPC]] overhead.
+
+It can also confuse users who expect the passive translator to start.
+For instance, if a user notices that [[`symlink`|symlink]]'s code is
+lacking some functionality, but that it unexpectedly works when the user
+tries to run it.
diff --git a/hurd/translator/storeio.mdwn b/hurd/translator/storeio.mdwn
index 49d70e1b..8e26a959 100644
--- a/hurd/translator/storeio.mdwn
+++ b/hurd/translator/storeio.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
`storeio` is a *translator for devices and other stores*.
@@ -27,4 +27,4 @@ You can even `ungzip` files on the fly (`bunzip2` is available as well):
You can use the *typed store*, to create filter chains (of course this example
is kind of useless since you could use the `gunzip` store directly):
- settrans -ca node /hurd/storeio -T type gunzip:file:foo.gz
+ settrans -ca node /hurd/storeio -T typed gunzip:file:foo.gz
diff --git a/hurd/translator/stowfs.mdwn b/hurd/translator/stowfs.mdwn
index 022e3d5e..9c88f1a3 100644
--- a/hurd/translator/stowfs.mdwn
+++ b/hurd/translator/stowfs.mdwn
@@ -1,11 +1,11 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-[[meta redir=unionfs#stowfs]]
+[[!meta redir=unionfs#stowfs]]
diff --git a/hurd/translator/tmpfs.mdwn b/hurd/translator/tmpfs.mdwn
index bb9ef269..0179ad6c 100644
--- a/hurd/translator/tmpfs.mdwn
+++ b/hurd/translator/tmpfs.mdwn
@@ -1,21 +1,28 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation,
+Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
`tmpfs` is a file system server for temporary data storage without using a real
(permanent) [[backing_store]].
It is based on [[libdiskfs]].
-It's not working correctly at the moment.
+Even though there are other possibilities of creating a
+[[libstore/examples/ramdisk]] and running a regular, for example, [[`ext2` file
+system|ext2fs]] on it, having a real `tmpfs` is better, as it need not deal
+with the additional block-level indirection layer that `ext2` (or any other
+disk-based file system) imposes.
-[[inline
+However, `tmpfs` is not working correctly at the moment:
+
+[[!inline
pages="hurd/translator/tmpfs/*"
show=0
feeds=no
diff --git a/hurd/translator/tmpfs/notes_bing.mdwn b/hurd/translator/tmpfs/notes_bing.mdwn
index 2392bd61..fa3eeac2 100644
--- a/hurd/translator/tmpfs/notes_bing.mdwn
+++ b/hurd/translator/tmpfs/notes_bing.mdwn
@@ -1,12 +1,15 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation,
+Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!tag open_issue_hurd]]
1. to run tmpfs as a regular user, /servers/default-pager must be executable by
that user. by default it seems to be set to read/write.
diff --git a/hurd/translator/tmpfs/notes_various.mdwn b/hurd/translator/tmpfs/notes_various.mdwn
index 90636b61..5e4e991c 100644
--- a/hurd/translator/tmpfs/notes_various.mdwn
+++ b/hurd/translator/tmpfs/notes_various.mdwn
@@ -1,13 +1,15 @@
-[[meta copyright="Copyright © 2005, 2006, 2007, 2008
- Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2005, 2006, 2007, 2008, 2009 Free Software
+Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!tag open_issue_hurd]]
<antrik> hde: what's the status on tmpfs?
<hde> Broke
@@ -210,3 +212,7 @@ is included in the section entitled
<antrik> seems something more broke in the meantime :-(
<antrik> ah, right... but I the main problem was some other change
<antrik> (or maybe it never really worked, not sure anymore)
+
+---
+
+[[!GNU_Savannah_bug 26751]]
diff --git a/hurd/translator/tmpfs/tmpfs_vs_defpager.mdwn b/hurd/translator/tmpfs/tmpfs_vs_defpager.mdwn
new file mode 100644
index 00000000..ef041a23
--- /dev/null
+++ b/hurd/translator/tmpfs/tmpfs_vs_defpager.mdwn
@@ -0,0 +1,73 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+\#hurd, freenode, 2010
+
+ <slpz> humm... why does tmpfs try to use the default pager? that's a bad idea, and probably will never work correctly...
+ * slpz is thinking about old issues
+ <slpz> tmpfs should create its own pagers, just like ext2fs, storeio...
+ <slpz> slopez@slp-hurd:~$ settrans -a tmp /hurd/tmpfs 10M
+ <slpz> slopez@slp-hurd:~$ echo "foo" > tmp/bar
+ <slpz> slopez@slp-hurd:~$ cat tmp/bar
+ <slpz> foo
+ <slpz> slopez@slp-hurd:~$
+ <slpz> :-)
+ <pochu> slpz: woo you fixed it?
+ <slpz> pochu: well, it's WIP, but reading/writing works...
+ <slpz> I've replaced the use of default pager for the standard pager creation mechanism
+ <antrik> slpz: err... how is it supposed to use swap space if not using the default pager?
+ <antrik> slpz: or do you mean that it should act as a proxy, just allocating anonymous memory (backed by the default pager) itself?
+ <youpi> antrik: the kernel uses the default pager if the application pager isn't responsive enough
+ <slpz> antrik: it will just create memory objects and provide zerofilled pages when requested by the kernel (after a page fault)
+ <antrik> youpi: that makes sense I guess... but how is that relevant to the question at hand?...
+ <slpz> antrik: memory objects will contain the data by themselves
+ <slpz> antrik: as youpi said, when memory is scarce, GNU Mach will start paging out data from memory objects to the default pager
+ <slpz> antrik: that's the way in which pages will get into swap space
+ <slpz> (if needed)
+ <youpi> the thing being that the tmpfs pager has a chance to select pages he doesn't care any more about
+ <antrik> slpz: well, the point is that instead of writing the pages to a backing store, tmpfs will just keep them in anonymous memory, and let the default pager write them out when there is pressure, right?
+ <antrik> youpi: no idea what you are talking about. apparently I still don't really understand this stuff :-(
+ <youpi> ah, but tmpfs doesn't have pages he doesn't care about, does it?
+ <slpz> antrik: yes, but the term "anonymous memory" could be a bit confusing.
+ <slpz> antrik: in GNU Mach, anonymous memory is backed by a memory object without a pager. In tmpfs, nodes will be allocated in memory objects, and the pager for those memory objects will be tmpfs itself
+ <antrik> slpz: hm... I thought anynymous memory is backed by memory objects created from the default pager?
+ <antrik> yes, I understand that tmpfs is supposed to be the pager for the objects it provides. they are obviously not anonymoust -- they have inodes in the tmpfs name space
+ <antrik> but my understanding so far was that when Mach returns pages to the pager, they end up in anonymous memory allocated to the pager process; and then this pager is responsible for writing them back to the actual backing store
+ <antrik> am I totally off there?...
+ <antrik> (i.e. in my understanding the returned pages do not reside in the actual memory object the pager provides, but in an anonymous memory object)
+ <slpz> antrik: you're right. The trick here is, when does Mach return the pages?
+ <slpz> antrik: if we set the attribute "can_persist" in a memory object, Mach will keep it until object cache is full or memory is scarce
+ <slpz> or we change the attributes so it can no longer persist, of course
+ <slpz> without a backing store, if Mach starts sending us pages to be written, we're in trouble
+ <slpz> so we must do something about it. One option, could be creating another pager and copying the contents between objects.
+ <antrik> another pager? not sure what you mean
+ <antrik> BTW, you didn't really say why we can't use the default pager for tmpfs objects :-)
+ <slpz> well, there're two problems when using the default pager as backing store for translators
+ <slpz> 1) Mach relies on it to do swapping tasks, so meddling with it is not a good idea
+ <slpz> 2) There're problems with seqnos when trying to work with the default pager from tasks other the kernel itself
+ <slpz> (probably, the latter could be fixed)
+ <slpz> antrik: pager's terminology is a bit confusing. One can also say creating another memory object (though the function in libpager is "pager_create")
+ <antrik> not sure why "meddling" with it would be a problem...
+ <antrik> and yeah, I was vaguely aware that there is some seqno problem with tmpfs... though so far I didn't really understand what it was about :-)
+ <antrik> makes sense now
+ <antrik> anyways, AIUI now you are trying to come up with a mechanism where the default pager is not used for tmpfs objects directly, but without making it inefficient?
+ <antrik> slpz: still don't understand what you mean by creating another memory object/pager...
+ <antrik> (and yeat, the terminology is pretty mixed up even in Mach itself)
+ <slpz> antrik: I meant creating another pager, in terms of calling again to libpager's pager_create
+ <antrik> slpz: well, I understand what "create another pager" means... I just don't understand what this other pager would be, when you would create it, and what for...
+ <slpz> antrik: oh, ok, sorry
+ <slpz> antrik: creating another pager it's just a trick to avoid losing information when Mach's objects cache is full, and it decides to purge one of our objects
+ <slpz> anyway, IMHO object caching mechanism is obsolete and should be replaced
+ <slpz> I'm writting a comment to bug #28730 which says something about this
+ <slpz> antrik: just one more thing :-)
+ <slpz> if you look at the code, for most time of their lives, anonymous memory objects don't have a pager
+ <slpz> not even the default one
+ <slpz> only the pageout thread, when the system is running really low on memory, gives them a reference to the default pager by calling vm_object_pager_create
+ <slpz> this is not really important, but worth noting ;-)
diff --git a/hurd/translator/unionfs.mdwn b/hurd/translator/unionfs.mdwn
index 7eee5245..d1e3868b 100644
--- a/hurd/translator/unionfs.mdwn
+++ b/hurd/translator/unionfs.mdwn
@@ -1,17 +1,155 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008, 2009, 2010 Free Software Foundation,
+Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-<http://www.nongnu.org/hurdextras/#unionfs>
+# `unionfs`
+*Unionfs allows you to simply union one directory or translator into another one, so you see the files of both of them side by side.*
+
+Source repository: <http://git.savannah.gnu.org/cgit/hurd/unionfs.git/>
+
+Right now there are some problems with syncing, so please be aware
+that it might not work as expected.
+
+<a name="unionmount"></a>
+# `unionmount`
+
+... is a special mode of `unionfs`.
+
+## Project Idea
+
+When setting a translator on Hurd -- similar to mounting a file system on UNIX
+-- the new node(s) exported by the translator are obscuring the original node
+where the translator is set, and any nodes below it in the directory tree. The
+translator itself can access the underlying node (which is a very nice feature,
+as it allows translators presenting the contents of the node in a different
+format); but it's no longer accessible from the "outside".
+
+Plan9 has a feature where a file system can be mounted in union mode: the new
+file system doesn't obscure the mount point in this case, but instead the
+contents are combined. (This feature has also been under discussion in Linux
+for a couple of years now, under the label "VFS-based union mounts".)
+
+This kind of union mounts is generally useful, as it's sometimes more
+convenient than unioning existing filesystem locations with unionfs -- it's not
+necessary to mount a file system that is to be unioned at some external
+location first: just union-mount it directly at the target location.
+
+But union mounts also allow creating passive translator hierarchies: If there
+is a passive translator on a parent node, and further passive translators on
+child nodes, the union mount allows the child nodes with the further translator
+settings still to be visible after the parent translator has started.
+
+This could be useful for device nodes for example: let's say we have an
+ethernet multiplexer at /dev/veth. Now the virtual subnodes could all be
+directly under /dev, i.e. /dev/veth0, /dev/veth1 etc., and explicitely refer to
+the main /dev/veth node in the translator command line. It would be more
+elegant however to store the virtual nodes direcly below the main multiplexer
+node -- /dev/veth/0, /dev/veth/1 etc.
+
+There are two possible approaches how union mounts could be implemented in the
+Hurd. The first one is to let the various translators handle union mounts
+internally, i.e. let them present the underlying nodes to the clients in
+addition to the actual nodes they export themselfs. This probably can be
+implemented as some kind of extension to the existing netfs and diskfs
+libraries.
+
+The other possible apporach is less efficient and probably more tricky, but
+probably also more generic: create a special unionmount translator, which
+serves as a kind of proxy: setting the union-mounted translator on some
+internal node; and at the actual mount location, presenting a union of the
+nodes exported by this translator, and the nodes from the underlying file
+system.
+
+The goal of this project is implementing union mounts using either of the
+approaches described above. (Though it might be useful initially to prototype
+both for comparision.) The ethernet multiplexer shall serve as an example use
+case -- any changes necessary to allow using it with the union mount
+functionality are also to be considered part of the task.
+
+[[Sergiu Ivanov|scolobb]] has been working on this as a [[Google Summer of Code
+2009 project|community/gsoc/2009]].
+
+## Implementation
+
+### Source
+
+Union mounts are currently implemented as two additional command line
+options of the `unionfs` translator. This implementation resides in
+the master-unionmount branch of the unionfs git repository. To
+checkout the code, do the following:
+
+ $ git clone git://git.sv.gnu.org/hurd/unionfs.git
+ $ cd unionfs
+ $ git checkout -b master-unionmount
+ $ git pull origin master-unionmount
+
+You can skip the checkout step if you don't mind that the
+`master-unionmount` branch gets merged into the `master` branch.
+
+### Short Documentation
+
+The `unionmount` project adds options "--mount" and "--no-mount" to
+`unionfs` (short versions: "-t" and "-n" correspondingly). Both
+options are used to implement union-mounting, but the first option
+will create a *transparent* union mount, while the second option will
+create a *nontransparent* union mount.
+
+One can create a transparent union mount with the following command:
+
+ $ settrans -a <node> unionfs --underlying --mount=<translator>
+
+When running
+
+ $ fsysopts <node>
+
+one will see the information about the `<translator>`, not the
+`unionfs` translator. Although this might seem the only natural way
+to do union mounts, one must keep in mind that such transparency
+deprives one of the possibility to modify the unioned virtual
+filesystem exported by `unionfs` at run-time (via `fsysopts`).
+
+One can create a nontransparent union mount with the following command:
+
+ $ settrans -a <node> unionfs --underlying --no-mount=<translator>
+
+When running
+
+ $ fsysopts <node>
+
+one will see the information about the `unionfs` translator. Although
+this way allows modifying the contents of the unioned filesystem
+exported by `unionfs` at runtime, the access to `<translator>` is
+blocked.
+
+The filesystem exported by the *mountee* (`<translator>`) is actually
+treated like a normal filesystem within `unionfs`, which means that
+one can assign priorities to the *mountee* to achieve the desired
+order of layering of the unioned directories. The following will make
+`unionfs` query the underlying filesystem first and then the
+*mountee*:
+
+ $ settrans -a <node> unionfs --priority=2 --underlying --priority=1 --mount=<translator>
+
+Note that the same functionality can also be achieved by assigning
+priority 1 to the underlying filesystem and keeping the priority of
+the *mountee* at 0.
<a name="stowfs"></a>
# `stowfs`
... is a special mode of `unionfs`.
+
+# External Links
+
+ * [*Unioning file systems for Linux*](http://valerieaurora.org/union/)
+
+ * [FUSE page about
+ `unionfs`](http://sourceforge.net/apps/mediawiki/fuse/index.php?title=UnionFileSystems)
diff --git a/hurd/translator/unionmount.mdwn b/hurd/translator/unionmount.mdwn
new file mode 100644
index 00000000..7384afc7
--- /dev/null
+++ b/hurd/translator/unionmount.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!meta redir=unionfs#unionmount]]
diff --git a/hurd/translator/wishlist_1.mdwn b/hurd/translator/wishlist_1.mdwn
index 6a4d591a..36290883 100644
--- a/hurd/translator/wishlist_1.mdwn
+++ b/hurd/translator/wishlist_1.mdwn
@@ -1,13 +1,13 @@
-[[meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation,
+[[!meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation,
Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
* [[devfs]]
diff --git a/hurd/translator/wishlist_2.mdwn b/hurd/translator/wishlist_2.mdwn
index 3ea68999..a927db55 100644
--- a/hurd/translator/wishlist_2.mdwn
+++ b/hurd/translator/wishlist_2.mdwn
@@ -76,6 +76,8 @@ Here's an [idea](http://www.circlemud.org/~jelson/software/fusd/docs/node13.html
Am I off my rocker, or does an IMAP/POP translator sound like a good idea? It would make your remote mail servers look like local ones. Or what about a translator that makes a mbox format mail spool look like a directory. Can anyone think of a good use for an SMTP translator?
+*Definitely: Copy my email in there to send it.* -- [[ArneBab|community/weblogs/ArneBab]]
+
## <a name="UUEncode"> </a> UUEncode
How about a UUEncode translator for those places you can only store ASCII. Combine this with a NNTP translator and store your data in someone's Usenet archive. Or since, (as far as I know), there are no size limitations on file names in the Hurd, why not have a filesystem translator whose underlying store is a file name. (Now ls becomes cat).
diff --git a/hurd/translator/writing/example.mdwn b/hurd/translator/writing/example.mdwn
index 170812ad..0a3be4df 100644
--- a/hurd/translator/writing/example.mdwn
+++ b/hurd/translator/writing/example.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
## Data User-Server Translator Example
diff --git a/hurd/translator/xmlfs.mdwn b/hurd/translator/xmlfs.mdwn
index cff15f59..769c43ce 100644
--- a/hurd/translator/xmlfs.mdwn
+++ b/hurd/translator/xmlfs.mdwn
@@ -1,11 +1,11 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
<http://www.nongnu.org/hurdextras/#xmlfs>
diff --git a/hurd/virtual_file_system.mdwn b/hurd/virtual_file_system.mdwn
index 2902a26e..b62a5e4c 100644
--- a/hurd/virtual_file_system.mdwn
+++ b/hurd/virtual_file_system.mdwn
@@ -1,19 +1,19 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
Path names are resolved using a distributed protocol.
No single entity is responsible for the resolution of
path names. A file system server (a [[translator]])
attaches to translators (`fs.defs:file_set_translator`).
-When a process resolves an aboslute path, it queries
+When a process resolves an absolute path, it queries
its root file system server by invoking the `fs.defs:dir_lookup`
method in the capability in its root directory slot. The
file system server resolves as much as it knows about locally
diff --git a/hurd/virtualization.mdwn b/hurd/virtualization.mdwn
index dfd6c375..42f83f77 100644
--- a/hurd/virtualization.mdwn
+++ b/hurd/virtualization.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
Olaf Buddenhagen has written a text about how [[/virtualization]] is applicable
within Hurd systems:
diff --git a/hurd/what_is_the_gnu_hurd.mdwn b/hurd/what_is_the_gnu_hurd.mdwn
index b125fc48..0b8f7ef6 100644
--- a/hurd/what_is_the_gnu_hurd.mdwn
+++ b/hurd/what_is_the_gnu_hurd.mdwn
@@ -1,15 +1,15 @@
-[[meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2007, 2008 Free
+[[!meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2007, 2008 Free
Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-[[meta title="What Is the GNU Hurd?"]]
+[[!meta title="What Is the GNU Hurd?"]]
The Hurd is the GNU project's replacement for the [[Unix]] kernel.
diff --git a/hurd/what_is_the_gnu_hurd/gramatically_speaking.mdwn b/hurd/what_is_the_gnu_hurd/gramatically_speaking.mdwn
index 4a2ddc67..5905a19b 100644
--- a/hurd/what_is_the_gnu_hurd/gramatically_speaking.mdwn
+++ b/hurd/what_is_the_gnu_hurd/gramatically_speaking.mdwn
@@ -1,15 +1,15 @@
-[[meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2008 Free Software
+[[!meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2008 Free Software
Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-[[meta title="Grammatically speaking..."]]
+[[!meta title="Grammatically speaking..."]]
> [[It's_time_to_explain|origin_of_the_name]] the meaning of *Hurd*.
>
diff --git a/hurd/what_is_the_gnu_hurd/origin_of_the_name.mdwn b/hurd/what_is_the_gnu_hurd/origin_of_the_name.mdwn
index 3527703a..51857e21 100644
--- a/hurd/what_is_the_gnu_hurd/origin_of_the_name.mdwn
+++ b/hurd/what_is_the_gnu_hurd/origin_of_the_name.mdwn
@@ -1,15 +1,15 @@
-[[meta copyright="Copyright © 1996, 1997, 1998, 2002, 2003, 2004, 2007, 2008
+[[!meta copyright="Copyright © 1996, 1997, 1998, 2002, 2003, 2004, 2007, 2008
Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-[[meta title="Origin of the Name"]]
+[[!meta title="Origin of the Name"]]
[According to Thomas
Bushnell](http://web.cecs.pdx.edu/~trent/gnu/hurd/hurd-name), the primary
diff --git a/ibac.mdwn b/ibac.mdwn
index 5247c297..c1d46ba8 100644
--- a/ibac.mdwn
+++ b/ibac.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
IBAC stands for identity-based access control.
In this access control scheme, access to a resource
diff --git a/idl.mdwn b/idl.mdwn
index 60e3fea6..db58f789 100644
--- a/idl.mdwn
+++ b/idl.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
An IDL is an interface definition language. The most well-known is
CORBA. An IDL compiler takes a specification and generates stubs
diff --git a/ikiwiki.setup b/ikiwiki.setup
index 20ce485b..89130e2b 100644
--- a/ikiwiki.setup
+++ b/ikiwiki.setup
@@ -1,9 +1,10 @@
#!/usr/bin/perl
-# Setup file for ikiwiki.
#
+# Setup file for ikiwiki.
+#
# Passing this to ikiwiki --setup will make ikiwiki generate
# wrappers and build the wiki.
-#
+#
# Remember to re-run ikiwiki --setup any time you edit this file.
require IkiWiki::Setup::Standard;
@@ -38,7 +39,9 @@ IkiWiki::Setup::Standard->import({
# users who are wiki admins
adminuser => [qw{tschwinge}],
# users who are banned from the wiki
- banned_users => [],
+ banned_users => [qw{AlbertF bernhart ColetCris flamberian jasclaine
+ http://calvinyoung.myopenid.com/
+ http://hilarybunton.myopenid.com/}],
# where the source of the wiki is located
srcdir => $srcdir,
# where to build the wiki
@@ -47,7 +50,7 @@ IkiWiki::Setup::Standard->import({
url => 'http://www.bddebian.com:8888/~hurd-web',
# url to the ikiwiki.cgi
cgiurl => 'http://www.bddebian.com:8888/cgi-bin/hurd-web-ikiwiki.cgi',
- # cgi wrapper to generate
+ # filename of cgi wrapper to generate
cgi_wrapper => $cgi_wrapper,
# mode for cgi_wrapper (can safely be made suid)
cgi_wrappermode => '06755',
@@ -57,22 +60,26 @@ IkiWiki::Setup::Standard->import({
add_plugins => [qw{goodstuff cutpaste editdiff edittemplate favicon html sidebar table txt copyright license texinfo}],
# plugins to disable
disable_plugins => [],
- # location of template files
+ # additional directory to search for template files
templatedir => $srcdir.'/.templates',
# base wiki source location
#underlaydir => '/usr/share/ikiwiki/basewiki',
- # display verbose messages when building?
+ # display verbose messages?
verbose => 1,
# log to syslog?
syslog => 0,
# create output files named page/index.html?
usedirs => 1,
# use '!'-prefixed preprocessor directives?
- prefix_directives => 0,
+ prefix_directives => 1,
# use page/index.mdwn source files
indexpages => 0,
# enable Discussion pages?
discussion => 1,
+ # name of Discussion pages
+ discussionpage => 'Discussion',
+ # generate HTML5? (experimental)
+ html5 => 0,
# only send cookies over SSL connections?
sslcookie => 0,
# extension to use for new pages
@@ -91,17 +98,26 @@ IkiWiki::Setup::Standard->import({
hardlink => 1,
# force ikiwiki to use a particular umask
#umask => 022,
+ # group for wrappers to run in
+ #wrappergroup => 'ikiwiki',
# extra library and plugin directory
libdir => $srcdir.'/.library',
# environment variables
ENV => {},
- # regexp of source files to ignore
- #exclude => '\\.wav$',
+ # regexp of normally excluded files to include
+ #include => '^\\.htaccess$',
+ # regexp of files that should be skipped
+ #exclude => '^(*\\.private|Makefile)$',
# specifies the characters that are allowed in source filenames
wiki_file_chars => '-[:alnum:]+/.:_',
# allow symlinks in the path leading to the srcdir (potentially insecure)
#allow_symlinks_before_srcdir => 0,
+ ######################################################################
+ # core plugins
+ # (editpage, git, htmlscrubber, inline, link, meta)
+ ######################################################################
+
# git plugin
# git hook to generate
git_wrapper => $git_wrapper,
@@ -113,43 +129,13 @@ IkiWiki::Setup::Standard->import({
#untrusted_committers => [],
# gitweb url to show file history ([[file]] substituted)
historyurl => 'http://www.bddebian.com:8888/gitweb/?p=hurd-web;a=history;f=[[file]]',
- # gitweb url to show a diff ([[sha1_to]], [[sha1_from]], [[sha1_parent]], [[sha1_commit]] and [[file]] substituted)
+ # gitweb url to show a diff ([[file]], [[sha1_to]], [[sha1_from]], [[sha1_commit]], and [[sha1_parent]] substituted)
diffurl => 'http://www.bddebian.com:8888/gitweb/?p=hurd-web;a=blobdiff;h=[[sha1_to]];hp=[[sha1_from]];hb=[[sha1_parent]];f=[[file]]',
# where to pull and push changes (set to empty string to disable)
gitorigin_branch => $gitorigin_branch,
# branch that the wiki is stored in
gitmaster_branch => 'master',
- # aggregate plugin
- # enable aggregation to internal pages?
- #aggregateinternal => 0,
- # allow aggregation to be triggered via the web?
- #aggregate_webtrigger => 0,
-
- # anonok plugin
- # PageSpec to limit which pages anonymous users can edit
- #anonok_pagespec => '*/discussion',
-
- # attachment plugin
- # enhanced PageSpec specifying what attachments are allowed
- #allowed_attachments => 'virusfree() and mimetype(image/*) and maxsize(50kb)',
- # virus checker program (reads STDIN, returns nonzero if virus found)
- #virus_checker => 'clamdscan -',
-
- # bzr plugin
- # bzr post-commit hook to generate
- #bzr_wrapper => '',
- # mode for bzr_wrapper (can safely be made suid)
- #bzr_wrappermode => '06755',
- # url to show file history, using loggerhead ([[file]] substituted)
- #historyurl => '',
- # url to view a diff, using loggerhead ([[file]] and [[r2]] substituted)
- #diffurl => 'http://example.com/revision?start_revid=[[r2]]#[[file]]-s',
-
- # calendar plugin
- # base of the archives hierarchy
- #archivebase => 'archives',
-
# htmlscrubber plugin
# PageSpec specifying pages not to scrub
#htmlscrubber_skip => '!*/Discussion',
@@ -166,77 +152,144 @@ IkiWiki::Setup::Standard->import({
# urls to ping (using XML-RPC) on feed update
pingurl => [],
- # listdirectives plugin
- # directory in srcdir that contains directive descriptions
- #directive_description_dir => 'ikiwiki/directive',
+ ######################################################################
+ # auth plugins
+ # (anonok, blogspam, httpauth, lockedit, moderatedcomments,
+ # opendiscussion, openid, passwordauth, signinedit)
+ ######################################################################
+
+ # anonok plugin
+ # PageSpec to limit which pages anonymous users can edit
+ #anonok_pagespec => '*/discussion',
+
+ # blogspam plugin
+ # PageSpec of pages to check for spam
+ #blogspam_pagespec => 'postcomment(*)',
+ # options to send to blogspam server
+ #blogspam_options => 'blacklist=1.2.3.4,blacklist=8.7.6.5,max-links=10',
+ # blogspam server XML-RPC url
+ #blogspam_server => '',
+
+ # httpauth plugin
+ # url to redirect to when authentication is needed
+ #cgiauthurl => 'http://example.com/wiki/auth/ikiwiki.cgi',
+ # PageSpec of pages where only httpauth will be used for authentication
+ #httpauth_pagespec => '!*/Discussion',
# lockedit plugin
# PageSpec controlling which pages are locked
#locked_pages => '!*/Discussion',
+ # moderatedcomments plugin
+ # PageSpec matching users or comment locations to moderate
+ #moderate_pagespec => '*',
+
+ # passwordauth plugin
+ # a password that must be entered when signing up for an account
+ #account_creation_password => 's3cr1t',
+ # cost of generating a password using Authen::Passphrase::BlowfishCrypt
+ #password_cost => 8,
+
+ ######################################################################
+ # format plugins
+ # (creole, highlight, hnb, html, mdwn, otl, po, rawhtml, textile,
+ # txt)
+ ######################################################################
+
+ # highlight plugin
+ # types of source files to syntax highlight
+ #tohighlight => '.c .h .cpp .pl .py Makefile:make',
+
# mdwn plugin
# enable multimarkdown features?
#multimarkdown => 0,
- # mercurial plugin
- # mercurial post-commit hook to generate
- #mercurial_wrapper => '',
- # mode for mercurial_wrapper (can safely be made suid)
- #mercurial_wrappermode => '06755',
- # url to hg serve'd repository, to show file history ([[file]] substituted)
- #historyurl => 'http://example.com:8000/log/tip/[[file]]',
- # url to hg serve'd repository, to show diff ([[file]] and [[r2]] substituted)
- #diffurl => 'http://localhost:8000/?fd=[[r2]];file=[[file]]',
+ # po plugin
+ # master language (non-PO files)
+ #po_master_language => {
+ # code => 'en',
+ # name => 'English'
+ #},
+ # slave languages (PO files)
+ #po_slave_languages => {
+ # de => 'Deutsch',
+ # es => 'Español',
+ # fr => 'Français'
+ #},
+ # PageSpec controlling which pages are translatable
+ #po_translatable_pages => '* and !*/Discussion',
+ # internal linking behavior (default/current/negotiated)
+ #po_link_to => 'current',
- # mirrorlist plugin
- # list of mirrors
- #mirrorlist => {},
+ ######################################################################
+ # web plugins
+ # (attachment, comments, editdiff, edittemplate, getsource,
+ # google, mirrorlist, remove, rename, repolist, search,
+ # websetup, wmd)
+ ######################################################################
- # openid plugin
- # an url where users can signup for an OpenID
- #openidsignup => 'http://myopenid.com/',
+ # attachment plugin
+ # enhanced PageSpec specifying what attachments are allowed
+ #allowed_attachments => 'virusfree() and mimetype(image/*) and maxsize(50kb)',
+ # virus checker program (reads STDIN, returns nonzero if virus found)
+ #virus_checker => 'clamdscan -',
- # passwordauth plugin
- # a password that must be entered when signing up for an account
- #account_creation_password => 's3cr1t',
- # cost of generating a password using Authen::Passphrase::BlowfishCrypt
- #password_cost => 8,
+ # comments plugin
+ # PageSpec of pages where comments are allowed
+ #comments_pagespec => 'blog/* and !*/Discussion',
+ # PageSpec of pages where posting new comments is not allowed
+ #comments_closed_pagespec => 'blog/controversial or blog/flamewar',
+ # Base name for comments, e.g. "comment_" for pages like "sandbox/comment_12"
+ #comments_pagename => '',
+ # Interpret directives in comments?
+ #comments_allowdirectives => 0,
+ # Allow anonymous commenters to set an author name?
+ #comments_allowauthor => 0,
+ # commit comments to the VCS
+ #comments_commit => 1,
- # pinger plugin
- # how many seconds to try pinging before timing out
- #pinger_timeout => 15,
+ # getsource plugin
+ # Mime type for returned source.
+ #getsource_mimetype => 'text/plain; charset=utf-8',
- # prettydate plugin
- # format to use to display date
- #prettydateformat => '%X, %B %o, %Y',
+ # mirrorlist plugin
+ # list of mirrors
+ #mirrorlist => {},
- # recentchanges plugin
- # name of the recentchanges page
- recentchangespage => 'recent_changes',
- # number of changes to track
- recentchangesnum => 100,
+ # repolist plugin
+ # URIs of repositories containing the wiki's source
+ #repositories => [qw{svn://svn.example.org/wiki/trunk}],
# search plugin
# path to the omega cgi program
#omega_cgi => '/usr/lib/cgi-bin/omega/omega',
- # svn plugin
- # subversion repository location
- #svnrepo => '/svn/wiki',
- # path inside repository where the wiki is located
- #svnpath => 'trunk',
- # svn post-commit hook to generate
- #svn_wrapper => '/svn/wikirepo/hooks/post-commit',
- # mode for svn_wrapper (can safely be made suid)
- #svn_wrappermode => '04755',
- # viewvc url to show file history ([[file]] substituted)
- #historyurl => 'http://svn.example.org/trunk/[[file]]',
- # viewvc url to show a diff ([[file]], [[r1]], and [[r2]] substituted)
- #diffurl => 'http://svn.example.org/trunk/[[file]]?root=wiki&amp;r1=[[r1]]&amp;r2=[[r2]]',
+ # websetup plugin
+ # list of plugins that cannot be enabled/disabled via the web interface
+ #websetup_force_plugins => [],
+ # list of additional setup field keys to treat as unsafe
+ #websetup_unsafe => [],
+ # show unsafe settings, read-only, in web interface?
+ #websetup_show_unsafe => 1,
- # tag plugin
- # parent page tags are located under
- #tagbase => 'tag',
+ ######################################################################
+ # widget plugins
+ # (calendar, color, conditional, cutpaste, date, format, fortune,
+ # graphviz, haiku, img, linkmap, listdirectives, map, more,
+ # orphans, pagecount, pagestats, poll, polygen, postsparkline,
+ # progress, shortcut, sparkline, table, template, teximg, toc,
+ # toggle, version)
+ ######################################################################
+
+ # calendar plugin
+ # base of the archives hierarchy
+ #archivebase => 'archives',
+ # PageSpec of pages to include in the archives; used by ikiwiki-calendar command
+ #archive_pagespec => 'posts/* and !*/Discussion',
+
+ # listdirectives plugin
+ # directory in srcdir that contains directive descriptions
+ #directive_description_dir => 'ikiwiki/directive',
# teximg plugin
# Should teximg use dvipng to render, or dvips and convert?
@@ -252,19 +305,54 @@ IkiWiki::Setup::Standard->import({
# LaTeX postfix for teximg plugin
#teximg_postfix => '\\end{document}',
- # tla plugin
- # tla post-commit hook to generate
- #tla_wrapper => '',
- # mode for tla_wrapper (can safely be made suid)
- #tla_wrappermode => '06755',
- # url to show file history ([[file]] substituted)
- #historyurl => '',
- # url to show a diff ([[file]] and [[rev]] substituted)
- #diffurl => '',
+ ######################################################################
+ # other plugins
+ # (aggregate, autoindex, brokenlinks, camelcase, ddate, embed,
+ # favicon, goodstuff, htmlbalance, localstyle, pagetemplate,
+ # pingee, pinger, prettydate, recentchanges, recentchangesdiff,
+ # relativedate, rsync, sidebar, smiley, sortnaturally, tag,
+ # testpagespec, underlay)
+ ######################################################################
- # websetup plugin
- # list of plugins that cannot be enabled/disabled via the web interface
- #websetup_force_plugins => [],
- # show unsafe settings, read-only, in web interface?
- #websetup_show_unsafe => 1,
+ # aggregate plugin
+ # enable aggregation to internal pages?
+ #aggregateinternal => 1,
+ # allow aggregation to be triggered via the web?
+ #aggregate_webtrigger => 0,
+
+ # camelcase plugin
+ # list of words to not turn into links
+ #camelcase_ignore => [],
+
+ # pinger plugin
+ # how many seconds to try pinging before timing out
+ #pinger_timeout => 15,
+
+ # prettydate plugin
+ # format to use to display date
+ #prettydateformat => '%X, %B %o, %Y',
+
+ # recentchanges plugin
+ # name of the recentchanges page
+ recentchangespage => 'recent_changes',
+ # number of changes to track
+ recentchangesnum => 100,
+
+ # rsync plugin
+ # command to run to sync updated pages
+ #rsync_command => 'rsync -qa --delete . user@host:/path/to/docroot/',
+
+ # sidebar plugin
+ # show sidebar page on all pages?
+ #global_sidebars => 1,
+
+ # tag plugin
+ # parent page tags are located under
+ tagbase => 'tag',
+ # autocreate new tag pages?
+ #tag_autocreate => 1,
+
+ # underlay plugin
+ # extra underlay directories to add
+ #add_underlays => '',
})
diff --git a/index.mdwn b/index.mdwn
index 8754baab..249b2091 100644
--- a/index.mdwn
+++ b/index.mdwn
@@ -1,35 +1,48 @@
-[[meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
-Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
+2009, 2010 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-**What Is the GNU Hurd?**
-The GNU Hurd is the GNU project's replacement for the Unix kernel.
-The Hurd is a collection of servers that run on the Mach microkernel
+<div id="statements">
+<div id="what-is">
+<p class="statement-title">What is the GNU Hurd?</p>
+<p>The GNU Hurd is the GNU project's replacement for the Unix kernel.
+It is a collection of servers that run on the Mach microkernel
to implement file systems, network protocols, file access control, and
other features that are implemented by the Unix kernel or similar
-kernels (such as Linux). *[[More_detailed.|hurd/what_is_the_gnu_hurd]]*
+kernels (such as Linux).
+<em>[[More_detailed|hurd/documentation]].</em></p>
+</div>
+<div id="mission">
+<p class="statement-title">What is the mission of the GNU Hurd project?</p>
+<p>Our mission is to create a general-purpose kernel suitable
+for the GNU operating system, which is viable for everyday use,
+and gives users and programs as much control over their
+computing environment as possible.
+<em>[[Our_mission_explained|community/weblogs/antrik/hurd-mission-statement]].</em></p>
+</div>
+</div>
---
-[[toc ]]
+[[!toc]]
## News
-[[inline
+[[!inline
pages="news/* and !*/discussion"
feedonly=yes
feedshow=10
sort=title
reverse=yes]]
-[[inline
+[[!inline
pages="news/* and !*/discussion"
show=5
feeds=no
@@ -38,7 +51,9 @@ reverse=yes
template=newsitem
actions=yes]]
-Read [[older_news_entries|news]].
+Older news entries can be found in the [[news archive|news]]. For Hurd
+developers' musings have a look at the [[shared weblog|community/weblogs]].
+The [[recent changes]] page lists the latest changes of this website.
## Contributing
@@ -46,20 +61,21 @@ Read [[older_news_entries|news]].
To help the Hurd you can for example (from high level stuff to the inner core)
* [[Contribute_to_these_web_pages|contributing/web_pages]],
-* [[Run_a_GNU/Hurd_system|index#run]], and help others get their systems running,
+* [[Run_a_GNU/Hurd_system|index#run]] and help others get their systems running,
* [[Port_applications|hurd/running/debian/porting]] to work in Hurd,
* Write [[translators|hurd/translator]] to extend the Hurd,
* Work on the [[Hurd_on_Mach|contributing#hurd_on_mach]], or
* Help to port the Hurd [[to_a_modern_microkernel|contributing#hurd_on_modern_microkernel]].
-Read about ways to contribute [[in_more_detail|contributing]].
+See our [[source_repositories]] for the source code.
+Read about ways to contribute [[in_more_detail|contributing]].
## Getting Help
There are a couple of different [[Hurd_FAQs|hurd/FAQ]].
There are a number of [[IRC_channels|IRC]] and several
-different [[mailing_lists]] with searchable archives.
+different [[mailing lists]] with searchable archives.
Before asking a question on a mailing list or on IRC, first, please try to
answer your own question using a search engine and reading the introductory
@@ -73,11 +89,15 @@ The most functional distribution of the Hurd is the one provided by Debian.
Find more information about it at the
[Debian GNU/Hurd website](http://www.debian.org/ports/hurd/hurd-install).
-There are [[various_possibilities|hurd/running]] of running a GNU/Hurd system.
+Along with it there are [[various_ways|hurd/running]] to run a GNU/Hurd system.
+Three of them are
+
+* installing a [[GNU/Hurd_distribution|hurd/running/distrib]],
+* running it [[in_Xen|microkernel/mach/gnumach/ports/xen]] and
+* starting a [[Hurd_qemu_image|hurd/running/qemu]] or [[Hurd_LiveCD|hurd/running/live_cd/]].
And these web pages are a living proof of the usability of the Hurd, as they
-are rendered on a Debian GNU/Hurd system. More people using GNU Hurd in
-production can be found on [[Hurd/WhoRunsGNU]].
+are rendered on a [[Debian_GNU/Hurd|hurd/running/debian]] system.
## Current Status
@@ -91,10 +111,12 @@ systems are currently mostly based on the [[Debian_GNU/Hurd|hurd/running/debian]
sponsored by the [Debian project](http://www.debian.org/).
Community resources for related projects focus around these pages,
-<http://hurd.gnu.org/>, the [[mailing_lists]] and the [[IRC_channels|IRC]].
+<http://hurd.gnu.org/>, the [[mailing lists]] and the [[IRC_channels|IRC]].
If you want to see the current discussions in the Hurd project, please have a look at
the [bug-hurd mailinglist archives](http://lists.gnu.org/pipermail/bug-hurd/).
+If you want to have a look at the current coding work, you can just head over to our
+[[source_repositories]].
For more details, please read our writeup on the
[[current_state_of_the_GNU_Hurd|hurd/status]].
diff --git a/index/discussion.mdwn b/index/discussion.mdwn
index 9d40f011..f369ed35 100644
--- a/index/discussion.mdwn
+++ b/index/discussion.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
# TODO
@@ -16,6 +16,8 @@ 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
diff --git a/install.mdwn b/install.mdwn
new file mode 100644
index 00000000..1a7416de
--- /dev/null
+++ b/install.mdwn
@@ -0,0 +1,13 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!tag stable_URL]]
+
+[[!meta redir=hurd/running]]
diff --git a/ipc.mdwn b/ipc.mdwn
index 7c0e16b2..2f9cef2e 100644
--- a/ipc.mdwn
+++ b/ipc.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
IPC stands for interprocess communication.
diff --git a/irc.mdwn b/irc.mdwn
index 1eecb483..381495f8 100644
--- a/irc.mdwn
+++ b/irc.mdwn
@@ -1,15 +1,15 @@
-[[meta copyright="Copyright © 2001, 2002, 2003, 2004, 2006, 2007, 2008, 2009
-Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2001, 2002, 2003, 2004, 2006, 2007, 2008, 2009,
+2010 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-[[meta title="IRC"]]
+[[!meta title="IRC"]]
While all official development takes place on the mailing lists and the Savannah trackers,
a lot of discussions are had on IRC as well. Everybody is welcome to join and follow these channels, but please
@@ -17,7 +17,7 @@ respect the below guidelines if you want to participate.
# Asking Questions
-[[inline pages=asking_questions raw=yes feeds=no]]
+[[!inline pages=asking_questions raw=yes feeds=no]]
# Staying On-Topic
@@ -51,12 +51,13 @@ to always greet the channel when you enter and before leave.
# Regular Meetings
Starting in early 2008, there have been regular IRC meetings held between the
-(now former) [[community/GSoC]] students and their mentors. These continue to
-take place even that the [[Google_Summer_of_Code_2008|community/gsoc/2008]] is
-over, and still take place, **every Friday at 19:00 UTC in the `#hurd`
-channel**. Of course, the meetings are not only for (former) GSoC students and
-mentors, but open to any interested party. So, everyone, take your chance to
-chat with GNU Hurd developers!
+(now former) [[Google Summer of Code|community/gsoc]] students and their
+mentors. These meetings turned out to considerably help student-mentor
+interactions, and other developers regularely took part, too. For this reason,
+we decided to continue having these meetings, even if it's not currently Google
+Summer of Code time. The meetings take place in the **`#hurd` channel every
+Monday and Thursday at 10:30 UTC** and are open to any interested party. So,
+everyone, take your chance to chat with GNU Hurd developers!
# Channels
diff --git a/isolation.mdwn b/isolation.mdwn
index f43ae3d6..638085e6 100644
--- a/isolation.mdwn
+++ b/isolation.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
When two [[principal]]s cannot affect each other, they are said to
be isolated from one another. Strictly speaking, if two principals
diff --git a/license.mdwn b/license.mdwn
index c70c1948..0f7bf9bd 100644
--- a/license.mdwn
+++ b/license.mdwn
@@ -1,6 +1,6 @@
-[[toggle id="license" text="GFDL 1.2+"]][[toggleable id="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]]."]]
+included in the section entitled [[GNU Free Documentation License|/fdl]]."]]
diff --git a/liedtke.mdwn b/liedtke.mdwn
index ca55eaf3..8a204a32 100644
--- a/liedtke.mdwn
+++ b/liedtke.mdwn
@@ -1,11 +1,11 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
Liedtke is the father of [[microkernel/L4]].
diff --git a/local.css b/local.css
index 97f12a64..8669e5e3 100644
--- a/local.css
+++ b/local.css
@@ -1,6 +1,6 @@
/* ikiwiki local style sheet
- Copyright © 2007, 2008 Free Software Foundation, Inc.
+ Copyright © 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
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
@@ -51,7 +51,6 @@ pre
margin-left: 3em;
font-weight: bold;
padding: 0.5em;
- overflow: auto;
}
a
@@ -138,7 +137,7 @@ a:hover
padding: 0.5em;
}
-#sidebar
+.sidebar
{
background-color: #f0f0f0;
}
@@ -159,25 +158,24 @@ a:hover
}
-/* Variable width. */
-#sidebar
+/* Placement. */
+.sidebar
{
width: auto;
- /* ikiwiki's default for `width'. */
- min-width: 20ex;
+ margin-left: 20px;
}
/* Less indentation for list items. */
-#sidebar ul
+.sidebar ul
{
padding-left: 2ex;
}
-#sidebar ul ul
+.sidebar ul ul
{
padding-left: 2.5ex;
}
/* Make the logo appear centered */
-#sidebar img {
+.sidebar img {
display: block;
margin-left: auto;
margin-right: auto;
@@ -192,7 +190,7 @@ a:hover
.newsitem
{
- border: 1px solid black;
+ border: 1px solid grey;
overflow: auto;
}
.newsitem .newsitemheader .header
@@ -200,8 +198,8 @@ a:hover
max-width: 30%;
float: left;
margin-right: 1em;
- border-bottom: 1px solid black;
- border-right: 1px solid black;
+ border-bottom: 1px solid grey;
+ border-right: 1px solid grey;
}
.newsitem .header,
.newsitem .author
@@ -216,9 +214,15 @@ a:hover
.newsitem .actions ul
{
border-bottom-style: none;
- padding: 0.5em 0;
+ padding: 0.5em 0em;
line-height: 1;
}
+.newsitemcontent
+{
+ padding-left: 0.2em;
+ padding-top: 0.1em;
+
+}
.newsitemcontent p
{
margin: 0.3em;
@@ -251,3 +255,33 @@ a:hover
border-width: thin;
border-style: dotted;
}
+
+#statements
+{
+ display: table;
+}
+.statement-title
+{
+ text-align: center;
+ font-weight: bold;
+}
+#what-is
+{
+ display: table-cell;
+ width: 50%;
+ vertical-align: top;
+ text-align: justify;
+ padding-right: 1ex;
+ padding-top: 0.3em;
+ padding-bottom: 0.3em;
+}
+
+#mission
+{
+ display: table-cell;
+ vertical-align: top;
+ text-align: justify;
+ padding-left: 1em;
+ padding-top: 0.3em;
+ padding-bottom: 0.3em;
+}
diff --git a/logo.mdwn b/logo.mdwn
new file mode 100644
index 00000000..aae80561
--- /dev/null
+++ b/logo.mdwn
@@ -0,0 +1,25 @@
+[[!meta copyright="Copyright © 2007, 2008 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]]."]]"""]]
+
+The famous *Hurd Boxes* logo is available at
+<http://www.gnu.org/graphics/hurd_mf.html>.
+
+
+On some lonely Wednesday, Colin Leitner and [[Thomas_Schwinge|tschwinge]]
+converted these four boxes from the [original METAFONT
+sources](http://www.gnu.org/graphics/hurd.mf) to
+[[hand-written_SVG_code|boxes-redrawn.svg]].
+
+[[!img boxes-redrawn.png]]
+
+
+This symbol is also being used as a favicon for this web site.
+
+[[!img /favicon.ico]]
diff --git a/hurd/logo/boxes-redrawn.png b/logo/boxes-redrawn.png
index fd26a87e..fd26a87e 100644
--- a/hurd/logo/boxes-redrawn.png
+++ b/logo/boxes-redrawn.png
Binary files differ
diff --git a/hurd/logo/boxes-redrawn.svg b/logo/boxes-redrawn.svg
index c0a7e460..c0a7e460 100644
--- a/hurd/logo/boxes-redrawn.svg
+++ b/logo/boxes-redrawn.svg
diff --git a/mailing_lists.mdwn b/mailing_lists.mdwn
index 02a0ddd9..e4bd1368 100644
--- a/mailing_lists.mdwn
+++ b/mailing_lists.mdwn
@@ -1,17 +1,17 @@
-[[meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+[[!meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
# On Posting
-[[inline pages=asking_questions raw=yes feeds=no]]
+[[!inline pages=asking_questions raw=yes feeds=no]]
List etiquette is to cc the sender and anyone **actively** involved in the
discussion. Some people don't like this and they set their reply-to header
@@ -21,8 +21,8 @@ It is rarely appropriate to cc multiple lists. Sometimes it is. In that case,
do so. If in doubt, don't; just choose the single most appropriate list.
When replying to others, please don't top-post and trim the existing text to
-quote only the sections you're actually replying to. See [[wikipedia
-Posting_style]] for further reading, especially [[wikipedia
+quote only the sections you're actually replying to. See [[!wikipedia
+Posting_style]] for further reading, especially [[!wikipedia
Posting_style#Inline_replying]].
Also see these general notes about [[community/communication]].
@@ -44,7 +44,7 @@ mailing lists.
<bug-hurd@gnu.org>
<http://lists.gnu.org/mailman/listinfo/bug-hurd>
-Technical discussion and bug reports; main development list.
+Technical discussion and bug reports; main development list. If you want to **contribute**, please meet us here.
<a name="hurd-devel"></a>
## hurd-devel
@@ -68,7 +68,7 @@ to the latter, everyone is free to subscribe to this read-only list.
<help-hurd@gnu.org>
<http://lists.gnu.org/mailman/listinfo/help-hurd>
-Hurd-specific questions; for users of the Hurd.
+Hurd-specific questions; for users of the Hurd. If you need help on **using the Hurd** please ask in this list.
<a name="web-hurd"></a>
## web-hurd
diff --git a/mailing_lists/bug-hurd.mdwn b/mailing_lists/bug-hurd.mdwn
index 11d4dfd1..ee803d7d 100644
--- a/mailing_lists/bug-hurd.mdwn
+++ b/mailing_lists/bug-hurd.mdwn
@@ -1,11 +1,11 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-[[meta redir=mailing_lists#bug-hurd]]
+[[!meta redir=mailing_lists#bug-hurd]]
diff --git a/mailing_lists/debian-hurd.mdwn b/mailing_lists/debian-hurd.mdwn
index 4df9e593..4b8aa5c0 100644
--- a/mailing_lists/debian-hurd.mdwn
+++ b/mailing_lists/debian-hurd.mdwn
@@ -1,11 +1,11 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-[[meta redir=mailing_lists#debian-hurd]]
+[[!meta redir=mailing_lists#debian-hurd]]
diff --git a/mailing_lists/gnu-system-discuss.mdwn b/mailing_lists/gnu-system-discuss.mdwn
index 30f22eab..d966e172 100644
--- a/mailing_lists/gnu-system-discuss.mdwn
+++ b/mailing_lists/gnu-system-discuss.mdwn
@@ -1,11 +1,11 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-[[meta redir=mailing_lists#gnu-system-discuss]]
+[[!meta redir=mailing_lists#gnu-system-discuss]]
diff --git a/mailing_lists/help-hurd.mdwn b/mailing_lists/help-hurd.mdwn
index ee7bc5e1..7e283561 100644
--- a/mailing_lists/help-hurd.mdwn
+++ b/mailing_lists/help-hurd.mdwn
@@ -1,11 +1,11 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-[[meta redir=mailing_lists#help-hurd]]
+[[!meta redir=mailing_lists#help-hurd]]
diff --git a/mailing_lists/hurd-devel-readers.mdwn b/mailing_lists/hurd-devel-readers.mdwn
index bb2b2fb3..0476c501 100644
--- a/mailing_lists/hurd-devel-readers.mdwn
+++ b/mailing_lists/hurd-devel-readers.mdwn
@@ -1,11 +1,11 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-[[meta redir=mailing_lists#hurd-devel-readers]]
+[[!meta redir=mailing_lists#hurd-devel-readers]]
diff --git a/mailing_lists/hurd-devel.mdwn b/mailing_lists/hurd-devel.mdwn
index 63299691..26ca1c33 100644
--- a/mailing_lists/hurd-devel.mdwn
+++ b/mailing_lists/hurd-devel.mdwn
@@ -1,11 +1,11 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-[[meta redir=mailing_lists#hurd-devel]]
+[[!meta redir=mailing_lists#hurd-devel]]
diff --git a/mailing_lists/l4-hurd.mdwn b/mailing_lists/l4-hurd.mdwn
index 1c326586..493c38b6 100644
--- a/mailing_lists/l4-hurd.mdwn
+++ b/mailing_lists/l4-hurd.mdwn
@@ -1,11 +1,11 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-[[meta redir=mailing_lists#l4-hurd]]
+[[!meta redir=mailing_lists#l4-hurd]]
diff --git a/mailing_lists/unmoderated.mdwn b/mailing_lists/unmoderated.mdwn
index 14a407b1..4bef130e 100644
--- a/mailing_lists/unmoderated.mdwn
+++ b/mailing_lists/unmoderated.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
In fact the lists *are* moderated for users that post from not-subscribed email
addresses. However, this moderation should be transparent to the poster, you
diff --git a/mailing_lists/web-hurd.mdwn b/mailing_lists/web-hurd.mdwn
index 7a1abeb2..f449205f 100644
--- a/mailing_lists/web-hurd.mdwn
+++ b/mailing_lists/web-hurd.mdwn
@@ -1,11 +1,11 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-[[meta redir=mailing_lists#web-hurd]]
+[[!meta redir=mailing_lists#web-hurd]]
diff --git a/mechanism.mdwn b/mechanism.mdwn
index c0a6b02c..dddb234b 100644
--- a/mechanism.mdwn
+++ b/mechanism.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
The Collaborative International Dictionary of English v.0.48
defines a mechanism as:
diff --git a/media_appearances.mdwn b/media_appearances.mdwn
new file mode 100644
index 00000000..4311f08b
--- /dev/null
+++ b/media_appearances.mdwn
@@ -0,0 +1,16 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+This is a collection of Hurd-related media appearances.
+
+ * Marcus Brinkmann, *The GNU Hurd - Lessons and Perspective*, from the
+ [OpenWeekend](http://openweekend.cz/) 2004 conference organized by the
+ Silicon Hill club.
+ <http://video.google.com/videoplay?docid=-7449462856350014702>
diff --git a/microkernel.mdwn b/microkernel.mdwn
index fb39458f..e2d70c01 100644
--- a/microkernel.mdwn
+++ b/microkernel.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
[[Liedtke]] explains in [On Microkernel Construction](http://l4ka.org/publications/paper.php?docid=642)
that a microkernel attempts to minimize the mandatory part of the operating
diff --git a/microkernel/faq.mdwn b/microkernel/faq.mdwn
index b8a2c28f..aa98403a 100644
--- a/microkernel/faq.mdwn
+++ b/microkernel/faq.mdwn
@@ -1,18 +1,18 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-[[meta title="Microkernel FAQ"]]
+[[!meta title="Microkernel FAQ"]]
-[[inline
+[[!inline
pages="microkernel/faq/* and !*/discussion"
show=0
feeds=no
actions=yes
-rootpage=microkernel/faq" postformtext="Add a new item titled:"]]
+rootpage="microkernel/faq" postformtext="Add a new item titled:"]]
diff --git a/microkernel/faq/multiserver_microkernel.mdwn b/microkernel/faq/multiserver_microkernel.mdwn
index 68ed332c..ca9b2179 100644
--- a/microkernel/faq/multiserver_microkernel.mdwn
+++ b/microkernel/faq/multiserver_microkernel.mdwn
@@ -1,15 +1,15 @@
-[[meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2008 Free Software
-Foundation, Inc."]]
+[[!meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2008, 2009 Free
+Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-[[meta title="What is a Multiserver Microkernel?"]]
+[[!meta title="What is a Multiserver Microkernel?"]]
A Microkernel has nothing to do with the size of the kernel. Rather, it refers
to the functionality that the kernel provides. It is generally agreed that
@@ -23,4 +23,4 @@ it, they may, for instance, mount an FTP filesystem in their home directory.
For more information about the design of the Hurd, read the paper by Thomas
Bushnell, BSG:
-[[Towards_a_New_Strategy_of_OS_Design|hurd/documentation/hurd-paper]].
+[[Towards_a_New_Strategy_of_OS_Design|hurd-paper]].
diff --git a/microkernel/for_beginners.mdwn b/microkernel/for_beginners.mdwn
index aed436e8..ad50425e 100644
--- a/microkernel/for_beginners.mdwn
+++ b/microkernel/for_beginners.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
# Concepts
diff --git a/microkernel/for_beginners/discussion.mdwn b/microkernel/for_beginners/discussion.mdwn
new file mode 100644
index 00000000..9831796b
--- /dev/null
+++ b/microkernel/for_beginners/discussion.mdwn
@@ -0,0 +1,20 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+Good day.
+
+I am a developer, have some c knowledge, and in perspective hope to be able to make a contribution in Hurd kernel. At the moment I consider myself as a beginner.
+
+My question is about the second exercise.
+
+>Implement your own pager. Write a server that synthesizes content on the fly and have a client map the object into its address space and print out the file.
+
+* The second sentence "Write a server that..." is too long and too difficult for me to understand perhaps because English is not my native language. Could you please explain it in a little bit easier phrases?
+* Am I write that in a given context "pager" means just "memory manager"?
diff --git a/microkernel/fud.mdwn b/microkernel/fud.mdwn
index 68794e69..6353f81d 100644
--- a/microkernel/fud.mdwn
+++ b/microkernel/fud.mdwn
@@ -1,5 +1,6 @@
-[[meta copyright="Copyright © 2002 Wolfgang Jährling and Jeroen Dekkers"]]
-[[meta license="Verbatim copying and distribution of this entire article is
+[[!meta copyright="Copyright © 2002 Wolfgang Jährling and Jeroen Dekkers"]]
+
+[[!meta license="Verbatim copying and distribution of this entire article is
permitted in any medium, provided this notice is preserved."]]
# The Microkernel Experiment is Going On
@@ -16,6 +17,6 @@ But L4 takes this even further. For example, you can have schedulers in userspac
Of course, microkernels still have some problems, mainly because we are bound to today's technology, and current processors have not been designed with microkernels in mind. On a processor that is not optimized for systems with monolithic kernels, where the currently still problematic overhead of context switches would vanish, microkernels would get another performance boost. This sounds like an excuse, but it is intended as a reminder about the fact that the problem is not the general concept of microkernels. However, the L4 people have done a lot of good hacks to work around all this and have reached reasonable performance already.
-All this could be discussed in arbitrary detail, but we won't do that now, as we have more urgent things to do than reacting on FUD about microkernels. So we will conclude by saying that it is too easy to claim that one design is fast and the other one is slow, but everything depends on how exactly a system is designed and implemented. Maybe microkernels will eventually turn out to be slower in almost any case; we doubt that, but who knows? But even then, a microkernel based system will offer enough other advantages so that people will prefer to use it in some cases. But on the other hand, history has shown that new concepts seldom replace old ones completely, but rather establish themselfes in addition to the old ones, therefore we will have the opportunity to argue about which concept is best at least for another couple of years.. or decades?
+All this could be discussed in arbitrary detail, but we won't do that now, as we have more urgent things to do than reacting on FUD about microkernels. So we will conclude by saying that it is too easy to claim that one design is fast and the other one is slow, but everything depends on how exactly a system is designed and implemented. Maybe microkernels will eventually turn out to be slower in almost any case; we doubt that, but who knows? But even then, a microkernel based system will offer enough other advantages so that people will prefer to use it in some cases. But on the other hand, history has shown that new concepts seldom replace old ones completely, but rather establish themselves in addition to the old ones, therefore we will have the opportunity to argue about which concept is best at least for another couple of years.. or decades?
If you are interested in research about the performance of microkernel based systems, visit <http://www.l4ka.org> and <http://os.inf.tu-dresden.de/L4/>
diff --git a/microkernel/mach/documentation.mdwn b/microkernel/mach/documentation.mdwn
index b4187f78..fc6e59c2 100644
--- a/microkernel/mach/documentation.mdwn
+++ b/microkernel/mach/documentation.mdwn
@@ -1,23 +1,24 @@
-[[meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
-Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
+2010 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
- - [Meet Mach](http://www.stepwise.com/Articles/Technical/MeetMach.html), a
- summary of Mach's history and main concepts.
+ * [*Meet Mach* by James
+ Scott](http://beefchunk.com/documentation/macosx-programming/Meet_Mach.pdf),
+ a summary of Mach's history and main concepts.
* *[[The_GNU_Mach_Reference_Manual|gnumach/reference_manual]]*.
- - OSF's [Kernel Interface (ps)](ftp://ftp.cs.cmu.edu/afs/cs/project/mach/public/doc/osf/kernel_interface.ps)
+ - OSF's [Kernel Interface (ps)](http://www.cs.cmu.edu/afs/cs/project/mach/public/doc/osf/kernel_interface.ps)
[Kernel Interface (pdf)](http://shakthimaan.com/downloads/hurd/kernel_interface.pdf)
- - OSF's [Kernel Principles (ps)](ftp://ftp.cs.cmu.edu/afs/cs/project/mach/public/doc/osf/kernel_principles.ps)
+ - OSF's [Kernel Principles (ps)](http://www.cs.cmu.edu/afs/cs/project/mach/public/doc/osf/kernel_principles.ps)
[Kernel Principles (pdf)](http://shakthimaan.com/downloads/hurd/kernel_principles.pdf)
* [*The Unofficial GNU Mach IPC beginner's
diff --git a/microkernel/mach/external_pager_mechanism.mdwn b/microkernel/mach/external_pager_mechanism.mdwn
index 608b6581..b175d1cc 100644
--- a/microkernel/mach/external_pager_mechanism.mdwn
+++ b/microkernel/mach/external_pager_mechanism.mdwn
@@ -1,12 +1,13 @@
-[[meta copyright="Copyright © 2002, 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2002, 2007, 2008 Free Software Foundation,
+Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
Mach provides a so-called external pager [[mechanism]]. This
mechanism serves to separate *managing memory* from *managing
diff --git a/microkernel/mach/gnumach.mdwn b/microkernel/mach/gnumach.mdwn
index 19e1ea53..f3d6d5f9 100644
--- a/microkernel/mach/gnumach.mdwn
+++ b/microkernel/mach/gnumach.mdwn
@@ -1,13 +1,13 @@
-[[meta copyright="Copyright © 2001, 2002, 2007, 2008 Free Software Foundation,
+[[!meta copyright="Copyright © 2001, 2002, 2007, 2008 Free Software Foundation,
Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
GNU Mach is the microkernel that the [[GNU_Hurd|hurd]] system is based on.
@@ -77,4 +77,4 @@ GNU/Hurd.
* [[Boot_Trace]]
* [[Projects]]
* [[Rules]]
- * [[Open_Issues]]
+ * [[Open Issues|tag/open_issue_gnumach]]
diff --git a/microkernel/mach/gnumach/boot_trace.mdwn b/microkernel/mach/gnumach/boot_trace.mdwn
index a08384f0..d33ef25a 100644
--- a/microkernel/mach/gnumach/boot_trace.mdwn
+++ b/microkernel/mach/gnumach/boot_trace.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
`if NCPUS > 1` stuff is not being considered so far.
diff --git a/microkernel/mach/gnumach/building/example.mdwn b/microkernel/mach/gnumach/building/example.mdwn
index 6da05c5b..7db98547 100644
--- a/microkernel/mach/gnumach/building/example.mdwn
+++ b/microkernel/mach/gnumach/building/example.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
## Compiling GNU Mach microkernel
diff --git a/microkernel/mach/gnumach/debugging.mdwn b/microkernel/mach/gnumach/debugging.mdwn
index fa2a9d42..3a93c6ad 100644
--- a/microkernel/mach/gnumach/debugging.mdwn
+++ b/microkernel/mach/gnumach/debugging.mdwn
@@ -1,12 +1,13 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation,
+Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
Mach has a built-in kernel debugger.
[Manual](http://www.gnu.org/software/hurd/gnumach-doc/Kernel-Debugger.html).
@@ -14,7 +15,7 @@ Mach has a built-in kernel debugger.
When you're [[running_a_system_in_QEMU|hurd/running/qemu]] you can directly
[use GDB on the running
-kernel](http://fabrice.bellard.free.fr/qemu/qemu-doc.html#SEC36).
+kernel](http://www.nongnu.org/qemu/qemu-doc.html#SEC48).
Alternatively you can use an approach like this one: add the following code
diff --git a/microkernel/mach/gnumach/hardware_compatibility_list.mdwn b/microkernel/mach/gnumach/hardware_compatibility_list.mdwn
index 09882467..2152c079 100644
--- a/microkernel/mach/gnumach/hardware_compatibility_list.mdwn
+++ b/microkernel/mach/gnumach/hardware_compatibility_list.mdwn
@@ -1,12 +1,13 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation,
+Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
# CPU Architecture
@@ -64,14 +65,13 @@ IEEE 1394 is not supported at this time
# Storage
All common IDE drives should work. Some drive geometries do not work,
-e.g. drives with hundreds of GiB of storage space. If you find a specific IDE
-drive that does not work, make a note of the model and technical specifications
-here.
+e.g. drives with hundreds of GiB of storage space, see [[!GNU_Savannah_bug
+26425]].
-[[toggle id="SATA" text="SATA drives may work in compatibility mode."]]
+[[!toggle id="SATA" text="SATA drives may work in compatibility mode."]]
<!-- Sure? --[[tschwinge]] -->
-[[toggleable id="SATA" text="""
+[[!toggleable id="SATA" text="""
This is how booting a [[GNU/Hurd_system|hurd]] will typically fail if GNU Mach
couldn't connect to the hard disk, e.g., in a SATA system without IDE
compatibility mode:
diff --git a/microkernel/mach/gnumach/open_issues.mdwn b/microkernel/mach/gnumach/open_issues.mdwn
deleted file mode 100644
index ec289708..00000000
--- a/microkernel/mach/gnumach/open_issues.mdwn
+++ /dev/null
@@ -1,20 +0,0 @@
-[[meta copyright="Copyright © 2008 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="Open Issues"]]
-
-This is a dumping ground for open issues for GNU Mach.
-
-[[inline
-pages="microkernel/mach/gnumach/open_issues/* and !*/discussion"
-show=0
-feeds=no
-actions=yes
-rootpage="microkernel/mach/gnumach/open_issues" postformtext="Add a new item titled:"]]
diff --git a/microkernel/mach/gnumach/ports.mdwn b/microkernel/mach/gnumach/ports.mdwn
index 00cdee8c..afc91d7a 100644
--- a/microkernel/mach/gnumach/ports.mdwn
+++ b/microkernel/mach/gnumach/ports.mdwn
@@ -1,15 +1,22 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation,
+Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
* x86. This is the main port.
+
+ * [[Xen]]
+
* [PowerPC](http://www.pjbruin.dds.nl/hurd/). Is not in a usable state.
- * Alpha. Was once started, but isn't in a usable state either.
- * [[Xen]]
+ * Alpha: [project I](http://savannah.nongnu.org/projects/hurd-alpha), and
+ [project II](http://savannah.nongnu.org/projects/gnumach-alpha). Was once
+ started, but isn't in a usable state either.
+
+ * MIPS. Status completely unknown.
diff --git a/microkernel/mach/gnumach/ports/xen.mdwn b/microkernel/mach/gnumach/ports/xen.mdwn
index c492d9a0..bf26410a 100644
--- a/microkernel/mach/gnumach/ports/xen.mdwn
+++ b/microkernel/mach/gnumach/ports/xen.mdwn
@@ -1,27 +1,28 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation,
+Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-[[toc ]]
+[[!toc]]
-## Xen dom0, hypervisor
+# Xen dom0, hypervisor
/!\ Now that GNU Mach handles PAE you can use a PAE-enabled hypervisor.
You can either get binaries at <http://youpibouh.thefreecat.org/hurd-xen/> or build them yourself.
-- Copy `gnumach-xen` and `hurd-modules` to your dom0 /boot.
+- Copy `gnumach-xen-pae` and `hurd-modules` to your dom0 /boot. If you still have a non-PAE hypervisor, use `gnumach-xen-nonpae` instead.
- Copy `hurd` into `/etc/xen`, edit it for fixing access to your hurd / and swap
-## GNU/Hurd system
+# GNU/Hurd system
-/!\ You need an already installed GNU/Hurd system.
+/!\ You need an already installed [[GNU/Hurd_system|hurd/running]].
If you have a free partition, you can fdisk to type 0x83, create a filesystem using:
@@ -29,23 +30,26 @@ If you have a free partition, you can fdisk to type 0x83, create a filesystem us
Replace /dev/sda4 with your partition. Install and use crosshurd to setup a GNU/Hurd system on this partition.
-## /etc/xen/hurd configuration
+# /etc/xen/hurd configuration
Here is a sample /etc/xen/hurd configuration
- kernel = "/boot/gnumach-xen"
+ kernel = "/boot/gnumach-xen-pae"
memory = 256
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).
+
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' ]`.
-## Running Hurd with Xen
+# Running Hurd with Xen
To run Hurd with Xen, use:
@@ -59,7 +63,7 @@ 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.
-## Building from sources
+# Building from sources
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.
@@ -69,10 +73,21 @@ Then use
make
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-based one!
+/!\ This means that when using this image, your GNU/Hurd system also needs to be a glibc version 2.6 or later-based one!
---
+# Miscellaneous
+
[[Internals]].
-[[GNU_Savannah_task 5468]], [[GNU_Savannah_task 6584]].
+[[!GNU_Savannah_task 5468]], [[!GNU_Savannah_task 6584]].
+
+---
+
+# `pv-grub`
+
+From Xen 4.0 on you'll be able to 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).
diff --git a/microkernel/mach/gnumach/ports/xen/internals.mdwn b/microkernel/mach/gnumach/ports/xen/internals.mdwn
index 09e707ea..eae9d9a8 100644
--- a/microkernel/mach/gnumach/ports/xen/internals.mdwn
+++ b/microkernel/mach/gnumach/ports/xen/internals.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
The port does use Xen's para-virtualized interface for device (ide, network,
etc.) access.
diff --git a/microkernel/mach/gnumach/ports/xen/networking_configuration.mdwn b/microkernel/mach/gnumach/ports/xen/networking_configuration.mdwn
index 71a72bac..52e6db87 100644
--- a/microkernel/mach/gnumach/ports/xen/networking_configuration.mdwn
+++ b/microkernel/mach/gnumach/ports/xen/networking_configuration.mdwn
@@ -1,14 +1,14 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-[[toc ]]
+[[!toc]]
The Xen dom0 infrastructure provides for a bridged networking setup using shell
scripts to configure the bridging device properly and attach the domUs' virtual
@@ -38,7 +38,7 @@ Comment out everything referencing your physical devices. Add this:
[...]
This needs a version of the `bridge-utils` package more recent than the current
-Debian stable one ([[debbug 405215]]). (It's trivial to rebuild the `dpkg` of,
+Debian stable one ([[!debbug 405215]]). (It's trivial to rebuild the `dpkg` of,
e.g., the Debian testing one on Debian stable.)
# */etc/xen/xend-config.sxp*
diff --git a/microkernel/mach/gnumach/projects.mdwn b/microkernel/mach/gnumach/projects.mdwn
index 9ace6270..47a2756c 100644
--- a/microkernel/mach/gnumach/projects.mdwn
+++ b/microkernel/mach/gnumach/projects.mdwn
@@ -1,13 +1,13 @@
-[[meta copyright="Copyright © 2005, 2006, 2007, 2008
-Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2005, 2006, 2007, 2008 Free Software Foundation,
+Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
This page is a place to keep track of ideas about things that may be improved
in GNU Mach, so that it'll evolve to a reliable microkernel for The Hurd, both
@@ -15,7 +15,7 @@ in terms of stability and performance. If you find anything missing here,
please feel free to add a entry with a short description.
If you want to help with any of the task (thanks!), please send a mail to
-*[[mailing_lists/bug-hurd]]* stating what task you wish to work on,
+*[[mailing lists/bug-hurd]]* stating what task you wish to work on,
so that no duplicate efforts end up.
# Active Branches
@@ -33,7 +33,7 @@ so that no duplicate efforts end up.
* [[Clean_up_the_code]]
- * [[Open_Issues]]
+ * [[Open Issues|tag/open_issue_gnumach]]
* Update the core architecture and drivers
diff --git a/microkernel/mach/gnumach/projects/clean_up_the_code.mdwn b/microkernel/mach/gnumach/projects/clean_up_the_code.mdwn
index 875bb8cd..e865e61a 100644
--- a/microkernel/mach/gnumach/projects/clean_up_the_code.mdwn
+++ b/microkernel/mach/gnumach/projects/clean_up_the_code.mdwn
@@ -1,13 +1,13 @@
-[[meta copyright="Copyright © 2005, 2006, 2007, 2008
- Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2005, 2006, 2007, 2008 Free Software Foundation,
+Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
# Restructure the tree in a sane way
@@ -39,80 +39,80 @@ So, additionally to the list given below, there may actually be a bunch of
further files (also exported ones) that serve no real value, but are being
`#include`d through one way or another.
-* [[source_gnumach-1-branch ddb/db_expr.h]]
+* [[!source_gnumach-1-branch ddb/db_expr.h]]
Currently used, but copyright violation? Rewrite?
-* [[source_gnumach-1-branch ddb/db_print.h]]
+* [[!source_gnumach-1-branch ddb/db_print.h]]
Copyright violation? Currently unused, but could be used in principle (or
be rewritten, to avoid the copyright oddity).
-* [[source_gnumach-1-branch ddb/tr.h]]
+* [[!source_gnumach-1-branch ddb/tr.h]]
Copyright violation. Unused. Remove.
-* [[source_gnumach-1-branch device/dev_master.h]]
+* [[!source_gnumach-1-branch device/dev_master.h]]
Might be usable for SMP? Remove otherwise.
-* [[source_gnumach-1-branch i386/i386/kttd_machdep.h]]
+* [[!source_gnumach-1-branch i386/i386/kttd_machdep.h]]
-* [[source_gnumach-1-branch i386/i386/sched_param.h]]
+* [[!source_gnumach-1-branch i386/i386/sched_param.h]]
-* [[source_gnumach-1-branch i386/include/mach/i386/cthreads.h]]
+* [[!source_gnumach-1-branch i386/include/mach/i386/cthreads.h]]
Was probably once exported, but is no longer.
-* [[source_gnumach-1-branch i386/include/mach/i386/ioccom.h]]
+* [[!source_gnumach-1-branch i386/include/mach/i386/ioccom.h]]
Exported.
-* [[source_gnumach-1-branch include/device/audio_status.h]]
+* [[!source_gnumach-1-branch include/device/audio_status.h]]
Exported.
-* [[source_gnumach-1-branch include/device/tape_status.h]]
+* [[!source_gnumach-1-branch include/device/tape_status.h]]
Exported.
-* [[source_gnumach-1-branch include/mach/alert.h]]
+* [[!source_gnumach-1-branch include/mach/alert.h]]
Exported.
-* [[source_gnumach-1-branch include/mach/boot.h]]
+* [[!source_gnumach-1-branch include/mach/boot.h]]
Exported.
-* [[source_gnumach-1-branch include/mach/macro_help.h]]
+* [[!source_gnumach-1-branch include/mach/macro_help.h]]
Exported.
-* [[source_gnumach-1-branch include/mach/multiboot.h]]
+* [[!source_gnumach-1-branch include/mach/multiboot.h]]
Exported.
-* [[source_gnumach-1-branch include/mach/profil.h]]
+* [[!source_gnumach-1-branch include/mach/profil.h]]
Exported.
-* [[source_gnumach-1-branch include/mach/profilparam.h]]
+* [[!source_gnumach-1-branch include/mach/profilparam.h]]
Exported.
-* [[source_gnumach-1-branch include/mach/exec/a.out.h]]
+* [[!source_gnumach-1-branch include/mach/exec/a.out.h]]
Exported.
-* [[source_gnumach-1-branch include/mach_debug/pc_info.h]]
+* [[!source_gnumach-1-branch include/mach_debug/pc_info.h]]
Currently not exported, but was probably once meant to be.
-* [[source_gnumach-1-branch kern/act.h]]
+* [[!source_gnumach-1-branch kern/act.h]]
-* [[source_gnumach-1-branch kern/refcount.h]]
+* [[!source_gnumach-1-branch kern/refcount.h]]
-* [[source_gnumach-1-branch kern/shuttle.h]]
+* [[!source_gnumach-1-branch kern/shuttle.h]]
# Remove dead functions, variables, etc. from source files
diff --git a/microkernel/mach/gnumach/projects/gdb_stubs.mdwn b/microkernel/mach/gnumach/projects/gdb_stubs.mdwn
index 9a11a82b..ef1b4909 100644
--- a/microkernel/mach/gnumach/projects/gdb_stubs.mdwn
+++ b/microkernel/mach/gnumach/projects/gdb_stubs.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
* <http://lists.gnu.org/archive/html/bug-hurd/2008-04/msg00103.html>
diff --git a/microkernel/mach/gnumach/reference_manual.mdwn b/microkernel/mach/gnumach/reference_manual.mdwn
index 225ab176..95d11517 100644
--- a/microkernel/mach/gnumach/reference_manual.mdwn
+++ b/microkernel/mach/gnumach/reference_manual.mdwn
@@ -1,13 +1,13 @@
-[[meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+[[!meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
*The GNU Mach Reference Manual* documents the architecture, the usage and the
programming of the GNU Mach microkernel. At the moment, the manual documents
diff --git a/microkernel/mach/history.mdwn b/microkernel/mach/history.mdwn
index a8951737..5a3608cd 100644
--- a/microkernel/mach/history.mdwn
+++ b/microkernel/mach/history.mdwn
@@ -1,7 +1,3 @@
-# <a name="Table_of_Contents"> Table of Contents </a>
-
-%TOC%
-
# <a name="Early_beginnings"> Early beginnings </a>
Mach has quite a history. Everything actually started at the University of Rochester in 1975. It was invented to demonstrate how operating systems could be built using a modular design where processes communicated using message passing, even across networks. The system was called the Rochester Intelligent Gateway and ran on a 16 bit mini computer called Eclipse from Data General.
diff --git a/microkernel/mach/ipc.mdwn b/microkernel/mach/ipc.mdwn
index 889fac2f..aaf3ba23 100644
--- a/microkernel/mach/ipc.mdwn
+++ b/microkernel/mach/ipc.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
[[General_information|/ipc]] about IPC.
diff --git a/microkernel/mach/ipc/sequence_numbering.mdwn b/microkernel/mach/ipc/sequence_numbering.mdwn
index 7c1f68e4..eb94d662 100644
--- a/microkernel/mach/ipc/sequence_numbering.mdwn
+++ b/microkernel/mach/ipc/sequence_numbering.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
Mach's [[IPC]] mechanism allows for getting access to a message's sequence
number.
diff --git a/microkernel/mach/mig.mdwn b/microkernel/mach/mig.mdwn
index eb1c0906..4275a4b4 100644
--- a/microkernel/mach/mig.mdwn
+++ b/microkernel/mach/mig.mdwn
@@ -1,13 +1,13 @@
-[[meta copyright="Copyright © 2001, 2002, 2003, 2006, 2007, 2008 Free Software
+[[!meta copyright="Copyright © 2001, 2002, 2003, 2006, 2007, 2008 Free Software
Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
The Mach Interface Generator (MIG) is an [[IDL]] compiler. Based on an
interface definition, it creates stubs to [[invoke]] object methods
diff --git a/microkernel/mach/mig/documentation.mdwn b/microkernel/mach/mig/documentation.mdwn
index 93bc2769..be762960 100644
--- a/microkernel/mach/mig/documentation.mdwn
+++ b/microkernel/mach/mig/documentation.mdwn
@@ -1,13 +1,13 @@
-[[meta copyright="Copyright © 2002, 2003, 2005, 2007, 2008, 2009 Free Software
+[[!meta copyright="Copyright © 2002, 2003, 2005, 2007, 2008, 2009 Free Software
Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
This is a small collection of links to external documents describing the *Mach
Interface Generator* used by GNU Mach.
@@ -23,17 +23,17 @@ concepts are applicable to Mach 3.0 user level programming.
Linda R. Walmer and Mary R. Thompson. *A Programmer's Guide to the Mach User
Environment*. [PostScript
-](ftp://ftp.cs.cmu.edu/afs/cs/project/mach/public/doc/unpublished/machuse.ps),
-[Doc](ftp://ftp.cs.cmu.edu/afs/cs/project/mach/public/doc/unpublished/machuse.doc).
+](http://www.cs.cmu.edu/afs/cs/project/mach/public/doc/unpublished/machuse.ps),
+[Doc](http://www.cs.cmu.edu/afs/cs/project/mach/public/doc/unpublished/machuse.doc).
February 1988. School of Computer Science, Carnegie Mellon University.
An ftp directory containing the [mig programming
-examples](ftp://ftp.cs.cmu.edu/afs/cs/project/mach/public/doc/unpublished/mig_example)
+examples](http://www.cs.cmu.edu/afs/cs/project/mach/public/doc/unpublished/mig_example)
for this tutorial.
Slides to Rich Drave's talk on MIG, on November 21, 1991:
-[PostScript](ftp://ftp.cs.cmu.edu//afs/cs/project/mach/public/doc/unpublished/internals_slides/Mig/root.ps),
-[TeX](ftp://ftp.cs.cmu.edu//afs/cs/project/mach/public/doc/unpublished/internals_slides/Mig/slides.tex).
+[PostScript](http://www.cs.cmu.edu//afs/cs/project/mach/public/doc/unpublished/internals_slides/Mig/root.ps),
+[TeX](http://www.cs.cmu.edu//afs/cs/project/mach/public/doc/unpublished/internals_slides/Mig/slides.tex).
# Roots
@@ -48,8 +48,8 @@ tasks."
Richard P. Draves, Michael B. Jones, Mary R. Thompson, *MIG - THE MACH
INTERFACE GENERATOR*.
-[ps](ftp://ftp.cs.cmu.edu/afs/cs/project/mach/public/doc/unpublished/mig.ps),
-[doc](ftp://ftp.cs.cmu.edu/afs/cs/project/mach/public/doc/unpublished/mig.doc).
+[ps](http://www.cs.cmu.edu/afs/cs/project/mach/public/doc/unpublished/mig.ps),
+[doc](http://www.cs.cmu.edu/afs/cs/project/mach/public/doc/unpublished/mig.doc).
November 1989. Department of Computer Science, Carnegie-Mellon University.
@@ -70,6 +70,12 @@ pp. 67--77."
[Chapter 4, Inter Process
Communication](http://www.gnu.org/software/hurd/gnumach-doc/Inter-Process-Communication.html).
+ * OSF's [Server Writer's Guide (ps)](http://www.cs.cmu.edu/afs/cs/project/mach/public/doc/osf/server_writer.ps)
+ [Server Writer's Guide (pdf)](http://shakthimaan.com/downloads/hurd/server_writer.pdf)
+
+ * OSF's [Server Writer's Interfaces (ps)](http://www.cs.cmu.edu/afs/cs/project/mach/public/doc/osf/server_interface.ps)
+ [Server Writer's Interfaces (pdf)](http://shakthimaan.com/downloads/hurd/server_interface.pdf)
+
* Flags:
* [[dealloc_and_dealloc[&#93;|dealloc]]
diff --git a/microkernel/mach/mig/documentation/dealloc.mdwn b/microkernel/mach/mig/documentation/dealloc.mdwn
index 008499f1..b627b532 100644
--- a/microkernel/mach/mig/documentation/dealloc.mdwn
+++ b/microkernel/mach/mig/documentation/dealloc.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
The [[GNU_Mach_Reference_Manual|gnumach/reference_manual]] describes the
`dealloc` flag in [Chapter 4.2.4,
diff --git a/microkernel/mach/mig/documentation/servercopy.mdwn b/microkernel/mach/mig/documentation/servercopy.mdwn
index 5ede723b..8abf9b07 100644
--- a/microkernel/mach/mig/documentation/servercopy.mdwn
+++ b/microkernel/mach/mig/documentation/servercopy.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
For IN args. If set it...
diff --git a/microkernel/mach/mig/gnu_mig.mdwn b/microkernel/mach/mig/gnu_mig.mdwn
index 4f5fb5c8..1bcbd545 100644
--- a/microkernel/mach/mig/gnu_mig.mdwn
+++ b/microkernel/mach/mig/gnu_mig.mdwn
@@ -1,13 +1,13 @@
-[[meta copyright="Copyright © 2001, 2006, 2008 Free Software Foundation,
+[[!meta copyright="Copyright © 2001, 2006, 2008, 2009 Free Software Foundation,
Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
GNU MIG is the GNU distribution of the
[[Mach_3.0_interface_generator_*MIG*|mig]], as maintained by the GNU Hurd
@@ -21,4 +21,4 @@ software in the GNU system that uses Mach-based
GNU MIG is fully compatible with [[OSF_MIG|mig]].
* [[Building]] - building (and obtaining) GNU MIG
- * [[Open_Issues]]
+ * [[Open Issues|tag/open_issue_mig]]
diff --git a/microkernel/mach/mig/gnu_mig/open_issues.mdwn b/microkernel/mach/mig/gnu_mig/open_issues.mdwn
deleted file mode 100644
index 225f9cfc..00000000
--- a/microkernel/mach/mig/gnu_mig/open_issues.mdwn
+++ /dev/null
@@ -1,21 +0,0 @@
-[[meta copyright="Copyright © 2008 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="Open Issues"]]
-
-This is a dumping ground for open issues for GNU MIG.
-
-[[inline
-pages="microkernel/mach/mig/gnu_mig/open_issues/* and !*/discussion"
-show=0
-feeds=no
-actions=yes
-rootpage="microkernel/mach/mig/gnu_mig/open_issues"
-postformtext="Add a new item titled:"]]
diff --git a/microkernel/mach/port.mdwn b/microkernel/mach/port.mdwn
index 77b1372f..af4a0c8d 100644
--- a/microkernel/mach/port.mdwn
+++ b/microkernel/mach/port.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
Mach ports are [[capabilities|capability]].
diff --git a/microkernel/mach/rpc.mdwn b/microkernel/mach/rpc.mdwn
index ecef86ee..72acfaa0 100644
--- a/microkernel/mach/rpc.mdwn
+++ b/microkernel/mach/rpc.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
[[General_information|/rpc]] about RPC.
diff --git a/microkernel/viengoos.mdwn b/microkernel/viengoos.mdwn
index 7e3cb01d..2b9fee03 100644
--- a/microkernel/viengoos.mdwn
+++ b/microkernel/viengoos.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
*viengoos* is a new kernel currently being designed and written by Neal
Walfield.
@@ -17,6 +17,15 @@ check it out using, for example:
git clone git://git.sv.gnu.org/hurd/viengoos.git
+Then update to viengoos-on-bare-metal
+
+ cd viengoos
+ git checkout -b viengoos-on-bare-metal origin/viengoos-on-bare-metal
+
+viengoos-on-bare-metal is the current development focus.
+
+Discussion should be held on the [[mailing lists/l4-hurd]] mailing list.
+
* [[Building]]
* Running
* [[QEMU]]
diff --git a/microkernel/viengoos/building.mdwn b/microkernel/viengoos/building.mdwn
index 9eb5e4b8..45111c35 100644
--- a/microkernel/viengoos/building.mdwn
+++ b/microkernel/viengoos/building.mdwn
@@ -1,104 +1,100 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-## Viengoos build
+Check out Viengoos and switch to the viengoos-on-bare-metal branch
+(all development is currently done on this branch and it will
+eventually be merged into the master branch):
-Checkout viengoos:
+ $ git clone git://git.savannah.gnu.org/hurd/viengoos.git
+ $ cd viengoos
+ $ git checkout -b viengoos-on-bare-metal origin/viengoos-on-bare-metal
- git clone git://git.savannah.gnu.org/hurd/viengoos.git
+Generate the autoconf environment (note that --force is not specified
+as we have our own version of config.guess and config.sub):
-Configure:
+ $ autoreconf -i
- autoreconf -i
- mkdir test build
+Configure a build directory:
-Make check on test (fails to complete as on July 7, 2008):
+ $ mkdir build
+ $ cd build
+ $ ../configure --host=x86_64-pc-viengoos-gnu --with-newlib
- cd test
- ../configure --enable-l4-abi=x2 --host=i686-pc-viengoos-gnu --enable-tests
- make check
+Now, build Viengoos. Running make the first time will automatically
+fetch binutils and gcc from the Internet and build a cross compiler.
+Running make again will build the Viengoos proper. Again, the build
+process with fetch several tarballs including Newlib, the Boehm GC and
+Sqlite.
-Build the compiler:
+ $ make
+ ...
+ The cross compiler is now set-up. Re-run `make' and proceed as usual.
+ make[2]: Leaving directory `.../viengoos/build'
+ make[1]: Leaving directory `.../viengoos/build'
+ $ make
- cd ../build
- ../configure --enable-l4-abi=x2 --host=i686-pc-viengoos-gnu --with-newlib
+# Booting Using QEMU
-Build cross-compiler:
+To boot Viengoos, use Grub 2. You cannot use Grub Legacy: Viengoos is
+an ELF64 executable, which Grub Legacy does not support.
- make
+First, check out Grub 2 from svn:
-Build Viengoos proper:
+ $ svn co svn://svn.savannah.gnu.org/grub/trunk/grub2
+ $ cd grub2
- make
+Before building Grub 2, you should apply the following patch, which
+makes it easy to tell Grub to load a specific grub.cfg at start up
+([details](http://lists.gnu.org/archive/html/grub-devel/2009-01/msg00099.html)).
-Install the built executables:
+ $ wget http://www.gnu.org/software/hurd/microkernel/viengoos/grub2-config.diff -O /dev/stdout | patch -p0
- cd ..
- mkdir install
- install -s build/laden/laden install
- install -s build/viengoos/viengoos install
- install -s build/hieronymus/hieronymus install
+Next, build Grub 2:
-## BUILD L4
+ $ ./autogen.sh
+ $ mkdir build
+ $ cd build
+ $ ../configure --prefix=`pwd`/../install
+ $ make && make install
-Get Pistachio using hg:
+Create the boot disk:
- hg clone http://hg.l4ka.org/l4ka-pistachio
+ $ cd ../install
+ $ bin/grub-mkrescue boot.img --configfile="(hd0,1)/grub.cfg" --image-type=floppy --modules='help reboot serial multiboot pc configfile normal boot fat'
-Build:
+Now, create /viengoos and link viengoos and hieronymus into that
+directory:
- cd kernel
+ $ mkdir /viengoos
+ $ cd /viengoos
+ $ ln -s ~/viengoos/build/viengoos/viengoos.stripped viengoos
+ $ ln -s ~/viengoos/build/hieronymus/hieronymus.stripped hieronymus
- make BUILDDIR=/absolute/path/to/build
- cd build
+Also, create a grub.cfg file in /viengoos/grub.cfg:
-Check Makeconf.local:
+ set timeout=1
+ set default=0
+ set root=hd0,1
+
+ menuentry "Viengoos" {
+ multiboot /viengoos -D 3 -o serial
+ module /hieronymus
+ }
- make menuconfig
- Kernel->Enable experimental features->Pager ExchangeRegisters
-
- make
+NB: If you edit grub.cfg and a backup file called grub.cfg~ is
+created, qemu will use grub.cfg~ instead of grub.cfg! Thus, after
+editing grub.cfg, be sure to delete any grub.cfg~ file!
-## Build sigma0
+Finally, boot!
- cd user
+ $ qemu-system-x86_64 -serial stdio -fda ~/grub2/install/boot.img -hda fat:/viengoos -boot a
- autoheader
- autoconf
- ./configure
- make
-
-## Test!
-
-Install all executables to /usr/local/hurd. Create a menu.lst
-
- title The GNU Hurd on L4
- root (hd0,0)
- kernel /laden -D
- module /x86-kernel
- module /sigma0
- module /viengoos -D 3 -o serial
- module /hieronymus -D 3
-
-Get specific grub version:
-
- wget ftp://alpha.gnu.org/gnu/grub/grub-0.97-i386-pc.ext2fs
-
-Use the following to boot:
-
- qemu -serial stdio -hdb fat:/usr/local/hurd -fda grub-0.97-i386-pc.ext2fs -boot a
-
-At grub prompt:
-
- grub> root (hd0,0)
-
- grub> configfile /menu.lst
-
-It will boot to a kernel debugger prompt.
+By default, Hieronymus is configured to load ruth, a test suite. Ruth
+can take a long time to complete.
diff --git a/microkernel/viengoos/documentation.mdwn b/microkernel/viengoos/documentation.mdwn
index 1fe4c937..52ff7a48 100644
--- a/microkernel/viengoos/documentation.mdwn
+++ b/microkernel/viengoos/documentation.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
The most up-to-date documentation is in the source code itself, see in
particular the header files in the hurd directory.
diff --git a/microkernel/viengoos/grub2-config.diff b/microkernel/viengoos/grub2-config.diff
new file mode 100644
index 00000000..e4b1ef40
--- /dev/null
+++ b/microkernel/viengoos/grub2-config.diff
@@ -0,0 +1,47 @@
+2009-01-17 Neal H. Walfield <address@hidden>
+
+ * util/i386/pc/grub-mkrescue.in: Add new option --configfile. If
+ not the set and not the empty string, load it from the generated
+ config file on boot.
+
+Index: util/i386/pc/grub-mkrescue.in
+===================================================================
+--- util/i386/pc/grub-mkrescue.in (revision 2148)
++++ util/i386/pc/grub-mkrescue.in (working copy)
+@@ -49,6 +49,7 @@
+ --image-type=TYPE select floppy or cdrom (default)
+ --emulation=TYPE select El Torito boot emulation type floppy
+ or none (default) (cdrom only)
++ --configfile=FILE config file to load (default: none)
+
+ grub-mkimage generates a bootable rescue image of the specified type.
+
+@@ -93,6 +94,9 @@
+ echo "Unknown emulation type \`$emulation'" 1>&2
+ exit 1 ;;
+ esac ;;
++ --configfile=*)
++ configfile=`echo "$option" | sed 's/--configfile=//'`
++ ;;
+ -*)
+ echo "Unrecognized option \`$option'" 1>&2
+ usage
+@@ -121,9 +125,15 @@
+ ${aux_dir}/boot/grub/
+
+ modules="biosdisk `cat ${input_dir}/partmap.lst` ${modules}"
+-for i in ${modules} ; do
+- echo "insmod $i"
+-done > ${aux_dir}/boot/grub/grub.cfg
++{
++ for i in ${modules} ; do
++ echo "insmod $i"
++ done
++ if test x$configfile != x
++ then
++ echo "configfile $configfile"
++ fi
++} > ${aux_dir}/boot/grub/grub.cfg
+
+ for d in ${overlay}; do
+ echo "Overlaying $d"
diff --git a/microkernel/viengoos/hardware.mdwn b/microkernel/viengoos/hardware.mdwn
index 1b4ce514..aff70604 100644
--- a/microkernel/viengoos/hardware.mdwn
+++ b/microkernel/viengoos/hardware.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
I boot over the network using PXE.
diff --git a/microkernel/viengoos/projects.mdwn b/microkernel/viengoos/projects.mdwn
index b29607e9..971206bb 100644
--- a/microkernel/viengoos/projects.mdwn
+++ b/microkernel/viengoos/projects.mdwn
@@ -1,63 +1,17 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
Some projects:
-# Minor
-
-## New hash function
-
-The current hash function in libhurd-ihash results in a lot of
-collisions when the hash table is 80% full. To overcome this, we keep
-hash tables at most 30% full. This represents a fair amount of
-overhead. Find a better algorithm. There can either be one that is
-appropriate in the general case or one that works well in a relevant,
-specific case, e.g., viengoos/object.c uses a hash to find the object
-corresponding to a frame, which is keyed on its physical address.
-
-# Major
-
-## Address Space Management
-
-In Viengoos, a process's address space is managed entirely in user
-space by the process itself. This creates two interesting problems:
-dealing with circular dependencies resulting from having to manage the
-address space data structures and accessing and manipulating the
-address space data structures.
-
-First, managing the address space requires resources, which in turn
-may require address space (e.g., data structures require memory which
-require address space, etc.). We currently break this circular
-dependency by trying to keep enough resources in reserve that
-allocating resources for managing the address space never requires
-more resources than are minimally in the reserve. The reserve is
-currently chosen in an ad-hoc fashion. It would be nice to determine
-it more systematically. Moreover, it would be nice to reduce the
-cases in which a reserve is required. This may be possible by
-restructuring some of the code.
-
-Second, the address space data structures are protected using a single
-lock. This not only means that only a single thread can be updating
-the address space at a time, but that if a thread faults and the
-address space is locked, then the process dead locks! It should be
-possible to at least walk the address space using lock-free
-techniques. This requires updating the address space construction
-code such that all addresses remain valid during any given
-manipulation. Second, to avoid the mentioned dead-lock problem, we
-try to ensure that accessing the data structures will never result in
-a fault. This means protecting the stack. An alternative approach is
-to use undo buffers.
-
-# Thesis
-
-## Capability aware compiler
-
-Modify, e.g., gcc to understand capability semantics and teach gcc how
-to optimize it, e.g., how to batch and combine calls.
+[[!inline
+pages="microkernel/viengoos/projects/* and !microkernel/viengoos/projects/*/*"
+show=0
+feeds=no
+actions=yes]]
diff --git a/microkernel/viengoos/projects/address_space_management.mdwn b/microkernel/viengoos/projects/address_space_management.mdwn
new file mode 100644
index 00000000..2d00e4f4
--- /dev/null
+++ b/microkernel/viengoos/projects/address_space_management.mdwn
@@ -0,0 +1,40 @@
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!tag open_issue_viengoos]]
+
+In Viengoos, a process's address space is managed entirely in user
+space by the process itself. This creates two interesting problems:
+dealing with circular dependencies resulting from having to manage the
+address space data structures and accessing and manipulating the
+address space data structures.
+
+First, managing the address space requires resources, which in turn
+may require address space (e.g., data structures require memory which
+require address space, etc.). We currently break this circular
+dependency by trying to keep enough resources in reserve that
+allocating resources for managing the address space never requires
+more resources than are minimally in the reserve. The reserve is
+currently chosen in an ad-hoc fashion. It would be nice to determine
+it more systematically. Moreover, it would be nice to reduce the
+cases in which a reserve is required. This may be possible by
+restructuring some of the code.
+
+Second, the address space data structures are protected using a single
+lock. This not only means that only a single thread can be updating
+the address space at a time, but that if a thread faults and the
+address space is locked, then the process dead locks! It should be
+possible to at least walk the address space using lock-free
+techniques. This requires updating the address space construction
+code such that all addresses remain valid during any given
+manipulation. Second, to avoid the mentioned dead-lock problem, we
+try to ensure that accessing the data structures will never result in
+a fault. This means protecting the stack. An alternative approach is
+to use undo buffers.
diff --git a/microkernel/viengoos/projects/capability-aware_compiler.mdwn b/microkernel/viengoos/projects/capability-aware_compiler.mdwn
new file mode 100644
index 00000000..b4e465d9
--- /dev/null
+++ b/microkernel/viengoos/projects/capability-aware_compiler.mdwn
@@ -0,0 +1,16 @@
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!tag open_issue_viengoos]]
+
+Modify, e.g., gcc to understand capability semantics and teach gcc how
+to optimize it, e.g., how to batch and combine calls.
+
+This project is deemed suitable for a thesis.
diff --git a/microkernel/viengoos/projects/new_hash_function.mdwn b/microkernel/viengoos/projects/new_hash_function.mdwn
new file mode 100644
index 00000000..1747511d
--- /dev/null
+++ b/microkernel/viengoos/projects/new_hash_function.mdwn
@@ -0,0 +1,19 @@
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!tag open_issue_viengoos]]
+
+The current hash function in libhurd-ihash results in a lot of
+collisions when the hash table is 80% full. To overcome this, we keep
+hash tables at most 30% full. This represents a fair amount of
+overhead. Find a better algorithm. There can either be one that is
+appropriate in the general case or one that works well in a relevant,
+specific case, e.g., viengoos/object.c uses a hash to find the object
+corresponding to a frame, which is keyed on its physical address.
diff --git a/microkernel/viengoos/serial_port.mdwn b/microkernel/viengoos/serial_port.mdwn
index 53b988c5..14efcb9f 100644
--- a/microkernel/viengoos/serial_port.mdwn
+++ b/microkernel/viengoos/serial_port.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
Viengoos can be configured to send output to the serial port (in fact,
this is the only configuration that I use). To talk to the serial
diff --git a/naming_context.mdwn b/naming_context.mdwn
index 9c701e71..3a0751c0 100644
--- a/naming_context.mdwn
+++ b/naming_context.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
Names are bindings to objects, however, to find an object
given a name, the relation must be looked up in a
diff --git a/news.mdwn b/news.mdwn
index 8e5d73da..4511047c 100644
--- a/news.mdwn
+++ b/news.mdwn
@@ -1,14 +1,14 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-[[inline
+[[!inline
pages="news/* and !*/discussion"
show=0
feeds=no
diff --git a/news/2002-01-13.mdwn b/news/2002-01-13.mdwn
index ed56563d..920c2593 100644
--- a/news/2002-01-13.mdwn
+++ b/news/2002-01-13.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2002, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2002, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
An
<A HREF="http://www.pl-berichte.de/berichte/brinkmann.html">interview
diff --git a/news/2002-01-19.mdwn b/news/2002-01-19.mdwn
index d221453d..c6923220 100644
--- a/news/2002-01-19.mdwn
+++ b/news/2002-01-19.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2002, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2002, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
The Toronto Hurd User Group meets: The University of Waterloo
Computer Science Club will be hosting a talk on the Hurd and the
diff --git a/news/2002-02-18.mdwn b/news/2002-02-18.mdwn
index 74c0191d..e550a8f6 100644
--- a/news/2002-02-18.mdwn
+++ b/news/2002-02-18.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2002, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2002, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
Pro-Linux has published a <A
HREF="http://www.pl-berichte.de/berichte/hurd/hurd-status/">GNU/Hurd
diff --git a/news/2002-03-03.mdwn b/news/2002-03-03.mdwn
index db730238..8b60ed9b 100644
--- a/news/2002-03-03.mdwn
+++ b/news/2002-03-03.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2002, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2002, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
There is a new mailing list called <A
HREF="http://mail.gnu.org/mailman/listinfo/hurd-devel-readers">
diff --git a/news/2002-03-08.mdwn b/news/2002-03-08.mdwn
index 64fa508a..f64f04f1 100644
--- a/news/2002-03-08.mdwn
+++ b/news/2002-03-08.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2002, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2002, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
We are pleased to announce version 1.3 of the GNU distribution of the
Mach 3.0 interface generator `MIG'. It may be found in the file
diff --git a/news/2002-03-23.mdwn b/news/2002-03-23.mdwn
index 9820b8c5..f3c12633 100644
--- a/news/2002-03-23.mdwn
+++ b/news/2002-03-23.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2002, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2002, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
Added the [[hurd/Hurd_Hacking_Guide]] to the documentation section. Thanks to
Wolfgang Jährling for providing this introduction into GNU/Hurd and Mach
diff --git a/news/2002-05-05.mdwn b/news/2002-05-05.mdwn
index 81d36280..2b38863e 100644
--- a/news/2002-05-05.mdwn
+++ b/news/2002-05-05.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2002, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2002, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
We are currently finishing the transition from a stdio-based GNU C
Library (glibc) to a libio-based one. This is the result of about
diff --git a/news/2002-05-18.mdwn b/news/2002-05-18.mdwn
index b88db508..7017e410 100644
--- a/news/2002-05-18.mdwn
+++ b/news/2002-05-18.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2002, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2002, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
The "Linux and Unix User Group Heilbronn" (in Germany) is organizing
a Debian GNU/Hurd <A
diff --git a/news/2002-05-24.mdwn b/news/2002-05-24.mdwn
index cabc3e0d..a65d5c6d 100644
--- a/news/2002-05-24.mdwn
+++ b/news/2002-05-24.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2002, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2002, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
Finally, the transition from the stdio-based GLibC Application
Binary Interface (ABI) to the libio-based GLibC ABI has been
diff --git a/news/2002-05-28.mdwn b/news/2002-05-28.mdwn
index 60622205..dcf7c86d 100644
--- a/news/2002-05-28.mdwn
+++ b/news/2002-05-28.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2002, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2002, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
We are pleased to announce version 1.3 of the GNU distribution of
the Mach kernel, featuring advanced boot script support, support for
diff --git a/news/2002-06-22.mdwn b/news/2002-06-22.mdwn
index 6ac785a6..b6a606da 100644
--- a/news/2002-06-22.mdwn
+++ b/news/2002-06-22.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2002, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2002, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
Various developers of the Hurd and people interested in it will meet
at the <A HREF="http://lsm.abul.org/">Libre Software Meeting</A> in
diff --git a/news/2002-08-16.mdwn b/news/2002-08-16.mdwn
index 6f6dcb2e..9e70d686 100644
--- a/news/2002-08-16.mdwn
+++ b/news/2002-08-16.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2002, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2002, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
The Hurd sources have stabilized again after a short period in
which some of the interfaces were changed to prepare support of long
diff --git a/news/2002-10-03.mdwn b/news/2002-10-03.mdwn
index 40f4e1b6..90f4da9f 100644
--- a/news/2002-10-03.mdwn
+++ b/news/2002-10-03.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2002, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2002, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
A new article about [[the_authentication_server|hurd/documentation/auth]]
has been added to the web pages. It resembles the talk
diff --git a/news/2002-10-03_2.mdwn b/news/2002-10-03_2.mdwn
index 58b44789..e08e2b3c 100644
--- a/news/2002-10-03_2.mdwn
+++ b/news/2002-10-03_2.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2002, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2002, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
Marcus Brinkmann speaks about the GNU&nbsp;Hurd at "Reflections |
Projections 2002", the <A
diff --git a/news/2002-10-19.mdwn b/news/2002-10-19.mdwn
index e856370a..0d3f34a0 100644
--- a/news/2002-10-19.mdwn
+++ b/news/2002-10-19.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2002, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2002, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
The Toronto Hurd Users Group meets again: The <A
HREF="http://www.uwaterloo.ca/"> University of Waterloo</A> <A
diff --git a/news/2002-11-18.mdwn b/news/2002-11-18.mdwn
index 44e33200..805f2726 100644
--- a/news/2002-11-18.mdwn
+++ b/news/2002-11-18.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2002, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2002, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
For one month now, the pthread implementation by Neal Walfield is part
of the Hurd CVS source tree, and has been used to compile more
diff --git a/news/2003-01-18.mdwn b/news/2003-01-18.mdwn
index 0719f435..90c41f27 100644
--- a/news/2003-01-18.mdwn
+++ b/news/2003-01-18.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2003, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2003, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
Ga&euml;l Le Mignot, president of HurdFr,
<A HREF="http://news.hurdfr.org/gen.php3/2002/11/05/44,0,1,0,0.html">
diff --git a/news/2003-02-14.mdwn b/news/2003-02-14.mdwn
index 2509a771..2754d737 100644
--- a/news/2003-02-14.mdwn
+++ b/news/2003-02-14.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2003, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2003, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
The <A HREF="/software/hurd/docs.html#UsersGuide">GNU/Hurd User's Guide</A>
is now accessible through the <A HREF="/software/hurd/docs.html">Documentation
diff --git a/news/2003-07-02.mdwn b/news/2003-07-02.mdwn
index 6e76cc66..7e9634b7 100644
--- a/news/2003-07-02.mdwn
+++ b/news/2003-07-02.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2003, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2003, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
The tarball for Debian GNU/Hurd that Marcus Brinkmann made over the
years has been discontinued in favour of Jeff Bailey's
diff --git a/news/2003-07-16.mdwn b/news/2003-07-16.mdwn
index e4ec468b..da1fc12a 100644
--- a/news/2003-07-16.mdwn
+++ b/news/2003-07-16.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2003, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2003, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
GNU/LinuxTag 2003 is now over and since there was a talk given about
the Hurd, a demo GNU/Hurd machine running and the sale of Hurd
diff --git a/news/2003-08-21.mdwn b/news/2003-08-21.mdwn
index 8d060582..fcd2adb8 100644
--- a/news/2003-08-21.mdwn
+++ b/news/2003-08-21.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2003, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2003, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
Added a link to Patrick Strasser's <A
HREF="http://www.htu.tugraz.at/~past/hurd/global/">the Hurd Source
diff --git a/news/2005-01-28.mdwn b/news/2005-01-28.mdwn
index 5bd2ac19..3360fd3e 100644
--- a/news/2005-01-28.mdwn
+++ b/news/2005-01-28.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2005, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2005, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
Marcus Brinkmann added
<A HREF="/software/hurd/hurd-l4.html">a small web page</A> describing
diff --git a/news/2005-09-20.mdwn b/news/2005-09-20.mdwn
index 99a20940..09e156eb 100644
--- a/news/2005-09-20.mdwn
+++ b/news/2005-09-20.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2005, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2005, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
Material from the Operating System topic during
the <A HREF="http://libresoftwaremeeting.org/">Libre Software
diff --git a/news/2006-04-27.mdwn b/news/2006-04-27.mdwn
index dc52c527..9f99488a 100644
--- a/news/2006-04-27.mdwn
+++ b/news/2006-04-27.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2006, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2006, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
<p>The GNU&nbsp;Hurd project will participate in this year's <strong>Google
Summer of Code</strong>, under the aegis of the GNU project.</p>
@@ -14,7 +14,7 @@ Summer of Code</strong>, under the aegis of the GNU project.</p>
<p>The following is a list of items you might want to work on. If you want to
modify or extend these tasks or have your own ideas what to work on, please
feel invited to contact us on the
-[[bug-hurd_mailing_list|mailing_lists/bug-hurd]] or
+[[bug-hurd_mailing_list|mailing lists/bug-hurd]] or
the [[#hurd_IRC_channel|irc]].</p>
<ul>
diff --git a/news/2007-01-07.mdwn b/news/2007-01-07.mdwn
index 75eb7d01..530491f2 100644
--- a/news/2007-01-07.mdwn
+++ b/news/2007-01-07.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
A number of GNU Hurd developers will again (as already in the previous years)
meet at the time of the FOSDEM 2007, which will take place from 2007-02-24 to
diff --git a/news/2007-01-14.mdwn b/news/2007-01-14.mdwn
index 8dc3d9f5..f99eda87 100644
--- a/news/2007-01-14.mdwn
+++ b/news/2007-01-14.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
<p>Neal Walfield and Marcus Brinkmann have written and submitted for
publication <a
diff --git a/news/2007-03-14.mdwn b/news/2007-03-14.mdwn
index 3b1b2ad3..9895291c 100644
--- a/news/2007-03-14.mdwn
+++ b/news/2007-03-14.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
<p>The GNU&nbsp;Hurd project will participate in this year's <strong>Google
Summer of Code</strong>, under the aegis of the GNU project.</p>
@@ -14,7 +14,7 @@ Summer of Code</strong>, under the aegis of the GNU project.</p>
<p>The following is a list of items you might want to work on. If you want to
modify these task proposals or have your own ideas on what to work, then please
don't hesitate to contact us on the
-[[bug-hurd_mailing_list|mailing_lists/bug-hurd]] or
+[[bug-hurd_mailing_list|mailing lists/bug-hurd]] or
the [[#hurd_IRC_channel|irc]].</p>
<ul>
diff --git a/news/2007-10-01.mdwn b/news/2007-10-01.mdwn
index 768cf42b..b35bc337 100644
--- a/news/2007-10-01.mdwn
+++ b/news/2007-10-01.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
This year the GNU Hurd had again been assigned one slot within the **Google
Summer of Code** program, which was assigned to the task **design and implement
diff --git a/news/2007-10-12.mdwn b/news/2007-10-12.mdwn
index d262dcd8..ae125149 100644
--- a/news/2007-10-12.mdwn
+++ b/news/2007-10-12.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
Stefan Siegl added [[support_for_IPv6_networking|hurd/translator/pfinet/ipv6]]
to the *pfinet* translator.
diff --git a/news/2008-02-11.mdwn b/news/2008-02-11.mdwn
index a8f00497..0805287c 100644
--- a/news/2008-02-11.mdwn
+++ b/news/2008-02-11.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
A number of GNU Hurd developers will again (as already in the previous
years) meet at the time of the FOSDEM 2008, which will take place from
diff --git a/news/2008-03-19.mdwn b/news/2008-03-19.mdwn
index fc0388e0..02ea4c5f 100644
--- a/news/2008-03-19.mdwn
+++ b/news/2008-03-19.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
The GNU Hurd project has been accepted as a mentoring organisation for the
**Google Summer of Code 2008**! If you are a student and looking for a job
diff --git a/news/2008-09-11.mdwn b/news/2008-09-11.mdwn
index 1060761c..7d25e5a6 100644
--- a/news/2008-09-11.mdwn
+++ b/news/2008-09-11.mdwn
@@ -1,13 +1,13 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-Please see [[the_community/gsoc_page|community/gsoc]] for information about how
-our **Google Summer of Code 2008 participation** worked out. **Congratulations
-to both students and mentors!**
+All five students who worked on the Hurd during the **Google Summer of Code 2008** succeeded
+in their projects. For more information please see [[the_community/gsoc_page|community/gsoc]].
+**Congratulations to both students and mentors!**
diff --git a/news/2008-11-14.mdwn b/news/2008-11-14.mdwn
index 1e2c8802..58e035c3 100644
--- a/news/2008-11-14.mdwn
+++ b/news/2008-11-14.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
[[Samuel_Thibault|samuelthibault]] has implemented support for the PAE feature
offered by modern x86 processors. This largely faciliates the deployment of
diff --git a/news/2008-12-12.mdwn b/news/2008-12-12.mdwn
index 1850cb56..b2e92ef0 100644
--- a/news/2008-12-12.mdwn
+++ b/news/2008-12-12.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
Neal Walfield has submitted a paper to
[[community/meetings/EuroSys_2009]] describing how resource management
diff --git a/news/2009-03-28.mdwn b/news/2009-03-28.mdwn
new file mode 100644
index 00000000..00aebb09
--- /dev/null
+++ b/news/2009-03-28.mdwn
@@ -0,0 +1,13 @@
+[[!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]]."]]"""]]
+
+The application phase for the **Google Summer of Code 2009** has already
+started. Please see our [[page_about_the_GSoC|community/gsoc]] for
+details of how to apply for your favorite Hurd project.
diff --git a/news/2009-04-20.mdwn b/news/2009-04-20.mdwn
new file mode 100644
index 00000000..69831cca
--- /dev/null
+++ b/news/2009-04-20.mdwn
@@ -0,0 +1,12 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+Sergiu Ivanov will be working on [[unionmount_translators|user/scolobb]] during
+the **Google Summer of Code 2009**.
diff --git a/news/2009-06-30.mdwn b/news/2009-06-30.mdwn
new file mode 100644
index 00000000..92bc8a20
--- /dev/null
+++ b/news/2009-06-30.mdwn
@@ -0,0 +1,29 @@
+[[!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]]."]]"""]]
+
+A month of the Hurd: *Git migration*, *stand-alone libpthread* and *updated
+status*.
+[[!if test="included()" then="""[[!toggle id=full_news
+text="Details."]][[!toggleable id=full_news text="[[!paste id=full_news]]"]]"""
+else="[[!paste id=full_news]]"]]
+
+[[!cut id="full_news" text="""
+> This month Thomas Schwinge [finished
+> migrating](http://lists.gnu.org/archive/html/bug-hurd/2009-06/msg00147.html)
+> the main Hurd, GNU Mach, MIG, libpthread and unionfs to Git. You can find
+> the new repositories at <http://git.savannah.gnu.org/cgit/hurd/>.
+
+> Also, he made [libpthread buildable
+> stand-alone](http://lists.gnu.org/archive/html/bug-hurd/2009-06/msg00166.html)
+> by separating its build system from the Hurd's.
+
+> Additionally, Olaf Buddenhagen wrote a usability report about his experience
+> with the [[GNU Hurd for everyday work|hurd/status]].
+"""]]
diff --git a/news/2009-07-31.mdwn b/news/2009-07-31.mdwn
new file mode 100644
index 00000000..21f09ae2
--- /dev/null
+++ b/news/2009-07-31.mdwn
@@ -0,0 +1,44 @@
+[[!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 date="2009-08-03 08:00 UTC"]]
+
+A month of the Hurd: *hurd Debian package*, *union mount translator*, *bug
+fixes*, and a *job opening*.
+[[!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="""
+> Samuel Thibault uploaded a new version of the hurd
+> [[Debian|hurd/running/debian]] package which improves system stability by
+> fixing a long-standing bug in the [[hurd/translator/exec]] server that had
+> randomly made it hang, inhibiting the creation of new processes.
+
+> [[Sergiu Ivanov|scolobb]] implemented most of the functionality of the
+> [[union mount translator|hurd/translator/unionmount]] which allows combining
+> the [[filesystem trees exported by several translators|hurd/translator]] with
+> the filesystem tree of the underlying node (in contrast to a pure
+> [[hurd/translator/unionfs]], which won't do that). The patches are currently
+> undergoing testing and review on the [[bug-hurd mailing
+> list|mailing_lists/bug-hurd]]. This work is being done as a [[Google Summer
+> of Code|community/gsoc]] project, and we're happy to tell that Sergiu
+> successfully passed the project's midterm evaluation.
+
+> Also, [[Zheng Da|zhengda]] [[!GNU_Savannah_patch 6851 desc="fixed a bug"]] in GNU Mach's
+> [[!wikipedia Berkeley Packet Filter desc="BPF (Berkeley Packet Filter)"]]
+> implementation and contributed a number of fixes and
+> improvements for [[hurd/debugging/rpctrace]] which should help further debugging.
+
+> Aside from looking for new [[contributors|contributing]] all the time,
+> here is another job opening that doesn't require specific Hurd knowledge:
+> we're seeking [someone interested in writing a regression test suite for Hurd
+> components](http://lists.gnu.org/archive/html/bug-hurd/2009-07/msg00177.html).
+"""]]
diff --git a/news/2009-09-30.mdwn b/news/2009-09-30.mdwn
new file mode 100644
index 00000000..38f09bfa
--- /dev/null
+++ b/news/2009-09-30.mdwn
@@ -0,0 +1,32 @@
+[[!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 date="2009-10-01 11:52 UTC"]]
+
+A month of the Hurd: *Successful Google Summer of Code project: unionmount*.
+[[!if test="included()" then="""[[!toggle id=full_news
+text="Details."]][[!toggleable id=full_news text="[[!paste id=full_news]]"]]"""
+else="[[!paste id=full_news]]"]]
+
+[[!cut id="full_news" text="""
+> This month saw the successful completion of the Google Summer of Code 2009,
+> for which [[Sergiu Ivanov|scolobb]] created a
+> [[unionmount_translator|hurd/translator/unionmount]].
+> His work allows you to simply union one directory or translator into another one,
+> so you see the files of both of them side by side.
+>
+> He was mentored by Olaf Buddenhagen and both are now working on polishing the code
+> and extending the namespace based translator selection ([[hurd/translator/nsmux]]) which allows you to
+> read a node with a selected translator by simply appending `,,<translator>` to its name.
+>
+> That aside, we saw the usual steady rate of enhancement discussions, as well
+> as bugs getting fixed: X server crashing, preventing that GCC versions after
+> 4.2 optimize too much, etc.
+"""]]
diff --git a/news/2009-10-31.mdwn b/news/2009-10-31.mdwn
new file mode 100644
index 00000000..db3537d0
--- /dev/null
+++ b/news/2009-10-31.mdwn
@@ -0,0 +1,49 @@
+[[!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 date="2009-11-02 22:39 UTC"]]
+
+A month of the Hurd: new *installation CDs*, further *Git migration*,
+*porting*.
+[[!if test="included()" then="""[[!toggle id=full_news
+text="Details."]][[!toggleable id=full_news text="[[!paste id=full_news]]"]]"""
+else="[[!paste id=full_news]]"]]
+
+[[!cut id="full_news" text="""
+> This month Philip Charles created a new [installation
+> CD](http://ftp.debian-ports.org/debian-cd/current/), the [L
+> series](http://ftp.debian-ports.org/debian-cd/current/README-L1-disc-set),
+> for the Hurd, which brings us a big step towards installing the Hurd from the
+> Hurd (without the need of a Linux-based installer). If you enjoy testing
+> stuff, please give it a try.
+
+> On the same front, Michael Banck uploaded a new version of
+> [crosshurd](http://packages.debian.org/sid/crosshurd) that makes it again
+> possible to use this package for creating a GNU/Hurd system image directly
+> from Debian unstable packages.
+
+> Also, Thomas Schwinge migrated Sergiu Ivanov's [[hurd/translator/nsmux]],
+> [[Flávio Cruz|flaviocruz]]' cl-hurd *(clisp bindings)*, and Carl Fredrik
+> Hammar [[hurd/libchannel]] repositories into our new [*incubator* Git
+> repository](http://git.savannah.gnu.org/cgit/hurd/incubator.git/), making
+> them easier to access for other contributors.
+
+> Our bunch of porters continued to make further Debian packages usable on
+> GNU/Hurd: Pino Toscano worked on a lot of packages, and Wesley W. Terpstra
+> made [mlton](http://packages.debian.org/sid/mlton) build -- together with
+> Samuel Thibault, who first had to enhance [[GNU
+> Mach|microkernel/mach/gnumach]] to support allocating more than 1 GiB of RAM
+> to one user-space process, which mlton needs.
+
+> On the go, Samuel also fixed a number of other bugs here and there, for
+> example together with Eric Blake and Roland McGrath hashed out a difficile
+> issue in the filesystem servers regarding POSIX conformance and system
+> stability.
+"""]]
diff --git a/news/2009-11-30.mdwn b/news/2009-11-30.mdwn
new file mode 100644
index 00000000..86a575bc
--- /dev/null
+++ b/news/2009-11-30.mdwn
@@ -0,0 +1,51 @@
+[[!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 date="2009-12-03 11:00 UTC"]]
+
+A month of the Hurd: initial work on *network device drivers in user space*,
+*GRUB 2*.
+[[!if test="included()" then="""[[!toggle id=full_news
+text="Details."]][[!toggleable id=full_news text="[[!paste id=full_news]]"]]"""
+else="[[!paste id=full_news]]"]]
+
+[[!cut id="full_news" text="""
+> This month [[Zheng Da|zhengda]], our [[former Google Summer of Code student
+> working on network virtualization and some related
+> topics|community/gsoc/2008]], published the code for the pcnet32 device
+> driver that he had modified to run as a user-space process instead of inside
+> the kernel, and posted some preliminary [performance benchmark
+> results](http://lists.gnu.org/archive/html/bug-hurd/2009-11/msg00144.html).
+> The test results are mostly on par with the in-kernel driver, so they show
+> that moving the lower-layer parts of the networking stack, the device drivers
+> themselves, into user space can be done without losing (much) performance.
+> Given this encouraging start, work is going on to explore whether the [Device
+> Driver Environment](http://wiki.tudos.org/DDE/DDEKit) that has been created
+> for L4-based systems can be used for [providing GNU/Hurd systems with device
+> drivers](http://lists.gnu.org/archive/html/bug-hurd/2009-11/msg00241.html)
+> that (a) are more recent than our current ones, (b) support classes of
+> devices that [[we don't support so
+> far|microkernel/mach/gnumach/hardware_compatibility_list]], and (c) are
+> running as (possibly separate, fault-isolated) user-space processes.
+
+> Thanks to Samuel Thibault, the latest Debian GRUB 2 package (1.97+20091130-1)
+> [supports native
+> installation](http://lists.debian.org/debian-hurd/2009/11/msg00095.html) from
+> GNU/Hurd itself -- booting GNU/Hurd systems with GRUB has always been
+> working, but until now it wasn't possible to *install* GRUB from a GNU/Hurd
+> system. GNU GRUB has originally been written [for booting GNU/Hurd
+> systems](http://www.gnu.org/software/grub/manual/grub.html#History), so this
+> step completes its original purpose.
+
+> Samuel also continued to work on preparing the [[Xen branch of GNU
+> Mach|microkernel/mach/gnumach/ports/xen]] for being merged with the mainline
+> code, and he fixed a kernel panic in the kernel's floating point
+> support code.
+"""]]
diff --git a/news/2009-12-31.mdwn b/news/2009-12-31.mdwn
new file mode 100644
index 00000000..286350d1
--- /dev/null
+++ b/news/2009-12-31.mdwn
@@ -0,0 +1,85 @@
+[[!meta copyright="Copyright © 2009, 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta date="2009-12-31 17:33 UTC"]]
+
+A month of the Hurd: *official Xen domU support*, *DDE*, *porting*, and *FOSDEM 2010*.
+[[!if test="included()" then="""[[!toggle id=full_news
+text="Details."]][[!toggleable id=full_news text="[[!paste id=full_news]]"]]"""
+else="[[!paste id=full_news]]"]]
+
+[[!cut id="full_news" text="""
+
+> This month Samuel Thibault [merged his development branch into GNU Mach's
+> master
+> branch](http://lists.gnu.org/archive/html/bug-hurd/2009-12/msg00058.html) --
+> meaning that his [[GNU Mach Xen domU
+> port|microkernel/mach/gnumach/ports/xen]] is now part of the official
+> sources. Only the [[microkernel (GNU Mach)|microkernel/mach/gnumach]] needed
+> to be extended, and no changes were needed in the Hurd, or glibc code bases.
+> He had started this port in 2007 already, but it has been in heavy use over
+> the last two years already, so merging it into the main source bases was long
+> overdue.
+
+> He also got the necessary Xen patches committed into Xen's unstable branch,
+> so that from Xen's 4.0 release on you'll be able to boot GNU/Hurd systems
+> using `pv-grub`, without the need to prepare a special bootstrap image (like
+> an initrd).
+
+> Of course, running GNU/Hurd systems in other virtualization environments is
+> possible too, but the Xen domU approach offers superior performance compared
+> to [[hurd/running/QEMU]]'s machine emulation, for example.
+
+> Samuel also spent some time on adding code for [detecting invalid (duplicate)
+> port
+> deallocations](http://lists.gnu.org/archive/html/commit-hurd/2009-12/msg00016.html),
+> and started fixing these, as well as he fulfilled his usual share of
+> miscellaneous bug fixing.
+
+> The [[DDE]] port of Zheng Da now [passes the first
+> tests](http://lists.gnu.org/archive/html/bug-hurd/2009-12/msg00060.html),
+> bringing us the first steps towards updated device drivers -- and much lower
+> overhead for maintaining them.
+
+> Now that the Debian GNU/Hurd build stats are again hosted on the [master
+> Debian build machine](https://buildd.debian.org/stats/), Debian developers
+> see their packages' build failures more prominently, and quite a few started
+> to fix their packages.
+
+> Thus, thanks to the [[hurd/running/debian/porting]] work of mainly Emilio Pozuelo
+> Monfort and Pino Toscano, users of the Hurd can get many more packages
+> directly via the [[Debian GNU/Hurd|hurd/running/debian]] distribution.
+> Thanks to their and the other porters' relentless work, the percentage of
+> available Debian packages [has reached
+> 66%](https://buildd.debian.org/stats/hurd-i386.txt), rising. For a specific example,
+> they ported many GNOME packages, so that the `gnome-core` metapackage [is
+> installable
+> again](http://lists.gnu.org/archive/html/bug-hurd/2009-12/msg00217.html).
+> Please test these and [[report back|mailing lists/debian-hurd]].
+
+> Thomas Schwinge started the planning for [[a GNU Hurd folks meeting at
+> FOSDEM|community/meetings/fosdem 2010]] on February 6th/7th 2010 at the
+> Université Libre de Bruxelles.
+
+> Guillem Jover jumped in and started [fixing GNU Mach build
+> warnings](http://lists.gnu.org/archive/html/commit-hurd/2009-12/msg00008.html)
+> -- meaning that Thomas Schwinge's evil plan finally worked out, when he
+> enabled `-Wall` in an October 2006 commit:
+>
+> +# Yes, this makes the eyes hurt. But perhaps someone will finally take care of
+> +# all that scruffy Mach code... Also see <http://savannah.gnu.org/task/?5726>.
+> +AM_CFLAGS += \
+> + -Wall
+
+> ---
+
+> The GNU Hurd team wishes a pleasant Year 2010 to everyone!
+
+"""]]
diff --git a/news/2010-01-31.mdwn b/news/2010-01-31.mdwn
new file mode 100644
index 00000000..306a54b3
--- /dev/null
+++ b/news/2010-01-31.mdwn
@@ -0,0 +1,58 @@
+[[!meta copyright="Copyright © 2009, 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta date="2010-02-02 00:25 UTC"]]
+
+A month of the Hurd: *Arch Hurd*, *FOSDEM preparations* and a *thesis on mobile Hurd objects*.
+[[!if test="included()" then="""[[!toggle id=full_news
+text="Details."]][[!toggleable id=full_news text="[[!paste id=full_news]]"]]"""
+else="[[!paste id=full_news]]"]]
+
+[[!cut id="full_news" text="""
+
+> This month, we saw the first booting version of an [[hurd/running/Arch Hurd]]
+> system, which seconds the [[Debian GNU/Hurd|hurd/running/debian]]
+> distribution that already provides two third of the Debian software archive
+> compiled for GNU/Hurd.
+
+> Nine Hurd developers will [[meet at FOSDEM
+> 2010|community/meetings/fosdem_2010]] on February 6th and 7th in Bruxelles,
+> Belgium. On Sunday, Olaf will be giving two presentations in the Alt-OS
+> Developer Room: [*Why is Anyone Still Working on the GNU
+> Hurd?*](http://fosdem.org/2010/schedule/events/altos_hurd) (10:30), and
+> [*Porting KGI graphics drivers from Linux to GNU
+> Hurd*](http://fosdem.org/2010/schedule/events/altos_kgi_hurd) (13:00). The
+> day before, on Saturday, Bas will be giving a [talk about *Iris*, his new
+> kernel](http://fosdem.org/2010/schedule/events/emb_iris) (18:00, Embedded
+> Developer Room).
+
+> Carl Fredrik Hammar
+> [finished and presented](http://lists.gnu.org/archive/html/bug-hurd/2010-01/msg00078.html)
+> his thesis
+> [*Generalizing mobility for the Hurd*](http://users.student.lth.se/cs07fh9/2009-hammar-hurd-mobility.pdf)
+> and passed with distinction. Congratulations! Its abstract reads:
+
+> > The GNU Hurd features mobile objects
+> > in its implementation of filesystem backing stores.
+> > This thesis investigates the
+> > limitations and security concerns
+> > these objects present,
+> > and how they can be overcome.
+> > This is done in preparation for new applications
+> > that feature mobile code and mobile objects.
+> > In addition,
+> > one such application is studied and implemented,
+> > in which mobile code is used to make
+> > the `ioctl` system call more extensible.
+
+> So, when are *YOU* going to do a thesis, or another project on a
+> GNU/Hurd-related topic? [[Contact_us]] if you are interested!
+
+"""]]
diff --git a/news/2010-02-28.mdwn b/news/2010-02-28.mdwn
new file mode 100644
index 00000000..ee6e22ef
--- /dev/null
+++ b/news/2010-02-28.mdwn
@@ -0,0 +1,72 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta date="2010-03-10 15:55 UTC"]]
+
+A month of the Hurd: *DDE driver*, *X.org / libpciaccess*, *FOSDEM*, and
+*Google Summer of Code 2010*.
+[[!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="""
+
+> A bit late, but here it is finally: the *MotH* for February, 2010.
+
+> This month saw the first running and testable
+> [[DDE driver by Zheng Da|user/zhengda]],
+> with which he begins to reap the benefits of porting [[DDE]] to the Hurd --
+> essentially, allowing us to use current Linux device drivers.
+
+> Samuel Thibault pushed a [libpciaccess x86
+> backend](http://cgit.freedesktop.org/xorg/lib/libpciaccess/commit/?id=af2be74979aeab9a2fc4c933462e97ce70f816b6)
+> to X.Org:
+
+> > This adds support on x86 for OSes that do not have a PCI interface,
+> > tinkering with I/O ports, and makes use of it on GNU/Hurd.
+
+> In the course of this, he also got commit access to X.org, so it should be
+> easier now to get further Hurd-related patches applied.
+
+> As announced in our [[previous news blurb|2010-01-31]], at FOSDEM, Bas did
+> his presentation of [*Iris, a new capability-based microkernel
+> OS*](http://fosdem.org/2010/schedule/events/emb_iris) in the Embedded
+> Developer Room, and Olaf illustrated [*Why is Anyone Still Working on the GNU
+> Hurd?*](http://fosdem.org/2010/schedule/events/altos_hurd), and presented his
+> work of [*Porting KGI graphics drivers from Linux to GNU
+> Hurd*](http://fosdem.org/2010/schedule/events/altos_kgi_hurd), in the Alt-OS
+> Developer Room.
+
+> In [Mikel Olasagasti's
+> words](http://lists.gnu.org/archive/html/bug-hurd/2010-03/msg00014.html):
+
+> > The room was full and people was "standing-up" for the talk. Some people
+> > even couldn't enter to the room (+20?).
+> >
+> > Antrik [Olaf] made a good job. Was nice for the crowd to see Hurd running X,
+> > slow but working.
+
+> The regular IRC meeting schedule has been
+> [changed](http://lists.gnu.org/archive/html/bug-hurd/2010-02/msg00040.html)
+> to Wednesdays, 11:00 UTC; see the [[IRC#regular_meetings]] page for details.
+
+> Last, but not least, it is time again to think about the [[Google Summer of
+> Code|community/gsoc]]. In [[community/gsoc/2007]], the GNU Hurd had one
+> successful project, in [[community/gsoc/2008]] five of them,
+> [[community/gsoc/2009]] saw another one, so we obviously plan to make it five
+> projects again this year. We already have [[dozens of
+> ideas|community/gsoc/project ideas]] online, and will add yet more -- also
+> based on YOUR suggestions and wishes!
+
+> So, if you're a student, and interested in working on the GNU Hurd, please
+> join in; browse through the [[community/GSoC]] pages, and don't be shy to
+> [[contact us]]!
+
+"""]]
diff --git a/news/2010-03-31.mdwn b/news/2010-03-31.mdwn
new file mode 100644
index 00000000..c3c424d1
--- /dev/null
+++ b/news/2010-03-31.mdwn
@@ -0,0 +1,48 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta date="2010-04-01 07:55 UTC"]]
+
+A month of the Hurd: some more *bug squashing* and *Google Summer of Code 2010*.
+[[!if test="included()" then="""[[!toggle id=full_news
+text="Details."]][[!toggleable id=full_news text="[[!paste id=full_news]]"]]"""
+else="[[!paste id=full_news]]"]]
+
+[[!cut id="full_news" text="""
+
+> This month saw bugs dying as they met hackers like [Jérémie,
+> Samuel](http://lists.gnu.org/archive/html/bug-hurd/2010-03/msg00027.html), or
+> [Zheng,
+> Thomas](http://lists.gnu.org/archive/html/bug-hurd/2010-03/msg00051.html), or
+> [Jakub](http://lists.gnu.org/archive/html/bug-hurd/2010-03/msg00071.html)
+> (keeping it to a few ones which were discussed on the [[bug-hurd mailing
+> list|mailing_lists/bug-hurd]]).
+
+> Olaf, Thomas and Fredrik
+> [wrote](http://lists.gnu.org/archive/html/bug-hurd/2010-03/msg00022.html) and
+> submitted our [[community/gsoc/organization_application]] for the Google
+> Summer of Code 2010. However, Google is [asking most GNU projects to work
+> under the GNU project
+> umbrella](http://lists.gnu.org/archive/html/bug-hurd/2010-03/msg00125.html),
+> so we aren't listed as an organization on our own, but instead will again
+> participate as a subproject of GNU.
+
+> Anyway, this organizational detail is not at all important for interested
+> students; you can apply for any of the ideas that are listed on our
+> [[community/gsoc/project_ideas]] page (or come up with your own ideas, of
+> course!) via the [GNU project GSoC
+> page](http://socghop.appspot.com/gsoc/org/show/google/gsoc2010/gnuproject). If
+> you apply, please also include the information we're asking for on our
+> [[community/gsoc/student_application_form]]. Don't hesitate to
+> [[contact_us]] beforehand, if there are any questions. We're looking forward
+> to seeing your applications, please send them in [before
+> 2010-04-09](http://socghop.appspot.com/document/show/gsoc_program/google/gsoc2010/faqs#timeline)!
+
+"""]]
diff --git a/news/2010-04-30.mdwn b/news/2010-04-30.mdwn
new file mode 100644
index 00000000..131af4ea
--- /dev/null
+++ b/news/2010-04-30.mdwn
@@ -0,0 +1,91 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta date="2010-05-02 21:20 UTC"]]
+
+A month of the Hurd: *Arch Hurd*, *updated Debian GNU/Hurd QEMU image*, and *GSoC students*.
+[[!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="""
+
+> The Arch Hurd folks keep [making good
+> progress](http://lists.gnu.org/archive/html/help-hurd/2010-04/msg00003.html):
+> their count of available packages keeps increasing, and one of their team
+> reported the first instance of Arch Hurd [running on real
+> hardware](http://www.archhurd.org/news/11) (and uploaded [a
+> photo](http://wiki.archhurd.org/wiki/User:Giselher#ArchHurd_on_a_real_PC) as
+> evidence).
+
+> Of course, our Debian port is still progressing, too: 66% of all Debian
+> packages [are currently available for Debian
+> GNU/Hurd](https://buildd.debian.org/stats/hurd-i386.txt).
+
+> *Samuel Thibault*'s fix got included in libxcb1, so X.org again [works out of
+> the box](http://lists.debian.org/debian-hurd/2010/04/msg00034.html) using a
+> simple `startx`.
+
+> *Philip Charles* [extended his
+> offerings](http://lists.debian.org/debian-hurd/2010/04/msg00019.html) with an
+> updated *GRUB USB stick for booting Debian GNU/Hurd*.
+
+> *Carl Fredrik Hammar* proposed a patch to [faciliate debugging the startup of
+> misbehaving
+> translators](http://lists.gnu.org/archive/html/bug-hurd/2010-04/msg00037.html).
+
+> Mainly thanks to *Jose Luis Alarcon Sanchez*, we now have a [new QEMU
+> image](http://lists.debian.org/debian-hurd/2010/04/msg00098.html). It can be
+> run with a simple `qemu -hda debian-hurd-17042010-qemu.img`.
+
+> *Thomas Schwinge* updated [our glibc maintenance
+> repository](http://git.savannah.gnu.org/cgit/hurd/glibc.git/?h=tschwinge/Roger_Whittaker)
+> to a recent version, including a bunch of the patches from the Debian glibc
+> package (and these are meant to eventually be submitted upstream). After a
+> long break, he as well
+> [updated](http://lists.gnu.org/archive/html/bug-hurd/2010-04/msg00062.html)
+> his [[toolchain_cross-compilation_script|hurd/building/cross-compiling]] to
+> the current source code packages, and added C++ support.
+
+> On to the Google Summer of Code 2010: we got three students working on the
+> Hurd this year:
+
+> * *Jeremie Koenig*, mentored by *Samuel Thibault*, will be working on
+> adapting the Debian Installer to [produce working Debian GNU/Hurd
+> installation
+> images](http://socghop.appspot.com/gsoc/student_project/show/google/gsoc2010/debian/t127230758239)
+> so we can easily offer up to date disc-sets.
+> ([Details](http://wiki.debian.org/SummerOfCode2010/HurdDebianInstaller/JeremieKoenig).)
+
+> * *Emilio Pozuelo Monfort*, mentored by *Carl Fredrik Hammar* (who was a
+> GSoC student in 2007), will be working on a task that may be perceived as
+> less exciting from the outside, but yet is extremely valuable: [fixing
+> compatibility problems exposed by projects'
+> testsuites](http://socghop.appspot.com/gsoc/student_project/show/google/gsoc2010/gnuproject/t127230759396).
+> ([[Details|community/gsoc/project_ideas/testsuites]].) For starters, he
+> already got a glibc patch [accepted
+> upstream](http://sourceware.org/ml/libc-alpha/2010-04/msg00046.html).
+
+> * *Karim Allah Ahmed*, mentored by *Sergio López*, will be working on
+> [tuning the VM Subsystem in
+> GNU/Hurd](http://socghop.appspot.com/gsoc/student_project/show/google/gsoc2010/gnuproject/t127230759587)
+> to bring the virtual memory management in Hurd/Mach up to date.
+> ([[Details|community/gsoc/project_ideas/vm_tuning]].)
+
+> We'd be happy to see *YOU* sign up on our mailing lists
+> ([[mailing_lists/bug-hurd]] and [[mailing_lists/debian-hurd]] are the main
+> lists), and [[contribute|contributing]] towards making the Hurd usable for
+> everyone, as written down in
+> [[our_mission_statement|community/weblogs/antrik/hurd-mission-statement]].
+> Perhaps one of the unassigned projects (outside of the Google Summer of Code
+> context) from our [[project_ideas_list|community/gsoc/project_ideas]] is fit
+> for you?
+
+"""]]
diff --git a/news/2010-05-31.mdwn b/news/2010-05-31.mdwn
new file mode 100644
index 00000000..5bef328e
--- /dev/null
+++ b/news/2010-05-31.mdwn
@@ -0,0 +1,66 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta date="2010-06-06 22:15 UTC"]]
+
+A month of the Hurd: *DDE linux26*, *thread storms*, *patches*, *new live CD* and *IRC meetings*.
+[[!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="""
+
+> [[Zheng_Da|user/zhengda]]
+> [reported](http://lists.gnu.org/archive/html/bug-hurd/2010-05/msg00037.html)
+> on the state of his ongoing work of porting DDE linux26 to the Hurd, which is
+> meant to improve the GNU/Hurd hardware support. The devices as emulated by
+> QEMU and VMware already work fine, but he's still seeking help for testing on
+> real hardware.
+
+> Sergio López published
+> [patches](http://lists.gnu.org/archive/html/bug-hurd/2010-05/msg00059.html)
+> as well as [readily-usable
+> packages](http://lists.gnu.org/archive/html/bug-hurd/2010-05/msg00106.html)
+> to prevent thread storms in ext2fs when synchronizing large pagers. This
+> should improve system performance and stability.
+
+> Emilio Pozuelo Monfort and Sergio López developed further patches (for
+> example:
+> [exec](http://lists.gnu.org/archive/html/bug-hurd/2010-05/msg00108.html),
+> [tmpfs](http://lists.gnu.org/archive/html/bug-hurd/2010-05/msg00077.html)) to
+> fix or improve the various internal Hurd servers, and discussed them with
+> other Hurd developers.
+
+> Justus Winter [created a live
+> CD](http://lists.gnu.org/archive/html/bug-hurd/2010-05/msg00033.html) with an
+> installation wizard in the spirit of the OpenBSD installer. He needs testers
+> to help improve it.
+
+> Ludovic Courtès informed that he has added support for [cross-building
+> packages from GNU/Linux to
+> GNU/Hurd](http://lists.gnu.org/archive/html/bug-hurd/2010-05/msg00105.html)
+> to the Nix package manager, as well as doing [continuous cross-building of
+> the GNU Hurd
+> itself](http://lists.gnu.org/archive/html/bug-hurd/2010-05/msg00111.html),
+> and [glibc](http://sourceware.org/ml/libc-alpha/2010-05/msg00049.html).
+
+> The [[regular IRC meetings|irc#regular_meetings]] for [[Google Summer of Code
+> students|community/gsoc]], their mentors, and any other interested parties
+> [are
+> continuing](http://lists.gnu.org/archive/html/bug-hurd/2010-05/msg00148.html)
+> on Mondays and Thursdays, 10:30 UTC, as Olaf Buddenhagen reported. If you
+> want to catch up, have a look at the [#hurd channel
+> logs](http://richtlijn.be/~larstiq/hurd/).
+
+> As always in the *Month of the Hurd*, these news blurbs are only a selection
+> of what happened in the last month. There's always more to be found on our
+> [[mailing_lists]], especially [[mailing_lists/bug-hurd]].
+
+"""]]
diff --git a/news/2010-06-30.mdwn b/news/2010-06-30.mdwn
new file mode 100644
index 00000000..d435d2d2
--- /dev/null
+++ b/news/2010-06-30.mdwn
@@ -0,0 +1,77 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta date="2010-07-08 14:00 UTC"]]
+
+A month of the Hurd: *Debian Installer*, *clustered page-in*, and *a bunch of
+bug fixing*.
+[[!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="""
+
+> A bunch of patches have hit the mailing lists and source code repositories:
+
+> Jérémie Koenig posted a [preliminary
+> patch](http://lists.gnu.org/archive/html/bug-hurd/2010-06/msg00047.html) to
+> add initrd (initial ramdisk) support in GNU Mach for his [[Google Summer of
+> Code|community/gsoc]] 2010 project: [[Debian Installer|jkoenig]]. With this
+> patch, and some other patches that are still in flux, he ended up being able
+> to install a [[Debian GNU/Hurd|hurd/running/debian]] system using the Debian
+> Installer -- which is the goal of his project. Patches being *in flux* means
+> that there's still work left to be done to properly solve some issues, so
+> there's no need to worry that Jérémie wouldn't have any work left until the
+> GSoC ends.
+
+> Karim Allah Amed came up with the [first
+> patch](http://lists.gnu.org/archive/html/bug-hurd/2010-06/msg00023.html) for
+> porting the clustered paging-in code from OSF Mach to GNU Mach, which should
+> improve the virtual memory performance of the Hurd.
+
+> Emilio Pozuelo Monfort got a bug in [glibc
+> fixed](http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=2a50c07836d2750baf70442f8f760bf6cd43b3af),
+> which unblocks a problem we've seen in [coreutils'
+> `ln`](https://savannah.gnu.org/bugs/?29655), and also continued to make
+> progress on other grounds.
+
+> Zheng Da
+> [began](http://lists.gnu.org/archive/html/commit-hurd/2010-06/msg00003.html)
+> [to](http://lists.gnu.org/archive/html/commit-hurd/2010-06/msg00005.html)
+> [commit](http://lists.gnu.org/archive/html/commit-hurd/2010-06/msg00014.html)
+> patches to make his [[DDE project|zhengda]] support block device drivers,
+> apart from fixing some other issues, too.
+
+> Samuel Thibault [fixed memory
+> leaks](http://lists.gnu.org/archive/html/commit-hurd/2010-06/msg00018.html)
+> in [[`pfinet`|hurd/translator/pfinet]], which is the Hurd's TCP/IP networking
+> unit. Even though that a crashed `pfinet` [[server|hurd/translator]] will be
+> restarted upon its next use, having it eat up all system memory is to be
+> avoided, of course -- and is corrected with these patches.
+
+> Carl Fredrik Hammar submitted patches to improve the stability of the auth
+> server ([rendezvous port
+> death](http://lists.gnu.org/archive/html/bug-hurd/2010-06/msg00003.html) /
+> [invalid rendezvous
+> ports](http://lists.gnu.org/archive/html/bug-hurd/2010-06/msg00019.html)).
+
+> Lastly, if you haven't seen it already: Richard Hillesley has posted an
+> article [*GNU HURD: Altered visions and lost
+> promise*](http://www.h-online.com/open/features/GNU-HURD-Altered-visions-and-lost-promise-1030942.html)
+> that caused [quite](http://lwn.net/Articles/394295/)
+> [a](http://www.reddit.com/r/linux/comments/ckjt2/gnu_hurd_altered_visions_and_lost_promise/)
+> [bunch](http://www.reddit.com/r/programming/comments/ckjud/the_hurd_altered_visions_and_lost_promise/)
+> [of](http://www.osnews.com/comments/23511)
+> [discussion](http://news.ycombinator.com/item?id=1474941) -- some of it valid
+> and constructive criticism, some of it less so. If *you* want to come in
+> contact with us GNU Hurd developers, there are [[numerous options to contact
+> us|contact_us]]!
+
+"""]]
diff --git a/open_issues.mdwn b/open_issues.mdwn
new file mode 100644
index 00000000..9f9289e2
--- /dev/null
+++ b/open_issues.mdwn
@@ -0,0 +1,26 @@
+[[!meta copyright="Copyright © 2009, 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!meta title="Open Issues"]]
+
+This is a dumping ground for open issues.
+
+[[!inline
+pages=none
+show=-1
+feeds=no
+actions=yes
+rootpage="open_issues" postformtext="Add a new item titled:"]]
+
+[[!map
+pages="(./open_issues/* or */open_issues/* or hurd/running/debian/porting/* or tagged(open_issue*)) and !*/discussion"
+show=title]]
+
+[[!inline pages=tag raw=yes feeds=no]]
diff --git a/hurd/running/debian/porting/adduser.mdwn b/open_issues/adduser.mdwn
index 3d243dd9..23552301 100644
--- a/hurd/running/debian/porting/adduser.mdwn
+++ b/open_issues/adduser.mdwn
@@ -1,14 +1,23 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-`adduser` does work as expected, but what are these error messages?
+[[!meta title="adduser: posix_spawn() error=1073741826"]]
+
+[[!tag open_issue_porting]]
+
+`adduser` does work as expected, the following warnings are spurious, they just
+appear when one doesn't have the nscd package. They do not appear on linux boxes
+because there posix_spawn doesn't report ENOENT for exec(). Posix indeed says
+that `if the error occurs after the calling process successfully returns, the
+child process shall exit with exit status 127'. The hurd however reports all
+errors, thus the warning.
$ sudo adduser foo
Adding user `foo' ...
@@ -24,3 +33,4 @@ is included in the section entitled
Creating home directory `/home/foo' ...
Copying files from `/etc/skel' ...
[...]
+
diff --git a/open_issues/bash.mdwn b/open_issues/bash.mdwn
new file mode 100644
index 00000000..47598071
--- /dev/null
+++ b/open_issues/bash.mdwn
@@ -0,0 +1,47 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!tag open_issue_porting]]
+
+# *bash* 4.0 vs. typing `C-c` (*SIGINT*)
+
+Will show `-bash: echo: write error: (ipc/mig) wrong reply message ID` unter
+certain conditions.
+
+After having noticed that this error doesn't occur if starting *bash* with
+`--norc`, I isolated it to the following command in `.bashrc`:
+
+ case $TERM in
+ xterm* | rxvt*)
+ PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}:${PWD}\007"';;
+ esac
+
+... and indeed:
+
+ tschwinge@flubber:~ $ echo "$TERM" -- "$PROMPT_COMMAND"
+ xterm -- echo -ne "\033]0;${USER}@${HOSTNAME}:${PWD}\007"
+ tschwinge@flubber:~ $ ^C
+ -bash: echo: write error: (ipc/mig) wrong reply message ID
+ tschwinge@flubber:~ $ PROMPT_COMMAND=
+ tschwinge@flubber:~ $ ^C
+ tschwinge@flubber:~ $
+
+ bash-4.0$ PROMPT_COMMAND='echo >&2 -n foo\ '
+ foo bash-4.0$ ^C
+
+ bash-4.0$ PROMPT_COMMAND='echo >&1 -n foo\ '
+ foo bash-4.0$ ^C
+ bash: echo: write error: (ipc/mig) wrong reply message ID
+
+ bash-4.0$ PROMPT_COMMAND='/bin/echo >&1 -n foo\ '
+ foo bash-4.0$ ^C
+ bash: start_pipeline: pgrp pipe: (ipc/mig) wrong reply message ID
+
+So, there's something different with stdout in / after the SIGINT handler.
diff --git a/open_issues/bash_vs_screen_vs_sigint.mdwn b/open_issues/bash_vs_screen_vs_sigint.mdwn
new file mode 100644
index 00000000..9672041c
--- /dev/null
+++ b/open_issues/bash_vs_screen_vs_sigint.mdwn
@@ -0,0 +1,12 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+ * [[bash]]
+ * [[screen]]
diff --git a/open_issues/blkrrpart_ioctl.mdwn b/open_issues/blkrrpart_ioctl.mdwn
new file mode 100644
index 00000000..b3a91bfb
--- /dev/null
+++ b/open_issues/blkrrpart_ioctl.mdwn
@@ -0,0 +1,32 @@
+[[!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/bpf.mdwn b/open_issues/bpf.mdwn
new file mode 100644
index 00000000..73f73093
--- /dev/null
+++ b/open_issues/bpf.mdwn
@@ -0,0 +1,72 @@
+[[!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=BPF]]
+
+[[!tag open_issue_gnumach open_issue_hurd]]
+
+This is a collection of resources concerning *Berkeley Packet Filter*s.
+
+
+# Documentation
+
+ * Wikipedia: [[!wikipedia "Berkeley Packet Filter"]]
+
+ * [The Packet Filter: An Efficient Mechanism for User-level Network
+ Code](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.36.8755),
+ 1987, Jeffrey C. Mogul, Richard F. Rashid, Michael J. Accetta
+
+ * [The BSD Packet Filter: A New Architecture for User-level Packet
+ Capture](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.43.7849),
+ 1992, Steven Mccanne, Van Jacobson
+
+ * [Protocol Service Decomposition for High-Performance
+ Networking](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.30.8387),
+ 1993, Chris Maeda, Brian N. Bershad
+
+ * [Efficient Packet Demultiplexing for Multiple Endpoints and Large
+ Messages](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.46.44),
+ 1994, Masanobu Yuhara Fujitsu, Masanobu Yuhara, Brian N. Bershad, Chris
+ Maeda, J. Eliot, B. Moss
+
+ * ... and many more
+
+
+# Implementation
+
+ * [[community/HurdFr]]
+
+ * <http://wiki.hurdfr.org/index.php/BPF>
+
+ * <http://wiki.hurdfr.org/index.php/Reseau_dans_gnumach>
+
+ * Git repository: <http://rcs-git.duckcorp.org/hurdfr/bpf.git/>
+
+ The patch for [[GNU Mach|microkernel/mach/gnumach]] is expected to be
+ complete and functional, the [[hurd/translator]] less so -- amongst others,
+ there are unresolved issues concerning support of [[hurd/glibc/IOCTL]]s.
+
+ * <http://lists.gnu.org/archive/html/bug-hurd/2006-03/msg00025.html>
+
+ * [[zhengda]]
+
+ * [[!GNU_Savannah_bug 25054]] -- Kernel panic with eth-multiplexer
+
+ * [[!GNU_Savannah_patch 6619]] -- pfinet uses the virtual interface
+
+ * [[!GNU_Savannah_patch 6620]] -- pfinet changes its filter rules with
+ its IP address
+
+ * [[!GNU_Savannah_patch 6621]] -- pfinet sets the mach device into the
+ promiscuous mode
+
+ * [[!GNU_Savannah_patch 6622]] -- pfinet uses the BPF filter
+
+ * [[!GNU_Savannah_patch 6851]] -- fix a bug in BPF
diff --git a/open_issues/chroot_difference_from_linux.mdwn b/open_issues/chroot_difference_from_linux.mdwn
new file mode 100644
index 00000000..f2009bd8
--- /dev/null
+++ b/open_issues/chroot_difference_from_linux.mdwn
@@ -0,0 +1,17 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+\#hurd, freenode, 2010
+
+ <cfhammar> weird, even fd = open("/"), chroot("/tmp/chroot"), openat(fd, "/tmp/chroot/..) opens /tmp/chroot in linux
+ <pochu> cfhammar: isn't that expected?
+ <cfhammar> pochu: well, i didn't expect it :-)
+ <cfhammar> pochu: in hurd, /tmp gets opened, which i think is more natural
+ <pochu> cfhammar: oh right, didn't notice the ".." :-)
diff --git a/open_issues/crash_server.mdwn b/open_issues/crash_server.mdwn
new file mode 100644
index 00000000..d97f5458
--- /dev/null
+++ b/open_issues/crash_server.mdwn
@@ -0,0 +1,189 @@
+[[!meta copyright="Copyright © 2009, 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!tag open_issue_hurd]]
+
+Given an `a.out` executable that only does `raise (SIGABRT)`, invoking that
+one...
+
+ * ... against `crash-dump-core` will...
+
+ * ... not overwrite existing `core` files.
+
+ Is this reasonable? Linux does overwrite them, for example.
+
+ * ... show big variances in running-time behavior:
+
+ $ TIMEFORMAT='real %R user %U system %S'
+ $ rm -f core; time env CRASHSERVER=/servers/crash-dump-core ./a.out; ls -l core
+ Aborted (core dumped)
+ real 1.350 user 0.000 system 0.010
+ -rw------- 1 tschwinge tschwinge 17031168 Jul 7 21:59 core
+ $ rm -f core; time env CRASHSERVER=/servers/crash-dump-core ./a.out; ls -l core
+ Aborted (core dumped)
+ real 22.771 user 0.000 system 0.010
+ -rw------- 1 tschwinge tschwinge 17031168 Jul 7 21:59 core
+ $ rm -f core; time env CRASHSERVER=/servers/crash-dump-core ./a.out; ls -l core
+ Aborted (core dumped)
+ real 1.367 user 0.000 system 0.010
+ -rw------- 1 tschwinge tschwinge 17031168 Jul 7 22:00 core
+ $ rm -f core; time env CRASHSERVER=/servers/crash-dump-core ./a.out; ls -l core
+ Aborted (core dumped)
+ real 5.789 user 0.000 system 0.010
+ -rw------- 1 tschwinge tschwinge 17031168 Jul 7 22:00 core
+ $ rm -f core; time env CRASHSERVER=/servers/crash-dump-core ./a.out; ls -l core
+ Aborted (core dumped)
+ real 22.664 user 0.010 system 0.000
+ -rw------- 1 tschwinge tschwinge 17031168 Jul 7 22:01 core
+
+ * ... produce a huge `core` file:
+
+ $ du -hs core
+ 17M core
+
+ On Linux, the `core` file occupies 76 KiB of disk space, which seems
+ much more reasonable. This is possibly related with the default 128MiB
+ heap preallocation.
+
+ * ... does not always produce a useful backtrace:
+
+ `abort();`
+
+ $ gdb test core
+ warning: core file may not match specified executable file.
+ [New Thread 86678]
+ warning: Wrong size fpregset in core file.
+ ...
+ Core was generated by `./test'.
+ Program terminated with signal 6, Aborted.
+ warning: Wrong size fpregset in core file.
+ (gdb) bt
+ #0 0x00000000 in ?? ()
+ #1 0x011f593f in __msg_sig_post (process=72, signal=6, sigcode=0, refport=1)
+ at /build/buildd-eglibc_2.10.2-7-hurd-i386-iGL6op/eglibc-2.10.2/build-tree/hurd-i386-libc/hurd/RPC_msg_sig_post.c:144
+ #2 0x0109a433 in kill_port (pid=<value optimized out>)
+ at ../sysdeps/mach/hurd/kill.c:68
+ #3 kill_pid (pid=<value optimized out>) at ../sysdeps/mach/hurd/kill.c:105
+ #4 0x0109a69f in __kill (pid=21142, sig=6) at ../sysdeps/mach/hurd/kill.c:139
+ #5 0x01099af6 in raise (sig=6) at ../sysdeps/posix/raise.c:27
+ #6 0x0109de59 in abort () at abort.c:88
+ #7 0x0804849f in main ()
+
+ `char *foo = 0; *foo = 1;`
+
+ $ gdb test core
+ Program terminated with signal 11, Segmentation fault.
+ warning: Wrong size fpregset in core file.
+ #0 0x00000000 in ?? ()
+ (gdb) bt
+ #0 0x00000000 in ?? ()
+ #1 0x0108565b in __libc_start_main (main=0x8048464 <main>, argc=1, ubp_av=0x1023e64,
+ init=0x8048490 <__libc_csu_init>, fini=0x8048480 <__libc_csu_fini>, rtld_fini=0xea20 <_dl_fini>,
+ stack_end=0x1023e5c) at libc-start.c:251
+ #2 0x080483d1 in _start ()
+
+ `raise (SIGABRT);`
+
+ $ gdb a.out core
+ warning: core file may not match specified executable file.
+ [New Thread 76651]
+
+ warning: Wrong size fpregset in core file.
+ Reading symbols from /lib/libc.so.0.3...[...]
+ Core was generated by `./a.out'.
+ Program terminated with signal 6, Aborted.
+
+ warning: Wrong size fpregset in core file.
+ #0 0x00000000 in ?? ()
+ (gdb) bt
+ #0 0x00000000 in ?? ()
+ Cannot access memory at address 0x17
+
+ [[!tag open_issue_gdb]] Probably [[GDB]] doesn't manage to dig in the stack properly.
+
+ * ... against `crash-suspend` will...
+
+ * ... not work at all:
+
+ $ CRASHSERVER=/servers/crash-suspend ./a.out
+ $ [returns to the shell and doesn't suspended]
+
+ * ... show big variances in running-time behavior:
+
+ $ TIMEFORMAT='real %R user %U system %S'
+ $ rm -f core; time env CRASHSERVER=/servers/crash-suspend ./a.out; ls -l core
+ Aborted (core dumped)
+ real 1.381 user 0.000 system 0.010
+ -rw------- 1 tschwinge tschwinge 17031168 Jul 7 22:04 core
+ $ rm -f core; time env CRASHSERVER=/servers/crash-suspend ./a.out; ls -l core
+ Aborted (core dumped)
+ real 1.332 user 0.000 system 0.010
+ -rw------- 1 tschwinge tschwinge 17031168 Jul 7 22:04 core
+ $ rm -f core; time env CRASHSERVER=/servers/crash-suspend ./a.out; ls -l core
+ Aborted (core dumped)
+ real 21.228 user 0.000 system 0.010
+ -rw------- 1 tschwinge tschwinge 17031168 Jul 7 22:04 core
+ $ rm -f core; time env CRASHSERVER=/servers/crash-suspend ./a.out; ls -l core
+ Aborted (core dumped)
+ real 1.323 user 0.000 system 0.010
+ -rw------- 1 tschwinge tschwinge 17031168 Jul 7 22:05 core
+ $ rm -f core; time env CRASHSERVER=/servers/crash-suspend ./a.out; ls -l core
+ Aborted (core dumped)
+ real 22.279 user 0.000 system 0.010
+ -rw------- 1 tschwinge tschwinge 17031168 Jul 7 22:05 core
+ $ rm -f core; time env CRASHSERVER=/servers/crash-suspend ./a.out; ls -l core
+ Aborted (core dumped)
+ real 1.362 user 0.000 system 0.000
+ -rw------- 1 tschwinge tschwinge 17031168 Jul 7 22:08 core
+ $ rm -f core; time env CRASHSERVER=/servers/crash-suspend ./a.out; ls -l core
+ Aborted (core dumped)
+ real 21.110 user 0.000 system 0.000
+ -rw------- 1 tschwinge tschwinge 17031168 Jul 7 22:08 core
+ $ rm -f core; time env CRASHSERVER=/servers/crash-suspend ./a.out; ls -l core
+ Aborted (core dumped)
+ real 1.350 user 0.000 system 0.020
+ -rw------- 1 tschwinge tschwinge 17031168 Jul 7 22:08 core
+
+ * ... can reliably crash GNU Mach:
+
+ This happens if a `core` file is already present (and won't get
+ overwritten; see above). I reproduced this three times.
+
+ $ TIMEFORMAT='real %R user %U system %S'
+ $ time env CRASHSERVER=/servers/crash-suspend ./a.out; ls -l core
+ Aborted
+ real 2.856 user 0.000 system 0.010
+ -rw------- 1 tschwinge tschwinge 17031168 Jul 7 22:08 core
+
+ panic: zalloc: zone kalloc.8192 exhausted
+ Kernel Breakpoint trap, eip 0x20020a77
+ Stopped at 0x20020a76: int $3
+ db> trace
+ 0x20020a76(2006aba8,4d0f7e9c,200209b0,0,0)
+ 0x20020a4d(2006b094,2006ae40,2000,20016803,4a5f4114)
+ 0x2002bca5(49a03564,1,0,9,1000)
+ 0x20022f4c(2000,4a5f45d4,4a84879c,49a46564,4ac43e78)
+ 0x20021e65(4ac43e78,4a5f45d4,4a5f4114,0,0)
+ 0x2005309d(2106ba9c,3,38,28,1783)
+ Bad frame pointer: 0x2106ba78
+
+ $ addr2line -i -f -e /boot/gnumach-xen 0x20020a76 0x20020a4d 0x2002bca5 0x20022f4c 0x20021e65 0x2005309d
+ Debugger
+ /home/tschwinge/tmp/gnumach/gnumach-1-branch-Xen-branch.build/../gnumach-1-branch-Xen-branch/kern/debug.c:105
+ panic
+ /home/tschwinge/tmp/gnumach/gnumach-1-branch-Xen-branch.build/../gnumach-1-branch-Xen-branch/kern/debug.c:148
+ zalloc
+ /home/tschwinge/tmp/gnumach/gnumach-1-branch-Xen-branch.build/../gnumach-1-branch-Xen-branch/kern/zalloc.c:470
+ kalloc
+ /home/tschwinge/tmp/gnumach/gnumach-1-branch-Xen-branch.build/../gnumach-1-branch-Xen-branch/kern/kalloc.c:185
+ ipc_kobject_server
+ /home/tschwinge/tmp/gnumach/gnumach-1-branch-Xen-branch.build/../gnumach-1-branch-Xen-branch/kern/ipc_kobject.c:76
+ mach_msg_trap
+ /home/tschwinge/tmp/gnumach/gnumach-1-branch-Xen-branch.build/../gnumach-1-branch-Xen-branch/ipc/mach_msg.c:1367
diff --git a/hurd/open_issues/cvs_tasks_file.mdwn b/open_issues/cvs_tasks_file.mdwn
index 9a053e33..67b64651 100644
--- a/hurd/open_issues/cvs_tasks_file.mdwn
+++ b/open_issues/cvs_tasks_file.mdwn
@@ -1,13 +1,17 @@
-[[meta copyright="Copyright © 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free
-Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!meta title="CVS tasks file"]]
+
+[[!tag open_issue_hurd]]
The canonical [tasks
file](http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~/hurd/hurd/tasks?rev=HEAD&content-type=text/plain)
diff --git a/hurd/open_issues/cvs_todo_file.mdwn b/open_issues/cvs_todo_file.mdwn
index 958502e1..a42e6dca 100644
--- a/hurd/open_issues/cvs_todo_file.mdwn
+++ b/open_issues/cvs_todo_file.mdwn
@@ -1,13 +1,17 @@
-[[meta copyright="Copyright © 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free
-Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!meta title="CVS TODO file"]]
+
+[[!tag open_issue_hurd]]
The canonical [TODO
file](http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~/hurd/hurd/TODO?rev=HEAD&content-type=text/plain)
diff --git a/open_issues/dde.mdwn b/open_issues/dde.mdwn
new file mode 100644
index 00000000..ef319a5c
--- /dev/null
+++ b/open_issues/dde.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta redir=/dde]]
diff --git a/open_issues/debootstrap.mdwn b/open_issues/debootstrap.mdwn
new file mode 100644
index 00000000..8e6c4900
--- /dev/null
+++ b/open_issues/debootstrap.mdwn
@@ -0,0 +1,24 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+\#hurd, freenode, 2010
+
+ <azeem_> you know, you would really help the Hurd if you tried debootstrap instead
+ <tschwinge> Oh? Does that have everying in place by now?
+ <azeem_> applying the patch in http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=498731#25
+ <azeem_> they are waiting for feedbacl
+ <azeem_> feedback*
+
+\#hurd, freenode, June (?) 2010
+
+ <azeem_> jd823592: if you want to use debootstrap, you should apply a patch
+ <azeem_> and test
+ <azeem_> http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=25;filename=debootstrap_hurd.patch;att=1;bug=498731
+ <azeem_> we desperately need somebody to test the patch
diff --git a/open_issues/device_drivers_and_io_systems.mdwn b/open_issues/device_drivers_and_io_systems.mdwn
new file mode 100644
index 00000000..ce50d93e
--- /dev/null
+++ b/open_issues/device_drivers_and_io_systems.mdwn
@@ -0,0 +1,94 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!tag open_issue_gnumach open_issue_hurd]]
+
+This is a collection of resources concerning *device drivers* and *I/O systems*
+in general.
+
+Also see [[user-space device drivers]].
+[[community/gsoc/project ideas/driver glue code]].
+
+[[!toc levels=2]]
+
+
+# Documentation
+
+ * [An I/O System for Mach
+ 3.0](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.56.3210),
+ 1991, Alessandro Forin, David Golub, Brian Bershad
+
+ * [Linux Device Driver Emulation in
+ Mach](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.53.7252),
+ 1996, Shantanu Goel, Dan Duchamp
+
+ * [Eliminating receive livelock in an interrupt-driven
+ kernel](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.127.8257),
+ 1997, Jeffrey Mogul, Dec Western, Jeffrey C. Mogul, K. K. Ramakrishnan
+
+ * [IO-Lite: A Unified I/O Buffering and Caching
+ System](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.29.4224),
+ 1997, Vivek S. Pai, Peter Druschel, Willy Zwaenepoel
+
+ * [The Flux OSKit: A substrate for kernel and language
+ research](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.118.534),
+ 1997, Bryan Ford, Godmar Back, Greg Benson, Jay Lepreau, Albert Lin, Olin
+ Shivers
+
+ * [Reuse Linux Device Drivers in Embedded
+ Systems](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.26.6951),
+ 1998, Chi-wei Yang, Paul C. H. Lee, Ruei-Chuan Chang
+
+ * [THINK: A Software Framework for Component-based Operating System
+ Kernels](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.133.9239),
+ 2002, Jean-Philippe Fassino, Jean-Bernard Stefani, Julia Lawall, Gilles
+ Muller
+
+ * [An I/O Architecture for Microkernel-Based Operating
+ Systems](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.5.4337),
+ 2003, Hermann Haertig, Jork Loeser, Jork Löser, Frank Mehnert, Lars
+ Reuther, Martin Pohlack, Alexander Warg
+
+ * [High-Speed I/O: The Operating System as a Signalling
+ Mechanism](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.9.6991),
+ 2003, Matthew Burnside, Angelos D. Keromytis
+
+ * [Unmodified device driver reuse and improved system dependability via
+ virtual
+ machines](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.108.5317),
+ 2004, Joshua Levasseur, Volkmar Uhlig, Jan Stoess, Stefan Götz
+
+
+# External Projects
+
+ * [[DDE]]
+
+ * [Building Linux Device Drivers on
+ FreeBSD](http://info.iet.unipi.it/~luigi/FreeBSD/linux_bsd_kld.html)
+
+ * [Project UDI](http://www.projectudi.org/), a multi-company effort to define
+ a Uniform Driver Interface
+
+ * [The Free Software Movement and
+ UDI](http://www.gnu.org/philosophy/udi.html)
+
+ * [OSKit](http://www.cs.utah.edu/flux/oskit/)
+
+ * [Unofficial OSKit source](http://www.nongnu.org/oskit/) on Savannah
+
+ * [[microkernel/Mach]]-like
+
+ It might be possible to integrate these systems' device drivers, as they're
+ expected to mostly be using the same interfaces as the current in-kernel
+ Mach drivers are.
+
+ * OSF Mach
+
+ * Darwin
diff --git a/microkernel/mach/mig/gnu_mig/open_issues/duplicate_inclusion_guards.mdwn b/open_issues/duplicate_inclusion_guards.mdwn
index 93347759..1bb8fc36 100644
--- a/microkernel/mach/mig/gnu_mig/open_issues/duplicate_inclusion_guards.mdwn
+++ b/open_issues/duplicate_inclusion_guards.mdwn
@@ -1,12 +1,14 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!tag open_issue_mig]]
E.g., both `/usr/include/hurd/process.h` and
`/usr/include/hurd/process_request.h` use `_process_user_` as an inclusion
diff --git a/open_issues/elinks.mdwn b/open_issues/elinks.mdwn
new file mode 100644
index 00000000..ee372971
--- /dev/null
+++ b/open_issues/elinks.mdwn
@@ -0,0 +1,28 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!tag open_issue_porting]]
+
+IRC, unknown channel, 2008-05-26 and later
+
+ <paakku> In elinks/src/network/state.h, there is an assumption that values of errno are between 0 and 100000. Now looking at glibc-2.5/sysdeps/mach/hurd/bits/errno.h, I see that you're using values outside this range. Have there been problems because of this?
+ <youpi> eeerf
+ <youpi> I had never seen a program assuming that
+ <youpi> that sucks
+ <paakku> It can be fixed, but that'd require some work, so I'd like to first have a clear idea of the effects.
+ <youpi> fixed where ?
+ <paakku> in elinks
+ <youpi> k
+ <paakku> by allocating just one number from our enum connection_state for system errors, and then stashing the errno value in a separate variable.
+ <paakku> Anyway, if you see this cause any user-visible bugs in ELinks, please report.
+
+ <kahmalo> I mentioned here on 2008-05-26 that ELinks assumes errno values are between 0 and 100000 whereas the Hurd uses other values. I fixed this in ELinks last weekend; the most recent 0.12 and 0.13 snapshots should include the fix. If you find any remaining errno assumptions, please post to: http://bugzilla.elinks.cz/show_bug.cgi?id=1013
+ <kahmalo> or to one of our mailing lists.
+ <kahmalo> I guess the pflocal select() bug http://savannah.gnu.org/bugs/?22861 is the primary hindrance to running ELinks on the Hurd. Has any decision been made on how that will be fixed?
diff --git a/open_issues/emacs.mdwn b/open_issues/emacs.mdwn
new file mode 100644
index 00000000..3f025c46
--- /dev/null
+++ b/open_issues/emacs.mdwn
@@ -0,0 +1,43 @@
+[[!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="GNU Emacs"]]
+
+[[!tag open_issue_porting]]
+
+GNU Emacs mostly does work, however there are a few issues.
+
+ * `dired` on a directory hangs. (Use `C-g C-g` to break the unresponsive
+ operation.)
+
+ * Configuration in `src/s/`: `gnu.h` uses `bsd-common.h`. `gnu-kfreebsd.h`
+ uses `gnu-linux.h` -- we probably should too.
+
+ * `gnu-linux.h` makes a few things depend on `/proc` (also see
+ `HAVE_PROCFS`) -- either resort to our own ways, or enhance our
+ [[hurd/translator/procfs]] accordingly.
+
+ * `sysdep.c`
+
+ * Got a hang when compiling GNU Emacs 23, when it was compiling `.el` to
+ `.elc` files. Looked like busy-looping inside glibc. This was not
+ reproducible so far.
+
+ * Debian emacs23_23.1+1-2, grubber, (probably) busy-looping in `ext2fs` on
+ `/media/data` when resuming emacs23 build in `~/tmp/emacs/emacs23-*/`
+ (`dpkg-buildpackage -B -uc -nc 2>&1 | tee L`). No modifications to
+ `emacs23-*` so far, I think. Hangs always in the same place, it seems, and
+ reproducible. Tarred to `emacs23-23.1+1.tar.bz2` (beware: empty and
+ zero-permission files:
+ `emacs23-23.1+1/.pc/debian-site-init-el.diff/lisp/site-init.el`,
+ `emacs23-23.1+1/.pc/autofiles.diff/src/config.in~`). At hang-time: the
+ rootfs is fine (`syncfs -c -s /` works; `syncfs` involving `/media/data`
+ hangs). Plan: GDB on that ext2fs, and see what's hanging / locked. [[!tag
+ open_issue_hurd]]
diff --git a/open_issues/etc_fstab.mdwn b/open_issues/etc_fstab.mdwn
new file mode 100644
index 00000000..eb2a34f9
--- /dev/null
+++ b/open_issues/etc_fstab.mdwn
@@ -0,0 +1,18 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta title="/etc/fstab"]]
+
+Even though we don't need a `/etc/fstab` for mounting filesystems
+(passive [[hurd/translator]]s to the rescue; they have problems on their
+own, see the [[hurd/critique]]), we still need this file for `fsck -a`
+and `swapon -a` to function.
+
+[[!tag open_issue_hurd]]
diff --git a/hurd/running/debian/porting/gcc.mdwn b/open_issues/gcc.mdwn
index 4d783658..76832165 100644
--- a/hurd/running/debian/porting/gcc.mdwn
+++ b/open_issues/gcc.mdwn
@@ -1,12 +1,14 @@
-[[meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!tag open_issue_porting open_issue_gcc fixed_in_debian]]
For GCC trunk:
diff --git a/hurd/running/debian/porting/gcc/libmudflap.mdwn b/open_issues/gcc/libmudflap.mdwn
index 2345828b..f14ca1bc 100644
--- a/hurd/running/debian/porting/gcc/libmudflap.mdwn
+++ b/open_issues/gcc/libmudflap.mdwn
@@ -1,12 +1,14 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!tag open_issue_porting open_issue_gcc]]
Single-threaded use appears to work:
diff --git a/open_issues/gcc_testsuite.mdwn b/open_issues/gcc_testsuite.mdwn
new file mode 100644
index 00000000..b4bbc7c8
--- /dev/null
+++ b/open_issues/gcc_testsuite.mdwn
@@ -0,0 +1,211 @@
+[[!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="GCC testsuite"]]
+
+[[!tag open_issue_gcc]]
+
+Here's some log of a GCC testsuite run; this is from trunk sources, about
+2008-10-19.
+
+ make -k check
+ make[1]: Entering directory `/media/data/home/tschwinge/tmp/gcc/trunk.work.build'
+ make[2]: Entering directory `/media/data/home/tschwinge/tmp/gcc/trunk.work.build/fixincludes'
+ autogen -T ../../trunk.work/fixincludes/check.tpl ../../trunk.work/fixincludes/inclhack.def
+ /bin/sh ./check.sh ../../trunk.work/fixincludes/tests/base
+ Fixed: testing.h
+ Fixed: testing.h
+ Fixed: AvailabilityMacros.h
+ Fixed: X11/ShellP.h
+ Fixed: X11/Xmu.h
+ Fixed: Xm/BaseClassI.h
+ Fixed: Xm/Traversal.h
+ Fixed: ansi/math.h
+ Fixed: ansi/stdlib.h
+ Fixed: arch/i960/archI960.h
+ Fixed: architecture/ppc/math.h
+ Fixed: assert.h
+ Fixed: bits/huge_val.h
+ Fixed: bits/string2.h
+ Fixed: bsd/libc.h
+ Fixed: c_asm.h
+ Fixed: com_err.h
+ Fixed: ctrl-quotes-def-1.h
+ Fixed: ctype.h
+ Fixed: curses.h
+ Fixed: errno.h
+ Fixed: features.h
+ Fixed: fixinc-test-limits.h
+ Fixed: hsfs/hsfs_spec.h
+ Fixed: ia64/sys/getppdp.h
+ Fixed: internal/math_core.h
+ Fixed: internal/sgimacros.h
+ Fixed: internal/wchar_core.h
+ Fixed: inttypes.h
+ Fixed: io-quotes-def-1.h
+ Fixed: iso/math_c99.h
+ Fixed: mach-o/dyld.h
+ Fixed: mach-o/swap.h
+ Fixed: malloc.h
+ Fixed: math.h
+ Fixed: netdnet/dnetdb.h
+ Fixed: netinet/in.h
+ Fixed: netinet/ip.h
+ Fixed: obstack.h
+ Fixed: pixrect/memvar.h
+ Fixed: pthread.h
+ Fixed: reg_types.h
+ Fixed: regex.h
+ Fixed: regexp.h
+ Fixed: rpc/auth.h
+ Fixed: rpc/rpc.h
+ Fixed: rpc/xdr.h
+ Fixed: rpcsvc/rstat.h
+ Fixed: rpcsvc/rusers.h
+ Fixed: signal.h
+ Fixed: sparc/asm_linkage.h
+ Fixed: standards.h
+ Fixed: stdint.h
+ Fixed: stdio.h
+ Fixed: stdio_tag.h
+ Fixed: stdlib.h
+ Fixed: string.h
+ Fixed: strings.h
+ Fixed: sundev/vuid_event.h
+ Fixed: sunwindow/win_lock.h
+ Fixed: sym.h
+ Fixed: sys/asm.h
+ Fixed: sys/cdefs.h
+ Fixed: sys/file.h
+ Fixed: sys/limits.h
+ Fixed: sys/machine.h
+ Fixed: sys/mman.h
+ Fixed: sys/pthread.h
+ Fixed: sys/signal.h
+ Fixed: sys/socket.h
+ Fixed: sys/spinlock.h
+ Fixed: sys/stat.h
+ Fixed: sys/sysmacros.h
+ Fixed: sys/time.h
+ Fixed: sys/types.h
+ Fixed: sys/ucontext.h
+ Fixed: sys/wait.h
+ Fixed: testing.h
+ Fixed: time.h
+ Fixed: tinfo.h
+ Fixed: types/vxTypesBase.h
+ Fixed: unistd.h
+ Fixed: wchar.h
+
+ All fixinclude tests pass
+ make[2]: Leaving directory `/media/data/home/tschwinge/tmp/gcc/trunk.work.build/fixincludes'
+ make[2]: Entering directory `/media/data/home/tschwinge/tmp/gcc/trunk.work.build/gcc'
+ test -d testsuite || mkdir testsuite
+ test -d testsuite/gcc || mkdir testsuite/gcc
+ (rootme=`${PWDCMD-pwd}`; export rootme; \
+ srcdir=`cd ../../trunk.work/gcc; ${PWDCMD-pwd}` ; export srcdir ; \
+ cd testsuite/gcc; \
+ rm -f tmp-site.exp; \
+ sed '/set tmpdir/ s|testsuite|testsuite/gcc|' \
+ < ../../site.exp > tmp-site.exp; \
+ /bin/sh ${srcdir}/../move-if-change tmp-site.exp site.exp; \
+ EXPECT=expect ; export EXPECT ; \
+ if [ -f ${rootme}/../expect/expect ] ; then \
+ TCL_LIBRARY=`cd .. ; cd ${srcdir}/../tcl/library ; ${PWDCMD-pwd}` ; \
+ export TCL_LIBRARY ; fi ; \
+ GCC_EXEC_PREFIX="/home/tschwinge/tmp/gcc/trunk.work.build.install/lib/gcc/" ; export GCC_EXEC_PREFIX ; \
+ runtest --tool gcc )
+ Test Run By tschwinge on Thu Oct 23 08:42:42 2008
+ Native configuration is i386-unknown-gnu0.3
+
+ === gcc tests ===
+
+ Schedule of variations:
+ unix
+
+ Running target unix
+ Using /usr/share/dejagnu/baseboards/unix.exp as board description file for target.
+ Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
+ Using /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/config/default.exp as tool-and-target-specific interface file.
+ Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.c-torture/compile/compile.exp ...
+ Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp ...
+ Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.c-torture/execute/execute.exp ...
+ Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.c-torture/execute/ieee/ieee.exp ...
+ Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.c-torture/unsorted/unsorted.exp ...
+ Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/autopar/autopar.exp ...
+ Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/charset/charset.exp ...
+ Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/compat/compat.exp ...
+ Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/compat/struct-layout-1.exp ...
+ Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/cpp/cpp.exp ...
+ FAIL: gcc.dg/cpp/_Pragma3.c -fno-show-column (test for excess errors)
+ Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/cpp/trad/trad.exp ...
+ Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/debug/debug.exp ...
+ Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2.exp ...
+ FAIL: gcc.dg/debug/dwarf2/dwarf-die3.c scan-assembler-not DW_AT_inline
+ Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/dfp/dfp.exp ...
+ Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/dg.exp ...
+ FAIL: gcc.dg/20021014-1.c (test for excess errors)
+ FAIL: gcc.dg/cleanup-12.c (test for excess errors)
+ FAIL: gcc.dg/cleanup-5.c (test for excess errors)
+ FAIL: gcc.dg/nest.c (test for excess errors)
+ FAIL: gcc.dg/nested-func-4.c (test for excess errors)
+ FAIL: gcc.dg/pr32450.c (test for excess errors)
+ FAIL: gcc.dg/pr33645-3.c scan-assembler-not var1_t
+ Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/fixed-point/fixed-point.exp ...
+ Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/format/format.exp ...
+ Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/gomp/gomp.exp ...
+ Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/graphite/graphite.exp ...
+ Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/ipa/ipa.exp ...
+ Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/matrix/matrix.exp ...
+ Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/noncompile/noncompile.exp ...
+ Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/pch/pch.exp ...
+ FAIL: gcc.dg/pch/valid-1b.c -O0 -g -I. (test for excess errors)
+ FAIL: gcc.dg/pch/valid-1b.c -O0 -g assembly comparison
+ FAIL: gcc.dg/pch/valid-1b.c -O0 -I. (test for excess errors)
+ FAIL: gcc.dg/pch/valid-1b.c -O0 assembly comparison
+ FAIL: gcc.dg/pch/valid-1b.c -O1 -I. (test for excess errors)
+ FAIL: gcc.dg/pch/valid-1b.c -O1 assembly comparison
+ FAIL: gcc.dg/pch/valid-1b.c -O2 -I. (test for excess errors)
+ FAIL: gcc.dg/pch/valid-1b.c -O2 assembly comparison
+ FAIL: gcc.dg/pch/valid-1b.c -O3 -fomit-frame-pointer -I. (test for excess errors)
+ FAIL: gcc.dg/pch/valid-1b.c -O3 -fomit-frame-pointer assembly comparison
+ FAIL: gcc.dg/pch/valid-1b.c -O3 -g -I. (test for excess errors)
+ FAIL: gcc.dg/pch/valid-1b.c -O3 -g assembly comparison
+ FAIL: gcc.dg/pch/valid-1b.c -Os -I. (test for excess errors)
+ FAIL: gcc.dg/pch/valid-1b.c -Os assembly comparison
+ FAIL: largefile.c -O0 -g -I. (test for excess errors)
+ FAIL: gcc.dg/pch/largefile.c -O0 -g assembly comparison
+ FAIL: largefile.c -O0 -I. (test for excess errors)
+ FAIL: gcc.dg/pch/largefile.c -O0 assembly comparison
+ FAIL: largefile.c -O1 -I. (test for excess errors)
+ FAIL: gcc.dg/pch/largefile.c -O1 assembly comparison
+ FAIL: largefile.c -O2 -I. (test for excess errors)
+ FAIL: gcc.dg/pch/largefile.c -O2 assembly comparison
+ FAIL: largefile.c -O3 -fomit-frame-pointer -I. (test for excess errors)
+ FAIL: gcc.dg/pch/largefile.c -O3 -fomit-frame-pointer assembly comparison
+ FAIL: largefile.c -O3 -g -I. (test for excess errors)
+ FAIL: gcc.dg/pch/largefile.c -O3 -g assembly comparison
+ FAIL: largefile.c -Os -I. (test for excess errors)
+ FAIL: gcc.dg/pch/largefile.c -Os assembly comparison
+ Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/special/mips-abi.exp ...
+ Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/special/special.exp ...
+ Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/struct/struct-reorg.exp ...
+ Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/tls/tls.exp ...
+ Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/torture/dg-torture.exp ...
+ FAIL: gcc.dg/torture/fp-int-convert-float128.c -O0 (test for excess errors)
+ FAIL: gcc.dg/torture/fp-int-convert-float128.c -O1 (test for excess errors)
+ FAIL: gcc.dg/torture/fp-int-convert-float128.c -O2 (test for excess errors)
+ FAIL: gcc.dg/torture/fp-int-convert-float128.c -O3 -fomit-frame-pointer (test for excess errors)
+ FAIL: gcc.dg/torture/fp-int-convert-float128.c -O3 -g (test for excess errors)
+ FAIL: gcc.dg/torture/fp-int-convert-float128.c -Os (test for excess errors)
+ Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/torture/stackalign/stackalign.exp ...
+ Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/tree-prof/tree-prof.exp ...
+ Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/tree-ssa/tree-ssa.exp ...
+ XPASS: gcc.dg/tree-ssa/20040204-1.c scan-tree-dump-times optimized "link_error" 0
diff --git a/open_issues/gdb_gcore.mdwn b/open_issues/gdb_gcore.mdwn
new file mode 100644
index 00000000..7d4980f1
--- /dev/null
+++ b/open_issues/gdb_gcore.mdwn
@@ -0,0 +1,23 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta title="GDB: gcore"]]
+
+[[!tag open_issue_gdb]]
+
+GDB's `gcore` command doesn't work / needs to be implemented / ported in GDB:
+
+ tschwinge@flubber:~ $ gcore 8371
+ [New Thread 8371.1]
+ [New Thread 8371.2]
+ [New Thread 8371.3]
+ /media/data/home/tschwinge/core.cA0ICY:2: Error in sourced command file:
+ Undefined command: "gcore". Try "help".
+ gcore: failed to create core.8371
diff --git a/open_issues/gdb_head.mdwn b/open_issues/gdb_head.mdwn
new file mode 100644
index 00000000..4f16259f
--- /dev/null
+++ b/open_issues/gdb_head.mdwn
@@ -0,0 +1,44 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta title="GDB HEAD broken"]]
+
+[[!tag open_issue_gdb]]
+
+ tschwinge@blubber:~/tmp/gdb/HEAD.build $ echo 'void main(void){*(volatile int *)0;}' |
+ > gcc -o 0 -x c -
+ <stdin>: In function ‘main’:
+ <stdin>:1: warning: return type of ‘main’ is not ‘int’
+ tschwinge@blubber:~/tmp/gdb/HEAD.build $ ./0
+ Segmentation fault
+ tschwinge@blubber:~/tmp/gdb/HEAD.build $ gdb/gdb 0
+ GNU gdb (GDB) 7.0.50.20091111-cvs
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+ This is free software: you are free to change and redistribute it.
+ There is NO WARRANTY, to the extent permitted by law. Type "show copying"
+ and "show warranty" for details.
+ This GDB was configured as "i386-unknown-gnu0.3".
+ For bug reporting instructions, please see:
+ <http://www.gnu.org/software/gdb/bugs/>...
+ Reading symbols from /media/data/home/tschwinge/tmp/gdb/HEAD.build/0...done.
+ (gdb) r
+ Starting program: /media/data/home/tschwinge/tmp/gdb/HEAD.build/0
+ Can't fetch registers from thread bogus thread id 1: No such thread
+ (gdb) quit
+ A debugging session is active.
+
+ Inferior 1 [bogus thread id 0] will be killed.
+
+ Quit anyway? (y or n) y
+
+
+Good: 2009-10-19 09:30
+Bad: 2009-10-19 10
diff --git a/hurd/open_issues/gdb_non-stop_mode.mdwn b/open_issues/gdb_non-stop_mode.mdwn
index c302251f..418b144c 100644
--- a/hurd/open_issues/gdb_non-stop_mode.mdwn
+++ b/open_issues/gdb_non-stop_mode.mdwn
@@ -1,12 +1,16 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!meta title="GDB's non-stop mode"]]
+
+[[!tag open_issue_gdb]]
GNU GDB's `gnu-nat.c` doesn't support *non-stop* mode.
diff --git a/hurd/open_issues/gdb_pending_execs.mdwn b/open_issues/gdb_pending_execs.mdwn
index e9d5c6d2..bb0f8419 100644
--- a/hurd/open_issues/gdb_pending_execs.mdwn
+++ b/open_issues/gdb_pending_execs.mdwn
@@ -1,12 +1,16 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!meta title="GDB: pending_execs"]]
+
+[[!tag open_issue_gdb]]
<http://lists.gnu.org/archive/html/bug-hurd/2008-10/msg00045.html>:
diff --git a/open_issues/gdb_qemu_debugging_gnumach.mdwn b/open_issues/gdb_qemu_debugging_gnumach.mdwn
new file mode 100644
index 00000000..d3105f50
--- /dev/null
+++ b/open_issues/gdb_qemu_debugging_gnumach.mdwn
@@ -0,0 +1,19 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!tag open_issue_gdb open_issue_gnumach]]
+
+\#hurd, freenode, June (?) 2010
+
+ <jkoenig> is there a way to get gdb to map addresses as required when debugging mach with qemu ?
+ <jkoenig> I can examine the data if I manually map the addresses th 0xc0000000 but maybe there's an easier way...
+ <youpi> jkoenig: I haven't found a way
+ <youpi> I'm mostly using the internal kdb
+
diff --git a/open_issues/gdb_signal_thread_bt.mdwn b/open_issues/gdb_signal_thread_bt.mdwn
new file mode 100644
index 00000000..74065922
--- /dev/null
+++ b/open_issues/gdb_signal_thread_bt.mdwn
@@ -0,0 +1,31 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta title="GDB: bt on the signal thread"]]
+
+[[!tag open_issue_gdb]]
+
+ (gdb) r
+ Starting program: /media/data/home/tschwinge/tmp/h
+ [New Thread 26731.15]
+
+ Breakpoint 1, 0x08048236 in main ()
+ (gdb) info threads
+ 5 Thread 26731.15 0x080a97fc in mach_msg_trap ()
+ * 4 Thread 26731.14 0x08048236 in main ()
+ (gdb) thread 5
+ [Switching to thread 5 (Thread 26731.15)]#0 0x080a97fc in mach_msg_trap ()
+ (gdb) bt
+ #0 0x080a97fc in mach_msg_trap ()
+ #1 0x080a272e in mach_msg ()
+ #2 0x080a9934 in mach_msg_server_timeout ()
+ #3 0x080a99ff in mach_msg_server ()
+ #4 0x080a327e in _hurd_msgport_receive ()
+ Cannot access memory at address 0x1012000
diff --git a/open_issues/gdb_testsuite.mdwn b/open_issues/gdb_testsuite.mdwn
new file mode 100644
index 00000000..c349294f
--- /dev/null
+++ b/open_issues/gdb_testsuite.mdwn
@@ -0,0 +1,2093 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta title="GDB testsuite"]]
+
+Note that there may be false failures listed here, due to the [[term blocking]]
+issue.
+
+
+[[!tag open_issue_gdb]]
+
+Here's a log of a GDB testsuite run; this is from 2009-09-15 HEAD sources.
+
+ make[1]: Entering directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build'
+ make[2]: Entering directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/bfd'
+ make check-recursive
+ make[3]: Entering directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/bfd'
+ Making check in doc
+ make[4]: Entering directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/bfd/doc'
+ make[4]: Nothing to be done for `check'.
+ make[4]: Leaving directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/bfd/doc'
+ Making check in po
+ make[4]: Entering directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/bfd/po'
+ make[4]: Nothing to be done for `check'.
+ make[4]: Leaving directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/bfd/po'
+ make[4]: Entering directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/bfd'
+ make[4]: Leaving directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/bfd'
+ make[3]: Leaving directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/bfd'
+ make[2]: Leaving directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/bfd'
+ make[2]: Entering directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/opcodes'
+ Making check in .
+ make[3]: Entering directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/opcodes'
+ make[3]: Leaving directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/opcodes'
+ Making check in po
+ make[3]: Entering directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/opcodes/po'
+ make[3]: Nothing to be done for `check'.
+ make[3]: Leaving directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/opcodes/po'
+ make[2]: Leaving directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/opcodes'
+ make[2]: Entering directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/etc'
+ make[2]: Nothing to be done for `check'.
+ make[2]: Leaving directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/etc'
+ make[2]: Entering directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/intl'
+ make[2]: Nothing to be done for `check'.
+ make[2]: Leaving directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/intl'
+ make[2]: Entering directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/libdecnumber'
+ make[2]: Nothing to be done for `check'.
+ make[2]: Leaving directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/libdecnumber'
+ make[2]: Entering directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/libiberty'
+ make[3]: Entering directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/libiberty/testsuite'
+ gcc -DHAVE_CONFIG_H -g -O2 -I.. -I../../../HEAD/src/libiberty/testsuite/../../include -o test-demangle \
+ ../../../HEAD/src/libiberty/testsuite/test-demangle.c ../libiberty.a
+ ./test-demangle < ../../../HEAD/src/libiberty/testsuite/demangle-expected
+ ./test-demangle: 777 tests, 0 failures
+ gcc -DHAVE_CONFIG_H -g -O2 -I.. -I../../../HEAD/src/libiberty/testsuite/../../include -DHAVE_CONFIG_H -I.. -o test-pexecute \
+ ../../../HEAD/src/libiberty/testsuite/test-pexecute.c ../libiberty.a
+ ./test-pexecute
+ gcc -DHAVE_CONFIG_H -g -O2 -I.. -I../../../HEAD/src/libiberty/testsuite/../../include -DHAVE_CONFIG_H -I.. -o test-expandargv \
+ ../../../HEAD/src/libiberty/testsuite/test-expandargv.c ../libiberty.a
+ ./test-expandargv
+ PASS: test-expandargv-0.
+ PASS: test-expandargv-1.
+ PASS: test-expandargv-2.
+ PASS: test-expandargv-3.
+ make[3]: Leaving directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/libiberty/testsuite'
+ make[2]: Leaving directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/libiberty'
+ make[2]: Entering directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/readline'
+ make[2]: Nothing to be done for `check'.
+ make[2]: Leaving directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/readline'
+ make[2]: Entering directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/sim'
+ make[2]: Leaving directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/sim'
+ make[2]: Entering directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/gdb'
+ make[3]: Entering directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/gdb/testsuite'
+ make -k check-gdb.base1 check-gdb.base2 check-gdb.ada check-gdb.arch check-gdb.asm check-gdb.cell check-gdb.cp check-gdb.disasm check-gdb.dwarf2 check-gdb.fortran check-gdb.gdb check-gdb.java check-gdb.mi check-gdb.modula2 check-gdb.objc check-gdb.opt check-gdb.pascal check-gdb.python check-gdb.reverse check-gdb.server check-gdb.stabs check-gdb.threads check-gdb.trace check-gdb.xml; \
+ /bin/bash ../../../HEAD/src/gdb/testsuite/dg-extract-results.sh \
+ gdb.base1/gdb.sum gdb.base2/gdb.sum gdb.ada/gdb.sum gdb.arch/gdb.sum gdb.asm/gdb.sum gdb.cell/gdb.sum gdb.cp/gdb.sum gdb.disasm/gdb.sum gdb.dwarf2/gdb.sum gdb.fortran/gdb.sum gdb.gdb/gdb.sum gdb.java/gdb.sum gdb.mi/gdb.sum gdb.modula2/gdb.sum gdb.objc/gdb.sum gdb.opt/gdb.sum gdb.pascal/gdb.sum gdb.python/gdb.sum gdb.reverse/gdb.sum gdb.server/gdb.sum gdb.stabs/gdb.sum gdb.threads/gdb.sum gdb.trace/gdb.sum gdb.xml/gdb.sum > gdb.sum; \
+ /bin/bash ../../../HEAD/src/gdb/testsuite/dg-extract-results.sh -L \
+ gdb.base1/gdb.log gdb.base2/gdb.log gdb.ada/gdb.log gdb.arch/gdb.log gdb.asm/gdb.log gdb.cell/gdb.log gdb.cp/gdb.log gdb.disasm/gdb.log gdb.dwarf2/gdb.log gdb.fortran/gdb.log gdb.gdb/gdb.log gdb.java/gdb.log gdb.mi/gdb.log gdb.modula2/gdb.log gdb.objc/gdb.log gdb.opt/gdb.log gdb.pascal/gdb.log gdb.python/gdb.log gdb.reverse/gdb.log gdb.server/gdb.log gdb.stabs/gdb.log gdb.threads/gdb.log gdb.trace/gdb.log gdb.xml/gdb.log > gdb.log
+ make[4]: Entering directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/gdb/testsuite'
+ Nothing to be done for all...
+ Making a new config file...
+ rootme=`pwd`; export rootme; srcdir=../../../HEAD/src/gdb/testsuite ; export srcdir ; EXPECT=`if [ -f ${rootme}/../../expect/expect ] ; then echo ${rootme}/../../expect/expect ; else echo expect ; fi` ; export EXPECT ; EXEEXT= ; export EXEEXT ; LD_LIBRARY_PATH=$rootme/../../expect:$rootme/../../libstdc++:$rootme/../../tk/unix:$rootme/../../tcl/unix:$rootme/../../bfd:$rootme/../../opcodes:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; if [ -f ${rootme}/../../expect/expect ] ; then TCL_LIBRARY=${srcdir}/../../tcl/library ; export TCL_LIBRARY ; fi ; runtest gdb.base/a2-run.exp gdb.base/advance.exp gdb.base/all-bin.exp gdb.base/annota1.exp gdb.base/annota3.exp gdb.base/args.exp gdb.base/arithmet.exp gdb.base/arrayidx.exp gdb.base/assign.exp gdb.base/async.exp gdb.base/attach.exp gdb.base/auxv.exp gdb.base/bang.exp gdb.base/bfp-test.exp gdb.base/bigcore.exp gdb.base/bitfields.exp gdb.base/bitfields2.exp gdb.base/bitops.exp gdb.base/break-always.exp gdb.base/break.exp gdb.base/breakpoint-shadow.exp gdb.base/call-ar-st.exp gdb.base/call-rt-st.exp gdb.base/call-sc.exp gdb.base/call-signal-resume.exp gdb.base/call-strs.exp gdb.base/callexit.exp gdb.base/callfuncs.exp gdb.base/charset.exp gdb.base/checkpoint.exp gdb.base/chng-syms.exp gdb.base/code-expr.exp gdb.base/commands.exp gdb.base/completion.exp gdb.base/complex.exp gdb.base/cond-expr.exp gdb.base/condbreak.exp gdb.base/consecutive.exp gdb.base/constvars.exp gdb.base/corefile.exp gdb.base/cursal.exp gdb.base/cvexpr.exp gdb.base/dbx.exp gdb.base/default.exp gdb.base/define.exp gdb.base/del.exp gdb.base/detach.exp gdb.base/dfp-exprs.exp gdb.base/dfp-test.exp gdb.base/display.exp gdb.base/dump.exp gdb.base/echo.exp gdb.base/ena-dis-br.exp gdb.base/ending-run.exp gdb.base/environ.exp gdb.base/eval-skip.exp gdb.base/exe-lock.exp gdb.base/expand-psymtabs.exp gdb.base/exprs.exp gdb.base/fileio.exp gdb.base/find.exp gdb.base/finish.exp gdb.base/fixsection.exp gdb.base/float.exp gdb.base/foll-exec.exp gdb.base/foll-fork.exp gdb.base/foll-vfork.exp gdb.base/frame-args.exp gdb.base/freebpcmd.exp gdb.base/fullname.exp gdb.base/funcargs.exp gdb.base/gcore-buffer-overflow.exp gdb.base/gcore.exp gdb.base/gdb1056.exp gdb.base/gdb1090.exp gdb.base/gdb1250.exp gdb.base/gdb1555.exp gdb.base/gdb1821.exp gdb.base/gdbvars.exp gdb.base/hashline1.exp gdb.base/hashline2.exp gdb.base/hashline3.exp gdb.base/help.exp gdb.base/hook-stop-continue.exp gdb.base/hook-stop-frame.exp gdb.base/huge.exp gdb.base/ifelse.exp gdb.base/included.exp gdb.base/infnan.exp gdb.base/info-proc.exp gdb.base/info-target.exp gdb.base/interp.exp gdb.base/interrupt.exp gdb.base/jump.exp gdb.base/langs.exp gdb.base/lineinc.exp gdb.base/list.exp gdb.base/logical.exp gdb.base/long_long.exp gdb.base/longjmp.exp gdb.base/macscp.exp gdb.base/maint.exp gdb.base/mips_pro.exp gdb.base/miscexprs.exp gdb.base/multi-forks.exp --outdir gdb.base1
+ Test Run By tschwinge on Fri Nov 13 02:02:31 2009
+ Native configuration is i386-unknown-gnu0.3
+
+ === gdb tests ===
+
+ Schedule of variations:
+ unix
+
+ Running target unix
+ Using /usr/share/dejagnu/baseboards/unix.exp as board description file for target.
+ Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
+ Using ../../../HEAD/src/gdb/testsuite/config/unix.exp as tool-and-target-specific interface file.
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/gcore.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/exe-lock.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/complex.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/gdbvars.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/condbreak.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/detach.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/breakpoint-shadow.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/bigcore.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/jump.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/multi-forks.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/frame-args.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/dbx.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/echo.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/all-bin.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/bitfields2.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/gdb1821.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/environ.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/infnan.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/advance.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/commands.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/callfuncs.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/define.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/foll-fork.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/auxv.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/interrupt.exp ...
+ FAIL: gdb.base/interrupt.exp: Send Control-C, second time
+ FAIL: gdb.base/interrupt.exp: send end of file
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/a2-run.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/call-signal-resume.exp ...
+ FAIL: gdb.base/call-signal-resume.exp: dummy stack frame number
+ XPASS: gdb.base/call-signal-resume.exp: frame
+ FAIL: gdb.base/call-signal-resume.exp: continue to breakpoint at stop_two
+ FAIL: gdb.base/call-signal-resume.exp: continue to receipt of signal (timeout)
+ FAIL: gdb.base/call-signal-resume.exp: break null_hand_call (timeout)
+ FAIL: gdb.base/call-signal-resume.exp: null_hand_call (timeout)
+ FAIL: gdb.base/call-signal-resume.exp: dummy stack frame number
+ FAIL: gdb.base/call-signal-resume.exp: set confirm off (timeout)
+ FAIL: gdb.base/call-signal-resume.exp: return (timeout)
+ FAIL: gdb.base/call-signal-resume.exp: break handle_signal (timeout)
+ FAIL: gdb.base/call-signal-resume.exp: continue to breakpoint at handle_signal (timeout)
+ FAIL: gdb.base/call-signal-resume.exp: continue to program exit (timeout)
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/hashline2.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/async.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/callexit.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/freebpcmd.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/corefile.exp ...
+ WARNING: can't generate a core file - core tests suppressed - check ulimit -c
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/hook-stop-frame.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/info-proc.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/arithmet.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/call-sc.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/info-target.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/expand-psymtabs.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/checkpoint.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/cond-expr.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/consecutive.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/help.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/finish.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/lineinc.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/annota1.exp ...
+ FAIL: gdb.base/annota1.exp: run until main breakpoint
+ FAIL: gdb.base/annota1.exp: send SIGUSR1 (timeout)
+ FAIL: gdb.base/annota1.exp: backtrace @ signal handler (timeout)
+ FAIL: gdb.base/annota1.exp: delete bp 1 (timeout)
+ FAIL: gdb.base/annota1.exp: delete bp 2 (timeout)
+ FAIL: gdb.base/annota1.exp: delete bp 3 (timeout)
+ FAIL: gdb.base/annota1.exp: break at 28 (timeout)
+ FAIL: gdb.base/annota1.exp: set up display (timeout)
+ FAIL: gdb.base/annota1.exp: re-run (timeout)
+ FAIL: gdb.base/annota1.exp: break at 46 (timeout)
+ FAIL: gdb.base/annota1.exp: ignore 5 4 (timeout)
+ FAIL: gdb.base/annota1.exp: annotate ignore count change (timeout)
+ FAIL: gdb.base/annota1.exp: next to exit loop
+ FAIL: gdb.base/annota1.exp: breakpoint ignore count (timeout)
+ FAIL: gdb.base/annota1.exp: signal sent (timeout)
+ FAIL: gdb.base/annota1.exp: thread switch (timeout)
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/logical.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/fixsection.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/annota3.exp ...
+ FAIL: gdb.base/annota3.exp: send SIGUSR1 (pattern 4) (timeout)
+ FAIL: gdb.base/annota3.exp: backtrace @ signal handler (pattern 1) (timeout)
+ FAIL: gdb.base/annota3.exp: delete bp 1 (pattern 1 + sentinel) (timeout)
+ FAIL: gdb.base/annota3.exp: delete bp 2 (pattern 1 + sentinel) (timeout)
+ FAIL: gdb.base/annota3.exp: delete bp 3 (pattern 1 + sentinel) (timeout)
+ FAIL: gdb.base/annota3.exp: break at 28 (pattern 1) (timeout)
+ FAIL: gdb.base/annota3.exp: set up display (pattern 1) (timeout)
+ FAIL: gdb.base/annota3.exp: re-run (timeout)
+ FAIL: gdb.base/annota3.exp: break at 46 (pattern 1) (timeout)
+ FAIL: gdb.base/annota3.exp: ignore 5 4 (pattern 1) (timeout)
+ FAIL: gdb.base/annota3.exp: annotate ignore count change (pattern 1) (timeout)
+ FAIL: gdb.base/annota3.exp: next to exit loop (pattern 1) (timeout)
+ FAIL: gdb.base/annota3.exp: breakpoint ignore count (pattern 1) (timeout)
+ FAIL: gdb.base/annota3.exp: signal sent (pattern 1) (timeout)
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/args.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/hook-stop-continue.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/display.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/ifelse.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/gdb1056.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/bitops.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/completion.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/list.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/long_long.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/bang.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/mips_pro.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/dfp-exprs.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/interp.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/exprs.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/ena-dis-br.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/langs.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/hashline1.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/assign.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/call-strs.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/default.exp ...
+ FAIL: gdb.base/default.exp: show convenience
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/dump.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/hashline3.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/foll-exec.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/ending-run.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/dfp-test.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/gcore-buffer-overflow.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/fileio.exp ...
+ FAIL: gdb.base/fileio.exp: Stat a NULL pathname returns ENOENT or EFAULT
+ FAIL: gdb.base/fileio.exp: Stat an empty pathname returns ENOENT
+ FAIL: gdb.base/fileio.exp: Stat a nonexistant file returns ENOENT (the program is no longer running)
+ FAIL: gdb.base/fileio.exp: Fstat an open file (the program is no longer running)
+ FAIL: gdb.base/fileio.exp: Fstat an invalid file descriptor returns EBADF (the program is no longer running)
+ FAIL: gdb.base/fileio.exp: Isatty (stdin) (the program is no longer running)
+ FAIL: gdb.base/fileio.exp: Isatty (stdout) (the program is no longer running)
+ FAIL: gdb.base/fileio.exp: Isatty (stderr) (the program is no longer running)
+ FAIL: gdb.base/fileio.exp: Isatty (invalid fd) (the program is no longer running)
+ FAIL: gdb.base/fileio.exp: Isatty (open file) (the program is no longer running)
+ FAIL: gdb.base/fileio.exp: System says shell is available (the program is no longer running)
+ FAIL: gdb.base/fileio.exp: System(3) call (the program is no longer running)
+ FAIL: gdb.base/fileio.exp: System with invalid command returns 127 (the program is no longer running)
+ FAIL: gdb.base/fileio.exp: Rename a file (the program is no longer running)
+ FAIL: gdb.base/fileio.exp: Renaming a file to existing directory returns EISDIR (the program is no longer running)
+ FAIL: gdb.base/fileio.exp: Renaming a directory to a non-empty directory returns ENOTEMPTY or EEXIST (the program is no longer running)
+ FAIL: gdb.base/fileio.exp: Renaming a directory to a subdir of itself returns EINVAL (the program is no longer running)
+ FAIL: gdb.base/fileio.exp: Renaming a nonexistant file returns ENOENT (the program is no longer running)
+ FAIL: gdb.base/fileio.exp: Unlink a file (the program is no longer running)
+ FAIL: gdb.base/fileio.exp: Unlinking a file in a directory w/o write access returns EACCES (the program is no longer running)
+ FAIL: gdb.base/fileio.exp: Unlinking a nonexistant file returns ENOENT (the program is no longer running)
+ FAIL: gdb.base/fileio.exp: Time(2) call returns the same value as in parameter (the program is no longer running)
+ FAIL: gdb.base/fileio.exp: Time(2) returns feasible values (the program is no longer running)
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/huge.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/find.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/eval-skip.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/arrayidx.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/gdb1555.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/attach.exp ...
+ FAIL: gdb.base/attach.exp: attach to nonsense is prohibited (bogus pid allowed)
+ FAIL: gdb.base/attach.exp: attach to nonexistent process is prohibited
+ FAIL: gdb.base/attach.exp: attach1, after setting file
+ FAIL: gdb.base/attach.exp: attach1 detach
+ FAIL: gdb.base/attach.exp: set file, before attach2
+ FAIL: gdb.base/attach.exp: after attach2, set tbreak postloop
+ FAIL: gdb.base/attach.exp: (timeout) after attach2, reach tbreak postloop
+ FAIL: gdb.base/attach.exp: after attach2, exit (timeout)
+ FAIL: gdb.base/attach.exp: set source path
+ FAIL: gdb.base/attach.exp: cd away from process working directory (the program is no longer running)
+ FAIL: gdb.base/attach.exp: before attach3, flush symbols
+ FAIL: gdb.base/attach.exp: before attach3, flush exec
+ FAIL: gdb.base/attach.exp: attach when process' a.out not in cwd
+ FAIL: gdb.base/attach.exp: after attach3, exit
+ FAIL: gdb.base/attach.exp: attach call
+ FAIL: gdb.base/attach.exp: c
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/break.exp ...
+ FAIL: gdb.base/break.exp: breakpoint at start of multi line while conditional
+ FAIL: gdb.base/break.exp: breakpoint info
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/del.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/miscexprs.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/float.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/longjmp.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/code-expr.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/included.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/call-ar-st.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/cvexpr.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/maint.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/funcargs.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/chng-syms.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/foll-vfork.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/charset.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/cursal.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/break-always.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/call-rt-st.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/constvars.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/fullname.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/gdb1250.exp ...
+ FAIL: gdb.base/gdb1250.exp: running to abort in runto
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/bfp-test.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/bitfields.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/macscp.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/gdb1090.exp ...
+
+ === gdb Summary ===
+
+ # of expected passes 3882
+ # of unexpected failures 86
+ # of unexpected successes 1
+ # of expected failures 6
+ # of known failures 19
+ # of untested testcases 1
+ # of unsupported tests 4
+ /media/data/home/tschwinge/tmp/gdb/HEAD.build/gdb/testsuite/../../gdb/gdb version 6.8.50.20090914-cvs -nw -nx
+
+ make[4]: *** [check-gdb.base1] Error 1
+ rootme=`pwd`; export rootme; srcdir=../../../HEAD/src/gdb/testsuite ; export srcdir ; EXPECT=`if [ -f ${rootme}/../../expect/expect ] ; then echo ${rootme}/../../expect/expect ; else echo expect ; fi` ; export EXPECT ; EXEEXT= ; export EXEEXT ; LD_LIBRARY_PATH=$rootme/../../expect:$rootme/../../libstdc++:$rootme/../../tk/unix:$rootme/../../tcl/unix:$rootme/../../bfd:$rootme/../../opcodes:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; if [ -f ${rootme}/../../expect/expect ] ; then TCL_LIBRARY=${srcdir}/../../tcl/library ; export TCL_LIBRARY ; fi ; runtest gdb.base/nodebug.exp gdb.base/nofield.exp gdb.base/opaque.exp gdb.base/overlays.exp gdb.base/page.exp gdb.base/pc-fp.exp gdb.base/pending.exp gdb.base/pie-support.exp gdb.base/pointers.exp gdb.base/prelink.exp gdb.base/printcmds.exp gdb.base/prologue.exp gdb.base/psymtab.exp gdb.base/ptr-typedef.exp gdb.base/ptype.exp gdb.base/radix.exp gdb.base/randomize.exp gdb.base/readline.exp gdb.base/recurse.exp gdb.base/regs.exp gdb.base/relational.exp gdb.base/relativedebug.exp gdb.base/relocate.exp gdb.base/remote.exp gdb.base/remotetimeout.exp gdb.base/reread.exp gdb.base/restore.exp gdb.base/return-nodebug.exp gdb.base/return.exp gdb.base/return2.exp gdb.base/savedregs.exp gdb.base/scope.exp gdb.base/sect-cmd.exp gdb.base/sep.exp gdb.base/sepdebug.exp gdb.base/sepsymtab.exp gdb.base/set-lang-auto.exp gdb.base/setshow.exp gdb.base/setvar.exp gdb.base/shlib-call.exp gdb.base/shreloc.exp gdb.base/sigall.exp gdb.base/sigaltstack.exp gdb.base/sigbpt.exp gdb.base/sigchld.exp gdb.base/siginfo-addr.exp gdb.base/siginfo-obj.exp gdb.base/siginfo.exp gdb.base/signals.exp gdb.base/signull.exp gdb.base/sigrepeat.exp gdb.base/sigstep.exp gdb.base/sizeof.exp gdb.base/so-impl-ld.exp gdb.base/so-indr-cl.exp gdb.base/solib-disc.exp gdb.base/solib-display.exp gdb.base/solib-overlap.exp gdb.base/solib-symbol.exp gdb.base/solib-weak.exp gdb.base/solib.exp gdb.base/source.exp gdb.base/stack-checking.exp gdb.base/start.exp gdb.base/step-break.exp gdb.base/step-bt.exp gdb.base/step-line.exp gdb.base/step-test.exp gdb.base/store.exp gdb.base/structs.exp gdb.base/structs2.exp gdb.base/structs3.exp gdb.base/subst.exp gdb.base/term.exp gdb.base/trace-commands.exp gdb.base/twice.exp gdb.base/type-opaque.exp gdb.base/unload.exp gdb.base/until.exp gdb.base/unwindonsignal.exp gdb.base/value-double-free.exp gdb.base/varargs.exp gdb.base/volatile.exp gdb.base/watch_thread_num.exp gdb.base/watchpoint-hw.exp gdb.base/watchpoint-solib.exp gdb.base/watchpoint.exp gdb.base/whatis-exp.exp gdb.base/whatis.exp --outdir gdb.base2
+ Test Run By tschwinge on Fri Nov 13 04:33:11 2009
+ Native configuration is i386-unknown-gnu0.3
+
+ === gdb tests ===
+
+ Schedule of variations:
+ unix
+
+ Running target unix
+ Using /usr/share/dejagnu/baseboards/unix.exp as board description file for target.
+ Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
+ Using ../../../HEAD/src/gdb/testsuite/config/unix.exp as tool-and-target-specific interface file.
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/radix.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/return.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/watchpoint.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/signals.exp ...
+ FAIL: gdb.base/signals.exp: p count #1
+ FAIL: gdb.base/signals.exp: p func1 () #2
+ FAIL: gdb.base/signals.exp: backtrace from handler when calling func1
+ FAIL: gdb.base/signals.exp: continue (the program exited)
+ FAIL: gdb.base/signals.exp: p count #2
+ FAIL: gdb.base/signals.exp: signal without arguments disallowed (the program is no longer running)
+ FAIL: gdb.base/signals.exp: signal SIGUSR1 (the program is no longer running)
+ FAIL: gdb.base/signals.exp: backtrace for SIGUSR1
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/randomize.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/return-nodebug.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/set-lang-auto.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/structs2.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/opaque.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/printcmds.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/restore.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/savedregs.exp ...
+ FAIL: gdb.base/savedregs.exp: Get thrower info frame
+ FAIL: gdb.base/savedregs.exp: Check main info frame; stack contains catcher sigtramp thrower main
+ FAIL: gdb.base/savedregs.exp: call caller (1,2,3,4,5,6,7,8) (timeout)
+ FAIL: gdb.base/savedregs.exp: Get dummy info frame (timeout)
+ FAIL: gdb.base/savedregs.exp: Get catcher info frame (timeout)
+ FAIL: gdb.base/savedregs.exp: Check sigtramp info frame; stack contains caller dummy catcher sigtramp thrower main (timeout)
+ FAIL: gdb.base/savedregs.exp: advance callee (timeout)
+ FAIL: gdb.base/savedregs.exp: Get caller info frame (timeout)
+ FAIL: gdb.base/savedregs.exp: Check dummy info frame; stack contains callee caller dummy catcher sigtramp thrower main (timeout)
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/prologue.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/pending.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/setvar.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/varargs.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/trace-commands.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/so-impl-ld.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/relocate.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/sepdebug.exp ...
+ FAIL: gdb.base/sepdebug.exp: breakpoint at start of multi line while conditional
+ FAIL: gdb.base/sepdebug.exp: breakpoint info
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/siginfo-obj.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/shreloc.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/sigaltstack.exp ...
+ FAIL: gdb.base/sigaltstack.exp: continue to catch (timeout)
+ FAIL: gdb.base/sigaltstack.exp: next (timeout)
+ FAIL: gdb.base/sigaltstack.exp: backtrace (pattern 1) (timeout)
+ FAIL: gdb.base/sigaltstack.exp: finish from catch LEAF (timeout)
+ FAIL: gdb.base/sigaltstack.exp: finish to throw INNER (timeout)
+ ERROR: internal buffer is full.
+ FAIL: gdb.base/sigaltstack.exp: finish from catch INNER (timeout)
+ FAIL: gdb.base/sigaltstack.exp: finish to OUTER (timeout)
+ FAIL: gdb.base/sigaltstack.exp: finish to catch MAIN (timeout)
+ FAIL: gdb.base/sigaltstack.exp: finish to MAIN (timeout)
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/relational.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/volatile.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/sizeof.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/solib.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/store.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/start.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/solib-weak.exp ...
+ FAIL: gdb.base/solib-weak.exp: run to breakpoint - lib1 nodebug, lib2 nodebug, lib1 first
+ FAIL: gdb.base/solib-weak.exp: run to breakpoint - lib1 debug, lib2 nodebug, lib1 first
+ FAIL: gdb.base/solib-weak.exp: run to breakpoint - lib1 debug, lib2 debug, lib1 first
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/term.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/sep.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/nofield.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/whatis-exp.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/return2.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/shlib-call.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/solib-symbol.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/sigall.exp ...
+ FAIL: gdb.base/sigall.exp: advance to HUP (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIGHUP stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_HUP (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_QUIT (timeout)
+ FAIL: gdb.base/sigall.exp: get signal HUP (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to QUIT (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIGQUIT stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_QUIT (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_ILL (timeout)
+ FAIL: gdb.base/sigall.exp: get signal QUIT (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to ILL (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIGILL stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_ILL (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_EMT (timeout)
+ FAIL: gdb.base/sigall.exp: get signal ILL (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to EMT (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIGEMT stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_EMT (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_FPE (timeout)
+ FAIL: gdb.base/sigall.exp: get signal EMT (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to FPE (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIGFPE stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_FPE (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_BUS (timeout)
+ FAIL: gdb.base/sigall.exp: get signal FPE (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to BUS (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIGBUS stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_BUS (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_SEGV (timeout)
+ FAIL: gdb.base/sigall.exp: get signal BUS (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to SEGV (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIGSEGV stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_SEGV (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_SYS (timeout)
+ FAIL: gdb.base/sigall.exp: get signal SEGV (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to SYS (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIGSYS stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_SYS (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_PIPE (timeout)
+ FAIL: gdb.base/sigall.exp: get signal SYS (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to PIPE (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIGPIPE stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_PIPE (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_ALRM (timeout)
+ FAIL: gdb.base/sigall.exp: get signal PIPE (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to ALRM (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIGALRM stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_ALRM (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_URG (timeout)
+ FAIL: gdb.base/sigall.exp: get signal ALRM (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to URG (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIGURG stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_URG (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_TSTP (timeout)
+ FAIL: gdb.base/sigall.exp: get signal URG (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to TSTP (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIGTSTP stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_TSTP (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_CONT (timeout)
+ FAIL: gdb.base/sigall.exp: get signal TSTP (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to CONT (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIGCONT stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_CONT (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_CHLD (timeout)
+ FAIL: gdb.base/sigall.exp: get signal CONT (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to CHLD (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIGCHLD stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_CHLD (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_TTIN (timeout)
+ FAIL: gdb.base/sigall.exp: get signal CHLD (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to TTIN (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIGTTIN stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_TTIN (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_TTOU (timeout)
+ FAIL: gdb.base/sigall.exp: get signal TTIN (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to TTOU (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIGTTOU stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_TTOU (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_IO (timeout)
+ FAIL: gdb.base/sigall.exp: get signal TTOU (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to IO (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIGIO stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_IO (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_XCPU (timeout)
+ FAIL: gdb.base/sigall.exp: get signal IO (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to XCPU (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIGXCPU stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_XCPU (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_XFSZ (timeout)
+ FAIL: gdb.base/sigall.exp: get signal XCPU (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to XFSZ (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIGXFSZ stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_XFSZ (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_VTALRM (timeout)
+ FAIL: gdb.base/sigall.exp: get signal XFSZ (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to VTALRM (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIGVTALRM stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_VTALRM (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_PROF (timeout)
+ FAIL: gdb.base/sigall.exp: get signal VTALRM (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to PROF (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIGPROF stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_PROF (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_WINCH (timeout)
+ FAIL: gdb.base/sigall.exp: get signal PROF (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to WINCH (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIGWINCH stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_WINCH (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_LOST (timeout)
+ FAIL: gdb.base/sigall.exp: get signal WINCH (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to LOST (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIGLOST stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_LOST (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_USR1 (timeout)
+ FAIL: gdb.base/sigall.exp: get signal LOST (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to USR1 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIGUSR1 stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_USR1 (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_USR2 (timeout)
+ FAIL: gdb.base/sigall.exp: get signal USR1 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to USR2 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIGUSR2 stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_USR2 (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_PWR (timeout)
+ FAIL: gdb.base/sigall.exp: get signal USR2 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to PWR (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIGPWR stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_PWR (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_POLL (timeout)
+ FAIL: gdb.base/sigall.exp: get signal PWR (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to POLL (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIGPOLL stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_POLL (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_WIND (timeout)
+ FAIL: gdb.base/sigall.exp: get signal POLL (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to WIND (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIGWIND stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_WIND (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_PHONE (timeout)
+ FAIL: gdb.base/sigall.exp: get signal WIND (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to PHONE (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIGPHONE stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_PHONE (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_WAITING (timeout)
+ FAIL: gdb.base/sigall.exp: get signal PHONE (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to WAITING (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIGWAITING stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_WAITING (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_LWP (timeout)
+ FAIL: gdb.base/sigall.exp: get signal WAITING (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to LWP (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIGLWP stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_LWP (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_DANGER (timeout)
+ FAIL: gdb.base/sigall.exp: get signal LWP (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to DANGER (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIGDANGER stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_DANGER (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_GRANT (timeout)
+ FAIL: gdb.base/sigall.exp: get signal DANGER (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to GRANT (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIGGRANT stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_GRANT (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_RETRACT (timeout)
+ FAIL: gdb.base/sigall.exp: get signal GRANT (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to RETRACT (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIGRETRACT stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_RETRACT (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_MSG (timeout)
+ FAIL: gdb.base/sigall.exp: get signal RETRACT (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to MSG (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIGMSG stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_MSG (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_SOUND (timeout)
+ FAIL: gdb.base/sigall.exp: get signal MSG (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to SOUND (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIGSOUND stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_SOUND (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_SAK (timeout)
+ FAIL: gdb.base/sigall.exp: get signal SOUND (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to SAK (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIGSAK stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_SAK (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_PRIO (timeout)
+ FAIL: gdb.base/sigall.exp: get signal SAK (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to PRIO (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIGPRIO stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_PRIO (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_33 (timeout)
+ FAIL: gdb.base/sigall.exp: get signal PRIO (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to 33 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIG33 stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_33 (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_34 (timeout)
+ FAIL: gdb.base/sigall.exp: get signal 33 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to 34 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIG34 stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_34 (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_35 (timeout)
+ FAIL: gdb.base/sigall.exp: get signal 34 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to 35 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIG35 stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_35 (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_36 (timeout)
+ FAIL: gdb.base/sigall.exp: get signal 35 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to 36 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIG36 stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_36 (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_37 (timeout)
+ FAIL: gdb.base/sigall.exp: get signal 36 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to 37 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIG37 stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_37 (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_38 (timeout)
+ FAIL: gdb.base/sigall.exp: get signal 37 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to 38 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIG38 stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_38 (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_39 (timeout)
+ FAIL: gdb.base/sigall.exp: get signal 38 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to 39 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIG39 stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_39 (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_40 (timeout)
+ FAIL: gdb.base/sigall.exp: get signal 39 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to 40 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIG40 stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_40 (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_41 (timeout)
+ FAIL: gdb.base/sigall.exp: get signal 40 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to 41 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIG41 stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_41 (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_42 (timeout)
+ FAIL: gdb.base/sigall.exp: get signal 41 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to 42 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIG42 stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_42 (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_43 (timeout)
+ FAIL: gdb.base/sigall.exp: get signal 42 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to 43 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIG43 stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_43 (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_44 (timeout)
+ FAIL: gdb.base/sigall.exp: get signal 43 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to 44 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIG44 stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_44 (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_45 (timeout)
+ FAIL: gdb.base/sigall.exp: get signal 44 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to 45 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIG45 stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_45 (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_46 (timeout)
+ FAIL: gdb.base/sigall.exp: get signal 45 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to 46 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIG46 stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_46 (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_47 (timeout)
+ FAIL: gdb.base/sigall.exp: get signal 46 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to 47 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIG47 stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_47 (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_48 (timeout)
+ FAIL: gdb.base/sigall.exp: get signal 47 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to 48 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIG48 stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_48 (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_49 (timeout)
+ FAIL: gdb.base/sigall.exp: get signal 48 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to 49 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIG49 stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_49 (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_50 (timeout)
+ FAIL: gdb.base/sigall.exp: get signal 49 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to 50 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIG50 stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_50 (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_51 (timeout)
+ FAIL: gdb.base/sigall.exp: get signal 50 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to 51 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIG51 stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_51 (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_52 (timeout)
+ FAIL: gdb.base/sigall.exp: get signal 51 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to 52 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIG52 stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_52 (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_53 (timeout)
+ FAIL: gdb.base/sigall.exp: get signal 52 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to 53 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIG53 stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_53 (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_54 (timeout)
+ FAIL: gdb.base/sigall.exp: get signal 53 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to 54 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIG54 stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_54 (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_55 (timeout)
+ FAIL: gdb.base/sigall.exp: get signal 54 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to 55 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIG55 stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_55 (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_56 (timeout)
+ FAIL: gdb.base/sigall.exp: get signal 55 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to 56 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIG56 stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_56 (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_57 (timeout)
+ FAIL: gdb.base/sigall.exp: get signal 56 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to 57 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIG57 stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_57 (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_58 (timeout)
+ FAIL: gdb.base/sigall.exp: get signal 57 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to 58 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIG58 stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_58 (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_59 (timeout)
+ FAIL: gdb.base/sigall.exp: get signal 58 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to 59 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIG59 stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_59 (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_60 (timeout)
+ FAIL: gdb.base/sigall.exp: get signal 59 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to 60 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIG60 stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_60 (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_61 (timeout)
+ FAIL: gdb.base/sigall.exp: get signal 60 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to 61 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIG61 stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_61 (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_62 (timeout)
+ FAIL: gdb.base/sigall.exp: get signal 61 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to 62 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIG62 stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_62 (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_63 (timeout)
+ FAIL: gdb.base/sigall.exp: get signal 62 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to 63 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIG63 stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_63 (timeout)
+ FAIL: gdb.base/sigall.exp: b gen_TERM (timeout)
+ FAIL: gdb.base/sigall.exp: get signal 63 (eof or timeout)
+ FAIL: gdb.base/sigall.exp: advance to TERM (eof or timeout)
+ FAIL: gdb.base/sigall.exp: handle SIGTERM stop print (timeout)
+ FAIL: gdb.base/sigall.exp: b handle_TERM (timeout)
+ FAIL: gdb.base/sigall.exp: get signal TERM (timeout)
+ FAIL: gdb.base/sigall.exp: send signal TERM (timeout)
+ FAIL: gdb.base/sigall.exp: continue until exit at continue to sigall exit (timeout)
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/setshow.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/unwindonsignal.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/structs3.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/page.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/pc-fp.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/step-bt.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/solib-overlap.exp ...
+ sh: prelink: not found
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/siginfo-addr.exp ...
+ gdb compile failed, ../../../HEAD/src/gdb/testsuite/gdb.base/siginfo-addr.c: In function 'main':
+ ../../../HEAD/src/gdb/testsuite/gdb.base/siginfo-addr.c:58: error: 'SA_SIGINFO' undeclared (first use in this function)
+ ../../../HEAD/src/gdb/testsuite/gdb.base/siginfo-addr.c:58: error: (Each undeclared identifier is reported only once
+ ../../../HEAD/src/gdb/testsuite/gdb.base/siginfo-addr.c:58: error: for each function it appears in.)
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/siginfo.exp ...
+ FAIL: gdb.base/siginfo.exp: continue to stepi handler (timeout)
+ FAIL: gdb.base/siginfo.exp: backtrace for nexti (pattern 1) (timeout)
+ FAIL: gdb.base/siginfo.exp: step out of handler (timeout)
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/structs.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/subst.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/step-test.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/step-line.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/source.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/recurse.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/regs.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/type-opaque.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/ptype.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/relativedebug.exp ...
+ FAIL: gdb.base/relativedebug.exp: pause found in backtrace
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/remotetimeout.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/until.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/pointers.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/ptr-typedef.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/readline.exp ...
+ FAIL: gdb.base/readline.exp: Simple operate-and-get-next - C-o for p 1
+ FAIL: gdb.base/readline.exp: operate-and-get-next with secondary prompt - send if 1 > 0
+ FAIL: gdb.base/readline.exp: print 42 (timeout)
+ FAIL: gdb.base/readline.exp: arrow keys with secondary prompt (timeout)
+ ERROR: (timeout) GDB never initialized after 10 seconds.
+ ERROR: no fileid for www2
+ ERROR: no fileid for www2
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/watchpoint-hw.exp ...
+ ERROR: (timeout) GDB never initialized after 10 seconds.
+ ERROR: no fileid for www2
+ ERROR: no fileid for www2
+ ERROR: no fileid for www2
+ ERROR: couldn't load /media/data/home/tschwinge/tmp/gdb/HEAD.build/gdb/testsuite/gdb.base/watchpoint-hw into /media/data/home/tschwinge/tmp/gdb/HEAD.build/gdb/testsuite/../../gdb/gdb (timed out).
+ ERROR: no fileid for www2
+ ERROR: Couldn't send watch watchee to GDB.
+ ERROR: no fileid for www2
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/signull.exp ...
+ ERROR: (timeout) GDB never initialized after 10 seconds.
+ ERROR: no fileid for www2
+ ERROR: no fileid for www2
+ ERROR: no fileid for www2
+ ERROR: couldn't load /media/data/home/tschwinge/tmp/gdb/HEAD.build/gdb/testsuite/gdb.base/signull into /media/data/home/tschwinge/tmp/gdb/HEAD.build/gdb/testsuite/../../gdb/gdb (timed out).
+ ERROR: no fileid for www2
+ ERROR: Delete all breakpoints in delete_breakpoints (timeout)
+ ERROR: no fileid for www2
+ ERROR: no fileid for www2
+ ERROR: no fileid for www2
+ ERROR: Couldn't send set test = code_entry_point to GDB.
+ ERROR: no fileid for www2
+ ERROR: Couldn't send continue to GDB.
+ ERROR: no fileid for www2
+ ERROR: no fileid for www2
+ ERROR: Couldn't send break bowler to GDB.
+ ERROR: no fileid for www2
+ ERROR: Couldn't send break keeper to GDB.
+ ERROR: no fileid for www2
+ ERROR: Couldn't send handle SIGSEGV to GDB.
+ ERROR: no fileid for www2
+ ERROR: Couldn't send handle SIGBUS to GDB.
+ ERROR: no fileid for www2
+ ERROR: Couldn't send continue to GDB.
+ ERROR: no fileid for www2
+ ERROR: Couldn't send set test = data_read to GDB.
+ ERROR: no fileid for www2
+ ERROR: Couldn't send continue to GDB.
+ ERROR: no fileid for www2
+ ERROR: Couldn't send backtrace to GDB.
+ ERROR: no fileid for www2
+ ERROR: Couldn't send continue to GDB.
+ ERROR: no fileid for www2
+ ERROR: Couldn't send backtrace to GDB.
+ ERROR: no fileid for www2
+ ERROR: Couldn't send continue to GDB.
+ ERROR: no fileid for www2
+ ERROR: Couldn't send set test = data_write to GDB.
+ ERROR: no fileid for www2
+ ERROR: Couldn't send continue to GDB.
+ ERROR: no fileid for www2
+ ERROR: Couldn't send backtrace to GDB.
+ ERROR: no fileid for www2
+ ERROR: Couldn't send continue to GDB.
+ ERROR: no fileid for www2
+ ERROR: Couldn't send backtrace to GDB.
+ ERROR: no fileid for www2
+ ERROR: Couldn't send continue to GDB.
+ ERROR: no fileid for www2
+ ERROR: Couldn't send set test = code_entry_point to GDB.
+ ERROR: no fileid for www2
+ ERROR: Couldn't send continue to GDB.
+ ERROR: no fileid for www2
+ ERROR: Couldn't send backtrace to GDB.
+ ERROR: no fileid for www2
+ ERROR: Couldn't send continue to GDB.
+ ERROR: no fileid for www2
+ ERROR: Couldn't send backtrace to GDB.
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/so-indr-cl.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/psymtab.exp ...
+ ERROR: (timeout) GDB never initialized after 10 seconds.
+ ERROR: no fileid for www2
+ ERROR: no fileid for www2
+ ERROR: no fileid for www2
+ ERROR: couldn't load /media/data/home/tschwinge/tmp/gdb/HEAD.build/gdb/testsuite/gdb.base/psymtab into /media/data/home/tschwinge/tmp/gdb/HEAD.build/gdb/testsuite/../../gdb/gdb (timed out).
+ ERROR: no fileid for www2
+ ERROR: Couldn't send set breakpoint pending off to GDB.
+ ERROR: no fileid for www2
+ ERROR: Couldn't send break zzz::dummy to GDB.
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/sect-cmd.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/sepsymtab.exp ...
+ ERROR: (timeout) GDB never initialized after 10 seconds.
+ ERROR: no fileid for www2
+ ERROR: no fileid for www2
+ ERROR: no fileid for www2
+ ERROR: couldn't load /media/data/home/tschwinge/tmp/gdb/HEAD.build/gdb/testsuite/gdb.base/sepsymtab into /media/data/home/tschwinge/tmp/gdb/HEAD.build/gdb/testsuite/../../gdb/gdb (timed out).
+ ERROR: no fileid for www2
+ ERROR: Couldn't send info sym main to GDB.
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/unload.exp ...
+ ERROR: (timeout) GDB never initialized after 10 seconds.
+ ERROR: no fileid for www2
+ ERROR: no fileid for www2
+ ERROR: no fileid for www2
+ ERROR: couldn't load /media/data/home/tschwinge/tmp/gdb/HEAD.build/gdb/testsuite/gdb.base/unload into /media/data/home/tschwinge/tmp/gdb/HEAD.build/gdb/testsuite/../../gdb/gdb (timed out).
+ ERROR: no fileid for www2
+ ERROR: Couldn't send break shrfunc1 to GDB.
+ ERROR: no fileid for www2
+ ERROR: Couldn't send info break to GDB.
+ ERROR: no fileid for www2
+ ERROR: no fileid for www2
+ ERROR: Couldn't send continue to GDB.
+ ERROR: no fileid for www2
+ ERROR: no fileid for www2
+ ERROR: Couldn't send continue to GDB.
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/twice.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/nodebug.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/remote.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/sigchld.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/whatis.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/pie-support.exp ...
+ FAIL: gdb.base/pie-support.exp: correctly detected PIE binary
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/solib-disc.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/sigbpt.exp ...
+ FAIL: gdb.base/sigbpt.exp: stepi; stepi out of handler (timeout)
+ FAIL: gdb.base/sigbpt.exp: (timeout) rerun to main
+ FAIL: gdb.base/sigbpt.exp: stepi bp before segv; pass SIGSEGV (timeout)
+ FAIL: gdb.base/sigbpt.exp: stepi bp before segv; continue to keeper (timeout)
+ FAIL: gdb.base/sigbpt.exp: stepi bp before segv; nopass SIGSEGV (timeout)
+ FAIL: gdb.base/sigbpt.exp: stepi bp before segv; set breakpoint 0 of 1 (timeout)
+ FAIL: gdb.base/sigbpt.exp: stepi bp before segv; stepi out of handler (timeout)
+ FAIL: gdb.base/sigbpt.exp: stepi bp before segv; clear breakpoint 0 of 1 (timeout)
+ FAIL: gdb.base/sigbpt.exp: (timeout) rerun to main
+ FAIL: gdb.base/sigbpt.exp: stepi bp at segv; pass SIGSEGV (timeout)
+ FAIL: gdb.base/sigbpt.exp: stepi bp at segv; continue to keeper (timeout)
+ FAIL: gdb.base/sigbpt.exp: stepi bp at segv; nopass SIGSEGV (timeout)
+ FAIL: gdb.base/sigbpt.exp: stepi bp at segv; set breakpoint 0 of 1 (timeout)
+ FAIL: gdb.base/sigbpt.exp: stepi bp at segv; stepi out of handler (timeout)
+ FAIL: gdb.base/sigbpt.exp: stepi bp at segv; clear breakpoint 0 of 1 (timeout)
+ FAIL: gdb.base/sigbpt.exp: (timeout) rerun to main
+ FAIL: gdb.base/sigbpt.exp: stepi bp before and at segv; pass SIGSEGV (timeout)
+ FAIL: gdb.base/sigbpt.exp: stepi bp before and at segv; continue to keeper (timeout)
+ FAIL: gdb.base/sigbpt.exp: stepi bp before and at segv; nopass SIGSEGV (timeout)
+ FAIL: gdb.base/sigbpt.exp: stepi bp before and at segv; set breakpoint 0 of 2 (timeout)
+ FAIL: gdb.base/sigbpt.exp: stepi bp before and at segv; set breakpoint 1 of 2 (timeout)
+ FAIL: gdb.base/sigbpt.exp: stepi bp before and at segv; stepi out of handler (timeout)
+ FAIL: gdb.base/sigbpt.exp: stepi bp before and at segv; clear breakpoint 0 of 2 (timeout)
+ FAIL: gdb.base/sigbpt.exp: stepi bp before and at segv; clear breakpoint 1 of 2 (timeout)
+ FAIL: gdb.base/sigbpt.exp: (timeout) rerun to main
+ FAIL: gdb.base/sigbpt.exp: cont; pass SIGSEGV (timeout)
+ FAIL: gdb.base/sigbpt.exp: cont; continue to keeper (timeout)
+ FAIL: gdb.base/sigbpt.exp: cont; nopass SIGSEGV (timeout)
+ FAIL: gdb.base/sigbpt.exp: cont; set breakpoint 0 of 1 (timeout)
+ FAIL: gdb.base/sigbpt.exp: cont; continue to breakpoint at fault (timeout)
+ FAIL: gdb.base/sigbpt.exp: cont; stepi fault (timeout)
+ FAIL: gdb.base/sigbpt.exp: cont; clear breakpoint 0 of 1 (timeout)
+ FAIL: gdb.base/sigbpt.exp: (timeout) rerun to main
+ FAIL: gdb.base/sigbpt.exp: cont bp after segv; pass SIGSEGV (timeout)
+ FAIL: gdb.base/sigbpt.exp: cont bp after segv; continue to keeper (timeout)
+ FAIL: gdb.base/sigbpt.exp: cont bp after segv; nopass SIGSEGV (timeout)
+ FAIL: gdb.base/sigbpt.exp: cont bp after segv; set breakpoint 0 of 2 (timeout)
+ FAIL: gdb.base/sigbpt.exp: cont bp after segv; set breakpoint 1 of 2 (timeout)
+ FAIL: gdb.base/sigbpt.exp: cont bp after segv; continue to breakpoint at fault (timeout)
+ FAIL: gdb.base/sigbpt.exp: cont bp after segv; stepi fault (timeout)
+ FAIL: gdb.base/sigbpt.exp: cont bp after segv; clear breakpoint 0 of 2 (timeout)
+ FAIL: gdb.base/sigbpt.exp: cont bp after segv; clear breakpoint 1 of 2 (timeout)
+ FAIL: gdb.base/sigbpt.exp: (timeout) rerun to main
+ FAIL: gdb.base/sigbpt.exp: cont bp before and after segv; pass SIGSEGV (timeout)
+ FAIL: gdb.base/sigbpt.exp: cont bp before and after segv; continue to keeper (timeout)
+ FAIL: gdb.base/sigbpt.exp: cont bp before and after segv; nopass SIGSEGV (timeout)
+ FAIL: gdb.base/sigbpt.exp: cont bp before and after segv; set breakpoint 0 of 3 (timeout)
+ FAIL: gdb.base/sigbpt.exp: cont bp before and after segv; set breakpoint 1 of 3 (timeout)
+ FAIL: gdb.base/sigbpt.exp: cont bp before and after segv; set breakpoint 2 of 3 (timeout)
+ FAIL: gdb.base/sigbpt.exp: cont bp before and after segv; continue to breakpoint at fault (timeout)
+ FAIL: gdb.base/sigbpt.exp: cont bp before and after segv; stepi fault (timeout)
+ FAIL: gdb.base/sigbpt.exp: cont bp before and after segv; clear breakpoint 0 of 3 (timeout)
+ FAIL: gdb.base/sigbpt.exp: cont bp before and after segv; clear breakpoint 1 of 3 (timeout)
+ FAIL: gdb.base/sigbpt.exp: cont bp before and after segv; clear breakpoint 2 of 3 (timeout)
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/scope.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/reread.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/value-double-free.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/solib-display.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/sigrepeat.exp ...
+ FAIL: gdb.base/sigrepeat.exp: next
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/watch_thread_num.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/prelink.exp ...
+ sh: prelink: not found
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/overlays.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/step-break.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/watchpoint-solib.exp ...
+ FAIL: gdb.base/watchpoint-solib.exp: continue to foo (the program exited)
+ FAIL: gdb.base/watchpoint-solib.exp: set watchpoint on g
+ FAIL: gdb.base/watchpoint-solib.exp: continue to watchpoint hit (the program is no longer running)
+ FAIL: gdb.base/watchpoint-solib.exp: continue to foo again (the program exited)
+ FAIL: gdb.base/watchpoint-solib.exp: continue to watchpoint hit again (the program is no longer running)
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/stack-checking.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.base/sigstep.exp ...
+ FAIL: gdb.base/sigstep.exp: backtrace for nexti (pattern 2)
+ FAIL: gdb.base/sigstep.exp: step from handler; continue to handler (timeout)
+ FAIL: gdb.base/sigstep.exp: step from handler; leave handler (timeout)
+ FAIL: gdb.base/sigstep.exp: stepi from handleri; continue to handler (timeout)
+ FAIL: gdb.base/sigstep.exp: stepi from handleri; leave handler (timeout)
+ FAIL: gdb.base/sigstep.exp: stepi from handleri; leave signal trampoline (timeout)
+ FAIL: gdb.base/sigstep.exp: next from handler; continue to handler (timeout)
+ FAIL: gdb.base/sigstep.exp: next from handler; leave handler (timeout)
+ FAIL: gdb.base/sigstep.exp: nexti from handleri; continue to handler (timeout)
+ FAIL: gdb.base/sigstep.exp: nexti from handleri; leave handler (timeout)
+ FAIL: gdb.base/sigstep.exp: nexti from handleri; leave signal trampoline (timeout)
+ FAIL: gdb.base/sigstep.exp: finish from handleri; continue to handler (timeout)
+ FAIL: gdb.base/sigstep.exp: finish from handleri; leave handler (timeout)
+ FAIL: gdb.base/sigstep.exp: finish from handleri; leave signal trampoline (timeout)
+ FAIL: gdb.base/sigstep.exp: return from handleri; continue to handler (timeout)
+ FAIL: gdb.base/sigstep.exp: return from handleri; leave handler (timeout)
+ FAIL: gdb.base/sigstep.exp: return from handleri; leave signal trampoline (timeout)
+ FAIL: gdb.base/sigstep.exp: Set done as return will have skipped it (timeout)
+ ERROR: Delete all breakpoints in delete_breakpoints (timeout)
+ FAIL: gdb.base/sigstep.exp: break 79 (timeout)
+ FAIL: gdb.base/sigstep.exp: step to handler; resync (timeout)
+ FAIL: gdb.base/sigstep.exp: step to handler; advance to infinite loop (timeout)
+ FAIL: gdb.base/sigstep.exp: step to handler; break handler (timeout)
+ FAIL: gdb.base/sigstep.exp: step to handler; performing step (timeout)
+ FAIL: gdb.base/sigstep.exp: step to handler; clear handler (timeout)
+ FAIL: gdb.base/sigstep.exp: next to handler; resync (timeout)
+ FAIL: gdb.base/sigstep.exp: next to handler; advance to infinite loop (timeout)
+ FAIL: gdb.base/sigstep.exp: next to handler; break handler (timeout)
+ FAIL: gdb.base/sigstep.exp: next to handler; performing next (timeout)
+ FAIL: gdb.base/sigstep.exp: next to handler; clear handler (timeout)
+ FAIL: gdb.base/sigstep.exp: continue to handler; resync (timeout)
+ FAIL: gdb.base/sigstep.exp: continue to handler; advance to infinite loop (timeout)
+ FAIL: gdb.base/sigstep.exp: continue to handler; break handler (timeout)
+ FAIL: gdb.base/sigstep.exp: continue to handler; performing continue (timeout)
+ FAIL: gdb.base/sigstep.exp: continue to handler; clear handler (timeout)
+ FAIL: gdb.base/sigstep.exp: step to handler entry; resync (timeout)
+ FAIL: gdb.base/sigstep.exp: step to handler entry; advance to infinite loop (timeout)
+ FAIL: gdb.base/sigstep.exp: step to handler entry; break handler (timeout)
+ FAIL: gdb.base/sigstep.exp: step to handler entry; performing step (timeout)
+ FAIL: gdb.base/sigstep.exp: step to handler entry; clear handler (timeout)
+ FAIL: gdb.base/sigstep.exp: next to handler entry; resync (timeout)
+ FAIL: gdb.base/sigstep.exp: next to handler entry; advance to infinite loop (timeout)
+ FAIL: gdb.base/sigstep.exp: next to handler entry; break handler (timeout)
+ FAIL: gdb.base/sigstep.exp: next to handler entry; performing next (timeout)
+ FAIL: gdb.base/sigstep.exp: next to handler entry; clear handler (timeout)
+ FAIL: gdb.base/sigstep.exp: continue to handler entry; resync (timeout)
+ FAIL: gdb.base/sigstep.exp: continue to handler entry; advance to infinite loop (timeout)
+ FAIL: gdb.base/sigstep.exp: continue to handler entry; break handler (timeout)
+ FAIL: gdb.base/sigstep.exp: continue to handler entry; performing continue (timeout)
+ FAIL: gdb.base/sigstep.exp: continue to handler entry; clear handler (timeout)
+ FAIL: gdb.base/sigstep.exp: step over handler; resync (timeout)
+ FAIL: gdb.base/sigstep.exp: step over handler; advance to infinite loop (timeout)
+ FAIL: gdb.base/sigstep.exp: step over handler; performing step (timeout)
+ FAIL: gdb.base/sigstep.exp: next over handler; resync (timeout)
+ FAIL: gdb.base/sigstep.exp: next over handler; advance to infinite loop (timeout)
+ FAIL: gdb.base/sigstep.exp: next over handler; performing next (timeout)
+ FAIL: gdb.base/sigstep.exp: continue over handler; resync (timeout)
+ FAIL: gdb.base/sigstep.exp: continue over handler; advance to infinite loop (timeout)
+ FAIL: gdb.base/sigstep.exp: continue over handler; performing continue (timeout)
+ FAIL: gdb.base/sigstep.exp: step on breakpoint, to handler; resync (timeout)
+ FAIL: gdb.base/sigstep.exp: step on breakpoint, to handler; break infinite loop (timeout)
+ FAIL: gdb.base/sigstep.exp: step on breakpoint, to handler; break handler (timeout)
+ FAIL: gdb.base/sigstep.exp: step on breakpoint, to handler; continue to infinite loop (timeout)
+ FAIL: gdb.base/sigstep.exp: step on breakpoint, to handler; performing step (timeout)
+ FAIL: gdb.base/sigstep.exp: step on breakpoint, to handler; clear infinite loop (timeout)
+ FAIL: gdb.base/sigstep.exp: step on breakpoint, to handler; clear handler (timeout)
+ FAIL: gdb.base/sigstep.exp: next on breakpoint, to handler; resync (timeout)
+ FAIL: gdb.base/sigstep.exp: next on breakpoint, to handler; break infinite loop (timeout)
+ FAIL: gdb.base/sigstep.exp: next on breakpoint, to handler; break handler (timeout)
+ FAIL: gdb.base/sigstep.exp: next on breakpoint, to handler; continue to infinite loop (timeout)
+ FAIL: gdb.base/sigstep.exp: next on breakpoint, to handler; performing next (timeout)
+ FAIL: gdb.base/sigstep.exp: next on breakpoint, to handler; clear infinite loop (timeout)
+ FAIL: gdb.base/sigstep.exp: next on breakpoint, to handler; clear handler (timeout)
+ FAIL: gdb.base/sigstep.exp: continue on breakpoint, to handler; resync (timeout)
+ FAIL: gdb.base/sigstep.exp: continue on breakpoint, to handler; break infinite loop (timeout)
+ FAIL: gdb.base/sigstep.exp: continue on breakpoint, to handler; break handler (timeout)
+ FAIL: gdb.base/sigstep.exp: continue on breakpoint, to handler; continue to infinite loop (timeout)
+ FAIL: gdb.base/sigstep.exp: continue on breakpoint, to handler; performing continue (timeout)
+ FAIL: gdb.base/sigstep.exp: continue on breakpoint, to handler; clear infinite loop (timeout)
+ FAIL: gdb.base/sigstep.exp: continue on breakpoint, to handler; clear handler (timeout)
+ FAIL: gdb.base/sigstep.exp: step on breakpoint, to handler entry; resync (timeout)
+ FAIL: gdb.base/sigstep.exp: step on breakpoint, to handler entry; break infinite loop (timeout)
+ FAIL: gdb.base/sigstep.exp: step on breakpoint, to handler entry; break handler (timeout)
+ FAIL: gdb.base/sigstep.exp: step on breakpoint, to handler entry; continue to infinite loop (timeout)
+ FAIL: gdb.base/sigstep.exp: step on breakpoint, to handler entry; performing step (timeout)
+ FAIL: gdb.base/sigstep.exp: step on breakpoint, to handler entry; clear infinite loop (timeout)
+ FAIL: gdb.base/sigstep.exp: step on breakpoint, to handler entry; clear handler (timeout)
+ FAIL: gdb.base/sigstep.exp: next on breakpoint, to handler entry; resync (timeout)
+ FAIL: gdb.base/sigstep.exp: next on breakpoint, to handler entry; break infinite loop (timeout)
+ FAIL: gdb.base/sigstep.exp: next on breakpoint, to handler entry; break handler (timeout)
+ FAIL: gdb.base/sigstep.exp: next on breakpoint, to handler entry; continue to infinite loop (timeout)
+ FAIL: gdb.base/sigstep.exp: next on breakpoint, to handler entry; performing next (timeout)
+ FAIL: gdb.base/sigstep.exp: next on breakpoint, to handler entry; clear infinite loop (timeout)
+ FAIL: gdb.base/sigstep.exp: next on breakpoint, to handler entry; clear handler (timeout)
+ FAIL: gdb.base/sigstep.exp: continue on breakpoint, to handler entry; resync (timeout)
+ FAIL: gdb.base/sigstep.exp: continue on breakpoint, to handler entry; break infinite loop (timeout)
+ FAIL: gdb.base/sigstep.exp: continue on breakpoint, to handler entry; break handler (timeout)
+ FAIL: gdb.base/sigstep.exp: continue on breakpoint, to handler entry; continue to infinite loop (timeout)
+ FAIL: gdb.base/sigstep.exp: continue on breakpoint, to handler entry; performing continue (timeout)
+ FAIL: gdb.base/sigstep.exp: continue on breakpoint, to handler entry; clear infinite loop (timeout)
+ FAIL: gdb.base/sigstep.exp: continue on breakpoint, to handler entry; clear handler (timeout)
+ FAIL: gdb.base/sigstep.exp: step on breakpoint, skip handler; resync (timeout)
+ FAIL: gdb.base/sigstep.exp: step on breakpoint, skip handler; break infinite loop (timeout)
+ FAIL: gdb.base/sigstep.exp: step on breakpoint, skip handler; continue to infinite loop (timeout)
+ FAIL: gdb.base/sigstep.exp: step on breakpoint, skip handler; performing step (timeout)
+ FAIL: gdb.base/sigstep.exp: step on breakpoint, skip handler; clear infinite loop (timeout)
+ FAIL: gdb.base/sigstep.exp: next on breakpoint, skip handler; resync (timeout)
+ FAIL: gdb.base/sigstep.exp: next on breakpoint, skip handler; break infinite loop (timeout)
+ FAIL: gdb.base/sigstep.exp: next on breakpoint, skip handler; continue to infinite loop (timeout)
+ FAIL: gdb.base/sigstep.exp: next on breakpoint, skip handler; performing next (timeout)
+ FAIL: gdb.base/sigstep.exp: next on breakpoint, skip handler; clear infinite loop (timeout)
+ FAIL: gdb.base/sigstep.exp: continue on breakpoint, skip handler; resync (timeout)
+ FAIL: gdb.base/sigstep.exp: continue on breakpoint, skip handler; break infinite loop (timeout)
+ FAIL: gdb.base/sigstep.exp: continue on breakpoint, skip handler; continue to infinite loop (timeout)
+ FAIL: gdb.base/sigstep.exp: continue on breakpoint, skip handler; performing continue (timeout)
+ FAIL: gdb.base/sigstep.exp: continue on breakpoint, skip handler; clear infinite loop (timeout)
+
+ === gdb Summary ===
+
+ # of expected passes 3181
+ # of unexpected failures 566
+ # of known failures 5
+ # of unresolved testcases 40
+ # of untested testcases 3
+ /media/data/home/tschwinge/tmp/gdb/HEAD.build/gdb/testsuite/../../gdb/gdb version 6.8.50.20090914-cvs -nw -nx
+
+ make[4]: *** [check-gdb.base2] Error 1
+ rootme=`pwd`; export rootme; srcdir=../../../HEAD/src/gdb/testsuite ; export srcdir ; EXPECT=`if [ -f ${rootme}/../../expect/expect ] ; then echo ${rootme}/../../expect/expect ; else echo expect ; fi` ; export EXPECT ; EXEEXT= ; export EXEEXT ; LD_LIBRARY_PATH=$rootme/../../expect:$rootme/../../libstdc++:$rootme/../../tk/unix:$rootme/../../tcl/unix:$rootme/../../bfd:$rootme/../../opcodes:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; if [ -f ${rootme}/../../expect/expect ] ; then TCL_LIBRARY=${srcdir}/../../tcl/library ; export TCL_LIBRARY ; fi ; runtest --directory=gdb.ada --outdir=gdb.ada
+ Test Run By tschwinge on Fri Nov 13 12:32:22 2009
+ Native configuration is i386-unknown-gnu0.3
+
+ === gdb tests ===
+
+ Schedule of variations:
+ unix
+
+ Running target unix
+ Using /usr/share/dejagnu/baseboards/unix.exp as board description file for target.
+ Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
+ Using ../../../HEAD/src/gdb/testsuite/config/unix.exp as tool-and-target-specific interface file.
+ Running ../../../HEAD/src/gdb/testsuite/gdb.ada/array_bounds.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.ada/array_return.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.ada/array_subscript_addr.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.ada/arrayidx.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.ada/arrayparam.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.ada/arrayptr.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.ada/assign_1.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.ada/atomic_enum.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.ada/boolean_expr.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.ada/catch_ex.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.ada/char_param.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.ada/complete.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.ada/exec_changed.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.ada/exprs.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.ada/fixed_cmp.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.ada/fixed_points.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.ada/formatted_ref.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.ada/frame_args.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.ada/fun_addr.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.ada/fun_in_declare.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.ada/funcall_param.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.ada/homonym.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.ada/int_deref.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.ada/interface.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.ada/lang_switch.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.ada/mod_from_name.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.ada/nested.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.ada/null_array.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.ada/null_record.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.ada/packed_array.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.ada/packed_tagged.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.ada/print_chars.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.ada/print_pc.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.ada/ptype_arith_binop.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.ada/ptype_field.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.ada/ref_param.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.ada/ref_tick_size.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.ada/start.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.ada/str_ref_cmp.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.ada/sym_print_name.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.ada/taft_type.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.ada/tagged.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.ada/tasks.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.ada/tick_last_segv.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.ada/type_coercion.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.ada/uninitialized_vars.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.ada/variant_record_packed_array.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.ada/watch_arg.exp ...
+
+ === gdb Summary ===
+
+ # of expected passes 8
+ # of untested testcases 1
+ # of unsupported tests 45
+ /media/data/home/tschwinge/tmp/gdb/HEAD.build/gdb/testsuite/../../gdb/gdb version 6.8.50.20090914-cvs -nw -nx
+
+ rootme=`pwd`; export rootme; srcdir=../../../HEAD/src/gdb/testsuite ; export srcdir ; EXPECT=`if [ -f ${rootme}/../../expect/expect ] ; then echo ${rootme}/../../expect/expect ; else echo expect ; fi` ; export EXPECT ; EXEEXT= ; export EXEEXT ; LD_LIBRARY_PATH=$rootme/../../expect:$rootme/../../libstdc++:$rootme/../../tk/unix:$rootme/../../tcl/unix:$rootme/../../bfd:$rootme/../../opcodes:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; if [ -f ${rootme}/../../expect/expect ] ; then TCL_LIBRARY=${srcdir}/../../tcl/library ; export TCL_LIBRARY ; fi ; runtest --directory=gdb.arch --outdir=gdb.arch
+ Test Run By tschwinge on Fri Nov 13 12:33:06 2009
+ Native configuration is i386-unknown-gnu0.3
+
+ === gdb tests ===
+
+ Schedule of variations:
+ unix
+
+ Running target unix
+ Using /usr/share/dejagnu/baseboards/unix.exp as board description file for target.
+ Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
+ Using ../../../HEAD/src/gdb/testsuite/config/unix.exp as tool-and-target-specific interface file.
+ Running ../../../HEAD/src/gdb/testsuite/gdb.arch/alpha-step.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.arch/altivec-abi.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.arch/altivec-regs.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.arch/amd64-disp-step.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.arch/amd64-i386-address.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.arch/e500-abi.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.arch/e500-prologue.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.arch/e500-regs.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.arch/gdb1291.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.arch/gdb1431.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.arch/gdb1558.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.arch/i386-bp_permanent.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.arch/i386-disp-step.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.arch/i386-gnu-cfi.exp ...
+ FAIL: gdb.arch/i386-gnu-cfi.exp: backtrace
+ FAIL: gdb.arch/i386-gnu-cfi.exp: shift up to the modified frame
+ FAIL: gdb.arch/i386-gnu-cfi.exp: Existence of the CFI inserted register
+ Running ../../../HEAD/src/gdb/testsuite/gdb.arch/i386-permbkpt.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.arch/i386-prologue.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.arch/i386-signal.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.arch/i386-size-overlap.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.arch/i386-size.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.arch/i386-sse.exp ...
+ FAIL: gdb.arch/i386-sse.exp: check float contents of %xmm0
+ FAIL: gdb.arch/i386-sse.exp: check int8 contents of %xmm0
+ FAIL: gdb.arch/i386-sse.exp: check float contents of %xmm1
+ FAIL: gdb.arch/i386-sse.exp: check int8 contents of %xmm1
+ FAIL: gdb.arch/i386-sse.exp: check float contents of %xmm2
+ FAIL: gdb.arch/i386-sse.exp: check int8 contents of %xmm2
+ FAIL: gdb.arch/i386-sse.exp: check float contents of %xmm3
+ FAIL: gdb.arch/i386-sse.exp: check int8 contents of %xmm3
+ FAIL: gdb.arch/i386-sse.exp: check float contents of %xmm4
+ FAIL: gdb.arch/i386-sse.exp: check int8 contents of %xmm4
+ FAIL: gdb.arch/i386-sse.exp: check float contents of %xmm5
+ FAIL: gdb.arch/i386-sse.exp: check int8 contents of %xmm5
+ FAIL: gdb.arch/i386-sse.exp: check float contents of %xmm6
+ FAIL: gdb.arch/i386-sse.exp: check int8 contents of %xmm6
+ FAIL: gdb.arch/i386-sse.exp: check float contents of %xmm7
+ FAIL: gdb.arch/i386-sse.exp: check int8 contents of %xmm7
+ FAIL: gdb.arch/i386-sse.exp: check contents of data[0]
+ FAIL: gdb.arch/i386-sse.exp: check contents of data[1]
+ FAIL: gdb.arch/i386-sse.exp: check contents of data[2]
+ FAIL: gdb.arch/i386-sse.exp: check contents of data[3]
+ FAIL: gdb.arch/i386-sse.exp: check contents of data[4]
+ FAIL: gdb.arch/i386-sse.exp: check contents of data[5]
+ FAIL: gdb.arch/i386-sse.exp: check contents of data[6]
+ FAIL: gdb.arch/i386-sse.exp: check contents of data[7]
+ Running ../../../HEAD/src/gdb/testsuite/gdb.arch/i386-unwind.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.arch/iwmmxt-regs.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.arch/pa-nullify.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.arch/powerpc-aix-prologue.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.arch/powerpc-d128-regs.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.arch/powerpc-prologue.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.arch/ppc-dfp.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.arch/ppc-fp.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.arch/ppc64-atomic-inst.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.arch/spu-info.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.arch/thumb-prologue.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.arch/vsx-regs.exp ...
+
+ === gdb Summary ===
+
+ # of expected passes 69
+ # of unexpected failures 27
+ # of known failures 1
+ /media/data/home/tschwinge/tmp/gdb/HEAD.build/gdb/testsuite/../../gdb/gdb version 6.8.50.20090914-cvs -nw -nx
+
+ make[4]: *** [check-gdb.arch] Error 1
+ rootme=`pwd`; export rootme; srcdir=../../../HEAD/src/gdb/testsuite ; export srcdir ; EXPECT=`if [ -f ${rootme}/../../expect/expect ] ; then echo ${rootme}/../../expect/expect ; else echo expect ; fi` ; export EXPECT ; EXEEXT= ; export EXEEXT ; LD_LIBRARY_PATH=$rootme/../../expect:$rootme/../../libstdc++:$rootme/../../tk/unix:$rootme/../../tcl/unix:$rootme/../../bfd:$rootme/../../opcodes:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; if [ -f ${rootme}/../../expect/expect ] ; then TCL_LIBRARY=${srcdir}/../../tcl/library ; export TCL_LIBRARY ; fi ; runtest --directory=gdb.asm --outdir=gdb.asm
+ Test Run By tschwinge on Fri Nov 13 12:35:00 2009
+ Native configuration is i386-unknown-gnu0.3
+
+ === gdb tests ===
+
+ Schedule of variations:
+ unix
+
+ Running target unix
+ Using /usr/share/dejagnu/baseboards/unix.exp as board description file for target.
+ Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
+ Using ../../../HEAD/src/gdb/testsuite/config/unix.exp as tool-and-target-specific interface file.
+ Running ../../../HEAD/src/gdb/testsuite/gdb.asm/asm-source.exp ...
+ FAIL: gdb.asm/asm-source.exp: info target (timeout)
+ FAIL: gdb.asm/asm-source.exp: info symbol (timeout)
+ FAIL: gdb.asm/asm-source.exp: list (timeout)
+ FAIL: gdb.asm/asm-source.exp: search (timeout)
+ FAIL: gdb.asm/asm-source.exp: f in foo2 (timeout)
+ FAIL: gdb.asm/asm-source.exp: n in foo2 (timeout)
+ FAIL: gdb.asm/asm-source.exp: bt ALL in foo2 (timeout)
+ FAIL: gdb.asm/asm-source.exp: bt 2 in foo2 (timeout)
+ FAIL: gdb.asm/asm-source.exp: s 2 (timeout)
+ FAIL: gdb.asm/asm-source.exp: n 2 (timeout)
+ FAIL: gdb.asm/asm-source.exp: bt 3 in foo3 (timeout)
+ FAIL: gdb.asm/asm-source.exp: info source asmsrc1.s (timeout)
+ FAIL: gdb.asm/asm-source.exp: finish from foo3 (timeout)
+ FAIL: gdb.asm/asm-source.exp: info source asmsrc2.s (timeout)
+ FAIL: gdb.asm/asm-source.exp: info sources (timeout)
+ FAIL: gdb.asm/asm-source.exp: info line (timeout)
+ FAIL: gdb.asm/asm-source.exp: next over foo3 (timeout)
+ FAIL: gdb.asm/asm-source.exp: return from foo2 (timeout)
+ FAIL: gdb.asm/asm-source.exp: look at global variable (timeout)
+ FAIL: gdb.asm/asm-source.exp: x/i &globalvar (timeout)
+ FAIL: gdb.asm/asm-source.exp: disassem &globalvar &globalvar+1 (timeout)
+ FAIL: gdb.asm/asm-source.exp: look at static variable (timeout)
+ FAIL: gdb.asm/asm-source.exp: x/i &staticvar (timeout)
+ FAIL: gdb.asm/asm-source.exp: disassem &staticvar &staticvar+1 (timeout)
+ FAIL: gdb.asm/asm-source.exp: look at static function (timeout)
+
+ === gdb Summary ===
+
+ # of expected passes 3
+ # of unexpected failures 25
+ /media/data/home/tschwinge/tmp/gdb/HEAD.build/gdb/testsuite/../../gdb/gdb version 6.8.50.20090914-cvs -nw -nx
+
+ make[4]: *** [check-gdb.asm] Error 1
+ rootme=`pwd`; export rootme; srcdir=../../../HEAD/src/gdb/testsuite ; export srcdir ; EXPECT=`if [ -f ${rootme}/../../expect/expect ] ; then echo ${rootme}/../../expect/expect ; else echo expect ; fi` ; export EXPECT ; EXEEXT= ; export EXEEXT ; LD_LIBRARY_PATH=$rootme/../../expect:$rootme/../../libstdc++:$rootme/../../tk/unix:$rootme/../../tcl/unix:$rootme/../../bfd:$rootme/../../opcodes:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; if [ -f ${rootme}/../../expect/expect ] ; then TCL_LIBRARY=${srcdir}/../../tcl/library ; export TCL_LIBRARY ; fi ; runtest --directory=gdb.cell --outdir=gdb.cell
+ Test Run By tschwinge on Fri Nov 13 13:00:35 2009
+ Native configuration is i386-unknown-gnu0.3
+
+ === gdb tests ===
+
+ Schedule of variations:
+ unix
+
+ Running target unix
+ Using /usr/share/dejagnu/baseboards/unix.exp as board description file for target.
+ Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
+ Using ../../../HEAD/src/gdb/testsuite/config/unix.exp as tool-and-target-specific interface file.
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cell/arch.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cell/break.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cell/bt.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cell/core.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cell/data.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cell/ea-cache.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cell/ea-standalone.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cell/ea-test.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cell/f-regs.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cell/gcore.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cell/mem-access.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cell/ptype.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cell/registers.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cell/sizeof.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cell/solib-symbol.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cell/solib.exp ...
+
+ === gdb Summary ===
+
+ /media/data/home/tschwinge/tmp/gdb/HEAD.build/gdb/testsuite/../../gdb/gdb version 6.8.50.20090914-cvs -nw -nx
+
+ rootme=`pwd`; export rootme; srcdir=../../../HEAD/src/gdb/testsuite ; export srcdir ; EXPECT=`if [ -f ${rootme}/../../expect/expect ] ; then echo ${rootme}/../../expect/expect ; else echo expect ; fi` ; export EXPECT ; EXEEXT= ; export EXEEXT ; LD_LIBRARY_PATH=$rootme/../../expect:$rootme/../../libstdc++:$rootme/../../tk/unix:$rootme/../../tcl/unix:$rootme/../../bfd:$rootme/../../opcodes:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; if [ -f ${rootme}/../../expect/expect ] ; then TCL_LIBRARY=${srcdir}/../../tcl/library ; export TCL_LIBRARY ; fi ; runtest --directory=gdb.cp --outdir=gdb.cp
+ Test Run By tschwinge on Fri Nov 13 13:00:43 2009
+ Native configuration is i386-unknown-gnu0.3
+
+ === gdb tests ===
+
+ Schedule of variations:
+ unix
+
+ Running target unix
+ Using /usr/share/dejagnu/baseboards/unix.exp as board description file for target.
+ Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
+ Using ../../../HEAD/src/gdb/testsuite/config/unix.exp as tool-and-target-specific interface file.
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/abstract-origin.exp ...
+ FAIL: gdb.cp/abstract-origin.exp: p problem
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/ambiguous.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/annota2.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/annota3.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/anon-union.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/arg-reference.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/bool.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/breakpoint.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/bs15503.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/call-c.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/casts.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/class2.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/classes.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/cp-relocate.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/cpcompletion.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/cplusfuncs.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/ctti.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/demangle.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/derivation.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/exception.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/expand-sals.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/formatted-ref.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/gdb1355.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/gdb2384.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/gdb2495.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/hang.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/inherit.exp ...
+ FAIL: gdb.cp/inherit.exp: ptype tagless struct
+ FAIL: gdb.cp/inherit.exp: ptype variable of type tagless struct
+ FAIL: gdb.cp/inherit.exp: print type of anonymous union // unrecognized line type 1: class_with_anon_union::<anonymous union>;
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/local.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/m-data.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/m-static.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/maint.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/mb-ctor.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/mb-inline.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/mb-templates.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/member-ptr.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/method.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/method2.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/misc.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/namespace-nested-import.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/namespace-using.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/namespace.exp ...
+ FAIL: gdb.cp/namespace.exp: print 'F::cXf'
+ FAIL: gdb.cp/namespace.exp: print F::cXf
+ FAIL: gdb.cp/namespace.exp: print F::cXfX
+ FAIL: gdb.cp/namespace.exp: print 'G::Xg'
+ FAIL: gdb.cp/namespace.exp: print G::Xg
+ FAIL: gdb.cp/namespace.exp: print G::XgX
+ FAIL: gdb.cp/namespace.exp: print cXOtherFile
+ FAIL: gdb.cp/namespace.exp: print XOtherFile
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/overload.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/ovldbreak.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/pass-by-ref.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/pr-1023.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/pr-1210.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/pr-574.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/pr9631.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/printmethod.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/psmang.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/punctuator.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/ref-params.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/ref-types.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/rtti.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/templates.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/try_catch.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/userdef.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.cp/virtfunc.exp ...
+
+ === gdb Summary ===
+
+ # of expected passes 2005
+ # of unexpected failures 12
+ # of known failures 22
+ /media/data/home/tschwinge/tmp/gdb/HEAD.build/gdb/testsuite/../../gdb/gdb version 6.8.50.20090914-cvs -nw -nx
+
+ make[4]: *** [check-gdb.cp] Error 1
+ rootme=`pwd`; export rootme; srcdir=../../../HEAD/src/gdb/testsuite ; export srcdir ; EXPECT=`if [ -f ${rootme}/../../expect/expect ] ; then echo ${rootme}/../../expect/expect ; else echo expect ; fi` ; export EXPECT ; EXEEXT= ; export EXEEXT ; LD_LIBRARY_PATH=$rootme/../../expect:$rootme/../../libstdc++:$rootme/../../tk/unix:$rootme/../../tcl/unix:$rootme/../../bfd:$rootme/../../opcodes:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; if [ -f ${rootme}/../../expect/expect ] ; then TCL_LIBRARY=${srcdir}/../../tcl/library ; export TCL_LIBRARY ; fi ; runtest --directory=gdb.disasm --outdir=gdb.disasm
+ Test Run By tschwinge on Fri Nov 13 13:20:04 2009
+ Native configuration is i386-unknown-gnu0.3
+
+ === gdb tests ===
+
+ Schedule of variations:
+ unix
+
+ Running target unix
+ Using /usr/share/dejagnu/baseboards/unix.exp as board description file for target.
+ Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
+ Using ../../../HEAD/src/gdb/testsuite/config/unix.exp as tool-and-target-specific interface file.
+ Running ../../../HEAD/src/gdb/testsuite/gdb.disasm/am33.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.disasm/h8300s.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.disasm/hppa.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.disasm/mn10300.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.disasm/sh3.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.disasm/t01_mov.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.disasm/t02_mova.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.disasm/t03_add.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.disasm/t04_sub.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.disasm/t05_cmp.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.disasm/t06_ari2.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.disasm/t07_ari3.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.disasm/t08_or.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.disasm/t09_xor.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.disasm/t10_and.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.disasm/t11_logs.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.disasm/t12_bit.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.disasm/t13_otr.exp ...
+
+ === gdb Summary ===
+
+ /media/data/home/tschwinge/tmp/gdb/HEAD.build/gdb/testsuite/../../gdb/gdb version 6.8.50.20090914-cvs -nw -nx
+
+ rootme=`pwd`; export rootme; srcdir=../../../HEAD/src/gdb/testsuite ; export srcdir ; EXPECT=`if [ -f ${rootme}/../../expect/expect ] ; then echo ${rootme}/../../expect/expect ; else echo expect ; fi` ; export EXPECT ; EXEEXT= ; export EXEEXT ; LD_LIBRARY_PATH=$rootme/../../expect:$rootme/../../libstdc++:$rootme/../../tk/unix:$rootme/../../tcl/unix:$rootme/../../bfd:$rootme/../../opcodes:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; if [ -f ${rootme}/../../expect/expect ] ; then TCL_LIBRARY=${srcdir}/../../tcl/library ; export TCL_LIBRARY ; fi ; runtest --directory=gdb.dwarf2 --outdir=gdb.dwarf2
+ Test Run By tschwinge on Fri Nov 13 13:20:12 2009
+ Native configuration is i386-unknown-gnu0.3
+
+ === gdb tests ===
+
+ Schedule of variations:
+ unix
+
+ Running target unix
+ Using /usr/share/dejagnu/baseboards/unix.exp as board description file for target.
+ Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
+ Using ../../../HEAD/src/gdb/testsuite/config/unix.exp as tool-and-target-specific interface file.
+ Running ../../../HEAD/src/gdb/testsuite/gdb.dwarf2/callframecfa.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.dwarf2/dup-psym.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.dwarf2/dw2-basic.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.dwarf2/dw2-compressed.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.dwarf2/dw2-cu-size.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.dwarf2/dw2-inheritance.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.dwarf2/dw2-intercu.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.dwarf2/dw2-intermix.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.dwarf2/dw2-noloc.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.dwarf2/dw2-producer.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.dwarf2/dw2-ranges.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.dwarf2/dw2-restore.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.dwarf2/dw2-strp.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.dwarf2/dw2-unresolved.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.dwarf2/mac-fileno.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.dwarf2/valop.exp ...
+
+ === gdb Summary ===
+
+ # of expected passes 111
+ /media/data/home/tschwinge/tmp/gdb/HEAD.build/gdb/testsuite/../../gdb/gdb version 6.8.50.20090914-cvs -nw -nx
+
+ rootme=`pwd`; export rootme; srcdir=../../../HEAD/src/gdb/testsuite ; export srcdir ; EXPECT=`if [ -f ${rootme}/../../expect/expect ] ; then echo ${rootme}/../../expect/expect ; else echo expect ; fi` ; export EXPECT ; EXEEXT= ; export EXEEXT ; LD_LIBRARY_PATH=$rootme/../../expect:$rootme/../../libstdc++:$rootme/../../tk/unix:$rootme/../../tcl/unix:$rootme/../../bfd:$rootme/../../opcodes:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; if [ -f ${rootme}/../../expect/expect ] ; then TCL_LIBRARY=${srcdir}/../../tcl/library ; export TCL_LIBRARY ; fi ; runtest --directory=gdb.fortran --outdir=gdb.fortran
+ Test Run By tschwinge on Fri Nov 13 13:23:28 2009
+ Native configuration is i386-unknown-gnu0.3
+
+ === gdb tests ===
+
+ Schedule of variations:
+ unix
+
+ Running target unix
+ Using /usr/share/dejagnu/baseboards/unix.exp as board description file for target.
+ Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
+ Using ../../../HEAD/src/gdb/testsuite/config/unix.exp as tool-and-target-specific interface file.
+ Running ../../../HEAD/src/gdb/testsuite/gdb.fortran/array-element.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.fortran/complex.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.fortran/derived-type.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.fortran/exprs.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.fortran/module.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.fortran/subarray.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.fortran/types.exp ...
+
+ === gdb Summary ===
+
+ # of expected passes 125
+ # of untested testcases 5
+ /media/data/home/tschwinge/tmp/gdb/HEAD.build/gdb/testsuite/../../gdb/gdb version 6.8.50.20090914-cvs -nw -nx
+
+ rootme=`pwd`; export rootme; srcdir=../../../HEAD/src/gdb/testsuite ; export srcdir ; EXPECT=`if [ -f ${rootme}/../../expect/expect ] ; then echo ${rootme}/../../expect/expect ; else echo expect ; fi` ; export EXPECT ; EXEEXT= ; export EXEEXT ; LD_LIBRARY_PATH=$rootme/../../expect:$rootme/../../libstdc++:$rootme/../../tk/unix:$rootme/../../tcl/unix:$rootme/../../bfd:$rootme/../../opcodes:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; if [ -f ${rootme}/../../expect/expect ] ; then TCL_LIBRARY=${srcdir}/../../tcl/library ; export TCL_LIBRARY ; fi ; runtest --directory=gdb.gdb --outdir=gdb.gdb
+ Test Run By tschwinge on Fri Nov 13 13:24:02 2009
+ Native configuration is i386-unknown-gnu0.3
+
+ === gdb tests ===
+
+ Schedule of variations:
+ unix
+
+ Running target unix
+ Using /usr/share/dejagnu/baseboards/unix.exp as board description file for target.
+ Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
+ Using ../../../HEAD/src/gdb/testsuite/config/unix.exp as tool-and-target-specific interface file.
+ Running ../../../HEAD/src/gdb/testsuite/gdb.gdb/complaints.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.gdb/observer.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.gdb/selftest.exp ...
+ FAIL: gdb.gdb/selftest.exp: backtrace through signal handler
+ Running ../../../HEAD/src/gdb/testsuite/gdb.gdb/xfullpath.exp ...
+
+ === gdb Summary ===
+
+ # of expected passes 165
+ # of unexpected failures 1
+ /media/data/home/tschwinge/tmp/gdb/HEAD.build/gdb/testsuite/../../gdb/gdb version 6.8.50.20090914-cvs -nw -nx
+
+ make[4]: *** [check-gdb.gdb] Error 1
+ rootme=`pwd`; export rootme; srcdir=../../../HEAD/src/gdb/testsuite ; export srcdir ; EXPECT=`if [ -f ${rootme}/../../expect/expect ] ; then echo ${rootme}/../../expect/expect ; else echo expect ; fi` ; export EXPECT ; EXEEXT= ; export EXEEXT ; LD_LIBRARY_PATH=$rootme/../../expect:$rootme/../../libstdc++:$rootme/../../tk/unix:$rootme/../../tcl/unix:$rootme/../../bfd:$rootme/../../opcodes:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; if [ -f ${rootme}/../../expect/expect ] ; then TCL_LIBRARY=${srcdir}/../../tcl/library ; export TCL_LIBRARY ; fi ; runtest --directory=gdb.java --outdir=gdb.java
+ Test Run By tschwinge on Fri Nov 13 13:26:31 2009
+ Native configuration is i386-unknown-gnu0.3
+
+ === gdb tests ===
+
+ Schedule of variations:
+ unix
+
+ Running target unix
+ Using /usr/share/dejagnu/baseboards/unix.exp as board description file for target.
+ Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
+ Using ../../../HEAD/src/gdb/testsuite/config/unix.exp as tool-and-target-specific interface file.
+ Running ../../../HEAD/src/gdb/testsuite/gdb.java/jmain.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.java/jmisc.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.java/jprint.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.java/jv-exp.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.java/jv-print.exp ...
+
+ === gdb Summary ===
+
+ # of expected passes 49
+ # of untested testcases 3
+ /media/data/home/tschwinge/tmp/gdb/HEAD.build/gdb/testsuite/../../gdb/gdb version 6.8.50.20090914-cvs -nw -nx
+
+ rootme=`pwd`; export rootme; srcdir=../../../HEAD/src/gdb/testsuite ; export srcdir ; EXPECT=`if [ -f ${rootme}/../../expect/expect ] ; then echo ${rootme}/../../expect/expect ; else echo expect ; fi` ; export EXPECT ; EXEEXT= ; export EXEEXT ; LD_LIBRARY_PATH=$rootme/../../expect:$rootme/../../libstdc++:$rootme/../../tk/unix:$rootme/../../tcl/unix:$rootme/../../bfd:$rootme/../../opcodes:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; if [ -f ${rootme}/../../expect/expect ] ; then TCL_LIBRARY=${srcdir}/../../tcl/library ; export TCL_LIBRARY ; fi ; runtest --directory=gdb.mi --outdir=gdb.mi
+ Test Run By tschwinge on Fri Nov 13 13:26:56 2009
+ Native configuration is i386-unknown-gnu0.3
+
+ === gdb tests ===
+
+ Schedule of variations:
+ unix
+
+ Running target unix
+ Using /usr/share/dejagnu/baseboards/unix.exp as board description file for target.
+ Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
+ Using ../../../HEAD/src/gdb/testsuite/config/unix.exp as tool-and-target-specific interface file.
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/gdb2549.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/gdb669.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/gdb680.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/gdb701.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/gdb792.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi-async.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi-basics.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi-break.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi-cli.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi-console.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi-disassemble.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi-eval.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi-file-transfer.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi-file.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi-hack-cli.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi-nonstop-exit.exp ...
+ ERROR: mi-nonstop-exit.exp tests suppressed
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi-nonstop.exp ...
+ ERROR: mi-nonstop.exp tests suppressed
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi-nsintrall.exp ...
+ ERROR: mi-nsintrall.exp tests suppressed
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi-nsmoribund.exp ...
+ ERROR: mi-nsmoribund.exp tests suppressed
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi-nsthrexec.exp ...
+ ERROR: mi-nsthrexec.exp tests suppressed
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi-pending.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi-pthreads.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi-read-memory.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi-regs.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi-return.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi-simplerun.exp ...
+ FAIL: gdb.mi/mi-simplerun.exp: continue to end (failed to resume)
+ FAIL: gdb.mi/mi-simplerun.exp: continue to end (unknown output after running)
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi-stack.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi-stepi.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi-syn-frame.exp ...
+ FAIL: gdb.mi/mi-syn-frame.exp: list stack frames
+ FAIL: gdb.mi/mi-syn-frame.exp: finished exec continue (unknown output after running)
+ FAIL: gdb.mi/mi-syn-frame.exp: list stack frames (timeout)
+ FAIL: gdb.mi/mi-syn-frame.exp: call inferior function which raises exception (timeout)
+ FAIL: gdb.mi/mi-syn-frame.exp: backtrace from inferior function at exception (timeout)
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi-until.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi-var-block.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi-var-child-f.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi-var-child.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi-var-cmd.exp ...
+ FAIL: gdb.mi/mi-var-cmd.exp: in-and-out-of-scope: out of scope now
+ FAIL: gdb.mi/mi-var-cmd.exp: in-and-out-of-scope: out of scope now, not changed
+ FAIL: gdb.mi/mi-var-cmd.exp: in-and-out-of-scope: in scope now
+ FAIL: gdb.mi/mi-var-cmd.exp: in-and-out-of-scope: in scope now, not changed
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi-var-cp.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi-var-display.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi-var-invalidate.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi-watch.exp ...
+ FAIL: gdb.mi/mi-watch.exp: hw: watchpoint trigger (unknown output after running)
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi2-basics.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi2-break.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi2-cli.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi2-console.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi2-disassemble.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi2-eval.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi2-file.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi2-hack-cli.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi2-pthreads.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi2-read-memory.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi2-regs.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi2-return.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi2-simplerun.exp ...
+ FAIL: gdb.mi/mi2-simplerun.exp: continue to end (failed to resume)
+ FAIL: gdb.mi/mi2-simplerun.exp: continue to end (unknown output after running)
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi2-stack.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi2-stepi.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi2-syn-frame.exp ...
+ FAIL: gdb.mi/mi2-syn-frame.exp: list stack frames
+ FAIL: gdb.mi/mi2-syn-frame.exp: finished exec continue (unknown output after running)
+ FAIL: gdb.mi/mi2-syn-frame.exp: list stack frames (timeout)
+ FAIL: gdb.mi/mi2-syn-frame.exp: call inferior function which raises exception (timeout)
+ FAIL: gdb.mi/mi2-syn-frame.exp: backtrace from inferior function at exception (timeout)
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi2-until.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi2-var-block.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi2-var-child.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi2-var-cmd.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi2-var-display.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.mi/mi2-watch.exp ...
+ FAIL: gdb.mi/mi2-watch.exp: hw: watchpoint trigger (unknown output after running)
+
+ === gdb Summary ===
+
+ # of expected passes 1460
+ # of unexpected failures 20
+ # of expected failures 28
+ # of known failures 3
+ # of unresolved testcases 5
+ # of untested testcases 1
+ # of unsupported tests 5
+ /media/data/home/tschwinge/tmp/gdb/HEAD.build/gdb/testsuite/../../gdb/gdb version 6.8.50.20090914-cvs -nw -nx
+
+ make[4]: *** [check-gdb.mi] Error 1
+ rootme=`pwd`; export rootme; srcdir=../../../HEAD/src/gdb/testsuite ; export srcdir ; EXPECT=`if [ -f ${rootme}/../../expect/expect ] ; then echo ${rootme}/../../expect/expect ; else echo expect ; fi` ; export EXPECT ; EXEEXT= ; export EXEEXT ; LD_LIBRARY_PATH=$rootme/../../expect:$rootme/../../libstdc++:$rootme/../../tk/unix:$rootme/../../tcl/unix:$rootme/../../bfd:$rootme/../../opcodes:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; if [ -f ${rootme}/../../expect/expect ] ; then TCL_LIBRARY=${srcdir}/../../tcl/library ; export TCL_LIBRARY ; fi ; runtest --directory=gdb.modula2 --outdir=gdb.modula2
+ Test Run By tschwinge on Fri Nov 13 13:48:43 2009
+ Native configuration is i386-unknown-gnu0.3
+
+ === gdb tests ===
+
+ Schedule of variations:
+ unix
+
+ Running target unix
+ Using /usr/share/dejagnu/baseboards/unix.exp as board description file for target.
+ Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
+ Using ../../../HEAD/src/gdb/testsuite/config/unix.exp as tool-and-target-specific interface file.
+ Running ../../../HEAD/src/gdb/testsuite/gdb.modula2/unbounded-array.exp ...
+
+ === gdb Summary ===
+
+ # of expected passes 8
+ /media/data/home/tschwinge/tmp/gdb/HEAD.build/gdb/testsuite/../../gdb/gdb version 6.8.50.20090914-cvs -nw -nx
+
+ rootme=`pwd`; export rootme; srcdir=../../../HEAD/src/gdb/testsuite ; export srcdir ; EXPECT=`if [ -f ${rootme}/../../expect/expect ] ; then echo ${rootme}/../../expect/expect ; else echo expect ; fi` ; export EXPECT ; EXEEXT= ; export EXEEXT ; LD_LIBRARY_PATH=$rootme/../../expect:$rootme/../../libstdc++:$rootme/../../tk/unix:$rootme/../../tcl/unix:$rootme/../../bfd:$rootme/../../opcodes:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; if [ -f ${rootme}/../../expect/expect ] ; then TCL_LIBRARY=${srcdir}/../../tcl/library ; export TCL_LIBRARY ; fi ; runtest --directory=gdb.objc --outdir=gdb.objc
+ Test Run By tschwinge on Fri Nov 13 13:48:56 2009
+ Native configuration is i386-unknown-gnu0.3
+
+ === gdb tests ===
+
+ Schedule of variations:
+ unix
+
+ Running target unix
+ Using /usr/share/dejagnu/baseboards/unix.exp as board description file for target.
+ Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
+ Using ../../../HEAD/src/gdb/testsuite/config/unix.exp as tool-and-target-specific interface file.
+ Running ../../../HEAD/src/gdb/testsuite/gdb.objc/basicclass.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.objc/nondebug.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.objc/objcdecode.exp ...
+ FAIL: gdb.objc/objcdecode.exp: continue after break on multiply defined symbol (GDB internal error)
+
+ === gdb Summary ===
+
+ # of expected passes 21
+ # of unexpected failures 1
+ # of known failures 1
+ /media/data/home/tschwinge/tmp/gdb/HEAD.build/gdb/testsuite/../../gdb/gdb version 6.8.50.20090914-cvs -nw -nx
+
+ make[4]: *** [check-gdb.objc] Error 1
+ rootme=`pwd`; export rootme; srcdir=../../../HEAD/src/gdb/testsuite ; export srcdir ; EXPECT=`if [ -f ${rootme}/../../expect/expect ] ; then echo ${rootme}/../../expect/expect ; else echo expect ; fi` ; export EXPECT ; EXEEXT= ; export EXEEXT ; LD_LIBRARY_PATH=$rootme/../../expect:$rootme/../../libstdc++:$rootme/../../tk/unix:$rootme/../../tcl/unix:$rootme/../../bfd:$rootme/../../opcodes:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; if [ -f ${rootme}/../../expect/expect ] ; then TCL_LIBRARY=${srcdir}/../../tcl/library ; export TCL_LIBRARY ; fi ; runtest --directory=gdb.opt --outdir=gdb.opt
+ Test Run By tschwinge on Fri Nov 13 13:49:32 2009
+ Native configuration is i386-unknown-gnu0.3
+
+ === gdb tests ===
+
+ Schedule of variations:
+ unix
+
+ Running target unix
+ Using /usr/share/dejagnu/baseboards/unix.exp as board description file for target.
+ Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
+ Using ../../../HEAD/src/gdb/testsuite/config/unix.exp as tool-and-target-specific interface file.
+ Running ../../../HEAD/src/gdb/testsuite/gdb.opt/clobbered-registers-O2.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.opt/inline-bt.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.opt/inline-cmds.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.opt/inline-locals.exp ...
+
+ === gdb Summary ===
+
+ # of expected passes 83
+ # of expected failures 2
+ # of known failures 1
+ /media/data/home/tschwinge/tmp/gdb/HEAD.build/gdb/testsuite/../../gdb/gdb version 6.8.50.20090914-cvs -nw -nx
+
+ rootme=`pwd`; export rootme; srcdir=../../../HEAD/src/gdb/testsuite ; export srcdir ; EXPECT=`if [ -f ${rootme}/../../expect/expect ] ; then echo ${rootme}/../../expect/expect ; else echo expect ; fi` ; export EXPECT ; EXEEXT= ; export EXEEXT ; LD_LIBRARY_PATH=$rootme/../../expect:$rootme/../../libstdc++:$rootme/../../tk/unix:$rootme/../../tcl/unix:$rootme/../../bfd:$rootme/../../opcodes:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; if [ -f ${rootme}/../../expect/expect ] ; then TCL_LIBRARY=${srcdir}/../../tcl/library ; export TCL_LIBRARY ; fi ; runtest --directory=gdb.pascal --outdir=gdb.pascal
+ Test Run By tschwinge on Fri Nov 13 13:50:44 2009
+ Native configuration is i386-unknown-gnu0.3
+
+ === gdb tests ===
+
+ Schedule of variations:
+ unix
+
+ Running target unix
+ Using /usr/share/dejagnu/baseboards/unix.exp as board description file for target.
+ Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
+ Using ../../../HEAD/src/gdb/testsuite/config/unix.exp as tool-and-target-specific interface file.
+ Running ../../../HEAD/src/gdb/testsuite/gdb.pascal/floats.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.pascal/hello.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.pascal/integers.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.pascal/types.exp ...
+
+ === gdb Summary ===
+
+ # of expected passes 10
+ # of known failures 1
+ # of unsupported tests 3
+ /media/data/home/tschwinge/tmp/gdb/HEAD.build/gdb/testsuite/../../gdb/gdb version 6.8.50.20090914-cvs -nw -nx
+
+ rootme=`pwd`; export rootme; srcdir=../../../HEAD/src/gdb/testsuite ; export srcdir ; EXPECT=`if [ -f ${rootme}/../../expect/expect ] ; then echo ${rootme}/../../expect/expect ; else echo expect ; fi` ; export EXPECT ; EXEEXT= ; export EXEEXT ; LD_LIBRARY_PATH=$rootme/../../expect:$rootme/../../libstdc++:$rootme/../../tk/unix:$rootme/../../tcl/unix:$rootme/../../bfd:$rootme/../../opcodes:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; if [ -f ${rootme}/../../expect/expect ] ; then TCL_LIBRARY=${srcdir}/../../tcl/library ; export TCL_LIBRARY ; fi ; runtest --directory=gdb.python --outdir=gdb.python
+ Test Run By tschwinge on Fri Nov 13 13:50:57 2009
+ Native configuration is i386-unknown-gnu0.3
+
+ === gdb tests ===
+
+ Schedule of variations:
+ unix
+
+ Running target unix
+ Using /usr/share/dejagnu/baseboards/unix.exp as board description file for target.
+ Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
+ Using ../../../HEAD/src/gdb/testsuite/config/unix.exp as tool-and-target-specific interface file.
+ Running ../../../HEAD/src/gdb/testsuite/gdb.python/py-cmd.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.python/py-frame.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.python/py-function.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.python/py-mi.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.python/py-prettyprint.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.python/py-template.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.python/py-value.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.python/python.exp ...
+
+ === gdb Summary ===
+
+ # of expected passes 284
+ /media/data/home/tschwinge/tmp/gdb/HEAD.build/gdb/testsuite/../../gdb/gdb version 6.8.50.20090914-cvs -nw -nx
+
+ rootme=`pwd`; export rootme; srcdir=../../../HEAD/src/gdb/testsuite ; export srcdir ; EXPECT=`if [ -f ${rootme}/../../expect/expect ] ; then echo ${rootme}/../../expect/expect ; else echo expect ; fi` ; export EXPECT ; EXEEXT= ; export EXEEXT ; LD_LIBRARY_PATH=$rootme/../../expect:$rootme/../../libstdc++:$rootme/../../tk/unix:$rootme/../../tcl/unix:$rootme/../../bfd:$rootme/../../opcodes:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; if [ -f ${rootme}/../../expect/expect ] ; then TCL_LIBRARY=${srcdir}/../../tcl/library ; export TCL_LIBRARY ; fi ; runtest --directory=gdb.reverse --outdir=gdb.reverse
+ Test Run By tschwinge on Fri Nov 13 13:54:17 2009
+ Native configuration is i386-unknown-gnu0.3
+
+ === gdb tests ===
+
+ Schedule of variations:
+ unix
+
+ Running target unix
+ Using /usr/share/dejagnu/baseboards/unix.exp as board description file for target.
+ Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
+ Using ../../../HEAD/src/gdb/testsuite/config/unix.exp as tool-and-target-specific interface file.
+ Running ../../../HEAD/src/gdb/testsuite/gdb.reverse/break-reverse.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.reverse/consecutive-reverse.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.reverse/finish-reverse.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.reverse/i386-reverse.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.reverse/machinestate.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.reverse/sigall-reverse.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.reverse/solib-reverse.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.reverse/step-reverse.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.reverse/until-reverse.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.reverse/watch-reverse.exp ...
+
+ === gdb Summary ===
+
+ /media/data/home/tschwinge/tmp/gdb/HEAD.build/gdb/testsuite/../../gdb/gdb version 6.8.50.20090914-cvs -nw -nx
+
+ rootme=`pwd`; export rootme; srcdir=../../../HEAD/src/gdb/testsuite ; export srcdir ; EXPECT=`if [ -f ${rootme}/../../expect/expect ] ; then echo ${rootme}/../../expect/expect ; else echo expect ; fi` ; export EXPECT ; EXEEXT= ; export EXEEXT ; LD_LIBRARY_PATH=$rootme/../../expect:$rootme/../../libstdc++:$rootme/../../tk/unix:$rootme/../../tcl/unix:$rootme/../../bfd:$rootme/../../opcodes:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; if [ -f ${rootme}/../../expect/expect ] ; then TCL_LIBRARY=${srcdir}/../../tcl/library ; export TCL_LIBRARY ; fi ; runtest --directory=gdb.server --outdir=gdb.server
+ Test Run By tschwinge on Fri Nov 13 13:54:23 2009
+ Native configuration is i386-unknown-gnu0.3
+
+ === gdb tests ===
+
+ Schedule of variations:
+ unix
+
+ Running target unix
+ Using /usr/share/dejagnu/baseboards/unix.exp as board description file for target.
+ Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
+ Using ../../../HEAD/src/gdb/testsuite/config/unix.exp as tool-and-target-specific interface file.
+ Running ../../../HEAD/src/gdb/testsuite/gdb.server/ext-attach.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.server/ext-run.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.server/file-transfer.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.server/server-mon.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.server/server-run.exp ...
+
+ === gdb Summary ===
+
+ /media/data/home/tschwinge/tmp/gdb/HEAD.build/gdb/testsuite/../../gdb/gdb version 6.8.50.20090914-cvs -nw -nx
+
+ rootme=`pwd`; export rootme; srcdir=../../../HEAD/src/gdb/testsuite ; export srcdir ; EXPECT=`if [ -f ${rootme}/../../expect/expect ] ; then echo ${rootme}/../../expect/expect ; else echo expect ; fi` ; export EXPECT ; EXEEXT= ; export EXEEXT ; LD_LIBRARY_PATH=$rootme/../../expect:$rootme/../../libstdc++:$rootme/../../tk/unix:$rootme/../../tcl/unix:$rootme/../../bfd:$rootme/../../opcodes:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; if [ -f ${rootme}/../../expect/expect ] ; then TCL_LIBRARY=${srcdir}/../../tcl/library ; export TCL_LIBRARY ; fi ; runtest --directory=gdb.stabs --outdir=gdb.stabs
+ Test Run By tschwinge on Fri Nov 13 13:54:29 2009
+ Native configuration is i386-unknown-gnu0.3
+
+ === gdb tests ===
+
+ Schedule of variations:
+ unix
+
+ Running target unix
+ Using /usr/share/dejagnu/baseboards/unix.exp as board description file for target.
+ Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
+ Using ../../../HEAD/src/gdb/testsuite/config/unix.exp as tool-and-target-specific interface file.
+ Running ../../../HEAD/src/gdb/testsuite/gdb.stabs/exclfwd.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.stabs/weird.exp ...
+
+ === gdb Summary ===
+
+ # of expected passes 193
+ # of expected failures 7
+ /media/data/home/tschwinge/tmp/gdb/HEAD.build/gdb/testsuite/../../gdb/gdb version 6.8.50.20090914-cvs -nw -nx
+
+ rootme=`pwd`; export rootme; srcdir=../../../HEAD/src/gdb/testsuite ; export srcdir ; EXPECT=`if [ -f ${rootme}/../../expect/expect ] ; then echo ${rootme}/../../expect/expect ; else echo expect ; fi` ; export EXPECT ; EXEEXT= ; export EXEEXT ; LD_LIBRARY_PATH=$rootme/../../expect:$rootme/../../libstdc++:$rootme/../../tk/unix:$rootme/../../tcl/unix:$rootme/../../bfd:$rootme/../../opcodes:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; if [ -f ${rootme}/../../expect/expect ] ; then TCL_LIBRARY=${srcdir}/../../tcl/library ; export TCL_LIBRARY ; fi ; runtest --directory=gdb.threads --outdir=gdb.threads
+ Test Run By tschwinge on Fri Nov 13 13:55:20 2009
+ Native configuration is i386-unknown-gnu0.3
+
+ === gdb tests ===
+
+ Schedule of variations:
+ unix
+
+ Running target unix
+ Using /usr/share/dejagnu/baseboards/unix.exp as board description file for target.
+ Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
+ Using ../../../HEAD/src/gdb/testsuite/config/unix.exp as tool-and-target-specific interface file.
+ Running ../../../HEAD/src/gdb/testsuite/gdb.threads/attach-into-signal.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.threads/attach-stopped.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.threads/attachstop-mt.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.threads/bp_in_thread.exp ...
+ FAIL: gdb.threads/bp_in_thread.exp: run to noreturn
+ Running ../../../HEAD/src/gdb/testsuite/gdb.threads/current-lwp-dead.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.threads/execl.exp ...
+ FAIL: gdb.threads/execl.exp: info threads before exec
+ FAIL: gdb.threads/execl.exp: continue across exec
+ FAIL: gdb.threads/execl.exp: continue to end
+ Running ../../../HEAD/src/gdb/testsuite/gdb.threads/fork-child-threads.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.threads/fork-thread-pending.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.threads/gcore-thread.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.threads/hand-call-in-threads.exp ...
+ FAIL: gdb.threads/hand-call-in-threads.exp: show scheduler locking on
+ FAIL: gdb.threads/hand-call-in-threads.exp: hand call, thread 5 (timeout)
+ FAIL: gdb.threads/hand-call-in-threads.exp: set confirm off (timeout)
+ FAIL: gdb.threads/hand-call-in-threads.exp: prepare to discard hand call, thread 1 (timeout)
+ FAIL: gdb.threads/hand-call-in-threads.exp: dummy stack frame number, thread 1
+ FAIL: gdb.threads/hand-call-in-threads.exp: setting frame, thread 1 (timeout)
+ FAIL: gdb.threads/hand-call-in-threads.exp: discard hand call, thread 1 (timeout)
+ FAIL: gdb.threads/hand-call-in-threads.exp: prepare to discard hand call, thread 2 (timeout)
+ FAIL: gdb.threads/hand-call-in-threads.exp: dummy stack frame number, thread 2
+ FAIL: gdb.threads/hand-call-in-threads.exp: setting frame, thread 2 (timeout)
+ FAIL: gdb.threads/hand-call-in-threads.exp: discard hand call, thread 2 (timeout)
+ FAIL: gdb.threads/hand-call-in-threads.exp: prepare to discard hand call, thread 3 (timeout)
+ FAIL: gdb.threads/hand-call-in-threads.exp: dummy stack frame number, thread 3
+ FAIL: gdb.threads/hand-call-in-threads.exp: setting frame, thread 3 (timeout)
+ FAIL: gdb.threads/hand-call-in-threads.exp: discard hand call, thread 3 (timeout)
+ FAIL: gdb.threads/hand-call-in-threads.exp: prepare to discard hand call, thread 4 (timeout)
+ FAIL: gdb.threads/hand-call-in-threads.exp: dummy stack frame number, thread 4
+ FAIL: gdb.threads/hand-call-in-threads.exp: setting frame, thread 4 (timeout)
+ FAIL: gdb.threads/hand-call-in-threads.exp: discard hand call, thread 4 (timeout)
+ FAIL: gdb.threads/hand-call-in-threads.exp: prepare to discard hand call, thread 5 (timeout)
+ FAIL: gdb.threads/hand-call-in-threads.exp: dummy stack frame number, thread 5
+ FAIL: gdb.threads/hand-call-in-threads.exp: setting frame, thread 5 (timeout)
+ FAIL: gdb.threads/hand-call-in-threads.exp: discard hand call, thread 5 (timeout)
+ FAIL: gdb.threads/hand-call-in-threads.exp: all dummies popped (timeout)
+ FAIL: gdb.threads/hand-call-in-threads.exp: disable scheduler locking (timeout)
+ FAIL: gdb.threads/hand-call-in-threads.exp: show scheduler locking off (timeout)
+ Running ../../../HEAD/src/gdb/testsuite/gdb.threads/interrupted-hand-call.exp ...
+ FAIL: gdb.threads/interrupted-hand-call.exp: hand-call interrupted by signal in another thread
+ FAIL: gdb.threads/interrupted-hand-call.exp: continue to program exit (timeout)
+ Running ../../../HEAD/src/gdb/testsuite/gdb.threads/killed.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.threads/linux-dp.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.threads/manythreads.exp ...
+ FAIL: gdb.threads/manythreads.exp: info threads
+ Running ../../../HEAD/src/gdb/testsuite/gdb.threads/multi-create.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.threads/pending-step.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.threads/print-threads.exp ...
+ FAIL: gdb.threads/print-threads.exp: Running threads (fast) (unknown output)
+ FAIL: gdb.threads/print-threads.exp: Running threads (slow) (unknown output)
+ FAIL: gdb.threads/print-threads.exp: Running threads (slow with kill breakpoint) (unknown output)
+ Running ../../../HEAD/src/gdb/testsuite/gdb.threads/pthread_cond_wait.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.threads/pthreads.exp ...
+ FAIL: gdb.threads/pthreads.exp: Continue to creation of first thread
+ FAIL: gdb.threads/pthreads.exp: Continue to creation of second thread
+ FAIL: gdb.threads/pthreads.exp: continue until common routine run 15 times
+ FAIL: gdb.threads/pthreads.exp: Stopped with a ^C (timeout)
+ WARNING: Could not stop child with ^C; skipping rest of tests.
+
+ Running ../../../HEAD/src/gdb/testsuite/gdb.threads/schedlock.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.threads/sigthread.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.threads/staticthreads.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.threads/step.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.threads/step2.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.threads/switch-threads.exp ...
+ FAIL: gdb.threads/switch-threads.exp: continue to breakpoint: continue to thread_func
+ FAIL: gdb.threads/switch-threads.exp: next
+ Running ../../../HEAD/src/gdb/testsuite/gdb.threads/thread-execl.exp ...
+ FAIL: gdb.threads/thread-execl.exp: continue to thread start
+ FAIL: gdb.threads/thread-execl.exp: get to main in new image
+ Running ../../../HEAD/src/gdb/testsuite/gdb.threads/thread-specific.exp ...
+ FAIL: gdb.threads/thread-specific.exp: continue to thread-specific breakpoint
+ Running ../../../HEAD/src/gdb/testsuite/gdb.threads/thread-unwindonsignal.exp ...
+ FAIL: gdb.threads/thread-unwindonsignal.exp: hand-call interrupted by signal in another thread
+ FAIL: gdb.threads/thread-unwindonsignal.exp: dummy stack frame present
+ FAIL: gdb.threads/thread-unwindonsignal.exp: continue to program exit (the program is no longer running)
+ Running ../../../HEAD/src/gdb/testsuite/gdb.threads/thread_check.exp ...
+ FAIL: gdb.threads/thread_check.exp: continue to tf
+ FAIL: gdb.threads/thread_check.exp: backtrace from thread function
+ Running ../../../HEAD/src/gdb/testsuite/gdb.threads/thread_events.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.threads/threadapply.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.threads/threxit-hop-specific.exp ...
+ FAIL: gdb.threads/threxit-hop-specific.exp: continue to thread start
+ FAIL: gdb.threads/threxit-hop-specific.exp: get past the thread specific breakpoint
+ Running ../../../HEAD/src/gdb/testsuite/gdb.threads/tls-nodebug.exp ...
+ FAIL: gdb.threads/tls-nodebug.exp: thread local storage
+ Running ../../../HEAD/src/gdb/testsuite/gdb.threads/tls-shared.exp ...
+ FAIL: gdb.threads/tls-shared.exp: print thread local storage variable
+ Running ../../../HEAD/src/gdb/testsuite/gdb.threads/tls.exp ...
+ FAIL: gdb.threads/tls.exp: continue to first thread: no progress?
+ FAIL: gdb.threads/tls.exp: first thread print me
+ FAIL: gdb.threads/tls.exp: first thread local storage
+ FAIL: gdb.threads/tls.exp: first another thread local storage
+ FAIL: gdb.threads/tls.exp: continue to second thread
+ FAIL: gdb.threads/tls.exp: second thread print me
+ FAIL: gdb.threads/tls.exp: second thread local storage
+ FAIL: gdb.threads/tls.exp: second another thread local storage
+ FAIL: gdb.threads/tls.exp: continue to third thread
+ FAIL: gdb.threads/tls.exp: third thread print me
+ FAIL: gdb.threads/tls.exp: third thread local storage
+ FAIL: gdb.threads/tls.exp: third another thread local storage
+ FAIL: gdb.threads/tls.exp: selected thread: 1
+ FAIL: gdb.threads/tls.exp: selected thread: 2
+ FAIL: gdb.threads/tls.exp: selected thread: 3
+ FAIL: gdb.threads/tls.exp: 8 thread local storage
+ FAIL: gdb.threads/tls.exp: 8 another thread local storage
+ FAIL: gdb.threads/tls.exp: 6 thread local storage
+ FAIL: gdb.threads/tls.exp: 6 another thread local storage
+ FAIL: gdb.threads/tls.exp: 7 thread local storage
+ FAIL: gdb.threads/tls.exp: 7 another thread local storage
+ FAIL: gdb.threads/tls.exp: mess at end
+ FAIL: gdb.threads/tls.exp: running to spin in runto
+ FAIL: gdb.threads/tls.exp: p a_thread_local
+ FAIL: gdb.threads/tls.exp: p file2_thread_local
+ FAIL: gdb.threads/tls.exp: p a_thread_local second time
+ Running ../../../HEAD/src/gdb/testsuite/gdb.threads/watchthreads.exp ...
+ FAIL: gdb.threads/watchthreads.exp: watch args[0]
+ FAIL: gdb.threads/watchthreads.exp: watch args[1]
+ FAIL: gdb.threads/watchthreads.exp: threaded watch loop
+ FAIL: gdb.threads/watchthreads.exp: first watchpoint on args[0] hit
+ FAIL: gdb.threads/watchthreads.exp: first watchpoint on args[1] hit
+ FAIL: gdb.threads/watchthreads.exp: watchpoint on args[0] hit in thread
+ FAIL: gdb.threads/watchthreads.exp: watchpoint on args[1] hit in thread
+ FAIL: gdb.threads/watchthreads.exp: combination of threaded watchpoints = 30
+ Running ../../../HEAD/src/gdb/testsuite/gdb.threads/watchthreads2.exp ...
+ FAIL: gdb.threads/watchthreads2.exp: run to thread_started
+ FAIL: gdb.threads/watchthreads2.exp: run to thread_started
+ FAIL: gdb.threads/watchthreads2.exp: run to thread_started
+ FAIL: gdb.threads/watchthreads2.exp: run to thread_started (the program is no longer running)
+ FAIL: gdb.threads/watchthreads2.exp: all threads started
+
+ === gdb Summary ===
+
+ # of expected passes 172
+ # of unexpected failures 93
+ # of known failures 1
+ # of unsupported tests 4
+ /media/data/home/tschwinge/tmp/gdb/HEAD.build/gdb/testsuite/../../gdb/gdb version 6.8.50.20090914-cvs -nw -nx
+
+ make[4]: *** [check-gdb.threads] Error 1
+ rootme=`pwd`; export rootme; srcdir=../../../HEAD/src/gdb/testsuite ; export srcdir ; EXPECT=`if [ -f ${rootme}/../../expect/expect ] ; then echo ${rootme}/../../expect/expect ; else echo expect ; fi` ; export EXPECT ; EXEEXT= ; export EXEEXT ; LD_LIBRARY_PATH=$rootme/../../expect:$rootme/../../libstdc++:$rootme/../../tk/unix:$rootme/../../tcl/unix:$rootme/../../bfd:$rootme/../../opcodes:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; if [ -f ${rootme}/../../expect/expect ] ; then TCL_LIBRARY=${srcdir}/../../tcl/library ; export TCL_LIBRARY ; fi ; runtest --directory=gdb.trace --outdir=gdb.trace
+ Test Run By tschwinge on Fri Nov 13 14:16:00 2009
+ Native configuration is i386-unknown-gnu0.3
+
+ === gdb tests ===
+
+ Schedule of variations:
+ unix
+
+ Running target unix
+ Using /usr/share/dejagnu/baseboards/unix.exp as board description file for target.
+ Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
+ Using ../../../HEAD/src/gdb/testsuite/config/unix.exp as tool-and-target-specific interface file.
+ Running ../../../HEAD/src/gdb/testsuite/gdb.trace/actions.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.trace/backtrace.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.trace/circ.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.trace/collection.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.trace/deltrace.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.trace/infotrace.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.trace/limits.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.trace/packetlen.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.trace/passc-dyn.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.trace/passcount.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.trace/report.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.trace/save-trace.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.trace/tfind.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.trace/tracecmd.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.trace/while-dyn.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.trace/while-stepping.exp ...
+
+ === gdb Summary ===
+
+ # of expected passes 125
+ /media/data/home/tschwinge/tmp/gdb/HEAD.build/gdb/testsuite/../../gdb/gdb version 6.8.50.20090914-cvs -nw -nx
+
+ rootme=`pwd`; export rootme; srcdir=../../../HEAD/src/gdb/testsuite ; export srcdir ; EXPECT=`if [ -f ${rootme}/../../expect/expect ] ; then echo ${rootme}/../../expect/expect ; else echo expect ; fi` ; export EXPECT ; EXEEXT= ; export EXEEXT ; LD_LIBRARY_PATH=$rootme/../../expect:$rootme/../../libstdc++:$rootme/../../tk/unix:$rootme/../../tcl/unix:$rootme/../../bfd:$rootme/../../opcodes:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; if [ -f ${rootme}/../../expect/expect ] ; then TCL_LIBRARY=${srcdir}/../../tcl/library ; export TCL_LIBRARY ; fi ; runtest --directory=gdb.xml --outdir=gdb.xml
+ Test Run By tschwinge on Fri Nov 13 14:19:31 2009
+ Native configuration is i386-unknown-gnu0.3
+
+ === gdb tests ===
+
+ Schedule of variations:
+ unix
+
+ Running target unix
+ Using /usr/share/dejagnu/baseboards/unix.exp as board description file for target.
+ Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
+ Using ../../../HEAD/src/gdb/testsuite/config/unix.exp as tool-and-target-specific interface file.
+ Running ../../../HEAD/src/gdb/testsuite/gdb.xml/tdesc-arch.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.xml/tdesc-errors.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.xml/tdesc-regs.exp ...
+ Running ../../../HEAD/src/gdb/testsuite/gdb.xml/tdesc-xinclude.exp ...
+
+ === gdb Summary ===
+
+ # of expected passes 13
+ # of known failures 1
+ # of unsupported tests 1
+ /media/data/home/tschwinge/tmp/gdb/HEAD.build/gdb/testsuite/../../gdb/gdb version 6.8.50.20090914-cvs -nw -nx
+
+ make[4]: Leaving directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/gdb/testsuite'
+ make[3]: Leaving directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/gdb/testsuite'
+ make[2]: Leaving directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build/gdb'
+ make[1]: Nothing to be done for `check-target'.
+ make[1]: Leaving directory `/media/data/home/tschwinge/tmp/gdb/HEAD.build'
diff --git a/hurd/open_issues/gdb_thread_ids.mdwn b/open_issues/gdb_thread_ids.mdwn
index df4b7bbc..eeb67f30 100644
--- a/hurd/open_issues/gdb_thread_ids.mdwn
+++ b/open_issues/gdb_thread_ids.mdwn
@@ -1,12 +1,16 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!meta title="GDB: thread ids"]]
+
+[[!tag open_issue_gdb]]
GNU GDB's Pedro Alves:
diff --git a/hurd/running/debian/porting/git-core-2.mdwn b/open_issues/git-core-2.mdwn
index b4f095c8..df38dc70 100644
--- a/hurd/running/debian/porting/git-core-2.mdwn
+++ b/open_issues/git-core-2.mdwn
@@ -1,12 +1,17 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008, 2009, 2010 Free Software Foundation,
+Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!meta title="Hiccup of git clone when checking out files"]]
+
+[[!tag open_issue_porting]]
On the otherwise-idle flubber:
@@ -44,3 +49,7 @@ Fixing this situation is easy enough:
$ git status
# On branch master
nothing to commit (working directory clean)
+
+---
+
+Still seen on 2010-03-16.
diff --git a/open_issues/glibc_ptrace.mdwn b/open_issues/glibc_ptrace.mdwn
new file mode 100644
index 00000000..b4c529d7
--- /dev/null
+++ b/open_issues/glibc_ptrace.mdwn
@@ -0,0 +1,47 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta title="glibc: ptrace"]]
+
+[[!tag open_issue_glibc]]
+
+`ptrace` has some issues (`sysdeps/mach/hurd/ptrace.c`).
+
+ * Our implementation (and the generic one in `misc/ptrace.c`) differ
+ from the Linux one (`sysdeps/unix/sysv/linux/ptrace.c`)
+ w.r.t. handling of...
+
+ * the third argument: `int data` vs. `void *data`;
+
+ * `void *addr2` -- Linux doesn't have this, but we provide some
+ additional functionalty using this;
+
+ * function declaration: Linux has **`long`** `int ptrace (enum
+ __ptrace_request __request, ...)` **`__THROW`**, we have `int ptrace
+ (enum __ptrace_request __request, ...)`;
+
+ * interface do differ, e.g., Linux' `PTRACE_GETREGS` uses `void
+ *data`, we use `void *addr` for returning the struct, and in
+ Linux this is a `struct user_regs_struct` from `linux/user.h`,
+ and for us it is a `struct i386_thread_state` from
+ `mach/i386/thread_status.h`;
+
+ * Linux probides some functionality that we don't provide, e.g.,
+ `PTRACE_SINGLESTEP`.
+
+ * Some parts are wrongly implemented, e.g., `PTRACE_GETREGS` and
+ `PTRACE_SETREGS` both do the same thing.
+
+ * `return` values are wrong, e.g., `return EOPNOTSUPP` should instead
+ set `errno = EOPNOTSUPP` and `return -1` in a few places (but not
+ with the three `PTRACE_PEEK*` requests.
+
+Also consider the `sysdeps/generic/sys/ptrace.h` and
+`sysdeps/unix/sysv/linux/sys/ptrace.h` files.
diff --git a/open_issues/glibc_testsuite.mdwn b/open_issues/glibc_testsuite.mdwn
new file mode 100644
index 00000000..4cceb241
--- /dev/null
+++ b/open_issues/glibc_testsuite.mdwn
@@ -0,0 +1,105 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!tag open_issue_glibc]]
+
+`configure --without-cvs --prefix= --disable-profile --build=i486-gnu
+--host=i486-gnu`
+
+`make -k check` changes from 538603af899057a9ef9583cc447804ec602a45e5 to
+c9fd33ef070def49c078c94f8d9bc9f8a8e267f7.
+
+Configured with `--prefix=/usr` instead of `--prefix=`.
+
+Resolved failures:
+
+ * localedata/tst_mblen.out
+ * localedata/tst_mbrlen.out
+ * localedata/tst_mbrtowc.out
+ * localedata/tst_mbsrtowcs.out
+ * localedata/tst_mbstowcs.out
+ * localedata/tst_mbtowc.out
+ * localedata/tst_swscanf.out
+ * localedata/tst_wcrtomb.out
+ * localedata/tst_wcsrtombs.out
+ * localedata/tst_wcstombs.out
+ * localedata/tst_wctob.out
+ * localedata/tst_wctomb.out
+ * localedata/bug-iconv-trans.out
+ * localedata/tst-wctype.out
+ * math/test-float.out
+ * math/test-double.out
+ * posix/tst-vfork3-mem
+ * io/tst-mkdirat.out
+
+New:
+
+ * A lot of `error while loading shared libraries: libmachuser.so.1: cannot
+ open shared object file: No such file or directory`. Is it perhaps picking
+ that library up from `$prefix/lib/`?
+
+ New failures; likely due to that:
+
+ * iconvdata/iconv-test.out
+ * iconvdata/tst-tables.out
+ * malloc/tst-mtrace.out
+ * grp/tst_fgetgrent.out
+ * posix/globtest.out
+ * posix/wordexp-tst.out
+ * io/ftwtest.out
+ * elf/tst-pathopt.out
+
+ Changed failures; likely due to that:
+
+ * debug/tst-chk4.out / debug/tst-chk5.out
+
+ -error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
+ +error while loading shared libraries: libpthread-stubs.so.0: cannot open shared object file: No such file or directory
+
+---
+
+Changes to b367d4f996512af6841c3cefdb943cb0a826a6a1: nothing interesting.
+
+---
+
+Changes to b85c54a1f7e5241c1ef99dfeaecbd1bf4117564f: nothing interesting.
+
+New failures:
+
+ * posix/bug-glob3.out (SEGFAULT; but also on Linux)
+ * wctype/bug-wctypeh.o (compile error; but also on Linux)
+
+Other things noticed:
+
+ * Running `make -k check` for the second time:
+
+ -i486-gnu-gcc tst-timer2.c -c -std=gnu99 -fgnu89-inline -O2 -Wall -Winline -Wwrite-strings -fmerge-all-constants -g -Wno-parentheses -Wstrict-prototypes -mpreferred-stack-boundary=2 -I../include -I/home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/rt -I/home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build -I../sysdeps/i386/elf -I../sysdeps/mach/hurd/i386 -I../sysdeps/mach/hurd -I../sysdeps/gnu -I../sysdeps/unix/bsd/bsd4.4 -I../sysdeps/unix/mman -I../sysdeps/mach/i386 -I../sysdeps/mach -I../sysdeps/i386/i486 -I../sysdeps/i386/fpu -I../sysdeps/i386 -I../sysdeps/wordsize-32 -I../sysdeps/ieee754/ldbl-96 -I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754/flt-32 -I../sysdeps/unix/bsd -I../sysdeps/unix/common -I../sysdeps/unix/inet -I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/ieee754 -I../sysdeps/generic/elf -I../sysdeps/generic -I../hurd -I/home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/hurd/ -I../mach -I/home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/mach/ -I.. -I../libio -I. -D_LIBC_REENTRANT -include ../include/libc-symbols.h -DNOT_IN_libc=1 -o /home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/rt/tst-timer2.o -MD -MP -MF /home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/rt/tst-timer2.o.dt -MT /home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/rt/tst-timer2.o
+ -tst-timer2.c: In function ‘do_test’:
+ -tst-timer2.c:33: error: ‘SIGRTMIN’ undeclared (first use in this function)
+ -tst-timer2.c:33: error: (Each undeclared identifier is reported only once
+ -tst-timer2.c:33: error: for each function it appears in.)
+ -make[2]: *** [/home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/rt/tst-timer2.o] Error 1
+ +/usr/bin/install -c -m 644 ../include/pthread.h /usr/include/pthread.h
+ +/usr/bin/install: cannot remove `/usr/include/pthread.h': Permission denied
+ +make[2]: *** [/usr/include/pthread.h] Error 1
+
+ -i486-gnu-gcc tst-thrlock.c -c -std=gnu99 -fgnu89-inline -O2 -Wall -Winline -Wwrite-strings -fmerge-all-constants -g -Wno-parentheses -Wstrict-prototypes -mpreferred-stack-boundary=2 -I../include -I/home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/elf -I/home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build -I../sysdeps/i386/elf -I../sysdeps/mach/hurd/i386 -I../sysdeps/mach/hurd -I../sysdeps/gnu -I../sysdeps/unix/bsd/bsd4.4 -I../sysdeps/unix/mman -I../sysdeps/mach/i386 -I../sysdeps/mach -I../sysdeps/i386/i486 -I../sysdeps/i386/fpu -I../sysdeps/i386 -I../sysdeps/wordsize-32 -I../sysdeps/ieee754/ldbl-96 -I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754/flt-32 -I../sysdeps/unix/bsd -I../sysdeps/unix/common -I../sysdeps/unix/inet -I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/ieee754 -I../sysdeps/generic/elf -I../sysdeps/generic -I../hurd -I/home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/hurd/ -I../mach -I/home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/mach/ -I.. -I../libio -I. -D_LIBC_REENTRANT -include ../include/libc-symbols.h -DNOT_IN_libc=1 -o /home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/elf/tst-thrlock.o -MD -MP -MF /home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/elf/tst-thrlock.o.dt -MT /home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/elf/tst-thrlock.o
+ -i486-gnu-gcc -nostdlib -nostartfiles -o /home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/elf/tst-thrlock -Wl,-dynamic-linker=/usr/lib/ld.so.1 -Wl,-z,combreloc -Wl,-z,relro -Wl,--hash-style=both /home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/csu/crt1.o /home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/csu/crti.o `i486-gnu-gcc --print-file-name=crtbegin.o` /home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/elf/tst-thrlock.o /home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/dlfcn/libdl.so.2 -Wl,-rpath-link=/home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build:/home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/math:/home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/elf:/home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/dlfcn:/home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/nss:/home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/nis:/home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/rt:/home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/resolv:/home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/crypt:/home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/mach:/home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/hurd /home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/libc.so.0.3 /home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/libc_nonshared.a -lgcc -Wl,--as-needed -lgcc_s -Wl,--no-as-needed `i486-gnu-gcc --print-file-name=crtend.o` /home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/csu/crtn.o
+ -/home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/elf/tst-thrlock.o: In function `do_test':
+ -/media/data/home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker/elf/tst-thrlock.c:38: undefined reference to `pthread_create'
+ -/media/data/home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker/elf/tst-thrlock.c:48: undefined reference to `pthread_join'
+ -collect2: ld returned 1 exit status
+ -make[2]: *** [/home/tschwinge/tmp/glibc/tschwinge--Roger_Whittaker.build/elf/tst-thrlock] Error 1
+ +/usr/bin/install -c -m 644 ../include/pthread.h /usr/include/pthread.h
+ +/usr/bin/install: cannot remove `/usr/include/pthread.h': Permission denied
+ +make[2]: *** [/usr/include/pthread.h] Error 1
+
+ * Not all tests are re-run in a `make -k tests; make tests-clean; make -k
+ tests` cycle.
diff --git a/open_issues/libfshelp_in_hurdlibs.mdwn b/open_issues/libfshelp_in_hurdlibs.mdwn
new file mode 100644
index 00000000..0700b061
--- /dev/null
+++ b/open_issues/libfshelp_in_hurdlibs.mdwn
@@ -0,0 +1,17 @@
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!meta title="libfshelp in HURDLIBS"]]
+
+[[!tag open_issue_hurd]]
+
+[[hurd/libtrivfs]] seems to use [[hurd/libfshelp]], but doesn't have it listed
+in `HURDLIBS`. Should we change that? Same for [[hurd/libnetfs]] and
+[[hurd/libdiskfs]]?
diff --git a/open_issues/libpthread.mdwn b/open_issues/libpthread.mdwn
new file mode 100644
index 00000000..68195758
--- /dev/null
+++ b/open_issues/libpthread.mdwn
@@ -0,0 +1,44 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!tag open_issue_glibc open_issue_pthread]]
+
+GSoC project idea: [[community/gsoc/project ideas/pthreads]]
+
+---
+
+`#hurd`, 2010-01-24
+
+ <pinotree> youpi: hm, thought about the pthread/stubs issue w/ dlopen'ed libraries
+ <pinotree> currently looks like libstdc++ on hurd links to pthread-stubs, we're the only one with such configuration
+ <pinotree> i was looking at the gcc 4.4 patch hurd-pthread.diff, could it be it does not set THREADLIBS in the configure.ac switch case?
+ <youpi> that's expected
+ <youpi> on linux the libc provides hooks itself, on hurd-i386 it's pthread-stubs
+ <pinotree> why not explicitly link to pthread though?
+ <youpi> because there is no strict need to, for applications that don't need libpthread
+ <youpi> the dlopen case is a tricky case that pthread-stubs had not thought about
+ <pinotree> hm
+ <pinotree> what if the pthread stubs would be moved in our glibc?
+ <youpi> that's what we should do yes
+ <youpi> (ideally)
+ <youpi> but for this we need to build libpthread along glibc, to get it really working
+ <youpi> and that's the tricky part (Makefile & such) which hasn't been done yet
+ <pinotree> why both (stubs + actual libpthread)?
+ <youpi> because you need the stubs to be able to call the actual libpthread
+ <youpi> as soon libpthread gets dlopened for instance
+ <youpi> +as
+ <pinotree> i see
+ <youpi> (remember that nptl does this if you want to see how)
+ <youpi> (it's the libc files in nptl/)
+ <youpi> (and forward.c)
+ <guillem> also if libpthreads gets integrated with glibc don't we need to switch the hurd from cthreads then? Which has been the blocker all this time AFAIR?
+ <youpi> we don't _need_ to
+ <guillem> ok
+
diff --git a/open_issues/libstore_parted.mdwn b/open_issues/libstore_parted.mdwn
new file mode 100644
index 00000000..852c8fa8
--- /dev/null
+++ b/open_issues/libstore_parted.mdwn
@@ -0,0 +1,11 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta redir=hurd/libstore/part]]
diff --git a/open_issues/lsof.mdwn b/open_issues/lsof.mdwn
new file mode 100644
index 00000000..2cbf2302
--- /dev/null
+++ b/open_issues/lsof.mdwn
@@ -0,0 +1,13 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+We don't have a `lsof` tool. Perhaps we could cook something with having a
+look at which ports are open at the moment (as [[`portinfo`|hurd/portinfo]]
+does, for example)?
diff --git a/open_issues/m4_vs_stack.mdwn b/open_issues/m4_vs_stack.mdwn
new file mode 100644
index 00000000..c92cfb00
--- /dev/null
+++ b/open_issues/m4_vs_stack.mdwn
@@ -0,0 +1,21 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!tag open_issue_porting]]
+
+ m4 (1.4.13-1+hurd.2) unreleased; urgency=low
+
+ * Drop stack overflow (checks/stackovf) check, test-c-stack and
+ test-c-stack2 checks, and /dev/null/ (test-open and test-fopen) checks.
+
+ -- Samuel Thibault <samuel.thibault@ens-lyon.org> Tue, 18 Aug 2009 20:54:30 +0000
+
+ <youpi> that was a quick fix (as not having m4 makes autoconf uninstallable, which is quite a problem)
+ <youpi> there's probably something wrong in the stack management of the Hurd, I haven't investigated
diff --git a/open_issues/mach-defpager_vs_defpager.mdwn b/open_issues/mach-defpager_vs_defpager.mdwn
new file mode 100644
index 00000000..d6976706
--- /dev/null
+++ b/open_issues/mach-defpager_vs_defpager.mdwn
@@ -0,0 +1,25 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!tag open_issue_gnumach open_issue_hurd]]
+
+\#hurd, 2010, end of May / beginning of June
+
+ <cfhammar> whats the difference between mach-defpager and defpager?
+ <cfhammar> i'm guessing defpager is a hurdish version that uses libstore but was never finished or something
+ <cfhammar> found an interesting thread about it: http://mirror.libre.fm/hurd/list/msg01232.html
+ <slpz> antrik: an interesting thread, indeed :-)
+ <pochu> slpz: btw is mach-defpager linked statically but not called mach-defpager.static on purpose?
+ <slpz> antrik: also, I can confirm that mach-defpager needs a complete rewrite ;-)
+ <slpz> pochu: I think the original defpager was launched by serverboot
+ <slpz> pochu: that could be the reason to have it static, like ext2fs
+ <slpz> and since there's no need to execute it again during the normal operation of the system, they probably decided to not create a dynamically linked version
+ <slpz> (but I'm just guessing)
+ <slpz> of perhaps they wanted to prevent mach-defpager from the need of reading libraries, since it's used when memory is really scarce (guessing again)
diff --git a/open_issues/mig_error_reply.mdwn b/open_issues/mig_error_reply.mdwn
new file mode 100644
index 00000000..21a5b217
--- /dev/null
+++ b/open_issues/mig_error_reply.mdwn
@@ -0,0 +1,68 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!tag open_issue_mig]]
+
+\#hurd, freenode, 2010-05-19
+
+ <cfhammar> ugh, mig server stubs generated from *_reply.defs don't call the server functions when the reply is an error, since the message size is too small...
+ <cfhammar> term seems to get around it by turning of type checking
+ <cfhammar> s/of/off
+ <cfhammar> but streamio doesn't
+ <cfhammar> luckily the only other program that makes use of a *_reply.defs is crash, and crash_reply.defs' routines only return an error code so it isn't affected
+ <slpz> cfhammar: could you point me to a stub with that problem?
+ <cfhammar> slpz: trans/device_replyServer.c:_Xdevice_open_reply (in build dir)
+ <slpz> cfhammar: So, if I understand it correctly, the problem is that GNU Mach generated stub doesn't properly set the size of the message if there's an error in the function, thus the type checking in user generated stub discards the reply
+ <cfhammar> slpz: the size is correct, error messages contain just a return value
+ <cfhammar> slpz: it is the type checking that is at fault imho
+ <slpz> cfhammar: even when a server wants to return an error, the size of the message should be the same as the reply structure previously defined
+ <slpz> cfhammar: on the other hand, I can't understand why streamio is using device_open_request (async RPC) instead of device_open (sync RPC)...
+ <cfhammar> slpz: the server does not always know the proper size, e.g. when it doesn't understand the message
+ <slpz> cfhammar: what do you mean by "doesn't understand the message"?
+ <cfhammar> slpz: if it doesn't implement that interface or is the wrong type, etc.
+ <cfhammar> slpz: in that case the mig stub needs to send out a generic error reply
+ <cfhammar> slpz: i don't know why streamio uses it either
+ <slpz> cfhammar: OK, now I see your point. If the server answers with a generic error code (as MIG_*), device_open_reply will not be called, and device_open_request doesn't get an error.
+ <slpz> cfhammar: good catch :-)
+ <cfhammar> slpz: all errors are handled the same way, MIG_* is just an example of why it does so
+ <slpz> cfhammar: on an unrealted note, I think we should get rid of all asynchronous messages sent from the user to the kernel, since they aren't asynchronous except for sending the reply to a different port (the process is really done by the thread calling mach_msg)
+ <cfhammar> slpz: i'm not not all that familiar with the low-level parts of message passing so i can't really comment
+ <slpz> cfhammar: in that point I disagree. If the server function can understand the message (so there isn't a MIG_* error), it can send a reply message with the proper size
+ <cfhammar> slpz: it could, but what is the advantage if we still need to handle generic errors?
+ <cfhammar> slpz: "sending the reply to a different port", different from what?
+ <slpz> cfhammar: to differentiate between message marshalling errors and errors generated by the called function
+ <slpz> cfhammar: in a synchronous RPC, the same call to mach_msg will send the request and receive the reply by providing a mig generated reply port
+ <slpz> cfhammar: but in an asynchronous, the reply is received by a port previously generated by the function requesting the message
+ <cfhammar> slpz: ah, that's a clever optimization
+ <slpz> cfhammar: if the "asynchronous" message is sent to the kernel, the thread calling for mach_msg will execute the server's function, but the reply will be sent to one of these previously generated ports
+ <slpz> cfhammar: actually you have a synchronous operation replying to a different port. That doesn't make much sense to me :-)
+ <antrik> slpz: note that most kernel functions can be implemented by userspace servers, in which case they could be really async...
+ <cfhammar> slpz: not sure how differentiating mig errors from server errors is useful...
+ <slpz> antrik: define "most kernel functions" ;-)
+ <cfhammar> slpz: if nothing else kernel rpcs can be proxied, e.g. rpctrace
+ <slpz> cfhammar: well, think of device_open_request. If the result is not a mig error, you can still device_open_reply an expect it to properly process the return code from the message
+ <cfhammar> slpz: it should be able to handle all kinds of errors anyway, the result should be the same as with syncronous rpcs
+ <slpz> cfhammar: yes, you're right. User generated stub should be able to fill the reply with the error code and call to the reply function.
+ <slpz> cfhammar: Then someone needs to introduce some changes in MiG's magic...
+ <cfhammar> slpz: yes, a flag to generate reply side of an interface would be ideal
+ <cfhammar> slpz: then we could toss out *_reply.defs altogether
+ <slpz> cfhammar: well, that's a different change from what I was thinking
+ <cfhammar> slpz: how would you change it?
+ <slpz> cfhammar: just generating stubs which, in case of error, will properly call to the reply function with the error code in its arguments
+ <cfhammar> slpz: ah yes, i considered that as well, but i don't think mig can actually distinguish the error code from any other int argument
+ <cfhammar> slpz: i should double check it though
+ <slpz> cfhammar: I tag can be used to point to argument of this nature
+ <slpz> cfhammar: s/I/A/
+ <cfhammar> slpz: oh, it already is tagged with retcode, intresting
+ <slpz> cfhammar: OMG, I'm thinking like MiG! ;-P
+ <cfhammar> slpz: is that a good or bad ;
+ <cfhammar> slpz: ;-)
+ <slpz> cfhammar: I don't know, but it's somewhat scary ;-)
+ <cfhammar> slpz: apparently retcode is only there for comatibility, mig just ignores it...
diff --git a/open_issues/neals_hurd-misc_papers.mdwn b/open_issues/neals_hurd-misc_papers.mdwn
new file mode 100644
index 00000000..7f4e1e3b
--- /dev/null
+++ b/open_issues/neals_hurd-misc_papers.mdwn
@@ -0,0 +1,16 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!tag open_issue_documentation]]
+
+<http://walfield.org/pub/people/neal/papers/hurd-misc/>
+
+ <tschwinge> neal: We could put that into the wiki some day, I think.
+ <neal> sure
diff --git a/open_issues/open_posix_test_suite.mdwn b/open_issues/open_posix_test_suite.mdwn
new file mode 100644
index 00000000..089ea1b1
--- /dev/null
+++ b/open_issues/open_posix_test_suite.mdwn
@@ -0,0 +1,2715 @@
+[[!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="Open POSIX Test Suite"]]
+
+Here's a log of a [Open POSIX Test Suite](http://posixtest.sourceforge.net/)
+run (get sources, `make`, inspect `logfile`); this is from 2009-07-27 HEAD
+sources on a 2009-07-27 Debian GNU/Hurd system.
+
+The `logfile` has been post-processed with:
+
+ $ sed ↩
+ -e '/build: PASS$/d' ↩
+ -e '/link: PASS$/d' ↩
+ -e '/link: SKIP$/d' ↩
+ -e '/execution: PASS$/d'
+
+The tests that failed as *INTERRUPTED* were hanging and have manually been
+interrupted using `kill [PID]`.
+
+ conformance/definitions/signal_h/16-1: build: FAILED: Compiler output:
+ conformance/definitions/signal_h/16-1.c:14: error: ‘SA_SIGINFO’ undeclared here (not in a function)
+ conformance/definitions/signal_h/16-1.c:15: error: ‘SA_NOCLDWAIT’ undeclared here (not in a function)
+ conformance/definitions/signal_h/26-1: build: FAILED: Compiler output:
+ conformance/definitions/signal_h/26-1.c:9: error: expected ‘)’ before ‘int’
+ conformance/definitions/signal_h/26-1.c: In function ‘dummyfcn’:
+ conformance/definitions/signal_h/26-1.c:13: error: ‘pthread_kill_test’ undeclared (first use in this function)
+ conformance/definitions/signal_h/26-1.c:13: error: (Each undeclared identifier is reported only once
+ conformance/definitions/signal_h/26-1.c:13: error: for each function it appears in.)
+ conformance/definitions/signal_h/26-1.c:13: error: expected ‘;’ before ‘dummyvar’
+ conformance/definitions/signal_h/26-1.c:14: error: ‘dummyvar’ undeclared (first use in this function)
+ conformance/definitions/signal_h/26-1.c:14: error: ‘pthread_kill’ undeclared (first use in this function)
+ conformance/interfaces/aio_cancel/3-1: build: FAILED: Compiler output:
+ conformance/interfaces/aio_cancel/3-1.c: In function ‘main’:
+ conformance/interfaces/aio_cancel/3-1.c:96: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/aio_cancel/3-1.c:96: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/aio_cancel/3-1.c:96: error: for each function it appears in.)
+ conformance/interfaces/aio_cancel/3-1.c:97: error: ‘SIGRTMIN’ undeclared (first use in this function)
+ conformance/interfaces/aio_fsync/1-1: build: FAILED: Compiler output:
+ cc1: warnings being treated as errors
+ conformance/interfaces/aio_fsync/1-1.c: In function ‘main’:
+ conformance/interfaces/aio_fsync/1-1.c:19: error: implicit declaration of function ‘exit’
+ conformance/interfaces/aio_fsync/1-1.c:19: error: incompatible implicit declaration of built-in function ‘exit’
+ conformance/interfaces/aio_fsync/10-1: build: FAILED: Compiler output:
+ cc1: warnings being treated as errors
+ conformance/interfaces/aio_fsync/10-1.c: In function ‘main’:
+ conformance/interfaces/aio_fsync/10-1.c:33: error: implicit declaration of function ‘exit’
+ conformance/interfaces/aio_fsync/10-1.c:33: error: incompatible implicit declaration of built-in function ‘exit’
+ conformance/interfaces/aio_fsync/11-1: build: FAILED: Compiler output:
+ cc1: warnings being treated as errors
+ conformance/interfaces/aio_fsync/11-1.c: In function ‘main’:
+ conformance/interfaces/aio_fsync/11-1.c:19: error: implicit declaration of function ‘exit’
+ conformance/interfaces/aio_fsync/11-1.c:19: error: incompatible implicit declaration of built-in function ‘exit’
+ conformance/interfaces/aio_fsync/13-1: build: FAILED: Compiler output:
+ cc1: warnings being treated as errors
+ conformance/interfaces/aio_fsync/13-1.c: In function ‘main’:
+ conformance/interfaces/aio_fsync/13-1.c:19: error: implicit declaration of function ‘exit’
+ conformance/interfaces/aio_fsync/13-1.c:19: error: incompatible implicit declaration of built-in function ‘exit’
+ conformance/interfaces/aio_fsync/6-1: build: FAILED: Compiler output:
+ cc1: warnings being treated as errors
+ conformance/interfaces/aio_fsync/6-1.c: In function ‘main’:
+ conformance/interfaces/aio_fsync/6-1.c:19: error: implicit declaration of function ‘exit’
+ conformance/interfaces/aio_fsync/6-1.c:19: error: incompatible implicit declaration of built-in function ‘exit’
+ conformance/interfaces/aio_fsync/7-1: build: FAILED: Compiler output:
+ cc1: warnings being treated as errors
+ conformance/interfaces/aio_fsync/7-1.c: In function ‘main’:
+ conformance/interfaces/aio_fsync/7-1.c:19: error: implicit declaration of function ‘exit’
+ conformance/interfaces/aio_fsync/7-1.c:19: error: incompatible implicit declaration of built-in function ‘exit’
+ conformance/interfaces/aio_read/12-1: build: FAILED: Compiler output:
+ cc1: warnings being treated as errors
+ conformance/interfaces/aio_read/12-1.c: In function ‘main’:
+ conformance/interfaces/aio_read/12-1.c:34: error: implicit declaration of function ‘exit’
+ conformance/interfaces/aio_read/12-1.c:34: error: incompatible implicit declaration of built-in function ‘exit’
+ conformance/interfaces/aio_read/13-1: build: FAILED: Compiler output:
+ cc1: warnings being treated as errors
+ conformance/interfaces/aio_read/13-1.c: In function ‘main’:
+ conformance/interfaces/aio_read/13-1.c:33: error: implicit declaration of function ‘exit’
+ conformance/interfaces/aio_read/13-1.c:33: error: incompatible implicit declaration of built-in function ‘exit’
+ conformance/interfaces/aio_read/14-1: build: FAILED: Compiler output:
+ cc1: warnings being treated as errors
+ conformance/interfaces/aio_read/14-1.c: In function ‘main’:
+ conformance/interfaces/aio_read/14-1.c:34: error: implicit declaration of function ‘exit’
+ conformance/interfaces/aio_read/14-1.c:34: error: incompatible implicit declaration of built-in function ‘exit’
+ conformance/interfaces/aio_read/15-1: build: FAILED: Compiler output:
+ cc1: warnings being treated as errors
+ conformance/interfaces/aio_read/15-1.c: In function ‘main’:
+ conformance/interfaces/aio_read/15-1.c:30: error: implicit declaration of function ‘exit’
+ conformance/interfaces/aio_read/15-1.c:30: error: incompatible implicit declaration of built-in function ‘exit’
+ conformance/interfaces/aio_read/6-1: build: FAILED: Compiler output:
+ cc1: warnings being treated as errors
+ conformance/interfaces/aio_read/6-1.c: In function ‘main’:
+ conformance/interfaces/aio_read/6-1.c:30: error: implicit declaration of function ‘exit’
+ conformance/interfaces/aio_read/6-1.c:30: error: incompatible implicit declaration of built-in function ‘exit’
+ conformance/interfaces/aio_suspend/1-1: build: FAILED: Compiler output:
+ conformance/interfaces/aio_suspend/1-1.c: In function ‘main’:
+ conformance/interfaces/aio_suspend/1-1.c:120: error: ‘SIGRTMIN’ undeclared (first use in this function)
+ conformance/interfaces/aio_suspend/1-1.c:120: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/aio_suspend/1-1.c:120: error: for each function it appears in.)
+ conformance/interfaces/aio_suspend/1-1.c:126: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/aio_suspend/2-1: build: FAILED: Compiler output:
+ cc1: warnings being treated as errors
+ conformance/interfaces/aio_suspend/2-1.c: In function ‘main’:
+ conformance/interfaces/aio_suspend/2-1.c:31: error: implicit declaration of function ‘exit’
+ conformance/interfaces/aio_suspend/2-1.c:31: error: incompatible implicit declaration of built-in function ‘exit’
+ conformance/interfaces/aio_suspend/6-1: build: FAILED: Compiler output:
+ conformance/interfaces/aio_suspend/6-1.c: In function ‘main’:
+ conformance/interfaces/aio_suspend/6-1.c:116: error: ‘SIGRTMIN’ undeclared (first use in this function)
+ conformance/interfaces/aio_suspend/6-1.c:116: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/aio_suspend/6-1.c:116: error: for each function it appears in.)
+ conformance/interfaces/aio_suspend/6-1.c:122: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/aio_suspend/7-1: build: FAILED: Compiler output:
+ conformance/interfaces/aio_suspend/7-1.c: In function ‘main’:
+ conformance/interfaces/aio_suspend/7-1.c:118: error: ‘SIGRTMIN’ undeclared (first use in this function)
+ conformance/interfaces/aio_suspend/7-1.c:118: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/aio_suspend/7-1.c:118: error: for each function it appears in.)
+ conformance/interfaces/aio_suspend/7-1.c:124: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/aio_suspend/8-1: build: FAILED: Compiler output:
+ conformance/interfaces/aio_suspend/8-1.c: In function ‘main’:
+ conformance/interfaces/aio_suspend/8-1.c:121: error: ‘SIGRTMIN’ undeclared (first use in this function)
+ conformance/interfaces/aio_suspend/8-1.c:121: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/aio_suspend/8-1.c:121: error: for each function it appears in.)
+ conformance/interfaces/aio_suspend/8-1.c:127: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/aio_write/10-1: build: FAILED: Compiler output:
+ cc1: warnings being treated as errors
+ conformance/interfaces/aio_write/10-1.c: In function ‘main’:
+ conformance/interfaces/aio_write/10-1.c:32: error: implicit declaration of function ‘exit’
+ conformance/interfaces/aio_write/10-1.c:32: error: incompatible implicit declaration of built-in function ‘exit’
+ conformance/interfaces/aio_write/11-1: build: FAILED: Compiler output:
+ cc1: warnings being treated as errors
+ conformance/interfaces/aio_write/11-1.c: In function ‘main’:
+ conformance/interfaces/aio_write/11-1.c:32: error: implicit declaration of function ‘exit’
+ conformance/interfaces/aio_write/11-1.c:32: error: incompatible implicit declaration of built-in function ‘exit’
+ conformance/interfaces/aio_write/12-1: build: FAILED: Compiler output:
+ cc1: warnings being treated as errors
+ conformance/interfaces/aio_write/12-1.c: In function ‘main’:
+ conformance/interfaces/aio_write/12-1.c:31: error: implicit declaration of function ‘exit’
+ conformance/interfaces/aio_write/12-1.c:31: error: incompatible implicit declaration of built-in function ‘exit’
+ conformance/interfaces/aio_write/13-1: build: FAILED: Compiler output:
+ cc1: warnings being treated as errors
+ conformance/interfaces/aio_write/13-1.c: In function ‘main’:
+ conformance/interfaces/aio_write/13-1.c:30: error: implicit declaration of function ‘exit’
+ conformance/interfaces/aio_write/13-1.c:30: error: incompatible implicit declaration of built-in function ‘exit’
+ conformance/interfaces/aio_write/4-1: build: FAILED: Compiler output:
+ cc1: warnings being treated as errors
+ conformance/interfaces/aio_write/4-1.c: In function ‘main’:
+ conformance/interfaces/aio_write/4-1.c:30: error: implicit declaration of function ‘exit’
+ conformance/interfaces/aio_write/4-1.c:30: error: incompatible implicit declaration of built-in function ‘exit’
+ conformance/interfaces/fork/2-1: build: FAILED: Compiler output:
+ conformance/interfaces/fork/2-1.c: In function ‘main’:
+ conformance/interfaces/fork/2-1.c:240: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/fork/2-1.c:240: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/fork/2-1.c:240: error: for each function it appears in.)
+ conformance/interfaces/fork/2-1.c:241: error: ‘SA_NOCLDWAIT’ undeclared (first use in this function)
+ conformance/interfaces/lio_listio/1-1: build: FAILED: Compiler output:
+ conformance/interfaces/lio_listio/1-1.c: In function ‘main’:
+ conformance/interfaces/lio_listio/1-1.c:110: error: ‘SIGRTMIN’ undeclared (first use in this function)
+ conformance/interfaces/lio_listio/1-1.c:110: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/lio_listio/1-1.c:110: error: for each function it appears in.)
+ conformance/interfaces/lio_listio/1-1.c:122: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/lio_listio/10-1: build: FAILED: Compiler output:
+ conformance/interfaces/lio_listio/10-1.c: In function ‘main’:
+ conformance/interfaces/lio_listio/10-1.c:107: error: ‘SIGRTMIN’ undeclared (first use in this function)
+ conformance/interfaces/lio_listio/10-1.c:107: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/lio_listio/10-1.c:107: error: for each function it appears in.)
+ conformance/interfaces/lio_listio/10-1.c:119: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/lio_listio/11-1: build: FAILED: Compiler output:
+ conformance/interfaces/lio_listio/11-1.c: In function ‘main’:
+ conformance/interfaces/lio_listio/11-1.c:111: error: ‘SIGRTMIN’ undeclared (first use in this function)
+ conformance/interfaces/lio_listio/11-1.c:111: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/lio_listio/11-1.c:111: error: for each function it appears in.)
+ conformance/interfaces/lio_listio/11-1.c:123: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/lio_listio/14-1: build: FAILED: Compiler output:
+ conformance/interfaces/lio_listio/14-1.c: In function ‘main’:
+ conformance/interfaces/lio_listio/14-1.c:111: error: ‘SIGRTMIN’ undeclared (first use in this function)
+ conformance/interfaces/lio_listio/14-1.c:111: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/lio_listio/14-1.c:111: error: for each function it appears in.)
+ conformance/interfaces/lio_listio/14-1.c:123: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/lio_listio/15-1: build: FAILED: Compiler output:
+ conformance/interfaces/lio_listio/15-1.c: In function ‘main’:
+ conformance/interfaces/lio_listio/15-1.c:111: error: ‘SIGRTMIN’ undeclared (first use in this function)
+ conformance/interfaces/lio_listio/15-1.c:111: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/lio_listio/15-1.c:111: error: for each function it appears in.)
+ conformance/interfaces/lio_listio/15-1.c:123: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/lio_listio/16-1: build: FAILED: Compiler output:
+ cc1: warnings being treated as errors
+ conformance/interfaces/lio_listio/16-1.c: In function ‘main’:
+ conformance/interfaces/lio_listio/16-1.c:32: error: implicit declaration of function ‘exit’
+ conformance/interfaces/lio_listio/16-1.c:32: error: incompatible implicit declaration of built-in function ‘exit’
+ conformance/interfaces/lio_listio/17-1: build: FAILED: Compiler output:
+ cc1: warnings being treated as errors
+ conformance/interfaces/lio_listio/17-1.c: In function ‘main’:
+ conformance/interfaces/lio_listio/17-1.c:19: error: implicit declaration of function ‘exit’
+ conformance/interfaces/lio_listio/17-1.c:19: error: incompatible implicit declaration of built-in function ‘exit’
+ conformance/interfaces/lio_listio/19-1: build: FAILED: Compiler output:
+ cc1: warnings being treated as errors
+ conformance/interfaces/lio_listio/19-1.c: In function ‘main’:
+ conformance/interfaces/lio_listio/19-1.c:19: error: implicit declaration of function ‘exit’
+ conformance/interfaces/lio_listio/19-1.c:19: error: incompatible implicit declaration of built-in function ‘exit’
+ conformance/interfaces/lio_listio/2-1: build: FAILED: Compiler output:
+ conformance/interfaces/lio_listio/2-1.c: In function ‘main’:
+ conformance/interfaces/lio_listio/2-1.c:106: error: ‘SIGRTMIN’ undeclared (first use in this function)
+ conformance/interfaces/lio_listio/2-1.c:106: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/lio_listio/2-1.c:106: error: for each function it appears in.)
+ conformance/interfaces/lio_listio/2-1.c:118: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/lio_listio/20-1: build: FAILED: Compiler output:
+ cc1: warnings being treated as errors
+ conformance/interfaces/lio_listio/20-1.c: In function ‘main’:
+ conformance/interfaces/lio_listio/20-1.c:19: error: implicit declaration of function ‘exit’
+ conformance/interfaces/lio_listio/20-1.c:19: error: incompatible implicit declaration of built-in function ‘exit’
+ conformance/interfaces/lio_listio/21-1: build: FAILED: Compiler output:
+ cc1: warnings being treated as errors
+ conformance/interfaces/lio_listio/21-1.c: In function ‘main’:
+ conformance/interfaces/lio_listio/21-1.c:19: error: implicit declaration of function ‘exit’
+ conformance/interfaces/lio_listio/21-1.c:19: error: incompatible implicit declaration of built-in function ‘exit’
+ conformance/interfaces/lio_listio/22-1: build: FAILED: Compiler output:
+ cc1: warnings being treated as errors
+ conformance/interfaces/lio_listio/22-1.c: In function ‘main’:
+ conformance/interfaces/lio_listio/22-1.c:19: error: implicit declaration of function ‘exit’
+ conformance/interfaces/lio_listio/22-1.c:19: error: incompatible implicit declaration of built-in function ‘exit’
+ conformance/interfaces/lio_listio/23-1: build: FAILED: Compiler output:
+ cc1: warnings being treated as errors
+ conformance/interfaces/lio_listio/23-1.c: In function ‘main’:
+ conformance/interfaces/lio_listio/23-1.c:19: error: implicit declaration of function ‘exit’
+ conformance/interfaces/lio_listio/23-1.c:19: error: incompatible implicit declaration of built-in function ‘exit’
+ conformance/interfaces/lio_listio/24-1: build: FAILED: Compiler output:
+ cc1: warnings being treated as errors
+ conformance/interfaces/lio_listio/24-1.c: In function ‘main’:
+ conformance/interfaces/lio_listio/24-1.c:19: error: implicit declaration of function ‘exit’
+ conformance/interfaces/lio_listio/24-1.c:19: error: incompatible implicit declaration of built-in function ‘exit’
+ conformance/interfaces/lio_listio/25-1: build: FAILED: Compiler output:
+ cc1: warnings being treated as errors
+ conformance/interfaces/lio_listio/25-1.c: In function ‘main’:
+ conformance/interfaces/lio_listio/25-1.c:19: error: implicit declaration of function ‘exit’
+ conformance/interfaces/lio_listio/25-1.c:19: error: incompatible implicit declaration of built-in function ‘exit’
+ conformance/interfaces/lio_listio/3-1: build: FAILED: Compiler output:
+ conformance/interfaces/lio_listio/3-1.c: In function ‘main’:
+ conformance/interfaces/lio_listio/3-1.c:107: error: ‘SIGRTMIN’ undeclared (first use in this function)
+ conformance/interfaces/lio_listio/3-1.c:107: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/lio_listio/3-1.c:107: error: for each function it appears in.)
+ conformance/interfaces/lio_listio/3-1.c:119: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/lio_listio/4-1: build: FAILED: Compiler output:
+ conformance/interfaces/lio_listio/4-1.c: In function ‘main’:
+ conformance/interfaces/lio_listio/4-1.c:114: error: ‘SIGRTMIN’ undeclared (first use in this function)
+ conformance/interfaces/lio_listio/4-1.c:114: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/lio_listio/4-1.c:114: error: for each function it appears in.)
+ conformance/interfaces/lio_listio/4-1.c:126: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/lio_listio/7-1: build: FAILED: Compiler output:
+ conformance/interfaces/lio_listio/7-1.c: In function ‘main’:
+ conformance/interfaces/lio_listio/7-1.c:113: error: ‘SIGRTMIN’ undeclared (first use in this function)
+ conformance/interfaces/lio_listio/7-1.c:113: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/lio_listio/7-1.c:113: error: for each function it appears in.)
+ conformance/interfaces/lio_listio/7-1.c:125: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/mq_open/27-1: build: FAILED: Compiler output:
+ conformance/interfaces/mq_open/27-1.c: In function ‘main’:
+ conformance/interfaces/mq_open/27-1.c:27: error: ‘PATH_MAX’ undeclared (first use in this function)
+ conformance/interfaces/mq_open/27-1.c:27: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/mq_open/27-1.c:27: error: for each function it appears in.)
+ cc1: warnings being treated as errors
+ conformance/interfaces/mq_open/27-1.c:27: error: unused variable ‘qname’
+ conformance/interfaces/mq_send/13-1: build: FAILED: Compiler output:
+ conformance/interfaces/mq_send/13-1.c:30: error: ‘MQ_PRIO_MAX’ undeclared here (not in a function)
+ conformance/interfaces/mq_send/4-1: build: FAILED: Compiler output:
+ conformance/interfaces/mq_send/4-1.c: In function ‘main’:
+ conformance/interfaces/mq_send/4-1.c:41: error: ‘MQ_PRIO_MAX’ undeclared (first use in this function)
+ conformance/interfaces/mq_send/4-1.c:41: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/mq_send/4-1.c:41: error: for each function it appears in.)
+ conformance/interfaces/mq_send/4-2: build: FAILED: Compiler output:
+ conformance/interfaces/mq_send/4-2.c: In function ‘main’:
+ conformance/interfaces/mq_send/4-2.c:41: error: ‘MQ_PRIO_MAX’ undeclared (first use in this function)
+ conformance/interfaces/mq_send/4-2.c:41: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/mq_send/4-2.c:41: error: for each function it appears in.)
+ conformance/interfaces/mq_send/4-3: build: FAILED: Compiler output:
+ conformance/interfaces/mq_send/4-3.c: In function ‘main’:
+ conformance/interfaces/mq_send/4-3.c:51: error: ‘MQ_PRIO_MAX’ undeclared (first use in this function)
+ conformance/interfaces/mq_send/4-3.c:51: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/mq_send/4-3.c:51: error: for each function it appears in.)
+ conformance/interfaces/mq_send/7-1: build: FAILED: Compiler output:
+ conformance/interfaces/mq_send/7-1.c: In function ‘main’:
+ conformance/interfaces/mq_send/7-1.c:60: error: ‘MQ_PRIO_MAX’ undeclared (first use in this function)
+ conformance/interfaces/mq_send/7-1.c:60: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/mq_send/7-1.c:60: error: for each function it appears in.)
+ conformance/interfaces/mq_timedsend/13-1: build: FAILED: Compiler output:
+ conformance/interfaces/mq_timedsend/13-1.c:31: error: ‘MQ_PRIO_MAX’ undeclared here (not in a function)
+ conformance/interfaces/mq_timedsend/4-1: build: FAILED: Compiler output:
+ conformance/interfaces/mq_timedsend/4-1.c: In function ‘main’:
+ conformance/interfaces/mq_timedsend/4-1.c:45: error: ‘MQ_PRIO_MAX’ undeclared (first use in this function)
+ conformance/interfaces/mq_timedsend/4-1.c:45: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/mq_timedsend/4-1.c:45: error: for each function it appears in.)
+ conformance/interfaces/mq_timedsend/4-2: build: FAILED: Compiler output:
+ conformance/interfaces/mq_timedsend/4-2.c: In function ‘main’:
+ conformance/interfaces/mq_timedsend/4-2.c:45: error: ‘MQ_PRIO_MAX’ undeclared (first use in this function)
+ conformance/interfaces/mq_timedsend/4-2.c:45: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/mq_timedsend/4-2.c:45: error: for each function it appears in.)
+ conformance/interfaces/mq_timedsend/4-3: build: FAILED: Compiler output:
+ conformance/interfaces/mq_timedsend/4-3.c: In function ‘main’:
+ conformance/interfaces/mq_timedsend/4-3.c:55: error: ‘MQ_PRIO_MAX’ undeclared (first use in this function)
+ conformance/interfaces/mq_timedsend/4-3.c:55: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/mq_timedsend/4-3.c:55: error: for each function it appears in.)
+ conformance/interfaces/pthread_attr_getstack/1-1: build: FAILED: Compiler output:
+ conformance/interfaces/pthread_attr_getstack/1-1.c: In function ‘main’:
+ conformance/interfaces/pthread_attr_getstack/1-1.c:54: error: ‘PTHREAD_STACK_MIN’ undeclared (first use in this function)
+ conformance/interfaces/pthread_attr_getstack/1-1.c:54: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/pthread_attr_getstack/1-1.c:54: error: for each function it appears in.)
+ conformance/interfaces/pthread_attr_getstacksize/1-1: build: FAILED: Compiler output:
+ conformance/interfaces/pthread_attr_getstacksize/1-1.c: In function ‘main’:
+ conformance/interfaces/pthread_attr_getstacksize/1-1.c:53: error: ‘PTHREAD_STACK_MIN’ undeclared (first use in this function)
+ conformance/interfaces/pthread_attr_getstacksize/1-1.c:53: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/pthread_attr_getstacksize/1-1.c:53: error: for each function it appears in.)
+ conformance/interfaces/pthread_attr_setstack/1-1: build: FAILED: Compiler output:
+ conformance/interfaces/pthread_attr_setstack/1-1.c: In function ‘main’:
+ conformance/interfaces/pthread_attr_setstack/1-1.c:63: error: ‘PTHREAD_STACK_MIN’ undeclared (first use in this function)
+ conformance/interfaces/pthread_attr_setstack/1-1.c:63: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/pthread_attr_setstack/1-1.c:63: error: for each function it appears in.)
+ conformance/interfaces/pthread_attr_setstack/2-1: build: FAILED: Compiler output:
+ conformance/interfaces/pthread_attr_setstack/2-1.c: In function ‘main’:
+ conformance/interfaces/pthread_attr_setstack/2-1.c:90: error: ‘PTHREAD_STACK_MIN’ undeclared (first use in this function)
+ conformance/interfaces/pthread_attr_setstack/2-1.c:90: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/pthread_attr_setstack/2-1.c:90: error: for each function it appears in.)
+ conformance/interfaces/pthread_attr_setstack/4-1: build: FAILED: Compiler output:
+ conformance/interfaces/pthread_attr_setstack/4-1.c: In function ‘main’:
+ conformance/interfaces/pthread_attr_setstack/4-1.c:73: error: ‘PTHREAD_STACK_MIN’ undeclared (first use in this function)
+ conformance/interfaces/pthread_attr_setstack/4-1.c:73: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/pthread_attr_setstack/4-1.c:73: error: for each function it appears in.)
+ conformance/interfaces/pthread_attr_setstack/6-1: build: FAILED: Compiler output:
+ conformance/interfaces/pthread_attr_setstack/6-1.c: In function ‘main’:
+ conformance/interfaces/pthread_attr_setstack/6-1.c:59: error: ‘PTHREAD_STACK_MIN’ undeclared (first use in this function)
+ conformance/interfaces/pthread_attr_setstack/6-1.c:59: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/pthread_attr_setstack/6-1.c:59: error: for each function it appears in.)
+ conformance/interfaces/pthread_attr_setstack/7-1: build: FAILED: Compiler output:
+ conformance/interfaces/pthread_attr_setstack/7-1.c: In function ‘main’:
+ conformance/interfaces/pthread_attr_setstack/7-1.c:60: error: ‘PTHREAD_STACK_MIN’ undeclared (first use in this function)
+ conformance/interfaces/pthread_attr_setstack/7-1.c:60: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/pthread_attr_setstack/7-1.c:60: error: for each function it appears in.)
+ conformance/interfaces/pthread_attr_setstacksize/1-1: build: FAILED: Compiler output:
+ conformance/interfaces/pthread_attr_setstacksize/1-1.c: In function ‘main’:
+ conformance/interfaces/pthread_attr_setstacksize/1-1.c:41: error: ‘PTHREAD_STACK_MIN’ undeclared (first use in this function)
+ conformance/interfaces/pthread_attr_setstacksize/1-1.c:41: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/pthread_attr_setstacksize/1-1.c:41: error: for each function it appears in.)
+ conformance/interfaces/pthread_attr_setstacksize/2-1: build: FAILED: Compiler output:
+ conformance/interfaces/pthread_attr_setstacksize/2-1.c: In function ‘main’:
+ conformance/interfaces/pthread_attr_setstacksize/2-1.c:79: error: ‘PTHREAD_STACK_MIN’ undeclared (first use in this function)
+ conformance/interfaces/pthread_attr_setstacksize/2-1.c:79: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/pthread_attr_setstacksize/2-1.c:79: error: for each function it appears in.)
+ conformance/interfaces/pthread_attr_setstacksize/4-1: build: FAILED: Compiler output:
+ conformance/interfaces/pthread_attr_setstacksize/4-1.c: In function ‘main’:
+ conformance/interfaces/pthread_attr_setstacksize/4-1.c:50: error: ‘PTHREAD_STACK_MIN’ undeclared (first use in this function)
+ conformance/interfaces/pthread_attr_setstacksize/4-1.c:50: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/pthread_attr_setstacksize/4-1.c:50: error: for each function it appears in.)
+ conformance/interfaces/pthread_key_create/speculative/5-1: build: FAILED: Compiler output:
+ conformance/interfaces/pthread_key_create/speculative/5-1.c:37: error: ‘PTHREAD_KEYS_MAX’ undeclared here (not in a function)
+ conformance/interfaces/pthread_once/3-1: build: FAILED: Compiler output:
+ conformance/interfaces/pthread_once/3-1.c: In function ‘main’:
+ conformance/interfaces/pthread_once/3-1.c:71: error: expected expression before ‘{’ token
+ conformance/interfaces/pthread_once/6-1: build: FAILED: Compiler output:
+ conformance/interfaces/pthread_once/6-1.c: In function ‘test’:
+ conformance/interfaces/pthread_once/6-1.c:199: error: expected expression before ‘{’ token
+ conformance/interfaces/sched_yield/1-1: build: FAILED: Compiler output:
+ cc1: warnings being treated as errors
+ conformance/interfaces/sched_yield/1-1.c: In function ‘set_process_affinity’:
+ conformance/interfaces/sched_yield/1-1.c:87: error: implicit declaration of function ‘__CPU_ZERO_S’
+ conformance/interfaces/sched_yield/1-1.c:89: error: implicit declaration of function ‘__CPU_SET_S’
+ conformance/interfaces/sched_yield/1-1.c: In function ‘set_thread_affinity’:
+ conformance/interfaces/sched_yield/1-1.c:119: error: implicit declaration of function ‘pthread_setaffinity_np’
+ conformance/interfaces/sched_yield/1-1.c: In function ‘runner’:
+ conformance/interfaces/sched_yield/1-1.c:136: error: format ‘%ld’ expects type ‘long int’, but argument 3 has type ‘pthread_t’
+ conformance/interfaces/sched_yield/1-1.c: In function ‘busy_thread’:
+ conformance/interfaces/sched_yield/1-1.c:159: error: format ‘%ld’ expects type ‘long int’, but argument 3 has type ‘pthread_t’
+ conformance/interfaces/sem_init/6-1: build: FAILED: Compiler output:
+ conformance/interfaces/sem_init/6-1.c: In function ‘main’:
+ conformance/interfaces/sem_init/6-1.c:29: error: ‘SEM_VALUE_MAX’ undeclared (first use in this function)
+ conformance/interfaces/sem_init/6-1.c:29: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sem_init/6-1.c:29: error: for each function it appears in.)
+ conformance/interfaces/sem_open/5-1: build: FAILED: Compiler output:
+ conformance/interfaces/sem_open/5-1.c: In function ‘main’:
+ conformance/interfaces/sem_open/5-1.c:32: error: ‘SEM_VALUE_MAX’ undeclared (first use in this function)
+ conformance/interfaces/sem_open/5-1.c:32: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sem_open/5-1.c:32: error: for each function it appears in.)
+ conformance/interfaces/sigaction/10-1: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/10-1.c: In function ‘main’:
+ conformance/interfaces/sigaction/10-1.c:41: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/10-1.c:41: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/10-1.c:41: error: for each function it appears in.)
+ conformance/interfaces/sigaction/11-1: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/11-1.c: In function ‘main’:
+ conformance/interfaces/sigaction/11-1.c:50: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/11-1.c:50: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/11-1.c:50: error: for each function it appears in.)
+ conformance/interfaces/sigaction/19-1: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/19-1.c: In function ‘main’:
+ conformance/interfaces/sigaction/19-1.c:117: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/19-1.c:117: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/19-1.c:117: error: for each function it appears in.)
+ conformance/interfaces/sigaction/19-10: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/19-10.c: In function ‘main’:
+ conformance/interfaces/sigaction/19-10.c:117: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/19-10.c:117: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/19-10.c:117: error: for each function it appears in.)
+ conformance/interfaces/sigaction/19-11: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/19-11.c: In function ‘main’:
+ conformance/interfaces/sigaction/19-11.c:117: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/19-11.c:117: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/19-11.c:117: error: for each function it appears in.)
+ conformance/interfaces/sigaction/19-12: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/19-12.c: In function ‘main’:
+ conformance/interfaces/sigaction/19-12.c:117: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/19-12.c:117: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/19-12.c:117: error: for each function it appears in.)
+ conformance/interfaces/sigaction/19-13: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/19-13.c: In function ‘main’:
+ conformance/interfaces/sigaction/19-13.c:117: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/19-13.c:117: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/19-13.c:117: error: for each function it appears in.)
+ conformance/interfaces/sigaction/19-14: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/19-14.c: In function ‘main’:
+ conformance/interfaces/sigaction/19-14.c:117: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/19-14.c:117: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/19-14.c:117: error: for each function it appears in.)
+ conformance/interfaces/sigaction/19-15: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/19-15.c: In function ‘main’:
+ conformance/interfaces/sigaction/19-15.c:117: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/19-15.c:117: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/19-15.c:117: error: for each function it appears in.)
+ conformance/interfaces/sigaction/19-16: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/19-16.c: In function ‘main’:
+ conformance/interfaces/sigaction/19-16.c:117: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/19-16.c:117: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/19-16.c:117: error: for each function it appears in.)
+ conformance/interfaces/sigaction/19-17: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/19-17.c: In function ‘main’:
+ conformance/interfaces/sigaction/19-17.c:117: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/19-17.c:117: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/19-17.c:117: error: for each function it appears in.)
+ conformance/interfaces/sigaction/19-18: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/19-18.c: In function ‘main’:
+ conformance/interfaces/sigaction/19-18.c:117: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/19-18.c:117: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/19-18.c:117: error: for each function it appears in.)
+ conformance/interfaces/sigaction/19-19: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/19-19.c: In function ‘main’:
+ conformance/interfaces/sigaction/19-19.c:117: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/19-19.c:117: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/19-19.c:117: error: for each function it appears in.)
+ conformance/interfaces/sigaction/19-2: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/19-2.c: In function ‘main’:
+ conformance/interfaces/sigaction/19-2.c:117: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/19-2.c:117: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/19-2.c:117: error: for each function it appears in.)
+ conformance/interfaces/sigaction/19-20: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/19-20.c: In function ‘main’:
+ conformance/interfaces/sigaction/19-20.c:117: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/19-20.c:117: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/19-20.c:117: error: for each function it appears in.)
+ conformance/interfaces/sigaction/19-21: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/19-21.c: In function ‘main’:
+ conformance/interfaces/sigaction/19-21.c:117: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/19-21.c:117: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/19-21.c:117: error: for each function it appears in.)
+ conformance/interfaces/sigaction/19-22: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/19-22.c: In function ‘main’:
+ conformance/interfaces/sigaction/19-22.c:117: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/19-22.c:117: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/19-22.c:117: error: for each function it appears in.)
+ conformance/interfaces/sigaction/19-23: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/19-23.c: In function ‘main’:
+ conformance/interfaces/sigaction/19-23.c:117: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/19-23.c:117: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/19-23.c:117: error: for each function it appears in.)
+ conformance/interfaces/sigaction/19-24: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/19-24.c: In function ‘main’:
+ conformance/interfaces/sigaction/19-24.c:117: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/19-24.c:117: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/19-24.c:117: error: for each function it appears in.)
+ conformance/interfaces/sigaction/19-25: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/19-25.c: In function ‘main’:
+ conformance/interfaces/sigaction/19-25.c:117: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/19-25.c:117: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/19-25.c:117: error: for each function it appears in.)
+ conformance/interfaces/sigaction/19-26: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/19-26.c: In function ‘main’:
+ conformance/interfaces/sigaction/19-26.c:117: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/19-26.c:117: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/19-26.c:117: error: for each function it appears in.)
+ conformance/interfaces/sigaction/19-3: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/19-3.c: In function ‘main’:
+ conformance/interfaces/sigaction/19-3.c:117: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/19-3.c:117: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/19-3.c:117: error: for each function it appears in.)
+ conformance/interfaces/sigaction/19-4: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/19-4.c: In function ‘main’:
+ conformance/interfaces/sigaction/19-4.c:117: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/19-4.c:117: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/19-4.c:117: error: for each function it appears in.)
+ conformance/interfaces/sigaction/19-5: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/19-5.c: In function ‘main’:
+ conformance/interfaces/sigaction/19-5.c:117: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/19-5.c:117: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/19-5.c:117: error: for each function it appears in.)
+ conformance/interfaces/sigaction/19-6: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/19-6.c: In function ‘main’:
+ conformance/interfaces/sigaction/19-6.c:117: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/19-6.c:117: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/19-6.c:117: error: for each function it appears in.)
+ conformance/interfaces/sigaction/19-7: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/19-7.c: In function ‘main’:
+ conformance/interfaces/sigaction/19-7.c:117: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/19-7.c:117: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/19-7.c:117: error: for each function it appears in.)
+ conformance/interfaces/sigaction/19-8: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/19-8.c: In function ‘main’:
+ conformance/interfaces/sigaction/19-8.c:117: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/19-8.c:117: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/19-8.c:117: error: for each function it appears in.)
+ conformance/interfaces/sigaction/19-9: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/19-9.c: In function ‘main’:
+ conformance/interfaces/sigaction/19-9.c:117: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/19-9.c:117: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/19-9.c:117: error: for each function it appears in.)
+ conformance/interfaces/sigaction/21-1: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/21-1.c: In function ‘main’:
+ conformance/interfaces/sigaction/21-1.c:36: error: ‘SA_NOCLDWAIT’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/21-1.c:36: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/21-1.c:36: error: for each function it appears in.)
+ conformance/interfaces/sigaction/29-1: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/29-1.c: In function ‘handler’:
+ conformance/interfaces/sigaction/29-1.c:95: error: ‘SIGRTMAX’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/29-1.c:95: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/29-1.c:95: error: for each function it appears in.)
+ conformance/interfaces/sigaction/29-1.c: In function ‘main’:
+ conformance/interfaces/sigaction/29-1.c:133: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/29-1.c:145: error: ‘SIGRTMAX’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/30-1: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/30-1.c: In function ‘main’:
+ conformance/interfaces/sigaction/30-1.c:117: error: ‘SIGRTMAX’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/30-1.c:117: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/30-1.c:117: error: for each function it appears in.)
+ conformance/interfaces/sigaction/6-1: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/6-1.c: In function ‘main’:
+ conformance/interfaces/sigaction/6-1.c:34: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/6-1.c:34: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/6-1.c:34: error: for each function it appears in.)
+ conformance/interfaces/sigaction/6-10: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/6-10.c: In function ‘main’:
+ conformance/interfaces/sigaction/6-10.c:34: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/6-10.c:34: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/6-10.c:34: error: for each function it appears in.)
+ conformance/interfaces/sigaction/6-11: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/6-11.c: In function ‘main’:
+ conformance/interfaces/sigaction/6-11.c:34: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/6-11.c:34: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/6-11.c:34: error: for each function it appears in.)
+ conformance/interfaces/sigaction/6-12: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/6-12.c: In function ‘main’:
+ conformance/interfaces/sigaction/6-12.c:34: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/6-12.c:34: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/6-12.c:34: error: for each function it appears in.)
+ conformance/interfaces/sigaction/6-13: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/6-13.c: In function ‘main’:
+ conformance/interfaces/sigaction/6-13.c:34: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/6-13.c:34: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/6-13.c:34: error: for each function it appears in.)
+ conformance/interfaces/sigaction/6-14: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/6-14.c: In function ‘main’:
+ conformance/interfaces/sigaction/6-14.c:34: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/6-14.c:34: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/6-14.c:34: error: for each function it appears in.)
+ conformance/interfaces/sigaction/6-15: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/6-15.c: In function ‘main’:
+ conformance/interfaces/sigaction/6-15.c:34: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/6-15.c:34: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/6-15.c:34: error: for each function it appears in.)
+ conformance/interfaces/sigaction/6-16: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/6-16.c: In function ‘main’:
+ conformance/interfaces/sigaction/6-16.c:34: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/6-16.c:34: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/6-16.c:34: error: for each function it appears in.)
+ conformance/interfaces/sigaction/6-17: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/6-17.c: In function ‘main’:
+ conformance/interfaces/sigaction/6-17.c:34: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/6-17.c:34: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/6-17.c:34: error: for each function it appears in.)
+ conformance/interfaces/sigaction/6-18: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/6-18.c: In function ‘main’:
+ conformance/interfaces/sigaction/6-18.c:34: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/6-18.c:34: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/6-18.c:34: error: for each function it appears in.)
+ conformance/interfaces/sigaction/6-19: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/6-19.c: In function ‘main’:
+ conformance/interfaces/sigaction/6-19.c:34: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/6-19.c:34: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/6-19.c:34: error: for each function it appears in.)
+ conformance/interfaces/sigaction/6-2: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/6-2.c: In function ‘main’:
+ conformance/interfaces/sigaction/6-2.c:34: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/6-2.c:34: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/6-2.c:34: error: for each function it appears in.)
+ conformance/interfaces/sigaction/6-20: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/6-20.c: In function ‘main’:
+ conformance/interfaces/sigaction/6-20.c:34: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/6-20.c:34: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/6-20.c:34: error: for each function it appears in.)
+ conformance/interfaces/sigaction/6-21: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/6-21.c: In function ‘main’:
+ conformance/interfaces/sigaction/6-21.c:34: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/6-21.c:34: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/6-21.c:34: error: for each function it appears in.)
+ conformance/interfaces/sigaction/6-22: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/6-22.c: In function ‘main’:
+ conformance/interfaces/sigaction/6-22.c:34: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/6-22.c:34: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/6-22.c:34: error: for each function it appears in.)
+ conformance/interfaces/sigaction/6-23: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/6-23.c: In function ‘main’:
+ conformance/interfaces/sigaction/6-23.c:34: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/6-23.c:34: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/6-23.c:34: error: for each function it appears in.)
+ conformance/interfaces/sigaction/6-24: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/6-24.c: In function ‘main’:
+ conformance/interfaces/sigaction/6-24.c:34: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/6-24.c:34: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/6-24.c:34: error: for each function it appears in.)
+ conformance/interfaces/sigaction/6-25: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/6-25.c: In function ‘main’:
+ conformance/interfaces/sigaction/6-25.c:34: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/6-25.c:34: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/6-25.c:34: error: for each function it appears in.)
+ conformance/interfaces/sigaction/6-26: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/6-26.c: In function ‘main’:
+ conformance/interfaces/sigaction/6-26.c:34: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/6-26.c:34: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/6-26.c:34: error: for each function it appears in.)
+ conformance/interfaces/sigaction/6-3: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/6-3.c: In function ‘main’:
+ conformance/interfaces/sigaction/6-3.c:34: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/6-3.c:34: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/6-3.c:34: error: for each function it appears in.)
+ conformance/interfaces/sigaction/6-4: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/6-4.c: In function ‘main’:
+ conformance/interfaces/sigaction/6-4.c:34: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/6-4.c:34: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/6-4.c:34: error: for each function it appears in.)
+ conformance/interfaces/sigaction/6-5: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/6-5.c: In function ‘main’:
+ conformance/interfaces/sigaction/6-5.c:34: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/6-5.c:34: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/6-5.c:34: error: for each function it appears in.)
+ conformance/interfaces/sigaction/6-6: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/6-6.c: In function ‘main’:
+ conformance/interfaces/sigaction/6-6.c:34: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/6-6.c:34: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/6-6.c:34: error: for each function it appears in.)
+ conformance/interfaces/sigaction/6-7: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/6-7.c: In function ‘main’:
+ conformance/interfaces/sigaction/6-7.c:34: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/6-7.c:34: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/6-7.c:34: error: for each function it appears in.)
+ conformance/interfaces/sigaction/6-8: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/6-8.c: In function ‘main’:
+ conformance/interfaces/sigaction/6-8.c:34: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/6-8.c:34: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/6-8.c:34: error: for each function it appears in.)
+ conformance/interfaces/sigaction/6-9: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/6-9.c: In function ‘main’:
+ conformance/interfaces/sigaction/6-9.c:34: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/6-9.c:34: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/6-9.c:34: error: for each function it appears in.)
+ conformance/interfaces/sigaction/9-1: build: FAILED: Compiler output:
+ conformance/interfaces/sigaction/9-1.c: In function ‘main’:
+ conformance/interfaces/sigaction/9-1.c:49: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigaction/9-1.c:49: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigaction/9-1.c:49: error: for each function it appears in.)
+ conformance/interfaces/sigqueue/1-1: build: FAILED: Compiler output:
+ conformance/interfaces/sigqueue/1-1.c: In function ‘myhandler’:
+ conformance/interfaces/sigqueue/1-1.c:33: error: ‘SIGRTMIN’ undeclared (first use in this function)
+ conformance/interfaces/sigqueue/1-1.c:33: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigqueue/1-1.c:33: error: for each function it appears in.)
+ conformance/interfaces/sigqueue/1-1.c: In function ‘main’:
+ conformance/interfaces/sigqueue/1-1.c:46: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigqueue/1-1.c:49: error: ‘SIGRTMIN’ undeclared (first use in this function)
+ conformance/interfaces/sigqueue/4-1: build: FAILED: Compiler output:
+ conformance/interfaces/sigqueue/4-1.c: In function ‘main’:
+ conformance/interfaces/sigqueue/4-1.c:45: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigqueue/4-1.c:45: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigqueue/4-1.c:45: error: for each function it appears in.)
+ conformance/interfaces/sigqueue/4-1.c:48: error: ‘SIGRTMIN’ undeclared (first use in this function)
+ conformance/interfaces/sigqueue/5-1: build: FAILED: Compiler output:
+ conformance/interfaces/sigqueue/5-1.c: In function ‘main’:
+ conformance/interfaces/sigqueue/5-1.c:48: error: ‘SIGRTMIN’ undeclared (first use in this function)
+ conformance/interfaces/sigqueue/5-1.c:48: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigqueue/5-1.c:48: error: for each function it appears in.)
+ conformance/interfaces/sigqueue/6-1: build: FAILED: Compiler output:
+ conformance/interfaces/sigqueue/6-1.c: In function ‘main’:
+ conformance/interfaces/sigqueue/6-1.c:55: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigqueue/6-1.c:55: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigqueue/6-1.c:55: error: for each function it appears in.)
+ conformance/interfaces/sigqueue/6-1.c:58: error: ‘SIGRTMIN’ undeclared (first use in this function)
+ conformance/interfaces/sigqueue/7-1: build: FAILED: Compiler output:
+ conformance/interfaces/sigqueue/7-1.c: In function ‘main’:
+ conformance/interfaces/sigqueue/7-1.c:52: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigqueue/7-1.c:52: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigqueue/7-1.c:52: error: for each function it appears in.)
+ conformance/interfaces/sigqueue/7-1.c:58: error: ‘SIGRTMAX’ undeclared (first use in this function)
+ conformance/interfaces/sigqueue/7-1.c:58: error: ‘SIGRTMIN’ undeclared (first use in this function)
+ conformance/interfaces/sigqueue/8-1: build: FAILED: Compiler output:
+ conformance/interfaces/sigqueue/8-1.c: In function ‘main’:
+ conformance/interfaces/sigqueue/8-1.c:46: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigqueue/8-1.c:46: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigqueue/8-1.c:46: error: for each function it appears in.)
+ conformance/interfaces/sigqueue/8-1.c:49: error: ‘SIGRTMIN’ undeclared (first use in this function)
+ conformance/interfaces/sigqueue/9-1: build: FAILED: Compiler output:
+ conformance/interfaces/sigqueue/9-1.c: In function ‘main’:
+ conformance/interfaces/sigqueue/9-1.c:46: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigqueue/9-1.c:46: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigqueue/9-1.c:46: error: for each function it appears in.)
+ conformance/interfaces/sigqueue/9-1.c:49: error: ‘SIGRTMIN’ undeclared (first use in this function)
+ conformance/interfaces/sigwait/2-1: build: FAILED: Compiler output:
+ conformance/interfaces/sigwait/2-1.c: In function ‘main’:
+ conformance/interfaces/sigwait/2-1.c:45: error: ‘SIGRTMIN’ undeclared (first use in this function)
+ conformance/interfaces/sigwait/2-1.c:45: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigwait/2-1.c:45: error: for each function it appears in.)
+ conformance/interfaces/sigwait/7-1: build: FAILED: Compiler output:
+ conformance/interfaces/sigwait/7-1.c: In function ‘main’:
+ conformance/interfaces/sigwait/7-1.c:114: error: ‘SIGRTMIN’ undeclared (first use in this function)
+ conformance/interfaces/sigwait/7-1.c:114: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigwait/7-1.c:114: error: for each function it appears in.)
+ conformance/interfaces/sigwait/7-1.c:114: error: ‘SIGRTMAX’ undeclared (first use in this function)
+ conformance/interfaces/sigwaitinfo/2-1: build: FAILED: Compiler output:
+ conformance/interfaces/sigwaitinfo/2-1.c: In function ‘main’:
+ conformance/interfaces/sigwaitinfo/2-1.c:44: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigwaitinfo/2-1.c:44: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigwaitinfo/2-1.c:44: error: for each function it appears in.)
+ conformance/interfaces/sigwaitinfo/2-1.c:49: error: ‘SIGRTMAX’ undeclared (first use in this function)
+ conformance/interfaces/sigwaitinfo/2-1.c:49: error: ‘SIGRTMIN’ undeclared (first use in this function)
+ conformance/interfaces/sigwaitinfo/5-1: build: FAILED: Compiler output:
+ conformance/interfaces/sigwaitinfo/5-1.c: In function ‘main’:
+ conformance/interfaces/sigwaitinfo/5-1.c:41: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigwaitinfo/5-1.c:41: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigwaitinfo/5-1.c:41: error: for each function it appears in.)
+ conformance/interfaces/sigwaitinfo/6-1: build: FAILED: Compiler output:
+ conformance/interfaces/sigwaitinfo/6-1.c: In function ‘main’:
+ conformance/interfaces/sigwaitinfo/6-1.c:41: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigwaitinfo/6-1.c:41: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigwaitinfo/6-1.c:41: error: for each function it appears in.)
+ conformance/interfaces/sigwaitinfo/7-1: build: FAILED: Compiler output:
+ conformance/interfaces/sigwaitinfo/7-1.c: In function ‘main’:
+ conformance/interfaces/sigwaitinfo/7-1.c:48: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigwaitinfo/7-1.c:48: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigwaitinfo/7-1.c:48: error: for each function it appears in.)
+ conformance/interfaces/sigwaitinfo/7-1.c:51: error: ‘SIGRTMIN’ undeclared (first use in this function)
+ conformance/interfaces/sigwaitinfo/8-1: build: FAILED: Compiler output:
+ conformance/interfaces/sigwaitinfo/8-1.c: In function ‘main’:
+ conformance/interfaces/sigwaitinfo/8-1.c:47: error: ‘SA_SIGINFO’ undeclared (first use in this function)
+ conformance/interfaces/sigwaitinfo/8-1.c:47: error: (Each undeclared identifier is reported only once
+ conformance/interfaces/sigwaitinfo/8-1.c:47: error: for each function it appears in.)
+ conformance/interfaces/sigwaitinfo/8-1.c:50: error: ‘SIGRTMIN’ undeclared (first use in this function)
+ conformance/definitions/mqueue_h/1-1: execution: UNTESTED: Output:
+ Not Implemented!
+ conformance/definitions/mqueue_h/10-1: execution: UNTESTED: Output:
+ Test not implemented!
+ conformance/definitions/mqueue_h/11-1: execution: UNTESTED: Output:
+ Test not implemented!
+ conformance/definitions/mqueue_h/2-1: execution: UNTESTED: Output:
+ Test not implemented!
+ conformance/definitions/mqueue_h/3-1: execution: UNTESTED: Output:
+ Test not implemented!
+ conformance/definitions/mqueue_h/4-1: execution: UNTESTED: Output:
+ Test not implemented!
+ conformance/definitions/mqueue_h/5-1: execution: UNTESTED: Output:
+ Test not implemented!
+ conformance/definitions/mqueue_h/6-1: execution: UNTESTED: Output:
+ Test not implemented!
+ conformance/definitions/mqueue_h/7-1: execution: UNTESTED: Output:
+ Test not implemented!
+ conformance/definitions/mqueue_h/8-1: execution: UNTESTED: Output:
+ Test not implemented!
+ conformance/definitions/mqueue_h/9-1: execution: UNTESTED: Output:
+ Test not implemented!
+ conformance/interfaces/aio_cancel/1-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_cancel/10-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_cancel/2-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_cancel/2-2: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_cancel/4-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_cancel/5-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_cancel/6-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_cancel/7-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_cancel/8-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_cancel/9-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_error/1-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_error/2-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_error/3-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_fsync/12-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_fsync/14-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_fsync/2-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_fsync/3-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_fsync/4-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_fsync/4-2: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_fsync/5-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_fsync/8-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_fsync/8-2: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_fsync/8-3: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_fsync/8-4: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_fsync/9-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_read/1-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_read/10-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_read/11-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_read/11-2: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_read/2-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_read/3-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_read/3-2: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_read/4-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_read/5-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_read/7-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_read/8-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_read/9-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_return/1-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_return/2-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_return/3-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_return/3-2: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_return/4-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_suspend/3-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_suspend/4-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_suspend/5-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_suspend/9-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_write/1-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_write/1-2: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_write/2-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_write/3-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_write/5-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_write/6-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_write/7-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_write/8-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_write/8-2: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_write/9-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/aio_write/9-2: execution: UNSUPPORTED: Output:
+ conformance/interfaces/clock_getcpuclockid/1-1: execution: UNSUPPORTED: Output:
+ _POSIX_CPUTIME unsupported
+ conformance/interfaces/clock_getcpuclockid/2-1: execution: UNSUPPORTED: Output:
+ _POSIX_CPUTIME unsupported
+ conformance/interfaces/clock_getres/3-1: execution: FAILED: Output:
+ clock_getres() failed
+ Test FAILED
+ conformance/interfaces/clock_getres/7-1: execution: UNSUPPORTED: Output:
+ _POSIX_CPUTIME not supported
+ conformance/interfaces/clock_getres/8-1: execution: UNSUPPORTED: Output:
+ _POSIX_THREAD_CPUTIME not supported
+ conformance/interfaces/clock_gettime/3-1: execution: UNSUPPORTED: Output:
+ CLOCK_MONOTONIC unsupported
+ conformance/interfaces/clock_gettime/4-1: execution: UNSUPPORTED: Output:
+ _POSIX_CPUTIME unsupported
+ conformance/interfaces/clock_nanosleep/10-1: execution: FAILED: Output:
+ In handler
+ errno != EINTR
+ Test FAILED
+ conformance/interfaces/clock_nanosleep/9-1: execution: FAILED: Output:
+ In handler
+ clock_nanosleep() did not return EINTR
+ Child did not exit normally.
+ Test FAILED
+ conformance/interfaces/clock_settime/1-1: execution: UNTESTED: Output:
+ Run this test as ROOT, not as a Regular User
+ conformance/interfaces/clock_settime/19-1: execution: UNTESTED: Output:
+ Run this test as ROOT, not as a Regular User
+ conformance/interfaces/clock_settime/4-1: execution: UNTESTED: Output:
+ Run this test as ROOT, not as a Regular User
+ conformance/interfaces/clock_settime/4-2: execution: UNRESOLVED: Output:
+ timer_create() did not return success
+ : Function not implemented
+ conformance/interfaces/clock_settime/5-1: execution: UNTESTED: Output:
+ Run this test as ROOT, not as a Regular User
+ conformance/interfaces/clock_settime/5-2: execution: UNTESTED: Output:
+ Run this test as ROOT, not as a Regular User
+ conformance/interfaces/clock_settime/7-1: execution: UNTESTED: Output:
+ Run this test as ROOT, not as a Regular User
+ conformance/interfaces/clock_settime/7-2: execution: UNTESTED: Output:
+ Run this test as ROOT, not as a Regular User
+ conformance/interfaces/clock_settime/8-1: execution: UNTESTED: Output:
+ Run this test as ROOT, not as a Regular User
+ conformance/interfaces/clock_settime/speculative/4-3: execution: UNRESOLVED: Output:
+ timer_create() did not return success
+ : Function not implemented
+ conformance/interfaces/clock_settime/speculative/4-4: execution: UNRESOLVED: Output:
+ timer_create() did not return success
+ : Function not implemented
+ conformance/interfaces/fork/1-1: execution: UNRESOLVED: Output:
+ [02:46:23]Test conformance/interfaces/fork/1-1.c unresolved: got 1073741869 (Operation not supported) on line 115 (Failed to open the semaphore)
+ [02:46:23]Test conformance/interfaces/fork/1-1.c unresolved: got 1073741869 (Operation not supported) on line 115 (Failed to open the semaphore)
+ conformance/interfaces/fork/11-1: execution: INTERRUPTED: Output:
+ conformance/interfaces/fork/12-1: execution: FAILED: Output:
+ [09:57:13]SIGUSR1 and SIGUSR2 are pending, we can fork
+ [09:57:13]SIGUSR1 and SIGUSR2 are blocked in child
+ [09:57:13]Test conformance/interfaces/fork/12-1.c FAILED: The new process was created with SIGUSR1 pending
+ [09:57:13]SIGUSR1 and SIGUSR2 are pending, we can fork
+ [09:57:13]Test conformance/interfaces/fork/12-1.c FAILED: Child exited abnormally
+ conformance/interfaces/fork/13-1: execution: UNRESOLVED: Output:
+ [09:57:14]Test conformance/interfaces/fork/13-1.c unresolved: got 1073741902 (Function not implemented) on line 117 (Failed to set interval timer for ITIMER_VIRTUAL)
+ conformance/interfaces/fork/14-1: execution: UNRESOLVED: Output:
+ [09:57:14]Test conformance/interfaces/fork/14-1.c unresolved: got 1073741869 (Operation not supported) on line 100 (Failed to create the named semaphore)
+ conformance/interfaces/fork/17-1: execution: UNRESOLVED: Output:
+ [09:57:15]Test conformance/interfaces/fork/17-1.c unresolved: got 1073741902 (Function not implemented) on line 103 (Failed to get max priority value)
+ conformance/interfaces/fork/17-2: execution: UNRESOLVED: Output:
+ [09:57:15]Test conformance/interfaces/fork/17-2.c unresolved: got 1073741902 (Function not implemented) on line 103 (Failed to get max priority value)
+ conformance/interfaces/fork/18-1: execution: UNRESOLVED: Output:
+ [09:57:16]Test conformance/interfaces/fork/18-1.c unresolved: got 1073741902 (Function not implemented) on line 128 (Failed to create a timer)
+ conformance/interfaces/fork/19-1: execution: UNRESOLVED: Output:
+ [09:57:16]Test conformance/interfaces/fork/19-1.c unresolved: got 1073741902 (Function not implemented) on line 114 (Failed to create the message queue descriptor)
+ conformance/interfaces/fork/21-1: execution: UNRESOLVED: Output:
+ [09:57:17]Test conformance/interfaces/fork/21-1.c unresolved: got 1073741869 (Operation not supported) on line 128 (Failed to open the semaphore)
+ conformance/interfaces/fork/22-1: execution: UNTESTED: Output:
+ [09:57:17]File conformance/interfaces/fork/22-1.c cannot test: The testcase needs CPUTIME or THREAD_CPUTIME support
+ conformance/interfaces/fork/8-1: execution: FAILED: Output:
+ [09:57:20]Test conformance/interfaces/fork/8-1.c FAILED: The process is created with non-zero tms_cutime or tms_cstime
+ conformance/interfaces/fsync/7-1: execution: FAILED: Output:
+ fsync/7-1.c Test Fail: Expect EINVAL, get: (ipc/mig) bad request message ID
+ conformance/interfaces/lio_listio/12-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/lio_listio/13-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/lio_listio/18-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/lio_listio/5-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/lio_listio/6-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/lio_listio/8-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/lio_listio/9-1: execution: UNSUPPORTED: Output:
+ conformance/interfaces/mlock/10-1: execution: UNRESOLVED: Output:
+ You don't have permission to lock your address space.
+ Try to rerun this test as root.
+ conformance/interfaces/mlock/5-1: execution: UNRESOLVED: Output:
+ You don't have permission to lock your address space.
+ Try to rerun this test as root.
+ conformance/interfaces/mlock/8-1: execution: UNRESOLVED: Output:
+ You don't have permission to lock your address space.
+ Try to rerun this test as root.
+ conformance/interfaces/mlockall/13-1: execution: FAILED: Output:
+ Unexpected error: Function not implemented
+ conformance/interfaces/mlockall/13-2: execution: FAILED: Output:
+ Unexpected error: Function not implemented
+ conformance/interfaces/mlockall/3-6: execution: UNRESOLVED: Output:
+ An error occurs when calling mlockall(): Function not implemented
+ conformance/interfaces/mlockall/3-7: execution: UNRESOLVED: Output:
+ An error occurs when calling mlockall(): Function not implemented
+ conformance/interfaces/mlockall/8-1: execution: UNRESOLVED: Output:
+ Unexpected error: Function not implemented
+ conformance/interfaces/mlockall/speculative/15-1: execution: UNRESOLVED: Output:
+ Unexpected error: Function not implemented
+ conformance/interfaces/mmap/11-4: execution: FAILED: Output:
+ pa: 0x28000
+ pa_2: 0x29000
+ Test Fail: mmap/11-4.c Modification of the partial page at the end of an object is written out
+ conformance/interfaces/mmap/11-5: execution: FAILED: Output:
+ Test Fail: mmap/11-5.c Modification of the partial page at the end of an object is written out
+ conformance/interfaces/mmap/13-1: execution: FAILED: Output:
+ Time before write(): 1248767904
+ Time before mmap(): 1248767905
+ Time before munmap(): 1248767906
+ atime1: 1248767904, atime2: 1248767904, atime3: 1248767904
+ Test Fail mmap/13-1.c st_atime did not update properly
+ conformance/interfaces/mmap/14-1: execution: FAILED: Output:
+ Time before write(): 1248767907
+ Time before mmap(): 1248767908
+ Time before write reference: 1248767909
+ Time before msync(): 1248767910
+ ctime1: 1248767909, ctime2: 1248767909
+ mtime1: 1248767909, mtime2: 1248767909
+ Test Fail mmap/14-1.c st_ctime and st_mtime were not updated properly
+ conformance/interfaces/mmap/18-1: execution: UNRESOLVED: Output:
+ mmap/18-1.c Error at mlockall(): Function not implemented
+ conformance/interfaces/mmap/21-1: execution: FAILED: Output:
+ Test FAIL
+
+Kernel panic [[!tag open_issue_gnumach]] (at conformance/interfaces/mmap/24-1):
+
+ Assertion `(object == VM_OBJECT_NULL) || (object->ref_count > 0) || ((object->paging_in_progress != 0) && internal)' failed in file "../gnumach-1-branch-Xen-branch/vm/vm_object.c", line 2087
+ Kernel Breakpoint trap, eip 0x20020a77
+ Stopped at 0x20020a76: int $3
+ db> trace
+ 0x20020a76(2006abc1,20067354,2006708c,827,2e4e5514)
+ 0x20020ace(20067354,2006708c,827,2001c900,2e3b54f4)
+ 0x20035ef2(2e4e5514,1000,0,200194c0,2e3b54f4)
+ 0x2003929f(2e3b4d64,2fc6ff9c,400,0,1)
+ 0x200577ea(1,15ff998,400,0,1)
+ 0x20006838(1,15ff998,400,0,1)
+ >>>>> user space <<<<<
+
+ $ addr2line -i -f -e /boot/gnumach-xen 0x20020a76 0x20020ace 0x20035ef2 0x2003929f 0x200577ea 0x20006838
+ Debugger
+ /home/tschwinge/tmp/gnumach/gnumach-1-branch-Xen-branch.build/../gnumach-1-branch-Xen-branch/kern/debug.c:105
+ Assert
+ ??:0
+ vm_object_enter
+ /home/tschwinge/tmp/gnumach/gnumach-1-branch-Xen-branch.build/../gnumach-1-branch-Xen-branch/vm/vm_object.c:2109
+ vm_map
+ /home/tschwinge/tmp/gnumach/gnumach-1-branch-Xen-branch.build/../gnumach-1-branch-Xen-branch/vm/vm_user.c:326
+ syscall_vm_map
+ /home/tschwinge/tmp/gnumach/gnumach-1-branch-Xen-branch.build/../gnumach-1-branch-Xen-branch/kern/ipc_mig.c:657
+ mach_call_call
+ /home/tschwinge/tmp/gnumach/gnumach-1-branch-Xen-branch.build/../gnumach-1-branch-Xen-branch/i386/i386/locore.S:1083
+
+Disable the panic-causing test (conformance/interfaces/mmap/24-1) and restart:
+
+ [...]
+ conformance/interfaces/mmap/24-2: execution: INTERRUPTED: Output:
+ conformance/interfaces/mmap/27-1: execution: UNTESTED: Output:
+ Test Untested: MAP_FIXED defined
+ conformance/interfaces/mmap/28-1: execution: FAILED: Output:
+ Test Fail: mmap/28-1.c Got no error at mmap()
+ conformance/interfaces/mmap/31-1: execution: FAILED: Output:
+ Test FAIL: expect EOVERFLOW but get other error: Cannot allocate memory
+ off: fffff000, len: fffff000
+ conformance/interfaces/mmap/6-4: execution: FAILED: Output:
+ Test Fail: Did not get EACCES as expected
+ conformance/interfaces/mmap/6-6: execution: FAILED: Output:
+ Test Fail: Did not get EACCES as expected
+ conformance/interfaces/mmap/7-1: execution: UNRESOLVED: Output:
+ mmap/7-1.c Error at msync(): Error in unknown error system: FFFFFFFF
+ conformance/interfaces/mmap/7-2: execution: UNRESOLVED: Output:
+ mmap/7-2.c Error at msync(): Error in unknown error system: FFFFFFFF
+ conformance/interfaces/mq_close/1-1: execution: UNRESOLVED: Output:
+ mq_open() did not return success: Function not implemented
+ conformance/interfaces/mq_close/2-1: execution: UNRESOLVED: Output:
+ unexpected error: mq_close 2-1: mq_open: Function not implemented
+ unexpected error: mq_close 2-1: read: EOF
+ conformance/interfaces/mq_close/3-1: execution: UNRESOLVED: Output:
+ unexpected error: mq_close 3-1: mq_open: Function not implemented
+ conformance/interfaces/mq_close/3-2: execution: FAILED: Output:
+ errno != EBADF on invalid descriptor
+ Test FAILED
+ conformance/interfaces/mq_close/3-3: execution: FAILED: Output:
+ errno != EBADF on invalid descriptor
+ Test FAILED
+ conformance/interfaces/mq_close/4-1: execution: UNRESOLVED: Output:
+ unexpected error: mq_close 4-1: mq_open: Function not implemented
+ conformance/interfaces/mq_close/5-1: execution: UNTESTED: Output:
+ Functionality of using mqdes after mq_close() and before
+ mq_open() will not be tested as POSIX says this is undefined.
+ conformance/interfaces/mq_getattr/2-1: execution: UNRESOLVED: Output:
+ unexpected error: mq_getattr 2-1: mq_open(): Function not implemented
+ conformance/interfaces/mq_getattr/2-2: execution: UNRESOLVED: Output:
+ unexpected error: mq_getattr 2-2: mq_open(): Function not implemented
+ conformance/interfaces/mq_getattr/3-1: execution: UNRESOLVED: Output:
+ unexpected error: mq_getattr 3-1: mq_open(): Function not implemented
+ conformance/interfaces/mq_getattr/4-1: execution: UNRESOLVED: Output:
+ unexpected error: mq_getattr 4-1: mq_open(): Function not implemented
+ conformance/interfaces/mq_getattr/speculative/7-1: execution: UNRESOLVED: Output:
+ unexpected error: mq_getattr 7-1: mq_open(): Function not implemented
+ conformance/interfaces/mq_notify/1-1: execution: UNRESOLVED: Output:
+ unexpected error: mq_notify 1-1: mq_open: Function not implemented
+ conformance/interfaces/mq_notify/2-1: execution: UNRESOLVED: Output:
+ unexpected error: mq_notify 2-1: mq_open: Function not implemented
+ conformance/interfaces/mq_notify/3-1: execution: UNRESOLVED: Output:
+ unexpected error: mq_notify 3-1: mq_open: Function not implemented
+ conformance/interfaces/mq_notify/4-1: execution: UNRESOLVED: Output:
+ unexpected error: mq_notify 4-1: mq_open: Function not implemented
+ conformance/interfaces/mq_notify/5-1: execution: UNRESOLVED: Output:
+ unexpected error: mq_notify 5-1: mq_open: Function not implemented
+ conformance/interfaces/mq_notify/8-1: execution: UNRESOLVED: Output:
+ unexpected error: mq_notify 8-1: mq_open(): Function not implemented
+ conformance/interfaces/mq_notify/9-1: execution: UNRESOLVED: Output:
+ unexpected error: mq_notify 9-1: mq_open: Function not implemented
+ conformance/interfaces/mq_open/1-1: execution: FAILED: Output:
+ mq_open() did not return success: Function not implemented
+ Test FAILED
+ conformance/interfaces/mq_open/10-1: execution: UNTESTED: Output:
+ Will not test the user ID and group ID of a created
+ message queue as we would need multiple users and
+ groups on the system to test.
+ Will not test the file permissions as testing would
+ be implementation defined.
+ conformance/interfaces/mq_open/11-1: execution: FAILED: Output:
+ mq_open() did not return success: Function not implemented
+ Test FAILED
+ conformance/interfaces/mq_open/12-1: execution: FAILED: Output:
+ mq_open() did not return success: Function not implemented
+ Test FAILED
+ conformance/interfaces/mq_open/13-1: execution: FAILED: Output:
+ mq_open() did not return success: Function not implemented
+ Test FAILED
+ conformance/interfaces/mq_open/14-1: execution: UNTESTED: Output:
+ Will not test calling process privileges on name
+ as POSIX does not define when this error occurs.
+ conformance/interfaces/mq_open/15-1: execution: UNRESOLVED: Output:
+ mq_open() did not return success: Function not implemented
+ Test UNRESOLVED
+ conformance/interfaces/mq_open/16-1: execution: FAILED: Output:
+ Test FAILED - mq_open() never succeeded
+ conformance/interfaces/mq_open/17-1: execution: UNTESTED: Output:
+ Will not test setting O_EXCL without O_CREAT because
+ results are undefined.
+ conformance/interfaces/mq_open/18-1: execution: FAILED: Output:
+ mq_open() did not return success w/O_NONBLOCK set: Function not implemented
+ Test FAILED
+ conformance/interfaces/mq_open/19-1: execution: UNRESOLVED: Output:
+ mq_open() did not return success: Function not implemented
+ Test UNRESOLVED
+ conformance/interfaces/mq_open/2-1: execution: UNRESOLVED: Output:
+ mq_open() did not return success: Function not implemented
+ Test UNRESOLVED
+ conformance/interfaces/mq_open/20-1: execution: FAILED: Output:
+ mq_open() did not return success: Function not implemented
+ Test FAILED
+ conformance/interfaces/mq_open/22-1: execution: UNTESTED: Output:
+ Will not test returning EACCESS when privileges are denied
+ as POSIX does not define when this error occurs.
+ conformance/interfaces/mq_open/23-1: execution: UNRESOLVED: Output:
+ mq_open() did not return success: Function not implemented
+ Test UNRESOLVED
+ conformance/interfaces/mq_open/24-1: execution: UNTESTED: Output:
+ Will not test mq_open() being interrupted as it is
+ not possible to predictably interrupt an mq_open().
+ conformance/interfaces/mq_open/25-1: execution: UNTESTED: Output:
+ Will not test mq_open() failing with EINVAL if mq_open()
+ is not supported for the name parameter as
+ unsupported names are implementation defined.
+ conformance/interfaces/mq_open/25-2: execution: FAILED: Output:
+ errno != EINVAL for mq_maxmsg 0
+ errno != EINVAL for mq_maxmsg -1
+ errno != EINVAL for mq_maxmsg -2147483648
+ errno != EINVAL for mq_msgsize 0
+ errno != EINVAL for mq_msgsize -1
+ errno != EINVAL for mq_msgsize -2147483648
+ Test FAILED
+ conformance/interfaces/mq_open/27-2: execution: FAILED: Output:
+ errno != ENAMETOOLONG
+ Test FAILED
+ conformance/interfaces/mq_open/28-1: execution: UNTESTED: Output:
+ Will not test returning with ENFILE if the system has
+ too many message queues as this is beyond this
+ test's domain.
+ conformance/interfaces/mq_open/29-1: execution: FAILED: Output:
+ errno != ENOENT
+ Test FAILED
+ conformance/interfaces/mq_open/30-1: execution: UNTESTED: Output:
+ Will not test mq_open() failing with ENOSPC when there
+ is not enough space to create the message queue
+ as system space cannot be controlled from this test.
+ conformance/interfaces/mq_open/4-1: execution: UNTESTED: Output:
+ Will not test that {OPEN_MAX} file and message queues can
+ be opened as we cannot determine at run-time if a given
+ implementation is implemented with a file descriptor.
+ conformance/interfaces/mq_open/7-1: execution: UNRESOLVED: Output:
+ mq_open() did not return success: Function not implemented
+ Test UNRESOLVED
+ conformance/interfaces/mq_open/7-2: execution: UNRESOLVED: Output:
+ mq_open() did not return success: Function not implemented
+ Test UNRESOLVED
+ conformance/interfaces/mq_open/7-3: execution: FAILED: Output:
+ mq_open() for read-only queue did not return success: Function not implemented
+ Test FAILED
+ conformance/interfaces/mq_open/8-1: execution: UNRESOLVED: Output:
+ mq_open() for write-only queue did not return success: Function not implemented
+ Test UNRESOLVED
+ conformance/interfaces/mq_open/8-2: execution: UNRESOLVED: Output:
+ mq_open() did not return success: Function not implemented
+ Test UNRESOLVED
+ conformance/interfaces/mq_open/9-1: execution: UNRESOLVED: Output:
+ mq_open() did not return success on read-write queue: Function not implemented
+ Test UNRESOLVED
+ conformance/interfaces/mq_open/9-2: execution: UNRESOLVED: Output:
+ mq_open() did not return success: Function not implemented
+ Test UNRESOLVED
+ conformance/interfaces/mq_open/speculative/26-1: execution: FAILED: Output:
+ mq_open() failed before expected
+ errno != EMFILE on > _POSIX_OPEN_MAX or _POSIX_MQ_OPEN_MAX queues
+ Test FAILED
+ conformance/interfaces/mq_receive/1-1: execution: FAILED: Output:
+ unexpected error: mq_receive 1-1: mq_open: Function not implemented
+ unexpected error: mq_receive 1-1: mq_send: Function not implemented
+ unexpected error: mq_receive 1-1: mq_send: Function not implemented
+ unexpected error: mq_receive 1-1: mq_receive: Function not implemented
+ unexpected error: mq_receive 1-1: mq_receive: Function not implemented
+ unexpected error: mq_receive 1-1: mq_close: Function not implemented
+ unexpected error: mq_receive 1-1: mq_unlink: Function not implemented
+ FAIL: mq_receive didn't receive the highest priority message
+ FAIL: receive priority 134520252 != send priority 2
+ FAIL: mq_receive didn't receive the correct message
+ FAIL: receive priority 134520252 != send priority 1
+ Test FAILED
+ conformance/interfaces/mq_receive/10-1: execution: FAILED: Output:
+ unexpected error: mq_receive 10-1: mq_open: Function not implemented
+ unexpected error: mq_receive 10-1: mq_close: Function not implemented
+ unexpected error: mq_receive 10-1: mq_unlink: Function not implemented
+ errno != EAGAIN
+ Test FAILED
+ conformance/interfaces/mq_receive/11-1: execution: FAILED: Output:
+ unexpected error: mq_receive 11-1: mq_open(): Function not implemented
+ unexpected error: mq_receive 11-1: mq_close(): Function not implemented
+ unexpected error: mq_receive 11-1: mq_unlink(): Function not implemented
+ errno != EBADF
+ Test FAILED
+ conformance/interfaces/mq_receive/11-2: execution: FAILED: Output:
+ unexpected error: mq_receive 11-2: mq_open(): Function not implemented
+ unexpected error: mq_receive 11-2: mq_close: Function not implemented
+ unexpected error: mq_receive 11-2: mq_unlink(): Function not implemented
+ errno != EBADF
+ Test FAILED
+ conformance/interfaces/mq_receive/12-1: execution: FAILED: Output:
+ unexpected error: mq_receive 12-1: mq_open: Function not implemented
+ unexpected error: mq_receive 12-1: mq_send: Function not implemented
+ unexpected error: mq_receive 12-1: mq_close: Function not implemented
+ unexpected error: mq_receive 12-1: mq_unlink: Function not implemented
+ errno != EMSGSIZE
+ Test FAILED
+ conformance/interfaces/mq_receive/13-1: execution: UNRESOLVED: Output:
+ unexpected error: mq_receive 13-1: mq_open: Function not implemented
+ mq_close() did not return success: Function not implemented
+ mq_unlink() did not return success: Function not implemented
+ Test UNRESOLVED
+ conformance/interfaces/mq_receive/2-1: execution: UNRESOLVED: Output:
+ unexpected error: mq_receive 2-1: mq_open: Function not implemented
+ unexpected error: mq_receive 2-1: mq_send: Function not implemented
+ unexpected error: mq_receive 2-1: mq_close: Function not implemented
+ unexpected error: mq_receive 2-1: mq_unlink: Function not implemented
+ Test UNRESOLVED
+ conformance/interfaces/mq_receive/5-1: execution: FAILED: Output:
+ unexpected error: mq_receive 5-1: mq_open: Function not implemented
+ unexpected error: mq_receive 5-1: mq_send: Function not implemented
+ unexpected error: mq_receive 5-1: mq_receive: Function not implemented
+ unexpected error: mq_receive 5-1: mq_close: Function not implemented
+ unexpected error: mq_receive 5-1: mq_unlink: Function not implemented
+ Test FAILED
+ conformance/interfaces/mq_receive/7-1: execution: UNRESOLVED: Output:
+ unexpected error: mq_receive 7-1: mq_open: Function not implemented
+ unexpected error: mq_receive 7-1: mq_close: Function not implemented
+ unexpected error: mq_receive 7-1: mq_unlink: Function not implemented
+ Test UNRESOLVED
+ conformance/interfaces/mq_receive/8-1: execution: FAILED: Output:
+ unexpected error: mq_receive 8-1: mq_open: Function not implemented
+ unexpected error: mq_receive 8-1: mq_send: Function not implemented
+ unexpected error: mq_receive 8-1: mq_send: Function not implemented
+ unexpected error: mq_receive 8-1: mq_close: Function not implemented
+ unexpected error: mq_receive 8-1: mq_unlink: Function not implemented
+ FAIL: mq_receive didn't return the selected message size correctly
+ FAIL: mq_receive didn't return the selected message size correctly
+ Test FAILED
+ conformance/interfaces/mq_send/1-1: execution: UNRESOLVED: Output:
+ mq_open() did not return success: Function not implemented
+ conformance/interfaces/mq_send/10-1: execution: UNRESOLVED: Output:
+ mq_open() did not return success: Function not implemented
+ conformance/interfaces/mq_send/11-1: execution: UNRESOLVED: Output:
+ mq_open() did not return success: Function not implemented
+ conformance/interfaces/mq_send/11-2: execution: UNRESOLVED: Output:
+ mq_open() did not return success: Function not implemented
+ conformance/interfaces/mq_send/12-1: execution: UNRESOLVED: Output:
+ mq_open() did not return success: Function not implemented
+ conformance/interfaces/mq_send/14-1: execution: UNRESOLVED: Output:
+ mq_open() did not return success: Function not implemented
+ conformance/interfaces/mq_send/2-1: execution: UNRESOLVED: Output:
+ mq_open() did not return success: Function not implemented
+ conformance/interfaces/mq_send/3-1: execution: UNRESOLVED: Output:
+ mq_open() did not return success: Function not implemented
+ conformance/interfaces/mq_send/3-2: execution: UNRESOLVED: Output:
+ mq_open() did not return success: Function not implemented
+ conformance/interfaces/mq_send/5-1: execution: UNRESOLVED: Output:
+ mq_open() did not return success: Function not implemented
+ conformance/interfaces/mq_send/5-2: execution: UNRESOLVED: Output:
+ mq_open() did not return success: Function not implemented
+ conformance/interfaces/mq_send/6-1: execution: UNTESTED: Output:
+ Priority Scheduling needed to make a reliable test case
+ for this instance. Will not be tested.
+ conformance/interfaces/mq_send/8-1: execution: UNRESOLVED: Output:
+ mq_open() did not return success: Function not implemented
+ conformance/interfaces/mq_send/9-1: execution: UNRESOLVED: Output:
+ mq_open() did not return success: Function not implemented
+ conformance/interfaces/mq_setattr/1-1: execution: UNRESOLVED: Output:
+ mq_open() did not return success: Function not implemented
+ conformance/interfaces/mq_setattr/1-2: execution: UNRESOLVED: Output:
+ mq_open() did not return success: Function not implemented
+ conformance/interfaces/mq_setattr/2-1: execution: UNRESOLVED: Output:
+ mq_open() did not return success: Function not implemented
+ conformance/interfaces/mq_setattr/5-1: execution: UNRESOLVED: Output:
+ unexpected error: mq_setattr 5-1: mq_open(): Function not implemented
+ conformance/interfaces/mq_timedreceive/1-1: execution: FAILED: Output:
+ unexpected error: mq_timedreceive 1-1: mq_open: Function not implemented
+ unexpected error: mq_timedreceive 1-1: mq_send: Function not implemented
+ unexpected error: mq_timedreceive 1-1: mq_send: Function not implemented
+ unexpected error: mq_timedreceive 1-1: mq_timedreceive: Function not implemented
+ unexpected error: mq_timedreceive 1-1: mq_timedreceive: Function not implemented
+ unexpected error: mq_timedreceive 1-1: mq_close: Function not implemented
+ unexpected error: mq_timedreceive 1-1: mq_unlink: Function not implemented
+ FAIL: mq_timedreceive didn't receive the highest priority message
+ FAIL: receive priority 134520424 != send priority 2
+ FAIL: mq_timedreceive didn't receive the correct message
+ FAIL: receive priority 134520424 != send priority 1
+ Test FAILED
+ conformance/interfaces/mq_timedreceive/10-1: execution: FAILED: Output:
+ unexpected error: mq_timedreceive 10-1: mq_open: Function not implemented
+ unexpected error: mq_timedreceive 10-1: mq_send: Function not implemented
+ FAIL: mq_receive fails unexpectly
+ : Function not implemented
+ unexpected error: mq_timedreceive 10-1: mq_close: Function not implemented
+ unexpected error: mq_timedreceive 10-1: mq_unlink: Function not implemented
+ Test FAILED
+ conformance/interfaces/mq_timedreceive/10-2: execution: FAILED: Output:
+ unexpected error: mq_timedreceive 10-1: mq_open: Function not implemented
+ unexpected error: mq_timedreceive 10-1: mq_send: Function not implemented
+ Unexpected error at mq_timedreceive: Function not implemented
+ unexpected error: mq_timedreceive 10-1: mq_close: Function not implemented
+ unexpected error: mq_timedreceive 10-1: mq_unlink: Function not implemented
+ Test FAILED
+ conformance/interfaces/mq_timedreceive/11-1: execution: FAILED: Output:
+ unexpected error: mq_timedreceive 11-1: mq_open: Function not implemented
+ unexpected error: mq_timedreceive 11-1: mq_send: Function not implemented
+ unexpected error: mq_timedreceive 11-1: mq_send: Function not implemented
+ unexpected error: mq_timedreceive 11-1: mq_close: Function not implemented
+ unexpected error: mq_timedreceive 11-1: mq_unlink: Function not implemented
+ FAIL: mq_timedreceive didn't return the selected message size correctly
+ FAIL: mq_timedreceive didn't return the selected message size correctly
+ Test FAILED
+ conformance/interfaces/mq_timedreceive/13-1: execution: FAILED: Output:
+ unexpected error: mq_timedreceive 13-1: mq_open: Function not implemented
+ unexpected error: mq_timedreceive 13-1: mq_close: Function not implemented
+ unexpected error: mq_timedreceive 13-1: mq_unlink: Function not implemented
+ errno != EAGAIN
+ Test FAILED
+ conformance/interfaces/mq_timedreceive/14-1: execution: FAILED: Output:
+ unexpected error: mq_timedreceive 14-1: mq_open(): Function not implemented
+ unexpected error: mq_timedreceive 14-1: mq_close(): Function not implemented
+ unexpected error: mq_timedreceive 14-1: mq_unlink(): Function not implemented
+ errno != EBADF
+ Test FAILED
+ conformance/interfaces/mq_timedreceive/15-1: execution: FAILED: Output:
+ unexpected error: mq_timedreceive 15-1: mq_open: Function not implemented
+ unexpected error: mq_timedreceive 15-1: mq_send: Function not implemented
+ unexpected error: mq_timedreceive 15-1: mq_close: Function not implemented
+ unexpected error: mq_timedreceive 15-1: mq_unlink: Function not implemented
+ errno != EMSGSIZE
+ Test FAILED
+ conformance/interfaces/mq_timedreceive/17-1: execution: FAILED: Output:
+ unexpected error: mq_timedreceive 17-1: mq_open: Function not implemented
+ unexpected error: mq_timedreceive 17-1: mq_close: Function not implemented
+ unexpected error: mq_timedreceive 17-1: mq_unlink: Function not implemented
+ errno != EINVAL
+ Test FAILED
+ conformance/interfaces/mq_timedreceive/17-2: execution: FAILED: Output:
+ unexpected error: mq_timedreceive 17-2: mq_open: Function not implemented
+ unexpected error: mq_timedreceive 17-2: mq_close: Function not implemented
+ unexpected error: mq_timedreceive 17-2: mq_unlink: Function not implemented
+ errno != EINVAL
+ Test FAILED
+ conformance/interfaces/mq_timedreceive/17-3: execution: FAILED: Output:
+ unexpected error: mq_timedreceive 17-3: mq_open: Function not implemented
+ unexpected error: mq_timedreceive 17-3: mq_close: Function not implemented
+ unexpected error: mq_timedreceive 17-3: mq_unlink: Function not implemented
+ errno != EINVAL
+ Test FAILED
+ conformance/interfaces/mq_timedreceive/18-1: execution: FAILED: Output:
+ unexpected error: mq_timedreceive 18-1: mq_open: Function not implemented
+ unexpected error: mq_timedreceive 18-1: mq_close: Function not implemented
+ unexpected error: mq_timedreceive 18-1: mq_unlink: Function not implemented
+ errno != ETIMEDOUT
+ Test FAILED
+ conformance/interfaces/mq_timedreceive/18-2: execution: FAILED: Output:
+ unexpected error: mq_timedreceive 18-2: mq_open: Function not implemented
+ unexpected error: mq_timedreceive 18-2: mq_close: Function not implemented
+ unexpected error: mq_timedreceive 18-2: mq_unlink: Function not implemented
+ errno != ETIMEDOUT
+ Test FAILED
+ conformance/interfaces/mq_timedreceive/2-1: execution: UNRESOLVED: Output:
+ unexpected error: mq_timedreceive 2-1: mq_open: Function not implemented
+ unexpected error: mq_timedreceive 2-1: mq_send: Function not implemented
+ unexpected error: mq_timedreceive 2-1: mq_close: Function not implemented
+ unexpected error: mq_timedreceive 2-1: mq_unlink: Function not implemented
+ Test UNRESOLVED
+ conformance/interfaces/mq_timedreceive/5-1: execution: FAILED: Output:
+ unexpected error: mq_timedreceive 5-1: mq_open: Function not implemented
+ unexpected error: mq_timedreceive 5-1: mq_send: Function not implemented
+ unexpected error: mq_timedreceive 5-1: mq_timedreceive: Function not implemented
+ unexpected error: mq_timedreceive 5-1: mq_close: Function not implemented
+ unexpected error: mq_timedreceive 5-1: mq_unlink: Function not implemented
+ mq_timedreceive didn't block on waiting
+ Test FAILED
+ conformance/interfaces/mq_timedreceive/5-2: execution: FAILED: Output:
+ unexpected error: mq_timedreceive 5-2: mq_open: Function not implemented
+ unexpected error: mq_timedreceive 5-2: mq_close: Function not implemented
+ unexpected error: mq_timedreceive 5-2: mq_unlink: Function not implemented
+ FAIL: mq_timedreceive didn't block until timout expires
+ Test FAILED
+ conformance/interfaces/mq_timedreceive/5-3: execution: UNRESOLVED: Output:
+ unexpected error: mq_timedreceive 5-3: mq_open: Function not implemented
+ mq_close() did not return success: Function not implemented
+ mq_unlink() did not return success: Function not implemented
+ Test UNRESOLVED
+ conformance/interfaces/mq_timedreceive/7-1: execution: UNRESOLVED: Output:
+ unexpected error: mq_timedreceive 7-1: mq_open: Function not implemented
+ unexpected error: mq_timedreceive 7-1: mq_close: Function not implemented
+ unexpected error: mq_timedreceive 7-1: mq_unlink: Function not implemented
+ Test UNRESOLVED
+ conformance/interfaces/mq_timedreceive/8-1: execution: FAILED: Output:
+ unexpected error: mq_timedreceive 8-1: mq_open: Function not implemented
+ unexpected error: mq_timedreceive 8-1: mq_close: Function not implemented
+ unexpected error: mq_timedreceive 8-1: mq_unlink: Function not implemented
+ Using CLOCK_REALTIME
+ FAIL: mq_timedreceive didn't block until timout expires
+ Test FAILED
+ conformance/interfaces/mq_timedreceive/speculative/10-2: execution: UNRESOLVED: Output:
+ unexpected error: mq_timedreceive 10-2: mq_open: Function not implemented
+ unexpected error: mq_timedreceive 10-2: mq_send: Function not implemented
+ unexpected error: mq_timedreceive 10-2: mq_close: Function not implemented
+ unexpected error: mq_timedreceive 10-2: mq_unlink: Function not implemented
+ mq_timedreceive() did fail on invalid abs_time
+ Test UNRESOLVED
+ conformance/interfaces/mq_timedsend/1-1: execution: UNRESOLVED: Output:
+ mq_open() did not return success: Function not implemented
+ conformance/interfaces/mq_timedsend/10-1: execution: UNRESOLVED: Output:
+ mq_open() did not return success: Function not implemented
+ conformance/interfaces/mq_timedsend/11-1: execution: UNRESOLVED: Output:
+ mq_open() did not return success: Function not implemented
+ conformance/interfaces/mq_timedsend/11-2: execution: UNRESOLVED: Output:
+ mq_open() did not return success: Function not implemented
+ conformance/interfaces/mq_timedsend/12-1: execution: INTERRUPTED: Output:
+ mq_open() did not return success: Function not implemented
+ conformance/interfaces/mq_timedsend/14-1: execution: UNRESOLVED: Output:
+ mq_open() did not return success: Function not implemented
+ conformance/interfaces/mq_timedsend/15-1: execution: UNRESOLVED: Output:
+ mq_open() did not return success: Function not implemented
+ Test UNRESOLVED
+ conformance/interfaces/mq_timedsend/16-1: execution: UNRESOLVED: Output:
+ mq_open() did not return success: Function not implemented
+ conformance/interfaces/mq_timedsend/17-1: execution: UNTESTED: Output:
+ Will not test timeout resolution.
+ conformance/interfaces/mq_timedsend/18-1: execution: UNRESOLVED: Output:
+ mq_open() did not return success: Function not implemented
+ Test UNRESOLVED
+ conformance/interfaces/mq_timedsend/19-1: execution: UNRESOLVED: Output:
+ mq_open() did not return success: Function not implemented
+ Test UNRESOLVED
+ conformance/interfaces/mq_timedsend/2-1: execution: UNRESOLVED: Output:
+ mq_open() did not return success: Function not implemented
+ conformance/interfaces/mq_timedsend/20-1: execution: UNRESOLVED: Output:
+ mq_open() did not return success: Function not implemented
+ Test UNRESOLVED
+ conformance/interfaces/mq_timedsend/3-1: execution: UNRESOLVED: Output:
+ mq_open() did not return success: Function not implemented
+ conformance/interfaces/mq_timedsend/3-2: execution: UNRESOLVED: Output:
+ mq_open() did not return success: Function not implemented
+ conformance/interfaces/mq_timedsend/5-1: execution: UNRESOLVED: Output:
+ mq_open() did not return success: Function not implemented
+ conformance/interfaces/mq_timedsend/5-2: execution: UNRESOLVED: Output:
+ mq_open() did not return success: Function not implemented
+ conformance/interfaces/mq_timedsend/5-3: execution: UNRESOLVED: Output:
+ mq_open() did not return success: Function not implemented
+ conformance/interfaces/mq_timedsend/6-1: execution: UNTESTED: Output:
+ Priority Scheduling needed to make a reliable test case
+ for this instance. Will not be tested.
+ conformance/interfaces/mq_timedsend/7-1: execution: UNRESOLVED: Output:
+ mq_open() did not return success: Function not implemented
+ conformance/interfaces/mq_timedsend/8-1: execution: UNRESOLVED: Output:
+ mq_open() did not return success: Function not implemented
+ conformance/interfaces/mq_timedsend/9-1: execution: UNRESOLVED: Output:
+ mq_open() did not return success: Function not implemented
+ conformance/interfaces/mq_timedsend/speculative/18-2: execution: UNRESOLVED: Output:
+ mq_open() did not return success: Function not implemented
+ Test UNRESOLVED
+ conformance/interfaces/mq_unlink/1-1: execution: UNRESOLVED: Output:
+ unexpected error: mq_unlink 1-1: mq_open: Function not implemented
+ conformance/interfaces/mq_unlink/2-1: execution: UNRESOLVED: Output:
+ unexpected error: mq_unlink 2-1: mq_open: Function not implemented
+ unexpected error: mq_unlink 2-1: read: EOF
+ conformance/interfaces/mq_unlink/2-2: execution: UNRESOLVED: Output:
+ unexpected error: mq_unlink 2-2: mq_open: Function not implemented
+ unexpected error: mq_unlink 2-2: read: EOF
+ conformance/interfaces/mq_unlink/2-3: execution: UNTESTED: Output:
+ Difficult to detect whether mq_unlink will block until all the reference have been closed
+ for this instance. Will not be tested.
+ conformance/interfaces/mq_unlink/7-1: execution: FAILED: Output:
+ Test FAILED
+ conformance/interfaces/mq_unlink/speculative/7-2: execution: FAILED: Output:
+ Test FAILED, error is Function not implemented
+ conformance/interfaces/munlock/10-1: execution: UNRESOLVED: Output:
+ Unexpected error: Operation not permitted
+ conformance/interfaces/munlock/11-1: execution: UNRESOLVED: Output:
+ Unexpected error: Operation not permitted
+ conformance/interfaces/munlock/7-1: execution: UNRESOLVED: Output:
+ You don't have permission to lock your address space.
+ Try to rerun this test as root.
+ conformance/interfaces/munmap/3-1: execution: FAILED: Output:
+ Test FAILED: munmap/3-1.c munmap returns: No such file or directory
+ conformance/interfaces/munmap/4-1: execution: UNRESOLVED: Output:
+ munmap/4-1.c Error at msync(): Error in unknown error system: FFFFFFFF
+ conformance/interfaces/munmap/8-1: execution: FAILED: Output:
+ Test FAILED: Expect EINVAL but get: (os/kern) successful
+ conformance/interfaces/munmap/9-1: execution: FAILED: Output:
+ Test Fail: Expect EINVAL while get No such file or directory
+ conformance/interfaces/nanosleep/10000-1: execution: INTERRUPTED: Output:
+ conformance/interfaces/nanosleep/5-1: execution: FAILED: Output:
+ nanosleep() did not return -1 on failure
+ conformance/interfaces/nanosleep/5-2: execution: FAILED: Output:
+ In handler
+ Child did not exit normally.
+ Test FAILED
+ conformance/interfaces/nanosleep/6-1: execution: UNRESOLVED: Output:
+ sleep -1
+ nanosleep() did not return -1 on failure
+ conformance/interfaces/nanosleep/7-1: execution: FAILED: Output:
+ In handler
+ nanosleep did not return -1
+ Child did not exit normally.
+ Test FAILED
+ conformance/interfaces/nanosleep/7-2: execution: FAILED: Output:
+ In handler
+ nanosleep() was not interrupted
+ Child did not exit normally.
+ Test FAILED
+ conformance/interfaces/pthread_atfork/1-1: execution: UNRESOLVED: Output:
+ Error in pthread_atfork
+ conformance/interfaces/pthread_atfork/1-2: execution: UNRESOLVED: Output:
+ [11:58:02]Test conformance/interfaces/pthread_atfork/1-2.c unresolved: got 1073741902 (Function not implemented) on line 216 (Failed to register the atfork handlers)
+ conformance/interfaces/pthread_atfork/2-1: execution: FAILED: Output:
+ Test FAILED: Expected return value success, instead received 1073741902
+ conformance/interfaces/pthread_atfork/2-2: execution: UNRESOLVED: Output:
+ [11:58:03]Test conformance/interfaces/pthread_atfork/2-2.c unresolved: got 1073741902 (Function not implemented) on line 244 (Failed to register the atfork handlers(N,N,N))
+ conformance/interfaces/pthread_atfork/3-2: execution: UNRESOLVED: Output:
+ [11:58:03]Test conformance/interfaces/pthread_atfork/3-2.c unresolved: got 1073741902 (Function not implemented) on line 213 (Failed to register the atfork handlers)
+ conformance/interfaces/pthread_atfork/3-3: execution: INTERRUPTED: Output:
+ conformance/interfaces/pthread_atfork/4-1: execution: UNRESOLVED: Output:
+ [12:10:53]Test conformance/interfaces/pthread_atfork/4-1.c unresolved: got 1073741902 (Function not implemented) on line 244 (Failed to register the atfork handlers)
+ conformance/interfaces/pthread_attr_getschedparam/1-1: execution: UNRESOLVED: Output:
+ unexpected error: pthread_attr_getschedparam 1-1: pthread_attr_setschedpolicy
+ conformance/interfaces/pthread_attr_getschedpolicy/2-1: execution: UNRESOLVED: Output:
+ unexpected error: pthread_attr_getschedpolicy 1-1: pthread_attr_setschedpolicy
+ conformance/interfaces/pthread_attr_setinheritsched/2-1: execution: UNRESOLVED: Output:
+ unexpected error: pthread_attr_setinheritsched 2-1: pthread_attr_setschedpolicy: (os/kern) successful
+ conformance/interfaces/pthread_attr_setinheritsched/2-2: execution: UNRESOLVED: Output:
+ unexpected error: pthread_attr_setinheritsched 2-2: pthread_attr_setschedpolicyconformance/interfaces/pthread_attr_setinheritsched/2-3: execution: UNRESOLVED: Output:
+ unexpected error: scheduler 4-1: pthread_setschedparam
+ conformance/interfaces/pthread_attr_setinheritsched/2-4: execution: UNRESOLVED: Output:
+ unexpected error: scheduler 4-2: pthread_setschedparam
+ conformance/interfaces/pthread_attr_setschedparam/1-1: execution: FAILED: Output:
+ unexpected error: pthread_attr_setschedparam 1-1: pthread_attr_setschedpolicy
+ conformance/interfaces/pthread_attr_setschedparam/1-2: execution: FAILED: Output:
+ unexpected error: pthread_attr_setschedparam 1-2: pthread_attr_setschedpolicy
+ conformance/interfaces/pthread_attr_setschedparam/1-3: execution: UNRESOLVED: Output:
+ unexpected error: scheduler 3-1: pthread_attr_setschedpolicy
+ conformance/interfaces/pthread_attr_setschedparam/1-4: execution: UNRESOLVED: Output:
+ unexpected error: scheduler 3-2: pthread_attr_setschedpolicy
+ conformance/interfaces/pthread_attr_setschedparam/speculative/3-1: execution: FAILED: Output:
+ unexpected error: pthread_attr_setschedparam 3-1: pthread_attr_setschedpolicy
+ conformance/interfaces/pthread_attr_setschedparam/speculative/3-2: execution: FAILED: Output:
+ unexpected error: pthread_attr_setschedpaarm 3-2: pthread_attr_setschedpolicyconformance/interfaces/pthread_attr_setschedpolicy/1-1: execution: FAILED: Output:
+ Error on pthread_attr_setschedpolicy() rc=1073741942
+ conformance/interfaces/pthread_attr_setschedpolicy/speculative/5-1: execution: UNRESOLVED: Output:
+ unexpected error: pthread_attr_setschedpolicy 5-1: pthread_attr_setinheritsched
+ conformance/interfaces/pthread_attr_setscope/5-1: execution: UNTESTED: Output:
+ Untested for now, cannot find a unsupported inheritsched value
+ conformance/interfaces/pthread_barrierattr_getpshared/2-1: execution: UNRESOLVED: Output:
+ Error at pthread_barrierattr_setpshared()
+ conformance/interfaces/pthread_barrierattr_setpshared/1-1: execution: FAILED: Output:
+ Test FAILED: Error at pthread_barrierattr_setpshared()
+ conformance/interfaces/pthread_cancel/3-1: execution: UNRESOLVED: Output:
+ unexpected error: pthread_cancel 3-1: pthread_setschedparam
+ conformance/interfaces/pthread_cancel/5-2: execution: INTERRUPTED: Output:
+ conformance/interfaces/pthread_cond_broadcast/1-2: execution: UNRESOLVED: Output:
+ [12:42:33]Test starting
+ [12:42:33]System abilities:
+ [12:42:33] TPS : -1
+ [12:42:33] CS : 200112
+ [12:42:33] MON : -1
+ [12:42:33] MF : 200112
+ [12:42:33]Process-shared attributes won't be tested
+ [12:42:33]Alternative clock won't be tested
+ [12:42:33]Test conformance/interfaces/pthread_cond_broadcast/1-2.c unresolved: got 1073741846 (Invalid argument) on line 393 ([parent] Failed to set thread stack size)
+ conformance/interfaces/pthread_cond_broadcast/2-3: execution: UNRESOLVED: Output:
+ [12:42:36]Test starting
+ [12:42:36]System abilities:
+ [12:42:36] TPS : -1
+ [12:42:36] CS : 200112
+ [12:42:36] MON : -1
+ [12:42:36] MF : 200112
+ [12:42:36]Process-shared attributes won't be tested
+ [12:42:36]Alternative clock won't be tested
+ [12:42:36]Test conformance/interfaces/pthread_cond_broadcast/2-3.c unresolved: got 1073741846 (Invalid argument) on line 384 ([parent] Failed to set thread stack size)
+ conformance/interfaces/pthread_cond_broadcast/4-2: execution: INTERRUPTED: Output:
+ conformance/interfaces/pthread_cond_destroy/2-1: execution: INTERRUPTED: Output:
+ conformance/interfaces/pthread_cond_init/1-2: execution: UNTESTED: Output:
+ File conformance/interfaces/pthread_cond_init/1-2.c cannot test: This test requires unsupported features
+ conformance/interfaces/pthread_cond_init/1-3: execution: UNTESTED: Output:
+ File conformance/interfaces/pthread_cond_init/1-3.c cannot test: This test requires unsupported features
+ conformance/interfaces/pthread_cond_init/2-2: execution: UNTESTED: Output:
+ File conformance/interfaces/pthread_cond_init/2-2.c cannot test: This test requires unsupported features
+ conformance/interfaces/pthread_cond_init/4-1: execution: UNRESOLVED: Output:
+ Test conformance/interfaces/pthread_cond_init/4-1.c unresolved: got 1073741942 (Not supported) on line 145 (Cond attribute PSHARED failed)
+ conformance/interfaces/pthread_cond_init/4-2: execution: INTERRUPTED: Output:
+ Test conformance/interfaces/pthread_cond_init/4-2.c unresolved: got 1073741942 (Not supported) on line 171 (Cond attribute PSHARED failed)
+ conformance/interfaces/pthread_cond_signal/1-2: execution: INTERRUPTED: Output:
+ conformance/interfaces/pthread_cond_signal/4-2: execution: INTERRUPTED: Output:
+ conformance/interfaces/pthread_cond_timedwait/4-3: execution: INTERRUPTED: Output:
+ conformance/interfaces/pthread_cond_wait/4-1: execution: INTERRUPTED: Output:
+ conformance/interfaces/pthread_condattr_getpshared/1-2: execution: UNRESOLVED: Output:
+ Error in pthread_condattr_setpshared(), error: 1073741942
+ conformance/interfaces/pthread_condattr_setclock/1-2: execution: UNSUPPORTED: Output:
+ UNSUPPORTED: CLOCK_MONOTONIC is unsupported
+ conformance/interfaces/pthread_condattr_setclock/1-3: execution: UNSUPPORTED: Output:
+ _POSIX_CPUTIME unsupported
+ conformance/interfaces/pthread_condattr_setpshared/1-2: execution: FAILED: Output:
+ Test FAILED: Could not set pshared to PTHREAD_PROCESS_SHARED, error: 1073741942
+ conformance/interfaces/pthread_create/1-4: execution: UNTESTED: Output:
+ [13:44:56]System abilities:
+ [13:44:56] TSA: -1
+ [13:44:56] TSS: -1
+ [13:44:56] TPS: -1
+ [13:44:56] pagesize: 4096
+ [13:44:56] min stack size: -1
+ [13:44:56]File conformance/interfaces/pthread_create/threads_scenarii.c cannot test: The min stack size is not a multiple of the page size
+ conformance/interfaces/pthread_create/1-5: execution: UNTESTED: Output:
+ [13:44:56]System abilities:
+ [13:44:56] TSA: -1
+ [13:44:56] TSS: -1
+ [13:44:56] TPS: -1
+ [13:44:56] pagesize: 4096
+ [13:44:56] min stack size: -1
+ [13:44:56]File conformance/interfaces/pthread_create/threads_scenarii.c cannot test: The min stack size is not a multiple of the page size
+ conformance/interfaces/pthread_create/1-6: execution: UNTESTED: Output:
+ [13:44:57]System abilities:
+ [13:44:57] TSA: -1
+ [13:44:57] TSS: -1
+ [13:44:57] TPS: -1
+ [13:44:57] pagesize: 4096
+ [13:44:57] min stack size: -1
+ [13:44:57]File conformance/interfaces/pthread_create/threads_scenarii.c cannot test: The min stack size is not a multiple of the page size
+ conformance/interfaces/pthread_create/11-1: execution: UNSUPPORTED: Output:
+ _POSIX_THREAD_CPUTIME not supported
+ conformance/interfaces/pthread_create/14-1: execution: UNTESTED: Output:
+ [13:45:08]System abilities:
+ [13:45:08] TSA: -1
+ [13:45:08] TSS: -1
+ [13:45:08] TPS: -1
+ [13:45:08] pagesize: 4096
+ [13:45:08] min stack size: -1
+ [13:45:08]File conformance/interfaces/pthread_create/threads_scenarii.c cannot test: The min stack size is not a multiple of the page size
+ conformance/interfaces/pthread_create/15-1: execution: UNTESTED: Output:
+ [13:45:09]System abilities:
+ [13:45:09] TSA: -1
+ [13:45:09] TSS: -1
+ [13:45:09] TPS: -1
+ [13:45:09] pagesize: 4096
+ [13:45:09] min stack size: -1
+ [13:45:09]File conformance/interfaces/pthread_create/threads_scenarii.c cannot test: The min stack size is not a multiple of the page size
+ conformance/interfaces/pthread_create/3-2: execution: UNTESTED: Output:
+ [13:45:11]Growing down stack started upon 0x19fffa0 and we are currently down to 0x19fff60
+ [13:45:11]Test starting
+ Stack tests will be executed.
+ Sched tests won't be executed.
+ [13:45:11]System abilities:
+ [13:45:11] TSA: -1
+ [13:45:11] TSS: -1
+ [13:45:11] TPS: -1
+ [13:45:11] pagesize: 4096
+ [13:45:11] min stack size: -1
+ [13:45:11]File conformance/interfaces/pthread_create/threads_scenarii.c cannot test: The min stack size is not a multiple of the page size
+ conformance/interfaces/pthread_create/8-2: execution: UNTESTED: Output:
+ [13:45:13]System abilities:
+ [13:45:13] TSA: -1
+ [13:45:13] TSS: -1
+ [13:45:13] TPS: -1
+ [13:45:13] pagesize: 4096
+ [13:45:13] min stack size: -1
+ [13:45:13]File conformance/interfaces/pthread_create/threads_scenarii.c cannot test: The min stack size is not a multiple of the page size
+ conformance/interfaces/pthread_detach/1-2: execution: UNTESTED: Output:
+ [13:45:13]System abilities:
+ [13:45:13] TSA: -1
+ [13:45:13] TSS: -1
+ [13:45:13] TPS: -1
+ [13:45:13] pagesize: 4096
+ [13:45:13] min stack size: -1
+ [13:45:13]File conformance/interfaces/pthread_detach/threads_scenarii.c cannot test: The min stack size is not a multiple of the page size
+ conformance/interfaces/pthread_detach/2-2: execution: UNTESTED: Output:
+ [13:45:14]System abilities:
+ [13:45:14] TSA: -1
+ [13:45:14] TSS: -1
+ [13:45:14] TPS: -1
+ [13:45:14] pagesize: 4096
+ [13:45:14] min stack size: -1
+ [13:45:14]File conformance/interfaces/pthread_detach/threads_scenarii.c cannot test: The min stack size is not a multiple of the page size
+ conformance/interfaces/pthread_detach/4-3: execution: UNTESTED: Output:
+ [13:45:15]System abilities:
+ [13:45:16] TSA: -1
+ [13:45:16] TSS: -1
+ [13:45:16] TPS: -1
+ [13:45:16] pagesize: 4096
+ [13:45:16] min stack size: -1
+ [13:45:16]File conformance/interfaces/pthread_detach/threads_scenarii.c cannot test: The min stack size is not a multiple of the page size
+ conformance/interfaces/pthread_equal/2-1: execution: INTERRUPTED: Output:
+ conformance/interfaces/pthread_exit/1-2: execution: UNTESTED: Output:
+ [15:01:43]System abilities:
+ [15:01:43] TSA: -1
+ [15:01:43] TSS: -1
+ [15:01:43] TPS: -1
+ [15:01:43] pagesize: 4096
+ [15:01:43] min stack size: -1
+ [15:01:43]File conformance/interfaces/pthread_exit/threads_scenarii.c cannot test: The min stack size is not a multiple of the page size
+ conformance/interfaces/pthread_exit/2-2: execution: UNTESTED: Output:
+ [15:01:44]System abilities:
+ [15:01:44] TSA: -1
+ [15:01:44] TSS: -1
+ [15:01:44] TPS: -1
+ [15:01:44] pagesize: 4096
+ [15:01:44] min stack size: -1
+ [15:01:44]File conformance/interfaces/pthread_exit/threads_scenarii.c cannot test: The min stack size is not a multiple of the page size
+ conformance/interfaces/pthread_exit/3-2: execution: UNTESTED: Output:
+ [15:01:45]System abilities:
+ [15:01:45] TSA: -1
+ [15:01:45] TSS: -1
+ [15:01:45] TPS: -1
+ [15:01:45] pagesize: 4096
+ [15:01:45] min stack size: -1
+ [15:01:45]File conformance/interfaces/pthread_exit/threads_scenarii.c cannot test: The min stack size is not a multiple of the page size
+ conformance/interfaces/pthread_exit/4-1: execution: UNTESTED: Output:
+ [15:01:45]System abilities:
+ [15:01:45] TSA: -1
+ [15:01:45] TSS: -1
+ [15:01:45] TPS: -1
+ [15:01:45] pagesize: 4096
+ [15:01:45] min stack size: -1
+ [15:01:45]File conformance/interfaces/pthread_exit/threads_scenarii.c cannot test: The min stack size is not a multiple of the page size
+ conformance/interfaces/pthread_exit/5-1: execution: UNTESTED: Output:
+ [15:01:46]System abilities:
+ [15:01:46] TSA: -1
+ [15:01:46] TSS: -1
+ [15:01:46] TPS: -1
+ [15:01:46] pagesize: 4096
+ [15:01:46] min stack size: -1
+ [15:01:46]File conformance/interfaces/pthread_exit/threads_scenarii.c cannot test: The min stack size is not a multiple of the page size
+ conformance/interfaces/pthread_exit/6-1: execution: UNTESTED: Output:
+ [15:01:46]System abilities:
+ [15:01:46] TSA: -1
+ [15:01:46] TSS: -1
+ [15:01:46] TPS: -1
+ [15:01:46] pagesize: 4096
+ [15:01:46] min stack size: -1
+ [15:01:46]File conformance/interfaces/pthread_exit/threads_scenarii.c cannot test: The min stack size is not a multiple of the page size
+ conformance/interfaces/pthread_exit/6-2: execution: UNTESTED: Output:
+ [15:01:46]System abilities:
+ [15:01:46] TSA: -1
+ [15:01:46] TSS: -1
+ [15:01:46] TPS: -1
+ [15:01:46] pagesize: 4096
+ [15:01:46] min stack size: -1
+ [15:01:46]File conformance/interfaces/pthread_exit/threads_scenarii.c cannot test: The min stack size is not a multiple of the page size
+ conformance/interfaces/pthread_getschedparam/1-1: execution: FAILED: Output:
+ Error at pthread_getschedparam: rc=1073741902
+ conformance/interfaces/pthread_getschedparam/1-2: execution: UNRESOLVED: Output:
+ Error at pthread_setschedparam: rc=1073741902
+ conformance/interfaces/pthread_getschedparam/1-3: execution: UNRESOLVED: Output:
+ [15:01:49]Test conformance/interfaces/pthread_getschedparam/1-3.c unresolved: got 1073741902 (Function not implemented) on line 223 (Failed to get min priority)
+ conformance/interfaces/pthread_getschedparam/4-1: execution: UNRESOLVED: Output:
+ [15:01:49]Test conformance/interfaces/pthread_getschedparam/4-1.c unresolved: got 1073741902 (Function not implemented) on line 200 (Unexpected error returned)
+ conformance/interfaces/pthread_join/1-2: execution: UNTESTED: Output:
+ [15:01:54]System abilities:
+ [15:01:54] TSA: -1
+ [15:01:54] TSS: -1
+ [15:01:54] TPS: -1
+ [15:01:54] pagesize: 4096
+ [15:01:54] min stack size: -1
+ [15:01:54]File conformance/interfaces/pthread_join/threads_scenarii.c cannot test: The min stack size is not a multiple of the page size
+ conformance/interfaces/pthread_join/3-1: execution: UNRESOLVED: Output:
+ Error in pthread_testcancel(). Cancel request timed out.
+ : (os/kern) successful
+ conformance/interfaces/pthread_join/4-1: execution: UNTESTED: Output:
+ [15:02:06]System abilities:
+ [15:02:06] TSA: -1
+ [15:02:06] TSS: -1
+ [15:02:06] TPS: -1
+ [15:02:06] pagesize: 4096
+ [15:02:06] min stack size: -1
+ [15:02:06]File conformance/interfaces/pthread_join/threads_scenarii.c cannot test: The min stack size is not a multiple of the page size
+ conformance/interfaces/pthread_join/6-3: execution: UNTESTED: Output:
+ [15:02:07]System abilities:
+ [15:02:07] TSA: -1
+ [15:02:07] TSS: -1
+ [15:02:07] TPS: -1
+ [15:02:07] pagesize: 4096
+ [15:02:07] min stack size: -1
+ [15:02:07]File conformance/interfaces/pthread_join/threads_scenarii.c cannot test: The min stack size is not a multiple of the page size
+ conformance/interfaces/pthread_key_create/2-1: execution: INTERRUPTED: Output:
+ 2-1.test: /var/tmp/hurd-20090404/./libpthread/sysdeps/hurd/pt-getspecific.c:30: pthread_getspecific: Assertion `key < __pthread_key_count' failed.
+ conformance/interfaces/pthread_kill/2-1: execution: INTERRUPTED: Output:
+ conformance/interfaces/pthread_kill/3-1: execution: INTERRUPTED: Output:
+ conformance/interfaces/pthread_kill/7-1: execution: INTERRUPTED: Output:
+ conformance/interfaces/pthread_kill/8-1: execution: INTERRUPTED: Output:
+ conformance/interfaces/pthread_mutex_getprioceiling/1-1: execution: FAILED: Output:
+ Test FAILED: Error obtaining the priority ceiling
+
+Another system crash, due to conformance/interfaces/pthread_mutex_init/5-1:
+
+ (default pager): dropping data_request because of previous paging errors
+ (default pager): dropping data_request because of previous paging errors
+ (default pager): dropping data_request because of previous paging errors
+ (default pager): dropping data_request because of previous paging errors
+
+Disable the panic-causing test (conformance/interfaces/pthread_mutex_init/5-1)
+and restart:
+
+ conformance/interfaces/pthread_mutex_init/speculative/5-2: execution: UNTESTED: Output:
+ Implementation is:
+ GNU
+ 0.3
+ GNU-Mach 1.3.99/Hurd-0.3
+ This implementation is not tested yet
+ conformance/interfaces/pthread_mutex_timedlock/5-1: execution: INTERRUPTED: Output:
+ conformance/interfaces/pthread_mutex_timedlock/5-2: execution: INTERRUPTED: Output:
+ conformance/interfaces/pthread_mutex_trylock/4-3: execution: INTERRUPTED: Output:
+ conformance/interfaces/pthread_mutexattr_getprioceiling/1-1: execution: UNRESOLVED: Output:
+ Error obtaining the attribute process-shared
+ conformance/interfaces/pthread_mutexattr_getprioceiling/1-2: execution: UNRESOLVED: Output:
+ Error setting prioceiling to -1
+ conformance/interfaces/pthread_mutexattr_getprioceiling/3-1: execution: FAILED: Output:
+ Test FAILED: Invalid return code 1073741902. Expected EINVAL or 0.
+ conformance/interfaces/pthread_mutexattr_getprotocol/1-2: execution: UNRESOLVED: Output:
+ Error setting protocol to 1
+ conformance/interfaces/pthread_mutexattr_getpshared/1-2: execution: UNRESOLVED: Output:
+ Error in pthread_mutexattr_setpshared(), error: 1073741942
+ conformance/interfaces/pthread_mutexattr_gettype/speculative/3-1: execution: FAILED: Output:
+ Test FAILED: Incorrect return code. Expected EINVAL, but got: 0
+ conformance/interfaces/pthread_mutexattr_setprioceiling/1-1: execution: FAILED: Output:
+ Test FAILED: Error setting prioceiling to -1
+ conformance/interfaces/pthread_mutexattr_setprioceiling/3-1: execution: FAILED: Output:
+ Test FAILED: Invalid return code 1073741902. Expected EINVAL or 0.
+ conformance/interfaces/pthread_mutexattr_setprioceiling/3-2: execution: FAILED: Output:
+ Test FAILED: Invalid return code 1073741902. Expected EINVAL or 0.
+ conformance/interfaces/pthread_mutexattr_setprotocol/1-1: execution: UNRESOLVED: Output:
+ Error setting protocol to 1
+ conformance/interfaces/pthread_mutexattr_setpshared/1-1: execution: FAILED: Output:
+ Test FAILED: Cannot set pshared attribute to PTHREAD_PROCESS_SHARED. Error code: 1073741942
+ conformance/interfaces/pthread_mutexattr_setpshared/2-2: execution: FAILED: Output:
+ Test FAILED: Expected return code 0, got: 1073741942
+ conformance/interfaces/pthread_rwlock_rdlock/2-1: execution: FAILED: Output:
+ main: has priority: 1
+ main: attempt read lock
+ main: acquired read lock
+ main: create wr_thread, with priority: 0
+ wr_thread: attempt write lock
+ main: create rd_thread, with priority: -1
+ rd_thread: attempt read lock
+ rd_thread: acquired read lock
+ rd_thread: unlock read lock
+ Test FAILED: rd_thread did not block on read lock, when a reader owns the lock, and a higher priority writer is waiting for the lock
+ conformance/interfaces/pthread_rwlock_rdlock/2-2: execution: FAILED: Output:
+ main: attempt read lock
+ main: acquired read lock
+ main: create wr_thread, with priority: 0
+ wr_thread: attempt write lock
+ main: create rd_thread, with priority: 0
+ rd_thread: attempt read lock
+ rd_thread: acquired read lock
+ rd_thread: unlock read lock
+ Test FAILED: rd_thread did not block on read lock, when a reader owns the lock, and an equal priority writer is waiting for the lock
+ conformance/interfaces/pthread_rwlock_unlock/3-1: execution: FAILED: Output:
+ main: write lock
+ main: create writer1, with priority: 1
+ writer1: attempt write lock
+ main: create reader, with priority: 1
+ reader: attempt read lock
+ main: create writer2, with priority: -1
+ writer2: attempt write lock
+ main: release write lock
+ writer2: acquired writer lock
+ Test fail: writer did not get write lock, when main release the lock
+ conformance/interfaces/pthread_rwlock_unlock/4-1: execution: INTERRUPTED: Output:
+ 4-1.test: /var/tmp/hurd-20090404/./libpthread/sysdeps/generic/pt-rwlock-unlock.c:34: pthread_rwlock_unlock: Assertion `__pthread_spin_trylock (&rwlock->__held) == ((0x10 << 26) | ((16) & 0x3fff))' failed.
+ conformance/interfaces/pthread_rwlock_unlock/4-2: execution: INTERRUPTED: Output:
+ 4-2.test: /var/tmp/hurd-20090404/./libpthread/sysdeps/generic/pt-rwlock-unlock.c:34: pthread_rwlock_unlock: Assertion `__pthread_spin_trylock (&rwlock->__held) == ((0x10 << 26) | ((16) & 0x3fff))' failed.
+ main: attempt read lock
+ main: acquired read lock
+ main: create un_thread
+ un_thread: unlock read lock
+ conformance/interfaces/pthread_rwlock_wrlock/3-1: execution: INTERRUPTED: Output:
+ conformance/interfaces/pthread_rwlockattr_getpshared/2-1: execution: UNRESOLVED: Output:
+ Error at pthread_rwlockattr_setpshared()
+ conformance/interfaces/pthread_rwlockattr_setpshared/1-1: execution: FAILED: Output:
+ Test FAILED: Error at pthread_rwlockattr_setpshared(), return error: 1073741942
+ conformance/interfaces/pthread_setschedparam/1-1: execution: FAILED: Output:
+ Error at pthread_setschedparam: rc=1073741902
+ conformance/interfaces/pthread_setschedparam/1-2: execution: UNTESTED: Output:
+ [08:51:19]File conformance/interfaces/pthread_setschedparam/1-2.c cannot test: Failed to get min SCHED_RR range
+ conformance/interfaces/pthread_setschedparam/4-1: execution: UNRESOLVED: Output:
+ [08:51:20]Test conformance/interfaces/pthread_setschedparam/4-1.c unresolved: got 1073741902 (Function not implemented) on line 132 (Failed to set thread policy -- need to be root?)
+ conformance/interfaces/pthread_setschedparam/5-1: execution: INTERRUPTED: Output:
+ conformance/interfaces/pthread_setschedprio/1-1: execution: UNRESOLVED: Output:
+ Error at pthread_setschedparam: rc=1073741902
+ conformance/interfaces/pthread_sigmask/10-1: execution: FAILED: Output:
+ FAIL: SIGKILL was added to the signal mask
+ Test FAILED
+ conformance/interfaces/pthread_sigmask/18-1: execution: INTERRUPTED: Output:
+ conformance/interfaces/pthread_sigmask/4-1: execution: INTERRUPTED: Output:
+ conformance/interfaces/pthread_sigmask/5-1: execution: INTERRUPTED: Output:
+ conformance/interfaces/pthread_sigmask/6-1: execution: HUNG: Output:
+ conformance/interfaces/pthread_sigmask/9-1: execution: INTERRUPTED: Output:
+ conformance/interfaces/pthread_spin_lock/1-1: execution: INTERRUPTED: Output:
+ conformance/interfaces/sched_get_priority_max/1-1: execution: FAILED: Output:
+ An error occurs: Function not implemented
+ conformance/interfaces/sched_get_priority_max/1-2: execution: FAILED: Output:
+ An error occurs: Function not implemented
+ conformance/interfaces/sched_get_priority_max/1-3: execution: UNSUPPORTED: Output:
+ Does not support SS (SPORADIC SERVER)
+ conformance/interfaces/sched_get_priority_max/1-4: execution: FAILED: Output:
+ An error occurs: Function not implemented
+ conformance/interfaces/sched_get_priority_max/2-1: execution: FAILED: Output:
+ error is not EINVAL: Function not implemented
+ conformance/interfaces/sched_get_priority_min/1-1: execution: FAILED: Output:
+ An error occurs: Function not implemented
+ conformance/interfaces/sched_get_priority_min/1-2: execution: FAILED: Output:
+ An error occurs: Function not implemented
+ conformance/interfaces/sched_get_priority_min/1-3: execution: UNSUPPORTED: Output:
+ Does not support SS (SPORADIC SERVER)
+ conformance/interfaces/sched_get_priority_min/1-4: execution: FAILED: Output:
+ An error occurs: Function not implemented
+ conformance/interfaces/sched_get_priority_min/2-1: execution: FAILED: Output:
+ error is not EINVAL: Function not implemented
+ conformance/interfaces/sched_getparam/1-1: execution: FAILED: Output:
+ Return code is not zero.
+ conformance/interfaces/sched_getparam/2-1: execution: FAILED: Output:
+ Different results between pid == 0 and pid == getpid().
+ conformance/interfaces/sched_getparam/3-1: execution: FAILED: Output:
+ Unexpected error: Function not implemented
+ conformance/interfaces/sched_getparam/4-1: execution: FAILED: Output:
+ errno is not ESRCH: Function not implemented
+ conformance/interfaces/sched_getparam/6-1: execution: UNRESOLVED: Output:
+ errno is not EPERM: The system allows a non-rootuser to use sched_getparam(): Function not implemented
+ conformance/interfaces/sched_getparam/speculative/7-1: execution: UNRESOLVED: Output:
+ sched_getparam() return -1 and sets errno == 1073741902.
+ conformance/interfaces/sched_getscheduler/1-1: execution: FAILED: Output:
+ Unexpected error: Function not implemented
+ conformance/interfaces/sched_getscheduler/2-1: execution: UNTESTED: Output:
+ Will not test the behavior of sched_getscheduler() when pid is negative
+ because it is unspecified.
+ conformance/interfaces/sched_getscheduler/3-1: execution: FAILED: Output:
+ Returned code is -1.
+ conformance/interfaces/sched_getscheduler/4-1: execution: FAILED: Output:
+ Unexpected error: Function not implemented
+ conformance/interfaces/sched_getscheduler/7-1: execution: FAILED: Output:
+ errno is not EPERM: Function not implemented
+ conformance/interfaces/sched_rr_get_interval/1-1: execution: FAILED: Output:
+ Unexpected error: Function not implemented
+ conformance/interfaces/sched_rr_get_interval/2-1: execution: FAILED: Output:
+ interval.tv_sec not updated.
+ conformance/interfaces/sched_rr_get_interval/3-1: execution: FAILED: Output:
+ Returned error is not ESRCH: Function not implemented
+ conformance/interfaces/sched_rr_get_interval/speculative/5-1: execution: UNRESOLVED: Output:
+ sched_rr_get_interval() return -1 and sets errno == 1073741902.
+ conformance/interfaces/sched_setparam/1-1: execution: UNRESOLVED: Output:
+ An error occurs when calling sched_getparam(): Function not implemented
+ conformance/interfaces/sched_setparam/10-1: execution: UNRESOLVED: Output:
+ An error occurs when calling shmget(): Invalid argument
+ conformance/interfaces/sched_setparam/12-1: execution: UNTESTED: Output:
+ Not yet tested.
+ conformance/interfaces/sched_setparam/13-1: execution: UNTESTED: Output:
+ Not yet tested.
+ conformance/interfaces/sched_setparam/14-1: execution: UNTESTED: Output:
+ Not yet tested.
+ conformance/interfaces/sched_setparam/15-1: execution: UNTESTED: Output:
+ Will not test the effects of the sched_ss_low_priority,
+ sched_ss_repl_period, and sched_ss_init_budget members when the scheduling
+ policy of the target process is not SCHED_FIFO, SCHED_RR, or SCHED_SPORADIC.
+ It is implementation-defined.
+ conformance/interfaces/sched_setparam/16-1: execution: UNTESTED: Output:
+ Will not test the result of sched_setparam when the scheduling policy of the
+ target process is not SCHED_FIFO, SCHED_RR, or SCHED_SPORADIC.
+ It is implementation-defined.
+ conformance/interfaces/sched_setparam/17-1: execution: UNTESTED: Output:
+ Will not test that sched_setparam have no effect on the scheduling of threads
+ with system scheduling contention scope.
+ conformance/interfaces/sched_setparam/18-1: execution: UNTESTED: Output:
+ Will not test that the threads scheduling policy and associated parameters
+ are not affected.
+ conformance/interfaces/sched_setparam/19-1: execution: UNTESTED: Output:
+ Will not test that the underlying kernel-scheduled entities for the system
+ contention scope threads are not be affected by this sched_setparam().
+ conformance/interfaces/sched_setparam/2-1: execution: UNRESOLVED: Output:
+ An error occurs when calling sched_setscheduler(): Function not implemented
+ conformance/interfaces/sched_setparam/2-2: execution: UNRESOLVED: Output:
+ An error occurs when calling sched_setscheduler(): Function not implemented
+ conformance/interfaces/sched_setparam/22-1: execution: UNRESOLVED: Output:
+ An error occurs when calling sched_getparam(): Function not implemented
+ conformance/interfaces/sched_setparam/23-1: execution: UNRESOLVED: Output:
+ An error occurs when calling sched_getparam(): Function not implemented
+ conformance/interfaces/sched_setparam/23-2: execution: UNSUPPORTED: Output:
+ Does not support SS (SPORADIC SERVER)
+ conformance/interfaces/sched_setparam/23-3: execution: UNSUPPORTED: Output:
+ Does not support SS (SPORADIC SERVER)
+ conformance/interfaces/sched_setparam/23-4: execution: UNSUPPORTED: Output:
+ Does not support SS (SPORADIC SERVER)
+ conformance/interfaces/sched_setparam/23-5: execution: UNSUPPORTED: Output:
+ Does not support SS (SPORADIC SERVER)
+ conformance/interfaces/sched_setparam/23-6: execution: UNRESOLVED: Output:
+ An error occurs when calling sched_getparam(): Function not implemented
+ conformance/interfaces/sched_setparam/23-7: execution: UNRESOLVED: Output:
+ An error occurs when calling sched_getparam(): Function not implemented
+ conformance/interfaces/sched_setparam/25-1: execution: UNRESOLVED: Output:
+ An error occurs when calling sched_getscheduler(): Function not implemented
+ conformance/interfaces/sched_setparam/25-2: execution: UNSUPPORTED: Output:
+ Does not support SS (SPORADIC SERVER)
+ conformance/interfaces/sched_setparam/26-1: execution: UNRESOLVED: Output:
+ An error occurs when calling sched_getparam(): Function not implemented
+ conformance/interfaces/sched_setparam/27-1: execution: UNRESOLVED: Output:
+ An error occurs when calling sched_getparam(): Function not implemented
+ conformance/interfaces/sched_setparam/3-1: execution: UNTESTED: Output:
+ Will not test the behavior of sched_setparam() when pid is negative because
+ it is unspecified.
+ conformance/interfaces/sched_setparam/5-1: execution: UNRESOLVED: Output:
+ An error occurs when calling sched_getparam(): Function not implemented
+ conformance/interfaces/sched_setparam/6-1: execution: UNTESTED: Output:
+ Will not test the conditions under which one process has permission to
+ change the scheduling parameters of another process, because they are
+ implementation-defined.
+ conformance/interfaces/sched_setparam/7-1: execution: UNTESTED: Output:
+ Will not test that implementations may require the requesting process to
+ have the appropriate privilege to set its own scheduling parameters or those
+ of another process.
+ conformance/interfaces/sched_setparam/8-1: execution: UNTESTED: Output:
+ Will not test that the target process is moved to the tail of the thread
+ list for its priority when it is running.
+ conformance/interfaces/sched_setparam/9-1: execution: UNRESOLVED: Output:
+ An error occurs when calling shmget(): Invalid argument
+ conformance/interfaces/sched_setscheduler/1-1: execution: UNRESOLVED: Output:
+ Policy: SCHED_FIFO
+ Error calling sched_setscheduler() for SCHED_FIFO policy
+ Policy: SCHED_RR
+ Error calling sched_setscheduler() for SCHED_RR policy
+ Policy: SCHED_OTHER
+ Error calling sched_setscheduler() for SCHED_OTHER policy
+ conformance/interfaces/sched_setscheduler/10-1: execution: UNTESTED: Output:
+ Not yet tested.
+ conformance/interfaces/sched_setscheduler/11-1: execution: UNTESTED: Output:
+ Not yet tested.
+ conformance/interfaces/sched_setscheduler/12-1: execution: UNTESTED: Output:
+ Will not test that sched_setscheduler have no effect on the scheduling of
+ threads with system scheduling contention scope.
+ conformance/interfaces/sched_setscheduler/13-1: execution: UNTESTED: Output:
+ Will not test that the threads scheduling policy and associated parameters
+ are not affected.
+ conformance/interfaces/sched_setscheduler/14-1: execution: UNTESTED: Output:
+ Will not test that the underlying kernel-scheduled entities for the system
+ contention scope threads are not be affected by sched_setscheduler().
+ conformance/interfaces/sched_setscheduler/15-1: execution: UNSUPPORTED: Output:
+ Process contention scope threads are not supported.
+ conformance/interfaces/sched_setscheduler/16-1: execution: UNRESOLVED: Output:
+ An error occurs when calling sched_getscheduler(): Function not implemented
+ conformance/interfaces/sched_setscheduler/17-1: execution: UNRESOLVED: Output:
+ Policy: SCHED_FIFO
+ An error occurs when calling sched_getparam(): Function not implemented
+ conformance/interfaces/sched_setscheduler/17-2: execution: UNSUPPORTED: Output:
+ Does not support SS (SPORADIC SERVER)
+ conformance/interfaces/sched_setscheduler/17-3: execution: UNSUPPORTED: Output:
+ Does not support SS (SPORADIC SERVER)
+ conformance/interfaces/sched_setscheduler/17-4: execution: UNSUPPORTED: Output:
+ Does not support SS (SPORADIC SERVER)
+ conformance/interfaces/sched_setscheduler/17-5: execution: UNRESOLVED: Output:
+ An error occurs when calling sched_getparam(): Function not implemented
+ conformance/interfaces/sched_setscheduler/17-6: execution: UNRESOLVED: Output:
+ An error occurs when calling sched_getparam(): Function not implemented
+ conformance/interfaces/sched_setscheduler/17-7: execution: UNRESOLVED: Output:
+ An error occurs when calling sched_getparam(): Function not implemented
+ conformance/interfaces/sched_setscheduler/19-1: execution: UNRESOLVED: Output:
+ Policy: SCHED_FIFO
+ An error occurs when calling sched_get_priority_max(): Function not implemented
+ conformance/interfaces/sched_setscheduler/19-2: execution: UNSUPPORTED: Output:
+ Does not support SS (SPORADIC SERVER)
+ conformance/interfaces/sched_setscheduler/19-3: execution: UNSUPPORTED: Output:
+ Does not support SS (SPORADIC SERVER)
+ conformance/interfaces/sched_setscheduler/19-4: execution: UNSUPPORTED: Output:
+ Does not support SS (SPORADIC SERVER)
+ conformance/interfaces/sched_setscheduler/19-5: execution: FAILED: Output:
+ Unknow error: Function not implemented
+ conformance/interfaces/sched_setscheduler/2-1: execution: UNTESTED: Output:
+ Will not test the behavior of sched_setscheduler() when pid is negative
+ because it is unspecified.
+ conformance/interfaces/sched_setscheduler/20-1: execution: FAILED: Output:
+ errno is not EPERM: Function not implemented
+ conformance/interfaces/sched_setscheduler/21-1: execution: FAILED: Output:
+ errno is not ESRCH: Function not implemented
+ conformance/interfaces/sched_setscheduler/4-1: execution: UNRESOLVED: Output:
+ An error occurs when calling sched_getparam(): Function not implemented
+ conformance/interfaces/sched_setscheduler/5-1: execution: UNTESTED: Output:
+ Will not test the condition under which one process has the appropriate
+ privilege to change the scheduling parameters of another process because
+ they are implementation-defined.
+ conformance/interfaces/sched_setscheduler/6-1: execution: UNTESTED: Output:
+ Will not test that implementations may require that the requesting process
+ have permission to set its own scheduling parameters or those of another
+ process.
+ conformance/interfaces/sched_setscheduler/7-1: execution: UNTESTED: Output:
+ Will not test if implementation-defined restrictions apply as to the
+ appropriate privileges required to set a process' own scheduling policy, or
+ another process' scheduling policy, to a particular value.
+ conformance/interfaces/sched_setscheduler/9-1: execution: UNTESTED: Output:
+ Not yet tested.
+ conformance/interfaces/sem_close/1-1: execution: INTERRUPTED: Output:
+ unexpected error: sem_close 1-1: sem_open: Operation not supported
+ conformance/interfaces/sem_close/2-1: execution: INTERRUPTED: Output:
+ unexpected error: sem_close 2-1: sem_open: Operation not supported
+ conformance/interfaces/sem_close/3-1: execution: INTERRUPTED: Output:
+ unexpected error: sem_close 3-1: sem_open: Operation not supported
+ conformance/interfaces/sem_close/3-2: execution: UNRESOLVED: Output:
+ [08:56:54]Test conformance/interfaces/sem_close/3-2.c unresolved: got 1073741869 (Operation not supported) on line 113 (Failed to create the semaphore)
+ conformance/interfaces/sem_getvalue/1-1: execution: UNRESOLVED: Output:
+ unexpected error: sem_getvalue 1-1: sem_open: Operation not supported
+ conformance/interfaces/sem_getvalue/2-1: execution: UNRESOLVED: Output:
+ unexpected error: sem_getvalue 2-1: sem_open: Operation not supported
+ conformance/interfaces/sem_getvalue/4-1: execution: UNRESOLVED: Output:
+ unexpected error: sem_getvalue 4-1: sem_open: Operation not supported
+ conformance/interfaces/sem_getvalue/5-1: execution: UNRESOLVED: Output:
+ unexpected error: sem_getvalue 5-1: sem_open: Operation not supported
+ conformance/interfaces/sem_init/3-2: execution: UNRESOLVED: Output:
+ [08:56:59]Test conformance/interfaces/sem_init/3-2.c unresolved: got 1073741869 (Operation not supported) on line 135 (Failed to init the semaphore)
+ conformance/interfaces/sem_init/3-3: execution: UNRESOLVED: Output:
+ [08:57:00]Test conformance/interfaces/sem_init/3-3.c unresolved: got 1073741869 (Operation not supported) on line 134 (Failed to init the semaphore)
+ conformance/interfaces/sem_init/7-1: execution: UNTESTED: Output:
+ [08:57:01]sysconf( _SC_SEM_NSEMS_MAX ) = -1
+ [08:57:01]File conformance/interfaces/sem_init/7-1.c cannot test: There is no constraint on SEM_NSEMS_MAX
+ conformance/interfaces/sem_open/1-1: execution: FAILED: Output:
+ TEST FAILED
+ conformance/interfaces/sem_open/1-3: execution: UNRESOLVED: Output:
+ unexpected error: sem_open 1-3: sem_open: Operation not supported
+ conformance/interfaces/sem_open/1-4: execution: UNRESOLVED: Output:
+ unexpected error: sem_open 1-4: sem_open: Operation not supported
+ conformance/interfaces/sem_open/10-1: execution: UNRESOLVED: Output:
+ unexpected error: sem_open 10-1: sem_open: Operation not supported
+ conformance/interfaces/sem_open/15-1: execution: UNRESOLVED: Output:
+ [08:57:03]Test conformance/interfaces/sem_open/15-1.c unresolved: got 1073741869 (Operation not supported) on line 106 (Failed to sem_open)
+ conformance/interfaces/sem_open/2-1: execution: UNRESOLVED: Output:
+ unexpected error: sem_open 2-1: sem_open: Operation not supported
+ conformance/interfaces/sem_open/2-2: execution: UNRESOLVED: Output:
+ unexpected error: sem_open 2-2: sem_open: Operation not supported
+ conformance/interfaces/sem_open/3-1: execution: FAILED: Output:
+ TEST FAILED
+ conformance/interfaces/sem_open/4-1: execution: FAILED: Output:
+ TEST FAILED
+ conformance/interfaces/sem_open/6-1: execution: FAILED: Output:
+ TEST FAILED
+ conformance/interfaces/sem_post/1-1: execution: UNRESOLVED: Output:
+ unexpected error: sem_post 1-1: sem_open: Operation not supported
+ conformance/interfaces/sem_post/1-2: execution: UNRESOLVED: Output:
+ unexpected error: sem_post 1-2: sem_open: Operation not supported
+ conformance/interfaces/sem_post/2-1: execution: UNRESOLVED: Output:
+ unexpected error: sem_post 2-1: sem_open: Operation not supported
+ conformance/interfaces/sem_post/4-1: execution: UNRESOLVED: Output:
+ unexpected error: sem_post 4-1: sem_open: Operation not supported
+ conformance/interfaces/sem_post/5-1: execution: UNRESOLVED: Output:
+ unexpected error: sem_post 5-1: sem_open: Operation not supported
+ conformance/interfaces/sem_post/6-1: execution: UNRESOLVED: Output:
+ unexpected error: sem_post 6-1: sem_open: Operation not supported
+ conformance/interfaces/sem_post/8-1: execution: UNTESTED: Output:
+ _POSIX_PRIORITY_SCHEDULING not defined
+ conformance/interfaces/sem_timedwait/9-1: execution: FAILED: Output:
+ In handler
+ TEST FAILED: errno != EINTR
+ conformance/interfaces/sem_unlink/1-1: execution: INTERRUPTED: Output:
+ unexpected error: sem_unlink 1-1: sem_open: Operation not supported
+ conformance/interfaces/sem_unlink/2-1: execution: INTERRUPTED: Output:
+ unexpected error: sem_unlink 2-1: sem_open: Operation not supported
+ conformance/interfaces/sem_unlink/2-2: execution: UNRESOLVED: Output:
+ [08:57:23]Test conformance/interfaces/sem_unlink/2-2.c unresolved: got 1073741869 (Operation not supported) on line 158 (Failed to create the semaphore)
+ conformance/interfaces/sem_unlink/3-1: execution: UNRESOLVED: Output:
+ [08:57:23]Test conformance/interfaces/sem_unlink/3-1.c unresolved: got 1073741869 (Operation not supported) on line 156 (Failed to create the semaphore)
+ conformance/interfaces/sem_unlink/4-1: execution: FAILED: Output:
+ TEST FAILED: semaphore does exist
+ conformance/interfaces/sem_unlink/4-2: execution: FAILED: Output:
+ [08:57:24]Error 1073741869: Operation not supported
+ [08:57:24]Test conformance/interfaces/sem_unlink/4-2.c FAILED: The error was not ENOENT
+ conformance/interfaces/sem_unlink/6-1: execution: UNRESOLVED: Output:
+ [08:57:25]Test conformance/interfaces/sem_unlink/6-1.c unresolved: got 1073741869 (Operation not supported) on line 107 (Failed to create the semaphore)
+ conformance/interfaces/sem_unlink/7-1: execution: UNRESOLVED: Output:
+ [08:57:25]Test conformance/interfaces/sem_unlink/7-1.c unresolved: got 1073741869 (Operation not supported) on line 126 (Failed to create the semaphore)
+ conformance/interfaces/sem_unlink/9-1: execution: UNRESOLVED: Output:
+ [08:57:25]Test conformance/interfaces/sem_unlink/9-1.c unresolved: got 1073741869 (Operation not supported) on line 133 (Failed to create the semaphore)
+ conformance/interfaces/sem_wait/1-1: execution: UNRESOLVED: Output:
+ unexpected error: sem_wait 1-1: sem_open: Operation not supported
+ conformance/interfaces/sem_wait/1-2: execution: UNRESOLVED: Output:
+ unexpected error: sem_wait 2-1: sem_open: Operation not supported
+ conformance/interfaces/sem_wait/11-1: execution: UNRESOLVED: Output:
+ unexpected error: sem_trywait 11-1: sem_open: Operation not supported
+ conformance/interfaces/sem_wait/12-1: execution: INTERRUPTED: Output:
+ unexpected error: sem_trywait 12-1: sem_open: Operation not supported
+ conformance/interfaces/sem_wait/3-1: execution: UNRESOLVED: Output:
+ unexpected error: sem_wait 3-1: sem_open: Operation not supported
+ conformance/interfaces/sem_wait/5-1: execution: INTERRUPTED: Output:
+ unexpected errno: sem_trywait 5-1: sem_open: Operation not supported
+ conformance/interfaces/sem_wait/7-1: execution: UNRESOLVED: Output:
+ unexpected error: sem_wait 7-1: sem_open: Operation not supported
+ conformance/interfaces/shm_open/1-1: execution: INTERRUPTED: Output:
+ conformance/interfaces/shm_open/10-1: execution: UNTESTED: Output:
+ Will not test whether the file offset is set because it is unspecified.
+ conformance/interfaces/shm_open/12-1: execution: UNTESTED: Output:
+ Will not test the behavior of implementation when an application does not
+ specify exactly one of two values: O_RDONLY and O_RDWR.
+ conformance/interfaces/shm_open/14-2: execution: INTERRUPTED: Output:
+ conformance/interfaces/shm_open/19-1: execution: UNTESTED: Output:
+ Will not test the effect of calling shm_open() when the shared memory object
+ does not exists, the O_CREAT flags is set, and bits in mode other than the
+ file permission bits are set. It is unspecified.
+ conformance/interfaces/shm_open/2-1: execution: UNTESTED: Output:
+ Will not test that the shm_open() function create an open file description
+ that refers to the shared memory object and a file descriptor that refers to
+ conformance/interfaces/shm_open/23-1: execution: UNRESOLVED: Output:
+ error at sem_open: Operation not supported
+ conformance/interfaces/shm_open/24-1: execution: UNTESTED: Output:
+ Will not test the result of shm_open() when O_EXCL is set and O_CREAT is not
+ set because it is undefined.
+ conformance/interfaces/shm_open/26-2: execution: UNRESOLVED: Output:
+ You don't have permission to change your UID.
+ Try to rerun this test as root.
+ conformance/interfaces/shm_open/27-1: execution: UNTESTED: Output:
+ Will not test the result of shm_open() when using O_TRUNC with O_RDONLY.
+ It is undefined.
+ conformance/interfaces/shm_open/28-1: execution: INTERRUPTED: Output:
+ conformance/interfaces/shm_open/28-3: execution: INTERRUPTED: Output:
+ conformance/interfaces/shm_open/29-1: execution: UNTESTED: Output:
+ Will not test whether the name and shared memory object state remain valid
+ after a system reboot. It is unspecified.
+ conformance/interfaces/shm_open/3-1: execution: UNTESTED: Output:
+ Will not test whether the name appears in the file system and is visible to
+ other functions that take pathnames as arguments because it is unspecified.
+ conformance/interfaces/shm_open/36-1: execution: UNTESTED: Output:
+ It is very difficult to test that the shm_open() function sets errno = EINTR
+ when it is interrupted by a signal.
+ conformance/interfaces/shm_open/37-1: execution: FAILED: Output:
+ Name: '[GARBAGE]'
+ OK: open with success.
+ Name: '[GARBAGE]'
+ OK: open with success.
+ Name: '..'
+ Unexpected error: Is a directory
+ Name: '/'
+ OK: errno == EINVAL
+ Name: '//'
+ OK: errno == EINVAL
+ Name: '/abc'
+ OK: open with success.
+ Test FAILED
+ conformance/interfaces/shm_open/39-2: execution: UNRESOLVED: Output:
+ An error occurs when calling pathconf(): Invalid argument
+ conformance/interfaces/shm_open/42-1: execution: UNTESTED: Output:
+ Will not test that the shm_open() function sets errno to ENOSPC if there is
+ insufficient space for the creation of the new shared memory object.
+ conformance/interfaces/shm_open/5-1: execution: FAILED: Output:
+ Test FAILED
+ conformance/interfaces/shm_open/6-1: execution: UNTESTED: Output:
+ Will not test the effect of a name which does not begin with the slash
+ character because it is implementation-defined.
+ conformance/interfaces/shm_open/7-1: execution: UNTESTED: Output:
+ Will not test the interpretation of slash characters other than the leading
+ slash character in name because it is implementation-defined.
+ conformance/interfaces/shm_open/9-1: execution: UNTESTED: Output:
+ Will not test that the open file description is new.
+ conformance/interfaces/shm_unlink/10-2: execution: UNRESOLVED: Output:
+ An error occurs when calling pathconf(): Invalid argument
+ conformance/interfaces/shm_unlink/8-1: execution: UNRESOLVED: Output:
+ You don't have permission to change your UID.
+ Try to rerun this test as root.
+ conformance/interfaces/shm_unlink/9-1: execution: UNRESOLVED: Output:
+ You don't have permission to change your UID.
+ Try to rerun this test as root.
+ conformance/interfaces/sigaction/4-37: execution: FAILED: Output:
+ About to stop child
+ Child has continued
+ Test FAILED
+ conformance/interfaces/sigaction/17-23: execution: FAILED: Output:
+ Caught SIGURG
+ Test FAILED
+ conformance/interfaces/sigaction/12-41: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/12-4: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/4-28: execution: FAILED: Output:
+ About to stop child
+ Child has continued
+ Test FAILED
+ conformance/interfaces/sigaction/17-26: execution: FAILED: Output:
+ Caught SIGXFSZ
+ Test FAILED
+ conformance/interfaces/sigaction/12-49: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/12-8: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/12-45: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/12-18: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/4-42: execution: FAILED: Output:
+ About to stop child
+ Child has continued
+ Test FAILED
+ conformance/interfaces/sigaction/12-15: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/12-25: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/17-7: execution: FAILED: Output:
+ Caught SIGHUP
+ Test FAILED
+ conformance/interfaces/sigaction/4-48: execution: FAILED: Output:
+ About to stop child
+ Child has continued
+ Test FAILED
+ conformance/interfaces/sigaction/12-23: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/4-34: execution: FAILED: Output:
+ About to stop child
+ Child has continued
+ Test FAILED
+ conformance/interfaces/sigaction/12-24: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/4-43: execution: FAILED: Output:
+ About to stop child
+ Child has continued
+ Test FAILED
+ conformance/interfaces/sigaction/17-22: execution: FAILED: Output:
+ Caught SIGTRAP
+ Test FAILED
+ conformance/interfaces/sigaction/12-31: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/12-35: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/12-46: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/12-7: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/12-34: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/12-3: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/4-52: execution: FAILED: Output:
+ About to stop child
+ Child has continued
+ Test FAILED
+ conformance/interfaces/sigaction/4-30: execution: FAILED: Output:
+ About to stop child
+ Child has continued
+ Test FAILED
+ conformance/interfaces/sigaction/4-51: execution: FAILED: Output:
+ About to stop child
+ Child has continued
+ Test FAILED
+ conformance/interfaces/sigaction/12-13: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/4-36: execution: FAILED: Output:
+ About to stop child
+ Child has continued
+ Test FAILED
+ conformance/interfaces/sigaction/17-21: execution: FAILED: Output:
+ Caught SIGSYS
+ Test FAILED
+ conformance/interfaces/sigaction/17-11: execution: FAILED: Output:
+ Caught SIGQUIT
+ Test FAILED
+ conformance/interfaces/sigaction/4-38: execution: FAILED: Output:
+ About to stop child
+ Child has continued
+ Test FAILED
+ conformance/interfaces/sigaction/12-47: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/12-30: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/12-44: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/4-50: execution: FAILED: Output:
+ About to stop child
+ Child has continued
+ Test FAILED
+ conformance/interfaces/sigaction/12-27: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/12-20: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/4-40: execution: FAILED: Output:
+ About to stop child
+ Child has continued
+ Test FAILED
+ conformance/interfaces/sigaction/17-19: execution: FAILED: Output:
+ Caught SIGPOLL
+ Test FAILED
+ conformance/interfaces/sigaction/12-16: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/12-51: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/12-21: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/17-1: execution: FAILED: Output:
+ Caught SIGABRT
+ Test FAILED
+ conformance/interfaces/sigaction/4-32: execution: FAILED: Output:
+ About to stop child
+ Child has continued
+ Test FAILED
+ conformance/interfaces/sigaction/17-12: execution: FAILED: Output:
+ Caught SIGSEGV
+ Test FAILED
+ conformance/interfaces/sigaction/12-52: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/12-10: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/12-36: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/17-9: execution: FAILED: Output:
+ Caught SIGINT
+ Test FAILED
+ conformance/interfaces/sigaction/4-47: execution: FAILED: Output:
+ About to stop child
+ Child has continued
+ Test FAILED
+ conformance/interfaces/sigaction/12-11: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/17-10: execution: FAILED: Output:
+ Caught SIGPIPE
+ Test FAILED
+ conformance/interfaces/sigaction/12-5: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/12-48: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/12-19: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/4-46: execution: FAILED: Output:
+ About to stop child
+ Child has continued
+ Test FAILED
+ conformance/interfaces/sigaction/17-17: execution: FAILED: Output:
+ Caught SIGUSR1
+ Test FAILED
+ conformance/interfaces/sigaction/12-14: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/17-14: execution: FAILED: Output:
+ Caught SIGTSTP
+ Test FAILED
+ conformance/interfaces/sigaction/17-18: execution: FAILED: Output:
+ Caught SIGUSR2
+ Test FAILED
+ conformance/interfaces/sigaction/4-41: execution: FAILED: Output:
+ About to stop child
+ Child has continued
+ Test FAILED
+ conformance/interfaces/sigaction/12-43: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/12-28: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/17-6: execution: FAILED: Output:
+ Caught SIGFPE
+ Test FAILED
+ conformance/interfaces/sigaction/4-45: execution: FAILED: Output:
+ About to stop child
+ Child has continued
+ Test FAILED
+ conformance/interfaces/sigaction/4-35: execution: FAILED: Output:
+ About to stop child
+ Child has continued
+ Test FAILED
+ conformance/interfaces/sigaction/12-6: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/4-29: execution: FAILED: Output:
+ About to stop child
+ Child has continued
+ Test FAILED
+ conformance/interfaces/sigaction/17-16: execution: FAILED: Output:
+ Caught SIGTTOU
+ Test FAILED
+ conformance/interfaces/sigaction/4-39: execution: FAILED: Output:
+ About to stop child
+ Child has continued
+ Test FAILED
+ conformance/interfaces/sigaction/12-29: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/12-9: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/17-25: execution: FAILED: Output:
+ Caught SIGXCPU
+ Test FAILED
+ conformance/interfaces/sigaction/17-4: execution: FAILED: Output:
+ Caught SIGCHLD
+ Test FAILED
+ conformance/interfaces/sigaction/12-22: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/17-13: execution: FAILED: Output:
+ Caught SIGTERM
+ Test FAILED
+ conformance/interfaces/sigaction/4-31: execution: FAILED: Output:
+ About to stop child
+ Child has continued
+ Test FAILED
+ conformance/interfaces/sigaction/12-38: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/12-1: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/12-12: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/4-44: execution: FAILED: Output:
+ About to stop child
+ Child has continued
+ Test FAILED
+ conformance/interfaces/sigaction/4-49: execution: FAILED: Output:
+ About to stop child
+ Child has continued
+ Test FAILED
+ conformance/interfaces/sigaction/12-40: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/12-42: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/17-15: execution: FAILED: Output:
+ Caught SIGTTIN
+ Test FAILED
+ conformance/interfaces/sigaction/17-3: execution: FAILED: Output:
+ Caught SIGBUS
+ Test FAILED
+ conformance/interfaces/sigaction/12-2: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/17-5: execution: FAILED: Output:
+ Caught SIGCONT
+ Test FAILED
+ conformance/interfaces/sigaction/12-33: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/12-17: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/17-2: execution: FAILED: Output:
+ Caught SIGALRM
+ Test FAILED
+ conformance/interfaces/sigaction/12-37: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/17-20: execution: FAILED: Output:
+ Caught SIGPROF
+ Test FAILED
+ conformance/interfaces/sigaction/17-8: execution: FAILED: Output:
+ Caught SIGILL
+ Test FAILED
+ conformance/interfaces/sigaction/4-33: execution: FAILED: Output:
+ About to stop child
+ Child has continued
+ Test FAILED
+ conformance/interfaces/sigaction/12-39: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/12-50: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/12-32: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaction/4-27: execution: FAILED: Output:
+ About to stop child
+ Child has continued
+ Test FAILED
+ conformance/interfaces/sigaction/17-24: execution: FAILED: Output:
+ Caught SIGVTALRM
+ Test FAILED
+ conformance/interfaces/sigaction/12-26: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaltstack/1-1: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaltstack/11-1: execution: FAILED: Output:
+ Test FAILED: Expected return value of -1.
+ conformance/interfaces/sigaltstack/12-1: execution: FAILED: Output:
+ Test FAILED: Expected return value of -1.
+ conformance/interfaces/sigaltstack/2-1: execution: FAILED: Output:
+ Test FAILED: ss_sp of the handler's stack changed even though SS_DISABLE was set
+ conformance/interfaces/sigaltstack/3-1: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaltstack/6-1: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigaltstack/7-1: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigpause/2-1: execution: INTERRUPTED: Output:
+ conformance/interfaces/sigpending/1-2: execution: INTERRUPTED: Output:
+ Not all pending signals found
+ conformance/interfaces/sigpending/1-3: execution: INTERRUPTED: Output:
+ Error with send signals
+ Test FAILED
+ conformance/interfaces/sigqueue/10-1: execution: FAILED: Output:
+ sigqueue() failed on EINVAL but errno not set correctly
+ conformance/interfaces/sigqueue/11-1: execution: FAILED: Output:
+ sigqueue() failed on ESRCH but errno not set correctly
+ conformance/interfaces/sigqueue/12-1: execution: FAILED: Output:
+ sigqueue() failed but errno not set correctly
+ conformance/interfaces/sigqueue/2-1: execution: FAILED: Output:
+ Could not call sigqueue with sig = 0
+ conformance/interfaces/sigqueue/2-2: execution: FAILED: Output:
+ sigqueue() failed on ESRCH but errno not set correctly
+ At least one test FAILED -- see output for status
+ conformance/interfaces/sigqueue/3-1: execution: FAILED: Output:
+ Test FAILED: EPERM error not received
+ conformance/interfaces/sigset/6-1: execution: UNRESOLVED: Output:
+ Unexpected error while using sigset(): (os/kern) successful
+ conformance/interfaces/sigset/7-1: execution: UNRESOLVED: Output:
+ Unexpected error while using sigset(): (os/kern) successful
+ conformance/interfaces/sigset/8-1: execution: FAILED: Output:
+ Test FAILED: sigset() didn't return SIG_HOLD
+ conformance/interfaces/sigsuspend/1-1: execution: UNRESOLVED: Output:
+ suspending child
+ SIGUSR2 called. Inside handler
+ parent sending child a SIGUSR2 signal
+ parent sending child a SIGUSR1 signal
+ Exit status from child is 1
+ Test UNRESOLVED: Either sigsuspend did not successfully block SIGUSR2, OR sigsuspend returned before handling the signal SIGUSR1
+ conformance/interfaces/sigtimedwait/1-1: execution: FAILED: Output:
+ Test FAILED: sigtimedwait() did not return in the required time
+ conformance/interfaces/sigtimedwait/4-1: execution: FAILED: Output:
+ Call to sigtimedwait() failed
+ : Function not implemented
+ conformance/interfaces/sigtimedwait/6-1: execution: FAILED: Output:
+ Test FAILED: sigtimedwait() did set errno to EAGAIN
+ conformance/interfaces/sigwait/1-1: execution: FAILED: Output:
+ Signal SIGALRM is not pending!
+ conformance/interfaces/sigwait/3-1: execution: FAILED: Output:
+ Test FAILED
+ conformance/interfaces/sigwait/6-1: execution: FAILED: Output:
+ [09:04:10]0 threads were awaken
+ [09:04:10]Test conformance/interfaces/sigwait/6-1.c FAILED: Unexpected number of threads awaken
+ conformance/interfaces/sigwaitinfo/1-1: execution: UNRESOLVED: Output:
+ Call to sigwaitinfo() failed
+ : Function not implemented
+ conformance/interfaces/sigwaitinfo/3-1: execution: FAILED: Output:
+ Call to sigwaitinfo() failed
+ : Function not implemented
+ Child calling sigwaitinfo()
+ parent sending child a SIGUSR1 signal
+ Exit status from child is 2
+ Test FAILED
+ conformance/interfaces/sigwaitinfo/9-1: execution: FAILED: Output:
+ Call to sigwaitinfo() failed
+ : Function not implemented
+ conformance/interfaces/strftime/2-1: execution: INTERRUPTED: Output:
+ conformance/interfaces/timer_create/1-1: execution: FAILED: Output:
+ timer_create() did not return success
+ : Function not implemented
+ conformance/interfaces/timer_create/10-1: execution: UNRESOLVED: Output:
+ sysconf(_SC_CPUTIME) returns: -1
+ conformance/interfaces/timer_create/11-1: execution: UNSUPPORTED: Output:
+ rc = -1
+ _POSIX_THREAD_CPUTIME unsupported
+ conformance/interfaces/timer_create/16-1: execution: FAILED: Output:
+ errno != EINVAL
+ Test FAILED
+ conformance/interfaces/timer_create/3-1: execution: FAILED: Output:
+ timer_create() did not return success
+ : Function not implemented
+ conformance/interfaces/timer_create/7-1: execution: UNSUPPORTED: Output:
+ CLOCK_MONOTONIC unsupported
+ conformance/interfaces/timer_create/8-1: execution: UNRESOLVED: Output:
+ timer_create() did not return success
+ : Function not implemented
+ conformance/interfaces/timer_create/9-1: execution: UNRESOLVED: Output:
+ timer_create() did not return success
+ : Function not implemented
+ conformance/interfaces/timer_create/speculative/2-1: execution: UNRESOLVED: Output:
+ timer_create() did not return success
+ : Function not implemented
+ conformance/interfaces/timer_create/speculative/5-1: execution: UNRESOLVED: Output:
+ timer_create() did not return success
+ : Function not implemented
+ conformance/interfaces/timer_delete/1-1: execution: UNRESOLVED: Output:
+ timer_create() did not return success
+ : Function not implemented
+ conformance/interfaces/timer_delete/1-2: execution: UNRESOLVED: Output:
+ timer_create() did not return success
+ : Function not implemented
+ conformance/interfaces/timer_delete/speculative/5-1: execution: FAILED: Output:
+ timer_delete() returned -1, but didn't set errno!=EINVAL
+ conformance/interfaces/timer_delete/speculative/5-2: execution: UNRESOLVED: Output:
+ timer_create() did not return success
+ : Function not implemented
+ conformance/interfaces/timer_getoverrun/1-1: execution: UNRESOLVED: Output:
+ timer_create() did not return success
+ : Function not implemented
+ conformance/interfaces/timer_getoverrun/2-1: execution: UNRESOLVED: Output:
+ timer_create() did not return success
+ : Function not implemented
+ conformance/interfaces/timer_getoverrun/2-2: execution: UNRESOLVED: Output:
+ timer_create() did not return success
+ : Function not implemented
+ conformance/interfaces/timer_getoverrun/2-3: execution: UNRESOLVED: Output:
+ timer_create() did not return success
+ : Function not implemented
+ conformance/interfaces/timer_getoverrun/3-1: execution: UNTESTED: Output:
+ Cannot be tested as DELAYTIMER_MAX is too large.
+ DELAYTIMER_MAX is ffffffff
+ conformance/interfaces/timer_getoverrun/speculative/6-1: execution: FAILED: Output:
+ fcn returned -1, but errno!=EINVAL
+ Test FAILED
+ conformance/interfaces/timer_getoverrun/speculative/6-2: execution: UNRESOLVED: Output:
+ timer_create() did not return success
+ : Function not implemented
+ conformance/interfaces/timer_getoverrun/speculative/6-3: execution: UNRESOLVED: Output:
+ timer_create() did not return success
+ : Function not implemented
+ conformance/interfaces/timer_gettime/1-1: execution: UNRESOLVED: Output:
+ timer_create() did not return success
+ : Function not implemented
+ conformance/interfaces/timer_gettime/1-2: execution: UNRESOLVED: Output:
+ timer_create() did not return success
+ : Function not implemented
+ conformance/interfaces/timer_gettime/1-3: execution: UNRESOLVED: Output:
+ timer_create() did not return success
+ : Function not implemented
+ conformance/interfaces/timer_gettime/1-4: execution: UNRESOLVED: Output:
+ timer_create() did not return success
+ : Function not implemented
+ conformance/interfaces/timer_gettime/2-1: execution: UNRESOLVED: Output:
+ timer_create() did not return success
+ : Function not implemented
+ conformance/interfaces/timer_gettime/2-2: execution: UNRESOLVED: Output:
+ timer_create() did not return success
+ : Function not implemented
+ conformance/interfaces/timer_gettime/3-1: execution: UNRESOLVED: Output:
+ timer_create() did not return success
+ : Function not implemented
+ conformance/interfaces/timer_gettime/speculative/6-1: execution: FAILED: Output:
+ fcn returned -1 but errno!=EINVAL
+ Test FAILED
+ conformance/interfaces/timer_gettime/speculative/6-2: execution: UNRESOLVED: Output:
+ timer_create() did not return success
+ : Function not implemented
+ conformance/interfaces/timer_gettime/speculative/6-3: execution: UNRESOLVED: Output:
+ timer_create() did not return success
+ : Function not implemented
+ conformance/interfaces/timer_settime/1-1: execution: UNRESOLVED: Output:
+ timer_create() did not return success
+ : Function not implemented
+ conformance/interfaces/timer_settime/1-2: execution: UNRESOLVED: Output:
+ timer_create() did not return success
+ : Function not implemented
+ conformance/interfaces/timer_settime/13-1: execution: UNRESOLVED: Output:
+ timer_create() did not return success
+ : Function not implemented
+ conformance/interfaces/timer_settime/2-1: execution: UNRESOLVED: Output:
+ timer_create() did not return success
+ : Function not implemented
+ conformance/interfaces/timer_settime/3-1: execution: UNRESOLVED: Output:
+ timer_create() did not return success
+ : Function not implemented
+ conformance/interfaces/timer_settime/3-2: execution: UNRESOLVED: Output:
+ timer_create() did not return success
+ : Function not implemented
+ conformance/interfaces/timer_settime/3-3: execution: UNRESOLVED: Output:
+ timer_create() did not return success
+ : Function not implemented
+ conformance/interfaces/timer_settime/5-1: execution: UNRESOLVED: Output:
+ timer_create() did not return success
+ : Function not implemented
+ conformance/interfaces/timer_settime/5-2: execution: UNRESOLVED: Output:
+ timer_create() did not return success
+ : Function not implemented
+ conformance/interfaces/timer_settime/5-3: execution: UNRESOLVED: Output:
+ timer_create() did not return success
+ : Function not implemented
+ conformance/interfaces/timer_settime/6-1: execution: UNRESOLVED: Output:
+ timer_create() did not return success
+ : Function not implemented
+ conformance/interfaces/timer_settime/8-1: execution: UNRESOLVED: Output:
+ timer_create() did not return success
+ : Function not implemented
+ conformance/interfaces/timer_settime/8-2: execution: UNRESOLVED: Output:
+ timer_create() did not return success
+ : Function not implemented
+ conformance/interfaces/timer_settime/8-3: execution: UNRESOLVED: Output:
+ timer_create() did not return success
+ : Function not implemented
+ conformance/interfaces/timer_settime/8-4: execution: UNRESOLVED: Output:
+ timer_create() did not return success
+ : Function not implemented
+ conformance/interfaces/timer_settime/9-1: execution: UNRESOLVED: Output:
+ timer_create() did not return success
+ : Function not implemented
+ conformance/interfaces/timer_settime/9-2: execution: UNRESOLVED: Output:
+ timer_create() did not return success
+ : Function not implemented
+ conformance/interfaces/timer_settime/speculative/12-1: execution: FAILED: Output:
+ fcn returned -1, but errno!=EINVAL
+ Test FAILED
+ conformance/interfaces/timer_settime/speculative/12-2: execution: UNRESOLVED: Output:
+ timer_create() did not return success
+ : Function not implemented
+ conformance/interfaces/timer_settime/speculative/12-3: execution: UNRESOLVED: Output:
+ timer_create() did not return success
+ : Function not implemented
+ functional/threads/schedule/1-1: execution: UNRESOLVED: Output:
+ unexpected error: scheduler 5-4: pthread_attr_setschedpolicy
+ functional/threads/schedule/1-2: execution: UNRESOLVED: Output:
+ unexpected error: scheduler 5-5: pthread_setschedparam
diff --git a/open_issues/perlmagick.mdwn b/open_issues/perlmagick.mdwn
new file mode 100644
index 00000000..1daac62b
--- /dev/null
+++ b/open_issues/perlmagick.mdwn
@@ -0,0 +1,64 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!debbug 557771]]
+
+# Bisecting
+
+ * Good
+
+ * 7:6.4.0.9.dfsg1-1 (2008-04-22) built from
+ <http://snapshot.debian.net/package/imagemagick>
+ * 6.4.0-11
+ * 6.4.1-0
+ * 6.4.1-1
+
+ * Bad
+
+ * 6.4.1-2
+ * 6.4.1-5
+ * 6.4.1-10
+ * 6.4.2-10
+ * 6.4.5-9
+ * 6.4.8-0 / Debian 6.4.8.0-1
+ * 6.5.5-3 / Debian 6.5.5.3-1
+ * 6.5.8.3-1 from Debian unstable (also in testing)
+ * Svn trunk (r848)
+
+
+# 6.4.1-1 -> 6.4.1-2
+
+ -CFLAGS = -g -O2 -Wall -W -pthread
+ +CFLAGS = -fopenmp -g -O2 -Wall -W -pthread
+ -GOMP_LIBS =
+ +GOMP_LIBS = -lgomp
+ -LDFLAGS = -lfreetype -lz
+ +LDFLAGS = -fopenmp -lfreetype -lz
+
+Etc.
+
+ +/usr/include/pthread.h:
+ +
+ +/usr/include/pthread/pthread.h:
+ +
+ +/usr/include/bits/spin-lock-inline.h:
+ +
+ +/usr/include/bits/cancelation.h:
+ +
+ +/usr/include/bits/pthread-np.h:
+ +
+ +/usr/lib/gcc/i486-gnu/4.4.2/include/omp.h:
+
+
+# Other
+
+[[!debbug 551017]]
+
+Code in Svn: `+ 1` missing to account for both `/` and `\0`.
diff --git a/hurd/running/debian/porting/pth.mdwn b/open_issues/pth.mdwn
index 4424fe82..bf9c70d7 100644
--- a/hurd/running/debian/porting/pth.mdwn
+++ b/open_issues/pth.mdwn
@@ -1,12 +1,14 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!tag open_issue_porting]]
<azeem> seems pth still doesn't work
<bddebian> Doesn't build or doesn't work?
diff --git a/microkernel/mach/gnumach/open_issues/resource_management_problems.mdwn b/open_issues/resource_management_problems.mdwn
index e949fa96..ab233dbb 100644
--- a/microkernel/mach/gnumach/open_issues/resource_management_problems.mdwn
+++ b/open_issues/resource_management_problems.mdwn
@@ -1,19 +1,26 @@
-[[meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-[[Mach]] interfaces do not allow for proper resource accounting, when a server
-allocates resources on behalf of a client.
+[[!tag open_issue_gnumach open_issue_hurd open_issue_viengoos]]
+
+[[microkernel/Mach]] interfaces do not allow for proper resource accounting,
+when a server allocates resources on behalf of a client.
Mach can't do a good job at resource management, as it doesn't have enough
information how resources are used: which data is important and which is
discardable, for example.
These issues are what Neal Walfield is working on with his new kernel
-[[viengoos]].
+[[microkernel/viengoos]].
+
+
+# Examples
+
+ * [[configure max command line length]]
diff --git a/open_issues/resource_management_problems/configure_max_command_line_length.mdwn b/open_issues/resource_management_problems/configure_max_command_line_length.mdwn
new file mode 100644
index 00000000..6c0a0d99
--- /dev/null
+++ b/open_issues/resource_management_problems/configure_max_command_line_length.mdwn
@@ -0,0 +1,17 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!tag open_issue_porting]]
+
+ <terpstra> do the buildds also crash?
+ <youpi> sometimes
+ <youpi> usually when a configure scripts tries to find out how large a
+ command line can be
+ <youpi> (thus eating all memory)
diff --git a/hurd/running/debian/porting/runit.mdwn b/open_issues/runit.mdwn
index 395dd14d..c7a0962c 100644
--- a/hurd/running/debian/porting/runit.mdwn
+++ b/open_issues/runit.mdwn
@@ -1,12 +1,14 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!tag open_issue_porting]]
The `runit` package doesn't work, even its test suite doesn't finish.
diff --git a/open_issues/screen.mdwn b/open_issues/screen.mdwn
new file mode 100644
index 00000000..6ece5c40
--- /dev/null
+++ b/open_issues/screen.mdwn
@@ -0,0 +1,116 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!tag open_issue_porting]]
+
+Typing `C-c` (*SIGINT*) in a *screen* session (Debian package 4.0.3-14; -11 is
+fine):
+
+ * shell prompt: no reaction (nothing printed)
+ * `sleep 10` running: `^C` printed, but SIGINT is not sent.
+
+[[!debbug 522689#38]].
+
+---
+
+Revisit this issue: [[!debbug 97343]] -- special handling of `TIOCSCTTY`
+depending on `__GNU__`.
+
+---
+
+`#ifdef linux` and friends are used in quite a number of places.
+
+---
+
+All diffs are GNU/Linux vs. GNU/Hurd.
+
+ /*
+ * If your system supports BSD4.4's seteuid() and setegid(), define
+ * HAVE_SETEUID.
+ */
+ -/* #undef HAVE_SETEUID */
+ +#define HAVE_SETEUID 1
+
+TODO: check.
+
+---
+
+ /*
+ * define HAVE_SVR4_PTYS if you have a /dev/ptmx character special
+ * device and support the ptsname(), grantpt(), unlockpt() functions.
+ */
+ -#define HAVE_SVR4_PTYS 1
+ +/* #undef HAVE_SVR4_PTYS */
+
+ /*
+ * define HAVE_GETPT if you have the getpt() function.
+ */
+ #define HAVE_GETPT 1
+
+ /*
+ * define HAVE_OPENPTY if your system has the openpty() call.
+ */
+ -/* #undef HAVE_OPENPTY */
+ +#define HAVE_OPENPTY 1
+
+ /*
+ * define PTYRANGE0 and or PTYRANGE1 if you want to adapt screen
+ * to unusual environments. E.g. For SunOs the defaults are "qpr" and
+ * "0123456789abcdef". For SunOs 4.1.2
+ * #define PTYRANGE0 "pqrstuvwxyzPQRST"
+ * is recommended by Dan Jacobson.
+ */
+ -/* #undef PTYRANGE0 */
+ -/* #undef PTYRANGE1 */
+ +#define PTYRANGE0 "pq"
+ +#define PTYRANGE1 "0123456789abcdefghijklmnopqrstuv"
+
+TODO: check: `HAVE_SVR4_PTYS` is due to `configure.in` doing `test -c
+/dev/ptmx`. But: even if we don't have that file, we still have `ptsname`,
+`grantpt`, `unlockpt`.
+
+---
+
+ gcc -c -I. -I. -g -O2 -O2 -g -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers pty.c
+ +pty.c: In function 'OpenPTY':
+ +pty.c:323: warning: implicit declaration of function 'openpty'
+ +pty.c: At top level:
+ +pty.c:75: warning: 'PtyName' defined but not used
+ +pty.c:86: warning: 'PtyProto' defined but not used
+ +pty.c:87: warning: 'TtyProto' defined but not used
+
+TODO: check.
+
+---
+
+ --- linux/osdef.h 2009-10-06 18:43:53.000000000 +0200
+ +++ screen-4.0.3/osdef.h 2009-10-06 18:49:49.000000000 +0200
+ @@ -42,13 +42,19 @@
+ #endif
+
+ #ifdef SYSV
+ +extern char *strchr __P((char *, int));
+ +extern char *strrchr __P((char *, int));
+ +extern char *memset __P((char *, int, int));
+ +extern int memcmp __P((char *, char *, int));
+ #else
+ #endif
+
+ #ifndef USEBCOPY
+ # ifdef USEMEMCPY
+ +extern void memcpy __P((char *, char *, int));
+ # else
+ # ifdef USEMEMMOVE
+ +extern void memmove __P((char *, char *, int));
+ # else
+ # endif
+ # endif
+
+TODO: check.
diff --git a/open_issues/socat.mdwn b/open_issues/socat.mdwn
new file mode 100644
index 00000000..1961a9a8
--- /dev/null
+++ b/open_issues/socat.mdwn
@@ -0,0 +1,15 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!tag open_issue_porting]]
+
+`socat` needs porting. Some work has already been done in 2007, see
+<http://www.dest-unreach.org/socat/contrib/socat-hurd.html> or contact
+[[Thomas_Schwinge|tschwinge]].
diff --git a/hurd/open_issues/some_todo_list.mdwn b/open_issues/some_todo_list.mdwn
index d9aab4d1..5f8470b7 100644
--- a/hurd/open_issues/some_todo_list.mdwn
+++ b/open_issues/some_todo_list.mdwn
@@ -1,13 +1,15 @@
-[[meta copyright="Copyright © 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free
-Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!tag open_issue_hurd]]
This todo is primarily targetted at the Hurd proper
and applications that rely on the Hurd interfaces.
diff --git a/open_issues/sync_but_still_unclean_filesystem.mdwn b/open_issues/sync_but_still_unclean_filesystem.mdwn
new file mode 100644
index 00000000..f1fbb4e0
--- /dev/null
+++ b/open_issues/sync_but_still_unclean_filesystem.mdwn
@@ -0,0 +1,18 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!tag open_issue_gnumach open_issue_hurd]]
+
+\#hurd, 2010, end of May / beginning of June
+
+ [runnign sync, but sill unclean filesystem at next boot]
+ <slpz> guillem: when libpager syncs an object, it sends an m_o_lock_request and waits (if the synchronous argument was specified) for a m_o_lock_completed. But m_o_lock_completed only means that dirty pages have been sent to the translator, and this one still needs to write them to the backing storage
+ <slpz> guillem: there's no problem if sync() returns before actually writting the changes to disk, but this also happens when shutting down the translator
+ <slpz> guillem: in theory, locking mechanisms in libpager should prevent this from happening by keeping track of write operations, but this seems to fail in some situations
diff --git a/open_issues/term_blocking.mdwn b/open_issues/term_blocking.mdwn
new file mode 100644
index 00000000..8d3e3b9f
--- /dev/null
+++ b/open_issues/term_blocking.mdwn
@@ -0,0 +1,100 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!tag open_issue_hurd]]
+
+There must be some blocking / dead-locking (?) problem in `term`:
+
+ # w | grep [t]sch
+ tschwing p1 192.168.10.60: Tue 8PM 0:03 2172 /bin/bash
+ tschwing p2 192.168.10.60: Tue 4PM 40hrs 689 emacs
+ tschwing p3 192.168.10.60: 8:52PM 11:37 15307 /bin/bash
+ tschwing p0 192.168.10.60: 6:42PM 11:47 8104 /bin/bash
+ tschwing p8 192.168.10.60: 8:27AM 0:02 16510 /bin/bash
+
+Now open a new screen window, or login shell, or...
+
+ # ps -Af | tail
+ [...]
+ tschwinge 16538 676 p6 0:00.08 /bin/bash
+ root 16554 128 co 0:00.09 ps -Af
+ root 16555 128 co 0:00.01 tail
+
+`bash` is started (on `p6`), but newer makes it to the shell promt; doesn't
+even start to execute `.bash_profile` / `.bashrc`. The next shell started, on
+the next available pseudoterminal, will work without problems.
+
+The `term` on `p6` has already been running before:
+
+ # ps -Af | grep [t]typ6
+ root 6871 3 - 5:45.86 /hurd/term /dev/ptyp6 pty-master /dev/ttyp6
+
+In this situation, `w` will sometimes report erroneous values for *IDLE*
+for the process using that terminal.
+
+Killed that `term` instance, and things were fine again.
+
+
+All this reproducible happens while running the [[GDB testsuite]].
+
+---
+
+Have a freshly started shell blocking on such a `term` instance.
+
+ $ ps -F hurd-long -p 1766 -T -Q
+ PID TH# UID PPID PGrp Sess TH Vmem RSS %CPU User System Args
+ 1766 0 3 1 1 6 131M 1.14M 0.0 0:28.85 5:40.91 /hurd/term /dev/ptyp3 pty-master /dev/ttyp3
+ 0 0.0 0:05.76 1:08.48
+ 1 0.0 0:00.00 0:00.01
+ 2 0.0 0:06.40 1:11.52
+ 3 0.0 0:05.76 1:09.89
+ 4 0.0 0:05.42 1:06.74
+ 5 0.0 0:05.50 1:04.25
+
+... and after 5:45 h:
+
+ $ ps -F hurd-long -p 21987 -T -Q
+ PID TH# UID PPID PGrp Sess TH Vmem RSS %CPU User System Args
+ 21987 1001 676 21987 21987 2 148M 2.03M 0.0 0:00.02 0:00.07 /bin/bash
+ 0 0.0 0:00.02 0:00.07
+ 1 0.0 0:00.00 0:00.00
+
+ $ ps -F hurd-long -p 1766 -T -Q
+ PID TH# UID PPID PGrp Sess TH Vmem RSS %CPU User System Args
+ 1766 0 3 1 1 6 131M 1.14M 0.0 0:29.04 5:42.38 /hurd/term /dev/ptyp3 pty-master /dev/ttyp3
+ 0 0.0 0:05.76 1:08.48
+ 1 0.0 0:00.00 0:00.01
+ 2 0.0 0:06.41 1:11.90
+ 3 0.0 0:05.82 1:10.28
+ 4 0.0 0:05.52 1:07.06
+ 5 0.0 0:05.52 1:04.63
+
+ $ sudo gdb /hurd/term 1766
+ [sudo] password for tschwinge:
+ GNU gdb (GDB) 7.0-debian
+ Copyright (C) 2009 Free Software Foundation, Inc.
+ License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+ This is free software: you are free to change and redistribute it.
+ There is NO WARRANTY, to the extent permitted by law. Type "show copying"
+ and "show warranty" for details.
+ This GDB was configured as "i486-gnu".
+ For bug reporting instructions, please see:
+ <http://www.gnu.org/software/gdb/bugs/>...
+ Reading symbols from /hurd/term...Reading symbols from /usr/lib/debug/hurd/term...done.
+ (no debugging symbols found)...done.
+ Attaching to program `/hurd/term', pid 1766
+ [New Thread 1766.1]
+ [New Thread 1766.2]
+ [New Thread 1766.3]
+ [New Thread 1766.4]
+ [New Thread 1766.5]
+ [New Thread 1766.6]
+ Reading symbols from /lib/libhurdbugaddr.so.0.3...Reading symbols from /usr/lib/debug/lib/libhurdbugaddr.so.0.3...
+ [System doesn't respond anymore, but no kernel crash.]
diff --git a/open_issues/time.mdwn b/open_issues/time.mdwn
new file mode 100644
index 00000000..eda5b635
--- /dev/null
+++ b/open_issues/time.mdwn
@@ -0,0 +1,55 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!tag open_issue_porting]]
+
+Neither the `time` executable from the GNU time package work completely
+correctly, nor does the GNU Bash built-in one.
+
+ tschwinge@flubber:~ $ \time sleep 2
+ 0.00user 0.00system 9:38:00elapsed 0%CPU (0avgtext+0avgdata 0maxresident)k
+ 0inputs+0outputs (0major+0minor)pagefaults 0swaps
+ tschwinge@flubber:~ $ \time sleep 4
+ 0.00user 0.00system 18:50:25elapsed 0%CPU (0avgtext+0avgdata 0maxresident)k
+ 0inputs+0outputs (0major+0minor)pagefaults 0swaps
+ tschwinge@flubber:~ $ \time sleep 6
+ 0.00user 0.00system 28:00:53elapsed 0%CPU (0avgtext+0avgdata 0maxresident)k
+ 0inputs+0outputs (0major+0minor)pagefaults 0swaps
+ tschwinge@flubber:~ $ time sleep 2
+
+ real 0m2.093s
+ user 0m0.000s
+ sys 0m0.011s
+ tschwinge@flubber:~ $ time sleep 4
+
+ real 0m4.083s
+ user 0m0.000s
+ sys 0m0.010s
+ tschwinge@flubber:~ $ time sleep 6
+
+ real 0m6.164s
+ user 0m0.000s
+ sys 0m0.010s
+
+GNU time's *elapsed* value is off by some factor.
+
+ $ \time factor 1111111111111111111
+ 1111111111111111111: 1111111111111111111
+ 0.00user 0.00system 52:39:24elapsed 0%CPU (0avgtext+0avgdata 0maxresident)k
+ 0inputs+0outputs (0major+0minor)pagefaults 0swaps
+ $ time factor 1111111111111111111
+ 1111111111111111111: 1111111111111111111
+
+ real 0m11.424s
+ user 0m0.000s
+ sys 0m0.010s
+
+As above; also here all the running time should be attriuted to *user* time.
+This is probably a [[!taglink open_issue_gnumach]].
diff --git a/open_issues/tinyproxy.mdwn b/open_issues/tinyproxy.mdwn
new file mode 100644
index 00000000..9a4a0cfb
--- /dev/null
+++ b/open_issues/tinyproxy.mdwn
@@ -0,0 +1,18 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta title="Problem with using tinyproxy for tunneling HTTPS"]]
+
+`tinyproxy` works fine for HTTP connections, but fails to proxy HTTPS ones:
+
+ ERROR Jun 12 14:58:51 [20676]: relay_connection: select() error "Interrupted system call". Closing connection (client_fd:7, server_fd:8)
+
+This is supposedly due to the already known select bug, which is a [[!taglink
+open_issue_glibc]].
diff --git a/open_issues/translate_fd_or_port_to_file_name.mdwn b/open_issues/translate_fd_or_port_to_file_name.mdwn
new file mode 100644
index 00000000..25a74456
--- /dev/null
+++ b/open_issues/translate_fd_or_port_to_file_name.mdwn
@@ -0,0 +1,54 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!tag open_issue_glibc open_issue_hurd]]
+
+\#hurd, freenode, June (?) 2010
+
+ <pochu> is there a way (POSIX or Hurdish) to get the corresponding file name for a fd or a hurd port?
+ <marcusb> there is a way
+ <pochu> marcusb: which one would that be?
+ <marcusb> I forgot
+ <marcusb> there is an implementation in libc
+ <marcusb> realpath has a similar job
+ <marcusb> but that's not what I mean
+ <marcusb> pochu: maybe I am misremembering. But it was something where you keep looking up .. and list that directory, looking for the node with the ID of the node you had .. for
+ <marcusb> maybe it works only for directories
+ <marcusb> yeah
+ <marcusb> pochu: check the getcwd() implementation of libc
+ <marcusb> sysdeps/mach/hurd/getcwd.c
+ <marcusb> _hurd_canonicalize_directory_name_internal 
+ * pochu looks
+ <pochu> marcusb: interesting
+ <pochu> though that is for dirs, and doesn't seem to be extensible to files, as you cannot lookup for ".." under a file
+ <marcusb> right
+ <pochu> oh you already said that :)
+ <marcusb> actually, I am not sure that's correct
+ <marcusb> it's probably correct, but there is no reason why looking .. up on a file couldn't return the directory it's contianed in
+ <pochu> I don't know the interfaces or the Hurd internals very well yet, but it would look strange to me if you could do that
+ <marcusb> the hurd is strange
+ <pochu> it sounds like if you could `ls getcwd.c/..` to get sysdeps/mach/hurd/ :-)
+ <marcusb> yep
+ <pochu> ok. interesting
+ <marcusb> you wouldn't find "ls foo.zip/.." very strange, wouldn't you?
+ <pochu> I guess not if `ls foo.zip` listed the contents of foo.zip
+ <marcusb> there you go
+ <marcusb> or the other way round: would you be surprised if "cat somedir" would work?
+ <pochu> I think so. if it did, what would it do?
+ <marcusb> originally, cat dir would list the directory content!
+ <marcusb> in the old unix times
+ <pochu> I was surprised the first time I typed `vi somedir` by accident
+ <marcusb> and some early BSDs
+ * pochu feels young :-)
+ <marcusb> he don't worry, I didn't see those times either
+ <marcusb> technically, files and directories are implemented in the same way in the hurd, they both are objects implementing the fs.defs interface
+ <marcusb> which combines file and directory operations
+ <marcusb> of course, files and directories implement those functions differently
+ <antrik> marcusb: do you know why this behavior (cat on directories) was changed?
diff --git a/open_issues/user-space_device_drivers.mdwn b/open_issues/user-space_device_drivers.mdwn
new file mode 100644
index 00000000..98f48013
--- /dev/null
+++ b/open_issues/user-space_device_drivers.mdwn
@@ -0,0 +1,160 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!tag open_issue_gnumach open_issue_hurd]]
+
+This is a collection of resources concerning *user-space device drivers*.
+
+Also see [[device drivers and IO systems]].
+[[community/gsoc/project ideas/driver glue code]].
+
+[[!toc levels=2]]
+
+
+# Issues
+
+## IRQs
+
+ * Can be modeled using [[RPC]]s.
+
+ * Security considerations: IRQ sharing.
+
+ * *Omega0* paper defines an interface.
+
+ * As is can be read in the *Mach 3 Kernel Principles*, there is an *event
+ object* facility in Mach that can be used for having user-space tasks react
+ to IRQs. However, at least in GNU Mach, that code (`kern/eventcount.c`)
+ doesn't seem functional at all and isn't integrated properly in the kernel.
+
+## DMA
+
+ * Security considerations.
+
+ * I/O MMU.
+
+## I/O Ports
+
+ * Security considerations.
+
+## PCI and other buses
+
+ * Security considerations: sharing.
+
+## Latency of doing RPCs
+
+ * [[GNU Mach|microkernel/mach/gnumach]] is said to have a high overhead when
+ doing RPC calls.
+
+
+# Plan
+
+ * Examine what other systems are doing.
+
+ * L4
+
+ * Hurd on L4: deva, fabrica
+
+ * [[DDE]]
+
+ * Minix 3
+
+ * Start with a simple driver and implement the needed infrastructure (see
+ *Issues* above) as needed.
+
+ * <http://savannah.nongnu.org/projects/user-drivers/>
+
+ Some (unfinished?) code written by Robert Millan in 2003: PC keyboard
+ and parallel port drivers, using `libtrivfs`.
+
+
+# Documentation
+
+ * [An Architecture for Device Drivers Executing as User-Level
+ Tasks](http://portal.acm.org/citation.cfm?id=665603), 1993, David B. Golub,
+ Guy G. Sotomayor, Freeman L. Rawson, III
+
+ * [Performance Measurements of the Multimedia Testbed on Mach 3.0: Experience
+ Writing Real-Time Device Drivers, Servers, and
+ Applications](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.40.8685),
+ 1993, Roger B. Dannenberg, David B. Anderson, Tom Neuendorffer, Dean
+ Rubine, Jim Zelenka
+
+ * [User Level IPC and Device Management in the Raven
+ Kernel](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.57.3733),
+ 1993, D. Stuart Ritchie, Gerald W. Neufeld
+
+ * [Creating User-Mode Device Drivers with a
+ Proxy](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.26.3055),
+ 1997, Galen C. Hunt
+
+ * [The APIC Approach to High Performance Network Interface Design: Protected
+ DMA and Other
+ Techniques](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.56.1198),
+ 1997, Zubin D. Dittia, Guru M. Parulkar, Jerome R. Cox, Jr.
+
+ * [The Fluke Device Driver
+ Framework](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.4.7927),
+ 1999, Kevin Thomas Van Maren
+
+ * [Omega0: A portable interface to interrupt hardware for L4
+ system](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.21.5958),
+ 2000, Jork Löser, Michael Hohmuth
+
+ * [Userdev: A Framework For User Level Device Drivers In
+ Linux](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.3.4461),
+ 2000, Hari Krishna Vemuri
+
+ * [User Mode Drivers](http://www.linuxjournal.com/article/5442), 2002, Bryce
+ Nakatani
+
+ * [Towards Untrusted Device
+ Drivers](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.13.1725),
+ 2003, Ben Leslie, Gernot Heiser
+
+ * [Encapsulated User-Level Device Drivers in the Mungi Operating
+ System](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.6.1531),
+ 2004, Ben Leslie Nicholas, Nicholas FitzRoy-Dale, Gernot Heiser
+
+ * [Linux Kernel Infrastructure for User-Level Device
+ Drivers](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.10.1408),
+ 2004, Peter Chubb
+
+ * [Get More Device Drivers out of the
+ Kernel!](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.59.6333),
+ 2004, Peter Chubb
+
+ * <http://gelato.unsw.edu.au/IA64wiki/UserLevelDrivers>
+
+ * [Initial Evaluation of a User-Level Device
+ Driver](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.59.4531),
+ 2004, Kevin Elphinstone, Stefan Götz
+
+ * [User-level Device Drivers: Achieved
+ Performance](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.59.6766),
+ 2005, Ben Leslie, Peter Chubb, Nicholas FitzRoy-Dale, Stefan Götz, Charles
+ Gray, Luke Macpherson, Daniel Potts, Yueting Shen, Kevin Elphinstone,
+ Gernot Heiser
+
+ * [Virtualising
+ PCI](http://www.ice.gelato.org/about/oct06_presentations.php#pres14), 2006,
+ Myrto Zehnder, Peter Chubb
+
+ * [Microdrivers: A New Architecture for Device
+ Drivers](http://www.cs.rutgers.edu/~vinodg/papers/hotos2007/), 2007, Vinod
+ Ganapathy, Arini Balakrishnan, Michael M. Swift, Somesh Jha
+
+
+# External Projects
+
+ * [[DDE]]
+
+ * <http://ertos.nicta.com.au/research/drivers/uldd/>
+
+ * <http://gelato.unsw.edu.au/IA64wiki/UserLevelDrivers>
diff --git a/hurd/open_issues/wrong_reply_message_id.mdwn b/open_issues/wrong_reply_message_id.mdwn
index d9db996c..e84e2571 100644
--- a/hurd/open_issues/wrong_reply_message_id.mdwn
+++ b/open_issues/wrong_reply_message_id.mdwn
@@ -1,15 +1,23 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!meta title="(ipc/mig) wrong reply message ID"]]
+
+[[!tag open_issue_gnumach open_issue_mig open_issue_glibc]]
<tschwinge> # settrans -P -a /servers/socket/2 /hurd/pfinet -i eth0 -a 192.168.10.61 -g 192.168.10.1 -m 255.255.255.0
<tschwinge> Translator pid: 2289
<tschwinge> Pausing...
<tschwinge> pfinet: /build/buildd/hurd-20080607/build-tree/hurd/libports/create-internal.c:115: _ports_create_port_internal: Unexpected error: (ipc/mig) wrong reply message ID.
<neal> it would be nice to print out the id when those sorts of errors occur.
+
+This error code is `MIG_REPLY_MISMATCH` and can be returned in GNU Mach's
+`kern/exception.c (exception_parse_reply)`, in MIG-generated code, see `user.c
+(WriteCheckIdentity)`, and in glibc's `sysdeps/mach/hurd/ioctl.c (__ioctl)`.
diff --git a/open_issues/xen_crash_copy-size_le_page_size.mdwn b/open_issues/xen_crash_copy-size_le_page_size.mdwn
new file mode 100644
index 00000000..f2d8081e
--- /dev/null
+++ b/open_issues/xen_crash_copy-size_le_page_size.mdwn
@@ -0,0 +1,104 @@
+[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!tag open_issue_xen]]
+
+`/dev/hd2` is 2 GiB in size (backed by LVM), unformatted.
+
+ # mkfs.ext2 -o hurd /dev/hd2
+ mke2fs 1.41.7 (29-June-2009)
+ hd2 count 1
+ re-open, hd2 count 2
+ ext2fs_check_if_mount: Can't check if filesystem is mounted due to missing mtab file while determining whether /dev/hd2 is mounted.
+ re-open, hd2 count 3
+ re-open, hd2 count 4
+ re-open, hd2 count 5
+ Filesystem label=
+ OS type: Hurd
+ Block size=4096 (log=2)
+ Fragment size=4096 (log=2)
+ 131072 inodes, 524288 blocks
+ 26214 blocks (5.00%) reserved for the super user
+ First data block=0
+ Maximum filesystem blocks=536870912
+ 16 block groups
+ 32768 blocks per group, 32768 fragments per group
+ 8192 inodes per group
+ Superblock backups stored on blocks:
+ 32768, 98304, 163840, 229376, 294912
+
+ Assertion `copy->size <= PAGE_SIZE' failed in file "../gnumach-1-branch-Xen-branch/xen/block.c", line 536
+ Kernel Breakpoint trap, eip 0x20020a77
+ Stopped at 0x20020a76: int $3
+ db> trace
+ 0x20020a76(2006abc1,2006ba03,2006782c,218,2e2be8d4)
+ 0x20020ace(2006ba03,2006782c,218,2e3629a0,32000)
+ 0x2003e9d5(2de04764,2e2be0b8,12,0,3fff80)
+ 0x200476e6(2de5ad54,2e2db010,2e30a9a0,2de3a854,2de5ad44)
+ 0x20021ed4(2de5ad44,2e2bb2e0,2e2bb2a0,0,0)
+ 0x2005309d(129b8f0,3,38,28,e)
+ 0x20006838(129b8f0,3,38,28,e)
+ >>>>> user space <<<<<
+
+
+ $ addr2line -i -f -e /boot/gnumach-xen 0x20020a76 0x20020ace 0x2003e9d5 0x200476e6 0x20021ed4 0x2005309d 0x20006838
+ Debugger
+ /home/tschwinge/tmp/gnumach/gnumach-1-branch-Xen-branch.build/../gnumach-1-branch-Xen-branch/kern/debug.c:105
+ Assert
+ ??:0
+ device_write
+ /home/tschwinge/tmp/gnumach/gnumach-1-branch-Xen-branch.build/../gnumach-1-branch-Xen-branch/xen/block.c:537
+ _Xdevice_write
+ /home/tschwinge/tmp/gnumach/gnumach-1-branch-Xen-branch.build/device/device.server.c:253
+ ipc_kobject_server
+ /home/tschwinge/tmp/gnumach/gnumach-1-branch-Xen-branch.build/../gnumach-1-branch-Xen-branch/kern/ipc_kobject.c:201
+ mach_msg_trap
+ /home/tschwinge/tmp/gnumach/gnumach-1-branch-Xen-branch.build/../gnumach-1-branch-Xen-branch/ipc/mach_msg.c:1367
+ mach_call_call
+ /home/tschwinge/tmp/gnumach/gnumach-1-branch-Xen-branch.build/../gnumach-1-branch-Xen-branch/i386/i386/locore.S:1083
+
+GDB on `mkfs.ext2`:
+
+ raw_write_blk (channel=0x80829d8, data=0x8082a40, block=524272, count=8, buf=0x80a0a60) at ../../../git/lib/ext2fs/unix_io.c:272
+ 272 actual = write(data->dev, buf, size);
+ (gdb) print size
+ $4 = 32768
+ (gdb) bt
+ #0 raw_write_blk (channel=0x80829d8, data=0x8082a40, block=524272, count=8, buf=0x80a0a60) at ../../../git/lib/ext2fs/unix_io.c:272
+ #1 0x080635fc in unix_write_blk64 (channel=0x80829d8, block=524272, count=8, buf=0x80a0a60) at ../../../git/lib/ext2fs/unix_io.c:673
+ #2 0x0806373c in unix_write_blk (channel=0x80829d8, block=524272, count=8, buf=0x80a0a60) at ../../../git/lib/ext2fs/unix_io.c:705
+ #3 0x0805e87d in ext2fs_zero_blocks (fs=0x8082940, blk=524272, num=16, ret_blk=0x15ffb1c, ret_count=0x0)
+ at ../../../git/lib/ext2fs/mkjournal.c:182
+ #4 0x0804ec56 in main (argc=131072, argv=0x80000) at ../../git/misc/mke2fs.c:2032
+
+Discussion:
+
+ <tschwinge> I had a look at the code, but unfortunately don't really know
+ how this data transfers between Xen and the domU work.
+ <tschwinge> Well, I know how it roughly works, but not the implementation
+ deatils.
+ <youpi> well here it's not about the xen/domU transfers
+ <youpi> it's about copying data to align it
+ <youpi> i.e. when offset is not aligned, I need to copy it
+ <tschwinge> Yes-
+ <youpi> I was lazy, just implemented it for things smaller than a page
+ <youpi> it just needs to be extended into copying several pages
+ <tschwinge> youpi: Hmm, do we need to copy all the data to shift away the
+ offset or is there a better way?
+ <youpi> the blkbackend needs data to be sector-aligned
+ <youpi> just aligning on a page makes offset computation simpler
+ <youpi> as it's rare that's not a problem
+ <tschwinge> And a sector is the usual 512 bytes there, I assume?
+ <tschwinge> But then we do need to copy all of it?
+ <youpi> let me check
+ <youpi> the sector is the granularity you can't go below
+ <youpi> sector is the sector_size reported by the backend
+ <youpi> but for sector_number and first/last_sect it's 512
+ <youpi> yes, that's weird
diff --git a/open_issues/xen_domu_with_ro_hd.mdwn b/open_issues/xen_domu_with_ro_hd.mdwn
new file mode 100644
index 00000000..efbd2d18
--- /dev/null
+++ b/open_issues/xen_domu_with_ro_hd.mdwn
@@ -0,0 +1,35 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta title="Xen domU with a read-only HD"]]
+
+[[!tag open_issue_xen]]
+
+read-only hd3
+
+ foobar:~# e2fsck /dev/hd3
+ e2fsck 1.40.11 (17-June-2008)
+ re-open, hd3 count 5
+ re-open, hd3 count 6
+ /dev/hd3 was not cleanly unmounted, check forced.
+ Pass 1: Checking inodes, blocks, and sizes
+ Pass 2: Checking directory structure
+ Pass 3: Checking directory connectivity
+ Pass 4: Checking reference counts
+ Pass 5: Checking group summary information
+ /dev/hd3: 2729/262144 files (0.2% non-contiguous), 34116/524288 blocks
+ Error writing block 1 (Attempt to write block from filesystem resulted in short write). Ignore error<y>? yes
+
+ foobar:~# e2fsck /dev/hd3
+ e2fsck 1.40.11 (17-June-2008)
+ re-open, hd3 count 7
+ re-open, hd3 count 8
+ e2fsck: Attempt to read block from filesystem resulted in short read while trying to open /dev/hd3
+ Could this be a zero-length partition?
diff --git a/persistency.mdwn b/persistency.mdwn
index 17176708..f5347a4e 100644
--- a/persistency.mdwn
+++ b/persistency.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
A persistent object is an object that survives reboot.
On [[Unix]], files and directories are persistent but
diff --git a/policy.mdwn b/policy.mdwn
index f0a414f2..1bc3c527 100644
--- a/policy.mdwn
+++ b/policy.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
A policy is a rule that define what may or may not happens, not
how it happens. The latter is referred to as [[mechanism]].
diff --git a/principal.mdwn b/principal.mdwn
index 897c0436..c9b952ec 100644
--- a/principal.mdwn
+++ b/principal.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
A principal is an accountable entity. A principal may be
a user. On some computer systems, users are represented by their
diff --git a/public_hurd_boxen.mdwn b/public_hurd_boxen.mdwn
index bc902384..3bf8e85c 100644
--- a/public_hurd_boxen.mdwn
+++ b/public_hurd_boxen.mdwn
@@ -1,53 +1,43 @@
-[[meta copyright="Copyright © 2006, 2007, 2008 Free Software Foundation,
-Inc."]]
+[[!meta copyright="Copyright © 2006, 2007, 2008, 2009, 2010 Free Software
+Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
Here are some Hurd boxes that users have made available to the public:
-[[table class="table_style_1" data="""
-"Host Name","Operator","Access","Distro","Machine Specs","Comments"
-"flubber.bddebian.com","[[Barry_de_Freese|bddebian]]","ssh; port 2250","Debian","PII 550 MHz; 384 MiB","used for the wiki, and a bit short on disk space, so please don't use for general work"
-"clubber.bddebian.com","[[Barry_de_Freese|bddebian]]","ssh; port 2251","Debian","PIII 1 GHz; 384 MiB"
-"gnubber.bddebian.com","[[Barry_de_Freese|bddebian]]","ssh; port 2254","Debian","PII 733 MHz; 384 MiB"
-"goober.bddebian.com","[[Barry_de_Freese|bddebian]]","ssh; port 2255","Debian","?"
-"hurd.nipl.net","[[AlastairPoole]]","ssh; port 24","GNU","AMD Sempron 2800 MHz","not sure if this machine is still alive"
+[[!table class="table_style_1" data="""
+"Hoster","Name","Distribution","Machine Specs","Comments"
+"[[bddebian]]","blubber","Debian GNU/Hurd","Celeron 2.2 GHz; 222 MiB","Xen domU on [[zenhost]]; for experimental stuff"
+"[[bddebian]]","clubber","Debian GNU/Hurd","PIII 1 GHz; 384 MiB"
+"[[bddebian]]","flubber","Debian GNU/Hurd","Celeron 2.2 GHz; 666 MiB","Xen domU on [[zenhost]]"
+"[[bddebian]]","snubber","Debian GNU/Hurd","Celeron 2.2 GHz; 160 MiB","Xen domU on [[zenhost]]; web server"
+"[[bddebian]]","gnubber","Debian GNU/Hurd","PII 733 MHz; 384 MiB"
+"[[bddebian]]","goober","Debian GNU/Hurd","?"
+"[[bddebian]]","grubber","Debian GNU/Hurd","Celeron 2.2 GHz; 222 MiB","Xen domU on [[zenhost]]; for experimental stuff"
+"[[bddebian]]","[[zenhost]]","Debian GNU/Linux","Celeron 2.2 GHz","Xen dom0 for several hosts"
"""]]
-To request an account on the `*.bddebian.com` machines either contact
+To request an account on the *[[bddebian]]* machines either contact
*bddebian* or *tschwinge* (other people might also be able to help) in [[IRC]]
or send email to <hurd-shell-account@gnu.org>. Also use these contact
addresses for requesting support with respect to software installations, etc.
-For the `hurd.nipl.net` host, please see <http://www.nipl.net/>.
-For a list of people using the Hurd in production systems, please see
-[[Hurd/WhoRunsGNU]].
-
----
-
-/!\ SSH access to the machines is very instable at the moment. This is
-probably due to problems with the [[hurd/translator/pfinet]] server.
-
- * <http://lists.gnu.org/archive/html/bug-hurd/2008-07/msg00052.html>
-
----
-
-
-To be able to use just `ssh [machine]`, you should append your public SSH key
+For easy access, you should append your public SSH key(s)
to `~/.ssh/authorized_keys` on the remote machine.
-And if you don't want to worry about the machines's IP addresses changing (due
-to dial-up connection) or the host keys changing every now and then (when the
-machines are re-installed), put something like the following into
-`~/.ssh/config` of the machine you connect from:
+Also, add the following stanza to `~/.ssh/config` of the machine you're
+connecting from:
+ Host blubber.bddebian.com blubber
+ HostName blubber.bddebian.com
+
Host clubber.bddebian.com clubber
HostName clubber.bddebian.com
Port 2251
@@ -64,8 +54,27 @@ machines are re-installed), put something like the following into
HostName goober.bddebian.com
Port 2255
- Host *.bddebian.com clubber flubber gnubber goober
+ Host grubber.bddebian.com grubber
+ HostName grubber.bddebian.com
+
+ Host snubber.bddebian.com snubber
+ HostName snubber.bddebian.com
+
+ Host zenhost.bddebian.com zenhost
+ HostName zenhost.bddebian.com
+ Port 2260
+
+ Host blubber.bddebian.com blubber grubber.bddebian.com grubber snubber.bddebian.com snubber
+ ProxyCommand ssh zenhost socat - TCP4:%h:%p
+
+ Host *.bddebian.com blubber clubber flubber gnubber goober grubber snubber zenhost
CheckHostIP no
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
User [username]
+
+The `CheckHostIP` statement is for not having to worry about the machines's IP
+addresses changing (due to dial-up connection), and the `UserKnownHostsFile`
+one together with the `StrictHostKeyChecking` one are for not having ot worry
+about the host keys changing (when the machines are re-installed). Of course,
+this undermines SSH's security system, so you may disagree about these.
diff --git a/public_hurd_boxen/bddebian.mdwn b/public_hurd_boxen/bddebian.mdwn
new file mode 100644
index 00000000..82fb0b8c
--- /dev/null
+++ b/public_hurd_boxen/bddebian.mdwn
@@ -0,0 +1,21 @@
+[[!meta copyright="Copyright © 2009, 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+# IP addresses
+
+ * [[zenhost]]: 192.168.10.60
+ * blubber: 192.168.10.61
+ * flubber: 192.168.10.50
+ * grubber: 192.168.10.63
+ * snubber: 192.168.10.62
+
+At least anything in the .60 range can be used.
+
+Registered in zenhost's `/etc/hosts`.
diff --git a/public_hurd_boxen/installation.mdwn b/public_hurd_boxen/installation.mdwn
new file mode 100644
index 00000000..67878f1a
--- /dev/null
+++ b/public_hurd_boxen/installation.mdwn
@@ -0,0 +1,102 @@
+[[!meta copyright="Copyright © 2009, 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+This page documents how installation of a new machine is being done on
+[[zenhost]].
+
+This method uses
+*[install_crosshurd](http://git.savannah.gnu.org/cgit/hurd/incubator.git/log/?h=install_crosshurd)*.
+
+Another option might be switching to <http://www.informatik.uni-koeln.de/fai/>
+or a equivalent system.
+
+Steps for *install_crosshurd*:
+
+ * Enable loggin with screen (`C-a H`).
+
+ * \# lvcreate ...
+
+ * machines/[MACHINE]
+
+ * \# MACHINE=[MACHINE] TARGET=/dev/zenhost/[MACHINE]-root ./install_crosshurd
+
+ * TODO
+
+ I: Extracting /var/cache/apt/archives/dash_0.5.5.1-3_hurd-i386.deb...
+ tar: ./bin/sh: Cannot create symlink to `dash': File exists
+ tar: ./usr/share/man/man1/sh.1.gz: Cannot create symlink to `dash.1.gz': File exists
+ tar: Exiting with failure status due to previous errors
+
+ Ignore? --
+ <http://lists.gnu.org/archive/html/bug-hurd/2009-11/msg00094.html>
+
+ * \# sudo umount /tmp/*/target
+
+ * /etc/xen/[MACHINE]
+
+ * \# xm create -c [MACHINE]
+
+ * \# /install
+
+ * TODO
+
+ Unpacking debconf (from .../debconf_1.5.28_all.deb) ...
+ + debconf-set-selections
+ warning: Unknown type error, skipping line 9
+
+ * TODO
+
+ +---------------------------Configuring grub-pc------------------------------+
+
+ Make it not install GRUB packages.
+
+ Likewise, the *gnumach* package need not be installed.
+
+ * If needed:
+
+ \# cd /dev/ && ./MAKEDEV hd2
+ \# mkfs.ext2 -I 128 -b 4096 /dev/hd2 # TAKE CARE!
+ \# mkdir /media/data && settrans /media/data /hurd/ext2fs /dev/hd2
+ \# rmdir /home && ln -s media/data/home /
+ \# mkdir /media/data/home
+
+ * If needed: restore (parts of) some files
+
+ * /etc/fstab
+
+ * /etc/{passwd,shadow,group,gshadow}
+
+ * \# adduser ... sudo
+
+ * \# passwd root
+
+ * /etc/ssh/ssh_host_*key*
+
+ Can do this here or have to move after install_packages due to the
+ files being overwritten again (don't think so)?
+
+ * \# syncfs -s && halt
+
+ * \# xm create -c [MACHINE]
+
+ * \# /install_packages
+
+ * Until [[open_issues/screen]] is fixed:
+
+ * Install `flubber:~tschwinge/screen_4.0.3-11_hurd-i386.deb` instead.
+
+ * \# printf 'screen\thold\n' | dpkg --set-selections
+
+ * add line to zenhost's `/etc/hosts`
+
+ * system-specific:
+
+ * [[flubber]]
+ * [[snubber]]
diff --git a/public_hurd_boxen/installation/flubber.mdwn b/public_hurd_boxen/installation/flubber.mdwn
new file mode 100644
index 00000000..66a01c3c
--- /dev/null
+++ b/public_hurd_boxen/installation/flubber.mdwn
@@ -0,0 +1,25 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+# *git daemon*
+
+## `/etc/rc.local`
+
+ [...]
+ # runit doesn't work yet...
+ LC_ALL=C date >> /var/log/git-daemon
+ git daemon --verbose --user-path >> /var/log/git-daemon 2>&1 &
+ [...]
+
+Should [[fix runit|open issues/runit]] and use Debian's `git-daemon-run`
+package instead.
+
+
+# *polipo*
diff --git a/public_hurd_boxen/installation/snubber.mdwn b/public_hurd_boxen/installation/snubber.mdwn
new file mode 100644
index 00000000..dbbade9f
--- /dev/null
+++ b/public_hurd_boxen/installation/snubber.mdwn
@@ -0,0 +1,55 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+# Additional Packages
+
+ apache2-mpm-worker build-essential git-core gitweb ikiwiki inetutils-inetd
+ less libtext-csv-perl netcat nullmailer perlmagick screen texinfo
+
+ $ find /etc/rc*/ | grep syslog | sudo xargs rm
+
+ Yet more:
+
+ * libemail-send-perl (for my *sendmail vs. ikiwiki* patch)
+
+
+# `~hurd-web/`
+
+ $ mkdir hurd-web && GIT_DIR=hurd-web git init
+
+
+# `~tschwinge/`
+
+ $ mkdir tmp/backup && chmod 0733 tmp/backup
+
+
+# `/var/www/robots.txt`
+
+This file used to contain:
+
+ User-agent: *
+ Disallow: /gitweb/
+ Disallow: /cgi-bin/
+
+... which I've now changed to:
+
+ User-agent: *
+ Disallow: /
+
+The goal is that robots rather index the official pages,
+<http://www.gnu.org/software/hurd/>, instead of the staging area on
+<http://www.bddebian.com:8888/~hurd-web/>.
+
+
+# Restore Backup
+
+## `/etc/apache2/mods-enabled/`
+
+`rewrite.load`, `userdir.conf`, `userdir.load`
diff --git a/public_hurd_boxen/xen_handling.mdwn b/public_hurd_boxen/xen_handling.mdwn
new file mode 100644
index 00000000..47d92c43
--- /dev/null
+++ b/public_hurd_boxen/xen_handling.mdwn
@@ -0,0 +1,49 @@
+[[!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]]."]]"""]]
+
+# listing running domUs
+
+ $ sudo xm list
+
+ $ sudo xm top
+
+# handling running domUs
+
+Forcefully killing a domU (that has crashed or is busy-looping, etc.):
+
+ $ sudo xm destroy [domU]
+
+As for (re-)starting a domU, read below in *domU consoles*.
+
+Using `xm shutdown [domU]` to gracefully shut down a running domU does not yet
+work -- this is not yet implemented in the [[Xen port of GNU
+Mach|microkernel/mach/gnumach/ports/xen]] ([[!taglink open_issue_xen]]).
+
+# domU consoles
+
+To avoid any complications with people trying to use the same console at the
+same time, please use this command for attaching to a domU's console (this
+command line will also start the domU in case that it isn't running already):
+
+ $ host=[domU] && sudo screen -DRRS console-$host sh -c "xm console $host || xm create -c $host"
+
+Otherwise, if one attaches to the same console twice, the second instance will
+in fact forward input to the domU (possibly infering with what the person is
+doing on the first instance), but the output won't be sent back to the second
+instance.
+
+After having typed this once, Bash's `reverse-search-history` (`C-r`), followed
+by typing in `host=flubber`, for example, will be enough to get access to
+that machine's console.
+
+/!\ TODO: How does one get the environment variables `COLUMNS` and `LINES` set
+properly when using `xm console`? This is relevant for everything using
+`(n)curses` -- for interactive console applications. Using `export COLUMNS=143
+LINES=44` does work, but is a manual process.
diff --git a/public_hurd_boxen/zenhost.mdwn b/public_hurd_boxen/zenhost.mdwn
new file mode 100644
index 00000000..b828b8e9
--- /dev/null
+++ b/public_hurd_boxen/zenhost.mdwn
@@ -0,0 +1,18 @@
+[[!meta copyright="Copyright © 2009, 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+*zenhost* is a Xen dom0 (hosted by [[bddebian]]) which is hosting several domUs
+(see the table on [[public hurd boxen]] for a list).
+
+
+[[!inline pages=public_hurd_boxen/xen_handling feeds=no]]
+
+
+# [[Installation of new machines|installation]]
diff --git a/purify_html b/purify_html
new file mode 100755
index 00000000..4cf582af
--- /dev/null
+++ b/purify_html
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+# Mangle the rendered files to cause fewer differernces upon re-rendering.
+
+# Written by Thomas Schwinge <tschwinge@gnu.org>.
+
+# Un-mangle mailto links: convert HTML character entities to real characters.
+find ./ -name \*.html -print0 \
+ | xargs -0 \
+ perl -p -i -l -e \
+ 'BEGIN { $replacing = 0; }
+ # The replacing-toggling logic is a bit rough, but so is life.
+ $replacing = 1 if /<a href="mailto:/;
+ s%\&#(x?)([^;]*);%chr(length($1) ? hex($2) : $2)%eg if $replacing;
+ $replacing = 0 if /<\/a>/;'
diff --git a/qemu.mdwn b/qemu.mdwn
index 97ce5693..19b5fb9f 100644
--- a/qemu.mdwn
+++ b/qemu.mdwn
@@ -1,12 +1,13 @@
-[[meta copyright="Copyright © 2005, 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2005, 2007, 2008, 2009 Free Software Foundation,
+Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
QEMU is free software written by Fabrice Bellard that implements a fast
processor [[emulator|emulation]], allowing a user to run one operating system
@@ -31,6 +32,5 @@ emulation under the [[GPL]].
# External Links
- * <http://fabrice.bellard.free.fr/qemu/>
- * <http://kidsquid.com/cgi-bin/moin.cgi> QEMU Wiki
+ * <http://www.nongnu.org/qemu/>
* [Qemu on Windows](http://www.h7.dion.ne.jp/~qemu-win/)
diff --git a/recent_changes.mdwn b/recent_changes.mdwn
index 708e4588..594a0390 100644
--- a/recent_changes.mdwn
+++ b/recent_changes.mdwn
@@ -1,14 +1,14 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-[[meta title="Recent Changes"]]
+[[!meta title="Recent Changes"]]
-[[inline pages="internal(recent_changes/change_*)" template=recentchanges
+[[!inline pages="internal(recent_changes/change_*)" template=recentchanges
show=0]]
diff --git a/render_locally b/render_locally
index 29ab828b..ca7856f5 100755
--- a/render_locally
+++ b/render_locally
@@ -2,24 +2,71 @@
# Render the pages of this repository.
-# Written by Thomas Schwinge <tschwinge@gnu.org>
+# Written by Thomas Schwinge <tschwinge@gnu.org>.
+
+# See `contributing/web_pages' for further information.
export ROOT && ROOT=$(readlink -f "$(dirname "$0")") &&
+# Don't translate.
+export LC_MESSAGES && LC_MESSAGES=C &&
+
case $1 in
+ # Use this for rendering the set of pages which are to be installed under
+ # <http://www.gnu.org/software/hurd/>.
--official)
- # Use this for rendering the set of pages which are to be installed under
- # <http://www.gnu.org/software/hurd/>. Use ``--no-usedirs'' here, so that
- # not too many separate directories have to be created.
shift &&
+
export TZ && TZ=UTC &&
export DESTDIR && DESTDIR=$ROOT.rendered.official &&
+
+ # Use ``--no-usedirs'' here, so that not too many separate directories have
+ # to be created.
+ #
+ # Use ``--gettime --plugin update_mtimes'' to reset pages' / files' mtimes
+ # according to the RCS information when using --refresh mode.
set x \
--set wikistatedir="$ROOT"/.ikiwiki-official \
--url http://www.gnu.org/software/hurd \
--no-usedirs \
+ --gettime --plugin reset_mtimes \
"$@" &&
shift;;
+
+ --w3m-wrapper)
+ shift &&
+
+ export NO_MSG && NO_MSG=y &&
+
+ # Disable the configured VCS, as the CGI wrapper together with using the
+ # anonok plugin inhibits the propagation of authorship information.
+ set x \
+ --cgi --wrapper ~/.ikiwiki/wrappers/hurd-web.cgi \
+ --plugin anonok \
+ --rcs norcs \
+ "$@" &&
+ shift &&
+
+ exec \
+ "$0" \
+ --w3m \
+ "$@";;
+
+ --w3m)
+ shift &&
+
+ export DESTDIR && DESTDIR=$ROOT.rendered.w3m &&
+
+ set x \
+ --set wikistatedir="$ROOT"/.ikiwiki-w3m \
+ --cgiurl hurd-web.cgi --w3mmode \
+ "$@" &&
+ shift &&
+
+ exec \
+ "$0" \
+ "$@";;
+
*)
# Use ``--no-usedirs'' here, because when browsing local files, the web
# browsers don't display `index.html' files by default when a hyperlink
@@ -35,5 +82,7 @@ ikiwiki \
--refresh \
"$@" &&
-echo &&
-echo Now\ open\ \`"${DESTDIR-"$ROOT".rendered}"/index.html\'' to browse the web pages.'
+if [ ${NO_MSG-n} = y ]; then :; else
+ echo &&
+ echo Now\ open\ \`"${DESTDIR-"$ROOT".rendered}"/index.html\'' to browse the web pages.'
+fi
diff --git a/rpc.mdwn b/rpc.mdwn
index e60254d1..9703268f 100644
--- a/rpc.mdwn
+++ b/rpc.mdwn
@@ -1,11 +1,11 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
RPC stands for remote procedure call.
diff --git a/rules.mdwn b/rules.mdwn
index d1a544e0..6f6f9e2f 100644
--- a/rules.mdwn
+++ b/rules.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
* [[Source_repositories]]
* [[Savannah_group]]
diff --git a/rules/savannah_group.mdwn b/rules/savannah_group.mdwn
index 14139719..4e2cf357 100644
--- a/rules/savannah_group.mdwn
+++ b/rules/savannah_group.mdwn
@@ -1,13 +1,13 @@
-[[meta copyright="Copyright © 2006, 2007, 2008, 2009 Free Software Foundation,
+[[!meta copyright="Copyright © 2006, 2007, 2008, 2009 Free Software Foundation,
Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
<http://savannah.gnu.org/projects/hurd/>
@@ -17,8 +17,23 @@ There is no need to be a formal member of the GNU Hurd Savannah group in order
to be able to contribute to the system. In fact, if we added every single soul
that was interested in the Hurd to the Savannah group it'd probably have
exploded by now. We have the policy of adding people as soon as they are
-beginning to make substantial contributions. Simply use the [[mailing_lists]]
+beginning to make substantial contributions. Simply use the [[mailing lists]]
for sending your contributions, for asking questions, and so on.
Have a look at the page for [[contributing]]. Also be sure to have a look at
the [[contributing/questionnaire]].
+
+## List of members
+
+The list of members can be seen at
+<http://savannah.gnu.org/project/memberlist.php?group=hurd>.
+
+<a name="copyright_assignment">
+## Copyright assignment
+</a>
+
+If you have pieces of code or documentation to contribute, then, in order to
+install them into our [[source_repositories]], you have to assign the copyright
+of your changes to the [Free Software Foundation](http://www.fsf.org/).
+
+Please [[contact_us]] to request the needed forms.
diff --git a/rules/source_repositories.mdwn b/rules/source_repositories.mdwn
index 2ecc6fe6..8215af3b 100644
--- a/rules/source_repositories.mdwn
+++ b/rules/source_repositories.mdwn
@@ -1,100 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008, 2009, 2010 Free Software Foundation,
+Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-CVS repositories on Savannah, see <http://savannah.gnu.org/cvs/?group=hurd>.
-
-# Branches
-
-Members of the Hurd Savannah group,
-<http://savannah.gnu.org/project/memberlist.php?group=hurd>, are allowed to
-create branches without formal permission...
-
-* named *SAVANNAH_LOGIN-WHATEVER-branch* for general-purpose branches, or
-
-* named *BASE_BRANCH-WHATEVER-branch* for topic-branches basing on
- *BASE_BRANCH*.
-
-*WHATEVER* shall be a suitable tag.
-
-Examples:
-
-* GNU Mach
-
- * *gnumach-1-branch-Xen-branch*
- * *gnumach-1-branch-gdb-branch*
-
-* GNU Hurd
-
- * *miles-orphaned-changes*
- * *hammy-libchannel-branch*
- * *mmenal-soc2006-nfs-branch*
-
-Also, create helper tags for merging mainline changes into your branches.
-
-Examples:
-
-* GNU Mach
-
- * *gnumach-1-branch-Xen-branch*: *gnumach-1-branch-Xen-branch-merge_helper*
- * *gnumach-1-branch-gdb-branch*: *gnumach-1-branch-gdb-branch-merge_helper*
-
-* GNU Hurd
-
- * *hammy-libchannel-branch*: *hammy-libchannel-branch-base*
- * *mmenal-soc2006-nfs-branch*: *mmenal-soc2006-nfs-branch-base*
-
-## Merging
-
-Merging between CVS branches is not trivial. Unless you really know what
-you're doing, please talk to [[Thomas_Schwinge|tschwinge]] or
-[[Samuel_Thibault|samuelthibault]], to avoid cluttering the repositories
-unintendedly.
-
-# Tags
-
-Equivalent rules apply.
-
-# Behavior
-
-## ... on your branches
-
-Most branches are to be eventually be merged back into the mainline branch. To
-faciliate (and also to help other contributors) we'd like you to write a short
-summary log in a top-level (or wherever else appropriate) `ChangeLog.WHATEVER`
-file.
-
-Examples:
-
-* GNU Mach
-
- * *gnumach-1-branch-Xen-branch*: `ChangeLog.Xen`
- * *gnumach-1-branch-gdb-branch-merge_helper*: `ChangeLog.gdb`
-
-* GNU Hurd
-
- * *hammy-libchannel-branch-base*: `channelio/ChangeLog`, `libchannel/ChangeLog`
- * *mmenal-soc2006-nfs-branch-base*: `nfs/ChangeLog`
-
-This need not be a full-fledged [GNU-style *ChangeLog*
-file](http://www.gnu.org/prep/standards/html_node/Change-Logs.html). E.g.,
-don't waste time writing *ChangeLog* entries for debugging stuff that will be
-removed again before merging back into mainline. But please do write
-something. Short notes.
-
-## ... in general
-
-Try to not introduce spurious, unneeded changes, e.g., whitespace changes.
-
-Adhere to the already-used coding conventions. These are usually the [GNU
-Coding Standards](http://www.gnu.org/prep/standards/html_node/) for stuff
-written by ourselves, including new files, of course.
-
-GNU Mach code is largely based on external code. Don't GNU-ify it, as this
-would make merging external patches unnecessarily difficult.
+[[!meta redir=/source_repositories]]
diff --git a/sandbox.mdwn b/sandbox.mdwn
index def5fae7..b90e8160 100644
--- a/sandbox.mdwn
+++ b/sandbox.mdwn
@@ -6,7 +6,7 @@ There even is a [[subsandbox]].
Here's a paragraph.
-Here's another one with *emphasised* text.
+Here's another one with *emphasized* text.
# Header
diff --git a/security.mdwn b/security.mdwn
index ae925f74..0e22df00 100644
--- a/security.mdwn
+++ b/security.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
Alan Karp [identifies][1] 11 security questions:
diff --git a/set_mtimes b/set_mtimes
new file mode 100755
index 00000000..7157e7f5
--- /dev/null
+++ b/set_mtimes
@@ -0,0 +1,56 @@
+#!/bin/sh
+
+# Set the checked-out files' mtimes according to their last Git revision.
+
+# Written by Thomas Schwinge <tschwinge@gnu.org>
+
+trap '
+ if [ x"$tmp_dir" = x ]; then :; else
+ rm -rf -- "$tmp_dir"
+ fi
+' EXIT &&
+
+# TODO: handle arguments meaning to only process a subset (directories / files)
+# of the repository.
+if [ x"$#" = x0 ]; then :; else
+ echo >&2 No command line arguments expected.
+ exit 1
+fi &&
+
+tmp_dir=$(mktemp -d) &&
+
+tmp_ignore=$tmp_dir/ignore &&
+# TODO: have to add more flags?
+git ls-files \
+ > "$tmp_ignore" \
+ -d -m &&
+while read file; do
+ echo >&2 "*** WARNING: file <$file> locally changed or deleted, not touching"
+done < "$tmp_ignore" &&
+
+tmp_known=$tmp_dir/known &&
+git ls-files \
+ > "$tmp_known" \
+ -c &&
+
+tmp_consider=$tmp_dir/consider &&
+grep \
+ < "$tmp_known" \
+ > "$tmp_consider" \
+ -f "$tmp_ignore" -x -v &&
+
+while read file; do
+ # TODO: use %ci? TODO: can we optimize this to not have to invoke git log
+ # individually for every single file?
+ date_git=$(git log -1 --pretty=format:%ai -- "$file") &&
+ date_git=$(date --rfc-3339=ns -d "$date_git") &&
+ date_file=$(date --rfc-3339=ns -r "$file") &&
+ if [ x"$date_git" = x"$date_file" ]; then :; else
+ echo >&2 "*** INFO: file $file: mtime <$date_file> -> <$date_git>"
+ touch -m -d "$date_git" "$file"
+ fi \
+ || {
+ echo >&2 "*** ERROR: file <$file>, date_git <$date_git>, date_file <$date_file>"
+ exit 1
+ }
+done < "$tmp_consider"
diff --git a/sfi.mdwn b/sfi.mdwn
index 1a987290..4b57d7c6 100644
--- a/sfi.mdwn
+++ b/sfi.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
SFI stands for Software-Based Fault Isolation. SFI is an [[isolation]]
technique described by Wahbe et al. in their 1993 paper [Effcient
diff --git a/shortcuts.mdwn b/shortcuts.mdwn
index 19368aab..bd4a7ee3 100644
--- a/shortcuts.mdwn
+++ b/shortcuts.mdwn
@@ -1,78 +1,85 @@
-[[if test="enabled(shortcut)"
+[[!if test="enabled(shortcut)"
then="This wiki has shortcuts **enabled**."
else="This wiki has shortcuts **disabled**."]]
Some examples of using shortcuts include:
- \[[google foo]]
- \[[wikipedia War_of_1812]]
- \[[debbug 12345]]
+ \[[!google foo]]
+ \[[!wikipedia War_of_1812]]
+ \[[!debbug 12345]]
+ Check the \[[!cia ikiwiki desc="CIA page for %s"]].
This page controls what shortcut links the wiki supports.
-* [[shortcut name=google url="http://www.google.com/search?q=%s"]]
-* [[shortcut name=archive url="http://web.archive.org/*/%S"]]
-* [[shortcut name=gmap url="http://maps.google.com/maps?q=%s"]]
-* [[shortcut name=gmsg url="http://groups.google.com/groups?selm=%s"]]
-* [[shortcut name=wikipedia url="http://en.wikipedia.org/wiki/%s"]]
-* [[shortcut name=wikitravel url="http://wikitravel.org/en/%s"]]
-* [[shortcut name=debbug url="http://bugs.debian.org/%s" desc="bug #%s"]]
-* [[shortcut name=deblist url="http://lists.debian.org/debian-%s" desc="debian-%s@lists.debian.org"]]
-* [[shortcut name=debpkg url="http://packages.debian.org/%s"]]
-* [[shortcut name=debpts url="http://packages.qa.debian.org/%s"]]
-* [[shortcut name=debmsg url="http://lists.debian.org/msgid-search/%s"]]
-* [[shortcut name=debrt url="https://rt.debian.org/Ticket/Display.html?id=%s"]]
-* [[shortcut name=debss url="http://snapshot.debian.net/package/%s"]]
- * Usage: `\[[debss package]]`, `\[[debss package#version]]`, or `\[[debss package/version]]`. See http://snapshot.debian.net for details.
-* [[shortcut name=fdobug url="https://bugs.freedesktop.org/show_bug.cgi?id=%s" desc="freedesktop.org bug #%s"]]
-* [[shortcut name=fdolist url="http://lists.freedesktop.org/mailman/listinfo/%s" desc="%s@lists.freedesktop.org"]]
-* [[shortcut name=gnomebug url="http://bugzilla.gnome.org/show_bug.cgi?id=%s" desc="GNOME bug #%s"]]
-* [[shortcut name=linuxbug url="http://bugzilla.kernel.org/show_bug.cgi?id=%s" desc="Linux bug #%s"]]
-* [[shortcut name=mozbug url="https://bugzilla.mozilla.org/show_bug.cgi?id=%s" desc="Mozilla bug #%s"]]
-* [[shortcut name=gnulist url="http://lists.gnu.org/mailman/listinfo/%s" desc="%s@gnu.org"]]
-* [[shortcut name=marcmsg url="http://marc.info/?i=%s"]]
-* [[shortcut name=marclist url="http://marc.info/?l=%s"]]
-* [[shortcut name=gmane url="http://dir.gmane.org/gmane.%s" desc="gmane.%s"]]
-* [[shortcut name=gmanemsg url="http://mid.gmane.org/%s"]]
-* [[shortcut name=cpan url="http://search.cpan.org/search?mode=dist&query=%s"]]
-* [[shortcut name=ctan url="http://tug.ctan.org/cgi-bin/ctanPackageInformation.py?id=%s"]]
-* [[shortcut name=hoogle url="http://haskell.org/hoogle/?q=%s"]]
-* [[shortcut name=iki url="http://ikiwiki.info/%S/"]]
-* [[shortcut name=ljuser url="http://%s.livejournal.com/"]]
-* [[shortcut name=rfc url="http://www.ietf.org/rfc/rfc%s.txt" desc="RFC %s"]]
-* [[shortcut name=c2 url="http://c2.com/cgi/wiki?%s"]]
-* [[shortcut name=meatballwiki url="http://www.usemod.com/cgi-bin/mb.pl?%s"]]
-* [[shortcut name=emacswiki url="http://www.emacswiki.org/cgi-bin/wiki/%s"]]
-* [[shortcut name=haskellwiki url="http://haskell.org/haskellwiki/%s"]]
-* [[shortcut name=dict url="http://www.dict.org/bin/Dict?Form=Dict1&Strategy=*&Database=*&Query=%s"]]
-* [[shortcut name=imdb url="http://imdb.com/find?q=%s"]]
-* [[shortcut name=gpg url="http://pgpkeys.mit.edu:11371/pks/lookup?op=vindex&exact=on&search=0x%s"]]
-* [[shortcut name=perldoc url="http://perldoc.perl.org/search.html?q=%s"]]
-* [[shortcut name=whois url="http://reports.internic.net/cgi/whois?whois_nic=%s&type=domain"]]
-* [[shortcut name=cve url="http://cve.mitre.org/cgi-bin/cvename.cgi?name=%s"]]
-* [[shortcut name=cia url="http://cia.vc/stats/project/%s"]]
-* [[shortcut name=ciauser url="http://cia.vc/stats/user/%s"]]
-* [[shortcut name=flickr url="http://www.flickr.com/photos/%s"]]
+* [[!shortcut name=google url="http://www.google.com/search?q=%s"]]
+* [[!shortcut name=archive url="http://web.archive.org/*/%S"]]
+* [[!shortcut name=gmap url="http://maps.google.com/maps?q=%s"]]
+* [[!shortcut name=gmsg url="http://groups.google.com/groups?selm=%s"]]
+* [[!shortcut name=wikipedia url="http://en.wikipedia.org/wiki/%s"]]
+* [[!shortcut name=wikitravel url="http://wikitravel.org/en/%s"]]
+* [[!shortcut name=wiktionary url="http://en.wiktionary.org/wiki/%s"]]
+* [[!shortcut name=debbug url="http://bugs.debian.org/%S" desc="Debian bug #%s"]]
+* [[!shortcut name=deblist url="http://lists.debian.org/debian-%s" desc="debian-%s@lists.debian.org"]]
+* [[!shortcut name=debpkg url="http://packages.debian.org/%s"]]
+* [[!shortcut name=debpkgsid url="http://packages.debian.org/sid/%s"]]
+* [[!shortcut name=debpts url="http://packages.qa.debian.org/%s"]]
+* [[!shortcut name=debmsg url="http://lists.debian.org/msgid-search/%s"]]
+* [[!shortcut name=debrt url="https://rt.debian.org/Ticket/Display.html?id=%s"]]
+* [[!shortcut name=debss url="http://snapshot.debian.net/package/%s"]]
+ * Usage: `\[[!debss package]]`, `\[[!debss package#version]]`, or `\[[!debss package/version]]`. See http://snapshot.debian.net for details.
+* [[!shortcut name=debwiki url="http://wiki.debian.org/%s"]]
+* [[!shortcut name=fdobug url="https://bugs.freedesktop.org/show_bug.cgi?id=%s" desc="freedesktop.org bug #%s"]]
+* [[!shortcut name=fdolist url="http://lists.freedesktop.org/mailman/listinfo/%s" desc="%s@lists.freedesktop.org"]]
+* [[!shortcut name=gnomebug url="http://bugzilla.gnome.org/show_bug.cgi?id=%s" desc="GNOME bug #%s"]]
+* [[!shortcut name=linuxbug url="http://bugzilla.kernel.org/show_bug.cgi?id=%s" desc="Linux bug #%s"]]
+* [[!shortcut name=mozbug url="https://bugzilla.mozilla.org/show_bug.cgi?id=%s" desc="Mozilla bug #%s"]]
+* [[!shortcut name=gnulist url="http://lists.gnu.org/mailman/listinfo/%s" desc="%s@gnu.org"]]
+* [[!shortcut name=marcmsg url="http://marc.info/?i=%s"]]
+* [[!shortcut name=marclist url="http://marc.info/?l=%s"]]
+* [[!shortcut name=gmane url="http://dir.gmane.org/gmane.%s" desc="gmane.%s"]]
+* [[!shortcut name=gmanemsg url="http://mid.gmane.org/%s"]]
+* [[!shortcut name=cpan url="http://search.cpan.org/search?mode=dist&query=%s"]]
+* [[!shortcut name=ctan url="http://tug.ctan.org/cgi-bin/ctanPackageInformation.py?id=%s"]]
+* [[!shortcut name=hoogle url="http://haskell.org/hoogle/?q=%s"]]
+* [[!shortcut name=iki url="http://ikiwiki.info/%S/"]]
+* [[!shortcut name=ljuser url="http://%s.livejournal.com/"]]
+* [[!shortcut name=rfc url="http://www.ietf.org/rfc/rfc%s.txt" desc="RFC %s"]]
+* [[!shortcut name=c2 url="http://c2.com/cgi/wiki?%s"]]
+* [[!shortcut name=meatballwiki url="http://www.usemod.com/cgi-bin/mb.pl?%s"]]
+* [[!shortcut name=emacswiki url="http://www.emacswiki.org/cgi-bin/wiki/%s"]]
+* [[!shortcut name=haskellwiki url="http://haskell.org/haskellwiki/%s"]]
+* [[!shortcut name=dict url="http://www.dict.org/bin/Dict?Form=Dict1&Strategy=*&Database=*&Query=%s"]]
+* [[!shortcut name=imdb url="http://imdb.com/find?q=%s"]]
+* [[!shortcut name=gpg url="http://pgpkeys.mit.edu:11371/pks/lookup?op=vindex&exact=on&search=0x%s"]]
+* [[!shortcut name=perldoc url="http://perldoc.perl.org/search.html?q=%s"]]
+* [[!shortcut name=whois url="http://reports.internic.net/cgi/whois?whois_nic=%s&type=domain"]]
+* [[!shortcut name=cve url="http://cve.mitre.org/cgi-bin/cvename.cgi?name=%s"]]
+* [[!shortcut name=cia url="http://cia.vc/stats/project/%s"]]
+* [[!shortcut name=ciauser url="http://cia.vc/stats/user/%s"]]
+* [[!shortcut name=flickr url="http://www.flickr.com/photos/%s"]]
+* [[!shortcut name=man url="http://linux.die.net/man/%s"]]
+* [[!shortcut name=ohloh url="http://www.ohloh.net/projects/%s"]]
To add a new shortcut, use the `shortcut`
-[[ikiwiki/PreprocessorDirective]]. In the url, "%s" is replaced with the
-text passed to the named shortcut, after url-encoding it, and '%S' is
-replaced with the raw, non-encoded text. The optional `desc` parameter
-controls the description of the link.
+[[ikiwiki/directive]]. In the url, "%s" is replaced with the
+text passed to the named shortcut, after [[!wikipedia url_encoding]]
+it, and '%S' is replaced with the raw, non-encoded text. The optional
+`desc` parameter controls the description of the link.
Remember that the `name` you give the shortcut will become a new
-[[ikiwiki/PreprocessorDirective]]. Avoid using a `name` that conflicts
-with an existing directive.
+[[ikiwiki/directive]]. Avoid using a `name` that conflicts
+with an existing directive. These directives also accept a `desc`
+parameter that will override the one provided at definition time.
If you come up with a shortcut that you think others might find useful,
-consider contributing it to the [[iki shortcuts]] page on the ikiwiki
-ikiwiki, so that future versions of ikiwiki will include your shortcut
-in the standard underlay.
+consider contributing it to the [shortcuts page on the ikiwiki
+wiki](http://ikiwiki.info/shortcuts/), so that future versions of
+ikiwiki will include your shortcut in the standard underlay.
# Local stuff
-* [[shortcut name=source_gnumach-1-branch url="http://cvs.savannah.gnu.org/viewvc/gnumach/%S?view=log&root=hurd&pathrev=gnumach-1-branch"]]
-* [[shortcut name=GNU_Savannah_bug url="http://savannah.gnu.org/bugs/?%s" desc="GNU Savannah bug #%s"]]
-* [[shortcut name=GNU_Savannah_patch url="http://savannah.gnu.org/patch/?%s" desc="GNU Savannah patch #%s"]]
-* [[shortcut name=GNU_Savannah_task url="http://savannah.gnu.org/task/?%s" desc="GNU Savannah task #%s"]]
+* [[!shortcut name=source_gnumach-1-branch url="http://cvs.savannah.gnu.org/viewvc/gnumach/%S?view=log&root=hurd&pathrev=gnumach-1-branch"]]
+* [[!shortcut name=GNU_Savannah_bug url="http://savannah.gnu.org/bugs/?%s" desc="GNU Savannah bug #%s"]]
+* [[!shortcut name=GNU_Savannah_patch url="http://savannah.gnu.org/patch/?%s" desc="GNU Savannah patch #%s"]]
+* [[!shortcut name=GNU_Savannah_task url="http://savannah.gnu.org/task/?%s" desc="GNU Savannah task #%s"]]
diff --git a/sidebar.mdwn b/sidebar.mdwn
index 85596be8..159104fc 100644
--- a/sidebar.mdwn
+++ b/sidebar.mdwn
@@ -1,37 +1,38 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008, 2009, 2010 Free Software Foundation,
+Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-Welcome to... [[img hurd/logo/boxes-redrawn.png link=/hurd/logo]] ... the GNU
-Hurd!
+Welcome to... [[!img /logo/boxes-redrawn.png link=/logo]] ... the GNU Hurd!
* **[[Home|/index]]**
* **[[Community]]**
* **[[Documentation]]**
- * **[[Getting_Help]]**
+ * **[[Getting Help]]**
+ * **[[Open Issues]]**
---
- * **[[Hurd]]**[[if test="destpage(hurd*)" then="
+ * **[[Hurd]]**[[!if test="destpage(hurd*)" then="
* *[[Hurd/Documentation]]*
* *[[hurd/Running]]*"]]
- * **[[microkernel/Mach]]**[[if test="destpage(microkernel/mach*)" then="
+ * **[[microkernel/Mach]]**[[!if test="destpage(microkernel/mach*)" then="
* *[[microkernel/mach/Documentation]]*
- * *[[GNU_Mach|microkernel/mach/gnumach]]*"]]
- * *[[microkernel/mach/MIG]]*[[if test="destpage(microkernel/mach/mig*)" then="
- * [[microkernel/mach/mig/GNU_MIG]]"]]
+ * *[[GNU Mach|microkernel/mach/gnumach]]*"]]
+ * *[[microkernel/mach/MIG]]*[[!if test="destpage(microkernel/mach/mig*)" then="
+ * [[microkernel/mach/mig/GNU MIG]]"]]
---
- * **[[Debian_GNU/Hurd|hurd/running/debian]]**
- * **[[GNU_system|hurd/running/gnu]]**
+ * **[[Debian GNU/Hurd|hurd/running/debian]]**
+ * **[[GNU System|hurd/running/gnu]]**
---
- * **[[HurdNG|hurd/ng]]**
+ * **[[Hurd NG|hurd/ng]]**
diff --git a/source_repositories.mdwn b/source_repositories.mdwn
new file mode 100644
index 00000000..5789cf86
--- /dev/null
+++ b/source_repositories.mdwn
@@ -0,0 +1,194 @@
+[[!meta copyright="Copyright © 2007, 2008, 2009, 2010 Free Software Foundation,
+Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!toc levels=3]]
+
+# Git repositories on Savannah
+
+<http://git.savannah.gnu.org/cgit/hurd/>
+
+ * [[glibc]]
+ * [[incubator]]
+ * ...
+
+## Branches
+
+Members of the [[Hurd Savannah group|rules/savannah group]] are allowed to create
+branches without formal permission:
+
+ * named `SAVANNAH_LOGIN/BASE_BRANCH[-TOPIC]` for private general-purpose or
+ topic branches, respectively, or
+ * named `BASE_BRANCH-TOPIC` for public topic branches basing on
+ `BASE_BRANCH`.
+
+`TOPIC` shall be a suitable tag describing the branch's main concern. These
+tags can be applied recursively (`TOPIC-SUBTOPIC-SUBSUBTOPIC`).
+
+*private* vs. *public* does, of course, in this scenario not mean visibility,
+but instead authority: *private* branches are those that the user
+`SAVANNAH_LOGIN` has authority over, whereas *public* branches are open for
+every committer to install changes on. The private branches are those that you
+would typically host on your own machine and publish through your own web
+server, but we offer that you can instead do this from the centralized Savannah
+repository, as a number of people don't have an always-accessible web server
+running on their own machines.
+
+Examples:
+
+ * GNU Mach
+
+ * `master` -- the mainline branch
+ * `master-oskit` -- port to OSKit; branched off of `master` at some point
+ * `master-gdb_stubs` -- add support for GDB stubs; branched off of
+ `master` at some point
+
+ * libpthread
+
+ * `master` -- the mainline branch
+ * `master-viengoos` -- port to Viengoos; branched off of `master` at some
+ point
+ * `master-viengoos-on-bare-metal` -- port to Viengoos running on bare
+ metal; branched off of `master-viengoos` at some point
+
+ * unionfs
+
+ * `master` -- the mainline branch
+ * `master-unionmount` -- develop `unionmount` based on `unionfs`' master
+ branch
+
+To give a concrete example, the latter one was created like this:
+
+ $ git clone --no-checkout ssh://git.savannah.gnu.org/srv/git/hurd/unionfs.git
+ $ cd unionfs/
+ $ git checkout -b master-unionmount origin/master
+ $ ...
+ $ git push master-unionmount
+
+### Merging
+
+Merging between Git branches is trivial, at least as long as no conflicts
+arise.
+
+Due to this, you are encouraged to freely make use of separate branches for
+different working topics, as this really faciliates concentrating on one
+specific working topic.
+
+You are encouraged to regularely merge from the respective mainline branches
+(`BASE_BRANCH`; should be `master` in most cases) into your working branches,
+and ensure that your modifications are still fine in the context of new
+mainline changes.
+
+Merging from working branches into the mainline branches will usually be done
+by one of the project administrators, unless negotiated otherwise. For this to
+happen, the copyright of your changes has to be assigned to the Free Software
+Foundation; read about the
+[[copyright assignment_process|rules/savannah group#copyright_assignment]].
+
+It is explicitly encouraged to *merge* changes from working branches into the
+mainline branches (as opposed to *rebase* them on top), as the former mode
+easily allows to determine the context under which a patch has been developed.
+
+## Tags
+
+Equivalent rules apply.
+
+## Behavior
+
+Try to not introduce spurious, unneeded changes, e.g., whitespace changes.
+
+Adhere to the coding conventions that are already used. These are usually the
+[GNU Coding Standards](http://www.gnu.org/prep/standards/html_node/) for stuff
+written by ourselves, including new files, of course.
+
+GNU Mach code is largely based on external code. Don't GNU-ify it, as this
+would make merging external patches unnecessarily difficult.
+
+### Commit messages
+
+We no longer maintain parallel `ChangeLog` and commit messages. When needed,
+the `ChangeLog` files can be created automatically from the commit messages.
+
+Commit messages have this mandatory format:
+
+ One-line summary.
+ Blank line.
+ ChangeLog-like list of changes, but without leading tabs.
+
+The header line of each former `ChangeLog` snippet (DATE NAME EMAIL) is no
+longer to be included in the commit message, and instead the author and
+committer of a change, together with the dates, will be maintained natively by
+Git.
+
+Example:
+
+ commit 3054666a46e0142cacef895c13edb4391435c722
+ Author: Some One <someone@example.com>
+ AuthorDate: Thu Jun 11 15:59:55 2005 +0000
+ Commit: Some One <someone@example.com>
+ CommitDate: Thu Jun 11 15:59:55 2005 +0000
+
+ Frobnicate the foo.
+
+ * frob.c (foo): Frob it.
+ * oldfoo.c [OLD] (oldfoo): Likewise.
+ [OLD_OLD_FOO] (oofoo): Permute every second word with itself, and
+ beginning with the tenth line, every third one also. Pure
+ nonsense.
+
+Read about how to write [GNU-style `ChangeLog`
+messages](http://www.gnu.org/prep/standards/html_node/Change-Logs.html).
+
+Don't waste time writing exhaustive `ChangeLog`-like commit messages for, e.g.,
+debugging stuff that will be removed again before merging your development
+branch into the mainline. Sometimes the one-line summary might already
+suffice. But please do write something.
+
+### Behavior on *private* branches
+
+Even though you are said to be the owner of branches tagged with your
+`SAVANNAH_LOGIN`, it is generally nevertheless good to not do history-rewriting
+stuff and the like (`git rebase` and friends), as others may in turn be basing
+their work on your private branches.
+
+We could establish a branch-tagging policy for branches that others should
+expect their history possibly to be rewritten. This may be useful for branches
+that are only meant for aggregating the changes of (several) development
+branches, like an imaginary `master-proposed_for_general_testing` branch.
+
+
+# Git repositories on flubber
+
+[[flubber|public hurd boxen]] is
+[[configured|public_hurd_boxen/installation/flubber]] in a way so that users
+can publish Git repositories from their home directories. The only thing to do
+is to put an empty `.git/git-daemon-export-ok` (cf. [*git daemon*'s manual
+page](http://www.kernel.org/pub/software/scm/git/docs/git-daemon.html)) into
+the repository, or just `git-daemon-export-ok` for
+[*bare*](http://www.kernel.org/pub/software/scm/git/docs/git-init.html)
+repositories.
+
+For example, the [[contributing/web pages]] repository is made available like
+this: `~hurd-web/hurd-web` is a bare repository; there is an empty
+`~hurd-web/hurd-web/git-daemon-export-ok` file. Users can clone the repository
+like this:
+
+ $ git clone git://flubber.bddebian.com/~hurd-web/hurd-web
+
+Another example, [[Thomas Schwinge|tschwinge]] has a checkout of
+[[hurd/libpthread]] in `~tschwinge/tmp/hurd/libpthread/`, the
+`~tschwinge/tmp/hurd/libpthread/.git/git-daemon-export-ok` file exists. If you
+really need to, you can clone it like this:
+
+ $ git clone git://flubber.bddebian.com/~tschwinge/tmp/hurd/libpthread
+
+## List of Interesting Repositories
+
+ * web pages: git://flubber.bddebian.com/~hurd-web/hurd-web
diff --git a/source_repositories/glibc.mdwn b/source_repositories/glibc.mdwn
new file mode 100644
index 00000000..fabd7cab
--- /dev/null
+++ b/source_repositories/glibc.mdwn
@@ -0,0 +1,93 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+There is a repository for maintenance of [[/glibc]] for the Hurd's needs:
+<http://git.savannah.gnu.org/cgit/hurd/glibc.git/>.
+
+This repository uses [[TopGit]].
+
+*A plan for the Hurd-specific glibc repository*, thread
+[begins](http://lists.gnu.org/archive/html/bug-hurd/2010-01/msg00062.html),
+[continues](http://lists.gnu.org/archive/html/bug-hurd/2010-02/msg00021.html).
+
+
+# Usage
+
+## Clone
+
+ $ git init
+ $ git remote add savannah git://git.sv.gnu.org/hurd/glibc.git
+ $ git remote update
+ $ tg remote --populate savannah
+ tg: Remote savannah can now follow TopGit topic branches.
+ tg: Populating local topic branches from remote 'savannah'...
+ From git://git.sv.gnu.org/hurd/glibc
+ * [new branch] refs/top-bases/t/_dl_random -> savannah/top-bases/t/_dl_random
+ * [new branch] refs/top-bases/t/accept4 -> savannah/top-bases/t/accept4
+ [...]
+ * [new branch] refs/top-bases/tschwinge/Roger_Whittaker -> savannah/top-bases/tschwinge/Roger_Whittaker
+ tg: Adding branch t/_dl_random...
+ tg: Adding branch t/accept4...
+ [...]
+ tg: Adding branch tschwinge/Roger_Whittaker...
+ tg: The remote 'savannah' is now the default source of topic branches.
+
+## Use tschwinge's Working Branch
+
+ $ git checkout tschwinge/Roger_Whittaker
+
+## Integrate a New Branch
+
+A new (TopGit) branch has been published upstream:
+
+ $ tg remote --populate savannah
+ tg: Remote savannah can now follow TopGit topic branches.
+ tg: Populating local topic branches from remote 'savannah'...
+ remote: Counting objects: 28, done.
+ remote: Compressing objects: 100% (19/19), done.
+ remote: Total 20 (delta 13), reused 1 (delta 0)
+ Unpacking objects: 100% (20/20), done.
+ From git://git.sv.gnu.org/hurd/glibc
+ * [new branch] t/unwind-resume.c -> savannah/t/unwind-resume.c
+ * [new branch] refs/top-bases/t/unwind-resume.c -> savannah/top-bases/t/unwind-resume.c
+ tg: Skipping branch t/____longjmp_chk: Already exists
+ [...]
+ tg: Skipping branch t/tlsdesc.sym: Already exists
+ tg: Adding branch t/unwind-resume.c...
+ tg: Skipping branch t/verify.h: Already exists
+ tg: Skipping branch tschwinge/Roger_Whittaker: Already exists
+ tg: The remote 'savannah' is now the default source of topic branches.
+
+Make `tschwinge/Roger_Whittaker` (the current branch) depend on it:
+
+ $ tg depend add t/unwind-resume.c
+ [tschwinge/Roger_Whittaker 63f11ff] New TopGit dependency: t/unwind-resume.c
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+ tg: Updating base with t/unwind-resume.c changes...
+ Auto-merging .topdeps
+ Auto-merging .topmsg
+ Merge made by recursive.
+ nptl/sysdeps/pthread/Makefile | 12 ++----------
+ sysdeps/gnu/Makefile | 18 ++++++++++++++++--
+ .../pthread => sysdeps/gnu}/rt-unwind-resume.c | 0
+ .../pthread => sysdeps/gnu}/unwind-resume.c | 4 ++--
+ 4 files changed, 20 insertions(+), 14 deletions(-)
+ rename {nptl/sysdeps/pthread => sysdeps/gnu}/rt-unwind-resume.c (100%)
+ rename {nptl/sysdeps/pthread => sysdeps/gnu}/unwind-resume.c (93%)
+ tg: The tschwinge/Roger_Whittaker head is up-to-date wrt. its remote branch.
+ tg: Updating tschwinge/Roger_Whittaker against new base...
+ Merge made by recursive.
+ nptl/sysdeps/pthread/Makefile | 12 ++----------
+ sysdeps/gnu/Makefile | 18 ++++++++++++++++--
+ .../pthread => sysdeps/gnu}/rt-unwind-resume.c | 0
+ .../pthread => sysdeps/gnu}/unwind-resume.c | 4 ++--
+ 4 files changed, 20 insertions(+), 14 deletions(-)
+ rename {nptl/sysdeps/pthread => sysdeps/gnu}/rt-unwind-resume.c (100%)
+ rename {nptl/sysdeps/pthread => sysdeps/gnu}/unwind-resume.c (93%)
diff --git a/source_repositories/incubator.mdwn b/source_repositories/incubator.mdwn
new file mode 100644
index 00000000..51f64c17
--- /dev/null
+++ b/source_repositories/incubator.mdwn
@@ -0,0 +1,12 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+There is a repository for *this*, and *that*, and *everything* -- the
+*incubator*: <http://git.savannah.gnu.org/cgit/hurd/incubator.git/>.
diff --git a/tag.mdwn b/tag.mdwn
new file mode 100644
index 00000000..4d441b29
--- /dev/null
+++ b/tag.mdwn
@@ -0,0 +1,39 @@
+[[!meta copyright="Copyright © 2009, 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+The following [[!iki ikiwiki/directive/tag desc=tags]] are actively used at the
+moment:
+
+[[!map
+pages="tag/* and !tag/*/*"
+show=title]]
+
+Most of them should be self-explanatory.
+
+ * *fixed_in_debian*
+
+ This tag is used to tag items that have been fixed in the [[Debian
+ GNU/Hurd|hurd/running/debian]] distribution, but not yet in the upstream
+ sources.
+
+ * *open_issue_porting*
+
+ A list of open issues in porting software to run on GNU/Hurd systems. This
+ list also includes [[hurd/toolchain]]-level items, items that are either
+ already solved in [[Debian GNU/Hurd|hurd/running/debian]] systems (tagged
+ *fixed_in_debian*) or being worked around, so if you're out for working on
+ application-level porting issues, then perusing through the list of
+ [[Debian packages that need porting|hurd/running/debian/porting]] may be
+ better.
+
+ * *stable_URL*
+
+ These pages are tagged as having a *stable URL*. That is, they're linked
+ to on external pages, and should not be changed just for the sake of it.
diff --git a/tag/fixed_in_debian.mdwn b/tag/fixed_in_debian.mdwn
new file mode 100644
index 00000000..b8aeddc8
--- /dev/null
+++ b/tag/fixed_in_debian.mdwn
@@ -0,0 +1,15 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta title="fixed_in_debian"]]
+
+[[!map
+pages="tagged(fixed_in_debian)"
+show=title]]
diff --git a/tag/open_issue_documentation.mdwn b/tag/open_issue_documentation.mdwn
new file mode 100644
index 00000000..eb7f87a2
--- /dev/null
+++ b/tag/open_issue_documentation.mdwn
@@ -0,0 +1,15 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta title="open_issue_documentation"]]
+
+[[!map
+pages="tagged(open_issue_documentation)"
+show=title]]
diff --git a/tag/open_issue_gcc.mdwn b/tag/open_issue_gcc.mdwn
new file mode 100644
index 00000000..b880d152
--- /dev/null
+++ b/tag/open_issue_gcc.mdwn
@@ -0,0 +1,15 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta title="open_issue_gcc"]]
+
+[[!map
+pages="tagged(open_issue_gcc)"
+show=title]]
diff --git a/tag/open_issue_gdb.mdwn b/tag/open_issue_gdb.mdwn
new file mode 100644
index 00000000..02363dd5
--- /dev/null
+++ b/tag/open_issue_gdb.mdwn
@@ -0,0 +1,15 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta title="open_issue_gdb"]]
+
+[[!map
+pages="tagged(open_issue_gdb)"
+show=title]]
diff --git a/tag/open_issue_glibc.mdwn b/tag/open_issue_glibc.mdwn
new file mode 100644
index 00000000..e523637a
--- /dev/null
+++ b/tag/open_issue_glibc.mdwn
@@ -0,0 +1,15 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta title="open_issue_glibc"]]
+
+[[!map
+pages="tagged(open_issue_glibc)"
+show=title]]
diff --git a/tag/open_issue_gnumach.mdwn b/tag/open_issue_gnumach.mdwn
new file mode 100644
index 00000000..22e49393
--- /dev/null
+++ b/tag/open_issue_gnumach.mdwn
@@ -0,0 +1,15 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta title="open_issue_gnumach"]]
+
+[[!map
+pages="tagged(open_issue_gnumach)"
+show=title]]
diff --git a/tag/open_issue_hurd.mdwn b/tag/open_issue_hurd.mdwn
new file mode 100644
index 00000000..d5505f70
--- /dev/null
+++ b/tag/open_issue_hurd.mdwn
@@ -0,0 +1,15 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta title="open_issue_hurd"]]
+
+[[!map
+pages="tagged(open_issue_hurd)"
+show=title]]
diff --git a/tag/open_issue_mig.mdwn b/tag/open_issue_mig.mdwn
new file mode 100644
index 00000000..79ef3acb
--- /dev/null
+++ b/tag/open_issue_mig.mdwn
@@ -0,0 +1,15 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta title="open_issue_mig"]]
+
+[[!map
+pages="tagged(open_issue_mig)"
+show=title]]
diff --git a/tag/open_issue_porting.mdwn b/tag/open_issue_porting.mdwn
new file mode 100644
index 00000000..0bc33c0d
--- /dev/null
+++ b/tag/open_issue_porting.mdwn
@@ -0,0 +1,15 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta title="open_issue_porting"]]
+
+[[!map
+pages="tagged(open_issue_porting)"
+show=title]]
diff --git a/tag/open_issue_pthread.mdwn b/tag/open_issue_pthread.mdwn
new file mode 100644
index 00000000..0ccb1002
--- /dev/null
+++ b/tag/open_issue_pthread.mdwn
@@ -0,0 +1,15 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta title="open_issue_pthread"]]
+
+[[!map
+pages="tagged(open_issue_pthread)"
+show=title]]
diff --git a/tag/open_issue_viengoos.mdwn b/tag/open_issue_viengoos.mdwn
new file mode 100644
index 00000000..6f564e06
--- /dev/null
+++ b/tag/open_issue_viengoos.mdwn
@@ -0,0 +1,15 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta title="open_issue_viengoos"]]
+
+[[!map
+pages="tagged(open_issue_viengoos)"
+show=title]]
diff --git a/tag/open_issue_xen.mdwn b/tag/open_issue_xen.mdwn
new file mode 100644
index 00000000..fbe40652
--- /dev/null
+++ b/tag/open_issue_xen.mdwn
@@ -0,0 +1,15 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta title="open_issue_xen"]]
+
+[[!map
+pages="tagged(open_issue_xen)"
+show=title]]
diff --git a/tag/stable_URL.mdwn b/tag/stable_URL.mdwn
new file mode 100644
index 00000000..8b25517e
--- /dev/null
+++ b/tag/stable_URL.mdwn
@@ -0,0 +1,15 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta title="stable_URL"]]
+
+[[!map
+pages="tagged(stable_URL)"
+show=title]]
diff --git a/tcb.mdwn b/tcb.mdwn
index d321a954..f6018dae 100644
--- a/tcb.mdwn
+++ b/tcb.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
TCB stands for trusted computed base. Unqualified, the trusted
computing base referrers to the set of components programs
diff --git a/topgit.mdwn b/topgit.mdwn
new file mode 100644
index 00000000..55ff5f54
--- /dev/null
+++ b/topgit.mdwn
@@ -0,0 +1,23 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta title="TopGit"]]
+
+<http://repo.or.cz/w/topgit.git>
+
+ * David Bremner: [*A topgit
+ testimonial*](http://www.cs.unb.ca/~bremner/blog/posts/topgit_testimonial/),
+ [*So your topgit patch was merged
+ upstream*](http://www.cs.unb.ca/~bremner/blog/posts/so_your_topgit_patch_was_merged/),
+ [more](http://www.cs.unb.ca/~bremner/tags/topgit/).
+ * Pete Hopkins: [*topgit Means Never Having to Wait for
+ Reviews*](http://blog.grogmaster.com/2008/12/topgit-means-never-having-to-wait-for.html)
+ * Christoph Egger: [*Git repository's and
+ topgit*](http://lists.debian.org/debian-devel-games/2008/11/msg00109.html)
diff --git a/trackers.mdwn b/trackers.mdwn
index c47daf9a..c8fe913e 100644
--- a/trackers.mdwn
+++ b/trackers.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
A number of different trackers are available at the [GNU Savannah Hurd
Group](http://savannah.gnu.org/projects/hurd).
diff --git a/trust.mdwn b/trust.mdwn
index f0d29a9c..2bf0a9ae 100644
--- a/trust.mdwn
+++ b/trust.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
The word trust is used in a number of contexts with different technical meanings.
Sometimes it is used to confuse, for instance trusted computing is rarely about
diff --git a/unix.mdwn b/unix.mdwn
index b313010a..a927eb64 100644
--- a/unix.mdwn
+++ b/unix.mdwn
@@ -1,16 +1,16 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
# External
- * Wikipedia page about [[wikipedia UNIX]].
+ * Wikipedia page about [[!wikipedia UNIX]].
* [*Standardizing
UNIX*](http://www.informit.com/articles/printerfriendly.aspx?p=691503), an
diff --git a/unsorted/BochsFAQ.mdwn b/unsorted/BochsFAQ.mdwn
index d446f695..474bbed5 100644
--- a/unsorted/BochsFAQ.mdwn
+++ b/unsorted/BochsFAQ.mdwn
@@ -1,7 +1,5 @@
# <a name="GNU_pre0_3_J2_for_Bochs_mini_FAQ"> </a> GNU pre0.3-J2 for Bochs mini-FAQ
-%TOC%
-
----
## <a name="What_do_you_mean_GNU_the_GNU_Hur"> </a> What do you mean "GNU", the GNU Hurd?
diff --git a/unsorted/BuildingOskitMach.mdwn b/unsorted/BuildingOskitMach.mdwn
index 334b0669..9eee80d3 100644
--- a/unsorted/BuildingOskitMach.mdwn
+++ b/unsorted/BuildingOskitMach.mdwn
@@ -1,13 +1,6 @@
## <a name="HowTo_Build_OSKit_Mach"> </a> HowTo Build OSKit-Mach
-<table align="center" width="75%">
- <tr>
- <td width="50%"> %TOC% </td>
- <td width="50%">
- <p><nop></nop></p>
<h3><a name="Introduction"> Introduction </a></h3> This is a brief "<nop>HowTO build OSKit-Mach" (a.k.a GNUmach 2.0). It covers everything from getting the latest sources of both the <a href="http://www.cs.utah.edu/flux/oskit/" target="_top">OSKit</a> and the GNUmach kernel, down to building and debugging them. <p> To be able to actually make use of your recently checked out CVS version of the GNUMach kernel &amp;amp; c:o you need a GNU system of <a href="ftp://ftp.funet.fi/pub/gnu/alpha/gnu/hurd/contrib/marcus/gnu-20020816.tar.gz" target="_top">gnu-20020816.tar.gz</a> or later. See [[Distrib/TarballNotesHome]] for more info. </p></nop></td>
- </tr>
-</table>
## <a name="Getting_your_hands_on_the_source"> Getting your hands on the source </a>
diff --git a/unsorted/DebianX.mdwn b/unsorted/DebianX.mdwn
index 00692ca8..6d65a140 100644
--- a/unsorted/DebianX.mdwn
+++ b/unsorted/DebianX.mdwn
@@ -1,9 +1,5 @@
# <a name="Setting_up_X_on_Debian_GNU_Hurd"> </a> Setting up X on Debian GNU/Hurd
-#### <a name="Table_Of_Contents"> Table Of Contents </a>
-
-%TOC%
-
This is a brief helper on how to setup X-Windows on Debian GNU/Hurd.
Obviously this text is taken from the page <http://hurd.gnufans.org/bin/view/Hurd/Xfree86> but I was making such drastic changes, I didn't want to hack up that page.
@@ -88,16 +84,6 @@ You may also enable the Emulate3Buttons option, but nothing else will work.
**_WARNING:_** I cannot verify as of yet whether it was the "Emulate3Buttons" setting or the "ZAxisMapping" setting but I had to disable both in order to be able to move and resize windows.
-### <a name="Dynamic_Linking"> Dynamic Linking </a>
-
-The Hurd does not use `ld.so.conf`, it is necessary to add the following to `/etc/profile` to be sure that the libraries are found:
-
- LD_LIBRARY_PATH=/X11R6/lib:$LD_LIBRARY_PATH
-
-"This is a linker issue. GNU/Hurd expects that \`RPATH' is used, however, Debian takes certain measures to avoid this. Note that this does not cut it for suid binaries because of security implications. We expect to rectify this by using \`RUNPATH', which is specified in the new ELF standard." -- [Why does X not work?](http://www.gnu.org/software/hurd/faq.en.html#q4-8)
-
-**_CAVEAT 12/28/2004:_** I did not have to do this so can someone verify that this still needs to be done or was it fixed? Thanks!
-
### <a name="Starting_X"> Starting X </a>
Finally, run `startx`
diff --git a/unsorted/DebianXorg.mdwn b/unsorted/DebianXorg.mdwn
index 1599c689..a1d77903 100644
--- a/unsorted/DebianXorg.mdwn
+++ b/unsorted/DebianXorg.mdwn
@@ -1,9 +1,5 @@
# <a name="Setting_up_Xorg_on_Debian_GNU_Hu"> </a> Setting up Xorg on Debian GNU/Hurd
-#### <a name="Table_Of_Contents"> Table Of Contents </a>
-
-%TOC%
-
This is a brief helper on how to setup Xorg on Debian GNU/Hurd.
Obviously this text is taken from the page <http://hurd.gnufans.org/bin/view/Hurd/DebianX> but I was making such drastic changes, I didn't want to hack up that page.
diff --git a/unsorted/InstallNotes.mdwn b/unsorted/InstallNotes.mdwn
index 1cdfca9c..f3ac58d1 100644
--- a/unsorted/InstallNotes.mdwn
+++ b/unsorted/InstallNotes.mdwn
@@ -2,10 +2,6 @@ Items of interest during install not mentioned elsewhere include the following.
**_Currently, [Debian's installation instructions](http://www.debian.org/ports/hurd/hurd-install) are the most up-to-date._**<br /> Note the mirrors mentioned on debian.org have no hurd iso's. The iso's can be found [Here](http://ftp.gnuab.org/pub/gnu.iso)
-## <a name="Table_of_Contents"> Table of Contents </a>
-
-%TOC%
-
## <a name="1_Overview_Where_we_are_going"> 1. Overview - Where we are going </a>
There are currently four methods to install GNU
@@ -198,7 +194,6 @@ See [[DebianAfterInstall]] for complete, up to date instructions.
* Run `passwd` to give the root user a password. By default, root does not have one.
* Run `adduser` to give yourself a user account. _Do not_ use root indiscriminately.
* Run `MAKEDEV` to create devices in `/dev` for your hard disk and other required devices.
- * Since the Hurd does not use `ld.so.conf`, you will want to specify where the X Window System keeps its libraries. Do this by adding the following line to your `/etc/profile`: <br />`export LD_LIBRARY_PATH='/lib:/usr/X11R6/lib'`
* run `/etc/cron.daily/find` to allow `locate` to function.
* [[GetNetworkRunning]]
diff --git a/unsorted/InstallTips.mdwn b/unsorted/InstallTips.mdwn
index c9f5bdc2..262ec741 100644
--- a/unsorted/InstallTips.mdwn
+++ b/unsorted/InstallTips.mdwn
@@ -1,9 +1,5 @@
Before reading these instructions, be sure you are familiar with the [[InstallNotes]].
-## <a name="Table_of_Contents"> Table of Contents </a>
-
-%TOC%
-
## <a name="1_Setting_up_the_filesystems"> 1. Setting up the filesystems </a>
You will need to boot a linux capable of internet access and creating/mounting ext2 partitions. I recommend [tomsrtbt](http://www.toms.net/rb/) linux which fits nicely onto a floppy and although a bit old will work well.
diff --git a/unsorted/JoachimNilssonHurdPage.mdwn b/unsorted/JoachimNilssonHurdPage.mdwn
index e4dde2b9..163d6845 100644
--- a/unsorted/JoachimNilssonHurdPage.mdwn
+++ b/unsorted/JoachimNilssonHurdPage.mdwn
@@ -1,15 +1,3 @@
-<table width="100%">
- <tr>
- <td>
- </td>
- <td align="right"><a href="http://hurd.gnufans.orghttp://LOCATIONHurd/JoachimNilssonHurdPage" target="_top">Edit this page</a></td>
- </tr>
- <tr>
- <td align="right"> %ATTACHURL%/patch_kit.jpg </td>
- <td align="left"><nop><h2><a name="Table_of_Contents"> Table of Contents </a></h2> %TOC% </nop></td>
- </tr>
-</table>
-
## <a name="Introduction"> Introduction </a>
This page serves as a simple project page for me. I use it to list my personal Hurd related projects, currently only OSKit related. If you wish to comment on my work, do so in [[TWiki/GoodStyle]], preferably at the bottom of this page.
diff --git a/unsorted/OskitMach.mdwn b/unsorted/OskitMach.mdwn
index b5b92d68..0f7dfa54 100644
--- a/unsorted/OskitMach.mdwn
+++ b/unsorted/OskitMach.mdwn
@@ -22,7 +22,7 @@ concentrate on completely different microkernels (Coyotos being the current
favourite), as well as on improving the original GNU Mach 1.x codebase. (See
also [[microkernel/mach/gnumach/projects]].)
-The [[mailing_lists]], or the [[IRC]] is, like always, the best source of more
+The [[mailing lists]], or the [[IRC]] is, like always, the best source of more
current information.
There also exist other efforts:
diff --git a/unsorted/OskitPatches.mdwn b/unsorted/OskitPatches.mdwn
index d189bb6d..b0cb646a 100644
--- a/unsorted/OskitPatches.mdwn
+++ b/unsorted/OskitPatches.mdwn
@@ -1,7 +1,3 @@
-## <a name="Table_of_Contents"> Table of Contents </a>
-
-%TOC%
-
## <a name="Flux_OS_Toolkit"> Flux OS Toolkit </a>
[The OSKit](http://www.cs.utah.edu/flux/oskit/) is a framework and a set of libraries for building and extending operating systems developed by [the Flux Project](http://www.cs.utah.edu/flux/).
diff --git a/unsorted/RemoteDebugOskitMach.mdwn b/unsorted/RemoteDebugOskitMach.mdwn
index c260ce25..bb5b9006 100644
--- a/unsorted/RemoteDebugOskitMach.mdwn
+++ b/unsorted/RemoteDebugOskitMach.mdwn
@@ -1,9 +1,5 @@
# <a name="Remote_Debug_GNUmach"> </a> Remote Debug GNUmach
-# <a name="Table_of_Contents"> Table of Contents </a>
-
-%TOC%
-
# <a name="Booting_oskit_mach_with_a_serial"> Booting oskit-mach with a serial console </a>
**Original Author:** Igor Khavkine **Last Updated:** Mon Jul 30 17:58:55 EDT 2001
diff --git a/unsorted/SeenHurd.mdwn b/unsorted/SeenHurd.mdwn
index be9e1aba..92be4224 100644
--- a/unsorted/SeenHurd.mdwn
+++ b/unsorted/SeenHurd.mdwn
@@ -1,9 +1,5 @@
# <a name="Hurd_Sightings"> Hurd Sightings </a>
-#### <a name="Table_Of_Contents"> Table Of Contents </a>
-
-%TOC%
-
## <a name="Hurd_People_Sightings"> Hurd People Sightings </a>
<dl>
@@ -12,9 +8,6 @@
<dt>[[IRC]]</dt>
<dd>
</dd>
- <dt>[[WhoRunsGNU]]</dt>
- <dd>
- </dd>
<dt>[[HurdDevelopers]]</dt>
<dd> Who's who? </dd>
<dt>[[PersonalHurdPages]]</dt>
diff --git a/unsorted/WhoRunsGNU.mdwn b/unsorted/WhoRunsGNU.mdwn
deleted file mode 100644
index ad1685b7..00000000
--- a/unsorted/WhoRunsGNU.mdwn
+++ /dev/null
@@ -1,31 +0,0 @@
-## <a name="Who_runs_GNU_"> </a> Who runs GNU in production?
-
-On an official [GNU Project](http://www.gnu.org/gnu/thegnuproject.html) page I found a quote, attributed to Rabbi Hillel:
-
-> If I am not for myself, who will be for me?
->
-> <br />
->
-> If I am only for myself, what am I?
->
-> <br />
->
-> If not now, when?
-
-There are many now using test installations of Debian GNU/Hurd for testing and development. This page is set aside to list those sites using full GNU systems (GNU/Hurd) for non-testing and non-development purposes.
-
-## <a name="I_run_GNU_"> </a> I run GNU!
-
-<dl>
- <dt> Budi Rahardjo</dt>
- <dd><a href="http://hurd.indocisc.com" target="_top">http://hurd.indocisc.com</a>, contact at <a href="mailto:budi@research.indociscNOSPAM.com">budi@research.indociscNOSPAM.com</a></dd>
- <dt>[[Main/JamesAMorrison]]</dt>
- <dd><a href="http://hurd.dyndns.org" target="_top">http://hurd.dyndns.org</a> -
-seems to be offline -- [[Community/weblogs/ArneBab]] - 2008-09-02</dd>
-</dl>
-
-### Testing and developer installations
-
-Installations for testing purposes are listed as [[public_hurd_boxen]].
-
-These also contain the wiki server.
diff --git a/unsorted/Xfree86.mdwn b/unsorted/Xfree86.mdwn
index 617508e5..6fffff81 100644
--- a/unsorted/Xfree86.mdwn
+++ b/unsorted/Xfree86.mdwn
@@ -1,9 +1,5 @@
# <a name="Setup_XFree86_in_GNU"> </a> Setup XFree86 in GNU
-#### <a name="Table_Of_Content"> Table Of Content </a>
-
-%TOC%
-
This is a brief helper on how to setup X-Window on GNU.
### <a name="Mouse_amp_Keyboard"> Mouse &amp; Keyboard </a>
@@ -70,14 +66,6 @@ You may also enable the Emulate3Buttons option, but nothing else will work.
Option "Emulate3Buttons" "true"
-### <a name="Dynamic_Linking"> Dynamic Linking </a>
-
-The Hurd does not use `ld.so.conf`, it is necessary to add the following to `/etc/profile` to be sure that the libraries are found:
-
- LD_LIBRARY_PATH=/X11R6/lib:$LD_LIBRARY_PATH
-
-"This is a linker issue. GNU/Hurd expects that \`RPATH' is used, however, Debian takes certain measures to avoid this. Note that this does not cut it for suid binaries because of security implications. We expect to rectify this by using \`RUNPATH', which is specified in the new ELF standard." -- [Why does X not work?](http://www.gnu.org/software/hurd/faq.en.html#q4-8)
-
### <a name="Starting_X"> Starting X </a>
Finally, run
diff --git a/unsorted/changelogs.html b/unsorted/changelogs.html
index 7689484e..299ef281 100644
--- a/unsorted/changelogs.html
+++ b/unsorted/changelogs.html
@@ -7,7 +7,7 @@ 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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
<H3>ChangeLogs</H3>
<P>
diff --git a/user.mdwn b/user.mdwn
new file mode 100644
index 00000000..9c965af2
--- /dev/null
+++ b/user.mdwn
@@ -0,0 +1,21 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta title="User Pages"]]
+
+[[!inline
+pages=none
+show=-1
+feeds=no
+actions=yes
+rootpage="user" postformtext="Add a new user page titled:"]]
+
+[[!map pages="user/* and !user/*/*"
+show=title]]
diff --git a/user/flaviocruz.mdwn b/user/flaviocruz.mdwn
index 9c9af71d..c4d3db69 100644
--- a/user/flaviocruz.mdwn
+++ b/user/flaviocruz.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
Name: Flávio Cruz
@@ -14,9 +14,7 @@ Email: flaviocruz at gmail dot com
Some [Hurd stuff](http://opensvn.csie.org/leic/hurd/)
-And code: [cl-hurd](http://freehg.org/u/flavioc/cl-hurd/)
-
-hg clone [http://freehg.org/u/flavioc/cl-hurd/](http://freehg.org/u/flavioc/cl-hurd/)
+And code: [cl-hurd](http://git.savannah.gnu.org/cgit/hurd/incubator.git/log/?h=clisp)
## Summer session
diff --git a/user/jkoenig.mdwn b/user/jkoenig.mdwn
new file mode 100644
index 00000000..aa760b61
--- /dev/null
+++ b/user/jkoenig.mdwn
@@ -0,0 +1,328 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+## Hurd Debian-Installer
+
+My [proposal](http://wiki.debian.org/SummerOfCode2010/HurdDebianInstaller/JeremieKoenig)
+to work on porting d-i on Hurd
+as a [Google Summer of Code](http://code.google.com/soc/) student
+has been accepted by the Debian project.
+
+I will be keeping track of my progress on this page.
+
+### Links
+
+ * [Modified packages](http://jk.fr.eu.org/debian/unstable)
+ * [Latest images](http://jk.fr.eu.org/debian/hurd-installer)
+ * [Debian bugs](http://bugs.debian.org/cgi-bin/pkgreport.cgi?users=jk@jk.fr.eu.org&tag=gsoc2010)
+ * [BusyBox port](http://lists.debian.org/debian-bsd/2010/05/msg00048.html)
+ * [GNU Mach initrd](http://lists.gnu.org/archive/html/bug-hurd/2010-06/msg00047.html)
+
+### Roadmap
+
+* **mach**: initrd support
+ * (./) preliminary patch posted and self-built (2010-06-12)
+ * adjustments will be needed (postponed)
+ * consider the alternatives discussed on bug-hurd (postponed)
+
+* **glibc**: fix `mkdir("/")` which returned `EINVAL`
+ * (./) eglibc 2.11.2-1 includes a quick fix by youpi (2010-06-15)
+ * (./) more complete patch posted to bug-hurd,
+ since other calls return incorrect errors under some circumstances
+ (2010-06-16)
+ * more work on it will be needed to make it fix the whole thing
+ (postponed)
+
+* (./) **partman** (2010-06-23)
+ * (./) add hurd-i386 to
+ `partman-partitioning/lib/disk-label.sh`
+ (2010-06-16, commited by youpi on 2010-06-23)
+ * (./) short-circuit
+ `partman-basicfilesystems/init.d/kernelmodules_basicfilesystems`
+ (2010-06-16)
+ * (./) partman-auto recipes:
+ make the default filesystem os-dependent
+ when it has not been preseeded (ie. the *seen* flag is clear)
+ * (./) force 4k blocks and 128 bytes inodes
+ * (./) submit patches to bugs.debian.org
+ ([[!debbug 586870]] and [[!debbug 586871]])
+ * (./) rebuild with responsible version numbers and upload to my repository
+
+* (./) **libparted** (2010-06-23)
+ * (./) fix device paths ([[!debbug 586696]])
+ * (./) fix crash on exit for part:* stores ([[!debbug 586682]])
+
+* **hurd-udeb** (2010-06-23)
+ * (./) rebuild with the hack suggested by youpi for qemu network configuration
+ * (./) fix mount to accept `-o defaults`
+ * cleanup, ask youpi to commit
+
+* reloading the partition table (2010-06-25)
+ * User-space part stores
+ * (./) hurd-udeb now uses `part:N:device:X` for partition devices
+ (2010-06-23)
+ * (./) it also provides /lib/partman/commit.d/??hurd\_reloadpart,
+ which basically does `settrans -ag /dev/[hs]d*`.
+ (2010-06-24)
+ * Kernel-based partition devices
+ * (./) Mach's drivers from Linux support reloading partitions.
+ With help from youpi this has been made available through a
+ device\_set\_status() call.
+ * (./) make libparted use it
+ * Reminder:
+ I should file a bug against libparted with the patch sometime.
+
+* (./) The `/servers/exec` issue (2010-06-26)
+ * Due to /servers being inexistant,
+ the bootstrap ext2fs could not register the initial exec server,
+ meaning that non-bootstrap filesystems used a different one
+ (started from the passive translator),
+ which for some reason died on shell scripts, making them stall.
+ * Adding the `/servers` directory to hurd-udeb fixed it,
+ as well as the /hurd/proc issue
+ (failed to be run by init the first time around).
+ * Reminder: report the non-bootstrap exec servers failure on scripts.
+
+* (./) **base-installer**: (2010-06-26)
+ * Work around non-existant /proc/mounts.
+ * Firmlink /servers into /target after debootstrap
+ to make the network available.
+
+* (./) **grub-installer**
+ * (./) add hurd support (2010-06-27)
+ * /!\ grub-legacy still needs to be tested
+ * submit changes as a Debian bug
+
+**Milestone (2010-06-28):
+installer kindof works, with documented manual intervention required**
+
+* (./) Sort out the situation with dev node creation (2010-07-07):
+ * Devices and servers used to be set up by debootstrap;
+ the hurd package would add some missing nodes.
+ * New strategy implemented in hurd and debootstrap:
+ * debootstrap uses active firmlinks into the host system
+ for the target system's /dev and /servers.
+ * the hurd package now include a `setup-translators` script,
+ which is used to register the passive translators by the installer's
+ `/libexec/runsystem` and hurd's postinst script.
+
+* **busybox**: submit upstream and to [[!debbug 323670]]
+ (waiting for upstream to review)
+ * (./) I have mentioned my work on the upstream mailing list,
+ * (./) merge the recent changes from upstream,
+ notably to the build system.
+ (2010-06-23)
+ * (./) ask upstream for review and merge
+ (2010-06-25)
+ * (./) sent as patches as requested
+ (2010-07-08)
+ * backport any additional changes onto the debian branch
+ * hijack [[!debbug 323670]] and submit my patches
+
+* **aptitude**:
+ * Currently broken on hurd-i386:
+ [[!debpkg gtest]] fails to build because of a segfault in one of the test
+ cases, [[!debpkg google-mock]] and hence [[!debpkg aptitude]] are missing
+ it as a build-dep.
+ The older package is not installable anymore because it's linked against
+ an older version of libept, which has been removed.
+ * (./) I bypassed the tests and uploaded the 3 packages to my repository
+ (2010-07-08)
+ * The segfault will have to be sorted out. (postponed)
+
+* (./) "Fix" the swap situation. (2010-07-08)
+ * The device_close() libstore patch
+ had the unfortunate effect of making swapon fail,
+ since the device it activates has to be kept open.
+ * add options for MAKEDEV and setup-devices
+ to use the libparted stores
+ * disable youpi's patch
+ * make partman-basicfilesystems re-create the device
+ as a kernel partition, which is needed for swapon
+
+* (./) netcfg-static: port to hurd (2010-07-09)
+ * There was some amount of hurd support already
+ (namely, activating the interface by replacing the socket translator)
+ * However, this code started an active translator with
+ di_exec_shell_log("settrans -a ...),
+ which stalled as a consequence of it capturing libdi's pipe
+ as its standard output.
+ * Network devices must be probed by trying to open Mach devices
+ with predetermined names (currently eth%d, wl%d),
+ because getifaddrs() does not seem to work on Hurd.
+ * /!\ netcfg, and configuring the installed system, postponed.
+
+* **procps** 3.2.7-11 (current hurd-i386 version) has [[!debbug 546888]]
+ * (./) Submit [[!debbug 588677]] and upload the result to my repository.
+ (2010-07-11)
+
+* (./) Set up a Debian mirror with modified packages for installation
+ * the [mirror](http://jk.fr.eu.org/debian/hurd-install/mirror)
+ is now up and running (2010-07-06)
+ * hacked the image build script to include its public key in
+ debian-archive-keyring at image build time (2010-07-08)
+ * Apparently debootstrap does not handle multiple versions very well.
+ Fix by using dpkg-scan{package,sources} rather than apt-ftparchive
+ to create index files.
+ (2010-07-10)
+ * Use the override files from ftp.debian.org,
+ to avoid debootstrap grabbing inappropriate packages.
+ * Changed them to make [[!debpkg ifupdown]],
+ [[!debpkg dhcp3-client]] and [[!debpkg dhcp3-client]] priority extra,
+ because they're uninstallable at the moment.
+ (2010-07-12)
+
+* (./) Put together a "jk-archive-keyring" package,
+ so that the mirror is authenticated in the target system as well.
+ (2010-07-12)
+
+* (./) Fix grub for user-space partitions (2010-07-16)
+ * grub-probe detects the whole device rather than the partition
+ as the device behind /boot/grub.
+ Consequently, grub-install fails.
+ * One approach would be to replace /dev/hd* by kernel devices
+ for file systems as well as for swap partitions.
+ > {X} this makes the installer crash,
+ > possibly due to cache coherency issue between hdX and hdXsY.
+
+ * (./) GRUB2 kern/emu/getroot.c
+ [patched](http://lists.gnu.org/archive/html/bug-hurd/2010-07/msg00059.html)
+ to support part stores.
+
+* (./) Fix finish-install to skip `finish-install.d/90console` on Hurd
+ (2010-07-17)
+
+* (./) Avoid starting unnecessary /dev translators in a burst (2010-07-20)
+ * Use debootstrap use the extracted /usr/lib/hurd/setup-translators
+ to create device and server nodes in /target,
+ then firmlink the whole /target/dev and /target/servers
+ to the outer system.
+ * Make hurd.postinst not touch them on initial install.
+
+* (./) Fix mach-defpager for file and part stores on larger devices
+ * Use DEVICE_GET_RECORDS instead of DEVICE_GET_SIZE, which overflows an int
+ (2010-07-22)
+
+* (./) Ship the uft-8 font for the hurd console (2010-07-22)
+ * Upload a version of bogl with youpi's patch for Hurd.
+ (see [[!debbug 589987]])
+ * Fix the hurd console for fonts with 16 pixels wide glyphs
+ (ie. handle the 8-wide glyph in there correclty)
+ * {X} However the reduced font can't be loaded yet,
+ so make installer/build/Makefile
+ ship the whole `/usr/src/unifont.bgf`
+ as `/usr/share/hurd/vga-system.bgf`.
+
+* **d-i/installer/build**: (expected soon)
+ * publish the patch I use
+ * sort out the changes suitable for inclusion
+ and ask youpi and/or debian-boot@l.d.o to commit them
+
+**Milestone (expected 2010-07-18):
+installer works but it's still somewhat ugly and broken**
+
+* call for testing and fix the bugs
+
+* See if it would be possible to avoid accessing devices
+ when firmlinking them into the target system.
+ * Who does that?
+ * find should prune them as instructed,
+ and avoid a stat/readdir as a result
+ * showtrans shouldn't access the translator itself
+ * firmlink should access the target only when it is used
+
+* In the same vein, permissions on underlying nodes
+ are probably broken when created by hurd through `MAKEDEV -k`,
+ and doing the actual chmod/chown accesses the device
+ * Maybe settrans could be made to accept -o/--owner and
+ -p/--perm, to set the permissions for the underlying node?
+
+* Silence the "no kernel" warning somehow.
+
+* Think about TERM=hurd and preseed locale
+
+* Investigate the wget/libc/pfinet/whatever bug which corrupts Packages.gz,
+ see the IRC log for 2010-07-23, around 1am UTC+0200
+
+* Try to resolve problems with udebs which are uninstallable on hurd-i386,
+ such as installation-locale and partman-whatever.
+
+* Provide `/proc/cmdline -> 2/cmdline`, or something.
+
+* Prepare a NMU for genext2fs (which is orphaned),
+ and ask youpi to sponsor the upload.
+
+* **busybox**: port
+ * fix stty/stat/ipcs on kFreeBSD,
+ * generally port more stuff,
+ * *ip* is needed (maybe) for network configuration,
+ * *mount*, *swaponoff* can be from hurd-udeb for now,
+ though the kFreeBSD people will need them
+
+* **partman**: further adjustments
+ * hide irrelevant mount options? (sync, relatime)
+
+* Network configuration on the installed system.
+ This includes porting ifupdown and isc-dhcp-client,
+ which are currently uninstallable on hurd-i386.
+* Also, better DHCP support during and after installation
+
+* improve the [initrd situation](FIXME: link to bug-hurd post):
+ ajust the ramdisk support in Mach,
+ use tmpfs if possible.
+
+* mklibs{,-copy}:
+ test library reduction,
+ make it copy the ld.so -> ld.so.1 symlink.
+
+* hurd console fonts
+
+**Milestone (expected 2010-07-19):
+it works great and it's beautiful**
+
+* test, fix, document
+* support more types of installation images
+* give a shot at the graphical installer if time permits
+* integrate wireless drivers with netcfg
+* see how [[zhengda]]'s work on DDE could be integrated
+* etc..
+
+### Mostly done
+
+#### Week 1 (2010-05-24)
+
+* genext2fs: patches submitted, [[!debbug 562999]]
+ which add support for all block sizes and choosing them at runtime.
+* busybox: started porting the upstream and Debian package to Hurd and FreeBSD
+* rebuilding hurd-udeb from the pkg-hurd version
+ and adding a ld.so link to the initrd
+ fixes the exec translator crashing on startup.
+ (BTW would there be a mean to detect this from the libdiskfs bootstrap code
+ and report it ?)
+
+#### Week 2 (2010-05-31 to 2010-06-06)
+
+* *busybox*: patches [posted](http://lists.debian.org/debian-bsd/2010/05/msg00048.html).
+* *libdebian-installer4*: [[!debbug 584538]]
+* started working on mach initrd support
+* the installation images could boot into the main-menu
+ with the following changes:
+ * rebuild hurd-udeb from with the latest pkg-hurd patches
+ * use busybox from my osports-debian branch (see link above)
+ * tweak the d-i image build scripts
+ * the symlink /lib/ld.so -> ld.so.1 needs to be created somehow
+ (youpi mentionned it being the job of libc0.3-udeb I think)
+ * fix the poll() issue in libdebian-installer
+ (patch to be submitted soon),
+ also there is some hurd doxygen short-circuiting stuff
+ there which does not apply any more and prevents is to build.
+ * feed the initrd as a hard drive in qemu
+ (with some more space added to avoid it from becoming full)
+
diff --git a/user/kam.mdwn b/user/kam.mdwn
new file mode 100644
index 00000000..8ee68866
--- /dev/null
+++ b/user/kam.mdwn
@@ -0,0 +1,152 @@
+[[!meta copyright="Copyright © 2008 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="Karim Allah Ahmed"]]
+
+<karim.allah.ahmed@gmail.com>
+
+Egypt.
+
+---
+
+#GSoC: 2010 Project
+Goal:
+
+---
+#Roadmap
+
+##Progress
+
+###Preparation Phase:
+
+Understanding how gnumach ticks [ at least the parts related to the project ]
+
+---
+
+####28th of April - 5th of May:
+
+* Reading the paging in code in gnumach.
+* Reading the libpager code, and the multipage patch.
+* Reading the translators code, only the part implementing the external pager interface.
+
+####5th of May - 12th of May:
+
+* Reading the paging out code in gnumach.
+* Understanding IPC in gnumach and reading some code.
+* Reading "[gnu_src]/kern/sched_prim.c"
+
+####12th of May - 19th of May:
+
+* Finishing the leftover code in some of the previous phases.
+* Building a big and a more clear picture of how gnumach ticks [ wiring things together ].
+
+####19th of May - 23th of May:
+
+* Off [College related-activities].
+
+---
+
+###Coding Phase:
+
+Stage 1:
+
+####24th of May - 26th of May:
+
+* Read the freeBSD multipages implementation.
+* Basic Modifications of gnumach's code.
+* err.. scratch this step. It's easier to work on porting OSF Mach's implementation of multi-pages.
+
+####26th of May - 28th of May:
+
+* (./) port OSF Mach's clustered pagein during 'page faults' ( [src]/vm/vm_fault.c )
+* (./) port "cluster_size" attribute of memory objects from OSF Mach.
+* (./) port "behavior" attribute of vm_map entries from OSF Mach.
+
+####29th of May - 2nd of June:
+
+* Off ( Oral Exams )
+
+####2nd of May - 4th of June:
+
+* Finish the port of the previous phase.
+
+---
+
+####4th of June - 4th of July:
+
+* Off ( Final Exams ).
+
+---
+
+Stage 2:
+
+####5th of July - 7th of July:
+
+* (./) Add "cluster_size" attribute to Neal Walfield's patch for the pager library.
+
+---
+
+Stage 3:
+
+####8th of July - 15th of July:
+
+* (./) Patch the diskfs library to use the new pager library API.
+* (./) Patch the ext2fs disk paging related routines to use the new pager library API.
+
+
+####16th of July - 19th of July:
+
+* Testing the current patches.
+* Stuck in compiling code ( http://30.media.tumblr.com/tumblr_l5ie1bb2u91qbjipvo1_500.jpg ) , so I started reading some documentation meanwhile ( [0] , [1] ).
+
+---
+
+Stage 4:
+
+####19th of July - 31th of June:
+
+* Check OSF Mach's mach-defpager.
+* Patch (or port OSF Mach's default pager) HURD's mach-defpager to use the new gnumach's RPCs.
+
+---
+
+Stage 5:
+
+####1st of August - 10th of August:
+
+* Testing the ported translators.
+* Fixing the boot bit-mapped memory allocator patch.
+
+---
+
+Stage 1:
+
+* clustered_paging.diff patch http://lists.gnu.org/archive/html/bug-hurd/2010-06/msg00024.html
+
+TODO:
+
+* Update the headers of the modified files in GNU Mach to reflect the fact that they were ported from OSF Mach.
+
+* Implement posix_madvise(), posix_fadvise, and readahead() in glibc.
+
+* Update the documentation of GNU Mach with the new interfaces.
+
+* (./) Revise and finish the code related to default_memory_manager management in GNU Mach. [done]
+
+* Port the vm_page "clustered" attribute. [ to mark that the page wasn't requested but was paged-in as part of the cluster ].
+
+
+---
+
+
+# Readings
+
+[0] http://www.nongnu.org/ext2-doc/ext2.html
+[1] http://kerneltrap.org/node/452
diff --git a/user/madhusudancs.mdwn b/user/madhusudancs.mdwn
index 1139c718..903b0964 100644
--- a/user/madhusudancs.mdwn
+++ b/user/madhusudancs.mdwn
@@ -1,16 +1,16 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
[[!meta title="GNU/Linux compatible procfs"]]
-[[!toc ]]
+[[!toc]]
----
Project Name
diff --git a/user/pochu.mdwn b/user/pochu.mdwn
new file mode 100644
index 00000000..0068c6e4
--- /dev/null
+++ b/user/pochu.mdwn
@@ -0,0 +1,122 @@
+[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+# Emilio Pozuelo Monfort
+
+Email: pochu27@gmail.com
+
+---
+
+# GSoC 2010: Hurd: Fix Compatibility Problems Exposed by Testsuites
+
+Mentor: Carl Fredrik Hammar
+
+## Abstract
+
+This project will consist of identifiying some projects' test suite
+failures when executed on GNU/Hurd, debugging them, and if they are
+truly GNU/Hurd issues (and not problems in the projects themselves),
+fixing them.
+
+## Timeline
+* July 18th: GLib finished.
+* July 22nd: coreutils finished.
+* July 25th: All Perl failures investigated.
+* August 5th: Perl finished.
+* August 8th: All Python failures investigated.
+* August 16th: Python finished.
+* August 16th: Firm 'pencils down' date
+
+## TODO
+* Finish SCM_RIGHTS patch.
+* Send a summary to bug-hurd explaining the O_NOFOLLOW & O_NOTRANS problem.
+* Investigate why coreutils' nice test fails.
+
+## Documentation
+* [Towards a New Strategy of OS Design, an architectural overview by Thomas Bushnell, BSG](http://www.gnu.org/software/hurd/hurd-paper.html)
+* [The Hurd, a presentation by Marcus Brinkmann](http://www.gnu.org/software/hurd/hurd-talk.html)
+* [The Hurd Hacking Guide](http://www.gnu.org/software/hurd/hacking-guide/hhg.html)
+* [MIG - The MACH Interface Generator](http://www.cs.cmu.edu/afs/cs/project/mach/public/doc/unpublished/mig.ps)
+
+## Log
+
+### July 19th - July 25th
+* Initial SCM_RIGHTS implementation. Seems to work when sending pipes, but
+ fails miserably when sending fds from an open syscall. No idea why yet.
+* Had to build glibc thrice because the system crashed and the fs was totally
+ corrupted. I'll build stuff in a separate partition as suggested from now on.
+
+### July 14th - July 18th
+* Catched up with email.
+* Prepared a patch to implement getsockopt(fd, SOL_SOCKET, SO_TYPE, ...).
+ Patch committed to Hurd.
+* Addressed comments in the /dev/fd/N patches and resent them.
+* Investigated another glib's unix-fd failure: passing fds over a socket using
+ sendmsg() doesn't dup them. Created a minimal testcase. Prepared a preliminary
+ patch, needs testing and fixing.
+
+### May 26 - July 13th
+* Copyright assignment on file.
+* Studied a lot to finish my BSc.
+* Got the linkat patch (Savannah #29655) committed upstream.
+
+### May 19 - May 26
+* Read [MIG - The MACH Interface Generator](http://www.cs.cmu.edu/afs/cs/project/mach/public/doc/unpublished/mig.ps)
+* Worked on bug 28934. Send [patches](http://lists.gnu.org/archive/html/bug-hurd/2010-05/msg00108.html) for review.
+* Requested GNU libc copyright papers to the FSF again since they didn't arrive the first time.
+
+### May 12 - May 19
+* Read http://www.gnu.org/software/hurd/hurd-talk.html
+* Half read http://www.gnu.org/software/hurd/hacking-guide/hhg.html
+* Read many Hurd interfaces (fs.defs, auth.defs, fsys.defs, io.defs,
+ password.defs).
+
+### May 5 - May 12
+* Read http://www.gnu.org/software/hurd/hurd-paper.html
+* Improved the linkat() patch
+* Fixed the issues mentioned in bug 28934, but after doing so I realized
+ that wouldn't work well. The only good solution is to pass file_name
+ from execve() to the exec server, so we need new RPCs.
+
+### April 28 - May 5
+* Submitted a talk proposal on Hurd with Michael Banck for DebConf
+* Sent request to assign copyright to the FSF for Hurd/Mach/libc
+
+### Before April 28
+* Investigated the glib's gtester problem and tracked it down:
+ [bug 28934](https://savannah.gnu.org/bugs/?28934). Prepared a patch
+ but it's not good.
+* [glib's garray test timeouts on Hurd](https://bugzilla.gnome.org/show_bug.cgi?id=568760).
+ The tests passes if the timeout is increased. The current upstream timeout
+ (10s) is quite small (it fails on many Debian builds for some Linux arches).
+ However on Hurd it needs a very big time it seems (like more than 100s).
+ Maybe do an allocation benchmarch?
+* Investigated glib's unix-fd test failure: getsockopt() isn't implemented
+ on Hurd. Need to implement it in hurd/pflocal/socket.c.
+* Investigated coreutils' ln EIEIO, with Samuel's help. linkat() is buggy.
+ Reported as [bug 29655](https://savannah.gnu.org/bugs/?29655). Prepared a
+ patch for it.
+* Investigated coreutils' cp EACCES. Test case: 'mkfifo a && cp -R --copy-contents a b'.
+ Problem is that O_NOFOLLOW adds O_NOTRANS.
+
+## Midterm Evaluation
+### Accomplished
+* Assigned copyright to the FSF.
+* Read many documentation and source code.
+* /dev/fd/N bug fixed
+* Prepared a patch for getsockopt()
+* Fixed linkat() problems.
+* Investigated bug with O_NOFOLLOW & O_NOTRANS (needs more work).
+* Investigated a glib test failure (garray). Not a Hurd issue.
+### Downtime
+* Studied a lot to finish my BSc. Didn't work on Hurd for a month because of
+ that, so that's why I couldn't make a lot of progress (this was known in
+ advance, although in the end the downtime was a bit larger than expected).
+* There's no expected downtime from now on.
diff --git a/user/scolobb.mdwn b/user/scolobb.mdwn
index 2de8eb4f..017936e5 100644
--- a/user/scolobb.mdwn
+++ b/user/scolobb.mdwn
@@ -1,20 +1,251 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-# scolobb
-Sergiu Ivanov, interested non-student
+Sergiu Ivanov
Mail: <mailto:unlimitedscolobb@gmail.com>
-Project: Namespace-based translator selection
+# Current Activity
+
+I am currently busy finishing the university semester, this is why I
+am rather passive.
+
+## Roadmap
+
+* **Build `nsmux` under the Hurd tree** -- **antrik** has been urging
+ me to do this for a long time, so I definitely have to give it a
+ try.
+
+* **Try Thomas's `nsmux-notify` branch** -- To support his stance
+ against including `nsmux` in the Hurd source tree, Thomas added to
+ `nsmux` the ability to listen to port notification (as I understand
+ it). I have to try that, too.
+
+* **Make proxy nodes go away when the proxied translator goes away**
+ -- This should be done by listening to notifications on the ports to
+ the proxied translators. A similar functionality is already
+ implemented in `unionmount`, but it was decided that `nsmux` should
+ use standard notification interfaces, as opposed to the custom
+ demuxer and handler implemented in `unionmount`.
+
+* **Don't attach anonymous translators** -- There is no special point
+ in attaching anonymous (formerly known as dynamic) translators to
+ specific nodes. Keeping them orphan should simplify the design of
+ `nsmux` by eliminating the need for shadow nodes, whose main purpose
+ was to serve as virtual locations to attach translators to.
+
+* **Setup a list of nodes proxying static translators** -- This list
+ is needed when for the filter, which should also be able to go down
+ the static translator stack, not only the stack of anonymous
+ translators.
+
+* **Cleanup `nsmux`** -- When I was writing `nsmux` my acquaintance
+ with good coding and code formatting practices was very basic, which
+ resulted in messy and sometimes ugly code.
+
+* **Implement recursive propagation of translators down directories**
+ -- This task was planned long ago and is fascinating, but I won't be
+ working on it in the near future.
+
+---
+
+# Google Summer of Code: 2009 Project
+
+**Unionmount**: The goal of this project is to make it possible to set
+translators in unionmount mode, which means that the filesystem
+published by the mounted translator will get merged with the directory
+tree of the node the translator is mounted onto.
+
+For documentation, see [[hurd/translator/unionmount]].
+
+At the Final Evaluation, this project was given a passing evaluation
+by **antrik**. This means that the union-mount functionality is
+working and has been tested normally to collaborate with
+`eth-multiplexer`.
+
+---
+
+## Roadmap
+
+### DONE
+
+(Dates in brackets show the completion date)
+
+* **Make `unionfs` build.** *(24 May)* For reasons unknown to me,
+ `unionfs` Makefile was configured to search for include files from
+ under `$(prefix)/include`, while `$(prefix)` was never
+ defined. Setting `$(prefix)` to `/usr` solved the problem.
+
+* **Change the command line parsing in `unionfs` to comply with the
+ requirements of `unionmount`.** *(25 May)* Although the core
+ functionality of `unionmount` heavily relies on `unionfs`, the
+ command line interface of these two programs is completely
+ different: `unionfs` operates on directories, the list of which is
+ explicitly specified, while `unionmount` *always* merges the
+ underlying filesystem and the filesystem published by the
+ mountee. Therefore, options like `--add`, `--remove`, `--underlying`
+ (specific to `unionfs`) make little sense in `unionmount`
+ context. These options have been removed. Also, `unionmount` must be
+ able to pass some switches to the mountee, which means that it
+ should stop parsing the command line arguments immediately after
+ having encountered the path to the mountee (very similar to how
+ `settrans` works). This functionality has also been implemented.
+
+* **Make `unionmount` capable of starting the mountee.** *(28 May)*
+ The idea behind implementation of this goal is that `unionmount`
+ should provide a proxy node on which to set the mountee. The main
+ issue about this goal was the fact that the mountee *cannot* be
+ started during the initialization of `unionmount`, because in this
+ phase `unionmount` is not capable of responding to RPCs, while many
+ translators try to `io_stat` their underlying node or do other
+ interesting things on startup. The solution to this problem is,
+ obviously, *lazy* startup, i.e. the mountee is started at the first
+ attempt to access (via `dir_lookup` or `dir_readdir`) the merged
+ filesystem published by `unionmount`.
+
+* **Include the filesystem published by the mountee in the list of
+ merged filesystems.** *(1 Jun)* `unionfs` operates on a list of
+ ports to the underlying filesystems, therefore, to finish the
+ unionmount functionality, I had to include the port to the mountee
+ in this list.
+
+* **Learn Texinfo.** *(Jun 4)* In order to produce canonical
+ documentation I had to learn the Texinfo documentation format.
+
+* **Write documentation for `unionmount`.** *(Jun 5)* The basic
+ unionmount functionality being finished, it has to be documented
+ properly, lest it should lag behind and remain unfinished
+ eventually.
+
+* **Write documentation for `unionfs`.** *(Jun 5)* `unionfs` is not
+ exactly well-documented at the moment, the only help being provided
+ by the comments in the sources. The goal is to write a more coherent
+ documentation.
+
+* **Start with a clean unionfs and implement the `--mount` argument**
+ *(11 Jun)* It was suggested to implement the union mount
+ functionality first, instead of doing some partial adaptation of
+ `unionfs` to `unionmount` and leaving the complete adaptation for
+ the future.
+
+* **Compile GNU/Hurd from source to be able to study
+ eth-multiplexer.** *(16 Jun)* On my way to getting a working
+ instance of eth-multiplexer I learnt how I could compile GNU/Hurd in
+ a Debian GNU/Hurd system.
+
+* **Setup the `devnode`--`eth-multiplexer`--`pfinet chain`.** *(30
+ Jun)* Due to the fact that I was trying to build everything using
+ `gcc-4.3`, I got strange behaviour of pfinet and spend a week trying
+ to figure out the reason.
+
+* **Try to start the mountee during initialization of `unionfs`** *(4
+ Jul)* Initially the mountee was started at the first lookup. Now it
+ is started immediately after initialization of `unionmount`.
+
+* **Fix the patches in `--mount` option series** *(5 Jul)* The patches
+ have been reviewed by **antrik**. I corrected them and posted them
+ to the ML for final reviews.
+
+* **Orphan the mountee after starting it** *(7 Jul)* Orphaning the
+ mountee after starting it up seems to be a nice work-around for the
+ necessity of keeping a proxy node in unionmount in simple
+ use-cases. It is possible that this functionality will provided as a
+ separate patch (without inclusion in master) should it turn out that
+ orphaning the mountee is a bad idea.
+
+* **Decide which RPCs should be forwarded to the mountee and how this
+ should happen** *(10 Jul)* This is the primary requirement in being
+ able to proxy the control port of `unionmount`.
+
+* **Fix the patches the have already been commented on** *(14 Jul)*
+ The new patches I have submitted have been reviewed; also, the older
+ patches have been reviewed again, which required correcting them.
+
+* **Add the `--no-mount` option** *(14 Jul)* Using the `--no-mount`
+ and `--mount` options, the user can decide whether unionmount should
+ be completely transparent (i.e. most control-port RPCs forwarded to
+ the mountee) or not.
+
+* **Make `unionmount` go away when the mountee goes away** *(14 Jul)*
+ `unionmount` makes sense only while the mountee is running, so it
+ has to go away as soon as the mountee has been shut down for some
+ reason.
+
+* **Proxy the control port of `unionmount`** *(14 Jul)* For
+ `unionmount` to become transparent, most of the RPCs invoked on the
+ its control port should be forwarded to the mountee.
+
+* **Fix adding filesystems to `unionmount`** *(16 Jul)* `settrans -a
+ foo unionfs -a <dir> -u -t <translator>` worked, but `settrans -a
+ foo unionfs -u -t <translator> -a <dir>` didn't. The problem was
+ that in a series of rebase operations I accidentally left the
+ "Orphan the mountee" commit out and the problem appeared when the
+ `start_mountee` function tried to attach the mountee. Of course,
+ this is not the definite solution, since I don't know why should the
+ attempt to attach the mountee work in the former case and fail in
+ the latter, but I will leave the investigation for some future time.
+
+* **Create the patch for supplying the mountee with a port to the
+ underlying node of unionfs** *(17 Jul)* Such functionality makes
+ `unionmount` even more transparent.
+
+* **Try to make `eth-multiplexer` work with static instances of
+ `devnode`** *(3 Aug)* A static `devnode` translator is a `devnode`
+ translator which is told to use the eth-multiplexer's pseudo master
+ device port via the "-M" option. Technically it looks like
+ `settrans -a <node> devnode -M <dir> <device-name>`, where `<dir>`
+ is the node on which eth-multiplexer is running.
+
+ The problem was in the fact that the root node of `eth-multiplexer`
+ was not treated completely similarly as other nodes; specifically no
+ device port was created for it. Minor modifications to some
+ conditions solved the problem.
+
+* **Add the `MASTER` node to `eth-multiplexer`** *(5 Aug)* The
+ `MASTER` node, published by eth-multiplexer, allows creating any
+ number of virtual devices. This node is mainly accessed by static
+ instances of `devnode` to setup their corresponding virtual devices.
+
+* **Add support for priorities** *(6 Aug)* Now the mountee's
+ filesystem can be configured to "lie" beneath other filesystems.
+
+* **Use `unionmount` to merge the virtual filesystem of
+ `eth-multiplexer` with its underlying filesystem** *(7 Aug)*
+ `eth-multiplexer` can is unionmounted to "lie beneath" it's
+ underlying filesystem. If, for example, the multiplexer is
+ unionmounted on `veth/`, the user can both set (static) `devnode`
+ translator on the nodes shown in `veth/` and belonging to the
+ underlying filesystem and create normal virtual multiplexer devices
+ by accessing any node (not present in the underlying filesystem) and
+ opening a device using the port to the node as a pseudo device port.
+
+* **Rename the `MASTER` node into `.MASTER`** (7 Aug) This name seems
+ more natural for a special-purpose node.
+
+* **Set the stat information for `eth-multiplexer` nodes in
+ `netfs_validate_stat`** (9 Aug) In the initial version the stat
+ information was set up properly only at device creation. Before
+ that the stat information was copied from the underlying node, which
+ baffled `unionmount`. Now the stat information is setup in
+ `netfs_validate_stat`.
+
+* **Supply the mountee with the real root.** *(14 Aug)* Since the
+ mountee is *not attached* to its underlying node, it is okay to
+ supply it with the real root node of `unionfs`. The mountee's
+ filesystem will not obscure the `unionfs`'s one because the mountee
+ is *not attached* to the root node.
+
+---
+
+# Google Summer of Code: 2008 Project: Namespace-based translator selection
---
@@ -131,4 +362,3 @@ The code is at <http://github.com/scolobb/nsmux/tree/master>.
####0: Sun Apr 27:
> Followed the code of *dmesgd* (<http://www.bddebian.com/junk/dmesgd/>) kindly offered by **bddebian** and rewrote it from scratch as a tutorial.
-
diff --git a/user/tschwinge.mdwn b/user/tschwinge.mdwn
index b72f26f5..2c75292b 100644
--- a/user/tschwinge.mdwn
+++ b/user/tschwinge.mdwn
@@ -1,14 +1,14 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
-[[meta title="Thomas Schwinge"]]
+[[!meta title="Thomas Schwinge"]]
<tschwinge@gnu.org>
diff --git a/user/vincentvikram.mdwn b/user/vincentvikram.mdwn
index 847325e2..875b6311 100644
--- a/user/vincentvikram.mdwn
+++ b/user/vincentvikram.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
* Name: Vikram Vincent
* Email: vincentvikram@swatantra.org OR vincentvikram@gmail.com
diff --git a/user/zhengda.mdwn b/user/zhengda.mdwn
index e15aade1..0c3b26bb 100644
--- a/user/zhengda.mdwn
+++ b/user/zhengda.mdwn
@@ -2,14 +2,47 @@
Email: zhengda1936 at gmail dot com
-Project: Network virtualization for subhurds etc.
+---
+
+#Project: Porting DDE to Hurd.
+
+##The goal:
+porting DDE developed by DROPS to the Hurd, and it will still run in the user space.
+
+##Introduction
+The introduction of DDE/DDEKit can be found in [here](http://wiki.tudos.org/DDE/DDEKit) and more information can be found [here](http://os.inf.tu-dresden.de/pipermail/l4-hackers/2009/004291.html). DDE/DDEKit is a library, and it should be compiled with the code of Linux or FreeBSD drivers. DDE Linux26 is still under development and it can now support network and block devices (but doesn't support SCSI).
+
+##The current status
+Currently a few NIC cards work now. I tested pcnet32, e100, e1000, ne2k-pci and rtl8139 in VMWare and Qemu. But the DDE e100 driver cannot work for some e100 cards as currently DDE doesn't support firmware. Someone also reported sis900 cannot work, unfortunately, I cannot test it myself. I appreciate if someone can try some other NIC drivers and give me some feedbback. Please run DDE with GNUMach in the [master-user_level_drivers](http://git.savannah.gnu.org/cgit/hurd/gnumach.git/) branch.
+
+## My work
+I separate DDE Linux26 to 2 parts: libddekit and libdde_linux26. I also provide a library called libmachdev on the top of the Linux code to provide the Mach device interface, so it is easy for the user to compile a Linux driver and run it in the Hurd. The latest code can be found in the dde branch of the incubator repository.
+
+There is a minor problem when we compile a Linux driver. Linux drivers use jiffies to measure time. Unfortunately, Mach doesn't provide it, so whenever we need it, we need to calculate it by ourselves. I decide to provide a macro to calculate it for the sake of performance and the cost is that the source code of Linux drivers has to include ddekit/timer.h.
+
+## Build and run DDE drivers
+
+To build a Linux driver with DDE Linux, we need libddekit, libdde_linux26, libmachdev and libhurd-slab. libddekit and libmachdev use the same Makefile system as other Hurd components but libdde_linux26 does not, so we have to build libdde_linux26 in its source file directory. DDE drivers use the same makefile system as libdde_linux26 and thus we need to build them in their source file directories as well.
+
+The repository has all DDE drivers I have tested, but in case you want to try other drivers, the easiest way is to use dde_pcnet32 as a template. The directory of dde_pcnet32 has Makefile, Makeconf.local, default.ld, pcnet32.c and main.c. If we need to build a new driver file, we only need to replace pcnet32.c with the new file and change Makefile accordingly. You also need to change DDEKITLIBDIR, DDEKITINCDIR, DDE26LIBDIR and OBJ_BASE in Makeconf.local to indicate the path to ddekit and dde_linux26.
+
+When all parts are ready, we can start to build DDE drivers now. In case someone hasn't installed libpciaccess, please install it first. We first build libddekit, libdde-slab, then libdde_linux26, then libmachdev and at last the DDE driver. It's better to install libddekit, libdde-slab and libmachdev to the system, so libdde_linux26 and the DDE driver find the library files and header files.
+
+To run a DDE NIC driver: It is better to disable the corresponding kernel drivers in GNU Mach. For example, if we use the pcnet card, we'd better disable lance and pcnet32 drivers in gnumach. DDE requires the pfinet with modification during my GSoC project in 2008 and that pfinet requires libpcap-dev (this pfinet is also in the dde branch).
-The [code](http://www.assembla.com/spaces/VNetHurd/trac_subversion_tool).
+settrans -acfg pcnet32 hurd/dde_pcnet32/dde_pcnet32
-The [[howto]] shows the instructions of setting up the virtual network in hurd and subhurd.
+settrans -acfg /dev/eth0 hurd/devnode/devnode eth0 -M pcnet32
+
+settrans -acfg /servers/socket/2 hurd/pfinet/pfinet -i /dev/eth0 -a 172.16.172.10 -g 172.16.172.2 -m 255.255.255.0
---
+#Project: Network virtualization for subhurds etc.
+
+The [code](http://www.assembla.com/spaces/VNetHurd/trac_subversion_tool). The [[howto]] shows the instructions of setting up the virtual network in hurd and subhurd.
+
+
## The design and the implementation
### The requirements:
@@ -45,17 +78,11 @@ A filter translator is needed to enforce the policies between the interface and
* BPF is also ported to the filter translator. There are two filers in the translator, one for outgoing packets, the other for incoming packets.
* Only one pfinet can connect to the translator at a time.
-
----
-
## TODO
### Coding
- - make subhurds running without root privileges
- merge BPF rules from the filter translator and the multiplexer
----
-
## Completed tasks
### Coding
@@ -92,11 +119,6 @@ the devnode translator:
- Create a device file to help open the network device.
-
-### The Code Read
-
-- boot
-
### Documentation Read
diff --git a/user/zhengda/howto.mdwn b/user/zhengda/howto.mdwn
index 3f0d0d13..1258ffed 100644
--- a/user/zhengda/howto.mdwn
+++ b/user/zhengda/howto.mdwn
@@ -1,12 +1,12 @@
-[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
This document briefly introduces how to set up the virtual network and connect the subhurd with the main hurd.
@@ -18,7 +18,7 @@ This document briefly introduces how to set up the virtual network and connect t
Step 1: Get the Hurd and compile it.
- cvs -z3 -d:ext:username@cvs.savannah.gnu.org:/sources/hurd co -r zhengda-soc2008-virt-branch
+ cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/hurd co -r zhengda-soc2008-virt-branch hurd
Step 2: apply the [patch](http://www.assembla.com/spaces/VNetHurd/documents/b0eLzUxHmr3ymXab7jnrAJ/download/A%20patch%20of%20gnumach) on the GNU Mach.
@@ -38,35 +38,30 @@ In this section, I show how to create two virtual interfaces and run three pfine
Step 4: create the network device file in /dev with devnode.
The network device file is used to help other translators open the device.
- # settrans -acfg /dev/eth0 /root/hurd/devnode/devnode -d eth0
+ # settrans -acfg /dev/eth0 /root/hurd/devnode/devnode eth0
Step 5: create the virtual network device with eth-multiplexer.
-eth-multiplexer is responsible to create the virtual network device and dispatch the packet to the right clients that connect to the virtual device. It also connects the virtual network and the external network.
+eth-multiplexer is responsible to create the virtual network device and dispatch the packet to the right clients that connect to the virtual device. It also connects the virtual network and the external network. Eth-multiplexer of the current version is a netfs translator and can create virtual devices and the device files dynamically, according to the request from the client.
- # settrans -acfg /root/multiplexer /root/hurd/eth-multiplexer/eth-multiplexer -v 2 -i /dev/eth0
+ # settrans -acfg /root/multiplexer /root/hurd/eth-multiplexer/eth-multiplexer -i /dev/eth0
-Step 6: create the network device files for the virtual network device with devnode.
+Step 6: setup the filter translator eth-filter on the network device. This step is optional.
- # settrans -acfg /dev/veth0 /root/hurd/devnode/devnode -d veth0 -M /root/multiplexer
- # settrans -acfg /dev/veth1 /root/hurd/devnode/devnode -d veth1 -M /root/multiplexer
+eth-filter is used by the user to force the traffic policy on the network device.
-Step 7: setup the filter translator eth-filter on the network device. This step is optional.
-eth-filter is used to set up the traffic policy on the network device.
+ # settrans -acfg /dev/fveth0 /root/hurd/eth-filter/eth-filter -i /root/multiplexer/veth0 -S 192.168.8.0/24 -R 192.168.8.0/24
+ # settrans -acfg /dev/fveth1 /root/hurd/eth-filter/eth-filter -i /root/multiplexer/veth1 -S 192.168.8.0/24 -R 192.168.8.0/24
- # settrans -acfg /dev/fveth0 /root/hurd/eth-filter/eth-filter -i /dev/veth0 -S 192.168.8.0/24 -R 192.168.8.0/24
- # settrans -acfg /dev/fveth1 /root/hurd/eth-filter/eth-filter -i /dev/veth1 -S 192.168.8.0/24 -R 192.168.8.0/24
-
-Step 8: setup the pfinet server on the virtual network device.
+Step 7: setup the pfinet server on the virtual network device.
# settrans -afgc /root/socket0/2 /root/hurd/pfinet/pfinet -i /dev/fveth0 -a 192.168.8.10 -g 192.168.8.1 -m 255.255.255.0
# settrans -afgc /root/socket1/2 /root/hurd/pfinet/pfinet -i /dev/fveth1 -a 192.168.8.11 -g 192.168.8.1 -m 255.255.255.0
- # settrans -afgc /root/socket2/2 /root/hurd/pfinet/pfinet -i /dev/fveth1 -a 192.168.8.12 -g 192.168.8.1 -m 255.255.255.0
#### 1.3 Run the command with the customized pfinet server.
-Step 9: Set environment variables to use the customized pfinet server.
+Step 8: Set environment variables to use the customized pfinet server.
The environment variable of SOCK_SERV_DIR is used to override all socket servers and SOCK_SERV_%d to override a specific socket server. %d after SOCK_SERV_ is the domain of the protocol that the socket server supports. The environment variable SOCK_SERV_%d has the higher priority than SOCK_SERV_DIR.
@@ -83,13 +78,13 @@ A SHELL script is provided to run all translators I mentioned automatically: htt
### 2. Connect the subhurd with the main hurd.
-In the main hurd, we still need to do Step 1-9.
+In the main hurd, we still need to do Step 1-8.
We run subhurd,
# /root/hurd/boot/boot -m eth0=/dev/fveth0 -m eth1=/dev/fveth1 servers.boot /dev/hd1s1
In the subhurd, we do Step 1, 4, 8.
Step 4: # settrans -acfg /dev/veth0 /root/hurd/devnode/devnode -d veth0
-Step 8: # settrans -afgc /servers/socket/2 /root/hurd/pfinet/pfinet -i /dev/veth0 -a 192.168.8.20 -g 192.168.8.1 -m 255.255.255.0
+Step 7: # settrans -afgc /servers/socket/2 /root/hurd/pfinet/pfinet -i /dev/veth0 -a 192.168.8.20 -g 192.168.8.1 -m 255.255.255.0
Now we can communicate from the subhurd with any pfinet server of the main Hurd that runs in the virtual network.
diff --git a/virtualization.mdwn b/virtualization.mdwn
index 88f95328..52131c12 100644
--- a/virtualization.mdwn
+++ b/virtualization.mdwn
@@ -1,16 +1,16 @@
-[[meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008 Free Software Foundation, Inc."]]
-[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+[[!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]]."]]"""]]
+[[GNU Free Documentation License|/fdl]]."]]"""]]
# External
- * Wikipedia page about [[wikipedia Virtualization]].
+ * Wikipedia page about [[!wikipedia Virtualization]].
# See Also