summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta-agl-profile-graphical/classes/agl-graphical.bbclass5
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston-init.bbappend37
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/weston.conf.in17
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-dri.rules.in2
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-input.rules1
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-input.rules.in1
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-tty.rules.in2
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-Allow-regular-users-to-launch-Weston_2.0.0.patch39
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-Allow-regular-users-to-launch-Weston_7.0.0.patch51
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston/0002-ivi-shell-Fix-crash-due-no-transmitter-screen.patch2
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston_%.bbappend4
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston_6.0.0.bbappend10
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston_7.0.0.bbappend14
13 files changed, 94 insertions, 91 deletions
diff --git a/meta-agl-profile-graphical/classes/agl-graphical.bbclass b/meta-agl-profile-graphical/classes/agl-graphical.bbclass
index e99a441b7..65106db18 100644
--- a/meta-agl-profile-graphical/classes/agl-graphical.bbclass
+++ b/meta-agl-profile-graphical/classes/agl-graphical.bbclass
@@ -1,7 +1,6 @@
-WESTONTTY ??= "1"
WESTONUSER ??= "display"
WESTONGROUP ??= "display"
-WESTONARGS ?= "--idle-time=0 --tty=${WESTONTTY}"
-WESTONLAUNCHARGS ??= "--tty /dev/tty${WESTONTTY} --user ${WESTONUSER}"
+WESTONARGS ?= "--idle-time=0 --tty=7"
+WESTONLAUNCHARGS ??= "--tty /dev/tty7 --user ${WESTONUSER}"
DISPLAY_XDG_RUNTIME_DIR ??= "/run/platform/${WESTONUSER}"
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init.bbappend b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init.bbappend
index 247aeeee3..c71402fed 100644
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init.bbappend
+++ b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init.bbappend
@@ -2,17 +2,14 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
inherit agl-graphical
-
WESTONSTART ??= "${@bb.utils.contains("DISTRO_FEATURES", "agl-compositor", "/usr/bin/agl-compositor", "/usr/bin/weston",d)} ${WESTONARGS}"
WESTONSTART_append = " ${@bb.utils.contains("IMAGE_FEATURES", "debug-tweaks", " --log=${DISPLAY_XDG_RUNTIME_DIR}/weston.log", "",d)}"
-DROPIN_NAME = "weston-init"
-
WIFILES = " \
file://weston.conf.in \
file://tmpfiles.conf.in \
file://zz-dri.rules.in \
- file://zz-input.rules \
+ file://zz-input.rules.in \
file://zz-tty.rules.in \
"
@@ -23,37 +20,34 @@ WIFILES_append_imx = " \
SRC_URI_append = " ${WIFILES}"
do_install_append() {
+ # Remove upstream weston.ini to avoid conflict with weston-ini-conf package
+ rm -f ${D}${sysconfdir}/xdg/weston/weston.ini
- # files
- files=$(echo ${WIFILES} | sed s,file://,,g)
+ # Remove upstream weston udev rules just to be safe
+ rm -f ${D}${sysconfdir}/udev/rules.d/71-weston-drm.rules
- # process ".in" files
+ # Process ".in" files
+ files=$(echo ${WIFILES} | sed s,file://,,g)
for f in ${files}; do
g=${f%.in}
if [ "${f}" != "${g}" ]; then
sed -e "s,@WESTONUSER@,${WESTONUSER},g" \
-e "s,@WESTONGROUP@,${WESTONGROUP},g" \
-e "s,@XDG_RUNTIME_DIR@,${DISPLAY_XDG_RUNTIME_DIR},g" \
- -e "s,@WESTONTTY@,${WESTONTTY},g" \
-e "s,@WESTONSTART@,${WESTONSTART},g" \
${WORKDIR}/${f} > ${WORKDIR}/${g}
fi
done
- # removes any unexpected entry from weston.service
- for x in Group User ExecStart PAMName; do
- sed -i "/^ *$x *=/d" ${D}${systemd_system_unitdir}/weston.service
- done
-
- # install weston drop-in
- install -d ${D}${systemd_system_unitdir}/weston.service.d
- install -m644 ${WORKDIR}/weston.conf ${D}/${systemd_system_unitdir}/weston.service.d/${DROPIN_NAME}.conf
+ # Install weston drop-in
+ install -d ${D}${systemd_system_unitdir}/weston@.service.d
+ install -m644 ${WORKDIR}/weston.conf ${D}/${systemd_system_unitdir}/weston@.service.d/weston-init.conf
- # install tmpfiles drop-in
+ # Install tmpfiles drop-in
install -d ${D}${libdir}/tmpfiles.d
- install -m644 ${WORKDIR}/tmpfiles.conf ${D}${libdir}/tmpfiles.d/${DROPIN_NAME}.conf
+ install -m644 ${WORKDIR}/tmpfiles.conf ${D}${libdir}/tmpfiles.d/weston-init.conf
- # install udev rules
+ # Install udev rules
install -d ${D}${sysconfdir}/udev/rules.d
for f in ${files}; do
g=${f%.in}
@@ -65,8 +59,9 @@ do_install_append() {
}
FILES_${PN} += " \
- ${libdir}/tmpfiles.d/*.conf \
- ${systemd_system_unitdir}/weston.service.d/${DROPIN_NAME}.conf \
+ ${libdir}/tmpfiles.d/ \
+ ${systemd_system_unitdir}/weston@.service.d/ \
"
+SYSTEMD_AUTO_ENABLE = "enable"
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/weston.conf.in b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/weston.conf.in
index 89c436695..211136cc9 100644
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/weston.conf.in
+++ b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/weston.conf.in
@@ -1,17 +1,14 @@
-[Unit]
-Conflicts=getty@tty@WESTONTTY@.service
[Service]
Type=notify
-User=@WESTONUSER@
-Group=@WESTONGROUP@
Environment="XDG_RUNTIME_DIR=@XDG_RUNTIME_DIR@"
Environment="XDG_RUNTIMESHARE_DIR=@XDG_RUNTIME_DIR@/share"
ExecStartPre=/bin/mkdir -p @XDG_RUNTIME_DIR@/share
ExecStartPre=+/usr/bin/chsmack -a User::App-Shared -t @XDG_RUNTIME_DIR@/share
+# Note that clearing PAMName (thus not having PAMName=login) disables
+# logind support for the session, which allows setting XDG_RUNTIME_DIR
+# to something other than /run/user/% (as is done above).
+# Without systemd-logind support, weston needs to be patched to allow
+# its direct launcher to work for non-root users in this scenario.
+PAMName=
+ExecStart=
ExecStart=@WESTONSTART@
-TTYPath=/dev/tty@WESTONTTY@
-StandardInput=tty
-TTYReset=yes
-TTYVHangup=yes
-TTYVTDisallocate=yes
-UtmpIdentifier=tty@WESTONTTY@
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-dri.rules.in b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-dri.rules.in
index 707d12e28..51c68c303 100644
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-dri.rules.in
+++ b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-dri.rules.in
@@ -1 +1 @@
-SUBSYSTEM=="drm", MODE="0660", GROUP="@WESTONGROUP@", SECLABEL{smack}="*", TAG+="systemd", ENV{SYSTEMD_WANTS}="weston.service"
+SUBSYSTEM=="drm", MODE="0660", GROUP="@WESTONGROUP@", SECLABEL{smack}="*", TAG+="systemd", ENV{SYSTEMD_WANTS}="weston@@WESTONUSER@.service"
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-input.rules b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-input.rules
deleted file mode 100644
index c0842135a..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-input.rules
+++ /dev/null
@@ -1 +0,0 @@
-SUBSYSTEM=="input", MODE="0660", GROUP="input", SECLABEL{smack}="*", TAG+="systemd", ENV{SYSTEMD_WANTS}="weston.service"
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-input.rules.in b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-input.rules.in
new file mode 100644
index 000000000..fb3e677f4
--- /dev/null
+++ b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-input.rules.in
@@ -0,0 +1 @@
+SUBSYSTEM=="input", MODE="0660", GROUP="input", SECLABEL{smack}="*", TAG+="systemd", ENV{SYSTEMD_WANTS}="weston@@WESTONUSER@.service"
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-tty.rules.in b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-tty.rules.in
index bfdf55b81..e5ce4b553 100644
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-tty.rules.in
+++ b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-tty.rules.in
@@ -1 +1 @@
-SUBSYSTEM=="tty", KERNEL=="tty@WESTONTTY@", OWNER="@WESTONUSER@", SECLABEL{smack}="*", TAG+="systemd", ENV{SYSTEMD_WANTS}="weston.service"
+SUBSYSTEM=="tty", KERNEL=="tty7", OWNER="@WESTONUSER@", SECLABEL{smack}="*", TAG+="systemd", ENV{SYSTEMD_WANTS}="weston@@WESTONUSER@.service"
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-Allow-regular-users-to-launch-Weston_2.0.0.patch b/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-Allow-regular-users-to-launch-Weston_2.0.0.patch
deleted file mode 100644
index 3a59ba0c8..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-Allow-regular-users-to-launch-Weston_2.0.0.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 6c145cea35f0b77613d6e3f48679c976b9839d7c Mon Sep 17 00:00:00 2001
-From: Ronan Le Martret <ronan.lemartret@iot.bzh>
-Date: Wed, 31 May 2017 22:48:18 +0000
-Subject: [PATCH] Allow regular users to launch Weston
-
-Signed-off-by: Ronan Le Martret <ronan.lemartret@iot.bzh>
-
-diff --git a/configure.ac b/configure.ac
-index 50f8e013..2043b9b0 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -156,6 +156,12 @@ PKG_CHECK_MODULES(XKBCOMMON_COMPOSE, [xkbcommon >= 0.5.0],
- [AC_DEFINE(HAVE_XKBCOMMON_COMPOSE, 1,
- [Define if xkbcommon is 0.5.0 or newer])],true)
-
-+AC_ARG_ENABLE(sys-uid, [ --enable-sys-uid],,
-+ enable_sys_uid=no)
-+if test x$enable_sys_uid = xyes; then
-+ AC_DEFINE(ENABLE_SYS_UID, [1], [Allow regular users to launch Weston])
-+fi
-+
- AC_ARG_ENABLE(setuid-install, [ --enable-setuid-install],,
- enable_setuid_install=yes)
- AM_CONDITIONAL(ENABLE_SETUID_INSTALL, test x$enable_setuid_install = xyes)
-diff --git a/libweston/launcher-direct.c b/libweston/launcher-direct.c
-index e0ce6d63..d0db9bb5 100644
---- a/libweston/launcher-direct.c
-+++ b/libweston/launcher-direct.c
-@@ -283,8 +283,10 @@ launcher_direct_connect(struct weston_launcher **out, struct weston_compositor *
- {
- struct launcher_direct *launcher;
-
-+#ifndef ENABLE_SYS_UID
- if (geteuid() != 0)
- return -EINVAL;
-+#endif
-
- launcher = zalloc(sizeof(*launcher));
- if (launcher == NULL)
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-Allow-regular-users-to-launch-Weston_7.0.0.patch b/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-Allow-regular-users-to-launch-Weston_7.0.0.patch
new file mode 100644
index 000000000..362f6b064
--- /dev/null
+++ b/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-Allow-regular-users-to-launch-Weston_7.0.0.patch
@@ -0,0 +1,51 @@
+Allow regular users to launch Weston
+
+Signed-off-by: Ronan Le Martret <ronan.lemartret@iot.bzh>
+[Reworked for Weston 7.0.0 switch to meson]
+Signed-off-by: Scott Murray <scott.murray@konsulko.com>
+
+diff --git a/libweston/launcher-direct.c b/libweston/launcher-direct.c
+index 9fa329b6..8e218804 100644
+--- a/libweston/launcher-direct.c
++++ b/libweston/launcher-direct.c
+@@ -291,8 +291,10 @@ launcher_direct_connect(struct weston_launcher **out, struct weston_compositor *
+ {
+ struct launcher_direct *launcher;
+
++#ifndef ENABLE_USER_START
+ if (geteuid() != 0)
+ return -EINVAL;
++#endif
+
+ launcher = zalloc(sizeof(*launcher));
+ if (launcher == NULL)
+diff --git a/libweston/meson.build b/libweston/meson.build
+index d8d3fc07..0d39ebf1 100644
+--- a/libweston/meson.build
++++ b/libweston/meson.build
+@@ -216,6 +216,10 @@ if get_option('weston-launch')
+ meson.add_install_script('echo', 'REMINDER: You are installing weston-launch, please make it setuid-root.')
+ endif
+
++if get_option('enable-user-start')
++ config_h.set('ENABLE_USER_START', '1')
++endif
++
+ subdir('renderer-gl')
+ subdir('backend-drm')
+ subdir('backend-fbdev')
+diff --git a/meson_options.txt b/meson_options.txt
+index d5bf1d54..c93f31d1 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -217,3 +217,10 @@ option(
+ value: false,
+ description: 'Generate documentation'
+ )
++
++option(
++ 'enable-user-start',
++ type: 'boolean',
++ value: true,
++ description: 'Tests: enable start as non-root user'
++)
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0002-ivi-shell-Fix-crash-due-no-transmitter-screen.patch b/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0002-ivi-shell-Fix-crash-due-no-transmitter-screen.patch
index 51779cf45..05ce7de30 100644
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0002-ivi-shell-Fix-crash-due-no-transmitter-screen.patch
+++ b/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0002-ivi-shell-Fix-crash-due-no-transmitter-screen.patch
@@ -40,7 +40,7 @@ index 2c450f3..1fbfeeb 100644
#include "ivi-layout-private.h"
#include "ivi-layout-shell.h"
-
-+#include "plugin-registry.h"
++#include <libweston/plugin-registry.h>
#include "shared/helpers.h"
#include "shared/os-compatibility.h"
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston_%.bbappend b/meta-agl-profile-graphical/recipes-graphics/wayland/weston_%.bbappend
deleted file mode 100644
index bcfe11b17..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston_%.bbappend
+++ /dev/null
@@ -1,4 +0,0 @@
-PACKAGECONFIG[notify] = "--enable-systemd-notify,--disable-systemd-notify,systemd"
-PACKAGECONFIG_append = " notify"
-
-RRECOMMENDS_${PN}_remove = "weston-conf"
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston_6.0.0.bbappend b/meta-agl-profile-graphical/recipes-graphics/wayland/weston_6.0.0.bbappend
deleted file mode 100644
index 67442bd6b..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston_6.0.0.bbappend
+++ /dev/null
@@ -1,10 +0,0 @@
-FILESEXTRAPATHS_append := ":${THISDIR}/${PN}"
-
-SRC_URI_append = "\
- file://0001-Allow-regular-users-to-launch-Weston_2.0.0.patch \
- file://use-XDG_RUNTIMESHARE_DIR.patch \
- file://0002-ivi-shell-Fix-crash-due-no-transmitter-screen.patch \
- file://0003-compositor-drm-introduce-drm_get_dmafd_from_view.patch \
- file://0001-config-parser-Export-get_full_path-and-destroy.patch \
- "
-EXTRA_OECONF_append = " --enable-sys-uid"
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston_7.0.0.bbappend b/meta-agl-profile-graphical/recipes-graphics/wayland/weston_7.0.0.bbappend
new file mode 100644
index 000000000..c2e52798d
--- /dev/null
+++ b/meta-agl-profile-graphical/recipes-graphics/wayland/weston_7.0.0.bbappend
@@ -0,0 +1,14 @@
+FILESEXTRAPATHS_append := ":${THISDIR}/${PN}"
+
+# NOTE:
+# file://0003-compositor-drm-introduce-drm_get_dmafd_from_view.patch
+# has been removed until someone more familiar with weston internals
+# and waltham can take a look and update it.
+SRC_URI_append = "\
+ file://0001-Allow-regular-users-to-launch-Weston_7.0.0.patch \
+ file://use-XDG_RUNTIMESHARE_DIR.patch \
+ file://0002-ivi-shell-Fix-crash-due-no-transmitter-screen.patch \
+ file://0001-config-parser-Export-get_full_path-and-destroy.patch \
+ "
+
+EXTRA_OEMESON_append = " -Denable-user-start=true"