Archives de la liste h​e​b​e​r​g​e​m​e​n​t​@p​a​h​e​k​o​.c​l​o​u​d​

lien cassé extensions depuis mise à jour 1.3.0

Rodolphe Robles

19/07/2023 17:27:00

Bonjour,

je maintiens le paquet Yunohost pour Paheko.

Avec la mise à jour vers paheko 1.3.0 j'ai ce message d'erreur sur la 
page des extensions.


  Erreur

facturation: Le fichier admin/index.php n'existe pas alors que la 
directive "menu" est activée.


J'ai réinstallé un plugin facturation qui n'était plus là avec la 
version compatible avec php8.2 
https://gitlab.com/noizette/garradin-plugin-facturation/-/archive/v0.7.4/garradin-plugin-facturation-v0.7.4.tar.gz



car de plus j'ai mis des dépendances php8.2 pour cette mise à jour...

Comment supprimer le plugin facturation sinon en cli pour réparer ?? ou 
est-ce une erreur nginx de redirection ??

j'arrive sur ce lien en local 
https://yunohost.test/garradin/admin/config/ext/

lien cassé extensions depuis mise à jour 1.3.0

Rodolphe Robles

19/07/2023 17:43:56

Plus d'infos, logs

En regardant sur ma version 1.2.9 ou le plugin facturation fonctionne 
bien (sur un autre serveur en prod),

je constate que le lien devrait être 
https://yunohost.test/garradin/admin/config/plugins.php

Voici ce qui arrive si je vais sur ce lien:


  Une erreur s'est produite


  KD2\DB\DB_Exception


    no such column: nom


      in .../include/lib/KD2/DB/*SQLite3.php*:/834/

|*830*	$return = $this->db->prepare($statement); *831*	} *832*	catch 
(\Exception $e) { *833*	if ($this->db->lastErrorCode()) { _*834*	throw 
new DB_Exception($this->db->lastErrorMsg(), $this->db->lastErrorCode(), 
$e);_ *835*	} *836* *837*	throw $e; *838*	} |


      in .../include/lib/KD2/DB/*DB.php*:/534/


        → KD2\DB\SQLite3->prepare /(1 arg.)/

$statement 	

string(39) "SELECT id, * FROM plugins ORDER BY nom;"

|*530*	$key = md5($query . implode(',', array_keys($args))); *531* *532* 
// Use statements cache! *533*	if (!array_key_exists($key, 
$this->statements)) { _*534*	$this->statements[$key] = 
$this->prepare($query);_ *535*	} *536* *537*	return 
$this->execute($this->statements[$key], ...$args); *538*	} |


      in .../include/lib/KD2/DB/*SQLite3.php*:/541/


        → KD2\DB\DB->preparedQuery /(1 arg.)/

$query 	

string(39) "SELECT id, * FROM plugins ORDER BY nom;"

|*537*	* on a statement. This could cause double writing. *538*	*/ *539* 
public function preparedQuery(string $query, ...$args) *540*	{ _*541* 
return parent::preparedQuery($query, ...$args);_ *542*	} *543* *544* 
public function execute($statement, ...$args) *545*	{ |


      in .../include/lib/KD2/DB/*SQLite3.php*:/697/


        → KD2\DB\SQLite3->preparedQuery /(1 arg.)/

$query 	

string(39) "SELECT id, * FROM plugins ORDER BY nom;"

|*693*	} *694* *695*	public function getGrouped(string $statement, 
...$args): array *696*	{ _*697*	$res = $this->preparedQuery($statement, 
...$args);_ *698*	$out = []; *699* *700*	while ($row = 
$res->fetchArray(\SQLITE3_ASSOC)) *701*	{ |


      in .../include/lib/Garradin/*Plugin.php*:/365/


        → KD2\DB\SQLite3->getGrouped /(1 arg.)/

$statement 	

string(39) "SELECT id, * FROM plugins ORDER BY nom;"

|*361*	*/ *362*	static public function listInstalled() *363*	{ *364*	$db 
= DB::getInstance(); _*365*	$plugins = $db->getGrouped('SELECT id, * 
FROM plugins ORDER BY nom;');_ *366* *367*	foreach ($plugins as &$row) 
*368*	{ *369*	$row->disabled = !self::getPath($row->id); |


      in .../include/lib/Garradin/*Plugin.php*:/496/


        → Garradin\Plugin::listInstalled /(0 arg.)/

|*492*	* @return array Liste des plugins téléchargés *493*	*/ *494* 
static public function listDownloaded() *495*	{ _*496*	$installed = 
self::listInstalled();_ *497* *498*	$list = []; *499*	$dir = 
dir(PLUGINS_ROOT); *500* |


      in .../www/admin/config/*plugins.php*:/57/


        → Garradin\Plugin::listDownloaded /(0 arg.)/

|*53* $tpl->assign('delete', true); *54*} *55*else *56*{ _*57* 
$tpl->assign('liste_telecharges', Plugin::listDownloaded());_ *58* 
$tpl->assign('liste_installes', Plugin::listInstalled()); *59*} *60* 
*61*$tpl->assign('garradin_website', WEBSITE); |


  Exception


    Unable to prepare statement: 1, no such column: nom


      in .../include/lib/KD2/DB/*SQLite3.php*:/830/

|*826*	call_user_func($this->callback, __FUNCTION__, 'before', $this, 
... func_get_args()); *827*	} *828* *829*	try { _*830*	$return = 
$this->db->prepare($statement);_ *831*	} *832*	catch (\Exception $e) { 
*833*	if ($this->db->lastErrorCode()) { *834*	throw new 
DB_Exception($this->db->lastErrorMsg(), $this->db->lastErrorCode(), $e); |


      in .../include/lib/KD2/DB/*SQLite3.php*:/830/


        → SQLite3->prepare /(1 arg.)/

$query 	

string(39) "SELECT id, * FROM plugins ORDER BY nom;"

|*826*	call_user_func($this->callback, __FUNCTION__, 'before', $this, 
... func_get_args()); *827*	} *828* *829*	try { _*830*	$return = 
$this->db->prepare($statement);_ *831*	} *832*	catch (\Exception $e) { 
*833*	if ($this->db->lastErrorCode()) { *834*	throw new 
DB_Exception($this->db->lastErrorMsg(), $this->db->lastErrorCode(), $e); |


      in .../include/lib/KD2/DB/*DB.php*:/534/


        → KD2\DB\SQLite3->prepare /(1 arg.)/

$statement 	

string(39) "SELECT id, * FROM plugins ORDER BY nom;"

|*530*	$key = md5($query . implode(',', array_keys($args))); *531* *532* 
// Use statements cache! *533*	if (!array_key_exists($key, 
$this->statements)) { _*534*	$this->statements[$key] = 
$this->prepare($query);_ *535*	} *536* *537*	return 
$this->execute($this->statements[$key], ...$args); *538*	} |


      in .../include/lib/KD2/DB/*SQLite3.php*:/541/


        → KD2\DB\DB->preparedQuery /(1 arg.)/

$query 	

string(39) "SELECT id, * FROM plugins ORDER BY nom;"

|*537*	* on a statement. This could cause double writing. *538*	*/ *539* 
public function preparedQuery(string $query, ...$args) *540*	{ _*541* 
return parent::preparedQuery($query, ...$args);_ *542*	} *543* *544* 
public function execute($statement, ...$args) *545*	{ |


      in .../include/lib/KD2/DB/*SQLite3.php*:/697/


        → KD2\DB\SQLite3->preparedQuery /(1 arg.)/

$query 	

string(39) "SELECT id, * FROM plugins ORDER BY nom;"

|*693*	} *694* *695*	public function getGrouped(string $statement, 
...$args): array *696*	{ _*697*	$res = $this->preparedQuery($statement, 
...$args);_ *698*	$out = []; *699* *700*	while ($row = 
$res->fetchArray(\SQLITE3_ASSOC)) *701*	{ |


      in .../include/lib/Garradin/*Plugin.php*:/365/


        → KD2\DB\SQLite3->getGrouped /(1 arg.)/

$statement 	

string(39) "SELECT id, * FROM plugins ORDER BY nom;"

|*361*	*/ *362*	static public function listInstalled() *363*	{ *364*	$db 
= DB::getInstance(); _*365*	$plugins = $db->getGrouped('SELECT id, * 
FROM plugins ORDER BY nom;');_ *366* *367*	foreach ($plugins as &$row) 
*368*	{ *369*	$row->disabled = !self::getPath($row->id); |


      in .../include/lib/Garradin/*Plugin.php*:/496/


        → Garradin\Plugin::listInstalled /(0 arg.)/

|*492*	* @return array Liste des plugins téléchargés *493*	*/ *494* 
static public function listDownloaded() *495*	{ _*496*	$installed = 
self::listInstalled();_ *497* *498*	$list = []; *499*	$dir = 
dir(PLUGINS_ROOT); *500* |


      in .../www/admin/config/*plugins.php*:/57/


        → Garradin\Plugin::listDownloaded /(0 arg.)/

|*53* $tpl->assign('delete', true); *54*} *55*else *56*{ _*57* 
$tpl->assign('liste_telecharges', Plugin::listDownloaded());_ *58* 
$tpl->assign('liste_installes', Plugin::listInstalled()); *59*} *60* 
*61*$tpl->assign('garradin_website', WEBSITE); |


    Context

date 	2023-07-19T15:38:27+00:00
duration 	18.884181976318
environment 	development
hostname 	yunohost.packaging
http_files 	array(0) { }
http_method 	GET
http_post 	array(0) { }
http_user_agent 	Mozilla/5.0 (X11; Linux x86_64; rv:102.0) 
Gecko/20100101 Firefox/102.0
id 	1owofz8x
language 	PHP 8.2.8
memory_peak 	2097152
memory_used 	2097152
os 	Linux
paheko_data_root 	/var/www/paheko/data
paheko_version 	1.3.0-rc1
php_sapi 	fpm-fcgi
remote_ip 	192.168.1.103
root_directory 	/var/www/paheko
server_addr 	192.168.1.105
user_addr 	192.168.1.103
url 	https://yunohost.packaging/garradin/admin/config/plugins.php

Le 19/07/2023 à 17:26, Rodolphe Robles a écrit :
>
> Bonjour,
>
> je maintiens le paquet Yunohost pour Paheko.
>
> Avec la mise à jour vers paheko 1.3.0 j'ai ce message d'erreur sur la

> page des extensions.
>
>
>   Erreur
>
> facturation: Le fichier admin/index.php n'existe pas alors que la 
> directive "menu" est activée.
>
>
> J'ai réinstallé un plugin facturation qui n'était plus là avec la

> version compatible avec php8.2 
>
https://gitlab.com/noizette/garradin-plugin-facturation/-/archive/v0.7.4/garradin-plugin-facturation-v0.7.4.tar.gz

>
>
> car de plus j'ai mis des dépendances php8.2 pour cette mise à jour...
>
> Comment supprimer le plugin facturation sinon en cli pour réparer ?? 
> ou est-ce une erreur nginx de redirection ??
>
> j'arrive sur ce lien en local 
> https://yunohost.test/garradin/admin/config/ext/
>
> -- 
> Librement,
> Rodolphe
> Ce message est fièrement envoyé grâce à un système d'exploitation 
> GNU/Linux <https://www.gnu.org/home.fr.html> 100% libre !
> Apprenons à chiffrer nos messages !
<https://emailselfdefense.fsf.org/fr/>

lien cassé extensions depuis mise à jour 1.3.0

BohwaZ/Paheko

20/07/2023 12:29:49

Je vais faire une RC2 pour contourner le blocage, mais tant que le
plugin n'est pas compatible tu ne pourra pas le désinstaller ni rien,
il sera bloqué dans un état "inutilisable" c'est tout.

lien cassé extensions depuis mise à jour 1.3.0

Rodolphe Robles

21/07/2023 00:03:15

Bonsoir,

Un essai avec la RC2 ne semble pas avoir débloqué le soucis...

je dois peut-être attendre que le plugin soit mis à jour et ouvrir une 
issue sur son dépôt ??

bonne soirée

rodinux

Le 20/07/2023 à 12:28, BohwaZ/Paheko a écrit :
> Je vais faire une RC2 pour contourner le blocage, mais tant que le
> plugin n'est pas compatible tu ne pourra pas le désinstaller ni rien,
> il sera bloqué dans un état "inutilisable" c'est tout.
>

lien cassé extensions depuis mise à jour 1.3.0

BohwaZ/Paheko

21/07/2023 11:09:12

> Un essai avec la RC2 ne semble pas avoir débloqué le soucis...
> 
> je dois peut-être attendre que le plugin soit mis à jour et ouvrir
> une issue sur son dépôt ??

Quel est le problème exactement ?

Avant : le plugin empêchait l'affichage de la page des extensions
Maintenant (RC2) : la liste des extensions s'affiche (normalement)

Dans tous les cas, le plugin n'est pas compatible avec la 1.3 donc il
ne pourra pas marcher tant qu'il n'est pas ré-écrit, ça je n'y peux
rien moi :)

lien cassé extensions depuis mise à jour 1.3.0

Rodolphe Robles

21/07/2023 19:12:20

bonjour,

dans le contexte, après avoir eu l'erreur en question en mettant à jour 
avec la version 1.3.0, puis en upgradant ensuite avec la 1.3.0v2, le 
problème est toujours là.

je vais refaire un test en mettant à jour de version 1.29 à la 1.3.0v2 
directement.

Le 21/07/2023 à 11:08, BohwaZ/Paheko a écrit :
>> Un essai avec la RC2 ne semble pas avoir débloqué le soucis...
>>
>> je dois peut-être attendre que le plugin soit mis à jour et ouvrir
>> une issue sur son dépôt ??
> Quel est le problème exactement ?
>
> Avant : le plugin empêchait l'affichage de la page des extensions
> Maintenant (RC2) : la liste des extensions s'affiche (normalement)
>
> Dans tous les cas, le plugin n'est pas compatible avec la 1.3 donc il
> ne pourra pas marcher tant qu'il n'est pas ré-écrit, ça je n'y
peux
> rien moi :)
>

lien cassé extensions depuis mise à jour 1.3.0

bohwaz/Paheko

21/07/2023 19:22:11

C'est quoi "le probleme" exactement merci :)

lien cassé extensions depuis mise à jour 1.3.0

Rodolphe Robles

21/07/2023 19:33:43

Re,

Oui, dans ce sens là ça fonctionne, merci beaucoup !

bonne journée

rodinux

capture d'écran extensions
Le 21/07/2023 à 19:11, Rodolphe Robles a écrit :
>
> bonjour,
>
> dans le contexte, après avoir eu l'erreur en question en mettant à 
> jour avec la version 1.3.0, puis en upgradant ensuite avec la 1.3.0v2, 
> le problème est toujours là.
>
> je vais refaire un test en mettant à jour de version 1.29 à la 1.3.0v2 
> directement.
>
> Le 21/07/2023 à 11:08, BohwaZ/Paheko a écrit :
>>> Un essai avec la RC2 ne semble pas avoir débloqué le soucis...
>>>
>>> je dois peut-être attendre que le plugin soit mis à jour et ouvrir
>>> une issue sur son dépôt ??
>> Quel est le problème exactement ?
>>
>> Avant : le plugin empêchait l'affichage de la page des extensions
>> Maintenant (RC2) : la liste des extensions s'affiche (normalement)
>>
>> Dans tous les cas, le plugin n'est pas compatible avec la 1.3 donc il
>> ne pourra pas marcher tant qu'il n'est pas ré-écrit, ça je
n'y peux
>> rien moi :)
>>