diff options
author | youri <youri@pkgsrc.org> | 2016-06-18 10:23:16 +0000 |
---|---|---|
committer | youri <youri@pkgsrc.org> | 2016-06-18 10:23:16 +0000 |
commit | 32910bb96152c1a9e747b00284b44d876ad0099e (patch) | |
tree | 6f6012be326b875b81ba55082fa45572e7f769e4 /sysutils/consolekit | |
parent | f2ac92b8dd8d8f5163067d6b194eeb3c08317f47 (diff) | |
download | pkgsrc-32910bb96152c1a9e747b00284b44d876ad0099e.tar.gz |
consolekit: Update to 1.0.2 using ConsoleKit2, the continuation of
consolekit.
Diffstat (limited to 'sysutils/consolekit')
-rw-r--r-- | sysutils/consolekit/MESSAGE | 9 | ||||
-rw-r--r-- | sysutils/consolekit/Makefile | 91 | ||||
-rw-r--r-- | sysutils/consolekit/PLIST | 26 | ||||
-rw-r--r-- | sysutils/consolekit/buildlink3.mk | 6 | ||||
-rw-r--r-- | sysutils/consolekit/distinfo | 17 | ||||
-rw-r--r-- | sysutils/consolekit/files/50-shutdown.rules | 9 | ||||
-rw-r--r-- | sysutils/consolekit/files/ck-get-x11-display-device.FreeBSD | 35 | ||||
-rw-r--r-- | sysutils/consolekit/files/ck-get-x11-server-pid.FreeBSD | 17 | ||||
-rw-r--r-- | sysutils/consolekit/files/ck-sysdeps-netbsd.c | 412 | ||||
-rw-r--r-- | sysutils/consolekit/files/ck-sysdeps-openbsd.c | 471 | ||||
-rw-r--r-- | sysutils/consolekit/patches/patch-aa | 38 | ||||
-rw-r--r-- | sysutils/consolekit/patches/patch-ab | 32 | ||||
-rw-r--r-- | sysutils/consolekit/patches/patch-ac | 21 | ||||
-rw-r--r-- | sysutils/consolekit/patches/patch-ad | 18 | ||||
-rw-r--r-- | sysutils/consolekit/patches/patch-ae | 127 | ||||
-rw-r--r-- | sysutils/consolekit/patches/patch-af | 231 | ||||
-rw-r--r-- | sysutils/consolekit/patches/patch-data_Makefile.am | 15 |
17 files changed, 114 insertions, 1461 deletions
diff --git a/sysutils/consolekit/MESSAGE b/sysutils/consolekit/MESSAGE new file mode 100644 index 00000000000..4431ac0d22a --- /dev/null +++ b/sysutils/consolekit/MESSAGE @@ -0,0 +1,9 @@ +=========================================================================== +$NetBSD: MESSAGE,v 1.1 2016/06/18 10:23:16 youri Exp $ + +ConsoleKit: + +Users in the operator group can stop, restart, suspend, hibernate the +machine as described in ${PREFIX}/share/polkit-1/rules.d/50-shutdown.rules. + +=========================================================================== diff --git a/sysutils/consolekit/Makefile b/sysutils/consolekit/Makefile index a57f13f07cd..a664ea03bd3 100644 --- a/sysutils/consolekit/Makefile +++ b/sysutils/consolekit/Makefile @@ -1,63 +1,74 @@ -# $NetBSD: Makefile,v 1.30 2016/06/04 16:28:22 youri Exp $ - -CONSOLEKIT_VER= 0.4.6 -DISTNAME= ConsoleKit-${CONSOLEKIT_VER} -PKGNAME= consolekit-${CONSOLEKIT_VER} -PKGREVISION= 2 -CATEGORIES= sysutils -MASTER_SITES= http://www.freedesktop.org/software/ConsoleKit/dist/ -EXTRACT_SUFX= .tar.xz - -MAINTAINER= pkgsrc-users@NetBSD.org -HOMEPAGE= http://www.freedesktop.org/wiki/Software/ConsoleKit +# $NetBSD: Makefile,v 1.31 2016/06/18 10:23:16 youri Exp $ + +CONSOLEKIT_VER= 1.0.2 +DISTNAME= ${CONSOLEKIT_VER} +PKGNAME= consolekit-${CONSOLEKIT_VER} +CATEGORIES= sysutils +MASTER_SITES= ${MASTER_SITE_GITHUB:=ConsoleKit2/} + +MAINTAINER= youri@NetBSD.org +HOMEPAGE= https://github.com/ConsoleKit2/ConsoleKit2/ COMMENT= Framework for defining and tracking users, login sessions, and seats LICENSE= gnu-gpl-v2 +GITHUB_PROJECT= ConsoleKit2 +GITHUB_TAG= ${CONSOLEKIT_VER} + +MESSAGE_SUBST+= PREFIX=${PREFIX} + +BUILD_DEFS+= VARBASE \ + PKG_SYSCONFBASE + +EGDIR= ${PREFIX}/share/examples/consolekit PKG_SYSCONFSUBDIR= ConsoleKit +RULESDIR= ${PREFIX}/share/polkit-1/rules.d -EGDIR= ${PREFIX}/share/examples/consolekit -CONF_FILES+= ${EGDIR}/00-primary.seat ${PKG_SYSCONFDIR}/run-seat.d/00-primary.seat -CONF_FILES+= ${EGDIR}/ConsoleKit.conf ${PKG_SYSCONFBASE}/dbus-1/system.d/ConsoleKit.conf +MAKE_DIRS= ${PKG_SYSCONFDIR}/run-seat.d \ + ${PKG_SYSCONFDIR}/run-session.d \ + ${PKG_SYSCONFDIR}/seats.d \ + ${PKG_SYSCONFBASE}/dbus-1/system.d \ + ${PKG_SYSCONFBASE}/logrotate.d \ + ${PKG_SYSCONFBASE}/X11/xinit/xinitrc.d -MAKE_DIRS= ${PKG_SYSCONFDIR}/run-seat.d -BUILD_DEFS+= VARBASE -BUILD_DEFS+= PKG_SYSCONFBASE +CONF_FILES+= ${EGDIR}/ConsoleKit/seats.d/00-primary.seat \ + ${PKG_SYSCONFDIR}/seats.d/00-primary.seat \ + ${EGDIR}/dbus-1/system.d/ConsoleKit.conf \ + ${PKG_SYSCONFBASE}/dbus-1/system.d/ConsoleKit.conf \ + ${EGDIR}/logrotate.d/consolekit \ + ${PKG_SYSCONFBASE}/logrotate.d/consolekit \ + ${EGDIR}/X11/xinit/xinitrc.d/90-consolekit \ + ${PKG_SYSCONFBASE}/X11/xinit/xinitrc.d/90-consolekit -GNU_CONFIGURE= YES -USE_PKGLOCALEDIR= YES -USE_TOOLS+= gmake intltool msgfmt perl pkg-config -USE_TOOLS+= autoconf automake autoreconf -USE_LIBTOOL= YES +GNU_CONFIGURE= YES +USE_TOOLS+= gmake intltool msgfmt perl pkg-config automake +USE_LIBTOOL= YES -CONFIGURE_ARGS+= --sysconfdir=${PKG_SYSCONFBASE:Q} -CONFIGURE_ARGS+= --localstatedir=${VARBASE} +CONFIGURE_ARGS+=--sysconfdir=${PKG_SYSCONFBASE} \ + --localstatedir=${VARBASE} \ + --enable-pam-module \ + --with-pam-module-dir=${PREFIX}/lib/security \ CONFIGURE_ARGS.SunOS+= --enable-rbac-shutdown=solaris.system.shutdown -# TODO -#CONFIGURE_ARGS+= --enable-pam-module -#.include "../../mk/pam.buildlink3.mk" - -post-extract: - ${CP} ${FILESDIR}/ck-sysdeps-netbsd.c ${WRKSRC}/src/ - ${CP} ${FILESDIR}/ck-sysdeps-openbsd.c ${WRKSRC}/src/ +INSTALL_MAKE_FLAGS+= sysconfdir=${EGDIR} \ + DBUS_SYS_DIR=${EGDIR}/dbus-1/system.d \ + XINITRC_DIR=${EGDIR}/X11/xinit/xinitrc.d pre-configure: - cd ${WRKSRC} && autoreconf -vi ${AUTORECONF_ARGS} + cd ${WRKSRC} && ./autogen.sh -.include "../../mk/bsd.prefs.mk" -.if ${OPSYS} == "FreeBSD" || ${OPSYS} == "DragonFly" post-install: - ${INSTALL_SCRIPT} ${FILESDIR}/ck-get-x11-display-device.FreeBSD \ - ${DESTDIR}${PREFIX}/libexec/ck-get-x11-display-device - ${INSTALL_SCRIPT} ${FILESDIR}/ck-get-x11-server-pid.FreeBSD \ - ${DESTDIR}${PREFIX}/libexec/ck-get-x11-server-pid -.endif + ${MKDIR} ${DESTDIR}${RULESDIR} && \ + ${INSTALL_DATA} ${FILESDIR}/50-shutdown.rules \ + ${DESTDIR}${RULESDIR}/50-shutdown.rules + +BUILD_DEPENDS+= gdbus-codegen-[0-9]*:../../devel/gdbus-codegen .include "../../devel/zlib/buildlink3.mk" .include "../../security/polkit/buildlink3.mk" .include "../../sysutils/dbus/buildlink3.mk" .include "../../sysutils/dbus-glib/buildlink3.mk" .include "../../x11/libX11/buildlink3.mk" +.include "../../mk/pam.buildlink3.mk" .include "../../mk/bsd.pkg.mk" diff --git a/sysutils/consolekit/PLIST b/sysutils/consolekit/PLIST index dd74246df01..2b03c62970d 100644 --- a/sysutils/consolekit/PLIST +++ b/sysutils/consolekit/PLIST @@ -1,15 +1,24 @@ -@comment $NetBSD: PLIST,v 1.6 2016/06/04 16:28:22 youri Exp $ +@comment $NetBSD: PLIST,v 1.7 2016/06/18 10:23:16 youri Exp $ bin/ck-history bin/ck-launch-session bin/ck-list-sessions include/ConsoleKit/ck-connector/ck-connector.h +lib/ConsoleKit/scripts/ck-system-hibernate +lib/ConsoleKit/scripts/ck-system-hybridsleep lib/ConsoleKit/scripts/ck-system-restart lib/ConsoleKit/scripts/ck-system-stop +lib/ConsoleKit/scripts/ck-system-suspend lib/libck-connector.la lib/pkgconfig/ck-connector.pc +lib/security/pam_ck_connector.la libexec/ck-collect-session-info libexec/ck-get-x11-display-device libexec/ck-get-x11-server-pid +man/man1/ck-history.1 +man/man1/ck-launch-session.1 +man/man1/ck-list-sessions.1 +man/man1/console-kit-daemon.1m +man/man8/pam_ck_connector.8 sbin/ck-log-system-restart sbin/ck-log-system-start sbin/ck-log-system-stop @@ -18,10 +27,17 @@ share/dbus-1/interfaces/org.freedesktop.ConsoleKit.Manager.xml share/dbus-1/interfaces/org.freedesktop.ConsoleKit.Seat.xml share/dbus-1/interfaces/org.freedesktop.ConsoleKit.Session.xml share/dbus-1/system-services/org.freedesktop.ConsoleKit.service -share/examples/consolekit/00-primary.seat -share/examples/consolekit/ConsoleKit.conf +share/examples/consolekit/ConsoleKit/seats.d/00-primary.seat +share/examples/consolekit/X11/xinit/xinitrc.d/90-consolekit +share/examples/consolekit/dbus-1/system.d/ConsoleKit.conf +share/examples/consolekit/logrotate.d/consolekit +share/locale/bg/LC_MESSAGES/ConsoleKit2.mo +share/locale/es/LC_MESSAGES/ConsoleKit2.mo +share/locale/es_419/LC_MESSAGES/ConsoleKit2.mo +share/locale/ru/LC_MESSAGES/ConsoleKit2.mo share/polkit-1/actions/org.freedesktop.consolekit.policy +share/polkit-1/rules.d/50-shutdown.rules +@pkgdir share/examples/consolekit/ConsoleKit/run-session.d +@pkgdir share/examples/consolekit/ConsoleKit/run-seat.d @pkgdir lib/ConsoleKit/run-session.d @pkgdir lib/ConsoleKit/run-seat.d -@pkgdir etc/ConsoleKit/run-session.d -@pkgdir etc/ConsoleKit/run-seat.d diff --git a/sysutils/consolekit/buildlink3.mk b/sysutils/consolekit/buildlink3.mk index a6af366f873..12628211e4c 100644 --- a/sysutils/consolekit/buildlink3.mk +++ b/sysutils/consolekit/buildlink3.mk @@ -1,12 +1,12 @@ -# $NetBSD: buildlink3.mk,v 1.7 2012/09/15 10:06:21 obache Exp $ +# $NetBSD: buildlink3.mk,v 1.8 2016/06/18 10:23:16 youri Exp $ BUILDLINK_TREE+= consolekit .if !defined(CONSOLEKIT_BUILDLINK3_MK) CONSOLEKIT_BUILDLINK3_MK:= -BUILDLINK_API_DEPENDS.consolekit+= consolekit>=0.3.0 -BUILDLINK_ABI_DEPENDS.consolekit+= consolekit>=0.3.0nb9 +BUILDLINK_API_DEPENDS.consolekit+= consolekit>=1.0.2 +BUILDLINK_ABI_DEPENDS.consolekit+= consolekit>=1.0.2 BUILDLINK_PKGSRCDIR.consolekit?= ../../sysutils/consolekit .include "../../sysutils/dbus/buildlink3.mk" diff --git a/sysutils/consolekit/distinfo b/sysutils/consolekit/distinfo index 60047ac926a..d9378e4ff96 100644 --- a/sysutils/consolekit/distinfo +++ b/sysutils/consolekit/distinfo @@ -1,12 +1,7 @@ -$NetBSD: distinfo,v 1.12 2015/11/04 01:32:08 agc Exp $ +$NetBSD: distinfo,v 1.13 2016/06/18 10:23:16 youri Exp $ -SHA1 (ConsoleKit-0.4.6.tar.xz) = bde79a4aa1bf3dc69a8e03731c7eb06e2dbda2d3 -RMD160 (ConsoleKit-0.4.6.tar.xz) = 7140db9e26accde56d672330e7045fafbafe6990 -SHA512 (ConsoleKit-0.4.6.tar.xz) = 54955e3e83778a9216846104da8762fd50a37190e209127dd5d211e2227da617e14f6f5c1359905396d299656e526d14e1187b28eaff7d0ae1d7563dc8d9b46d -Size (ConsoleKit-0.4.6.tar.xz) = 366572 bytes -SHA1 (patch-aa) = 1c637d4ba3dfbb17d141f6b29140cf1d3d42ed7e -SHA1 (patch-ab) = c32c8f88a0dd87c9b6d4473bf6526c07fb593404 -SHA1 (patch-ac) = 3ef09f16ee039da7cea0c020c2aeccfe5d88c57c -SHA1 (patch-ad) = c0cf170a85e04e2dadfd490f303a40e8d62cc626 -SHA1 (patch-ae) = dcb689861f8ee425b94a8acf1cb344a782b4328b -SHA1 (patch-af) = 9c7febd3a1e995060e5755b205c5d4a7217bc1b8 +SHA1 (1.0.2.tar.gz) = aca2f13f65e77ebffc9fb65d6102cd8edde522ba +RMD160 (1.0.2.tar.gz) = 1af1cfe8bdfc92215e8393eb4246c0e8667ae5e5 +SHA512 (1.0.2.tar.gz) = a0ce6b3b8eded4ec9fb0774b617cbf6b50aedef16a2bc28ec783e296eb3acc4a250611abb108aaf4f3716f3386ba397644fe55615e516f156982e9102cbb950e +Size (1.0.2.tar.gz) = 205101 bytes +SHA1 (patch-data_Makefile.am) = 7d37d6c3b5c0bab2e1e4b7000bd23f72b646cf9c diff --git a/sysutils/consolekit/files/50-shutdown.rules b/sysutils/consolekit/files/50-shutdown.rules new file mode 100644 index 00000000000..1df49348619 --- /dev/null +++ b/sysutils/consolekit/files/50-shutdown.rules @@ -0,0 +1,9 @@ +polkit.addRule(function (action, subject) { + if (action.id == "org.freedesktop.consolekit.system.restart" || + action.id == "org.freedesktop.consolekit.system.stop" || + action.id == "org.freedesktop.consolekit.system.suspend" || + action.id == "org.freedesktop.consolekit.system.hibernate" + && subject.isInGroup("operator")) { + return polkit.Result.YES; + } +}); diff --git a/sysutils/consolekit/files/ck-get-x11-display-device.FreeBSD b/sysutils/consolekit/files/ck-get-x11-display-device.FreeBSD deleted file mode 100644 index 6fc508360b9..00000000000 --- a/sysutils/consolekit/files/ck-get-x11-display-device.FreeBSD +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/sh - -FSTAT="/usr/bin/fstat" -GREP="/usr/bin/grep" -AWK="/usr/bin/awk" -SED="/usr/bin/sed" -CAT="/bin/cat" -HEAD="/usr/bin/head" - -dispnum=0 -if [ x"$1" = x"--display" ]; then - if [ $# != 2 ]; then - echo "usage: $0 [--display DISPLAY]" - exit 1 - fi - DISPLAY=$2 -fi -if [ ! -z "${DISPLAY}" ]; then - dispnum=$(echo ${DISPLAY} | ${SED} -E -e 's|:([0-9]+).*|\1|') -fi - -if [ ! -f "/tmp/.X${dispnum}-lock" ]; then - echo "ERROR: Failed to find X lock file for display ${dispnum}" - exit 1 -fi -pid=$(${CAT} "/tmp/.X${dispnum}-lock") - -device=$(${FSTAT} -p ${pid} | ${GREP} ttyv | ${HEAD} -1 | ${AWK} '{print $8}') - -if [ -z "${device}" ]; then - echo "ERROR: Failed to find TTY device for X server on display ${dispnum}" - exit 1 -fi - -echo "/dev/${device}" diff --git a/sysutils/consolekit/files/ck-get-x11-server-pid.FreeBSD b/sysutils/consolekit/files/ck-get-x11-server-pid.FreeBSD deleted file mode 100644 index 05c433e0175..00000000000 --- a/sysutils/consolekit/files/ck-get-x11-server-pid.FreeBSD +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/sh - -SED="/usr/bin/sed" -CAT="/bin/cat" - -dispnum=0 -if [ ! -z "${DISPLAY}" ]; then - dispnum=$(echo ${DISPLAY} | ${SED} -E -e 's|:([0-9]+).*|\1|') -fi - -if [ ! -f "/tmp/.X${dispnum}-lock" ]; then - echo "ERROR: Failed to find X lock file for display ${dispnum}" - exit 1 -fi -pid=$(${CAT} "/tmp/.X${dispnum}-lock") - -echo ${pid} diff --git a/sysutils/consolekit/files/ck-sysdeps-netbsd.c b/sysutils/consolekit/files/ck-sysdeps-netbsd.c deleted file mode 100644 index c067548d332..00000000000 --- a/sysutils/consolekit/files/ck-sysdeps-netbsd.c +++ /dev/null @@ -1,412 +0,0 @@ -/* $NetBSD: ck-sysdeps-netbsd.c,v 1.3 2008/11/23 19:24:21 jmcneill Exp $ */ - -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- - * - * Copyright (C) 2006 William Jon McCann <mccann@jhu.edu> - * Copyright (C) 2007 Joe Marcus Clarke <marcus@FreeBSD.org> - * Copyright (C) 2008 Jared D. McNeill <jmcneill@NetBSD.org> - * - * 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; either version 2 of the License, or - * (at your option) any later version. - * - * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - */ - -#include "config.h" - -#include <stdlib.h> -#include <stdio.h> -#include <fcntl.h> -#include <unistd.h> -#include <string.h> -#include <errno.h> -#include <paths.h> -#include <ttyent.h> -#include <kvm.h> -#include <sys/param.h> -#include <sys/types.h> -#include <sys/stat.h> -#include <sys/sysctl.h> -#include <sys/user.h> -#include <sys/ioctl.h> - -#include <dev/wscons/wsdisplay_usl_io.h> - -#define DEV_ENCODE(M,m) ( \ - ( (M&0xfff) << 8) | ( (m&0xfff00) << 12) | (m&0xff) \ -) - -#include "ck-sysdeps.h" - -#ifndef ERROR -#define ERROR -1 -#endif - -/* adapted from procps */ -struct _CkProcessStat -{ - int pid; - int ppid; /* stat,status pid of parent process */ - char state; /* stat,status single-char code for process state (S=sleeping) */ - char cmd[16]; /* stat,status basename of executable file in call to exec(2) */ - unsigned long long utime; /* stat user-mode CPU time accumulated by process */ - unsigned long long stime; /* stat kernel-mode CPU time accumulated by process */ - unsigned long long cutime; /* stat cumulative utime of process and reaped children */ - unsigned long long cstime; /* stat cumulative stime of process and reaped children */ - unsigned long long start_time; /* stat start time of process -- seconds since 1-1-70 */ - unsigned long start_code; /* stat address of beginning of code segment */ - unsigned long end_code; /* stat address of end of code segment */ - unsigned long start_stack; /* stat address of the bottom of stack for the process */ - unsigned long kstk_esp; /* stat kernel stack pointer */ - unsigned long kstk_eip; /* stat kernel instruction pointer */ - unsigned long wchan; /* stat (special) address of kernel wait channel proc is sleeping in */ - long priority; /* stat kernel scheduling priority */ - long nice; /* stat standard unix nice level of process */ - long rss; /* stat resident set size from /proc/#/stat (pages) */ - long alarm; /* stat ? */ - unsigned long rtprio; /* stat real-time priority */ - unsigned long sched; /* stat scheduling class */ - unsigned long vsize; /* stat number of pages of virtual memory ... */ - unsigned long rss_rlim; /* stat resident set size limit? */ - unsigned long flags; /* stat kernel flags for the process */ - unsigned long min_flt; /* stat number of minor page faults since process start */ - unsigned long maj_flt; /* stat number of major page faults since process start */ - unsigned long cmin_flt; /* stat cumulative min_flt of process and child processes */ - unsigned long cmaj_flt; /* stat cumulative maj_flt of process and child processes */ - int pgrp; /* stat process group id */ - int session; /* stat session id */ - int nlwp; /* stat number of threads, or 0 if no clue */ - int tty; /* stat full device number of controlling terminal */ - int tpgid; /* stat terminal process group id */ - int exit_signal; /* stat might not be SIGCHLD */ - int processor; /* stat current (or most recent?) CPU */ - uintptr_t penv; /* stat address of initial environment vector */ - char tty_text[16]; /* stat device name */ - -}; - -pid_t -ck_process_stat_get_ppid (CkProcessStat *stat) -{ - g_return_val_if_fail (stat != NULL, -1); - - return stat->ppid; -} - -char * -ck_process_stat_get_cmd (CkProcessStat *stat) -{ - g_return_val_if_fail (stat != NULL, NULL); - - return g_strdup (stat->cmd); -} - -char * -ck_process_stat_get_tty (CkProcessStat *stat) -{ - g_return_val_if_fail (stat != NULL, NULL); - - return g_strdup (stat->tty_text); -} - -static gboolean -get_kinfo_proc (pid_t pid, - struct kinfo_proc2 *p) -{ - int name[6]; - u_int namelen; - size_t sz; - - sz = sizeof(*p); - namelen = 0; - name[namelen++] = CTL_KERN; - name[namelen++] = KERN_PROC2; - name[namelen++] = KERN_PROC_PID; - name[namelen++] = pid; - name[namelen++] = sz; - name[namelen++] = 1; - - if (sysctl (name, namelen, p, &sz, NULL, 0) == -1) { - perror("sysctl kern.proc2.pid"); - return FALSE; - } - - return TRUE; -} - -/* return 1 if it works, or 0 for failure */ -static gboolean -stat2proc (pid_t pid, - CkProcessStat *P) -{ - struct kinfo_proc2 p; - char *ttname; - int num; - int tty_maj; - int tty_min; - - if (! get_kinfo_proc (pid, &p)) { - return FALSE; - } - - num = KI_MAXCOMLEN; - if (num >= sizeof P->cmd) { - num = sizeof P->cmd - 1; - } - - memcpy (P->cmd, p.p_comm, num); - - P->cmd[num] = '\0'; - P->pid = p.p_pid; - P->ppid = p.p_ppid; - P->pgrp = p.p__pgid; - P->session = p.p_sid; - P->rss = p.p_vm_rssize; - P->vsize = p.p_vm_dsize + p.p_vm_dsize + p.p_vm_ssize; /* XXX */ - P->start_time = p.p_ustart_sec; - P->wchan = (unsigned long) p.p_wchan; - P->state = p.p_stat; - P->nice = p.p_nice; - P->flags = p.p_realflag; - P->tpgid = p.p_tpgid; - P->processor = p.p_cpuid; - P->nlwp = p.p_nlwps; - - /* we like it Linux-encoded :-) */ - tty_maj = major (p.p_tdev); - tty_min = minor (p.p_tdev); - P->tty = DEV_ENCODE (tty_maj,tty_min); - - snprintf (P->tty_text, sizeof P->tty_text, "%3d,%-3d", tty_maj, tty_min); - - if (p.p_tdev != NODEV && (ttname = devname (p.p_tdev, S_IFCHR)) != NULL) { - memcpy (P->tty_text, ttname, sizeof P->tty_text); - } - - if (p.p_tdev == NODEV) { - /* XXXJDM nasty hack */ - memcpy (P->tty_text, "/dev/ttyE4", sizeof P->tty_text); - } - - if (P->pid != pid) { - return FALSE; - } - - return TRUE; -} - -gboolean -ck_process_stat_new_for_unix_pid (pid_t pid, - CkProcessStat **stat, - GError **error) -{ - gboolean res; - CkProcessStat *proc; - - g_return_val_if_fail (pid > 1, FALSE); - - if (stat == NULL) { - return FALSE; - } - - proc = g_new0 (CkProcessStat, 1); - proc->pid = pid; - res = stat2proc (pid, proc); - if (res) { - *stat = proc; - } else { - *stat = NULL; - } - - return res; -} - -void -ck_process_stat_free (CkProcessStat *stat) -{ - g_free (stat); -} - -GHashTable * -ck_unix_pid_get_env_hash (pid_t pid) -{ - GHashTable *hash; - char **penv; - kvm_t *kd; - struct kinfo_proc2 p; - int i; - - kd = kvm_openfiles (_PATH_DEVNULL, _PATH_DEVNULL, NULL, O_RDONLY, NULL); - if (kd == NULL) { - return NULL; - } - - if (! get_kinfo_proc (pid, &p)) { - return NULL; - } - - penv = kvm_getenvv2 (kd, &p, 0); - if (penv == NULL) { - return NULL; - } - - hash = g_hash_table_new_full (g_str_hash, - g_str_equal, - g_free, - g_free); - - for (i = 0; penv[i] != NULL; i++) { - char **vals; - - vals = g_strsplit (penv[i], "=", 2); - if (vals != NULL) { - g_hash_table_insert (hash, - g_strdup (vals[0]), - g_strdup (vals[1])); - g_strfreev (vals); - } - } - - kvm_close (kd); - - return hash; -} - -char * -ck_unix_pid_get_env (pid_t pid, - const char *var) -{ - GHashTable *hash; - char *val; - - /* - * Would probably be more efficient to just loop through the - * environment and return the value, avoiding building the hash - * table, but this works for now. - */ - hash = ck_unix_pid_get_env_hash (pid); - val = g_strdup (g_hash_table_lookup (hash, var)); - g_hash_table_destroy (hash); - - return val; -} - -uid_t -ck_unix_pid_get_uid (pid_t pid) -{ - uid_t uid; - gboolean res; - struct kinfo_proc2 p; - - g_return_val_if_fail (pid > 1, 0); - - uid = -1; - - res = get_kinfo_proc (pid, &p); - - if (res) { - uid = p.p_uid; - } - - return uid; -} - -gboolean -ck_unix_pid_get_login_session_id (pid_t pid, - char **idp) -{ - g_return_val_if_fail (pid > 1, FALSE); - - return FALSE; -} - -gboolean -ck_get_max_num_consoles (guint *num) -{ - /* XXXJDM how can we find out how many are configured? */ - if (num != NULL) { - *num = 8; - } - - return TRUE; -} - -char * -ck_get_console_device_for_num (guint num) -{ - char *device; - - /* The device number is always one less than the VT number. */ - num--; - - device = g_strdup_printf ("/dev/ttyE%u", num); - - return device; -} - -gboolean -ck_get_console_num_from_device (const char *device, - guint *num) -{ - guint n; - gboolean ret; - - n = 0; - ret = FALSE; - - if (device == NULL) { - return FALSE; - } - - if (sscanf (device, "/dev/ttyE%u", &n) == 1) { - /* The VT number is always one more than the device number. */ - n++; - ret = TRUE; - } - - if (num != NULL) { - *num = n; - } - - return ret; -} - -gboolean -ck_get_active_console_num (int console_fd, - guint *num) -{ - gboolean ret; - int res; - int active; - - g_assert (console_fd != -1); - - active = 0; - ret = FALSE; - - res = ioctl (console_fd, VT_GETACTIVE, &active); - if (res == ERROR) { - perror ("ioctl VT_GETACTIVE"); - goto out; - } - - g_debug ("Active VT is: %d (ttyE%d)", active, active - 1); - ret = TRUE; - - out: - if (num != NULL) { - *num = active; - } - - return ret; -} diff --git a/sysutils/consolekit/files/ck-sysdeps-openbsd.c b/sysutils/consolekit/files/ck-sysdeps-openbsd.c deleted file mode 100644 index 067e0f0b859..00000000000 --- a/sysutils/consolekit/files/ck-sysdeps-openbsd.c +++ /dev/null @@ -1,471 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- - * - * Copyright (C) 2006 William Jon McCann <mccann@jhu.edu> - * Copyright (C) 2007 Joe Marcus Clarke <marcus@FreeBSD.org> - * Copyright (C) 2008 Jared D. McNeill <jmcneill@NetBSD.org> - * Copyright (C) 2009 Robert Nagy <robert@openbsd.org> - * - * 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; either version 2 of the License, or - * (at your option) any later version. - * - * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - */ - -#include "config.h" - -#include <stdlib.h> -#include <stdio.h> -#include <fcntl.h> -#include <unistd.h> -#include <string.h> -#include <errno.h> -#include <paths.h> -#include <ttyent.h> -#include <kvm.h> -#include <sys/param.h> -#include <sys/types.h> -#include <sys/stat.h> -#include <sys/sysctl.h> -#include <sys/user.h> -#include <sys/ioctl.h> - -#ifdef __OpenBSD__ -#include <sys/stdint.h> -#endif - -#include <dev/wscons/wsdisplay_usl_io.h> - -#define DEV_ENCODE(M,m) ( \ - ( (M&0xfff) << 8) | ( (m&0xfff00) << 12) | (m&0xff) \ -) - -#include "ck-sysdeps.h" - -#ifndef ERROR -#define ERROR -1 -#endif - -/* adapted from procps */ -struct _CkProcessStat -{ - int pid; - int ppid; /* stat,status pid of parent process */ - char state; /* stat,status single-char code for process state (S=sleeping) */ - char cmd[16]; /* stat,status basename of executable file in call to exec(2) */ - unsigned long long utime; /* stat user-mode CPU time accumulated by process */ - unsigned long long stime; /* stat kernel-mode CPU time accumulated by process */ - unsigned long long cutime; /* stat cumulative utime of process and reaped children */ - unsigned long long cstime; /* stat cumulative stime of process and reaped children */ - unsigned long long start_time; /* stat start time of process -- seconds since 1-1-70 */ - unsigned long start_code; /* stat address of beginning of code segment */ - unsigned long end_code; /* stat address of end of code segment */ - unsigned long start_stack; /* stat address of the bottom of stack for the process */ - unsigned long kstk_esp; /* stat kernel stack pointer */ - unsigned long kstk_eip; /* stat kernel instruction pointer */ - unsigned long wchan; /* stat (special) address of kernel wait channel proc is sleeping in */ - long priority; /* stat kernel scheduling priority */ - long nice; /* stat standard unix nice level of process */ - long rss; /* stat resident set size from /proc/#/stat (pages) */ - long alarm; /* stat ? */ - unsigned long rtprio; /* stat real-time priority */ - unsigned long sched; /* stat scheduling class */ - unsigned long vsize; /* stat number of pages of virtual memory ... */ - unsigned long rss_rlim; /* stat resident set size limit? */ - unsigned long flags; /* stat kernel flags for the process */ - unsigned long min_flt; /* stat number of minor page faults since process start */ - unsigned long maj_flt; /* stat number of major page faults since process start */ - unsigned long cmin_flt; /* stat cumulative min_flt of process and child processes */ - unsigned long cmaj_flt; /* stat cumulative maj_flt of process and child processes */ - int pgrp; /* stat process group id */ - int session; /* stat session id */ - int nlwp; /* stat number of threads, or 0 if no clue */ - int tty; /* stat full device number of controlling terminal */ - int tpgid; /* stat terminal process group id */ - int exit_signal; /* stat might not be SIGCHLD */ - int processor; /* stat current (or most recent?) CPU */ - uintptr_t penv; /* stat address of initial environment vector */ - char tty_text[11]; /* stat device name */ - -}; - -pid_t -ck_process_stat_get_ppid (CkProcessStat *stat) -{ - g_return_val_if_fail (stat != NULL, -1); - - return stat->ppid; -} - -char * -ck_process_stat_get_cmd (CkProcessStat *stat) -{ - g_return_val_if_fail (stat != NULL, NULL); - - return g_strdup (stat->cmd); -} - -char * -ck_process_stat_get_tty (CkProcessStat *stat) -{ - g_return_val_if_fail (stat != NULL, NULL); - - return g_strdup (stat->tty_text); -} - -static gboolean -get_kinfo_proc (pid_t pid, - struct kinfo_proc *p) -{ - size_t len; - - int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, pid, - sizeof(struct kinfo_proc), 0 }; - -#ifndef nitems -#define nitems(_a) (sizeof((_a)) / sizeof((_a)[0])) -#endif - - if (sysctl(mib, nitems(mib), NULL, &len, NULL, 0) < 0) - return FALSE; - - mib[5] = (len / sizeof(struct kinfo_proc)); - - if (sysctl(mib, nitems(mib), p, &len, NULL, 0) < 0) - return FALSE; - - return TRUE; -} - -/* return 1 if it works, or 0 for failure */ -static gboolean -stat2proc (pid_t pid, - CkProcessStat *P) -{ - struct kinfo_proc p; - char *ttname; - int num; - int tty_maj; - int tty_min; - - if (! get_kinfo_proc (pid, &p)) { - return FALSE; - } - - num = KI_MAXCOMLEN; - if (num >= sizeof P->cmd) { - num = sizeof P->cmd - 1; - } - - memcpy (P->cmd, p.p_comm, num); - - P->cmd[num] = '\0'; - P->pid = p.p_pid; - P->ppid = p.p_ppid; - P->pgrp = p.p__pgid; - P->session = p.p_sid; - P->rss = p.p_vm_rssize; - P->vsize = p.p_vm_dsize + p.p_vm_dsize + p.p_vm_ssize; /* XXX */ - P->start_time = p.p_ustart_sec; - P->wchan = (unsigned long) p.p_wchan; - P->state = p.p_stat; - P->nice = p.p_nice; - P->flags = p.p_psflags; - P->tpgid = p.p_tpgid; - P->processor = p.p_cpuid; - - /* we like it Linux-encoded :-) */ - tty_maj = major (p.p_tdev); - tty_min = minor (p.p_tdev); - P->tty = DEV_ENCODE (tty_maj,tty_min); - - snprintf (P->tty_text, sizeof P->tty_text, "%3d,%-3d", tty_maj, tty_min); - - if (p.p_tdev != NODEV && (ttname = devname (p.p_tdev, S_IFCHR)) != NULL) { - memcpy (P->tty_text, ttname, sizeof P->tty_text); - } - - if (p.p_tdev == NODEV) { - /* XXX how do we associate X with its tty? */ -#if defined(__i386__) || defined(__amd64__) || defined(__powerpc__) - memcpy (P->tty_text, "/dev/ttyC4", sizeof P->tty_text); -#else - memcpy (P->tty_text, "/dev/ttyC0", sizeof P->tty_text); -#endif - } - - if (P->pid != pid) { - return FALSE; - } - - return TRUE; -} - -gboolean -ck_process_stat_new_for_unix_pid (pid_t pid, - CkProcessStat **stat, - GError **error) -{ - gboolean res; - CkProcessStat *proc; - - g_return_val_if_fail (pid > 1, FALSE); - - if (stat == NULL) { - return FALSE; - } - - proc = g_new0 (CkProcessStat, 1); - proc->pid = pid; - res = stat2proc (pid, proc); - if (res) { - *stat = proc; - } else { - *stat = NULL; - } - - return res; -} - -void -ck_process_stat_free (CkProcessStat *stat) -{ - g_free (stat); -} - -GHashTable * -ck_unix_pid_get_env_hash (pid_t pid) -{ - GHashTable *hash = NULL; - char **penv; - char errbuf[_POSIX2_LINE_MAX]; - kvm_t *kd; - struct kinfo_proc p; - int i; - - kd = kvm_openfiles (NULL, NULL, NULL, O_RDONLY, errbuf); - if (kd == NULL) { - g_warning ("kvm_openfiles failed: %s", errbuf); - return NULL; - } - - if (! get_kinfo_proc (pid, &p)) { - g_warning ("get_kinfo_proc failed: %s", g_strerror (errno)); - goto fail; - } - - penv = kvm_getenvv (kd, &p, 0); - if (penv == NULL) { - g_warning ("kvm_getenvv failed: %s", kvm_geterr (kd)); - goto fail; - } - - hash = g_hash_table_new_full (g_str_hash, - g_str_equal, - g_free, - g_free); - - for (i = 0; penv[i] != NULL; i++) { - char **vals; - - if (!penv[i][0]) continue; - - vals = g_strsplit (penv[i], "=", 2); - if (vals != NULL) { - g_hash_table_insert (hash, - g_strdup (vals[0]), - g_strdup (vals[1])); - g_strfreev (vals); - } - } - -fail: - kvm_close (kd); - - return hash; -} - -char * -ck_unix_pid_get_env (pid_t pid, - const char *var) -{ - GHashTable *hash; - char *val = NULL; - - /* - * Would probably be more efficient to just loop through the - * environment and return the value, avoiding building the hash - * table, but this works for now. - */ - hash = ck_unix_pid_get_env_hash (pid); - if (hash == NULL) - return val; - val = g_strdup (g_hash_table_lookup (hash, var)); - g_hash_table_destroy (hash); - - return val; -} - -uid_t -ck_unix_pid_get_uid (pid_t pid) -{ - uid_t uid; - gboolean res; - struct kinfo_proc p; - - g_return_val_if_fail (pid > 1, 0); - - uid = -1; - - res = get_kinfo_proc (pid, &p); - - if (res) { - uid = p.p_uid; - } - - return uid; -} - -gboolean -ck_unix_pid_get_login_session_id (pid_t pid, - char **idp) -{ - g_return_val_if_fail (pid > 1, FALSE); - - return FALSE; -} - -gboolean -ck_get_max_num_consoles (guint *num) -{ - int max_consoles; - int res; - gboolean ret; - struct ttyent *t; - - ret = FALSE; - max_consoles = 0; - - res = setttyent (); - if (res == 0) { - goto done; - } - - while ((t = getttyent ()) != NULL) { - if (t->ty_status & TTY_ON && strncmp (t->ty_name, "ttyC", 4) == 0) - max_consoles++; - } - - /* Increment one more so that all consoles are properly counted - * this is arguable a bug in vt_add_watches(). - */ - max_consoles++; - - ret = TRUE; - - endttyent (); - -done: - if (num != NULL) { - *num = max_consoles; - } - - return ret; -} - -gboolean -ck_supports_activatable_consoles (void) -{ - return TRUE; -} - -char * -ck_get_console_device_for_num (guint num) -{ - char *device; - -/* VT are only available on i386, amd64 and macppc */ -#if defined(__i386__) || defined(__amd64__) || defined(__powerpc__) - /* The device number is always one less than the VT number. */ - num--; -#endif - - device = g_strdup_printf ("/dev/ttyC%u", num); - - return device; -} - -gboolean -ck_get_console_num_from_device (const char *device, - guint *num) -{ - guint n; - gboolean ret; - - n = 0; - ret = FALSE; - - if (device == NULL) { - return FALSE; - } - - if (sscanf (device, "/dev/ttyC%u", &n) == 1) { -/* VT are only available on i386, amd64 and macppc */ -#if defined(__i386__) || defined(__amd64__) || defined(__powerpc__) - /* The VT number is always one more than the device number. */ - n++; -#endif - ret = TRUE; - } - - if (num != NULL) { - *num = n; - } - - return ret; -} - -gboolean -ck_get_active_console_num (int console_fd, - guint *num) -{ - gboolean ret; - int res; - int active; - - g_assert (console_fd != -1); - - active = 0; - ret = FALSE; - -/* VT are only available on i386, amd64 and macppc */ -#if defined(__i386__) || defined(__amd64__) || defined(__powerpc__) - res = ioctl (console_fd, VT_GETACTIVE, &active); - if (res == ERROR) { - perror ("ioctl VT_GETACTIVE"); - goto out; - } - - g_debug ("Active VT is: %d (ttyC%d)", active, active - 1); -#else - res = 0; - g_debug ("Active console is: ttyC%d", active); -#endif - ret = TRUE; - - out: - if (num != NULL) { - *num = active; - } - - return ret; -} diff --git a/sysutils/consolekit/patches/patch-aa b/sysutils/consolekit/patches/patch-aa deleted file mode 100644 index a2ba70fc634..00000000000 --- a/sysutils/consolekit/patches/patch-aa +++ /dev/null @@ -1,38 +0,0 @@ -$NetBSD: patch-aa,v 1.6 2015/09/24 23:50:44 ryoon Exp $ - -Add backends for NetBSD, Dragonfly, and OpenBSD. - ---- configure.ac.orig 2013-07-19 04:24:09.000000000 +0000 -+++ configure.ac -@@ -158,6 +158,21 @@ case "$host" in - *-*-gnu*) - CK_BACKEND="gnu" - ;; -+ *-*-netbsd*) -+ CK_BACKEND="netbsd" -+ ;; -+ *-*-dragonfly*) -+ CK_BACKEND="freebsd" -+ KVM_LIBS="-lkvm" -+ ;; -+ *-*-openbsd*) -+ CK_BACKEND="openbsd" -+ AC_CHECK_LIB(kvm, kvm_openfiles, have_kvm=yes, -+ AC_MSG_ERROR([Unable to find libkvm which is needed on OpenBSD])) -+ if test "x$have_kvm" = "xyes"; then -+ KVM_LIBS="-lkvm" -+ fi -+ ;; - *) - AC_MSG_ERROR([No sysdeps back-end implemented for host $host]) - ;; -@@ -167,7 +182,9 @@ AC_SUBST(KVM_LIBS) - - AM_CONDITIONAL(CK_COMPILE_LINUX, test x$CK_BACKEND = xlinux, [Compiling for Linux]) - AM_CONDITIONAL(CK_COMPILE_FREEBSD, test x$CK_BACKEND = xfreebsd, [Compiling for FreeBSD]) -+AM_CONDITIONAL(CK_COMPILE_NETBSD, test x$CK_BACKEND = xnetbsd, [Compiling for NetBSD]) - AM_CONDITIONAL(CK_COMPILE_SOLARIS, test x$CK_BACKEND = xsolaris, [Compiling for Solaris]) -+AM_CONDITIONAL(CK_COMPILE_OPENBSD, test x$CK_BACKEND = xopenbsd, [Compiling for OpenBSD]) - AM_CONDITIONAL(CK_COMPILE_GNU, test x$CK_BACKEND = xgnu, [Compiling for GNU]) - AC_SUBST(CK_BACKEND) - diff --git a/sysutils/consolekit/patches/patch-ab b/sysutils/consolekit/patches/patch-ab deleted file mode 100644 index a43f9be1ffd..00000000000 --- a/sysutils/consolekit/patches/patch-ab +++ /dev/null @@ -1,32 +0,0 @@ -$NetBSD: patch-ab,v 1.4 2015/09/24 23:50:44 ryoon Exp $ - -Add backends for NetBSD and OpenBSD. - ---- src/Makefile.am.orig 2013-07-19 04:15:28.000000000 +0000 -+++ src/Makefile.am -@@ -63,11 +63,25 @@ libck_la_SOURCES += \ - $(NULL) - libck_la_LIBADD = -lps - endif -+if CK_COMPILE_NETBSD -+libck_la_SOURCES += \ -+ ck-sysdeps-netbsd.c \ -+ $(NULL) -+libck_la_LIBADD = -lkvm -+endif -+if CK_COMPILE_OPENBSD -+libck_la_SOURCES += \ -+ ck-sysdeps-openbsd.c \ -+ $(NULL) -+libck_la_LIBADD = $(KVM_LIBS) -+endif - - EXTRA_libck_la_SOURCES = \ - ck-sysdeps-linux.c \ - ck-sysdeps-solaris.c \ - ck-sysdeps-freebsd.c \ -+ ck-sysdeps-netbsd.c \ -+ ck-sysdeps-openbsd.c \ - ck-sysdeps-gnu.c \ - $(NULL) - diff --git a/sysutils/consolekit/patches/patch-ac b/sysutils/consolekit/patches/patch-ac deleted file mode 100644 index 12cb81e2482..00000000000 --- a/sysutils/consolekit/patches/patch-ac +++ /dev/null @@ -1,21 +0,0 @@ -$NetBSD: patch-ac,v 1.3 2014/08/17 15:59:07 wiz Exp $ - -Add backends for NetBSD and OpenBSD. - ---- tools/Makefile.am.orig 2008-02-13 03:46:39.000000000 +0000 -+++ tools/Makefile.am -@@ -18,6 +18,14 @@ if CK_COMPILE_SOLARIS - SUBDIRS += solaris - endif - -+if CK_COMPILE_NETBSD -+SUBDIRS += freebsd -+endif -+ -+if CK_COMPILE_OPENBSD -+SUBDIRS += freebsd -+endif -+ - DIST_SUBDIRS = \ - linux \ - freebsd \ diff --git a/sysutils/consolekit/patches/patch-ad b/sysutils/consolekit/patches/patch-ad deleted file mode 100644 index d82c22b020c..00000000000 --- a/sysutils/consolekit/patches/patch-ad +++ /dev/null @@ -1,18 +0,0 @@ -$NetBSD: patch-ad,v 1.2 2014/08/17 15:59:07 wiz Exp $ - -Install config files into pkgsrc example path. - ---- data/Makefile.am.orig 2008-02-29 15:23:02.000000000 -0500 -+++ data/Makefile.am -@@ -1,9 +1,9 @@ - NULL = - --dbusconfdir = $(DBUS_SYS_DIR) -+dbusconfdir = $(PREFIX)/share/examples/consolekit - dbusconf_DATA = ConsoleKit.conf - --seatdir = $(sysconfdir)/ConsoleKit/seats.d -+seatdir = $(PREFIX)/share/examples/consolekit - seat_DATA = 00-primary.seat - - if HAVE_POLKIT diff --git a/sysutils/consolekit/patches/patch-ae b/sysutils/consolekit/patches/patch-ae deleted file mode 100644 index 32acd71ef6f..00000000000 --- a/sysutils/consolekit/patches/patch-ae +++ /dev/null @@ -1,127 +0,0 @@ -$NetBSD: patch-ae,v 1.7 2014/08/17 15:59:07 wiz Exp $ - -Fix UNIX backend for NetBSD, DragonFly, and OpenBSD. - ---- src/ck-sysdeps-unix.c.orig 2008-01-23 14:30:44.000000000 +0000 -+++ src/ck-sysdeps-unix.c -@@ -35,6 +35,11 @@ - #include <linux/kd.h> - #endif - -+#ifdef __NetBSD__ -+#include <dev/wscons/wsdisplay_usl_io.h> -+#include <sys/un.h> -+#endif -+ - #ifdef HAVE_SYS_VT_H - #include <sys/vt.h> - #endif -@@ -53,6 +58,25 @@ - #define ERROR -1 - #endif - -+#ifdef LOCAL_PEEREID -+static gboolean -+ck_nb_getpeeruucred(int socket_fd, pid_t *pid, uid_t *uid) -+{ -+ struct unpcbid cred; -+ socklen_t len = sizeof(cred); -+ -+ if (getsockopt(socket_fd, 0, LOCAL_PEEREID, &cred, &len) < 0) -+ return FALSE; -+ -+ if (pid) -+ *pid = cred.unp_pid; -+ if (uid) -+ *uid = cred.unp_euid; -+ -+ return TRUE; -+} -+#endif -+ - /* Adapted from dbus-sysdeps-unix.c:_dbus_read_credentials_socket() */ - gboolean - ck_get_socket_peer_credentials (int socket_fd, -@@ -69,7 +93,11 @@ ck_get_socket_peer_credentials (int - ret = FALSE; - - #ifdef SO_PEERCRED -+#if !defined(__OpenBSD__) - struct ucred cr; -+#else -+ struct sockpeercred cr; -+#endif - socklen_t cr_len; - - cr_len = sizeof (cr); -@@ -99,7 +127,16 @@ ck_get_socket_peer_credentials (int - if (ucred != NULL) { - ucred_free (ucred); - } --#else /* !SO_PEERCRED && !HAVE_GETPEERUCRED */ -+#elif defined(LOCAL_PEEREID) -+ pid_t sockpid = -1, sockuid = -1; -+ if (ck_nb_getpeeruucred(socket_fd, &sockpid, &sockuid) == TRUE) { -+ pid_read = sockpid; -+ uid_read = sockuid; -+ ret = TRUE; -+ } else { -+ g_warning ("Failed to ck_nb_getpeeruucred() credentials\n"); -+ } -+#else /* !SO_PEERCRED && !HAVE_GETPEERUCRED && !LOCAL_PEEREID*/ - g_warning ("Socket credentials not supported on this OS\n"); - #endif - -@@ -126,17 +163,17 @@ ck_get_socket_peer_credentials (int - gboolean - ck_fd_is_a_console (int fd) - { --#ifdef __linux__ -+#if defined(__linux__) || defined(__NetBSD__) - struct vt_stat vts; --#elif defined(__FreeBSD__) -+#elif defined(__FreeBSD__) || defined(__DragonFly__) - int vers; - #endif - int kb_ok; - - errno = 0; --#ifdef __linux__ -+#if defined(__linux__) || defined(__NetBSD__) - kb_ok = (ioctl (fd, VT_GETSTATE, &vts) == 0); --#elif defined(__FreeBSD__) -+#elif defined(__FreeBSD__) || defined(__DragonFly__) - kb_ok = (ioctl (fd, CONS_GETVERS, &vers) == 0); - #else - kb_ok = 1; -@@ -172,6 +209,15 @@ ck_get_a_console_fd (void) - - fd = -1; - -+#if defined(__FreeBSD__) || defined(__DragonFly__) -+ /* On FreeBSD, try /dev/consolectl first as this will survive -+ * /etc/ttys initialization. */ -+ fd = open_a_console ("/dev/consolectl"); -+ if (fd >= 0) { -+ goto done; -+ } -+#endif -+ - #ifdef __sun - /* On Solaris, first try Sun VT device. */ - fd = open_a_console ("/dev/vt/active"); -@@ -184,6 +230,14 @@ ck_get_a_console_fd (void) - } - #endif - -+#ifdef __NetBSD__ -+ /* On NetBSD, first try wsdisplay device. */ -+ fd = open_a_console ("/dev/ttyE0"); -+ if (fd >= 0) { -+ goto done; -+ } -+#endif -+ - #ifdef _PATH_TTY - fd = open_a_console (_PATH_TTY); - if (fd >= 0) { diff --git a/sysutils/consolekit/patches/patch-af b/sysutils/consolekit/patches/patch-af deleted file mode 100644 index 4c26b185e2a..00000000000 --- a/sysutils/consolekit/patches/patch-af +++ /dev/null @@ -1,231 +0,0 @@ -$NetBSD: patch-af,v 1.3 2014/08/17 15:59:07 wiz Exp $ - -Adapt FreeBSD backend for DragonFly. - ---- src/ck-sysdeps-freebsd.c.orig 2010-09-03 13:54:31.000000000 +0000 -+++ src/ck-sysdeps-freebsd.c -@@ -27,6 +27,7 @@ - #include <unistd.h> - #include <string.h> - #include <errno.h> -+#include <glob.h> - #include <paths.h> - #include <ttyent.h> - #include <kvm.h> -@@ -151,14 +152,38 @@ stat2proc (pid_t pid, - return FALSE; - } - -+#ifdef __DragonFly__ -+ num = MAXCOMLEN; -+#else - num = OCOMMLEN; -+#endif - if (num >= sizeof P->cmd) { - num = sizeof P->cmd - 1; - } - -+#ifdef __DragonFly__ -+ memcpy (P->cmd, p.kp_comm, num); -+#else - memcpy (P->cmd, p.ki_ocomm, num); -+#endif - - P->cmd[num] = '\0'; -+#ifdef __DragonFly__ -+ P->pid = p.kp_pid; -+ P->ppid = p.kp_ppid; -+ P->pgrp = p.kp_pgid; -+ P->session = p.kp_sid; -+ P->rss = p.kp_vm_rssize; -+ P->vsize = p.kp_vm_map_size; -+ P->start_time = p.kp_start.tv_sec; -+ P->wchan = (unsigned long) p.kp_lwp.kl_wchan; -+ P->state = p.kp_stat; -+ P->nice = p.kp_nice; -+ P->flags = p.kp_flags; -+ P->tpgid = p.kp_tpgid; -+ P->processor = p.kp_lwp.kl_cpuid; -+ P->nlwp = p.kp_nthreads; -+#else - P->pid = p.ki_pid; - P->ppid = p.ki_ppid; - P->pgrp = p.ki_pgid; -@@ -173,19 +198,33 @@ stat2proc (pid_t pid, - P->tpgid = p.ki_tpgid; - P->processor = p.ki_oncpu; - P->nlwp = p.ki_numthreads; -+#endif - - /* we like it Linux-encoded :-) */ -+#ifdef __DragonFly__ -+ tty_maj = major (p.kp_tdev); -+ tty_min = minor (p.kp_tdev); -+#else - tty_maj = major (p.ki_tdev); - tty_min = minor (p.ki_tdev); -+#endif - P->tty = DEV_ENCODE (tty_maj,tty_min); - - snprintf (P->tty_text, sizeof P->tty_text, "%3d,%-3d", tty_maj, tty_min); - -+#ifdef __DragonFly__ -+ if (p.kp_tdev != NODEV && (ttname = devname (p.kp_tdev, S_IFCHR)) != NULL) { -+#else - if (p.ki_tdev != NODEV && (ttname = devname (p.ki_tdev, S_IFCHR)) != NULL) { -+#endif - memcpy (P->tty_text, ttname, sizeof P->tty_text); - } - -+#ifdef __DragonFly__ -+ if (p.kp_tdev == NODEV) { -+#else - if (p.ki_tdev == NODEV) { -+#endif - memcpy (P->tty_text, " ? ", sizeof P->tty_text); - } - -@@ -202,7 +241,6 @@ ck_process_stat_new_for_unix_pid (pid_t - GError **error) - { - gboolean res; -- GError *local_error; - CkProcessStat *proc; - - g_return_val_if_fail (pid > 1, FALSE); -@@ -217,7 +255,6 @@ ck_process_stat_new_for_unix_pid (pid_t - if (res) { - *stat = proc; - } else { -- g_propagate_error (error, local_error); - *stat = NULL; - } - -@@ -308,7 +345,11 @@ ck_unix_pid_get_uid (pid_t pid) - res = get_kinfo_proc (pid, &p); - - if (res) { -+#ifdef __DragonFly__ -+ uid = p.kp_uid; -+#else - uid = p.ki_uid; -+#endif - } - - return uid; -@@ -327,38 +368,40 @@ gboolean - ck_get_max_num_consoles (guint *num) - { - int max_consoles; -- int res; -- gboolean ret; -- struct ttyent *t; -+ int i; -+ glob_t g; - -- ret = FALSE; - max_consoles = 0; - -- res = setttyent (); -- if (res == 0) { -- goto done; -- } -- -- while ((t = getttyent ()) != NULL) { -- if (t->ty_status & TTY_ON && strncmp (t->ty_name, "ttyv", 4) == 0) -+ g.gl_offs = 0; -+ glob ("/dev/ttyv*", GLOB_DOOFFS, NULL, &g); -+ for (i = 0; i < g.gl_pathc && g.gl_pathv[i] != NULL; i++) { -+ int fd; -+ char *cdev; -+ -+ cdev = g.gl_pathv[i]; -+ fd = open (cdev, O_RDONLY | O_NOCTTY); -+ if (fd > -1) { -+ close (fd); - max_consoles++; -+ } else { -+ break; -+ } - } - -- /* Increment one more so that all consoles are properly counted -+ globfree (&g); -+ -+ /* -+ * Increment one more so that all consoles are properly counted - * this is arguable a bug in vt_add_watches(). - */ - max_consoles++; - -- ret = TRUE; -- -- endttyent (); -- --done: - if (num != NULL) { - *num = max_consoles; - } - -- return ret; -+ return TRUE; - } - - gboolean -@@ -375,7 +418,12 @@ ck_get_console_device_for_num (guint num - /* The device number is always one less than the VT number. */ - num--; - -- device = g_strdup_printf ("/dev/ttyv%u", num); -+ if (num < 10) -+ device = g_strdup_printf ("/dev/ttyv%i", num); -+ else if (num < 32) -+ device = g_strdup_printf ("/dev/ttyv%c", num - 10 + 'a'); -+ else -+ device = NULL; - - return device; - } -@@ -385,6 +433,7 @@ ck_get_console_num_from_device (const ch - guint *num) - { - guint n; -+ char c; - gboolean ret; - - n = 0; -@@ -394,7 +443,11 @@ ck_get_console_num_from_device (const ch - return FALSE; - } - -- if (sscanf (device, "/dev/ttyv%u", &n) == 1) { -+ if (sscanf (device, "/dev/ttyv%c", &c) == 1) { -+ if (c < 58) -+ n = c - 48; -+ else -+ n = c - 'a' + 10; - /* The VT number is always one more than the device number. */ - n++; - ret = TRUE; -@@ -414,6 +467,7 @@ ck_get_active_console_num (int consol - gboolean ret; - int res; - int active; -+ char ttyn; - - g_assert (console_fd != -1); - -@@ -426,7 +480,12 @@ ck_get_active_console_num (int consol - goto out; - } - -- g_debug ("Active VT is: %d (ttyv%d)", active, active - 1); -+ if (active - 1 < 10) -+ ttyn = active - 1 + '0'; -+ else -+ ttyn = active - 11 + 'a'; -+ -+ g_debug ("Active VT is: %d (ttyv%c)", active, ttyn); - ret = TRUE; - - out: diff --git a/sysutils/consolekit/patches/patch-data_Makefile.am b/sysutils/consolekit/patches/patch-data_Makefile.am new file mode 100644 index 00000000000..04bf3258d27 --- /dev/null +++ b/sysutils/consolekit/patches/patch-data_Makefile.am @@ -0,0 +1,15 @@ +$NetBSD: patch-data_Makefile.am,v 1.1 2016/06/18 10:23:17 youri Exp $ + +* Fix installation of script data files + +--- data/Makefile.am.orig 2015-06-28 08:37:44.000000000 +0000 ++++ data/Makefile.am +@@ -113,7 +113,7 @@ install-logrotate: $(LOGROTATE_CONFS) + + install-90-consolekit: $(XINITRC_CONFS) + $(MKDIR_P) $(DESTDIR)$(XINITRC_DIR)/ +- $(INSTALL_PROGRAM) 90-consolekit $(DESTDIR)$(XINITRC_DIR) && \ ++ $(INSTALL_DATA) 90-consolekit $(DESTDIR)$(XINITRC_DIR) && \ + chmod +x $(DESTDIR)$(XINITRC_DIR)/90-consolekit + + uninstall-logrotate: |