pcloudcom / console-client

432 stars 131 forks source link

Trouble compiling in Fedora #191

Open asdf23 opened 4 months ago

asdf23 commented 4 months ago

I'm not sure if this is related to Fedora but here are the steps I've taken and result. It's failing on make fs

Fedora 40

sudo dnf groupinstall "Development Tools" "Development Libraries"
sudo dnf install cmake zlib-devel boost-devel boost-program-options-devel libpthread-stubs-devel fuse-devel systemd-devel boost-program-options boost-static compat-libpthread-nonshared fuse @development-tools git

git clone https://github.com/pcloudcom/console-client.git ./console-client/
cd ./console-client/pCloudCC/
cd lib/pclsync/
make clean
make fs

Fails here with this error:

# make fs
gcc -Wall -Wpointer-arith -O2 -g -fno-stack-protector -fomit-frame-pointer -mtune=core2 -I../sqlite -DP_ELECTRON -fPIC -DP_OS_LINUX -D_FILE_OFFSET_BITS=64 -DP_SSL_MBEDTLS -I../mbedtls/include   -c -o pcompat.o pcompat.c
pcompat.c: In function ‘psync_list_dir’:
pcompat.c:2519:3: warning: ‘readdir_r’ is deprecated [-Wdeprecated-declarations]
 2519 |   while (!readdir_r(dh, entry, &de) && de)
      |   ^~~~~
In file included from /usr/include/features.h:503,
                 from /usr/include/pthread.h:21,
                 from pcompat.c:28:
/usr/include/dirent.h:191:12: note: declared here
  191 | extern int __REDIRECT (readdir_r,
      |            ^~~~~~~~~~
pcompat.c: In function ‘psync_list_dir_fast’:
pcompat.c:2613:3: warning: ‘readdir_r’ is deprecated [-Wdeprecated-declarations]
 2613 |   while (!readdir_r(dh, entry, &de) && de)
      |   ^~~~~
/usr/include/dirent.h:191:12: note: declared here
  191 | extern int __REDIRECT (readdir_r,
      |            ^~~~~~~~~~
pcompat.c: In function ‘psync_deviceid’:
pcompat.c:3506:5: warning: ‘readdir_r’ is deprecated [-Wdeprecated-declarations]
 3506 |     while (!readdir_r(dh, &entry, &de) && de)
      |     ^~~~~
/usr/include/dirent.h:191:12: note: declared here
  191 | extern int __REDIRECT (readdir_r,
      |            ^~~~~~~~~~
In file included from pcompat.c:37:
pssl.h: At top level:
pssl.h:74:24: warning: ‘rsa_decr_mutex’ defined but not used [-Wunused-variable]
   74 | static pthread_mutex_t rsa_decr_mutex = PTHREAD_MUTEX_INITIALIZER;
      |                        ^~~~~~~~~~~~~~
gcc -Wall -Wpointer-arith -O2 -g -fno-stack-protector -fomit-frame-pointer -mtune=core2 -I../sqlite -DP_ELECTRON -fPIC -DP_OS_LINUX -D_FILE_OFFSET_BITS=64 -DP_SSL_MBEDTLS -I../mbedtls/include   -c -o psynclib.o psynclib.c
psynclib.c: In function ‘psync_check_new_version’:
psynclib.c:1730:12: warning: unused variable ‘params’ [-Wunused-variable]
 1730 |   binparam params[]={P_STR("os", os), P_NUM("version", currentversion)};
      |            ^~~~~~
In file included from psynclib.c:29:
psynclib.c: In function ‘psync_cache_links_all’:
psynclib.c:2324:34: warning: format ‘%u’ expects argument of type ‘unsigned int’, but argument 6 has type ‘time_t’ {aka ‘long int’} [-Wformat=]
 2324 |                 debug(D_WARNING, "refreshing link too early %u", (unsigned)psync_current_time - links_last_refresh_time);
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                                                                               |
      |                                                                                               time_t {aka long int}
plibs.h:67:108: note: in definition of macro ‘debug’
   67 | #define debug(level, ...) do {if (level<=DEBUG_LEVEL) psync_debug(__FILE__, __FUNCTION__, __LINE__, level, __VA_ARGS__);} while (0)
      |                                                                                                            ^~~~~~~~~~~
psynclib.c:2324:62: note: format string is defined here
 2324 |                 debug(D_WARNING, "refreshing link too early %u", (unsigned)psync_current_time - links_last_refresh_time);
      |                                                             ~^
      |                                                              |
      |                                                              unsigned int
      |                                                             %lu
psynclib.c: In function ‘psync_get_promo’:
psynclib.c:2467:19: warning: format ‘%llu’ expects argument of type ‘long long unsigned int’, but argument 6 has type ‘uint64_t’ {aka ‘long unsigned int’} [-Wformat=]
 2467 |   debug(D_NOTICE, "Promo window Width: [%llu]", *width);
      |                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~  ~~~~~~
      |                                                 |
      |                                                 uint64_t {aka long unsigned int}
plibs.h:67:108: note: in definition of macro ‘debug’
   67 | #define debug(level, ...) do {if (level<=DEBUG_LEVEL) psync_debug(__FILE__, __FUNCTION__, __LINE__, level, __VA_ARGS__);} while (0)
      |                                                                                                            ^~~~~~~~~~~
psynclib.c:2467:44: note: format string is defined here
 2467 |   debug(D_NOTICE, "Promo window Width: [%llu]", *width);
      |                                         ~~~^
      |                                            |
      |                                            long long unsigned int
      |                                         %lu
psynclib.c:2478:19: warning: format ‘%llu’ expects argument of type ‘long long unsigned int’, but argument 6 has type ‘uint64_t’ {aka ‘long unsigned int’} [-Wformat=]
 2478 |   debug(D_NOTICE, "Promo window Height: [%llu]", *height);
      |                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~  ~~~~~~~
      |                                                  |
      |                                                  uint64_t {aka long unsigned int}
plibs.h:67:108: note: in definition of macro ‘debug’
   67 | #define debug(level, ...) do {if (level<=DEBUG_LEVEL) psync_debug(__FILE__, __FUNCTION__, __LINE__, level, __VA_ARGS__);} while (0)
      |                                                                                                            ^~~~~~~~~~~
psynclib.c:2478:45: note: format string is defined here
 2478 |   debug(D_NOTICE, "Promo window Height: [%llu]", *height);
      |                                          ~~~^
      |                                             |
      |                                             long long unsigned int
      |                                          %lu
psynclib.c: In function ‘psync_is_folder_syncable’:
psynclib.c:2588:17: warning: passing argument 1 of ‘parse_os_path’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
 2588 |   parse_os_path(ignorePaths, &folders, DELIM_SEMICOLON, 0);
      |                 ^~~~~~~~~~~
In file included from psynclib.h:40,
                 from plibs.h:33:
ptools.h:89:26: note: expected ‘char *’ but argument is of type ‘const char *’
   89 | void parse_os_path(char* path, folderPath* folders, char* delim, int mode);
      |                    ~~~~~~^~~~
ptools.h:42:25: error: passing argument 3 of ‘parse_os_path’ makes pointer from integer without a cast [-Wint-conversion]
   42 | #define DELIM_SEMICOLON ';'
      |                         ^~~
      |                         |
      |                         int
psynclib.c:2588:40: note: in expansion of macro ‘DELIM_SEMICOLON’
 2588 |   parse_os_path(ignorePaths, &folders, DELIM_SEMICOLON, 0);
      |                                        ^~~~~~~~~~~~~~~
ptools.h:89:59: note: expected ‘char *’ but argument is of type ‘int’
   89 | void parse_os_path(char* path, folderPath* folders, char* delim, int mode);
      |                                                     ~~~~~~^~~~~
psynclib.c: In function ‘psync_get_syncs_bytype’:
psynclib.c:2605:30: warning: passing argument 1 of ‘psync_list_get_list’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
 2605 |   return psync_list_get_list(syncType);
      |                              ^~~~~~~~
In file included from psynclib.c:39:
pfolder.h:59:48: note: expected ‘char *’ but argument is of type ‘const char *’
   59 | psync_folder_list_t* psync_list_get_list(char* syncTypes);
      |                                          ~~~~~~^~~~~~~~~
psynclib.c: In function ‘create_bup_mach_folder’:
psynclib.c:2646:18: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
 2646 |     rootFolIdObj = psync_find_result(retData, "folderid", PARAM_NUM);
      |                  ^
psynclib.c: In function ‘psync_create_backup’:
ptools.h:49:20: error: passing argument 3 of ‘parse_os_path’ makes pointer from integer without a cast [-Wint-conversion]
   49 | #define DELIM_DIR  '/'
      |                    ^~~
      |                    |
      |                    int
psynclib.c:2689:33: note: in expansion of macro ‘DELIM_DIR’
 2689 |   parse_os_path(path, &folders, DELIM_DIR, 1);
      |                                 ^~~~~~~~~
ptools.h:89:59: note: expected ‘char *’ but argument is of type ‘int’
   89 | void parse_os_path(char* path, folderPath* folders, char* delim, int mode);
      |                                                     ~~~~~~^~~~~
psynclib.c:2730:11: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
 2730 |     folId = psync_find_result(retData, FOLDER_ID, PARAM_NUM);
      |           ^
psynclib.c: In function ‘psync_delete_backup’:
psynclib.c:2772:20: warning: format ‘%lld’ expects argument of type ‘long long int’, but argument 6 has type ‘psync_syncid_t’ {aka ‘unsigned int’} [-Wformat=]
 2772 |     debug(D_ERROR, "Failed to find folder id for syncId: [%lld]", syncId);
      |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  ~~~~~~
      |                                                                   |
      |                                                                   psync_syncid_t {aka unsigned int}
plibs.h:67:108: note: in definition of macro ‘debug’
   67 | #define debug(level, ...) do {if (level<=DEBUG_LEVEL) psync_debug(__FILE__, __FUNCTION__, __LINE__, level, __VA_ARGS__);} while (0)
      |                                                                                                            ^~~~~~~~~~~
psynclib.c:2772:62: note: format string is defined here
 2772 |     debug(D_ERROR, "Failed to find folder id for syncId: [%lld]", syncId);
      |                                                           ~~~^
      |                                                              |
      |                                                              long long int
      |                                                           %d
psynclib.c: In function ‘psync_async_delete_sync’:
psynclib.c:2870:27: error: initialization of ‘psync_syncid_t’ {aka ‘unsigned int’} from ‘psync_syncid_t *’ {aka ‘unsigned int *’} makes integer from pointer without a cast [-Wint-conversion]
 2870 |   psync_syncid_t syncId = (psync_syncid_t*)ptr;
      |                           ^
psynclib.c: In function ‘psync_async_ui_callback’:
psynclib.c:2883:17: error: initialization of ‘int’ from ‘int *’ makes integer from pointer without a cast [-Wint-conversion]
 2883 |   int eventId = (int*)ptr;
      |                 ^
psynclib.c: In function ‘psync_delete_sync_by_folderid’:
psynclib.c:2913:10: error: assignment to ‘psync_syncid_t *’ {aka ‘unsigned int *’} from ‘uint64_t’ {aka ‘long unsigned int’} makes pointer from integer without a cast [-Wint-conversion]
 2913 |   syncId = row[0];
      |          ^
psynclib.c: In function ‘psync_delete_backup_device’:
psynclib.c:2928:19: warning: format ‘%lld’ expects argument of type ‘long long int’, but argument 6 has type ‘psync_folderid_t’ {aka ‘long unsigned int’} [-Wformat=]
 2928 |   debug(D_NOTICE, "Check if the local device was stopped. Id: [%lld]", fId);
      |                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  ~~~
      |                                                                        |
      |                                                                        psync_folderid_t {aka long unsigned int}
plibs.h:67:108: note: in definition of macro ‘debug’
   67 | #define debug(level, ...) do {if (level<=DEBUG_LEVEL) psync_debug(__FILE__, __FUNCTION__, __LINE__, level, __VA_ARGS__);} while (0)
      |                                                                                                            ^~~~~~~~~~~
psynclib.c:2928:67: note: format string is defined here
 2928 |   debug(D_NOTICE, "Check if the local device was stopped. Id: [%lld]", fId);
      |                                                                ~~~^
      |                                                                   |
      |                                                                   long long int
      |                                                                %ld
psynclib.c:2940:21: warning: format ‘%lld’ expects argument of type ‘long long int’, but argument 6 has type ‘psync_folderid_t’ {aka ‘long unsigned int’} [-Wformat=]
 2940 |     debug(D_NOTICE, "Stop for different device. Id: [%lld]", bFId);
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  ~~~~
      |                                                              |
      |                                                              psync_folderid_t {aka long unsigned int}
plibs.h:67:108: note: in definition of macro ‘debug’
   67 | #define debug(level, ...) do {if (level<=DEBUG_LEVEL) psync_debug(__FILE__, __FUNCTION__, __LINE__, level, __VA_ARGS__);} while (0)
      |                                                                                                            ^~~~~~~~~~~
psynclib.c:2940:57: note: format string is defined here
 2940 |     debug(D_NOTICE, "Stop for different device. Id: [%lld]", bFId);
      |                                                      ~~~^
      |                                                         |
      |                                                         long long int
      |                                                      %ld
In file included from psynclib.c:35:
pssl.h: At top level:
pssl.h:74:24: warning: ‘rsa_decr_mutex’ defined but not used [-Wunused-variable]
   74 | static pthread_mutex_t rsa_decr_mutex = PTHREAD_MUTEX_INITIALIZER;
      |                        ^~~~~~~~~~~~~~
make: *** [<builtin>: psynclib.o] Error 1

** updated for missing library

asdf23 commented 3 months ago
sudo dnf install cmake zlib-devel boost-devel fuse-devel systemd-devel boost-program-options boost-static compat-libpthread-nonshared fuse @development-tools git

in Fedora 38 I used the above

asdf23 commented 3 months ago

(updated the dnf install commands)