manticoresoftware / manticoresearch-backup

Repository for Manticore Search backup scripts
GNU General Public License v3.0
3 stars 1 forks source link

PHP 8.1 #29

Closed KarelWintersky closed 2 years ago

KarelWintersky commented 2 years ago

"php": ">=8.1"

The language version requirement is too high.

sanikolaev commented 2 years ago

Do you mean that you can't use this as a composer package, because you have an older php version and you think so do most?

KarelWintersky commented 2 years ago

Yes. Current Debian 11 (latest) have default stable version 7.4

A lot of production servers have debian as OS.

sanikolaev commented 2 years ago

Why do you want to use the tool as a composer package in the first place? It's actually kind of misuse. The composer package is mostly supposed to be used internally and through our own php build (aka "Manticore executor") of the needed version. The executor is already shipped as a part of "manticore-extra" and "manticore-backup" uses it. The composer package will be integrated with the daemon more tightly in the nearest future (that's why the composer package is needed at all - just so it's easier to integrate the pieces, not for actual use).

KarelWintersky commented 2 years ago
arris@blacktower:~$ ./manticore-backup

Parse error: syntax error, unexpected ')' in /tmp/pharextract/manticore-backup/src/init.php on line 31
sanikolaev commented 2 years ago

How did you install it?

KarelWintersky commented 2 years ago

Just extracted from deb file, without installing :)

DEB-пакет не содержит никаких дополнительных инструкций, pre/post-инсталл скриптов. Поэтому его установка не обязательна

sanikolaev commented 2 years ago

Try installing it normally as said here https://github.com/manticoresoftware/manticoresearch/issues/821#issuecomment-1279275221 or if you want to go the hard way at least install package "manticore-executor", too. Then "manticore-backup" should detect the executor and use it.

KarelWintersky commented 2 years ago
executor=$(which manticore-executor || which php)
if [[ -z "$executor" ]]; then
echo >&2 Manticore Backup requires php or manticore-executor. Please install package "manticore-extra".
exit 1

Судя по вышеприведенному коду допускается запуск с помощью родного PHP. Что я и сделал.

P.S. Английский язык это принципиально?

KarelWintersky commented 2 years ago
arris@blacktower:~$ sudo dpkg -i manticore-backup_0.2.19-221014-33a1bfd_amd64.deb
[sudo] password for arris:
Selecting previously unselected package manticore-backup.
(Reading database ... 93678 files and directories currently installed.)
Preparing to unpack manticore-backup_0.2.19-221014-33a1bfd_amd64.deb ...
Unpacking manticore-backup (0.2.19) ...
Setting up manticore-backup (0.2.19) ...

arris@blacktower:~$
arris@blacktower:~$ manticore-backup

Parse error: syntax error, unexpected ')' in /tmp/pharextract/manticore-backup/src/init.php on line 31

Nothing changed.

KarelWintersky commented 2 years ago

Вообще, заворачивание кода в PHAR, а заворачивание PHAR в DEB - это прямо какое-то костыльное решение, которое я уже много лет не видел в реальном мире.

Если нужен интерпретатор с конкретными зависимостями - их проще (и надежнее) прописать в control файл пакета.

Source: manticore-backup
Section: unknown
Priority: optional
Maintainer: ...
Build-Depends: debhelper (>= 9), composer
Standards-Version: 3.9.8

Package: manticore-backup
Architecture: all
Depends: php-common, php-cli, php-curl, php-json, php-mbstring, php-intl, php-readline
Description: manticore-backup

Как-то так.

sanikolaev commented 2 years ago

Thanks. We'll make a better error handling for this case, so you'll be getting a better error about unsupported PHP version. But in the first place it's a misuse. We've made the executor specially to avoid issues like that this. Just install it.

sanikolaev commented 2 years ago

Вообще, заворачивание кода в PHAR, а заворачивание PHAR в DEB - это прямо какое-то костыльное решение, которое я уже много лет не видел в реальном мире.

Если нужен интерпретатор с конкретными зависимостями - их проще (и надежнее) прописать в control файл пакета.

А:

Мы текущее решение месяц уже делаем и специфики там предостаточно. Наш билд php весит 3.5 мега, ничего вообще за собой не тянет, устанавливается за пару секунд, по лицензиям всё ок.

KarelWintersky commented 2 years ago

Хорошо. Исполнять single php file он не сможет? Обязательно нужен PHAR ?

https://github.com/KarelWintersky/kwTools.SitemapGenerator

Вот как сделано у меня. На выходе тот же единственный файл, только с шебангом #!/usr/bin/php

KarelWintersky commented 2 years ago

We've made the executor specially to avoid issues like that this. Just install it.

Тогда надо убрать из PHP-скрипта проверку на наличие PHP. Нет PHP - идем нафиг, требуем установить manticore-php-executor, говорим, как это сделать.

Мне сделать пулл-реквест?

sanikolaev commented 2 years ago

Обязательно нужен PHAR ?

Да. Мы велосипеды стараемся не изобретать. Есть стандартное решение (10+ лет уже как) по объединению множества php файлов - используем.

Тогда надо убрать из PHP-скрипта проверку на наличие PHP. Нет PHP - идем нафиг, требуем установить manticore-php-executor, говорим, как это сделать.

Мне сделать пулл-реквест?

Спасибо, но нет. Мы не хотим ограничивать пользователя. Если кому-то несмотря на рекомендации его убеждения по какой-то причине не позволяют использовать manticore-executor, то есть альтернатива - стандартный php с нужными модулями. Обработку ошибок чуть улучшим, да.

donhardman commented 2 years ago

Hi

We have fixed the issue with PHP version checking in version v0.2.21

Thanks a lot for reporting!