Oui, il y a des paquets plus simples à faire...
Désolé, j'étais en train de boucler le test en reprenant une compilation depuis le début (et à 1h30 la compilation complète... en dépit de mon valeureux i7 qui faisait d'autres trucs lourds en même temps...
).
Archimage a écrit :J'ai essayé de suivre les démarches de compilation de la doc.
J'ai été moins patient... mais ta démarche est la bonne.
Bon.
J'ai adapté le PKGBUILD pour cadrer avec le src que tu as indiqué et avec ce qui suit, ça devrait compiler.
PKGBUILD:
Code : Tout sélectionner
# Maintainer: Michele Mocciola <mickele>
# Contributor: Brice Méalier <mealier_brice@yahoo.fr>
# Contributor: Giuseppe Borzi <gborzi>
pkgname=opencascade
pkgver=6.5.0
pkgrel=1
pkgdesc="Software development platform including components for 3D surface and solid modeling, visualization, data exchange and rapid application development."
url="http://www.opencascade.org"
license="custom"
depends=('tk' 'mesa' 'java-runtime' 'libxmu' 'ftgl')
makedepends=('java-environment')
arch=('i686' 'x86_64')
install=(opencascade.install)
source=(
'http://files.opencascade.com/OCCT/OCC_6.5_release/OpenCASCADE650.tar.gz'
'env.sh'
'opencascade.sh'
'opencascade.conf')
md5sums=(
'a885f4f4e08776718c8736a363f5a2ee'
'acf8ad1e470cd7d1c2033954c1b0f03a'
'd9368b8d348ced3ec4462012977552d2'
'2924ecf57c95d25888f51071fdc72ad0')
# Installation dir
_installdir=/opt/opencascade
build() {
cd "${srcdir}" || return 1
_svnmod="ftgl"
_svntrunk="https://ftgl.svn.sourceforge.net/svnroot/ftgl/trunk"
#some headers are not in the official package... o_O
msg "Getting headers for ftgl..."
if [ -d ${_svnmod}/.svn ]; then
cd ${_svnmod} && svn up
else
svn co ${_svntrunk} --config-dir ./ ${_svnmod}
fi
cd "${srcdir}/ros" || return 1
# Set variables necessary to compile th package
#it seems "configure --with-ftgl=/usr" doesn't work... CSF_FTGL_INCLUDES and CSF_FTGL_LIB are never set in the Makefile... so we must be sure to have the headers... o_O
export CXXFLAGS=$CXXFLAGS" -ffriend-injection -fpermissive -I${srcdir}/${_svnmod}/src -I${srcdir}/${_svnmod}/src/FTFont -I${srcdir}/${_svnmod}/src/FTGL -I${srcdir}/${_svnmod}/src/FTGlyph -I${srcdir}/${_svnmod}/src/FTLayout "`pkg-config --cflags freetype2`
export CASROOT="\"${srcdir}/${pkgname}-${pkgver}/ros\""
rm env.sh env.csh || return 1
source "${srcdir}/env.sh"
# Adjusts reference to X11 libraries and headers
for _FILE in `grep -R -l "/usr/X11R6/lib" src/*`
do
sed -e "s|/usr/X11R6/lib|/usr/lib/X11|g" -i $_FILE
done
#useless yet, it seems
# for _FILE in `grep -R -l "/usr/X11R6/include" src/*`
# do
# sed -e "s|/usr/X11R6/include|/usr/include/X11|g" -i $_FILE
# done
# Adjusts DESTDIR prefix in Makefile.am and reconfigures files
sed -e "s| \$(prefix)| \$(DESTDIR)\$(prefix)|g" -i Makefile.am
autoreconf -f -i
# And now we can build our libraries...
./configure --with-ftgl=/usr --with-tcl=/usr/lib --with-tk=/usr/lib --disable-debug --enable-production --with-java-include=${JAVA_HOME}/include --prefix=${_installdir} || return 1
make || return 1
}
package(){
cd "${srcdir}/ros" || return 1
make install DESTDIR="${pkgdir}" || return 1
# I prefer having a link to a more standard dir
ln -s ./inc "${pkgdir}${_installdir}/include" || return 1
# Install a file containing instruction necessary to link against these libraries
install -D -m644 "${srcdir}/opencascade.conf" "${pkgdir}/etc/ld.so.conf.d/opencascade.conf" || return 1
# Copy the profile file
install -D -m 755 "${srcdir}/opencascade.sh" "${pkgdir}/etc/profile.d/opencascade.sh" || return 1
install -m 755 "${srcdir}/env.sh" "${pkgdir}${_installdir}" || return 1
rm -f "${pkgdir}${_installdir}/env_DRAW.sh" || return 1
# Copy the license files
install -D -m 644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" || return 1
}
Anciens fichiers requis (aucune modification):
- PKGBUILD naturellement
- opencascade.install
- opencascade.conf
- opencascade.sh
- env.sh
J'ai juste testé un lancement de l'application:
Code : Tout sélectionner
source /etc/profile.d/opencascade.sh
/opt/opencascade/bin/DRAWEXE
, ça à l'air de marcher (en tous cas, y a un machin qui se lance
)... mais je n'ai pas été plus loin avec ce logiciel qui m'est totalement inconnu.
Dans les grandes lignes, il y a eu deux problèmes, réglés salement (je ne suis pas un expert en compilation c/c++):
- récupération de *tous* les headers ftgl via svn pour la compilation... (j'ai passé trois plombes avant de capter que ni ftgl, ni ftgl-svn ne donnaient tous les .h requis ( je ne me suis pas penché plus avant sur la question, mais je trouve ça TRES louche, pourquoi certains en-têtes seraient présents et pas d'autres ?)
- Certaines options n'avaient pas l'air de marcher côté du ./configure (à commencer par --with-ftgl... les chemins vers ftgl restaient vides...), donc j'ai passé les options de compilation comme une brute...
... c'est très laid... Pour faire plus propre, il faudrait commencer par rajouter un paquet ftgl-headers... et voir ce qui cloche avec le ./configure... et voir s'il faut construire plus ou moins de choses (je n'ai aucune idée de ce qu'il faut, j'ai repris les options de base du build précédent... plus la partie à compiler avec ftgl).
Par rapport à la version 6.3.0 Je n'ai pas cherché à inclure les deux patchs. Je serais surpris que le premier soit encore d'actualité (6.3.0 > 6.3.1
), par contre il faudrait vérifier si le second a été corrigé (le problème sur les numéros de version signalé dans le précédent PKGBUILD).
Voilà, sans plus de garantie. A tester.