haiwen / seafile-client

Seafile desktop client.
http://seafile.com
Apache License 2.0
469 stars 280 forks source link

Please do not modify tags after making a release #1414

Open schmittlauch opened 2 years ago

schmittlauch commented 2 years ago

Dear @rumtid @feiniks, please do not modify the git tags of releases after publication, this makes life difficult for downstream packagers who sometimes pin and verify the hash of the sources they're building.

In this case, the tag v8.0.7 used to reference commit 8b96abf64e6aa19e3beeff6b322bcd6d28120bdd which I had packaged for nixpkgs/NixOS. Later, @feiniks changed that tag to point to 5077237d9d8fb98bda5f832c8844dec48e6f9877 instead. It'd be better to create another minor fix release like either 8.0.7.1, 8.0.7-1, or 8.0.8 instead of retroactively changing the tag.

Actually, after looking at the pages of both commits https://github.com/haiwen/seafile-client/commit/5077237d9d8fb98bda5f832c8844dec48e6f9877 and https://github.com/haiwen/seafile-client/commit/8b96abf64e6aa19e3beeff6b322bcd6d28120bdd it even looks like the same tag has been assigned twice? to different commits, at least both pages show the tag name below the commit.

vcunat commented 2 years ago

What GitHub shows is the set of tags that contain the selected commit. For example, a few commits back it shows two latest tags: https://github.com/haiwen/seafile-client/commit/c9f91fcbde945f5ab246a839c0b10a58a3b68381

schmittlauch commented 2 years ago

Thanks for the clarification @vcunat, confusing UI is confusing. But the rest of my statement still holds, the hash in my initial packaging of the v8.0.7 tag still verifies when just building against the https://github.com/haiwen/seafile-client/commit/8b96abf64e6aa19e3beeff6b322bcd6d28120bdd commit.

vcunat commented 2 years ago

My understanding is that it's already part of git design that tags aren't meant to be moved, which is (in my eyes) the main difference from branches.

schmittlauch commented 2 years ago

Even worse, while https://github.com/haiwen/seafile-client/commit/8b96abf64e6aa19e3beeff6b322bcd6d28120bdd still builds fine against libsearpc 3.2.0, the retagged v8.0.7 seafile-client now fails at linking stage.

``` [100%] Linking CXX executable seafile-applet /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `(anonymous namespace)::createSearpcClientWithPipeTrans port(char const*)': rpc-client.cpp:(.text+0x15a): undefined reference to `searpc_create_named_pipe_client(char const*)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: rpc-client.cpp:(.text+0x1cd): undefined reference to `searpc_named_pipe_client_connect(_SearpcNamedPipeClient*)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: rpc-client.cpp:(.text+0x1da): undefined reference to `searpc_client_with_named_pipe_transport(_SearpcNamedPipeClient*, char const*)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: rpc-client.cpp:(.text+0x24b): undefined reference to `searpc_create_named_pipe_client(char const*)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: rpc-client.cpp:(.text+0x29c): undefined reference to `searpc_free_client_with_pipe_transport(_SearpcClient*)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::~SeafileRpcClient()': rpc-client.cpp:(.text+0x31c): undefined reference to `searpc_free_client_with_pipe_transport(_SearpcClient*)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: rpc-client.cpp:(.text+0x332): undefined reference to `searpc_free_client_with_pipe_transport(_SearpcClient*)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::connectDaemon(bool)': rpc-client.cpp:(.text+0x3fa): undefined reference to `searpc_free_client_with_pipe_transport(_SearpcClient*)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::setAutoSync(bool)': rpc-client.cpp:(.text+0x507): undefined reference to `searpc_client_call__int(_SearpcClient*, char const*, _GError**, int, ...)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: rpc-client.cpp:(.text+0x54a): undefined reference to `searpc_client_call__int(_SearpcClient*, char const*, _GError**, int, ...)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::downloadRepo(QString const&, int, QS tring const&, QString const&, QString const&, QString const&, QString const&, QString const&, QString const&, int, QString const&, QString*)': rpc-client.cpp:(.text+0x96a): undefined reference to `searpc_client_call__string(_SearpcClient*, char const*, _GError**, int, ...)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::cloneRepo(QString const&, int, QStri ng const&, QString const&, QString const&, QString const&, QString const&, QString const&, QString const&, int, QString const&, QString*)': rpc-client.cpp:(.text+0x139a): undefined reference to `searpc_client_call__string(_SearpcClient*, char const*, _GError**, int, ...)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::seafileGetConfig(QString const&, QSt ring*)': rpc-client.cpp:(.text+0x1a5a): undefined reference to `searpc_client_call__string(_SearpcClient*, char const*, _GError**, int, ...)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::seafileGetConfigInt(QString const&, int*)': rpc-client.cpp:(.text+0x1c4a): undefined reference to `searpc_client_call__int(_SearpcClient*, char const*, _GError**, int, ...)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::seafileSetConfig(QString const&, QSt ring const&)': rpc-client.cpp:(.text+0x1df2): undefined reference to `searpc_client_call__int(_SearpcClient*, char const*, _GError**, int, ...)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::setRateLimit(SeafileRpcClient::Direc tion, int)': rpc-client.cpp:(.text+0x201a): undefined reference to `searpc_client_call__int(_SearpcClient*, char const*, _GError**, int, ...)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::seafileSetConfigInt(QString const&, int)': rpc-client.cpp:(.text+0x2121): undefined reference to `searpc_client_call__int(_SearpcClient*, char const*, _GError**, int, ...)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::getTransferDetail(CloneTask*)': rpc-client.cpp:(.text+0x228a): undefined reference to `searpc_client_call__object(_SearpcClient*, char const*, unsigned long, _GError**, int, ...)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::cancelCloneTask(QString const&, QStr ing*)': rpc-client.cpp:(.text+0x259a): undefined reference to `searpc_client_call__int(_SearpcClient*, char const*, _GError**, int, ...)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::removeCloneTask(QString const&, QStr ing*)': rpc-client.cpp:(.text+0x279a): undefined reference to `searpc_client_call__int(_SearpcClient*, char const*, _GError**, int, ...)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::getCloneTasksCount(int*)': rpc-client.cpp:(.text+0x2940): undefined reference to `searpc_client_call__objlist(_SearpcClient*, char const*, unsigned long, _GError**, int, ...)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::unsyncReposByAccount(QUrl const&, QS tring const&, QString*)': rpc-client.cpp:(.text+0x2ad6): undefined reference to `searpc_client_call__int(_SearpcClient*, char const*, _GError**, int, ...)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::getDownloadRate(int*)': rpc-client.cpp:(.text+0x2de1): undefined reference to `searpc_client_call__int(_SearpcClient*, char const*, _GError**, int, ...)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::getUploadRate(int*)': rpc-client.cpp:(.text+0x2e61): undefined reference to `searpc_client_call__int(_SearpcClient*, char const*, _GError**, int, ...)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::setRepoAutoSync(QString const&, bool )': rpc-client.cpp:(.text+0x2f67): undefined reference to `searpc_client_call__int(_SearpcClient*, char const*, _GError**, int, ...)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::unsync(QString const&)': rpc-client.cpp:(.text+0x30a8): undefined reference to `searpc_client_call__int(_SearpcClient*, char const*, _GError**, int, ...)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::getRepoTransferInfo(QString const&, int*, int*, QString*)': rpc-client.cpp:(.text+0x3207): undefined reference to `searpc_client_call__object(_SearpcClient*, char const*, unsigned long, _GError**, int, ...)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::getSyncStatus(LocalRepo&)': rpc-client.cpp:(.text+0x349e): undefined reference to `searpc_client_call__object(_SearpcClient*, char const*, unsigned long, _GError**, int, ...)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::getLocalRepo(QString const&, LocalRe po*)': rpc-client.cpp:(.text+0x395d): undefined reference to `searpc_client_call__object(_SearpcClient*, char const*, unsigned long, _GError**, int, ...)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::syncRepoImmediately(QString const&)' : rpc-client.cpp:(.text+0x3ddd): undefined reference to `searpc_client_call__int(_SearpcClient*, char const*, _GError**, int, ...)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::checkPathForClone(QString const&, QS tring*)': rpc-client.cpp:(.text+0x3f06): undefined reference to `searpc_client_call__int(_SearpcClient*, char const*, _GError**, int, ...)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::updateReposServerHost(QUrl const&, Q String const&, QString*)': rpc-client.cpp:(.text+0x4160): undefined reference to `searpc_client_call__int(_SearpcClient*, char const*, _GError**, int, ...)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::getRepoProperty(QString const&, QStr ing const&, QString*)': rpc-client.cpp:(.text+0x4527): undefined reference to `searpc_client_call__string(_SearpcClient*, char const*, _GError**, int, ...)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::setRepoProperty(QString const&, QStr ing const&, QString const&)': rpc-client.cpp:(.text+0x483d): undefined reference to `searpc_client_call__int(_SearpcClient*, char const*, _GError**, int, ...)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::removeSyncTokensByAccount(QUrl const &, QString const&, QString*)': rpc-client.cpp:(.text+0x4b66): undefined reference to `searpc_client_call__int(_SearpcClient*, char const*, _GError**, int, ...)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::setRepoToken(QString const&, QString const&)': rpc-client.cpp:(.text+0x4f31): undefined reference to `searpc_client_call__int(_SearpcClient*, char const*, _GError**, int, ...)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::getRepoFileStatus(QString const&, QS tring const&, bool, QString*)': rpc-client.cpp:(.text+0x519a): undefined reference to `searpc_client_call__string(_SearpcClient*, char const*, _GError**, int, ...)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::markFileLockState(QString const&, QS tring const&, bool)': rpc-client.cpp:(.text+0x5454): undefined reference to `searpc_client_call__string(_SearpcClient*, char const*, _GError**, int, ...)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::generateMagicAndRandomKey(int, QStri ng const&, QString const&, QString*, QString*, QString*)': rpc-client.cpp:(.text+0x56d5): undefined reference to `searpc_client_call__object(_SearpcClient*, char const*, unsigned long, _GError**, int, ...)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::setServerProperty(QString const&, QS tring const&, QString const&)': rpc-client.cpp:(.text+0x5b57): undefined reference to `searpc_client_call__int(_SearpcClient*, char const*, _GError**, int, ...)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::getCommitDiff(QString const&, QStrin g const&, QString const&, CommitDetails*)': rpc-client.cpp:(.text+0x604f): undefined reference to `searpc_client_call__objlist(_SearpcClient*, char const*, unsigned long, _GError**, int, ...)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::getSyncNotification(json_t**)': rpc-client.cpp:(.text+0x6ab4): undefined reference to `searpc_client_call__json(_SearpcClient*, char const*, _GError**, int, ...)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::deleteFileAsyncErrorById(int)': rpc-client.cpp:(.text+0x6b3a): undefined reference to `searpc_client_call__int(_SearpcClient*, char const*, _GError**, int, ...)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::getCloneTasks(std::vector >*)': rpc-client.cpp:(.text+0x6bbe): undefined reference to `searpc_client_call__objlist(_SearpcClient*, char const*, unsigned long, _GError**, int, ...)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::getSyncErrors(std::vector >*, int, int)': rpc-client.cpp:(.text+0x701f): undefined reference to `searpc_client_call__objlist(_SearpcClient*, char const*, unsigned long, _GError**, int, ...)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::listLocalRepos(std::vector >*)': rpc-client.cpp:(.text+0x7332): undefined reference to `seafile_get_repo_list(_SearpcClient*, int, int, _GError**)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-server.cpp.o: in function `marshal_string__void(void*, json_t*, unsigned long*)': rpc-server.cpp:(.text+0x6f): undefined reference to `searpc_set_string_to_ret_object(json_t*, char*)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: rpc-server.cpp:(.text+0x7e): undefined reference to `searpc_marshal_set_ret_common(json_t*, unsigned long*, _GError*)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-server.cpp.o: in function `marshal_int__void(void*, json_t*, unsigned long*)': rpc-server.cpp:(.text+0xed): undefined reference to `searpc_set_int_to_ret_object(json_t*, long long)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: rpc-server.cpp:(.text+0xfc): undefined reference to `searpc_marshal_set_ret_common(json_t*, unsigned long*, _GError*)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-server.cpp.o: in function `register_marshals()': rpc-server.cpp:(.text+0x13d): undefined reference to `searpc_compute_signature(char const*, int, ...)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: rpc-server.cpp:(.text+0x14c): undefined reference to `searpc_server_register_marshal(char*, char* (*)(void*, json_t*, unsig ned long*))' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: rpc-server.cpp:(.text+0x15e): undefined reference to `searpc_compute_signature(char const*, int, ...)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: rpc-server.cpp:(.text+0x16d): undefined reference to `searpc_server_register_marshal(char*, char* (*)(void*, json_t*, unsig ned long*))' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: rpc-server.cpp:(.text+0x179): undefined reference to `searpc_compute_signature(char const*, int, ...)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-server.cpp.o: in function `(anonymous namespace)::AppletRpcClient::sendExitComman d()': rpc-server.cpp:(.text+0x1cd): undefined reference to `searpc_client_call__int(_SearpcClient*, char const*, _GError**, int, ...)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-server.cpp.o: in function `(anonymous namespace)::AppletRpcClient::sendActivateCo mmand()': rpc-server.cpp:(.text+0x22d): undefined reference to `searpc_client_call__int(_SearpcClient*, char const*, _GError**, int, ...)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-server.cpp.o: in function `marshal_int__string(void*, json_t*, unsigned long*)': rpc-server.cpp:(.text+0x2b9): undefined reference to `searpc_set_int_to_ret_object(json_t*, long long)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: rpc-server.cpp:(.text+0x2c8): undefined reference to `searpc_marshal_set_ret_common(json_t*, unsigned long*, _GError*)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-server.cpp.o: in function `(anonymous namespace)::AppletRpcClient::sendPingComman d(QString*)': rpc-server.cpp:(.text+0x325): undefined reference to `searpc_client_call__string(_SearpcClient*, char const*, _GError**, int, ...)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-server.cpp.o: in function `(anonymous namespace)::AppletRpcClient::sendOpenSeafil eUrlCommand(QUrl const&)': rpc-server.cpp:(.text+0x45a): undefined reference to `searpc_client_call__int(_SearpcClient*, char const*, _GError**, int, ...)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-server.cpp.o: in function `(anonymous namespace)::AppletRpcClient::connect()': rpc-server.cpp:(.text+0x659): undefined reference to `searpc_create_named_pipe_client(char const*)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: rpc-server.cpp:(.text+0x6c7): undefined reference to `searpc_named_pipe_client_connect(_SearpcNamedPipeClient*)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: rpc-server.cpp:(.text+0x6d9): undefined reference to `searpc_client_with_named_pipe_transport(_SearpcNamedPipeClient*, char const*)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: rpc-server.cpp:(.text+0x74b): undefined reference to `searpc_create_named_pipe_client(char const*)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: rpc-server.cpp:(.text+0x79c): undefined reference to `searpc_free_client_with_pipe_transport(_SearpcClient*)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-server.cpp.o: in function `SeafileAppletRpcServer::start()': rpc-server.cpp:(.text+0x82a): undefined reference to `searpc_server_init(void (*)())' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: rpc-server.cpp:(.text+0x832): undefined reference to `searpc_create_service(char const*)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: rpc-server.cpp:(.text+0x83e): undefined reference to `searpc_compute_signature(char const*, int, ...)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: rpc-server.cpp:(.text+0x857): undefined reference to `searpc_server_register_function(char const*, void*, char const*, char *)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: rpc-server.cpp:(.text+0x863): undefined reference to `searpc_compute_signature(char const*, int, ...)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: rpc-server.cpp:(.text+0x87c): undefined reference to `searpc_server_register_function(char const*, void*, char const*, char *)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: rpc-server.cpp:(.text+0x888): undefined reference to `searpc_compute_signature(char const*, int, ...)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: rpc-server.cpp:(.text+0x8a1): undefined reference to `searpc_server_register_function(char const*, void*, char const*, char *)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: rpc-server.cpp:(.text+0x8ba): undefined reference to `searpc_compute_signature(char const*, int, ...)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: rpc-server.cpp:(.text+0x8d6): undefined reference to `searpc_server_register_function(char const*, void*, char const*, char *)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: rpc-server.cpp:(.text+0x90c): undefined reference to `searpc_named_pipe_server_start(_SearpcNamedPipeServer*)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-server.cpp.o: in function `SeafileAppletRpcServer::SeafileAppletRpcServer()': rpc-server.cpp:(.text+0xb13): undefined reference to `searpc_create_named_pipe_server(char const*)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: rpc-server.cpp:(.text+0xc7f): undefined reference to `searpc_create_named_pipe_server(char const*)' /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-server.cpp.o: in function `register_marshals()': rpc-server.cpp:(.text+0x18f): undefined reference to `searpc_server_register_marshal(char*, char* (*)(void*, json_t*, unsigned long*))' collect2: error: ld returned 1 exit status make[2]: *** [CMakeFiles/seafile-applet.dir/build.make:4007: seafile-applet] Error 1 make[1]: *** [CMakeFiles/Makefile2:979: CMakeFiles/seafile-applet.dir/all] Error 2 make: *** [Makefile:136: all] Error 2 ```

And building against the latest libsearpc tag v3.2-latest does not fix this linking failure, but only reduces the number of errors:

``` [100%] Linking CXX executable seafile-applet /nix/store/m2vh2ny7bqpwij1gpmvl5gxj7y4dgr4f-binutils-2.38/bin/ld: CMakeFiles/seafile-applet.dir/src/rpc/rpc-client.cpp.o: in function `SeafileRpcClient::listLocalRepos(std::vector >*)': rpc-client.cpp:(.text+0x7332): undefined reference to `seafile_get_repo_list(_SearpcClient*, int, int, _GError**)' collect2: error: ld returned 1 exit status make[2]: *** [CMakeFiles/seafile-applet.dir/build.make:4007: seafile-applet] Error 1 make[1]: *** [CMakeFiles/Makefile2:979: CMakeFiles/seafile-applet.dir/all] Error 2 make: *** [Makefile:136: all] Error 2 ```

I allow myself the remark that from my experience, such -latest tags have been regularly retagged in seafile repos and are thus not suitable for packaging anyways.

jhonny-oliveira commented 1 year ago

Is there a workaround for the linking failure? I'm facing this issue in Ubuntu Jammy. In Kinetic the build is successful.

feiniks commented 1 year ago

Hello, when compiling the version after seafile client 8.0.7, please update your local libsearpc branch first to avoid link errors caused by libsearpc. In addition, before compiling the client, you need to compile and install the seafile daemon.