Differences between revisions 101 and 240 (spanning 139 versions)
Revision 101 as of 2012-02-05 22:46:01
Size: 15974
Comment:
Revision 240 as of 2021-08-18 21:08:44
Size: 6075
Editor: AndMizyk
Comment: fix formatting
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
# Put translations here # ~-Translation(s): English - [[de/Debian_GNU/Hurd|Deutsch]] ~-Translation(s): English - [[fr/Debian_GNU/Hurd|Français]]-~
Line 14: Line 14:
the main archive and move fully to debian-ports.org."''<<FootNote([[http://lists.debian.org/debian-devel-announce/2011/03/msg00015.html]] - Debian pushes development of the Hurd port)>> the main archive and move fully to Debian unofficial ports."''<<FootNote([[http://lists.debian.org/debian-devel-announce/2011/03/msg00015.html]] - Debian pushes development of the Hurd port)>>
Line 18: Line 18:
''Debian GNU/Hurd'' is an operating system from Debian, but which uses [[http://www.gnu.org/software/hurd/|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 ''[[DebianGnuLinux|Debian GNU/Linux]]''. ''Debian GNU/Hurd'' is an operating system from Debian, but which uses [[http://www.gnu.org/software/hurd/|GNU Hurd]], which is 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 ''[[DebianGnuLinux|Debian GNU/Linux]]''.
Line 39: Line 39:
 * [[http://lists.debian.org/debian-devel-announce/2011/07/msg00002.html|Last bits from the project]]  * [[https://lists.debian.org/debian-devel-announce/2014/05/msg00006.html|Last bits from the project]]
Line 45: Line 45:
== Goals for releasing in wheezy ==  * [[http://bugs.debian.org/cgi-bin/pkgreport.cgi?users=debian-hurd@lists.debian.org;tag=hurd|Bugs]]
Line 47: Line 47:
 * 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
   * DebianBug: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
   * DebianBug: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, DebianBug:646544
   * DebianBug:630415 shows that guile-2.0 will have pthread enabled anyway.
   * to remove
  * (./) hdf5
   * DebianBug:627896
   * to remove
  * hyperestraier
   * DebianBug:558586
   * for w3m.
  * icon
   * DebianBug:654381
   * for lyx.
  * ifupdown
   * TODO
  * isc-dhcp
   * DebianBug: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
   * DebianBug:648187
  * netio
   * ITP: hurdextras?
  * parted
   * decide on partition stuff, and submit
  * pulseaudio
   * --(see https://bugs.freedesktop.org/show_bug.cgi?id=42715 )--
    * needs also SA_NOCLDWAIT
   * needs symbol fixes in the Debian packaging
   * DebianBug:573339
  * qdbm
   * make check fails due to unimplemented msync(), DebianBug:648663
   * does not honor nocheck in DEB_BUILD_OPTIONS, DebianBug: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, DebianBug:648055
  * sane-backends-extras
   * can live without
  * screen
   * trivial fix on DebianBug:522689 , uploaded to experimental
  * (./) sidplay-libs, to remove
   * disable hardsid installation, DebianBug:654826
  * tarfs
   * ITP: hurdextras?
  * webkit
   * Hacked around PTHREAD_KEYS_MAX
   * DebianBug: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
== Goals for releasing in jessie ==
Line 145: Line 49:
== ghc == This is on a separate page:
Line 147: Line 51:
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, fixes are needed in files libraries/unix/dist-install/build/System/Posix/*.hs, basically all lines postfixed by {-# LINE 334 "librari...}

Notably: the offsets in ./libraries/unix/dist-install/build/System/Posix/Files.hs, 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" #-}
}}}

the values in libraries/unix/dist-install/build/System/Posix/IO.hs, use the following instead:

{{{
        flags =
           (if appendFlag then (256) else 0) .|.
    {-# LINE 189 "libraries/unix/./System/Posix/IO.hsc" #-}
           (if exclusiveFlag then (32) else 0) .|.
    {-# LINE 190 "libraries/unix/./System/Posix/IO.hsc" #-}
           (if nocttyFlag then (0) else 0) .|.
    {-# LINE 191 "libraries/unix/./System/Posix/IO.hsc" #-}
           (if nonBlockFlag then (8) else 0) .|.
    {-# LINE 192 "libraries/unix/./System/Posix/IO.hsc" #-}
           (if truncateFlag then (65536) else 0)
    {-# LINE 193 "libraries/unix/./System/Posix/IO.hsc" #-}
    
        (creat, mode_w) = case maybe_mode of
                            Nothing -> (0,0)
                            Just x -> ((64), x)
    {-# LINE 197 "libraries/unix/./System/Posix/IO.hsc" #-}
    
        open_mode = case how of
                       ReadOnly -> (1)
    {-# LINE 200 "libraries/unix/./System/Posix/IO.hsc" #-}
                       WriteOnly -> (2)
    {-# LINE 201 "libraries/unix/./System/Posix/IO.hsc" #-}
                       ReadWrite -> (3)
    {-# LINE 202 "libraries/unix/./System/Posix/IO.hsc" #-}
}}}

{{{
    fdOption2Int :: FdOption -> CInt
    fdOption2Int CloseOnExec = (1)
    {-# LINE 320 "libraries/unix/./System/Posix/IO.hsc" #-}
    fdOption2Int AppendOnWrite = (256)
    {-# LINE 321 "libraries/unix/./System/Posix/IO.hsc" #-}
    fdOption2Int NonBlockingRead = (8)
    {-# LINE 322 "libraries/unix/./System/Posix/IO.hsc" #-}
    fdOption2Int SynchronousWrites = (1024)
    {-# LINE 323 "libraries/unix/./System/Posix/IO.hsc" #-}
}}}

{{{
    throwErrnoIfMinus1_ "getLock" (c_fcntl_lock fd (7) p_flock)
}}}

{{{
    allocaLock (lockreq, mode, start, len) io =
      allocaBytes (20) $ \p -> do
    {-# LINE 395 "libraries/unix/./System/Posix/IO.hsc" #-}
        ((\hsc_ptr -> pokeByteOff hsc_ptr 0)) p (lockReq2Int lockreq :: CShort)
    {-# LINE 396 "libraries/unix/./System/Posix/IO.hsc" #-}
        ((\hsc_ptr -> pokeByteOff hsc_ptr 4)) p (fromIntegral (mode2Int mode) :: CShort)
    {-# LINE 397 "libraries/unix/./System/Posix/IO.hsc" #-}
        ((\hsc_ptr -> pokeByteOff hsc_ptr 8)) p start
    {-# LINE 398 "libraries/unix/./System/Posix/IO.hsc" #-}
        ((\hsc_ptr -> pokeByteOff hsc_ptr 12)) p len
    {-# LINE 399 "libraries/unix/./System/Posix/IO.hsc" #-}
        io p
}}}

{{{
    lockReq2Int :: LockRequest -> CShort
    lockReq2Int ReadLock = (1)
    {-# LINE 403 "libraries/unix/./System/Posix/IO.hsc" #-}
    lockReq2Int WriteLock = (2)
    {-# LINE 404 "libraries/unix/./System/Posix/IO.hsc" #-}
    lockReq2Int Unlock = (3)
    {-# LINE 405 "libraries/unix/./System/Posix/IO.hsc" #-}
}}}

{{{
bytes2ProcessIDAndLock p = do
  req <- ((\hsc_ptr -> peekByteOff hsc_ptr 0)) p
{-# LINE 409 "libraries/unix/./System/Posix/IO.hsc" #-}
  mode <- ((\hsc_ptr -> peekByteOff hsc_ptr 4)) p
{-# LINE 410 "libraries/unix/./System/Posix/IO.hsc" #-}
  start <- ((\hsc_ptr -> peekByteOff hsc_ptr 8)) p
{-# LINE 411 "libraries/unix/./System/Posix/IO.hsc" #-}
  len <- ((\hsc_ptr -> peekByteOff hsc_ptr 12)) p
{-# LINE 412 "libraries/unix/./System/Posix/IO.hsc" #-}
  pid <- ((\hsc_ptr -> peekByteOff hsc_ptr 16)) p
{-# LINE 413 "libraries/unix/./System/Posix/IO.hsc" #-}
  return (pid, (int2req req, int2mode mode, start, len))
}}}

{{{
  int2req :: CShort -> LockRequest
  int2req (1) = ReadLock
{-# LINE 417 "libraries/unix/./System/Posix/IO.hsc" #-}
  int2req (2) = WriteLock
{-# LINE 418 "libraries/unix/./System/Posix/IO.hsc" #-}
  int2req (3) = Unlock
{-# LINE 419 "libraries/unix/./System/Posix/IO.hsc" #-}
  int2req _ = error $ "int2req: bad argument"
}}}

{{{
    throwErrnoIfMinus1_ "setLock" (c_fcntl_lock fd (8) p_flock)
}}}

{{{
        (c_fcntl_lock fd (9) p_flock)
}}}


libraries/unix/dist-install/build/System/Posix/Resource.hs

{{{
    hard <- ((\hsc_ptr -> peekByteOff hsc_ptr 4)) p_rlimit
}}}

{{{
    ((\hsc_ptr -> pokeByteOff hsc_ptr 4)) p_rlimit (packRLimit hard False)
}}}

{{{
packResource ResourceOpenFiles = (8)
}}}

{{{
packResource ResourceTotalMemory = (10)
}}}

{{{
unpackRLimit :: CRLim -> ResourceLimit
unpackRLimit (2147483647) = ResourceLimitInfinity
{-# LINE 102 "libraries/unix/./System/Posix/Resource.hsc" #-}

{-# LINE 103 "libraries/unix/./System/Posix/Resource.hsc" #-}
-- unpackRLimit (4294967295) = ResourceLimitUnknown
{-# LINE 104 "libraries/unix/./System/Posix/Resource.hsc" #-}
-- unpackRLimit (4294967295) = ResourceLimitUnknown
{-# LINE 105 "libraries/unix/./System/Posix/Resource.hsc" #-}
}}}

{{{
packRLimit :: ResourceLimit -> Bool -> CRLim
packRLimit ResourceLimitInfinity _ = (2147483647)
{-# LINE 110 "libraries/unix/./System/Posix/Resource.hsc" #-}

{-# LINE 111 "libraries/unix/./System/Posix/Resource.hsc" #-}
--packRLimit ResourceLimitUnknown True = (4294967295)
{-# LINE 112 "libraries/unix/./System/Posix/Resource.hsc" #-}
--packRLimit ResourceLimitUnknown False = (4294967295)
{-# LINE 113 "libraries/unix/./System/Posix/Resource.hsc" #-}
}}}

And then run make again, and copy ./libraries/unix/dist-install/build/System/Posix/*.hc (but only these files) 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
 * [[Debian_GNU/Hurd_TODO]]
Line 349: Line 55:
 * upgrade libfuse compatibility to >= 2.6.5, with fuse_lowlevel.h, [[http://www.gnu.org/software/hurd/hurd/libfuse.html]]
 * add cpuid-based autoloading of libc0.3-i686
 * add autoloading of libc0.3-xen

== Packages in debian-ports ==

Packages marked with <!> need to be integrated in the main archive.

  * (hurd-any) cardmgr-gnumach
   * wifi, can live without
   * postpone
  * dash
   * DebianBug:755446
  * firefox
   * build fixes
   * DebianBug:822175
  * gdb
   * Fixed upstream
  * gxine
   * No change, just built against fixed samba
  * TOREMOVE: iceweasel
  * icewm
   * build fix, TODO: submit
  * ldb
   * build with patched tdb
  * libpciaccess
   * patched to use PCI arbiter
  * lightdm
   * Drop consolekit dependency DebianBug:924358
  * TOREMOVE: lwip
  * mplayer2
   * Hack around PATH_MAX
  * ntp
   * Ship ntpdate at least.
  * openvpn
   * fix ifconfig usage
  * pciutils
   * patched to use PCI arbiter
  * policykit-1
   * Drop consolekit dependency DebianBug:918446
  * (hurd-any) random-egd
   * make it an alternative to Marcus' C implementation
   * can live without
   * can postpone
  * rsyslog
   * DebianBug:900718
  * samba
   * PIPE_BUF: DebianBug:759010
   * TODO: submit patch for faketime usage
  * tdb
   * DebianBug:759008
  * (hurd-any) util-hurd
  * (hurd-any) wireless-tools-gnumach
   * just for wifi, can live without
   * postpone
  * x86info
   * DebianBug:468696
Line 386: Line 149:
 * [[https://jenkins.debian.net/view/g-i-installation/job/g-i-installation_debian_sid_daily_hurd_lxde/|Daily d-i jenkins]]
Line 389: Line 154:
CategoryPermalink CategoryPermalink CategoryPorts

Translation(s): English - Français

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 unofficial ports."1

What is Debian GNU/Hurd ?

Debian GNU/Hurd is an operating system from Debian, but which uses GNU Hurd, which is 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 jessie

This is on a separate page:

Goals for later

Packages in debian-ports

Packages marked with <!> need to be integrated in the main archive.

  • (hurd-any) cardmgr-gnumach
    • wifi, can live without
    • postpone
  • dash
  • firefox
  • gdb
    • Fixed upstream
  • gxine
    • No change, just built against fixed samba
  • TOREMOVE: iceweasel
  • icewm
    • build fix, TODO: submit
  • ldb
    • build with patched tdb
  • libpciaccess
    • patched to use PCI arbiter
  • lightdm
    • Drop consolekit dependency 924358

  • TOREMOVE: lwip
  • mplayer2
    • Hack around PATH_MAX
  • ntp
    • Ship ntpdate at least.
  • openvpn
    • fix ifconfig usage
  • pciutils
    • patched to use PCI arbiter
  • policykit-1
    • Drop consolekit dependency 918446

  • (hurd-any) random-egd
    • make it an alternative to Marcus' C implementation
    • can live without
    • can postpone
  • rsyslog
  • samba
    • PIPE_BUF: 759010

    • TODO: submit patch for faketime usage
  • tdb
  • (hurd-any) util-hurd
  • (hurd-any) wireless-tools-gnumach
    • just for wifi, can live without
    • postpone
  • x86info

Developer info


CategoryPermalink CategoryPorts

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