Hallo,
ich versuche grade, ein Paket für Paraview zu basteln (hab das mal angehängt, falls jemand was dran auszusetzen hat, darf er das gerne tun, ist mein erstes Paket 🙂
Es scheint zu funktionieren, bis auf make DESTDIR="$startdir/pkg" install ....
da bekomme ich folgende Ausgabe:
[...]
-- Installing /home/simon/abs/build/paraview/pkg/opt/paraview/bin/paraview
-- Installing /home/simon/abs/build/paraview/pkg/opt/paraview/bin/assistant
-- Installing /home/simon/abs/build/paraview/pkg/opt/paraview/bin/pvTestDriver
-- Installing /home/simon/abs/build/paraview/pkg/opt/paraview/lib/paraview-3.2/paraview-real
-- Installing /opt/paraview/lib/paraview-3.2/libQtCore.so
tar: /opt/paraview/lib/paraview-3.2: Kann chdir nicht ausführen: Datei oder Verzeichnis nicht gefunden
tar: Nicht behebbarer Fehler: Programmabbruch.
-- Installing /opt/paraview/lib/paraview-3.2/libQtGui.so
tar: /opt/paraview/lib/paraview-3.2: Kann chdir nicht ausführen: Datei oder Verzeichnis nicht gefunden
tar: Nicht behebbarer Fehler: Programmabbruch.
[...]
Die ersten drei Zeilen aus dem Ausschnitt sehen gut aus, da werden Paraview-Binaries installiert. Die Fehler treten auf, wenn er versucht, die Qt-Bibliotheken aus /usr/lib ins Installationsverzeichnis zu kopieren (das muss er tun, weil die statisch gelinkt werden).
Die verantwortliche cmake_install.cmake hab ich schon ausgemacht. Hier ist der Teil, der zur obigen Ausgabe gehört:
FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE COMPONENTS "Runtime" FILES "/home/simon/abs/build/paraview/src/build/bin/paraview")
FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE COMPONENTS "Runtime" FILES "/home/simon/abs/build/paraview/src/build/bin/assistant")
FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE EXECUTABLE COMPONENTS "Runtime" FILES "/home/simon/abs/build/paraview/src/build/bin/pvTestDriver")
FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/paraview-3.2" TYPE EXECUTABLE COMPONENTS "Runtime" FILES "/home/simon/abs/build/paraview/src/build/bin/paraview-real")
MESSAGE(STATUS "Installing ${CMAKE_INSTALL_PREFIX}/lib/paraview-3.2/libQtCore.so")
EXECUTE_PROCESS (WORKING_DIRECTORY /usr/lib
COMMAND tar c libQtCore.so.4.3;libQtCore.so.4.3.3;libQtCore.so.4;libQtCore.so
COMMAND tar -xC ${CMAKE_INSTALL_PREFIX}/lib/paraview-3.2)
MESSAGE(STATUS "Installing ${CMAKE_INSTALL_PREFIX}/lib/paraview-3.2/libQtGui.so")
EXECUTE_PROCESS (WORKING_DIRECTORY /usr/lib
COMMAND tar c libQtGui.so.4.3;libQtGui.so;libQtGui.so.4.3.3;libQtGui.so.4
COMMAND tar -xC ${CMAKE_INSTALL_PREFIX}/lib/paraview-3.2)
Hier weiß ich nicht weiter: In den FILE(INSTALL ..) Zeilen ist noch
${CMAKE_INSTALL_PREFIX}=/home/simon/abs/build/paraview/pkg/opt/paraview/,
später, wenn die Qt-Libraries kopiert werden, ist
${CMAKE_INSTALL_PREFIX}=/opt/paraview/
Wie kann das sein?
Mir fällt grad nur eine hässliche Lösung ein, nämlich vor dem make .. install die fehlerhafte cmake_install.cmake zu patchen. Ist sowas vertretbar? 🙂
Grüße,
zimon