Index: sysutils/polkit/Makefile =================================================================== --- sysutils/polkit/Makefile (revision 18765) +++ sysutils/polkit/Makefile (working copy) @@ -3,8 +3,7 @@ # $MCom: ports/trunk/sysutils/polkit/Makefile 18610 2013-06-30 16:33:05Z marcus $ PORTNAME= polkit -PORTVERSION= 0.105 -PORTREVISION= 2 +PORTVERSION= 0.111 CATEGORIES= sysutils gnome MASTER_SITES= http://www.freedesktop.org/software/polkit/releases/ @@ -11,12 +10,13 @@ MAINTAINER= gnome@FreeBSD.org COMMENT= Framework for controlling access to system-wide components -LIB_DEPENDS= libexpat.so:${PORTSDIR}/textproc/expat2 +LIB_DEPENDS= libexpat.so:${PORTSDIR}/textproc/expat2 \ + libmozjs-17.0.so:${PORTSDIR}/lang/spidermonkey170 RUN_DEPENDS= dbus-launch:${PORTSDIR}/devel/dbus +USE_GNOME= glib20 intlhack gnomehier introspection:build +USES= gettext gmake pathfix pkgconfig shebangfix NO_STAGE= yes -USE_GNOME= glib20 intlhack gnomehier introspection -USES= gettext gmake pathfix pkgconfig GNU_CONFIGURE= yes USE_LDCONFIG= yes CONFIGURE_ARGS= --disable-gtk-doc \ @@ -23,7 +23,9 @@ --with-authfw=pam \ --with-pam-include=system \ --with-os-type=freebsd \ - --disable-systemd \ + --with-mozjs=mozjs-17.0 \ + --with-polkitd-user=polkit \ + --disable-libsystemd-login \ --enable-introspection \ --localstatedir=/var CONFIGURE_ENV= GTKDOC="false" @@ -30,6 +32,11 @@ CPPFLAGS+= -I${LOCALBASE}/include LDFLAGS+= -L${LOCALBASE}/lib +USERS= polkit +GROUPS= polkit + +SHEBANG_FILES= src/polkitbackend/toarray.pl + OPTIONS_DEFINE= MANPAGES .include @@ -36,8 +43,8 @@ .if ${PORT_OPTIONS:MMANPAGES} BUILD_DEPENDS+= ${LOCALBASE}/share/sgml/docbook/4.1/dtd/catalog:${PORTSDIR}/textproc/docbook-410 \ - xsltproc:${PORTSDIR}/textproc/libxslt \ ${LOCALBASE}/share/xsl/docbook/manpages/docbook.xsl:${PORTSDIR}/textproc/docbook-xsl +USE_GNOME+= libxslt:build MAN1= pkaction.1 pkcheck.1 pkexec.1 pkttyagent.1 MAN8= pklocalauthority.8 polkit.8 polkitd.8 @@ -51,13 +58,6 @@ ${WRKSRC}/src/examples/org.freedesktop.policykit.examples.pkexec.policy.in post-install: - ${MKDIR} ${PREFIX}/etc/dbus-1/system.d/ - if [ ! -f ${PREFIX}/etc/dbus-1/system.d/org.freedesktop.PolicyKit1.conf ]; then \ - ${INSTALL_DATA} ${WRKSRC}/data/org.freedesktop.PolicyKit1.conf \ - ${PREFIX}/etc/dbus-1/system.d/org.freedesktop.PolicyKit1.conf ; \ - fi - ${INSTALL_DATA} ${WRKSRC}/data/org.freedesktop.PolicyKit1.conf \ - ${PREFIX}/etc/dbus-1/system.d/org.freedesktop.PolicyKit1.conf.dist .if !defined(PACKAGE_BUILDING) @${SETENV} PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL .endif Index: sysutils/polkit/distinfo =================================================================== --- sysutils/polkit/distinfo (revision 18765) +++ sysutils/polkit/distinfo (working copy) @@ -1,2 +1,2 @@ -SHA256 (polkit-0.105.tar.gz) = 8fdc7cc8ba4750fcce1a4db9daa759c12afebc7901237e1c993c38f08985e1df -SIZE (polkit-0.105.tar.gz) = 1431080 +SHA256 (polkit-0.111.tar.gz) = 02ae544547211b687818c97bcbf19bf6b8b5be7fda93000525a8765c7bed1ea1 +SIZE (polkit-0.111.tar.gz) = 1396389 Index: sysutils/polkit/files/patch-bug65130 =================================================================== --- sysutils/polkit/files/patch-bug65130 (revision 0) +++ sysutils/polkit/files/patch-bug65130 (working copy) @@ -0,0 +1,115 @@ +From 20ad116a6582e57d20f9d8197758947918753a4c Mon Sep 17 00:00:00 2001 +From: Tomas Bzatek +Date: Wed, 29 May 2013 13:45:31 +0000 +Subject: Use GOnce for interface type registration + +Static local variable may not be enough since it doesn't provide locking. + +Related to these udisksd warnings: + GLib-GObject-WARNING **: cannot register existing type `PolkitSubject' + +Thanks to Hans de Goede for spotting this! + +https://bugs.freedesktop.org/show_bug.cgi?id=65130 +--- +diff --git a/src/polkit/polkitidentity.c b/src/polkit/polkitidentity.c +index dd15b2f..7813c2c 100644 +--- src/polkit/polkitidentity.c ++++ src/polkit/polkitidentity.c +@@ -49,9 +49,9 @@ base_init (gpointer g_iface) + GType + polkit_identity_get_type (void) + { +- static GType iface_type = 0; ++ static volatile gsize g_define_type_id__volatile = 0; + +- if (iface_type == 0) ++ if (g_once_init_enter (&g_define_type_id__volatile)) + { + static const GTypeInfo info = + { +@@ -67,12 +67,14 @@ polkit_identity_get_type (void) + NULL /* value_table */ + }; + +- iface_type = g_type_register_static (G_TYPE_INTERFACE, "PolkitIdentity", &info, 0); ++ GType iface_type = ++ g_type_register_static (G_TYPE_INTERFACE, "PolkitIdentity", &info, 0); + + g_type_interface_add_prerequisite (iface_type, G_TYPE_OBJECT); ++ g_once_init_leave (&g_define_type_id__volatile, iface_type); + } + +- return iface_type; ++ return g_define_type_id__volatile; + } + + /** +diff --git a/src/polkit/polkitsubject.c b/src/polkit/polkitsubject.c +index d2c4c20..aed5795 100644 +--- src/polkit/polkitsubject.c ++++ src/polkit/polkitsubject.c +@@ -50,9 +50,9 @@ base_init (gpointer g_iface) + GType + polkit_subject_get_type (void) + { +- static GType iface_type = 0; ++ static volatile gsize g_define_type_id__volatile = 0; + +- if (iface_type == 0) ++ if (g_once_init_enter (&g_define_type_id__volatile)) + { + static const GTypeInfo info = + { +@@ -68,12 +68,14 @@ polkit_subject_get_type (void) + NULL /* value_table */ + }; + +- iface_type = g_type_register_static (G_TYPE_INTERFACE, "PolkitSubject", &info, 0); ++ GType iface_type = ++ g_type_register_static (G_TYPE_INTERFACE, "PolkitSubject", &info, 0); + + g_type_interface_add_prerequisite (iface_type, G_TYPE_OBJECT); ++ g_once_init_leave (&g_define_type_id__volatile, iface_type); + } + +- return iface_type; ++ return g_define_type_id__volatile; + } + + /** +diff --git a/src/polkitbackend/polkitbackendactionlookup.c b/src/polkitbackend/polkitbackendactionlookup.c +index 5a1a228..20747e7 100644 +--- src/polkitbackend/polkitbackendactionlookup.c ++++ src/polkitbackend/polkitbackendactionlookup.c +@@ -74,9 +74,9 @@ base_init (gpointer g_iface) + GType + polkit_backend_action_lookup_get_type (void) + { +- static GType iface_type = 0; ++ static volatile gsize g_define_type_id__volatile = 0; + +- if (iface_type == 0) ++ if (g_once_init_enter (&g_define_type_id__volatile)) + { + static const GTypeInfo info = + { +@@ -92,12 +92,14 @@ polkit_backend_action_lookup_get_type (void) + NULL /* value_table */ + }; + +- iface_type = g_type_register_static (G_TYPE_INTERFACE, "PolkitBackendActionLookup", &info, 0); ++ GType iface_type = ++ g_type_register_static (G_TYPE_INTERFACE, "PolkitBackendActionLookup", &info, 0); + + g_type_interface_add_prerequisite (iface_type, G_TYPE_OBJECT); ++ g_once_init_leave (&g_define_type_id__volatile, iface_type); + } + +- return iface_type; ++ return g_define_type_id__volatile; + } + + /** +-- +cgit v0.9.0.2-2-gbebe Index: sysutils/polkit/files/patch-data_Makefile.in =================================================================== --- sysutils/polkit/files/patch-data_Makefile.in (revision 18765) +++ sysutils/polkit/files/patch-data_Makefile.in (working copy) @@ -1,11 +0,0 @@ ---- data/Makefile.in.orig 2009-08-01 16:02:38.000000000 +0200 -+++ data/Makefile.in 2009-08-01 16:05:13.000000000 +0200 -@@ -471,7 +471,7 @@ - - info-am: - --install-data-am: install-dbusconfDATA install-pamDATA \ -+install-data-am: install-pamDATA \ - install-pkgconfigDATA install-serviceDATA - - install-dvi: install-dvi-am Index: sysutils/polkit/files/patch-src_polkitbackend_Makefile.in =================================================================== --- sysutils/polkit/files/patch-src_polkitbackend_Makefile.in (revision 18765) +++ sysutils/polkit/files/patch-src_polkitbackend_Makefile.in (working copy) @@ -1,23 +0,0 @@ ---- src/polkitbackend/Makefile.in.orig 2010-01-18 02:50:30.000000000 -0500 -+++ src/polkitbackend/Makefile.in 2010-01-18 14:18:36.000000000 -0500 -@@ -899,10 +899,18 @@ clean-local : - - install-exec-hook: - mkdir -p $(DESTDIR)$(localstatedir)/lib/polkit-1 -- mkdir -p $(DESTDIR)$(localstatedir)/lib/polkit-1/localauthority/{10-vendor.d,20-org.d,30-site.d,50-local.d,90-mandatory.d} -+ mkdir -p $(DESTDIR)$(localstatedir)/lib/polkit-1/localauthority/10-vendor.d -+ mkdir -p $(DESTDIR)$(localstatedir)/lib/polkit-1/localauthority/20-org.d -+ mkdir -p $(DESTDIR)$(localstatedir)/lib/polkit-1/localauthority/30-site.d -+ mkdir -p $(DESTDIR)$(localstatedir)/lib/polkit-1/localauthority/50-local.d -+ mkdir -p $(DESTDIR)$(localstatedir)/lib/polkit-1/localauthority/90-mandatory.d - -chmod 700 $(DESTDIR)$(localstatedir)/lib/polkit-1 - mkdir -p $(DESTDIR)$(sysconfdir)/polkit-1 -- mkdir -p $(DESTDIR)$(sysconfdir)/polkit-1/localauthority/{10-vendor.d,20-org.d,30-site.d,50-local.d,90-mandatory.d} -+ mkdir -p $(DESTDIR)$(sysconfdir)/polkit-1/localauthority/10-vendor.d -+ mkdir -p $(DESTDIR)$(sysconfdir)/polkit-1/localauthority/20-org.d -+ mkdir -p $(DESTDIR)$(sysconfdir)/polkit-1/localauthority/30-site.d -+ mkdir -p $(DESTDIR)$(sysconfdir)/polkit-1/localauthority/50-local.d -+ mkdir -p $(DESTDIR)$(sysconfdir)/polkit-1/localauthority/90-mandatory.d - -chmod 700 $(DESTDIR)$(sysconfdir)/polkit-1/localauthority - mkdir -p $(DESTDIR)$(libdir)/polkit-1/extensions - Index: sysutils/polkit/files/patch-src_polkitbackend_polkitbackendinteractiveauthority.c =================================================================== --- sysutils/polkit/files/patch-src_polkitbackend_polkitbackendinteractiveauthority.c (revision 18765) +++ sysutils/polkit/files/patch-src_polkitbackend_polkitbackendinteractiveauthority.c (working copy) @@ -1,6 +1,6 @@ ---- src/polkitbackend/polkitbackendinteractiveauthority.c.orig 2012-05-15 21:52:38.000000000 +0200 -+++ src/polkitbackend/polkitbackendinteractiveauthority.c 2012-05-15 21:52:49.000000000 +0200 -@@ -279,7 +279,7 @@ +--- src/polkitbackend/polkitbackendinteractiveauthority.c.orig 2013-04-04 20:16:50.000000000 +0200 ++++ src/polkitbackend/polkitbackendinteractiveauthority.c 2013-08-11 12:20:45.000000000 +0200 +@@ -281,7 +281,7 @@ polkit_backend_interactive_authority_ini static volatile GQuark domain = 0; /* Force registering error domain */ @@ -9,3 +9,29 @@ priv = POLKIT_BACKEND_INTERACTIVE_AUTHORITY_GET_PRIVATE (authority); +@@ -2113,11 +2113,15 @@ get_users_in_net_group (PolkitIdentity + ret = NULL; + name = polkit_unix_netgroup_get_name (POLKIT_UNIX_NETGROUP (group)); + ++#if defined(__FreeBSD__) ++ setnetgrent (name); ++#else + if (setnetgrent (name) == 0) + { + g_warning ("Error looking up net group with name %s: %s", name, g_strerror (errno)); + goto out; + } ++#endif + + for (;;) + { +@@ -2150,7 +2154,9 @@ get_users_in_net_group (PolkitIdentity + + ret = g_list_reverse (ret); + ++#if !defined(__FreeBSD__) + out: ++#endif + endnetgrent (); + return ret; + } Index: sysutils/polkit/files/patch-src_polkitbackend_polkitbackendjsauthority.c =================================================================== --- sysutils/polkit/files/patch-src_polkitbackend_polkitbackendjsauthority.c (revision 0) +++ sysutils/polkit/files/patch-src_polkitbackend_polkitbackendjsauthority.c (working copy) @@ -0,0 +1,11 @@ +--- src/polkitbackend/polkitbackendjsauthority.c.orig 2013-08-10 21:56:56.000000000 +0200 ++++ src/polkitbackend/polkitbackendjsauthority.c 2013-08-10 22:04:37.000000000 +0200 +@@ -1286,7 +1286,7 @@ get_signal_name (gint signal_number) + _HANDLE_SIG (SIGTTIN); + _HANDLE_SIG (SIGTTOU); + _HANDLE_SIG (SIGBUS); +- _HANDLE_SIG (SIGPOLL); ++ _HANDLE_SIG (SIGIO); + _HANDLE_SIG (SIGPROF); + _HANDLE_SIG (SIGSYS); + _HANDLE_SIG (SIGTRAP); Index: sysutils/polkit/files/patch-src_polkitbackend_polkitbackendlocalauthority.c =================================================================== --- sysutils/polkit/files/patch-src_polkitbackend_polkitbackendlocalauthority.c (revision 18765) +++ sysutils/polkit/files/patch-src_polkitbackend_polkitbackendlocalauthority.c (working copy) @@ -1,23 +0,0 @@ ---- src/polkitbackend/polkitbackendlocalauthority.c.orig 2012-05-15 21:52:35.000000000 +0200 -+++ src/polkitbackend/polkitbackendlocalauthority.c 2012-05-15 21:53:07.000000000 +0200 -@@ -700,11 +700,7 @@ - ret = NULL; - name = polkit_unix_netgroup_get_name (POLKIT_UNIX_NETGROUP (group)); - -- if (setnetgrent (name) == 0) -- { -- g_warning ("Error looking up net group with name %s: %s", name, g_strerror (errno)); -- goto out; -- } -+ setnetgrent (name); - - for (;;) - { -@@ -737,7 +733,6 @@ - - ret = g_list_reverse (ret); - -- out: - endnetgrent (); - return ret; - } Index: sysutils/polkit/files/patch-src_polkitd_gposixsignal.c =================================================================== --- sysutils/polkit/files/patch-src_polkitd_gposixsignal.c (revision 18765) +++ sysutils/polkit/files/patch-src_polkitd_gposixsignal.c (working copy) @@ -1,40 +0,0 @@ ---- src/polkitd/gposixsignal.c.orig 2010-08-29 20:05:07.000000000 -0400 -+++ src/polkitd/gposixsignal.c 2010-08-29 20:13:20.000000000 -0400 -@@ -23,7 +23,13 @@ - #include "config.h" - - #include -+#ifdef __FreeBSD__ -+#include -+#include -+#include -+#else - #include -+#endif - #include - - #include "gposixsignal.h" -@@ -83,6 +89,9 @@ _g_posix_signal_source_new (gint signum) - gint fd; - GSource *_source; - _GPosixSignalSource *source; -+#ifdef __FreeBSD__ -+ struct kevent ev; -+#endif - - _source = NULL; - -@@ -92,7 +101,13 @@ _g_posix_signal_source_new (gint signum) - if (sigprocmask (SIG_BLOCK, &sigset, NULL) == -1) - g_assert_not_reached (); - -+#ifdef __FreeBSD__ -+ fd = kqueue (); -+ EV_SET (&ev, signum, EVFILT_SIGNAL, EV_ADD, 0, 0, NULL); -+ kevent (fd, &ev, 1, NULL, 0, NULL); -+#else - fd = signalfd (-1, &sigset, SFD_NONBLOCK | SFD_CLOEXEC); -+#endif - - _source = g_source_new (&_g_posix_signal_source_funcs, sizeof (_GPosixSignalSource)); - source = (_GPosixSignalSource *) _source; Index: sysutils/polkit/pkg-install =================================================================== --- sysutils/polkit/pkg-install (revision 18765) +++ sysutils/polkit/pkg-install (working copy) @@ -2,15 +2,25 @@ case $2 in POST-INSTALL) - /bin/mkdir -p /var/lib/polkit-1/localauthority - /bin/mkdir -p ${PKG_PREFIX}/etc/polkit-1/localauthority + USER=polkit + GROUP=polkit + /bin/mkdir -p ${PKG_PREFIX}/etc/polkit-1/rules.d + /bin/chmod -R 0755 ${PKG_PREFIX}/etc/polkit-1 + /bin/mkdir -p ${PKG_PREFIX}/etc/polkit-1/home + /usr/sbin/chown ${USER}:${GROUP} ${PKG_PREFIX}/etc/polkit-1/home + /bin/chmod 0700 ${PKG_PREFIX}/etc/polkit-1/rules.d /bin/mkdir -p ${PKG_PREFIX}/share/polkit-1/rules.d - for i in 10-vendor.d 20-org.d 30-site.d 50-local.d 90-mandatory.d; do - /bin/mkdir -p /var/lib/polkit-1/localauthority/${i} - /bin/mkdir -p ${PKG_PREFIX}/etc/polkit-1/localauthority/${i} - done - /bin/chmod 0700 /var/lib/polkit-1 - /bin/chmod 0700 ${PKG_PREFIX}/etc/polkit-1 + /bin/chmod 0700 ${PKG_PREFIX}/share/polkit-1/rules.d + + /usr/sbin/chown root:wheel ${PKG_PREFIX}/lib/polkit-1/polkit-agent-helper-1 + /bin/chmod 4755 ${PKG_PREFIX}/lib/polkit-1/polkit-agent-helper-1 + /usr/sbin/chown root:wheel ${PKG_PREFIX}/bin/pkexec + /bin/chmod 4755 ${PKG_PREFIX}/bin/pkexec + +# setgroups isn't allowed as a !root user, we need setuid +# /bin/chmod 4755 ${PKG_PREFIX}/lib/polkit-1/polkitd + exit 0 ;; esac + Index: sysutils/polkit/pkg-plist =================================================================== --- sysutils/polkit/pkg-plist (revision 18765) +++ sysutils/polkit/pkg-plist (working copy) @@ -3,12 +3,9 @@ bin/pkcheck bin/pkexec bin/pkttyagent -@unexec if cmp -s %D/etc/dbus-1/system.d/org.freedesktop.PolicyKit1.conf %D/etc/dbus-1/system.d/org.freedesktop.PolicyKit1.conf.dist; then rm -f %D/etc/dbus-1/system.d/org.freedesktop.PolicyKit1.conf ; fi -etc/dbus-1/system.d/org.freedesktop.PolicyKit1.conf.dist -@exec [ -f %B/org.freedesktop.PolicyKit1.conf ] || cp %B/%f %B/org.freedesktop.PolicyKit1.conf +etc/dbus-1/system.d/org.freedesktop.PolicyKit1.conf etc/pam.d/polkit-1 -etc/polkit-1/localauthority.conf.d/50-localauthority.conf -etc/polkit-1/nullbackend.conf.d/50-nullbackend.conf +etc/polkit-1/rules.d/50-default.rules include/polkit-1/polkit/polkit.h include/polkit-1/polkit/polkitactiondescription.h include/polkit-1/polkit/polkitauthorityfeatures.h @@ -37,12 +34,6 @@ include/polkit-1/polkitagent/polkitagentsession.h include/polkit-1/polkitagent/polkitagenttypes.h include/polkit-1/polkitagent/polkitagenttextlistener.h -include/polkit-1/polkitbackend/polkitbackend.h -include/polkit-1/polkitbackend/polkitbackendactionlookup.h -include/polkit-1/polkitbackend/polkitbackendauthority.h -include/polkit-1/polkitbackend/polkitbackendinteractiveauthority.h -include/polkit-1/polkitbackend/polkitbackendlocalauthority.h -include/polkit-1/polkitbackend/polkitbackendtypes.h lib/girepository-1.0/Polkit-1.0.typelib lib/girepository-1.0/PolkitAgent-1.0.typelib lib/libpolkit-agent-1.a @@ -49,22 +40,14 @@ lib/libpolkit-agent-1.la lib/libpolkit-agent-1.so lib/libpolkit-agent-1.so.0 -lib/libpolkit-backend-1.a -lib/libpolkit-backend-1.la -lib/libpolkit-backend-1.so -lib/libpolkit-backend-1.so.0 lib/libpolkit-gobject-1.a lib/libpolkit-gobject-1.la lib/libpolkit-gobject-1.so lib/libpolkit-gobject-1.so.0 -lib/polkit-1/extensions/libnullbackend.a -lib/polkit-1/extensions/libnullbackend.la -lib/polkit-1/extensions/libnullbackend.so +lib/polkit-1/polkit-agent-helper-1 +lib/polkit-1/polkitd libdata/pkgconfig/polkit-agent-1.pc -libdata/pkgconfig/polkit-backend-1.pc libdata/pkgconfig/polkit-gobject-1.pc -libexec/polkit-agent-helper-1 -libexec/polkitd share/dbus-1/system-services/org.freedesktop.PolicyKit1.service share/gir-1.0/Polkit-1.0.gir share/gir-1.0/PolkitAgent-1.0.gir @@ -74,29 +57,9 @@ @dirrmtry share/polkit-1/rules.d @dirrmtry share/polkit-1/actions @dirrmtry share/polkit-1 -@dirrm lib/polkit-1/extensions @dirrm lib/polkit-1 -@dirrm include/polkit-1/polkitbackend @dirrm include/polkit-1/polkitagent @dirrm include/polkit-1/polkit @dirrm include/polkit-1 -@dirrm etc/polkit-1/nullbackend.conf.d -@dirrm etc/polkit-1/localauthority.conf.d -@dirrmtry etc/polkit-1/localauthority/90-mandatory.d -@dirrmtry etc/polkit-1/localauthority/50-local.d -@dirrmtry etc/polkit-1/localauthority/30-site.d -@dirrmtry etc/polkit-1/localauthority/20-org.d -@dirrmtry etc/polkit-1/localauthority/10-vendor.d -@dirrmtry etc/polkit-1/localauthority +@dirrmtry etc/polkit-1/home @dirrmtry etc/polkit-1 -@cwd / -@dirrmtry var/lib/polkit-1/localauthority/90-mandatory.d -@dirrmtry var/lib/polkit-1/localauthority/50-local.d -@dirrmtry var/lib/polkit-1/localauthority/30-site.d -@dirrmtry var/lib/polkit-1/localauthority/20-org.d -@dirrmtry var/lib/polkit-1/localauthority/10-vendor.d -@dirrmtry var/lib/polkit-1/localauthority -@dirrmtry var/lib/polkit-1/localauthority -@dirrmtry var/lib/polkit-1 -@dirrmtry var/lib -@cwd