Commit Graph

23260 Commits

Author SHA1 Message Date
Jyrki Gadinger
7cbff2fbee fix(appimage): move VFS plugins to AppDir
This allows the AppImage build to find and load the experimental VFS
plugins, and not crash with:

    [ critical plugins /home/user/src/common/vfs.cpp:250 ]: Could not load plugin: not existent or bad metadata "nextclouddevsync_vfs_suffix"
    [ fatal default /home/user/src/gui/folderman.cpp:326 ]: Could not load plugin
    [1]    72936 IOT instruction (core dumped)  ./nextclouddev-master-x86_64.AppImage

Fixes #7135
Fixes #7194
Fixes #7465

Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
2025-05-30 09:41:04 +02:00
Matthieu Gallien
35593b49de
Merge pull request #8315 from nextcloud/backport/8178/stable-3.16
[stable-3.16] Bugfix/version windows integration improve install
2025-05-30 09:40:40 +02:00
Jyrki Gadinger
54653f6a3f chore: add missing backport for VERSION.cmake
Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
2025-05-30 09:40:29 +02:00
Jyrki Gadinger
be50bb499a feat(msi): do not schedule reboots ourselves
let's have the MSI RestartManager take care of that

Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>

[skip ci]
2025-05-30 09:40:29 +02:00
Matthieu Gallien
9aff10a760 fix(windows): add missing version to cfapi shell integration DLL
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2025-05-30 09:40:29 +02:00
Matthieu Gallien
4a5e31d89d feat(windows): use cmake to configure windows integration DLL version
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2025-05-30 09:40:29 +02:00
Jyrki Gadinger
b7af3c7083 fix(msi): force termination of stuck processes
Stopping the Windows Explorer process does not always work.  Per default
the MSI Restart Manager will display a warning message after a timeout,
and not attempt to restart Explorer afterwards -- resulting in a black
screen if no other window is open.

Setting the property `MSIRMSHUTDOWN` to `1` will force the termination
of the process when the timeout is reached, which finally allows the
Explorer to be restarted.

Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
2025-05-30 09:40:29 +02:00
Jyrki Gadinger
b9f57fd254 fix(msi): do not completely remove the previous installation when updating
The MSIs we distribute perform so-called "major upgrades".

From the Microsoft docs, we learn that...

> A typical major upgrade **removes a previous version** of an
> application and installs a new version.

Indeed that was the case -- the previous version is uninstalled
completely before the new version gets installed.  Since we install an
extension that's loaded by explorer, the installer will ask the user to
restart Windows Explorer during the uninstallation of the previous
version (and restarting that might not always work as expected).

There is a way to change this behaviour though, using Wix3's
`MajorUpgrade` element.  Through its `Schedule` property it's possible
to define when the removal of the previous version should occur.

The previous value `afterInstallInitialize` is one of two values that
perform a complete uninstall/install sequence.  The new value
`afterInstallExecute` will install new files on top of the previous
installation (depending on the `REINSTALLMODE` I guess) and remove
older files that are not present.
In the case of the extensions this means that the .dlls from the
previous installation will not be touched, as long as the version
embedded in the DLL info didn't change.  This results in the installer
no longer requesting Windows Explorer to restart, which is a big plus :D

I also changed the REINSTALLMODE to `dmus` to allow downgrades as well.

With this change, the request to restart Windows Explorer should
hopefully happen only once an installation was made using an MSI that
contains this change.  Further updates will only request a restart if
the DLL version of these extensions change...

See also:
  - https://learn.microsoft.com/en-us/windows/win32/msi/major-upgrades
  - https://docs.firegiant.com/wix/schema/wxs/majorupgrade/#attributes:~:text=Schedule

Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
2025-05-30 09:40:29 +02:00
Matthieu Gallien
67fc985804 fix(msi): use standard replace mode for MSI installer
shoudl enable replacing files during install happen only when needed
instead of always

will need to take care of migration from older releases

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
2025-05-30 09:40:29 +02:00
Matthieu Gallien
0ada4bea63
Merge pull request #8314 from nextcloud/backport/8181/stable-3.16
[stable-3.16] fix(gui): handle invalid file name edge case on Windows
2025-05-30 09:40:07 +02:00
Jyrki Gadinger
43b31c8dd5 fix(gui): don't append another slash to the relative path
Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
2025-05-30 09:39:56 +02:00
Jyrki Gadinger
8935293c66 refactor: add new filePath method to folder
Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
2025-05-30 09:39:56 +02:00
Jyrki Gadinger
a42de3e932 fix(gui): always hide the error label if we are allowed to rename
Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
2025-05-30 09:39:56 +02:00
Jyrki Gadinger
d4d3b73863 fix(gui): update info text with proper invalid characters
Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
2025-05-30 09:39:56 +02:00
Jyrki Gadinger
18cbf25031 fix(gui): handle invalid file name edge case on Windows
File names like "c:blah" would break the usage of the dialogue,
displaying a path like "c://blah" instead.

Apparently `QDir::filePath` checks if the passed file name is an
absolute file name using `!QFileInfo::isRelative`, which is the case if
the second character in the string is a colon -- probably indicating a
drive letter.

Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
2025-05-30 09:39:56 +02:00
Matthieu Gallien
eff040cf77
Merge pull request #8313 from nextcloud/backport/8280/stable-3.16
[stable-3.16] fix(AppImage): bundle client translations
2025-05-30 09:39:34 +02:00
Jyrki Gadinger
74e995336b fix(AppImage): bundle client translations
Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
2025-05-30 09:39:22 +02:00
Matthieu Gallien
90a8da3dfb
Merge pull request #8312 from nextcloud/backport/8276/stable-3.16
[stable-3.16] fix(delete): fix move to trash in read-only folders
2025-05-30 09:39:11 +02:00
Matthieu Gallien
4b710c66b6 fix(moveToTrash): enable use of move to trash in some automated tests
should improve coverage for move to trash feature to ensure this is
working as expected by users

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2025-05-30 07:07:46 +00:00
Matthieu Gallien
3c59734da2 fix(readonly): ignore move to trash for read-èonly items
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2025-05-30 07:07:46 +00:00
Matthieu Gallien
3d5dce67a4 fix(delete): fix move to trash when parent folder is read-only
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2025-05-30 07:07:46 +00:00
Matthieu Gallien
030f4f719e fix(delete): optimize item exist checks when propagating from server
QFileInfo::exists(filename) is the fastest method

alos avoid creating too many QFileInfo instances when we need it for
multiple purposes

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2025-05-30 07:07:46 +00:00
Matthieu Gallien
4bd1ed6c15 fix(delete): always print warnings when file deletions fail
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2025-05-30 07:07:46 +00:00
Nextcloud bot
7c97c4a9d1
fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-30 02:56:46 +00:00
Nextcloud bot
4e4d5afb22
fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-29 03:08:55 +00:00
Camila Ayres
c238f9a593
Merge pull request #8308 from nextcloud/backport/8228/stable-3.16
[stable-3.16] fix(migration): migrate general network settings.
2025-05-28 16:48:43 +02:00
Camila Ayres
06bc5674b1 fix(migration): migrate general network settings.
Signed-off-by: Camila Ayres <hello@camilasan.com>
2025-05-28 14:43:47 +00:00
Nextcloud bot
ea8b105987
fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-28 02:59:53 +00:00
Nextcloud bot
b72c9b5730
fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-27 02:58:32 +00:00
Nextcloud bot
c20fd74d4b
fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-25 02:59:33 +00:00
Nextcloud bot
c4910a136d
fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-24 02:59:18 +00:00
Nextcloud bot
80e698a9ec
fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-23 12:27:52 +00:00
Nextcloud bot
298008faf4
fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-22 02:59:50 +00:00
Nextcloud bot
498b2ea24f
fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-21 03:03:40 +00:00
Nextcloud bot
f9aec16b5c
fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-20 03:03:09 +00:00
Nextcloud bot
333fd6ea5f
fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-19 06:00:47 +00:00
Nextcloud bot
c9a6ff1d5e
fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-08 03:09:07 +00:00
Matthieu Gallien
6343f3caad
Merge pull request #8233 from nextcloud/backport/8227/stable-3.16
[stable-3.16] revert: remove duplicated code when copying legacy config to new path.
2025-05-07 12:02:38 +02:00
Camila Ayres
dd74566971 revert: remove duplicated code when copying legacy config to new path.
This reverts commit a6745bc594.
Fix for #8176.
2025-05-07 09:29:17 +02:00
Nextcloud bot
71e9db750f
fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-07 03:02:18 +00:00
Nextcloud bot
a411ca0011
fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-06 03:05:49 +00:00
Nextcloud bot
9e9d274c48
fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-03 03:02:26 +00:00
Nextcloud bot
6e6c40ba74
fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-02 03:02:30 +00:00
Nextcloud bot
6c96b29709
fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-05-01 03:02:47 +00:00
Nextcloud bot
7bc4e9b050
fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-04-30 03:02:49 +00:00
Nextcloud bot
562841d3c6
fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-04-29 03:03:04 +00:00
Matthieu Gallien
0febbee77b
prepare for release 3.16.4
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2025-04-28 12:10:35 +02:00
Matthieu Gallien
3ba8763a76
Merge pull request #8215 from nextcloud/backport/8209/stable-3.16
[stable-3.16] fix(filesystem): ensure we set a file read-only or read-write on Windows
2025-04-28 12:00:56 +02:00
Matthieu Gallien
b6d74509fb fix(propagation): ensure we run file removal propagation steps
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2025-04-28 09:46:41 +00:00
Matthieu Gallien
30db63baca fix(propagation): more logs on folder deletions propagation step
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2025-04-28 09:46:41 +00:00