OVH Cloud OVH Cloud

[FBSD 4.11] Compilation de libppd-0.10

4 réponses
Avatar
Eric Masson
'Lut,

Je suis entrain de m'arracher le peu de cheveux qui me reste en essayant
de compiler libppd-0.10 (pas de port) sur un FreeBSD 4.11.

Ce package a besoin de la librairie libgnugetopt et elle est installée :
admin@rtrbsdivrner:/usr/ports> ll /var/db/pkg/ | grep gnu
drwxr-xr-x 2 root wheel 512 Apr 21 11:11 libgnugetopt-1.2

Le configure se passe bien :
http://emss.free.fr/informatique/libppd/configure.log

La compilation par make, moins bien :
http://emss.free.fr/informatique/libppd/make.0.log

Après une petite modif du source de ppdfilt.c :
--- ppdfilt.c.orig Thu Apr 21 12:02:47 2005
+++ ppdfilt.c Thu Apr 21 12:03:42 2005
@@ -50,10 +50,10 @@

#include <stdlib.h>
#include <unistd.h>
-#include <getopt.h>
#include <string.h>
#include <ctype.h>

+#include "getopt.h"
#include "ppd.h"
#include "ppdfilt.h"

La compilation par make, ne se passe toujours pas bien :
http://emss.free.fr/informatique/libppd/make.1.log

Mais en reprenant la ligne de commande et en spécifiant le bon path pour
l'option I, ça compile.

Le même souci se passe lors de l'édition de liens ou il faut à nouveau
reprendre la ligne de commande en spécifiant les bons chemins et
librairies.

Bref, comment faire pour ne pas avoir à reprendre les lignes de commande
à la main et faire prendre en compte au couple configure/make que
libgnugetopt n'est pas là ou il l'attend ?

Merci d'avance

Éric Masson

--
généralment ce que je lis c'est le début de la charte et c'est tout.
Quand on vote 20 fois par mois on n'a pas envie systématiquement de lire
toites les conditions du viote, surtout quand on vote comme d'habitude,
-+- X in: <http://www.le-gnu.net> - Neuneu autowolfe en manuel -+-

4 réponses

Avatar
Mathieu Arnold
Eric Masson écrivait:
Bref, comment faire pour ne pas avoir à reprendre les lignes de commande
à la main et faire prendre en compte au couple configure/make que
libgnugetopt n'est pas là ou il l'attend ?


Le plus simple, c'est de faire un port pour, et d'y mettre un :
USE_GETOPT_LONG= yes
dedans.
Sinon, regarde dans /usr/ports/Mk/bsd.port.mk ce que fait
USE_GETOPT_LONG dans les 4.x.

--
Mathieu Arnold

Avatar
Eric Masson
Mathieu Arnold <mat+ writes:

'Lut,

Le plus simple, c'est de faire un port pour, et d'y mettre un :
USE_GETOPT_LONG= yes
dedans.


Ok.

Sinon, regarde dans /usr/ports/Mk/bsd.port.mk ce que fait
USE_GETOPT_LONG dans les 4.x.


Ajout du port libgnugetopt et modification des variables d'environnement
du configure.

Bon, je m'y colle.

Merci

Éric

--
LC> A la différence de certains, je lis les articles. C'est tout.
Oui, on sait. Bientôt, les noms, puis les adjectifs, puis les verbes.
Avec un peu de patience, dans quelques années, une phrase entière.
-+- LW in <www.le-gnu.net> : Moi-je nous fait l'article-+-

Avatar
Eric Masson
Mathieu Arnold <mat+ writes:

'Lut,

Le plus simple, c'est de faire un port pour, et d'y mettre un :
USE_GETOPT_LONG= yes
dedans.


Ok.

Sinon, regarde dans /usr/ports/Mk/bsd.port.mk ce que fait
USE_GETOPT_LONG dans les 4.x.


Ajout du port libgnugetopt et modification des variables d'environnement
du configure.

Bon, je m'y colle.

[Supersedes]

Bon, résultat des courses, la compilation passe, mais l'édition de liens
toujours pas, LDFLAGS est bel et bien mis à jour dans config.status,
mais le linker n'en tient pas compte.

http://emss.free.fr/informatique/libppd/ldflags.log
http://emss.free.fr/informatique/libppd/make.log

Erreur :
/bin/sh ../libtool --mode=link cc -O -pipe -DPPD_PATH="/usr/local/share/postscript/ppd/" -L/usr/local/lib -lglib12 -o ppdfilt ppdfilt.o libppd.la
cc -O -pipe -DPPD_PATH="/usr/local/share/postscript/ppd/" -o .libs/ppdfilt ppdfilt.o -L/usr/local/lib ./.libs/libppd.so -lglib12 -Wl,--rpath -Wl,/usr/local/lib
ppdfilt.o: In function `main':
ppdfilt.o(.text+0x3f8): undefined reference to `getopt_long'
*** Error code 1

Stop in /usr/ports/print/libppd/work/libppd-0.10/src.
*** Error code 1

Stop in /usr/ports/print/libppd/work/libppd-0.10/src.
*** Error code 1

Stop in /usr/ports/print/libppd/work/libppd-0.10.
*** Error code 1

Stop in /usr/ports/print/libppd/work/libppd-0.10.
*** Error code 1

Stop in /usr/ports/print/libppd.

Ah, dernier point, le port (incomplet, pas de plist) a cette tête (copie
modifiée de libpaper)
# New ports collection makefile for: libpaper
# Date created: Do 16 Nov 2003 20:00:00 CET
# Whom:
#

PORTNAME= libppd
PORTVERSION= 0.10
CATEGORIES= print
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE}
MASTER_SITE_SUBDIR= lpr
DISTNAME= ${PORTNAME}-${PORTVERSION}

COMMENT= A library providing routines for ppd files

USE_INC_LIBTOOL_VER
INSTALLS_SHLIB= Yes
USE_GETOPT_LONG=Yes
CONFIGURE_ARGS= --build=${CONFIGURE_TARGET}

.include <bsd.port.mk>

Merci

Éric

--
LC> A la différence de certains, je lis les articles. C'est tout.
Oui, on sait. Bientôt, les noms, puis les adjectifs, puis les verbes.
Avec un peu de patience, dans quelques années, une phrase entière.
-+- LW in <www.le-gnu.net> : Moi-je nous fait l'article-+-

Avatar
Eric Masson
Mathieu Arnold <mat+ writes:

'Lut,

Le plus simple, c'est de faire un port pour, et d'y mettre un :
USE_GETOPT_LONG= yes
dedans.


Ok.

Sinon, regarde dans /usr/ports/Mk/bsd.port.mk ce que fait
USE_GETOPT_LONG dans les 4.x.


Ajout du port libgnugetopt et modification des variables d'environnement
du configure.

Bon, je m'y colle.

[Supersedes]

Bon, résultat des courses, la compilation passe, mais l'édition de liens
toujours pas, LDFLAGS est bel et bien mis à jour dans config.status,
mais le linker n'en tient pas compte.

[Supersedes 2]

Ça a finit par fonctionner, pour les intéressés, des versions
préliminaires des ports pour libppd et lpr-wrapper sont disponibles ici:
http://emss.free.fr/informatique/lpr-wrapper/
Je devrais regarder celui pour psdim sous peu.

Éric

--
LC> A la différence de certains, je lis les articles. C'est tout.
Oui, on sait. Bientôt, les noms, puis les adjectifs, puis les verbes.
Avec un peu de patience, dans quelques années, une phrase entière.
-+- LW in <www.le-gnu.net> : Moi-je nous fait l'article-+-