diff options
Diffstat (limited to 'recipes-graphics/wayland/weston')
5 files changed, 4 insertions, 389 deletions
diff --git a/recipes-graphics/wayland/weston/0001-Revert-protocol-no-found-wayland-scanner-with-Yocto-.patch b/recipes-graphics/wayland/weston/0001-Revert-protocol-no-found-wayland-scanner-with-Yocto-.patch index dde00546..676d0338 100644 --- a/recipes-graphics/wayland/weston/0001-Revert-protocol-no-found-wayland-scanner-with-Yocto-.patch +++ b/recipes-graphics/wayland/weston/0001-Revert-protocol-no-found-wayland-scanner-with-Yocto-.patch | |||
@@ -1,4 +1,4 @@ | |||
1 | From be066d9841a9cd5e9cc5ef3c457bd1e33b2a5fae Mon Sep 17 00:00:00 2001 | 1 | From 77eba6f6b04ff21b77c41500657495b4fd12a5f6 Mon Sep 17 00:00:00 2001 |
2 | From: Max Krummenacher <max.krummenacher@toradex.com> | 2 | From: Max Krummenacher <max.krummenacher@toradex.com> |
3 | Date: Mon, 11 Jul 2022 19:38:19 +0000 | 3 | Date: Mon, 11 Jul 2022 19:38:19 +0000 |
4 | Subject: [PATCH] Revert "protocol: no found wayland-scanner with Yocto | 4 | Subject: [PATCH] Revert "protocol: no found wayland-scanner with Yocto |
@@ -26,7 +26,7 @@ Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> | |||
26 | 1 file changed, 1 insertion(+), 1 deletion(-) | 26 | 1 file changed, 1 insertion(+), 1 deletion(-) |
27 | 27 | ||
28 | diff --git a/protocol/meson.build b/protocol/meson.build | 28 | diff --git a/protocol/meson.build b/protocol/meson.build |
29 | index dc90ec2a..8290ad44 100644 | 29 | index bdd322ac..e50b23bb 100644 |
30 | --- a/protocol/meson.build | 30 | --- a/protocol/meson.build |
31 | +++ b/protocol/meson.build | 31 | +++ b/protocol/meson.build |
32 | @@ -1,4 +1,4 @@ | 32 | @@ -1,4 +1,4 @@ |
@@ -34,7 +34,7 @@ index dc90ec2a..8290ad44 100644 | |||
34 | +dep_scanner = dependency('wayland-scanner', native: true) | 34 | +dep_scanner = dependency('wayland-scanner', native: true) |
35 | prog_scanner = find_program(dep_scanner.get_pkgconfig_variable('wayland_scanner')) | 35 | prog_scanner = find_program(dep_scanner.get_pkgconfig_variable('wayland_scanner')) |
36 | 36 | ||
37 | dep_wp = dependency('wayland-protocols', version: '>= 1.18') | 37 | dep_wp = dependency('wayland-protocols', version: '>= 1.24') |
38 | -- | 38 | -- |
39 | 2.20.1 | 39 | 2.17.1 |
40 | 40 | ||
diff --git a/recipes-graphics/wayland/weston/0001-g2d-renderer-Add-vsync-to-cloned-displays.patch b/recipes-graphics/wayland/weston/0001-g2d-renderer-Add-vsync-to-cloned-displays.patch deleted file mode 100644 index fb2d47bf..00000000 --- a/recipes-graphics/wayland/weston/0001-g2d-renderer-Add-vsync-to-cloned-displays.patch +++ /dev/null | |||
@@ -1,102 +0,0 @@ | |||
1 | From b719011b7c015e2d6f0108c9d0709b98d21d6a89 Mon Sep 17 00:00:00 2001 | ||
2 | From: Piotr Wojtaszczyk <piotr.wojtaszczyk@timesys.com> | ||
3 | Date: Mon, 21 Mar 2022 12:37:18 +0100 | ||
4 | Subject: [PATCH] g2d-renderer: Add vsync to cloned displays. | ||
5 | |||
6 | When using g2d clone mode allocates additional surfaces according to | ||
7 | FB_MULTI_BUFFER for each cloned display. The g2d blit from the main screen | ||
8 | to the cloned displays is done using inactive surface. The FBIOPAN_DISPLAY | ||
9 | ioctl to the surface is done afterwards. | ||
10 | |||
11 | Signed-off-by: Piotr Wojtaszczyk <piotr.wojtaszczyk@timesys.com> | ||
12 | --- | ||
13 | libweston/renderer-g2d/g2d-renderer.c | 33 +++++++++++++++++++++------ | ||
14 | 1 file changed, 26 insertions(+), 7 deletions(-) | ||
15 | |||
16 | diff --git a/libweston/renderer-g2d/g2d-renderer.c b/libweston/renderer-g2d/g2d-renderer.c | ||
17 | index 34a077b7..3e6395d6 100644 | ||
18 | --- a/libweston/renderer-g2d/g2d-renderer.c | ||
19 | +++ b/libweston/renderer-g2d/g2d-renderer.c | ||
20 | @@ -525,6 +525,7 @@ g2d_blit_surface(void *handle, struct g2d_surfaceEx * srcG2dSurface, struct g2d_ | ||
21 | static void | ||
22 | g2d_flip_surface(struct weston_output *output) | ||
23 | { | ||
24 | + int i; | ||
25 | struct g2d_output_state *go = get_output_state(output); | ||
26 | go->fb_info.varinfo.yoffset = go->activebuffer * go->fb_info.y_resolution; | ||
27 | |||
28 | @@ -532,6 +533,16 @@ g2d_flip_surface(struct weston_output *output) | ||
29 | { | ||
30 | weston_log("FBIOPAN_DISPLAY Failed\n"); | ||
31 | } | ||
32 | + | ||
33 | + for (i = 0; i < go->clone_display_num; i++) | ||
34 | + { | ||
35 | + go->mirror_fb_info[i].varinfo.yoffset = go->activebuffer * go->mirror_fb_info[i].y_resolution; | ||
36 | + if(ioctl(go->mirror_fb_info[i].fb_fd, FBIOPAN_DISPLAY, &(go->mirror_fb_info[i].varinfo)) < 0) | ||
37 | + { | ||
38 | + weston_log("FBIOPAN_DISPLAY clone %d Failed\n", i); | ||
39 | + } | ||
40 | + } | ||
41 | + | ||
42 | go->activebuffer = (go->activebuffer + 1) % go->nNumBuffers; | ||
43 | } | ||
44 | |||
45 | @@ -571,17 +582,18 @@ copy_to_framebuffer(struct weston_output *output, pixman_region32_t* output_dama | ||
46 | int i = 0; | ||
47 | for(i = 0; i < go->clone_display_num; i++) | ||
48 | { | ||
49 | + int idx = i * go->nNumBuffers + go->activebuffer; | ||
50 | g2dRECT srcRect = {0, 0, go->renderSurf[go->activebuffer].base.width, go->renderSurf[go->activebuffer].base.height}; | ||
51 | - g2dRECT dstrect = {0, 0, go->mirrorSurf[i].base.width, go->mirrorSurf[i].base.height}; | ||
52 | + g2dRECT dstrect = {0, 0, go->mirrorSurf[idx].base.width, go->mirrorSurf[idx].base.height}; | ||
53 | if(go->directBlit || go->nNumBuffers > 1) | ||
54 | { | ||
55 | g2d_blit_surface(gr->handle, &go->renderSurf[go->activebuffer], | ||
56 | - &go->mirrorSurf[i], &srcRect, &dstrect); | ||
57 | + &go->mirrorSurf[idx], &srcRect, &dstrect); | ||
58 | } | ||
59 | else | ||
60 | { | ||
61 | g2d_blit_surface(gr->handle, &go->offscreenSurface, | ||
62 | - &go->mirrorSurf[i], &srcRect, &dstrect); | ||
63 | + &go->mirrorSurf[idx], &srcRect, &dstrect); | ||
64 | } | ||
65 | } | ||
66 | } | ||
67 | @@ -2113,6 +2125,7 @@ g2d_fbdev_renderer_output_create(struct weston_output *output, | ||
68 | int clone_display_num = 0; | ||
69 | int count = 0; | ||
70 | int k=0, dispCount = 0; | ||
71 | + int offset = 0; | ||
72 | char displays[5][32]; | ||
73 | weston_log("g2d_renderer_output_create device=%s\n", device); | ||
74 | count = strlen(device); | ||
75 | @@ -2166,7 +2179,7 @@ g2d_fbdev_renderer_output_create(struct weston_output *output, | ||
76 | |||
77 | if(go->clone_display_num) | ||
78 | { | ||
79 | - go->mirrorSurf = zalloc(sizeof(struct g2d_surfaceEx) * clone_display_num); | ||
80 | + go->mirrorSurf = zalloc(sizeof(struct g2d_surfaceEx) * clone_display_num * go->nNumBuffers); | ||
81 | go->mirror_fb_info = zalloc(sizeof(struct fb_screeninfo) * clone_display_num); | ||
82 | if(go->mirrorSurf == NULL || go->mirror_fb_info == NULL) | ||
83 | return -1; | ||
84 | @@ -2178,9 +2191,15 @@ g2d_fbdev_renderer_output_create(struct weston_output *output, | ||
85 | weston_log("Open frame buffer failed.\n"); | ||
86 | return -1; | ||
87 | } | ||
88 | - get_G2dSurface_from_screeninfo(&go->mirror_fb_info[i], &go->mirrorSurf[i]); | ||
89 | - go->mirrorSurf[i].base.planes[0] = go->mirror_fb_info[i].physical; | ||
90 | - g2d_clear(gr->handle, &go->mirrorSurf[i].base); | ||
91 | + | ||
92 | + offset = go->mirror_fb_info[i].stride_bytes * go->mirror_fb_info[i].y_resolution; | ||
93 | + for(k = 0; k < go->nNumBuffers; k++) | ||
94 | + { | ||
95 | + int idx = i * go->nNumBuffers + k; | ||
96 | + get_G2dSurface_from_screeninfo(&go->mirror_fb_info[i], &go->mirrorSurf[idx]); | ||
97 | + go->mirrorSurf[idx].base.planes[0] = go->mirror_fb_info[i].physical + (offset * k); | ||
98 | + g2d_clear(gr->handle, &go->mirrorSurf[idx].base); | ||
99 | + } | ||
100 | } | ||
101 | } | ||
102 | g2d_finish(gr->handle); | ||
diff --git a/recipes-graphics/wayland/weston/0001-libweston-backend-drm-Re-order-gbm-destruction-at-DR.patch b/recipes-graphics/wayland/weston/0001-libweston-backend-drm-Re-order-gbm-destruction-at-DR.patch deleted file mode 100644 index db640055..00000000 --- a/recipes-graphics/wayland/weston/0001-libweston-backend-drm-Re-order-gbm-destruction-at-DR.patch +++ /dev/null | |||
@@ -1,52 +0,0 @@ | |||
1 | From 4be82f75a47bd456452ab713d7d57a75d844f42a Mon Sep 17 00:00:00 2001 | ||
2 | From: Marius Vlad <marius.vlad@collabora.com> | ||
3 | Date: Thu, 1 Apr 2021 00:12:00 +0300 | ||
4 | Subject: [PATCH] libweston/backend-drm: Re-order gbm destruction at | ||
5 | DRM-backend tear down | ||
6 | |||
7 | Tearing down the drm-backend when there are no input devices, would call | ||
8 | for the gbm device destruction before compositor shutdown. The latter | ||
9 | would call into the renderer detroy function and assume that the | ||
10 | EGLDisplay, which was created using the before-mentioned gbm device, is | ||
11 | still available. This patch re-orders the gbm destruction after the | ||
12 | compositor shutdown when no one would make use of it. | ||
13 | |||
14 | Fixes: #314 | ||
15 | |||
16 | Signed-off-by: Marius Vlad <marius.vlad@collabora.com> | ||
17 | Suggested-by: Daniel Stone <daniel.stone@collabora.com> | ||
18 | |||
19 | Upstream-Status: Backport [https://gitlab.freedesktop.org/wayland/weston/-/commit/d171c7b3ba346c4d0bd6494f45ebf0be3c3cc5fb] | ||
20 | --- | ||
21 | libweston/backend-drm/drm.c | 8 ++++---- | ||
22 | 1 file changed, 4 insertions(+), 4 deletions(-) | ||
23 | |||
24 | diff --git a/libweston/backend-drm/drm.c b/libweston/backend-drm/drm.c | ||
25 | index 9d3b5dcc..67834d3e 100644 | ||
26 | --- a/libweston/backend-drm/drm.c | ||
27 | +++ b/libweston/backend-drm/drm.c | ||
28 | @@ -3402,10 +3402,6 @@ err_drm_source: | ||
29 | wl_event_source_remove(b->drm_source); | ||
30 | err_udev_input: | ||
31 | udev_input_destroy(&b->input); | ||
32 | -#ifdef BUILD_DRM_GBM | ||
33 | - if (b->gbm) | ||
34 | - gbm_device_destroy(b->gbm); | ||
35 | -#endif | ||
36 | destroy_sprites(b); | ||
37 | err_udev_dev: | ||
38 | udev_device_unref(drm_device); | ||
39 | @@ -3415,6 +3411,10 @@ err_launcher: | ||
40 | weston_launcher_destroy(compositor->launcher); | ||
41 | err_compositor: | ||
42 | weston_compositor_shutdown(compositor); | ||
43 | +#ifdef BUILD_DRM_GBM | ||
44 | + if (b->gbm) | ||
45 | + gbm_device_destroy(b->gbm); | ||
46 | +#endif | ||
47 | free(b); | ||
48 | return NULL; | ||
49 | } | ||
50 | -- | ||
51 | 2.17.1 | ||
52 | |||
diff --git a/recipes-graphics/wayland/weston/0001-meson.build-fix-incorrect-header.patch b/recipes-graphics/wayland/weston/0001-meson.build-fix-incorrect-header.patch deleted file mode 100644 index 06e0f7ba..00000000 --- a/recipes-graphics/wayland/weston/0001-meson.build-fix-incorrect-header.patch +++ /dev/null | |||
@@ -1,32 +0,0 @@ | |||
1 | From a2ba4714a6872e547621d29d9ddcb0f374b88cf6 Mon Sep 17 00:00:00 2001 | ||
2 | From: Chen Qi <Qi.Chen@windriver.com> | ||
3 | Date: Tue, 20 Apr 2021 20:42:18 -0700 | ||
4 | Subject: [PATCH] meson.build: fix incorrect header | ||
5 | |||
6 | The wayland.c actually include 'xdg-shell-client-protocol.h' instead of | ||
7 | the server one, so fix it. Otherwise, it's possible to get build failure | ||
8 | due to race condition. | ||
9 | |||
10 | Upstream-Status: Pending | ||
11 | |||
12 | Signed-off-by: Chen Qi <Qi.Chen@windriver.com> | ||
13 | --- | ||
14 | libweston/backend-wayland/meson.build | 2 +- | ||
15 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
16 | |||
17 | diff --git a/libweston/backend-wayland/meson.build b/libweston/backend-wayland/meson.build | ||
18 | index 7e82513..29270b5 100644 | ||
19 | --- a/libweston/backend-wayland/meson.build | ||
20 | +++ b/libweston/backend-wayland/meson.build | ||
21 | @@ -10,7 +10,7 @@ srcs_wlwl = [ | ||
22 | fullscreen_shell_unstable_v1_protocol_c, | ||
23 | presentation_time_protocol_c, | ||
24 | presentation_time_server_protocol_h, | ||
25 | - xdg_shell_server_protocol_h, | ||
26 | + xdg_shell_client_protocol_h, | ||
27 | xdg_shell_protocol_c, | ||
28 | ] | ||
29 | |||
30 | -- | ||
31 | 2.30.2 | ||
32 | |||
diff --git a/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch b/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch deleted file mode 100644 index f6ebfd8f..00000000 --- a/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch +++ /dev/null | |||
@@ -1,199 +0,0 @@ | |||
1 | From a1548c742bf2dedbb47282d8a00407b60bbab669 Mon Sep 17 00:00:00 2001 | ||
2 | From: Tom Hochstein <tom.hochstein@nxp.com> | ||
3 | Date: Wed, 22 Feb 2017 15:53:30 +0200 | ||
4 | Subject: [PATCH] weston-launch: Provide a default version that doesn't require | ||
5 | |||
6 | PAM | ||
7 | |||
8 | weston-launch requires PAM for starting weston as a non-root user. | ||
9 | |||
10 | Since starting weston as root is a valid use case by itself, if | ||
11 | PAM is not available, provide a default version of weston-launch | ||
12 | without non-root-user support. | ||
13 | |||
14 | Upstream-Status: Denied [https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/725] | ||
15 | |||
16 | Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com> | ||
17 | Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> | ||
18 | Signed-off-by: Denys Dmytriyenko <denys@ti.com> | ||
19 | Signed-off-by: Ming Liu <ming.liu@toradex.com> | ||
20 | |||
21 | --- | ||
22 | libweston/meson.build | 16 ++++++++++++---- | ||
23 | libweston/weston-launch.c | 21 +++++++++++++++++++++ | ||
24 | meson_options.txt | 7 +++++++ | ||
25 | 3 files changed, 40 insertions(+), 4 deletions(-) | ||
26 | |||
27 | diff --git a/libweston/meson.build b/libweston/meson.build | ||
28 | index 08d23ec..cb9fd3f 100644 | ||
29 | --- a/libweston/meson.build | ||
30 | +++ b/libweston/meson.build | ||
31 | @@ -216,16 +216,24 @@ dep_vertex_clipping = declare_dependency( | ||
32 | ) | ||
33 | |||
34 | if get_option('weston-launch') | ||
35 | - dep_pam = cc.find_library('pam') | ||
36 | + deps_weston_launch = [systemd_dep, dep_libdrm] | ||
37 | |||
38 | - if not cc.has_function('pam_open_session', dependencies: dep_pam) | ||
39 | - error('pam_open_session not found for weston-launch') | ||
40 | + if get_option('pam') | ||
41 | + dep_pam = cc.find_library('pam') | ||
42 | + if not cc.has_function('pam_open_session', dependencies: dep_pam) | ||
43 | + error('pam_open_session not found for weston-launch') | ||
44 | + endif | ||
45 | + | ||
46 | + if dep_pam.found() | ||
47 | + deps_weston_launch += dep_pam | ||
48 | + config_h.set('HAVE_PAM', '1') | ||
49 | + endif | ||
50 | endif | ||
51 | |||
52 | executable( | ||
53 | 'weston-launch', | ||
54 | 'weston-launch.c', | ||
55 | - dependencies: [dep_pam, systemd_dep, dep_libdrm], | ||
56 | + dependencies: deps_weston_launch, | ||
57 | include_directories: common_inc, | ||
58 | install: true | ||
59 | ) | ||
60 | diff --git a/libweston/weston-launch.c b/libweston/weston-launch.c | ||
61 | index 521cb2c..2d42d33 100644 | ||
62 | --- a/libweston/weston-launch.c | ||
63 | +++ b/libweston/weston-launch.c | ||
64 | @@ -51,7 +51,9 @@ | ||
65 | |||
66 | #include <pwd.h> | ||
67 | #include <grp.h> | ||
68 | +#ifdef HAVE_PAM | ||
69 | #include <security/pam_appl.h> | ||
70 | +#endif | ||
71 | |||
72 | #ifdef HAVE_SYSTEMD_LOGIN | ||
73 | #include <systemd/sd-login.h> | ||
74 | @@ -100,8 +102,10 @@ drmSetMaster(int drm_fd) | ||
75 | #endif | ||
76 | |||
77 | struct weston_launch { | ||
78 | +#ifdef HAVE_PAM | ||
79 | struct pam_conv pc; | ||
80 | pam_handle_t *ph; | ||
81 | +#endif | ||
82 | int tty; | ||
83 | int ttynr; | ||
84 | int sock[2]; | ||
85 | @@ -192,6 +196,7 @@ weston_launch_allowed(struct weston_launch *wl) | ||
86 | return false; | ||
87 | } | ||
88 | |||
89 | +#ifdef HAVE_PAM | ||
90 | static int | ||
91 | pam_conversation_fn(int msg_count, | ||
92 | const struct pam_message **messages, | ||
93 | @@ -232,6 +237,7 @@ setup_pam(struct weston_launch *wl) | ||
94 | |||
95 | return 0; | ||
96 | } | ||
97 | +#endif | ||
98 | |||
99 | static int | ||
100 | setup_launcher_socket(struct weston_launch *wl) | ||
101 | @@ -466,6 +472,7 @@ quit(struct weston_launch *wl, int status) | ||
102 | close(wl->signalfd); | ||
103 | close(wl->sock[0]); | ||
104 | |||
105 | +#ifdef HAVE_PAM | ||
106 | if (wl->new_user) { | ||
107 | err = pam_close_session(wl->ph, 0); | ||
108 | if (err) | ||
109 | @@ -473,6 +480,7 @@ quit(struct weston_launch *wl, int status) | ||
110 | err, pam_strerror(wl->ph, err)); | ||
111 | pam_end(wl->ph, err); | ||
112 | } | ||
113 | +#endif | ||
114 | |||
115 | /* | ||
116 | * Get a fresh handle to the tty as the previous one is in | ||
117 | @@ -710,6 +718,7 @@ setup_session(struct weston_launch *wl, char **child_argv) | ||
118 | setenv("HOME", wl->pw->pw_dir, 1); | ||
119 | setenv("SHELL", wl->pw->pw_shell, 1); | ||
120 | |||
121 | +#ifdef HAVE_PAM | ||
122 | env = pam_getenvlist(wl->ph); | ||
123 | if (env) { | ||
124 | for (i = 0; env[i]; ++i) { | ||
125 | @@ -718,6 +727,7 @@ setup_session(struct weston_launch *wl, char **child_argv) | ||
126 | } | ||
127 | free(env); | ||
128 | } | ||
129 | +#endif | ||
130 | |||
131 | /* | ||
132 | * We open a new session, so it makes sense | ||
133 | @@ -789,8 +799,10 @@ static void | ||
134 | help(const char *name) | ||
135 | { | ||
136 | fprintf(stderr, "Usage: %s [args...] [-- [weston args..]]\n", name); | ||
137 | +#ifdef HAVE_PAM | ||
138 | fprintf(stderr, " -u, --user Start session as specified username,\n" | ||
139 | " e.g. -u joe, requires root.\n"); | ||
140 | +#endif | ||
141 | fprintf(stderr, " -t, --tty Start session on alternative tty,\n" | ||
142 | " e.g. -t /dev/tty4, requires -u option.\n"); | ||
143 | fprintf(stderr, " -v, --verbose Be verbose\n"); | ||
144 | @@ -804,7 +816,9 @@ main(int argc, char *argv[]) | ||
145 | int i, c; | ||
146 | char *tty = NULL; | ||
147 | struct option opts[] = { | ||
148 | +#ifdef HAVE_PAM | ||
149 | { "user", required_argument, NULL, 'u' }, | ||
150 | +#endif | ||
151 | { "tty", required_argument, NULL, 't' }, | ||
152 | { "verbose", no_argument, NULL, 'v' }, | ||
153 | { "help", no_argument, NULL, 'h' }, | ||
154 | @@ -816,11 +830,16 @@ main(int argc, char *argv[]) | ||
155 | while ((c = getopt_long(argc, argv, "u:t:vh", opts, &i)) != -1) { | ||
156 | switch (c) { | ||
157 | case 'u': | ||
158 | +#ifdef HAVE_PAM | ||
159 | wl.new_user = optarg; | ||
160 | if (getuid() != 0) { | ||
161 | fprintf(stderr, "weston: Permission denied. -u allowed for root only\n"); | ||
162 | exit(EXIT_FAILURE); | ||
163 | } | ||
164 | +#else | ||
165 | + fprintf(stderr, "weston: -u is unsupported in this weston-launch build\n"); | ||
166 | + exit(EXIT_FAILURE); | ||
167 | +#endif | ||
168 | break; | ||
169 | case 't': | ||
170 | tty = optarg; | ||
171 | @@ -872,8 +891,10 @@ main(int argc, char *argv[]) | ||
172 | if (setup_tty(&wl, tty) < 0) | ||
173 | exit(EXIT_FAILURE); | ||
174 | |||
175 | +#ifdef HAVE_PAM | ||
176 | if (wl.new_user && setup_pam(&wl) < 0) | ||
177 | exit(EXIT_FAILURE); | ||
178 | +#endif | ||
179 | |||
180 | if (setup_launcher_socket(&wl) < 0) | ||
181 | exit(EXIT_FAILURE); | ||
182 | diff --git a/meson_options.txt b/meson_options.txt | ||
183 | index 239bd2d..99e4ec3 100644 | ||
184 | --- a/meson_options.txt | ||
185 | +++ b/meson_options.txt | ||
186 | @@ -73,6 +73,13 @@ option( | ||
187 | ) | ||
188 | |||
189 | option( | ||
190 | + 'pam', | ||
191 | + type: 'boolean', | ||
192 | + value: true, | ||
193 | + description: 'Define if PAM is available' | ||
194 | +) | ||
195 | + | ||
196 | +option( | ||
197 | 'xwayland', | ||
198 | type: 'boolean', | ||
199 | value: true, | ||