From 2670eef96e0a5b9b209699dc5334d56349f20ff9 Mon Sep 17 00:00:00 2001 From: Denis Corbin Date: Sun, 23 Jun 2024 16:14:44 +0200 Subject: [PATCH 01/14] fixing English in message --- src/libdar/crypto_asym.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libdar/crypto_asym.cpp b/src/libdar/crypto_asym.cpp index 208eb015..6bb2d65d 100644 --- a/src/libdar/crypto_asym.cpp +++ b/src/libdar/crypto_asym.cpp @@ -325,9 +325,9 @@ namespace libdar if(!found) { if(signatories) - get_ui().printf(gettext("No valid signing key could be find for %S"), &(recipients_email[i])); + get_ui().printf(gettext("No valid signing key could be found for %S"), &(recipients_email[i])); else - get_ui().printf(gettext("No valid encryption key could be find for %S"), &(recipients_email[i])); + get_ui().printf(gettext("No valid encryption key could be found for %S"), &(recipients_email[i])); get_ui().pause("Do you want to continue without this recipient?"); ++offset; } From ef23d2e508a42d8d1e4f985e3fc67389c86ea7c6 Mon Sep 17 00:00:00 2001 From: Denis Corbin Date: Sun, 23 Jun 2024 20:41:33 +0200 Subject: [PATCH 02/14] when comparing backup to its restored data avoiding to compare fsa in the check routine this is because restoring data leads to a different birth time and this the "make check" was failing when on filesystem where birth time was supported --- src/check/main.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/check/main.sh b/src/check/main.sh index f92b67f6..d904c0e4 100755 --- a/src/check/main.sh +++ b/src/check/main.sh @@ -267,6 +267,8 @@ listing: testing: diffing: +--fsa-scope none +# because of birth date change when comparing with restored data EOF From 1d0d41c549e5ea4d2999cfb76047338f604d3cca Mon Sep 17 00:00:00 2001 From: Denis Corbin Date: Mon, 24 Jun 2024 08:03:39 +0200 Subject: [PATCH 03/14] fixing typo on main.sh (part of "make check" routines) --- src/check/main.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/check/main.sh b/src/check/main.sh index d904c0e4..42a9ba32 100755 --- a/src/check/main.sh +++ b/src/check/main.sh @@ -266,7 +266,7 @@ listing: testing: -diffing: +diff: --fsa-scope none # because of birth date change when comparing with restored data From d4a46ae6c90ca331b175a0fef2ad65e1e33c1f3f Mon Sep 17 00:00:00 2001 From: Denis Corbin Date: Mon, 24 Jun 2024 08:08:40 +0200 Subject: [PATCH 04/14] avoiding stupid compiler warning and explicitely specifying order of boolean expression --- src/libdar/path.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libdar/path.cpp b/src/libdar/path.cpp index 473736d0..a78f291f 100644 --- a/src/libdar/path.cpp +++ b/src/libdar/path.cpp @@ -242,8 +242,8 @@ namespace libdar if(me.size() >= you.size()) if(strncmp(me.c_str(), you.c_str(), you.size()) == 0) if(me.size() > you.size()) - return you.size() > 1 && me[you.size()] == '/' - || you.size() == 1 && you[0] == '/'; + return (you.size() > 1 && me[you.size()] == '/') + || (you.size() == 1 && you[0] == '/'); else // thus, me.size() == you.size(), thus I'm a subdir of myself return true; else // path differs in the common length part, cannot be a subdir of "you" From 70d6bff0c5537b2103149079f8173fc2bd3acfbb Mon Sep 17 00:00:00 2001 From: Denis Corbin Date: Mon, 24 Jun 2024 13:32:28 +0200 Subject: [PATCH 05/14] fixing display bug about FSA status when unchanged since backup of reference --- src/libdar/cat_entree.cpp | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/libdar/cat_entree.cpp b/src/libdar/cat_entree.cpp index b3641d5a..733bbd2d 100644 --- a/src/libdar/cat_entree.cpp +++ b/src/libdar/cat_entree.cpp @@ -369,14 +369,19 @@ namespace libdar } } ent.set_fsa_status(tmp_inode->fsa_get_saved_status()); - if(tmp_inode->fsa_get_saved_status() == fsa_saved_status::full) + if(tmp_inode->fsa_get_saved_status() == fsa_saved_status::full + || tmp_inode->fsa_get_saved_status() == fsa_saved_status::partial) { - infinint tmp; - - if(tmp_inode->fsa_get_offset(tmp)) - ent.set_archive_offset_for_FSA(tmp); - ent.set_storage_size_for_FSA(tmp_inode->fsa_get_size()); ent.set_fsa_scope(tmp_inode->fsa_get_families()); + + if(tmp_inode->fsa_get_saved_status() == fsa_saved_status::full) + { + infinint tmp; + + if(tmp_inode->fsa_get_offset(tmp)) + ent.set_archive_offset_for_FSA(tmp); + ent.set_storage_size_for_FSA(tmp_inode->fsa_get_size()); + } } } From 0597b8485673fe92be0e3ddf6b35f6b33798ee79 Mon Sep 17 00:00:00 2001 From: Denis Corbin Date: Mon, 24 Jun 2024 13:33:05 +0200 Subject: [PATCH 06/14] fixed spacing in code --- src/libdar/cat_inode.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/libdar/cat_inode.cpp b/src/libdar/cat_inode.cpp index 78ecb0f2..669d19c1 100644 --- a/src/libdar/cat_inode.cpp +++ b/src/libdar/cat_inode.cpp @@ -266,13 +266,13 @@ namespace libdar switch(fsa_flag) { case INODE_FLAG_FSA_NONE: - fsa_saved = fsa_saved_status::none; + fsa_saved = fsa_saved_status::none; break; case INODE_FLAG_FSA_PART: - fsa_saved = fsa_saved_status::partial; + fsa_saved = fsa_saved_status::partial; break; case INODE_FLAG_FSA_FULL: - fsa_saved = fsa_saved_status::full; + fsa_saved = fsa_saved_status::full; break; default: throw Erange("cat_inode::cat_inode", gettext("badly structured inode: unknown inode flag for FSA")); From 88513c723d7641a4b9b31729f3561a20da293454 Mon Sep 17 00:00:00 2001 From: Denis Corbin Date: Mon, 24 Jun 2024 13:36:01 +0200 Subject: [PATCH 07/14] updating Changelog --- src/build/ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/src/build/ChangeLog b/src/build/ChangeLog index 078b5547..add0f696 100644 --- a/src/build/ChangeLog +++ b/src/build/ChangeLog @@ -7,6 +7,7 @@ from 2.7.14 to 2.7.15 - removing obsolete call to gcry_control(GCRYCTL_ENABLE_M_GUARD) while initializing libgcrypt. This lead to libgcrypt initialization to fail with libgcrypt 1.11 and more recent versions. +- fixed display bug about present but unsaved FSA status while listing from 2.7.13 to 2.7.14 - adding safe guard in fichier_libcurl destructor to verify all data have From 1fff3626fe8ba2b3facac690087b5bf359a3f758 Mon Sep 17 00:00:00 2001 From: Denis Corbin Date: Mon, 24 Jun 2024 17:27:02 +0200 Subject: [PATCH 08/14] fixing bug met when comparing inode with FSA while "--fsa-scope none" is set --- src/libdar/cat_inode.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/libdar/cat_inode.cpp b/src/libdar/cat_inode.cpp index 669d19c1..7a1fdde1 100644 --- a/src/libdar/cat_inode.cpp +++ b/src/libdar/cat_inode.cpp @@ -492,6 +492,9 @@ namespace libdar { if(scope.size() > 0) throw Erange("cat_inode::compare", gettext("No Filesystem Specific Attribute to compare with")); + + // this is not perfect, the "other" could have no FSA due to the non empty scope excluding only + // the valid FSAs. A more specific comparison would worth it... } break; case fsa_saved_status::partial: @@ -502,7 +505,13 @@ namespace libdar throw Erange("cat_inode::compare", gettext("inode last change date (ctime) greater, FSA might be different")); } else - throw Erange("cat_inode::compare", gettext("Filesystem Specific Attribute are missing")); + { + if(scope.size() > 0) + throw Erange("cat_inode::compare", gettext("Filesystem Specific Attribute are missing")); + + // this is not perfect, the "other" could have no FSA due to the non empty scope excluding only + // the valid FSAs. A more specific comparison would worth it... + } break; case fsa_saved_status::none: break; // nothing to check From 5019720562f076a62c49e146445e4444520b2dd7 Mon Sep 17 00:00:00 2001 From: Denis Corbin Date: Thu, 27 Jun 2024 21:48:07 +0200 Subject: [PATCH 09/14] adding missing space in error message --- src/libdar/fichier_libcurl.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libdar/fichier_libcurl.cpp b/src/libdar/fichier_libcurl.cpp index 1040295b..4472e69f 100644 --- a/src/libdar/fichier_libcurl.cpp +++ b/src/libdar/fichier_libcurl.cpp @@ -161,7 +161,7 @@ namespace libdar } catch(Egeneric & e) { - e.prepend_message("Error while reading file size on a remote repository"); + e.prepend_message("Error while reading file size on a remote repository: "); throw; } } From 6a96a21dc21994e2bd27fb5a87ec9c74946b57ae Mon Sep 17 00:00:00 2001 From: Denis Corbin Date: Thu, 27 Jun 2024 21:49:06 +0200 Subject: [PATCH 10/14] set default libssh to libssh (which supports more ciphers than libssh2) in dar_static builder script --- misc/dar_static_builder_with_musl_voidlinux.bash | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/misc/dar_static_builder_with_musl_voidlinux.bash b/misc/dar_static_builder_with_musl_voidlinux.bash index 942c3adc..a3823586 100755 --- a/misc/dar_static_builder_with_musl_voidlinux.bash +++ b/misc/dar_static_builder_with_musl_voidlinux.bash @@ -33,8 +33,8 @@ LIBSSH2_VERSION=1.10.0 # define whether to use libssh or libssh2 # note that both libraries do support ssh version 2 protocol, # libssh even supports more recent ciphers than libssh2 -# LIBSSH=1 -LIBSSH=2 +LIBSSH=1 +# LIBSSH=2 # wget options need for gnutls website that does not provide all chain of trust in its certificate From 5a2e09288d4a497bf2314fb7f5f0abbc895272bb Mon Sep 17 00:00:00 2001 From: Denis Corbin Date: Sat, 29 Jun 2024 12:09:32 +0200 Subject: [PATCH 11/14] adding dash for clarity in generated backup name by make check --- src/check/routine.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/check/routine.sh b/src/check/routine.sh index bde8df2f..c8c399a9 100755 --- a/src/check/routine.sh +++ b/src/check/routine.sh @@ -625,9 +625,9 @@ fi # I1 - SFTP repository # if echo $* | grep "I1" > /dev/null ; then -GO "I1-1" 0 $ROUTINE_DEBUG $DAR -N -w -c $DAR_SFTP_REPO/$prefix$full -R $src "-@" $prefix$catf_fly -B $OPT -GO "I1-2" 0 $ROUTINE_DEBUG $DAR -N -l $DAR_SFTP_REPO/$prefix$full -B $OPT -GO "I1-3" 0 $ROUTINE_DEBUG $DAR -N -t $DAR_SFTP_REPO/$prefix$full -B $OPT +GO "I1-1" 0 $ROUTINE_DEBUG $DAR -N -w -c $DAR_SFTP_REPO/$prefix-$full -R $src "-@" $prefix$catf_fly -B $OPT +GO "I1-2" 0 $ROUTINE_DEBUG $DAR -N -l $DAR_SFTP_REPO/$prefix-$full -B $OPT +GO "I1-3" 0 $ROUTINE_DEBUG $DAR -N -t $DAR_SFTP_REPO/$prefix-$full -B $OPT ../sftp_mdelete "$DAR_SFTP_REPO" "$prefix*" fi @@ -635,9 +635,9 @@ fi # I2 - FTP repository # if echo $* | grep "I2" > /dev/null ; then -GO "I2-1" 0 $ROUTINE_DEBUG $DAR -N -w -c $DAR_FTP_REPO/$prefix$full -R $src "-@" $prefix$catf_fly -B $OPT -GO "I2-2" 0 $ROUTINE_DEBUG $DAR -N -l $DAR_FTP_REPO/$prefix$full -B $OPT -GO "I2-3" 0 $ROUTINE_DEBUG $DAR -N -t $DAR_FTP_REPO/$prefix$full -B $OPT +GO "I2-1" 0 $ROUTINE_DEBUG $DAR -N -w -c $DAR_FTP_REPO/$prefix-$full -R $src "-@" $prefix$catf_fly -B $OPT +GO "I2-2" 0 $ROUTINE_DEBUG $DAR -N -l $DAR_FTP_REPO/$prefix-$full -B $OPT +GO "I2-3" 0 $ROUTINE_DEBUG $DAR -N -t $DAR_FTP_REPO/$prefix-$full -B $OPT ../ftp_mdelete "$DAR_FTP_REPO" "$prefix*" fi ### From 40c8a15090e00c736d2da29de991463c4f90c76e Mon Sep 17 00:00:00 2001 From: Denis Corbin Date: Sat, 29 Jun 2024 16:36:37 +0200 Subject: [PATCH 12/14] fixing problem with new version of libcurl with sftp protocol and recent libcurl (> 0.74.0) libdar get into a dead-lock condition at the end of the slice upload and the upload never ended. --- src/libdar/fichier_libcurl.cpp | 36 ++++++++++++++++++++++++++++++---- src/libdar/fichier_libcurl.hpp | 1 + 2 files changed, 33 insertions(+), 4 deletions(-) diff --git a/src/libdar/fichier_libcurl.cpp b/src/libdar/fichier_libcurl.cpp index 4472e69f..2037cea1 100644 --- a/src/libdar/fichier_libcurl.cpp +++ b/src/libdar/fichier_libcurl.cpp @@ -51,6 +51,7 @@ namespace libdar end_data_mode(false), sub_is_dying(false), sync_write_asked(false), + weof(false), ehandle(handle), metadatamode(false), current_offset(0), @@ -506,6 +507,7 @@ namespace libdar void fichier_libcurl::initialize_subthread() { sub_is_dying = false; + weof = false; synchronize.wait(); // release calling thread as we, as child thread, do now exist } @@ -797,10 +799,30 @@ namespace libdar if(me == nullptr) throw SRC_BUG; + bool fetch_block = !me->weof || me->sync_write_asked; + // with libcurl 7.74.0 and below, returning zero + // bytes was properly addressed by libcurl as an EOF + // and no more call to read_data_callback was "performed". + // But with libcurl 7.88.1 read_data_callback() was called + // again at least once after that, which lead fichier_libcurl + // main thread hanging forever for curl_perform to end + // because read_data_callback() was pending to receive + // data from interthread pipe. To avoid that having the ending + // of the subthread involving external software (libcurl) which + // somehow changed without notice nor documentation change, we + // add the weof boolean variable to avoid fetching from interthread + // in that context. + do { just_synced = false; - me->interthread.fetch(ptr, ptr_size); + if(fetch_block) + me->interthread.fetch(ptr, ptr_size); + else // emulate an the fetching of a zero length block + { + ptr_size = 0; + ptr = bufptr; // we will copy 0 bytes from bufptr to bufptr + } // note: if ptr_size is zero // libcurl will assume EOF and stop @@ -809,7 +831,8 @@ namespace libdar if(me->sync_write_asked && ptr_size == 0) { me->sync_write_asked = false; - me->interthread.fetch_recycle(ptr); + if(fetch_block) + me->interthread.fetch_recycle(ptr); me->synchronize.wait(); just_synced = true; } @@ -819,7 +842,8 @@ namespace libdar if(ptr_size <= room) { memcpy(bufptr, ptr, ptr_size); - me->interthread.fetch_recycle(ptr); + if(fetch_block) + me->interthread.fetch_recycle(ptr); ret = ptr_size; } else @@ -827,10 +851,14 @@ namespace libdar memcpy(bufptr, ptr, room); ptr_size -= room; memmove(ptr, ptr + room, ptr_size); - me->interthread.fetch_push_back(ptr, ptr_size); + if(fetch_block) + me->interthread.fetch_push_back(ptr, ptr_size); ret = room; } + if(fetch_block && ptr_size == 0 && !(me->sync_write_asked)) + me->weof = true; + return ret; } diff --git a/src/libdar/fichier_libcurl.hpp b/src/libdar/fichier_libcurl.hpp index 228a8d84..b0d54dda 100644 --- a/src/libdar/fichier_libcurl.hpp +++ b/src/libdar/fichier_libcurl.hpp @@ -155,6 +155,7 @@ namespace libdar bool end_data_mode; ///< true if subthread has been requested to end bool sub_is_dying; ///< is set by subthread when about to end bool sync_write_asked; ///< ask subthread to use 'synchronize' tell all data has been written + bool weof; ///< whether write EOF has been signaled to libcurl std::shared_ptr ehandle; ///< easy handle (wrapped in C++ object) that we modify when necessary bool metadatamode; ///< wether we are acting on metadata rather than file's data infinint current_offset; ///< current offset we are reading / writing at From 26ce88194a9b6a88258996901fb881aeeb4e073a Mon Sep 17 00:00:00 2001 From: Denis Corbin Date: Sat, 29 Jun 2024 17:05:39 +0200 Subject: [PATCH 13/14] updating Changelog --- src/build/ChangeLog | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/build/ChangeLog b/src/build/ChangeLog index add0f696..7b1e9212 100644 --- a/src/build/ChangeLog +++ b/src/build/ChangeLog @@ -8,6 +8,9 @@ from 2.7.14 to 2.7.15 initializing libgcrypt. This lead to libgcrypt initialization to fail with libgcrypt 1.11 and more recent versions. - fixed display bug about present but unsaved FSA status while listing +- fixed dead-lock condition in libdar when used with libcurl > 0.74.0 at + the end of closing sftp session (undocumented changed behavior in + libcurl). from 2.7.13 to 2.7.14 - adding safe guard in fichier_libcurl destructor to verify all data have From d63ba71bf7e401fca80f5f7e357d13c26bdb82c5 Mon Sep 17 00:00:00 2001 From: Denis Corbin Date: Sat, 29 Jun 2024 17:32:27 +0200 Subject: [PATCH 14/14] getting ready for release 2.7.15 --- doc/Notes.html | 13 ++++++- man/dar.1 | 2 +- po/dar.pot | 67 ++++++++++++++++------------------- po/fr.po | 72 +++++++++++++++++++------------------- po/sv.po | 69 ++++++++++++++++++------------------ src/build/ChangeLog | 13 +++++++ src/build/configure.ac | 2 +- src/libdar/get_version.hpp | 2 +- src/libdar/libdar5.hpp | 2 +- 9 files changed, 130 insertions(+), 112 deletions(-) diff --git a/doc/Notes.html b/doc/Notes.html index 4af4a09e..de075227 100644 --- a/doc/Notes.html +++ b/doc/Notes.html @@ -2830,7 +2830,18 @@

Cross reference matrix

1.3.0 1.2.2 - + + June 6th, 2024 + 2.7.15 + 11.3 + 06 + 6.7.3 + 1.7.0 + 1.6.0 + 1.9.0 + 1.3.0 + 1.2.2 + diff --git a/man/dar.1 b/man/dar.1 index b20a9468..14d30ae5 100644 --- a/man/dar.1 +++ b/man/dar.1 @@ -1,4 +1,4 @@ -.TH DAR 1 "March 23rd, 2024" +.TH DAR 1 "June 6th, 2024" .UC 8 .SH NAME dar \- creates, tests, lists, extracts, compares, merges, isolates, repairs dar archives diff --git a/po/dar.pot b/po/dar.pot index 4d362500..a843d2f8 100644 --- a/po/dar.pot +++ b/po/dar.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: dar 2.7.15.RC2\n" +"Project-Id-Version: dar 2.7.15\n" "Report-Msgid-Bugs-To: https://github.com/Edrusb/DAR/issues\n" -"POT-Creation-Date: 2024-06-11 17:58+0200\n" +"POT-Creation-Date: 2024-06-29 17:30+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -2721,12 +2721,12 @@ msgstr "" #: src/libdar/crypto_asym.cpp:328 #, c-format -msgid "No valid signing key could be find for %S" +msgid "No valid signing key could be found for %S" msgstr "" #: src/libdar/crypto_asym.cpp:330 #, c-format -msgid "No valid encryption key could be find for %S" +msgid "No valid encryption key could be found for %S" msgstr "" #: src/libdar/crypto_asym.cpp:341 @@ -6035,29 +6035,29 @@ msgstr "" msgid "No Filesystem Specific Attribute to compare with" msgstr "" -#: src/libdar/cat_inode.cpp:502 +#: src/libdar/cat_inode.cpp:505 msgid "inode last change date (ctime) greater, FSA might be different" msgstr "" -#: src/libdar/cat_inode.cpp:505 +#: src/libdar/cat_inode.cpp:510 msgid "Filesystem Specific Attribute are missing" msgstr "" -#: src/libdar/cat_inode.cpp:792 +#: src/libdar/cat_inode.cpp:801 msgid "CRC error detected while reading EA" msgstr "" -#: src/libdar/cat_inode.cpp:936 +#: src/libdar/cat_inode.cpp:945 msgid "" "Error while reading CRC for EA from the archive: No escape mark found for " "that file" msgstr "" -#: src/libdar/cat_inode.cpp:1163 +#: src/libdar/cat_inode.cpp:1172 msgid "CRC error detected while reading FSA" msgstr "" -#: src/libdar/cat_inode.cpp:1287 +#: src/libdar/cat_inode.cpp:1296 msgid "" "Error while reading CRC for FSA from the archive: No escape mark found for " "that file" @@ -6138,43 +6138,43 @@ msgstr "" msgid "Entry information CRC failure" msgstr "" -#: src/libdar/cat_entree.cpp:468 +#: src/libdar/cat_entree.cpp:473 msgid "directory" msgstr "" -#: src/libdar/cat_entree.cpp:472 +#: src/libdar/cat_entree.cpp:477 msgid "hard linked inode" msgstr "" -#: src/libdar/cat_entree.cpp:474 +#: src/libdar/cat_entree.cpp:479 msgid "plain file" msgstr "" -#: src/libdar/cat_entree.cpp:476 +#: src/libdar/cat_entree.cpp:481 msgid "soft link" msgstr "" -#: src/libdar/cat_entree.cpp:478 +#: src/libdar/cat_entree.cpp:483 msgid "char device" msgstr "" -#: src/libdar/cat_entree.cpp:480 +#: src/libdar/cat_entree.cpp:485 msgid "block device" msgstr "" -#: src/libdar/cat_entree.cpp:482 +#: src/libdar/cat_entree.cpp:487 msgid "named pipe" msgstr "" -#: src/libdar/cat_entree.cpp:484 +#: src/libdar/cat_entree.cpp:489 msgid "unix socket" msgstr "" -#: src/libdar/cat_entree.cpp:486 +#: src/libdar/cat_entree.cpp:491 msgid "deleted entry" msgstr "" -#: src/libdar/cat_entree.cpp:488 +#: src/libdar/cat_entree.cpp:493 msgid "door inode" msgstr "" @@ -6981,42 +6981,37 @@ msgstr "" msgid "Initialization problem for liblzo2 library" msgstr "" -#: src/libdar/get_version.cpp:163 -#, c-format -msgid "Error while activating libgcrypt's memory guard: %s/%s" -msgstr "" - -#: src/libdar/get_version.cpp:170 src/libdar/get_version.cpp:188 +#: src/libdar/get_version.cpp:164 src/libdar/get_version.cpp:182 #, c-format msgid "Too old version for libgcrypt, minimum required version is %s" msgstr "" -#: src/libdar/get_version.cpp:179 +#: src/libdar/get_version.cpp:173 #, c-format msgid "Error while telling libgcrypt that initialization is finished: %s/%s" msgstr "" -#: src/libdar/get_version.cpp:184 +#: src/libdar/get_version.cpp:178 msgid "libgcrypt not initialized and libdar not allowed to do so" msgstr "" -#: src/libdar/get_version.cpp:199 +#: src/libdar/get_version.cpp:193 #, c-format msgid "GPGME version requirement is not satisfied, requires version > %s" msgstr "" -#: src/libdar/get_version.cpp:203 +#: src/libdar/get_version.cpp:197 #, c-format msgid "GPGME engine not available: %s" msgstr "" -#: src/libdar/get_version.cpp:213 src/libdar/get_version.cpp:217 -#: src/libdar/get_version.cpp:219 +#: src/libdar/get_version.cpp:207 src/libdar/get_version.cpp:211 +#: src/libdar/get_version.cpp:213 #, c-format msgid "libcurl initialization failed: %s" msgstr "" -#: src/libdar/get_version.cpp:238 +#: src/libdar/get_version.cpp:232 #, c-format msgid "" "libthreader version %d.%d.%d is too old, need version %s.%s.%s or more recent" @@ -7546,16 +7541,16 @@ msgstr "" msgid "unknown hash algorithm corresponding to char `%c'" msgstr "" -#: src/libdar/fichier_libcurl.cpp:207 +#: src/libdar/fichier_libcurl.cpp:208 msgid "libcurl does not allow skipping in write mode" msgstr "" -#: src/libdar/fichier_libcurl.cpp:261 +#: src/libdar/fichier_libcurl.cpp:262 msgid "" "libcurl does not allow truncating at a given position while uploading files" msgstr "" -#: src/libdar/fichier_libcurl.cpp:582 +#: src/libdar/fichier_libcurl.cpp:584 msgid "" "Integer too large for libcurl, cannot skip at the requested offset in the " "remote repository" diff --git a/po/fr.po b/po/fr.po index d459573b..ad87c96a 100644 --- a/po/fr.po +++ b/po/fr.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: DAR 2.7.0\n" "Report-Msgid-Bugs-To: https://github.com/Edrusb/DAR/issues\n" -"POT-Creation-Date: 2024-06-11 17:58+0200\n" -"PO-Revision-Date: 2023-07-16 20:31+0200\n" +"POT-Creation-Date: 2024-06-29 17:30+0200\n" +"PO-Revision-Date: 2024-06-29 17:31+0200\n" "Last-Translator: Denis Corbin \n" "Language-Team: French \n" "Language: fr\n" @@ -3018,12 +3018,12 @@ msgstr "Echec de param #: src/libdar/crypto_asym.cpp:328 #, c-format -msgid "No valid signing key could be find for %S" +msgid "No valid signing key could be found for %S" msgstr "Aucune clef de signature valide n'a pu être trouvée pour %S" #: src/libdar/crypto_asym.cpp:330 #, c-format -msgid "No valid encryption key could be find for %S" +msgid "No valid encryption key could be found for %S" msgstr "Aucune clef de chiffrement valide n'a pu être trouvée pour %S" #: src/libdar/crypto_asym.cpp:341 @@ -6894,21 +6894,21 @@ msgstr "attributs sp msgid "No Filesystem Specific Attribute to compare with" msgstr "Aucun attribut spécifique au système de fichier avec lequel comparer" -#: src/libdar/cat_inode.cpp:502 +#: src/libdar/cat_inode.cpp:505 msgid "inode last change date (ctime) greater, FSA might be different" msgstr "" "date de dernier changement de l'inode (ctime) plus récent, les FSA peuvent " "être différents" -#: src/libdar/cat_inode.cpp:505 +#: src/libdar/cat_inode.cpp:510 msgid "Filesystem Specific Attribute are missing" msgstr "Les attributs spécifiques au système de fichier (FSA) font défaut" -#: src/libdar/cat_inode.cpp:792 +#: src/libdar/cat_inode.cpp:801 msgid "CRC error detected while reading EA" msgstr "Erreur de CRC détectée lors de la lecture des AE" -#: src/libdar/cat_inode.cpp:936 +#: src/libdar/cat_inode.cpp:945 msgid "" "Error while reading CRC for EA from the archive: No escape mark found for " "that file" @@ -6916,11 +6916,11 @@ msgstr "" "Erreur lors de la lecture du CRC pour des AE à partir de l'archive : Aucune " "séquence d'échappement trouvé pour ce fichier" -#: src/libdar/cat_inode.cpp:1163 +#: src/libdar/cat_inode.cpp:1172 msgid "CRC error detected while reading FSA" msgstr "Erreur de CRC détectée lors de la lecture des FSA" -#: src/libdar/cat_inode.cpp:1287 +#: src/libdar/cat_inode.cpp:1296 msgid "" "Error while reading CRC for FSA from the archive: No escape mark found for " "that file" @@ -7012,43 +7012,43 @@ msgstr "Erreur de CRC sur l'entr msgid "Entry information CRC failure" msgstr "Erreur de CRC sur l'information d'une entrée dans la table de contenu" -#: src/libdar/cat_entree.cpp:468 +#: src/libdar/cat_entree.cpp:473 msgid "directory" msgstr "répertoire" -#: src/libdar/cat_entree.cpp:472 +#: src/libdar/cat_entree.cpp:477 msgid "hard linked inode" msgstr "inode liée en dur" -#: src/libdar/cat_entree.cpp:474 +#: src/libdar/cat_entree.cpp:479 msgid "plain file" msgstr "fichier plein" -#: src/libdar/cat_entree.cpp:476 +#: src/libdar/cat_entree.cpp:481 msgid "soft link" msgstr "lien symbolique" -#: src/libdar/cat_entree.cpp:478 +#: src/libdar/cat_entree.cpp:483 msgid "char device" msgstr "fichier spécial caractère" -#: src/libdar/cat_entree.cpp:480 +#: src/libdar/cat_entree.cpp:485 msgid "block device" msgstr "fichier spécial bloc" -#: src/libdar/cat_entree.cpp:482 +#: src/libdar/cat_entree.cpp:487 msgid "named pipe" msgstr "tube nommé" -#: src/libdar/cat_entree.cpp:484 +#: src/libdar/cat_entree.cpp:489 msgid "unix socket" msgstr "prise unix" -#: src/libdar/cat_entree.cpp:486 +#: src/libdar/cat_entree.cpp:491 msgid "deleted entry" msgstr "entrée supprimée" -#: src/libdar/cat_entree.cpp:488 +#: src/libdar/cat_entree.cpp:493 msgid "door inode" msgstr "inode Porte" @@ -8006,47 +8006,42 @@ msgstr "Num msgid "Initialization problem for liblzo2 library" msgstr "Problème d'initialisation pour la bibliothèque liblzo2" -#: src/libdar/get_version.cpp:163 -#, c-format -msgid "Error while activating libgcrypt's memory guard: %s/%s" -msgstr "Erreur lors de l'activation du garde de mémoire de libgcrypt : %s/%s" - -#: src/libdar/get_version.cpp:170 src/libdar/get_version.cpp:188 +#: src/libdar/get_version.cpp:164 src/libdar/get_version.cpp:182 #, c-format msgid "Too old version for libgcrypt, minimum required version is %s" msgstr "" "Version trop ancienne pour libgcrypt, la version minimale requise est %s" -#: src/libdar/get_version.cpp:179 +#: src/libdar/get_version.cpp:173 #, c-format msgid "Error while telling libgcrypt that initialization is finished: %s/%s" msgstr "" "Erreur lors de la communication à libgcrypt que l'initialisation est " "terminée : %s/%s" -#: src/libdar/get_version.cpp:184 +#: src/libdar/get_version.cpp:178 msgid "libgcrypt not initialized and libdar not allowed to do so" msgstr "" "libgcrypt n'a pas été initialisée et libdar n'est pas autorisé à le faire" -#: src/libdar/get_version.cpp:199 +#: src/libdar/get_version.cpp:193 #, c-format msgid "GPGME version requirement is not satisfied, requires version > %s" msgstr "" "prérequis insatisfait pour GPGME, une version supérieure à %s est nécessaire" -#: src/libdar/get_version.cpp:203 +#: src/libdar/get_version.cpp:197 #, c-format msgid "GPGME engine not available: %s" msgstr "le moteur GPGME n'est pas disponible: %s" -#: src/libdar/get_version.cpp:213 src/libdar/get_version.cpp:217 -#: src/libdar/get_version.cpp:219 +#: src/libdar/get_version.cpp:207 src/libdar/get_version.cpp:211 +#: src/libdar/get_version.cpp:213 #, c-format msgid "libcurl initialization failed: %s" msgstr "Echec d'initialisation de libcurl : %s" -#: src/libdar/get_version.cpp:238 +#: src/libdar/get_version.cpp:232 #, c-format msgid "" "libthreader version %d.%d.%d is too old, need version %s.%s.%s or more recent" @@ -8625,16 +8620,16 @@ msgstr "Erreur lors de la cration du fichier de hashage : " msgid "unknown hash algorithm corresponding to char `%c'" msgstr "le caractère '%c' ne correspond à aucun algorithme de hashage connu" -#: src/libdar/fichier_libcurl.cpp:207 +#: src/libdar/fichier_libcurl.cpp:208 msgid "libcurl does not allow skipping in write mode" msgstr "libcurl interdit le changement de position en mode écriture" -#: src/libdar/fichier_libcurl.cpp:261 +#: src/libdar/fichier_libcurl.cpp:262 msgid "" "libcurl does not allow truncating at a given position while uploading files" msgstr "libcurl interdit de tronquer un fichier lors de son téléversement" -#: src/libdar/fichier_libcurl.cpp:582 +#: src/libdar/fichier_libcurl.cpp:584 msgid "" "Integer too large for libcurl, cannot skip at the requested offset in the " "remote repository" @@ -8908,6 +8903,11 @@ msgid "FATAL error from operating system, aborting operation: " msgstr "" "Erreur FATALE provenant du système d'exploitation, abandon de l'opération : " +#, c-format +#~ msgid "Error while activating libgcrypt's memory guard: %s/%s" +#~ msgstr "" +#~ "Erreur lors de l'activation du garde de mémoire de libgcrypt : %s/%s" + #~ msgid "# UNEXPECTED EXCEPTION, #" #~ msgstr "# EXCEPTION NON ATTENDUE, #" diff --git a/po/sv.po b/po/sv.po index 4a0a1a0c..0acad088 100644 --- a/po/sv.po +++ b/po/sv.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: sv\n" "Report-Msgid-Bugs-To: https://github.com/Edrusb/DAR/issues\n" -"POT-Creation-Date: 2024-06-11 17:58+0200\n" +"POT-Creation-Date: 2024-06-29 17:30+0200\n" "PO-Revision-Date: 2012-04-15 11:28+0200\n" "Last-Translator: Peter Landgren \n" "Language-Team: Swedish \n" @@ -2957,12 +2957,12 @@ msgstr "" #: src/libdar/crypto_asym.cpp:328 #, c-format -msgid "No valid signing key could be find for %S" +msgid "No valid signing key could be found for %S" msgstr "" #: src/libdar/crypto_asym.cpp:330 #, c-format -msgid "No valid encryption key could be find for %S" +msgid "No valid encryption key could be found for %S" msgstr "" #: src/libdar/crypto_asym.cpp:341 @@ -6672,20 +6672,20 @@ msgstr "andra Utvidgade Attribut" msgid "No Filesystem Specific Attribute to compare with" msgstr "inga Utvidgade Attribut att jämföra me " -#: src/libdar/cat_inode.cpp:502 +#: src/libdar/cat_inode.cpp:505 #, fuzzy msgid "inode last change date (ctime) greater, FSA might be different" msgstr "inods senaste ändringsdatum (ctime) är större, EA kan vara annat" -#: src/libdar/cat_inode.cpp:505 +#: src/libdar/cat_inode.cpp:510 msgid "Filesystem Specific Attribute are missing" msgstr "" -#: src/libdar/cat_inode.cpp:792 +#: src/libdar/cat_inode.cpp:801 msgid "CRC error detected while reading EA" msgstr "CRC-fel upptäckt vid läsning av EA" -#: src/libdar/cat_inode.cpp:936 +#: src/libdar/cat_inode.cpp:945 msgid "" "Error while reading CRC for EA from the archive: No escape mark found for " "that file" @@ -6693,12 +6693,12 @@ msgstr "" "Fel vid läsning CRC för EA frÃ¥n arkiv: Inget escape-märke funnet för denna " "fil" -#: src/libdar/cat_inode.cpp:1163 +#: src/libdar/cat_inode.cpp:1172 #, fuzzy msgid "CRC error detected while reading FSA" msgstr "CRC-fel upptäckt vid läsning av EA" -#: src/libdar/cat_inode.cpp:1287 +#: src/libdar/cat_inode.cpp:1296 #, fuzzy msgid "" "Error while reading CRC for FSA from the archive: No escape mark found for " @@ -6791,43 +6791,43 @@ msgstr "Inmatad information CRC-misslyckande för %S" msgid "Entry information CRC failure" msgstr "Inmatad information CRC-misslyckande" -#: src/libdar/cat_entree.cpp:468 +#: src/libdar/cat_entree.cpp:473 msgid "directory" msgstr "mapp" -#: src/libdar/cat_entree.cpp:472 +#: src/libdar/cat_entree.cpp:477 msgid "hard linked inode" msgstr "hÃ¥rdlänkad inode" -#: src/libdar/cat_entree.cpp:474 +#: src/libdar/cat_entree.cpp:479 msgid "plain file" msgstr "enkel fil" -#: src/libdar/cat_entree.cpp:476 +#: src/libdar/cat_entree.cpp:481 msgid "soft link" msgstr "mjuk länk" -#: src/libdar/cat_entree.cpp:478 +#: src/libdar/cat_entree.cpp:483 msgid "char device" msgstr "teckenenhet" -#: src/libdar/cat_entree.cpp:480 +#: src/libdar/cat_entree.cpp:485 msgid "block device" msgstr "blockenhet" -#: src/libdar/cat_entree.cpp:482 +#: src/libdar/cat_entree.cpp:487 msgid "named pipe" msgstr "namnad pipe" -#: src/libdar/cat_entree.cpp:484 +#: src/libdar/cat_entree.cpp:489 msgid "unix socket" msgstr "unix sockel" -#: src/libdar/cat_entree.cpp:486 +#: src/libdar/cat_entree.cpp:491 msgid "deleted entry" msgstr "fördröjd inmatning" -#: src/libdar/cat_entree.cpp:488 +#: src/libdar/cat_entree.cpp:493 msgid "door inode" msgstr "'door' inod" @@ -7739,43 +7739,38 @@ msgstr "Ogiltigt arkivnummer: " msgid "Initialization problem for liblzo2 library" msgstr "Initieringsproblem för liblzo2-biblioteket" -#: src/libdar/get_version.cpp:163 -#, c-format -msgid "Error while activating libgcrypt's memory guard: %s/%s" -msgstr "Fel vid aktivering av 'libgcrypts' minnesskydd: %s/%s" - -#: src/libdar/get_version.cpp:170 src/libdar/get_version.cpp:188 +#: src/libdar/get_version.cpp:164 src/libdar/get_version.cpp:182 #, fuzzy, c-format msgid "Too old version for libgcrypt, minimum required version is %s" msgstr "För gammal version av libgcrypt, som minst krävs version %s\n" -#: src/libdar/get_version.cpp:179 +#: src/libdar/get_version.cpp:173 #, c-format msgid "Error while telling libgcrypt that initialization is finished: %s/%s" msgstr "" "Fel vid meddelande till 'libgcrypt' att initialiseringen är avslutad: %s/%s" -#: src/libdar/get_version.cpp:184 +#: src/libdar/get_version.cpp:178 msgid "libgcrypt not initialized and libdar not allowed to do so" msgstr "'libgcrypt' är ej initialiserad och 'libdar' ej tillÃ¥ten att göra sÃ¥" -#: src/libdar/get_version.cpp:199 +#: src/libdar/get_version.cpp:193 #, c-format msgid "GPGME version requirement is not satisfied, requires version > %s" msgstr "" -#: src/libdar/get_version.cpp:203 +#: src/libdar/get_version.cpp:197 #, c-format msgid "GPGME engine not available: %s" msgstr "" -#: src/libdar/get_version.cpp:213 src/libdar/get_version.cpp:217 -#: src/libdar/get_version.cpp:219 +#: src/libdar/get_version.cpp:207 src/libdar/get_version.cpp:211 +#: src/libdar/get_version.cpp:213 #, fuzzy, c-format msgid "libcurl initialization failed: %s" msgstr "Minnestilldelning misslyckades : %s" -#: src/libdar/get_version.cpp:238 +#: src/libdar/get_version.cpp:232 #, c-format msgid "" "libthreader version %d.%d.%d is too old, need version %s.%s.%s or more recent" @@ -8343,16 +8338,16 @@ msgstr "Fel vid skapande av hash handle: %s/%s" msgid "unknown hash algorithm corresponding to char `%c'" msgstr "" -#: src/libdar/fichier_libcurl.cpp:207 +#: src/libdar/fichier_libcurl.cpp:208 msgid "libcurl does not allow skipping in write mode" msgstr "" -#: src/libdar/fichier_libcurl.cpp:261 +#: src/libdar/fichier_libcurl.cpp:262 msgid "" "libcurl does not allow truncating at a given position while uploading files" msgstr "" -#: src/libdar/fichier_libcurl.cpp:582 +#: src/libdar/fichier_libcurl.cpp:584 msgid "" "Integer too large for libcurl, cannot skip at the requested offset in the " "remote repository" @@ -8616,6 +8611,10 @@ msgstr "EN INTE IMPLEMENTERAD FUNKTION har använts: " msgid "FATAL error from operating system, aborting operation: " msgstr "FATALT fel, avbryter Ã¥tgärd" +#, c-format +#~ msgid "Error while activating libgcrypt's memory guard: %s/%s" +#~ msgstr "Fel vid aktivering av 'libgcrypts' minnesskydd: %s/%s" + #~ msgid "# UNEXPECTED EXCEPTION, #" #~ msgstr "# OVÄNTAT AVBROTT, #" diff --git a/src/build/ChangeLog b/src/build/ChangeLog index 7b1e9212..6f8654b9 100644 --- a/src/build/ChangeLog +++ b/src/build/ChangeLog @@ -1,3 +1,16 @@ +- updating libdar about CURLINFO_CONTENT_LENGTH_DOWNLOAD symbol which is + reported as deprecated by recent libcurl libraries. +- fixed compilation problem under MacOS Mojave +- fixed bug that lead the warning about a backup operation about to save + itself, to not show +- removing obsolete call to gcry_control(GCRYCTL_ENABLE_M_GUARD) while + initializing libgcrypt. This led to libgcrypt initialization to fail + with libgcrypt 1.11 and more recent versions. +- fixed listing but about "present but unsaved" FSA status +- fixed dead-lock condition in libdar when used with libcurl > 0.74.0 at + the end of closing sftp session (undocumented changed behavior in + libcurl). + from 2.7.14 to 2.7.15 - updating libdar about CURLINFO_CONTENT_LENGTH_DOWNLOAD symbol which is reported as deprecated by recent libcurl libraries. diff --git a/src/build/configure.ac b/src/build/configure.ac index dd7b2110..a5a34123 100644 --- a/src/build/configure.ac +++ b/src/build/configure.ac @@ -22,7 +22,7 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ(2.69) -AC_INIT([DAR], [2.7.15.RC3], [[https://github.com/Edrusb/DAR/issues]]) +AC_INIT([DAR], [2.7.15], [[https://github.com/Edrusb/DAR/issues]]) AC_CONFIG_HEADERS([config.h]) AC_LANG([C++]) AC_CONFIG_SRCDIR([src/libdar/catalogue.cpp]) diff --git a/src/libdar/get_version.hpp b/src/libdar/get_version.hpp index bb078acd..19155cd2 100644 --- a/src/libdar/get_version.hpp +++ b/src/libdar/get_version.hpp @@ -55,7 +55,7 @@ namespace libdar /// libdar Medium version defined at compilation time constexpr U_I LIBDAR_COMPILE_TIME_MEDIUM = 7; /// libdar Minor version defined at compilation time - constexpr U_I LIBDAR_COMPILE_TIME_MINOR = 2; + constexpr U_I LIBDAR_COMPILE_TIME_MINOR = 3; //////////////////////////////////////////////////////////////////////// // LIBDAR INITIALIZATION METHODS // diff --git a/src/libdar/libdar5.hpp b/src/libdar/libdar5.hpp index 79746bdd..bf8f0c46 100644 --- a/src/libdar/libdar5.hpp +++ b/src/libdar/libdar5.hpp @@ -356,7 +356,7 @@ namespace libdar5 /// libdar Medium version defined at compilation time const U_I LIBDAR_COMPILE_TIME_MEDIUM = 201; /// libdar Minor version defined at compilation time - const U_I LIBDAR_COMPILE_TIME_MINOR = 6; + const U_I LIBDAR_COMPILE_TIME_MINOR = 7; //////////////////////////////////////////////////////////////////////// // LIBDAR INITIALIZATION METHODS //