Prosody Appimage: supports only x86_64:
* stop trying to generated an ARM64 AppImage (as it is buggy) * display a warning in the settings if incompatible CPU detected * documentation for a workaround Implements #120.
This commit is contained in:
parent
52753627d3
commit
ed3f236120
18
CHANGELOG.md
18
CHANGELOG.md
@ -1,6 +1,6 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
## 6.0.0-beta.1
|
## 6.0.0
|
||||||
|
|
||||||
### Breaking changes
|
### Breaking changes
|
||||||
|
|
||||||
@ -31,15 +31,17 @@ you can safely uninstall Prosody.
|
|||||||
If you were using the custom Peertube docker image that is embedding Prosody, you can switch back to the official
|
If you were using the custom Peertube docker image that is embedding Prosody, you can switch back to the official
|
||||||
Peertube image.
|
Peertube image.
|
||||||
|
|
||||||
### Known issues
|
#### Known issues
|
||||||
|
|
||||||
This release will probably not run on ARM CPUs.
|
The Prosody AppImage will only work on x86_64 CPU.
|
||||||
There is a work in progress to make it work on ARM64, but there are bugs in the building tools.
|
It is not compatible with arm64 and other CPU architectures.
|
||||||
Subscribe to this [issue](https://github.com/JohnXLivingston/peertube-plugin-livechat/issues/120) to have updates.
|
|
||||||
You can also subscribe to this [issue on appimage-builder repo](https://github.com/AppImageCrafters/appimage-builder/issues/278).
|
|
||||||
|
|
||||||
If you want to try this release on such CPUs, you can manually install Prosody using your package manager
|
For now, I did not manage to make it work for other CPU architectures.
|
||||||
(as for older plugin versions), and check the settings «use system Prosody» in plugin settings.
|
If you want te be notified when it will be possible, you can subscribe and comment this
|
||||||
|
[issue](https://github.com/JohnXLivingston/peertube-plugin-livechat/issues/124).
|
||||||
|
|
||||||
|
In the meantime, you can use the plugin by [manually installing Prosody](documentation/installation.md) on your server
|
||||||
|
(as for version priori to v6.0.0).
|
||||||
|
|
||||||
### New Features
|
### New Features
|
||||||
|
|
||||||
|
@ -13,7 +13,8 @@ fi
|
|||||||
|
|
||||||
cd "$prosody_build_dir"
|
cd "$prosody_build_dir"
|
||||||
|
|
||||||
if [ -f "$prosody_build_dir/livechat-prosody-x86_64.AppImage" ] && [ -f "$prosody_build_dir/livechat-prosody-aarch64.AppImage" ]; then
|
# if [ -f "$prosody_build_dir/livechat-prosody-x86_64.AppImage" ] && [ -f "$prosody_build_dir/livechat-prosody-aarch64.AppImage" ]; then
|
||||||
|
if [ -f "$prosody_build_dir/livechat-prosody-x86_64.AppImage" ]; then
|
||||||
echo "Prosody images already built."
|
echo "Prosody images already built."
|
||||||
else
|
else
|
||||||
echo "Prosody images must be build..."
|
echo "Prosody images must be build..."
|
||||||
@ -32,18 +33,18 @@ else
|
|||||||
|
|
||||||
echo "Copying appimage source files..."
|
echo "Copying appimage source files..."
|
||||||
cp "$rootdir/prosody/appimage_x86_64.yml" "$prosody_build_dir/appimage_x86_64.yml"
|
cp "$rootdir/prosody/appimage_x86_64.yml" "$prosody_build_dir/appimage_x86_64.yml"
|
||||||
cp "$rootdir/prosody/appimage_aarch64.yml" "$prosody_build_dir/appimage_aarch64.yml"
|
# cp "$rootdir/prosody/appimage_aarch64.yml" "$prosody_build_dir/appimage_aarch64.yml"
|
||||||
cp "$rootdir/prosody/launcher.lua" "$prosody_build_dir/launcher.lua"
|
cp "$rootdir/prosody/launcher.lua" "$prosody_build_dir/launcher.lua"
|
||||||
|
|
||||||
echo "Building Prosody x86_64..."
|
echo "Building Prosody x86_64..."
|
||||||
appimage-builder --recipe "$prosody_build_dir/appimage_x86_64.yml"
|
appimage-builder --recipe "$prosody_build_dir/appimage_x86_64.yml"
|
||||||
|
|
||||||
echo "Cleaning build folders before building aarch64..."
|
# echo "Cleaning build folders before building aarch64..."
|
||||||
rm -rf "$prosody_build_dir/AppDir"
|
# rm -rf "$prosody_build_dir/AppDir"
|
||||||
rm -rf "$prosody_build_dir/appimage-build"
|
# rm -rf "$prosody_build_dir/appimage-build"
|
||||||
|
|
||||||
echo "Building Prosody aarch64..."
|
# echo "Building Prosody aarch64..."
|
||||||
appimage-builder --recipe "$prosody_build_dir/appimage_aarch64.yml"
|
# appimage-builder --recipe "$prosody_build_dir/appimage_aarch64.yml"
|
||||||
|
|
||||||
# For some obscur reason, if we keep AppDir and appimage-build folders,
|
# For some obscur reason, if we keep AppDir and appimage-build folders,
|
||||||
# and if we try to install the plugin using the Peertube CLI,
|
# and if we try to install the plugin using the Peertube CLI,
|
||||||
@ -56,8 +57,8 @@ fi
|
|||||||
|
|
||||||
echo "Copying Prosody dist files..."
|
echo "Copying Prosody dist files..."
|
||||||
mkdir -p "$prosody_destination_dir" && cp $prosody_build_dir/livechat-prosody-x86_64.AppImage "$prosody_destination_dir/"
|
mkdir -p "$prosody_destination_dir" && cp $prosody_build_dir/livechat-prosody-x86_64.AppImage "$prosody_destination_dir/"
|
||||||
mkdir -p "$prosody_destination_dir" && cp $prosody_build_dir/livechat-prosody-aarch64.AppImage "$prosody_destination_dir/"
|
# mkdir -p "$prosody_destination_dir" && cp $prosody_build_dir/livechat-prosody-aarch64.AppImage "$prosody_destination_dir/"
|
||||||
|
|
||||||
echo "Prosody AppImage OK."
|
echo "Prosody AppImages OK."
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
@ -15,3 +15,67 @@ Since version v6.0.0, this plugin does not need any Prosody installation.
|
|||||||
If you were using this plugin before this version, and if you had installed Prosody manually, you can safely uninstall Prosody.
|
If you were using this plugin before this version, and if you had installed Prosody manually, you can safely uninstall Prosody.
|
||||||
|
|
||||||
If you were using the custom Peertube docker image that is embedding Prosody, you can switch back to the official Peertube image.
|
If you were using the custom Peertube docker image that is embedding Prosody, you can switch back to the official Peertube image.
|
||||||
|
|
||||||
|
## Known issues: CPU compatibility
|
||||||
|
|
||||||
|
The Prosody AppImage included in the plugin will only work on x86_64 CPU.
|
||||||
|
It is not compatible with arm64 and other CPU architectures.
|
||||||
|
|
||||||
|
For now, I did not manage to make it work for other CPU architectures.
|
||||||
|
If you want te be notified when it will be possible, you can subscribe and comment this
|
||||||
|
[issue](https://github.com/JohnXLivingston/peertube-plugin-livechat/issues/124).
|
||||||
|
|
||||||
|
To use the plugin, you will have to manually install Prosody on your server
|
||||||
|
(see below).
|
||||||
|
|
||||||
|
Once it is done, you have to check `Use system Prosody` in the plugin settings.
|
||||||
|
|
||||||
|
### On non-docker Peertube installation
|
||||||
|
|
||||||
|
For standard installation, you just have to install the official `prosody` package
|
||||||
|
for your linux distribution.
|
||||||
|
|
||||||
|
For example, on Debian/Ubuntu:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo apt install prosody
|
||||||
|
```
|
||||||
|
|
||||||
|
You can then disable the service that starts automatically when you install
|
||||||
|
Prosody (the plugin will launch a Prosody process, there is no need for the
|
||||||
|
service to run).
|
||||||
|
For example, on Debian/Ubuntu (and other Systemd based linux distributions):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo systemctl disable prosody && sudo systemctl stop prosody
|
||||||
|
```
|
||||||
|
|
||||||
|
Warning: do not disable Prosody if it is used for another service on your server,
|
||||||
|
like for example Jitsi.
|
||||||
|
|
||||||
|
### Docker
|
||||||
|
|
||||||
|
You will have to generate a Peertube image that includes Prosody in the same
|
||||||
|
container that Peertube.
|
||||||
|
I know this is not the standard way to do this with Docker, but keep in mind it
|
||||||
|
is a temporary workaround.
|
||||||
|
|
||||||
|
To generate and use such an image, please refer to the Docker documentation.
|
||||||
|
The Docker file to generate the image should be:
|
||||||
|
|
||||||
|
```Docker
|
||||||
|
FROM chocobozzz/peertube:production-bullseye
|
||||||
|
|
||||||
|
RUN apt -y update && apt install -y prosody && apt -y clean
|
||||||
|
```
|
||||||
|
|
||||||
|
### Yunohost
|
||||||
|
|
||||||
|
You have to disable `metronome` (the XMPP server provided by Yunohost), and
|
||||||
|
install `prosody`.
|
||||||
|
|
||||||
|
This is already done by the Yunohost Peertube application, as it was required for the
|
||||||
|
plugin before the v6.0.0.
|
||||||
|
But it may be removed in a near feature (to avoid drawbacks of this method).
|
||||||
|
I have to discuss with Yunohost team, to decide how we can do to minimize drawbacks,
|
||||||
|
and maximize compatibility.
|
||||||
|
@ -15,3 +15,69 @@ Depuis la version v6.0.0, ce plugin ne nécessite plus l'installation de Prosody
|
|||||||
Si vous utilisiez ce plugin avant, et que vous aviez installé Prosody manuellement, vous pouvez le désinstaller en tout sécurité.
|
Si vous utilisiez ce plugin avant, et que vous aviez installé Prosody manuellement, vous pouvez le désinstaller en tout sécurité.
|
||||||
|
|
||||||
Si vous utilisiez l'image docker spéciale de Peertube (qui incluais Prosody), vous pouvez basculer sur l'image officielle de Peertube.
|
Si vous utilisiez l'image docker spéciale de Peertube (qui incluais Prosody), vous pouvez basculer sur l'image officielle de Peertube.
|
||||||
|
|
||||||
|
## Problème connu: compatibilité CPU
|
||||||
|
|
||||||
|
L'AppImage Prosody inclue dans le plugin ne fonctionne que sur des CPU x86_64.
|
||||||
|
Elle n'est pas compatible avec d'autres architectures CPU telles que arm64.
|
||||||
|
|
||||||
|
Pour l'instant, je n'ai pas réussi à le faire fonctionner sur d'autres architectures.
|
||||||
|
Pour être notifié des évolutions sur le sujet, vous pouvez vous abonner et commenter
|
||||||
|
[ce ticket](https://github.com/JohnXLivingston/peertube-plugin-livechat/issues/124).
|
||||||
|
|
||||||
|
Pour utiliser le plugin, vous allez devoir installer manuellement Prosody sur
|
||||||
|
votre serveur (voir plus bas).
|
||||||
|
|
||||||
|
Une fois cela fait, vous aurez à cocher le paramètre `Use system Prosody` du plugin.
|
||||||
|
|
||||||
|
### Installation autres que Docker
|
||||||
|
|
||||||
|
Pour les installations standard, vous avez juste à installer le paquet `prosody` officiellement
|
||||||
|
disponible pour votre distribution linux.
|
||||||
|
|
||||||
|
Par exemple, sur Debian/Ubuntu:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo apt install prosody
|
||||||
|
```
|
||||||
|
|
||||||
|
Vous pouvez alors désactiver le service qui démarre automatiquement quand vous
|
||||||
|
installé le paquet (le plugin va lancer son propre processus Prosody, et n'a pas
|
||||||
|
besoin que le service tourne sur le serveur).
|
||||||
|
Par exemple, sur Debian/Ubuntu (et les autres distributions se basant sur Systemd):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo systemctl disable prosody && sudo systemctl stop prosody
|
||||||
|
```
|
||||||
|
|
||||||
|
Attention: ne désactivez pas Prosody s'il est utilisé par un autre service sur
|
||||||
|
votre serveur, par exemple pour Jitsi.
|
||||||
|
|
||||||
|
### Docker
|
||||||
|
|
||||||
|
Vous allez devoir générer une image de Peertube qui inclu Prosody dans le même
|
||||||
|
conteneur que Peertube.
|
||||||
|
Je sais que ce n'est pas la façon de faire standard avec Docker, mais gardez
|
||||||
|
en tête que ceci est une solution de contournement temporaire.
|
||||||
|
|
||||||
|
Pour générer cette image, merci de vous référer à la documentation de Docker.
|
||||||
|
Le fichier Docker pour générer l'image devrait être:
|
||||||
|
|
||||||
|
```Docker
|
||||||
|
FROM chocobozzz/peertube:production-bullseye
|
||||||
|
|
||||||
|
RUN apt -y update && apt install -y prosody && apt -y clean
|
||||||
|
```
|
||||||
|
|
||||||
|
### Yunohost
|
||||||
|
|
||||||
|
Vous avez à désactiver `metronome` (le serveur XMPP utilisé par Yunohost),
|
||||||
|
et installer`prosody`.
|
||||||
|
|
||||||
|
Ceci est déjà fait par l'application Yunohost Peertube, étant donné que c'était
|
||||||
|
un pré-requis pour les version du plugin antérieures à la v6.0.0.
|
||||||
|
|
||||||
|
Mais il se pourrait que ce soit retiré de l'application Yunohost Peertube dans un
|
||||||
|
futur proche (pour éviter les inconvénients de cette méthode).
|
||||||
|
Je dois discuter avec l'équipe Yunohost, pour décider de la bonne façon de faire
|
||||||
|
pour minimiser les inconvénients et maximiser la compatibilité.
|
||||||
|
@ -16,3 +16,67 @@ v6.0.0から、このプラグインはProsodyのインストールが不要に
|
|||||||
このバージョンより前の環境で本プラグインを既にご使用中で、手動でProsodyをインストールした場合は、Prosodyのアンインストールが可能です。
|
このバージョンより前の環境で本プラグインを既にご使用中で、手動でProsodyをインストールした場合は、Prosodyのアンインストールが可能です。
|
||||||
|
|
||||||
Prosodyが内蔵されたカスタムDockerイメージをご利用の場合は、公式のPeerTube Dockerイメージに切り替えることができるようになりました。
|
Prosodyが内蔵されたカスタムDockerイメージをご利用の場合は、公式のPeerTube Dockerイメージに切り替えることができるようになりました。
|
||||||
|
|
||||||
|
## Known issues: CPU compatibility
|
||||||
|
|
||||||
|
The Prosody AppImage included in the plugin will only work on x86_64 CPU.
|
||||||
|
It is not compatible with arm64 and other CPU architectures.
|
||||||
|
|
||||||
|
For now, I did not manage to make it work for other CPU architectures.
|
||||||
|
If you want te be notified when it will be possible, you can subscribe and comment this
|
||||||
|
[issue](https://github.com/JohnXLivingston/peertube-plugin-livechat/issues/124).
|
||||||
|
|
||||||
|
To use the plugin, you will have to manually install Prosody on your server
|
||||||
|
(see below).
|
||||||
|
|
||||||
|
Once it is done, you have to check `Use system Prosody` in the plugin settings.
|
||||||
|
|
||||||
|
### On non-docker Peertube installation
|
||||||
|
|
||||||
|
For standard installation, you just have to install the official `prosody` package
|
||||||
|
for your linux distribution.
|
||||||
|
|
||||||
|
For example, on Debian/Ubuntu:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo apt install prosody
|
||||||
|
```
|
||||||
|
|
||||||
|
You can then disable the service that starts automatically when you install
|
||||||
|
Prosody (the plugin will launch a Prosody process, there is no need for the
|
||||||
|
service to run).
|
||||||
|
For example, on Debian/Ubuntu (and other Systemd based linux distributions):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo systemctl disable prosody && sudo systemctl stop prosody
|
||||||
|
```
|
||||||
|
|
||||||
|
Warning: do not disable Prosody if it is used for another service on your server,
|
||||||
|
like for example Jitsi.
|
||||||
|
|
||||||
|
### Docker
|
||||||
|
|
||||||
|
You will have to generate a Peertube image that includes Prosody in the same
|
||||||
|
container that Peertube.
|
||||||
|
I know this is not the standard way to do this with Docker, but keep in mind it
|
||||||
|
is a temporary workaround.
|
||||||
|
|
||||||
|
To generate and use such an image, please refer to the Docker documentation.
|
||||||
|
The Docker file to generate the image should be:
|
||||||
|
|
||||||
|
```Docker
|
||||||
|
FROM chocobozzz/peertube:production-bullseye
|
||||||
|
|
||||||
|
RUN apt -y update && apt install -y prosody && apt -y clean
|
||||||
|
```
|
||||||
|
|
||||||
|
### Yunohost
|
||||||
|
|
||||||
|
You have to disable `metronome` (the XMPP server provided by Yunohost), and
|
||||||
|
install `prosody`.
|
||||||
|
|
||||||
|
This is already done by the Yunohost Peertube application, as it was required for the
|
||||||
|
plugin before the v6.0.0.
|
||||||
|
But it may be removed in a near feature (to avoid drawbacks of this method).
|
||||||
|
I have to discuss with Yunohost team, to decide how we can do to minimize drawbacks,
|
||||||
|
and maximize compatibility.
|
||||||
|
@ -15,3 +15,67 @@ Since version v6.0.0, this plugin does not need any Prosody installation.
|
|||||||
If you were using this plugin before this version, and if you had installed Prosody manually, you can safely uninstall Prosody.
|
If you were using this plugin before this version, and if you had installed Prosody manually, you can safely uninstall Prosody.
|
||||||
|
|
||||||
If you were using the custom Peertube docker image that is embedding Prosody, you can switch back to the official Peertube image.
|
If you were using the custom Peertube docker image that is embedding Prosody, you can switch back to the official Peertube image.
|
||||||
|
|
||||||
|
## Known issues: CPU compatibility
|
||||||
|
|
||||||
|
The Prosody AppImage included in the plugin will only work on x86_64 CPU.
|
||||||
|
It is not compatible with arm64 and other CPU architectures.
|
||||||
|
|
||||||
|
For now, I did not manage to make it work for other CPU architectures.
|
||||||
|
If you want te be notified when it will be possible, you can subscribe and comment this
|
||||||
|
[issue](https://github.com/JohnXLivingston/peertube-plugin-livechat/issues/124).
|
||||||
|
|
||||||
|
To use the plugin, you will have to manually install Prosody on your server
|
||||||
|
(see below).
|
||||||
|
|
||||||
|
Once it is done, you have to check `Use system Prosody` in the plugin settings.
|
||||||
|
|
||||||
|
### On non-docker Peertube installation
|
||||||
|
|
||||||
|
For standard installation, you just have to install the official `prosody` package
|
||||||
|
for your linux distribution.
|
||||||
|
|
||||||
|
For example, on Debian/Ubuntu:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo apt install prosody
|
||||||
|
```
|
||||||
|
|
||||||
|
You can then disable the service that starts automatically when you install
|
||||||
|
Prosody (the plugin will launch a Prosody process, there is no need for the
|
||||||
|
service to run).
|
||||||
|
For example, on Debian/Ubuntu (and other Systemd based linux distributions):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo systemctl disable prosody && sudo systemctl stop prosody
|
||||||
|
```
|
||||||
|
|
||||||
|
Warning: do not disable Prosody if it is used for another service on your server,
|
||||||
|
like for example Jitsi.
|
||||||
|
|
||||||
|
### Docker
|
||||||
|
|
||||||
|
You will have to generate a Peertube image that includes Prosody in the same
|
||||||
|
container that Peertube.
|
||||||
|
I know this is not the standard way to do this with Docker, but keep in mind it
|
||||||
|
is a temporary workaround.
|
||||||
|
|
||||||
|
To generate and use such an image, please refer to the Docker documentation.
|
||||||
|
The Docker file to generate the image should be:
|
||||||
|
|
||||||
|
```Docker
|
||||||
|
FROM chocobozzz/peertube:production-bullseye
|
||||||
|
|
||||||
|
RUN apt -y update && apt install -y prosody && apt -y clean
|
||||||
|
```
|
||||||
|
|
||||||
|
### Yunohost
|
||||||
|
|
||||||
|
You have to disable `metronome` (the XMPP server provided by Yunohost), and
|
||||||
|
install `prosody`.
|
||||||
|
|
||||||
|
This is already done by the Yunohost Peertube application, as it was required for the
|
||||||
|
plugin before the v6.0.0.
|
||||||
|
But it may be removed in a near feature (to avoid drawbacks of this method).
|
||||||
|
I have to discuss with Yunohost team, to decide how we can do to minimize drawbacks,
|
||||||
|
and maximize compatibility.
|
||||||
|
4
package-lock.json
generated
4
package-lock.json
generated
@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "peertube-plugin-livechat",
|
"name": "peertube-plugin-livechat",
|
||||||
"version": "6.0.0-beta.2",
|
"version": "6.0.0",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "peertube-plugin-livechat",
|
"name": "peertube-plugin-livechat",
|
||||||
"version": "6.0.0-beta.2",
|
"version": "6.0.0",
|
||||||
"license": "AGPL-3.0",
|
"license": "AGPL-3.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"async": "^3.2.2",
|
"async": "^3.2.2",
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "peertube-plugin-livechat",
|
"name": "peertube-plugin-livechat",
|
||||||
"description": "PeerTube plugin livechat: offers a way to embed a chat system into Peertube.",
|
"description": "PeerTube plugin livechat: offers a way to embed a chat system into Peertube.",
|
||||||
"version": "6.0.0-beta.2",
|
"version": "6.0.0",
|
||||||
"license": "AGPL-3.0",
|
"license": "AGPL-3.0",
|
||||||
"author": {
|
"author": {
|
||||||
"name": "John Livingston",
|
"name": "John Livingston",
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
# This file is meant to be used with appimage-builder: https://appimage-builder.readthedocs.io
|
# This file is meant to be used with appimage-builder: https://appimage-builder.readthedocs.io
|
||||||
# See it is use in the build-prosody.sh script.
|
# See it is use in the build-prosody.sh script.
|
||||||
|
|
||||||
|
# FIXME: this appimage file is not working. Not used for now.
|
||||||
|
# See https://github.com/JohnXLivingston/peertube-plugin-livechat/issues/124
|
||||||
|
|
||||||
version: 1
|
version: 1
|
||||||
|
|
||||||
script:
|
script:
|
||||||
|
@ -35,6 +35,23 @@ export async function diagProsody (test: string, options: RegisterServerOptions)
|
|||||||
|
|
||||||
result.messages.push(`Prosody will use ${wantedConfig.baseApiUrl} as base uri from api calls`)
|
result.messages.push(`Prosody will use ${wantedConfig.baseApiUrl} as base uri from api calls`)
|
||||||
|
|
||||||
|
if (!wantedConfig.paths.exec) {
|
||||||
|
result.messages.push({
|
||||||
|
level: 'error',
|
||||||
|
message: 'Error: no Prosody server.'
|
||||||
|
})
|
||||||
|
if (process.arch !== 'x64' && process.arch !== 'x86_64') {
|
||||||
|
result.messages.push({
|
||||||
|
level: 'error',
|
||||||
|
message: 'Error: your CPU is a ' +
|
||||||
|
process.arch + ', ' +
|
||||||
|
'which is not compatible with the plugin. ' +
|
||||||
|
'Please read the plugin installation documentation for a workaround.'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
result.messages.push(`Prosody path will be '${wantedConfig.paths.exec}'`)
|
result.messages.push(`Prosody path will be '${wantedConfig.paths.exec}'`)
|
||||||
|
|
||||||
if (wantedConfig.paths.appImageToExtract) {
|
if (wantedConfig.paths.appImageToExtract) {
|
||||||
|
@ -29,9 +29,9 @@ async function getProsodyFilePaths (options: RegisterServerOptions): Promise<Pro
|
|||||||
const dir = await getWorkingDir(options)
|
const dir = await getWorkingDir(options)
|
||||||
const settings = await options.settingsManager.getSettings(['use-system-prosody'])
|
const settings = await options.settingsManager.getSettings(['use-system-prosody'])
|
||||||
let exec
|
let exec
|
||||||
let execArgs: string[]
|
let execArgs: string[] = []
|
||||||
let execCtl
|
let execCtl
|
||||||
let execCtlArgs: string[]
|
let execCtlArgs: string[] = []
|
||||||
let appImageToExtract
|
let appImageToExtract
|
||||||
|
|
||||||
// this one is always needed (must create the directory on startup)
|
// this one is always needed (must create the directory on startup)
|
||||||
@ -39,21 +39,25 @@ async function getProsodyFilePaths (options: RegisterServerOptions): Promise<Pro
|
|||||||
|
|
||||||
if (settings['use-system-prosody']) {
|
if (settings['use-system-prosody']) {
|
||||||
exec = 'prosody'
|
exec = 'prosody'
|
||||||
execArgs = []
|
|
||||||
execCtl = 'prosodyctl'
|
execCtl = 'prosodyctl'
|
||||||
execCtlArgs = []
|
|
||||||
} else {
|
} else {
|
||||||
const arch = process.arch
|
// const arch = process.arch
|
||||||
if (arch === 'arm' || arch === 'arm64') {
|
// if (arch === 'arm' || arch === 'arm64') {
|
||||||
logger.info('Node process.arch is ' + arch + ', we will be using the aarch64 Prosody AppImage')
|
// logger.info('Node process.arch is ' + arch + ', we will be using the aarch64 Prosody AppImage')
|
||||||
appImageToExtract = path.resolve(__dirname, '../../prosody/livechat-prosody-aarch64.AppImage')
|
// appImageToExtract = path.resolve(__dirname, '../../prosody/livechat-prosody-aarch64.AppImage')
|
||||||
|
// } else {
|
||||||
|
// appImageToExtract = path.resolve(__dirname, '../../prosody/livechat-prosody-x86_64.AppImage')
|
||||||
|
// }
|
||||||
|
if (process.arch !== 'x64' && process.arch !== 'x86_64') {
|
||||||
|
logger.info('Node process.arch is ' + process.arch + ', cant use the Prosody AppImage')
|
||||||
} else {
|
} else {
|
||||||
|
logger.debug('Node process.arch is ' + process.arch + ', we will be using the x86_64 Prosody AppImage')
|
||||||
appImageToExtract = path.resolve(__dirname, '../../prosody/livechat-prosody-x86_64.AppImage')
|
appImageToExtract = path.resolve(__dirname, '../../prosody/livechat-prosody-x86_64.AppImage')
|
||||||
|
exec = path.resolve(appImageExtractPath, 'squashfs-root/AppRun')
|
||||||
|
execArgs = ['prosody']
|
||||||
|
execCtl = exec
|
||||||
|
execCtlArgs = ['prosodyctl']
|
||||||
}
|
}
|
||||||
exec = path.resolve(appImageExtractPath, 'squashfs-root/AppRun')
|
|
||||||
execArgs = ['prosody']
|
|
||||||
execCtl = exec
|
|
||||||
execCtlArgs = ['prosodyctl']
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
@ -8,9 +8,9 @@ interface ProsodyFilePaths {
|
|||||||
certs: string
|
certs: string
|
||||||
modules: string
|
modules: string
|
||||||
avatars: string
|
avatars: string
|
||||||
exec: string
|
exec?: string
|
||||||
execArgs: string[]
|
execArgs: string[]
|
||||||
execCtl: string
|
execCtl?: string
|
||||||
execCtlArgs: string[]
|
execCtlArgs: string[]
|
||||||
appImageToExtract?: string
|
appImageToExtract?: string
|
||||||
appImageExtractPath: string
|
appImageExtractPath: string
|
||||||
|
@ -100,6 +100,10 @@ async function prosodyCtl (options: RegisterServerOptions, command: string): Pro
|
|||||||
throw new Error(`Invalid prosodyctl command '${command}'`)
|
throw new Error(`Invalid prosodyctl command '${command}'`)
|
||||||
}
|
}
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
|
if (!filePaths.execCtl) {
|
||||||
|
reject(new Error('Missing prosodyctl command executable'))
|
||||||
|
return
|
||||||
|
}
|
||||||
let d: string = ''
|
let d: string = ''
|
||||||
let e: string = ''
|
let e: string = ''
|
||||||
let m: string = ''
|
let m: string = ''
|
||||||
@ -247,6 +251,11 @@ async function ensureProsodyRunning (options: RegisterServerOptions): Promise<vo
|
|||||||
|
|
||||||
const filePaths = config.paths
|
const filePaths = config.paths
|
||||||
|
|
||||||
|
if (!filePaths.exec) {
|
||||||
|
logger.info('No Prosody executable, cant run.')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
// launch prosody
|
// launch prosody
|
||||||
const execCmd = filePaths.exec + (filePaths.execArgs.length ? ' ' + filePaths.execArgs.join(' ') : '')
|
const execCmd = filePaths.exec + (filePaths.execArgs.length ? ' ' + filePaths.execArgs.join(' ') : '')
|
||||||
logger.info('Going to launch prosody (' + execCmd + ')')
|
logger.info('Going to launch prosody (' + execCmd + ')')
|
||||||
|
@ -27,6 +27,25 @@ function initSettings (options: RegisterServerOptions): void {
|
|||||||
(if this button is not opening a new window, please try to refresh the page).`
|
(if this button is not opening a new window, please try to refresh the page).`
|
||||||
})
|
})
|
||||||
|
|
||||||
|
if (process.arch !== 'x64' && process.arch !== 'x86_64') {
|
||||||
|
registerSetting({
|
||||||
|
name: 'prosody-arch-warning',
|
||||||
|
type: 'html',
|
||||||
|
private: true,
|
||||||
|
descriptionHTML: `<span class="peertube-plugin-livechat-warning">
|
||||||
|
It seems that your are using a ${process.arch} CPU,
|
||||||
|
which is not compatible with the plugin.
|
||||||
|
Please read the
|
||||||
|
<a
|
||||||
|
href="https://github.com/JohnXLivingston/peertube-plugin-livechat/blob/main/documentation/installation.md"
|
||||||
|
target="_blank"
|
||||||
|
>
|
||||||
|
installation documentation
|
||||||
|
</a> for a workaround.
|
||||||
|
</span>`
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
// ********** Chat
|
// ********** Chat
|
||||||
registerSetting({
|
registerSetting({
|
||||||
type: 'html',
|
type: 'html',
|
||||||
|
Loading…
x
Reference in New Issue
Block a user