Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added a shipping readme that contains information about packaging #11937

Merged
merged 4 commits into from
Oct 21, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 40 additions & 0 deletions PACKAGING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Shipping

This readme file is for distribution packagers and provides some reasoning and hints about shipping the desktop client for a seamless experience on the Linux desktop.

For that, ownCloud and the distributions need to collaborate.

DeepDiver1975 marked this conversation as resolved.
Show resolved Hide resolved
Note that this information is valid for the ownCloud Desktop App 6.0 and subsequent releases only and does not apply for releases 5.x and below.
## Integration Problems

The ownCloud desktop client gets shipped as AppImage because it is effortless to create, independent from the underlying distro and easy to install, as long as the distribution is not providing a package on their own which is frequently updated.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The ownCloud desktop client gets shipped as AppImage because it is effortless to create, independent from the underlying distro and easy to install, as long as the distribution is not providing a package on their own which is frequently updated.
The ownCloud Desktop App gets shipped as AppImage because it is effortless to create, independent from the underlying distro and easy to install, as long as the distribution is not providing a package on their own which is frequently updated.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Where is this coming from? We ever since name it 'ownCloud Desktop Client' ... 😕

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Where is this coming from? We ever since name it 'ownCloud Desktop Client' ... 😕

This was decided about +2y ago by mstingl. Consequently I named this is all docs + versions. We now have this harmonized naming for the Desktop App, iOS App and Android App.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well but here we are in the client repo and talk about dev facing documentation.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's about consistency which is independent of where we are. just my 2c

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is indeed named that way on the web page as well .... https://owncloud.com/desktop-app/

THX

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

... but is anybody talking about apps in the context of desktop? 😕


With AppImage, there comes one problem: For the integration into the desktop file managers which are provided by the distribution (such as Dolphin for KDE and Nautilus), icons and partly also binary code is needed. That is needed to provide the neccessary information to enable the file managers to show for example icon overlays.

So far, the neccessary code and resources were bundled with the desktop client code, but now the desktop shell integrations resources were split off, so that they can be released and shipped separately.

## Solution

The idea is that everything that is needed to integrate into the desktop apps such as dolphin are part of the Linux distribution that any user chooses to use. Ideally they are packages maintained downstream in the Linux distributions and can be installed via the native package management.

Since these parts are very rarely changing, these packages are very stable and thus, packaging efforts a very very low.

The actual client code, which changes far more often, is either also provided by the Linux distro downstream or by ownCloud as an AppImage. ownCloud chooses to deliver an AppImage because that reduces the effort to package for all distros out there, it is "one fits all".

User now only have to install the AppImage with the latest client, and the shell integrations from their Linux distro package management. The AppImage based client automagically connects to the shell integration code and the overlay icons and menu additions in the file managers work.

With that, the user gets on the one hand very frequently updated desktop clients directly from the project, and nice integration with the desktop technology that is delivered from the distribution.

## Packaging Hints

Here are some hints for packager of the linux distributions which we kindly ask to change their packages in the distros to help us providing the best ownCloud client integration experience:

The shell integrations are available for [KDE Dolphin](https://github.com/owncloud/client-desktop-shell-integration-dolphin), [Nautilus and Caja](https://github.com/owncloud/client-desktop-shell-integration-nautilus). While KDE Dolphin needs compiled code, the latter two are using python.
Each of them should be available as separate distro package, so that they can be suggested to complement "their" file manager.

All of these packages should depend on the [client-extension-resources](https://github.com/owncloud/client-desktop-shell-integration-resources) package, which basically only contains the overlay icons. They can optionally be branded with a distro specific theme, to maintain a cool desktop experience.

Non of the three file manager integration packages (for Dolphin, Nautilus or Caja) need a dependency on the "big" ownCloud desktop client package any more, so that they do not change in foreseeable times.

If the distro decides to ship an own package of the client or lets their user install the provided AppImage, the experience will be perfect in any case.

Loading