1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/ssbroom_ynh.git synced 2024-09-03 20:26:29 +02:00

Add arm7 architecture support

This commit is contained in:
mhfowler 2021-10-19 12:53:28 +02:00
parent 26fe566538
commit 12df006045
6 changed files with 35 additions and 5 deletions

View file

@ -41,7 +41,7 @@ For a comprehensive introduction to rooms 2.0, watch [this video](https://www.yo
## Disclaimers / important information ## Disclaimers / important information
* requires a full dedicated domain and does not support sub-paths * 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 * 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 ## Documentation and resources

View file

@ -3,6 +3,7 @@ script to cross-compile go-ssb-room for arm64 and other architectures
before running, run: before running, run:
- sudo apt install gcc-aarch64-linux-gnu - sudo apt install gcc-aarch64-linux-gnu
- sudo apt install gcc-arm-linux-gnueabi
""" """
import subprocess import subprocess
@ -34,6 +35,18 @@ def crosscompile_go_ssb_room():
"GOARCH=arm64", "go", "build", "./cmd/insert-user"], cwd=WORKING_DIR) "GOARCH=arm64", "go", "build", "./cmd/insert-user"], cwd=WORKING_DIR)
publish(architecture="aarch64") 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(): def compile_go_ssb_room():
subprocess.check_call(["git", "pull"], cwd=WORKING_DIR) subprocess.check_call(["git", "pull"], cwd=WORKING_DIR)
print("[COMPILING go-ssb-room/server for amd64]") print("[COMPILING go-ssb-room/server for amd64]")
@ -60,5 +73,6 @@ def publish(architecture):
if __name__ == '__main__': if __name__ == '__main__':
pull_repo() pull_repo()
crosscompile_go_ssb_room() # crosscompile_go_ssb_room()
compile_go_ssb_room() crosscompile_go_ssb_room_for_arm7()
# compile_go_ssb_room()

7
conf/arm7.src Normal file
View 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

View file

@ -6,7 +6,7 @@ After=network.target
Type=simple Type=simple
User=__APP__ User=__APP__
Group=__APP__ Group=__APP__
WorkingDirectory=__DATADIR__/ WorkingDirectory=__DATADIR__
ExecStart=__FINALPATH__/server -repo __DATADIR__/ -lishttp localhost:__PORT__ -https-domain __DOMAIN__ -lismux :__SSBPORT__ -aliases-as-subdomains false ExecStart=__FINALPATH__/server -repo __DATADIR__/ -lishttp localhost:__PORT__ -https-domain __DOMAIN__ -lismux :__SSBPORT__ -aliases-as-subdomains false
StandardOutput=append:/var/log/__APP__/__APP__.log StandardOutput=append:/var/log/__APP__/__APP__.log
StandardError=inherit StandardError=inherit

View file

@ -1,3 +1,3 @@
* requires a full dedicated domain and does not support sub-paths * 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 * 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

View file

@ -147,6 +147,15 @@ ynh_script_progression --message="Configuring a systemd service..." --weight=1
# Create a dedicated systemd config # Create a dedicated systemd config
ynh_add_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 # GENERIC FINALIZATION
#================================================= #=================================================