Problèmes et questions sur les environnements graphiques et les applications.

[PKGBUILD] Recompiler un paquet modifié avec un logiciel déjà installé

#1Messageil y a 5 ans

Bonjour,

Depuis Noël, je suis possesseur d'un casque Steelseries Artic 7 version 2019. J'ai voulu me servir de HeadsetControl pour le contrôler (même s'il est plutôt pauvre en fonctions pour ce casque :pleure: ). Toutefois, mon casque n'est pas reconnu.

J'ai ouvert un rapport de bogue ici : https://github.com/Sapd/HeadsetControl/issues/35.
L'auteur me conseille de modifier l'id product.

Après vérification, je ne trouve pas le dis fichier sur la version installée sur ma Manjaro.

J'ai téléchargé les sources et j'ai effectivement le dis fichier que je me suis empressé de modifier.

Maintenant, je bute sur le plus important: apporter cette modification au programme déjà installé.
Comment réaliser cette opération cad le recompiler ?
Où dois-je le mettre ? Perso, j'opterai pour le répertoire /opt.
Sera-t-elle prise en compte par le programme ? Faut-il que je le désinstalle avant ?
Comment cela se passera-t-il quand il y aura une Maj du programme ? Aurais-je des difficultés ?
En attendant vos réponses merci. :salut:

[PKGBUILD] Recompiler un paquet modifié avec un logiciel déjà installé

#2Messageil y a 5 ans

Bonjour.
Tu peux donner le lien des sources? Je suppose que tu as installé quelque chose. L'idée est de voir si on peux faire un paquet modifié.

[PKGBUILD] Recompiler un paquet modifié avec un logiciel déjà installé

#3Messageil y a 5 ans

Le lien des sources ? celui-du projet c'est par ici: https://github.com/Sapd/HeadsetControl

OU si tu préfères en ligne de commande:

git clone https://github.com/Sapd/HeadsetControl.git
Par sur que j'ai répondu à ta question. :siffle

[PKGBUILD] Recompiler un paquet modifié avec un logiciel déjà installé

#4Messageil y a 5 ans

Je vais essayer de voir, mais pas tout de suite.
As tu installé quelque chose ? J'aimerais avoir une base pour le PKGBUILD.
Edit: J'ai trouvé dans le Read-me des sources à la section Archlinux le paquet hidapi.
Essaye de l'installer, il est dans les dépôts.

[PKGBUILD] Recompiler un paquet modifié avec un logiciel déjà installé

#5Messageil y a 5 ans

Euh.non. Juste HeadsetControl avec pamac.
Merci d'y regarder.

[PKGBUILD] Recompiler un paquet modifié avec un logiciel déjà installé

#6Messageil y a 5 ans

:salut:
Tu récupères le PKGBUILD aur (git clone ...)
- inc la version (pkgrel)
- applique un patch (voir une commande "sed replace" dans prépare() ce qui est la même chose)
- pas à le désinstaller, le makepkg va updater

A refaire à chaque maj :triste: sinon puisque c'est un git, juste tu changes le nom du paquet (headsetcontrol-Artic7-git) qui va remplacer l'original en utilisant replaces

[PKGBUILD] Recompiler un paquet modifié avec un logiciel déjà installé

#7Messageil y a 5 ans

@lemust83
Hidapi était déjà installé y compris dans sa version python. Le problème vient de l'id du casque. C'est vrai que cela aurait été plus facile si l'auteur fournissait tous les id des casques qui fonctionnent. Mais je lui demanderai une fois que j'aurai réussi à le faire fonctionner. :siffle

@papajoke
J'ai récupéré le pkbuild sur aur mais par contre je ne comprends pas la deuxième étape cad la modification de pkgver

pkgver() {
	cd "$srcdir/${pkgname%-git}"
	printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
}
Et j'en suis pas encore à la 3eme étape mais bon j'ai déjà fait mon diff. :clap

[PKGBUILD] Recompiler un paquet modifié avec un logiciel déjà installé

#8Messageil y a 5 ans

Si même nom de paquet !

je n'avais pas vu au départ que c'était un -git :rendre:
Mais je suppose que cela fonctionne quand même si tu passes à 5 la variable pkgrel

rappel:
- un -git se met à jour avec (uniquement) --devel
- la version d'un paquet c'est toujours pkgver-pkgrel
La ligne que tu donnes calcule le nombre de commits et l'id du dernier commit - il est dommage de modifier cette valeur dynamique. En changeant uniquement pkgrel tu vas donc obtenir toujours la même version que le git mais avec un paquet avec une release supérieure à l'original
r105.acd778f-1 -> r105.acd778f-5 (105 commits, dernier commit:acd778f, pkgbuild no: 5)

[PKGBUILD] Recompiler un paquet modifié avec un logiciel déjà installé

#9Messageil y a 5 ans

je n'avais pas vu au départ que c'était un -git :rendre:
Mais je suppose que cela fonctionne quand même si tu passes à 2 la variable pkgrel
Cela répond à ma question bête, ne pas savoir s'il faut mettre un 2 ou bien 1.1 par exemple.
Et je ne parle pas de mettre tromper de ligne. pkgrel et pkgver :saispas:

J'ai étudié la doc ainsi que le paquet Wireshark.
rappel:
- un -git se met à jour avec (uniquement) --devel
Rappel ? Non Non là c'est pas un rappel mais bien de l'apprentissage. :maître:
- la version d'un paquet c'est toujours pkgver-pkgrel
Okay ça c'est compris. :bien
La ligne que tu donnes calcule le nombre de commits et l'id du dernier commit - il est dommage de modifier cette valeur dynamique. En changeant uniquement pkgrel tu vas donc obtenir toujours la même version que le git mais avec un paquet avec une release supérieure à l'original
C'est mon erreur précédente et là c'est bon j'ai compris. :clap:siffle

D'après la doc, un replace serait la solution sauf en cas de légères modif (comme ici) dans ce cas, ce sont les variables( =arrays) conflicts et provides à modifier.
Question si je mets :

replaces=('headsetcontrol.git')
ou

replaces=('headsetcontrol')
ou bien

replaces=('HeadsetControl'/git)
avec ou sans git

Personnellement je mettrais

replaces=('headsetcontrol')
Pour l'instant je suis dans mon diff à conseiller avec sed. J’essaie de trouver cette doc.

[PKGBUILD] Recompiler un paquet modifié avec un logiciel déjà installé

#10Messageil y a 5 ans

- replaces c'est uniquement si tu as un nouveau nom
- replaces tu entres le nom exact du paquet (donc ici xxx-git )
- nouveau nom donc nouveau paquet / complètement différent donc plus de problème de version à bidouiller

- éventuellement tu as aussi provides si ton paquet est une dépendance.
par exemple: xorg-servermaison: provides=('xorg-server')
tous les paquets qui demandent xorg-server vont en fait se contenter de ton paquet de remplacement
- un -git se met à jour avec (uniquement) --devel
Rappel ? Non Non là c'est pas un rappel mais bien de l'apprentissage. :maître:
Pour être bien précis, avec uniquement les paquets -git -svn
le helpeur va proposer une mise à jour uniquement si le mainteneur change manuellement le pkgbuild.
MAIS, puisque la véritable version ne correspond presque jamais au dépôt git, nous avons --devel qui lui va forcer la fonction dynamique pkgver(), sans cela le helpeur va juste lire la version codée en dur lors de la création du pkgbuild

nous voyons: headsetcontrol-git r51.fa08a8d-1 donc avec 58 commits alors que le git a en fait 58 commits.
Donc le helpeur ne propose pas de mise à jour sans l'option --devel
ps: si tu l'as installé il y a quelques jours tu as sans doute bien la r58...

[PKGBUILD] Recompiler un paquet modifié avec un logiciel déjà installé

#11Messageil y a 5 ans

replaces c'est uniquement si tu as un nouveau nom
Ok donc ici ce nest pas le cas
- replaces tu entres le nom exact du paquet (donc ici xxx-git )
donc ('headsetcontrol.git')
nouveau nom donc nouveau paquet / complètement différent donc plus de problème de version à bidouiller
Houla. Ah oui headsetcontrol-artic7
- éventuellement tu as aussi provides si ton paquet est une dépendance.
Ce n'est pas le cas.
Pour être bien précis, avec uniquement les paquets -git -svn
le helpeur ne va proposer une mise à jour uniquement si le mainteneur change manuellement le pkgbuild.
MAIS, puisque la véritable version ne correspond presque jamais au dépôt git, nous avons --devel qui lui va forcer la fonction dynamique pkgver(), sans cela le helpeur va juste lire la version codée en dur lors de la création du pkgbuild
Là j'ai raté une commande que je ne connais pas. :siffle
Je dois créer un array prepare par contre je ne suis pas sur qu'il faille le mettre dans sources . Ai-je raison ou pas ?

[PKGBUILD] Recompiler un paquet modifié avec un logiciel déjà installé

#12Messageil y a 5 ans

[PKGBUILD] Recompiler un paquet modifié avec un logiciel déjà installé

#13Messageil y a 5 ans

Voici une partie de mon pkgbuild

# Maintainer: Lucas Saliés Brum <lucas@archlinux.com.br>
pkgname=headsetcontrol-git
pkgver=r51.fa08a8d
pkgrel=2
pkgdesc="Sidetone support for Logitech G930, G430 and Corsair VOID (Pro) in Linux and MacOSX"
arch=('x86_64')
url="https://github.com/Sapd/HeadsetControl"
license=('GPL')
depends=('hidapi')
makedepends=('git' 'cmake')
provides=("${pkgname%-git}")
conflicts=("${pkgname%-git}")
#replaces=('headsetcontrol.git')
source=("${pkgname%-git}::git+https://github.com/Sapd/HeadsetControl.git")
md5sums=('SKIP')

pkgver() {
    cd "$srcdir/${pkgname%-git}"
    printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
}

prepare() {
   cd $srcdir/$pkgname-$pkgver
   patch -Np1 -i "${srcdir}/eject.patch"
}
	
build() {
    cd "$srcdir/${pkgname%-git}/src"
    cmake ..
    make
}

package() {
    cd "$srcdir/${pkgname%-git}/src"
    make DESTDIR="$pkgdir/" install
    ln -s /usr/local/bin/HeadsetControl ${pkgdir}/usr/local/bin/headsetcontrol
    install -m644 ../udev/*.rules ${pkgdir}/etc/udev/rules.d/
}
J'ai mis prepare() aprèspkgver() mais fallait-il le mettre avant peut-etre ?

d'après la doc une fois mon pkgbuild modifié je lance la commande suivante :

makepkg -ei

Cela n'a pas l'air d'etre ce que tu disais cad pas de --devel à moins que ce ne soit pas ça du tout. :rigole::siffle

[PKGBUILD] Recompiler un paquet modifié avec un logiciel déjà installé

#14Messageil y a 5 ans

il y a quelque chose qui cloche: je ne mets pas le nom de mon patch qui est ici headsetcontrol.patch.
A moins que le nom n'a pas d'importance et que seul l'extension (ici .patch) compte.
Voici le patch en question :

diff --git a/src/devices/steelseries_arctis7.c b/src/devices/steelseries_arctis7.c
index bf78a26..a7e3240 100644
--- a/src/devices/steelseries_arctis7.c
+++ b/src/devices/steelseries_arctis7.c
@@ -12,7 +12,7 @@ static int arctis7_send_sidetone(hid_device *device_handle, uint8_t num);
 void arctis7_init(struct device** device)
 {
     device_arctis7.idVendor = VENDOR_STEELSERIES;
-    device_arctis7.idProduct = 0x1260;
+    device_arctis7.idProduct = 0x12ad;
     device_arctis7.idInterface = 0x05;
 
     strcpy(device_arctis7.device_name, "SteelSeries Arctis 7");

[PKGBUILD] Recompiler un paquet modifié avec un logiciel déjà installé

#15Messageil y a 5 ans

en fait, ici tu as juste des problèmes de chemins ...

c'est en peu en fonction où est le patch ... normalement il est dans ./src car il est téléchargé
ici il est plutôt dans le répertoire du PKGBUILD puisqu'il n'a pas été ajouté à source:pleure:

Dans le PKGBUILD tu as juste du bash donc la position des fonctions n'a pas d'importance

Puisque c'est du bash, tu peux ajouter des commandes pour debug

Comme le patch n'est pas au bon endroit par rapport au wiki il est possible de modifier/tester

prepare() {
   pwd # debug
   cd "$srcdir/${pkgname%-git}/src/devices/"
   pwd # debug
   # le patch n'est pas dans ./src mais ici avec le pkgbuild
   patch -N -i "${srcdir}/../eject.patch" --verbose   # add --verbose pour debug
}
ici, on va directement dans le répertoire des fichiers à modifier puis on applique le patch sans les paths
plutôt du bricolage:oops: car si nous avions plusieurs répertoires cela ne fonctionnerai plus
Il est préférable de "télécharger" le path (ajouter sans préfixe http dans source) :aime:

source=("${pkgname%-git}::git+https://github.com/Sapd/HeadsetControl.git" "eject.patch")
md5sums=('SKIP' 'SKIP')
prepare() {
   cd "$srcdir/${pkgname%-git}"
   patch -Np1 -i "${srcdir}/eject.patch"
}
et ici puisque le remplacement était extrêmement simple, un sed était bon à la place du patch:
build() {
cd "$srcdir/${pkgname%-git}/src"
sed -ei 's/x1260;/x12ad;/' /headsetcontrol/src/devices/steelseries_arctis7.c
cmake ..
make
}
généralement je fais:
makepkg -scf , efface tous les sous-répertoires après construction
après un simple pacman -U xxxx pour l'installer

[PKGBUILD] Recompiler un paquet modifié avec un logiciel déjà installé

#16Messageil y a 5 ans

Bon, j'y ai passé l'après-midi mais j'ai réussi à créer le pkg après avoir modifié mon pkbuild plusieurs fois jusqu'à ce que je n'obtienne plus aucune erreur. Il est vrai que j'aurai pu passé par sed, cela aurait été beaucoup plus facile dans tous les sens du terme mais moins interressant et marrant. :siffle
De plus, j'aime cette approche de créer un paquet modifié mais dans le sens du créateur du paquet c'est très propre comme philosophie. :bien

Voici le pkgbuild final qui m'a donné du fil à retordre:tetu! :furieux: :

# Maintainer: Lucas Saliés Brum <lucas@archlinux.com.br>
pkgname=headsetcontrol-git
pkgver=r51.fa08a8d
pkgrel=2
pkgdesc="Sidetone support for Logitech G930, G430 and Corsair VOID (Pro) in Linux and MacOSX"
arch=('x86_64')
url="https://github.com/Sapd/HeadsetControl"
license=('GPL')
depends=('hidapi')
makedepends=('git' 'cmake')
provides=("${pkgname%-git}")
conflicts=("${pkgname%-git}")
#replaces=('headsetcontrol.git')
source=("${pkgname%-git}::git+https://github.com/Sapd/HeadsetControl.git" "headsetcontrol.patch")
md5sums=('SKIP' 'SKIP')

prepare() {
   cd "$srcdir/${pkgname%-git}/src/devices/"
   patch -N -i "${srcdir}/../headsetcontrol.patch"
}

pkgver() {
    cd "$srcdir/${pkgname%-git}"
    printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
}
    
build() {
    cd "$srcdir/${pkgname%-git}/src"    
    cmake ..
    make
}

package() {
    cd "$srcdir/${pkgname%-git}/src"
    make DESTDIR="$pkgdir/" install
    ln -s /usr/local/bin/HeadsetControl ${pkgdir}/usr/local/bin/headsetcontrol
    install -m644 ../udev/*.rules ${pkgdir}/etc/udev/rules.d/
}
Cela m'a fournit un pkg.tar.xz :clap

[olivier@luthien headsetcontrol-git]$ ls
headsetcontrol                                      pkg
headsetcontrol-git-r58.45b0d35-1-x86_64.pkg.tar.xz  PKGBUILD
headsetcontrol.patch                                src
Vérification de la reconnaissance du casque audio avec HeadsetControl et de diverses infos afin de savoir la version déjà installé avant d'appliquer le paquet "patché". J'ai un gros doute sur le numéro de la version crée (1 au lieu de 2)

# Test du casque avant l'application du patch
[olivier@luthien headsetcontrol-git]$ lsusb
Bus 002 Device 006: ID 058f:6362 Alcor Micro Corp. Flash Card Reader/Writer
Bus 002 Device 005: ID 041e:406d Creative Technology, Ltd 
Bus 002 Device 004: ID 07ca:850a AVerMedia Technologies, Inc. AverTV Volar Black HD (A850)
Bus 002 Device 007: ID 1b1c:1b51 Corsair 
Bus 002 Device 009: ID 046d:c517 Logitech, Inc. LX710 Cordless Desktop Laser
Bus 002 Device 010: ID 1038:12ad SteelSeries ApS 
Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 005: ID 07d1:f101 D-Link System DBT-122 Bluetooth
Bus 001 Device 007: ID 046d:c70a Logitech, Inc. MX5000 Cordless Desktop
Bus 001 Device 006: ID 046d:c70e Logitech, Inc. MX1000 Bluetooth Laser Mouse
Bus 001 Device 004: ID 046d:0b02 Logitech, Inc. C-UV35 [Bluetooth Mini-Receiver] (HID proxy mode)
Bus 001 Device 003: ID 0cf3:9271 Qualcomm Atheros Communications AR9271 802.11n
Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
[olivier@luthien headsetcontrol-git]$ HeadsetControl -help
Headsetcontrol written by Sapd (Denis Arnst)
	https://github.com/Sapd

Parameters
  -s level	Sets sidetone, level must be between 0 and 128
  -b		Checks the battery level
  -n soundid	Makes the headset play a notifiation
  -c		Cut unnecessary output 

[olivier@luthien headsetcontrol-git]$ HeadsetControl -b
No supported headset found
[olivier@luthien headsetcontrol-git]$ 
# verification avant application du patch
[olivier@luthien headsetcontrol-git]$ pacman -Qs headsetcontrol
local/headsetcontrol-git r58.45b0d35-1
    Sidetone support for Logitech G930, G430 and Corsair VOID (Pro) in Linux and
    MacOSX
[olivier@luthien headsetcontrol-git]$ pacman -Si headsetcontrol
erreur : le paquet « headsetcontrol » n’a pas été trouvé

[olivier@luthien headsetcontrol-git]$ pacman -Qi headsetcontrol
Nom                      : headsetcontrol-git
Version                  : r58.45b0d35-1
Description              : Sidetone support for Logitech G930, G430 and Corsair
                           VOID (Pro) in Linux and MacOSX
Architecture             : x86_64
URL                      : https://github.com/Sapd/HeadsetControl
Licences                 : GPL
Groupes                  : --
Fournit                  : headsetcontrol
Dépend de                : hidapi
Dépendances opt.         : --
Requis par               : --
Optionnel pour           : --
Est en conflit avec      : headsetcontrol
Remplace                 : --
Taille installée         : 20,00 KiB
Paqueteur                : Unknown Packager
Compilé le               : mer. 30 janv. 2019 18:07:33 CET
Installé le              : mer. 30 janv. 2019 18:07:40 CET
Motif d’installation     : Explicitement installé
Script d’installation    : Non
Validé par               : --

[olivier@luthien headsetcontrol-git]$ 
L'installation proprement dite:

# Installation avec pacman -U pkg
[olivier@luthien headsetcontrol-git]$ pacman -U headsetcontrol-git-r58.45b0d35-1-x86_64.pkg.tar.xz 
erreur : vous ne pouvez effectuer cette opération qu’en mode administrateur.
[olivier@luthien headsetcontrol-git]$ sudo pacman -U headsetcontrol-git-r58.45b0d35-1-x86_64.pkg.tar.xz 
[sudo] Mot de passe de olivier : 
chargement des paquets…
avertissement : headsetcontrol-git-r58.45b0d35-1 est à jour -- réinstallation
résolution des dépendances…
recherche des conflits entre paquets…

Paquets (1) headsetcontrol-git-r58.45b0d35-1

Taille totale installée :    0,05 MiB
Taille de mise à jour nette :  0,03 MiB

:: Procéder à l’installation ? [O/n] o
(1/1) vérification des clés dans le trousseau      [######################] 100%
(1/1) vérification de l’intégrité des paquets      [######################] 100%
(1/1) chargement des fichiers des paquets          [######################] 100%
(1/1) analyse des conflits entre fichiers          [######################] 100%
(1/1) vérification de l’espace disque disponible   [######################] 100%
:: Traitement des changements du paquet…
(1/1) réinstallation headsetcontrol-git            [######################] 100%
:: Exécution des crochets de post-transaction…
(1/1) Arming ConditionNeedsUpdate...
[olivier@luthien headsetcontrol-git]$ 
Test après l'installation - On note que le casque est cette fois-ci reconnu mais ne fonctionne pas:

# Test après application du patch
[olivier@luthien headsetcontrol-git]$ pacman -Qs headsetcontrol
local/headsetcontrol-git r58.45b0d35-1
    Sidetone support for Logitech G930, G430 and Corsair VOID (Pro) in Linux and
    MacOSX
[olivier@luthien headsetcontrol-git]$ pacman -Ss headsetcontrol
[olivier@luthien headsetcontrol-git]$ pacman -Qi headsetcontrol
Nom                      : headsetcontrol-git
Version                  : r58.45b0d35-1
Description              : Sidetone support for Logitech G930, G430 and Corsair
                           VOID (Pro) in Linux and MacOSX
Architecture             : x86_64
URL                      : https://github.com/Sapd/HeadsetControl
Licences                 : GPL
Groupes                  : --
Fournit                  : headsetcontrol
Dépend de                : hidapi
Dépendances opt.         : --
Requis par               : --
Optionnel pour           : --
Est en conflit avec      : headsetcontrol
Remplace                 : --
Taille installée         : 47,00 KiB
Paqueteur                : Unknown Packager
Compilé le               : sam. 02 févr. 2019 16:53:34 CET
Installé le              : sam. 02 févr. 2019 17:26:36 CET
Motif d’installation     : Explicitement installé
Script d’installation    : Non
Validé par               : --

[olivier@luthien headsetcontrol-git]$ HeadsetControl -b
Found SteelSeries Arctis 7!

Couldn't open device.
J'emets quand même un doute sur la version du paquet. Je m'attendais à avoir
headsetcontrol-git r58.45b0d35-
2
et non
headsetcontrol-git r58.45b0d35-1
.
Cependant, le fait qu'il reconnaisse le casque après l'application du patch et non avant me laisse penser que le patch à bien été pris en compte lors de la création du paquet.
Le fait que le casque ne fonctionne pas n'est pas du fait de la création du paquet.

Peux-tu tester si tu obtiens le meme resultat à moins que j'ai fais encore une erreur lors de sa construction. En tout cas merci c'était très interressant. :clap:clap:clap:bien:bien:aime::aime:

[PKGBUILD] Recompiler un paquet modifié avec un logiciel déjà installé

#17Messageil y a 5 ans

Bonjour.
Tout d'abord, félicitation pour ta persévérance. Ça t'a permit de bien progresser dans la notion de création de paquet :bien
J'arrive au même nom de paquet et je pense que la bonne syntaxe est cd $pkgname-pkgver pour lancer la construction. Cela dit, j'ai souvent des erreurs de nom de paquet quand j'applique cette forme alors qu'une petite entorse permet de s'en affranchire :twisted: . Mais ça peut aussi expliquer que pkgrel ne soit pas pris en compte.
Ponctuellement, ça n'est pas bien méchant, mais en cas de mise à jour, on sera vite coincés...
Je rencontre aussi une erreur :

ln: impossible de créer le lien symbolique './HeadsetControl': Le fichier existe
==> ERREUR : Une erreur s’est produite dans package().
J'ai commenté la ligne dans le PKGBUILD et c'est passé.

[PKGBUILD] Recompiler un paquet modifié avec un logiciel déjà installé

#18Messageil y a 5 ans

Salut,
Cenwen a écrit : il y a 5 ans
Test après l'installation - On note que le casque est cette fois-ci reconnu mais ne fonctionne pas:


[olivier@luthien headsetcontrol-git]$ HeadsetControl -b
Found SteelSeries Arctis 7!

Couldn't open device.
Bel effort de ta part :bien , à ce point, j'aurais tenté de lancer l'appli en root ou avec sudo pour voir si il n'y a pas un problème de droits sur le device.

[PKGBUILD] Recompiler un paquet modifié avec un logiciel déjà installé

#19Messageil y a 5 ans

Bonjour à vous deux. :salut::salut:
Tout d'abord, félicitation pour ta persévérance. Ça t'a permit de bien progresser dans la notion de création de paquet :bien
Merci. En effet, c'est pour ça que je n'ai pas utilisé sed et j'ai préféré continué. Personnellement, je suis plutôt intéressé par la création de paquet pour PyQt5. Après, j'ai aimé cette approche de créer proprement un paquet et non de tout mettre dans /opt comme c'était ma 1ere idée. Je vous remercie d'ailleurs pour votre aide et votre patience (surtout papajoke :clap:clap ). Et effectivement cela ma certes détourné de ma programmation mais j'ai bien aimé. ça m'a rappelé quand j'ai crée le 1er deb non officiel avec mon ami Flozz aka Fabien Loison jeune créateur de divers projets dont le dernier en date est rivalcfg. :rigole::pompom:
Cela dit, j'ai souvent des erreurs de nom de paquet quand j'applique cette forme alors qu'une petite entorse permet de s'en affranchire :twisted: . Mais ça peut aussi expliquer que pkgrel ne soit pas pris en compte.
J'ai eu aussi tout un lot d'erreur comme toi et je les posterai mais ils sont sur ma deepin (quite à tout casser autant que ce soit sur celle-là quoique j'adore. Il y a longtemps que je ne m'étais pas emballé comme ça pour un environnement. :siffle
Ce ne seras pas pour l'instant. On est Dimanche et Madame. :maître::maître:
Bel effort de ta part :bien , à ce point, j'aurais tenté de lancer l'appli en root ou avec sudo pour voir si il n'y a pas un problème de droits sur le device.
Merci. Je dois dire que je n'y ai pas pensé vu qu'il y a des fichiers et des droits qui sont passé dans udev (si ma mémoire est bonne) afin d'évité de le lancer justement avec sudo.
Mais je vais essayer quand même. :bien
Bon Dimanche neigeux à vous. :salut:

[PKGBUILD] Recompiler un paquet modifié avec un logiciel déjà installé

#20Messageil y a 5 ans

:salut:

si tu as le même nom de paquet, pour pkgrel (package release) :
j'ai fait le test, ok if faut bidouiller avec les -git :
- ajouter pkgrel=2 dans la fonction pkgver() , ou mieux ? pkgrel=$((pkgrel+1))
- pas la peine de modifier .SCRINFO


------------


Puisque pour l'instant tu gardes le même nom, ceci n'a pas de sens pour moi

pkgname=headsetcontrol-git
provides=("${pkgname%-git}")
conflicts=("${pkgname%-git}")
tu dis que le paquet headsetcontrol-git remplace le paquet headsetcontrol
headsetcontrol n'existe pas :wink:

C'était à faire si tu avais ton propre paquet :

_pkgname=headsetcontrol
pkgname=${_pkgname}-toto-git
provides=("${_pkgname}-git")
conflicts=("${_pkgname}-git")
tu dis alors que ton paquet headsetcontrol-toto-git remplace le paquet headsetcontrol-git


------------


Si ce simple changement d'ID fonctionnait chez toi,

Le dev prend en compte plusieurs versions pour logitech , peut-être demain pour ta marque ? ...
Sinon, puisque tu es dev, tu pourrais peut-être proposer au dev un nouveau makefile avec une variable "produitID" ; comme cela tu n'aurais qu'a chaque fois à ajouter une variable à make à l'édition du PKGBUILD

------------

Pour ton erreur "Couldn't open device." c'est ligne 230 donc tu as bien avancé de 10 lignes :sourire: et il semble en effet que c'est un problème ici de droits udev ou group :saispas:
Répondre