[Compilation] Compiler un logiciel.

Applications, problèmes de configuration réseau
Répondre
Avatar de l’utilisateur
Stdrome1209
yeomen
Messages : 266
Inscription : sam. 29 nov. 2014, 19:39

[Compilation] Compiler un logiciel.

Message par Stdrome1209 »

Salut à toute et à tous,

Je voudrais jsute savoir si la méthode que j'utilise actuellement pour compiler un logiciel et la bonne sous Archlinux, car c'est la méthode classique en trois etapes apprise sous Ubuntu :

- ./configure
- make
- make-install

Alors bien entendu sa fonctionne sous Archlinux mais je me demande si c'est propre, ou si il y'a mieu.

Pour infole logiciel que je voudrais compiler est slashem, il existe en deux version dans les dépôts AUR mais aucune ne parviens à s'installer car yaourt m'indique une erreur dans le PKGBUILD.
Dernière modification par Stdrome1209 le mer. 04 mars 2015, 10:00, modifié 1 fois.
Gaming desktop : Corsair Obsidian 350D, Intel Core I5 4690, Nvidia GTX 770, Asus H97M-E, 8 Go de DDR3, SSD 120 Go, HDD 500 Go, Powered by Arch Linux.

Notebook : Asus PU500CA, Intel Core i5-3317U, 4 Go de DDR3, SSD 240 Go, Powered by Arch Linux.

Netbook : LDLC Mercure MA1-2-S Slim, Intel Celeron N2830, 2 Go de DDR3, SSD 60 Go, Powered by Arch Linux.
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17632
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Compilation] Compiler un logiciel.

Message par benjarobin »

Bonjour,
Alors non ce n'est pas propre... C'est propre tant que tu ne lances rien en tant que root. Sauf que le make install est fait en root...
Il faut absolument utilisé un PKGBUILD pour pouvoir gérer les fichiers installés avec pacman (mettre à jour, désinstaller...)
Copier des fichiers non gérés par pacman peut provoquer des soucis (voir des gros dans certains cas)

Sinon je ne vois pas de raison à l'échec de l'installation de : https://aur.archlinux.org/packages/unnethack/
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10711
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [Compilation] Compiler un logiciel.

Message par FoolEcho »

+1.
Stdrome1209 a écrit :Pour infole logiciel que je voudrais compiler est Unnethack, il existe en deux version dans les dépôts AUR mais aucune ne parviens à s'installer car yaourt m'indique une erreur dans le PKGBUILD.
Précise l'erreur que tu obtiens (le groupe base-devel est bien installé ?). :chinois:
«The following statement is not true. The previous statement is true.» :nage:
Avatar de l’utilisateur
Stdrome1209
yeomen
Messages : 266
Inscription : sam. 29 nov. 2014, 19:39

Re: [Compilation] Compiler un logiciel.

Message par Stdrome1209 »

Merci pour ces indications, donc au pire je peux simplement lancer le binaire ainsi créer sans l'installer en me rendant dans le dossier où j'ai compilé le logiciel puis en lançant un "./mon_binaire", c'est sans risque dans ce cas ?

Oui base-devel est bien installé, j'arrive d'ailleur à installer d'autres logiciels avec yaourt.

J'ai donc essayé slashem et slashem-surses, et pour les deux version j'ai la même erreur :

Code : Tout sélectionner

=> Construction et installation du paquet
=> ERREUR : Fonction package() manquante dans /tmp/yaourt-tmp-stdrome/aur-slashem-c
=> ERREUR Makepkg n'a pas pu construire slashem-curses
=> Relancer la compilation de slashem-curses ? [o/N]
Gaming desktop : Corsair Obsidian 350D, Intel Core I5 4690, Nvidia GTX 770, Asus H97M-E, 8 Go de DDR3, SSD 120 Go, HDD 500 Go, Powered by Arch Linux.

Notebook : Asus PU500CA, Intel Core i5-3317U, 4 Go de DDR3, SSD 240 Go, Powered by Arch Linux.

Netbook : LDLC Mercure MA1-2-S Slim, Intel Celeron N2830, 2 Go de DDR3, SSD 60 Go, Powered by Arch Linux.
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10711
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [Compilation] Compiler un logiciel.

Message par FoolEcho »

Stdrome1209 a écrit :J'ai donc essayé slashem et slashem-surses, et pour les deux version j'ai la même erreur :

Code : Tout sélectionner

=> Construction et installation du paquet
=> ERREUR : Fonction package() manquante dans /tmp/yaourt-tmp-stdrome/aur-slashem-c
=> ERREUR Makepkg n'a pas pu construire slashem-curses
=> Relancer la compilation de slashem-curses ? [o/N]
Ici c'est parce que les PKGBUILDs n'ont pas été adaptés aux derniers changements de pacman. Une fonction package est désormais impérative.

Concernant unnethack, il faut que tu nous postes la trace de compilation parce que ça fonctionne chez moi...
«The following statement is not true. The previous statement is true.» :nage:
Avatar de l’utilisateur
Stdrome1209
yeomen
Messages : 266
Inscription : sam. 29 nov. 2014, 19:39

Re: [Compilation] Compiler un logiciel.

Message par Stdrome1209 »

FoolEcho a écrit :Concernant unnethack, il faut que tu nous postes la trace de compilation parce que ça fonctionne chez moi...
Oups je me suis planté, ce n’est pas de Unnethack qu’il s’agit mais bien de Slashem. Au fait Unnethack c’est juste pour tester l’installation que tu l’as installé (auquel cas c’est super sympa) ou tu est joueur ?
FoolEcho a écrit :Ici c'est parce que les PKGBUILDs n'ont pas été adaptés aux derniers changements de pacman. Une fonction package est désormais impérative.
Et elle s’ajoute simplement cette fonction package ?
Gaming desktop : Corsair Obsidian 350D, Intel Core I5 4690, Nvidia GTX 770, Asus H97M-E, 8 Go de DDR3, SSD 120 Go, HDD 500 Go, Powered by Arch Linux.

Notebook : Asus PU500CA, Intel Core i5-3317U, 4 Go de DDR3, SSD 240 Go, Powered by Arch Linux.

Netbook : LDLC Mercure MA1-2-S Slim, Intel Celeron N2830, 2 Go de DDR3, SSD 60 Go, Powered by Arch Linux.
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10711
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [Compilation] Compiler un logiciel.

Message par FoolEcho »

Dans le PKGBUILD, édite la partie:

Code : Tout sélectionner

make || return 1
  make PREFIX=${pkgdir}/usr install
en:

Code : Tout sélectionner

make || return 1
}

package() {
 cd ${srcdir}/slashem-$pkgver
 make PREFIX=${pkgdir}/usr install
... ça devrait suffire (non testé... attention, le logiciel est vieux et pourrait parfaitement ne même pas compiler ou fonctionner). :)

Pour une version plus propre, il faut rajouter prepare() aussi:

Code : Tout sélectionner

prepare(){
  cd ${srcdir}/slashem-$pkgver

  patch -Np1 -i ${srcdir}/se007E7F3-curses-a4.patch

  sh sys/unix/setup.sh

  cd ${srcdir}/slashem-$pkgver/include
  sed -e '/define COMPRESS/ s|/usr/bin/compress|/bin/gzip|' \
      -e '/define COMPRESS_EXTENSION/ s|".Z"|".gz"|' \
      -e 's|^/\* \(#define DLB\) \*/|\1|' -i config.h
  sed -e 's|^/\* \(#define LINUX\) \*/|\1|' \
      -e 's|^/\* \(#define TIMED_DELAY\) \*/|\1|' -i unixconf.h
  cd ${srcdir}/slashem-$pkgver/src
  sed -e 's|^# \(WINTTYLIB = -lncurses\)|\1|' \
      -e 's|^WINTTYLIB = -ltermlib|#&|' -i Makefile
  cd ..
  sed -e '/^GAMEUID\s*=/ s|games|root|' \
      -e '/^GAMEGRP\s*=/ s|bin|root|' \
      -e '/^SHELLDIR\s*=/ s|/games|/bin|' \
      -e '/GAMEDIR/ s|/local/slashemdir|/share/slashem|' \
      -e '/SHELLDIR/ s|/local/bin|/bin|' -i Makefile
}

build() {
  cd ${srcdir}/slashem-$pkgver
  make || return 1
}

package() {
 cd ${srcdir}/slashem-$pkgver
  make PREFIX=${pkgdir}/usr install
  sed -e "s|HACKDIR=.*/pkg/$pkgname/usr/|HACKDIR=/usr/|" \
      -i ${pkgdir}/usr/bin/slashem
  install -Dm644 dat/license ${pkgdir}/usr/share/licenses/$pkgname/license
}
«The following statement is not true. The previous statement is true.» :nage:
Avatar de l’utilisateur
Stdrome1209
yeomen
Messages : 266
Inscription : sam. 29 nov. 2014, 19:39

Re: [Compilation] Compiler un logiciel.

Message par Stdrome1209 »

Je viens (enfin) de tester et ça fonctionne, merci FoolEcho.

Enfin la compilation est l'installation fonctionne pour la version classique (paquet "slashem"), par contre il refuse de se lancer avec pour message d'erreur :

Code : Tout sélectionner

/usr/bin/slashem: ligne 60 : cd: /tmp/yaourt-tmp-mickael/aur-slashem/pkg/slashem/usr/share/slashem: Aucun fichier ou dossier de ce type
/usr/bin/slashem: ligne 66: /tmp/yaourt-tmp-mickael/aur-slashem/pkg/slashem/usr/share/slashem/slashem: Aucun fichier ou dossier de ce type
Sinon pour la version "slashem-curses" tout fonctionne, mais je n'aime pas cet interface :(

Toujours est-il que j'aimerais comprendre comment fonctionne la compilation sous Arch Linux afin de moins dépendre des mainteneurs et de pouvoir faire mes propres PKGBUILD pour installer un logiciel à partir des sources comme je le faisais sous Ubuntu, si ce dernier n´est plus maintenu.
Gaming desktop : Corsair Obsidian 350D, Intel Core I5 4690, Nvidia GTX 770, Asus H97M-E, 8 Go de DDR3, SSD 120 Go, HDD 500 Go, Powered by Arch Linux.

Notebook : Asus PU500CA, Intel Core i5-3317U, 4 Go de DDR3, SSD 240 Go, Powered by Arch Linux.

Netbook : LDLC Mercure MA1-2-S Slim, Intel Celeron N2830, 2 Go de DDR3, SSD 60 Go, Powered by Arch Linux.
Avatar de l’utilisateur
Xorg
Maître du Kyudo
Messages : 1933
Inscription : dim. 22 janv. 2012, 19:25
Localisation : Entre le clavier et la chaise.

Re: [Compilation] Compiler un logiciel.

Message par Xorg »

Ça ne sert pas à grand chose les commande || return 1 dans un PKGBUILD. Dans tous les cas, si la partie de droite est exécutée, c'est que la partie de gauche s'est terminée avec un erreur, et la fonction concernée verra que le code de sortie est différent de 0, donc elle lèvera quand même une erreur.

Le PKGBUILD de slashem sur AUR 3 date de 2009, il est complètement obsolète. Il y a un soucis dans le PKGBUILD.
Je te conseille très vivement de récupérer le paquet plus récent sur AUR 4, ici, il a été mis à jour il y a peu.
Arch Linux x86_64 - Sway
AMD Ryzen 5 3600X - 32 Go de DDR4 - SSD NVMe 1 To + SSD SATA 250 Go - Sapphire NITRO+ Radeon RX 580
Image AUR___Image Wiki___Image GitHub
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17632
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Compilation] Compiler un logiciel.

Message par benjarobin »

Sauf que le code sur aur4 ne compile pas.
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
Xorg
Maître du Kyudo
Messages : 1933
Inscription : dim. 22 janv. 2012, 19:25
Localisation : Entre le clavier et la chaise.

Re: [Compilation] Compiler un logiciel.

Message par Xorg »

Ah effectivement, je n'avais pas essayé. Je vois qu'un patch a été appliqué par le mainteneurs du paquet il y a 6 jours. C'est le moment de lui faire un retour si ça ne va pas, car le dernier commentaire remonte à 2011. :)
Arch Linux x86_64 - Sway
AMD Ryzen 5 3600X - 32 Go de DDR4 - SSD NVMe 1 To + SSD SATA 250 Go - Sapphire NITRO+ Radeon RX 580
Image AUR___Image Wiki___Image GitHub
Avatar de l’utilisateur
Stdrome1209
yeomen
Messages : 266
Inscription : sam. 29 nov. 2014, 19:39

Re: [Compilation] Compiler un logiciel.

Message par Stdrome1209 »

Xorg a écrit :Le PKGBUILD de slashem sur AUR 3 date de 2009, il est complètement obsolète. Il y a un soucis dans le PKGBUILD.
Je te conseille très vivement de récupérer le paquet plus récent sur AUR 4, ici, il a été mis à jour il y a peu.
Je vais essayer ça, mais il y'a un truc à faire sur Yaourt dans ce cas ? Car chez moi Yaourt ne me propose pas cette version.
Gaming desktop : Corsair Obsidian 350D, Intel Core I5 4690, Nvidia GTX 770, Asus H97M-E, 8 Go de DDR3, SSD 120 Go, HDD 500 Go, Powered by Arch Linux.

Notebook : Asus PU500CA, Intel Core i5-3317U, 4 Go de DDR3, SSD 240 Go, Powered by Arch Linux.

Netbook : LDLC Mercure MA1-2-S Slim, Intel Celeron N2830, 2 Go de DDR3, SSD 60 Go, Powered by Arch Linux.
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17632
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Compilation] Compiler un logiciel.

Message par benjarobin »

Il faut changer l'adresse de AUR voir yaourtrc
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
Stdrome1209
yeomen
Messages : 266
Inscription : sam. 29 nov. 2014, 19:39

Re: [Compilation] Compiler un logiciel.

Message par Stdrome1209 »

Ok merci benjarobin, mais AUR 4 est complétement opérationnel à l'heure actuelle ? D'après ce que j'avais lu il l'est depuis Juin mais entre la théorie et la pratique il y'a parfois un monde.
Gaming desktop : Corsair Obsidian 350D, Intel Core I5 4690, Nvidia GTX 770, Asus H97M-E, 8 Go de DDR3, SSD 120 Go, HDD 500 Go, Powered by Arch Linux.

Notebook : Asus PU500CA, Intel Core i5-3317U, 4 Go de DDR3, SSD 240 Go, Powered by Arch Linux.

Netbook : LDLC Mercure MA1-2-S Slim, Intel Celeron N2830, 2 Go de DDR3, SSD 60 Go, Powered by Arch Linux.
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17632
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Compilation] Compiler un logiciel.

Message par benjarobin »

Oui, il est opérationnel
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
Stdrome1209
yeomen
Messages : 266
Inscription : sam. 29 nov. 2014, 19:39

Re: [Compilation] Compiler un logiciel.

Message par Stdrome1209 »

Bon j'ai tapé "rogue" et "roguelikes" AUR 4 et moins de la moitié de ce qui été disponible sur AUR 3 l'est sur la version 4, il faut vraiment que j'apprenne à compiler sur Arch Linux.
Gaming desktop : Corsair Obsidian 350D, Intel Core I5 4690, Nvidia GTX 770, Asus H97M-E, 8 Go de DDR3, SSD 120 Go, HDD 500 Go, Powered by Arch Linux.

Notebook : Asus PU500CA, Intel Core i5-3317U, 4 Go de DDR3, SSD 240 Go, Powered by Arch Linux.

Netbook : LDLC Mercure MA1-2-S Slim, Intel Celeron N2830, 2 Go de DDR3, SSD 60 Go, Powered by Arch Linux.
Répondre