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

appimage for arm? #2564

Open
Thatoo opened this issue Oct 18, 2020 · 12 comments
Open

appimage for arm? #2564

Thatoo opened this issue Oct 18, 2020 · 12 comments
Labels
enhancement enhancement of a already implemented feature/code package: appimage

Comments

@Thatoo
Copy link
Contributor

Thatoo commented Oct 18, 2020

Would it be possible to have an appimage for arm64 for pinephone, pinetab and others...?

@er-vin
Copy link
Member

er-vin commented Oct 19, 2020

Technically yes (although I guess we might need to throw hardware at it which we don't have for now). That's not on our roadmap for now though.

@er-vin er-vin added enhancement enhancement of a already implemented feature/code package: appimage labels Oct 19, 2020
@robster7674
Copy link

I am completely new to NextCloud, and when I saw this issue I wanted to give it a try to see if I can get it running on my PinePhone on Manjaro/PhoSh beta23, using instructions from https://github.com/nextcloud/desktop#linux--mac-os.

After resolving various errors about missing packages and components I eventually get stuck at:

[manjaro@manjaro-arm build]$ cmake .. -DCMAKE_INSTALL_PREFIX=~/nextcloud-desktop-client -DCMAKE_BUILD_TYPE=Debug
-- Build of crashreporter disabled.
-- GIT_SHA1 d1f9a58ac5f1b9278115116a84d09309ac3d9006
Compiling with updater
-- Using Qt 5.15.3 (/usr/bin/qmake)
list of plugins suffix;cfapi;xattr
discovery suffix
/home/manjaro/git/desktop/src/libsync/vfs/suffix
/home/manjaro/git/desktop/src/libsync/vfs/suffix suffix
-- Added vfsPlugin without tests: suffix
discovery cfapi
/home/manjaro/git/desktop/src/libsync/vfs/cfapi
/home/manjaro/git/desktop/src/libsync/vfs/cfapi cfapi
-- Added vfsPlugin without tests: cfapi
discovery xattr
/home/manjaro/git/desktop/src/libsync/vfs/xattr
/home/manjaro/git/desktop/src/libsync/vfs/xattr xattr
-- Added vfsPlugin without tests: xattr
Building with libcloudproviderssupport
CMake Error at shell_integration/dolphin/CMakeLists.txt:11 (find_package):
  Could not find a package configuration file provided by "ECM" (requested
  version 5.16.0) with any of the following names:

    ECMConfig.cmake
    ecm-config.cmake

  Add the installation prefix of "ECM" to CMAKE_PREFIX_PATH or set "ECM_DIR"
  to a directory containing one of the above files.  If "ECM" provides a
  separate development package or SDK, be sure it has been installed.


-- Configuring incomplete, errors occurred!
See also "/home/manjaro/git/desktop/build/CMakeFiles/CMakeOutput.log".

Full log is attached.

[manjaro@manjaro-arm build]$ uname -r
5.17.1-2-MANJARO-ARM

CMakeOutput.log

@jwillikers
Copy link

@robster7674 Try pacman -Sy extra-cmake-modules?

@robster7674
Copy link

Stumbled upon a post that mentioned to install extra-cmake-modules. That worked, only thing remaining was an optional package CMocka not found, so I installed that as well. Then I end up without any warnings or errors. Due to time limitations I cannot start make install now, will do so tomorrow morning (CET) and report back.

@robster7674
Copy link

@robster7674 Try pacman -Sy extra-cmake-modules?

Thanks @jwillikers , your post crossed mine. ;)

@robster7674
Copy link

make install gave me a permissions error:

CMake Error at shell_integration/dolphin/cmake_install.cmake:83 (file):
  file INSTALL cannot copy file
  "/home/manjaro/git/desktop/build/shell_integration/dolphin/nextclouddolphinoverlayplugin.so"
  to "/usr/lib/qt/plugins/kf5/overlayicon/nextclouddolphinoverlayplugin.so":
  Permission denied.
Call Stack (most recent call first):
  shell_integration/cmake_install.cmake:57 (include)
  cmake_install.cmake:72 (include)

For now I used sudo to run make install and then the client starts up fine on the PinePhone. Over the upcoming days I will reimage the phone and start from scratch, then document the steps here.

@janvlug
Copy link

janvlug commented Apr 14, 2022

Did you see this repo: https://gitlab.com/undef1/signal-desktop-builder

@robster7674
Copy link

robster7674 commented Apr 15, 2022

After a reimage with Manjaro/PhoSh using beta23, I installed these packages using yay to get the cmake working:

git make cmake qt5-tools extra-cmake-modules doxygen kio qt5-webengine qtkeychain-qt5 qt5-websockets qt5-quickcontrols qt5-quickcontrols2 python-sphinx pydflatex cmocka appstream

Let's see what the make install does now. Edit: make install fails again with permissions issue, need to dig into this:

...
-- Set runtime path of "/home/manjaro/nextcloud-desktop-client/lib/libnextclouddolphinpluginhelper.so" to "/home/manjaro/nextcloud-desktop-client/lib"
CMake Error at shell_integration/dolphin/cmake_install.cmake:83 (file):
  file cannot create directory: /usr/lib/qt/plugins/kf5/overlayicon.  Maybe
  need administrative privileges.
Call Stack (most recent call first):
  shell_integration/cmake_install.cmake:57 (include)
  cmake_install.cmake:72 (include)

@DavidS
Copy link

DavidS commented Jul 18, 2023

Hey @er-vin by now you can get the hardware in every cloud. Would it be possible to reconsider? raspberry-pies are common enough as cheap desktops where it would be really nice to have the nextcloud-desktop installed.

@marbx
Copy link

marbx commented Aug 9, 2023

I used this script to compile desktop clients 3.9.0 and 3.8.2 on a Raspberry Pi Zero 2 W, 64bit, 2GB swap

For 32bit ARM, Qt does not provide a web/engine/browser library which the desktop needs to compile.

GREEN='\033[0;32m'; BIYellow='\033[1;93m'; RED='\033[0;31m'; NOCOLOR='\033[0m'; DESCRIPTION () { printf "${BIYellow}$1${NOCOLOR}\n"; }


#### Fehlt auf 32bit zero
# qtwebengine5-dev ---> libqt5webengine-data qutebrowser-qtwebengine

DESCRIPTION 'Ensure Debian packagess'
packagesWanted=( qt5-qmake cmake g++ openssl libssl-dev libzip-dev qtwebengine5-dev libqt5webengine-data qutebrowser-qtwebengine qtbase5-private-dev qtdeclarative5-dev qt5keychain-dev qttools5-dev sqlite3 libsqlite3-dev libqt5svg5-dev zlib1g-dev libqt5websockets5-dev qtquickcontrols2-5-dev libkf5archive-dev extra-cmake-modules libkf5kio-dev libqt5webkit5-dev inkscape doxygen )
packagesMissing=()
for apackage in "${packagesWanted[@]}"; do
    # Add to list unlesss installed (dpkg --verify returns true if it can verify install)
    dpkg --verify "$apackage" || packagesMissing+=("$apackage")
done
if (( ${#packagesMissing[@]} != 0 )); then
    sudo apt update
    sudo apt install --yes ${packagesMissing[*]}
fi

TAG=v3.8.2
WORKINGDIR="nextcloudDesktop${TAG}"
INSTALLDIR="~/nextcloud-desktop-client${TAG}"

DESCRIPTION "Get source: clone ${TAG}"
[ -d $WORKINGDIR ] || git -c advice.detachedHead=false clone --depth 1 --branch $TAG https://github.com/nextcloud/desktop.git $WORKINGDIR|| exit
cd $WORKINGDIR
git submodule update --init || exit


DESCRIPTION 'Meta make: create the build/Makefile'
cmake -S . -B build -DCMAKE_INSTALL_PREFIX=$INSTALLDIR -DCMAKE_BUILD_TYPE=Debug || exit


DESCRIPTION 'Even the user install requires access to two system directories'
DIR4U=/usr/lib/aarch64-linux-gnu/qt5/plugins/kf5/overlayicon     && ([ -d $DIR4U ] || sudo mkdir $DIR4U) && sudo chmod 777 $DIR4U
DIR4U=/usr/lib/aarch64-linux-gnu/qt5/plugins/kf5/kfileitemaction && ([ -d $DIR4U ] || sudo mkdir $DIR4U) && sudo chmod 777 $DIR4U


# target install also installs the tests :-(
DESCRIPTION 'Make: create the executable'
#time cmake --build build --target install  || exit
time cmake --build build --target nextcloud  || exit

On the Zero, building the tests takes an eternity, only the desktops about 3 hours, the desktops runs without an issue for the last two weeks, as root.

I guessed the required packages, some might not be needed. It would be nice to see the source that builds the AppImages, or an ARM64 AppImage.

@jwillikers
Copy link

Just an FYI, there is an unofficial Flatpak that is available for aarch64 systems: https://flathub.org/apps/com.nextcloud.desktopclient.nextcloud

I've been using it on PINE64 / Raspberry Pi devices for a couple of years now.

@strgalt-t
Copy link

@jwillikers thank you for sharing, the aarch64 image also works fine on Asahi Linux with Mac ARMS.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement enhancement of a already implemented feature/code package: appimage
Projects
None yet
Development

No branches or pull requests

8 participants