OBSD4* : wiki

Git

Installation

Le paquet est : Git

  • version 2.12.2 - OpenBSD 6.1
  • version 2.14.2 - OpenBSD 6.2

Pour pouvoir utiliser la fonction git send-email, et utiliser smtp, tls, il vous faut installer aussi les packages suivants :

  • p5-Net-SMTP-SSL
  • p5-Authen-SASL

Documentation

Après l'installation, n'oubliez pas de lire le fichier
/usr/local/share/doc/pkg-readmes/git-2.14.2
! ;-)

Configuration

Le fichier de configuration : ~/.gitconfig

Exemple minimaliste :

[user]
	name = identifiant
	email = email@domain.com

Signature

Depuis la version 1.7.9 de Git, il est possible de signer les commits, ce qui permet d'assurer que vous êtes bien l'auteur de ceux-ci.

Pour signer vos commits, il est nécessaire d'avoir créé dans un premier temps une clé GPG - ce mémo ne vous montrera pas comment faire … . L'outil GPG2 est fourni de base dans OpenBSD. Néanmoins, il vous faudra créer un lien symbolique pour lui faire croire qu'il utilise GPG, car Git semble ne pas être capable de comprendre !

Vous devrez ensuite modifier votre fichier de configuration afin de rajouter l'option signingkey dans la partie de configuration [user], tel que :

[user]
	name = identifiant
	email = email@domain.com
        signingkey = votre_id_gpg

La commande pour signer :

  • un commit :
    git commit -a -S -m 'un ou plusieurs longs commentaires'
  • un tag :
    git tag -s v1.5 -m 'mon tag signé'

Pour en connaître plus sur le fonctionnement de git et le fait de signer, veuillez lire la doc officielle …

Erreurs

error: cannot run gpg: No such file or directory

Vous avez le message d'erreur suivant dans son ensemble :

error: cannot run gpg: No such file or directory
error: impossible de lancer gpg.
fatal: échec de l'écriture de l'objet commit

L'outil GPG n'est pas trouvé ; normal sous OpenBSD (6.0, 6.1), il n'existe pas. L'astuce est de lier GPG au binaire GPG2 :

# ln -sf /usr/local/bin/gpg2 /usr/local/bin/gpg

gpg: échec de la signature : Inappropriate ioctl for device

Le message d'erreur est le suivant :

gpg: échec de la signature : Inappropriate ioctl for device
gpg: signing failed: Inappropriate ioctl for device
error: gpg n'a pas pu signer les données
fatal: échec de l'écriture de l'objet commit

Il vous manque les paquets suivants : pinentry pinentry-gtk2 ou pinentry-gtk3

Pour info, il semble que ce soit lié au bogue 2680 relatif à la version 2.1x de GPG

Documentations

Git :

GPG :