diff options
author | Thomas Schwinge <thomas@codesourcery.com> | 2016-12-04 13:20:31 +0100 |
---|---|---|
committer | Thomas Schwinge <thomas@codesourcery.com> | 2016-12-04 13:20:31 +0100 |
commit | 79677204760502b2fdd0e06958a999b1fad0f940 (patch) | |
tree | b5c3eff1f13a9655ea13e9faba0c387a562fb278 | |
parent | aef463c050add77d72259c5c9b630adbfb0409bb (diff) | |
parent | 45e529318e9963a4df0a900bd7b5bd29a6412183 (diff) |
Merge commit '45e529318e9963a4df0a900bd7b5bd29a6412183'
-rw-r--r-- | community/gsoc/project_ideas/object_lookups.mdwn | 17 | ||||
-rw-r--r-- | community/meetings.mdwn | 1 | ||||
-rw-r--r-- | community/meetings/ghm2016.mdwn | 24 | ||||
-rw-r--r-- | contributing.mdwn | 2 | ||||
-rw-r--r-- | faq/64-bit.mdwn | 5 | ||||
-rw-r--r-- | faq/how_many_developers.mdwn | 4 | ||||
-rw-r--r-- | faq/xserver-common.mdwn | 4 | ||||
-rw-r--r-- | hurd/porting/guidelines.mdwn | 13 | ||||
-rw-r--r-- | hurd/running/chroot.mdwn | 27 | ||||
-rw-r--r-- | hurd/running/qemu.mdwn | 16 | ||||
-rw-r--r-- | hurd/subhurd.mdwn | 84 | ||||
-rw-r--r-- | hurd/translator/mtab/discussion.mdwn | 6 | ||||
-rw-r--r-- | microkernel/mach/gnumach/debugging.mdwn | 4 | ||||
-rw-r--r-- | microkernel/mach/gnumach/projects/mach_5.mdwn | 26 | ||||
-rw-r--r-- | open_issues/automatically_checking_port_deallocation.mdwn | 4 | ||||
-rw-r--r-- | open_issues/debootstrap.mdwn | 24 | ||||
-rw-r--r-- | open_issues/increasing_bogus_port_at_boot.mdwn | 31 | ||||
-rw-r--r-- | open_issues/libpthread.mdwn | 4 | ||||
-rw-r--r-- | open_issues/problematic_packages.mdwn | 11 | ||||
-rw-r--r-- | open_issues/robustness.mdwn | 6 | ||||
-rw-r--r-- | open_issues/virtualization/fakeroot.mdwn | 4 | ||||
-rw-r--r-- | public_hurd_boxen.mdwn | 104 |
22 files changed, 247 insertions, 174 deletions
diff --git a/community/gsoc/project_ideas/object_lookups.mdwn b/community/gsoc/project_ideas/object_lookups.mdwn index d67dbe20..d7a5831e 100644 --- a/community/gsoc/project_ideas/object_lookups.mdwn +++ b/community/gsoc/project_ideas/object_lookups.mdwn @@ -1,4 +1,5 @@ -[[!meta copyright="Copyright © 2013, 2014 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2013, 2014, 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 @@ -265,7 +266,7 @@ In context of [[!message-id "20130918081345.GA13789@dalaran.sceen.net"]]. <teythoon> let me push it somewhere, so I can show you the patches <braunr> ok <teythoon> braunr: - http://darnassus.sceen.net/gitweb/teythoon/gnumach.git/shortlog/refs/heads/feature-protected-payload-1 + http://darnassus.sceen.net/cgit/teythoon/gnumach.git/shortlog/refs/heads/feature-protected-payload-1 <braunr> teythoon: where should i look at ? <teythoon> the last commit <braunr> hm @@ -290,7 +291,7 @@ In context of [[!message-id "20130918081345.GA13789@dalaran.sceen.net"]]. <teythoon> right, I can see how that could work <braunr> mach_reply_port(); mach_port_set_payload(); mach_msg(); <teythoon> braunr: - http://darnassus.sceen.net/gitweb/teythoon/gnumach.git/log/refs/heads/feature-protected-payload-2 + http://darnassus.sceen.net/cgit/teythoon/gnumach.git/log/refs/heads/feature-protected-payload-2 <teythoon> I think I found the right spot <braunr> teythoon: looks better indeed :) <teythoon> braunr: yes, thanks for the hint :) @@ -378,11 +379,11 @@ In context of [[!message-id "20130918081345.GA13789@dalaran.sceen.net"]]. <teythoon> no, no deb <braunr> ok <teythoon> braunr: - http://darnassus.sceen.net/gitweb/teythoon/gnumach.git/log/refs/heads/feature-protected-payload-3 + http://darnassus.sceen.net/cgit/teythoon/gnumach.git/log/refs/heads/feature-protected-payload-3 <teythoon> - http://darnassus.sceen.net/gitweb/teythoon/hurd.git/log/refs/heads/feature-protected-payload-1 + http://darnassus.sceen.net/cgit/teythoon/hurd.git/log/refs/heads/feature-protected-payload-1 <teythoon> braunr: in particular, - http://darnassus.sceen.net/gitweb/teythoon/hurd.git/blob/refs/heads/feature-protected-payload-1:/libports/manage-multithread.c#l161 + http://darnassus.sceen.net/cgit/teythoon/hurd.git/blob/refs/heads/feature-protected-payload-1:/libports/manage-multithread.c#l161 ## IRC, freenode, #hurd, 2013-11-27 @@ -396,13 +397,13 @@ In context of [[!message-id "20130918081345.GA13789@dalaran.sceen.net"]]. <braunr> sure <teythoon> ok <teythoon> first, please look at this - http://darnassus.sceen.net/gitweb/teythoon/hurd.git/blob/refs/heads/feature-protected-payload-1:/libports/manage-multithread.c#l161 + http://darnassus.sceen.net/cgit/teythoon/hurd.git/blob/refs/heads/feature-protected-payload-1:/libports/manage-multithread.c#l161 <teythoon> in line 165, the msgh_local_port is restored <teythoon> b/c later some intrans function might use this for the object (re-)lookup <braunr> yes ok <teythoon> - http://darnassus.sceen.net/gitweb/teythoon/mig.git/commitdiff/64b7d34f90a41d017a9e1e8179c0533a97012f6f + http://darnassus.sceen.net/cgit/teythoon/mig.git/commitdiff/64b7d34f90a41d017a9e1e8179c0533a97012f6f <braunr> makes sense <teythoon> this makes mig payload aware <teythoon> we'd specify another intrans function that takes a label and diff --git a/community/meetings.mdwn b/community/meetings.mdwn index c3e8529a..ad43b800 100644 --- a/community/meetings.mdwn +++ b/community/meetings.mdwn @@ -17,6 +17,7 @@ License|/fdl]]."]]"""]] # Past + * [[GNU Hackers Meeting, 2016, Rennes|ghm2016]] * [[FOSDEM_2016]] * [[DebConf15]] * [[FOSDEM_2015]] diff --git a/community/meetings/ghm2016.mdwn b/community/meetings/ghm2016.mdwn new file mode 100644 index 00000000..74f86ff6 --- /dev/null +++ b/community/meetings/ghm2016.mdwn @@ -0,0 +1,24 @@ +[[!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]]."]]"""]] + +[[!meta title="GNU Hackers Meeting, 2016, Rennes"]] + +<https://www.gnu.org/ghm/2016/rennes/> +<https://www.gnu.org/ghm/upcoming.html> + + * {{$thibault_hurd}} + +[[!ymlfront data=""" + +thibault_hurd: + + "presentation by Samuel Thibault: [Latest news about GNU Hurd](https://www.gnu.org/ghm/2016/rennes/) ([slides](http://dept-info.labri.fr/~thibault/tmp/2016-08-18-ghm.pdf))" + +"""]] diff --git a/contributing.mdwn b/contributing.mdwn index 4674713e..31d56783 100644 --- a/contributing.mdwn +++ b/contributing.mdwn @@ -180,7 +180,7 @@ I'll have to think about it some more. * Install qemu-kvm via your distros packages. * Download the [qemu image](http://people.debian.org/~sthibault/hurd-i386/debian-hurd.img.tar.gz): `wget http://people.debian.org/~sthibault/hurd-i386/debian-hurd.img.tar.gz` * Unpack it: `tar xf debian-hurd.img.tar.gz` -* Run it: `qemu-kvm -m 512 -no-kvm-irqchip -drive cache=writeback,file=debian-hurd.img` # …irq… is a currently necessary fix due to some changes in Linux. Optionally use `--curses` to keep your keyboard layout. If need be modprobe kvm_amd, kvm intel and kvm to get kvm support (which is much, much faster). See also: [kvm FAQ](http://www.linux-kvm.org/page/FAQ). +* Run it: `qemu-kvm -m 512 -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). * login as root * `apt-get update` * `apt-get install -y git mercurial emacs vim` diff --git a/faq/64-bit.mdwn b/faq/64-bit.mdwn index b88c4b20..1c75e1dc 100644 --- a/faq/64-bit.mdwn +++ b/faq/64-bit.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2013 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2013, 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 @@ -16,3 +16,6 @@ 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. + +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/how_many_developers.mdwn b/faq/how_many_developers.mdwn index 9e079852..a4d4910e 100644 --- a/faq/how_many_developers.mdwn +++ b/faq/how_many_developers.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2010, 2011, 2013 Free Software Foundation, +[[!meta copyright="Copyright © 2010, 2011, 2013, 2016 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable @@ -17,7 +17,7 @@ few?"]] # How Many Developers? -One handful works on the core of the system in their free time, and another +Literally only one handful works on the core of the system in their free time, and another handful helps with [[Debian GNU/Hurd|hurd/running/debian]] and [[hurd/running/Arch_Hurd]] packaging. Also, an additional handful of former developers are still available for answering technical questions, but are not diff --git a/faq/xserver-common.mdwn b/faq/xserver-common.mdwn index 777ba025..ea3c9e46 100644 --- a/faq/xserver-common.mdwn +++ b/faq/xserver-common.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2007, 2008, 2013 Free Software Foundation, +[[!meta copyright="Copyright © 2007, 2008, 2013, 2016 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable @@ -17,6 +17,6 @@ This happens because currently there is no way to detect console users. On Debian GNU/Hurd systems, you need to run - # dpkg-reconfigure x11-common + # dpkg-reconfigure xserver-xorg-legacy and select `Anybody` for starting X. diff --git a/hurd/porting/guidelines.mdwn b/hurd/porting/guidelines.mdwn index a76ffc8f..33888685 100644 --- a/hurd/porting/guidelines.mdwn +++ b/hurd/porting/guidelines.mdwn @@ -181,6 +181,19 @@ Fixed code: Replace with `getrlimit(RLIMIT_NOFILE,...)` +## <a name="mach_darwin"> `#ifdef __MACH__` </a> + +Some applications put Apple Darwin-specific code inside `#ifdef __MACH__` +guards. Such guard is clearly not enough, since not only Apple uses Mach as a +kernel. This should be replaced by `#if defined(__MACH__) && defined(__APPLE__)` + +## <a name="mach_clock"> `mach/clock.h` </a> + +Some applications unconditionally use Darwin-specific functions coming +from `mach/clock.h` to get the clock. This is unnecessarily unportable, +`clock_gettime` can simply be used instead, and the `#ifdef __MACH__` guard for the `mach/clock.h` +inclusion be fixed as explained above. + ## <a name="GNU_specific_define_tt_"> </a> GNU specific `#define` If you need to include specific code for GNU/Hurd using `#if` ... `#endif`, then you can use the `__GNU__` symbol to do so. But think (at least) thrice! before doing so. In most situations, this is completely unnecessary and will create more problems than it may solve. Better ask on the mailing list how to do it right if you can't think of a better solution. diff --git a/hurd/running/chroot.mdwn b/hurd/running/chroot.mdwn index 699f05a1..eac67282 100644 --- a/hurd/running/chroot.mdwn +++ b/hurd/running/chroot.mdwn @@ -1,4 +1,5 @@ -[[!meta copyright="Copyright © 2012, 2013 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2012, 2013, 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 @@ -40,8 +41,22 @@ socket creation will actually happen in the root filesystem. To make things work correctly the programs inside the chroot need to be able to access them: - # settrans -kp chroot/servers /hurd/firmlink /servers - # settrans -kp chroot/dev /hurd/firmlink /dev - # settrans chroot/tmp /hurd/firmlink /tmp - # settrans -c chroot/var/lib/dbus /hurd/firmlink /var/lib/dbus - # settrans -c chroot/run/dbus /hurd/firmlink /run/dbus + # CHROOT=$PWD/chroot + # settrans -kp $CHROOT/servers /hurd/firmlink /servers + # settrans -kp $CHROOT/dev /hurd/firmlink /dev + # settrans $CHROOT/tmp /hurd/firmlink /tmp + # settrans -c $CHROOT/var/lib/dbus /hurd/firmlink /var/lib/dbus + # settrans -c $CHROOT/run/dbus /hurd/firmlink /run/dbus + # settrans -kp $CHROOT/proc /hurd/firmlink /proc + # settrans -c $CHROOT/$HOME/.dbus /hurd/firmlink /$HOME/.dbus + +# Buildds + +Debian build daemons use a specialized script instead of debootstrap: + + # mkdir ~/chroots + # /usr/share/sbuild/create-chroot unstable + +They also use sbuild to start the build: + + # sbuild foo_1.2.3-1 diff --git a/hurd/running/qemu.mdwn b/hurd/running/qemu.mdwn index ef89ec12..369ceab6 100644 --- a/hurd/running/qemu.mdwn +++ b/hurd/running/qemu.mdwn @@ -95,21 +95,7 @@ Check that the kvm module is loaded: More info on kvm at: http://www.linux-kvm.org/page/FAQ -If your machine supports hardware acceleration, you should really use the kvm variant of qemu, as it speeds things quite a lot. Note however that kvm tends to make assumptions when accelerating things in the linux kernel, you may need some -no-kvm-something option. At the moment in Debian you need to pass - - -no-kvm-irqchip - -to the command line, see below, if you are running Linux kernels 2.6.37 or 2.6.38 else IRQs may hang sooner or later. The kvm irq problems will be solved in kernel 2.6.39. - -IRC, freenode, #hurd, 2012-08-29: - - <braunr> youpi: do you remember which linux versions require the - -no-kvm-irqchip option ? - <braunr> your page indicates 2.6.37-38, but i'm seeing weird things on - 2.6.32 - <braunr> looks like a good thing to use that option all the time actually - <gnu_srs> seems like kvm -h says: -no-kvm-irqchip and man kvm says: - -machine kernel_irqchip=off +If your machine supports hardware acceleration, you should really use the kvm variant of qemu, as it speeds things quite a lot. # HAP/EPT/NPT acceleration diff --git a/hurd/subhurd.mdwn b/hurd/subhurd.mdwn index e50ea0d5..7b6cad67 100644 --- a/hurd/subhurd.mdwn +++ b/hurd/subhurd.mdwn @@ -1,5 +1,5 @@ -[[!meta copyright="Copyright © 2007, 2008, 2010, 2011, 2013, 2014 Free Software -Foundation, Inc."]] +[[!meta copyright="Copyright © 2007, 2008, 2010, 2011, 2013, 2014, 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 @@ -19,7 +19,8 @@ attach to them with gdb from the parent when the instance of gdb stops the server but requires its use. (Note: it is possible to use [[debugging/gdb/noninvasive_debugging]], but this is less flexible.) Vice versa, it is also possible to use a subhurd to debug the -*main* Hurd system, for example, the latter's root file system. +*main* Hurd system, for example, the latter's root file system, but that +requires a privileged subhurd. [[!toc levels=2]] @@ -37,10 +38,12 @@ 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 methods, or reuse an existing installation if you already have several. If using [[Debian_GNU/Hurd|running/debian]], the easiest is probably to use -[[running/debian/crosshurd]], which you can run directly from your main Hurd to -set up another Hurd on a different partition, without ever rebooting. (You can -run the `native-install` step from a chroot or already in a subhurd.) +debootstrap as root: + mke2fs /dev/hd0s6 + settrans -ca mnt /hurd/ext2fs /dev/hd0s6 + debootstrap sid mnt/ http://httpredir.debian.org/debian + settrans -fga mnt ### IRC, freenode, #hurd, 2013-09-15 @@ -60,53 +63,40 @@ run the `native-install` step from a chroot or already in a subhurd.) ## Booting -To boot the subhurd, you need a boot script. For historical reasons, usually -`/boot/servers.boot` is used. (Originally, this was also used to boot the main -Hurd, using "serverboot". Nowadays, this isn't used for the main boot anymore, -as GRUB can directly load all the necessary modules.) +If you are using a recent version of the Hurd (>= 0.9), then you can +simply boot the subhurd as an unprivileged user by issuing -However, the canonical `/boot/servers.boot` file is no longer distributed with -[[Debian_GNU/Hurd|running/debian]]. Here is a slightly adopted version: + boot /dev/hd0s6 - # Boot script file for booting GNU Hurd. Each line specifies a file to be - # loaded by the boot loader (the first word), and actions to be done with it. - - # First, the bootstrap filesystem. It needs several ports as arguments, - # as well as the user flags from the boot loader. - /hurd/ext2fs.static --bootflags=${boot-args} --host-priv-port=${host-port} --device-master-port=${device-port} --exec-server-task=${exec-task} -Tdevice ${root-device} $(task-create) $(task-resume) - - # Now the exec server; to load the dynamically-linked exec server program, - # we have the boot loader in fact load and run ld.so, which in turn - # loads and runs /hurd/exec. This task is created, and its task port saved - # in ${exec-task} to be passed to the fs above, but it is left suspended; - # the fs will resume the exec task once it is ready. - /lib/ld.so.1 /hurd/exec $(exec-task=task-create) - - ## default pager - #/dev/sd0b $(add-paging-file) - -/!\ It's very important not to introduce spurious line breaks, so be very -careful when copying! All the options following `ext2fs.static` have to be on -a single line. - -Now actually booting the subhurd is a simple matter of issuing (as root): - - boot servers.boot /dev/hd0s6 - -(Replace `hd0s6` by the name of your partition for the subhurd.) +(Replace `hd0s6` by the name of your partition or backing file for the subhurd.) /!\ The partition must be unmounted (or mounted read-only) before you boot from it! -(In theory it shouldn't be neccessary to run the subhurd as user `root`, but in -practice [that doesn't work at the -moment](http://savannah.gnu.org/bugs/?17341).) +## Networking You can provide the subhurd with a network card by passing a `-f` option to `boot`. For instance, if you have a second network card `/dev/eth1` in your host hurd, pass `-f eth0=/dev/eth1` to make it appear as device eth0 in the subhurd. +If you don't have a second network card, you can setup the eth-multiplexer +to share one network card. To do so, install the multiplexer + + settrans -c /dev/eth0m /hurd/eth-multiplexer --interface=/dev/eth0 + +Then configure your main Hurd system to use a virtual network +interface (e.g. `/dev/eth0m/0`) instead. On Debian/Hurd, this can be +accomplished using + + ifdown /dev/eth0 + sed -i -e s#/dev/eth0#/dev/eth0m/0# /etc/network/interfaces + ifup /dev/eth0m/0 + +You can now pass `-f eth0=/dev/eth0m/1` to `boot`. + +## Booting and shutting down + Now the subhurd should boot just like a normal Hurd started directly from GRUB, finally presenting a login prompt. The `boot` program serves as proxy for the subhurd, so you can control it from the terminal where you issued the boot @@ -114,16 +104,16 @@ command. To exit the subhurd, issue `halt` or `reboot`. This should exit it cleanly, but for some reason it doesn't always work; sometimes it will output various -errors and then hang. If that happens, you need to kill the subhurd processes -manually from a different terminal. - +errors and then hang. If that happens, you need to kill the `boot` process +manually from a different terminal. If the `boot` process dies, the +proc server will kill all tasks belonging to the Subhurd. ## Using In the subhurd, you can do basically all the same things as in the main Hurd. You can even set up networking: Just invoke `settrans` on the -`/servers/socket/2` as usual inside the subhurd, only using a different local +`/servers/socket/2` as usual inside the subhurd, using `/dev/eth0`, only using a different local IP than in the main Hurd. This way, the subhurd will be able to communicate to the outside world with its own IP -- allowing for example to do `apt-get` inside the subhurd, or to `ssh` directly into the subhurd. @@ -132,7 +122,7 @@ If you want to access the subhurd processes from the outside, e.g. for [[debugging_purposes|debugging/subhurd]] (or to get rid of a subhurd that didn't exit cleanly...), you need to find out how main Hurd [[PID]]s correspond to subhurd processes: the subhurd processes appear in the main Hurd (e.g. if doing -`ps -e`) as unknown processes, and vice versa, but the [[PID]]s are different! To +`ps -e`) as unknown processes, but the [[PID]]s are different! To find out which process is which, you can simply compare the order -- while the numbers are different, the order should usually match. Often it also helps to look at the number of threads (e.g. using `ps -l`), as many servers have very @@ -510,6 +500,8 @@ Roland's tutorial about [[running_a_subhurd]]. <a name="debugging_main_hurd_system"></a> ## Debugging the *Main* Hurd System +Note: This only works with privileged subhurds. + A subhurd can be used for debugging the *main* Hurd system. This works as long as the subhurd doesn't use any services provided by the main Hurd. For example, if you already have a subhurd running at the time it happens, you can diff --git a/hurd/translator/mtab/discussion.mdwn b/hurd/translator/mtab/discussion.mdwn index 715884ce..952c0825 100644 --- a/hurd/translator/mtab/discussion.mdwn +++ b/hurd/translator/mtab/discussion.mdwn @@ -1107,7 +1107,7 @@ In context of [[open_issues/mig_portable_rpc_declarations]]. <youpi> ok <braunr> only send-once rights have their own names <teythoon> btw, I'll push my work to darnassus from now on, - e.g. http://darnassus.sceen.net/gitweb/?p=teythoon/hurd.git;a=shortlog;h=refs/heads/feature-mtab-translator-v3-wip + e.g. http://darnassus.sceen.net/cgit/?p=teythoon/hurd.git;a=shortlog;h=refs/heads/feature-mtab-translator-v3-wip ### IRC, freenode, #hurd, 2013-11-20 @@ -2518,7 +2518,7 @@ Fixed in 2013-10-05 procfs commit c87688a05a8b49479ee10127470cc60acebead4a? <braunr> push that work in a branch somewhere for review please <teythoon> right, thanks <teythoon> braunr: - http://darnassus.sceen.net/gitweb/teythoon/hurd.git/shortlog/refs/heads/feature-translatorslist-detect-passive-translators + http://darnassus.sceen.net/cgit/teythoon/hurd.git/shortlog/refs/heads/feature-translatorslist-detect-passive-translators ### IRC, freenode, #hurd, 2014-01-04 @@ -2539,7 +2539,7 @@ Fixed in 2013-10-05 procfs commit c87688a05a8b49479ee10127470cc60acebead4a? <braunr> ! <braunr> where are they again ? <teythoon> - http://darnassus.sceen.net/gitweb/teythoon/hurd.git/shortlog/refs/heads/feature-translatorslist-detect-passive-translators + http://darnassus.sceen.net/cgit/teythoon/hurd.git/shortlog/refs/heads/feature-translatorslist-detect-passive-translators <braunr> ok <teythoon> they are reasonably straight-forward <teythoon> but cause this funny issue, after the first reboot with the diff --git a/microkernel/mach/gnumach/debugging.mdwn b/microkernel/mach/gnumach/debugging.mdwn index 164c4349..9534c758 100644 --- a/microkernel/mach/gnumach/debugging.mdwn +++ b/microkernel/mach/gnumach/debugging.mdwn @@ -53,9 +53,7 @@ To examine the backtrace of some given thread, use show all thread/u -to get the whole listing of all tasks and threads. You can then use trace/t or trace/tu to trace a specific thread. - -Unfortunately, userland and kernelland use the same range of addresses, so one can not get userland traces easily. The Xen port uses different ranges, and in that case one can use trace/u to also get the userland trace. +to get the whole listing of all tasks and threads. You can then use trace/t or trace/tu to trace a specific thread. gcc however uses the frame pointer as a normal register unless `-fno-omit-frame-pointer` is given. It can thus be useful to rebuild glibc with that option, by adding `extra_cflags = -fno-omit-frame-pointer` in `glibc/debian/sysdeps/hurd-i386.mk` To examine a variable, use nm /boot/gnumach to get the address of the variable (e.g. 0x123400), and use diff --git a/microkernel/mach/gnumach/projects/mach_5.mdwn b/microkernel/mach/gnumach/projects/mach_5.mdwn index a4236ea5..7b59170b 100644 --- a/microkernel/mach/gnumach/projects/mach_5.mdwn +++ b/microkernel/mach/gnumach/projects/mach_5.mdwn @@ -19,6 +19,8 @@ it, we could straighten out some of these problems. This page is a place to keep track of such changes. +[[!toc startlevel=2 levels=1]] + ## Protected payloads Protected payloads are a way of optimizing the receiver object lookup @@ -134,4 +136,28 @@ A prototype exists. ### Discussions * <https://lists.gnu.org/archive/html/bug-hurd/2015-05/msg00000.html> +* <https://lists.gnu.org/archive/html/bug-hurd/2016-09/msg00056.html> + +## Interface for userspace drivers + +We need to provide an interface suitable for implementing drivers in +userspace: + +* A way to handle interrupts +* and a way to allocate memory suitable for DMA buffers + +### Required ABI changes + +None. This is a new interface. Debian/Hurd uses a non-standard rpc +id, so we do not change an existing procedure there. + +### Status + +A DDE-based solution is used in Debian/Hurd to provide network +drivers. A rump kernel prototype is implemented. These use a kernel +interface written by Zheng Da available in the +"master-user_level_drivers" branch in the GNU Mach repository. + +### Discussions +* <https://lists.gnu.org/archive/html/bug-hurd/2016-02/msg00126.html> diff --git a/open_issues/automatically_checking_port_deallocation.mdwn b/open_issues/automatically_checking_port_deallocation.mdwn index 6aeaf207..1c59dd7c 100644 --- a/open_issues/automatically_checking_port_deallocation.mdwn +++ b/open_issues/automatically_checking_port_deallocation.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2010, 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 @@ -29,4 +29,4 @@ a recompilation of the code that contains the port leak. Currently, it is a prototype. If you are looking for a port leak, I'd love you to try it though: -[[http://darnassus.sceen.net/gitweb/teythoon/portseal.git]] +[[http://darnassus.sceen.net/cgit/teythoon/portseal.git]] diff --git a/open_issues/debootstrap.mdwn b/open_issues/debootstrap.mdwn deleted file mode 100644 index 8e6c4900..00000000 --- a/open_issues/debootstrap.mdwn +++ /dev/null @@ -1,24 +0,0 @@ -[[!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/increasing_bogus_port_at_boot.mdwn b/open_issues/increasing_bogus_port_at_boot.mdwn new file mode 100644 index 00000000..483b2844 --- /dev/null +++ b/open_issues/increasing_bogus_port_at_boot.mdwn @@ -0,0 +1,31 @@ +[[!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]]."]]"""]] + +[[!tag open_issue_porting]] + +When the ntpdate package is installed, one gets at boot something like: + + Debian GNU/Hurd stretch/sid debian console + task ext2fs increasing a bogus port 947 by 1, most probably a bug. + task ext2fs increasing a bogus port 947 by 1, most probably a bug. + task ext2fs deallocating a bogus port 947, most probably a bug. + task ext2fs deallocating a bogus port 947, most probably a bug. + login: + +This is coming from the execution of the shell script +/etc/network/if-up.d/ntpdate, whose stdout/stderr is on the Mach console, but +part of which gets executed after getty starts on it. It happens that getty uses +revoke() to revoke access to it from other programs, and thus the ntpdate shell +scripts gets its stdout/stderr in a bogus state, which libc doesn't really cope +with correctly. + +Commenting `c:23:respawn:/sbin/getty 38400 console` from `/etc/inittab` works +around the issue (but removes the getty from the Mach console) diff --git a/open_issues/libpthread.mdwn b/open_issues/libpthread.mdwn index 0294b008..c628bc7b 100644 --- a/open_issues/libpthread.mdwn +++ b/open_issues/libpthread.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2010, 2011, 2012, 2013, 2014 Free Software +[[!meta copyright="Copyright © 2010, 2011, 2012, 2013, 2014, 2016 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable @@ -1061,7 +1061,7 @@ Most of the issues raised on this page has been resolved, a few remain. <gnu_srs> kvm -m 1024 -net nic,model=rtl8139 -net user,hostfwd=tcp::5562-:22 -drive cache=writeback,index=0,media=disk,file=hurd-experimental.img -vnc :6 - -cdrom isos/netinst_2012-07-15.iso -no-kvm-irqchip + -cdrom isos/netinst_2012-07-15.iso <braunr> what is the file system type where your disk image is stored ? <gnu_srs> ext3 <braunr> and how much physical memory on the host ? diff --git a/open_issues/problematic_packages.mdwn b/open_issues/problematic_packages.mdwn index 7ce9c5c4..444350f0 100644 --- a/open_issues/problematic_packages.mdwn +++ b/open_issues/problematic_packages.mdwn @@ -13,12 +13,11 @@ License|/fdl]]."]]"""]] [[!tag open_issue_gnumach open_issue_hurd]] -This page lists the few packages whose build makes the Debian buildd box crash as of 2015, August: +This page lists the few packages whose build makes the Debian buildd box crash as of 2016, June: * Kill the session * ruby-hiredis - * libxs * subversion testsuite * socket-wrapper @@ -26,6 +25,14 @@ This page lists the few packages whose build makes the Debian buildd box crash a * rsyslog +* breaks ext2fs + + * icedove + +* box gets stuck + + * llvm-toolchain-3.7 + * ext2fs gets stuck * emacs24 diff --git a/open_issues/robustness.mdwn b/open_issues/robustness.mdwn index 4b0cdc9b..dec0e474 100644 --- a/open_issues/robustness.mdwn +++ b/open_issues/robustness.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2011, 2013, 2014 Free Software Foundation, +[[!meta copyright="Copyright © 2011, 2013, 2014, 2016 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable @@ -138,7 +138,7 @@ License|/fdl]]."]]"""]] < teythoon> I came across some paper about process reincarnation and created a little prototype a while back: - < teythoon> http://darnassus.sceen.net/gitweb/teythoon/reincarnation.git/ + < teythoon> http://darnassus.sceen.net/cgit/teythoon/reincarnation.git/ < teythoon> and I looked into restarting the exec server in case it dies. the exec server is an easy target since it has no state of its own < teythoon> the only problem is that there is no exec server around to @@ -166,7 +166,7 @@ License|/fdl]]."]]"""]] < teythoon> braunr: the server can store a checkpoint using the reincarnation_checkpoint procedure < teythoon> - http://darnassus.sceen.net/gitweb/teythoon/reincarnation.git/blame/HEAD:/reincarnation.defshttp://darnassus.sceen.net/gitweb/teythoon/reincarnation.git/blame/HEAD:/reincarnation.defs + http://darnassus.sceen.net/cgit/teythoon/reincarnation.git/blame/HEAD:/reincarnation.defshttp://darnassus.sceen.net/cgit/teythoon/reincarnation.git/blame/HEAD:/reincarnation.defs < teythoon> uh >,< sorry, pasted twice < braunr> oh ok diff --git a/open_issues/virtualization/fakeroot.mdwn b/open_issues/virtualization/fakeroot.mdwn index 441d5c13..345f112c 100644 --- a/open_issues/virtualization/fakeroot.mdwn +++ b/open_issues/virtualization/fakeroot.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2010, 2013, 2014 Free Software Foundation, +[[!meta copyright="Copyright © 2010, 2013, 2014, 2016 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable @@ -480,7 +480,7 @@ License|/fdl]]."]]"""]] <antrik> that must be new then <teythoon> might be, yes <teythoon> - http://darnassus.sceen.net/gitweb/teythoon/packaging/hurd.git/blame/HEAD:/debian/patches/libports_stability.patch + http://darnassus.sceen.net/cgit/teythoon/packaging/hurd.git/blame/HEAD:/debian/patches/libports_stability.patch <braunr> antrik: debian currently disables both the global and thread timeouts in libports <braunr> my work on thread destruction consists in part in reenabling diff --git a/public_hurd_boxen.mdwn b/public_hurd_boxen.mdwn index b5ffcdc1..4cd9b46e 100644 --- a/public_hurd_boxen.mdwn +++ b/public_hurd_boxen.mdwn @@ -1,5 +1,5 @@ -[[!meta copyright="Copyright © 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 -Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, +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 @@ -21,25 +21,25 @@ image|hurd/running/qemu]]. [[!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; deactivated until needed again (apart from [[tschwinge]], only [[scolobb]] has an account, but is not active at the moment)" -"[[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; 243 MiB","Xen domU on [[zenhost]]" -"[[bddebian]]","gnubber","Debian GNU/Hurd","PII 733 MHz; 384 MiB" -"[[bddebian]]","goober","Debian GNU/Hurd","?" -"[[bddebian]]","grubber","Debian GNU/Hurd","Celeron 2.2 GHz; 554 MiB","Xen domU on [[zenhost]]; for experimental stuff" -"[[bddebian]]","[[zenhost]]","Debian GNU/Linux","Celeron 2.2 GHz","Xen dom0 for several hosts" +[//]: # ("[[bddebian]]","blubber","Debian GNU/Hurd","Celeron 2.2 GHz; 222 MiB","Xen domU on [[zenhost]]; for experimental stuff; deactivated until needed again (apart from [[tschwinge]], only [[scolobb]] has an account, but is not active at the moment)") +[//]: # ("[[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; 243 MiB","Xen domU on [[zenhost]]") +[//]: # ("[[bddebian]]","gnubber","Debian GNU/Hurd","PII 733 MHz; 384 MiB") +[//]: # ("[[bddebian]]","goober","Debian GNU/Hurd","?") +[//]: # ("[[bddebian]]","grubber","Debian GNU/Hurd","Celeron 2.2 GHz; 554 MiB","Xen domU on [[zenhost]]; for experimental stuff") +[//]: # ("[[bddebian]]","[[zenhost]]","Debian GNU/Linux","Celeron 2.2 GHz","Xen dom0 for several hosts") "[[sceen]]","darnassus","Debian GNU/Hurd","Xeon E5-1620 3.6 GHz, 1.8 GiB","KVM guest on dalaran; public Hurd box; [web server](http://darnassus.sceen.net/)" -"[[sceen]]","ironforge","Debian GNU/Hurd","Xeon E5-1620 3.6 GHz, 1.8 GiB","KVM guest on dalaran; Debian buildd" +"[[sceen]]","ironforge","Debian GNU/Hurd","Xeon E5-1620 3.6 GHz, 1.8 GiB","KVM guest on dalaran; Debian buildd only, no public access" "[[sceen]]","exodar","Debian GNU/Hurd","Xeon E5-1620 3.6 GHz, 1.8 GiB","KVM guest on dalaran; Debian porterbox, all Debian Developers have access" "[[sceen]]","dalaran","Debian GNU/Linux","Xeon E5-1620 3.6 GHz, 64 GiB ECC","KVM host" -"Debian","strauss","Debian GNU/Hurd","Sempron 2800+","all Debian Developers have access" +[//]: # ("Debian","strauss","Debian GNU/Hurd","Sempron 2800+","all Debian Developers have access") "[libav](http://www.libav.org/)","[x86_32-hurd-gcc-4.7](http://fate.libav.org/x86_32-hurd-gcc-4.7)","Debian GNU/Hurd","","libav instance of the [FATE Automated Test Environment](http://www.libav.org/fate.html)" """]] -If you are a Debian Developer, you can log into the exodar or strauss machines +If you are a Debian Developer, you can log into the exodar machines with your DD account, your public ssh keys are already there. To request a -non-DD account on them, please contact admin@{exodar,strauss}.debian.net, with +non-DD account on them, please contact admin@exodar.debian.net, with your Alioth account name and a public ssh key. To request an account on the *[[bddebian]]* or *[[sceen]]* machines, please @@ -54,45 +54,45 @@ Also, add the following stanza to the `~/.ssh/config` file of the machine you're connecting from. # Stanza from <http://www.gnu.org/software/hurd/public_hurd_boxen.html>, - # 2011-11-06. + # 2016-06-13. - Host blubber.bddebian.com blubber - HostName blubber.bddebian.com - - Host clubber.bddebian.com clubber - HostName clubber.bddebian.com - Port 2251 - - Host flubber.bddebian.com flubber - HostName flubber.bddebian.com - Port 2250 - - Host gnubber.bddebian.com gnubber - HostName gnubber.bddebian.com - Port 2254 - - Host goober.bddebian.com goober - HostName goober.bddebian.com - Port 2255 - - 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 - # Tunnel through zenhost. - ProxyCommand ssh zenhost exec socat - TCP4:%h:%p - - Host *.bddebian.com blubber clubber flubber gnubber goober grubber snubber zenhost - # Don't worry about the IP address (dial-up connection). - CheckHostIP no - User [user name] +[//]: # ( Host blubber.bddebian.com blubber) +[//]: # ( HostName blubber.bddebian.com) +[//]: # ( ) +[//]: # ( Host clubber.bddebian.com clubber) +[//]: # ( HostName clubber.bddebian.com) +[//]: # ( Port 2251) +[//]: # ( ) +[//]: # ( Host flubber.bddebian.com flubber) +[//]: # ( HostName flubber.bddebian.com) +[//]: # ( Port 2250) +[//]: # ( ) +[//]: # ( Host gnubber.bddebian.com gnubber) +[//]: # ( HostName gnubber.bddebian.com) +[//]: # ( Port 2254) +[//]: # ( ) +[//]: # ( Host goober.bddebian.com goober) +[//]: # ( HostName goober.bddebian.com) +[//]: # ( Port 2255) +[//]: # ( ) +[//]: # ( 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) +[//]: # ( # Tunnel through zenhost.) +[//]: # ( ProxyCommand ssh zenhost exec socat - TCP4:%h:%p) +[//]: # ( ) +[//]: # ( Host *.bddebian.com blubber clubber flubber gnubber goober grubber snubber zenhost) +[//]: # ( # Don't worry about the IP address (dial-up connection).) +[//]: # ( CheckHostIP no) +[//]: # ( User [user name]) Host darnassus.sceen.net darnassus HostName darnassus.sceen.net |