Auteur Sujet: Compilation de st avec patch  (Lu 89 fois)

Rocket

  • Petit Nouveau
  • *
  • Messages: 19
  • Karma: 0
Compilation de st avec patch
« le: lun. déc. 03 20:18:53 2018 »
Bonjour,

j'essaie de compiler le terminal st en y ajoutant le patch scrollback. Toutefois impossible de le compiler. Si je prends la version 0.7, cela passe sans problème. Par contre si j'en profite pour passer à la version 0.8.1, cela ne fonctionne plus du tout:

cp config.h /tmp/work/src
+ prepare
+ cd /tmp/work/src/st-0.8
+ sed -i '/\@tic /d' Makefile
+ cp /tmp/work/src/config.h config.h
+ build
+ cd /tmp/work/src/st-0.8
+ make X11INC=/usr/include/X11 X11LIB=/usr/lib/X11
c99 -I/usr/include/X11  `pkg-config --cflags fontconfig`  `pkg-config --cflags freetype2` -DVERSION=\"0.8\" -D_XOPEN_SOURCE=600 -O2 -pipe -c st.c
st build options:
c99 -I/usr/include/X11  `pkg-config --cflags fontconfig`  `pkg-config --cflags freetype2` -DVERSION=\"0.8\" -D_XOPEN_SOURCE=600 -O2 -pipe -c x.c
/bin/sh: c99: command not found
make: *** [Makefile:22: st.o] Error 127
make: *** Waiting for unfinished jobs....
CFLAGS  = -I/usr/include/X11  -I/usr/include/uuid -I/usr/include/freetype2 -I/usr/include/libpng16  -I/usr/include/freetype2 -I/usr/include/libpng16 -DVERSION="0.8" -D_XOPEN_SOURCE=600 -O2 -pipe
/bin/sh: c99: command not found
make: *** [Makefile:22: x.o] Error 127
LDFLAGS = -L/usr/lib/X11 -lm -lrt -lX11 -lutil -lXft  -lfontconfig -lfreetype  -lfreetype
CC      = c99

Pour obtenir ce résultat, j'ai simplement changé la version du paquet de 0.7 à 0.8. Il cherche un compilateur "C99" qui n'existe pas. Le problème est le même avec la version 0.8.1. Auriez-vous des idées ?

Merci!

rems

  • Moderator
  • Membre affranchi
  • *****
  • Messages: 48
  • Karma: 3
Re : Compilation de st avec patch
« Réponse #1 le: lun. déc. 03 21:13:47 2018 »
Hum, c99, c'est un compilateur qui est dans gcc. Une possibilité est de mettre dans la recette avant toute chose dans la fonction build()
export CXXFLAGS+=" -std=c99"ou
export CFLAGS+=" -std=c99"et pour CC, je garderai "CC=gcc"
« Modifié: lun. déc. 03 21:16:19 2018 par rems »

Rocket

  • Petit Nouveau
  • *
  • Messages: 19
  • Karma: 0
Re : Compilation de st avec patch
« Réponse #2 le: lun. déc. 03 22:11:15 2018 »
Non, il fait encore de la résistance.......

=======> Building '/usr/ports/perso/st/st1543874795x86_64.cards.tar.xz'.
bsdtar -p -o -C /tmp/work/src -xf /tmp/st-0.8.tar.gz
cp config.h /tmp/work/src
+ prepare
+ cd /tmp/work/src/st-0.8
+ sed -i '/\@tic /d' Makefile
+ cp /tmp/work/src/config.h config.h
+ build
+ export 'CFLAGS+= -std=c99'
+ CFLAGS+=' -std=c99'
+ cd /tmp/work/src/st-0.8
+ make CC=gcc X11INC=/usr/include/X11 X11LIB=/usr/lib/X11
gcc -I/usr/include/X11  `pkg-config --cflags fontconfig`  `pkg-config --cflags freetype2` -DVERSION=\"0.8\" -D_XOPEN_SOURCE=600 -O2 -pipe -std=c99 -c st.c
st build options:
gcc -I/usr/include/X11  `pkg-config --cflags fontconfig`  `pkg-config --cflags freetype2` -DVERSION=\"0.8\" -D_XOPEN_SOURCE=600 -O2 -pipe -std=c99 -c x.c
CFLAGS  = -I/usr/include/X11  -I/usr/include/uuid -I/usr/include/freetype2 -I/usr/include/libpng16  -I/usr/include/freetype2 -I/usr/include/libpng16 -DVERSION="0.8" -D_XOPEN_SOURCE=600 -O2 -pipe -std=c99
LDFLAGS = -L/usr/lib/X11 -lm -lrt -lX11 -lutil -lXft  -lfontconfig -lfreetype  -lfreetype
CC      = gcc
In file included from x.c:61:
config.h:20:14: error: static declaration of 'utmp' follows non-static declaration
 static char *utmp = NULL;
              ^~~~
In file included from x.c:20:
st.h:115:14: note: previous declaration of 'utmp' was here
 extern char *utmp;
              ^~~~
In file included from x.c:61:
config.h:21:13: error: conflicting types for 'stty_args'
 static char stty_args[] = "stty raw pass8 nl -echo -iexten -cstopb 38400";

Et j'en passe. Pour être sûr, voici la recette:

# Depends on: xorg-libxext xorg-libxft

description="st is a simple terminal implementation for X"
url="http://st.suckless.org/"
contributors="alienus, tnut"

name=st
version=0.8
release=1

source=(http://dl.suckless.org/st/$name-$version.tar.gz
                config.h)

prepare() {

  cd $SRC/$name-$version
  sed -i '/\@tic /d' Makefile
  cp $SRC/config.h config.h
}

build() {
  export CFLAGS+=" -std=c99" 
  cd $SRC/$name-$version
  make CC=gcc X11INC=/usr/include/X11 X11LIB=/usr/lib/X11
}

package() {

  cd $SRC/$name-$version
  make PREFIX=/usr DESTDIR=$PKG TERMINFO=$PKG/usr/share/terminfo install

}

Un autre détail: j'utilise normalement le shell fish, mais ici j'ai utilisé bash pour éviter tout problème d'export.

rems

  • Moderator
  • Membre affranchi
  • *****
  • Messages: 48
  • Karma: 3
Re : Compilation de st avec patch
« Réponse #3 le: lun. déc. 03 23:31:04 2018 »
Alors, comme la recette existait déjà chez nutyx (m'en rappelais plus), j'ai juste rajouter
CC=/usr/bin/gcc devant le make et c'est passé.
Par contre je rencontre un soucis le conflit de fichier dans /usr/share/terminfo. J'ai retiré les deux fichiers en conflit du paquet mais il faudra voir après la mise à jour si le fonctionnement de St est correct.

Rocket

  • Petit Nouveau
  • *
  • Messages: 19
  • Karma: 0
Re : Compilation de st avec patch
« Réponse #4 le: mar. déc. 04 11:50:42 2018 »
Rien à faire, ça ne compile pas. Est-ce que je pourrais avoir la recette modifiée ?

Thierry

  • Administrator
  • Super Héros
  • *****
  • Messages: 1065
  • Karma: 10
  • Sexe: Homme
    • NuTyX distribution

Rocket

  • Petit Nouveau
  • *
  • Messages: 19
  • Karma: 0
Re : Compilation de st avec patch
« Réponse #6 le: mar. déc. 04 22:52:38 2018 »
Merci pour le patch!

J'ai vu qu'il y a eu d'autres modifications. Il reste des zones d'ombres, mais j'ai réussi à compiler st et appliquer le patch scrollback comme je le voulais.

Je vais encore tester, j'ai eu une bizarrerie, tout à coup des caractères illisibles se sont affichés, mais je n'arrive pas à le reproduire. On verra si cela revient.
Je donnerai un retour d'ici quelques jours.