mirror of
https://github.com/YunoHost-Apps/ssbroom_ynh.git
synced 2024-09-03 20:26:29 +02:00
Merge pull request #6 from YunoHost-Apps/arm64
Add support for arm64 and arm7
This commit is contained in:
commit
c759c5f400
10 changed files with 113 additions and 10 deletions
|
@ -30,7 +30,7 @@ For a comprehensive introduction to rooms 2.0, watch [this video](https://www.yo
|
|||
- HTTP Invites
|
||||
- Alias management
|
||||
|
||||
**Shipped version:** 2.0.6~ynh2
|
||||
**Shipped version:** 2.0.6~ynh3
|
||||
|
||||
**Demo:** https://hermies.club/
|
||||
|
||||
|
@ -41,7 +41,7 @@ For a comprehensive introduction to rooms 2.0, watch [this video](https://www.yo
|
|||
## Disclaimers / important information
|
||||
|
||||
* requires a full dedicated domain and does not support sub-paths
|
||||
* currently ony supported on amd64 architecture (until more binaries are built upstream)
|
||||
* currently ony supports the following architectures: amd64, arm64, arm7
|
||||
* ssb rooms work best when the app is in public mode. ssb-room has its own user and authentication system, and doesn't need yunohost SSO
|
||||
## Documentation and resources
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@ For a comprehensive introduction to rooms 2.0, watch [this video](https://www.yo
|
|||
- HTTP Invites
|
||||
- Alias management
|
||||
|
||||
**Version incluse :** 2.0.6~ynh2
|
||||
**Version incluse :** 2.0.6~ynh3
|
||||
|
||||
**Démo :** https://hermies.club/
|
||||
|
||||
|
@ -37,7 +37,7 @@ For a comprehensive introduction to rooms 2.0, watch [this video](https://www.yo
|
|||
## Avertissements / informations importantes
|
||||
|
||||
* requires a full dedicated domain and does not support sub-paths
|
||||
* currently ony supported on amd64 architecture (until more binaries are built upstream)
|
||||
* currently ony supports the following architectures: amd64, arm64, arm7
|
||||
* ssb rooms work best when the app is in public mode. ssb-room has its own user and authentication system, and doesn't need yunohost SSO
|
||||
## Documentations et ressources
|
||||
|
||||
|
|
80
compile_binaries/cross_compile_ssbroom.py
Normal file
80
compile_binaries/cross_compile_ssbroom.py
Normal file
|
@ -0,0 +1,80 @@
|
|||
"""
|
||||
script to cross-compile go-ssb-room for arm64 and other architectures
|
||||
|
||||
before running, run:
|
||||
- sudo apt install gcc-aarch64-linux-gnu
|
||||
- sudo apt install gcc-arm-linux-gnueabi
|
||||
|
||||
"""
|
||||
import subprocess
|
||||
import os
|
||||
|
||||
# path to project directory
|
||||
PROJECT_PATH = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
|
||||
WORKING_DIR = "/srv/build_ssbroom"
|
||||
GIT_URL = "https://github.com/ssb-ngi-pointer/go-ssb-room.git"
|
||||
OUTPUT_DIR = "/srv/files.commoninternet.net"
|
||||
|
||||
|
||||
def pull_repo():
|
||||
if not os.path.exists(WORKING_DIR):
|
||||
subprocess.check_call(["git", "clone", GIT_URL, WORKING_DIR])
|
||||
else:
|
||||
subprocess.check_call(["git", "pull"], cwd=WORKING_DIR)
|
||||
|
||||
|
||||
def crosscompile_go_ssb_room_for_arm64():
|
||||
subprocess.check_call(["git", "pull"], cwd=WORKING_DIR)
|
||||
print("[CROSS-COMPILING go-ssb-room/server]")
|
||||
subprocess.check_call(["env", "CGO_ENABLED=1", "CC=aarch64-linux-gnu-gcc",
|
||||
"CC_FOR_TARGET=gcc-aarch64-linux-gnu", "GOOS=linux",
|
||||
"GOARCH=arm64", "go", "build", "./cmd/server"], cwd=WORKING_DIR)
|
||||
print("[CROSS-COMPILING go-ssb-room/insert-user]")
|
||||
subprocess.check_call(["env", "CGO_ENABLED=1", "CC=aarch64-linux-gnu-gcc",
|
||||
"CC_FOR_TARGET=gcc-aarch64-linux-gnu", "GOOS=linux",
|
||||
"GOARCH=arm64", "go", "build", "./cmd/insert-user"], cwd=WORKING_DIR)
|
||||
publish(architecture="aarch64")
|
||||
|
||||
|
||||
def crosscompile_go_ssb_room_for_arm7():
|
||||
subprocess.check_call(["git", "pull"], cwd=WORKING_DIR)
|
||||
print("[CROSS-COMPILING for arm7 go-ssb-room/server]")
|
||||
subprocess.check_call(["env", "CGO_ENABLED=1", "CC=arm-linux-gnueabi-gcc",
|
||||
"GOOS=linux",
|
||||
"GOARCH=arm", "GOARM=7", "go", "build", "./cmd/server"], cwd=WORKING_DIR)
|
||||
print("[CROSS-COMPILING for arm7 go-ssb-room/insert-user]")
|
||||
subprocess.check_call(["env", "CGO_ENABLED=1", "CC=arm-linux-gnueabi-gcc",
|
||||
"GOOS=linux",
|
||||
"GOARCH=arm", "GOARM=7", "go", "build", "./cmd/insert-user"], cwd=WORKING_DIR)
|
||||
publish(architecture="arm7")
|
||||
|
||||
|
||||
def compile_go_ssb_room():
|
||||
subprocess.check_call(["git", "pull"], cwd=WORKING_DIR)
|
||||
print("[COMPILING go-ssb-room/server for amd64]")
|
||||
subprocess.check_call(["go", "build", "./cmd/server"], cwd=WORKING_DIR)
|
||||
print("[COMPILING go-ssb-room/insert-user for amd64]")
|
||||
subprocess.check_call(["go", "build", "./cmd/insert-user"], cwd=WORKING_DIR)
|
||||
publish(architecture="amd64")
|
||||
|
||||
|
||||
def publish(architecture):
|
||||
subprocess.check_call(["mkdir", "-p", OUTPUT_DIR])
|
||||
binaries = ["insert-user", "server"]
|
||||
output_folder_name = "go-ssb-room_2.0.6_Linux_{}".format(architecture)
|
||||
output_folder_path = os.path.join(OUTPUT_DIR, output_folder_name)
|
||||
subprocess.check_call(["mkdir", "-p", output_folder_path])
|
||||
for binary in binaries:
|
||||
f_path = os.path.join(WORKING_DIR, binary)
|
||||
output_path = os.path.join(output_folder_path, binary)
|
||||
subprocess.check_call(["cp", f_path, output_path])
|
||||
# create a tar
|
||||
tar_path = output_folder_path + ".tar.gz"
|
||||
subprocess.check_call(["tar", "-czvf", tar_path, "-C", output_folder_path, "."])
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
pull_repo()
|
||||
crosscompile_go_ssb_room_for_arm64()
|
||||
crosscompile_go_ssb_room_for_arm7()
|
||||
compile_go_ssb_room()
|
|
@ -1,5 +1,5 @@
|
|||
SOURCE_URL=https://files.commoninternet.net/go-ssb-room_2.0.6_Linux_x86_64.tar.gz
|
||||
SOURCE_SUM=7823838a42daac48c39f13563552b84920d66e782acf239d1da5fbd3b475c5bf
|
||||
SOURCE_URL=https://files.commoninternet.net/go-ssb-room_2.0.6_Linux_amd64.tar.gz
|
||||
SOURCE_SUM=1a1c4368df219e907e15996bd6d62b653f54017993b1cc607ab09a9a01fb8558
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FORMAT=tar.gz
|
||||
SOURCE_IN_SUBDIR=true
|
||||
|
|
7
conf/arm64.src
Normal file
7
conf/arm64.src
Normal file
|
@ -0,0 +1,7 @@
|
|||
SOURCE_URL=https://files.commoninternet.net/go-ssb-room_2.0.6_Linux_aarch64.tar.gz
|
||||
SOURCE_SUM=8f9d357d54fd8bdc1c2e906919ddefef21ae51b13e5ae1939424c6c1e94c9d23
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FORMAT=tar.gz
|
||||
SOURCE_IN_SUBDIR=true
|
||||
SOURCE_FILENAME=
|
||||
SOURCE_EXTRACT=true
|
7
conf/arm7.src
Normal file
7
conf/arm7.src
Normal file
|
@ -0,0 +1,7 @@
|
|||
SOURCE_URL=https://files.commoninternet.net/go-ssb-room_2.0.6_Linux_arm7.tar.gz
|
||||
SOURCE_SUM=8894b7b21031976e1d79265fefdcef4edb6fde38f34231e8aea4cebcc85a4f88
|
||||
SOURCE_SUM_PRG=sha256sum
|
||||
SOURCE_FORMAT=tar.gz
|
||||
SOURCE_IN_SUBDIR=true
|
||||
SOURCE_FILENAME=
|
||||
SOURCE_EXTRACT=true
|
|
@ -6,8 +6,8 @@ After=network.target
|
|||
Type=simple
|
||||
User=__APP__
|
||||
Group=__APP__
|
||||
WorkingDirectory=__DATADIR__/
|
||||
ExecStart=__FINALPATH__/go-ssb-room -repo __DATADIR__/ -lishttp localhost:__PORT__ -https-domain __DOMAIN__ -lismux :__SSBPORT__ -aliases-as-subdomains false
|
||||
WorkingDirectory=__DATADIR__
|
||||
ExecStart=__FINALPATH__/server -repo __DATADIR__/ -lishttp localhost:__PORT__ -https-domain __DOMAIN__ -lismux :__SSBPORT__ -aliases-as-subdomains false
|
||||
StandardOutput=append:/var/log/__APP__/__APP__.log
|
||||
StandardError=inherit
|
||||
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
* requires a full dedicated domain and does not support sub-paths
|
||||
* currently ony supported on amd64 architecture (until more binaries are built upstream)
|
||||
* currently ony supports the following architectures: amd64, arm64, arm7
|
||||
* ssb rooms work best when the app is in public mode. ssb-room has its own user and authentication system, and doesn't need yunohost SSO
|
|
@ -5,7 +5,7 @@
|
|||
"description": {
|
||||
"en": "Secure Scuttlebutt room server implemented in Go"
|
||||
},
|
||||
"version": "2.0.6~ynh2",
|
||||
"version": "2.0.6~ynh3",
|
||||
"url": "https://github.com/ssb-ngi-pointer/go-ssb-room",
|
||||
"upstream": {
|
||||
"license": "free",
|
||||
|
|
|
@ -147,6 +147,15 @@ ynh_script_progression --message="Configuring a systemd service..." --weight=1
|
|||
# Create a dedicated systemd config
|
||||
ynh_add_systemd_config
|
||||
|
||||
# for yunohost version < 4.2, this is a workaround to replace string variables
|
||||
ynh_script_progression --message="String replacing systemd service with $datadir" --weight=1
|
||||
systemd_file="/etc/systemd/system/$app.service"
|
||||
ynh_replace_string --match_string=__DATADIR__ --replace_string=$datadir --target_file=$systemd_file
|
||||
ynh_replace_string --match_string=__PORT__ --replace_string=$port --target_file=$systemd_file
|
||||
ynh_replace_string --match_string=__DOMAIN__ --replace_string=$domain --target_file=$systemd_file
|
||||
ynh_replace_string --match_string=__SSBPORT__ --replace_string=$ssbport --target_file=$systemd_file
|
||||
systemctl daemon-reload
|
||||
|
||||
#=================================================
|
||||
# GENERIC FINALIZATION
|
||||
#=================================================
|
||||
|
|
Loading…
Reference in a new issue