Differences between revisions 96 and 97
Revision 96 as of 2012-02-05 20:13:25
Size: 10501
Comment:
Revision 97 as of 2012-02-05 20:59:44
Size: 10604
Comment:
Deletions are marked like this. Additions are marked like this.
Line 155: Line 155:
After having run make in the host, fix the offsets in ./libraries/unix/dist-install/build/System/Posix/Files.hs, they are bogus, use the following instead, and fix allocation from 96 to 128. After having run make in the host and transferred the files to the target, fix the offsets in ./libraries/unix/dist-install/build/System/Posix/Files.hs, they are bogus, use the following instead, and fix allocation from 96 to 128.
Line 193: Line 193:
And then run make again, and proceed with copying to the target. And then run make again, and copy ./libraries/unix/dist-install/build/System/Posix/Files.hs (but only that file) to the target.

Debian > Debian GNU > Debian GNU/Hurd


This page attempts to be a reference for all resources related to Debian GNU/Hurd that can be useful for users and developers. Feel free to add more stuff as you see fit.

"In a discussion with the Debian Hurd porters it was decided that the Hurd port stays on FTPMaster until Wheezy is released. Should they have managed to get the port into a state that it is released together with all the others (probably as a technology preview), it is kept in the archive. Should they not manage this the port will be removed from the main archive and move fully to debian-ports.org."1

What is Debian GNU/Hurd ?

Debian GNU/Hurd is an operating system from Debian, but which uses GNU Hurd, which a set of servers, running on top of the GNU Mach microkernel instead of the kernel named Linux (thus the name Debian GNU/Hurd). Some day, most applications will exist both in Debian GNU/Hurd and in Debian GNU/Linux.

Basic info

Goals for releasing in wheezy

  • buildd
    • security
    • DSA
  • proper dhcp support in installed system
    • use ifup/ifdown instead of translators entry?
  • debian-ports packages need to be integrated in the main archive.
    • binutils
      • 629866

      • Not critical, can live without
    • cardmgr-gnumach
      • wifi, can live without
    • console-driver-xkb
      • we should probably just integrate it in the hurd package
      • See the concerns on the mailing list archive (bug-hurd, "XKB's keymaps for the Hurd console")
    • gcc-4.4 gcc-4.6
      • 629866

      • not critical, can live without
    • ghc6
      • Difficult hang during build
      • uninstallable in ports
    • gopherfs
      • ITP: hurdextras?
    • grub2
      • decide on partition stuff, and submit
    • (./) guile-1.8

      • linked with -lpthread, to avoid dlopen(lpthread) bug, 646544

      • 630415 shows that guile-2.0 will have pthread enabled anyway.

      • to remove
    • (./) hdf5

    • hyperestraier
    • icon
    • ifupdown
      • TODO
    • isc-dhcp
      • 616290

      • Need to discuss directly with upstream
    • libdrm
      • This is just a stub. integrate in the main archive?
      • Needs to be worked on!
    • libusb
      • This is just a stub. integrate in the main archive?
      • Needs to be worked on!
    • lockdev
      • TODO
    • mx
    • netio
      • ITP: hurdextras?
    • parted
      • decide on partition stuff, and submit
    • pulseaudio
    • qdbm
      • make check fails due to unimplemented msync(), 648663

      • does not honor nocheck in DEB_BUILD_OPTIONS, 648649

    • random-egd
      • make it an alternative to Marcus' C implementation
      • can live without
    • ruby1.9.1
      • (./) Fix __libc_stack_end in glibc, pending

      • (./) apply patch to fix struct dirent size once upstream agreed.

      • fix PATH_MAX issue, 648055

    • sane-backends-extras
      • can live without
    • screen
      • trivial fix on 522689 , uploaded to experimental

    • (./) sidplay-libs, to remove

      • disable hardsid installation, 654826

    • tarfs
      • ITP: hurdextras?
    • webkit
      • Hacked around PTHREAD_KEYS_MAX
      • 649192

    • wireless-tools-gnumach
      • just for wifi, can live without
  • Be able to install at least the base from official mirror (should be almost done, missing grub/parted, dhcp)
  • Integrate DDE to get nowadays' network support.
  • Get Xorg + gnome/kde/xfce (xfce should work, kde is missing working dbus (due to local socket auth and bugs in select() cornercases)) + some webbrowser working (iceweasel 9 works, though not https).
  • (./) Fix ext2fs uncleanness at reboot http://www.gnu.org/software/hurd/open_issues/sync_but_still_unclean_filesystem.html

  • Switch to plain sysv startup?
  • (./) Enable console by default? (we now have proper kernel message relaying)

  • fix "su" to root discrepancy (PATH does not include sbin etc.)
  • Good archive coverage.
    • We're at 70%, kfreebsd is at 88%. Although probably not reachable, we can probably do better with
      • ghc
      • mono
      • gnat
      • (./) ruby1.9.1

ghc

Follow http://hackage.haskell.org/trac/ghc/wiki/Building/Porting

Make sure to use the same path in the host and in the target for the compilation.

For the triplet, use i386-unknown-gnu. Better cross-build from an i386 host.

Don't use perl boot: the package is already "booted".

After having run make in the host and transferred the files to the target, fix the offsets in ./libraries/unix/dist-install/build/System/Posix/Files.hs, they are bogus, use the following instead, and fix allocation from 96 to 128.

    deviceID (FileStatus stat) =
      unsafePerformIO $ withForeignPtr stat $ ((\hsc_ptr -> peekByteOff hsc_ptr 4))
    {-# LINE 314 "libraries/unix/./System/Posix/Files.hsc" #-}
    fileID (FileStatus stat) =
      unsafePerformIO $ withForeignPtr stat $ ((\hsc_ptr -> peekByteOff hsc_ptr 12))
    {-# LINE 316 "libraries/unix/./System/Posix/Files.hsc" #-}
    fileMode (FileStatus stat) =
      unsafePerformIO $ withForeignPtr stat $ ((\hsc_ptr -> peekByteOff hsc_ptr 28))
    {-# LINE 318 "libraries/unix/./System/Posix/Files.hsc" #-}
    linkCount (FileStatus stat) =
      unsafePerformIO $ withForeignPtr stat $ ((\hsc_ptr -> peekByteOff hsc_ptr 32))
    {-# LINE 320 "libraries/unix/./System/Posix/Files.hsc" #-}
    fileOwner (FileStatus stat) =
      unsafePerformIO $ withForeignPtr stat $ ((\hsc_ptr -> peekByteOff hsc_ptr 36))
    {-# LINE 322 "libraries/unix/./System/Posix/Files.hsc" #-}
    fileGroup (FileStatus stat) =
      unsafePerformIO $ withForeignPtr stat $ ((\hsc_ptr -> peekByteOff hsc_ptr 40))
    {-# LINE 324 "libraries/unix/./System/Posix/Files.hsc" #-}
    specialDeviceID (FileStatus stat) =
      unsafePerformIO $ withForeignPtr stat $ ((\hsc_ptr -> peekByteOff hsc_ptr 24))
    {-# LINE 326 "libraries/unix/./System/Posix/Files.hsc" #-}
    fileSize (FileStatus stat) =
      unsafePerformIO $ withForeignPtr stat $ ((\hsc_ptr -> peekByteOff hsc_ptr 44))
    {-# LINE 328 "libraries/unix/./System/Posix/Files.hsc" #-}
    accessTime (FileStatus stat) =
      unsafePerformIO $ withForeignPtr stat $ ((\hsc_ptr -> peekByteOff hsc_ptr 52))
    {-# LINE 330 "libraries/unix/./System/Posix/Files.hsc" #-}
    modificationTime (FileStatus stat) =
      unsafePerformIO $ withForeignPtr stat $ ((\hsc_ptr -> peekByteOff hsc_ptr 60))
    {-# LINE 332 "libraries/unix/./System/Posix/Files.hsc" #-}
    statusChangeTime (FileStatus stat) =
      unsafePerformIO $ withForeignPtr stat $ ((\hsc_ptr -> peekByteOff hsc_ptr 68))
    {-# LINE 334 "libraries/unix/./System/Posix/Files.hsc" #-}

And then run make again, and copy ./libraries/unix/dist-install/build/System/Posix/Files.hs (but only that file) to the target.

In <T>/mk/build.mk, append -lffi to ghc_stage2_v_EXTRA_CC_OPTS and -lffi -lncurses -ltermcap to utils/ghc-pkg_dist-install_v_EXTRA_CC_OPTS

Goals for later

  • IPv6 support in d-i (after it is settled for linux).

Developer info


CategoryPermalink

  1. http://lists.debian.org/debian-devel-announce/2011/03/msg00015.html - Debian pushes development of the Hurd port (1)