This repository has been archived by the owner on Jun 14, 2022. It is now read-only.
First alpha version in 3x branch
Pre-release
Pre-release
Removals
- Code cleanup. Removed not used, old and duplicate stuff to avoid confusion.
- Removed hardcoded Mbed TLS library.
- Removed hardcoded SQLite3 library.
- Removed useless logs. Were removed macro from the
PRINT_RETURN
family. - The original version of client, when some errors occurred with the database,
sent debug information to the pCloud's servers. This debug information
included psync library version, file name, line number, function name, and
the error message itself. This project isn't maintained by the pCloud's
employees, so this functionality has been removed. - Removed
finalize
command from commands mode as it was almost useless and
errors prone. For example, we were forced to hard terminate the program,
w/o response on socket request and this has always been regarded as a
communication error. To stop already running daemon just stop it in the
same way as you started it - using standard system tools. - Removed never used and no longer required
PSYNC_CRYPTO_*_NOT_SUPPORTED
defines.
Features
- Build project using single CMake command only.
- Introduced the CI process through GitHub Actions.
- Provided systemd integration on Linux platforms.
- Install project dependencies using Conan.
- Provided ability to use custom installation path using
CMAKE_INSTALL_PREFIX
. - Provide ability to enable maintainer logs using
log.c
library. - Added possibility to use EU region servers.
- Provided ability to generate the API documentation.
- Provided a brand-new libpsync API to get and set device information used
during the pCloud API calls. - Reworked commands mode to provide better user experience.
- Added
-V
,--version
program options to display program version information. - Added
--dumpversion
program option to print the version of the client and
don't do anything else. - Added
--vernum
program option to print the version of the client as integer
and quit.
Bugfix
- Fixed typos and misspellings in the documentation.
- Fixed redefinition of some macro.
- Added return result to functions where it was skipped by mistake.
- Fixed incorrect function signatures detected by the static analyzer.
- Fixed device name by removing extra characters from output
lsb_release
on some systems. For example double quotes in"Gentoo Base System release 2.7"
- Fixed reading response message while processing commands leading to a segfault.
- The previous version of the client output the user's crypto password in cleartext
to the standard output. This behavior has been changed. - Previously, when trying to start a crypto session with an incorrect password, the
client reported success, although the crypto session didn't start.
This has been fixed. - Previously, when trying to stop not started crypto session, client reported
success. This has been fixed.
Changes
- Improved documentation.
- CMake < 3.12 is no longer supported.
- Reorganized project structure to follow modern C/C++ projects structure.
- Instructed the compiler to use
-std=gnu99
when this is needed. - Rename
pcloudcc_lib
static library to sharedlibpsync
. - Bumped
libpsync
soversion from 1 to 2. - Bumped Mbed TLS from 1.3.10 to 2.25.0.
- Bumped SQLite3 from 3.12.0 to 3.36.0.
- Replaced deprecated
readdir_r()
function withreaddir()
. - Replaced deprecated semaphores implementation on macOS with GCD semaphores.
- Updated macOS versions list to identity caller on API calls.
- Move Debian control files to the
tools
directory. - Reworked creation of overlay socket on Linux. Now the client will try to
create a socket inXDG_RUNTIME_DIR
orTMPDIR
. The/tmp
will be used
if there are no such environment variables. - Provided ability to run tests (although there are still few of them, there
is a technical possibility). - The default mount point on macOS where drive to be mounted is "pCloud Drive" now.
psync_check_result()
now is function, not macro.- Reduce code duplication by merging
poverlay-linux.c
andpoverlay-macos.c
intopoverlay-posix.c
. - Moved
PSYNC_CRYPTO_*
defines frompsynclib.h
topcloudcrypto.h
. - Replace
boost::program_options
by more lightweight and specialized libraryCLI11
. - Renamed
--commands_only
CLI option to--commands-only
. - Renamed
message
overlay data type tooverlay_message_t
. - Renamed
get_answer_to_request()
topsync_overlay_process_request()
. - Renamed
psync_add_overlay_callback()
topsync_overlay_add_callback()
. - Split
poverlay.h
into public (pcloudcc/psync/overlay.h
) and private part.