mirror of
https://git.yoctoproject.org/poky
synced 2026-06-01 13:09:50 +00:00
weston-init: Add possibility to run weston as non-root user
These changes are from meta-96boards primarily Launch the session via a udev rule based on what kind of display device is available delete weston-conf and move the fuctionality into weston-init other layers are doing same weston-init installs machine specific weston.ini therefore mark is machine specific now (From OE-Core rev: aa3bced2e1de2f4ba507aa014835b06edccc138a) Signed-off-by: Khem Raj <raj.khem@gmail.com> Cc: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
@@ -718,7 +718,6 @@ RECIPE_MAINTAINER_pn-wayland = "Denys Dmytriyenko <denys@ti.com>"
|
|||||||
RECIPE_MAINTAINER_pn-wayland-protocols = "Denys Dmytriyenko <denys@ti.com>"
|
RECIPE_MAINTAINER_pn-wayland-protocols = "Denys Dmytriyenko <denys@ti.com>"
|
||||||
RECIPE_MAINTAINER_pn-webkitgtk = "Alexander Kanavin <alex.kanavin@gmail.com>"
|
RECIPE_MAINTAINER_pn-webkitgtk = "Alexander Kanavin <alex.kanavin@gmail.com>"
|
||||||
RECIPE_MAINTAINER_pn-weston = "Denys Dmytriyenko <denys@ti.com>"
|
RECIPE_MAINTAINER_pn-weston = "Denys Dmytriyenko <denys@ti.com>"
|
||||||
RECIPE_MAINTAINER_pn-weston-conf = "Denys Dmytriyenko <denys@ti.com>"
|
|
||||||
RECIPE_MAINTAINER_pn-weston-init = "Denys Dmytriyenko <denys@ti.com>"
|
RECIPE_MAINTAINER_pn-weston-init = "Denys Dmytriyenko <denys@ti.com>"
|
||||||
RECIPE_MAINTAINER_pn-wget = "Yi Zhao <yi.zhao@windriver.com>"
|
RECIPE_MAINTAINER_pn-wget = "Yi Zhao <yi.zhao@windriver.com>"
|
||||||
RECIPE_MAINTAINER_pn-which = "Anuj Mittal <anuj.mittal@intel.com>"
|
RECIPE_MAINTAINER_pn-which = "Anuj Mittal <anuj.mittal@intel.com>"
|
||||||
|
|||||||
@@ -74,6 +74,7 @@ SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \
|
|||||||
systemd-boot->systemd-bootconf \
|
systemd-boot->systemd-bootconf \
|
||||||
systemd->systemd-conf \
|
systemd->systemd-conf \
|
||||||
weston->weston-conf \
|
weston->weston-conf \
|
||||||
|
weston->weston-init \
|
||||||
weston-init->weston \
|
weston-init->weston \
|
||||||
weston-init->kbd \
|
weston-init->kbd \
|
||||||
connman->xl2tpd \
|
connman->xl2tpd \
|
||||||
|
|||||||
@@ -1,35 +0,0 @@
|
|||||||
SUMMARY = "Weston, a Wayland compositor, configuration files"
|
|
||||||
HOMEPAGE = "http://wayland.freedesktop.org"
|
|
||||||
LICENSE = "MIT"
|
|
||||||
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
|
|
||||||
|
|
||||||
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
|
||||||
|
|
||||||
CONFFILES_${PN} = "${sysconfdir}/xdg/weston/weston.ini"
|
|
||||||
|
|
||||||
FILES_${PN} = "${sysconfdir}/xdg/weston/weston.ini"
|
|
||||||
|
|
||||||
PACKAGES = "${PN}"
|
|
||||||
|
|
||||||
do_configure[noexec] = '1'
|
|
||||||
do_compile[noexec] = '1'
|
|
||||||
|
|
||||||
do_install() {
|
|
||||||
:
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install_qemux86() {
|
|
||||||
mkdir -p ${D}/${sysconfdir}/xdg/weston
|
|
||||||
cat << EOF > ${D}/${sysconfdir}/xdg/weston/weston.ini
|
|
||||||
[core]
|
|
||||||
backend=fbdev-backend.so
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install_qemux86-64() {
|
|
||||||
mkdir -p ${D}/${sysconfdir}/xdg/weston
|
|
||||||
cat << EOF > ${D}/${sysconfdir}/xdg/weston/weston.ini
|
|
||||||
[core]
|
|
||||||
backend=fbdev-backend.so
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
@@ -2,23 +2,35 @@ SUMMARY = "Startup script and systemd unit file for the Weston Wayland composito
|
|||||||
LICENSE = "MIT"
|
LICENSE = "MIT"
|
||||||
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
|
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
|
||||||
|
|
||||||
|
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
||||||
|
|
||||||
SRC_URI = "file://init \
|
SRC_URI = "file://init \
|
||||||
file://weston.service \
|
file://weston.ini \
|
||||||
|
file://weston@.service \
|
||||||
|
file://71-weston-drm.rules \
|
||||||
file://weston-start"
|
file://weston-start"
|
||||||
|
|
||||||
S = "${WORKDIR}"
|
S = "${WORKDIR}"
|
||||||
|
|
||||||
do_install() {
|
do_install() {
|
||||||
install -Dm755 ${WORKDIR}/init ${D}/${sysconfdir}/init.d/weston
|
install -Dm755 ${WORKDIR}/init ${D}/${sysconfdir}/init.d/weston
|
||||||
install -Dm0644 ${WORKDIR}/weston.service ${D}${systemd_system_unitdir}/weston.service
|
install -D -p -m0644 ${WORKDIR}/weston.ini ${D}${sysconfdir}/xdg/weston/weston.ini
|
||||||
|
|
||||||
|
# Install Weston systemd service and accompanying udev rule
|
||||||
|
install -D -p -m0644 ${WORKDIR}/weston@.service ${D}${systemd_system_unitdir}/weston@.service
|
||||||
|
sed -i -e s:/etc:${sysconfdir}:g \
|
||||||
|
-e s:/usr/bin:${bindir}:g \
|
||||||
|
-e s:/var:${localstatedir}:g \
|
||||||
|
${D}${systemd_unitdir}/system/weston@.service
|
||||||
|
install -D -p -m0644 ${WORKDIR}/71-weston-drm.rules \
|
||||||
|
${D}${sysconfdir}/udev/rules.d/71-weston-drm.rules
|
||||||
# Install weston-start script
|
# Install weston-start script
|
||||||
install -Dm755 ${WORKDIR}/weston-start ${D}${bindir}/weston-start
|
install -Dm755 ${WORKDIR}/weston-start ${D}${bindir}/weston-start
|
||||||
sed -i 's,@DATADIR@,${datadir},g' ${D}${bindir}/weston-start
|
sed -i 's,@DATADIR@,${datadir},g' ${D}${bindir}/weston-start
|
||||||
sed -i 's,@LOCALSTATEDIR@,${localstatedir},g' ${D}${bindir}/weston-start
|
sed -i 's,@LOCALSTATEDIR@,${localstatedir},g' ${D}${bindir}/weston-start
|
||||||
}
|
}
|
||||||
|
|
||||||
inherit allarch update-rc.d distro_features_check systemd
|
inherit update-rc.d distro_features_check systemd
|
||||||
|
|
||||||
# rdepends on weston which depends on virtual/egl
|
# rdepends on weston which depends on virtual/egl
|
||||||
REQUIRED_DISTRO_FEATURES = "opengl"
|
REQUIRED_DISTRO_FEATURES = "opengl"
|
||||||
@@ -28,4 +40,10 @@ RDEPENDS_${PN} = "weston kbd"
|
|||||||
INITSCRIPT_NAME = "weston"
|
INITSCRIPT_NAME = "weston"
|
||||||
INITSCRIPT_PARAMS = "start 9 5 2 . stop 20 0 1 6 ."
|
INITSCRIPT_PARAMS = "start 9 5 2 . stop 20 0 1 6 ."
|
||||||
|
|
||||||
SYSTEMD_SERVICE_${PN} = "weston.service"
|
FILES_${PN} += "${sysconfdir}/xdg/weston/weston.ini ${systemd_system_unitdir}/weston@.service"
|
||||||
|
|
||||||
|
CONFFILES_${PN} += "${sysconfdir}/xdg/weston/weston.ini"
|
||||||
|
|
||||||
|
SYSTEMD_SERVICE_${PN} = "weston@%i.service"
|
||||||
|
SYSTEMD_AUTO_ENABLE = "disable"
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,2 @@
|
|||||||
|
ACTION=="add", SUBSYSTEM=="graphics", KERNEL=="fb0", TAG+="systemd", ENV{SYSTEMD_WANTS}+="weston@root.service"
|
||||||
|
ACTION=="add", SUBSYSTEM=="drm", KERNEL=="card0", TAG+="systemd", ENV{SYSTEMD_WANTS}+="weston@root.service"
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
[core]
|
||||||
|
backend=fbdev-backend.so
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
[core]
|
||||||
|
backend=fbdev-backend.so
|
||||||
@@ -0,0 +1,74 @@
|
|||||||
|
# configuration file for Weston
|
||||||
|
|
||||||
|
#[core]
|
||||||
|
#modules=xwayland.so,cms-colord.so
|
||||||
|
#shell=desktop-shell.so
|
||||||
|
#gbm-format=xrgb2101010
|
||||||
|
|
||||||
|
#[shell]
|
||||||
|
#background-image=/usr/share/backgrounds/gnome/Aqua.jpg
|
||||||
|
#background-color=0xff002244
|
||||||
|
#background-type=tile
|
||||||
|
#clock-format=minutes
|
||||||
|
#panel-color=0x90ff0000
|
||||||
|
#locking=true
|
||||||
|
#animation=zoom
|
||||||
|
#startup-animation=fade
|
||||||
|
#binding-modifier=ctrl
|
||||||
|
#num-workspaces=6
|
||||||
|
#cursor-theme=whiteglass
|
||||||
|
#cursor-size=24
|
||||||
|
|
||||||
|
#lockscreen-icon=/usr/share/icons/gnome/256x256/actions/lock.png
|
||||||
|
#lockscreen=/usr/share/backgrounds/gnome/Garden.jpg
|
||||||
|
#homescreen=/usr/share/backgrounds/gnome/Blinds.jpg
|
||||||
|
#animation=fade
|
||||||
|
|
||||||
|
#[launcher]
|
||||||
|
#icon=/usr/share/icons/gnome/24x24/apps/utilities-terminal.png
|
||||||
|
#path=/usr/bin/gnome-terminal
|
||||||
|
|
||||||
|
#[launcher]
|
||||||
|
#icon=/usr/share/icons/gnome/24x24/apps/utilities-terminal.png
|
||||||
|
#path=/usr/bin/weston-terminal
|
||||||
|
|
||||||
|
#[launcher]
|
||||||
|
#icon=/usr/share/icons/hicolor/24x24/apps/google-chrome.png
|
||||||
|
#path=/usr/bin/google-chrome
|
||||||
|
|
||||||
|
#[launcher]
|
||||||
|
#icon=/usr/share/icons/gnome/24x24/apps/arts.png
|
||||||
|
#path=/build/weston-0lEgCh/weston-1.11.0/weston-flower
|
||||||
|
|
||||||
|
#[input-method]
|
||||||
|
#path=/usr/lib/weston/weston-keyboard
|
||||||
|
|
||||||
|
#[output]
|
||||||
|
#name=LVDS1
|
||||||
|
#mode=1680x1050
|
||||||
|
#transform=90
|
||||||
|
#icc_profile=/usr/share/color/icc/colord/Bluish.icc
|
||||||
|
|
||||||
|
#[output]
|
||||||
|
#name=VGA1
|
||||||
|
#mode=173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
|
||||||
|
#transform=flipped
|
||||||
|
|
||||||
|
#[output]
|
||||||
|
#name=X1
|
||||||
|
#mode=1024x768
|
||||||
|
#transform=flipped-90
|
||||||
|
|
||||||
|
#[libinput]
|
||||||
|
#enable_tap=true
|
||||||
|
|
||||||
|
#[touchpad]
|
||||||
|
#constant_accel_factor = 50
|
||||||
|
#min_accel_factor = 0.16
|
||||||
|
#max_accel_factor = 1.0
|
||||||
|
|
||||||
|
#[screen-share]
|
||||||
|
#command=/usr/bin/weston --backend=rdp-backend.so --shell=fullscreen-shell.so --no-clients-resize
|
||||||
|
|
||||||
|
#[xwayland]
|
||||||
|
#path=/usr/bin/Xwayland
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
[Unit]
|
|
||||||
Description=Weston Wayland Compositor
|
|
||||||
RequiresMountsFor=/run
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
User=root
|
|
||||||
PAMName=login
|
|
||||||
EnvironmentFile=-/etc/default/weston
|
|
||||||
ExecStart=/usr/bin/weston-start -v -e -- $OPTARGS
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
|
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Weston Wayland Compositor (on tty7)
|
||||||
|
RequiresMountsFor=/run
|
||||||
|
Conflicts=getty@tty7.service plymouth-quit.service
|
||||||
|
After=systemd-user-sessions.service getty@tty7.service plymouth-quit-wait.service
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
User=%i
|
||||||
|
PermissionsStartOnly=true
|
||||||
|
|
||||||
|
# Log us in via PAM so we get our XDG & co. environment and
|
||||||
|
# are treated as logged in so we can use the tty:
|
||||||
|
PAMName=login
|
||||||
|
|
||||||
|
# Grab tty7
|
||||||
|
UtmpIdentifier=tty7
|
||||||
|
TTYPath=/dev/tty7
|
||||||
|
TTYReset=yes
|
||||||
|
TTYVHangup=yes
|
||||||
|
TTYVTDisallocate=yes
|
||||||
|
|
||||||
|
# stderr to journal so our logging doesn't get thrown into /dev/null
|
||||||
|
StandardOutput=tty
|
||||||
|
StandardInput=tty
|
||||||
|
StandardError=journal
|
||||||
|
|
||||||
|
EnvironmentFile=-/etc/default/weston
|
||||||
|
|
||||||
|
# Weston does not successfully change VT, nor does systemd place us on
|
||||||
|
# the VT it just activated for us. Switch manually:
|
||||||
|
ExecStartPre=/usr/bin/chvt 7
|
||||||
|
ExecStart=/usr/bin/weston --log=${XDG_RUNTIME_DIR}/weston.log $OPTARGS
|
||||||
|
|
||||||
|
IgnoreSIGPIPE=no
|
||||||
|
|
||||||
|
#[Install]
|
||||||
|
#Alias=multi-user.target.wants/weston.service
|
||||||
@@ -104,7 +104,7 @@ FILES_${PN}-xwayland = "${libdir}/libweston-${WESTON_MAJOR_VERSION}/xwayland.so"
|
|||||||
RDEPENDS_${PN}-xwayland += "xserver-xorg-xwayland"
|
RDEPENDS_${PN}-xwayland += "xserver-xorg-xwayland"
|
||||||
|
|
||||||
RDEPENDS_${PN} += "xkeyboard-config"
|
RDEPENDS_${PN} += "xkeyboard-config"
|
||||||
RRECOMMENDS_${PN} = "weston-conf liberation-fonts"
|
RRECOMMENDS_${PN} = "weston-init liberation-fonts"
|
||||||
RRECOMMENDS_${PN}-dev += "wayland-protocols"
|
RRECOMMENDS_${PN}-dev += "wayland-protocols"
|
||||||
|
|
||||||
USERADD_PACKAGES = "${PN}"
|
USERADD_PACKAGES = "${PN}"
|
||||||
|
|||||||
Reference in New Issue
Block a user