diff options
author | Drew DeVault <sir@cmpwn.com> | 2016-12-11 14:07:08 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-12-11 14:07:08 -0500 |
commit | 6350752d6be2abfac68aa16e891dd859aa5cdafa (patch) | |
tree | 18c24336e664111ba9c3a5bfedec5c340ec0a19d | |
parent | Use return value of write (diff) | |
parent | Fix build on FreeBSD (diff) | |
download | sway-6350752d6be2abfac68aa16e891dd859aa5cdafa.tar.gz sway-6350752d6be2abfac68aa16e891dd859aa5cdafa.tar.zst sway-6350752d6be2abfac68aa16e891dd859aa5cdafa.zip |
Fix build on FreeBSD
-rw-r--r-- | CMake/FindCairo.cmake | 61 | ||||
-rw-r--r-- | CMake/FindEpollShim.cmake | 17 | ||||
-rw-r--r-- | CMake/FindGdkPixbuf.cmake | 65 | ||||
-rw-r--r-- | CMake/FindPango.cmake | 61 | ||||
-rw-r--r-- | CMakeLists.txt | 4 | ||||
-rw-r--r-- | sway/CMakeLists.txt | 5 | ||||
-rw-r--r-- | sway/ipc-server.c | 5 | ||||
-rw-r--r-- | sway/main.c | 2 | ||||
-rw-r--r-- | sway/security.c | 4 | ||||
-rw-r--r-- | swaymsg/CMakeLists.txt | 4 | ||||
-rw-r--r-- | wayland/CMakeLists.txt | 2 |
11 files changed, 127 insertions, 103 deletions
diff --git a/CMake/FindCairo.cmake b/CMake/FindCairo.cmake index 36c28095..10ab8fb0 100644 --- a/CMake/FindCairo.cmake +++ b/CMake/FindCairo.cmake | |||
@@ -8,40 +8,35 @@ | |||
8 | # Define CAIRO_MIN_VERSION for which version desired. | 8 | # Define CAIRO_MIN_VERSION for which version desired. |
9 | # | 9 | # |
10 | 10 | ||
11 | INCLUDE(FindPkgConfig) | 11 | find_package(PkgConfig) |
12 | 12 | ||
13 | IF(Cairo_FIND_REQUIRED) | 13 | if(Cairo_FIND_REQUIRED) |
14 | SET(_pkgconfig_REQUIRED "REQUIRED") | 14 | set(_pkgconfig_REQUIRED "REQUIRED") |
15 | ELSE(Cairo_FIND_REQUIRED) | 15 | else(Cairo_FIND_REQUIRED) |
16 | SET(_pkgconfig_REQUIRED "") | 16 | set(_pkgconfig_REQUIRED "") |
17 | ENDIF(Cairo_FIND_REQUIRED) | 17 | endif(Cairo_FIND_REQUIRED) |
18 | 18 | ||
19 | IF(CAIRO_MIN_VERSION) | 19 | if(CAIRO_MIN_VERSION) |
20 | PKG_SEARCH_MODULE(CAIRO ${_pkgconfig_REQUIRED} cairo>=${CAIRO_MIN_VERSION}) | 20 | pkg_check_modules(CAIRO ${_pkgconfig_REQUIRED} cairo>=${CAIRO_MIN_VERSION}) |
21 | ELSE(CAIRO_MIN_VERSION) | 21 | else(CAIRO_MIN_VERSION) |
22 | PKG_SEARCH_MODULE(CAIRO ${_pkgconfig_REQUIRED} cairo) | 22 | pkg_check_modules(CAIRO ${_pkgconfig_REQUIRED} cairo) |
23 | ENDIF(CAIRO_MIN_VERSION) | 23 | endif(CAIRO_MIN_VERSION) |
24 | 24 | ||
25 | IF(NOT CAIRO_FOUND AND NOT PKG_CONFIG_FOUND) | 25 | if(NOT CAIRO_FOUND AND NOT PKG_CONFIG_FOUND) |
26 | FIND_PATH(CAIRO_INCLUDE_DIRS cairo.h) | 26 | find_path(CAIRO_INCLUDE_DIRS cairo.h) |
27 | FIND_LIBRARY(CAIRO_LIBRARIES cairo) | 27 | find_library(CAIRO_LIBRARIES cairo) |
28 | else(NOT CAIRO_FOUND AND NOT PKG_CONFIG_FOUND) | ||
29 | # Make paths absolute https://stackoverflow.com/a/35476270 | ||
30 | # Important on FreeBSD because /usr/local/lib is not on /usr/bin/ld's default path | ||
31 | set(CAIRO_LIBS_ABSOLUTE) | ||
32 | foreach(lib ${CAIRO_LIBRARIES}) | ||
33 | set(var_name CAIRO_${lib}_ABS) | ||
34 | find_library(${var_name} ${lib} ${CAIRO_LIBRARY_DIRS}) | ||
35 | list(APPEND CAIRO_LIBS_ABSOLUTE ${${var_name}}) | ||
36 | endforeach() | ||
37 | set(CAIRO_LIBRARIES ${CAIRO_LIBS_ABSOLUTE}) | ||
38 | endif(NOT CAIRO_FOUND AND NOT PKG_CONFIG_FOUND) | ||
28 | 39 | ||
29 | # Report results | 40 | include(FindPackageHandleStandardArgs) |
30 | IF(CAIRO_LIBRARIES AND CAIRO_INCLUDE_DIRS) | 41 | find_package_handle_standard_args(CAIRO DEFAULT_MSG CAIRO_LIBRARIES CAIRO_INCLUDE_DIRS) |
31 | SET(CAIRO_FOUND 1) | 42 | mark_as_advanced(CAIRO_LIBRARIES CAIRO_INCLUDE_DIRS) |
32 | IF(NOT Cairo_FIND_QUIETLY) | ||
33 | MESSAGE(STATUS "Found Cairo: ${CAIRO_LIBRARIES}") | ||
34 | ENDIF(NOT Cairo_FIND_QUIETLY) | ||
35 | ELSE(CAIRO_LIBRARIES AND CAIRO_INCLUDE_DIRS) | ||
36 | IF(Cairo_FIND_REQUIRED) | ||
37 | MESSAGE(SEND_ERROR "Could not find Cairo") | ||
38 | ELSE(Cairo_FIND_REQUIRED) | ||
39 | IF(NOT Cairo_FIND_QUIETLY) | ||
40 | MESSAGE(STATUS "Could not find Cairo") | ||
41 | ENDIF(NOT Cairo_FIND_QUIETLY) | ||
42 | ENDIF(Cairo_FIND_REQUIRED) | ||
43 | ENDIF(CAIRO_LIBRARIES AND CAIRO_INCLUDE_DIRS) | ||
44 | ENDIF(NOT CAIRO_FOUND AND NOT PKG_CONFIG_FOUND) | ||
45 | |||
46 | # Hide advanced variables from CMake GUIs | ||
47 | MARK_AS_ADVANCED(CAIRO_LIBRARIES CAIRO_INCLUDE_DIRS) | ||
diff --git a/CMake/FindEpollShim.cmake b/CMake/FindEpollShim.cmake new file mode 100644 index 00000000..b6bed142 --- /dev/null +++ b/CMake/FindEpollShim.cmake | |||
@@ -0,0 +1,17 @@ | |||
1 | # - Find EpollShim | ||
2 | # Once done, this will define | ||
3 | # | ||
4 | # EPOLLSHIM_FOUND - System has EpollShim | ||
5 | # EPOLLSHIM_INCLUDE_DIRS - The EpollShim include directories | ||
6 | # EPOLLSHIM_LIBRARIES - The libraries needed to use EpollShim | ||
7 | |||
8 | find_path(EPOLLSHIM_INCLUDE_DIRS NAMES sys/epoll.h sys/timerfd.h HINTS /usr/local/include/libepoll-shim) | ||
9 | find_library(EPOLLSHIM_LIBRARIES NAMES epoll-shim libepoll-shim HINTS /usr/local/lib) | ||
10 | |||
11 | if (EPOLLSHIM_INCLUDE_DIRS AND EPOLLSHIM_LIBRARIES) | ||
12 | set(EPOLLSHIM_FOUND TRUE) | ||
13 | endif (EPOLLSHIM_INCLUDE_DIRS AND EPOLLSHIM_LIBRARIES) | ||
14 | |||
15 | include(FindPackageHandleStandardArgs) | ||
16 | find_package_handle_standard_args(EPOLLSHIM DEFAULT_MSG EPOLLSHIM_LIBRARIES EPOLLSHIM_INCLUDE_DIRS) | ||
17 | mark_as_advanced(EPOLLSHIM_INCLUDE_DIRS EPOLLSHIM_LIBRARIES) | ||
diff --git a/CMake/FindGdkPixbuf.cmake b/CMake/FindGdkPixbuf.cmake index 4ea1d5b9..9cad4f92 100644 --- a/CMake/FindGdkPixbuf.cmake +++ b/CMake/FindGdkPixbuf.cmake | |||
@@ -8,43 +8,36 @@ | |||
8 | # Define GDK_PIXBUF_MIN_VERSION for which version desired. | 8 | # Define GDK_PIXBUF_MIN_VERSION for which version desired. |
9 | # | 9 | # |
10 | 10 | ||
11 | INCLUDE(FindPkgConfig) | 11 | find_package(PkgConfig) |
12 | 12 | ||
13 | IF(GdkPixbuf_FIND_REQUIRED) | 13 | if(GdkPixbuf_FIND_REQUIRED) |
14 | SET(_pkgconfig_REQUIRED "REQUIRED") | 14 | set(_pkgconfig_REQUIRED "REQUIRED") |
15 | ELSE(GdkPixbuf_FIND_REQUIRED) | 15 | else(GdkPixbuf_FIND_REQUIRED) |
16 | SET(_pkgconfig_REQUIRED "") | 16 | set(_pkgconfig_REQUIRED "") |
17 | ENDIF(GdkPixbuf_FIND_REQUIRED) | 17 | endif(GdkPixbuf_FIND_REQUIRED) |
18 | 18 | ||
19 | IF(GDK_PIXBUF_MIN_VERSION) | 19 | if(GDK_PIXBUF_MIN_VERSION) |
20 | PKG_SEARCH_MODULE(GDK_PIXBUF ${_pkgconfig_REQUIRED} "gdk-pixbuf-2.0>=${GDK_PIXBUF_MIN_VERSION}") | 20 | pkg_check_modules(GDK_PIXBUF ${_pkgconfig_REQUIRED} "gdk-pixbuf-2.0>=${GDK_PIXBUF_MIN_VERSION}") |
21 | ELSE(GDK_PIXBUF_MIN_VERSION) | 21 | else(GDK_PIXBUF_MIN_VERSION) |
22 | PKG_SEARCH_MODULE(GDK_PIXBUF ${_pkgconfig_REQUIRED} "gdk-pixbuf-2.0") | 22 | pkg_check_modules(GDK_PIXBUF ${_pkgconfig_REQUIRED} "gdk-pixbuf-2.0") |
23 | ENDIF(GDK_PIXBUF_MIN_VERSION) | 23 | endif(GDK_PIXBUF_MIN_VERSION) |
24 | 24 | ||
25 | IF(NOT GDK_PIXBUF_FOUND AND NOT PKG_CONFIG_FOUND) | 25 | if(NOT GDK_PIXBUF_FOUND AND NOT PKG_CONFIG_FOUND) |
26 | FIND_PATH(GDK_PIXBUF_INCLUDE_DIRS gdk-pixbuf/gdk-pixbuf.h) | 26 | find_path(GDK_PIXBUF_INCLUDE_DIRS gdk-pixbuf/gdk-pixbuf.h) |
27 | FIND_LIBRARY(GDK_PIXBUF_LIBRARIES gdk_pixbuf-2.0) | 27 | find_library(GDK_PIXBUF_LIBRARIES gdk_pixbuf-2.0) |
28 | else(NOT GDK_PIXBUF_FOUND AND NOT PKG_CONFIG_FOUND) | ||
29 | SET(GdkPixbuf_FOUND 1) | ||
30 | # Make paths absolute https://stackoverflow.com/a/35476270 | ||
31 | # Important on FreeBSD because /usr/local/lib is not on /usr/bin/ld's default path | ||
32 | set(GDK_PIXBUF_LIBS_ABSOLUTE) | ||
33 | foreach(lib ${GDK_PIXBUF_LIBRARIES}) | ||
34 | set(var_name GDK_PIXBUF_${lib}_ABS) | ||
35 | find_library(${var_name} ${lib} ${GDK_PIXBUF_LIBRARY_DIRS}) | ||
36 | list(APPEND GDK_PIXBUF_LIBS_ABSOLUTE ${${var_name}}) | ||
37 | endforeach() | ||
38 | set(GDK_PIXBUF_LIBRARIES ${GDK_PIXBUF_LIBS_ABSOLUTE}) | ||
39 | endif(NOT GDK_PIXBUF_FOUND AND NOT PKG_CONFIG_FOUND) | ||
28 | 40 | ||
29 | # Report results | 41 | include(FindPackageHandleStandardArgs) |
30 | IF(GDK_PIXBUF_LIBRARIES AND GDK_PIXBUF_INCLUDE_DIRS) | 42 | find_package_handle_standard_args(GDK_PIXBUF DEFAULT_MSG GDK_PIXBUF_LIBRARIES GDK_PIXBUF_INCLUDE_DIRS) |
31 | SET(GDK_PIXBUF_FOUND 1) | 43 | mark_as_advanced(GDK_PIXBUF_LIBRARIES GDK_PIXBUF_INCLUDE_DIRS) |
32 | SET(GdkPixbuf_FOUND 1) | ||
33 | IF(NOT GdkPixbuf_FIND_QUIETLY) | ||
34 | MESSAGE(STATUS "Found GdkPixbuf: ${GDK_PIXBUF_LIBRARIES}") | ||
35 | ENDIF(NOT GdkPixbuf_FIND_QUIETLY) | ||
36 | ELSE(GDK_PIXBUF_LIBRARIES AND GDK_PIXBUF_INCLUDE_DIRS) | ||
37 | IF(GdkPixbuf_FIND_REQUIRED) | ||
38 | MESSAGE(SEND_ERROR "Could not find GdkPixbuf") | ||
39 | ELSE(GdkPixbuf_FIND_REQUIRED) | ||
40 | IF(NOT GdkPixbuf_FIND_QUIETLY) | ||
41 | MESSAGE(STATUS "Could not find GdkPixbuf") | ||
42 | ENDIF(NOT GdkPixbuf_FIND_QUIETLY) | ||
43 | ENDIF(GdkPixbuf_FIND_REQUIRED) | ||
44 | ENDIF(GDK_PIXBUF_LIBRARIES AND GDK_PIXBUF_INCLUDE_DIRS) | ||
45 | ELSE(NOT GDK_PIXBUF_FOUND AND NOT PKG_CONFIG_FOUND) | ||
46 | SET(GdkPixbuf_FOUND 1) | ||
47 | ENDIF(NOT GDK_PIXBUF_FOUND AND NOT PKG_CONFIG_FOUND) | ||
48 | |||
49 | # Hide advanced variables from CMake GUIs | ||
50 | MARK_AS_ADVANCED(GDK_PIXBUF_LIBRARIES GDK_PIXBUF_INCLUDE_DIRS) | ||
diff --git a/CMake/FindPango.cmake b/CMake/FindPango.cmake index 64bf9ac4..eb296d75 100644 --- a/CMake/FindPango.cmake +++ b/CMake/FindPango.cmake | |||
@@ -8,40 +8,35 @@ | |||
8 | # Define PANGO_MIN_VERSION for which version desired. | 8 | # Define PANGO_MIN_VERSION for which version desired. |
9 | # | 9 | # |
10 | 10 | ||
11 | INCLUDE(FindPkgConfig) | 11 | find_package(PkgConfig) |
12 | 12 | ||
13 | IF(Pango_FIND_REQUIRED) | 13 | if(Pango_FIND_REQUIRED) |
14 | SET(_pkgconfig_REQUIRED "REQUIRED") | 14 | set(_pkgconfig_REQUIRED "REQUIRED") |
15 | ELSE(Pango_FIND_REQUIRED) | 15 | else(Pango_FIND_REQUIRED) |
16 | SET(_pkgconfig_REQUIRED "") | 16 | set(_pkgconfig_REQUIRED "") |
17 | ENDIF(Pango_FIND_REQUIRED) | 17 | endif(Pango_FIND_REQUIRED) |
18 | 18 | ||
19 | IF(PANGO_MIN_VERSION) | 19 | if(PANGO_MIN_VERSION) |
20 | PKG_SEARCH_MODULE(PANGO ${_pkgconfig_REQUIRED} "pango>=${PANGO_MIN_VERSION} pangocairo>=${PANGO_MIN_VERSION}") | 20 | pkg_check_modules(PANGO ${_pkgconfig_REQUIRED} "pango>=${PANGO_MIN_VERSION}" "pangocairo>=${PANGO_MIN_VERSION}") |
21 | ELSE(PANGO_MIN_VERSION) | 21 | else(PANGO_MIN_VERSION) |
22 | PKG_SEARCH_MODULE(PANGO ${_pkgconfig_REQUIRED} "pango pangocairo") | 22 | pkg_check_modules(PANGO ${_pkgconfig_REQUIRED} pango pangocairo) |
23 | ENDIF(PANGO_MIN_VERSION) | 23 | endif(PANGO_MIN_VERSION) |
24 | 24 | ||
25 | IF(NOT PANGO_FOUND AND NOT PKG_CONFIG_FOUND) | 25 | if(NOT PANGO_FOUND AND NOT PKG_CONFIG_FOUND) |
26 | FIND_PATH(PANGO_INCLUDE_DIRS pango.h) | 26 | find_path(PANGO_INCLUDE_DIRS pango.h) |
27 | FIND_LIBRARY(PANGO_LIBRARIES pango pangocairo) | 27 | find_library(PANGO_LIBRARIES pango pangocairo) |
28 | else(NOT PANGO_FOUND AND NOT PKG_CONFIG_FOUND) | ||
29 | # Make paths absolute https://stackoverflow.com/a/35476270 | ||
30 | # Important on FreeBSD because /usr/local/lib is not on /usr/bin/ld's default path | ||
31 | set(PANGO_LIBS_ABSOLUTE) | ||
32 | foreach(lib ${PANGO_LIBRARIES}) | ||
33 | set(var_name PANGO_${lib}_ABS) | ||
34 | find_library(${var_name} ${lib} ${PANGO_LIBRARY_DIRS}) | ||
35 | list(APPEND PANGO_LIBS_ABSOLUTE ${${var_name}}) | ||
36 | endforeach() | ||
37 | set(PANGO_LIBRARIES ${PANGO_LIBS_ABSOLUTE}) | ||
38 | endif(NOT PANGO_FOUND AND NOT PKG_CONFIG_FOUND) | ||
28 | 39 | ||
29 | # Report results | 40 | include(FindPackageHandleStandardArgs) |
30 | IF(PANGO_LIBRARIES AND PANGO_INCLUDE_DIRS) | 41 | find_package_handle_standard_args(PANGO DEFAULT_MSG PANGO_LIBRARIES PANGO_INCLUDE_DIRS) |
31 | SET(PANGO_FOUND 1) | 42 | mark_as_advanced(PANGO_LIBRARIES PANGO_INCLUDE_DIRS) |
32 | IF(NOT Pango_FIND_QUIETLY) | ||
33 | MESSAGE(STATUS "Found Pango: ${PANGO_LIBRARIES}") | ||
34 | ENDIF(NOT Pango_FIND_QUIETLY) | ||
35 | ELSE(PANGO_LIBRARIES AND PANGO_INCLUDE_DIRS) | ||
36 | IF(Pango_FIND_REQUIRED) | ||
37 | MESSAGE(SEND_ERROR "Could not find Pango") | ||
38 | ELSE(Pango_FIND_REQUIRED) | ||
39 | IF(NOT Pango_FIND_QUIETLY) | ||
40 | MESSAGE(STATUS "Could not find Pango") | ||
41 | ENDIF(NOT Pango_FIND_QUIETLY) | ||
42 | ENDIF(Pango_FIND_REQUIRED) | ||
43 | ENDIF(PANGO_LIBRARIES AND PANGO_INCLUDE_DIRS) | ||
44 | ENDIF(NOT PANGO_FOUND AND NOT PKG_CONFIG_FOUND) | ||
45 | |||
46 | # Hide advanced variables from CMake GUIs | ||
47 | MARK_AS_ADVANCED(PANGO_LIBRARIES PANGO_INCLUDE_DIRS) | ||
diff --git a/CMakeLists.txt b/CMakeLists.txt index b5796168..f55fadae 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt | |||
@@ -71,6 +71,10 @@ if(Backtrace_FOUND) | |||
71 | set(SWAY_Backtrace_HEADER "${Backtrace_HEADER}") | 71 | set(SWAY_Backtrace_HEADER "${Backtrace_HEADER}") |
72 | endif() | 72 | endif() |
73 | 73 | ||
74 | if (CMAKE_SYSTEM_NAME STREQUAL FreeBSD) | ||
75 | find_package(EpollShim REQUIRED) | ||
76 | endif (CMAKE_SYSTEM_NAME STREQUAL FreeBSD) | ||
77 | |||
74 | include(FeatureSummary) | 78 | include(FeatureSummary) |
75 | include(Manpage) | 79 | include(Manpage) |
76 | include(GNUInstallDirs) | 80 | include(GNUInstallDirs) |
diff --git a/sway/CMakeLists.txt b/sway/CMakeLists.txt index d1afadb6..4532a6c3 100644 --- a/sway/CMakeLists.txt +++ b/sway/CMakeLists.txt | |||
@@ -55,9 +55,12 @@ target_link_libraries(sway | |||
55 | ${PANGO_LIBRARIES} | 55 | ${PANGO_LIBRARIES} |
56 | ${JSONC_LIBRARIES} | 56 | ${JSONC_LIBRARIES} |
57 | m | 57 | m |
58 | cap | ||
59 | ) | 58 | ) |
60 | 59 | ||
60 | if (CMAKE_SYSTEM_NAME STREQUAL Linux) | ||
61 | target_link_libraries(sway cap) | ||
62 | endif (CMAKE_SYSTEM_NAME STREQUAL Linux) | ||
63 | |||
61 | install( | 64 | install( |
62 | TARGETS sway | 65 | TARGETS sway |
63 | RUNTIME | 66 | RUNTIME |
diff --git a/sway/ipc-server.c b/sway/ipc-server.c index 815b232b..de72beca 100644 --- a/sway/ipc-server.c +++ b/sway/ipc-server.c | |||
@@ -126,6 +126,8 @@ struct sockaddr_un *ipc_user_sockaddr(void) { | |||
126 | } | 126 | } |
127 | 127 | ||
128 | static pid_t get_client_pid(int client_fd) { | 128 | static pid_t get_client_pid(int client_fd) { |
129 | // FreeBSD supports getting uid/gid, but not pid | ||
130 | #ifdef __linux__ | ||
129 | struct ucred ucred; | 131 | struct ucred ucred; |
130 | socklen_t len = sizeof(struct ucred); | 132 | socklen_t len = sizeof(struct ucred); |
131 | 133 | ||
@@ -134,6 +136,9 @@ static pid_t get_client_pid(int client_fd) { | |||
134 | } | 136 | } |
135 | 137 | ||
136 | return ucred.pid; | 138 | return ucred.pid; |
139 | #else | ||
140 | return -1; | ||
141 | #endif | ||
137 | } | 142 | } |
138 | 143 | ||
139 | int ipc_handle_connection(int fd, uint32_t mask, void *data) { | 144 | int ipc_handle_connection(int fd, uint32_t mask, void *data) { |
diff --git a/sway/main.c b/sway/main.c index eb103a1e..157c61b3 100644 --- a/sway/main.c +++ b/sway/main.c | |||
@@ -152,6 +152,7 @@ static void security_sanity_check() { | |||
152 | sway_log(L_ERROR, | 152 | sway_log(L_ERROR, |
153 | "!! DANGER !! /proc is not available - sway CANNOT enforce security rules!"); | 153 | "!! DANGER !! /proc is not available - sway CANNOT enforce security rules!"); |
154 | } | 154 | } |
155 | #ifdef __linux__ | ||
155 | cap_flag_value_t v; | 156 | cap_flag_value_t v; |
156 | cap_t cap = cap_get_proc(); | 157 | cap_t cap = cap_get_proc(); |
157 | if (!cap || cap_get_flag(cap, CAP_SYS_PTRACE, CAP_PERMITTED, &v) != 0 || v != CAP_SET) { | 158 | if (!cap || cap_get_flag(cap, CAP_SYS_PTRACE, CAP_PERMITTED, &v) != 0 || v != CAP_SET) { |
@@ -161,6 +162,7 @@ static void security_sanity_check() { | |||
161 | if (cap) { | 162 | if (cap) { |
162 | cap_free(cap); | 163 | cap_free(cap); |
163 | } | 164 | } |
165 | #endif | ||
164 | if (!stat(SYSCONFDIR "/sway", &s)) { | 166 | if (!stat(SYSCONFDIR "/sway", &s)) { |
165 | if (s.st_uid != 0 || s.st_gid != 0 | 167 | if (s.st_uid != 0 || s.st_gid != 0 |
166 | || (s.st_mode & S_IWGRP) || (s.st_mode & S_IWOTH)) { | 168 | || (s.st_mode & S_IWGRP) || (s.st_mode & S_IWOTH)) { |
diff --git a/sway/security.c b/sway/security.c index f16fdd1f..9cccd62e 100644 --- a/sway/security.c +++ b/sway/security.c | |||
@@ -28,7 +28,11 @@ struct command_policy *alloc_command_policy(const char *command) { | |||
28 | } | 28 | } |
29 | 29 | ||
30 | enum secure_feature get_feature_policy(pid_t pid) { | 30 | enum secure_feature get_feature_policy(pid_t pid) { |
31 | #ifdef __FreeBSD__ | ||
32 | const char *fmt = "/proc/%d/file"; | ||
33 | #else | ||
31 | const char *fmt = "/proc/%d/exe"; | 34 | const char *fmt = "/proc/%d/exe"; |
35 | #endif | ||
32 | int pathlen = snprintf(NULL, 0, fmt, pid); | 36 | int pathlen = snprintf(NULL, 0, fmt, pid); |
33 | char *path = malloc(pathlen + 1); | 37 | char *path = malloc(pathlen + 1); |
34 | snprintf(path, pathlen + 1, fmt, pid); | 38 | snprintf(path, pathlen + 1, fmt, pid); |
diff --git a/swaymsg/CMakeLists.txt b/swaymsg/CMakeLists.txt index a4989b9c..f23919b8 100644 --- a/swaymsg/CMakeLists.txt +++ b/swaymsg/CMakeLists.txt | |||
@@ -2,6 +2,10 @@ add_executable(swaymsg | |||
2 | main.c | 2 | main.c |
3 | ) | 3 | ) |
4 | 4 | ||
5 | include_directories( | ||
6 | ${JSONC_INCLUDE_DIRS} | ||
7 | ) | ||
8 | |||
5 | target_link_libraries(swaymsg | 9 | target_link_libraries(swaymsg |
6 | sway-common | 10 | sway-common |
7 | ${JSONC_LIBRARIES} | 11 | ${JSONC_LIBRARIES} |
diff --git a/wayland/CMakeLists.txt b/wayland/CMakeLists.txt index 54fe3e23..91fd7fff 100644 --- a/wayland/CMakeLists.txt +++ b/wayland/CMakeLists.txt | |||
@@ -3,6 +3,7 @@ include_directories( | |||
3 | ${PANGO_INCLUDE_DIRS} | 3 | ${PANGO_INCLUDE_DIRS} |
4 | ${XKBCOMMON_INCLUDE_DIRS} | 4 | ${XKBCOMMON_INCLUDE_DIRS} |
5 | ${WAYLAND_INCLUDE_DIR} | 5 | ${WAYLAND_INCLUDE_DIR} |
6 | ${EPOLLSHIM_INCLUDE_DIRS} | ||
6 | ) | 7 | ) |
7 | 8 | ||
8 | add_library(sway-wayland STATIC | 9 | add_library(sway-wayland STATIC |
@@ -18,6 +19,7 @@ target_link_libraries(sway-wayland | |||
18 | sway-protocols | 19 | sway-protocols |
19 | ${PANGO_LIBRARIES} | 20 | ${PANGO_LIBRARIES} |
20 | ${XKBCOMMON_LIBRARIES} | 21 | ${XKBCOMMON_LIBRARIES} |
22 | ${EPOLLSHIM_LIBRARIES} | ||
21 | ) | 23 | ) |
22 | 24 | ||
23 | if (WITH_GDK_PIXBUF) | 25 | if (WITH_GDK_PIXBUF) |