How to properly disable updates and purge update cache?

Need help with FileZilla Client? Something does not work as expected? In this forum you may find an answer.

Moderator: Project members

Message
Author
winzilla
450 Internal Error
Posts: 36
Joined: 2023-01-14 19:31

How to properly disable updates and purge update cache?

#1 Post by winzilla » 2023-08-25 12:13

I'm running into an issue with the update pop-ups that several other people have already had issues with. I've read some of the following threads:
- viewtopic.php?p=178648
- viewtopic.php?f=2&t=51406
- viewtopic.php?p=170096#p170096

It seems like in addition to setting "Check for updates" to "Never", the update cache also needs to be cleared for any updates detected before this was set, so I went ahead and did that. However, when I enable debug mode and purge the update cache, that very action seems to revert "Check for updates" to "Weekly" (this seems like a bug to me, purging the cache should most certainly not reset an unrelated setting). But fair enough, I then toggle the setting back to "Never" before closing FileZIlla. However, next time I open it up, I still get a popup that says there's a new update, although it's the type where it doesn't have any information about it:

(new version available... unfortunately information could not be retrieved).

Am I missing a step here or is there something else that needs to be done? Or is this how it's supposed to work?

I'm using FileZilla 3.62.2, and no, I am not going to update it, for the following reasons:
- I don't want to
- This is a domain-joined machine where I am not running as an administrator. I could enter an admin password, but it's not reasonable to expect that users ordinarily would be able to do this.
- This is a custom build of FileZilla, so I can't "just update" FileZilla, I need to completely cross-compile it all over again with custom patches, which takes hours, not seconds. Then it needs to be redeployed to the application deployment store. That's something to do maybe once every year or two, not every update release. I don't have the time for this.

So the pop-ups just waste time for something that is not actionable for me.

If this is an actual bug that was fixed, that maybe it would be worth compiling it again, but I went through the change log and I don't see anything related to this, so I imagine this would be the same in 3.65. Any insight?

Alternately, how could I manually clear the update cache on the file system? I looked in both Local and Roaming AppData and Program Files, and I can't find anything that seems to have to do with any update files. I also tried manually editing FileZilla.xml to keep the update frequency at never, but that hasn't seemed to help either. I tried doing the following:

Removing:
<Setting name="Last automatic update check" />
<Setting name="Update Check New Version" platform="win" />
<Setting name="Last automatic update version">3.62.2</Setting>

Changing:
<Setting name="Update Check Interval">7</Setting>

to:
<Setting name="Update Check Interval">0</Setting>

Would anyone happen to know the correct combination of these settings, if this can't be done correctly through the UI?

Thanks!

User avatar
boco
Contributor
Posts: 26940
Joined: 2006-05-01 03:28
Location: Germany

Re: How to properly disable updates and purge update cache?

#2 Post by boco » 2023-08-25 16:45

Am I missing a step here or is there something else that needs to be done? Or is this how it's supposed to work?
Working as designed. Any build older than 90 days (IIRC) will display the reminder nag. This is unrelated to any setting, and it cannot be prevented nor disabled. 3.62.2 is from March, too old.
No support requests over PM! You will NOT get any reply!!!
FTP connection problems? Please read Network Configuration.
FileZilla connection test: https://filezilla-project.org/conntest.php
FileZilla Pro support: https://customerforum.fileZilla-project.org

winzilla
450 Internal Error
Posts: 36
Joined: 2023-01-14 19:31

Re: How to properly disable updates and purge update cache?

#3 Post by winzilla » 2023-08-27 13:35

So it's "by design" to deliberately annoy users? I don't like that answer but it's good to know that I'm stuck here at least for now. Since these are undocumented, it would be good to have the UI updated then to change "Never check for updates" to "Only check for updates newer than 6 months" since that's really what this is doing. Total misnomer.

Very frustrating that people are forced to compile their own version because the author refuses to incorporate certain settings to increase compatibility, which many people have asked for, and then the software deliberately annoys these same individuals by nagging them to upgrade, when this is impossible.

I guess next time I compile FileZilla, I'll have to rip out all of the update functionality completely. IMHO, this is a very manipulative behavior that I think many users have already expressed disagreement with. It's very reminiscent of Microsoft and Windows 10/11 updates and other dark patterns becoming more common now in software. This seriously erodes the trust of users. Most people, particularly in the FOSS community, expect that independent software value user choice above patronizing coercion. It's a shame FileZilla does not.

User avatar
botg
Site Admin
Posts: 35566
Joined: 2004-02-23 20:49
First name: Tim
Last name: Kosse

Re: How to properly disable updates and purge update cache?

#4 Post by botg » 2023-08-27 18:12

Why don't you simply update?

winzilla
450 Internal Error
Posts: 36
Joined: 2023-01-14 19:31

Re: How to properly disable updates and purge update cache?

#5 Post by winzilla » 2023-08-27 23:25

> Why don't you simply update?

Because you won't add the setting that I need, that's why, so I can't. If you did, then I would have.

"Updating" would wipe out my changes. There is *nothing* "simple" about this. As a result, I have to cross compile the latest version (properly patched) all over again.

This is just classic "I know what's best for my users" attitude that isn't always true 100% of the time. It completely ignores uses with unique situations or legitimate reasons not to upgrade. Yes, I can sympathize that generally speaking, nudging people to be on the latest version is good, and not accepting bug reports against old versions is good (a waste of time). But if users want to use whatever version, they should be free to do so without such intrusions. It's the kind of thing that's reminiscent of adware.

By all means, don't provide any support to people who are not updated, I fully agree with that. But actively being hostile to people who do not upgrade crosses a line.

User avatar
botg
Site Admin
Posts: 35566
Joined: 2004-02-23 20:49
First name: Tim
Last name: Kosse

Re: How to properly disable updates and purge update cache?

#6 Post by botg » 2023-08-28 13:20

Self-compiling? Have a look at the arguments you can pass to configure.

winzilla
450 Internal Error
Posts: 36
Joined: 2023-01-14 19:31

Re: How to properly disable updates and purge update cache?

#7 Post by winzilla » 2023-08-28 15:23

Self-compiling? Have a look at the arguments you can pass to configure.
Thanks, looks like those autoupdate options should do the trick.

In the meantime, I tried blocking update.filezilla-project.org in the firewall, and that did make the problem go away, with the side effect that I can't access the forums anymore, since I guess it's all hosted on the same machine, so this isn't exactly an ideal solution; I disabled the rule for now.

The script I wrote before gets 99% of the way there thankfully, though there seem to be a few new things, like Boost Regex 1.76, which didn't seem to want to bootstrap. This is also new:

Code: Select all

checking whether x86_64-w64-mingw32-g++ supports C++17 features with -std=c++17... no
checking whether x86_64-w64-mingw32-g++ supports C++17 features with +std=c++17... no
checking whether x86_64-w64-mingw32-g++ supports C++17 features with -h std=c++17... no
checking whether x86_64-w64-mingw32-g++ supports C++17 features with -std=c++1z... no
checking whether x86_64-w64-mingw32-g++ supports C++17 features with +std=c++1z... no
checking whether x86_64-w64-mingw32-g++ supports C++17 features with -h std=c++1z... no
configure: error: *** A compiler with support for C++17 language features is required.
Seemed odd because I have a rather recent system here:

Code: Select all

configure: error: *** A compiler with support for C++17 language features is required.
root@deb12:~/fastfilezilla# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/12/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 12.2.0-14' --with-bugurl=file:///usr/share/doc/gcc-12/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-12 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-12-bTRWOB/gcc-12-12.2.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-12-bTRWOB/gcc-12-12.2.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 12.2.0 (Debian 12.2.0-14)
root@deb12:~/fastfilezilla# uname -a
Linux deb12 6.1.0-11-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.38-4 (2023-08-08) x86_64 GNU/Linux
root@deb12:~/fastfilezilla#
I believe my gcc version is fine since I have a supporting g++, but this is specifically about mingw32-g++. Tried searching the forums and didn't find anything about this, is C17 a new requirement or have a special consideration for cross compiling?

User avatar
botg
Site Admin
Posts: 35566
Joined: 2004-02-23 20:49
First name: Tim
Last name: Kosse

Re: How to properly disable updates and purge update cache?

#8 Post by botg » 2023-08-28 17:51

C++17 requirement is nothing new, been there for a bunch of years. Check config.log to see why it doesn't think your compiler supports C++17.

winzilla
450 Internal Error
Posts: 36
Joined: 2023-01-14 19:31

Re: How to properly disable updates and purge update cache?

#9 Post by winzilla » 2023-08-28 23:16

Somehow, every time I try this, something different seems to happen.

After a few more rounds, I got this when compiling libfilezilla... these seem like genuine compiler errors to me, but I'm not sure if something is just missing:

Code: Select all

sftp/sftpcontrolsocket.cpp: In member function 'virtual int CSftpControlSocket::DoClose(int)':
sftp/sftpcontrolsocket.cpp:514:63: error: 'typedef class std::deque<std::tuple<fz::event_handler*, fz::event_base*, bool> > fz::event_loop::Events' is private within this context
  514 |                 auto threadEventsFilter = [&](fz::event_loop::Events::value_type const& ev) -> bool {
      |                                                               ^~~~~~
In file included from /root/prefix/include/libfilezilla/event_handler.hpp:4,
                 from sftp/../../include/misc.h:6,
                 from sftp/../../include/libfilezilla_engine.h:25,
                 from sftp/../filezilla.h:1,
                 from sftp/sftpcontrolsocket.cpp:1:
/root/prefix/include/libfilezilla/event_loop.hpp:116:75: note: declared private here
  116 |         typedef std::deque<std::tuple<event_handler*, event_base*, bool>> Events;
      |                                                                           ^~~~~~
sftp/sftpcontrolsocket.cpp: In lambda function:
sftp/sftpcontrolsocket.cpp:515:32: error: 'const std::deque<std::tuple<fz::event_handler*, fz::event_base*, bool> >::value_type' {aka 'const class std::tuple<fz::event_handler*, fz::event_base*, bool>'} has no member named 'first'
  515 |                         if (ev.first != this) {
      |                                ^~~~~
sftp/sftpcontrolsocket.cpp:518:37: error: 'const std::deque<std::tuple<fz::event_handler*, fz::event_base*, bool> >::value_type' {aka 'const class std::tuple<fz::event_handler*, fz::event_base*, bool>'} has no member named 'second'
  518 |                         else if (ev.second->derived_type() == CSftpEvent::type() || ev.second->derived_type() == CSftpListEvent::type()) {
      |                                     ^~~~~~
sftp/sftpcontrolsocket.cpp:518:88: error: 'const std::deque<std::tuple<fz::event_handler*, fz::event_base*, bool> >::value_type' {aka 'const class std::tuple<fz::event_handler*, fz::event_base*, bool>'} has no member named 'second'
  518 |                         else if (ev.second->derived_type() == CSftpEvent::type() || ev.second->derived_type() == CSftpListEvent::type()) {
      |                                                                                        ^~~~~~
sftp/sftpcontrolsocket.cpp: In member function 'virtual int CSftpControlSocket::DoClose(int)':
sftp/sftpcontrolsocket.cpp:524:43: error: cannot convert 'CSftpControlSocket::DoClose(int)::<lambda(const std::deque<std::tuple<fz::event_handler*, fz::event_base*, bool> >::value_type&)>' to 'const std::function<bool(fz::event_handler*&, fz::event_base&)>&'
  524 |                 event_loop_.filter_events(threadEventsFilter);
      |                                           ^~~~~~~~~~~~~~~~~~
      |                                           |
      |                                           CSftpControlSocket::DoClose(int)::<lambda(const std::deque<std::tuple<fz::event_handler*, fz::event_base*, bool> >::value_type&)>
/root/prefix/include/libfilezilla/event_loop.hpp:65:86: note:   initializing argument 1 of 'void fz::event_loop::filter_events(const std::function<bool(fz::event_handler*&, fz::event_base&)>&)'
   65 |         void filter_events(std::function<bool (event_handler*&, event_base&)> const& filter);
      |                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
make[3]: *** [Makefile:1288: sftp/libfzclient_private_la-sftpcontrolsocket.lo] Error 1

User avatar
botg
Site Admin
Posts: 35566
Joined: 2004-02-23 20:49
First name: Tim
Last name: Kosse

Re: How to properly disable updates and purge update cache?

#10 Post by botg » 2023-08-29 07:46

You need to update to the most recent version.

winzilla
450 Internal Error
Posts: 36
Joined: 2023-01-14 19:31

Re: How to properly disable updates and purge update cache?

#11 Post by winzilla » 2023-08-29 10:34

svn co https://svn.filezilla-project.org/svn/FileZilla3/trunk fz

should get me the most recent version though, right? That's what I've been using:

root@deb12:~/src/lfz# head -n 5 NEWS
0.44.0 (2023-06-28)

+ Exportable hash accumulator state
+ Add for RSA key support for JWS
+ JWT creation

I'll just wipe it out and start over though, see what happens.

winzilla
450 Internal Error
Posts: 36
Joined: 2023-01-14 19:31

Re: How to properly disable updates and purge update cache?

#12 Post by winzilla » 2023-08-29 12:26

Okay, now I see the C++17 stuff again.

Code: Select all

onfigure:17714: result: no
configure:17776: checking whether x86_64-w64-mingw32-g++ supports C++17 features with -std=c++17
configure:18573: x86_64-w64-mingw32-g++ -std=c++17 -c -g -std=c++11 -Wall  conftest.cpp >&5
conftest.cpp:320:2: error: #error "This is not a C++14 compiler"
  320 | #error "This is not a C++14 compiler"
      |  ^~~~~
conftest.cpp:440:2: error: #error "This is not a C++17 compiler"
  440 | #error "This is not a C++17 compiler"
      |  ^~~~~
configure:18573: $? = 1
configure: failed program was:

Based on my research, it seems like support is tied to the compiler version, and newer versions should support it, which I have:

Code: Select all

root@deb12:~/src/lfz# x86_64-w64-mingw32-g++ -v
Using built-in specs.
COLLECT_GCC=x86_64-w64-mingw32-g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-w64-mingw32/12-win32/lto-wrapper
Target: x86_64-w64-mingw32
Configured with: ../../src/configure --build=x86_64-linux-gnu --prefix=/usr --includedir='/usr/include' --mandir='/usr/share/man' --infodir='/usr/share/info' --sysconfdir=/etc --localstatedir=/var --disable-option-checking --disable-silent-rules --libdir='/usr/lib/x86_64-linux-gnu' --libexecdir='/usr/lib/x86_64-linux-gnu' --disable-maintainer-mode --disable-dependency-tracking --prefix=/usr --enable-shared --enable-static --disable-multilib --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --libdir=/usr/lib --enable-libstdcxx-time=yes --with-tune=generic --with-headers --enable-version-specific-runtime-libs --enable-fully-dynamic-string --enable-libgomp --enable-languages=c,c++,fortran,objc,obj-c++,ada --enable-lto --enable-threads=win32 --program-suffix=-win32 --program-prefix=x86_64-w64-mingw32- --target=x86_64-w64-mingw32 --with-as=/usr/bin/x86_64-w64-mingw32-as --with-ld=/usr/bin/x86_64-w64-mingw32-ld --enable-libatomic --enable-libstdcxx-filesystem-ts=yes --enable-dependency-tracking SED=/bin/sed
Thread model: win32
Supported LTO compression algorithms: zlib
gcc version 12-win32 (GCC)
Attachments
config.log.txt
(131.52 KiB) Downloaded 73 times

User avatar
botg
Site Admin
Posts: 35566
Joined: 2004-02-23 20:49
First name: Tim
Last name: Kosse

Re: How to properly disable updates and purge update cache?

#13 Post by botg » 2023-08-29 12:35

Your CXXFLAGS specifically instruct the compiler to not support anything newer than C++11.

winzilla
450 Internal Error
Posts: 36
Joined: 2023-01-14 19:31

Re: How to properly disable updates and purge update cache?

#14 Post by winzilla » 2023-08-29 22:11

All right, now it's back to the compiler errors with libfilezilla:

Code: Select all

libtool: compile:  x86_64-w64-mingw32-g++ -std=c++17 -DHAVE_CONFIG_H -I../../config -I/root/prefix/include -DBUILDING_FILEZILLA -fvisibility=hidden -std=c++17 -Wall -g -MT sftp/libfzclient_private_la-sftpcontrolsocket.lo -MD -MP -MF sftp/.deps/libfzclient_private_la-sftpcontrolsocket.Tpo -c sftp/sftpcontrolsocket.cpp  -DDLL_EXPORT -DPIC -o sftp/.libs/libfzclient_private_la-sftpcontrolsocket.o
sftp/sftpcontrolsocket.cpp: In member function 'virtual int CSftpControlSocket::DoClose(int)':
sftp/sftpcontrolsocket.cpp:514:63: error: 'typedef class std::deque<std::tuple<fz::event_handler*, fz::event_base*, bool> > fz::event_loop::Events' is private within this context
  514 |                 auto threadEventsFilter = [&](fz::event_loop::Events::value_type const& ev) -> bool {
      |                                                               ^~~~~~
In file included from /root/prefix/include/libfilezilla/event_handler.hpp:4,
                 from sftp/../../include/misc.h:6,
                 from sftp/../../include/libfilezilla_engine.h:25,
                 from sftp/../filezilla.h:1,
                 from sftp/sftpcontrolsocket.cpp:1:
/root/prefix/include/libfilezilla/event_loop.hpp:116:75: note: declared private here
  116 |         typedef std::deque<std::tuple<event_handler*, event_base*, bool>> Events;
      |                                                                           ^~~~~~
sftp/sftpcontrolsocket.cpp: In lambda function:
sftp/sftpcontrolsocket.cpp:515:32: error: 'const std::deque<std::tuple<fz::event_handler*, fz::event_base*, bool> >::value_type' {aka 'const class std::tuple<fz::event_handler*, fz::event_base*, bool>'} has no member named 'first'
  515 |                         if (ev.first != this) {
      |                                ^~~~~
sftp/sftpcontrolsocket.cpp:518:37: error: 'const std::deque<std::tuple<fz::event_handler*, fz::event_base*, bool> >::value_type' {aka 'const class std::tuple<fz::event_handler*, fz::event_base*, bool>'} has no member named 'second'
  518 |                         else if (ev.second->derived_type() == CSftpEvent::type() || ev.second->derived_type() == CSftpListEvent::type()) {
      |                                     ^~~~~~
sftp/sftpcontrolsocket.cpp:518:88: error: 'const std::deque<std::tuple<fz::event_handler*, fz::event_base*, bool> >::value_type' {aka 'const class std::tuple<fz::event_handler*, fz::event_base*, bool>'} has no member named 'second'
  518 |                         else if (ev.second->derived_type() == CSftpEvent::type() || ev.second->derived_type() == CSftpListEvent::type()) {
      |                                                                                        ^~~~~~
sftp/sftpcontrolsocket.cpp: In member function 'virtual int CSftpControlSocket::DoClose(int)':
sftp/sftpcontrolsocket.cpp:524:43: error: cannot convert 'CSftpControlSocket::DoClose(int)::<lambda(const std::deque<std::tuple<fz::event_handler*, fz::event_base*, bool> >::value_type&)>' to 'const std::function<bool(fz::event_handler*&, fz::event_base&)>&'
  524 |                 event_loop_.filter_events(threadEventsFilter);
      |                                           ^~~~~~~~~~~~~~~~~~
      |                                           |
      |                                           CSftpControlSocket::DoClose(int)::<lambda(const std::deque<std::tuple<fz::event_handler*, fz::event_base*, bool> >::value_type&)>
/root/prefix/include/libfilezilla/event_loop.hpp:65:86: note:   initializing argument 1 of 'void fz::event_loop::filter_events(const std::function<bool(fz::event_handler*&, fz::event_base&)>&)'
   65 |         void filter_events(std::function<bool (event_handler*&, event_base&)> const& filter);
      |                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
make[3]: *** [Makefile:1288: sftp/libfzclient_private_la-sftpcontrolsocket.lo] Error 1



You said before "make sure you have the latest version", but I definitely have an up-to-date repo:

root@deb12:~/src/lfz# svn info
Path: .
Working Copy Root Path: /root/src/lfz
URL: https://svn.filezilla-project.org/svn/l ... illa/trunk
Relative URL: ^/libfilezilla/trunk
Repository Root: https://svn.filezilla-project.org/svn
Repository UUID: ce1b9ea0-41a8-11dc-9b12-cb80f3b22977
Revision: 11017
Node Kind: directory
Schedule: normal
Last Changed Author: codesquid
Last Changed Rev: 11016
Last Changed Date: 2023-08-21 10:16:35 -0400 (Mon, 21 Aug 2023)

Should I open a bug for this or am I still doing something wrong? (probably am... just not sure what it would be, it's not the repo version).

User avatar
botg
Site Admin
Posts: 35566
Joined: 2004-02-23 20:49
First name: Tim
Last name: Kosse

Re: How to properly disable updates and purge update cache?

#15 Post by botg » 2023-08-31 07:18

Don't forget that you also need to use the latest version of the client.

Post Reply