From b8786852e00a6484db10c807b51f6cf7234dd1e9 Mon Sep 17 00:00:00 2001 From: Aina Sitraka <35221835+aynsix@users.noreply.github.com> Date: Mon, 10 Jun 2024 19:18:34 +0300 Subject: [PATCH] PHRAS-4067: admin - dashboard - 500 error (#4513) * fix error 500 on dashboard : remove unused swiftools requirement * unused * patch on 4.1.8 --- config/configuration.sample.yml | 3 - infra/tools/stack_migration/storage_conf.sh | 3 - lib/Alchemy/Phrasea/Command/Setup/Install.php | 3 - .../Phrasea/Controller/Api/V1Controller.php | 3 - .../Phrasea/Controller/SetupController.php | 3 - .../MediaAlchemystServiceProvider.php | 3 - .../Phrasea/Setup/Probe/BinariesProbe.php | 3 - .../Requirements/BinariesRequirements.php | 58 --------------- lib/classes/patch/418PHRAS4067.php | 73 +++++++++++++++++++ lib/conf.d/configuration.yml | 3 - .../roles/app/templates/configuration.tpl | 3 - .../config/phraseanet/configuration.yml | 3 - .../Fixtures/configuration-setup.yml | 3 - .../Fixtures/configuration-with-hosts.yml | 3 - .../Configuration/Fixtures/configuration.yml | 3 - 15 files changed, 73 insertions(+), 97 deletions(-) create mode 100644 lib/classes/patch/418PHRAS4067.php diff --git a/config/configuration.sample.yml b/config/configuration.sample.yml index f17f2ad981..e89fdd5062 100644 --- a/config/configuration.sample.yml +++ b/config/configuration.sample.yml @@ -96,9 +96,6 @@ main: binaries: ghostscript_binary: null php_binary: null - swf_extract_binary: null - pdf2swf_binary: null - swf_render_binary: null unoconv_binary: null ffmpeg_binary: null ffprobe_binary: null diff --git a/infra/tools/stack_migration/storage_conf.sh b/infra/tools/stack_migration/storage_conf.sh index 783296351c..9eb06ee960 100644 --- a/infra/tools/stack_migration/storage_conf.sh +++ b/infra/tools/stack_migration/storage_conf.sh @@ -6,9 +6,6 @@ echo `date +"%Y-%m-%d %H:%M:%S"` - "update binaries path in accordance of docker bin/setup system:config -s set main.binaries.php_binary "/usr/local/bin/php" bin/setup system:config -s set main.binaries.ghostscript_binary "/usr/bin/gs" -bin/setup system:config -s set main.binaries.swf_extract_binary "/usr/bin/swfextract" -bin/setup system:config -s set main.binaries.pdf2swf_binary null -bin/setup system:config -s set main.binaries.swf_render_binary "/usr/bin/swfrender" bin/setup system:config -s set main.binaries.unoconv_binary "/usr/bin/unoconv" bin/setup system:config -s set main.binaries.ffmpeg_binary "/usr/local/bin/ffmpeg" bin/setup system:config -s set main.binaries.ffprobe_binary "/usr/local/bin/ffprobe" diff --git a/lib/Alchemy/Phrasea/Command/Setup/Install.php b/lib/Alchemy/Phrasea/Command/Setup/Install.php index 4f83162584..ab67337d57 100644 --- a/lib/Alchemy/Phrasea/Command/Setup/Install.php +++ b/lib/Alchemy/Phrasea/Command/Setup/Install.php @@ -429,9 +429,6 @@ private function detectBinaries() { return [ 'php_binary' => $this->executableFinder->find('php'), - 'pdf2swf_binary' => $this->executableFinder->find('pdf2swf'), - 'swf_extract_binary' => $this->executableFinder->find('swfextract'), - 'swf_render_binary' => $this->executableFinder->find('swfrender'), 'unoconv_binary' => $this->executableFinder->find('unoconv'), 'ffmpeg_binary' => $this->executableFinder->find('ffmpeg', $this->executableFinder->find('avconv')), 'ffprobe_binary' => $this->executableFinder->find('ffprobe', $this->executableFinder->find('avprobe')), diff --git a/lib/Alchemy/Phrasea/Controller/Api/V1Controller.php b/lib/Alchemy/Phrasea/Controller/Api/V1Controller.php index 3195ae4cc5..345d43c10c 100644 --- a/lib/Alchemy/Phrasea/Controller/Api/V1Controller.php +++ b/lib/Alchemy/Phrasea/Controller/Api/V1Controller.php @@ -379,9 +379,6 @@ private function getGlobalValuesInformation() 'binary' => [ 'phpCli' => isset($binaries['php_binary']) ? $binaries['php_binary'] : null, 'phpIni' => $conf->get(['registry', 'executables', 'php-conf-path']), - 'swfExtract' => isset($binaries['swf_extract_binary']) ? $binaries['swf_extract_binary'] : null, - 'pdf2swf' => isset($binaries['pdf2swf_binary']) ? $binaries['pdf2swf_binary'] : null, - 'swfRender' => isset($binaries['swf_render_binary']) ? $binaries['swf_render_binary'] : null, 'unoconv' => isset($binaries['unoconv_binary']) ? $binaries['unoconv_binary'] : null, 'ffmpeg' => isset($binaries['ffmpeg_binary']) ? $binaries['ffmpeg_binary'] : null, 'ffprobe' => isset($binaries['ffprobe_binary']) ? $binaries['ffprobe_binary'] : null, diff --git a/lib/Alchemy/Phrasea/Controller/SetupController.php b/lib/Alchemy/Phrasea/Controller/SetupController.php index f68640a9e4..0e1d600fb3 100644 --- a/lib/Alchemy/Phrasea/Controller/SetupController.php +++ b/lib/Alchemy/Phrasea/Controller/SetupController.php @@ -184,9 +184,6 @@ public function doInstall(Request $request) $binaryData = []; foreach ([ 'php_binary' => $request->request->get('binary_php'), - 'swf_extract_binary' => $request->request->get('binary_swfextract'), - 'pdf2swf_binary' => $request->request->get('binary_pdf2swf'), - 'swf_render_binary' => $request->request->get('binary_swfrender'), 'unoconv_binary' => $request->request->get('binary_unoconv'), 'ffmpeg_binary' => $request->request->get('binary_ffmpeg'), 'mp4box_binary' => $request->request->get('binary_MP4Box'), diff --git a/lib/Alchemy/Phrasea/Core/Provider/MediaAlchemystServiceProvider.php b/lib/Alchemy/Phrasea/Core/Provider/MediaAlchemystServiceProvider.php index dd4e970b6f..6be4fc2b56 100644 --- a/lib/Alchemy/Phrasea/Core/Provider/MediaAlchemystServiceProvider.php +++ b/lib/Alchemy/Phrasea/Core/Provider/MediaAlchemystServiceProvider.php @@ -13,9 +13,6 @@ public function register(Application $app) $app['media-alchemyst.configuration'] = $app->share(function (Application $app) { $configuration = []; $parameters = [ - 'swftools.pdf2swf.binaries' => 'pdf2swf_binary', - 'swftools.swfrender.binaries' => 'swf_render_binary', - 'swftools.swfextract.binaries' => 'swf_extract_binary', 'unoconv.binaries' => 'unoconv_binary', 'mp4box.binaries' => 'mp4box_binary', 'gs.binaries' => 'ghostscript_binary', diff --git a/lib/Alchemy/Phrasea/Setup/Probe/BinariesProbe.php b/lib/Alchemy/Phrasea/Setup/Probe/BinariesProbe.php index 9c19f81c62..d501aed282 100644 --- a/lib/Alchemy/Phrasea/Setup/Probe/BinariesProbe.php +++ b/lib/Alchemy/Phrasea/Setup/Probe/BinariesProbe.php @@ -20,10 +20,7 @@ public function __construct(array $binaries) { parent::__construct(array_filter([ 'php_binary' => isset($binaries['php_binary']) ? $binaries['php_binary'] : null, - 'pdf2swf_binary' => isset($binaries['pdf2swf_binary']) ? $binaries['pdf2swf_binary'] : null, 'unoconv_binary' => isset($binaries['unoconv_binary']) ? $binaries['unoconv_binary'] : null, - 'swf_extract_binary' => isset($binaries['swf_extract_binary']) ? $binaries['swf_extract_binary'] : null, - 'swf_render_binary' => isset($binaries['swf_render_binary']) ? $binaries['swf_render_binary'] : null, 'mp4box_binary' => isset($binaries['mp4box_binary']) ? $binaries['mp4box_binary'] : null, 'pdftotext_binary' => isset($binaries['pdftotext_binary']) ? $binaries['pdftotext_binary'] : null, 'ffmpeg_binary' => isset($binaries['ffmpeg_binary']) ? $binaries['ffmpeg_binary'] : null, diff --git a/lib/Alchemy/Phrasea/Setup/Requirements/BinariesRequirements.php b/lib/Alchemy/Phrasea/Setup/Requirements/BinariesRequirements.php index e7408605f3..92cd070cc4 100644 --- a/lib/Alchemy/Phrasea/Setup/Requirements/BinariesRequirements.php +++ b/lib/Alchemy/Phrasea/Setup/Requirements/BinariesRequirements.php @@ -19,7 +19,6 @@ class BinariesRequirements extends RequirementCollection implements RequirementI { const FILE_VERSION = '5.04'; const IMAGICK_VERSION = '6.2.9'; - const SWFTOOLS_VERSION = '0.9.0'; const UNOCONV_VERSION = '0.5'; const MP4BOX_VERSION = '0.4.0'; const EXIFTOOL_VERSION = '9.15'; @@ -79,21 +78,6 @@ public function __construct($binaries = []) ); } - $pdf2swf = isset($binaries['pdf2swf_binary']) ? $binaries['pdf2swf_binary'] : $finder->find('pdf2swf'); - - if (null !== $pdf2swf) { - $output = null; - exec($pdf2swf . ' --version', $output); - $data = sscanf($output[0], 'pdf2swf - part of swftools %d.%d.%d'); - $version = sprintf('%d.%d.%d', $data[0], $data[1], $data[2]); - - $this->addRecommendation( - version_compare(static::SWFTOOLS_VERSION, $version, '<='), - sprintf('SWFTools (pdf2swf) version %s or higher is required (%s provided)', static::SWFTOOLS_VERSION, $version), - 'Please update to a more recent version.' - ); - } - $unoconv = isset($binaries['unoconv_binary']) ? $binaries['unoconv_binary'] : $finder->find('unoconv'); $this->addRecommendation( @@ -115,48 +99,6 @@ public function __construct($binaries = []) ); } - $swfextract = isset($binaries['swf_extract_binary']) ? $binaries['swf_extract_binary'] : $finder->find('swfextract'); - - $this->addRecommendation( - null !== $swfextract && is_executable($swfextract), - 'SWFTools (swfextract) are required for flash files support', - 'Please install SWFTools (http://www.swftools.org/)' - ); - - if (null !== $swfextract) { - $output = null; - exec($swfextract . ' --version', $output); - $data = sscanf($output[0], 'swfextract - part of swftools %d.%d.%d'); - $version = sprintf('%d.%d.%d', $data[0], $data[1], $data[2]); - - $this->addRecommendation( - version_compare(static::SWFTOOLS_VERSION, $version, '<='), - sprintf('SWFTools (swfextract) version %s or higher is required (%s provided)', static::SWFTOOLS_VERSION, $version), - 'Please update to a more recent version.' - ); - } - - $swfrender = isset($binaries['swf_render_binary']) ? $binaries['swf_render_binary'] : $finder->find('swfrender'); - - $this->addRecommendation( - null !== $swfrender && is_executable($swfrender), - 'SWFTools (swfrender) are required for flash files support', - 'Please install SWFTools (http://www.swftools.org/)' - ); - - if (null !== $swfrender) { - $output = null; - exec($swfrender . ' --version', $output); - $data = sscanf($output[0], 'swfrender - part of swftools %d.%d.%d'); - $version = sprintf('%d.%d.%d', $data[0], $data[1], $data[2]); - - $this->addRecommendation( - version_compare(static::SWFTOOLS_VERSION, $version, '<='), - sprintf('SWFTools (swfrender) version %s or higher is required (%s provided)', static::SWFTOOLS_VERSION, $version), - 'Please update to a more recent version.' - ); - } - $mp4box = isset($binaries['mp4box_binary']) ? $binaries['mp4box_binary'] : $finder->find('MP4Box'); $this->addRecommendation( diff --git a/lib/classes/patch/418PHRAS4067.php b/lib/classes/patch/418PHRAS4067.php new file mode 100644 index 0000000000..8406296022 --- /dev/null +++ b/lib/classes/patch/418PHRAS4067.php @@ -0,0 +1,73 @@ +release; + } + + /** + * {@inheritdoc} + */ + public function getDoctrineMigrations() + { + return []; + } + + /** + * {@inheritdoc} + */ + public function require_all_upgrades() + { + return false; + } + + /** + * {@inheritdoc} + */ + public function concern() + { + return $this->concern; + } + + /** + * {@inheritdoc} + */ + public function apply(base $base, Application $app) + { + if ($base->get_base_type() === base::DATA_BOX) { + $this->patch_databox($base, $app); + } elseif ($base->get_base_type() === base::APPLICATION_BOX) { + $this->patch_appbox($base, $app); + } + + return true; + } + + private function patch_databox(databox $databox, Application $app) + { + } + + private function patch_appbox(base $appbox, Application $app) + { + /** @var PropertyAccess $conf */ + $conf = $app['conf']; + + $conf->remove(['main', 'binaries', 'pdf2swf_binary']); + $conf->remove(['main', 'binaries', 'swf_render_binary']); + $conf->remove(['main', 'binaries', 'swf_extract_binary']); + } +} diff --git a/lib/conf.d/configuration.yml b/lib/conf.d/configuration.yml index 0cf8ff0c80..5ed205980a 100644 --- a/lib/conf.d/configuration.yml +++ b/lib/conf.d/configuration.yml @@ -89,9 +89,6 @@ main: binaries: ghostscript_binary: null php_binary: null - swf_extract_binary: null - pdf2swf_binary: null - swf_render_binary: null unoconv_binary: null ffmpeg_binary: null ffprobe_binary: null diff --git a/resources/ansible/roles/app/templates/configuration.tpl b/resources/ansible/roles/app/templates/configuration.tpl index b14e85ed83..c9853e2c9b 100644 --- a/resources/ansible/roles/app/templates/configuration.tpl +++ b/resources/ansible/roles/app/templates/configuration.tpl @@ -46,9 +46,6 @@ dbname: '{{ mariadb.appbox_db }}' binaries: ghostscript_binary: null php_binary: null - swf_extract_binary: null - pdf2swf_binary: null - swf_render_binary: null unoconv_binary: null ffmpeg_binary: null ffprobe_binary: null diff --git a/resources/vagrant/config/phraseanet/configuration.yml b/resources/vagrant/config/phraseanet/configuration.yml index 7a89c402de..3ca8ace4d0 100644 --- a/resources/vagrant/config/phraseanet/configuration.yml +++ b/resources/vagrant/config/phraseanet/configuration.yml @@ -52,9 +52,6 @@ main: binaries: ghostscript_binary: null php_binary: null - swf_extract_binary: null - pdf2swf_binary: null - swf_render_binary: null unoconv_binary: null ffmpeg_binary: null ffprobe_binary: null diff --git a/tests/Alchemy/Tests/Phrasea/Core/Configuration/Fixtures/configuration-setup.yml b/tests/Alchemy/Tests/Phrasea/Core/Configuration/Fixtures/configuration-setup.yml index 361cc8135d..3dda6ce9e6 100644 --- a/tests/Alchemy/Tests/Phrasea/Core/Configuration/Fixtures/configuration-setup.yml +++ b/tests/Alchemy/Tests/Phrasea/Core/Configuration/Fixtures/configuration-setup.yml @@ -46,9 +46,6 @@ main: binaries: ghostscript_binary: null php_binary: null - swf_extract_binary: null - pdf2swf_binary: null - swf_render_binary: null unoconv_binary: null ffmpeg_binary: null ffprobe_binary: null diff --git a/tests/Alchemy/Tests/Phrasea/Core/Configuration/Fixtures/configuration-with-hosts.yml b/tests/Alchemy/Tests/Phrasea/Core/Configuration/Fixtures/configuration-with-hosts.yml index d36f57991d..af1faf4093 100644 --- a/tests/Alchemy/Tests/Phrasea/Core/Configuration/Fixtures/configuration-with-hosts.yml +++ b/tests/Alchemy/Tests/Phrasea/Core/Configuration/Fixtures/configuration-with-hosts.yml @@ -59,9 +59,6 @@ main: binaries: ghostscript_binary: null php_binary: null - swf_extract_binary: null - pdf2swf_binary: null - swf_render_binary: null unoconv_binary: null ffmpeg_binary: null ffprobe_binary: null diff --git a/tests/Alchemy/Tests/Phrasea/Core/Configuration/Fixtures/configuration.yml b/tests/Alchemy/Tests/Phrasea/Core/Configuration/Fixtures/configuration.yml index 361cc8135d..3dda6ce9e6 100644 --- a/tests/Alchemy/Tests/Phrasea/Core/Configuration/Fixtures/configuration.yml +++ b/tests/Alchemy/Tests/Phrasea/Core/Configuration/Fixtures/configuration.yml @@ -46,9 +46,6 @@ main: binaries: ghostscript_binary: null php_binary: null - swf_extract_binary: null - pdf2swf_binary: null - swf_render_binary: null unoconv_binary: null ffmpeg_binary: null ffprobe_binary: null