Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package seafile for openSUSE:Factory checked in at 2023-04-12 12:52:32 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/seafile (Old) and /work/SRC/openSUSE:Factory/.seafile.new.19717 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "seafile" Wed Apr 12 12:52:32 2023 rev:16 rq:1078618 version:9.0.1 Changes: -------- --- /work/SRC/openSUSE:Factory/seafile/seafile.changes 2023-01-03 18:00:43.357236911 +0100 +++ /work/SRC/openSUSE:Factory/.seafile.new.19717/seafile.changes 2023-04-12 12:52:34.845275751 +0200 @@ -1,0 +2,5 @@ +Wed Apr 12 09:44:54 UTC 2023 - Paolo Stivanin <i...@paolostivanin.com> + +- Update to 9.0.1 (no changelog). + +------------------------------------------------------------------- Old: ---- v8.0.10.tar.gz New: ---- v9.0.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ seafile.spec ++++++ --- /var/tmp/diff_new_pack.ZYaZ32/_old 2023-04-12 12:52:35.409279047 +0200 +++ /var/tmp/diff_new_pack.ZYaZ32/_new 2023-04-12 12:52:35.417279094 +0200 @@ -17,7 +17,7 @@ Name: seafile -Version: 8.0.10 +Version: 9.0.1 Release: 0 Summary: Cloud storage client License: GPL-2.0-only ++++++ v8.0.10.tar.gz -> v9.0.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/seafile-8.0.10/configure.ac new/seafile-9.0.1/configure.ac --- old/seafile-8.0.10/configure.ac 2022-12-27 09:53:39.000000000 +0100 +++ new/seafile-9.0.1/configure.ac 2023-03-25 07:57:38.000000000 +0100 @@ -2,7 +2,7 @@ AC_PREREQ(2.61) -AC_INIT([seafile], [8.0.10], [i...@seafile.com]) +AC_INIT([seafile], [9.0.1], [i...@seafile.com]) AC_CONFIG_HEADER([config.h]) AC_CONFIG_MACRO_DIR([m4]) @@ -188,10 +188,6 @@ AC_SUBST(CURL_CFLAGS) AC_SUBST(CURL_LIBS) -PKG_CHECK_MODULES(WS, [libwebsockets]) -AC_SUBST(WS_CFLAGS) -AC_SUBST(WS_LIBS) - if test "$bwin32" != true; then # do not check libevent_pthreads in win32 PKG_CHECK_MODULES(LIBEVENT_PTHREADS, [libevent_pthreads >= $LIBEVENT_PTHREADS_REQUIRED]) @@ -199,6 +195,12 @@ AC_SUBST(LIBEVENT_PTHREADS_LIBS) fi +if test "$blinux" != true; then + PKG_CHECK_MODULES(WS, [libwebsockets]) + AC_SUBST(WS_CFLAGS) + AC_SUBST(WS_LIBS) +fi + AC_ARG_WITH([python3], [AS_HELP_STRING([--with-python3], [use python3])], [with_python3="yes"],[]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/seafile-8.0.10/daemon/notif-mgr.c new/seafile-9.0.1/daemon/notif-mgr.c --- old/seafile-8.0.10/daemon/notif-mgr.c 2022-12-27 09:53:39.000000000 +0100 +++ new/seafile-9.0.1/daemon/notif-mgr.c 2023-03-25 07:57:38.000000000 +0100 @@ -1,4 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +#if defined WIN32 || defined __APPLE__ #include "common.h" #include <libwebsockets.h> @@ -520,6 +521,10 @@ return -1; } lock_user = json_string_value (member); + // don't need to lock file when file has beed locked.\n + if (seaf_filelock_manager_get_lock_status (seaf->filelock_mgr, repo_id, path) != FILE_NOT_LOCKED) { + return 0; + } FileLockType type = LOCKED_OTHERS; if (g_strcmp0 (lock_user, repo->email) == 0) @@ -527,6 +532,9 @@ seaf_filelock_manager_lock_file (seaf->filelock_mgr, repo_id, path, type); } else if (g_strcmp0 (change_event, "unlocked") == 0) { + if (seaf_filelock_manager_get_lock_status (seaf->filelock_mgr, repo_id, path) == FILE_NOT_LOCKED) { + return 0; + } seaf_filelock_manager_mark_file_unlocked (seaf->filelock_mgr, repo_id, path); } @@ -825,13 +833,6 @@ g_usleep (RECONNECT_INTERVAL * G_USEC_PER_SEC); n = 0; server->status = STATUS_DISCONNECTED; - - lws_context_destroy(server->context); - server->context = NULL; - server->context = lws_context_new (server->use_ssl); - if (!server->context) - break; - i->context = server->context; } seaf_message ("Notification worker for server %s exiting.\n", server->server_url); @@ -973,3 +974,5 @@ notif_server_unref (server); return subscribed; } + +#endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/seafile-8.0.10/daemon/notif-mgr.h new/seafile-9.0.1/daemon/notif-mgr.h --- old/seafile-8.0.10/daemon/notif-mgr.h 2022-12-27 09:53:39.000000000 +0100 +++ new/seafile-9.0.1/daemon/notif-mgr.h 2023-03-25 07:57:38.000000000 +0100 @@ -1,4 +1,5 @@ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +#if defined WIN32 || defined __APPLE__ #ifndef NOTIF_MGR_H #define NOTIF_MGR_H @@ -30,3 +31,5 @@ seaf_notif_manager_is_repo_subscribed (SeafNotifManager *mgr, SeafRepo *repo); #endif + +#endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/seafile-8.0.10/daemon/repo-mgr.c new/seafile-9.0.1/daemon/repo-mgr.c --- old/seafile-8.0.10/daemon/repo-mgr.c 2022-12-27 09:53:39.000000000 +0100 +++ new/seafile-9.0.1/daemon/repo-mgr.c 2023-03-25 07:57:38.000000000 +0100 @@ -6587,7 +6587,9 @@ pthread_rwlock_unlock (&mgr->priv->lock); +#if defined WIN32 || defined __APPLE__ seaf_notif_manager_unsubscribe_repo (seaf->notif_mgr, repo); +#endif seaf_repo_free (repo); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/seafile-8.0.10/daemon/seafile-session.c new/seafile-9.0.1/daemon/seafile-session.c --- old/seafile-8.0.10/daemon/seafile-session.c 2022-12-27 09:53:39.000000000 +0100 +++ new/seafile-9.0.1/daemon/seafile-session.c 2023-03-25 07:57:38.000000000 +0100 @@ -236,7 +236,9 @@ if (!session->mq_mgr) goto onerror; +#if defined WIN32 || defined __APPLE__ session->notif_mgr = seaf_notif_manager_new (session); +#endif return session; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/seafile-8.0.10/daemon/seafile-session.h new/seafile-9.0.1/daemon/seafile-session.h --- old/seafile-8.0.10/daemon/seafile-session.h 2022-12-27 09:53:39.000000000 +0100 +++ new/seafile-9.0.1/daemon/seafile-session.h 2023-03-25 07:57:38.000000000 +0100 @@ -72,7 +72,9 @@ SeafFilelockManager *filelock_mgr; +#if defined WIN32 || defined __APPLE__ SeafNotifManager *notif_mgr; +#endif /* Set after all components are up and running. */ gboolean started; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/seafile-8.0.10/daemon/sync-mgr.c new/seafile-9.0.1/daemon/sync-mgr.c --- old/seafile-8.0.10/daemon/sync-mgr.c 2022-12-27 09:53:39.000000000 +0100 +++ new/seafile-9.0.1/daemon/sync-mgr.c 2023-03-25 07:57:38.000000000 +0100 @@ -69,6 +69,8 @@ pthread_mutex_t head_commit_map_lock; gboolean head_commit_map_init; gint64 last_update_head_commit_map_time; + + gint64 n_jwt_token_request; }; typedef struct _HttpServerState HttpServerState; @@ -1727,6 +1729,7 @@ if (is_alive) { state->notif_server_alive = TRUE; + seaf_message ("Notification server is enabled on the remote server %s.\n", state->effective_host); } } @@ -2090,8 +2093,10 @@ for (ptr = repos; ptr; ptr = ptr->next) { repo = ptr->data; +#if defined WIN32 || defined __APPLE__ if (!force && seaf_notif_manager_is_repo_subscribed (seaf->notif_mgr, repo)) continue; +#endif if (!repo->head) continue; @@ -2232,8 +2237,10 @@ for (ptr = repos; ptr; ptr = ptr->next) { repo = ptr->data; +#if defined WIN32 || defined __APPLE__ if (!force && seaf_notif_manager_is_repo_subscribed (seaf->notif_mgr, repo)) continue; +#endif if (!repo->head) continue; @@ -2364,35 +2371,47 @@ #define HTTP_SERVERR_UNAVAILABLE 503 #define HTTP_SERVERR_TIMEOUT 504 +typedef struct _GetJwtTokenAux { + HttpServerState *state; + char *repo_id; +} GetJwtTokenAux; + static void fileserver_get_jwt_token_cb (HttpAPIGetResult *result, void *user_data) { - char *repo_id = user_data; + GetJwtTokenAux *aux = user_data; + HttpServerState *state = aux->state; + char *repo_id = aux->repo_id; SeafRepo *repo = NULL; char *jwt_token = NULL; + state->n_jwt_token_request--; + if (result->http_status == HTTP_NOT_FOUND || result->http_status == HTTP_FORBIDDEN || result->http_status == HTTP_SERVERR) { - return; + goto out; } if (!result->success) { - return; + goto out; } repo = seaf_repo_manager_get_repo (seaf->repo_mgr, repo_id); if (!repo) - return; + goto out; jwt_token = parse_jwt_token (result->rsp_content,result->rsp_size); if (!jwt_token) { seaf_warning ("Failed to parse jwt token for repo %s\n", repo->id); - return; + goto out; } g_free (repo->jwt_token); repo->jwt_token = jwt_token; +out: + g_free (aux->repo_id); + g_free (aux); return; } @@ -2404,12 +2423,60 @@ } static int +check_and_subscribe_repo (SeafSyncManager *mgr, SeafRepo *repo) +{ +#if defined WIN32 || defined __APPLE__ + char *url = NULL; + HttpServerState *state = g_hash_table_lookup (mgr->http_server_states, + repo->server_url); + if (!state || !state->notif_server_alive) { + return 0; + } + + if (state->n_jwt_token_request > 10) { + return 0; + } + + gint64 now = (gint64)time(NULL); + if (now - repo->last_check_jwt_token > JWT_TOKEN_EXPIRE_TIME) { + repo->last_check_jwt_token = now; + if (!repo->use_fileserver_port) + url = g_strdup_printf ("%s/seafhttp/repo/%s/jwt-token", repo->effective_host, repo->id); + else + url = g_strdup_printf ("%s/repo/%s/jwt-token", repo->effective_host, repo->id); + + state->n_jwt_token_request++; + GetJwtTokenAux *aux = g_new0 (GetJwtTokenAux, 1); + aux->repo_id = g_strdup (repo->id); + aux->state = state; + if (http_tx_manager_fileserver_api_get (seaf->http_tx_mgr, + repo->effective_host, + url, + repo->token, + fileserver_get_jwt_token_cb, + aux) < 0) { + g_free (aux->repo_id); + g_free (aux); + state->n_jwt_token_request--; + } + g_free (url); + return 0; + } + if (!seaf_notif_manager_is_repo_subscribed (seaf->notif_mgr, repo)) { + if (repo->jwt_token) + seaf_notif_manager_subscribe_repo (seaf->notif_mgr, repo); + } +#endif + + return 0; +} + +static int auto_sync_pulse (void *vmanager) { SeafSyncManager *manager = vmanager; GList *repos, *ptr; SeafRepo *repo; - char *url = NULL; repos = seaf_repo_manager_get_repo_list (manager->seaf->repo_mgr, -1, -1); @@ -2513,55 +2580,19 @@ if (repo->version > 0) { /* For repo version > 0, only use http sync. */ if (check_http_protocol (manager, repo)) { +#if defined WIN32 || defined __APPLE__ if (check_notif_server (manager, repo)) { seaf_notif_manager_connect_server (seaf->notif_mgr, repo->server_url, repo->use_fileserver_port); } +#endif if (repo->sync_interval == 0) { sync_repo_v2 (manager, repo, FALSE); - if (now - repo->last_check_jwt_token > JWT_TOKEN_EXPIRE_TIME) { - repo->last_check_jwt_token = now; - if (!repo->use_fileserver_port) - url = g_strdup_printf ("%s/seafhttp/repo/%s/jwt-token", repo->effective_host, repo->id); - else - url = g_strdup_printf ("%s/repo/%s/jwt-token", repo->effective_host, repo->id); - - http_tx_manager_fileserver_api_get (seaf->http_tx_mgr, - repo->effective_host, - url, - repo->token, - fileserver_get_jwt_token_cb, - repo->id); - g_free (url); - continue; - } - if (!seaf_notif_manager_is_repo_subscribed (seaf->notif_mgr, repo)) { - if (repo->jwt_token) - seaf_notif_manager_subscribe_repo (seaf->notif_mgr, repo); - } + check_and_subscribe_repo (manager, repo); } else if (periodic_sync_due (repo)) { sync_repo_v2 (manager, repo, TRUE); - if (now - repo->last_check_jwt_token > JWT_TOKEN_EXPIRE_TIME) { - repo->last_check_jwt_token = now; - if (!repo->use_fileserver_port) - url = g_strdup_printf ("%s/seafhttp/repo/%s/jwt-token", repo->effective_host, repo->id); - else - url = g_strdup_printf ("%s/repo/%s/jwt-token", repo->effective_host, repo->id); - - http_tx_manager_fileserver_api_get (seaf->http_tx_mgr, - repo->effective_host, - url, - repo->token, - fileserver_get_jwt_token_cb, - repo->id); - g_free (url); - continue; - } - if (!seaf_notif_manager_is_repo_subscribed (seaf->notif_mgr, repo)) { - if (repo->jwt_token) - seaf_notif_manager_subscribe_repo (seaf->notif_mgr, repo); - } + check_and_subscribe_repo (manager, repo); } } } else { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/seafile-8.0.10/debian/changelog new/seafile-9.0.1/debian/changelog --- old/seafile-8.0.10/debian/changelog 2022-12-27 09:53:39.000000000 +0100 +++ new/seafile-9.0.1/debian/changelog 2023-03-25 07:57:38.000000000 +0100 @@ -1,3 +1,13 @@ +seafile-daemon (9.0.1) unstable; urgency=low + + * new upstream release + + -- Jonathan Xu <jonathan...@seafile.com> Tue, 21 Mar 2023 15:08:01 +0800 +seafile-daemon (9.0.0) unstable; urgency=low + + * new upstream release + + -- Jonathan Xu <jonathan...@seafile.com> Fri, 03 Mar 2023 13:02:45 +0800 seafile-daemon (8.0.10) unstable; urgency=low * new upstream release diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/seafile-8.0.10/msi/Includes.wxi new/seafile-9.0.1/msi/Includes.wxi --- old/seafile-8.0.10/msi/Includes.wxi 2022-12-27 09:53:39.000000000 +0100 +++ new/seafile-9.0.1/msi/Includes.wxi 2023-03-25 07:57:38.000000000 +0100 @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Include Id="SeafileInclude"> - <?define CurrentSeafileVersion="8.0.10" ?> + <?define CurrentSeafileVersion="9.0.1" ?> <!-- Update Guid ä¸è½å --> <?define CurrentUpdateGuid="65DED1C8-A5F1-4C49-8E7E-B0A8A5A6535C" ?> @@ -153,7 +153,9 @@ <!-- <?define ProductGuid="A1210D1B-4DE1-4A01-85DF-779BE1C10790" ?> (8.0.7) --> <!-- <?define ProductGuid="B9B16F5B-BA57-4ABF-B9AC-F40C90D9C03D" ?> (8.0.8) --> <!-- <?define ProductGuid="614CE64F-16AE-46B3-9A3F-AA8AD5FCB7A3" ?> (8.0.9) --> - <?define ProductGuid="D917BF55-78C3-4D57-B49E-BF378B8E484D" ?> + <!-- <?define ProductGuid="D917BF55-78C3-4D57-B49E-BF378B8E484D" ?> (8.0.10) --> + <!-- <?define ProductGuid="98BDB30E-0C17-4A8D-9B8F-B5B81ADB5E0A" ?> (9.0.0) --> + <?define ProductGuid="DB942AE7-0222-4C1D-B029-705FA8C2A7EB" ?> <?define GuidOfCustomComponent="AD201805-3CBD-4834-9097-5D934F7E0000" ?> <?define GuidOfAutoStartComponent="AD201805-3CBD-4834-9097-5D934F7E0001" ?> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/seafile-8.0.10/msi/seafile.wxs new/seafile-9.0.1/msi/seafile.wxs --- old/seafile-8.0.10/msi/seafile.wxs 2022-12-27 09:53:39.000000000 +0100 +++ new/seafile-9.0.1/msi/seafile.wxs 2023-03-25 07:57:38.000000000 +0100 @@ -67,13 +67,7 @@ <Directory Id='CommonAppDataFolder' Name='AllUsersHome'> <Directory Id='SeafileExtDir' Name='$(var.ExtName)'> <Component Id="seafile_ext" Guid="$(var.GuidOfShellExtComponent)"> - <CreateFolder> - <!-- Set the permission of the SeafileExt folder. So, - together with the MoveExtDll/MoveExtDll64 custom - action, we can rename seafile shell ext dll to - avoid "file in use" dialog. --> - <util:PermissionEx User="Users" GenericAll="yes" /> - </CreateFolder> + <CreateFolder /> <RemoveFolder Id="SeafileExtDir" On="uninstall" /> <RegistryValue Root="HKCU" Key="Software\[Manufacturer]\[ProductName]" Name="shellext" Type="integer" Value="1" KeyPath='yes' /> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/seafile-8.0.10/scripts/seaf-cli-wrapper.sh new/seafile-9.0.1/scripts/seaf-cli-wrapper.sh --- old/seafile-8.0.10/scripts/seaf-cli-wrapper.sh 2022-12-27 09:53:39.000000000 +0100 +++ new/seafile-9.0.1/scripts/seaf-cli-wrapper.sh 2023-03-25 07:57:38.000000000 +0100 @@ -21,7 +21,7 @@ echo echo "Can't find a python executable of version 2.6 or above in PATH" echo "Install python 2.6+ before continue." - echo "Or if you installed it in a non-standard PATH, set the PYTHON enviroment varirable to it" + echo "Or if you installed it in a non-standard PATH, set the PYTHON enviroment variable to it" echo exit 1 fi diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/seafile-8.0.10/seafile.vcxproj new/seafile-9.0.1/seafile.vcxproj --- old/seafile-8.0.10/seafile.vcxproj 2022-12-27 09:53:39.000000000 +0100 +++ new/seafile-9.0.1/seafile.vcxproj 2023-03-25 07:57:38.000000000 +0100 @@ -92,7 +92,7 @@ <WarningLevel>Level3</WarningLevel> <SDLCheck> </SDLCheck> - <PreprocessorDefinitions>WIN32;UNICODE;WIN32_LEAN_AND_MEAN;SEAFILE_CLIENT;PACKAGE_VERSION="8.0.10";%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessorDefinitions>WIN32;UNICODE;WIN32_LEAN_AND_MEAN;SEAFILE_CLIENT;PACKAGE_VERSION="9.0.1";%(PreprocessorDefinitions)</PreprocessorDefinitions> <ConformanceMode>false</ConformanceMode> <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions> <AdditionalIncludeDirectories>$(ProjectDir)..\libsearpc\lib;$(ProjectDir)common;$(ProjectDir)lib;$(ProjectDir)include;$(ProjectDir)daemon;$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> @@ -110,7 +110,7 @@ <WarningLevel>Level1</WarningLevel> <SDLCheck> </SDLCheck> - <PreprocessorDefinitions>WIN32;UNICODE;WIN32_LEAN_AND_MEAN;SEAFILE_CLIENT;PACKAGE_VERSION="8.0.10";%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessorDefinitions>WIN32;UNICODE;WIN32_LEAN_AND_MEAN;SEAFILE_CLIENT;PACKAGE_VERSION="9.0.1";%(PreprocessorDefinitions)</PreprocessorDefinitions> <ConformanceMode>false</ConformanceMode> <LanguageStandard>stdcpp17</LanguageStandard> <AdditionalIncludeDirectories>$(ProjectDir)..\libwebsockets\build\include;$(ProjectDir)..\libsearpc\lib;$(ProjectDir)common;$(ProjectDir)include;$(ProjectDir)daemon;$(ProjectDir)lib;$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> @@ -131,7 +131,7 @@ <IntrinsicFunctions>false</IntrinsicFunctions> <SDLCheck> </SDLCheck> - <PreprocessorDefinitions>WIN32;PACKAGE_VERSION="8.0.10";WIN32_LEAN_AND_MEAN;UNICODE;SEAFILE_CLIENT;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessorDefinitions>WIN32;PACKAGE_VERSION="9.0.1";WIN32_LEAN_AND_MEAN;UNICODE;SEAFILE_CLIENT;%(PreprocessorDefinitions)</PreprocessorDefinitions> <ConformanceMode>false</ConformanceMode> <LanguageStandard>stdcpp17</LanguageStandard> <AdditionalIncludeDirectories>$(ProjectDir)..\libsearpc\lib;$(ProjectDir);$(ProjectDir)daemon;$(ProjectDir)include;$(ProjectDir)lib;$(ProjectDir)common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> @@ -158,7 +158,7 @@ <IntrinsicFunctions>false</IntrinsicFunctions> <SDLCheck> </SDLCheck> - <PreprocessorDefinitions>WIN32;PACKAGE_VERSION="8.0.10";WIN32_LEAN_AND_MEAN;UNICODE;SEAFILE_CLIENT;ENABLE_BREAKPAD;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessorDefinitions>WIN32;PACKAGE_VERSION="9.0.1";WIN32_LEAN_AND_MEAN;UNICODE;SEAFILE_CLIENT;ENABLE_BREAKPAD;%(PreprocessorDefinitions)</PreprocessorDefinitions> <ConformanceMode>false</ConformanceMode> <LanguageStandard>stdcpp17</LanguageStandard> <AdditionalIncludeDirectories>$(ProjectDir)..\libsearpc\lib;$(ProjectDir);$(ProjectDir)common;$(ProjectDir)lib;$(ProjectDir)include;$(ProjectDir)daemon;$(ProjectDir)..\breakpad\src;$(ProjectDir)..\libwebsockets\build\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>