aboutsummaryrefslogtreecommitdiff
path: root/x11/phosh
diff options
context:
space:
mode:
authorJan Beich <jbeich@FreeBSD.org>2020-08-16 00:37:14 +0000
committerJan Beich <jbeich@FreeBSD.org>2020-08-16 00:37:14 +0000
commit42f8fd70317ee67fc3b7d290e72a427b315bf91b (patch)
tree7b82a26c494319f17d4a4d523c0b1143a995dca3 /x11/phosh
parentfb90dd6f2eabbfb87f110783d3244468d4360ac4 (diff)
downloadports-42f8fd70317ee67fc3b7d290e72a427b315bf91b.tar.gz
ports-42f8fd70317ee67fc3b7d290e72a427b315bf91b.zip
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
Notes
Notes: svn path=/head/; revision=545083
Diffstat (limited to 'x11/phosh')
-rw-r--r--x11/phosh/Makefile45
-rw-r--r--x11/phosh/distinfo5
-rw-r--r--x11/phosh/files/patch-glib-2.5648
-rw-r--r--x11/phosh/files/patch-glib-types17
-rw-r--r--x11/phosh/files/patch-no-libnm143
-rw-r--r--x11/phosh/pkg-descr13
6 files changed, 271 insertions, 0 deletions
diff --git a/x11/phosh/Makefile b/x11/phosh/Makefile
new file mode 100644
index 000000000000..b4691892fba9
--- /dev/null
+++ b/x11/phosh/Makefile
@@ -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>
diff --git a/x11/phosh/distinfo b/x11/phosh/distinfo
new file mode 100644
index 000000000000..12f0ec733aaa
--- /dev/null
+++ b/x11/phosh/distinfo
@@ -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
diff --git a/x11/phosh/files/patch-glib-2.56 b/x11/phosh/files/patch-glib-2.56
new file mode 100644
index 000000000000..314d0f0e2632
--- /dev/null
+++ b/x11/phosh/files/patch-glib-2.56
@@ -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)
+ {
diff --git a/x11/phosh/files/patch-glib-types b/x11/phosh/files/patch-glib-types
new file mode 100644
index 000000000000..426fc63f5902
--- /dev/null
+++ b/x11/phosh/files/patch-glib-types
@@ -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;
+
diff --git a/x11/phosh/files/patch-no-libnm b/x11/phosh/files/patch-no-libnm
new file mode 100644
index 000000000000..496d14d7020e
--- /dev/null
+++ b/x11/phosh/files/patch-no-libnm
@@ -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',
diff --git a/x11/phosh/pkg-descr b/x11/phosh/pkg-descr
new file mode 100644
index 000000000000..455e31e427dc
--- /dev/null
+++ b/x11/phosh/pkg-descr
@@ -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