Skip to content

Fix and update the building page #242

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

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
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
74 changes: 50 additions & 24 deletions modules/ROOT/pages/appendices/building.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,9 @@

== Introduction


== Building the Desktop Client

{description} Here you can finde the source of the link:https://owncloud.org/download/#owncloud-desktop-client[ownCloud Desktop App]. You should read this section if you want to develop for the Desktop App. Build instructions are subject to change as development proceeds.

NOTE: Please check the version for which you want to build.
Expand All @@ -31,19 +34,15 @@ These instructions are updated to work with the latest version of the ownCloud D

== Getting the Source Code

The
xref:generic-build-instructions[generic build instructions]
pull the latest code directly from GitHub, and work on
xref:linux[Linux], xref:macos[Mac OS X], and
xref:windows-development-build-with-kde-craft[Windows].
The xref:generic-build-instructions[generic build instructions] pull the latest code directly from GitHub, and work on xref:linux[Linux], xref:macos[Mac OS X], and xref:windows-development-build-with-kde-craft[Windows].

== Linux

For the published Desktop Apps we link against QT5 dependencies from our own repositories so that we can have the same versions on all distributions. This chapter shows you how to build the Desktop App yourself with this setup. If you want to use the QT5 dependencies from your system, see the next chapter.

You may wish to use source packages for your Linux distribution, as these give you the exact sources from which the binary packages are built. These are hosted on the
{owncloud-obs}[ownCloud repository from OBS].
Go to the {opensuse-url}[Index of repositories] to see all the Linux client repositories.
For the published desktop clients, we link against QT5 dependencies from our own repositories so that we can have the same versions on all distributions. This chapter shows you how to build the client yourself with this setup. If you want to use the QT5 dependencies from your system, see the next chapter.

You may wish to use source packages for your Linux distribution, as these give you the exact sources from which the binary packages are built. These are hosted on the {owncloud-obs}[ownCloud repository from OBS]. Go to the {opensuse-url}[Index of repositories] to see all the Linux client repositories.

[NOTE]
====
Expand All @@ -62,20 +61,40 @@ echo 'deb-src http://download.opensuse.org/repositories/isv:/ownCloud:/desktop/D

The above registers the source repository of the released Desktop App. There is also `.../desktop:/testing/...` and e.g. `.../desktop:/daily:/2.7/...` for beta versions or daily snapshots.

for beta versions or daily snapshots.

Install the dependencies using the following commands for your specific Linux distribution. Make sure the repositories for source packages are enabled. These are:

[cols="30%,70%",options="header"]
|===
| Distribution | Installation Instructions
| Debian/Ubuntu | `apt update; apt build-dep owncloud-client`
| openSUSE/SLES | `zypper ref; zypper si -d owncloud-client`
| Fedora/CentOS/RHEL | `yum install yum-utils; yum-builddep owncloud-client`
| Distribution
| Installation Instructions

| Debian / Ubuntu
a|
[source,bash]
----
apt update && apt build-dep owncloud-client
----

| openSUSE / SLES
a|
[source,bash]
----
zypper ref && zypper si -d owncloud-client
----

| Fedora / CentOS / RHEL
a|
[source,bash]
----
yum install yum-utils && yum-builddep owncloud-client
----
|===

Follow the xref:generic-build-instructions[generic build instructions], starting with step 2.

== Linux with System Dependencies
Copy link
Contributor

Choose a reason for hiding this comment

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

Didn't we agree to keep this one?

Copy link
Contributor

Choose a reason for hiding this comment

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

I'd suggest to move 'Linux with System Dependencies' also into github. e.g. as part of the ownbuild README?

Copy link
Contributor

Choose a reason for hiding this comment

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

Unrelated to Ownbuild

=== Building With System QT5 Dependencies

Build sources from a GitHub checkout with dependencies provided by your Linux distribution. While this allows more freedom for development, it does not exactly represent what we ship as packages. See above for how to recreate packages from source.

Expand All @@ -85,9 +104,12 @@ To get the source dependencies on Debian and Ubuntu, run the following command:

[source,bash]
----
sudo apt install qtdeclarative5-dev libinotifytools-dev \
qt5keychain-dev python3-sphinx \
libsqlite3-dev
sudo apt install \
qtdeclarative5-dev \
libinotifytools-dev \
qt5keychain-dev \
python3-sphinx \
libsqlite3-dev
----
====

Expand Down Expand Up @@ -183,7 +205,7 @@ iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.co

The first command allows running scripts from remote sources. The second command starts installing KDE Craft. You are asked where you want to put the main folder, called `CraftRoot`, which will contain all source, build, and install folders. Please choose a disk with sufficient free space.

Last but not least, you need to choose the compiler you want to use. The official builds only supports {ms-visual-studio-2019-url}[Microsoft Visual Studio 2019]. However, if you're feeling adventurous, you can also try to use {mingw-w64-url}[Mingw-w64]. In contrast to Visual Studio, which you need to install in advance, KDE Craft can install `Mingw-w64` for you.
The currently supported version of Visual Studio is {ms-visual-studio-2019-url}[Microsoft Visual Studio 2019]. However, if you're feeling adventurous, you can also try to use {mingw-w64-url}[Mingw-w64]. In contrast to Visual Studio, which you need to install in advance, KDE Craft can install `Mingw-w64` for you.

TIP: Unless you need 32bit builds, you should stick to the default of x64 builds.

Expand Down Expand Up @@ -292,7 +314,7 @@ git clone git://github.com/owncloud/client.git
cd client
----
+
Note master this default, but you can also check out a tag like v2.5.4
Note that the checkout defaults to master, you can also check out a tag like v2.10.1
+
[source,bash]
----
Expand All @@ -318,18 +340,20 @@ cd client-build
cmake -DCMAKE_PREFIX_PATH=/opt/ownCloud/qt-5.12.4 -DCMAKE_INSTALL_PREFIX=/Users/path/to/client/../install/ ..
----
+
For Linux builds (using QT5 libraries via build-dep) a typical setting is
For Linux builds (using QT5 libraries via build-dep) a typical setting is:
+
[source,console]
----
-DCMAKE_PREFIX_PATH=/opt/ownCloud/qt-5.12.4/
----
+
However, the version number may vary. For Linux builds using system dependencies `-DCMAKE_PREFIX_PATH` is not needed. You must use absolute paths for the `include` and `library` directories.
However, the version number may vary.
+
For Linux builds using system dependencies `-DCMAKE_PREFIX_PATH` is not needed. You must use absolute paths for the `include` and `library` directories.
+
On Mac OS X, you need to specify `-DCMAKE_INSTALL_PREFIX=target`, where `target` is a private location, i.e. in parallel to your build dir by specifying `../install`.
+
qtkeychain must be compiled with the same prefix e.g.,
`qtkeychain` must be compiled with the same prefix e.g.,
+
[source,console]
----
Expand All @@ -346,6 +370,8 @@ make
+
The ownCloud binary will appear in the `bin` directory.

*Optional Steps*

[start=5]
. (Optional) Call `make install` to install the Desktop App to the `/usr/local/bin` directory (or as per CMAKE_INSTALL_PREFIX). +
The following are known CMake parameters:
Expand All @@ -359,7 +385,7 @@ The following are known CMake parameters:
* `CMAKE_PREFIX_PATH=/path/to/Qt5.12.4/5.12.4/yourarch/lib/cmake/`: Builds using that Qt version.
* `CMAKE_INSTALL_PREFIX=path`: Set an install prefix. This is mandatory on Mac OS.
+
. *Optional:* Run a Desktop App that was installed in a custom CMAKE_INSTALL_PREFIX may not pick up the correct libraries automatically. You can use LD_LIBRARY_PATH to help find the libraries like this:
. Run a client that was installed in a custom `CMAKE_INSTALL_PREFIX` may not pick up the correct libraries automatically. You can use `LD_LIBRARY_PATH` to help find the libraries like this:
+
[source,console]
----
Expand All @@ -368,5 +394,5 @@ LD_LIBRARY_PATH=/opt/ownCloud/qt-5.12.4/lib/x86_64-linux-gnu/:/Users/path/to/cli

== Compiling via ownBrander

If you don’t want to go through the trouble of doing all the compiling work manually, you can use
https://doc.owncloud.com/branded_clients/[ownBrander] to create installer images for all platforms.
If you don’t want to go through the challenges of doing all the compiling work manually, you can use
xref:{latest-branding-version}@branded_clients:ROOT:index.adoc[ownBrander] to create installer images for all platforms.
9 changes: 9 additions & 0 deletions modules/ROOT/pages/installing.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,15 @@ ifeval::["{page-component-version}" == "next"]
:url-version: latest
endif::[]

// evaluate the url version which is either the
// * branch name when it is a stable branch or
// * latest when it is the next branch

:url-version: {page-component-version}
ifeval::["{page-component-version}" == "next"]
:url-version: latest
endif::[]

== Introduction

{description} Continuous synchronization to and from the ownCloud server provides ease of use combined with comprehensive access control.
Expand Down
5 changes: 5 additions & 0 deletions site.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,11 @@ content:
- url: .
branches:
- HEAD
# the docs-xxx are just present for the test build to satisfy used references
# the real build is made in the docs repo using correct values
- url: https://github.com/owncloud/docs-client-branding.git
branches:
- master

ui:
output_dir: assets
Expand Down