Package: consolekit Version: 0.4.6-3 Severity: normal Tags: patch User: debian-...@lists.debian.org Usertags: kfreebsd
Attaching a pair of minor fixes for GNU/kFreeBSD. The upstream part has been forwarded: https://bugs.freedesktop.org/show_bug.cgi?id=73257 https://bugs.freedesktop.org/show_bug.cgi?id=73258 -- Robert Millan
diff -ur consolekit-0.4.6.old/configure.ac consolekit-0.4.6/configure.ac --- consolekit-0.4.6.old/configure.ac 2013-07-19 06:24:09.000000000 +0200 +++ consolekit-0.4.6/configure.ac 2014-01-03 15:34:28.000000000 +0100 @@ -83,10 +83,19 @@ EXTRA_COMPILE_WARNINGS(yes) # Solaris requires libresolv for daemon() -case "$host" in - *-*-solaris*) +case "$host_os" in + solaris*) AC_CHECK_LIB(resolv, daemon, [CONSOLE_KIT_LIBS="$CONSOLE_KIT_LIBS -lresolv"]) ;; + kfreebsd*-gnu) + have_getpeereid=no + AC_CHECK_LIB(bsd, getpeereid, have_getpeereid=yes) + if test "x$have_getpeereid" = "xyes"; then + CONSOLE_KIT_LIBS="${CONSOLE_KIT_LIBS} -lbsd" + TOOLS_LIBS="${TOOLS_LIBS} -lbsd" + AC_DEFINE(HAVE_GETPEEREID, [], [Define if we have getpeereid]) + fi + ;; esac diff -ur consolekit-0.4.6.old/debian/control consolekit-0.4.6/debian/control --- consolekit-0.4.6.old/debian/control 2013-09-11 23:08:47.000000000 +0200 +++ consolekit-0.4.6/debian/control 2013-12-29 01:55:52.000000000 +0100 @@ -16,6 +16,7 @@ libpam0g-dev, libpolkit-gobject-1-dev (>= 0.92), zlib1g-dev, + libbsd-dev (>= 0.3.0~) [kfreebsd-any], dh-autoreconf Standards-Version: 3.9.3 Vcs-Git: git://git.debian.org/git/pkg-utopia/consolekit.git diff -ur consolekit-0.4.6.old/src/ck-sysdeps-unix.c consolekit-0.4.6/src/ck-sysdeps-unix.c --- consolekit-0.4.6.old/src/ck-sysdeps-unix.c 2013-07-19 06:15:28.000000000 +0200 +++ consolekit-0.4.6/src/ck-sysdeps-unix.c 2014-01-03 15:34:41.000000000 +0100 @@ -100,6 +100,15 @@ if (ucred != NULL) { ucred_free (ucred); } +#elif defined(HAVE_GETPEEREID) + gid_t dummy; + + if (getpeereid (socket_fd, &uid_read, &dummy) == 0) { + ret = TRUE; + } else { + g_warning ("Failed to getpeereid() credentials: %s\n", + g_strerror (errno)); + } #else /* !SO_PEERCRED && !HAVE_GETPEERUCRED */ g_warning ("Socket credentials not supported on this OS\n"); #endif @@ -129,7 +138,7 @@ { #ifdef __linux__ struct vt_stat vts; -#elif defined(__FreeBSD__) +#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) int vers; #endif int kb_ok; @@ -137,7 +146,7 @@ errno = 0; #ifdef __linux__ kb_ok = (ioctl (fd, VT_GETSTATE, &vts) == 0); -#elif defined(__FreeBSD__) +#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) kb_ok = (ioctl (fd, CONS_GETVERS, &vers) == 0); #else kb_ok = 1;