1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/friendica_ynh.git synced 2024-09-03 18:36:14 +02:00

Merge pull request #50 from YunoHost-Apps/2021.04

Updated to 2020.04
This commit is contained in:
anmol26s 2021-07-02 07:22:10 +00:00 committed by GitHub
commit 41c39d47e4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 223 additions and 79 deletions

View file

@ -10,12 +10,12 @@ If you don't have YunoHost, please see [here](https://yunohost.org/#/install) to
## Overview ## Overview
Friendica is a software to create a distributed social network. It is part of the federation of servers that are running with Friendica, Diaspora and Hubzilla which are compatible to each other. Friendica is a software to create a distributed social network. It is part of the federation of servers that are running with Friendica, Diaspora and Hubzilla which are compatible to each other.
**Version:** 2021.01 **Version:** 2021.04
Current snapshot in *sources*: Current snapshot in *sources*:
* https://github.com/friendica/friendica: 2021.01 * https://github.com/friendica/friendica: 2021.04
* https://github.com/friendica/friendica-addons: 2021.01 * https://github.com/friendica/friendica-addons: 2021.04
**Warning:** It's advised to use Barracuda as MySQL DB file format for your Friendica database. **Warning:** It's advised to use Barracuda as MySQL DB file format for your Friendica database.

View file

@ -10,10 +10,11 @@
setup_private=0 setup_private=0
setup_public=1 setup_public=1
upgrade=1 upgrade=1
backup_restore=1 upgrade=1 from_commit=b3642c110f0e927ba36ee32e738a81e6afce958f7ackup_restore=1
backup_restore=1
multi_instance=1 multi_instance=1
port_already_use=0 port_already_use=0
change_url=0 change_url=0
;;; Options ;;; Options
Email=anmol@datamol.org Email=""
Notification=change Notification=change

View file

@ -1,6 +0,0 @@
SOURCE_URL=https://files.friendi.ca/friendica-addons-2021.01.tar.gz
SOURCE_SUM=13d1a31373ec3e47913386241f5bee7524c18ddb77258cbf7b410450ec2cd601
SOURCE_SUM_PRG=sha256sum
SOURCE_FORMAT=tar.gz
SOURCE_IN_SUBDIR=true
SOURCE_FILENAME=

View file

@ -1,6 +0,0 @@
SOURCE_URL=https://files.friendi.ca/friendica-full-2021.01.tar.gz
SOURCE_SUM=b6f6ac81a0dd8e4bd32848ab2b6a54c35baf104d77abb589751fbd4f26edbcd7
SOURCE_SUM_PRG=sha256sum
SOURCE_FORMAT=tar.gz
SOURCE_IN_SUBDIR=2
SOURCE_FILENAME=

View file

@ -1,52 +1,52 @@
{ {
"name": "Friendica", "name": "Friendica",
"id": "friendica", "id": "friendica",
"packaging_format": 1, "packaging_format": 1,
"description": { "description": {
"en": "Social Communication Server", "en": "Social Communication Server",
"fr": "Serveur de Communication Social" "fr": "Serveur de Communication Social"
}, },
"url": "http://friendi.ca", "url": "http://friendi.ca",
"license": "AGPL-3.0-only", "license": "AGPL-3.0-only",
"version": "2021.01~ynh2", "version": "2021.04~ynh2",
"maintainer": { "maintainer": {
"name": "Anmol Sharma", "name": "Anmol Sharma",
"email": "anmol@datamol.org" "email": ""
}, },
"requirements": { "requirements": {
"yunohost": ">= 4.1.0" "yunohost": ">= 4.1.0"
}, },
"previous_maintainers": { "previous_maintainers": {
"name": "aymhce", "name": "aymhce",
"email": "aymhce@gmail.com" "email": "aymhce@gmail.com"
}, },
"multi_instance": true, "multi_instance": true,
"services": [ "services": [
"nginx", "nginx",
"php7.3-fpm", "php7.3-fpm",
"mysql" "mysql"
], ],
"arguments": { "arguments": {
"install" : [ "install" : [
{ {
"name": "domain", "name": "domain",
"type": "domain", "type": "domain",
"ask": { "ask": {
"en": "Choose a domain for Friendica. Friendica must be installed on the ROOT domain, so be careful!", "en": "Choose a domain for Friendica. Friendica must be installed on the ROOT domain, so be careful!",
"fr": "Choisissez un domaine pour Friendica.Friendica doit etre installe a la racine, soyez prudent" "fr": "Choisissez un domaine pour Friendica.Friendica doit etre installe a la racine, soyez prudent"
}, },
"example": "domain.org" "example": "domain.org"
}, },
{ {
"name": "admin", "name": "admin",
"type": "user", "type": "user",
"ask": { "ask": {
"en": "Choose the Friendica administrator (must be an existing YunoHost user)", "en": "Choose the Friendica administrator (must be an existing YunoHost user)",
"fr": "Choisissez l'administrateur pour Friendica (l'utilisateur YunoHost doit exister)" "fr": "Choisissez l'administrateur pour Friendica (l'utilisateur YunoHost doit exister)"
}, },
"example": "homer" "example": "homer"
} }
] ]
} }
} }

View file

@ -8,3 +8,36 @@
YNH_PHP_VERSION="7.3" YNH_PHP_VERSION="7.3"
extra_php_dependencies="php${YNH_PHP_VERSION}-mbstring php${YNH_PHP_VERSION}-cli php${YNH_PHP_VERSION}-imagick php${YNH_PHP_VERSION}-xml php${YNH_PHP_VERSION}-zip php${YNH_PHP_VERSION}-mysql php${YNH_PHP_VERSION}-json php${YNH_PHP_VERSION}-gd" extra_php_dependencies="php${YNH_PHP_VERSION}-mbstring php${YNH_PHP_VERSION}-cli php${YNH_PHP_VERSION}-imagick php${YNH_PHP_VERSION}-xml php${YNH_PHP_VERSION}-zip php${YNH_PHP_VERSION}-mysql php${YNH_PHP_VERSION}-json php${YNH_PHP_VERSION}-gd"
#=================================================
# EXPERIMENTAL HELPERS
#=================================================
ynh_smart_mktemp () {
local min_size="${1:-300}"
# Transform the minimum size from megabytes to kilobytes
min_size=$(( $min_size * 1024 ))
# Check if there's enough free space in a directory
is_there_enough_space () {
local free_space=$(df --output=avail "$1" | sed 1d)
test $free_space -ge $min_size
}
if is_there_enough_space /tmp; then
local tmpdir=/tmp
elif is_there_enough_space /var; then
local tmpdir=/var
elif is_there_enough_space /; then1
local tmpdir=/
elif is_there_enough_space /home; then
local tmpdir=/home
else
ynh_die "Insufficient free space to continue..."
fi
echo "$(mktemp --directory --tmpdir="$tmpdir")"
}
#=================================================
# FUTURE OFFICIAL HELPERS
#=================================================

View file

@ -73,14 +73,14 @@ ynh_mysql_setup_db --db_user=$db_user --db_name=$db_name
ynh_script_progression --message="Setting up source files..." ynh_script_progression --message="Setting up source files..."
ynh_app_setting_set --app=$app --key=final_path --value=$final_path ynh_app_setting_set --app=$app --key=final_path --value=$final_path
# Download, check integrity, uncompress and patch the source from app.src # 1- Clone stable repo
ynh_setup_source --dest_dir="$final_path" git clone https://github.com/friendica/friendica.git -b stable "$final_path"
# Copy .htaccess-dist to ..htaccess
cp -f "$final_path/.htaccess-dist" "$final_path/.htaccess" cp -f "$final_path/.htaccess-dist" "$final_path/.htaccess"
# 2 - Addons # 2 - Clone addons repo
mkdir $final_path/addon git clone https://github.com/friendica/friendica-addons.git -b stable "$final_path/addon"
ynh_setup_source --dest_dir="$final_path/addon" --source_id="addons"
#================================================= #=================================================
# NGINX CONFIGURATION # NGINX CONFIGURATION
@ -119,7 +119,7 @@ ynh_system_user_create --username=$app
#================================================= #=================================================
ynh_script_progression --message="Configuring php-fpm..." ynh_script_progression --message="Configuring php-fpm..."
# Create a dedicated php-fpm config # Create a dedicated php-fpm configy
ynh_add_fpm_config --package="$extra_php_dependencies" ynh_add_fpm_config --package="$extra_php_dependencies"
phpversion=$(ynh_app_setting_get --app=$app --key=phpversion) phpversion=$(ynh_app_setting_get --app=$app --key=phpversion)
@ -142,7 +142,7 @@ ynh_store_file_checksum --file="$final_path/config/local.config.php"
# Run composer # Run composer
pushd "$final_path" pushd "$final_path"
php$phpversion bin/composer.phar install php$phpversion bin/composer.phar install 2>/dev/null
bin/console config system addon ldapauth bin/console config system addon ldapauth
popd popd
ynh_mysql_connect_as "$db_name" "$db_pwd" "$db_name" <<< "INSERT INTO addon (id, name, version, installed, hidden, timestamp, plugin_admin) VALUES (NULL, 'ldapauth', '', '1', '0', UNIX_TIMESTAMP(), '0');" ynh_mysql_connect_as "$db_name" "$db_pwd" "$db_name" <<< "INSERT INTO addon (id, name, version, installed, hidden, timestamp, plugin_admin) VALUES (NULL, 'ldapauth', '', '1', '0', UNIX_TIMESTAMP(), '0');"

View file

@ -94,15 +94,51 @@ fi
if [ "$upgrade_type" == "UPGRADE_APP" ] if [ "$upgrade_type" == "UPGRADE_APP" ]
then then
ynh_script_progression --message="Upgrading source files..."
# Download, check integrity, uncompress and patch the source from app.src # Check if the repo can be updated with git
ynh_setup_source --dest_dir="$final_path" if [ `cd $final_path && git rev-parse --is-inside-work-tree` ];
then
# Update through git
pushd "$final_path"
git fetch
git checkout stable
git pull
popd
pushd "$final_path/addon"
git fetch
git checkout stable
git pull
popd
# If git is not present upgrade through manual method
else
# Create a temporary directory and backup smarty3 folder
tmpdir="$(ynh_smart_mktemp 6000)"
ynh_script_progression --message="Upgrading source files..."
cp -a "$final_path/view/smarty3" "$tmpdir/view/smarty3"
# Remove the app directory securely
ynh_secure_remove "$final_path"
# 1- Clone stable repo
$git clone https://github.com/friendica/friendica.git -b stable "$final_path"
# Remove the addon directory securely
ynh_secure_remove "$final_path/addon"
# 2 - Clone addons repo
git clone https://github.com/friendica/friendica-addons.git -b stable "$final_path/addon"
# Restore the smarty3 folder
cp -a "$tmpdir/view/smarty3" "${final_path}"
ynh_secure_remove "$tmpdir"
fi
fi fi
# Copy config file for correct place # Copy config file for correct place
config="$final_path/config/local.config.php" config="$final_path/config/local.config.php"
cp -f "/var/www/$app/config/local-sample.config.php" $config cp -a "/var/www/$app/config/local-sample.config.php" $config
# Replace strings in config file # Replace strings in config file
ynh_replace_string --match_string="your.mysqlhost.com" --replace_string="localhost" --target_file="$config" ynh_replace_string --match_string="your.mysqlhost.com" --replace_string="localhost" --target_file="$config"
@ -110,11 +146,10 @@ ynh_replace_string --match_string="mysqlusername" --replace_string="$db_nam
ynh_replace_string --match_string="mysqldatabasename" --replace_string="$db_name" --target_file="$config" ynh_replace_string --match_string="mysqldatabasename" --replace_string="$db_name" --target_file="$config"
ynh_replace_string --match_string="mysqlpassword" --replace_string="$db_pwd" --target_file= "$config" ynh_replace_string --match_string="mysqlpassword" --replace_string="$db_pwd" --target_file= "$config"
ynh_replace_string --match_string="'admin_email' => ''," --replace_string="'admin_email' => '$admin_mail'," --target_file="$config" ynh_replace_string --match_string="'admin_email' => ''," --replace_string="'admin_email' => '$admin_mail'," --target_file="$config"
ynh_replace_string --match_string="OPEN" --replace_string="CLOSED" --target_file="$config" #ynh_replace_string --match_string="OPEN" --replace_string="CLOSED" --target_file="$config"
#Copy Addons # ldap addon config
ynh_secure_remove "$final_path/addon" cp -f "../conf/addon.config.php" "$final_path/config/."
ynh_setup_source --dest_dir="$final_path/addon" --source_id="addons"
# 3 - some extra folders # 3 - some extra folders
chmod -R 775 $final_path/view/smarty3 chmod -R 775 $final_path/view/smarty3
@ -161,7 +196,7 @@ cp "../conf/poller-cron" "/etc/cron.d/$app"
# Run composer # Run composer
pushd "$final_path" pushd "$final_path"
php$phpversion bin/console dbstructure update php$phpversion bin/console dbstructure update 2> /dev/null
bin/console config system addon ldapauth bin/console config system addon ldapauth
popd popd

87
tags Normal file
View file

@ -0,0 +1,87 @@
!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/
!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/
!_TAG_OUTPUT_FILESEP slash /slash or backslash/
!_TAG_OUTPUT_MODE u-ctags /u-ctags or e-ctags/
!_TAG_PATTERN_LENGTH_LIMIT 96 /0 for no limit/
!_TAG_PROGRAM_AUTHOR Universal Ctags Team //
!_TAG_PROGRAM_NAME Universal Ctags /Derived from Exuberant Ctags/
!_TAG_PROGRAM_URL https://ctags.io/ /official site/
!_TAG_PROGRAM_VERSION 0.0.0 //
0 manifest.json /^ {$/;" o array:arguments.install
0 manifest.json /^ "nginx",$/;" s array:services
1 manifest.json /^ {$/;" o array:arguments.install
1 manifest.json /^ "php7.3-fpm",$/;" s array:services
2 manifest.json /^ "mysql"$/;" s array:services
Developers info README.md /^## Developers info$/;" s chapter:Friendica for YunoHost
Friendica README.md /^## Friendica$/;" s chapter:Friendica for YunoHost
Friendica for YunoHost README.md /^# Friendica for YunoHost$/;" c
Install Friendica README.md /^### Install Friendica$/;" S section:Friendica for YunoHost""Installation
Installation README.md /^## Installation$/;" s chapter:Friendica for YunoHost
Links README.md /^## Links$/;" s chapter:Friendica for YunoHost
Overview README.md /^## Overview$/;" s chapter:Friendica for YunoHost
PR Status pull_request_template.md /^## PR Status$/;" s
Package_check results pull_request_template.md /^## Package_check results$/;" s
Problem pull_request_template.md /^## Problem$/;" s
Register a new domain and add it to YunoHost README.md /^### Register a new domain and add it to YunoHost$/;" S section:Friendica for YunoHost""Installation
Solution pull_request_template.md /^## Solution$/;" s
Supported architectures README.md /^#### Supported architectures$/;" t section:Friendica for YunoHost""User with ldap admin rights
This app claims following features: README.md /^## This app claims following features:$/;" s chapter:Friendica for YunoHost
User with ldap admin rights README.md /^## User with ldap admin rights$/;" s chapter:Friendica for YunoHost
__NAMETOCHANGE__ conf/php-fpm.conf /^[__NAMETOCHANGE__]$/;" s
arguments manifest.json /^ "arguments": {$/;" o
ask manifest.json /^ "ask": {$/;" o object:arguments.install.0
ask manifest.json /^ "ask": {$/;" o object:arguments.install.1
chdir conf/php-fpm.conf /^chdir = __FINALPATH__$/;" k section:__NAMETOCHANGE__
db_data conf/htconfig.php /^ $db_data = getenv('MYSQL_DATABASE');$/;" v
db_data conf/htconfig.php /^$db_data = 'mysqldatabasename';$/;" v
db_host conf/htconfig.php /^ $db_host = getenv('MYSQL_HOST') . ':' . getenv('MYSQL_PORT');$/;" v
db_host conf/htconfig.php /^$db_host = 'your.mysqlhost.com';$/;" v
db_pass conf/htconfig.php /^ $db_pass = getenv('MYSQL_PASSWORD');$/;" v
db_pass conf/htconfig.php /^$db_pass = 'mysqlpassword';$/;" v
db_user conf/htconfig.php /^ $db_user = getenv('MYSQL_USER');$/;" v
db_user conf/htconfig.php /^ $db_user = getenv('MYSQL_USERNAME');$/;" v
db_user conf/htconfig.php /^$db_user = 'mysqlusername';$/;" v
default_timezone conf/htconfig.php /^$default_timezone = 'America\/Los_Angeles';$/;" v
description manifest.json /^ "description": {$/;" o
email manifest.json /^ "email": ""$/;" s object:maintainer
email manifest.json /^ "email": "aymhce@gmail.com"$/;" s object:previous_maintainers
en manifest.json /^ "en": "Choose a domain for Friendica. Friendica must be installed on the ROOT domain/;" s object:arguments.install.0.ask
en manifest.json /^ "en": "Choose the Friendica administrator (must be an existing YunoHost user)",$/;" s object:arguments.install.1.ask
en manifest.json /^ "en": "Social Communication Server",$/;" s object:description
example manifest.json /^ "example": "domain.org"$/;" s object:arguments.install.0
example manifest.json /^ "example": "homer"$/;" s object:arguments.install.1
fr manifest.json /^ "fr": "Choisissez l'administrateur pour Friendica (l'utilisateur YunoHost doit exist/;" s object:arguments.install.1.ask
fr manifest.json /^ "fr": "Choisissez un domaine pour Friendica.Friendica doit etre installe a la racine/;" s object:arguments.install.0.ask
fr manifest.json /^ "fr": "Serveur de Communication Social"$/;" s object:description
group conf/php-fpm.conf /^group = __USER__$/;" k section:__NAMETOCHANGE__
group conf/php-fpm.conf /^listen.group = www-data$/;" k section:__NAMETOCHANGE__
id manifest.json /^ "id": "friendica",$/;" s
install manifest.json /^ "install" : [$/;" a object:arguments
is_there_enough_space scripts/_common.sh /^ is_there_enough_space () {$/;" f
license manifest.json /^ "license": "AGPL-3.0-only",$/;" s
listen conf/php-fpm.conf /^listen = \/var\/run\/php\/php__PHPVERSION__-fpm-__NAMETOCHANGE__.sock$/;" k section:__NAMETOCHANGE__
maintainer manifest.json /^ "maintainer": {$/;" o
max_children conf/php-fpm.conf /^pm.max_children = 5$/;" k section:__NAMETOCHANGE__
max_spare_servers conf/php-fpm.conf /^pm.max_spare_servers = 3$/;" k section:__NAMETOCHANGE__
min_spare_servers conf/php-fpm.conf /^pm.min_spare_servers = 1$/;" k section:__NAMETOCHANGE__
multi_instance manifest.json /^ "multi_instance": true,$/;" b
name manifest.json /^ "name": "admin",$/;" s object:arguments.install.1
name manifest.json /^ "name": "domain",$/;" s object:arguments.install.0
name manifest.json /^ "name": "Anmol Sharma",$/;" s object:maintainer
name manifest.json /^ "name": "aymhce",$/;" s object:previous_maintainers
name manifest.json /^ "name": "Friendica",$/;" s
owner conf/php-fpm.conf /^listen.owner = www-data$/;" k section:__NAMETOCHANGE__
packaging_format manifest.json /^ "packaging_format": 1,$/;" n
pm conf/php-fpm.conf /^pm = dynamic$/;" k section:__NAMETOCHANGE__
previous_maintainers manifest.json /^ "previous_maintainers": {$/;" o
request_terminate_timeout conf/php-fpm.conf /^request_terminate_timeout = 1d$/;" k section:__NAMETOCHANGE__
requirements manifest.json /^ "requirements": {$/;" o
services manifest.json /^ "services": [$/;" a
start_servers conf/php-fpm.conf /^pm.start_servers = 2$/;" k section:__NAMETOCHANGE__
type manifest.json /^ "type": "domain",$/;" s object:arguments.install.0
type manifest.json /^ "type": "user",$/;" s object:arguments.install.1
url manifest.json /^ "url": "http:\/\/friendi.ca",$/;" s
user conf/php-fpm.conf /^user = __USER__$/;" k section:__NAMETOCHANGE__
version manifest.json /^ "version": "2021.04~ynh2",$/;" s
ynh_smart_mktemp scripts/_common.sh /^ynh_smart_mktemp () {$/;" f
yunohost manifest.json /^ "yunohost": ">= 4.1.0"$/;" s object:requirements