Hello community, here is the log from the commit of package seafile for openSUSE:Factory checked in at 2020-10-13 15:42:20 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/seafile (Old) and /work/SRC/openSUSE:Factory/.seafile.new.3486 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "seafile" Tue Oct 13 15:42:20 2020 rev:5 rq:841270 version:7.0.10 Changes: -------- --- /work/SRC/openSUSE:Factory/seafile/seafile.changes 2020-08-10 14:52:05.163813212 +0200 +++ /work/SRC/openSUSE:Factory/.seafile.new.3486/seafile.changes 2020-10-13 15:44:00.493407299 +0200 @@ -1,0 +2,5 @@ +Mon Oct 12 09:30:54 UTC 2020 - Paolo Stivanin <i...@paolostivanin.com> + +- Update to 7.0.10 (no changelog) + +------------------------------------------------------------------- Old: ---- v7.0.9.tar.gz New: ---- v7.0.10.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ seafile.spec ++++++ --- /var/tmp/diff_new_pack.gTtEsH/_old 2020-10-13 15:44:02.401408123 +0200 +++ /var/tmp/diff_new_pack.gTtEsH/_new 2020-10-13 15:44:02.405408125 +0200 @@ -17,7 +17,7 @@ Name: seafile -Version: 7.0.9 +Version: 7.0.10 Release: 0 Summary: Cloud storage client License: GPL-2.0-only ++++++ v7.0.9.tar.gz -> v7.0.10.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/seafile-7.0.9/README.markdown new/seafile-7.0.10/README.markdown --- old/seafile-7.0.9/README.markdown 2020-07-29 04:32:25.000000000 +0200 +++ new/seafile-7.0.10/README.markdown 2020-10-12 04:19:33.000000000 +0200 @@ -57,7 +57,7 @@ * Android app: https://github.com/haiwen/seadroid * WebDAV: https://github.com/haiwen/seafdav -Before version 6.0, the source code of "sync client daemon" and "server core" are mixed together in https://github.com/haiwen/seafile. +Before version 6.0, the source code of "sync client daemon" and "server core" was mixed together in https://github.com/haiwen/seafile. But after 6.0 version, the server core is separated into its own repository. For this reason, the sync client daemon repository is still the "front page" for Seafile project on Github. @@ -76,7 +76,7 @@ * Android client: https://github.com/haiwen/seadroid/issues * iOS client: https://github.com/haiwen/seafile-iOS/issues -Feature requests and installation/usage problem should be asked in the forum https://forum.seafile.com/. +Feature requests can be made and installation/usage problems can be discussed in the forum https://forum.seafile.com/. Internationalization (I18n) =========================== @@ -101,7 +101,7 @@ Contributing =========== -For more informations read [Contribution](http://manual.seafile.com/contribution.html). +For more information read [Contribution](http://manual.seafile.com/contribution.html). License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/seafile-7.0.9/common/commit-mgr.c new/seafile-7.0.10/common/commit-mgr.c --- old/seafile-7.0.9/common/commit-mgr.c 2020-07-29 04:32:25.000000000 +0200 +++ new/seafile-7.0.10/common/commit-mgr.c 2020-10-12 04:19:33.000000000 +0200 @@ -757,6 +757,14 @@ if (!salt || strlen(salt) != 64) return NULL; break; + case 4: + if (!magic || strlen(magic) != 64) + return NULL; + if (!random_key || strlen(random_key) != 96) + return NULL; + if (!salt || strlen(salt) != 64) + return NULL; + break; default: seaf_warning ("Unknown encryption version %d.\n", enc_version); return NULL; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/seafile-7.0.9/common/seafile-crypt.c new/seafile-7.0.10/common/seafile-crypt.c --- old/seafile-7.0.9/common/seafile-crypt.c 2020-07-29 04:32:25.000000000 +0200 +++ new/seafile-7.0.10/common/seafile-crypt.c 2020-10-12 04:19:33.000000000 +0200 @@ -63,7 +63,7 @@ return 0; #else - if (version == 3) { + if (version >= 3) { unsigned char repo_salt_bin[32]; hex_to_rawdata (repo_salt, repo_salt_bin, 32); @@ -205,7 +205,7 @@ unsigned char key[32], iv[16]; char hex[65]; - if (version != 1 && version != 2 && version != 3) { + if (version != 1 && version != 2 && version != 3 && version != 4) { seaf_warning ("Unsupported enc_version %d.\n", version); return -1; } @@ -458,21 +458,21 @@ /* Prepare CTX for encryption. */ ctx = EVP_CIPHER_CTX_new (); - if (crypt->version == 2) + if (crypt->version == 1) ret = EVP_EncryptInit_ex (ctx, - EVP_aes_256_cbc(), /* cipher mode */ + EVP_aes_128_cbc(), /* cipher mode */ NULL, /* engine, NULL for default */ crypt->key, /* derived key */ crypt->iv); /* initial vector */ - else if (crypt->version == 1) + else if (crypt->version == 3) ret = EVP_EncryptInit_ex (ctx, - EVP_aes_128_cbc(), /* cipher mode */ + EVP_aes_128_ecb(), /* cipher mode */ NULL, /* engine, NULL for default */ crypt->key, /* derived key */ crypt->iv); /* initial vector */ else ret = EVP_EncryptInit_ex (ctx, - EVP_aes_128_ecb(), /* cipher mode */ + EVP_aes_256_cbc(), /* cipher mode */ NULL, /* engine, NULL for default */ crypt->key, /* derived key */ crypt->iv); /* initial vector */ @@ -567,21 +567,21 @@ /* Prepare CTX for decryption. */ ctx = EVP_CIPHER_CTX_new (); - if (crypt->version == 2) + if (crypt->version == 1) ret = EVP_DecryptInit_ex (ctx, - EVP_aes_256_cbc(), /* cipher mode */ + EVP_aes_128_cbc(), /* cipher mode */ NULL, /* engine, NULL for default */ crypt->key, /* derived key */ crypt->iv); /* initial vector */ - else if (crypt->version == 1) + else if (crypt->version == 3) ret = EVP_DecryptInit_ex (ctx, - EVP_aes_128_cbc(), /* cipher mode */ + EVP_aes_128_ecb(), /* cipher mode */ NULL, /* engine, NULL for default */ crypt->key, /* derived key */ crypt->iv); /* initial vector */ else ret = EVP_DecryptInit_ex (ctx, - EVP_aes_128_ecb(), /* cipher mode */ + EVP_aes_256_cbc(), /* cipher mode */ NULL, /* engine, NULL for default */ crypt->key, /* derived key */ crypt->iv); /* initial vector */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/seafile-7.0.9/configure.ac new/seafile-7.0.10/configure.ac --- old/seafile-7.0.9/configure.ac 2020-07-29 04:32:25.000000000 +0200 +++ new/seafile-7.0.10/configure.ac 2020-10-12 04:19:33.000000000 +0200 @@ -2,7 +2,7 @@ AC_PREREQ(2.61) -AC_INIT([seafile], [7.0.9], [i...@seafile.com]) +AC_INIT([seafile], [7.0.10], [i...@seafile.com]) AC_CONFIG_HEADER([config.h]) AC_CONFIG_MACRO_DIR([m4]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/seafile-7.0.9/daemon/clone-mgr.c new/seafile-7.0.10/daemon/clone-mgr.c --- old/seafile-7.0.9/daemon/clone-mgr.c 2020-07-29 04:32:25.000000000 +0200 +++ new/seafile-7.0.10/daemon/clone-mgr.c 2020-10-12 04:19:33.000000000 +0200 @@ -1055,7 +1055,7 @@ return FALSE; } - if (enc_version != 1 && enc_version != 2 && enc_version != 3) { + if (enc_version != 1 && enc_version != 2 && enc_version != 3 && enc_version != 4) { g_set_error (error, SEAFILE_DOMAIN, SEAF_ERR_BAD_ARGS, "Unsupported enc version"); return FALSE; @@ -1067,7 +1067,7 @@ "Random key not specified"); return FALSE; } - if (enc_version == 3 && (!(repo_salt) || strlen(repo_salt) != 64) ) { + if (enc_version >= 3 && (!(repo_salt) || strlen(repo_salt) != 64) ) { g_set_error (error, SEAFILE_DOMAIN, SEAF_ERR_BAD_ARGS, "Repo salt not specified"); return FALSE; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/seafile-7.0.9/daemon/http-tx-mgr.c new/seafile-7.0.10/daemon/http-tx-mgr.c --- old/seafile-7.0.9/daemon/http-tx-mgr.c 2020-07-29 04:32:25.000000000 +0200 +++ new/seafile-7.0.10/daemon/http-tx-mgr.c 2020-10-12 04:19:33.000000000 +0200 @@ -4418,8 +4418,10 @@ int i; char *block_id; + int *pcnt; for (i = 0; i < file->n_blocks; ++i) { block_id = file->blk_sha1s[i]; + pthread_mutex_lock (&task->ref_cnt_lock); if (seaf_block_manager_block_exists (seaf->block_mgr, task->repo_id, task->repo_version, block_id)) { @@ -4428,11 +4430,19 @@ task->repo_id, task->repo_version, block_id); if (bmd) { + pcnt = g_hash_table_lookup (task->blk_ref_cnts, block_id); + if (!pcnt) { + pcnt = g_new0(int, 1); + g_hash_table_insert (task->blk_ref_cnts, g_strdup(block_id), pcnt); + } + *pcnt += 1; + pthread_mutex_unlock (&task->ref_cnt_lock); task->done_download += bmd->size; g_free (bmd); continue; } } + pthread_mutex_unlock (&task->ref_cnt_lock); ret = get_block (task, conn, block_id); if (ret < 0 || task->state == HTTP_TASK_STATE_CANCELED) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/seafile-7.0.9/daemon/repo-mgr.c new/seafile-7.0.10/daemon/repo-mgr.c --- old/seafile-7.0.9/daemon/repo-mgr.c 2020-07-29 04:32:25.000000000 +0200 +++ new/seafile-7.0.10/daemon/repo-mgr.c 2020-10-12 04:19:33.000000000 +0200 @@ -859,6 +859,8 @@ if (g_access(repo->worktree, F_OK) < 0) { seaf_warning ("Failed to access worktree %s for repo '%s'(%.8s)\n", repo->worktree, repo->name, repo->id); + seaf_repo_manager_set_repo_property ( + seaf->repo_mgr, repo->id, REPO_AUTO_SYNC, "false"); return -1; } if (seaf_stat(repo->worktree, &st) < 0) { @@ -969,6 +971,11 @@ memcpy (repo->random_key, commit->random_key, 96); memcpy (repo->salt, commit->salt, 64); } + else if (repo->enc_version == 4) { + memcpy (repo->magic, commit->magic, 64); + memcpy (repo->random_key, commit->random_key, 96); + memcpy (repo->salt, commit->salt, 64); + } } repo->no_local_history = commit->no_local_history; repo->version = commit->version; @@ -993,6 +1000,11 @@ commit->random_key = g_strdup (repo->random_key); commit->salt = g_strdup (repo->salt); } + else if (commit->enc_version == 4) { + commit->magic = g_strdup (repo->magic); + commit->random_key = g_strdup (repo->random_key); + commit->salt = g_strdup (repo->salt); + } } commit->no_local_history = repo->no_local_history; commit->version = repo->version; @@ -5229,7 +5241,7 @@ goto out; } - seaf_message ("Moved folder %s to Seafile recyle bin %s.\n", + seaf_message ("Moved folder %s to Seafile recycle bin %s.\n", dir_path, dst_path); out: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/seafile-7.0.9/daemon/sync-mgr.c new/seafile-7.0.10/daemon/sync-mgr.c --- old/seafile-7.0.9/daemon/sync-mgr.c 2020-07-29 04:32:25.000000000 +0200 +++ new/seafile-7.0.10/daemon/sync-mgr.c 2020-10-12 04:19:33.000000000 +0200 @@ -1939,6 +1939,9 @@ for (ptr = repos; ptr != NULL; ptr = ptr->next) { repo = ptr->data; + if (!manager->priv->auto_sync_enabled || !repo->auto_sync) + continue; + /* Every second, we'll check the worktree to see if it still exists. * We'll invalidate worktree if it gets moved or deleted. * But there is a hole here: If the user delete the worktree dir and @@ -1990,9 +1993,6 @@ if (!repo->head) continue; - if (!manager->priv->auto_sync_enabled || !repo->auto_sync) - continue; - #if defined WIN32 || defined __APPLE__ if (repo->version > 0) { if (repo->checking_locked_files) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/seafile-7.0.9/daemon/vc-utils.c new/seafile-7.0.10/daemon/vc-utils.c --- old/seafile-7.0.9/daemon/vc-utils.c 2020-07-29 04:32:25.000000000 +0200 +++ new/seafile-7.0.10/daemon/vc-utils.c 2020-10-12 04:19:33.000000000 +0200 @@ -357,7 +357,6 @@ { int base_len = strlen(worktree); int full_len; - char path[SEAF_PATH_MAX]; int offset; SeafStat st; @@ -366,31 +365,32 @@ return NULL; } - snprintf (path, SEAF_PATH_MAX, "%s/", worktree); + GString *path = g_string_new (""); + + g_string_append_printf (path, "%s/", worktree); /* first create all leading directories. */ full_len = base_len + len + 1; offset = base_len + 1; while (offset < full_len) { do { - path[offset] = ce_name[offset-base_len-1]; + g_string_append_c (path, ce_name[offset-base_len-1]); offset++; } while (offset < full_len && ce_name[offset-base_len-1] != '/'); if (offset >= full_len) break; - path[offset] = 0; - if (seaf_stat (path, &st) == 0 && S_ISDIR(st.st_mode)) + if (seaf_stat (path->str, &st) == 0 && S_ISDIR(st.st_mode)) continue; - if (seaf_util_mkdir (path, 0777) < 0) { - seaf_warning ("Failed to create directory %s.\n", path); + if (seaf_util_mkdir (path->str, 0777) < 0) { + g_string_free (path, TRUE); + seaf_warning ("Failed to create directory %s.\n", path->str); return NULL; } } - path[offset] = 0; - return g_strdup(path); + return g_string_free (path, FALSE); } int diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/seafile-7.0.9/debian/changelog new/seafile-7.0.10/debian/changelog --- old/seafile-7.0.9/debian/changelog 2020-07-29 04:32:25.000000000 +0200 +++ new/seafile-7.0.10/debian/changelog 2020-10-12 04:19:33.000000000 +0200 @@ -1,3 +1,8 @@ +seafile-daemon (7.0.10) unstable; urgency=low + + * new upstream release + + -- Jonathan Xu <jonathan...@seafile.com> Mon, 12 Oct 2020 10:07:11 +0800 seafile-daemon (7.0.9) unstable; urgency=low * new upstream release diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/seafile-7.0.9/msi/Includes.wxi new/seafile-7.0.10/msi/Includes.wxi --- old/seafile-7.0.9/msi/Includes.wxi 2020-07-29 04:32:25.000000000 +0200 +++ new/seafile-7.0.10/msi/Includes.wxi 2020-10-12 04:19:33.000000000 +0200 @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Include Id="SeafileInclude"> - <?define CurrentSeafileVersion="7.0.9" ?> + <?define CurrentSeafileVersion="7.0.10" ?> <!-- Update Guid 不能变 --> <?define CurrentUpdateGuid="65DED1C8-A5F1-4C49-8E7E-B0A8A5A6535C" ?> @@ -140,8 +140,9 @@ <!-- <?define ProductGuid="3A3D3777-A5C1-4089-A2F7-33D55A36E41E" ?> (7.0.5) --> <!-- <?define ProductGuid="9A180890-0EED-4E38-BAB0-A6E148D89F4A" ?> (7.0.6) --> <!-- <?define ProductGuid="1E617234-A273-41F9-8BA7-70C6F1644AC4" ?> (7.0.7) --> - <!-- <?define ProductGuid="7944DDB5-1C68-4C9F-9FA5-01224493EFF0" ?> (7.0.9) --> - <?define ProductGuid="C54F03E9-9522-4C70-8134-5199BD74AFBA" ?> + <!-- <?define ProductGuid="7944DDB5-1C68-4C9F-9FA5-01224493EFF0" ?> (7.0.8) --> + <!-- <?define ProductGuid="C54F03E9-9522-4C70-8134-5199BD74AFBA" ?> (7.0.9) --> + <?define ProductGuid="D21D1108-878F-43D9-A3A2-39F4B38A5694" ?> <?define GuidOfCustomComponent="AD201805-3CBD-4834-9097-5D934F7E0000" ?> <?define GuidOfAutoStartComponent="AD201805-3CBD-4834-9097-5D934F7E0001" ?>