mirror of
https://gitlab.com/eql/lqml.git
synced 2025-12-06 02:30:38 -08:00
add simple way for installing Qt5.15 libs on Sailfish; add Sailfish screenshot
This commit is contained in:
parent
01faa11ad9
commit
88169af712
9 changed files with 44 additions and 180 deletions
|
|
@ -1,101 +0,0 @@
|
||||||
;;; download (using wget) all rpms for qt5.15 app development
|
|
||||||
;;;
|
|
||||||
;;; note that some files in the list have 2 versions, depending on the arch
|
|
||||||
;;; (you will see 'not found' for those files, which is not an error)
|
|
||||||
|
|
||||||
;; set arch here
|
|
||||||
(defvar *arch* (nth 0 '("armv7hl" "aarch64")))
|
|
||||||
|
|
||||||
(defvar *url* "https://repo.sailfishos.org/obs/sailfishos:/chum/4.5.0.19_~A/~A/")
|
|
||||||
|
|
||||||
(defvar *files*
|
|
||||||
'("opt-kf5-karchive-5.108.0-1.5.2.jolla.~A.rpm"
|
|
||||||
"opt-kf5-kauth-5.108.0-1.4.1.jolla.~A.rpm"
|
|
||||||
"opt-kf5-kbookmarks-5.108.0-1.4.1.jolla.~A.rpm"
|
|
||||||
"opt-kf5-kcodecs-5.108.0-1.5.1.jolla.~A.rpm"
|
|
||||||
"opt-kf5-kcompletion-5.108.0-1.4.1.jolla.~A.rpm"
|
|
||||||
"opt-kf5-kconfig-5.108.0-1.5.1.jolla.~A.rpm"
|
|
||||||
"opt-kf5-kconfig-core-5.108.0-1.5.1.jolla.~A.rpm"
|
|
||||||
"opt-kf5-kconfig-gui-5.108.0-1.5.1.jolla.~A.rpm"
|
|
||||||
"opt-kf5-kconfigwidgets-5.108.0-1.5.1.jolla.~A.rpm"
|
|
||||||
"opt-kf5-kcoreaddons-5.108.0-1.5.1.jolla.~A.rpm"
|
|
||||||
"opt-kf5-kcrash-5.108.0-1.4.1.jolla.~A.rpm"
|
|
||||||
"opt-kf5-kdbusaddons-5.108.0-1.5.1.jolla.~A.rpm"
|
|
||||||
"opt-kf5-kguiaddons-5.108.0-1.5.1.jolla.~A.rpm"
|
|
||||||
"opt-kf5-ki18n-5.108.0-1.5.1.jolla.~A.rpm"
|
|
||||||
"opt-kf5-kiconthemes-5.108.0-1.5.1.jolla.~A.rpm"
|
|
||||||
"opt-kf5-kio-core-5.108.0-1.7.1.jolla.~A.rpm"
|
|
||||||
"opt-kf5-kio-core-libs-5.108.0-1.7.1.jolla.~A.rpm"
|
|
||||||
"opt-kf5-kio-file-widgets-5.108.0-1.7.1.jolla.~A.rpm"
|
|
||||||
"opt-kf5-kio-gui-5.108.0-1.7.1.jolla.~A.rpm"
|
|
||||||
"opt-kf5-kio-widgets-5.108.0-1.7.1.jolla.~A.rpm"
|
|
||||||
"opt-kf5-kio-widgets-libs-5.108.0-1.7.1.jolla.~A.rpm"
|
|
||||||
"opt-kf5-kirigami2-5.108.0-1.6.1.jolla.~A.rpm"
|
|
||||||
"opt-kf5-kitemviews-5.108.0-1.5.1.jolla.~A.rpm"
|
|
||||||
"opt-kf5-kjobwidgets-5.108.0-1.4.1.jolla.~A.rpm"
|
|
||||||
"opt-kf5-knotifications-5.108.0-1.5.1.jolla.~A.rpm"
|
|
||||||
"opt-kf5-kquickcharts-5.108.0-1.5.1.jolla.~A.rpm"
|
|
||||||
"opt-kf5-kservice-5.108.0-1.4.1.jolla.~A.rpm"
|
|
||||||
"opt-kf5-kwallet-5.108.0-1.4.1.jolla.~A.rpm"
|
|
||||||
"opt-kf5-kwallet-libs-5.108.0-1.4.1.jolla.~A.rpm"
|
|
||||||
"opt-kf5-kwidgetsaddons-5.108.0-1.5.1.jolla.~A.rpm"
|
|
||||||
"opt-kf5-kwindowsystem-5.108.0-1.5.1.jolla.~A.rpm"
|
|
||||||
"opt-kf5-kxmlgui-5.108.0-1.4.1.jolla.~A.rpm"
|
|
||||||
"opt-kf5-solid-5.108.0-1.4.1.jolla.~A.rpm"
|
|
||||||
"opt-plasma-integration-5.27.4+git1-1.2.7.jolla.~A.rpm" ; armv7hl
|
|
||||||
"opt-plasma-integration-5.27.4+git1-1.2.6.jolla.~A.rpm" ; aarch64
|
|
||||||
"opt-qt5-qtbase-5.15.10+kde137-1.3.1.jolla.~A.rpm"
|
|
||||||
"opt-qt5-qtbase-common-5.15.10+kde137-1.3.1.jolla.noarch.rpm"
|
|
||||||
"opt-qt5-qtbase-devel-5.15.10+kde137-1.3.1.jolla.~A.rpm"
|
|
||||||
"opt-qt5-qtbase-gui-5.15.10+kde137-1.3.1.jolla.~A.rpm"
|
|
||||||
"opt-qt5-qtconnectivity-5.15.10+kde4-1.3.1.jolla.~A.rpm"
|
|
||||||
"opt-qt5-qtconnectivity-devel-5.15.10+kde4-1.3.1.jolla.~A.rpm"
|
|
||||||
"opt-qt5-qtdeclarative-5.15.10+kde29-1.3.1.jolla.~A.rpm"
|
|
||||||
"opt-qt5-qtdeclarative-devel-5.15.10+kde29-1.3.1.jolla.~A.rpm"
|
|
||||||
"opt-qt5-qtdeclarative-tools-5.15.10+kde29-1.3.1.jolla.~A.rpm"
|
|
||||||
"opt-qt5-qtgraphicaleffects-5.15.10-1.3.1.jolla.~A.rpm"
|
|
||||||
"opt-qt5-qtimageformats-5.15.10+kde9-1.3.1.jolla.~A.rpm"
|
|
||||||
"opt-qt5-qtlocation-5.15.10+kde4-1.5.1.jolla.~A.rpm"
|
|
||||||
"opt-qt5-qtlocation-devel-5.15.10+kde4-1.5.1.jolla.~A.rpm"
|
|
||||||
"opt-qt5-qtmultimedia-5.15.10+kde3-1.3.1.jolla.~A.rpm"
|
|
||||||
"opt-qt5-qtmultimedia-devel-5.15.10+kde3-1.3.1.jolla.~A.rpm"
|
|
||||||
"opt-qt5-qtquickcontrols-5.15.10-1.3.1.jolla.~A.rpm"
|
|
||||||
"opt-qt5-qtquickcontrols2-5.15.10+kde6-1.3.1.jolla.~A.rpm"
|
|
||||||
"opt-qt5-qtquickcontrols2-devel-5.15.10+kde6-1.3.1.jolla.~A.rpm"
|
|
||||||
"opt-qt5-qtsensors-5.15.10-1.3.1.jolla.~A.rpm"
|
|
||||||
"opt-qt5-qtsensors-devel-5.15.10-1.3.1.jolla.~A.rpm"
|
|
||||||
"opt-qt5-qtsvg-5.15.10+kde8-1.3.1.jolla.~A.rpm"
|
|
||||||
"opt-qt5-qtwayland-5.15.10+kde52-1.3.1.jolla.~A.rpm"
|
|
||||||
"opt-qt5-qtwebchannel-5.15.10+kde3-1.3.1.jolla.~A.rpm"
|
|
||||||
"opt-qt5-qtwebsockets-5.15.10+kde2-1.3.1.jolla.~A.rpm"
|
|
||||||
"opt-qt5-qtwebview-5.15.10-1.3.2.jolla.~A.rpm"
|
|
||||||
"opt-qt5-rpm-macros-5.15.10-1.4.1.jolla.noarch.rpm"
|
|
||||||
"opt-qt5-sfos-maliit-platforminputcontext-1.0.1-1.1.4.jolla.~A.rpm" ; armv7hl
|
|
||||||
"opt-qt5-sfos-maliit-platforminputcontext-1.0.1-1.1.3.jolla.~A.rpm" ; aarch64
|
|
||||||
"qqc2-breeze-style-5.27.4+git1-1.2.8.jolla.~A.rpm" ; armv7hl
|
|
||||||
"qqc2-breeze-style-5.27.4+git1-1.2.7.jolla.~A.rpm" ; aarch64
|
|
||||||
"qt-runner-0.4.0-1.6.1.jolla.~A.rpm"))
|
|
||||||
|
|
||||||
(defun cc (&rest args)
|
|
||||||
(apply 'concatenate 'string args))
|
|
||||||
|
|
||||||
(defun run ()
|
|
||||||
(let ((to-dir (format nil "rpms/~A/" *arch*))
|
|
||||||
(to-dir-devel (format nil "rpms/~A-devel/" *arch*)))
|
|
||||||
(ensure-directories-exist to-dir)
|
|
||||||
(dolist (file *files*)
|
|
||||||
(let* ((noarch (search "noarch" file))
|
|
||||||
(devel (search "devel" file))
|
|
||||||
(url (format nil *url* *arch* (if noarch "noarch" *arch*)))
|
|
||||||
(rpm (if noarch
|
|
||||||
file
|
|
||||||
(format nil file *arch*)))
|
|
||||||
(to-dir* (if devel to-dir-devel to-dir)))
|
|
||||||
(unless (probe-file (cc to-dir* rpm))
|
|
||||||
(let ((s (ext:run-program "wget" (list (cc url rpm) "-P" to-dir*))))
|
|
||||||
(loop :for line = (read-line s nil nil)
|
|
||||||
:while line :do (princ line) (terpri)
|
|
||||||
:finally (close s))))))))
|
|
||||||
|
|
||||||
(run)
|
|
||||||
|
|
||||||
33
platforms/sailfish/qt5.15-installation.md
Normal file
33
platforms/sailfish/qt5.15-installation.md
Normal file
|
|
@ -0,0 +1,33 @@
|
||||||
|
# Installation of optional Qt5.15 directly on device
|
||||||
|
|
||||||
|
Important: this requires **SailfishOS 4.5**.
|
||||||
|
|
||||||
|
Go to this site [chumrpm.netlify.app](https://chumrpm.netlify.app/) and
|
||||||
|
download/install **sailfishos-chum-gui** (you don't need the gui, but it's
|
||||||
|
practical to see what's installed on your phone).
|
||||||
|
|
||||||
|
Important: choose **4.5.0.19** as chum-gui version, this is guaranteed
|
||||||
|
to work with Qt5.15 (not all versions have all required rpms we need).
|
||||||
|
|
||||||
|
Above app will add the `chum` repo we will need here.
|
||||||
|
|
||||||
|
Just install the following packages (that's all we need here):
|
||||||
|
```
|
||||||
|
$ devel-su zypper install qt-runner
|
||||||
|
$ devel-su zypper install opt-qt5-qtdeclarative-devel
|
||||||
|
$ devel-su zypper install opt-qt5-qtconnectivity-devel
|
||||||
|
$ devel-su zypper install opt-qt5-qtlocation-devel
|
||||||
|
$ devel-su zypper install opt-qt5-qtmultimedia-devel
|
||||||
|
$ devel-su zypper install opt-qt5-qtquickcontrols2-devel
|
||||||
|
$ devel-su zypper install opt-qt5-qtsensors-devel
|
||||||
|
```
|
||||||
|
In one occasion (opt-qtdeclarative-devel) it will say:
|
||||||
|
```
|
||||||
|
Problem: This request will break your system!
|
||||||
|
nothing provides 'pkgconfig(android-headers)' needed by the to be installed libhybris-devel
|
||||||
|
```
|
||||||
|
You can safely ignore this warning, nothing will really break, just choose:
|
||||||
|
```
|
||||||
|
Solution 3: break libhybris-devel by ignoring some of its dependencies
|
||||||
|
```
|
||||||
|
Now you should be able to build/install the `lqml` executable and library.
|
||||||
|
|
@ -1,50 +0,0 @@
|
||||||
# Manual installation of Qt5.15 rpms directly on device
|
|
||||||
|
|
||||||
Important: this requires **SailfishOS 4.5**.
|
|
||||||
|
|
||||||
Please note that this is not a straightforward way to install, and may turn out
|
|
||||||
being tedious (I'm not a SailfishOS expert and have very limited experience).
|
|
||||||
|
|
||||||
To download all rpms (on desktop Linux), set architecture (default: `armv7hl`)
|
|
||||||
in file `download-rpms.lisp` and run it in ECL:
|
|
||||||
```
|
|
||||||
$ ecl -shell download-rpms.lisp # will download to 'rpms/<arch>/'
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
## Installing all base rpms
|
|
||||||
|
|
||||||
Copy the rpms to device (see `sshfs`) and install with (beware that this will
|
|
||||||
give some unmet dependencies):
|
|
||||||
```
|
|
||||||
$ cd rpms/<arch>
|
|
||||||
$ ./install.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
On missing SailfishOS lib dependencies, search for package providing the lib
|
|
||||||
with:
|
|
||||||
```
|
|
||||||
$ zypper search <name> # omit 'lib' if not found
|
|
||||||
```
|
|
||||||
and install with:
|
|
||||||
```
|
|
||||||
$ devel-su zypper install <name from search>
|
|
||||||
```
|
|
||||||
Repeat until above `install.sh` is successful.
|
|
||||||
|
|
||||||
|
|
||||||
## Installing devel rpms
|
|
||||||
|
|
||||||
First ensure that `pkgconfig` is already installed:
|
|
||||||
```
|
|
||||||
$ devel-su zypper install pkgconfig
|
|
||||||
```
|
|
||||||
All `*-devel` packages must be extracted and copied manually, because they all
|
|
||||||
have missing `pkgconfig(...)` dependencies (which we won't need anyway).
|
|
||||||
|
|
||||||
To do the above, just run the following scipt:
|
|
||||||
```
|
|
||||||
$ cd ../<arch>-devel/
|
|
||||||
$ ./extract-and-copy.sh
|
|
||||||
```
|
|
||||||
Now you should be able to compile lqml, using this qmake: `/opt/qt5/bin/qmake`.
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
for rpm in *.rpm; do
|
|
||||||
rpm2cpio $rpm | cpio -idmv
|
|
||||||
done
|
|
||||||
|
|
||||||
devel-su cp -r opt/* /opt/
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
devel-su rpm -U --force *.rpm
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
for rpm in *.rpm; do
|
|
||||||
rpm2cpio $rpm | cpio -idmv
|
|
||||||
done
|
|
||||||
|
|
||||||
devel-su cp -r opt/* /opt/
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
devel-su rpm -U --force *.rpm
|
|
||||||
|
|
@ -8,30 +8,28 @@ because backporting everything to Qt5.6 (from native SailfishOS) is not a
|
||||||
realistic option.*
|
realistic option.*
|
||||||
|
|
||||||
If you run Linux on your desktop, the simplest way to build and develop is just
|
If you run Linux on your desktop, the simplest way to build and develop is just
|
||||||
doing it directly on the device (only this route is described here).
|
doing it directly on the device (only this route is described here). No bloated
|
||||||
|
SDK or similar is needed.
|
||||||
No bloated SDK or similar is needed, although Qt5.15 devel installation is a
|
|
||||||
little tedious. Anyway I got it to work as described here.
|
|
||||||
|
|
||||||
After connecting your Sailfish device via USB, open 2 console tabs on Linux:
|
After connecting your Sailfish device via USB, open 2 console tabs on Linux:
|
||||||
|
|
||||||
### Tab 1: shell
|
### Tab 1: shell
|
||||||
```
|
```
|
||||||
ssh -L4005:127.0.0.1:4005 defaultuser@192.168.2.15`
|
$ ssh -L4005:127.0.0.1:4005 defaultuser@192.168.2.15`
|
||||||
```
|
```
|
||||||
You need to manually do `source ~/.bashrc` for e.g. your personal aliases to
|
You need to manually do `source ~/.bashrc` for e.g. your personal aliases to
|
||||||
work.
|
work.
|
||||||
|
|
||||||
### Tab 2: file access
|
### Tab 2: file access
|
||||||
```
|
```
|
||||||
mkdir ~/phone
|
$ mkdir ~/phone
|
||||||
sshfs defaultuser@192.168.2.15: ~/phone
|
$ sshfs defaultuser@192.168.2.15: ~/phone
|
||||||
```
|
```
|
||||||
|
|
||||||
First try to compile/install ECL (tab 1) just like you would do on the desktop.
|
First try to compile/install ECL (tab 1) just like you would do on the desktop.
|
||||||
|
|
||||||
Then follow the description
|
Then follow the description
|
||||||
[qt5.15-rpm-installation](platforms/sailfish/qt5.15-rpm-installation.md).
|
[qt5.15-rpm-installation](platforms/sailfish/qt5.15-installation.md).
|
||||||
|
|
||||||
Add an alias in `~/.bashrc` on the device:
|
Add an alias in `~/.bashrc` on the device:
|
||||||
```
|
```
|
||||||
|
|
@ -47,7 +45,7 @@ Run `qt-runner` without arguments to check the following 2 settings:
|
||||||
Now you should be able to build/install lqml using `qmake` from above
|
Now you should be able to build/install lqml using `qmake` from above
|
||||||
installation. Note that you always need to start the apps using `qt-runner`:
|
installation. Note that you always need to start the apps using `qt-runner`:
|
||||||
```
|
```
|
||||||
qt-runner lqml run.lisp
|
$ qt-runner lqml run.lisp
|
||||||
```
|
```
|
||||||
|
|
||||||
For your final apps, just compile them in `build/`, rename `app` accordingly
|
For your final apps, just compile them in `build/`, rename `app` accordingly
|
||||||
|
|
@ -56,7 +54,7 @@ resources, nothing else needs to be installed.
|
||||||
|
|
||||||
If you want to run a compiled but not installed app, you need to pass the path:
|
If you want to run a compiled but not installed app, you need to pass the path:
|
||||||
```
|
```
|
||||||
qt-runner ./my-app
|
$ qt-runner ./my-app
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -65,7 +63,7 @@ Developing with Slime directly on device
|
||||||
|
|
||||||
Using the 2 console tabs as described above, you can start Swank in tab 1:
|
Using the 2 console tabs as described above, you can start Swank in tab 1:
|
||||||
```
|
```
|
||||||
qt-runner lqml run.lisp -slime
|
$ qt-runner lqml run.lisp -slime
|
||||||
```
|
```
|
||||||
Add `-auto` for QML auto reload (just like on the desktop).
|
Add `-auto` for QML auto reload (just like on the desktop).
|
||||||
|
|
||||||
|
|
@ -87,9 +85,9 @@ For the desktop icon see example for `cl-repl` in
|
||||||
Tips
|
Tips
|
||||||
----
|
----
|
||||||
|
|
||||||
You should always kill `sshfs` after you are done using it:
|
You should always kill `sshfs` (desktop Linux) after you are done using it:
|
||||||
```
|
```
|
||||||
pkill sshfs
|
$ pkill sshfs
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
BIN
screenshots/cl-repl-sailfish.jpg
Normal file
BIN
screenshots/cl-repl-sailfish.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 62 KiB |
Loading…
Add table
Add a link
Reference in a new issue