diff --git a/AboutPage.qml.in b/AboutPage.qml.in
index 2424c86..eb8a48f 100644
--- a/AboutPage.qml.in
+++ b/AboutPage.qml.in
@@ -80,7 +80,7 @@ Page {
Label {
width: parent.width
horizontalAlignment: Text.AlignHCenter
- text: i18n.tr("Copyright (c) 2020 Morgan McMillian <thrrgilag@dreamfall.space>")
+ text: i18n.tr("Copyright (c) 2021 Morgan McMillian <thrrgilag@dreamfall.space>")
wrapMode: Text.WordWrap
}
@@ -94,7 +94,7 @@ Page {
Label {
width: parent.width
horizontalAlignment: Text.AlignHCenter
- text: i18n.tr("Pantalaimon v0.7.0")
+ text: i18n.tr("Pantalaimon v0.9.1")
wrapMode: Text.WordWrap
fontSize: "large"
}
@@ -102,7 +102,7 @@ Page {
Label {
width: parent.width
horizontalAlignment: Text.AlignHCenter
- text: i18n.tr("Copyright (c) 2020 The Matrix.org Foundation CIC")
+ text: i18n.tr("Copyright (c) 2021 The Matrix.org Foundation CIC")
wrapMode: Text.WordWrap
}
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 71bb392..09ec9a3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -20,7 +20,7 @@ execute_process(
set(QT_IMPORTS_DIR "lib/${ARCH_TRIPLET}")
set(APP_NAME "Pantalaimon UT")
-set(APP_VERSION "0.4.0")
+set(APP_VERSION "0.5.0")
set(PROJECT_NAME "pantalaimon")
set(FULL_PROJECT_NAME "pantalaimon.thrrgilag")
set(CMAKE_INSTALL_PREFIX /)
@@ -41,6 +41,7 @@ endif()
configure_file(manifest.json.in ${CMAKE_CURRENT_BINARY_DIR}/manifest.json)
configure_file(AboutPage.qml.in ${CMAKE_CURRENT_BINARY_DIR}/AboutPage.qml)
+configure_file(pantalaimon.sh.in ${CMAKE_CURRENT_BINARY_DIR}/pantalaimon.sh)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/manifest.json DESTINATION ${CMAKE_INSTALL_PREFIX})
install(FILES ${PROJECT_NAME}.apparmor DESTINATION ${DATA_DIR})
install(DIRECTORY assets DESTINATION ${DATA_DIR})
@@ -51,6 +52,11 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/AboutPage.qml DESTINATION ${DATA_DIR}q
# TODO: example config file for local testing
# install(FILES example.conf DESTINATION ${CMAKE_INSTALL_PREFIX} RENAME pantalaimon.conf)
+file(GLOB_RECURSE OLM_SO_FILES "$ENV{OLM_LIB_INSTALL_DIR}/lib/libolm.so*")
+install(FILES ${OLM_SO_FILES} DESTINATION ${QT_IMPORTS_DIR})
+install(PROGRAMS build/${ARCH_TRIPLET}/pantalaimon/dist/pantalaimon DESTINATION ${CMAKE_INSTALL_PREFIX} RENAME pantalaimonexec)
+install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/pantalaimon.sh DESTINATION ${CMAKE_INSTALL_PREFIX} RENAME pantalaimon)
+
# Translations
file(GLOB_RECURSE I18N_SRC_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/po qml/*.qml qml/*.js)
list(APPEND I18N_SRC_FILES ${DESKTOP_FILE_NAME}.in.h)
@@ -72,9 +78,6 @@ add_custom_target(${DESKTOP_FILE_NAME} ALL
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${DESKTOP_FILE_NAME} DESTINATION ${DATA_DIR})
-# TODO: figure out how to cross compile this
-install(PROGRAMS ${PROJECT_NAME}-${CLICK_ARCH} DESTINATION ${CMAKE_INSTALL_PREFIX} RENAME ${PROJECT_NAME})
-
add_subdirectory(po)
# Make source files visible in qtcreator
diff --git a/README.md b/README.md
index 23ebfee..daa78e6 100644
--- a/README.md
+++ b/README.md
@@ -12,9 +12,9 @@ End-to-end encryption aware Matrix reverse proxy daemon for Ubuntu Touch.
- [x] About page
- [x] App icon
- [x] Fix image fetching (fixed in fluffychat)
+- [x] Cross compile python+pantalaimon
- [ ] Import/export keys
- [ ] Ability to verify, ignore, or blacklist devices
-- [ ] Cross compile python+pantalaimon
- [ ] Release on open-store.io
## Known Issues
@@ -22,19 +22,23 @@ End-to-end encryption aware Matrix reverse proxy daemon for Ubuntu Touch.
* Previously encrypted messages cannot be decrypted
* No user interaction to verify, ignore, or blacklist devices
-## Build
+## Build for armhf
-This project is not currently setup for cross building. A binary will need to
-be compiled on a device for each target architecture. Make sure there is
-enough space on the device to install the build tools and compile python, olm,
-and pantalaimon.
+```sh
+git clone https://git.sr.ht/~thrrgilag/pantalaimon-ut
+git submodule update --init
+clickable build-libs --arch armhf
+clickable --arch armhf
+```
-* `git clone https://git.sr.ht/~thrrgilag/pantalaimon-ut`
-* push dev-build.sh to /home/phablet
-* run `dev-build.sh`
-* pull /home/phablet/pantalaimon-build/dist/pantalaimon
-* rename pantalaimon to pantalaimon-armhf (or pantalaimon-arm64)
-* run `clickable`
+## Build for arm64
+
+```sh
+git clone https://git.sr.ht/~thrrgilag/pantalaimon-ut
+git submodule update --init
+clickable build-libs --arch arm64
+clickable --arch arm64
+```
## Contributing
@@ -48,6 +52,6 @@ Bugs can be filed at https://todo.sr.ht/~thrrgilag/pantalaimon-ut
## License
-Copyright (C) 2020 Morgan McMillian
+Copyright (C) 2021 Morgan McMillian
Licensed under the Apache Software License 2.0
diff --git a/build-python.sh b/build-python.sh
new file mode 100755
index 0000000..e5353fb
--- /dev/null
+++ b/build-python.sh
@@ -0,0 +1,45 @@
+#!/bin/bash
+
+PYTHON_VERSION="3.7.7"
+CRYPTOGRAPHY_VERSION="3.2.1"
+
+echo "...building python..."
+cd ${BUILD_DIR}
+wget -qO- "https://www.python.org/ftp/python/${PYTHON_VERSION}/Python-${PYTHON_VERSION}.tgz" | tar -xz
+
+echo
+echo "...building python..."
+echo
+cd Python-${PYTHON_VERSION}
+./configure --prefix="${INSTALL_DIR}" --enable-shared
+make
+make install
+cd ..
+
+export LD_LIBRARY_PATH=${INSTALL_DIR}/lib:${LD_LIBRARY_PATH}
+
+echo
+echo "...installing pyinstaller..."
+echo
+${INSTALL_DIR}/bin/pip3 install --upgrade pyinstaller
+
+export CRYPTOGRAPHY_ALLOW_OPENSSL_102="yes"
+echo
+echo "...installing cryptography..."
+echo
+${INSTALL_DIR}/bin/pip3 install --upgrade cryptography==${CRYPTOGRAPHY_VERSION}
+
+export LD_LIBRARY_PATH=${ROOT}/build/${ARCH_TRIPLET}/olm/install/lib/${ARCH_TRIPLET}:${LD_LIBRARY_PATH}
+export CFLAGS=-I${ROOT}/build/${ARCH_TRIPLET}/olm/install/include
+export LDFLAGS=-L${ROOT}/build/${ARCH_TRIPLET}/olm/install/lib/${ARCH_TRIPLET}
+echo
+echo "...installing pantalaimon..."
+echo
+${INSTALL_DIR}/bin/pip3 install --upgrade pantalaimon
+
+export PATH=/usr/${ARCH_TRIPLET}/bin:${PATH}
+echo
+echo "...creating executable..."
+echo
+${INSTALL_DIR}/bin/pyinstaller --onefile ${INSTALL_DIR}/bin/pantalaimon
+
diff --git a/clickable.json b/clickable.json
index bafb7fc..f744373 100644
--- a/clickable.json
+++ b/clickable.json
@@ -1,5 +1,24 @@
{
"clickable_minimum_required": "6.12.2",
"builder": "cmake",
+ "libraries": {
+ "olm": {
+ "builder": "cmake",
+ "build_args": [ "-Bbuild",
+ "-DOLM_TESTS=OFF",
+ "-DBUILD_SHARED_LIBS=ON"
+ ],
+ "prebuild": "git submodule update --init --recursive"
+ },
+ "pantalaimon": {
+ "builder": "custom",
+ "dependencies_target": [
+ "libffi-dev",
+ "libssl-dev",
+ "libsqlite3-dev"
+ ],
+ "build": "${ROOT}/build-python.sh"
+ }
+ },
"kill": "qmlscene"
}
diff --git a/pantalaimon.sh.in b/pantalaimon.sh.in
new file mode 100755
index 0000000..64bd403
--- /dev/null
+++ b/pantalaimon.sh.in
@@ -0,0 +1,6 @@
+#!/bin/bash
+
+INSTALL_DIR=`dirname $0`
+export LD_LIBRARY_PATH=$INSTALL_DIR/lib/${ARCH_TRIPLET}:$LD_LIBRARY_PATH
+$INSTALL_DIR/pantalaimonexec $@
+
diff --git a/po/pantalaimon.thrrgilag.pot b/po/pantalaimon.thrrgilag.pot
index 119513c..012ce98 100644
--- a/po/pantalaimon.thrrgilag.pot
+++ b/po/pantalaimon.thrrgilag.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: pantalaimon.thrrgilag\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-09-08 03:47+0000\n"
+"POT-Creation-Date: 2021-03-10 06:14+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -107,14 +107,14 @@ msgstr ""
msgid "LogLevel"
msgstr ""
-#: ../qml/SettingsPage.qml:148
+#: ../qml/SettingsPage.qml:146
msgid "Delete homeserver"
msgstr ""
-#: ../qml/SettingsPage.qml:166
+#: ../qml/SettingsPage.qml:164
msgid "No homeservers"
msgstr ""
-#: ../qml/SettingsPage.qml:227
+#: ../qml/SettingsPage.qml:225
msgid "Add Homeserver"
msgstr ""