diff options
-rw-r--r-- | client/pool-buffer.c | 2 | ||||
-rw-r--r-- | meson.build | 4 | ||||
-rw-r--r-- | sway/commands.c | 2 | ||||
-rw-r--r-- | sway/commands/bar.c | 2 | ||||
-rw-r--r-- | sway/commands/output/background.c | 2 | ||||
-rw-r--r-- | sway/main.c | 6 | ||||
-rw-r--r-- | sway/server.c | 4 | ||||
-rw-r--r-- | sway/tree/workspace.c | 2 | ||||
-rw-r--r-- | swaybar/ipc.c | 2 | ||||
-rw-r--r-- | swaylock/meson.build | 17 | ||||
-rw-r--r-- | swaylock/pam/swaylock.freebsd | 6 | ||||
-rw-r--r-- | swaylock/pam/swaylock.linux (renamed from swaylock/pam/swaylock) | 0 |
12 files changed, 35 insertions, 14 deletions
diff --git a/client/pool-buffer.c b/client/pool-buffer.c index fa468c0d..6555a3ae 100644 --- a/client/pool-buffer.c +++ b/client/pool-buffer.c | |||
@@ -1,4 +1,4 @@ | |||
1 | #define _XOPEN_SOURCE 500 | 1 | #define _XOPEN_SOURCE 600 |
2 | #include <assert.h> | 2 | #include <assert.h> |
3 | #include <cairo/cairo.h> | 3 | #include <cairo/cairo.h> |
4 | #include <fcntl.h> | 4 | #include <fcntl.h> |
diff --git a/meson.build b/meson.build index eb5cba84..253a4e96 100644 --- a/meson.build +++ b/meson.build | |||
@@ -38,7 +38,7 @@ pango = dependency('pango') | |||
38 | pangocairo = dependency('pangocairo') | 38 | pangocairo = dependency('pangocairo') |
39 | gdk_pixbuf = dependency('gdk-pixbuf-2.0', required: false) | 39 | gdk_pixbuf = dependency('gdk-pixbuf-2.0', required: false) |
40 | pixman = dependency('pixman-1') | 40 | pixman = dependency('pixman-1') |
41 | libcap = dependency('libcap') | 41 | libcap = dependency('libcap', required: false) |
42 | libinput = dependency('libinput', version: '>=1.6.0') | 42 | libinput = dependency('libinput', version: '>=1.6.0') |
43 | libpam = cc.find_library('pam') | 43 | libpam = cc.find_library('pam') |
44 | systemd = dependency('libsystemd', required: false) | 44 | systemd = dependency('libsystemd', required: false) |
@@ -104,7 +104,7 @@ if scdoc.found() | |||
104 | endforeach | 104 | endforeach |
105 | endif | 105 | endif |
106 | 106 | ||
107 | add_project_arguments('-DSYSCONFDIR="/@0@"'.format(sysconfdir), language : 'c') | 107 | add_project_arguments('-DSYSCONFDIR="/@0@/@1@"'.format(prefix, sysconfdir), language : 'c') |
108 | 108 | ||
109 | version = get_option('sway-version') | 109 | version = get_option('sway-version') |
110 | if version != '' | 110 | if version != '' |
diff --git a/sway/commands.c b/sway/commands.c index 359856cc..9e0fda55 100644 --- a/sway/commands.c +++ b/sway/commands.c | |||
@@ -1,4 +1,4 @@ | |||
1 | #define _XOPEN_SOURCE 500 | 1 | #define _XOPEN_SOURCE 600 |
2 | #include <ctype.h> | 2 | #include <ctype.h> |
3 | #include <stdarg.h> | 3 | #include <stdarg.h> |
4 | #include <stdlib.h> | 4 | #include <stdlib.h> |
diff --git a/sway/commands/bar.c b/sway/commands/bar.c index f6a70c17..9d62dc83 100644 --- a/sway/commands/bar.c +++ b/sway/commands/bar.c | |||
@@ -1,4 +1,4 @@ | |||
1 | #define _XOPEN_SOURCE 500 | 1 | #define _XOPEN_SOURCE 600 |
2 | #include <string.h> | 2 | #include <string.h> |
3 | #include <strings.h> | 3 | #include <strings.h> |
4 | #include <wlr/util/log.h> | 4 | #include <wlr/util/log.h> |
diff --git a/sway/commands/output/background.c b/sway/commands/output/background.c index 74894812..900a5e75 100644 --- a/sway/commands/output/background.c +++ b/sway/commands/output/background.c | |||
@@ -1,4 +1,4 @@ | |||
1 | #define _XOPEN_SOURCE 500 | 1 | #define _XOPEN_SOURCE 600 |
2 | #include <libgen.h> | 2 | #include <libgen.h> |
3 | #include <strings.h> | 3 | #include <strings.h> |
4 | #include <unistd.h> | 4 | #include <unistd.h> |
diff --git a/sway/main.c b/sway/main.c index 7ed10c86..2f05dc38 100644 --- a/sway/main.c +++ b/sway/main.c | |||
@@ -366,13 +366,15 @@ int main(int argc, char **argv) { | |||
366 | return 1; | 366 | return 1; |
367 | } | 367 | } |
368 | 368 | ||
369 | #ifdef __linux__ | 369 | #if defined(__linux__) || defined(__FreeBSD__) |
370 | if (getuid() != geteuid() || getgid() != getegid()) { | 370 | if (getuid() != geteuid() || getgid() != getegid()) { |
371 | #ifdef __linux__ | ||
371 | // Retain capabilities after setuid() | 372 | // Retain capabilities after setuid() |
372 | if (prctl(PR_SET_KEEPCAPS, 1, 0, 0, 0)) { | 373 | if (prctl(PR_SET_KEEPCAPS, 1, 0, 0, 0)) { |
373 | wlr_log(WLR_ERROR, "Cannot keep caps after setuid()"); | 374 | wlr_log(WLR_ERROR, "Cannot keep caps after setuid()"); |
374 | exit(EXIT_FAILURE); | 375 | exit(EXIT_FAILURE); |
375 | } | 376 | } |
377 | #endif | ||
376 | suid = true; | 378 | suid = true; |
377 | } | 379 | } |
378 | #endif | 380 | #endif |
@@ -382,7 +384,7 @@ int main(int argc, char **argv) { | |||
382 | detect_proprietary(); | 384 | detect_proprietary(); |
383 | detect_raspi(); | 385 | detect_raspi(); |
384 | 386 | ||
385 | #ifdef __linux__ | 387 | #if defined(__linux__) || defined(__FreeBSD__) |
386 | drop_permissions(suid); | 388 | drop_permissions(suid); |
387 | #endif | 389 | #endif |
388 | // handle SIGTERM signals | 390 | // handle SIGTERM signals |
diff --git a/sway/server.c b/sway/server.c index 8b5bc93c..749365cb 100644 --- a/sway/server.c +++ b/sway/server.c | |||
@@ -140,6 +140,10 @@ bool server_init(struct sway_server *server) { | |||
140 | 140 | ||
141 | void server_fini(struct sway_server *server) { | 141 | void server_fini(struct sway_server *server) { |
142 | // TODO: free sway-specific resources | 142 | // TODO: free sway-specific resources |
143 | #ifdef HAVE_XWAYLAND | ||
144 | wlr_xwayland_destroy(server->xwayland.wlr_xwayland); | ||
145 | #endif | ||
146 | wl_display_destroy_clients(server->wl_display); | ||
143 | wl_display_destroy(server->wl_display); | 147 | wl_display_destroy(server->wl_display); |
144 | list_free(server->dirty_containers); | 148 | list_free(server->dirty_containers); |
145 | list_free(server->transactions); | 149 | list_free(server->transactions); |
diff --git a/sway/tree/workspace.c b/sway/tree/workspace.c index 60256336..e7c1e36b 100644 --- a/sway/tree/workspace.c +++ b/sway/tree/workspace.c | |||
@@ -1,4 +1,4 @@ | |||
1 | #define _XOPEN_SOURCE 500 | 1 | #define _XOPEN_SOURCE 600 |
2 | #include <ctype.h> | 2 | #include <ctype.h> |
3 | #include <limits.h> | 3 | #include <limits.h> |
4 | #include <stdbool.h> | 4 | #include <stdbool.h> |
diff --git a/swaybar/ipc.c b/swaybar/ipc.c index c2d05920..972869c6 100644 --- a/swaybar/ipc.c +++ b/swaybar/ipc.c | |||
@@ -1,4 +1,4 @@ | |||
1 | #define _XOPEN_SOURCE 500 | 1 | #define _XOPEN_SOURCE 600 |
2 | #include <limits.h> | 2 | #include <limits.h> |
3 | #include <string.h> | 3 | #include <string.h> |
4 | #include <strings.h> | 4 | #include <strings.h> |
diff --git a/swaylock/meson.build b/swaylock/meson.build index 63f694b9..675b8c69 100644 --- a/swaylock/meson.build +++ b/swaylock/meson.build | |||
@@ -24,7 +24,16 @@ executable( | |||
24 | install: true | 24 | install: true |
25 | ) | 25 | ) |
26 | 26 | ||
27 | install_data( | 27 | if is_freebsd |
28 | 'pam/swaylock', | 28 | install_data( |
29 | install_dir: sysconfdir + '/pam.d/' | 29 | 'pam/swaylock.freebsd', |
30 | ) | 30 | install_dir: sysconfdir + '/pam.d/', |
31 | rename: 'swaylock' | ||
32 | ) | ||
33 | else | ||
34 | install_data( | ||
35 | 'pam/swaylock.linux', | ||
36 | install_dir: sysconfdir + '/pam.d/', | ||
37 | rename: 'swaylock' | ||
38 | ) | ||
39 | endif | ||
diff --git a/swaylock/pam/swaylock.freebsd b/swaylock/pam/swaylock.freebsd new file mode 100644 index 00000000..603fc185 --- /dev/null +++ b/swaylock/pam/swaylock.freebsd | |||
@@ -0,0 +1,6 @@ | |||
1 | # | ||
2 | # PAM configuration file for the swaylock screen locker. By default, it includes | ||
3 | # the 'passwd' configuration file (see /etc/pam.d/passwd) | ||
4 | # | ||
5 | |||
6 | auth include passwd | ||
diff --git a/swaylock/pam/swaylock b/swaylock/pam/swaylock.linux index 6a36b0d6..6a36b0d6 100644 --- a/swaylock/pam/swaylock +++ b/swaylock/pam/swaylock.linux | |||