diff options
Diffstat (limited to 'contributing.mdwn')
-rw-r--r-- | contributing.mdwn | 38 |
1 files changed, 26 insertions, 12 deletions
diff --git a/contributing.mdwn b/contributing.mdwn index 485bdd47..23eefdd0 100644 --- a/contributing.mdwn +++ b/contributing.mdwn @@ -1,5 +1,5 @@ [[!meta copyright="Copyright © 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, -2014 Free Software Foundation, Inc."]] +2014, 2015 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable id="license" text="Permission is granted to copy, distribute and/or modify this @@ -68,6 +68,15 @@ concepts|microkernel/mach/concepts]], [[Hurd's concepts|hurd/concepts]], the *[[hurd/critique]]*. Until you can understand and do the basic exercises listed there, you won't be able to significantly contribute to the Hurd. +You can also have a look at the +[starting guide talk](https://fosdem.org/2015/schedule/event/hurd/). + +In terms of building and hacking on software, the easiest way to avoid having to +understand the whole picture from the start is install the Debian distribution, +and patch over the Debian source code. Installing from upstream source is much +more complexe since you would need to know which piece fits where. Building and +installing patched packages is much more simple. + For more reading resources, please see these web pages, for example, [[Hurd_documentation|hurd/documentation]] and [[Mach_documentation|microkernel/mach/documentation]] for links to a bunch of @@ -80,7 +89,11 @@ Here is a list of small hacks, which can serve as entries into the Hurd code for people who would like to dive into the code but just lack a "somewhere to begin with". -* Some translators do not support [[hurd/fsysopts]]. +* Add `UTIME_NOW` and `UTIME_OMIT`. It is a matter of taking the BSD values, add the `#define`s to the proper header, and implement the support in `*_S_file_utimes` functions. Flávio Cruz is having a look. + See also [[!debbug 762677]]. +* cat /dev/null/ should fail with ENOTDIR, i.e. make libdiskfs's diskfs_S_dir_lookup properly pass the trailing / to translators (so that libtrivfs (which null is based on) trivfs_S_dir_lookup returns ENOTDIR). See also [[!debbug 785404]] +* Some translators do not support [[hurd/fsysopts]], i.e. support for the +file_get_fs_options and fsys_set_options RPCs. * Extend `device_read`/`device_write` into supporting > 2TiB disk sizes. * Make the Hurd [[hurd/console]]'s configuration use [[xkb layout/variant instead of keymap|hurd/console/discussion]]. * Add a [[futex kernel trap|microkernel/mach/gnumach/interface#futex]] to GNU Mach. @@ -93,15 +106,16 @@ which exposes the partitions of the disk image, using parted, and the parted-based storeio (`settrans -c foos1 /hurd/storeio -T typed part:1:file:/home/samy/tmp/foo`). This would be libnetfs-based. * Write [[virtio drivers for KVM|open_issues/virtio#KVM]]. -* Port valgrind. There is a whole -[[GSoC proposal|community/gsoc/project_ideas/valgrind ]] about this, but the -basic port could be small. -* Add `/proc/$pid/maps`. `vminfo` already has this kind of information, it's a matter of making procfs do the same. [[!GNU_Savannah_bug 32770]] * Move the [[mount/umount|open_issues/glibc#mount]] logic from `utils/{,u}mount.c` into [[glibc]]. * Fix [[`/proc/self`|hurd/translator/procfs/jkoenig/discussion#self]]. -Look at `[glibc]/hurd/lookup-retry.c` for how [`FS_RETRY_MAGICAL` +Look at `[glibc]/hurd/lookup-retry.c` for how [[`FS_RETRY_MAGICAL` lookups|hurd/interface/dir_lookup]] work. +* Add a tool to trace system calls, by using gnumach's Syscall-Emulation, see <http://www.gnu.org/software/hurd/gnumach-doc/Syscall-Emulation.html> +* Improve our [[FUSE library|hurd/libfuse]]. +* Add a relatime or lazytime option to ext2fs. +* Fix our [[open_issues/symlink_translator]]. +* Fix chmod on fifos: mkfifo foo ; sudo chmod g+w foo <a name="porting"></a> ## Porting Packages @@ -114,9 +128,10 @@ For guidelines, please have a look at the dedicated [[porting_page|hurd/porting] ### Debian GNU/Hurd -Along with the official Debian "wheezy" release (but not as an official Debian -release), in May 2013 the Debian GNU/Hurd team released [[Debian GNU/Hurd -2013|news/2013-05-debian_gnu_hurd_2013]]. +Along with the official Debian "jessie" release (but not as an +official Debian release), in April 2015 the [[Debian +GNU/Hurd|hurd/running/debian]] team released [[Debian GNU/Hurd +2015|news/2015-04-29-debian_gnu_hurd_2015]]. There is a goal of getting Debian GNU/Hurd into shape for a technology preview for integration as a proper Debian release candidate. @@ -127,7 +142,6 @@ packages, and are thus good candidates for porting, in order to increase archive coverage: * umount functionality in busybox -* ruby1.9.1 Here is a [[list of packages that need porting|hurd/running/debian/porting]]. @@ -169,7 +183,7 @@ I'll have to think about it some more. * Install qemu-kvm via your distros packages. * Download the [qemu image](http://people.debian.org/~sthibault/hurd-i386/debian-hurd.img.tar.gz): `wget http://people.debian.org/~sthibault/hurd-i386/debian-hurd.img.tar.gz` * Unpack it: `tar xf debian-hurd.img.tar.gz` -* Run it: `qemu-kvm -m 512 -no-kvm-irqchip -drive cache=writeback,index=0,media=disk,file=debian-hurd.img` # …irq… is a currently necessary fix due to some changes in Linux. Optionally use `--curses` to keep your keyboard layout. If need be modprobe kvm_amd, kvm intel and kvm to get kvm support (which is much, much faster). See also: [kvm FAQ](http://www.linux-kvm.org/page/FAQ). +* Run it: `qemu-kvm -m 512 -no-kvm-irqchip -drive cache=writeback,file=debian-hurd.img` # …irq… is a currently necessary fix due to some changes in Linux. Optionally use `--curses` to keep your keyboard layout. If need be modprobe kvm_amd, kvm intel and kvm to get kvm support (which is much, much faster). See also: [kvm FAQ](http://www.linux-kvm.org/page/FAQ). * login as root * `apt-get update` * `apt-get install -y git mercurial emacs vim` |