summaryrefslogtreecommitdiff
path: root/open_issues
diff options
context:
space:
mode:
Diffstat (limited to 'open_issues')
-rw-r--r--open_issues/_san.mdwn2
-rw-r--r--open_issues/blkrrpart_ioctl.mdwn32
-rw-r--r--open_issues/e2fsck_i_file_acl_hi.mdwn2
-rw-r--r--open_issues/ext2fs_dtime.mdwn2
-rw-r--r--open_issues/gcc.mdwn23
-rw-r--r--open_issues/kill_setuid.mdwn49
-rw-r--r--open_issues/kvm.mdwn12
-rw-r--r--open_issues/libpthread_dlopen.mdwn13
-rw-r--r--open_issues/perl.mdwn12
-rw-r--r--open_issues/problematic_packages.mdwn32
-rw-r--r--open_issues/procfs_umount.mdwn24
-rw-r--r--open_issues/symlink_translator.mdwn24
-rw-r--r--open_issues/virtualization/networking.mdwn72
-rw-r--r--open_issues/wine.mdwn10
14 files changed, 211 insertions, 98 deletions
diff --git a/open_issues/_san.mdwn b/open_issues/_san.mdwn
index fad53727..5e6c8796 100644
--- a/open_issues/_san.mdwn
+++ b/open_issues/_san.mdwn
@@ -23,7 +23,7 @@ as:
GNU Tools Cauldron 2012. <http://code.google.com/p/address-sanitizer/>.
* Memory Sanitizer, an detector of uninitialized reads (MSan;
- `-fsanitize=memory)
+ `-fsanitize=memory`)
<http://code.google.com/p/memory-sanitizer/>
diff --git a/open_issues/blkrrpart_ioctl.mdwn b/open_issues/blkrrpart_ioctl.mdwn
deleted file mode 100644
index b3a91bfb..00000000
--- a/open_issues/blkrrpart_ioctl.mdwn
+++ /dev/null
@@ -1,32 +0,0 @@
-[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]]
-
-[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
-id="license" text="Permission is granted to copy, distribute and/or modify this
-document under the terms of the GNU Free Documentation License, Version 1.2 or
-any later version published by the Free Software Foundation; with no Invariant
-Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
-is included in the section entitled
-[[GNU Free Documentation License|/fdl]]."]]"""]]
-
-[[!meta title="BLKRRPART IOCTL"]]
-
-[[!tag open_issue_glibc open_issue_hurd open_issue_gnumach]]
-
-Just like in other Unix systems one can, for example, use `fdisk` or `parted`
-to manage hard disks' partition tables. After doing changes to a disk's
-partition table, the kernel has to be instructed to reinitialize its internal
-data structures: where does a partition begin, where does it end, etc.
-
-With `fdisk` and friends this is done on Linux with the `BLKRRPART` IOCTL,
-which is used to tell the kernel to reread the disk's partition table.
-
-`parted` also uses this interface on Linux, but for GNU Hurd, the corresponding
-function, `libparted/arch/gnu.c (gnu_disk_commit)`, doesn't do anything at all.
-The infrastructure in [[GNU_Mach|microkernel/mach/gnumach]] is already there,
-`linux/src/drivers/block/ide.c (ide_ioctl) <BLKRRPART>` and
-`linux/src/drivers/scsi/sd_ioctl.c (sd_ioctl) <BLKRRPART>`, but the IOCTL needs
-to be routed from `libparted` through [[hurd/glibc]]'s Hurd IOCTL interface,
-through Hurd's [[hurd/libstore]], to [[GNU_Mach|microkernel/mach/gnumach]].
-
-This is not a huge project, and actually one that is suitable for someone who
-wants to start with hacking the system.
diff --git a/open_issues/e2fsck_i_file_acl_hi.mdwn b/open_issues/e2fsck_i_file_acl_hi.mdwn
index d03b733c..d891ac6e 100644
--- a/open_issues/e2fsck_i_file_acl_hi.mdwn
+++ b/open_issues/e2fsck_i_file_acl_hi.mdwn
@@ -36,3 +36,5 @@ IRC, unknown channel, unknown date.
This is due to an erroneous read/write from e2fsck, see
<http://sourceforge.net/tracker/?func=detail&aid=3379227&group_id=2406&atid=102406>.
+
+See [[!debbug 760275]]
diff --git a/open_issues/ext2fs_dtime.mdwn b/open_issues/ext2fs_dtime.mdwn
index 592f1525..5cb5fb7b 100644
--- a/open_issues/ext2fs_dtime.mdwn
+++ b/open_issues/ext2fs_dtime.mdwn
@@ -1,4 +1,4 @@
-[[!meta copyright="Copyright © 2010, 2012 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2014 Free Software Foundation, Inc."]]
[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
id="license" text="Permission is granted to copy, distribute and/or modify this
diff --git a/open_issues/gcc.mdwn b/open_issues/gcc.mdwn
index 6c14fdd4..19056b5c 100644
--- a/open_issues/gcc.mdwn
+++ b/open_issues/gcc.mdwn
@@ -1,5 +1,5 @@
-[[!meta copyright="Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
-Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014,
+2015 Free Software Foundation, Inc."]]
[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
id="license" text="Permission is granted to copy, distribute and/or modify this
@@ -843,22 +843,6 @@ min on coulomb.SCHWINGE.
<http://gcc.gnu.org/install/test.html>
-Testing on GNU/Hurd is blocked on
-[[fork_mach_port_mod_refs_ekern_urefs_owerflow]].
-
-TODO. On GNU/Hurd, it is advisable to reboot after having built and installed
-GCC, before running the testsuite, as otherwise there seems to be a tendency
-that the system crashes during the `gcc.c-torture/compile/limits-structnest.c`
-tests, which are rather memory hungry, see [[!message-id
-"87bol6aixd.fsf@schwinge.name"]]. Likewise, it also seems advisable to add
-further reboots in between, that is, separate `make check`'s `check-host` into
-several separate runs, and then one for `check-target` (see
-`[build]/Makefile:do-check`, `[build]/gcc/Makefile:CHECK_TARGETS`), as
-otherwise there seems to be a tendency for the system crashing sooner or later.
-(Running `check-host` accumulates to something like 44 hours worth of
-forking/execing of GCC and testcases.) On GNU/Linux we run it in one go, so
-that we'll catch any fundamental rearrangements of/additions to the testsuites.
-
kepler.SCHWINGE:
$ make -k check 2>&1 | tee log_test
@@ -911,6 +895,9 @@ coulomb.SCHWINGE.
## Analysis
+ A lot of the failures are due to gcc's unwind support not knowing about signal trampoline on GNU/Hurd, this is a TODO.
+
+
$ toolchain/logs/process gcc test
* PTYs
diff --git a/open_issues/kill_setuid.mdwn b/open_issues/kill_setuid.mdwn
new file mode 100644
index 00000000..047dceda
--- /dev/null
+++ b/open_issues/kill_setuid.mdwn
@@ -0,0 +1,49 @@
+[[!meta copyright="Copyright © 2015 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!tag open_issue_hurd]]
+
+http://bugs.debian.org/413326
+
+The X server does not terminate when the user X session is finished. This is due
+to xinit not being able to kill the setuid Xorg.
+
+On the sending side, glibc does:
+
+ err = HURD_MSGPORT_RPC (__proc_getmsgport (proc, pid, &msgport),
+ (taskerr = __proc_pid2task (proc, pid,
+ &refport)) ?
+ __proc_getsidport (proc, &refport) : 0, 1,
+ kill_port (msgport, refport));
+ }
+
+I.e. asks proc for the task port, and if that fails, asks proc for the
+session port, then it sends the signal.
+
+It happens that since the target got setuid'ed, the proc server had set it
+owned by root, and hence (rightfully) refuses to return the task port through
+pid2task. As a result only proc_getsidport() works, but that will be accepted
+by the receiving side only for some signals.
+
+POSIX says
+
+ For a process to have permission to send a signal to a process designated
+ by pid, unless the sending process has appropriate privileges, the real or
+ effective user ID of the sending process shall match the real or saved
+ set-user-ID of the receiving process.
+
+And indeed Xorg keeps the original user uid as real uid, so that xinit can kill
+it when the session is finished.
+
+We probably need to implement another reference port that the killer can send to
+the killee. It may be useful for some other operations that users can do on the
+setuid processes they have started.
diff --git a/open_issues/kvm.mdwn b/open_issues/kvm.mdwn
index 6dfffc9a..327f97ca 100644
--- a/open_issues/kvm.mdwn
+++ b/open_issues/kvm.mdwn
@@ -23,3 +23,15 @@ with Virtualbox.
<pochu> ok, ty
2010-07-31, GNU Mach commit 039176372b4271f370ef38eb2ee5d43923a5b28b.
+
+# KVM-on-KVM (nested KVM)
+
+This seems sluggish like hell. jenkins.debian.net suffers badly from it: it
+takes like an hour to complete the "Loading additional components" step.
+
+It's actually slower than just running qemu-on-KVM.
+
+This doesn't happen with Linux L2 guests.
+
+Date: Tue, 11 Nov 2014
+https://www.mail-archive.com/kvm@vger.kernel.org/msg109570.html
diff --git a/open_issues/libpthread_dlopen.mdwn b/open_issues/libpthread_dlopen.mdwn
index a825fdff..9e127841 100644
--- a/open_issues/libpthread_dlopen.mdwn
+++ b/open_issues/libpthread_dlopen.mdwn
@@ -1,5 +1,5 @@
-[[!meta copyright="Copyright © 2011, 2012, 2013, 2014 Free Software Foundation,
-Inc."]]
+[[!meta copyright="Copyright © 2011, 2012, 2013, 2014, 2015 Free Software
+Foundation, Inc."]]
[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
id="license" text="Permission is granted to copy, distribute and/or modify this
@@ -15,6 +15,15 @@ License|/fdl]]."]]"""]]
# [[FAQ entry|faq/libpthread_dlopen]]
+Some applications don't themselves link against libpthread, but then load
+plugins which do link against libpthread. This means internally switching from
+single-threading to multi-threading, which is only supported since libc0.3
+2.19-16~2. Previously, it would result in errors such as:
+
+ ./pthread/../sysdeps/generic/pt-mutex-timedlock.c:70: __pthread_mutex_timedlock_internal: Assertion `__pthread_threads' failed.
+
+*This is now fixed as of libc0.3 2.19-16~2.*
+
# IRC, freenode, #hurd, 2010-01-24
<pinotree> youpi: hm, thought about the pthread/stubs issue w/ dlopen'ed
diff --git a/open_issues/perl.mdwn b/open_issues/perl.mdwn
index 48343e3e..62d29ac1 100644
--- a/open_issues/perl.mdwn
+++ b/open_issues/perl.mdwn
@@ -24,6 +24,18 @@ features.
There is a [[!FF_project 264]][[!tag bounty]] on this task.
+# Bugs in perl
+
+There is a bug in perl's putenv which makes it interact badly with fakeroot-tcp and fakeroot-sysv (not fakeroot-hurd), this shows up as this
+
+ *** glibc detected *** /usr/bin/perl: free(): invalid pointer: 0x01026000 ***
+
+See http://rt.perl.org/rt3/Ticket/Display.html?id=91452 for details
+
+A workaround is to do this before building packages calling perl inside fakeroot:
+
+export FAKEROOTUID=0 FAKEROOTEUID=0 FAKEROOTSUID=0 FAKEROOTFUID=0 FAKEROOTGID=0 FAKEROOTEGID=0 FAKEROOTSGID=0 FAKEROOTFGID=0
+
---
diff --git a/open_issues/problematic_packages.mdwn b/open_issues/problematic_packages.mdwn
new file mode 100644
index 00000000..05c7eea4
--- /dev/null
+++ b/open_issues/problematic_packages.mdwn
@@ -0,0 +1,32 @@
+[[!meta copyright="Copyright © 2014, 2015 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no 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="Problematic packages"]]
+
+[[!tag open_issue_gnumach open_issue_hurd]]
+
+This page lists the few packages whose build makes the Debian buildd box crash as of 2014, November 1st:
+
+* Kill pfinet
+
+ * nbd
+ * socklog
+
+* Kill the session
+
+ * idzebra
+ * ruby-hiredis
+ * libxs
+
+* Out of memory
+
+ * php-yac
+ * gnu-smalltalk
+ * globus-gram-job-manager
diff --git a/open_issues/procfs_umount.mdwn b/open_issues/procfs_umount.mdwn
new file mode 100644
index 00000000..f31467df
--- /dev/null
+++ b/open_issues/procfs_umount.mdwn
@@ -0,0 +1,24 @@
+[[!meta copyright="Copyright © 2014 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!tag open_issue_hurd]]
+
+As soon as one has accessed /proc/mounts, /proc can't be umount:
+
+ # settrans -ga /proc
+ settrans: /proc: Device or resource busy
+
+This is because mtab is still mounted on /proc/mounts:
+
+ # settrans -ga /proc/mounts
+ # settrans -ga /proc
+
+settrans -R is supposed to be doing this, but unfortunately this is not
+implemented yet in libnetfs, see #ifdef NOTYET in netfs_shutdown.
diff --git a/open_issues/symlink_translator.mdwn b/open_issues/symlink_translator.mdwn
new file mode 100644
index 00000000..80ce7f0e
--- /dev/null
+++ b/open_issues/symlink_translator.mdwn
@@ -0,0 +1,24 @@
+[[!meta copyright="Copyright © 2015 Free Software Foundation, Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!tag open_issue_hurd]]
+
+The /hurd/symlink translator does not work as expected:
+
+ % settrans -ca broken /hurd/symlink missing
+ % file broken
+ broken: empty
+
+Here is the expected behavior, as implemented by the short-cut logic
+in lib*fs:
+
+ % ln -s missing broken_symlink
+ % file broken_symlink
+ broken_symlink: broken symbolic link to missing
diff --git a/open_issues/virtualization/networking.mdwn b/open_issues/virtualization/networking.mdwn
index f8bda063..122f21ab 100644
--- a/open_issues/virtualization/networking.mdwn
+++ b/open_issues/virtualization/networking.mdwn
@@ -34,48 +34,34 @@ Collection about stuff that is relevant for *virtualization* and *networking*.
[[community/meetings/GHM2013]].
-
-## IRC, freenode, #hurd, 2013-08-23
-
- <youpi> good news
- <youpi> with a couple small patches, openvpn does work as joe user
-
-
-## IRC, freenode, #hurd, 2013-08-30
-
- <youpi> it's really cool that openvpn ended up working completely the day
- before :)
-
-
-## IRC, freenode, #hurd, 2013-09-03
-
- <_d3f> Hey guys, how did you get openvpn working on the Hurd? just curious
- as I saw it in the GHM video
- <_d3f> no one here who has a clue how to get *vpn working on the Hurd?
- <braunr> _d3f: youpi did it
- <braunr> i don't know the details
- <_d3f> okay, I will question him when I see him around, thx. Do you know if
- it was a lot of work to get the tun device working? Because I would like
- to use tinc on the Hurd.
- <braunr> _d3f: a bit but not that much either
- <_d3f> braunr: well, okay. Do you know if the source of his 'port' is
- online, I haven't found it :/
- <braunr> it should be soon
-
-
-## IRC, freenode, #hurd, 2013-09-04
-
- <_d3f> youpi: you are the guy who has brought openvpn to the hurd, right? I
- would like to know how you got the tun/tap thing working as I would like
- to use tinc on it. :)
- <youpi> _d3f: essentially no modification of openvpn iirc
- <youpi> just tell it to open the tun node created by pfinet
- <youpi> and read/write it
- <youpi> i.e. the existing generic code in place in openvpn
- <_d3f> I will have a look at it, somekind tinc builds with the linux
- specific device.c but I wasn't able to exchange keys. I will have a look
- at the device handling again and try to get the pfinet tun node used.
-
+OpenVPN can use pfinet's tun as it is, and be configured completely as joe user,
+as shown below. Note that the tun0 node name has to begin with "tun", so pfinet
+knows it's a tun.
+
+ $ mkdir -p $HOME/servers/socket
+ $ touch $HOME/servers/tun0
+ $ settrans -ca $HOME/servers/socket/2 /hurd/pfinet $HOME/servers/tun0 -a 10.0.0.1 -p 10.0.0.2
+ $ cat vpn.conf
+ client
+ dev tun
+ dev-node /home/samy/servers/tun0
+ ...
+ $ openvpn --config vpn.conf --verb 5
+ ...
+
+So we let openvpn running, and now we can make applications use the pfinet
+TCP/IP stack started above: the remap command below starts a new shell, where
+it redirects /servers/socket/2 (where the system TCP/IP stack resides) onto
+$HOME/servers/socket/2 (where the new TCP/IP stack resides).
+
+ $ remap /servers/socket/2 $HOME/servers/socket/2
+ $ wget www.gnu.org
+
+Ideally openvpn would be made to setup pfinet itself, but at least for now it
+can be configured by hand like that.
+
+It would probably be possible to make pfinet able to produce a tap too, would
+need some code.
## IRC, freenode, #hurd, 2013-09-07
@@ -98,3 +84,5 @@ Collection about stuff that is relevant for *virtualization* and *networking*.
<d3f> yeah I know, I talked to him as I am tring to get tinc working on the
Hurd (tinc builds by now). I will give him a shot about creating the
"tun" device
+
+tun has indeed nothing to do with devnode and netdde, it's pfinet which creates it, as documented above.
diff --git a/open_issues/wine.mdwn b/open_issues/wine.mdwn
index 842442f1..6d48fda0 100644
--- a/open_issues/wine.mdwn
+++ b/open_issues/wine.mdwn
@@ -1,5 +1,5 @@
-[[!meta copyright="Copyright © 2010, 2011, 2013, 2014 Free Software Foundation,
-Inc."]]
+[[!meta copyright="Copyright © 2010, 2011, 2013, 2014, 2015 Free Software
+Foundation, Inc."]]
[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
id="license" text="Permission is granted to copy, distribute and/or modify this
@@ -174,3 +174,9 @@ allocation. There is kernel support for this,* however.
<Andre_H> gnu_srs1: well, the stable branch is called stable because not
everything get's there :)7
<Andre_H> gnu_srs1: the PATH_MAX patch needs more thinking...
+
+## IRC, freenode, #hurd, 2015-02-09
+
+ <Andre_H> since Wine 1.7.28 it runs quite well on Gnu/Hurd - wiki.winehq.org/Hurd
+ <Andre_H> ( https://source.winehq.org/git/wine.git/commitdiff/6d50cfcac28f84e07777fc10874887356832102e )
+