Index: head/x11/gnome-shell/Makefile =================================================================== --- head/x11/gnome-shell/Makefile (revision 551814) +++ head/x11/gnome-shell/Makefile (revision 551815) @@ -1,80 +1,84 @@ # Created by: Pawel Worach # $FreeBSD$ PORTNAME= gnome-shell PORTVERSION= 3.36.6 +PORTREVISION= 1 CATEGORIES= x11 gnome MASTER_SITES= GNOME DIST_SUBDIR= gnome MAINTAINER= gnome@FreeBSD.org COMMENT= Next generation GNOME desktop shell LICENSE= GPLv2 LICENSE_FILE= ${WRKSRC}/COPYING BUILD_DEPENDS= docbook-xsl>=0:textproc/docbook-xsl \ sassc:textproc/sassc \ gnome-control-center:sysutils/gnome-control-center \ a2x:textproc/asciidoc LIB_DEPENDS= libstartup-notification-1.so:x11/startup-notification \ libdrm.so:graphics/libdrm \ libmutter-6.so:x11-wm/mutter \ libatk-bridge-2.0.so:accessibility/at-spi2-atk \ libsoup-2.4.so:devel/libsoup \ libjson-glib-1.0.so:devel/json-glib \ libsecret-1.so:security/libsecret \ libpolkit-agent-1.so:sysutils/polkit \ libp11-kit.so:security/p11-kit \ libical.so:devel/libical \ libgcr-3.so:security/gcr \ libicuuc.so:devel/icu \ libpulse.so:audio/pulseaudio \ libcroco-0.6.so:textproc/libcroco \ libcanberra.so:audio/libcanberra \ libcanberra-gtk3.so:audio/libcanberra-gtk3 \ libp11-kit.so:security/p11-kit \ libgjs.so:lang/gjs \ libgraphene-1.0.so:graphics/graphene \ libgnome-autoar-0.so:archivers/gnome-autoar RUN_DEPENDS= gnome-control-center:sysutils/gnome-control-center \ gdm:x11/gdm PORTSCOUT= limitw:1,even USES= compiler:c11 cpe gettext gl gnome libtool localbase meson \ pathfix perl5 pkgconfig python:3.4+ shebangfix tar:xz \ webplugin:native xorg USE_GNOME= cairo evolutiondataserver3 gdkpixbuf2 introspection \ libxslt:build libxml2 gnomedesktop3 USE_XORG= x11 xcomposite xdamage xext xfixes xi xrandr xtst USE_GL= egl gbm USE_GSTREAMER1= yes USE_PERL5= build USE_LDCONFIG= yes SHEBANG_FILES= src/gnome-shell-perf-tool.in \ src/gnome-shell-extension-tool.in BINARY_ALIAS= python3=${PYTHON_CMD} WEBPLUGIN_NAME= libgnome-shell-browser-plugin.so WEBPLUGIN_DIR= ${PREFIX}/lib/mozilla/plugins/ WEBPLUGIN_FILES=libgnome-shell-browser-plugin.so MESON_ARGS= -Dsystemd=false \ -Dnetworkmanager=false \ -Dpython=${PYTHON_CMD} CPE_VENDOR= gnome GLIB_SCHEMAS= org.gnome.shell.gschema.xml \ 00_org.gnome.shell.gschema.override .if exists(/usr/bin/ld.lld) && ${/usr/bin/ld:L:tA} != /usr/bin/ld.lld # Work around "New rpath must not be longer than the old one." LDFLAGS+= -fuse-ld=lld .endif + +post-extract: + ${CP} ${FILESDIR}/*.xml ${WRKSRC}/data/dbus-interfaces post-patch: ${REINPLACE_CMD} -e "s,python3,${PYTHON_VERSION},g" \ ${WRKSRC}/meson.build .include Index: head/x11/gnome-shell/files/org.freedesktop.ConsoleKit.Manager.xml =================================================================== --- head/x11/gnome-shell/files/org.freedesktop.ConsoleKit.Manager.xml (nonexistent) +++ head/x11/gnome-shell/files/org.freedesktop.ConsoleKit.Manager.xml (revision 551815) @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Property changes on: head/x11/gnome-shell/files/org.freedesktop.ConsoleKit.Manager.xml ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/x11/gnome-shell/files/org.freedesktop.ConsoleKit.Session.xml =================================================================== --- head/x11/gnome-shell/files/org.freedesktop.ConsoleKit.Session.xml (nonexistent) +++ head/x11/gnome-shell/files/org.freedesktop.ConsoleKit.Session.xml (revision 551815) @@ -0,0 +1,11 @@ + + + + + + + + + + + Property changes on: head/x11/gnome-shell/files/org.freedesktop.ConsoleKit.Session.xml ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/x11/gnome-shell/files/patch-data_gnome-shell-dbus-interfaces.gresource.xml =================================================================== --- head/x11/gnome-shell/files/patch-data_gnome-shell-dbus-interfaces.gresource.xml (nonexistent) +++ head/x11/gnome-shell/files/patch-data_gnome-shell-dbus-interfaces.gresource.xml (revision 551815) @@ -0,0 +1,11 @@ +--- data/gnome-shell-dbus-interfaces.gresource.xml.orig 2020-09-07 20:29:58 UTC ++++ data/gnome-shell-dbus-interfaces.gresource.xml +@@ -12,6 +12,8 @@ + org.freedesktop.impl.portal.Access.xml + org.freedesktop.impl.portal.PermissionStore.xml + org.freedesktop.impl.portal.Request.xml ++ org.freedesktop.ConsoleKit.Manager.xml ++ org.freedesktop.ConsoleKit.Session.xml + org.freedesktop.login1.Manager.xml + org.freedesktop.login1.Session.xml + org.freedesktop.login1.User.xml Property changes on: head/x11/gnome-shell/files/patch-data_gnome-shell-dbus-interfaces.gresource.xml ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/x11/gnome-shell/files/patch-js_misc_loginManager_js =================================================================== --- head/x11/gnome-shell/files/patch-js_misc_loginManager_js (nonexistent) +++ head/x11/gnome-shell/files/patch-js_misc_loginManager_js (revision 551815) @@ -0,0 +1,119 @@ +$OpenBSD: patch-js_misc_loginManager_js,v 1.10 2020/05/14 15:28:46 jasper Exp $ + +Index: js/misc/loginManager.js +--- js/misc/loginManager.js.orig ++++ js/misc/loginManager.js +@@ -14,6 +14,12 @@ const SystemdLoginManager = Gio.DBusProxy.makeProxyWra + const SystemdLoginSession = Gio.DBusProxy.makeProxyWrapper(SystemdLoginSessionIface); + const SystemdLoginUser = Gio.DBusProxy.makeProxyWrapper(SystemdLoginUserIface); + ++const ConsoleKitManagerIface = loadInterfaceXML('org.freedesktop.ConsoleKit.Manager'); ++const ConsoleKitSessionIface = loadInterfaceXML('org.freedesktop.ConsoleKit.Session'); ++ ++const ConsoleKitManager = Gio.DBusProxy.makeProxyWrapper(ConsoleKitManagerIface); ++const ConsoleKitSession = Gio.DBusProxy.makeProxyWrapper(ConsoleKitSessionIface); ++ + function haveSystemd() { + return GLib.access("/run/systemd/seats", 0) >= 0; + } +@@ -43,7 +49,7 @@ function canLock() { + -1, null); + + let version = result.deep_unpack()[0].deep_unpack(); +- return haveSystemd() && versionCompare('3.5.91', version); ++ return versionCompare('3.5.91', version); + } catch (e) { + return false; + } +@@ -84,7 +90,7 @@ function getLoginManager() { + if (haveSystemd()) + _loginManager = new LoginManagerSystemd(); + else +- _loginManager = new LoginManagerDummy(); ++ _loginManager = new LoginManagerConsoleKit(); + } + + return _loginManager; +@@ -199,6 +205,82 @@ var LoginManagerSystemd = class { + } + }; + Signals.addSignalMethods(LoginManagerSystemd.prototype); ++ ++var LoginManagerConsoleKit = class { ++ constructor () { ++ this._proxy = new ConsoleKitManager(Gio.DBus.system, ++ 'org.freedesktop.ConsoleKit', ++ '/org/freedesktop/ConsoleKit/Manager'); ++ this._proxy.connectSignal('PrepareForSleep', ++ this._prepareForSleep.bind(this)); ++ } ++ ++ // Having this function is a bit of a hack since the Systemd and ConsoleKit ++ // session objects have different interfaces - but in both cases there are ++ // Lock/Unlock signals, and that's all we count upon at the moment. ++ ++ ++ getCurrentSessionProxy(callback) { ++ if (this._currentSession) { ++ callback (this._currentSession); ++ return; ++ } ++ ++ this._proxy.GetCurrentSessionRemote((result, error) => { ++ if (error) { ++ logError(error, 'Could not get a proxy for the current session'); ++ } else { ++ this._currentSession = new ConsoleKitSession(Gio.DBus.system, ++ 'org.freedesktop.ConsoleKit', ++ result[0]); ++ callback(this._currentSession); ++ } ++ }); ++ } ++ ++ canSuspend(asyncCallback) { ++ this._proxy.CanSuspendRemote((result, error) => { ++ if (error) { ++ asyncCallback(false, false); ++ } else { ++ asyncCallback(result[0], false); ++ } ++ }); ++ } ++ ++ listSessions(asyncCallback) { ++ asyncCallback([]); ++ } ++ ++ suspend() { ++ this._proxy.SuspendRemote(true); ++ } ++ ++ inhibit(reason, callback) { ++ let inVariant = GLib.Variant.new('(ssss)', ++ ['sleep', ++ 'GNOME Shell', ++ reason, ++ 'delay']); ++ this._proxy.call_with_unix_fd_list('Inhibit', inVariant, 0, -1, null, null, ++ (proxy, result) => { ++ let fd = -1; ++ try { ++ let [outVariant, fdList] = proxy.call_with_unix_fd_list_finish(result); ++ fd = fdList.steal_fds()[0]; ++ callback(new Gio.UnixInputStream({ fd: fd })); ++ } catch(e) { ++ logError(e, "Error getting ConsoleKit inhibitor"); ++ callback(null); ++ } ++ }); ++ } ++ ++ _prepareForSleep(proxy, sender, [aboutToSuspend]) { ++ this.emit('prepare-for-sleep', aboutToSuspend); ++ } ++} ++Signals.addSignalMethods(LoginManagerConsoleKit.prototype); + + var LoginManagerDummy = class { + getCurrentSessionProxy(_callback) { Property changes on: head/x11/gnome-shell/files/patch-js_misc_loginManager_js ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/x11/gnome-shell/files/patch-js_ui_status_keyboard_js =================================================================== --- head/x11/gnome-shell/files/patch-js_ui_status_keyboard_js (nonexistent) +++ head/x11/gnome-shell/files/patch-js_ui_status_keyboard_js (revision 551815) @@ -0,0 +1,27 @@ +$OpenBSD: patch-js_ui_status_keyboard_js,v 1.6 2020/05/14 15:28:46 jasper Exp $ + +https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=235009 + +Index: js/ui/status/keyboard.js +--- js/ui/status/keyboard.js.orig ++++ js/ui/status/keyboard.js +@@ -242,6 +242,19 @@ var InputSourceSystemSettings = class extends InputSou + id += '+%s'.format(variants[i]); + sourcesList.push({ type: INPUT_SOURCE_TYPE_XKB, id }); + } ++ ++ // fallback: retrieve input source from current locale if we don't ++ // support the org.freedesktop.locale1 interface ++ if (sourcesList.length == 0) { ++ let _keyboardManagerLayout = KeyboardManager.getKeyboardManager()._getLocaleLayout(); ++ if (_keyboardManagerLayout) { ++ let _kMLid = _keyboardManagerLayout.layout; ++ if (!!_keyboardManagerLayout.variant) ++ _kMLid = _kMLid + '+' + _keyboardManagerLayout.variant; ++ sourcesList.push({ type: INPUT_SOURCE_TYPE_XKB, id: _kMLid }); ++ } ++ } ++ + return sourcesList; + } + Property changes on: head/x11/gnome-shell/files/patch-js_ui_status_keyboard_js ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property