[sixad] compiler sixad de retropie

Mise à jour / Création /debug de paquetages
PowaBanga
Hankyu
Messages : 40
Inscription : mar. 12 sept. 2017, 21:15

[sixad] compiler sixad de retropie

Message par PowaBanga » sam. 12 mai 2018, 15:45

Salut à tous,
Je viens de m'acheter un addaptateur bluetooth pour connecter mes mannettes ps3. Les clone shanwan se connecte sans aucun souci grace au paquet bluez pour ps3 qui se trouve sur Aur, mais les gasia par contre, ca ne fonctionne pas.

J'ai testé en installant qtsixa, mais cela en plus de ne pas fonctionner via les commandes

Code : Tout sélectionner

sixpair
sixad --start
Et bien plus aucune de mes mannettes ne sont détectées dans jstest.
heureusement ce souci se résoud en désinstallant qtsixa.

Après plusieurs recherches, il semblerait que les manette gasia soient détectée sur retropie, et j'ai trouvé ce github contenant une version de sixad qui semble avoir reçu des modifs spécifiquement pour gasia.

Je voudrais donc le tester, et je me suis lancé dans la création d'un package, afin de faire cela proprement

Voici pkgbuild :

Code : Tout sélectionner

pkgbase=sixad
pkgname=sixad-git
pkgver=0.0.1
pkgrel=1
arch=(x86_64)
url=https://github.com/RetroPie/sixad
packager=PowaBanga
source=("git://github.com/RetroPie/sixad.git")

md5sums=('SKIP')
build() {
  cd $srcdir/sixad
  echo $PWD
  make
}
package() {
	cd $srcdir/sixad
	echo $PWD
	make DESTDIR="$pkgdir" install
}
Et la réponse dans un terminal :

Code : Tout sélectionner

 makepkg
==> Création du paquet sixad 0.0.1-1 (sam mai 12 13:49:46 CEST 2018)
==> Vérification des dépendances pour l’exécution...
==> Vérification des dépendances pour la compilation...
==> Récupération des sources...
  -> Clonage du dépôt sixad git...
Clonage dans le dépôt nu '/home/powabanga/Téléchargements/sixadretropie/sixad'
remote: Counting objects: 974, done.
remote: Total 974 (delta 0), reused 0 (delta 0), pack-reused 974
Réception d'objets: 100% (974/974), 1.76 MiB | 2.30 MiB/s, fait.
Résolution des deltas: 100% (527/527), fait.
==> Validation des fichiers source avec md5sums...
    sixad ... Ignoré
==> Extraction des sources...
  -> Création d’une copie de travail du dépot sixad git...
Clonage dans 'sixad'...
fait.
==> Lancement de build()...
/home/powabanga/Téléchargements/sixadretropie/src/sixad
mkdir -p bins
g++ -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt -O2 -Wall  -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -Wl,-Bsymbolic-functions sixad-bin.cpp bluetooth.cpp shared.cpp textfile.cpp -o bins/sixad-bin `pkg-config --cflags --libs bluez` -lpthread -fpermissive
g++ -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt -O2 -Wall  -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -Wl,-Bsymbolic-functions sixad-sixaxis.cpp sixaxis.cpp shared.cpp uinput.cpp textfile.cpp -o bins/sixad-sixaxis -lpthread -lrt
g++ -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt -O2 -Wall  -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -Wl,-Bsymbolic-functions sixad-remote.cpp remote.cpp shared.cpp uinput.cpp textfile.cpp -o bins/sixad-remote -lrt
g++ -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt -O2 -Wall  -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -Wl,-Bsymbolic-functions sixad-raw.cpp sixaxis.cpp shared.cpp uinput.cpp textfile.cpp -o bins/sixad-raw
g++ -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt -O2 -Wall  -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -Wl,-Bsymbolic-functions sixad-3in1.cpp sixaxis.cpp shared.cpp uinput.cpp textfile.cpp -o bins/sixad-3in1
mkdir -p bins
cc -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -Wl,-Bsymbolic-functions sixpair.c -o bins/sixpair `pkg-config --cflags --libs libusb`
==> Entre dans l’environnement fakeroot...
==> Lancement de package()...
/home/powabanga/Téléchargements/sixadretropie/src/sixad
install -d /home/powabanga/Téléchargements/sixadretropie/pkg/sixad-git/etc/default/
install -d /home/powabanga/Téléchargements/sixadretropie/pkg/sixad-git/etc/systemd/system/
install -d /home/powabanga/Téléchargements/sixadretropie/pkg/sixad-git/etc/logrotate.d/
install -d /home/powabanga/Téléchargements/sixadretropie/pkg/sixad-git/usr/bin/
install -d /home/powabanga/Téléchargements/sixadretropie/pkg/sixad-git/usr/sbin/
install -d /home/powabanga/Téléchargements/sixadretropie/pkg/sixad-git/var/lib/sixad/
install -d /home/powabanga/Téléchargements/sixadretropie/pkg/sixad-git/var/lib/sixad/profiles/
install -m 644 sixad.default /home/powabanga/Téléchargements/sixadretropie/pkg/sixad-git/etc/default/sixad
install -m 644 sixad.service /home/powabanga/Téléchargements/sixadretropie/pkg/sixad-git/etc/systemd/system/
install -m 644 sixad.log /home/powabanga/Téléchargements/sixadretropie/pkg/sixad-git/etc/logrotate.d/sixad
install -m 755 sixad /home/powabanga/Téléchargements/sixadretropie/pkg/sixad-git/usr/bin/
install -m 755 bins/sixad-bin /home/powabanga/Téléchargements/sixadretropie/pkg/sixad-git/usr/sbin/
install -m 755 bins/sixad-sixaxis /home/powabanga/Téléchargements/sixadretropie/pkg/sixad-git/usr/sbin/
install -m 755 bins/sixad-remote /home/powabanga/Téléchargements/sixadretropie/pkg/sixad-git/usr/sbin/
install -m 755 bins/sixad-3in1 /home/powabanga/Téléchargements/sixadretropie/pkg/sixad-git/usr/sbin/
install -m 755 bins/sixad-raw /home/powabanga/Téléchargements/sixadretropie/pkg/sixad-git/usr/sbin/
install -m 755 bins/sixpair /home/powabanga/Téléchargements/sixadretropie/pkg/sixad-git/usr/sbin/
install -m 644 default /home/powabanga/Téléchargements/sixadretropie/pkg/sixad-git/var/lib/sixad/profiles/
install -m 755 sixad-helper /home/powabanga/Téléchargements/sixadretropie/pkg/sixad-git/usr/sbin/
install -m 644 99-sixad.rules /home/powabanga/Téléchargements/sixadretropie/pkg/sixad-git/etc/udev/rules.d
install: impossible de créer le fichier standard '/home/powabanga/Téléchargements/sixadretropie/pkg/sixad-git/etc/udev/rules.d': Aucun fichier ou dossier de ce type
make: *** [Makefile:52: install] Error 1
==> ERREUR : Une erreur s’est produite dans package().
    Abandon...
Et me voilà bloqué, je ne comprend pas du tout l'origine de cette erreur.

Quelqu'un saurait-il m'aider ?

Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 15163
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [sixad] compiler sixad de retropie

Message par benjarobin » sam. 12 mai 2018, 15:52

Bonjour,
C'est la faute du Makefile qui suppose que le dossier ./etc/udev/rules.d existes.
Le plus simple est de le créer juste avant le make install, via :

Code : Tout sélectionner

install -d "$pkgdir/etc/udev/rules.d"
Tu devrait aussi ajouter une fonction prepare() pour remplacer les sbin par simplement bin, via par exemple ceci :

Code : Tout sélectionner

sed -i "s/sbin/bin/g" "$srcdir/sixad/Makefile"
Zsh | KDE | PC fixe : core i7, carte nvidia | Portable : Asus ul80vt
Titre d'un sujet : [Thème] Sujet (état)

PowaBanga
Hankyu
Messages : 40
Inscription : mar. 12 sept. 2017, 21:15

Re: [sixad] compiler sixad de retropie

Message par PowaBanga » sam. 12 mai 2018, 16:41

Ha c'est vachement pratique la fonction prépare, merci :)

Du coup, je me retrouve encore avec de nouvelles erreurs que je n'avais pas prévu

pkgbuild

Code : Tout sélectionner

pkgbase=sixad
pkgname=sixad-git
pkgver=0.0.1
pkgrel=1
arch=(x86_64)
url=https://github.com/RetroPie/sixad
packager=PowaBanga
source=("git://github.com/RetroPie/sixad.git")
md5sums=('SKIP')
depends=('libusb')
makedepends=('libusb')
prepare() {
sed -i "s/sbin/bin/g" "$srcdir/sixad/Makefile"
}
build() {
  cd $srcdir/sixad
  echo $PWD
  make
}
package() {
	cd $srcdir/sixad
	echo $PWD
        install -d "$pkgdir/etc/udev/rules.d"
	make DESTDIR="$pkgdir" install
}
Makepkg

Code : Tout sélectionner

makepkg
==> Création du paquet sixad 0.0.1-1 (sam mai 12 16:38:22 CEST 2018)
==> Vérification des dépendances pour l’exécution...
==> Vérification des dépendances pour la compilation...
==> Récupération des sources...
  -> Clonage du dépôt sixad git...
Clonage dans le dépôt nu '/home/powabanga/Téléchargements/sixadretropie/sixad'
remote: Counting objects: 974, done.
remote: Total 974 (delta 0), reused 0 (delta 0), pack-reused 974
Réception d'objets: 100% (974/974), 1.76 MiB | 2.74 MiB/s, fait.
Résolution des deltas: 100% (527/527), fait.
==> Validation des fichiers source avec md5sums...
    sixad ... Ignoré
==> Extraction des sources...
  -> Création d’une copie de travail du dépot sixad git...
Clonage dans 'sixad'...
fait.
==> Lancement de prepare()...
==> Suppression du répertoire $pkgdir/ existant...
==> Lancement de build()...
/home/powabanga/Téléchargements/sixadretropie/src/sixad
mkdir -p bins
g++ -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt -O2 -Wall  -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -Wl,-Bsymbolic-functions sixad-bin.cpp bluetooth.cpp shared.cpp textfile.cpp -o bins/sixad-bin `pkg-config --cflags --libs bluez` -lpthread -fpermissive
g++ -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt -O2 -Wall  -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -Wl,-Bsymbolic-functions sixad-sixaxis.cpp sixaxis.cpp shared.cpp uinput.cpp textfile.cpp -o bins/sixad-sixaxis -lpthread -lrt
g++ -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt -O2 -Wall  -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -Wl,-Bsymbolic-functions sixad-remote.cpp remote.cpp shared.cpp uinput.cpp textfile.cpp -o bins/sixad-remote -lrt
g++ -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt -O2 -Wall  -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -Wl,-Bsymbolic-functions sixad-raw.cpp sixaxis.cpp shared.cpp uinput.cpp textfile.cpp -o bins/sixad-raw
g++ -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt -O2 -Wall  -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -Wl,-Bsymbolic-functions sixad-3in1.cpp sixaxis.cpp shared.cpp uinput.cpp textfile.cpp -o bins/sixad-3in1
mkdir -p bins
cc -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -Wl,-Bsymbolic-functions sixpair.c -o bins/sixpair `pkg-config --cflags --libs libusb`
Package libusb was not found in the pkg-config search path.
Perhaps you should add the directory containing `libusb.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libusb' found
sixpair.c:33:10: erreur fatale: usb.h : Aucun fichier ou dossier de ce type
 #include <usb.h>
          ^~~~~~~
compilation terminée.
make: *** [Makefile:27: sixpair_bin] Error 1
==> ERREUR : Une erreur s’est produite dans build().
    Abandon...
Pourtant libusb est déjà installé sur mon système, c'est étrange non ?

Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 15163
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [sixad] compiler sixad de retropie

Message par benjarobin » sam. 12 mai 2018, 17:29

Euh, cela fonctionnait avant, tu as changé quoi ?
Edit: Tu dois avoir en dépendance libusb-compat et non libusb.
Le makedepends est inutile, car la dépendance est déjà dans depends

Essaye ceci

Code : Tout sélectionner

pkgbase=sixad
pkgname=sixad-git
pkgver=0.0.1
pkgrel=1
arch=(x86_64)
url=https://github.com/RetroPie/sixad
packager=PowaBanga
source=("git://github.com/RetroPie/sixad.git")
md5sums=('SKIP')
depends=('libusb-compat')

prepare() {
    sed -i "s/sbin/bin/g" "$srcdir/sixad/Makefile"
}

build() {
    cd "$srcdir/sixad"
    make
}

package() {
    cd "$srcdir/sixad"
    install -d "$pkgdir/etc/udev/rules.d"
    make DESTDIR="$pkgdir" install
}
Zsh | KDE | PC fixe : core i7, carte nvidia | Portable : Asus ul80vt
Titre d'un sujet : [Thème] Sujet (état)

Répondre