diff options
Diffstat (limited to 'debian')
34 files changed, 2869 insertions, 0 deletions
diff --git a/debian/README.Debian b/debian/README.Debian new file mode 100644 index 0000000..484893c --- /dev/null +++ b/debian/README.Debian @@ -0,0 +1,10 @@ +GNU Mach for Debian +------------------- + +This is the GNU version of the Mach microkernel, currently used as the +basis for the GNU Hurd. + +Let us know if you have hardware troubles. +Compiling a fresh kernel with minimal hardware support is recommended. + +GNU Hurd Maintainers <bug-hurd@gnu.org> diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..bc10fa1 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,892 @@ +gnumach (2:1.3.99.dfsg.git20120923-1) UNRELEASED; urgency=low + + * New upstream snapshot + - patches/10_cdromlock.patch: Remove, merged upstream + - patches/13_ide_dma.patch: Remove, merged upstream + - patches/24_pci_irq_fix.patch: Remove, merged upstream + - patches/70_dde.patch: Refresh. + * patches/60_bigmem.patch: Also set Xen to 2/2 memory model. + * patches/40_iopl_mem.patch: Remove + * control: Break xserver before 1.9.99.1. + + -- Samuel Thibault <sthibault@debian.org> Sat, 14 Jul 2012 15:59:33 +0200 + +gnumach (2:1.3.99.dfsg.git20120710-1) unstable; urgency=low + + * New upstream snaphsot + + -- Samuel Thibault <sthibault@debian.org> Tue, 10 Jul 2012 01:59:41 +0000 + +gnumach (2:1.3.99.dfsg.git20120610-1) unstable; urgency=low + + * New upstream snapshot. + * patches/12_version_suffix.patch: New patch to append suffix to Mach version. + * rules: + - Disable net, pcmcia and wireless groups + - Add version suffixes. + * control: + - Do not provide nic-modules, nic-pcmcia-modules, nic-wireless-modules + and pcmcia-modules any more. + - Break old hurd package versions, to provide smooth network driver + transition. + + -- Samuel Thibault <sthibault@debian.org> Sun, 10 Jun 2012 23:36:00 +0200 + +gnumach (2:1.3.99.dfsg.git20120505-1) unstable; urgency=low + + * New upstream snapshot. + * control: Bump Standards-Version to 3.9.3 (no changes). + * patches/50_initrd.patch: Refresh. + * patches/60_bigmem.patch: Also update the kernel/user addresses limit. + * patches/70_dde.patch: Fix erroneous prototype. + + -- Samuel Thibault <sthibault@debian.org> Sat, 05 May 2012 13:22:36 +0200 + +gnumach (2:1.3.99.dfsg.git20120219-1) unstable; urgency=low + + * New upstream snapshot. + * debian/control: + - Do not make gnumach-dbg depend on gnumach. + - Remove article in synopsis. + - Set Multi-Arch: foreign for gnumach-common. + * debian/rules: + - Add stamp files, and build-indep and build-arch targets. + - Pass -fno-omit-frame-pointer for -dbg builds, to fix kernel debugger + traces & co. + - Enable parallel build. + * debian/patches/70_dde.patch: Add experimental support for irq passing and + physical memory allocation for DDE. Also adds nonetdev boot parameter to + disable network device drivers. + + -- Samuel Thibault <sthibault@debian.org> Sun, 19 Feb 2012 00:32:41 +0000 + +gnumach (2:1.3.99.dfsg.git20111010-1) unstable; urgency=low + + * New upstream snapshot. + - debian/patches/50_initrd.patch: Refresh. + * debian/control: + - Do not make -dbg package depend on the non-dbg packages. + - Make gnumach-image-* packages depend on gnumach-common + (Closes: Bug#632445). + + -- Samuel Thibault <sthibault@debian.org> Mon, 10 Oct 2011 21:53:25 +0000 + +gnumach (2:1.3.99.dfsg.git20110805-1) unstable; urgency=low + + * New upstream snapshot. + * debian/control: build udebs on hurd-i386 only. + * debian/patches/13_ide_dma.patch: Do not stop DMA before reading its + status. + * debian/rules: Add prerm, preinst, postrm, postinst to -dbg kernels too, to + update grub list. + + -- Samuel Thibault <sthibault@debian.org> Fri, 05 Aug 2011 11:41:13 +0000 + +gnumach (2:1.3.99.dfsg.git20110609-1) unstable; urgency=low + + * New upstream snapshot + * Bump Standards-Version to 3.9.2 (no change needed) + + -- Samuel Thibault <sthibault@debian.org> Wed, 08 Jun 2011 22:50:30 +0000 + +gnumach (2:1.3.99.dfsg.git20110305-1) unstable; urgency=low + + [ Samuel Thibault ] + * New upstream snapshot + - debian/patches/50_initrd.patch: Refresh. + * debian/rules: Add rules to build Xen variants of gnumach. + * debian/source/options: Enable bz2 compression. + * debian/patches/60_bigmem.patch: Add patch to support almost up to 2GiB + memory. + * debian/rules: Rename /boot/gnumach* into + /boot/gnumach-1.3.99-{xen-,}486{,-dbg} + * debian/control: + - Rename gnumach{,-dbg} into gnumach-image-1.3.99-486{,-dbg} (except in + udebs). + - Add gnumach-image-1.3.99-xen-486{,-dbg} containing Xen variants of gnumach + - Add gnumach-common to contain msgids and info documentation shared by + gnumach-image-1.3.99 packages, which now depend on it and replace the + previous gnumach package. + - Add gnumach-image-{xen-,}486, which depend on + gnumach-image-1.3.99-{xen-,}486. + - Re-add gnumach{,-dbg} packages, which depend on gnumach-image-486 and + gnumach-image-1.3.99-486-dbg, make these packages break grub-pc versions + before the one which generate menu entries for all /boot/gnumach* files. + - Rename gnumach-udeb into kernel-image-1.3.99-486-di. + - Add kernel-image-1.3.99-xen-486-di. + - Use Package-Type instead of XC-Package-Type. + - Make gnumach packages break glibc versions before the one which can cope + with > 1GiB memory support. + - Fix upstream URL (Closes: Bug#604257). + * debian/rules: Apply package renames in $(pkg{,_xen,_udeb,_dbg,_xen_dbg). + * debian/gnumach*.{install,docs}: Rename accordingly. + * debian/patches/11_ignore_CSIn.patch: Ignore \E[6n emited by busybox. + * debian/gnumach-image.{preinst,postinst,prerm,postrm}: Add script to get + e.g. update-grub called. + + -- Samuel Thibault <sthibault@debian.org> Sat, 31 Jul 2010 17:35:20 +0200 + +gnumach (2:1.3.99.dfsg.git20100732-1) unstable; urgency=low + + [ Samuel Thibault ] + * New upstream snapshot. + * debian/control + - (gnumach-udeb): Add XC- prefix to Package-Type. Add Provides: + kernel-image, *-modules. + - Remove duplicate priority and section fields. + - Add ${misc:Depends}. + * debian/patches/40_iopl_mem.patch: Add patch, not enabled yet, to be used + instead of 40_iopl_mmap.patch when a new snapshot is taken. + * debian/patches/40_iopl_mmap.patch: Add a "mem" alias for the iopl device, + since that is what upstream provides. + * Now using Standards-Version 3.9.1 (no changes needed). + * debian/rules: Remove enable-sis900 as it's now the default. + * debian/patches/50_initrd.patch: New patch to add ramdisk support for d-i. + * debian/control: Remove Neal and Jeff from Uploaders (Closes: #565164). + + [ Guillem Jover ] + * Use any-i386 in binary package Architecture fields. + * Update Vcs fields to point to the new git repositories. + + -- Samuel Thibault <sthibault@debian.org> Sat, 31 Jul 2010 17:35:20 +0200 + +gnumach (2:1.3.99.dfsg.git20091128-1) unstable; urgency=low + + * New upstream git snapshot. + + [ Guillem Jover ] + * Update debian/copyright to point to the git repository. + * Sync with upstream: + - debian/patches/05_halt_on_panic_flag.patch: Remove, merged upstream. + - debian/patches/12_sis900.patch: Likewise. + - debian/patches/14_alloc_params.patch: Likewise. + - debian/patches/15_mem_obj_proxy.patch: Likewise. + - debian/patches/16_ide_multsect.patch: Likewise. + - debian/patches/20_xmm_support.patch: Likewise. + * Switch to source format “3.0 (quilt)”: + - Remove quilt from Build-Depends. + - Remove quilt.make include from debian/rules. + - Remove patch and unpatch targets from debian/rules. + - Remove now unneeded debian/README.source. + * Do not include ChangeLog.0*, they are not shipped upstream anymore. + * Remove Marcus Brinkmann from Uploaders. Closes: #503568 + + -- Guillem Jover <guillem@debian.org> Sat, 28 Nov 2009 19:14:15 +0100 + +gnumach (2:1.3.99.dfsg.cvs20090220-2) unstable; urgency=low + + [ Guillem Jover ] + * Change gnumach-dbg section to debug. + * Change source and gnumach section to kernel. + * Now using Standards-Version 3.8.3. + + [ Samuel Thibault ] + * debian/patches/14_alloc_params.patch: reserve 128MiB for virtual memory + space. Fixes boot with more than ~900MiB. + * debian/patches/20_mmx_support.patch: rename to 20_xmm_support.patch and + fix comment: the added support is XMM registers, not MMX. + * debian/control: Add myself as uploader. + + -- Guillem Jover <guillem@debian.org> Mon, 08 Jun 2009 22:23:13 +0200 + +gnumach (2:1.3.99.dfsg.cvs20090220-1) unstable; urgency=low + + * New upstream CVS snapshot. + - Do not panic in fpintr if we receive the interrupt twice in the same + thread. (Closes: #447036) + + [ Samuel Thibault ] + * Remove kern/mach_param.h patch from debian/patches/14_alloc_params.patch, + increase zone_map_size and maximum number of cached objects. + + [ Guillem Jover ] + * Switch to debhelper compatibility level 7. + * Use dh_prep instead of “dh_clean -k”. + * Remove XC- prefix from Package-Type field. + * Sync with upstream: + - debian/patches/00_clean_gfdl.patch: Refresh. + - debian/patches/05_halt_on_panic_flag.patch: Likewise. + - debian/patches/14_alloc_params.patch: Likewise. + - debian/patches/15_mem_obj_proxy.patch: Likewise. + - debian/patches/20_mmx_support.patch: Likewise. + + -- Guillem Jover <guillem@debian.org> Fri, 20 Feb 2009 03:27:59 +0200 + +gnumach (2:1.3.99.dfsg.cvs20080708-1) unstable; urgency=low + + * New upstream CVS snapshot. + - Fix zalloc alignment support, and thus alignment of FPU save area. + (Closes: #440068) + - Enable multicast for IPv6. + - Enable Bus Mastering on triton chipsets. + - Fix gcc-4.3 non-inlining. (Closes: #474902) + - Fix direction flag on syscall entry. (Closes: #469566) + - Fix initialization of RTL8139. (Closes: #469566) + + [ Samuel Thibault ] + * Append more agressive caching parameter to + debian/patches/14_alloc_params.patch. + * New patch to enable IDE multiple sector I/O when the drive can do it. + - debian/patches/16_ide_multsect.patch + * Clean debian/tmp-dbg. + + [ Guillem Jover ] + * Add Homepage field. + * Add Vcs-Browser and Vcs-Svn fields. + * Remove repository information from debian/copyright as it is now on + debian/control. + * Refer to GPL-2 from common-licenses instead of just GPL. + * Add a README.source. + * Now using Standards-Version 3.8.0. + * Refresh patches with -pab. + * Remove DPATCHLEVEL variable from patches. + * Change source and binary packages from Section base to admin. + * Mangle the Debian version in the watch file. + * Sync with upstream: + - debian/patches/00_clean_gfdl.patch: Refresh. + - debian/patches/05_halt_on_panic_flag.patch: Likewise. + - debian/patches/13_ide_dma.patch: Likewise. + - debian/patches/14_alloc_params.patch: Likewise. + * Use $(filter ...) instead of $(findstring ...) to extract space separated + options from DEB_BUILD_OPTIONS in debian/rules. + * Merge check targets into build targets. + * Clean up debian/rules: + - Run autoreconf on-demand, which fixes a FTBFS when built twice in a + row. (Closes: #424353) + - Support parallel builds by moving 'patch' dependency from + the build to a new pre-patch-* targets that serializes configuration. + * Properly clean up autogenerated cruft. + * Add Build-Depends on autoconf and automake now that we call autoreconf at + build time. + + -- Guillem Jover <guillem@debian.org> Tue, 08 Jul 2008 16:54:06 +0300 + +gnumach (2:1.3.99.dfsg.cvs20070809-1) unstable; urgency=low + + * New upstream CVS snapshot. + - debian/patches/90_autoconf_autogen.patch: Regenerated. + * Add an autoregen target to ease regenerating the autoconf patch. + * Use binary:Version instead of the deprecated Source-Version substvar. + * Do not use configure file stamps, use config.status instead. + + -- Guillem Jover <guillem@debian.org> Thu, 09 Aug 2007 01:45:22 +0300 + +gnumach (2:1.3.99.dfsg.cvs20070526-1) unstable; urgency=low + + * New upstream CVS snapshot. + - debian/patches/41_io_unlock_ioremove.patch: Removed, fixed upstream. + - debian/patches/42_disable_ioperm.patch: Likewise. + - debian/patches/43_debvice_port_fix.patch: Likewise. + - debian/patches/44_more_ports.patch: Likewise. + - debian/patches/45_io_per_task.patch: Likewise. + - debian/patches/46_io_device.patch: Likewise. + - debian/patches/20_mmx_support.patch: Sync. + - debian/patches/90_autoconf_autogen.patch: Regenerated. + * Temporarily restore support for memory mapping through the iopl device, + so that stuff like X can work again. (Closes: #421135) + - debian/patches/40_iopl_mmap.patch: New file. + Thanks to Samuel Thibault <samuel.thibault@labri.fr>. + + -- Guillem Jover <guillem@debian.org> Sat, 26 May 2007 10:01:54 +0300 + +gnumach (2:1.3.99.dfsg.cvs20070405-1) unstable; urgency=low + + * New upstream CVS snapshot. + - debian/patches/44_more_ports.patch: Sync. + - debian/patches/45_io_per_task.patch: Likewise. + - debian/patches/05_halt_on_panic_flag.patch + - debian/patches/12_sis900.patch: Unfuzzy. + - debian/patches/13_ide_dma.patch: Likewise. + - debian/patches/14_alloc_params.patch: Likewise. + - debian/patches/45_io_per_task.patch: Likewise. + - debian/patches/46_io_device.patch: Likewise. + - debian/patches/90_autoconf_autogen.patch: Regenerated. + + -- Guillem Jover <guillem@debian.org> Thu, 05 Apr 2007 07:33:38 +0300 + +gnumach (2:1.3.99.dfsg.cvs20070306-1) unstable; urgency=low + + * New upstream CVS snapshot. + - Protect the net filter code from being interrupted. + (Closes: #396741, #413185) + Thanks to Samuel Thibault <samuel.thibault@ens-lyon.org>. + - debian/patches/00_clean_gfdl.patch: Sync. + - debian/patches/90_autoconf_autogen.patch: Regenerated. + * Fixed MMX register support. (Closes: #413177) + - debian/patches/20_mmx_support.patch: Updated. + Thanks to Samuel Thibault <samuel.thibault@ens-lyon.org>. + * Run the test suite after build. (Closes: #390872) + + -- Guillem Jover <guillem@debian.org> Tue, 6 Mar 2007 07:51:30 +0200 + +gnumach (2:1.3.99.dfsg.cvs20070211-1) unstable; urgency=low + + * New upstream CVS snapshot. + - debian/patches/22_scsi_inf_loop.patch: Removed, merged upstream. + - debian/patches/47_pcmcia_isa.patch: Likewise. + - debian/patches/10_cdromlock.patch: Sync. + - debian/patches/12_sis900.patch: Likewise. + - debian/patches/15_mem_obj_proxy.patch: Likewise. + - debian/patches/90_autoconf_autogen.patch: Regenerated. + * Add MMX register support. + - debian/patches/20_mmx_support.patch: New file. + Thanks to Samuel Thibault <samuel.thibault@ens-lyon.org>. + + -- Guillem Jover <guillem@debian.org> Sun, 11 Feb 2007 16:11:00 +0200 + +gnumach (2:1.3.99.dfsg.1-1) unstable; urgency=low + + * New upstream CVS snapshot. + - debian/patches/01_gcc-4.1.patch: Removed, merged upstream. + - debian/patches/00_clean_gfdl.patch: Sync. + - debian/patches/05_halt_on_panic_flag.patch: Likewise. + - debian/patches/10_cdromlock.patch: Likewise. + - debian/patches/12_sis900.patch: Likewise. + - debian/patches/13_ide_dma.patch: Likewise. + - debian/patches/14_alloc_params.patch: Likewise. + - debian/patches/15_mem_obj_proxy.patch: Likewise. + - debian/patches/41_io_unlock_ioremove.patch: Likewise. + - debian/patches/42_disable_ioperm.patch: Likewise. + - debian/patches/43_debvice_port_fix.patch: Likewise. + - debian/patches/44_more_ports.patch: Likewise. + - debian/patches/45_io_per_task.patch: Likewise. + - debian/patches/46_io_device.patch: Likewise. + - debian/patches/47_pcmcia_isa.patch: Disabled, merged upstream. + - debian/patches/90_autoconf_autogen.patch: Regenerated. + - debian/patches/61_vm_resident-zoned.patch: Disable for now, it's + causing problems with current applied patches in CVS. + * Adapt to the new automakified build system: + - New D and D_DBG variables pointing to the package destination dirs. + - Remove debian/rules.options, now unneeded with the default configure + options, except for '--enable-sis900' which is not enabled by default. + - Pass --prefix and --exec-prefix to configure. + - Use DESTDIR instead of passing the prefix and exec_prefix variables. + - Call install instead of install-kernel and install-headers for the + default build. + - Call install-exec instead of install-kernel for the -dbg build. + - Use dh_install to install files from D and D_DBG into the proper + package dirs. + - debian/gnumach-dbg.install: New file. + - debian/gnumach-dev.install: Likewise. + - debian/gnumach-udeb.install: Likewise. + - debian/gnumach.install: Likewise. Install the msgids. (Closes: #365828) + * Completely removed the doc/ directory. + - Document the removal of the non-free GFDL manual in debian/copyright. + - Do not try to build the now non-existent doc/ directory. + - Disable dh_installinfo. + * Cleanup debian/rules file: + - Remove the manual cruft-removal line from the clean target. + - Remove the stamp file for the -dbg build. + - Merge the install-gnumach-dbg and install-gnumach targets into install. + + -- Guillem Jover <guillem@debian.org> Tue, 14 Nov 2006 05:11:48 +0200 + +gnumach (1:20060826.dfsg.1-1) unstable; urgency=low + + * New upstream CVS snapshot. + - Disable wavelan driver as it does not build anymore with the updated + Linux header files. + - Make gnumach-dbg Depend on gnumach with the exact same version, due + to an interface change in the networking code, to drag it as well. + - debian/patches/05_halt_on_panic_flag.patch: Sync. + - debian/patches/10_cdromlock.patch: Likewise. + - debian/patches/12_sis900.patch: Likewise. + - debian/patches/13_ide_dma.patch: Likewise. + - debian/patches/61_vm_resident-zoned.patch: Likewise. + - debian/patches/90_autoconf_autogen.patch: Likewise. + - debian/patches/23_ps2_mouse.patch: Removed, integrated upstream. + - debian/patches/50_mem_limit.patch: Likewise. + * Switch to quilt: + - debian/control: Add quilt (>= 0.40) to Build-Depends. + - debian/patches/series: New file. + - debian/patch.mk: Removed. + - debian/rules: Include '/usr/share/quilt/quilt.make' instead of + 'debian/patch.mk'. Change clean to a single colon target and make it + depend on patch. + * Now using Standards-Version 3.7.2 (no changes needed). + * Fix an unused field optimization with gcc 4.1 which was causing the + descriptor initialization to do it partially. + - debian/patches/01_gcc-4.1.patch: New file. + Thanks to Samuel Thibault <samuel.thibault@ens-lyon.org>. + * Enable PCMCIA ISA support. + - debian/patches/47_pcmcia_isa.patch: New file. + Thanks to Stefan Siegl <stesie@brokenpipe.de>. + * Enable all PCMCIA options. + + -- Guillem Jover <guillem@debian.org> Thu, 31 Aug 2006 04:43:57 +0300 + +gnumach (1:20060408.dfsg.1-1) unstable; urgency=low + + * New upstream CVS snapshot. + - Fix I/O problem with Hurd console and X. + + -- Guillem Jover <guillem@debian.org> Sat, 8 Apr 2006 19:35:22 +0300 + +gnumach (1:20060402.dfsg.1-1) unstable; urgency=low + + * New upstream CVS snapshot. + - Remove GFDL license and the manual licensed with it. + - debian/patches/00_clean_gfdl.patch: Do not build the manual. + - debian/patches/11_nic_update.patch: Removed, integrated upstream. + - debian/patches/16_net_apricot_stack_of.patch: Likewise. + - debian/patches/17_net_gcc_4.0.patch: Likewise. + - debian/patches/20_ide_disable_irqs.patch: Likewise. + - debian/patches/21_pata_off_by_one_irq.patch: Likewise. + - debian/patches/31_tls_ldt.patch: Likewise. + - debian/patches/40_user-tss.patch: Likewise. + - debian/patches/00_build_make_beta.patch: Removed, fixed upstream + - debian/patches/12_sis900.patch: Sync. + - debian/patches/13_ide_dma.patch: Likewise. + - debian/patches/15_mem_obj_proxy.patch: Likewise. + - debian/patches/41_io_unlock_ioremove.patch: Likewise. + - debian/patches/42_disable_ioperm.patch: Likewise. + - debian/patches/44_more_ports.patch: Likewise. + - debian/patches/45_io_per_task.patch: Likewise. + - debian/patches/46_io_device.patch: Likewise. + - debian/patches/50_mem_limit.patch: Likewise. + - debian/patches/90_autoconf_autogen.patch: Likewise. + * Fix -H kernel command line argument to halt on panic. (Closes: #184624) + - debian/patches/05_halt_on_panic_flag.patch: New file. + Thanks to Soeren D. Schulze <soeren.d.schulze@gmx.de>. + * Do not allow PCI IRQ's higher than 16. + - debian/patches/patches/24_pci_irq_fix.patch: New file. + Thanks to Gianluca Guida <glguida@gmail.com>. + * Make the Linux device drivers use dynamic memory allocation via the + glue code. + - debian/patches/61_vm_resident-zoned.patch: New file. + Thanks to Gianluca Guida <glguida@gmail.com>. + * Build with -fno-strict-aliasing. + * Remove Build-Depend on the new POSIX compliant make, it should work on + old versions as well now. + * Remove the no longer needed texinfo Buil-Depends, and comment out the + mach.info from debian/gnumach.info. + + -- Guillem Jover <guillem@debian.org> Sun, 2 Apr 2006 17:30:25 +0300 + +gnumach (1:20050801-4) unstable; urgency=low + + * Actually enable the io access disabling patch. + - debian/patches/42_disable_ioperm.disabled: Rename to ... + - debian/patches/42_disable_ioperm.patch: ... this. + * Check for correct return code from pcibios in de4x5 SCSI driver, which + was making it loop infinitely if probed. + - debian/patches/22_scsi_inf_loop.patch: New file. + Thanks to Samuel Thibault <samuel.thibault@ens-lyon.org>. + * Fix PS2 mouse command drivers reception, affecting among others its + correct detection. + - debian/patches/23_ps2_mouse.patch: New file. + Thanks to Samuel Thibault <samuel.thibault@ens-lyon.org>. + * Build-Depend on the new POSIX compliant make. + + -- Guillem Jover <guillem@debian.org> Mon, 16 Jan 2006 05:40:33 +0200 + +gnumach (1:20050801-3) unstable; urgency=low + + * Fix build failure with latest make 3.81 beta and the new POSIX behaviour + related to new line vs shell command. + - debian/patches/00_build_make_beta.patch: New file. + Thanks to Alfred M. Szmidt <ams@gnu.org>. + * Added ChangeLog entries. + - debian/patches/13_ide_dma.patch: Modify + - debian/patches/14_alloc_params.patch: Likewise. + * Fix io port access. (Closes: #46709) + - debian/patches/40_user-tss.patch: New file. + - debian/patches/41_io_unlock_ioremove.patch: Likewise. + - debian/patches/42_disable_ioperm.disabled: Likewise. + - debian/patches/43_debvice_port_fix.patch: Likewise. + - debian/patches/44_more_ports.patch: Likewise. + - debian/patches/45_io_per_task.patch: Likewise. + - debian/patches/46_io_device.patch: Likewise. + Thanks to Samuel Thibault <samuel.thibault@ens-lyon.org>. + * Fix memory limit, that was causing panics when having roughly more than + 768 MiB of physical memory. (Closes: #226609) + - debian/patches/50_mem_limit.patch: New file. + Thanks to Samuel Thibault <samuel.thibault@ens-lyon.org>. + + -- Guillem Jover <guillem@debian.org> Thu, 12 Jan 2006 00:54:05 +0200 + +gnumach (1:20050801-2) unstable; urgency=low + + * Added a watch file. + * Fix segmentation fault on boot. The apricot net driver was trashing the + stack when reading the MAC address from the io port. (Closes: #340389) + - debian/patches/16_net_apricot_stack_of.patch: New file. + Thanks to Sergio Lopez <koro@sinrega.org>. + * Fix invalid lvalue errors with gcc-4.0 in ne2k-pci driver. + - debian/patches/11_nic_update.patch: Split into ... + - debian/pacthes/17_net_gcc_4.0.patch: ... here. + Thanks to Thomas Schwinge <tschwinge@gnu.org>. + + -- Guillem Jover <guillem@debian.org> Mon, 28 Nov 2005 03:46:36 +0200 + +gnumach (1:20050801-1) unstable; urgency=low + + * New upstream CVS snapshot. + - debian/patches/00_autoconf_update.patch: Remove, integrated upstream. + - debian/patches/11_nic_update.patch: Rediff. + - debian/patches/90_autoconf_autogen.patch: Regenerate. + * No need to rename Drivers.in to configure.ac anymore. + * Add DPATCHLEVEL and ChangeLog entry. + - debian/patches/12_sis900.patch: Update. + * Disable IDE interrupts when the driver requests that through + request_irq(). + - debian/patches/20_ide_disable_irqs.patch: New file. + Thanks to Samuel Thibault <samuel.thibault@ens-lyon.org>. + * Fix an off-by-one bug in the PATA probe function. + - debian/patches/21_pata_off_by_one_irq.patch: New file. + Thanks to Sergio Lopez <koro@sinrega.org>. + * Set correct values for %gs and %fs when entering kernel mode. Make sure + to always copy the master LDT when the user does not have a modified one. + - debian/patches/31_tls_ldt.patch: New file. + Thanks to Jeroen Dekkers <jeroen@dekkers.cx>. + * Now using Standards-Version 3.6.2 (no changes needed). + * Wrap lines in debian/control fields (knowingly breaking policy). + * Upgrade to debhelper compat version 5. + * Update FSF's address. + + -- Guillem Jover <guillem@debian.org> Thu, 10 Nov 2005 06:01:36 +0200 + +gnumach (1:20050501-4) unstable; urgency=low + + * Add proxy memory objets. + - debian/patches/15_mem_obj_proxy.patch. + Thanks to Marcus Brinkmann <marcus@gnu.org>. + + -- Guillem Jover <guillem@debian.org> Wed, 8 Jun 2005 02:01:42 +0300 + +gnumach (1:20050501-3) unstable; urgency=low + + * Provide a udeb package. + - Depend on debhelper >= 4.2. + * Cleaned debian/rules: + - Merge install-gnumach-dev target with install-gnumach. + - Add PHONY targets. + - Remove unused all target. + + -- Guillem Jover <guillem@debian.org> Thu, 2 Jun 2005 22:14:40 +0300 + +gnumach (1:20050501-2) unstable; urgency=low + + * Add a system stabilizer patch. + - debian/patches/14_alloc_params.patch. + Thanks to Neal H. Walfield <neal@cs.uml.edu>. + * Reverse the meaning of --enable-ide-forcedma. + - debian/patches/13_ide_dma.patch. + Thanks to Sergio López <koro@menteslibres.org> for noticing. + + -- Guillem Jover <guillem@debian.org> Sat, 14 May 2005 20:42:29 +0300 + +gnumach (1:20050501-1) unstable; urgency=low + + * New upstream CVS snapshot. + - debian/patches/12_fixes_gcc-3.4.patch: Remove upstream integrated patch. + - debian/patches/14_disable_fpe.patch: Likewise. + - debian/patches/15_disable_qlogic_firmware.patch: Likewise. + - debian/patches/16_enable_debug.patch: Likewise. + - debian/patches/17_fix_double_free.patch: Likewise. + - debian/patches/18_linux_printk_buffer_overrun.patch: Likewise. + - debian/patches/19_cpu_detect.patch: Likewise. + - debian/patches/20_glue_block_assert.patch: Likewise. + - debian/patches/10_cdromlock.patch: Rediff. + - debian/patches/90_autoconf_autogen.patch: Regenerate. + * Add support for SiS 900 NIC. + - debian/patches/12_sis900.patch: New file. + Thanks to Andreas B. Mundt <andi.mundt@web.de>. + * Move configure drivers list to debian/rules.options. + + -- Guillem Jover <guillem@debian.org> Sun, 1 May 2005 20:29:08 +0300 + +gnumach (1:20040915.dfsg.1-2) unstable; urgency=low + + * Fix a typo in natsemi driver enable command. (Closes: #293950) + Thanks to Regis Boudin <regis.boudin@gmail.com>. + * Sync patches with latest ones sent to upstream. + * Remove leftover assert on the block glue code. + * Fix Subversion repository address. + + -- Guillem Jover <guillem@debian.org> Thu, 10 Feb 2005 06:19:15 +0100 + +gnumach (1:20040915.dfsg.1-1) unstable; urgency=low + + * Repackage upstream source to remove binary only data. (Closes: #252323) + - i386/i386/fpe.b: Remove binary without source. + - i386/i386/fpe.b_elf: Likewise. + - linux/src/drivers/scsi/qlogicisp_asm.c: Likewise. + * Disable floating point emulation usage. + * Disable qlogicisp firmware loading. + * Change "ifdef DEBUG" to "ifndef NDEBUG" for asserts and other low + footprint debugging stuff, so building with asserts enabled by default. + * Fix double free and memory loss probing partition table. + Thanks to Neal H. Walfield <neal@cs.uml.edu>. + * Fix possible buffer overrun on linux printk. + Thanks to Neal H. Walfield <neal@cs.uml.edu>. + * Fix cpu detection code. + * Do not use stamp files for build targets. + + -- Guillem Jover <guillem@debian.org> Mon, 22 Nov 2004 04:50:50 +0100 + +gnumach (1:20040915-1) unstable; urgency=low + + * New upstream CVS snapshot. + * Changed Maintainer address. + * Added former implicit maintainers to Uploaders. + * Added myself to Uploaders. + * Cleaned and updated debian/copyright file. + * Honour DEB_BUILD_OPTIONS. + * Split patches into debian/patches/. + * Allow to build natively on non GNU/Hurd systems. + * Enable i386, kfreebsd-i386 and knetbsd-i386 on all packages. + * Move gnumach-dev to binary-arch in debian/rules. + * Switched to debhelper. + * Now using Standards-Version 3.6.1. + * Update autoconf. + Based on a patch by Neal H. Walfield <neal@cs.uml.edu>, thanks. + * Update NICs from Linux. + Thanks to Alfred M. Szmidt <ams@kemisten.nu> and + Arief M. Utama <arief_mulya@yahoo.com>. + * Add newer IDE DMA support. + Thanks to Sergio López <koro@menteslibres.org>. + * Fix build failures for gcc-3.4. + + -- Guillem Jover <guillem@debian.org> Mon, 25 Oct 2004 09:53:30 +0200 + +gnumach (1:20040229-1) unstable; urgency=low + + * Update to CVS 20040229. + * debian/control: Add texinfo to build dependencies. + * debian/control: Add myself as uploader. + * Patches applied to CVS code: cdromlock. + + -- Marcus Brinkmann <brinkmd@debian.org> Sun, 29 Feb 2004 21:43:12 +0200 + +gnumach (1:20020421-1) unstable; urgency=low + + * Update to CVS 20020421. + * Patches applied to CVS code: cdromlock. + + -- Marcus Brinkmann <brinkmd@debian.org> Sun, 21 Apr 2002 18:53:13 +0200 + +gnumach (1:20011013-1) unstable; urgency=low + + * Update to CVS 20011013. + * Patches applied to CVS code: cdromlock. + + -- Marcus Brinkmann <brinkmd@debian.org> Sat, 13 Oct 2001 00:21:15 +0200 + +gnumach (1:20011005-2) unstable; urgency=low + + * Update to CVS 20011005. + * Patches applied to CVS code: cdromlock. + + -- Marcus Brinkmann <brinkmd@debian.org> Fri, 5 Oct 2001 21:14:51 +0200 + +gnumach (1:20010918-1) unstable; urgency=low + + * Update to CVS 2001918. + * Patches applied to CVS code: cdromlock. + + -- Marcus Brinkmann <brinkmd@debian.org> Tue, 18 Sep 2001 23:15:17 +0200 + +gnumach (1:20010818-1) unstable; urgency=low + + * Update to CVS 20010718. + * Patches applied to CVS code: cdromlock. + The other patches are in CVS now. + + * Wading through the bug list, there are some old bugs + fixed long ago, closes: #37954, #47948, #85302, #45792 + * debian/rules: Make it build via direct invocation, submitted + by Robert Bihlmeyer, closes: #101697. + + * control: New package gnumach-dbg. This kernel is not stripped and includes the + kernel-level debugger. + * debian/rules: Build this package. + + -- Marcus Brinkmann <brinkmd@debian.de> Sat, 18 Aug 2001 02:15:06 +0200 + +gnumach (1:20010718-1) unstable; urgency=low + + * Update to CVS 20010718. + * Patches applied to CVS code: cdromlock, color, kbd_enqueu. + + -- Marcus Brinkmann <brinkmd@debian.org> Wed, 18 Jul 2001 22:10:20 +0200 + +gnumach (1:1.2-11) unstable; urgency=low + + * debian/rules (stamp-configure): Add ncr53c8xx driver. + * Update to CVS 20010528. + * Patches applied to CVS code: cdromlock, color, kbd_enqueu. + + -- Marcus Brinkmann <brinkmd@debian.org> Sun, 27 May 2001 14:14:12 +0200 + +gnumach (1:1.2-10) unstable; urgency=low + + * debian/rules (stamp-configure): Disable eatadma driver, which + prevents booting on some AMD K7 motherboards. Reported by + Robert Bihlmeyer <robbe@orcus.priv.at>. + * Update to CVS 20010429, which contains support for high baud rates + (B57600, B115200). + * Patches applied to CVS code: cdromlock, color, kbd_enqueu. + + -- Marcus Brinkmann <brinkmd@debian.org> Sun, 29 Apr 2001 21:41:34 +0200 + +gnumach (1:1.2-9) unstable; urgency=low + + * Update to CVS 20010111, which contains a new interface for + block devices with a large number of blocks. + + -- Marcus Brinkmann <brinkmd@debian.org> Thu, 11 Jan 2001 23:45:49 +0100 + +gnumach (1:1.2-8) unstable; urgency=low + + * Applied patch by Alexey Dejneka <adejneka@comail.ru> to fix CD ROM + locking problem. + * debian/control: Add mig and sharutils to list of build dependencies + (sharutils for uudecode for fpu emu), closes: #74794. + * linux/src/drivers/net/tulip.c: Update from Linux 2.2.17, thanks + Jason Henry Parker <jasonp@uq.net.au> + + -- Marcus Brinkmann <brinkmd@debian.org> Sun, 26 Nov 2000 03:46:08 +0100 + +gnumach (1:1.2-7) unstable; urgency=low + + * Update to CVS 20000929, which contains a fix for comX. + * debian/rules: Drop --enable-lpr, which doesn't work. + Drop --enable-com, which is already enforced. + + -- Marcus Brinkmann <brinkmd@debian.org> Fri, 29 Sep 2000 20:24:54 +0200 + +gnumach (1:1.2-5) unstable; urgency=low + + * Update to CVS 20000817, which contains a fix for + linux/dev/glue/block.c. + + -- Marcus Brinkmann <brinkmd@debian.org> Thu, 17 Aug 2000 03:22:30 +0200 + +gnumach (1:1.2-4) unstable; urgency=low + + * Add color support to gnumach. Set TERM to mach-color to get the full + effect. Thanks to Juli-Manel Merino Vidal <jmmv@mail.com> for working + out the mapping between ANSI color codes and the bits to poke into the + attribute. + + -- Marcus Brinkmann <brinkmd@debian.org> Tue, 8 Aug 2000 21:00:50 +0200 + +gnumach (1:1.2-3) unstable; urgency=low + + * Snapshot from CVS 20000703. + * i386/i386at/kd.c: Receive 0xE0 scan codes (patch by Kalle Olavi Niemitalo). + * Patch to get it compile with gcc-2.95.1 or newer + ( by "Weil, Stefan 3732 EPE-24" <Stefan.Weil@de.heidelberg.com> + and Igor Khavkine <i_khavki@alcor.concordia.ca>) + + -- Marcus Brinkmann <brinkmd@debian.org> Mon, 3 Jul 2000 21:05:42 +0200 + +gnumach (1:1.2-2) unstable; urgency=low + + * Snapshot from CVS 19990907. + * Reenable all network interfaces, because the problem is fixed. + * Gzip gnumach binary. + + -- Marcus Brinkmann <brinkmd@debian.org> Wed, 8 Sep 1999 00:15:39 +0200 + +gnumach (1:1.2-1) unstable; urgency=low + + * Snapshot from CVS 19990725. + * Start from official 1.2 release. + * Remove some network card drivers that seems to have no autodetection in + order to get a maximum set of cards enabled that allows GNU Mach to detect + at least one. + + -- Marcus Brinkmann <brinkmd@debian.org> Mon, 26 Jul 1999 01:31:31 +0200 + +gnumach (1:1.1.92-5) unstable; urgency=low + + * Snapshot from CVS 19990616. + * Marks dummy network driver still there. + + -- Marcus Brinkmann <brinkmd@debian.org> Thu, 17 Jun 1999 16:53:50 +0200 + +gnumach (1:1.1.92-4) unstable; urgency=low + + * Snapshot from CVS 19990602. + * Marks dummy network driver still there. + * Replaced linux/dev/drivers/block/genhd.c to avoid a bug. + + -- Marcus Brinkmann <brinkmd@debian.org> Sat, 5 Jun 1999 00:59:43 +0200 + +gnumach (1:1.1.92-2) unstable; urgency=low + + * Snapshot from CVS 19990524. + * Applied Marks dummy network driver. + * Enabled thousands more devices. + + -- Marcus Brinkmann <brinkmd@debian.org> Mon, 24 May 1999 18:00:19 +0200 + +gnumach (1:1.1.92-1) unstable; urgency=low + + * Snapshot from CVS 19990507. + + -- Marcus Brinkmann <brinkmd@debian.org> Fri, 7 May 1999 20:46:06 +0200 + +gnumach (1:1.1.90-2) unstable; urgency=low + + * Fix package administration information to reflect that maintainership + has been transferred to bug-hurd@gnu.org. + * Merge a few configuration fixes from Marcus Brinkmann. + * Install include files into /usr/include, for the benefit of people + without the /usr symlink. + + -- Gordon Matzigkeit <bug-hurd@gnu.org> Wed, 17 Feb 1999 16:50:54 -0600 + +gnumach (1:1.1.90-1) unstable; urgency=low + + * New version from OKUJI Yoshinori. + * Use DEB_{BUILD,HOST}_GNU_TYPE, in accordance with Marcus's new + cross-build proposal. + + -- Gordon Matzigkeit <gord@debian.org> Tue, 11 Feb 1999 22:14:01 -0600 + +gnumach (19990116-1) unstable; urgency=low + + * New version from OKUJI Yoshinori. + * Added kmsg. + + -- Marcus Brinkmann <brinkmd@debian.org> Mon, 18 Jan 1999 17:11:58 +0100 + +gnumach (19981118-2) unstable; urgency=low + + * Split into gnumach and gnumach-dev. + * Added keyboard patch by Tudor Hulubei <tudor@cs.unh.edu> to fix some + keybord issues. + * Bumped Standards: version to 2.5.0.0. + + -- Marcus Brinkmann <brinkmd@debian.org> Sun, 3 Jan 1999 13:53:28 +0100 + +gnumach (19981118-1) unstable; urgency=low + + * New version from OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>. + This is not a new upstream version, but includes the Linux 2.0.36 driver. + * Strip the kernel. + + -- Marcus Brinkmann <brinkmd@debian.org> Sat, 19 Dec 1998 05:27:30 +0100 + +gnumach (19981025-1) unstable; urgency=low + + * New upstream snapshot. + + -- Marcus Brinkmann <brinkmd@debian.org> Sat, 7 Nov 1998 18:56:53 +0100 + +gnumach (1.1.3-2) unstable; urgency=low + + * Added CPU_TYPE_{I486,PENTIUM,PENTIUMPRO,POWERPC} to + ./include/mach/machine.h. This is needed for latest hurd release. + * Changed description (thank you, Santiagio). + + -- Marcus Brinkmann <brinkmd@debian.org> Sat, 1 Aug 1998 21:33:31 +0200 + +gnumach (1.1.3-1) unstable; urgency=low + + * Initial Version. + + -- Marcus Brinkmann <brinkmd@debian.org> Sat, 1 Aug 1998 21:33:31 +0200 diff --git a/debian/compat b/debian/compat new file mode 100644 index 0000000..7f8f011 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +7 diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..66c3c13 --- /dev/null +++ b/debian/control @@ -0,0 +1,136 @@ +Source: gnumach +Section: kernel +Priority: optional +Maintainer: GNU Hurd Maintainers <debian-hurd@lists.debian.org> +Uploaders: Guillem Jover <guillem@debian.org>, + Samuel Thibault <sthibault@debian.org> +Homepage: http://www.gnu.org/software/hurd/microkernel/mach/gnumach.html +Vcs-Browser: http://git.debian.org/?p=pkg-hurd/gnumach.git +Vcs-Git: git://git.debian.org/pkg-hurd/gnumach.git +Build-Depends: debhelper (>= 7), mig, sharutils, + autoconf, automake +Standards-Version: 3.9.3 + +Package: gnumach +Architecture: any-i386 +Depends: ${misc:Depends}, gnumach-image-1-486 +Breaks: grub-pc (<< 1.98+20100527-1) +Description: Dummy transition package for gnumach-image-* + This is a dummy package to ease the transition to gnumach-image-* + package names. It can be purged safely after upgrade. + +Package: gnumach-dbg +Section: debug +Priority: extra +Architecture: any-i386 +Depends: ${misc:Depends}, gnumach-image-1.3.99-486-dbg +Breaks: grub-pc (<< 1.98+20100527-1) +Description: Dummy transition package for gnumach-image-*-dbg + This is a dummy package to ease the transition to gnumach-image-*dbg + package names. It can be purged safely after upgrade. + +Package: gnumach-image-1-486 +Architecture: any-i386 +Depends: ${misc:Depends}, gnumach-image-1.3.99-486 +Description: GNU version of the Mach microkernel + This package depends on the latest GNU Mach kernel for use on PCs + with a 486, Pentium or compatible processor. + +Package: gnumach-image-1-xen-486 +Architecture: any-i386 +Depends: ${misc:Depends}, gnumach-image-1.3.99-xen-486 +Description: GNU version of the Mach microkernel + This package depends on the latest GNU Mach kernel for use on PCs + with a 486, Pentium or compatible processor. + . + This kernel is for use in unprivileged (domU) Xen domains. + +Package: gnumach-image-1.3.99-486 +Architecture: any-i386 +Depends: ${misc:Depends}, gnumach-common +Provides: gnumach-image +Breaks: libc0.3 (<< 2.10.1-3), hurd (<< 20120520-1), xserver-xorg-core (<< 2:1.9.99.1~) +Description: GNU version of the Mach microkernel + This is the Utah Mach microkernel used by the Hurd. + +Package: gnumach-image-1.3.99-xen-486 +Architecture: any-i386 +Depends: ${misc:Depends}, gnumach-common +Provides: gnumach-image +Breaks: libc0.3 (<< 2.10.1-3), hurd (<< 20120520-1) +Description: GNU version of the Mach microkernel for Xen + This is the Utah Mach microkernel used by the Hurd. + . + The version in this package is compiled with Xen support. + +Package: kernel-image-1.3.99-486-di +XB-Kernel-Version: 1.3.99-486 +Package-Type: udeb +Provides: kernel-image, floppy-modules, ide-modules, input-modules, scsi-modules, serial-modules +Section: debian-installer +Architecture: hurd-i386 +Depends: ${misc:Depends}, hurd-udeb +Description: GNU version of the Mach microkernel for the Debian installer + This is the Utah Mach microkernel used by the Hurd for the Debian + Installer boot images. It does _not_ provide a usable kernel for + your full Debian system. + +Package: kernel-image-1.3.99-xen-486-di +XB-Kernel-Version: 1.3.99-xen-486 +Package-Type: udeb +Provides: kernel-image, input-modules +Section: debian-installer +Architecture: hurd-i386 +Depends: ${misc:Depends}, hurd-udeb +Description: GNU version of the Mach microkernel for the Debian installer + This is the Utah Mach microkernel used by the Hurd for the Debian + Installer boot images. It does _not_ provide a usable kernel for + your full Debian system. + +Package: gnumach-image-1.3.99-486-dbg +Section: debug +Priority: extra +Provides: gnumach +Architecture: any-i386 +Depends: ${misc:Depends}, gnumach-common +Breaks: libc0.3 (<< 2.10.1-3), hurd (<< 20120520-1), xserver-xorg-core (<< 2:1.9.99.1~) +Description: GNU version of the Mach microkernel for debugging + This is the Utah Mach microkernel used by the Hurd. + . + The version in this package is identical to the version found in the + gnumach package, except that it is not stripped and has the + kernel-level debugger compiled in. + +Package: gnumach-image-1.3.99-xen-486-dbg +Section: debug +Priority: extra +Provides: gnumach +Architecture: any-i386 +Depends: ${misc:Depends}, gnumach-common +Breaks: libc0.3 (<< 2.10.1-3), hurd (<< 20120520-1) +Description: GNU version of the Mach microkernel for Xen for debugging + This is the Utah Mach microkernel used by the Hurd. + . + The version in this package is identical to the version found in the + gnumach-xen package, except that it is not stripped and has the + kernel-level debugger compiled in. + +Package: gnumach-common +Section: devel +Architecture: all +Multi-Arch: foreign +Depends: ${misc:Depends} +Replaces: gnumach (<< 2:1.3.99.dfsg.git20110227-1) +Breaks: gnumach (<< 2:1.3.99.dfsg.git20110227-1) +Description: GNU version of the Mach microkernel, common files. + These are common files along the Utah Mach microkernel used by the Hurd. + . + It notably provides useful messages IDs for rpctrace. + +Package: gnumach-dev +Section: devel +Architecture: any-i386 +Depends: ${misc:Depends} +Description: GNU version of the Mach microkernel + These are the header files for the Utah Mach microkernel used by the Hurd. + diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 0000000..813d368 --- /dev/null +++ b/debian/copyright @@ -0,0 +1,62 @@ +This package was originally debianized by Marcus Brinkmann +<brinkmd@debian.org> on Sat, 1 Aug 1998 21:26:37 +0200 + +It is currently maintained by its upstream authors, who can be reached +via <bug-hurd@gnu.org>. + +It was downloaded from: + + <git://git.sv.gnu.org/hurd/gnumach.git> + +License statement: + +Please look at the source files for individual copyrights. They are covered +by either of the following copyrights: + +The doc/ directory contained the manual which was under the GFDL, and was +thus removed from the original tarball, and it repacked. + +Most of these files are licensed under the following terms: + + Mach Operating System + Copyright (c) 1993-1989 Carnegie Mellon University + All Rights Reserved. + + Permission to use, copy, modify and distribute this software and its + documentation is hereby granted, provided that both the copyright + notice and this permission notice appear in all copies of the + software, derivative works or modified versions, and any portions + thereof, and that both notices appear in supporting documentation. + + CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" + CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR + ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. + + Carnegie Mellon requests users of this software to return to + + Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU + School of Computer Science + Carnegie Mellon University + Pittsburgh PA 15213-3890 + + any improvements or extensions that they make and grant Carnegie Mellon + the rights to redistribute these changes. + +Some of these files are licensed under the following terms: + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 dated June, 1991. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +On Debian systems, the complete text of the GNU General Public License +can be found in '/usr/share/common-licenses/GPL-2'. + diff --git a/debian/gnumach-common.info b/debian/gnumach-common.info new file mode 100644 index 0000000..87c8231 --- /dev/null +++ b/debian/gnumach-common.info @@ -0,0 +1 @@ +#build/doc/mach.info* diff --git a/debian/gnumach-common.install b/debian/gnumach-common.install new file mode 100644 index 0000000..fc04c04 --- /dev/null +++ b/debian/gnumach-common.install @@ -0,0 +1 @@ +usr/share/msgids diff --git a/debian/gnumach-dev.docs b/debian/gnumach-dev.docs new file mode 100644 index 0000000..edc0071 --- /dev/null +++ b/debian/gnumach-dev.docs @@ -0,0 +1 @@ +NEWS diff --git a/debian/gnumach-dev.install b/debian/gnumach-dev.install new file mode 100644 index 0000000..e43b95c --- /dev/null +++ b/debian/gnumach-dev.install @@ -0,0 +1 @@ +usr/include diff --git a/debian/gnumach-image-1.3.99-486-dbg.docs b/debian/gnumach-image-1.3.99-486-dbg.docs new file mode 100644 index 0000000..4b4e16d --- /dev/null +++ b/debian/gnumach-image-1.3.99-486-dbg.docs @@ -0,0 +1,3 @@ +README +NEWS +i386/README-Drivers diff --git a/debian/gnumach-image-1.3.99-486-dbg.install b/debian/gnumach-image-1.3.99-486-dbg.install new file mode 100644 index 0000000..36ef4c3 --- /dev/null +++ b/debian/gnumach-image-1.3.99-486-dbg.install @@ -0,0 +1 @@ +boot diff --git a/debian/gnumach-image-1.3.99-486.docs b/debian/gnumach-image-1.3.99-486.docs new file mode 100644 index 0000000..4b4e16d --- /dev/null +++ b/debian/gnumach-image-1.3.99-486.docs @@ -0,0 +1,3 @@ +README +NEWS +i386/README-Drivers diff --git a/debian/gnumach-image-1.3.99-486.install b/debian/gnumach-image-1.3.99-486.install new file mode 100644 index 0000000..36ef4c3 --- /dev/null +++ b/debian/gnumach-image-1.3.99-486.install @@ -0,0 +1 @@ +boot diff --git a/debian/gnumach-image-1.3.99-xen-486-dbg.docs b/debian/gnumach-image-1.3.99-xen-486-dbg.docs new file mode 100644 index 0000000..9eafbe1 --- /dev/null +++ b/debian/gnumach-image-1.3.99-xen-486-dbg.docs @@ -0,0 +1,2 @@ +README +NEWS diff --git a/debian/gnumach-image-1.3.99-xen-486-dbg.install b/debian/gnumach-image-1.3.99-xen-486-dbg.install new file mode 100644 index 0000000..36ef4c3 --- /dev/null +++ b/debian/gnumach-image-1.3.99-xen-486-dbg.install @@ -0,0 +1 @@ +boot diff --git a/debian/gnumach-image-1.3.99-xen-486.docs b/debian/gnumach-image-1.3.99-xen-486.docs new file mode 100644 index 0000000..9eafbe1 --- /dev/null +++ b/debian/gnumach-image-1.3.99-xen-486.docs @@ -0,0 +1,2 @@ +README +NEWS diff --git a/debian/gnumach-image-1.3.99-xen-486.install b/debian/gnumach-image-1.3.99-xen-486.install new file mode 100644 index 0000000..36ef4c3 --- /dev/null +++ b/debian/gnumach-image-1.3.99-xen-486.install @@ -0,0 +1 @@ +boot diff --git a/debian/gnumach-image.postinst.in b/debian/gnumach-image.postinst.in new file mode 100644 index 0000000..c44672b --- /dev/null +++ b/debian/gnumach-image.postinst.in @@ -0,0 +1,66 @@ +#! /bin/sh +# postinst script +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * <postinst> `configure' <most-recently-configured-version> +# * <old-postinst> `abort-upgrade' <new version> +# * <conflictor's-postinst> `abort-remove' `in-favour' <package> +# <new-version> +# * <deconfigured's-postinst> `abort-deconfigure' `in-favour' +# <failed-install-package> <version> `removing' +# <conflicting-package> <version> +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package +# + +PATH="/sbin:/bin:/usr/sbin:/usr/bin" +KERNEL_IMG_CONF="/etc/kernel-img.conf" +RELEASE="@RELEASE@" +VERSION="@VERSION@" + +case "$1" in + configure) + # Sanitize and quote maintainer script parameters + for p in "$@"; do + q="$(echo "$p" | sed -e "s/'/'\\''/g")" + DEB_MAINT_PARAMS="$DEB_MAINT_PARAMS '$q'" + done + export DEB_MAINT_PARAMS + + # Run /etc/kernel-img.conf postinst hook if defined + postinst_hook=$(sed '/^\s*postinst_hook/!d;s/.*=\s*//' $KERNEL_IMG_CONF 2>/dev/null || true) + if [ -n "$postinst_hook" ] ; then + echo "Running postinst hook script $postinst_hook." 1>&2 + $postinst_hook "$RELEASE" "/boot/gnumach-$RELEASE.gz" + fi + + # Run /etc/kernel/postinst.d/ hooks if they exist + if [ -d "/etc/kernel/postinst.d" ] ; then + run-parts --verbose --exit-on-error \ + --arg=$RELEASE \ + --arg=/boot/gnumach-$RELEASE.gz \ + /etc/kernel/postinst.d + fi + ;; + + abort-upgrade|abort-remove|abort-deconfigure) + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 + + diff --git a/debian/gnumach-image.postrm.in b/debian/gnumach-image.postrm.in new file mode 100644 index 0000000..1513cad --- /dev/null +++ b/debian/gnumach-image.postrm.in @@ -0,0 +1,66 @@ +#!/bin/sh +# postrm script +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * <postrm> `remove' +# * <postrm> `purge' +# * <old-postrm> `upgrade' <new-version> +# * <new-postrm> `failed-upgrade' <old-version> +# * <new-postrm> `abort-install' +# * <new-postrm> `abort-install' <old-version> +# * <new-postrm> `abort-upgrade' <old-version> +# * <disappearer's-postrm> `disappear' <overwriter> +# <overwriter-version> +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + +PATH="/sbin:/bin:/usr/sbin:/usr/bin" +KERNEL_IMG_CONF="/etc/kernel-img.conf" +RELEASE="@RELEASE@" +VERSION="@VERSION@" + +case "$1" in + remove) + # Sanitize and quote maintainer script parameters + for p in "$@"; do + q="$(echo "$p" | sed -e "s/'/'\\''/g")" + DEB_MAINT_PARAMS="$DEB_MAINT_PARAMS '$q'" + done + export DEB_MAINT_PARAMS + + # Run /etc/kernel-img.conf postrm hook if defined + postrm_hook=$(sed '/^\s*postrm_hook/!d;s/.*=\s*//' $KERNEL_IMG_CONF 2>/dev/null || true) + if [ -n "$postrm_hook" ] ; then + echo "Running postrm hook script $postrm_hook." 1>&2 + $postrm_hook "$RELEASE" "/boot/gnumach-$RELEASE.gz" + fi + + # Run /etc/kernel/postrm.d/ hooks if they exist + if [ -d "/etc/kernel/postrm.d" ]; then + echo "Running /etc/kernel/postrm.d hooks..." 1>&2 + run-parts --verbose --exit-on-error \ + --arg=$RELEASE \ + --arg=/boot/gnumach-$RELEASE.gz \ + /etc/kernel/postrm.d + fi + ;; + + purge|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) + ;; + + *) + echo "postrm called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 diff --git a/debian/gnumach-image.preinst.in b/debian/gnumach-image.preinst.in new file mode 100644 index 0000000..eab4f73 --- /dev/null +++ b/debian/gnumach-image.preinst.in @@ -0,0 +1,61 @@ +#!/bin/sh +# preinst script +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * <new-preinst> `install' +# * <new-preinst> `install' <old-version> +# * <new-preinst> `upgrade' <old-version> +# * <old-preinst> `abort-upgrade' <new-version> +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + +PATH="/sbin:/bin:/usr/sbin:/usr/bin" +KERNEL_IMG_CONF="/etc/kernel-img.conf" +RELEASE="@RELEASE@" +VERSION="@VERSION@" + +case "$1" in + install|upgrade) + # Sanitize and quote maintainer script parameters + for p in "$@"; do + q="$(echo "$p" | sed -e "s/'/'\\''/g")" + DEB_MAINT_PARAMS="$DEB_MAINT_PARAMS '$q'" + done + export DEB_MAINT_PARAMS + + # Run preinst hook if defined + preinst_hook=$(sed '/^\s*preinst_hook/!d;s/.*=\s*//' $KERNEL_IMG_CONF 2>/dev/null || true) + if [ -n "$preinst_hook" ] ; then + echo "Running preinst hook script $preinst_hook." 1>&2 + $preinst_hook "$RELEASE" "/boot/gnumach-$RELEASE.gz" + fi + + # Run /etc/kernel/preinst.d/ hooks if they exist + if [ -d "/etc/kernel/preinst.d" ]; then + echo "Running /etc/kernel/preinst.d hooks..." 1>&2 + run-parts --verbose --exit-on-error \ + --arg=$RELEASE \ + --arg=/boot/gnumach-$RELEASE.gz \ + /etc/kernel/preinst.d + fi + ;; + + abort-upgrade) + ;; + + *) + echo "preinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 diff --git a/debian/gnumach-image.prerm.in b/debian/gnumach-image.prerm.in new file mode 100644 index 0000000..c82616c --- /dev/null +++ b/debian/gnumach-image.prerm.in @@ -0,0 +1,64 @@ +#!/bin/sh +# prerm script +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * <prerm> `remove' +# * <old-prerm> `upgrade' <new-version> +# * <new-prerm> `failed-upgrade' <old-version> +# * <conflictor's-prerm> `remove' `in-favour' <package> <new-version> +# * <deconfigured's-prerm> `deconfigure' `in-favour' +# <package-being-installed> <version> `removing' +# <conflicting-package> <version> +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + +PATH="/sbin:/bin:/usr/sbin:/usr/bin" +KERNEL_IMG_CONF="/etc/kernel-img.conf" +RELEASE="@RELEASE@" +VERSION="@VERSION@" + +case "$1" in + remove) + # Sanitize and quote maintainer script parameters + for p in "$@"; do + q="$(echo "$p" | sed -e "s/'/'\\''/g")" + DEB_MAINT_PARAMS="$DEB_MAINT_PARAMS '$q'" + done + export DEB_MAINT_PARAMS + + # Run prerm hook if defined + prerm_hook=$(sed '/^\s*prerm_hook/!d;s/.*=\s*//g' $KERNEL_IMG_CONF 2>/dev/null || true) + if [ -n "$prerm_hook" ] ; then + echo "Running prerm hook script $prerm_hook." 1>&2 + $prerm_hook "$RELEASE" "/boot/gnumach-$RELEASE.gz" + fi + + # Run /etc/kernel/prerm.d/ hooks if they exist + if [ -d "/etc/kernel/prerm.d" ]; then + echo "Running /etc/kernel/prerm.d hooks..." 1>&2 + run-parts --verbose --exit-on-error \ + --arg=$RELEASE \ + --arg=/boot/gnumach-$RELEASE.gz \ + /etc/kernel/prerm.d + fi + ;; + + failed-upgrade|upgrade|deconfigure) + ;; + + *) + echo "prerm called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 diff --git a/debian/kernel-image-1.3.99-486-di.install b/debian/kernel-image-1.3.99-486-di.install new file mode 100644 index 0000000..36ef4c3 --- /dev/null +++ b/debian/kernel-image-1.3.99-486-di.install @@ -0,0 +1 @@ +boot diff --git a/debian/kernel-image-1.3.99-xen-486-di.install b/debian/kernel-image-1.3.99-xen-486-di.install new file mode 100644 index 0000000..36ef4c3 --- /dev/null +++ b/debian/kernel-image-1.3.99-xen-486-di.install @@ -0,0 +1 @@ +boot diff --git a/debian/patches/00_clean_gfdl.patch b/debian/patches/00_clean_gfdl.patch new file mode 100644 index 0000000..05e2a87 --- /dev/null +++ b/debian/patches/00_clean_gfdl.patch @@ -0,0 +1,15 @@ +Mach's GFDL documentation is not DFSG-free, we need to drop the build rules. + +Index: b/Makefile.am +=================================================================== +--- a/Makefile.am ++++ b/Makefile.am +@@ -117,7 +117,7 @@ include Makefrag.am + include tests/Makefrag.am + + # Documentation. +-include doc/Makefrag.am ++#include doc/Makefrag.am + + # + # Kernel Image diff --git a/debian/patches/11_ignore_CSIn.patch b/debian/patches/11_ignore_CSIn.patch new file mode 100644 index 0000000..4536672 --- /dev/null +++ b/debian/patches/11_ignore_CSIn.patch @@ -0,0 +1,15 @@ +diff --git a/i386/i386at/kd.c b/i386/i386at/kd.c +index eaeea1b..03c1e06 100644 +--- a/i386/i386at/kd.c ++++ b/i386/i386at/kd.c +@@ -1754,6 +1754,10 @@ u_char *cp; + kd_erase(number[0]); + esc_spt = esc_seq; + break; ++ case 'n': ++ /* Ignore status/cursor report request */ ++ esc_spt = esc_seq; ++ break; + case '\0': + break; /* not enough yet */ + default: diff --git a/debian/patches/12_version_suffix.patch b/debian/patches/12_version_suffix.patch new file mode 100644 index 0000000..acbdf9f --- /dev/null +++ b/debian/patches/12_version_suffix.patch @@ -0,0 +1,20 @@ +Index: gnumach/configure.ac +=================================================================== +--- gnumach.orig/configure.ac 2012-06-11 00:49:00.000000000 +0000 ++++ gnumach/configure.ac 2012-06-11 00:54:31.000000000 +0000 +@@ -19,6 +19,7 @@ + m4_include([version.m4]) + AC_INIT([AC_PACKAGE_NAME], [AC_PACKAGE_VERSION], [AC_PACKAGE_BUGREPORT], + [AC_PACKAGE_TARNAME]) ++AC_SUBST([PACKAGE_VERSION_SUFFIX]) + AC_CONFIG_SRCDIR([kern/ipc_kobject.c]) + + AC_CONFIG_AUX_DIR([build-aux]) +Index: gnumach/version.c.in +=================================================================== +--- gnumach.orig/version.c.in 2012-06-11 00:49:00.000000000 +0000 ++++ gnumach/version.c.in 2012-06-11 00:49:22.000000000 +0000 +@@ -1,2 +1,2 @@ + /* @configure_input@ */ +-const char version[] = "@PACKAGE_NAME@ @PACKAGE_VERSION@"; ++const char version[] = "@PACKAGE_NAME@ @PACKAGE_VERSION@@PACKAGE_VERSION_SUFFIX@"; diff --git a/debian/patches/50_initrd.patch b/debian/patches/50_initrd.patch new file mode 100644 index 0000000..3091996 --- /dev/null +++ b/debian/patches/50_initrd.patch @@ -0,0 +1,315 @@ +Jérémie Koenig <jk@jk.fr.eu.org> +Add ramdisk support for d-i. + +Index: gnumach/Makefrag.am +=================================================================== +--- gnumach.orig/Makefrag.am 2010-06-12 03:44:45.000000000 +0200 ++++ gnumach/Makefrag.am 2010-06-12 03:45:00.000000000 +0200 +@@ -275,6 +275,8 @@ + device/net_io.c \ + device/net_io.h \ + device/param.h \ ++ device/ramdisk.c \ ++ device/ramdisk.h \ + device/subrs.c \ + device/subrs.h \ + device/tty.h +Index: gnumach/i386/i386at/conf.c +=================================================================== +--- gnumach.orig/i386/i386at/conf.c 2010-06-12 03:44:45.000000000 +0200 ++++ gnumach/i386/i386at/conf.c 2010-06-12 03:45:00.000000000 +0200 +@@ -29,6 +29,7 @@ + + #include <mach/machine/vm_types.h> + #include <device/conf.h> ++#include <device/ramdisk.h> + + extern int timeopen(), timeclose(); + extern vm_offset_t timemmap(); +@@ -127,6 +128,8 @@ + nodev }, + #endif /* MACH_HYP */ + ++ RAMDISK_DEV_OPS, ++ + #ifdef MACH_KMSG + { kmsgname, kmsgopen, kmsgclose, kmsgread, + nodev, kmsggetstat, nodev, nomap, +Index: gnumach/kern/boot_script.c +=================================================================== +--- gnumach.orig/kern/boot_script.c 2010-06-12 03:44:45.000000000 +0200 ++++ gnumach/kern/boot_script.c 2010-06-12 03:45:00.000000000 +0200 +@@ -88,12 +88,20 @@ + return boot_script_prompt_task_resume (cmd); + } + ++/* Create an initial ramdisk */ ++static int ++ramdisk_create (struct cmd *cmd, long *val) ++{ ++ return boot_script_ramdisk_create (cmd, (char **) val); ++} ++ + /* List of builtin symbols. */ + static struct sym builtin_symbols[] = + { + { "task-create", VAL_FUNC, (long) create_task, VAL_TASK, 0 }, + { "task-resume", VAL_FUNC, (long) resume_task, VAL_NONE, 1 }, + { "prompt-task-resume", VAL_FUNC, (long) prompt_resume_task, VAL_NONE, 1 }, ++ { "ramdisk-create", VAL_FUNC, (long) ramdisk_create, VAL_STR, 0 }, + }; + #define NUM_BUILTIN (sizeof (builtin_symbols) / sizeof (builtin_symbols[0])) + +Index: gnumach/kern/bootstrap.c +=================================================================== +--- gnumach.orig/kern/bootstrap.c 2010-06-12 03:44:44.000000000 +0200 ++++ gnumach/kern/bootstrap.c 2010-06-12 03:45:00.000000000 +0200 +@@ -48,6 +48,7 @@ + #include <vm/vm_user.h> + #include <vm/pmap.h> + #include <device/device_port.h> ++#include <device/ramdisk.h> + + #if MACH_KDB + #include <machine/db_machdep.h> +@@ -776,6 +773,23 @@ + } + + int ++boot_script_ramdisk_create (struct cmd *cmd, char **name) ++{ ++ struct multiboot_module *mod = cmd->hook; ++ vm_size_t size = mod->mod_end - mod->mod_start; ++ kern_return_t rc; ++ int no; ++ ++ rc = ramdisk_create (size, (void *) phystokv (mod->mod_start), &no); ++ if (rc != KERN_SUCCESS) ++ return BOOT_SCRIPT_MACH_ERROR; ++ ++ *name = boot_script_malloc (RAMDISK_NAMESZ); ++ sprintf(*name, RAMDISK_NAME "%d", no); ++ return 0; ++} ++ ++int + boot_script_task_create (struct cmd *cmd) + { + kern_return_t rc = task_create(TASK_NULL, FALSE, &cmd->task); +Index: gnumach/device/ramdisk.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ gnumach/device/ramdisk.c 2010-06-12 05:02:54.000000000 +0200 +@@ -0,0 +1,160 @@ ++#include <mach/vm_param.h> ++#include <machine/vm_param.h> ++#include <vm/vm_kern.h> ++#include <vm/vm_user.h> ++#include <device/device_types.h> ++#include <device/ds_routines.h> ++#include <device/conf.h> ++#include <device/ramdisk.h> ++#include <kern/printf.h> ++#include <string.h> ++ ++static struct ramdisk { ++ void *data; ++ vm_size_t size; ++} ramdisk[RAMDISK_MAX]; ++ ++static int ramdisk_num = 0; ++ ++/* Initial ramdisks are created from the boot scripts */ ++int ramdisk_create(vm_size_t size, const void *initdata, int *out_no) ++{ ++ struct ramdisk *rd = &ramdisk[ramdisk_num]; ++ int err; ++ ++ if(ramdisk_num >= RAMDISK_MAX) ++ return -1; ++ ++ /* allocate the memory */ ++ rd->size = round_page(size); ++ err = kmem_alloc(kernel_map, (vm_offset_t *) &rd->data, rd->size); ++ if(err != KERN_SUCCESS) ++ return err; ++ ++ /* initialize */ ++ if(initdata) ++ memcpy(rd->data, initdata, rd->size); ++ else ++ memset(rd->data, 0, rd->size); ++ ++ /* report */ ++ if(out_no) *out_no = ramdisk_num; ++ printf("%s%d: %lu bytes @%p\n", RAMDISK_NAME, ramdisk_num, ++ (unsigned long) rd->size, rd->data); ++ ++ ramdisk_num++; ++ return KERN_SUCCESS; ++} ++ ++/* On d_open() we just check whether the ramdisk exists */ ++int ramdisk_open(int dev, int mode, io_req_t ior) ++{ ++ return (dev < ramdisk_num) ? D_SUCCESS : D_NO_SUCH_DEVICE; ++} ++ ++/* d_getstat() is used to query the device characteristics */ ++int ramdisk_getstat(int dev, dev_flavor_t flavor, dev_status_t status, ++ mach_msg_type_number_t *status_count) ++{ ++ switch(flavor) { ++ case DEV_GET_SIZE: ++ status[DEV_GET_SIZE_DEVICE_SIZE] = ramdisk[dev].size; ++ status[DEV_GET_SIZE_RECORD_SIZE] = RAMDISK_BLOCKSZ; ++ *status_count = DEV_GET_SIZE_COUNT; ++ return D_SUCCESS; ++ ++ case DEV_GET_RECORDS: ++ status[DEV_GET_RECORDS_DEVICE_RECORDS] ++ = ramdisk[dev].size / RAMDISK_BLOCKSZ; ++ status[DEV_GET_RECORDS_RECORD_SIZE] = RAMDISK_BLOCKSZ; ++ *status_count = DEV_GET_RECORDS_COUNT; ++ return D_SUCCESS; ++ } ++ return D_INVALID_OPERATION; ++} ++ ++/* TODO: implement freeramdisk with setstat() ? */ ++ ++/* Check the given io request and compute a pointer to the ramdisk data and the ++ * amount to be handled. */ ++static int ramdisk_ioreq(int dev, io_req_t ior, void **data, int *amt) ++{ ++ vm_offset_t ofs = ior->io_recnum * RAMDISK_BLOCKSZ; ++ if(ofs >= ramdisk[dev].size) ++ return D_INVALID_RECNUM; ++ ++ *data = (char*) ramdisk[dev].data + ofs; ++ *amt = ior->io_count; ++ if(ofs + *amt > ramdisk[dev].size) ++ *amt = ramdisk[dev].size - ofs; ++ ++ return KERN_SUCCESS; ++} ++ ++/* Copy data from a vm_map_copy by mapping it temporarily. */ ++static int mem_map_cpy(void *dst, vm_map_copy_t src, int amt) ++{ ++ vm_offset_t srcaddr; ++ int err; ++ ++ err = vm_map_copyout(device_io_map, &srcaddr, src); ++ if (err != KERN_SUCCESS) ++ return err; ++ ++ memcpy(dst, (void *) srcaddr, amt); ++ vm_deallocate(device_io_map, srcaddr, amt); ++ return KERN_SUCCESS; ++} ++ ++int ramdisk_read(int dev, io_req_t ior) ++{ ++ void *data; ++ int amt, err; ++ ++ err = ramdisk_ioreq(dev, ior, &data, &amt); ++ if(err != KERN_SUCCESS) ++ return err; ++ ++ err = device_read_alloc (ior, ior->io_count); ++ if (err != KERN_SUCCESS) ++ return err; ++ ++ memcpy(ior->io_data, data, amt); ++ ior->io_residual = ior->io_count - amt; ++ ++ return D_SUCCESS; ++} ++ ++int ramdisk_write(int dev, io_req_t ior) ++{ ++ void *data; ++ int amt, err; ++ ++ err = ramdisk_ioreq(dev, ior, &data, &amt); ++ if(err != KERN_SUCCESS) ++ return err; ++ ++ if (!(ior->io_op & IO_INBAND)) { ++ /* Out-of-band data is transmitted as a vm_map_copy */ ++ err = mem_map_cpy(data, (vm_map_copy_t) ior->io_data, amt); ++ if(err != KERN_SUCCESS) ++ return err; ++ } else { ++ /* In-band data can be accessed directly */ ++ memcpy(data, ior->io_data, amt); ++ } ++ ++ ior->io_residual = ior->io_count - amt; ++ return D_SUCCESS; ++} ++ ++vm_offset_t ramdisk_mmap(int dev, vm_offset_t off, vm_prot_t prot) ++{ ++ if(dev >= ramdisk_num) ++ return -1; ++ if(off >= ramdisk[dev].size) ++ return -1; ++ ++ return pmap_phys_to_frame(kvtophys((vm_offset_t) ramdisk[dev].data + off)); ++} ++ +Index: gnumach/device/ramdisk.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ gnumach/device/ramdisk.h 2010-06-12 03:45:00.000000000 +0200 +@@ -0,0 +1,47 @@ ++#ifndef _KERN_RAMDISK_H_ ++#define _KERN_RAMDISK_H_ ++ ++#include <vm/pmap.h> ++#include <device/io_req.h> ++#include <device/conf.h> ++ ++/* Maximum number of ramdisk devices */ ++#define RAMDISK_MAX 4 ++ ++/* The block size used (userspace requires 512) */ ++#define RAMDISK_BLOCKSZ 512 ++ ++/* Name associated to the ramdisk major */ ++#define RAMDISK_NAME "rd" ++#define RAMDISK_NAMESZ (sizeof RAMDISK_NAME + sizeof (int) * 3 + 1) ++ ++/* Create a new ramdisk of the given size. On success, if out_no and/or out_ptr ++ * are not NULL, the device number and pointer to the ramdisk's data are stored ++ * there. Returns D_SUCCESS or D_NO_MEMORY. */ ++int ramdisk_create(vm_size_t size, const void *initdata, int *out_no); ++ ++/* Device operations */ ++int ramdisk_open(int, int, io_req_t); ++int ramdisk_getstat(int, dev_flavor_t, dev_status_t, mach_msg_type_number_t *); ++int ramdisk_read(int, io_req_t); ++int ramdisk_write(int, io_req_t); ++vm_offset_t ramdisk_mmap(int, vm_offset_t, vm_prot_t); ++ ++/* dev_ops initializer to be used from <machine>/conf.c */ ++#define RAMDISK_DEV_OPS { \ ++ .d_name = RAMDISK_NAME, \ ++ .d_open = ramdisk_open, \ ++ .d_close = nulldev, \ ++ .d_read = ramdisk_read, \ ++ .d_write = ramdisk_write, \ ++ .d_getstat = ramdisk_getstat, \ ++ .d_setstat = nodev, \ ++ .d_mmap = ramdisk_mmap, \ ++ .d_async_in = nodev, \ ++ .d_reset = nulldev, \ ++ .d_port_death = nulldev, \ ++ .d_subdev = 0, \ ++ .d_dev_info = nodev, \ ++ } ++ ++#endif diff --git a/debian/patches/60_bigmem.patch b/debian/patches/60_bigmem.patch new file mode 100644 index 0000000..cdf6468 --- /dev/null +++ b/debian/patches/60_bigmem.patch @@ -0,0 +1,77 @@ +Push kernel/user limit to 2GiB, so Mach can address up to close to 2GiB memory. +This makes glibc's local-bigmem.diff patch mandatory. + +Index: gnumach/i386/include/mach/i386/vm_param.h +=================================================================== +--- gnumach.orig/i386/include/mach/i386/vm_param.h 2012-06-10 23:45:02.000000000 +0200 ++++ gnumach/i386/include/mach/i386/vm_param.h 2012-07-14 15:57:26.423861314 +0200 +@@ -73,6 +73,6 @@ + with that. + */ + #define VM_MIN_ADDRESS (0) +-#define VM_MAX_ADDRESS (0xc0000000UL) ++#define VM_MAX_ADDRESS (0x80000000UL) + + #endif /* _MACH_I386_VM_PARAM_H_ */ +Index: gnumach/i386/Makefrag.am +=================================================================== +--- gnumach.orig/i386/Makefrag.am 2012-06-10 23:45:02.000000000 +0200 ++++ gnumach/i386/Makefrag.am 2012-07-14 15:57:26.427861233 +0200 +@@ -199,7 +199,7 @@ EXTRA_DIST += \ + i386/ldscript + if PLATFORM_at + gnumach_LINKFLAGS += \ +- --defsym _START=0xC0100000 \ ++ --defsym _START=0x80100000 \ + --defsym _START_MAP=0x100000 \ + -T '$(srcdir)'/i386/ldscript + endif +Index: gnumach/i386/i386/vm_param.h +=================================================================== +--- gnumach.orig/i386/i386/vm_param.h 2012-06-10 23:45:02.000000000 +0200 ++++ gnumach/i386/i386/vm_param.h 2012-07-14 15:57:44.559495669 +0200 +@@ -31,13 +31,13 @@ + + /* The kernel address space is usually 1GB, usually starting at virtual address 0. */ + #ifdef MACH_XEN +-#define VM_MIN_KERNEL_ADDRESS 0xC0000000UL ++#define VM_MIN_KERNEL_ADDRESS 0x80000000UL + #define INIT_VM_MIN_KERNEL_ADDRESS VM_MIN_KERNEL_ADDRESS + #else /* MACH_XEN */ + /* This can be changed freely to separate kernel addresses from user addresses + * for better trace support in kdb; the _START symbol has to be offset by the + * same amount. */ +-#define VM_MIN_KERNEL_ADDRESS 0xC0000000UL ++#define VM_MIN_KERNEL_ADDRESS 0x80000000UL + /* This must remain 0 */ + #define INIT_VM_MIN_KERNEL_ADDRESS 0x00000000UL + #endif /* MACH_XEN */ +Index: gnumach/i386/xen/Makefrag.am +=================================================================== +--- gnumach.orig/i386/xen/Makefrag.am 2012-07-14 15:58:19.998781083 +0200 ++++ gnumach/i386/xen/Makefrag.am 2012-07-14 15:58:30.254574271 +0200 +@@ -28,7 +28,7 @@ libkernel_a_SOURCES += \ + + if PLATFORM_xen + gnumach_LINKFLAGS += \ +- --defsym _START=0xC0000000 \ +- --defsym _START_MAP=0xC0000000 \ ++ --defsym _START=0x80000000 \ ++ --defsym _START_MAP=0x80000000 \ + -T '$(srcdir)'/i386/ldscript + endif +Index: gnumach/i386/xen/xen_boothdr.S +=================================================================== +--- gnumach.orig/i386/xen/xen_boothdr.S 2012-07-14 15:58:13.358914976 +0200 ++++ gnumach/i386/xen/xen_boothdr.S 2012-07-14 15:58:39.790381972 +0200 +@@ -22,8 +22,8 @@ + .ascii "GUEST_OS=GNU Mach" + .ascii ",GUEST_VERSION=1.3" + .ascii ",XEN_VER=xen-3.0" +- .ascii ",VIRT_BASE=0xC0000000" +- .ascii ",ELF_PADDR_OFFSET=0xC0000000" ++ .ascii ",VIRT_BASE=0x80000000" ++ .ascii ",ELF_PADDR_OFFSET=0x80000000" + .ascii ",HYPERCALL_PAGE=0x2" + #if PAE + .ascii ",PAE=yes[extended-cr3]" diff --git a/debian/patches/70_dde.patch b/debian/patches/70_dde.patch new file mode 100644 index 0000000..048231b --- /dev/null +++ b/debian/patches/70_dde.patch @@ -0,0 +1,786 @@ +diff --git a/Makefrag.am b/Makefrag.am +index 5d22504..64abbe9 100644 +--- a/Makefrag.am ++++ b/Makefrag.am +@@ -204,6 +204,7 @@ libkernel_a_SOURCES += \ + kern/mach.srv \ + kern/mach4.srv \ + kern/gnumach.srv \ ++ kern/experimental.srv \ + kern/mach_debug.srv \ + kern/mach_host.srv + +@@ -280,6 +281,7 @@ libkernel_a_SOURCES += \ + device/device_types_kernel.h \ + device/ds_routines.c \ + device/ds_routines.h \ ++ device/intr.c \ + device/if_ether.h \ + device/if_hdr.h \ + device/io_req.h \ +@@ -348,6 +352,7 @@ include_mach_HEADERS = \ + include/mach/memory_object_default.defs \ + include/mach/notify.defs \ + include/mach/std_types.defs \ ++ include/mach/experimental.defs \ + include/mach/alert.h \ + include/mach/boolean.h \ + include/mach/boot.h \ +@@ -478,6 +483,7 @@ nodist_libkernel_a_SOURCES += \ + kern/mach.server.defs.c \ + kern/mach4.server.defs.c \ + kern/gnumach.server.defs.c \ ++ kern/experimental.server.defs.c \ + kern/mach_debug.server.defs.c \ + kern/mach_host.server.defs.c + nodist_libkernel_a_SOURCES += \ +@@ -487,6 +493,9 @@ nodist_libkernel_a_SOURCES += \ + kern/gnumach.server.h \ + kern/gnumach.server.c \ + kern/gnumach.server.msgids \ ++ kern/experimental.server.h \ ++ kern/experimental.server.c \ ++ kern/experimental.server.msgids \ + kern/mach_debug.server.h \ + kern/mach_debug.server.c \ + kern/mach_debug.server.msgids \ +@@ -495,6 +504,7 @@ nodist_libkernel_a_SOURCES += \ + # kern/mach.server.defs + # kern/mach4.server.defs + # kern/gnumach.server.defs ++# kern/experimental.server.defs + # kern/mach_debug.server.defs + # kern/mach_host.server.defs + +diff --git a/device/ds_routines.c b/device/ds_routines.c +index 5a6fdd2..b89d70f 100644 +--- a/device/ds_routines.c ++++ b/device/ds_routines.c +@@ -318,6 +318,43 @@ ds_device_map (device_t dev, vm_prot_t prot, vm_offset_t offset, + offset, size, pager, unmap); + } + ++io_return_t ++experimental_device_intr_register (ipc_port_t master_port, int line, ++ int id, int flags, ipc_port_t receive_port) ++{ ++#ifdef MACH_XEN ++ return D_INVALID_OPERATION; ++#else /* MACH_XEN */ ++ extern int install_user_intr_handler (unsigned int line, ++ unsigned long flags, ++ ipc_port_t dest); ++ io_return_t ret; ++ ++ /* Open must be called on the master device port. */ ++ if (master_port != master_device_port) ++ return D_INVALID_OPERATION; ++ ++ /* XXX: move to arch-specific */ ++ if (line < 0 || line >= 16) ++ return D_INVALID_OPERATION; ++ ++ ret = insert_intr_entry (line, receive_port); ++ if (ret) ++ return ret; ++ // TODO The original port should be replaced ++ // when the same device driver calls it again, ++ // in order to handle the case that the device driver crashes and restarts. ++ ret = install_user_intr_handler (line, flags, receive_port); ++ ++ /* If the port is installed successfully, increase its reference by 1. ++ * Thus, the port won't be destroyed after its task is terminated. */ ++ if (ret == 0) ++ ip_reference (receive_port); ++ ++ return ret; ++#endif /* MACH_XEN */ ++} ++ + boolean_t + ds_notify (mach_msg_header_t *msg) + { +@@ -1820,6 +1857,24 @@ device_writev_trap (mach_device_t device, dev_mode_t mode, + return (result); + } + ++kern_return_t ++experimental_device_intr_enable(ipc_port_t master_port, int line, char status) ++{ ++#ifdef MACH_XEN ++ return D_INVALID_OPERATION; ++#else /* MACH_XEN */ ++ if (master_port != master_device_port) ++ return D_INVALID_OPERATION; ++ ++ if (status) ++ /* TODO: better name for generic-to-arch-specific call */ ++ enable_irq (line); ++ else ++ disable_irq (line); ++ return 0; ++#endif /* MACH_XEN */ ++} ++ + struct device_emulation_ops mach_device_emulation_ops = + { + (void*) mach_device_reference, +diff --git a/device/ds_routines.h b/device/ds_routines.h +index a00a12d..9d635cf 100644 +--- a/device/ds_routines.h ++++ b/device/ds_routines.h +@@ -58,4 +58,7 @@ boolean_t ds_write_done(io_req_t); + + void iowait (io_req_t ior); + ++/* XXX arch-specific */ ++extern ipc_port_t intr_rcv_ports[16]; ++ + #endif /* DS_ROUTINES_H */ +diff --git a/device/intr.c b/device/intr.c +new file mode 100644 +index 0000000..6fca328 +--- /dev/null ++++ b/device/intr.c +@@ -0,0 +1,198 @@ ++#include <device/intr.h> ++#include <device/ds_routines.h> ++#include <kern/queue.h> ++#include <kern/printf.h> ++ ++#ifndef MACH_XEN ++// TODO this is only for x86 system ++#define sti() __asm__ __volatile__ ("sti": : :"memory") ++#define cli() __asm__ __volatile__ ("cli": : :"memory") ++ ++static boolean_t deliver_intr (int line, ipc_port_t dest_port); ++ ++struct intr_entry ++{ ++ queue_chain_t chain; ++ ipc_port_t dest; ++ int line; ++ /* The number of interrupts occur since last run of intr_thread. */ ++ int interrupts; ++}; ++ ++static queue_head_t intr_queue; ++/* The total number of unprocessed interrupts. */ ++static int tot_num_intr; ++ ++static struct intr_entry * ++search_intr (int line, ipc_port_t dest) ++{ ++ struct intr_entry *e; ++ queue_iterate (&intr_queue, e, struct intr_entry *, chain) ++ { ++ if (e->dest == dest && e->line == line) ++ return e; ++ } ++ return NULL; ++} ++ ++/* This function can only be used in the interrupt handler. */ ++void ++queue_intr (int line, ipc_port_t dest) ++{ ++ extern void intr_thread (); ++ struct intr_entry *e; ++ ++ cli (); ++ e = search_intr (line, dest); ++ assert (e); ++ e->interrupts++; ++ tot_num_intr++; ++ sti (); ++ ++ thread_wakeup ((event_t) &intr_thread); ++} ++ ++/* insert an interrupt entry in the queue. ++ * This entry exists in the queue until ++ * the corresponding interrupt port is removed.*/ ++int ++insert_intr_entry (int line, ipc_port_t dest) ++{ ++ int err = 0; ++ struct intr_entry *e, *new; ++ int free = 0; ++ ++ new = (struct intr_entry *) kalloc (sizeof (*new)); ++ if (new == NULL) ++ return D_NO_MEMORY; ++ ++ /* check whether the intr entry has been in the queue. */ ++ cli (); ++ e = search_intr (line, dest); ++ if (e) ++ { ++ printf ("the interrupt entry for line %d and port %p has been inserted\n", ++ line, dest); ++ free = 1; ++ err = D_ALREADY_OPEN; ++ goto out; ++ } ++ new->line = line; ++ new->dest = dest; ++ new->interrupts = 0; ++ queue_enter (&intr_queue, new, struct intr_entry *, chain); ++out: ++ sti (); ++ if (free) ++ kfree ((vm_offset_t) new, sizeof (*new)); ++ return err; ++} ++ ++/* this function should be called when line is disabled. */ ++void mark_intr_removed (int line, ipc_port_t dest) ++{ ++ struct intr_entry *e; ++ ++ e = search_intr (line, dest); ++ if (e) ++ e->dest = NULL; ++} ++ ++void ++intr_thread () ++{ ++ struct intr_entry *e; ++ int line; ++ ipc_port_t dest; ++ queue_init (&intr_queue); ++ ++ for (;;) ++ { ++ assert_wait ((event_t) &intr_thread, FALSE); ++ cli (); ++ while (tot_num_intr) ++ { ++ int del = 0; ++ ++ queue_iterate (&intr_queue, e, struct intr_entry *, chain) ++ { ++ /* if an entry doesn't have dest port, ++ * we should remove it. */ ++ if (e->dest == NULL) ++ { ++ del = 1; ++ break; ++ } ++ ++ if (e->interrupts) ++ { ++ line = e->line; ++ dest = e->dest; ++ e->interrupts--; ++ tot_num_intr--; ++ ++ sti (); ++ deliver_intr (line, dest); ++ cli (); ++ } ++ } ++ ++ /* remove the entry without dest port from the queue and free it. */ ++ if (del) ++ { ++ assert (!queue_empty (&intr_queue)); ++ queue_remove (&intr_queue, e, struct intr_entry *, chain); ++ sti (); ++ kfree ((vm_offset_t) e, sizeof (*e)); ++ cli (); ++ } ++ } ++ sti (); ++ thread_block (NULL); ++ } ++} ++ ++static boolean_t ++deliver_intr (int line, ipc_port_t dest_port) ++{ ++ ipc_kmsg_t kmsg; ++ mach_intr_notification_t *n; ++ mach_port_t dest = (mach_port_t) dest_port; ++ ++ if (dest == MACH_PORT_NULL) ++ return FALSE; ++ ++ kmsg = ikm_alloc(sizeof *n); ++ if (kmsg == IKM_NULL) ++ return FALSE; ++ ++ ikm_init(kmsg, sizeof *n); ++ n = (mach_intr_notification_t *) &kmsg->ikm_header; ++ ++ mach_msg_header_t *m = &n->intr_header; ++ mach_msg_type_t *t = &n->intr_type; ++ ++ m->msgh_bits = MACH_MSGH_BITS(MACH_MSG_TYPE_PORT_SEND, 0); ++ m->msgh_size = sizeof *n; ++ m->msgh_seqno = INTR_NOTIFY_MSGH_SEQNO; ++ m->msgh_local_port = MACH_PORT_NULL; ++ m->msgh_remote_port = MACH_PORT_NULL; ++ m->msgh_id = MACH_INTR_NOTIFY; ++ ++ t->msgt_name = MACH_MSG_TYPE_INTEGER_32; ++ t->msgt_size = 32; ++ t->msgt_number = 1; ++ t->msgt_inline = TRUE; ++ t->msgt_longform = FALSE; ++ t->msgt_deallocate = FALSE; ++ t->msgt_unused = 0; ++ ++ n->intr_header.msgh_remote_port = dest; ++ n->line = line; ++ ++ ipc_port_copy_send (dest_port); ++ ipc_mqueue_send_always(kmsg); ++ ++ return TRUE; ++} ++#endif /* MACH_XEN */ +--- /dev/null 2012-02-17 19:11:40.849680975 +0100 ++++ b/kern/experimental.srv 2012-02-18 22:56:48.192291483 +0100 +@@ -0,0 +1,3 @@ ++#define KERNEL_SERVER 1 ++ ++#include <mach/experimental.defs> +diff --git a/include/device/intr.defs b/include/device/intr.defs +new file mode 100644 +index 0000000..368b96c +--- /dev/null ++++ b/include/mach/experimental.defs +@@ -0,0 +1,100 @@ ++/* ++ * Mach Operating System ++ * Copyright (c) 1991,1990,1989 Carnegie Mellon University ++ * All Rights Reserved. ++ * ++ * Permission to use, copy, modify and distribute this software and its ++ * documentation is hereby granted, provided that both the copyright ++ * notice and this permission notice appear in all copies of the ++ * software, derivative works or modified versions, and any portions ++ * thereof, and that both notices appear in supporting documentation. ++ * ++ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" ++ * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR ++ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. ++ * ++ * Carnegie Mellon requests users of this software to return to ++ * ++ * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU ++ * School of Computer Science ++ * Carnegie Mellon University ++ * Pittsburgh PA 15213-3890 ++ * ++ * any improvements or extensions that they make and grant Carnegie Mellon ++ * the rights to redistribute these changes. ++ */ ++ ++subsystem ++#if KERNEL_USER ++ KernelUser ++#endif /* KERNEL_USER */ ++#if KERNEL_SERVER ++ KernelServer ++#endif /* KERNEL_SERVER */ ++ experimental 424242; ++ ++#include <mach/std_types.defs> ++#include <mach/mach_types.defs> ++ ++serverprefix experimental_; ++ ++type notify_port_t = MACH_MSG_TYPE_MOVE_SEND_ONCE ++ ctype: mach_port_t; ++ ++skip; /*simpleroutine mach_intr_notify( ++ notify : notify_port_t; ++ name : int);*/ ++ ++routine device_intr_register( ++ master_port : mach_port_t; ++ in line : int; ++ in id : int; ++ in flags : int; ++ in receive_port : mach_port_send_t ++ ); ++ ++/* ++ * enable/disable the specified line. ++ */ ++/* XXX: Naming a function taht can disable something "xxx_enable" is confusing. */ ++/* Is the disable part actually used at all? AIUI, the kernel IRQ handler ++should always disable the line; and the userspace driver only has to ++reenable it, after acknowledging and handling the interrupt... ++*/ ++routine device_intr_enable( ++ master_port : mach_port_t; ++ line : int; ++ status : char); ++ ++/* ++ * This routine is created for allocating DMA buffers. ++ * We are going to get a contiguous physical memory ++ * and its physical address in addition to the virtual address. ++ */ ++ ++ /* XXX ++ This RPC lacks a few additional constraints like boundaries, alignment ++and maybe phase. We may not use them now, but they're important for ++portability (e.g. if GNU Mach supports PAE, drivers that can't use ++physical memory beyond the 4 GiB limit must be able to express it). ++ ++> What do you mean by "phase"? ++ ++Offset from the alignment. But I don't think it's useful at all in this ++case. Minimum and maximum addresses and alignment should do. Maybe ++boundary crossing but usually, specifying the right alignment and size ++is enough. ++ ++For upstream ++inclusion, we need to do it properly: the RPC should return a special ++memory object (similar to device_map() ), which can then be mapped into ++the process address space with vm_map() like any other memory object. ++ ++phys_address_t? ++ */ ++routine vm_allocate_contiguous( ++ host_priv : host_priv_t; ++ target_task : vm_task_t; ++ out vaddr : vm_address_t; ++ out paddr : vm_address_t; ++ size : vm_size_t); +diff --git a/include/device/intr.h b/include/device/intr.h +new file mode 100644 +index 0000000..3c0e1b8 +--- /dev/null ++++ b/include/device/intr.h +@@ -0,0 +1,17 @@ ++#ifndef __INTR_H__ ++ ++#define __INTR_H__ ++ ++#include <device/device_types.h> ++ ++typedef struct ++{ ++ mach_msg_header_t intr_header; ++ mach_msg_type_t intr_type; ++ int line; ++} mach_intr_notification_t; ++ ++#define INTR_NOTIFY_MSGH_SEQNO 0 ++#define MACH_INTR_NOTIFY 424242 ++ ++#endif +diff --git a/kern/startup.c b/kern/startup.c +index 3bdda16..9f0e692 100644 +--- a/kern/startup.c ++++ b/kern/startup.c +@@ -70,6 +70,7 @@ extern void vm_pageout(); + extern void reaper_thread(); + extern void swapin_thread(); + extern void sched_thread(); ++extern void intr_thread(); + + extern void bootstrap_create(); + extern void device_service_create(); +@@ -231,6 +232,9 @@ void start_kernel_threads() + (void) kernel_thread(kernel_task, reaper_thread, (char *) 0); + (void) kernel_thread(kernel_task, swapin_thread, (char *) 0); + (void) kernel_thread(kernel_task, sched_thread, (char *) 0); ++#ifndef MACH_XEN ++ (void) kernel_thread(kernel_task, intr_thread, (char *)0); ++#endif /* MACH_XEN */ + + #if NCPUS > 1 + /* +diff --git a/linux/dev/arch/i386/kernel/irq.c b/linux/dev/arch/i386/kernel/irq.c +index 41bdaa3..974eaf8 100644 +--- a/linux/dev/arch/i386/kernel/irq.c ++++ b/linux/dev/arch/i386/kernel/irq.c +@@ -83,6 +83,7 @@ struct linux_action + void *dev_id; + struct linux_action *next; + unsigned long flags; ++ volatile ipc_port_t delivery_port; + }; + + static struct linux_action *irq_action[16] = +@@ -102,6 +103,7 @@ linux_intr (int irq) + { + struct pt_regs regs; + struct linux_action *action = *(irq_action + irq); ++ struct linux_action **prev = &irq_action[irq]; + unsigned long flags; + + kstat.interrupts[irq]++; +@@ -113,7 +115,37 @@ linux_intr (int irq) + + while (action) + { +- action->handler (irq, action->dev_id, ®s); ++ // TODO I might need to check whether the interrupt belongs to ++ // the current device. But I don't do it for now. ++ if (action->delivery_port) ++ { ++ /* The reference of the port was increased ++ * when the port was installed. ++ * If the reference is 1, it means the port should ++ * have been destroyed and I destroy it now. */ ++ if (action->delivery_port ++ && action->delivery_port->ip_references == 1) ++ { ++ mark_intr_removed (irq, action->delivery_port); ++ ipc_port_release (action->delivery_port); ++ *prev = action->next; ++ printk ("irq handler %d: release an dead delivery port\n", irq); ++ linux_kfree(action); ++ action = *prev; ++ continue; ++ } ++ else ++ { ++ /* We disable the irq here and it will be enabled ++ * after the interrupt is handled by the user space driver. */ ++ disable_irq (irq); ++ queue_intr (irq, action->delivery_port); ++ } ++ ++ } ++ else if (action->handler) ++ action->handler (irq, action->dev_id, ®s); ++ prev = &action->next; + action = action->next; + } + +@@ -233,6 +265,7 @@ setup_x86_irq (int irq, struct linux_action *new) + } + while (old); + shared = 1; ++ printk("store a new irq %d", irq); + } + + save_flags (flags); +@@ -250,6 +283,51 @@ setup_x86_irq (int irq, struct linux_action *new) + return 0; + } + ++int ++install_user_intr_handler (unsigned int irq, unsigned long flags, ++ ipc_port_t dest) ++{ ++ struct linux_action *action; ++ struct linux_action *old; ++ int retval; ++ ++ assert (irq < 16); ++ ++ /* Test whether the irq handler has been set */ ++ // TODO I need to protect the array when iterating it. ++ old = irq_action[irq]; ++ while (old) ++ { ++ if (old->delivery_port == dest) ++ { ++ printk ("The interrupt handler has been installed on line %d", irq); ++ return linux_to_mach_error (-EAGAIN); ++ } ++ old = old->next; ++ } ++ ++ /* ++ * Hmm... Should I use `kalloc()' ? ++ * By OKUJI Yoshinori. ++ */ ++ action = (struct linux_action *) ++ linux_kmalloc (sizeof (struct linux_action), GFP_KERNEL); ++ if (action == NULL) ++ return linux_to_mach_error (-ENOMEM); ++ ++ action->handler = NULL; ++ action->next = NULL; ++ action->dev_id = NULL; ++ action->flags = flags; ++ action->delivery_port = dest; ++ ++ retval = setup_x86_irq (irq, action); ++ if (retval) ++ linux_kfree (action); ++ ++ return linux_to_mach_error (retval); ++} ++ + /* + * Attach a handler to an IRQ. + */ +@@ -278,6 +356,7 @@ request_irq (unsigned int irq, void (*handler) (int, void *, struct pt_regs *), + action->next = NULL; + action->dev_id = dev_id; + action->flags = flags; ++ action->delivery_port = NULL; + + retval = setup_x86_irq (irq, action); + if (retval) +diff --git a/vm/vm_user.c b/vm/vm_user.c +index 59c2a36..6cd9d77 100644 +--- a/vm/vm_user.c ++++ b/vm/vm_user.c +@@ -413,3 +413,117 @@ kern_return_t vm_wire(host, map, start, size, access) + round_page(start+size), + access); + } ++ ++void vm_pages_release(npages, pages, external) ++ int npages; ++ vm_page_t *pages; ++ boolean_t external; ++{ ++ int i; ++ ++ for (i = 0; i < npages; i++) ++ { ++ vm_page_release (pages[i], external); ++ } ++} ++ ++kern_return_t experimental_vm_allocate_contiguous(host_priv, map, result_vaddr, result_paddr, size) ++ host_t host_priv; ++ vm_map_t map; ++ vm_address_t *result_vaddr; ++ vm_address_t *result_paddr; ++ vm_size_t size; ++{ ++ extern vm_size_t vm_page_big_pagenum; ++ extern vm_offset_t phys_first_addr; ++ extern vm_offset_t phys_last_addr; ++ ++ int npages; ++ int i; ++ vm_page_t *pages; ++ vm_object_t object; ++ vm_map_entry_t entry; ++ kern_return_t kr; ++ vm_address_t vaddr; ++ vm_offset_t offset = 0; ++ ++ if (host_priv == HOST_NULL) ++ return KERN_INVALID_HOST; ++ ++ if (map == VM_MAP_NULL) ++ return KERN_INVALID_TASK; ++ ++ size = round_page(size); ++ ++ /* We allocate the contiguous physical pages for the buffer. */ ++ ++ npages = size / PAGE_SIZE; ++ pages = (vm_page_t) kalloc (npages * sizeof (vm_page_t)); ++ if (pages == NULL) ++ { ++ return KERN_RESOURCE_SHORTAGE; ++ } ++ ++ if (vm_page_big_pagenum == 0) ++ vm_page_big_pagenum = atop(phys_last_addr - phys_first_addr); ++ ++ kr = vm_page_grab_contiguous_pages(npages, pages, NULL, TRUE); ++ if (kr) ++ { ++ kfree (pages, npages * sizeof (vm_page_t)); ++ return kr; ++ } ++ ++ /* Allocate the object ++ * and find the virtual address for the DMA buffer */ ++ ++ object = vm_object_allocate(size); ++ vm_map_lock(map); ++ /* TODO user_wired_count might need to be set as 1 */ ++ kr = vm_map_find_entry(map, &vaddr, size, (vm_offset_t) 0, ++ VM_OBJECT_NULL, &entry); ++ if (kr != KERN_SUCCESS) ++ { ++ vm_map_unlock(map); ++ vm_object_deallocate(object); ++ kfree (pages, npages * sizeof (vm_page_t)); ++ vm_pages_release (npages, pages, TRUE); ++ return kr; ++ } ++ ++ entry->object.vm_object = object; ++ entry->offset = 0; ++ ++ /* We can unlock map now. */ ++ vm_map_unlock(map); ++ ++ /* We have physical pages we need and now we need to do the mapping. */ ++ ++ pmap_pageable (map->pmap, vaddr, vaddr + size, FALSE); ++ ++ *result_vaddr = vaddr; ++ *result_paddr = pages[0]->phys_addr; ++ ++ for (i = 0; i < npages; i++) ++ { ++ vm_object_lock(object); ++ vm_page_lock_queues(); ++ vm_page_insert(pages[i], object, offset); ++ vm_page_wire(pages[i]); ++ vm_page_unlock_queues(); ++ vm_object_unlock(object); ++ ++ /* Enter it in the kernel pmap */ ++ PMAP_ENTER(map->pmap, vaddr, pages[i], VM_PROT_DEFAULT, TRUE); ++ ++ vm_object_lock(object); ++ PAGE_WAKEUP_DONE(pages[i]); ++ vm_object_unlock(object); ++ ++ vaddr += PAGE_SIZE; ++ offset += PAGE_SIZE; ++ } ++ ++ kfree ((vm_offset_t) pages, npages * sizeof (vm_page_t)); ++ return KERN_SUCCESS; ++} +diff --git a/linux/dev/drivers/block/genhd.c b/linux/dev/drivers/block/genhd.c +index 95b499b..c360af6 100644 +--- a/linux/dev/drivers/block/genhd.c ++++ b/linux/dev/drivers/block/genhd.c +@@ -786,7 +786,9 @@ void device_setup(void) + #ifdef MACH + linux_intr_pri = SPL6; + #endif +- net_dev_init(); ++ extern char *kernel_cmdline; ++ if (!strstr(kernel_cmdline, " nonetdev")) ++ net_dev_init(); + #endif + #ifndef MACH + console_map_init(); +diff --git a/kern/ipc_kobject.c b/kern/ipc_kobject.c +index c922d7f..078b1d0 100644 +--- a/kern/ipc_kobject.c ++++ b/kern/ipc_kobject.c +@@ -151,7 +151,8 @@ ipc_kobject_server(request) + device_server_routine(), + device_pager_server_routine(), + mach4_server_routine(), +- gnumach_server_routine(); ++ gnumach_server_routine(), ++ experimental_server_routine(); + #if MACH_DEBUG + extern mig_routine_t mach_debug_server_routine(); + #endif +@@ -170,6 +171,7 @@ ipc_kobject_server(request) + #endif /* MACH_DEBUG */ + || (routine = mach4_server_routine(&request->ikm_header)) != 0 + || (routine = gnumach_server_routine(&request->ikm_header)) != 0 ++ || (routine = experimental_server_routine(&request->ikm_header)) != 0 + #if MACH_MACHINE_ROUTINES + || (routine = MACHINE_SERVER_ROUTINE(&request->ikm_header)) != 0 + #endif /* MACH_MACHINE_ROUTINES */ diff --git a/debian/patches/series b/debian/patches/series new file mode 100644 index 0000000..8433870 --- /dev/null +++ b/debian/patches/series @@ -0,0 +1,6 @@ +00_clean_gfdl.patch +11_ignore_CSIn.patch +12_version_suffix.patch +50_initrd.patch +60_bigmem.patch +70_dde.patch diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..2ecba4b --- /dev/null +++ b/debian/rules @@ -0,0 +1,252 @@ +#!/usr/bin/make -f +# +# Based on the work by Marcus Brinkmann <brinkmd@debian.org> +# Rewritten by Guillem Jover <guillem@debian.org> +# + +FULL_VERSION := $(shell dpkg-parsechangelog | grep ^Version: | sed -e 's/^.*: //g') +NOEPOCH_VERSION := $(shell echo $(FULL_VERSION) | sed -e 's/.*://g') +TAR_VERSION := $(shell echo $(NOEPOCH_VERSION) | sed -e 's/-.*//g') +VERSION := $(shell echo $(TAR_VERSION) | sed -e 's/\.dfsg.*//g') +MAJOR := $(shell echo $(VERSION) | sed -e 's/\..*//g') +DEB_HOST_ARCH_OS := $(shell dpkg-architecture -qDEB_HOST_ARCH_OS) + + +MACHINE := 486 + +pkg := gnumach-image-$(VERSION)-$(MACHINE) +pkg_xen := gnumach-image-$(VERSION)-xen-$(MACHINE) +pkg_udeb := kernel-image-$(VERSION)-$(MACHINE)-di +pkg_xen_udeb := kernel-image-$(VERSION)-xen-$(MACHINE)-di +pkg_dbg := gnumach-image-$(VERSION)-$(MACHINE)-dbg +pkg_xen_dbg := gnumach-image-$(VERSION)-xen-$(MACHINE)-dbg +pkg_common := gnumach-common +pkg_dev := gnumach-dev + +D := $(CURDIR)/debian/tmp +D_UDEB := $(D)-udeb +D_XEN := $(D)-xen +D_XEN_UDEB := $(D)-xen-udeb +D_DBG := $(D)-dbg +D_XEN_DBG := $(D)-xen-dbg + +DEB_BUILD_GNU_TYPE := $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) +DEB_HOST_GNU_TYPE := $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) + +CFLAGS = -Wall -g -pipe -fno-strict-aliasing + +ifneq (,$(filter noopt,$(DEB_BUILD_OPTIONS))) + CFLAGS += -O0 +else + CFLAGS += -O2 +endif + +ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) +DEB_PARALLEL_JOBS ?= $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) +endif + +ifneq (,$(DEB_PARALLEL_JOBS)) +MAKEFLAGS += -j$(DEB_PARALLEL_JOBS) +endif + +drivers := + +common_configure := \ + --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE) \ + --prefix=/usr \ + --exec-prefix=/ \ + --disable-net-group \ + --disable-pcmcia-group \ + --disable-wireless-group + +configure: configure.ac + autoreconf -fi + +build/config.status: configure + dh_testdir + + -mkdir build + cd build && PACKAGE_VERSION_SUFFIX=-486 ../configure $(drivers) \ + CFLAGS="$(CFLAGS)" \ + $(common_configure) + +build-xen/config.status: configure + dh_testdir + + -mkdir build-xen + cd build-xen && PACKAGE_VERSION_SUFFIX=-xen-486 ../configure \ + CFLAGS="$(CFLAGS)" \ + $(common_configure) \ + --enable-platform=xen + +build-dbg/config.status: configure + dh_testdir + + -mkdir build-dbg + cd build-dbg && PACKAGE_VERSION_SUFFIX=-486-dbg ../configure --enable-kdb $(drivers) \ + CFLAGS="$(CFLAGS) -fno-omit-frame-pointer" \ + $(common_configure) \ + +build-xen-dbg/config.status: configure + dh_testdir + + -mkdir build-xen-dbg + cd build-xen-dbg && PACKAGE_VERSION_SUFFIX=-xen-486-dbg ../configure --enable-kdb \ + CFLAGS="$(CFLAGS) -fno-omit-frame-pointer" \ + $(common_configure) \ + --enable-platform=xen + +build-arch: build/stamp build-xen/stamp build-dbg/stamp build-xen-dbg/stamp +build-indep: build-arch +build: build-arch build-indep + +build/stamp: build/config.status + dh_testdir + +ifneq (,$(filter nocheck,$(DEB_BUILD_OPTIONS))) + $(MAKE) -C build +else + $(MAKE) -C build check +endif + touch $@ + +build-xen/stamp: build-xen/config.status + dh_testdir + +ifneq (,$(filter nocheck,$(DEB_BUILD_OPTIONS))) + $(MAKE) -C build-xen +else + $(MAKE) -C build-xen check +endif + touch $@ + +build-dbg/stamp: build-dbg/config.status + dh_testdir + +ifneq (,$(filter nocheck,$(DEB_BUILD_OPTIONS))) + $(MAKE) -C build-dbg +else + $(MAKE) -C build-dbg check +endif + touch $@ + +build-xen-dbg/stamp: build-xen-dbg/config.status + dh_testdir + +ifneq (,$(filter nocheck,$(DEB_BUILD_OPTIONS))) + $(MAKE) -C build-xen-dbg +else + $(MAKE) -C build-xen-dbg check +endif + touch $@ + +clean: + dh_testdir + + rm -f machine + rm -rf build build-xen build-dbg build-xen-dbg $(D_UDEB) $(D_XEN_UDEB) $(D_XEN) $(D_DBG) $(D_XEN_DBG) + + # Clean up autogenerated cruft + rm -rf autom4te.cache build-aux + rm -f aclocal.m4 config.h.in configure INSTALL Makefile.in + find -name '*~' -o -name '*.rej' -o -name '*.orig' | xargs rm -f + + rm -f debian/gnumach-image-*.preinst + rm -f debian/gnumach-image-*.prerm + rm -f debian/gnumach-image-*.postinst + rm -f debian/gnumach-image-*.postrm + + dh_clean + +install: build + dh_testdir + dh_testroot + dh_prep -a + -rm -rf $(D_DBG) + dh_installdirs -a + + $(MAKE) -C build install \ + DESTDIR=$(D) + + $(MAKE) -C build-xen install \ + DESTDIR=$(D_XEN) + + $(MAKE) -C build-dbg install-exec \ + DESTDIR=$(D_DBG) \ + + $(MAKE) -C build-xen-dbg install-exec \ + DESTDIR=$(D_XEN_DBG) \ + + mkdir -p $(D_UDEB)/boot + cp $(D)/boot/gnumach $(D_UDEB)/boot/ + mv $(D)/boot/gnumach $(D)/boot/gnumach-$(VERSION)-$(MACHINE) + mkdir -p $(D_XEN_UDEB)/boot + cp $(D_XEN)/boot/gnumach $(D_XEN_UDEB)/boot/ + mv $(D_XEN)/boot/gnumach $(D_XEN)/boot/gnumach-$(VERSION)-xen-$(MACHINE) + mv $(D_DBG)/boot/gnumach $(D_DBG)/boot/gnumach-$(VERSION)-$(MACHINE)-dbg + mv $(D_XEN_DBG)/boot/gnumach $(D_XEN_DBG)/boot/gnumach-$(VERSION)-xen-$(MACHINE)-dbg + +ifeq ($(DEB_HOST_ARCH_OS),hurd) + for script in preinst prerm postinst postrm ; do \ + for prefix in "" -xen ; do \ + for suffix in "" -dbg ; do \ + sed -e "s/@VERSION@/$(VERSION)/g" \ + -e "s/@RELEASE@/$(VERSION)$$prefix-$(MACHINE)$$suffix/g" \ + debian/gnumach-image.$$script.in \ + > debian/gnumach-image-$(VERSION)$$prefix-$(MACHINE)$$suffix.$$script ; \ + done ; \ + done ; \ + done +endif + +binary: binary-indep binary-arch + +binary-indep: install + dh_testdir + dh_testroot + + dh_install -i --sourcedir=$(D) + + dh_installdocs -i + dh_installchangelogs -i -k ChangeLog +# dh_installinfo -a + + dh_compress -i + dh_fixperms -i + dh_installdeb -i + dh_gencontrol -i + dh_md5sums -i + dh_builddeb -i + +binary-arch: install + dh_testdir + dh_testroot + + dh_install -a -N$(pkg_udeb) -N$(pkg_xen) -N$(pkg_xen_udeb) -N$(pkg_dbg) -N$(pkg_xen_dbg) --sourcedir=$(D) + dh_install -p$(pkg_udeb) --sourcedir=$(D_UDEB) + dh_install -p$(pkg_xen) --sourcedir=$(D_XEN) + dh_install -p$(pkg_xen_udeb) --sourcedir=$(D_XEN_UDEB) + dh_install -p$(pkg_dbg) --sourcedir=$(D_DBG) + dh_install -p$(pkg_xen_dbg) --sourcedir=$(D_XEN_DBG) + + dh_installdocs -a + dh_installchangelogs -a -k ChangeLog + + dh_link -a + dh_strip -a -N$(pkg_dbg) -N$(pkg_xen_dbg) + dh_compress -a -N$(pkg) -N$(pkg_udeb) -N$(pkg_xen) -N$(pkg_xen_udeb) -N$(pkg_dbg) -N$(pkg_xen_dbg) + dh_compress -p$(pkg) boot/gnumach-$(VERSION)-$(MACHINE) + dh_compress -p$(pkg_udeb) boot/gnumach + dh_compress -p$(pkg_xen) boot/gnumach-$(VERSION)-xen-$(MACHINE) + dh_compress -p$(pkg_xen_udeb) boot/gnumach + dh_compress -p$(pkg_dbg) boot/gnumach-$(VERSION)-$(MACHINE)-dbg + dh_compress -p$(pkg_xen_dbg) boot/gnumach-$(VERSION)-xen-$(MACHINE)-dbg + dh_fixperms -a + dh_installdeb -a + dh_gencontrol -a + dh_md5sums -a + dh_builddeb -a + +.PHONY: build build-arch build-indep clean +.PHONY: install binary binary-indep binary-arch + diff --git a/debian/source/format b/debian/source/format new file mode 100644 index 0000000..163aaf8 --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/debian/source/options b/debian/source/options new file mode 100644 index 0000000..8f04d6d --- /dev/null +++ b/debian/source/options @@ -0,0 +1 @@ +compression = "bzip2" diff --git a/debian/watch b/debian/watch new file mode 100644 index 0000000..30c8f17 --- /dev/null +++ b/debian/watch @@ -0,0 +1,3 @@ +version=3 +opts=dversionmangle=s/\.dfsg\.cvs\d+$// \ +http://ftp.gnu.org/gnu/gnumach/ gnumach-(.*)\.tar\.gz debian uupdate |