NodeJS 12 - Migration

du coup les gens sur smart… ca continue à installer la 8

Si le depot jeedom dispose d’une v8, en ajoutant le dépot officiel nodejs en v12, apt va prendre la dernière version disponible sur l’ensemble des repos
Sauf si des configs de pinning ont été mises en place (et dans ce cas, c’est pas bien, parceque le pinning est logiquement censé etre défini pour l’ensemble des repos configurés, et donc y compris par exemple l’officiel nodejs quand il est ajouté, ce qui est pas le cas, et donc comment apt peut comparé le « poids » de valeur entre les 2 repos ?)

@Alexandre vous utilisez le pinning sur les Smart ou c’est simplement un repo ajouté ?

PS : Mon script n’agit que sur les nouvelles installs, ceux pour qui ca roule déjà n’y verront rien

Oui notre repo est prioritaire sur le package nodeJS 8.

On va supprimer le package et modifier notre fichier de repo pour que vous soyez libre de mettre le repo officiel

Nous avons était obliger de verrouiller en V8 comme ça, pour éviter toute modification d’un plugin de node et du coup casser tout les autres !

sauf ceux qui relancent les dépendances non ?

il y aurait un problème pour nodejs12 sur jessie… il passe bien la validation mais il requière :

nodejs : Depends: libstdc++6 (>= 5.2) but 4.9.2-10+deb8u2 is to be installed

or sur jessie c’est donc 4.9 max et pas 5.2…

perso, je vais detecter jessie dans mon script et continuer à installer la 8

Mais techniquement, comment vous avez « verrouillez » ou rendu prioritaire ?
Cette notion en apt-get c’est le pinning. Mais ca nécessite de le définir pour tous les repos.
Exemple : une smart de base t’as le repo debian, le repo jeedom. Tu définis un pinning à 500 sur le premier et 600 sur le deuxième. Ok, tout ce qui est présent dans jeedom aura préséance sur debian. Mais si j’ajoute un repo nodejs, sans ajouter sa valeur de pinning dans preferences, apt-get ne garantie pas de prendre celui avec un pinning défini.

Jessie est EOL depuis 2018. Ca couille avec nodejs, ca couille avec Python et tellement d’autres trucs.
Maintenant qu’il y a une image stretch pour les Smart, pas de pitié pour ma part. C’est pour leur bien.

tu es du style huile de foie de morue toi :wink:

On a dans les preference.d de apt un petit >

Package: *
Pin: release a=stable
Pin-Priority: 900

il prendra donc tout les repo et utilisera la stable en priorité 900
et notre repo est en 1000 pour forcer l’installation de nodejs 8 obligatoirement

Oui voilà, sauf que si on ajoute un repo et qu’on défini pas de pin pour ce nouveau repo, il se passe quoi ?

le apt va verifier si stable si stable il le pin a 900 sinon pas de pin et sera le dernière a etre utilisé (voir meme jamais utilisé)

@lunarok je pense que xiaomiHome est encore en nodejs10 en beta (sauf si tu as fait la maj depuis…)

moi j’ai une merde avec node-gyp sur certains systèmes on dirait qu’il continue de croire qu’il est en 8… évidemment aucun des miens ni de mes beta-testeurs…

Ah oui, celle là elle est rigolote. Dommage que Xiaomi ce soit du python :slight_smile:

Un dépôt qui n’a pas de pin défini a pour valeur 500. Du coup en ayant mis la stable a 900, ça veut dire que des dépôts tiers ajouté sur la Smart c’est comme pisser dans un violon. Même pas que nodejs, mqtt par exemple la version mosquitto est pas toute neuve, et bien avec le pin sette il se peut que ça gêne l’installation de leur dépôt officiel. Et là je comprendrais une paire de tickets et problèmes que j’ai vu sur mqtt avec Smart.

Et c’est quoi ce ‹ il semblerait que dashbutton garde un vieux nodejs › ? Et la présomption d’innonce ? Parceque pour juger ça serait bien d’avoir une preuve.
J’ai un seul script d’install nodejs. Il est appelé par tous mes plugins, en beta ou en stable. Si hikvision installé du nodejs12 en beta, dashbutton aussi même en stable.
C’est voulu, pour pas me coltiner 36 mises à jour

xiaomihome = oui mais le nodejs.sh qui est dedans (peut-etre historique…) install une vieille version, mais en effet je ne vois plus que c’est utilisé (sorry c’est remonté dans mes recherches pour voir si j’avais encore des vieilles références qui trainaient), (et la v10 que j’avais vu semble venir d’un autre plugin… mais je trouve pas lequel)

« il semblerait que dashbutton garde un vieux nodejs » = d’ou tires-tu ca ?

ah ok c’est ce que BetyOops a dit sur le forum, pas moi.

ben j’ai vérifié et après j’ai vu que c’etait pas le cas donc je te l’ai pas reporté

Moi j’ai pris une profonde inspiration pour laisser couler en me disant que finalement ce post était bien mieux en mangeant des popcorns et en te regardant lutter :slight_smile:

Pour Xiaomi, le fichier n’existe plus dans les repos depuis longtemps. C’est que tu dois avoir le plugin depuis des temps reculés. Et vu que Jeedom ne nettoie pas les répertoires quand il met à jour …

oui je lutte :wink: il doit y avoir un module qui merde qqpart chez certains… mais j’arrive pas à déceler où… et chez qui…

xiaomi : ok sorry pour la mauvaise info