[Paraview] Packaging branded binary

Eric E. Monson emonson at cs.duke.edu
Fri Jan 15 15:07:33 EST 2010


Hey Utkarsh,

Am I pushing on the branding packaging a bit too soon? I had forgotten the exchanges of last month with the "cpack not adapted yet to branding commit?" thread. 

I'm excited that it's getting so easy to supply my users with a customized version of PV, but I can wait on this a bit if you're still working on the install/packaging stuff.

Thanks,
-Eric


On Jan 15, 2010, at 1:54 PM, Eric E. Monson wrote:

> Thanks, that gets the Qt libraries in the proper place.
> 
> If you created a ThirdPartyRuntimes component would that automatically pick up dependencies like the libaudio? 
> 
> The Ubuntu I'm using has only been used to build ParaView CVS from source, and so the only non-standard apt-get installs I've done before building PV were based on the list for Debian on the PV Wiki: cvs libphonon-dev libphonon4 libqt4-assistant qt4-dev-tools libqt4-core libqt4-gui qt4-qmake libxt-dev g++ gcc cmake-curses-gui libqt4-opengl-dev openmpi-common openmpi-bin libopenmpi-dev python2.6-dev
> 
> But, it would be great if my binary package could run on a "clean" system since I don't know what my users will have installed. I guess if I knew where libaudio came in, I could have them install that package, but it would be cleaner if I didn't have to...
> 
> I'll send a separate email with my OS X issues... Something for you to look forward to. :)
> 
> Thanks,
> -Eric
> 
> 
> On Jan 15, 2010, at 11:27 AM, Utkarsh Ayachit wrote:
> 
>> Eric,
>> 
>> If your application wants to install Qt libs, use the following:
>> 
>> #-------------------------------------------------------------------
>> SET (qtliblist QTCORE QTGUI QTNETWORK QTXML QTSQL QTHELP QTWEBKIT
>> QTCLUCENE PHONON QTXMLPATTERNS)
>> # QTDBUS is Unix only
>> IF(NOT WIN32)
>> LIST(APPEND qtliblist QTDBUS)
>> ENDIF(NOT WIN32)
>> 
>> IF (NOT WIN32)
>> SET (PV_INSTALL_LIB_DIR
>> "lib/paraview-${PARAVIEW_VERSION_MAJOR}.${PARAVIEW_VERSION_MINOR}")
>> ELSE (NOT WIN32)
>> SET (PV_INSTALL_LIB_DIR "bin")
>> ENDIF (NOT WIN32)
>> 
>> # You can set PV_INSTALL_LIB_DIR to "lib/yourapp-version" if you want
>> to put the qt libraries there.
>> 
>> install_qt_libs("${qtliblist}" BrandedRuntime)
>> #-------------------------------------------------------------------
>> 
>> I think I may change install_qt_libs to take the location where to
>> install them so that you don't have set the PV_INSTALL_LIB_DIR
>> variable.
>> 
>> Don't copy the install rule for .plugins since that doesn't make sense
>> for custom applications.
>> 
>> I am pondering creating a new install component "ThirdPartyRuntimes"
>> that the custom app can pick to install and then Qt and FFMPEG (if
>> applicable) will get installed automatically.
>> 
>> Utkarsh
>> 
>> 
>> On Fri, Jan 15, 2010 at 11:11 AM, Eric E. Monson <emonson at cs.duke.edu> wrote:
>>> Hey Utkarsh,
>>> 
>>> We're getting closer... Your new instructions got me past a lot of the problems, but I was still missing the Qt libraries. I copied the "Add install rules..." section from Applications/ParaView/CMakeLists.txt so I would have an example for the install_qt_libs() macro, and it sort of worked, but in my binary package it put all of the Qt libraries in the package root rather than in {package_root}/lib/paraview-3.7/. After I moved the Qt libraries to that spot, all it was missing was libaudio.so.2 (which is a link to libaudio.so.2.4 on my system). If I also copy that to the correct package lib directory it runs on a clean Ubuntu system!
>>> 
>>> So, if you know how to get the Qt libraries to end up in the correct spot, and how to get libaudio to show up, too, let me know.
>>> 
>>> Oh, and when I copied the whole "Add install rules" section, cmake complained when it ran into the "Install the .plugins configuration file" section, saying "install FILES given no DESTINATION!". I guess maybe it doesn't know the ${PV_INSTALL_LIB_DIR} variable, but I'm not sure if I'll need that, or what to replace it with in my script.
>>> 
>>> Next I need to see if I can get my plugins to compile and install along with my branded app. As you can tell, I'm not exactly a CMake master! :)
>>> 
>>> Thanks again for all the help,
>>> -Eric
>>> 
>>> 
>>> On Jan 14, 2010, at 5:08 PM, Utkarsh Ayachit wrote:
>>> 
>>>> Eric,
>>>> 
>>>> I've updated the Wiki:
>>>> 
>>>> http://www.paraview.org/Wiki/Writing_Custom_Applications#Packaging
>>>> 
>>>> Here are the highlights:
>>>> * Build ParaView with VTK_USE_RPATH:OFF and BUILD_SHARED: ON
>>>> * Build your app with CMAKE_SKIP_RPATH:ON and BUILD_SHARED: ON
>>>> 
>>>> Utkarsh
>>>> 
>>>> On Thu, Jan 14, 2010 at 5:06 PM, Eric E. Monson <emonson at cs.duke.edu> wrote:
>>>>> Hey Utkarsh,
>>>>> 
>>>>> Thanks for the quick response -- that worked perfectly for generating the package.
>>>>> 
>>>>> The problem I'm running into now, on Ubuntu at least (which is probably a generic install/package problem, not specific to the branding) is that the executable can't find the proper libraries. I can run from the {package}/build directory if I make a source package, but that seems to be because it's still finding the libraries in my original ParaView build -- ldd on the executable lists the original library build location, not the new {package}/lib/paraview-3.7 library location. I tried building ParaView with VTK_USE_RPATH turned OFF, too, but that didn't seem to solve it.
>>>>> 
>>>>> Sorry for the ignorance on this part -- I usually just build and run in place rather than doing an "install".
>>>>> 
>>>>> Thanks again,
>>>>> -Eric
>>>>> 
>>>>> 
>>>>> On Jan 14, 2010, at 4:25 PM, Utkarsh Ayachit wrote:
>>>>> 
>>>>>> Eric,
>>>>>> 
>>>>>> That's something that needs to be fixed. For now, you can do this:
>>>>>> 
>>>>>> cpack -G TGZ --config CPack{PackageName}Config.cmake
>>>>>> 
>>>>>> You can change the generator (-G) suitable for your platform. Look at
>>>>>> cpack --help for details.
>>>>>> 
>>>>>> Note: this is still under development. I committed this code just
>>>>>> yesterday :), so there may be issues. But we'd love any feedback that
>>>>>> we can get.
>>>>>> 
>>>>>> Utkarsh
>>>>>> 
>>>>>> On Thu, Jan 14, 2010 at 4:16 PM, Eric E. Monson <emonson at cs.duke.edu> wrote:
>>>>>>> Hello,
>>>>>>> 
>>>>>>> I've never tried to package PV binaries before, but I've been enjoying exploring the new branding capabilities and started trying to see if I could package my custom PV to supply for my users. I added the appropriate lines to my CMakeList.txt file by looking at the one for the Spreadsheet app. I'm building out of the PV source tree, and the build goes fine.
>>>>>>> 
>>>>>>> Even though there were cpack options when configuring in ccmake for both binary and source packaging, I can run "make package_source" after my build but there is no target for "make package". Is there some other configuration I can do to package the binaries without all of the source files?
>>>>>>> 
>>>>>>> (I'm building 64-bit versions with CVS CMake and ParaView, and Qt 4.6.0 on both Mac OS X 10.6.2 and Ubuntu 9.10)
>>>>>>> 
>>>>>>> Thanks for the help,
>>>>>>> -Eric
>>>>>>> 
>>>>>>> ------------------------------------------------------
>>>>>>> Eric E Monson
>>>>>>> Duke Visualization Technology Group
>>>>>>> 
>>>>>>> 
>>>>>>> _______________________________________________
>>>>>>> Powered by www.kitware.com
>>>>>>> 
>>>>>>> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
>>>>>>> 
>>>>>>> Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView
>>>>>>> 
>>>>>>> Follow this link to subscribe/unsubscribe:
>>>>>>> http://www.paraview.org/mailman/listinfo/paraview
>>>>>>> 
>>>>> 
>>>>> 
>>> 
>>> 
> 
> _______________________________________________
> Powered by www.kitware.com
> 
> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
> 
> Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView
> 
> Follow this link to subscribe/unsubscribe:
> http://www.paraview.org/mailman/listinfo/paraview



More information about the ParaView mailing list