Software als PORT einpflegen: Wie erzwingen, daß PKGCONFDIR respektiert wird?

From: O. Hartmann <ohartman(at)zedat.fu-berlin.de>
Date: Thu, 18 Nov 2010 15:22:50 +0100

Hallo.

Ich übe mich in der Portierung von Software, die nicht ganz alltäglich
ist und vornehmlich im wissenschaftlichen Sektor Verwendung findet. Ein
solches Softwarepaket erfordert die xerces-c-Bibliothek in der Version
3.1.1, die man auf der Apache Website bereits finden kann. FreeBSD hat
allerdings nur Version 2.7 als xerces-c2 oder 2.8 als xerces-c2-devel.
Ich dachte mir, es sei vielleicht opportun einen Port 'xerces-c3' zu
bauen, allerdings stoße ich nun bei meinen Erstversuchen auf schier
unüberwindliche Probleme.

a) Nahezu alle Ports, die pkg-config verwenden, scheinen ohne weiteres
Zutun die Umgebungsvariable PKGCONFDIR (die scheinbar nur in
Mk/bsd.scon.mk gesetzt wird) richtig zu setzen, nämlich auf
${PREFIX}/libdata/pkgconf. Ich habe leider keine Ahnung (und vor allem
keine Hinweise gefunden), wie man 'configure' dauz zwingen kann, diese
Variable zu respektieren. Sie ienfach mit "CONFIG_ENV+=" setzen reicht
irgendwie nicht und "CONFIG_ARGS+=" läßt mir leider auch keinen
Spielraum, da ich nicht sehe, welches 'configure'-tag hier geschaltet
werden muß (--datadir=${PKGCONFDIR}?).
Jedenfalls landet 'xerces-c.pc' stets in /usr/local/lib/pkgconf/ statt
in /usr/local/libdata/pkgconf.

b) Das FreeBSD-Paradigma will, daß Bibliotheken am Ende ihres Namens die
Versionsnummer tragen. Also libxerces-c.so.27 oder wie in meinem Falle
nun libxerces-c.so.31. Wie kann man solch Benamungen erzwingen? Bei mir
ist PORTVERSION=3.1.1, im Procedere wird daraus die Bibliothek
'xerces-c-3.1.so', das ist aber nicht korrekt. Ein korrekter
symbolischer Link wird aber dann auch gesetzt, so daß ich annehme, daß
das Framework weiß, wie zu installieren ist, man muß ihm nur an der
richtigen Stelle mitteilen, wie der endgültige Bibliotheksname
auszusehen hat.

c) Mit dem bisherigen Installationsprozedere wird der Port in Konkurrenz
zum Port xerces-c2 installiert, kann man diesen Port elegant als
parallele Installation enrichten? Es scheint, als würde mit dem neuen
Xerces-C ein neues Schema eingeführt, Tools und Bibliotheken sind
getrennt, so daß gleich für mich die Arbeit mit einem 'Metaport'
aufkommen würde - also nur noch frustrierender für einen Anfänger.

Hintergrund: NASA und USGS bieten einige für uns sehr wichtige Werkzeuge
im Bereich der Astro-Geo-Wissenschaften. Händisch kann ich die Software
(zum Beispiel ISIS3 des USGS) einrichten und sie läuft, aber mit der
neuen Version des ISIS3 Paketes werden funkelnagelneue Bibliotheken
benutzt. ISIS3 geht recht pervers vor: Es gibt einen Ordner 'ISIS3PRTY',
in dem die entwickler für LinSux-Distros und OSX vorkompilierte
Bibliotheken anbieten, unabhängig davon, ob das System nun schon eine
volle Qt4-Installation, als Beispiel, hat oder nicht. Man gibt sich
seitens des Help-Forums auch ziemlich rigide, der Download erfolgt noch
vie rsync sehr benutzerunfreudlich. Nun, Diese Software will xerces-c3,
Xalan-c, aus den Ports, will aber xerces-c2 und schon ist ein Konflikt
gegeben. Ohne xerces-c3 aber kompiliert die neue Software nicht. Ich
habe jetzt die Faxen dicke und will mir eine eigene Port-Kollektion
bauen, um das ständige Patchen etc. loszuwerden. Die Software muß an
einigen Stellen relativ trivial auf FreeBSD Spezifika angepaßt werden,
was aber fü¶ Entwickler nich wild sein sollte. Es hängt wieder mal an
Kleinigkeiten ...

O.

To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Thu 18 Nov 2010 - 15:22:51 CET

search this site