Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 16 Aug 2020 00:37:15 +0000 (UTC)
From:      Jan Beich <jbeich@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r545083 - in head/x11: . phosh phosh/files
Message-ID:  <202008160037.07G0bFBs012819@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jbeich
Date: Sun Aug 16 00:37:14 2020
New Revision: 545083
URL: https://svnweb.freebsd.org/changeset/ports/545083

Log:
  x11/phosh: add new port
  
  Phosh aims to be a Wayland shell for mobile phones. Currently, only
  useful for developers. Network is not supported on FreeBSD yet.
  
  https://source.puri.sm/Librem5/phosh

Added:
  head/x11/phosh/
  head/x11/phosh/Makefile   (contents, props changed)
  head/x11/phosh/distinfo   (contents, props changed)
  head/x11/phosh/files/
  head/x11/phosh/files/patch-glib-2.56   (contents, props changed)
  head/x11/phosh/files/patch-glib-types   (contents, props changed)
  head/x11/phosh/files/patch-no-libnm   (contents, props changed)
  head/x11/phosh/pkg-descr   (contents, props changed)
Modified:
  head/x11/Makefile   (contents, props changed)

Modified: head/x11/Makefile
==============================================================================
--- head/x11/Makefile	Sat Aug 15 23:23:23 2020	(r545082)
+++ head/x11/Makefile	Sun Aug 16 00:37:14 2020	(r545083)
@@ -247,6 +247,7 @@
     SUBDIR += p5-XTerm-Conf
     SUBDIR += pcdm
     SUBDIR += perwindowlayoutd
+    SUBDIR += phosh
     SUBDIR += pipeglade
     SUBDIR += pixman
     SUBDIR += plank

Added: head/x11/phosh/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/x11/phosh/Makefile	Sun Aug 16 00:37:14 2020	(r545083)
@@ -0,0 +1,45 @@
+# $FreeBSD$
+
+PORTNAME=	phosh
+DISTVERSIONPREFIX=	v
+DISTVERSION=	0.4.3
+CATEGORIES=	x11
+
+MAINTAINER=	jbeich@FreeBSD.org
+COMMENT=	Pure Wayland shell prototype for mobile devices
+
+LICENSE=	GPLv3+
+LICENSE_FILE=	${WRKSRC}/COPYING
+
+BUILD_DEPENDS=	wayland-protocols>=1.12:graphics/wayland-protocols
+LIB_DEPENDS=	libfeedback-0.0.so:accessibility/feedbackd \
+		libpulse-mainloop-glib.so:audio/pulseaudio \
+		libwayland-client.so:graphics/wayland \
+		libgcr-ui-3.so:security/gcr \
+		libpolkit-agent-1.so:sysutils/polkit \
+		libupower-glib.so:sysutils/upower \
+		libhandy-0.0.so:x11-toolkits/libhandy
+RUN_DEPENDS=	phoc:x11-wm/phoc \
+		gnome-session:x11/gnome-session
+
+USES=		compiler:c11 gnome meson pkgconfig
+USE_GITLAB=	yes
+USE_GNOME=	cairo gdkpixbuf2 gnomedesktop3
+GL_SITE=	https://source.puri.sm
+GL_ACCOUNT=	Librem5
+GL_COMMIT=	99d18088f1e44a19db870649559451e91adf204e
+GL_TUPLE=	https://gitlab.gnome.org:GNOME:libgnome-volume-control:ae1a34aafce7026b8c0f65a43c9192d756fe1057:gvc/subprojects/gvc
+MESON_ARGS=	-Dgvc:alsa=false
+PLIST_FILES=	bin/${PORTNAME} \
+		bin/${PORTNAME}-osk-stub \
+		libexec/${PORTNAME} \
+		${DATADIR}/phoc.ini \
+		share/wayland-sessions/${PORTNAME}.desktop
+GLIB_SCHEMAS=	sm.puri.phosh.gschema.xml
+
+post-patch:
+	@${REINPLACE_CMD} -e 's/bash -l/sh -/' \
+		-e 's,/etc,${PREFIX}&,' \
+		${WRKSRC}/data/phosh.in
+
+.include <bsd.port.mk>

Added: head/x11/phosh/distinfo
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/x11/phosh/distinfo	Sun Aug 16 00:37:14 2020	(r545083)
@@ -0,0 +1,5 @@
+TIMESTAMP = 1596442228
+SHA256 (Librem5-phosh-99d18088f1e44a19db870649559451e91adf204e_GL0.tar.gz) = 1bb107f432289594ca564839772cac3960d930ef1e281bdec442558632c40f5f
+SIZE (Librem5-phosh-99d18088f1e44a19db870649559451e91adf204e_GL0.tar.gz) = 312123
+SHA256 (GNOME-libgnome-volume-control-ae1a34aafce7026b8c0f65a43c9192d756fe1057_GL0.tar.gz) = 780143bef70698e402b099f300f5c82bfbb38ef5c3b6d89b1efeb7a45a5d8dc1
+SIZE (GNOME-libgnome-volume-control-ae1a34aafce7026b8c0f65a43c9192d756fe1057_GL0.tar.gz) = 45245

Added: head/x11/phosh/files/patch-glib-2.56
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/x11/phosh/files/patch-glib-2.56	Sun Aug 16 00:37:14 2020	(r545083)
@@ -0,0 +1,48 @@
+Drop after devel/glib20 is updated to 2.58 or later.
+
+meson.build:107:0: ERROR: Invalid version of dependency, need 'gio-2.0' ['>=2.58'] found '2.56.3'.
+
+../tools/dump-app-list.c:25:29: warning: implicit declaration of function 'G_SOURCE_FUNC' is invalid in C99 [-Wimplicit-function-declaration]
+  g_timeout_add_seconds (2, G_SOURCE_FUNC (g_main_loop_quit), loop);
+                            ^
+ld: error: undefined symbol: G_SOURCE_FUNC
+>>> referenced by dump-app-list.c
+>>>               tools/dump-app-list.p/dump-app-list.c.o:(main)
+
+--- meson.build.orig	2020-08-03 08:10:28 UTC
++++ meson.build
+@@ -27,7 +27,7 @@ configure_file(
+   configuration: config_h,
+ )
+ 
+-glib_ver = 'GLIB_VERSION_2_58'
++glib_ver = 'GLIB_VERSION_2_56'
+ 
+ add_project_arguments([
+   '-DHAVE_CONFIG_H',
+@@ -104,9 +104,9 @@ gnome = import('gnome')
+ i18n  = import('i18n')
+ 
+ gcr_dep = dependency('gcr-3', version: '>= 3.7.5')
+-gio_dep = dependency('gio-2.0', version: '>=2.58')
+-gio_unix_dep =  dependency('gio-unix-2.0', version: '>=2.58')
+-glib_dep = dependency('glib-2.0', version: '>=2.58')
++gio_dep = dependency('gio-2.0', version: '>=2.56')
++gio_unix_dep =  dependency('gio-unix-2.0', version: '>=2.56')
++glib_dep = dependency('glib-2.0', version: '>=2.56')
+ gnome_desktop_dep = dependency('gnome-desktop-3.0', version: '>=3.26')
+ gobject_dep =  dependency('gobject-2.0', version: '>=2.50.0')
+ gtk_dep = dependency('gtk+-3.0', version: '>=3.22')
+--- tools/dump-app-list.c.orig	2020-08-03 08:10:28 UTC
++++ tools/dump-app-list.c
+@@ -10,6 +10,10 @@
+ 
+ #include <app-list-model.h>
+ 
++#if !GLIB_CHECK_VERSION(2, 58, 0)
++#define G_SOURCE_FUNC(f) ((GSourceFunc) (void (*)(void)) (f))
++#endif
++
+ int
+ main (int argc, char **argv)
+ {

Added: head/x11/phosh/files/patch-glib-types
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/x11/phosh/files/patch-glib-types	Sun Aug 16 00:37:14 2020	(r545083)
@@ -0,0 +1,17 @@
+Don't use Linux-only types in otherwise portable code.
+
+../src/system-prompter.c:25:8: error: unknown type name 'ulong'
+static ulong owner_id;
+       ^
+
+--- src/system-prompter.c.orig	2020-08-03 08:10:28 UTC
++++ src/system-prompter.c
+@@ -22,7 +22,7 @@
+  * wide modal #PhoshSystemPrompt dialogs
+  */
+ static GcrSystemPrompter *_prompter;
+-static ulong owner_id;
++static gulong owner_id;
+ static gboolean registered_prompter;
+ static gboolean acquired_prompter;
+ 

Added: head/x11/phosh/files/patch-no-libnm
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/x11/phosh/files/patch-no-libnm	Sun Aug 16 00:37:14 2020	(r545083)
@@ -0,0 +1,143 @@
+NetworkManager is Linux-only. FreeBSD has many alternatives but none
+implements libnm-compatible API required by Phosh and GNOME.
+
+meson.build:134:0: ERROR: Dependency "libnm" not found, tried pkgconfig
+
+--- meson.build.orig	2020-08-03 08:10:28 UTC
++++ meson.build
+@@ -131,9 +131,9 @@ libhandy_dep = dependency('libhandy-0.0',
+   fallback: ['libhandy', 'libhandy_dep'],
+   default_options: ['introspection=disabled']
+   )
+-libnm_dep = dependency('libnm', version: '>= 1.14')
++libnm_dep = dependency('libnm', version: '>= 1.14', required: false)
+ libpolkit_agent_dep = dependency('polkit-agent-1', version: '>= 0.105')
+-network_agent_dep = dependency('libsecret-1')
++network_agent_dep = dependency('libsecret-1', required: false)
+ upower_glib_dep = dependency('upower-glib', version: '>=0.99.1')
+ wayland_client_dep = dependency('wayland-client', version: '>=1.14')
+ wayland_protos_dep = dependency('wayland-protocols', version: '>=1.12')
+--- src/meson.build.orig	2020-08-03 08:10:28 UTC
++++ src/meson.build
+@@ -50,8 +50,6 @@ libphosh_tool_sources = [
+   'app-list-model.h',
+   'background.c',
+   'background.h',
+-  'connectivity-info.c',
+-  'connectivity-info.h',
+   'favorite-list-model.c',
+   'favorite-list-model.h',
+   'feedback-manager.c',
+@@ -92,8 +90,6 @@ libphosh_sources = [
+   'bt-info.h',
+   'bt-manager.c',
+   'bt-manager.h',
+-  'contrib/shell-network-agent.c',
+-  'contrib/shell-network-agent.h',
+   'fader.c',
+   'fader.h',
+   'feedbackinfo.c',
+@@ -110,8 +106,6 @@ libphosh_sources = [
+   'lockscreen.h',
+   'monitor-manager.c',
+   'monitor-manager.h',
+-  'network-auth-prompt.c',
+-  'network-auth-prompt.h',
+   'osk-manager.c',
+   'osk-manager.h',
+   'panel.c',
+@@ -144,10 +138,6 @@ libphosh_sources = [
+   'toplevel-thumbnail.h',
+   'toplevel.c',
+   'toplevel.h',
+-  'wifiinfo.c',
+-  'wifiinfo.h',
+-  'wifimanager.c',
+-  'wifimanager.h',
+   'wwaninfo.c',
+   'wwaninfo.h',
+   phosh_settings_sources,
+--- src/panel.c.orig	2020-08-03 08:10:28 UTC
++++ src/panel.c
+@@ -13,7 +13,6 @@
+ #include "config.h"
+ 
+ #include "bt-info.h"
+-#include "connectivity-info.h"
+ #include "panel.h"
+ #include "shell.h"
+ #include "session.h"
+@@ -371,7 +370,6 @@ phosh_panel_class_init (PhoshPanelClass *klass)
+       NULL, G_TYPE_NONE, 0);
+ 
+   g_type_ensure (PHOSH_TYPE_BT_INFO);
+-  g_type_ensure (PHOSH_TYPE_CONNECTIVITY_INFO);
+   g_type_ensure (PHOSH_TYPE_SETTINGS);
+ 
+   gtk_widget_class_set_template_from_resource (widget_class,
+--- src/shell.c.orig	2020-08-03 08:10:28 UTC
++++ src/shell.c
+@@ -43,7 +43,6 @@
+ #include "session.h"
+ #include "system-prompter.h"
+ #include "util.h"
+-#include "wifiinfo.h"
+ #include "wwaninfo.h"
+ #include "bt-manager.h"
+ 
+@@ -83,7 +82,6 @@ typedef struct
+   PhoshIdleManager *idle_manager;
+   PhoshOskManager  *osk_manager;
+   PhoshToplevelManager *toplevel_manager;
+-  PhoshWifiManager *wifi_manager;
+   PhoshPolkitAuthAgent *polkit_auth_agent;
+   PhoshScreenSaverManager *screen_saver_manager;
+   PhoshNotifyManager *notify_manager;
+@@ -332,7 +330,6 @@ phosh_shell_dispose (GObject *object)
+   g_clear_object (&priv->lockscreen_manager);
+   g_clear_object (&priv->monitor_manager);
+   g_clear_object (&priv->toplevel_manager);
+-  g_clear_object (&priv->wifi_manager);
+   g_clear_object (&priv->osk_manager);
+   g_clear_object (&priv->polkit_auth_agent);
+   g_clear_object (&priv->background_manager);
+@@ -477,7 +474,6 @@ static void
+ type_setup (void)
+ {
+   phosh_battery_info_get_type();
+-  phosh_wifi_info_get_type();
+   phosh_wwan_info_get_type();
+ }
+ 
+@@ -767,21 +763,6 @@ phosh_shell_get_monitor_manager (PhoshShell *self)
+   return priv->monitor_manager;
+ }
+ 
+-
+-PhoshWifiManager *
+-phosh_shell_get_wifi_manager (PhoshShell *self)
+-{
+-  PhoshShellPrivate *priv;
+-
+-  g_return_val_if_fail (PHOSH_IS_SHELL (self), NULL);
+-  priv = phosh_shell_get_instance_private (self);
+-
+-  if (!priv->wifi_manager)
+-      priv->wifi_manager = phosh_wifi_manager_new ();
+-
+-  g_return_val_if_fail (PHOSH_IS_WIFI_MANAGER (priv->wifi_manager), NULL);
+-  return priv->wifi_manager;
+-}
+ 
+ PhoshBtManager *
+ phosh_shell_get_bt_manager (PhoshShell *self)
+--- tests/meson.build.orig	2020-08-03 08:10:28 UTC
++++ tests/meson.build
+@@ -57,7 +57,6 @@ tests = [
+   'activity',
+   'app-grid-button',
+   'app-list-model',
+-  'connectivity-info',
+   'favourite-model',
+   'media-player',
+   'notification',

Added: head/x11/phosh/pkg-descr
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/x11/phosh/pkg-descr	Sun Aug 16 00:37:14 2020	(r545083)
@@ -0,0 +1,13 @@
+Phosh aims to be a Wayland shell for mobile phones. Currently, only
+useful for developers.
+
+Features:
+- a lockscreen
+- brightness control and nighlight
+- the gcr system-prompter interface
+- acting as a polkit auth agent
+- enough of org.gnome.Mutter.DisplayConfig to make gnome-settings-daemon happy
+- a homebutton that toggles a simple favorites menu
+- status icons for battery, wwan and wifi (WARNING: network is N/A on FreeBSD)
+
+WWW: https://source.puri.sm/Librem5/phosh



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202008160037.07G0bFBs012819>