Merge branch 'develop' into deprecate-strategies-via-addons

This commit is contained in:
Art4 2025-02-07 15:24:37 +00:00
commit 5beeda612a
13 changed files with 54 additions and 41 deletions

View file

@ -7,7 +7,7 @@ echo ">>> Friendica Setup"
FRIENDICA_PHP_PATH=$(which php)
export FRIENDICA_PHP_PATH
envsubst < $workspaceFolder/.devcontainer/include/autoinstall.config.php > /tmp/autoinstall.config.php
cp $workspaceFolder/.devcontainer/include/00apcu.config.php $workspaceFolder/config/00apcu.config.php
cp $workspaceFolder/.devcontainer/include/01redis.config.php $workspaceFolder/config/01redis.config.php
@ -19,7 +19,7 @@ cd $DocumentRoot
# copy the .htaccess-dist file to .htaccess so that rewrite rules work
cp $DocumentRoot/.htaccess-dist $DocumentRoot/.htaccess
bin/composer.phar --no-dev install
bin/composer.phar install
# install friendica
bin/console autoinstall -f /tmp/autoinstall.config.php

View file

@ -1,14 +1,14 @@
#!/bin/bash
#!/bin/sh
# SPDX-FileCopyrightText: 2010 - 2024 the Friendica project
#
# SPDX-License-Identifier: CC0-1.0
dir=$(cd "${0%[/\\]*}" > /dev/null; pwd)
dir=$(cd "$(dirname "$0")" > /dev/null 2>&1; pwd)
if [[ -d /proc/cygdrive && $(which php) == $(readlink -n /proc/cygdrive)/* ]]; then
if [ -d /proc/cygdrive ] && [ "$(which php)" = "$(readlink -n /proc/cygdrive)/*" ]; then
# We are in Cygwin using Windows php, so the path must be translated
dir=$(cygpath -m "$dir");
dir=$(cygpath -m "$dir")
fi
php "${dir}/console.php" "$@"

View file

@ -1,13 +1,20 @@
#!/bin/bash
#!/bin/sh
# SPDX-FileCopyrightText: 2010 - 2024 the Friendica project
#
# SPDX-License-Identifier: CC0-1.0
set -eo pipefail
set -e
function resolve {
if [ "$(uname)" == "Darwin" ]
# Custom function to handle pipefail behavior
pipefail() {
local cmd="$1"
shift
{ eval "$cmd"; } || exit 1
}
resolve() {
if [ "$(uname)" = "Darwin" ]
then
realpath "$1"
else
@ -17,26 +24,26 @@ function resolve {
FULLPATH=$(dirname "$(resolve "$0")")
if [ "$1" == "--help" ] || [ "$1" == "-h" ]
if [ "$1" = "--help" ] || [ "$1" = "-h" ]
then
echo "$(basename "$(resolve "$0")") [options]"
echo
echo "-a | --addon <name> extract strings from addon 'name'"
echo "-s | --single single addon mode: extract string from current folder"
echo "-s | --single single addon mode: extract string from current folder"
exit
fi
MODE='default'
ADDONNAME=
if [ "$1" == "--addon" ] || [ "$1" == "-a" ]
if [ "$1" = "--addon" ] || [ "$1" = "-a" ]
then
MODE='addon'
if [ -z "$2" ]; then echo -e "ERROR: missing addon name\n\nrun_xgettext.sh -a <addonname>"; exit 1; fi
if [ -z "$2" ]; then echo "ERROR: missing addon name\n\nrun_xgettext.sh -a <addonname>"; exit 1; fi
ADDONNAME=$2
if [ ! -d "$FULLPATH/../addon/$ADDONNAME" ]; then echo "ERROR: addon '$ADDONNAME' not found"; exit 2; fi
fi
if [ "$1" == "--single" ] || [ "$1" == "-s" ]
if [ "$1" = "--single" ] || [ "$1" = "-s" ]
then
MODE='single'
fi
@ -70,7 +77,6 @@ case "$MODE" in
;;
esac
KEYWORDS="-k -kt -ktt:1,2"
echo "Extract strings to $OUTFILE.."
@ -79,13 +85,13 @@ echo "Extract strings to $OUTFILE.."
# shellcheck disable=SC2086 # $FINDOPTS is meant to be split
find_result=$(find "$FINDSTARTDIR" $FINDOPTS -name "*.php" -type f | LC_ALL=C sort -s)
total_files=$(wc -l <<< "${find_result}")
total_files=$(echo "${find_result}" | wc -l)
count=1
for file in $find_result
do
echo -ne " \r"
echo -ne "Reading file $count/$total_files..."
printf " \r"
printf "Reading file %d/%d..." "$count" "$total_files"
# On Windows, find still outputs the name of pruned folders
if [ ! -d "$file" ]
@ -94,9 +100,8 @@ do
xgettext $KEYWORDS --no-wrap -j -o "$OUTFILE" --from-code=UTF-8 "$file" || exit 1
sed -i.bkp "s/CHARSET/UTF-8/g" "$OUTFILE"
fi
(( count++ ))
count=$((count + 1))
done
echo -ne "\n"
echo "Interpolate metadata.."
@ -119,7 +124,7 @@ case "$MODE" in
;;
esac
if [ "" != "$1" ] && [ "$MODE" == "default" ]
if [ -n "$1" ] && [ "$MODE" = "default" ]
then
UPDATEFILE="$(resolve "${FULLPATH}/$1")"
echo "Merging new strings to $UPDATEFILE.."

View file

@ -116,7 +116,6 @@
},
"sort-packages": true,
"autoloader-suffix": "Friendica",
"optimize-autoloader": true,
"preferred-install": "dist",
"allow-plugins": {
"composer/installers": true,
@ -174,6 +173,7 @@
"@cs:install",
"bin/dev/php-cs-fixer/vendor/bin/php-cs-fixer fix"
],
"cs:fix-develop": "TARGET_BRANCH=develop COMMAND=fix bin/dev/fix-codestyle.sh"
"cs:fix-develop": "TARGET_BRANCH=develop COMMAND=fix bin/dev/fix-codestyle.sh",
"install:prod": "@composer install -o --no-dev"
}
}

View file

@ -62,7 +62,7 @@ If you want to have git automatically update the dependencies with composer, you
}
# `composer install` if the `composer.lock` file gets changed
# to update all the php dependencies
check_run composer.lock "bin/composer.phar install --no-dev"
check_run composer.lock "bin/composer.phar install"
just place it into `.git/hooks/post-merge` and make it executable.

View file

@ -87,7 +87,7 @@ Clone the addon repository (separately):
Install the dependencies:
bin/composer.phar install --no-dev
bin/composer.phar run install:prod
Make sure the folder *view/smarty3* exists and is writable by the webserver user, in this case *www-data*
@ -98,7 +98,7 @@ Make sure the folder *view/smarty3* exists and is writable by the webserver user
If you want to use the development version of Friendica you can switch to the develop branch in the repository by running
git checkout develop
bin/composer.phar install
bin/composer.phar run install:prod
cd addon
git checkout develop

View file

@ -14,7 +14,7 @@ If you installed Friendica in the ``path/to/friendica`` folder:
* ``.htaccess`` if using Apache web server
The following items only need to be copied if they are located inside your friendica path:
* your storage folder as set in **Admin -> Site -> File Upload -> Storage base path**
* your storage folder as set in **Admin -> Site -> File Upload -> Storage base path**
* your item cache as set in **Admin -> Site -> Performance -> Path to item cache**
* your temp folder as set in **Admin -> Site -> Advanced -> Temp path**
3. Rename the ``path/to/friendica`` folder to ``path/to/friendica_old``.
@ -30,7 +30,7 @@ You can get the latest changes at any time with
cd path/to/friendica
git pull
bin/composer.phar install --no-dev
bin/composer.phar run install:prod
The addon tree has to be updated separately like so:
@ -89,7 +89,7 @@ Some of the updates include the use of foreign keys now that will bump into issu
```
Error 1452 occurred during database update:
Cannot add or update a child row: a foreign key constraint fails (`friendica`.`#sql-10ea6_5a6d`, CONSTRAINT `#sql-10ea6_5a6d_ibfk_1` FOREIGN KEY (`contact-id`) REFERENCES `contact` (`id`))
ALTER TABLE `thread` ADD FOREIGN KEY (`iid`) REFERENCES `item` (`id`) ON UPDATE RESTRICT ON DELETE CASCADE;
ALTER TABLE `thread` ADD FOREIGN KEY (`iid`) REFERENCES `item` (`id`) ON UPDATE RESTRICT ON DELETE CASCADE;
```
All current known fixes for possible items that can go wrong are as below.

View file

@ -18,7 +18,7 @@ What you need to do:
Please use an up-to-date vagrant version from https://www.vagrantup.com/downloads.html.
2. Git clone your Friendica repository.
Inside, you'll find a `Vagrantfile` and some scripts in the `bin/dev` folder.
Pull the PHP requirements with `bin/composer install`.
Pull the PHP requirements with `bin/composer.phar install`.
3. Run `vagrant up` from inside the friendica clone.
This will start the virtual machine.
Be patient: When it runs for the first time, it downloads a Debian Server image and installs Friendica.
@ -60,7 +60,7 @@ Trouble Shooting
If you see a version mis-match for the _VirtualBox Guest Additions_ between host and guest during the initial setup of the Vagrant VM, you will need to install an addon to Vagrant (ref. [Stack Overflow](https://stackoverflow.com/a/38010683)).
Stop the Vagrant VM and run the following command:
$> vagrant plugin install vagrant-vbguest
$> vagrant plugin install vagrant-vbguest
On the next Vagrant up, the version problem should be fixed.

View file

@ -59,7 +59,7 @@ Der Linux-Code, mit dem man die Dateien direkt in ein Verzeichnis wie "meinewebs
git clone https://github.com/friendica/friendica.git -b stable mywebsite
cd mywebsite
bin/composer.phar install
bin/composer.phar run install:prod
Stelle sicher, dass der Ordner *view/smarty3* existiert and von dem Webserver-Benutzer beschreibbar ist
@ -85,7 +85,7 @@ Wenn du die Entwickler Version von Friendica verwenden möchtest kannst du auf d
Dies tust du mit den folgenden Befehlen
git checkout develop
bin/composer.phar install
bin/composer.phar run install:prod
cd addon
git checkout develop

View file

@ -8,7 +8,7 @@
$start_time = microtime(true);
if (!file_exists(__DIR__ . '/vendor/autoload.php')) {
die('Vendor path not found. Please execute "bin/composer.phar --no-dev install" on the command line in the web root.');
die('Vendor path not found. Please execute "bin/composer.phar run install:prod" on the command line in the web root.');
}
require __DIR__ . '/vendor/autoload.php';

View file

@ -299,12 +299,19 @@ class Crypto
* Creates cryptographic secure random digits
*
* @param string $digits The count of digits
* @return int The random Digits
* @return string The random Digits
*
* @throws \Exception In case 'random_int' isn't usable
*/
public static function randomDigits($digits)
public static function randomDigits($digits): string
{
return random_int(0, 10 ** $digits - 1);
$rn = '';
// generating cryptographically secure pseudo-random integers
for ($i = 0; $i < $digits; $i++) {
$rn .= random_int(0, 9);
}
return $rn;
}
}

View file

@ -21,10 +21,11 @@ class CryptoTest extends TestCase
{
$random_int = $this->getFunctionMock('Friendica\Util', 'random_int');
$random_int->expects($this->any())->willReturnCallback(function ($min, $max) {
return 12345678;
return 1;
});
self::assertSame(12345678, Crypto::randomDigits(8));
self::assertSame('1', Crypto::randomDigits(1));
self::assertSame('11111111', Crypto::randomDigits(8));
}
public function testDiasporaPubRsaToMe()

View file

@ -8,7 +8,7 @@
use PHPUnit\Framework\TestCase;
if (!file_exists(__DIR__ . '/../vendor/autoload.php')) {
die('Vendor path not found. Please execute "bin/composer.phar --no-dev install" on the command line in the web root.');
die('Vendor path not found. Please execute "bin/composer.phar install" on the command line in the web root.');
}
require __DIR__ . '/../vendor/autoload.php';