Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package seafile for openSUSE:Factory checked 
in at 2026-10-21 20:53:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/seafile (Old)
 and      /work/SRC/openSUSE:Factory/.seafile.new.2252680 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "seafile"

Wed Oct 21 20:53:34 2026 rev:25 rq:1386509 version:9.0.22

Changes:
--------
--- /work/SRC/openSUSE:Factory/seafile/seafile.changes  2026-09-02 
16:59:15.263075647 +0200
+++ /work/SRC/openSUSE:Factory/.seafile.new.2252680/seafile.changes     
2026-10-21 20:53:55.507989674 +0200
@@ -1,0 +2,9 @@
+Tue Oct 20 12:59:02 UTC 2026 - Paolo Stivanin <[email protected]>
+
+- Update to 9.0.22:
+  * Check if build websockets on linux (#3070)
+  * Clear read-only attribute before deleting files on Windows (#3065)
+  * FileSyncError add server field (#3081)
+  * Update vcpkg and Windows build scripts (#3072, #3094)
+
+-------------------------------------------------------------------

Old:
----
  v9.0.21.tar.gz

New:
----
  v9.0.22.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ seafile.spec ++++++
--- /var/tmp/diff_new_pack.70s3tf/_old  2026-10-21 20:53:56.555034072 +0200
+++ /var/tmp/diff_new_pack.70s3tf/_new  2026-10-21 20:53:56.556034115 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           seafile
-Version:        9.0.21
+Version:        9.0.22
 Release:        0
 Summary:        Cloud storage client
 License:        GPL-2.0-only

++++++ v9.0.21.tar.gz -> v9.0.22.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/seafile-9.0.21/configure.ac 
new/seafile-9.0.22/configure.ac
--- old/seafile-9.0.21/configure.ac     2026-08-07 08:17:18.000000000 +0200
+++ new/seafile-9.0.22/configure.ac     2026-10-10 05:01:50.000000000 +0200
@@ -2,7 +2,7 @@
 
 
 AC_PREREQ(2.61)
-AC_INIT([seafile], [9.0.21], [[email protected]])
+AC_INIT([seafile], [9.0.22], [[email protected]])
 AC_CONFIG_HEADER([config.h])
 
 AC_CONFIG_MACRO_DIR([m4])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/seafile-9.0.21/daemon/repo-mgr.c 
new/seafile-9.0.22/daemon/repo-mgr.c
--- old/seafile-9.0.21/daemon/repo-mgr.c        2026-08-07 08:17:18.000000000 
+0200
+++ new/seafile-9.0.22/daemon/repo-mgr.c        2026-10-10 05:01:50.000000000 
+0200
@@ -905,6 +905,13 @@
                                      int error_id)
 {
     int ret;
+    SeafRepo *repo = NULL;
+    const char *server = NULL;
+
+    repo = seaf_repo_manager_get_repo (seaf->repo_mgr, repo_id);
+    if (repo) {
+        server = repo->server_url;
+    }
 
     pthread_mutex_lock (&seaf->repo_mgr->priv->db_lock);
 
@@ -925,17 +932,17 @@
     if (path != NULL)
         ret = sqlite_query_exec (seaf->repo_mgr->priv->db,
                                  "INSERT INTO FileSyncError "
-                                 "(repo_id, repo_name, path, err_id, 
timestamp) "
-                                 "VALUES (?, ?, ?, ?, ?)",
-                                 5, "string", repo_id, "string", repo_name,
+                                 "(server, repo_id, repo_name, path, err_id, 
timestamp) "
+                                 "VALUES (?, ?, ?, ?, ?, ?)",
+                                 6, "string", server, "string", repo_id, 
"string", repo_name,
                                  "string", path, "int", error_id,
                                  "int64", (gint64)time(NULL));
     else
         ret = sqlite_query_exec (seaf->repo_mgr->priv->db,
                                  "INSERT INTO FileSyncError "
-                                 "(repo_id, repo_name, err_id, timestamp) "
-                                 "VALUES (?, ?, ?, ?)",
-                                 4, "string", repo_id, "string", repo_name,
+                                 "(server, repo_id, repo_name, err_id, 
timestamp) "
+                                 "VALUES (?, ?, ?, ?, ?)",
+                                 5, "string", server, "string", repo_id, 
"string", repo_name,
                                  "int", error_id, "int64", (gint64)time(NULL));
 
 out:
@@ -947,7 +954,7 @@
 collect_file_sync_errors (sqlite3_stmt *stmt, void *data)
 {
     GList **pret = data;
-    const char *repo_id, *repo_name, *path;
+    const char *server, *repo_id, *repo_name, *path;
     int id, err_id;
     gint64 timestamp;
     SeafileFileSyncError *error;
@@ -958,9 +965,11 @@
     path = (const char *)sqlite3_column_text (stmt, 3);
     err_id = sqlite3_column_int (stmt, 4);
     timestamp = sqlite3_column_int64 (stmt, 5);
+    server = (const char *)sqlite3_column_text (stmt, 6);
 
     error = g_object_new (SEAFILE_TYPE_FILE_SYNC_ERROR,
                           "id", id,
+                          "server", server,
                           "repo_id", repo_id,
                           "repo_name", repo_name,
                           "path", path,
@@ -994,7 +1003,7 @@
     pthread_mutex_lock (&mgr->priv->db_lock);
 
     sqlite_foreach_selected_row (mgr->priv->db,
-                                 "SELECT id, repo_id, repo_name, path, err_id, 
timestamp FROM "
+                                 "SELECT id, repo_id, repo_name, path, err_id, 
timestamp, server FROM "
                                  "FileSyncError ORDER BY id DESC LIMIT ? 
OFFSET ?",
                                  collect_file_sync_errors, &ret,
                                  2, "int", limit, "int", offset);
@@ -6217,7 +6226,7 @@
                 }
             }
 
-            if (!DeleteFileW (sub_path_w)) {
+            if (!win32_delete_file (sub_path_w)) {
                 error = GetLastError();
                 seaf_warning ("Failed to delete file %s: %lu.\n",
                               sub_path, error);
@@ -8119,6 +8128,36 @@
     return repo;
 }
 
+static gboolean
+get_server_cb (sqlite3_stmt *stmt, void *vdata)
+{
+    gboolean *has_server = vdata;
+    const char *column_server = (const char *)sqlite3_column_text (stmt, 1);
+    
+    if (g_strcmp0 (column_server, "server") == 0) {
+        *has_server = TRUE;
+        return FALSE;
+    }
+    
+    return TRUE;
+}
+
+static int
+file_sync_error_add_server (sqlite3 *db)
+{
+    int ret = 0;
+    gboolean has_server = FALSE;
+    const char *sql = "PRAGMA table_info(FileSyncError);";
+    sqlite_foreach_selected_row (db, sql, get_server_cb, &has_server, 0);
+    
+    sql = "ALTER TABLE FileSyncError ADD COLUMN server TEXT";
+    if (!has_server && sqlite_query_exec (db, sql, 0) < 0) {
+        ret = -1;
+    }
+    
+    return ret;
+}
+
 static sqlite3*
 open_db (SeafRepoManager *manager, const char *seaf_dir)
 {
@@ -8212,10 +8251,12 @@
     sqlite_query_exec (db, sql, 0);
 
     sql = "CREATE TABLE IF NOT EXISTS FileSyncError ("
-        "id INTEGER PRIMARY KEY AUTOINCREMENT, repo_id TEXT, repo_name TEXT, "
+        "id INTEGER PRIMARY KEY AUTOINCREMENT, server TEXT, repo_id TEXT, 
repo_name TEXT, "
         "path TEXT, err_id INTEGER, timestamp INTEGER);";
     sqlite_query_exec (db, sql, 0);
 
+    file_sync_error_add_server (db);
+
     sql = "CREATE INDEX IF NOT EXISTS FileSyncErrorIndex ON FileSyncError 
(repo_id, path)";
     sqlite_query_exec (db, sql, 0);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/seafile-9.0.21/daemon/seafile-config.c 
new/seafile-9.0.22/daemon/seafile-config.c
--- old/seafile-9.0.21/daemon/seafile-config.c  2026-08-07 08:17:18.000000000 
+0200
+++ new/seafile-9.0.22/daemon/seafile-config.c  2026-10-10 05:01:50.000000000 
+0200
@@ -117,8 +117,10 @@
             session->use_http_proxy = FALSE;
             // Disabling proxy completes with KEY_USE_PROXY=false,
             // so reconnect notification server here to drop the old proxied 
connection.
+#if defined WIN32 || defined __APPLE__ || defined COMPILE_LINUX_WS
             if (session->notif_mgr)
                 seaf_notif_manager_reconnect_servers (session->notif_mgr);
+#endif
         }
     }
 
@@ -139,8 +141,10 @@
         session->http_proxy_password = g_strdup(value);
         // The RPC caller updates proxy settings key by key and writes 
KEY_PROXY_PASSWORD last when proxy is enabled,
         // so reconnect notifications here to pick up the complete new proxy 
settings.
+#if defined WIN32 || defined __APPLE__ || defined COMPILE_LINUX_WS
         if (session->notif_mgr)
             seaf_notif_manager_reconnect_servers (session->notif_mgr);
+#endif
     }
 
     if (g_strcmp0(key, KEY_HIDE_WINDOWS_INCOMPATIBLE_PATH_NOTIFICATION) == 0) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/seafile-9.0.21/daemon/vc-utils.c 
new/seafile-9.0.22/daemon/vc-utils.c
--- old/seafile-9.0.21/daemon/vc-utils.c        2026-08-07 08:17:18.000000000 
+0200
+++ new/seafile-9.0.22/daemon/vc-utils.c        2026-10-10 05:01:50.000000000 
+0200
@@ -229,7 +229,7 @@
         wcscat (subpath_w, L"\\");
         wcscat (subpath_w, fdata->cFileName);
 
-        if (!DeleteFileW (subpath_w)) {
+        if (!win32_delete_file (subpath_w)) {
             subpath = g_utf16_to_utf8 (subpath_w, -1, NULL, NULL, NULL);
             seaf_warning ("Failed to remove file %s: %lu.\n", subpath, 
GetLastError());
             g_free (subpath);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/seafile-9.0.21/debian/changelog 
new/seafile-9.0.22/debian/changelog
--- old/seafile-9.0.21/debian/changelog 2026-08-07 08:17:18.000000000 +0200
+++ new/seafile-9.0.22/debian/changelog 2026-10-10 05:01:50.000000000 +0200
@@ -1,3 +1,8 @@
+seafile-daemon (9.0.22) unstable; urgency=low
+
+  * new upstream release
+
+ -- Jonathan Xu <[email protected]>  Fri, 09 Oct 2026 13:44:29 +0800
 seafile-daemon (9.0.21) unstable; urgency=low
 
   * new upstream release
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/seafile-9.0.21/lib/repo.c 
new/seafile-9.0.22/lib/repo.c
--- old/seafile-9.0.21/lib/repo.c       2026-08-07 08:17:18.000000000 +0200
+++ new/seafile-9.0.22/lib/repo.c       2026-10-10 05:01:50.000000000 +0200
@@ -161,6 +161,7 @@
 enum  {
        SEAFILE_FILE_SYNC_ERROR_0_PROPERTY,
        SEAFILE_FILE_SYNC_ERROR_ID_PROPERTY,
+       SEAFILE_FILE_SYNC_ERROR_SERVER_PROPERTY,
        SEAFILE_FILE_SYNC_ERROR_REPO_ID_PROPERTY,
        SEAFILE_FILE_SYNC_ERROR_REPO_NAME_PROPERTY,
        SEAFILE_FILE_SYNC_ERROR_PATH_PROPERTY,
@@ -293,6 +294,7 @@
 
 struct _SeafileFileSyncErrorPrivate {
        gint _id;
+       gchar* _server;
        gchar* _repo_id;
        gchar* _repo_name;
        gchar* _path;
@@ -546,6 +548,9 @@
 VALA_EXTERN gint seafile_file_sync_error_get_id (SeafileFileSyncError* self);
 VALA_EXTERN void seafile_file_sync_error_set_id (SeafileFileSyncError* self,
                                      gint value);
+VALA_EXTERN const gchar* seafile_file_sync_error_get_server 
(SeafileFileSyncError* self);
+VALA_EXTERN void seafile_file_sync_error_set_server (SeafileFileSyncError* 
self,
+                                         const gchar* value);
 VALA_EXTERN const gchar* seafile_file_sync_error_get_repo_id 
(SeafileFileSyncError* self);
 VALA_EXTERN void seafile_file_sync_error_set_repo_id (SeafileFileSyncError* 
self,
                                           const gchar* value);
@@ -2786,6 +2791,33 @@
 }
 
 const gchar*
+seafile_file_sync_error_get_server (SeafileFileSyncError* self)
+{
+       const gchar* result;
+       const gchar* _tmp0_;
+       g_return_val_if_fail (self != NULL, NULL);
+       _tmp0_ = self->priv->_server;
+       result = _tmp0_;
+       return result;
+}
+
+void
+seafile_file_sync_error_set_server (SeafileFileSyncError* self,
+                                    const gchar* value)
+{
+       gchar* old_value;
+       g_return_if_fail (self != NULL);
+       old_value = seafile_file_sync_error_get_server (self);
+       if (g_strcmp0 (value, old_value) != 0) {
+               gchar* _tmp0_;
+               _tmp0_ = g_strdup (value);
+               _g_free0 (self->priv->_server);
+               self->priv->_server = _tmp0_;
+               g_object_notify_by_pspec ((GObject *) self, 
seafile_file_sync_error_properties[SEAFILE_FILE_SYNC_ERROR_SERVER_PROPERTY]);
+       }
+}
+
+const gchar*
 seafile_file_sync_error_get_repo_id (SeafileFileSyncError* self)
 {
        const gchar* result;
@@ -2920,6 +2952,7 @@
        G_OBJECT_CLASS (klass)->set_property = 
_vala_seafile_file_sync_error_set_property;
        G_OBJECT_CLASS (klass)->finalize = seafile_file_sync_error_finalize;
        g_object_class_install_property (G_OBJECT_CLASS (klass), 
SEAFILE_FILE_SYNC_ERROR_ID_PROPERTY, 
seafile_file_sync_error_properties[SEAFILE_FILE_SYNC_ERROR_ID_PROPERTY] = 
g_param_spec_int ("id", "id", "id", G_MININT, G_MAXINT, 0, 
G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
+       g_object_class_install_property (G_OBJECT_CLASS (klass), 
SEAFILE_FILE_SYNC_ERROR_SERVER_PROPERTY, 
seafile_file_sync_error_properties[SEAFILE_FILE_SYNC_ERROR_SERVER_PROPERTY] = 
g_param_spec_string ("server", "server", "server", NULL, G_PARAM_STATIC_STRINGS 
| G_PARAM_READABLE | G_PARAM_WRITABLE));
        g_object_class_install_property (G_OBJECT_CLASS (klass), 
SEAFILE_FILE_SYNC_ERROR_REPO_ID_PROPERTY, 
seafile_file_sync_error_properties[SEAFILE_FILE_SYNC_ERROR_REPO_ID_PROPERTY] = 
g_param_spec_string ("repo-id", "repo-id", "repo-id", NULL, 
G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
        g_object_class_install_property (G_OBJECT_CLASS (klass), 
SEAFILE_FILE_SYNC_ERROR_REPO_NAME_PROPERTY, 
seafile_file_sync_error_properties[SEAFILE_FILE_SYNC_ERROR_REPO_NAME_PROPERTY] 
= g_param_spec_string ("repo-name", "repo-name", "repo-name", NULL, 
G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
        g_object_class_install_property (G_OBJECT_CLASS (klass), 
SEAFILE_FILE_SYNC_ERROR_PATH_PROPERTY, 
seafile_file_sync_error_properties[SEAFILE_FILE_SYNC_ERROR_PATH_PROPERTY] = 
g_param_spec_string ("path", "path", "path", NULL, G_PARAM_STATIC_STRINGS | 
G_PARAM_READABLE | G_PARAM_WRITABLE));
@@ -2939,6 +2972,7 @@
 {
        SeafileFileSyncError * self;
        self = G_TYPE_CHECK_INSTANCE_CAST (obj, SEAFILE_TYPE_FILE_SYNC_ERROR, 
SeafileFileSyncError);
+       _g_free0 (self->priv->_server);
        _g_free0 (self->priv->_repo_id);
        _g_free0 (self->priv->_repo_name);
        _g_free0 (self->priv->_path);
@@ -2979,6 +3013,9 @@
                case SEAFILE_FILE_SYNC_ERROR_ID_PROPERTY:
                g_value_set_int (value, seafile_file_sync_error_get_id (self));
                break;
+               case SEAFILE_FILE_SYNC_ERROR_SERVER_PROPERTY:
+               g_value_set_string (value, seafile_file_sync_error_get_server 
(self));
+               break;
                case SEAFILE_FILE_SYNC_ERROR_REPO_ID_PROPERTY:
                g_value_set_string (value, seafile_file_sync_error_get_repo_id 
(self));
                break;
@@ -3012,6 +3049,9 @@
                case SEAFILE_FILE_SYNC_ERROR_ID_PROPERTY:
                seafile_file_sync_error_set_id (self, g_value_get_int (value));
                break;
+               case SEAFILE_FILE_SYNC_ERROR_SERVER_PROPERTY:
+               seafile_file_sync_error_set_server (self, g_value_get_string 
(value));
+               break;
                case SEAFILE_FILE_SYNC_ERROR_REPO_ID_PROPERTY:
                seafile_file_sync_error_set_repo_id (self, g_value_get_string 
(value));
                break;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/seafile-9.0.21/lib/repo.vala 
new/seafile-9.0.22/lib/repo.vala
--- old/seafile-9.0.21/lib/repo.vala    2026-08-07 08:17:18.000000000 +0200
+++ new/seafile-9.0.22/lib/repo.vala    2026-10-10 05:01:50.000000000 +0200
@@ -128,6 +128,7 @@
 
 public class FileSyncError: Object {
     public int id { get; set; }
+    public string server { get; set; }
     public string repo_id { get; set; }
     public string repo_name { get; set; }
     public string path { get; set; }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/seafile-9.0.21/lib/seafile-object.h 
new/seafile-9.0.22/lib/seafile-object.h
--- old/seafile-9.0.21/lib/seafile-object.h     2026-08-07 08:17:18.000000000 
+0200
+++ new/seafile-9.0.22/lib/seafile-object.h     2026-10-10 05:01:50.000000000 
+0200
@@ -366,6 +366,9 @@
 VALA_EXTERN gint seafile_file_sync_error_get_id (SeafileFileSyncError* self);
 VALA_EXTERN void seafile_file_sync_error_set_id (SeafileFileSyncError* self,
                                      gint value);
+VALA_EXTERN const gchar* seafile_file_sync_error_get_server 
(SeafileFileSyncError* self);
+VALA_EXTERN void seafile_file_sync_error_set_server (SeafileFileSyncError* 
self,
+                                         const gchar* value);
 VALA_EXTERN const gchar* seafile_file_sync_error_get_repo_id 
(SeafileFileSyncError* self);
 VALA_EXTERN void seafile_file_sync_error_set_repo_id (SeafileFileSyncError* 
self,
                                           const gchar* value);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/seafile-9.0.21/lib/utils.c 
new/seafile-9.0.22/lib/utils.c
--- old/seafile-9.0.21/lib/utils.c      2026-08-07 08:17:18.000000000 +0200
+++ new/seafile-9.0.22/lib/utils.c      2026-10-10 05:01:50.000000000 +0200
@@ -486,6 +486,46 @@
 #endif
 }
 
+#ifdef WIN32
+
+/* DeleteFileW() fails with ERROR_ACCESS_DENIED on a file carrying the
+ * read-only attribute. Clear the attribute and retry, putting it back if the
+ * file still cannot be removed, so that a failure leaves nothing behind.
+ *
+ * This matters for any worktree holding read-only files. Git, for one, creates
+ * every loose object and pack file read-only: once another client repacks such
+ * a repository, the resulting deletions can never be applied here, and the
+ * whole directory ends up in seafile-recycle-bin instead.
+ *
+ * GetLastError() is preserved so callers can still report the original cause.
+ */
+gboolean
+win32_delete_file (const wchar_t *wpath)
+{
+    DWORD error, attrs;
+
+    if (DeleteFileW (wpath))
+        return TRUE;
+
+    error = GetLastError();
+    if (error != ERROR_ACCESS_DENIED)
+        return FALSE;
+
+    attrs = GetFileAttributesW (wpath);
+    if (attrs != INVALID_FILE_ATTRIBUTES && (attrs & FILE_ATTRIBUTE_READONLY) 
&&
+        SetFileAttributesW (wpath, attrs & ~FILE_ATTRIBUTE_READONLY)) {
+        if (DeleteFileW (wpath))
+            return TRUE;
+        error = GetLastError();
+        SetFileAttributesW (wpath, attrs);
+    }
+
+    SetLastError (error);
+    return FALSE;
+}
+
+#endif  /* WIN32 */
+
 int
 seaf_util_unlink (const char *path)
 {
@@ -493,7 +533,7 @@
 #ifdef WIN32
     wchar_t *wpath = win32_long_path (path);
 
-    if (!DeleteFileW (wpath)) {
+    if (!win32_delete_file (wpath)) {
         ret = -1;
         errno = windows_error_to_errno (GetLastError());
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/seafile-9.0.21/lib/utils.h 
new/seafile-9.0.22/lib/utils.h
--- old/seafile-9.0.21/lib/utils.h      2026-08-07 08:17:18.000000000 +0200
+++ new/seafile-9.0.22/lib/utils.h      2026-10-10 05:01:50.000000000 +0200
@@ -97,6 +97,12 @@
 
 __time64_t
 file_time_to_unix_time (FILETIME *ftime);
+
+/* Delete a file, clearing the read-only attribute first if that is what
+ * blocks the deletion. Returns TRUE on success.
+ */
+gboolean
+win32_delete_file (const wchar_t *wpath);
 #endif
 
 int
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/seafile-9.0.21/msi/Includes.wxi 
new/seafile-9.0.22/msi/Includes.wxi
--- old/seafile-9.0.21/msi/Includes.wxi 2026-08-07 08:17:18.000000000 +0200
+++ new/seafile-9.0.22/msi/Includes.wxi 2026-10-10 05:01:50.000000000 +0200
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Include Id="SeafileInclude">
-  <?define CurrentSeafileVersion="9.0.21" ?>
+  <?define CurrentSeafileVersion="9.0.22" ?>
 
   <!-- Update Guid 不能变 -->
   <?define CurrentUpdateGuid="65DED1C8-A5F1-4C49-8E7E-B0A8A5A6535C" ?>
@@ -174,7 +174,8 @@
   <!-- <?define ProductGuid="340A1B15-1F3C-4EB7-91D5-6B210299B7D8" ?> (9.0.18) 
-->
   <!-- <?define ProductGuid="F7B60716-0AE3-4E15-BBBF-489D9FE36FDD" ?> (9.0.19) 
-->
   <!-- <?define ProductGuid="6D8AA65E-1A89-4E5A-9313-767322FDA996" ?> (9.0.20) 
-->
-  <?define ProductGuid="812B8682-0C2A-4D5D-9EC6-97E3FC222955" ?>
+  <!-- <?define ProductGuid="812B8682-0C2A-4D5D-9EC6-97E3FC222955" ?> (9.0.21) 
-->
+  <?define ProductGuid="3FD50E77-EB02-43E1-896E-4D8D63EB8F23" ?>
 
   <?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-9.0.21/scripts/build/build-msi-vs-cn.py 
new/seafile-9.0.22/scripts/build/build-msi-vs-cn.py
--- old/seafile-9.0.21/scripts/build/build-msi-vs-cn.py 2026-08-07 
08:17:18.000000000 +0200
+++ new/seafile-9.0.22/scripts/build/build-msi-vs-cn.py 2026-10-10 
05:01:50.000000000 +0200
@@ -235,7 +235,7 @@
     def __init__(self):
         Project.__init__(self)
         self.build_commands = [
-            'devenv "%s/libsearpc.sln" /Build "Release|x64"' %(self.projdir),
+            'MSBuild.exe "%s/libsearpc.sln" /t:Build /p:Configuration=Release 
/p:Platform=x64' %(self.projdir),
         ]
 
     def after_build(self):
@@ -248,8 +248,8 @@
     def __init__(self):
         Project.__init__(self)
         self.build_commands = [
-            'devenv %s/seafile.sln /Build "Release|x64"' %(self.projdir),
-            'devenv %s/msi/custom/seafile_custom.sln /Build "Release|x64"' 
%(self.projdir),
+            'MSBuild.exe "%s/seafile.sln" /t:Build /p:Configuration=Release 
/p:Platform=x64' %(self.projdir),
+            'MSBuild.exe "%s/msi/custom/seafile_custom.sln" /t:Build 
/p:Configuration=Release /p:Platform=x64' %(self.projdir),
         ]
 
     def before_build(self):
@@ -281,7 +281,7 @@
     def __init__(self):
         Project.__init__(self)
         self.build_commands = [
-            'devenv %s/seafile-client.sln /Build "Release|x64"' 
%(self.projdir) ,
+            'MSBuild.exe "%s/seafile-client.sln" /t:Build 
/p:Configuration=Release /p:Platform=x64' %(self.projdir) ,
         ]
 
     def before_build(self):
@@ -335,8 +335,8 @@
     def __init__(self):
         Project.__init__(self)
         self.build_commands = [
-            'devenv %s/windows/extensions/seafile_ext.sln /Build 
"Release|x64"' %(self.projdir),
-            'devenv %s/shellext-fix/shellext-fix.sln /Build "Release|x64"' 
%(self.projdir),
+            'MSBuild.exe "%s/windows/extensions/seafile_ext.sln" /t:Build 
/p:Configuration=Release /p:Platform=x64' %(self.projdir),
+            'MSBuild.exe "%s/shellext-fix/shellext-fix.sln" /t:Build 
/p:Configuration=Release /p:Platform=x64' %(self.projdir),
         ]
     def before_build(self):
         pass
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/seafile-9.0.21/scripts/build/build-msi-vs.py 
new/seafile-9.0.22/scripts/build/build-msi-vs.py
--- old/seafile-9.0.21/scripts/build/build-msi-vs.py    2026-08-07 
08:17:18.000000000 +0200
+++ new/seafile-9.0.22/scripts/build/build-msi-vs.py    2026-10-10 
05:01:50.000000000 +0200
@@ -235,7 +235,7 @@
     def __init__(self):
         Project.__init__(self)
         self.build_commands = [
-            'devenv  "%s/libsearpc.sln" /Rebuild "Release|x64"' 
%(self.projdir),
+            'MSBuild.exe "%s/libsearpc.sln" /t:Build /p:Configuration=Release 
/p:Platform=x64' %(self.projdir),
         ]
 
     def after_build(self):
@@ -248,8 +248,8 @@
     def __init__(self):
         Project.__init__(self)
         self.build_commands = [
-            'devenv %s/seafile.sln /Rebuild "Release|x64"' %(self.projdir),
-            'devenv %s/msi/custom/seafile_custom.sln /Rebuild "Release|x64"' 
%(self.projdir),
+            'MSBuild.exe "%s/seafile.sln" /t:Build /p:Configuration=Release 
/p:Platform=x64' %(self.projdir),
+            'MSBuild.exe "%s/msi/custom/seafile_custom.sln" /t:Build 
/p:Configuration=Release /p:Platform=x64' %(self.projdir),
         ]
 
     def before_build(self):
@@ -281,7 +281,7 @@
     def __init__(self):
         Project.__init__(self)
         self.build_commands = [
-            'devenv %s/seafile-client.sln /Rebuild "Release|x64"' 
%(self.projdir) ,
+            'MSBuild.exe "%s/seafile-client.sln" /t:Build 
/p:Configuration=Release /p:Platform=x64' %(self.projdir) ,
         ]
 
     def before_build(self):
@@ -336,8 +336,8 @@
     def __init__(self):
         Project.__init__(self)
         self.build_commands = [
-            'devenv %s/windows/extensions/seafile_ext.sln /Rebuild 
"Release|x64"' %(self.projdir),
-            'devenv %s/shellext-fix/shellext-fix.sln /Rebuild "Release|x64"' 
%(self.projdir),
+            'MSBuild.exe "%s/windows/extensions/seafile_ext.sln" /t:Build 
/p:Configuration=Release /p:Platform=x64' %(self.projdir),
+            'MSBuild.exe "%s/shellext-fix/shellext-fix.sln" /t:Build 
/p:Configuration=Release /p:Platform=x64' %(self.projdir),
         ]
     def before_build(self):
         pass
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/seafile-9.0.21/seafile.vcxproj 
new/seafile-9.0.22/seafile.vcxproj
--- old/seafile-9.0.21/seafile.vcxproj  2026-08-07 08:17:18.000000000 +0200
+++ new/seafile-9.0.22/seafile.vcxproj  2026-10-10 05:01:50.000000000 +0200
@@ -95,7 +95,7 @@
       <WarningLevel>Level3</WarningLevel>
       <SDLCheck>
       </SDLCheck>
-      
<PreprocessorDefinitions>WIN32;UNICODE;WIN32_LEAN_AND_MEAN;SEAFILE_CLIENT;PACKAGE_VERSION="9.0.21";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      
<PreprocessorDefinitions>WIN32;UNICODE;WIN32_LEAN_AND_MEAN;SEAFILE_CLIENT;PACKAGE_VERSION="9.0.22";%(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>
@@ -113,7 +113,7 @@
       <WarningLevel>Level1</WarningLevel>
       <SDLCheck>
       </SDLCheck>
-      
<PreprocessorDefinitions>WIN32;UNICODE;WIN32_LEAN_AND_MEAN;SEAFILE_CLIENT;PACKAGE_VERSION="9.0.21";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      
<PreprocessorDefinitions>WIN32;UNICODE;WIN32_LEAN_AND_MEAN;SEAFILE_CLIENT;PACKAGE_VERSION="9.0.22";%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <ConformanceMode>false</ConformanceMode>
       <LanguageStandard>stdcpp17</LanguageStandard>
       
<AdditionalIncludeDirectories>$(ProjectDir)vcpkg_installed\x64-windows\x64-windows\include\glib-2.0;$(ProjectDir)vcpkg_installed\x64-windows\x64-windows\lib\glib-2.0\include;$(ProjectDir)..\libsearpc\lib;$(ProjectDir)common;$(ProjectDir)include;$(ProjectDir)daemon;$(ProjectDir)lib;$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
@@ -134,7 +134,7 @@
       <IntrinsicFunctions>false</IntrinsicFunctions>
       <SDLCheck>
       </SDLCheck>
-      
<PreprocessorDefinitions>WIN32;PACKAGE_VERSION="9.0.21";WIN32_LEAN_AND_MEAN;UNICODE;SEAFILE_CLIENT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      
<PreprocessorDefinitions>WIN32;PACKAGE_VERSION="9.0.22";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>
@@ -161,7 +161,7 @@
       <IntrinsicFunctions>false</IntrinsicFunctions>
       <SDLCheck>
       </SDLCheck>
-      
<PreprocessorDefinitions>WIN32;PACKAGE_VERSION="9.0.21";WIN32_LEAN_AND_MEAN;UNICODE;SEAFILE_CLIENT;ENABLE_BREAKPAD;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      
<PreprocessorDefinitions>WIN32;PACKAGE_VERSION="9.0.22";WIN32_LEAN_AND_MEAN;UNICODE;SEAFILE_CLIENT;ENABLE_BREAKPAD;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <ConformanceMode>false</ConformanceMode>
       <LanguageStandard>stdcpp17</LanguageStandard>
       
<AdditionalIncludeDirectories>$(ProjectDir)vcpkg_installed\x64-windows\x64-windows\include\glib-2.0;$(ProjectDir)vcpkg_installed\x64-windows\x64-windows\lib\glib-2.0\include;$(ProjectDir)..\libsearpc\lib;$(ProjectDir);$(ProjectDir)common;$(ProjectDir)lib;$(ProjectDir)include;$(ProjectDir)daemon;$(ProjectDir)..\breakpad\src;$(ProjectDir)..\libwebsockets\build\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/seafile-9.0.21/vcpkg-configuration.json 
new/seafile-9.0.22/vcpkg-configuration.json
--- old/seafile-9.0.21/vcpkg-configuration.json 2026-08-07 08:17:18.000000000 
+0200
+++ new/seafile-9.0.22/vcpkg-configuration.json 2026-10-10 05:01:50.000000000 
+0200
@@ -1,7 +1,7 @@
 {
   "default-registry": {
     "kind": "builtin",
-    "baseline": "e1dfb369fc1c6e58d5850cf67c224caa955309e5"
+    "baseline": "9e593bb18ea69cc5095e012465dcd675a822ed0d"
   },
   "overlay-ports": [
     "./seafile-ports"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/seafile-9.0.21/vcpkg.json 
new/seafile-9.0.22/vcpkg.json
--- old/seafile-9.0.21/vcpkg.json       2026-08-07 08:17:18.000000000 +0200
+++ new/seafile-9.0.22/vcpkg.json       2026-10-10 05:01:50.000000000 +0200
@@ -1,5 +1,4 @@
 {
-    "builtin-baseline": "e1dfb369fc1c6e58d5850cf67c224caa955309e5",
     "dependencies": [
         "argon2",
         "getopt",
@@ -7,7 +6,10 @@
         "jansson",
         "libevent",
         "libwebsockets",
-        "openssl",
+        {
+            "name": "openssl",
+            "version>=": "3.6.3#0"
+        },
         "pthreads",
         "sqlite3",
         "zlib",
@@ -17,39 +19,5 @@
                 "openssl"
             ]
         }
-    ],
-    "overrides": [
-        {
-            "name": "argon2",
-            "version": "20190702#1"
-        },
-        {
-            "name": "openssl",
-            "version": "3.5.4"
-        },
-        {
-            "name": "curl",
-            "version": "8.20.0"
-        },
-        {
-            "name": "jansson",
-            "version": "2.12-1"
-        },
-        {
-            "name": "libevent",
-            "version": "2.1.11-5"
-        },
-        {
-            "name": "libwebsockets",
-            "version": "4.3.2"
-        },
-        {
-            "name": "sqlite3",
-            "version": "3.31.1"
-        },
-        {
-            "name": "zlib",
-            "version": "1.3.2"
-        }
     ]
 }

Reply via email to