Hi,

After building dbus-1.6.12-1 with eglibc-2.17-92 starting dbus-daemon
fails (it was built 80 days ago with eglibc-2.13). The problem is due to
the two statements in dbus/dbus-sysdeps-unix.c:
  *fd_p = socket (domain, type | SOCK_CLOEXEC, protocol);
  cloexec_done = *fd_p >= 0;
  if (*fd_p < 0 && errno == EINVAL)
and
  retval = socketpair(AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC, 0, fds);
  cloexec_done = retval >= 0;
  if (retval < 0 && errno == EINVAL)

Now when SOCK_CLOEXEC is defined in bits/socket.h from 2.16
and hurd/pflocal/pf.c returns EPROTOTYPE not EINVAL problems arise.
The solution is to patch dbus to cover also EPROTYYPE,
  if (*fd_p < 0 && (errno == EINVAL || errno == EPROTOTYPE))
  if (retval < 0 && (errno == EINVAL || errno == EPROTOTYPE))
or to patch pf.c to return EINVAL instead of EPROTOTYPE.

Which way to go?

(see also
eglibc-2.17/debian/patches/hurd-i386/submitted-handle-eprototype.diff
for patches to internal eglibc functions)



-- 
To UNSUBSCRIBE, email to debian-hurd-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/1378154151.21738.15.ca...@g3620.my.own.domain

Reply via email to