diff --git a/CMakeLists.txt b/CMakeLists.txt
index db413d8069135808ad8822f4c12048858ff50d57..8aca2dce0494fe64caba682824f4cbb1adf11978 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -12,7 +12,7 @@ set(CMAKE_POSITION_INDEPENDENT_CODE ON)
 set(THREADS_PREFER_PTHREAD_FLAG     ON)
 
 set(COMMON_C_FLAGS
-    -Wall -Wextra -Wpedantic -Werror
+    -Wall -Wextra -Werror
     -Wshadow
     -Wcast-align
     -Wconversion
@@ -29,6 +29,7 @@ set(COMMON_C_FLAGS
 
 set(clang_C_FLAGS
     -Weverything
+    -Wpedantic
     -Wno-extra-semi-stmt
     -Wno-reserved-id-macro
     -Wno-reserved-identifier
diff --git a/inc/lektor/queue.h b/inc/lektor/queue.h
index 2bd52eab2333c3ffb21c9640d963a6b28c0830f9..508cdb99d3afe25d5d33c880cccfb6d1c47fff43 100644
--- a/inc/lektor/queue.h
+++ b/inc/lektor/queue.h
@@ -5,10 +5,6 @@
 extern "C" {
 #endif
 
-#if !defined(_POSIX_C_SOURCE)
-#define _POSIX_C_SOURCE 200809L
-#endif
-
 /* Everything in this file is implemented in the header, so that modules don't
    have to compile the lib with another .c file. */
 
diff --git a/src/base/bufferfd.c b/src/base/bufferfd.c
index 17d604675da95c1ffd6a189c98c1a08b1eadd037..6def50af5db0b75d924d26835703812f297cf5c0 100644
--- a/src/base/bufferfd.c
+++ b/src/base/bufferfd.c
@@ -1,5 +1,3 @@
-#define _POSIX_C_SOURCE 200809L
-
 #include <lektor/common.h>
 #include <lektor/bufferfd.h>
 
diff --git a/src/base/cmd.c b/src/base/cmd.c
index f0799c5003cbcef8e23e588f2ad06c31e80f2fc4..711ddedbcd604249a785422866376764348ddc7d 100644
--- a/src/base/cmd.c
+++ b/src/base/cmd.c
@@ -1,5 +1,3 @@
-#define _POSIX_C_SOURCE 200809L
-
 #include <lektor/common.h>
 #include <lektor/cmd.h>
 #include <wait.h>
diff --git a/src/base/commands.c b/src/base/commands.c
index 8fd7fa222c352a32ca6c6953b9d37d11d983db0c..525987573dd7a009cedcfa54b0fd329968716235 100644
--- a/src/base/commands.c
+++ b/src/base/commands.c
@@ -1,5 +1,3 @@
-#define _POSIX_C_SOURCE 200809L
-
 #include <lektor/common.h>
 #include <lektor/commands.h>
 #include <lektor/database.h>
@@ -747,7 +745,7 @@ command_set_playback_option(struct lkt_state *srv, size_t UNUSED c, LKT_PLAYBACK
     RETURN_UNLESS(srv, "Invalid argument", false);
     long val;
     char *endptr = NULL;
-    char ret     = false;
+    bool ret     = false;
 
     if (args == NULL || args[0] == NULL)
         val = 0;
@@ -1061,10 +1059,10 @@ command_user_add(struct lkt_state *srv, size_t c, char *argv[LKT_MESSAGE_ARGS_MA
 /* Stickers */
 
 // clang-format off
-PRIVATE_FUNCTION bool command_sticker_create(struct lkt_state *, size_t, char *[LKT_MESSAGE_ARGS_MAX]);
-PRIVATE_FUNCTION bool command_sticker_get   (struct lkt_state *, size_t, char *[LKT_MESSAGE_ARGS_MAX]);
-PRIVATE_FUNCTION bool command_sticker_set   (struct lkt_state *, size_t, char *[LKT_MESSAGE_ARGS_MAX]);
-PRIVATE_FUNCTION bool command_sticker_delete(struct lkt_state *, size_t, char *[LKT_MESSAGE_ARGS_MAX]);
+PRIVATE_FUNCTION bool command_sticker_create(struct lkt_state *, size_t, char *[LKT_MESSAGE_ARGS_MAX - 1]);
+PRIVATE_FUNCTION bool command_sticker_get   (struct lkt_state *, size_t, char *[LKT_MESSAGE_ARGS_MAX - 1]);
+PRIVATE_FUNCTION bool command_sticker_set   (struct lkt_state *, size_t, char *[LKT_MESSAGE_ARGS_MAX - 1]);
+PRIVATE_FUNCTION bool command_sticker_delete(struct lkt_state *, size_t, char *[LKT_MESSAGE_ARGS_MAX - 1]);
 // clang-format on
 
 PRIVATE_FUNCTION bool
@@ -1099,7 +1097,7 @@ command_sticker_handle(struct lkt_state *srv, size_t c, char *args[LKT_MESSAGE_A
 }
 
 PRIVATE_FUNCTION bool
-command_sticker_create(struct lkt_state *srv, size_t c, char *argv[LKT_MESSAGE_ARGS_MAX])
+command_sticker_create(struct lkt_state *srv, size_t c, char *argv[LKT_MESSAGE_ARGS_MAX - 1])
 {
     LOG_INFO("COMMAND", "Client %ld is using the sticker create command", c);
     RETURN_UNLESS(argv[0], "Invalid argument", false);
@@ -1112,7 +1110,7 @@ command_sticker_create(struct lkt_state *srv, size_t c, char *argv[LKT_MESSAGE_A
 }
 
 PRIVATE_FUNCTION bool
-command_sticker_set(struct lkt_state *srv, size_t c, char *argv[LKT_MESSAGE_ARGS_MAX])
+command_sticker_set(struct lkt_state *srv, size_t c, char *argv[LKT_MESSAGE_ARGS_MAX - 1])
 {
     RETURN_UNLESS(argv[0] && argv[1] && argv[2] && argv[3] && !argv[4], "Invalid argument", false);
     long uri, value;
@@ -1128,7 +1126,7 @@ command_sticker_set(struct lkt_state *srv, size_t c, char *argv[LKT_MESSAGE_ARGS
 }
 
 PRIVATE_FUNCTION bool
-command_sticker_get(struct lkt_state *srv, size_t c, char *argv[LKT_MESSAGE_ARGS_MAX])
+command_sticker_get(struct lkt_state *srv, size_t c, char *argv[LKT_MESSAGE_ARGS_MAX - 1])
 {
     LOG_INFO("COMMAND", "Client %ld is using the sticker get command", c);
     struct lkt_sticker_opt stkr = LKT_STICKER_OPT_INIT;
@@ -1184,7 +1182,7 @@ unknown:
 }
 
 PRIVATE_FUNCTION bool
-command_sticker_delete(struct lkt_state *srv, size_t c, char *argv[LKT_MESSAGE_ARGS_MAX])
+command_sticker_delete(struct lkt_state *srv, size_t c, char *argv[LKT_MESSAGE_ARGS_MAX - 1])
 {
     LOG_INFO("COMMAND", "Client %ld is using the sticker delete command", c);
     RETURN_UNLESS(argv[0] && argv[1] && argv[2], "Invalid argument", false);
diff --git a/src/base/common.c b/src/base/common.c
index e781aa57a67b5b0b7b9b237c0cdadaeb5de426b8..b5cae9f78bdd86917f9ef0e8d7e30187de36c767 100644
--- a/src/base/common.c
+++ b/src/base/common.c
@@ -1,5 +1,3 @@
-#define _POSIX_C_SOURCE 200809L
-
 #include <lektor/common.h>
 #include <lektor/logfile.h>
 
diff --git a/src/base/config.c b/src/base/config.c
index 7e51e6763b36d08ed18a315ef296f4765b46c54d..41d567be736f07be43342d7b5fa328e328c8abbd 100644
--- a/src/base/config.c
+++ b/src/base/config.c
@@ -1,5 +1,3 @@
-#define _POSIX_C_SOURCE 200809L
-
 #include <lektor/common.h>
 #include <lektor/config.h>
 #include <lektor/database.h>
diff --git a/src/base/json.c b/src/base/json.c
index 4a16254e4b27a53626633c2ecbeb0b9e6c33c5da..166404fbf8dc94130efa9afda8622e5b2dd90b43 100644
--- a/src/base/json.c
+++ b/src/base/json.c
@@ -1,5 +1,3 @@
-#define _POSIX_C_SOURCE 200809L
-
 #include <lektor/common.h>
 #include <lektor/json.h>
 
diff --git a/src/base/launch.c b/src/base/launch.c
index dd34c736079f0293be88ea1c1caa8ea04485a481..984bc870c4ba60935299f406b5ccfe785d029174 100644
--- a/src/base/launch.c
+++ b/src/base/launch.c
@@ -1,6 +1,5 @@
 /* Contains all the functions that can be called at launch time with the hook
  * in the config file and the resulv functions. */
-#define _POSIX_C_SOURCE 200809L
 
 #include <lektor/common.h>
 #include <lektor/database.h>
diff --git a/src/base/logfile.c b/src/base/logfile.c
index d9a621ef2987647367778035f6637200ea2bf95d..18755adcb96377bfb1005fde7a4674f59754f260 100644
--- a/src/base/logfile.c
+++ b/src/base/logfile.c
@@ -1,5 +1,3 @@
-#define _POSIX_C_SOURCE 200809L
-
 #include <lektor/logfile.h>
 
 struct lkt_logfile {
diff --git a/src/base/os.c b/src/base/os.c
index 933721a3dc616557ac252a22b9564045838fcc5c..a18c9bad016770a4461206786f1043df45eb1040 100644
--- a/src/base/os.c
+++ b/src/base/os.c
@@ -1,5 +1,3 @@
-#define _POSIX_C_SOURCE 200809L
-
 #include <lektor/common.h>
 
 #if defined(__linux__)
diff --git a/src/base/reg.c b/src/base/reg.c
index 8ef53fd0c2209445cb4ae986f5ac7d60ba37765d..7ccdccbf82a839bd7d66e6a410a85e410fa0796b 100644
--- a/src/base/reg.c
+++ b/src/base/reg.c
@@ -1,5 +1,3 @@
-#define _POSIX_C_SOURCE 200809L
-
 #include <lektor/common.h>
 #include <lektor/reg.h>
 #include <lektor/database.h>
diff --git a/src/base/segv.c b/src/base/segv.c
index 0c1ad1d7b7df9207822140d87e7eac8236b1a18d..f61278298d5e22c59f63134c6ce3a0cebc870a10 100644
--- a/src/base/segv.c
+++ b/src/base/segv.c
@@ -1,5 +1,3 @@
-#define _POSIX_C_SOURCE 200809L
-
 /* Try to print the backtrace when a segfault occures if possible */
 
 #include <lektor/common.h>
diff --git a/src/base/stack.c b/src/base/stack.c
index 6071f0795612ec49d79627c223a9ed84aea863fc..f2e7fc0b335d5c3e45d54610c8f3a969039e833f 100644
--- a/src/base/stack.c
+++ b/src/base/stack.c
@@ -1,5 +1,3 @@
-#define _POSIX_C_SOURCE 200809L
-
 #include <lektor/stack.h>
 #include <lektor/common.h>
 
diff --git a/src/base/uri.c b/src/base/uri.c
index 2876834d1ac3a6d9005669d4bd3ba9ae181f449d..2e1ac0794c9285368ea56d3a6af51b6523f26726 100644
--- a/src/base/uri.c
+++ b/src/base/uri.c
@@ -1,5 +1,3 @@
-#define _POSIX_C_SOURCE 200809L
-
 #include <lektor/common.h>
 #include <lektor/uri.h>
 
diff --git a/src/database/cache.c b/src/database/cache.c
index f35453f05b8e91b24c51e20e2056ee8e45d17251..d3d84e18399f941af43914f885a29ed1818cbde3 100644
--- a/src/database/cache.c
+++ b/src/database/cache.c
@@ -1,5 +1,3 @@
-#define _POSIX_C_SOURCE 200809L
-
 #include <lektor/common.h>
 #include <lektor/database.h>
 #include <lektor/internal/dbmacro.h>
diff --git a/src/database/config.c b/src/database/config.c
index ba2a56b796e26bef27b49c997280574cb35240e6..c9befe26ab4e9676bc16ec057686cb4bfc404c32 100644
--- a/src/database/config.c
+++ b/src/database/config.c
@@ -1,5 +1,3 @@
-#define _POSIX_C_SOURCE 200809L
-
 #include <lektor/common.h>
 #include <lektor/database.h>
 #include <lektor/internal/dbmacro.h>
diff --git a/src/database/find.c b/src/database/find.c
index 75be6f608ebc67cb26ab55132b9107364eeb1240..64b81e0b11962f5f8630135dbed357c98d366b7e 100644
--- a/src/database/find.c
+++ b/src/database/find.c
@@ -1,5 +1,3 @@
-#define _POSIX_C_SOURCE 200809L
-
 #include <lektor/common.h>
 #include <lektor/database.h>
 #include <lektor/net.h>
@@ -255,17 +253,19 @@ database_search_sticker_init(lkt_db *db, struct lkt_search *ret)
                                        "  SELECT id, sticker, value , 'plt' FROM 'stickers.plt'"
                                        ") AS sts"
                                        "ON sts.sticker = 'stickers'.id";
-    static const char *SQL_one_type  = "SELECT name, sts.id, value, '%s' "
-                                       "FROM 'stickers.%s' AS sts "
-                                       "JOIN 'stickers' "
-                                       "ON 'stickers'.id = sts.sticker";
+
     char SQL[LKT_MAX_SQLITE_STATEMENT];
     ret->type = lkt_search_sticker;
 
     if (ret->st.type == NULL)
         memcpy(SQL, SQL_all_types, strlen(SQL_all_types) + 1);
     else
-        sprintf(SQL, SQL_one_type, ret->st.type, ret->st.type);
+        sprintf(SQL,
+                "SELECT name, sts.id, value, '%s' "
+                "FROM 'stickers.%s' AS sts "
+                "JOIN 'stickers' "
+                "ON 'stickers'.id = sts.sticker",
+                ret->st.type, ret->st.type);
     if (ret->st.uri != 0)
         sprintf(SQL + strlen(SQL), " AND sts.id = %d", ret->st.uri);
     if (ret->st.op != 0)
diff --git a/src/database/open.c b/src/database/open.c
index 41058fd1fd68c2037e47733ed502e0498903fb2e..9770786ed328ddd98f188b3db4b58844d9e3a37a 100644
--- a/src/database/open.c
+++ b/src/database/open.c
@@ -1,5 +1,3 @@
-#define _POSIX_C_SOURCE 200809L
-
 #include <lektor/common.h>
 #include <lektor/stack.h>
 #include <lektor/database.h>
diff --git a/src/database/playlist.c b/src/database/playlist.c
index 7d2d5d17ec418fe12271d174395f96a86e214aa1..efb3cdf30da01df48690c9cc12157fdcfaa0fb63 100644
--- a/src/database/playlist.c
+++ b/src/database/playlist.c
@@ -1,5 +1,3 @@
-#define _POSIX_C_SOURCE 200809L
-
 #include <lektor/common.h>
 #include <lektor/database.h>
 #include <lektor/internal/dbmacro.h>
diff --git a/src/database/queue.c b/src/database/queue.c
index aec4698df6d100e437c24e37664129923d39622f..69f4997e873aa2f756afcce36d78e28f744b7522 100644
--- a/src/database/queue.c
+++ b/src/database/queue.c
@@ -1,5 +1,3 @@
-#define _POSIX_C_SOURCE 200809L
-
 #include <lektor/common.h>
 #include <lektor/database.h>
 #include <lektor/internal/dbmacro.h>
@@ -334,6 +332,8 @@ database_queue_add_uri(lkt_db *db, struct lkt_uri *uri, int prio)
         LOG_WARN("DB", "Add to queue for uri of type %d is not implemented", uri->type);
         return false;
     }
+
+    LOG_UNREACHABLE;
 }
 
 bool
diff --git a/src/database/stickers.c b/src/database/stickers.c
index 3271a2186cbde931c83021964d8278b66fd3311f..3a35e78499517cda4e3e6c5c6c0b4523883ce454 100644
--- a/src/database/stickers.c
+++ b/src/database/stickers.c
@@ -1,5 +1,3 @@
-#define _POSIX_C_SOURCE 200809L
-
 #include <lektor/common.h>
 #include <lektor/database.h>
 #include <lektor/internal/dbmacro.h>
diff --git a/src/database/update.c b/src/database/update.c
index 8a556ee174701d228cfd23f00c51170550182dc4..a441318d9049f331aa08940d752a31f32c1208a4 100644
--- a/src/database/update.c
+++ b/src/database/update.c
@@ -1,4 +1,3 @@
-#define _POSIX_C_SOURCE 200809L
 #define _DEFAULT_SOURCE
 
 #include <lektor/common.h>
diff --git a/src/database/user.c b/src/database/user.c
index c6fcfb86477d46bf5269084385108c7f9322def2..d18d8f9d7c396c1b906eceecc4ad8bfbaaaa07d9 100644
--- a/src/database/user.c
+++ b/src/database/user.c
@@ -1,5 +1,3 @@
-#define _POSIX_C_SOURCE 200809L
-
 #include <lektor/common.h>
 #include <lektor/database.h>
 #include <lektor/internal/dbmacro.h>
diff --git a/src/main/lkt.c b/src/main/lkt.c
index 6eafa0224b56d5aa855bdf7617c0cb1fb9bd863b..d76b25cb530bd197745ff79e1e476f3b4dee0f95 100644
--- a/src/main/lkt.c
+++ b/src/main/lkt.c
@@ -1,5 +1,3 @@
-#define _POSIX_C_SOURCE 200809L
-
 #include <lektor/common.h>
 #include <lektor/net.h>
 #include <lektor/cmd.h>
diff --git a/src/main/luka.c b/src/main/luka.c
index 487c22ae46e0b2bd3e8367753ea52bf3c290fc7f..f0fbd5dfa49116557bc8c189197d2203a11a489d 100644
--- a/src/main/luka.c
+++ b/src/main/luka.c
@@ -1,5 +1,3 @@
-#define _POSIX_C_SOURCE 200809L
-
 #include <lektor/common.h>
 #include <lektor/cmd.h>
 #include <lektor/config.h>
diff --git a/src/main/server.c b/src/main/server.c
index 2c756ce6ab022a9280a2956184d3576971e4ca8d..3942ff159c6087f41850fc1336bab2256b3e8675 100644
--- a/src/main/server.c
+++ b/src/main/server.c
@@ -1,5 +1,3 @@
-#define _POSIX_C_SOURCE 200808L
-
 #include <lektor/common.h>
 #include <lektor/config.h>
 #include <lektor/net.h>
diff --git a/src/mkv/mkv.c b/src/mkv/mkv.c
index f95ea53a30bdfd306ad0709229b87c18c230fdf3..9fea22900d54a5037f9984ef45bb46e4698856d5 100644
--- a/src/mkv/mkv.c
+++ b/src/mkv/mkv.c
@@ -1,5 +1,3 @@
-#define _POSIX_C_SOURCE 200809L
-
 #include <lektor/bufferfd.h>
 #include <lektor/mkv.h>
 #include <lektor/common.h>
@@ -410,7 +408,7 @@ mkv_read_tag(struct bufferfd *bf, struct mkv_tag *res)
     if ((consumed = mkv_read_element_length(bf, &data_len)) < 0)
         return -1;
 
-    consumed += data_len;
+    consumed += (ssize_t)data_len;
 
     for (size_t i = 0; i < MKV_TAG_MAX && data_len > 0;) {
         uint32_t eid;
diff --git a/src/mkv/utils.c b/src/mkv/utils.c
index b5a48feb181def4d648cc93456549efb908fffd0..3fe5bce90dd6fc6dbae3792907bb937d0aa52916 100644
--- a/src/mkv/utils.c
+++ b/src/mkv/utils.c
@@ -1,5 +1,3 @@
-#define _POSIX_C_SOURCE 200809L
-
 #include <lektor/common.h>
 #include <lektor/mkv.h>
 
diff --git a/src/mkv/write.c b/src/mkv/write.c
index 7e975a668fbb222f217f3b218f85c6f7175399f9..b5ca847f0d8841fc6052216b26b0c9ec89efb71f 100644
--- a/src/mkv/write.c
+++ b/src/mkv/write.c
@@ -1,4 +1,3 @@
-#define _POSIX_C_SOURCE 200809L
 #define _DEFAULT_SOURCE
 
 #include <lektor/common.h>
@@ -6,44 +5,45 @@
 #include <dirent.h>
 #include <sys/wait.h>
 
-static const char *METADATA_TEMPLATE = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
-                                       "<Tags>                                    "
-                                       "<Tag>                                     "
-                                       "  <Targets>                               "
-                                       "    <TargetTypeValue>70</TargetTypeValue> "
-                                       "  </Targets>                              "
-                                       "  <Simple>                                "
-                                       "    <Name>TITLE</Name>                    "
-                                       "    <String>%s</String>                   "
-                                       "  </Simple>                               "
-                                       "</Tag>                                    "
-                                       "<Tag>                                     "
-                                       "  <Simple>                                "
-                                       "    <Name>TITLE</Name>                    "
-                                       "    <String>%s</String>                   "
-                                       "  </Simple>                               "
-                                       "  <Simple>                                "
-                                       "    <Name>CONTENT_TYPE</Name>             "
-                                       "    <String>%s</String>                   "
-                                       "  </Simple>                               "
-                                       "  <Simple>                                "
-                                       "    <Name>ADDRESS</Name>                  "
-                                       "    <String>%s</String>                   "
-                                       "  </Simple>                               "
-                                       "  <Simple>                                "
-                                       "    <Name>ARTIST</Name>                   "
-                                       "    <String>%s</String>                   "
-                                       "  </Simple>                               "
-                                       "  <Simple>                                "
-                                       "    <Name>GENRE</Name>                    "
-                                       "    <String>%s</String>                   "
-                                       "  </Simple>                               "
-                                       "  <Simple>                                "
-                                       "    <Name>TRACK</Name>                    "
-                                       "    <String>%d</String>                   "
-                                       "  </Simple>                               "
-                                       "</Tag>                                    "
-                                       "</Tags>                                   ";
+#define METADATA_TEMPLATE                        \
+    "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" \
+    "<Tags>                                    " \
+    "<Tag>                                     " \
+    "  <Targets>                               " \
+    "    <TargetTypeValue>70</TargetTypeValue> " \
+    "  </Targets>                              " \
+    "  <Simple>                                " \
+    "    <Name>TITLE</Name>                    " \
+    "    <String>%s</String>                   " \
+    "  </Simple>                               " \
+    "</Tag>                                    " \
+    "<Tag>                                     " \
+    "  <Simple>                                " \
+    "    <Name>TITLE</Name>                    " \
+    "    <String>%s</String>                   " \
+    "  </Simple>                               " \
+    "  <Simple>                                " \
+    "    <Name>CONTENT_TYPE</Name>             " \
+    "    <String>%s</String>                   " \
+    "  </Simple>                               " \
+    "  <Simple>                                " \
+    "    <Name>ADDRESS</Name>                  " \
+    "    <String>%s</String>                   " \
+    "  </Simple>                               " \
+    "  <Simple>                                " \
+    "    <Name>ARTIST</Name>                   " \
+    "    <String>%s</String>                   " \
+    "  </Simple>                               " \
+    "  <Simple>                                " \
+    "    <Name>GENRE</Name>                    " \
+    "    <String>%s</String>                   " \
+    "  </Simple>                               " \
+    "  <Simple>                                " \
+    "    <Name>TRACK</Name>                    " \
+    "    <String>%d</String>                   " \
+    "  </Simple>                               " \
+    "</Tag>                                    " \
+    "</Tags>                                   "
 
 static bool
 mkvpropedit__(const char *const args[])
diff --git a/src/module/module_repo.c b/src/module/module_repo.c
index 7f1e9203aaa4307cf52a9e3c9ed2a1249c3bb12f..6edeef7d85639a279955e81adcef02c1ff6442b0 100644
--- a/src/module/module_repo.c
+++ b/src/module/module_repo.c
@@ -1,14 +1,12 @@
-#define _POSIX_C_SOURCE 200809L
-
 #define __LKT_MODULE_MAIN_SOURCE__
 #include <lektor/lktmodule.h>
 
 #include "worker.h"
 
 /* Different kinds of updates */
-#define REPO_UPDATE_KARA       (1 << 1) /* Downloading or rescanning the bakabase */
-#define REPO_UPDATE_FAV        (1 << 2) /* Downloading the favorites */
-#define REPO_UPDATE_TYPE_COUNT 2        /* Different kinds of download, for some sizes... */
+#define REPO_UPDATE_TYPE_COUNT 2 /* Different kinds of download, for some sizes... */
+#define REPO_UPDATE_KARA       ((unsigned int)(1 << 1)) /* Downloading or rescanning the bakabase */
+#define REPO_UPDATE_FAV        ((unsigned int)(1 << 2)) /* Downloading the favorites */
 
 /***********
  * Globals *
@@ -63,9 +61,7 @@ struct module_repo_internal {
     void (*craft_filename)(char str[PATH_MAX], struct kara *);
 
     /* Worker threads */
-    // *INDENT-OFF*
-    volatile unsigned int updating : REPO_UPDATE_TYPE_COUNT; /* The correct size */
-    // *INDENT-ON*
+    volatile unsigned int updating;
     pthread_mutex_t mtx; /* Protect the updating field */
     struct worker_pool workers;
 };
diff --git a/src/module/module_sdl2.c b/src/module/module_sdl2.c
index 71d88887dde79e53425106494cbdcdafd42f468f..530319afe375e61b09d2cd9e57470016aa79b22d 100644
--- a/src/module/module_sdl2.c
+++ b/src/module/module_sdl2.c
@@ -1,5 +1,3 @@
-#define _POSIX_C_SOURCE 200809L
-
 #define __LKT_MODULE_MAIN_SOURCE__
 #include <lektor/lktmodule.h>
 
diff --git a/src/module/mpv.c b/src/module/mpv.c
index caf6827f11505e28bce15228f83c0a8af2c93f19..8dc185826b2f75204da40fdbd879e844a17f2714 100644
--- a/src/module/mpv.c
+++ b/src/module/mpv.c
@@ -1,5 +1,3 @@
-#define _POSIX_C_SOURCE 200809L
-
 #include "mpv.h"
 
 #include <lektor/common.h>
diff --git a/src/module/thread.h b/src/module/thread.h
index 109a3a9458e91e4e85bc551ae031eb5aff6e4c3a..ab011fbee9336021c05072c42aff9191cdcc1b79 100644
--- a/src/module/thread.h
+++ b/src/module/thread.h
@@ -1,6 +1,5 @@
 #if !defined(__LKT_THREAD_H__)
 #define __LKT_THREAD_H__
-#define _POSIX_C_SOURCE 200809L
 
 #include <lektor/lktmodule.h>
 #include <lektor/common.h>
@@ -117,12 +116,12 @@ th_head(struct stack *lst, pthread_mutex_t *lock, void **ptr)
         return th_##operation(&th->inout, &th->inout##_lock, ptr);                        \
     }
 // clang-format off
-__POLLER_ATOMICS_DEFINE(append, input,  *);
-__POLLER_ATOMICS_DEFINE(append, output, *);
-__POLLER_ATOMICS_DEFINE(pop,    input,  **);
-__POLLER_ATOMICS_DEFINE(pop,    output, **);
-__POLLER_ATOMICS_DEFINE(head,   input,  **);
-__POLLER_ATOMICS_DEFINE(head,   output, **);
+__POLLER_ATOMICS_DEFINE(append, input,  *)
+__POLLER_ATOMICS_DEFINE(append, output, *)
+__POLLER_ATOMICS_DEFINE(pop,    input,  **)
+__POLLER_ATOMICS_DEFINE(pop,    output, **)
+__POLLER_ATOMICS_DEFINE(head,   input,  **)
+__POLLER_ATOMICS_DEFINE(head,   output, **)
 // clang-format on
 #undef __POLLER_ATOMICS_DEFINE
 
diff --git a/src/module/worker.c b/src/module/worker.c
index 562feb039b39d7912663f8c11f9b14033ce91a2f..479d8f04f68843189c32fc6251e6322c24f6212f 100644
--- a/src/module/worker.c
+++ b/src/module/worker.c
@@ -1,5 +1,3 @@
-#define _POSIX_C_SOURCE 200809L
-
 #include "worker.h"
 #include <lektor/common.h>
 #include <sys/sysinfo.h>
diff --git a/src/net/command.c b/src/net/command.c
index d216ec5ec3dbb584c24fea0fa65d3f77cf88b29d..78a69982d84f1f615e8a71c7cc9725f80fe2d45d 100644
--- a/src/net/command.c
+++ b/src/net/command.c
@@ -1,5 +1,3 @@
-#define _POSIX_C_SOURCE 200809L
-
 #include <lektor/common.h>
 #include <lektor/net.h>
 
diff --git a/src/net/listen.c b/src/net/listen.c
index 81d538f7e407feaa9e7514fd4b7a065d09451cf8..b7c4304f395fa7ae244f666542d0ad3653a0ea27 100644
--- a/src/net/listen.c
+++ b/src/net/listen.c
@@ -1,5 +1,3 @@
-#define _POSIX_C_SOURCE 200809L
-
 #include <lektor/common.h>
 #include <lektor/queue.h>
 #include <lektor/commands.h>
diff --git a/src/net/message.c b/src/net/message.c
index f752fcce3cf0b2defccdb0460b4dec01f8662f29..765f6fd8a4416e7354a0352f853b8ff0e393d683 100644
--- a/src/net/message.c
+++ b/src/net/message.c
@@ -1,5 +1,3 @@
-#define _POSIX_C_SOURCE 200809L
-
 #include <lektor/net.h>
 
 /* Private definition of the lkt_message struct */