aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.templates/autotag.tmpl2
-rw-r--r--community/gsoc/project_ideas.mdwn2
-rw-r--r--community/gsoc/project_ideas/driver_glue_code.mdwn11
-rw-r--r--community/gsoc/project_ideas/physical_memory_management.mdwn58
-rw-r--r--community/gsoc/project_ideas/tcp_ip_stack.mdwn3
-rw-r--r--community/gsoc/project_ideas/xattr.mdwn50
-rw-r--r--config_edittemplate/open_issue_page.mdwn2
-rw-r--r--config_edittemplate/regular_page.mdwn2
-rw-r--r--contributing.mdwn9
-rw-r--r--contributing/web_pages/news/skeleton.mdwn2
-rw-r--r--copyright.mdwn2
-rw-r--r--faq/64-bit.mdwn6
-rw-r--r--faq/no_login.mdwn21
-rw-r--r--glibc/startup.mdwn51
-rw-r--r--hurd/glibc.mdwn21
-rw-r--r--hurd/subhurd.mdwn65
-rw-r--r--open_issues/64-bit_port.mdwn19
-rw-r--r--open_issues/problematic_packages.mdwn3
-rw-r--r--user/danialbehzadi.mdwn13
19 files changed, 291 insertions, 51 deletions
diff --git a/.templates/autotag.tmpl b/.templates/autotag.tmpl
index 4f8d1bcf..d0a58f93 100644
--- a/.templates/autotag.tmpl
+++ b/.templates/autotag.tmpl
@@ -1,4 +1,4 @@
-[[!meta copyright="Copyright © 2016 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2018 Free Software Foundation, Inc."]]
[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
id="license" text="Permission is granted to copy, distribute and/or modify this
diff --git a/community/gsoc/project_ideas.mdwn b/community/gsoc/project_ideas.mdwn
index 714f37da..6475b9a5 100644
--- a/community/gsoc/project_ideas.mdwn
+++ b/community/gsoc/project_ideas.mdwn
@@ -1,5 +1,5 @@
[[!meta copyright="Copyright © 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015,
-2016, 2018 Free Software Foundation, Inc."]]
+2016, 2017, 2018 Free Software Foundation, Inc."]]
[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
id="license" text="Permission is granted to copy, distribute and/or modify this
diff --git a/community/gsoc/project_ideas/driver_glue_code.mdwn b/community/gsoc/project_ideas/driver_glue_code.mdwn
index c1850d21..1771756e 100644
--- a/community/gsoc/project_ideas/driver_glue_code.mdwn
+++ b/community/gsoc/project_ideas/driver_glue_code.mdwn
@@ -1,5 +1,5 @@
-[[!meta copyright="Copyright © 2008, 2009, 2010, 2011, 2016 Free Software
-Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008, 2009, 2010, 2011, 2016, 2017, 2018 Free
+Software Foundation, Inc."]]
[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
id="license" text="Permission is granted to copy, distribute and/or modify this
@@ -27,7 +27,7 @@ This is [[!GNU_Savannah_task 5488]].
[[open issues/user-space device drivers]].
[[open issues/device drivers and io systems]].
-The most promising approach for getting newer drivers seems to be the Rump kernel:
+The most promising approach for getting newer drivers seems to be the [[Rump_Kernel]]:
it already does the hard work of providing an environment
where the foreign drivers can run,
and offers the additional benefit of being externally maintained.
@@ -69,8 +69,3 @@ such as memory management for example.
Possible mentors: Justus Winter (teythoon), Samuel Thibault (youpi)
Exercise: Install and run the current rumpkernel library (librump0) and the corresponding mplayer, get it to run.
-
----
-
-
-# 2016-02-14, Justus Winter
diff --git a/community/gsoc/project_ideas/physical_memory_management.mdwn b/community/gsoc/project_ideas/physical_memory_management.mdwn
new file mode 100644
index 00000000..af360507
--- /dev/null
+++ b/community/gsoc/project_ideas/physical_memory_management.mdwn
@@ -0,0 +1,58 @@
+[[!meta copyright="Copyright © 2015, 2016, 2018 Free Software Foundation,
+Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU Free Documentation License|/fdl]]."]]"""]]
+
+[[!meta title="Physical memory management"]]
+
+[[!template id=highlight text="""/!\ Obsolete /!\
+
+---
+
+This is no longer valid as a Google Summer of Code project; it was basically
+done by Richard."""]]
+
+
+GNU Mach is currently suffering from severe limitations caused by the way
+it manages physical memory. For example, since it requires pages to be mapped
+in kernel space in order to be used, the maximum amount of usable physical
+memory is currently around 800MB (or 1.8GB if a 2/2 split is set). And
+because the page allocator is unable to easily return blocks of contiguous
+pages, the kernel has to use virtual memory to provide contiguity.
+But the kernel virtual space is separate from the direct mapping of
+physical memory, so the larger it is, the less physical pages available.
+The size of the kernel space is currently around 200MB, with around 100MB
+for kernel objects. This small size prevents the system from achieving
+scalability, since a panic occurs when the kernel is unable to allocate
+a kernel object such as a port. In addition, the kernel uses mainly tables
+to store IPC rights. When a table is full, it is enlarged through a kernel
+specific version of realloc(). When a file system starts managing many
+files (e.g. because some of their content is cached in physical memory),
+these tables can get big enough to make realloc() fail because of
+fragmentation.
+
+The goal of this project is to make as much physical memory available as
+possible for both the kernel and applications, by rewriting the page
+allocator into a buddy allocator to support contiguous block allocations,
+using it directly instead of virtual memory as the backend of the slab
+allocator for kernel objects, and, if time allows it, transform IPC right
+tables (e.g. into radix trees) and get rid of realloc().
+
+This project requires a good understanding of virtual memory (both physical
+mappings at the MMU level and virtual mappings at the VM level), and strong
+skills in C programming. Note that some work has already been done in the
+X15 project about this, and can be reused as a reference.
+
+Useful links :
+
+ * <https://www.sceen.net/mapping-physical-memory-directly/>
+
+ * <http://git.sceen.net/rbraun/x15.git/>
+
+ * <https://git.sceen.net/rbraun/librbraun.git/plain/rdxtree.h>
diff --git a/community/gsoc/project_ideas/tcp_ip_stack.mdwn b/community/gsoc/project_ideas/tcp_ip_stack.mdwn
index 6410dee0..f86dcf72 100644
--- a/community/gsoc/project_ideas/tcp_ip_stack.mdwn
+++ b/community/gsoc/project_ideas/tcp_ip_stack.mdwn
@@ -1,4 +1,5 @@
-[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008, 2009, 2017 Free Software Foundation,
+Inc."]]
[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
id="license" text="Permission is granted to copy, distribute and/or modify this
diff --git a/community/gsoc/project_ideas/xattr.mdwn b/community/gsoc/project_ideas/xattr.mdwn
new file mode 100644
index 00000000..f35498fe
--- /dev/null
+++ b/community/gsoc/project_ideas/xattr.mdwn
@@ -0,0 +1,50 @@
+[[!meta copyright="Copyright © 2009, 2016, 2018 Free Software Foundation,
+Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no 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"]]
+
+[[!template id=highlight text="""/!\ Obsolete /!\
+
+---
+
+This is no longer valid as a Google Summer of Code project; it's done."""]]
+
+
+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|open_issues/xattr]], and
+might serve as a starting point.
diff --git a/config_edittemplate/open_issue_page.mdwn b/config_edittemplate/open_issue_page.mdwn
index 5bcdcaec..e7574c0c 100644
--- a/config_edittemplate/open_issue_page.mdwn
+++ b/config_edittemplate/open_issue_page.mdwn
@@ -1,4 +1,4 @@
-[[!meta copyright="Copyright © 2016 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2018 Free Software Foundation, Inc."]]
[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
id="license" text="Permission is granted to copy, distribute and/or modify this
diff --git a/config_edittemplate/regular_page.mdwn b/config_edittemplate/regular_page.mdwn
index d65945d2..dcbe6b71 100644
--- a/config_edittemplate/regular_page.mdwn
+++ b/config_edittemplate/regular_page.mdwn
@@ -1,4 +1,4 @@
-[[!meta copyright="Copyright © 2016 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2018 Free Software Foundation, Inc."]]
[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
id="license" text="Permission is granted to copy, distribute and/or modify this
diff --git a/contributing.mdwn b/contributing.mdwn
index 222291c0..9736e18d 100644
--- a/contributing.mdwn
+++ b/contributing.mdwn
@@ -1,5 +1,5 @@
[[!meta copyright="Copyright © 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013,
-2014, 2015, 2016 Free Software Foundation, Inc."]]
+2014, 2015, 2016, 2017, 2018 Free Software Foundation, Inc."]]
[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
id="license" text="Permission is granted to copy, distribute and/or modify this
@@ -103,9 +103,6 @@ part:1:file:/home/samy/tmp/foo`). This would be libnetfs-based.
* Write [[virtio drivers for KVM|open_issues/virtio#KVM]].
* Move the [[mount/umount|open_issues/glibc#mount]] logic from
`utils/{,u}mount.c` into [[glibc]].
-* Fix [[`/proc/self`|hurd/translator/procfs/jkoenig/discussion#self]].
-Look at `[glibc]/hurd/lookup-retry.c` for how [[`FS_RETRY_MAGICAL`
-lookups|hurd/interface/dir_lookup]] work.
* Add a tool to trace system calls, by using gnumach's Syscall-Emulation, see <http://www.gnu.org/software/hurd/gnumach-doc/Syscall-Emulation.html>
* Improve our [[FUSE library|hurd/libfuse]].
* Add a relatime or lazytime option to ext2fs.
@@ -181,14 +178,16 @@ I'll have to think about it some more.
* Install qemu-kvm via your distros packages.
* Download the [qemu image](http://people.debian.org/~sthibault/hurd-i386/debian-hurd.img.tar.gz): `wget http://people.debian.org/~sthibault/hurd-i386/debian-hurd.img.tar.gz`
* Unpack it: `tar xf debian-hurd.img.tar.gz`
-* Run it: `kvm -m 512 -drive cache=writeback,file=debian-hurd.img` # Optionally use `--curses` to keep your keyboard layout. If need be modprobe kvm_amd, kvm intel and kvm to get kvm support (which is much, much faster). See also: [kvm FAQ](http://www.linux-kvm.org/page/FAQ).
+* Run it: `kvm -m 512 -drive cache=writeback,file=debian-hurd.img -redir tcp:2222::22` # Optionally use `--curses` to keep your keyboard layout. If need be modprobe kvm_amd, kvm intel and kvm to get kvm support (which is much, much faster). See also: [kvm FAQ](http://www.linux-kvm.org/page/FAQ).
* login as root
+* set a root password with `passwd`
* `apt-get update`
* `apt-get install -y git mercurial emacs vim`
* `apt-get build-dep -y hurd gnumach`
* `git clone git://git.sv.gnu.org/hurd/hurd.git`
* `git clone git://git.sv.gnu.org/hurd/gnumach.git`
* `git clone git://git.sv.gnu.org/hurd/incubator.git`
+* You can connect through ssh with `ssh root@localhost -p 2222`
* Get more from the [repo list](http://git.savannah.gnu.org/cgit/hurd/).
* Read the docs on these pages.
* Start hacking.
diff --git a/contributing/web_pages/news/skeleton.mdwn b/contributing/web_pages/news/skeleton.mdwn
index 4f1a37dd..529509a9 100644
--- a/contributing/web_pages/news/skeleton.mdwn
+++ b/contributing/web_pages/news/skeleton.mdwn
@@ -1,4 +1,4 @@
-[[!meta copyright="Copyright © 2016 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2018 Free Software Foundation, Inc."]]
[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
id="license" text="Permission is granted to copy, distribute and/or modify this
diff --git a/copyright.mdwn b/copyright.mdwn
index c1fb70c9..39854057 100644
--- a/copyright.mdwn
+++ b/copyright.mdwn
@@ -1,2 +1,2 @@
Copyright © 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012,
-2013, 2014, 2015, 2016 The Contributing Authors
+2013, 2014, 2015, 2016, 2017, 2018 The Contributing Authors
diff --git a/faq/64-bit.mdwn b/faq/64-bit.mdwn
index 1c75e1dc..1da375ba 100644
--- a/faq/64-bit.mdwn
+++ b/faq/64-bit.mdwn
@@ -1,4 +1,5 @@
-[[!meta copyright="Copyright © 2013, 2016 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2013, 2016, 2017, 2018 Free Software Foundation,
+Inc."]]
[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
id="license" text="Permission is granted to copy, distribute and/or modify this
@@ -15,7 +16,8 @@ License|/fdl]]."]]"""]]
There are currently no plan for 64-bit userland, but there are plans for 64-bit
kernelland with 32-bit userland, which will notably permit to efficiently make
use of more than 2 GiB memory and provide 4 GiB userland addressing space.
-Work on this is currently in branches for GNU Mach.
+[[Work on this|open_issues/64-bit_port]] is currently in the master-x86_64 and
+port-amd64 branches for GNU Mach.
That being said, you can always run a 32-bit version on a 64-bit machine, it
just works, processes are just limited to a couple GiB available memory.
diff --git a/faq/no_login.mdwn b/faq/no_login.mdwn
new file mode 100644
index 00000000..330652c8
--- /dev/null
+++ b/faq/no_login.mdwn
@@ -0,0 +1,21 @@
+[[!meta copyright="Copyright © 2017, 2018 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!tag faq/open_issues]]
+
+[[!meta title="Help, I can't even log in"]]
+
+If logging in doesn't work, e.g. you enter a username, and it doesn't even
+prompt for a password, but directly say "Invalid password", you probably have
+some translators which got deconfigured for some reason. You can try to reboot in emergency mode, and run
+
+ # dpkg-reconfigure hurd
+
+to reinstall translators.
diff --git a/glibc/startup.mdwn b/glibc/startup.mdwn
index ac7cdde6..9a7a3de2 100644
--- a/glibc/startup.mdwn
+++ b/glibc/startup.mdwn
@@ -1,4 +1,4 @@
-[[!meta copyright="Copyright © 2011, 2014, 2016 Free Software Foundation,
+[[!meta copyright="Copyright © 2011, 2014, 2016, 2018 Free Software Foundation,
Inc."]]
[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
@@ -21,6 +21,55 @@ is quite hairy on GNU Hurd systems.
* [[!message-id "871xc9qv6y.wl@ulysses.g10code.de"]]
+# How libc startup in a process works
+
+## Statically-linked program
+
+ * The ELF headers points program start at `_start`.
+ * `_start` (sysdeps/mach/hurd/i386/static-start.S) calls `_hurd_stack_setup`
+ * `_hurd_stack_setup` (sysdeps/mach/hurd/i386/init-first.c) calls `first_init` which calls `__mach_init` to initialize enough to run RPCs, then runs the `_hurd_preinit_hook` hooks, which initialize global variables of libc.
+ * `_hurd_stack_setup` (sysdeps/mach/hurd/i386/init-first.c) calls `_hurd_startup`.
+ * `_hurd_startup` (hurd/hurdstartup.c) gets hurdish information from servers and calls its `main` parameter.
+ * the `main` parameter was actually `doinit` (in sysdeps/mach/hurd/i386/init-first.c), which mangles the stack and calls `doinit1` which calls `init`.
+ * `init` sets threadvars, tries to initialize threads (and perhaps switches to the new stack) and gets to call `init1`.
+ * `init1` gets the Hurd block, calls `_hurd_init` on it
+ * `_hurd_init` (hurd/hurdinit.c) initializes initial ports, starts the signal thread, runs the `_hurd_subinit` hooks (`init_dtable` hurd/dtable.c notably initializes the FD table and the `_hurd_fd_subinit` hooks, which notably checks `std*`).
+ * We are back to `_start`, which jumps to `_start1` which is the normal libc startup which calls `__libc_start_main`
+ * `__libc_start_main` (actually called `LIBC_START_MAIN` in csu/libc-start.c) initializes libc, tls, libpthread, atexit
+ * `__libc_start_main` calls initialization function given as parameter `__libc_csu_init`,
+ * `__libc_csu_init` (csu/elf-init.c) calls `preinit_array_start` functions
+ * `__libc_csu_init` calls `_init`
+ * `_init` (sysdeps/i386/crti.S) calls `PREINIT_FUNCTION`, (actually libpthread on Linux, `__gmon_start__` on hurd)
+ * back to `__libc_csu_init` calls `init_array_start` functions
+ * back to `__libc_start_main`, it calls calls application's `main`, then `exit`.
+
+## dynamically-linked program
+
+ * dl.so ELF headers point its start at `_start`.
+ * `_start` (sysdeps/i386/dl-machine.h) calls `_dl_start`.
+ * `_dl_start` (elf/rtld.c) initializes `bootstrap_map`, calls `_dl_start_final`
+ * `_dl_start_final` calls `_dl_sysdep_start`.
+ * `_dl_sysdep_start` (sysdeps/mach/hurd/dl-sysdep.c) calls `__mach_init` to initialize enough to run RPCs, then calls `_hurd_startup`.
+ * `_hurd_startup` (hurd/hurdstartup.c) gets hurdish information from servers and calls its `main` parameter.
+ * the `main` parameter was actually `go` inside `_dl_sysdep_start`, which calls `dl_main`.
+ * `dl_main` (elf/rtld.c) interprets ld.so parameters, loads the binary and libraries, calls `_dl_allocate_tls_init`.
+ * we are back to `go`, which branches to `_dl_start_user`.
+ * `_dl_start_user` (./sysdeps/i386/dl-machine.h) runs `RTLD_START_SPECIAL_INIT` (sysdeps/mach/hurd/i386/dl-machine.h) which calls `_dl_init_first`.
+ * `_dl_init_first` (sysdeps/mach/hurd/i386/init-first.c) calls `first_init` which calls `__mach_init` to initialize enough to run RPCs, then runs the `_hurd_preinit_hook` hooks, which initialize global variables of libc.
+ * `_dl_init_first` calls `init`.
+ * `init` sets threadvars, tries to initialize threads (and perhaps switches to the new stack) and gets to call `init1`.
+ * `init1` gets the Hurd block, calls `_hurd_init` on it
+ * `_hurd_init` (hurd/hurdinit.c) initializes initial ports, starts the signal thread, runs the `_hurd_subinit` hooks (`init_dtable` hurd/dtable.c notably initializes the FD table and the `_hurd_fd_subinit` hooks, which notably checks `std*`).
+ * we are back to `_dl_start_user`, which calls `_dl_init` (elf/dl-init.c) which calls application initializers.
+ * `_dl_start_user` jumps to the application's entry point, `_start`
+ * `_start` (sysdeps/i386/start.S) calls `__libc_start_main`
+ * `__libc_start_main` (actually called `LIBC_START_MAIN` in csu/libc-start.c) initializes libc, atexit,
+ * `__libc_start_main` calls initialization function given as parameter `__libc_csu_init`,
+ * `__libc_csu_init` (csu/elf-init.c) calls `_init`
+ * `_init` (sysdeps/i386/crti.S) calls `PREINIT_FUNCTION`, (actually libpthread on Linux, `__gmon_start__` on hurd)
+ * back to `__libc_csu_init` calls `init_array_start` functions
+ * back to `__libc_start_main`, it calls application's `main`, then `exit`.
+
# IRC, freenode, #hurd, 2013-12-31
<youpi> braunr: btw, after patching glibc and trying installing it, do you
diff --git a/hurd/glibc.mdwn b/hurd/glibc.mdwn
index 39bfed62..271c0c6d 100644
--- a/hurd/glibc.mdwn
+++ b/hurd/glibc.mdwn
@@ -1,5 +1,5 @@
-[[!meta copyright="Copyright © 2007, 2008, 2009, 2010 Free Software Foundation,
-Inc."]]
+[[!meta copyright="Copyright © 2007, 2008, 2009, 2010, 2018 Free Software
+Foundation, Inc."]]
[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
id="license" text="Permission is granted to copy, distribute and/or modify this
@@ -17,3 +17,20 @@ For information about how the glibc integrates into the system, see sections
[[Hurd-specific_API]].
[[Debugging_glibc|debugging/glibc]].
+
+
+# Cross-building
+
+The long-term goal is to get `build-many-glibcs.py` to be able to cross-compile
+glibc. This should be working as per the following:
+
+ $ mkdir -p /tmp/build/src
+ $ cp -a /usr/src/glibc /tmp/build/src/
+ $ unset CFLAGS
+ $ /tmp/build/src/glibc/scripts/build-many-glibcs.py /tmp/build checkout binutils-2.29 gcc-7.1.0
+ $ /tmp/build/src/glibc/scripts/build-many-glibcs.py /tmp/build host-libraries
+ $ /tmp/build/src/glibc/scripts/build-many-glibcs.py /tmp/build compilers i686-gnu
+ $ /tmp/build/src/glibc/scripts/build-many-glibcs.py /tmp/build glibcs i686-gnu
+
+Ideally the master branch builds that way. As of January 2018 the goal is first
+to get the sthibaul/hurd-builds branch building.
diff --git a/hurd/subhurd.mdwn b/hurd/subhurd.mdwn
index 7b6cad67..df640565 100644
--- a/hurd/subhurd.mdwn
+++ b/hurd/subhurd.mdwn
@@ -1,5 +1,5 @@
-[[!meta copyright="Copyright © 2007, 2008, 2010, 2011, 2013, 2014, 2016 Free
-Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008, 2010, 2011, 2013, 2014, 2016, 2017
+Free Software Foundation, Inc."]]
[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
id="license" text="Permission is granted to copy, distribute and/or modify this
@@ -27,12 +27,47 @@ requires a privileged subhurd.
# Howto
-## Preparing
+## Quick hack: Use an existing image
-To run a subhurd, you need an additional partition with an installed Hurd
-system. In principle, you can also use your main partition in read-only mode;
-but this obviously will create severe limitations. Usually, you will want a
-complete independent system.
+You can download a Debian/Hurd image
+[[here|https://people.debian.org/~sthibault/hurd-i386/]] and directly
+boot it:
+
+ $ wget --no-check-certificate https://people.debian.org/~sthibault/hurd-i386/debian-hurd.img.gz
+ $ gunzip debian-hurd.img.gz
+ $ boot --kernel-command-line="fastboot root=pseudo-root" -T typed part:1:file:debian-hurd.img
+
+The 'fastboot' is necessary to skip the filesystem check which fails
+because the image assumes the root filesystem to be /etc/hd0s1. Once
+booted, you can correct this:
+
+ root@debian:~# settrans -c /dev/pseudo-root /hurd/storeio pseudo-root
+ root@debian:~# echo /dev/pseudo-root / ext2 defaults 0 1 >/etc/fstab
+ root@debian:~# halt
+
+From now on, `boot -T typed part:1:file:debian-hurd.img` should suffice.
+
+## Preparing your own image
+
+To run a subhurd, you need an additional partition (or a file) with an
+installed Hurd system. In principle, you can also use your main
+partition in read-only mode; but this obviously will create severe
+limitations. Usually, you will want a complete independent system.
+
+The following instructions assume that the system is installed on
+`/dev/hd0s1`. You can use any partition instead, or in fact just a
+simple file created e.g. using dd.
+
+### Creating a file used as root filesystem for the Subhurd
+
+To create a file `my.image` of size 2 gigabytes, do
+
+ $ dd if=/dev/zero of=my.image bs=1M count=1 seek=2000
+
+(Note that it is currently problematic to create files larger than 2
+gigabytes this way.)
+
+### Using debootstrap
The system for the subhurd is a normal Hurd installation, which could just as
well run standalone. You can use any of the various possible installation
@@ -45,22 +80,6 @@ debootstrap as root:
debootstrap sid mnt/ http://httpredir.debian.org/debian
settrans -fga mnt
-### IRC, freenode, #hurd, 2013-09-15
-
- <gnu_srs> Never dared to try a subhurd, any link to the howto?
- <teythoon> gnu_srs: I followed
- http://www.gnu.org/software/hurd/hurd/subhurd.html though using crosshurd
- didn't work for me, I just used debootstrap
- <teythoon> gnu_srs: and you need a separate filesystem translator (i.e. not
- /) for that
- <teythoon> the easiest way is to add another virtual disk to you qemu setup
- <braunr> use the qemu image directly
- <braunr> simplest way to set up a subhurd
- <braunr> just change fstab from the host before the first boot to avoid
- making the subhurd use the same hd0 drive as the host
- <teythoon> braunr: nice idea :)
-
-
## Booting
If you are using a recent version of the Hurd (>= 0.9), then you can
diff --git a/open_issues/64-bit_port.mdwn b/open_issues/64-bit_port.mdwn
index 74758085..8658f1b7 100644
--- a/open_issues/64-bit_port.mdwn
+++ b/open_issues/64-bit_port.mdwn
@@ -1,4 +1,4 @@
-[[!meta copyright="Copyright © 2011, 2012, 2013, 2014, 2016 Free Software
+[[!meta copyright="Copyright © 2011, 2012, 2013, 2014, 2016, 2017 Free Software
Foundation, Inc."]]
[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
@@ -12,10 +12,25 @@ License|/fdl]]."]]"""]]
[[!tag open_issue_gnumach open_issue_mig]]
There is a `master-x86_64` GNU Mach branch. As of 2012-11-20, it only supports
-the [[microkernel/mach/gnumach/ports/Xen]] platform.
+the [[microkernel/mach/gnumach/ports/Xen]] platform for now.
+
+What is left for initial support (32-on-64) is
+
+ * adding 64bit boot support from grub
+ * implement 32/64 RPC compatibility for RPCs served by kernel.
See http://lists.gnu.org/archive/html/bug-hurd/2012-04/msg00000.html
+For pure 64bit support, we need to
+
+ * add 64bit definitions in binutils
+ * add 64bit definitions in gcc
+ * implement 64bit variants of code in glibc/sysdeps/mach/i386 and glibc/sysdeps/mach/hurd/i386
+ * implement 64bit variants of code in libpthread/sysdeps/i386, libpthread/sysdeps/mach/i386, libpthread/sysdeps/mach/hurd/i386
+ * fetch from Linux 64bit variant of code in ./pfinet/linux-src/arch/i386 and ./pfinet/linux-src/include/asm-i386
+ * define the mig ABI
+ * bootstrap a distrib, e.g. Debian hurd-amd64 (see https://jenkins.debian.net/view/rebootstrap/job/rebootstrap_hurd-amd64_gcc7/ )
+
# IRC, freenode, #hurd, 2011-10-16
<youpi> it'd be really good to have a 64bit kernel, no need to care about
diff --git a/open_issues/problematic_packages.mdwn b/open_issues/problematic_packages.mdwn
index 1ce81c66..8fe06495 100644
--- a/open_issues/problematic_packages.mdwn
+++ b/open_issues/problematic_packages.mdwn
@@ -1,4 +1,4 @@
-[[!meta copyright="Copyright © 2014, 2015, 2016 Free Software Foundation,
+[[!meta copyright="Copyright © 2014, 2015, 2016, 2017 Free Software Foundation,
Inc."]]
[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
@@ -20,6 +20,7 @@ This page lists the few packages whose build makes the Debian buildd box crash a
* ruby-hiredis
* subversion testsuite
* socket-wrapper
+ * qt-at-spi
* breaks cron
diff --git a/user/danialbehzadi.mdwn b/user/danialbehzadi.mdwn
new file mode 100644
index 00000000..eb7c5e67
--- /dev/null
+++ b/user/danialbehzadi.mdwn
@@ -0,0 +1,13 @@
+[[!meta copyright="Copyright © 2016 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+* Name: Danial Behzadi
+* Email: <dani.behzi@ubuntucom>
+* Country: Iran