Auteur Sujet: Build-collection soucis utilisateur avec HOME non standard  (Lu 245 fois)

/dev/null

  • Petit Nouveau
  • *
  • Messages: 6
  • Karma: 0
Build-collection soucis utilisateur avec HOME non standard
« le: mer. sept. 11 20:06:59 2019 »
Bonjour, j'ai rencontré un petit soucis avec le Bot de compilation et le fait que mon utilisateur n'est pas dans un /home/$USER standard. Build-collection cherche dans le /etc/fstab la ligne qui va bien pour le rsync, mais seulement voilà, /home est codé en dur et mon utilisateur n'est pas là dedans.

Je propose ce patch pour corriger le soucis
--- - 2019-09-11 19:46:31.540302012 +0000
+++ /bin/build-collection 2019-09-11 19:27:26.984123721 +0000
@@ -265,7 +265,7 @@
 VERSION=$(basename $(dirname "${PARAM[0]}"))
 COLLECTION=$(basename "${PARAM[0]}")
 
-GIT_PROJ="$(grep ^/home /etc/fstab |grep ${PARAM[0]}/|cut -d " " -f1)"
+GIT_PROJ="$(grep ^$HOME /etc/fstab |grep ${PARAM[0]}/|cut -d " " -f1)"
 if [ -z "$GIT_PROJ" ]; then
  echo ">>> Cannot rsync, ${PARAM[0]} not found in /etc/fstab"
  error ${PARAM[0]}

A voir si la correction est valable

Thierry

  • Administrator
  • Super Héros
  • *****
  • Messages: 1159
  • Karma: 12
  • Sexe: Homme
    • NuTyX distribution
Re : Build-collection soucis utilisateur avec HOME non standard
« Réponse #1 le: jeu. sept. 12 15:27:21 2019 »
Merci pour ta proposition de modification.

Je valide ça dès que je peux. N'hésites pas à utiliser l'outil fait pour cela

Thierry

  • Administrator
  • Super Héros
  • *****
  • Messages: 1159
  • Karma: 12
  • Sexe: Homme
    • NuTyX distribution
Re : Build-collection soucis utilisateur avec HOME non standard
« Réponse #2 le: ven. sept. 13 17:19:53 2019 »
ouais ... ça marche pas. On aurai bien aimé un minimum de tests quand même

/dev/null

  • Petit Nouveau
  • *
  • Messages: 6
  • Karma: 0
Re : Build-collection soucis utilisateur avec HOME non standard
« Réponse #3 le: ven. sept. 13 17:32:30 2019 »
C'est justement ce qui a été fait, j'utilise cette version modifiée chez moi et ça fonctionne nickel, quelque soit le home de l'utilisateur, y compris Root

Thierry

  • Administrator
  • Super Héros
  • *****
  • Messages: 1159
  • Karma: 12
  • Sexe: Homme
    • NuTyX distribution
Re : Build-collection soucis utilisateur avec HOME non standard
« Réponse #4 le: sam. sept. 14 01:23:09 2019 »
On doit pas parler de la même distro alors:

la commande:

sudo build-collection /rolling/guiattribue la valeur /root à la variable HOME

Et comme le depot git n'est pas censé se trouver dans le dossier personnel root. On ne commit jamais sous le compte root ...

thierry [ ~ ]$ sudo build-collection /rolling/gui
>>> Cannot rsync, /rolling/gui not found in /etc/fstab
umount: /rolling/gui/run: Aucun point de montage indiqué.
umount: /rolling/gui/sys: Aucun point de montage indiqué.
umount: /rolling/gui/proc: Aucun point de montage indiqué.
umount: /rolling/gui/dev/pts: Aucun point de montage indiqué.
umount: /rolling/gui/dev: Aucun point de montage indiqué.
rm: impossible de supprimer '/rolling/gui/*': Aucun fichier ou dossier de ce type

thierry [ ~ ]$ grep /rolling/gui /etc/fstab
/home/thierry/devel/git/nutyx/rolling/packages-x86_64 /rolling/gui/root/core none noauto,bind
/home/thierry/devel/git/nutyx/rolling/packages-x86_64 /rolling/gui-extra/root/extra none noauto,bind
thierry [ ~ ]$
Donc si le monsieur te dit ça ne marche pas, y a grande chance que cela ne marche pas. :)

Néanmoins, je garde l'idée.
« Modifié: sam. sept. 14 18:23:24 2019 par Thierry »

/dev/null

  • Petit Nouveau
  • *
  • Messages: 6
  • Karma: 0
Re : Build-collection soucis utilisateur avec HOME non standard
« Réponse #5 le: dim. sept. 15 16:26:29 2019 »
Décidément sudo me fascine. Quand on fait sudo echo $HOME en utilisateur, la variable qui ressort est bien celle du HOME de l'utilisateur. Quand on fait Sudo d'un script qui demande echo $HOME, c'est bien /root qui ressort.
Donc, j'ai regardé le help de sudo et un paramètre permet de conserver une, plusieurs ou toutes les variables d'environnement.
Je me permet de mettre ici le résultat de ma recherche, qui évite de mettre sudo devant le build-collection et permet aux utilisateurs non standard de pouvoir utiliser le script. Ces lignes sont à placer au tout début du script.
[ "root" != "$USER" ] && echo "SUDO password please" && exec sudo --preserve-env=HOME $0 "$@"

HOME_USER=$HOME

Evidemment, il faut remplacer le $HOME qui a été placé devant /etc/fstab par $HOME_USER
« Modifié: dim. sept. 15 17:15:01 2019 par /dev/null »

Thierry

  • Administrator
  • Super Héros
  • *****
  • Messages: 1159
  • Karma: 12
  • Sexe: Homme
    • NuTyX distribution
Re : Build-collection soucis utilisateur avec HOME non standard
« Réponse #6 le: dim. sept. 15 18:38:39 2019 »
C'est très sympa de ta part de faire des recherches. Mais mon idée de départ est de lancer la commande build-collection uniquement en non root pour qu'a la fin le script me demande si je veux commiter, c'est hyper utile pour moi, cela me fait gagner du temps précieux. Voir les derniers commits sur github.com/nutyx/cards

/dev/null

  • Petit Nouveau
  • *
  • Messages: 6
  • Karma: 0
Re : Build-collection soucis utilisateur avec HOME non standard
« Réponse #7 le: dim. sept. 15 22:08:09 2019 »
Ok, je n'avais pas l'info, mais cela permet de conserver la variable $HOME pour le rsync, ce qui est une bonne chose. L'approche est différente mais donne un résultat correct, ça se respecte et en plus on gagne le commit automatisé.