diff options
Diffstat (limited to 'meta')
4 files changed, 87 insertions, 11 deletions
diff --git a/meta/recipes-graphics/wayland/weston-init.bb b/meta/recipes-graphics/wayland/weston-init.bb index 40aa76295f..95d75556dc 100644 --- a/meta/recipes-graphics/wayland/weston-init.bb +++ b/meta/recipes-graphics/wayland/weston-init.bb | |||
@@ -8,7 +8,9 @@ SRC_URI = "file://init \ | |||
8 | file://weston.env \ | 8 | file://weston.env \ |
9 | file://weston.ini \ | 9 | file://weston.ini \ |
10 | file://weston@.service \ | 10 | file://weston@.service \ |
11 | file://weston@.socket \ | ||
11 | file://71-weston-drm.rules \ | 12 | file://71-weston-drm.rules \ |
13 | file://weston-autologin \ | ||
12 | file://weston-start" | 14 | file://weston-start" |
13 | 15 | ||
14 | S = "${WORKDIR}" | 16 | S = "${WORKDIR}" |
@@ -20,6 +22,10 @@ do_install() { | |||
20 | 22 | ||
21 | # Install Weston systemd service and accompanying udev rule | 23 | # Install Weston systemd service and accompanying udev rule |
22 | install -D -p -m0644 ${WORKDIR}/weston@.service ${D}${systemd_system_unitdir}/weston@.service | 24 | install -D -p -m0644 ${WORKDIR}/weston@.service ${D}${systemd_system_unitdir}/weston@.service |
25 | install -D -p -m0644 ${WORKDIR}/weston@.socket ${D}${systemd_system_unitdir}/weston@.socket | ||
26 | if [ "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" ]; then | ||
27 | install -D -p -m0644 ${WORKDIR}/weston-autologin ${D}${sysconfdir}/pam.d/weston-autologin | ||
28 | fi | ||
23 | sed -i -e s:/etc:${sysconfdir}:g \ | 29 | sed -i -e s:/etc:${sysconfdir}:g \ |
24 | -e s:/usr/bin:${bindir}:g \ | 30 | -e s:/usr/bin:${bindir}:g \ |
25 | -e s:/var:${localstatedir}:g \ | 31 | -e s:/var:${localstatedir}:g \ |
@@ -50,7 +56,7 @@ RDEPENDS_${PN} = "weston kbd" | |||
50 | INITSCRIPT_NAME = "weston" | 56 | INITSCRIPT_NAME = "weston" |
51 | INITSCRIPT_PARAMS = "start 9 5 2 . stop 20 0 1 6 ." | 57 | INITSCRIPT_PARAMS = "start 9 5 2 . stop 20 0 1 6 ." |
52 | 58 | ||
53 | FILES_${PN} += "${sysconfdir}/xdg/weston/weston.ini ${systemd_system_unitdir}/weston@.service ${sysconfdir}/default/weston" | 59 | FILES_${PN} += "${sysconfdir}/xdg/weston/weston.ini ${systemd_system_unitdir}/weston@.service ${systemd_system_unitdir}/weston@.socket ${sysconfdir}/default/weston ${sysconfdir}/pam.d/" |
54 | 60 | ||
55 | CONFFILES_${PN} += "${sysconfdir}/xdg/weston/weston.ini ${sysconfdir}/default/weston" | 61 | CONFFILES_${PN} += "${sysconfdir}/xdg/weston/weston.ini ${sysconfdir}/default/weston" |
56 | 62 | ||
diff --git a/meta/recipes-graphics/wayland/weston-init/weston-autologin b/meta/recipes-graphics/wayland/weston-init/weston-autologin new file mode 100644 index 0000000000..f6e6d106de --- /dev/null +++ b/meta/recipes-graphics/wayland/weston-init/weston-autologin | |||
@@ -0,0 +1,11 @@ | |||
1 | auth required pam_nologin.so | ||
2 | auth required pam_unix.so try_first_pass nullok | ||
3 | |||
4 | account required pam_nologin.so | ||
5 | account required pam_unix.so | ||
6 | |||
7 | session required pam_env.so | ||
8 | session required pam_unix.so | ||
9 | -session optional pam_systemd.so type=wayland class=user desktop=weston | ||
10 | -session optional pam_loginuid.so | ||
11 | |||
diff --git a/meta/recipes-graphics/wayland/weston-init/weston@.service b/meta/recipes-graphics/wayland/weston-init/weston@.service index 39e193014a..0a1df15bdf 100644 --- a/meta/recipes-graphics/wayland/weston-init/weston@.service +++ b/meta/recipes-graphics/wayland/weston-init/weston@.service | |||
@@ -1,15 +1,64 @@ | |||
1 | # This is a system unit for launching Weston with auto-login as the | ||
2 | # user configured here. | ||
3 | # | ||
4 | # Weston must be built with systemd support, and your weston.ini must load | ||
5 | # the plugin systemd-notify.so. | ||
1 | [Unit] | 6 | [Unit] |
2 | Description=Weston Wayland Compositor | 7 | Description=Weston, a Wayland compositor, as a system service |
3 | RequiresMountsFor=/run | 8 | Documentation=man:weston(1) man:weston.ini(5) |
4 | Conflicts=plymouth-quit.service | 9 | Documentation=http://wayland.freedesktop.org/ |
5 | After=systemd-user-sessions.service plymouth-quit-wait.service | 10 | |
11 | # Make sure we are started after logins are permitted. | ||
12 | After=systemd-user-sessions.service | ||
13 | |||
14 | # If Plymouth is used, we want to start when it is on its way out. | ||
15 | After=plymouth-quit-wait.service | ||
16 | |||
17 | # D-Bus is necessary for contacting logind. Logind is required. | ||
18 | Wants=dbus.socket | ||
19 | After=dbus.socket | ||
20 | |||
21 | # Since we are part of the graphical session, make sure we are started before | ||
22 | # it is complete. | ||
23 | Before=graphical.target | ||
24 | |||
25 | # Prevent starting on systems without virtual consoles, Weston requires one | ||
26 | # for now. | ||
27 | ConditionPathExists=/dev/tty0 | ||
6 | 28 | ||
7 | [Service] | 29 | [Service] |
8 | User=%i | 30 | # Requires systemd-notify.so Weston plugin. |
9 | PAMName=login | 31 | Type=notify |
10 | EnvironmentFile=-/etc/default/weston | 32 | ExecStart=/usr/bin/weston --modules=systemd-notify.so |
33 | |||
34 | # Optional watchdog setup | ||
35 | TimeoutStartSec=60 | ||
36 | WatchdogSec=20 | ||
37 | |||
38 | # The user to run Weston as. | ||
39 | User=%I | ||
40 | |||
41 | # Make sure working directory is users home directory | ||
42 | WorkingDirectory=/home/%i | ||
43 | |||
44 | # Set up a full user session for the user, required by Weston. | ||
45 | PAMName=weston-autologin | ||
46 | |||
47 | # A virtual terminal is needed. | ||
48 | TTYPath=/dev/tty7 | ||
49 | TTYReset=yes | ||
50 | TTYVHangup=yes | ||
51 | TTYVTDisallocate=yes | ||
52 | |||
53 | # Fail to start if not controlling the tty. | ||
54 | StandardInput=tty-fail | ||
55 | StandardOutput=journal | ||
11 | StandardError=journal | 56 | StandardError=journal |
12 | PermissionsStartOnly=true | ||
13 | IgnoreSIGPIPE=no | ||
14 | 57 | ||
15 | ExecStart=/usr/bin/weston-start -v -e -- $OPTARGS | 58 | # Log this user with utmp, letting it show up with commands 'w' and 'who'. |
59 | UtmpIdentifier=tty7 | ||
60 | UtmpMode=user | ||
61 | |||
62 | [Install] | ||
63 | WantedBy=graphical.target | ||
64 | DefaultInstance=tty7 | ||
diff --git a/meta/recipes-graphics/wayland/weston-init/weston@.socket b/meta/recipes-graphics/wayland/weston-init/weston@.socket new file mode 100644 index 0000000000..f1790d74a8 --- /dev/null +++ b/meta/recipes-graphics/wayland/weston-init/weston@.socket | |||
@@ -0,0 +1,10 @@ | |||
1 | [Unit] | ||
2 | Description=Weston Wayland socket | ||
3 | After=user-runtime-dir@1000.service | ||
4 | |||
5 | [Socket] | ||
6 | ListenStream=/run/user/1000/wayland-%I | ||
7 | |||
8 | [Install] | ||
9 | WantedBy=sockets.target | ||
10 | |||