From 2464193a1cc981758b8743e4dfdd876c0da4d8da Mon Sep 17 00:00:00 2001 From: NorbiPeti Date: Wed, 22 May 2024 23:20:14 +0200 Subject: [PATCH] Add Snikket custom steps TODO: - Apply patches - Handle the rest of the tasks --- manifest.toml | 17 ++++++----- scripts/install | 36 ++++++++++++++++++------ sources/prosody-modules.txt | 56 +++++++++++++++++++++++++++++++++++++ sources/snikket-modules.txt | 9 ++++++ 4 files changed, 103 insertions(+), 15 deletions(-) create mode 100644 sources/prosody-modules.txt create mode 100644 sources/snikket-modules.txt diff --git a/manifest.toml b/manifest.toml index 38f337d..646ab5e 100644 --- a/manifest.toml +++ b/manifest.toml @@ -30,12 +30,15 @@ ram.runtime = "50M" [install] [resources] - [resources.sources.main] - url = "https://github.com/snikket-im/snikket-server/archive/refs/tags/stable.20240221.tar.gz" - sha256 = "f33ad5ccddb52bb08059b0b7b0b38ab4d7ceb1304866b214ce554546efface06" - [resources.sources.prosody] - url = "https://hg.prosody.im/trunk/archive/41a587613a0e.tar.gz" - sha256 = "701ce4761b1979614712ac9c9c13cb700415469a8e11ed9e3140fd6795bbcdcd" + [resources.sources.main] + url = "https://github.com/snikket-im/snikket-server/archive/refs/tags/stable.20240221.tar.gz" + sha256 = "f33ad5ccddb52bb08059b0b7b0b38ab4d7ceb1304866b214ce554546efface06" + [resources.sources.prosody] + url = "https://hg.prosody.im/trunk/archive/41a587613a0e.tar.gz" + sha256 = "701ce4761b1979614712ac9c9c13cb700415469a8e11ed9e3140fd6795bbcdcd" + [resources.sources.prosody-modules] + url = "https://hg.prosody.im/prosody-modules/archive/095030677ae6.tar.gz" + sha256 = "8c2a51ef72cbe86a3b2a8e5c4d8656ee1d167f153223b481b5e8c4c5ed85f11d" [resources.system_user] @@ -55,7 +58,7 @@ ram.runtime = "50M" [resources.permissions] [resources.apt] - packages = "libicu-dev, libidn11-dev, libssl-dev, openssl, txt2man" + packages = "libicu-dev, libidn11-dev, libssl-dev, openssl, txt2man, lua-luaossl, lua-readline, dns-root-data, lua-dbi-sqlite3" packages_from_raw_bash = """ if [[ $YNH_DEBIAN_VERSION == "bullseye" ]]; then echo "lua5.2, lua5.2-expat, lua5.2-socket, lua5.2-sec, lua5.2-unbound, liblua5.2-dev, lua-busted"; diff --git a/scripts/install b/scripts/install index c26ee47..15018d4 100755 --- a/scripts/install +++ b/scripts/install @@ -26,13 +26,14 @@ fi ynh_script_progression --message="Setting up source files..." builddir="$(mktemp -d)" -# Download, check integrity, uncompress and patch the source from app.src ynh_setup_source --dest_dir="$builddir" --source_id=prosody snikketdir="$(mktemp -d)" -# Download, check integrity, uncompress and patch the source from app.src ynh_setup_source --dest_dir="$snikketdir" +moddir="$(mktemp -d)" +ynh_setup_source --dest_dir="$moddir" --source_id=prosody-modules + #================================================= # SPECIFIC SETUP #================================================= @@ -43,9 +44,13 @@ ynh_script_progression --message="Building Prosody..." update-alternatives --set lua-interpreter /usr/bin/lua${luaversion} pushd "$builddir" - ./configure --prefix=/usr + ./configure --sysconfdir="/etc/$app" --datadir="/var/lib/$app" make make install + # Install Prosody-Migrator + pushd "tools/migration" + make install + popd popd ynh_secure_remove --file="$builddir" @@ -53,17 +58,18 @@ ynh_secure_remove --file="$builddir" #================================================= # ADD A CONFIGURATION #================================================= -ynh_script_progression --message="Adding a configuration file..." +ynh_script_progression --message="Adding Prosody configuration..." config_path=/etc/$app ynh_app_setting_set --app=$app --key=config_path --value=$config_path mkdir -p $config_path mkdir -p $config_path/{certs,conf.avail,conf.d} +mkdir -p $config_path/firewall -ynh_add_config --template="../conf/prosody.cfg.lua" --destination="$config_path/prosody.cfg.lua" -ynh_add_config --template="../conf/example.com.cfg.lua" --destination="$config_path/conf.avail/example.com.cfg.lua" -#ynh_add_config --template="../conf/localhost.cfg.lua" --destination="$config_path/conf.avail/localhost.cfg.lua" -#ln -s $config_path/conf.avail/localhost.cfg.lua $config_path/conf.d/ +ynh_add_config --template="$snikketdir/ansible/files/prosody.cfg.lua" --destination="$config_path/prosody.cfg.lua" +ynh_add_config --template="$snikketdir/ansible/files/restricted_users.pfw" --destination="$config_path/restricted_users.pfw" +# Add Prosody-Migrator config +ynh_add_config --template="$snikketdir/ansible/files/migrator.cfg.lua" --destination="$config_path/migrator.cfg.lua" chown root:root "$config_path" chmod 755 "$config_path" @@ -77,6 +83,20 @@ chmod 754 "$config_path/conf.avail" chown root:$app "$config_path/certs" chmod 750 "$config_path/certs" +#================================================= +# SETUP MODULES +#================================================= +ynh_script_progression --message="Intalling modules..." +mkdir -p "/etc/$app/modules" +while read module +do + cp -r "$moddir/$module" "/etc/$app/modules/$module" +done < "../sources/prosody-modules.txt" +while read module +do + cp -r "$snikketdir/snikket-modules/$module" "/etc/$app/modules/$module" +done < "../sources/snikket-modules.txt" + #================================================= # SETUP SYSTEMD #================================================= diff --git a/sources/prosody-modules.txt b/sources/prosody-modules.txt new file mode 100644 index 0000000..dac6c7b --- /dev/null +++ b/sources/prosody-modules.txt @@ -0,0 +1,56 @@ +mod_cloud_notify +mod_cloud_notify_extensions +mod_cloud_notify_encrypted +mod_cloud_notify_priority_tag +mod_cloud_notify_filters +mod_block_registrations +mod_conversejs +mod_migrate_http_upload +mod_lastlog2 +mod_limit_auth +mod_password_policy +mod_vcard_muc +mod_email +mod_http_altconnect +mod_firewall +mod_admin_notify +mod_http_oauth2 +mod_http_admin_api +mod_rest +mod_groups_migration +mod_invites_api +mod_invites_groups +mod_invites_page +mod_invites_register_api +mod_invites_tracking +mod_groups_internal +mod_groups_muc_bookmarks +mod_muc_defaults +mod_muc_local_only +mod_muc_offline_delivery +mod_http_host_status_check +mod_measure_process +mod_spam_reporting +mod_watch_spam_reports +mod_isolate_host +mod_muc_auto_reserve_nicks +mod_measure_active_users +mod_measure_lua +mod_measure_malloc +mod_http_xep227 +mod_portcheck +mod_sasl2 +mod_sasl2_bind2 +mod_sasl2_sm +mod_sasl2_fast +mod_client_management +mod_audit +mod_audit_auth +mod_audit_status +mod_audit_user_accounts +mod_password_policy +mod_s2s_status +mod_sasl_ssdp +mod_privilege +mod_admin_blocklist +mod_muc_moderation \ No newline at end of file diff --git a/sources/snikket-modules.txt b/sources/snikket-modules.txt new file mode 100644 index 0000000..0b48162 --- /dev/null +++ b/sources/snikket-modules.txt @@ -0,0 +1,9 @@ +mod_update_check +mod_update_notify +mod_invites_default_group +mod_invites_bootstrap +mod_snikket_client_id +mod_snikket_ios_preserve_push +mod_snikket_restricted_users +mod_snikket_deprecate_general_muc +mod_migrate_snikket_roles \ No newline at end of file