Building PyQt for Maya 2012 ( Linux x64 )

                   

SIP needs to be built prior to building PyQt.

Download SIP from here

Maya 2012 uses Qt 4.7.1.

Download it from here

Download PyQt from here

First step is to build qt from source. Extract the tarball and CD in to the directory

./configure

While running configure, if you get the following error

Basic XLib functionality test failed!

You might need to modify the include and library search paths by editing

QMAKE_INCDIR_X11 and QMAKE_LIBDIR_X11 in /home/anoop/apps/sources/qt-everywhere-opensource-src-4.7.1 /mkspecs/linux-g++-64.

install teh libXext development package. I used zypper to install the package from the web

zypper install xorg-x11-libXext-devel

executing the configure after the installation gave the following error

cannot find -lXrender

this was happening because configure couldn’t find libXrender.so. This can be fixed by creating a symlink to libXrender.so.1 in the /usr/lib64 directory

ln -s /usr/lib64/libXrender.so.1 /usr/lib64/libXrender.so

After successful configuration run the following to install Qt to /usr/local/Trolltech/Qt-4.7.1 directory

make

make install

Building SIP

Extract the SIP zip archive to /home/username/SIP

cd /home/username/SIP

After setting the variables, run the following

/usr/autodesk/maya2012/bin/mayapy configure.py

make

make install

Building PyQt

Extract the archive to /home/username/PyQt-x11-gpl-4.7.4

cd PyPyQt-x11-gpl-4.7.4

/usr/autodesk/maya2012/bin/mayapy configure.py -q /usr/local/Trolltech/Qt-4.7.1/bin/qmake

make -j4

make install

Building OpenEXR libraries on Linux ( openSUSE 11.4 )

 

OpenEXR is a high dynamic-range (HDR) image file format developed by Industrial Light & Magic for use in computer imaging applications. In order to develop plugins and tools that can handle OpenEXR file formats, you need to have the OpenEXR libraries built for your OS.

I had been not using Maya for the past few months since I have been dealing with proprietary applications used at my workplace. So I decided to continue work on Maya whenever I get back home after the days work. And what better way to start things all over again than starting with the API.

So I made a checklist of the libraries and other tools which I need to get built to start working on the same.So here I was building OpenEXR on openSUSE 11.4 and I stumbled across few things here and there which I felt would be valuable if I share with you all.

Building OpenEXR on you OS requires the zlib and ilmbase libraries which has to be linked at the time of configuring.So the first task is to get zlib and ilmbase libraries built on your machine.
I had my libraries installed in my sandbox folder which is /usr/local/sandbox referred by environment variable $SANDBOX. In case you have installed in locations other than standard paths like(/usr/include and /usr/lib) you need to make the build aware of the same.

setting the the environment variable PKG_CONFIG_PATH to $SANDBOX/lib/pkgconfig will let OpenEXR get the package info regarding zlib and ilmbase.

./configure –prefix $SANDBOX LDFLAGS=-L$SANDBOX/lib CPPFLAGS=-I$SANDBOX/include

make

While executing make if you come across the following error

main.cpp:195:28: error: ‘strcmp’ was not declared in this scope
make[1]: *** [main.o] Error 1
make[1]: Leaving directory `/home/anoop/apps/sources/openexr-1.6.1/exrenvmap’
make: *** [all-recursive] Error 1

you can fix it by including

#include <string.h>

in the header file list of main.cpp in both exrmaketiled and exrenvmap dirs.

and then execute

make install

Installing Foundry Mari on openSUSE 11.3

MARI is a creative texture-painting tool that can handle extreme projects. MARI was developed at Weta Digital to handle the massively complex, highly detailed look development work demanded of the texture department by projects such as DISTRICT 9, THE LOVELY BONES, and AVATAR.

This is how the installation directory looks like. You can add symlink to the mari* shell script in the bin folder if you want. In case you are not executing the script from the same directory, you need to make slight modification to the script to make it accessible.

 #!/bin/bash
 # This version is intended to launch Mari from the directory this
 # script is located in, does not require Mari to be installed

#export presentScriptPath=`dirname $0`
 export presentScriptPath="/usr/local/Mari1.0v4"
 export currentPath=`cd $presentScriptPath; pwd`
 export binDir=$currentPath"/bin/"
 export PATH=${PATH}:$binDir
 export mariLog=$MARI_LOG_FILE
 if [ "$mariLog" == "" ] ; then
 export mariLog=/scratch/logs/MariLog.txt
 fi

# Look for options
 for p in "$@"
 do
 case "$p" in
 "--verbose")
 # turn off the log output
 export mariLog=
 ;;
 *)
 ;;
 esac
 done

if [ "$mariLog" == "" ] ; then
 $currentPath/bin/MriBin $@
 else
 $currentPath/bin/MriBin $@ &> ${mariLog}
 fi
 

I have commented out the line

 export presentScriptPath=`dirname $0`
 

and replaced with

 export presentScriptPath="/usr/local/Mari1.0v4"
 

which is the installation directory for Mari

Disclaimer: Please support the developers as I do not in any way support piracy. Go out and purchase the softwares if you like them.

Setting up python2.5 for Massive Prime

Python can be used in Massive by typing commands directly in the textport and from scripts. The textport is accessed from the Options menu. Scripts can be run from the textport using the execfile() function and from the commandline using the -script commandline option.

Three versions of python are supported by massive ver<4.0, Python1.5, Python2.2, and Python2.5. For ver<4.0 Python2.5 is selected by default while starting massive. You can  specify a particular version of Python by entering one of the following in the textport

 #!pyscript15
 #!pyscript22
 #!pyscript25
 

openSUSE 11.3 comes with pre-installed Python2.6.5. Hence in case you want to use Python2.5 with massive you need to install Python2.5 can be downloaded from here. Massive will need the shared library for python to be in the $PYTHONHOME in order to support the specific python version. If you are building python yourself, you can get that done by specifying

./configure   –enable-shared   –prefix=/usr

I missed that step while building and I didn’t wanted to build it all over again. Instead found a workaround for the same. Since I had Foundry Nuke installed on my machine, which comes with a shared library for Python2.5 (libpython2.5.so.1.0), it was just a matter of creating a symlink to the shared library path on /usr/lib64 for libpython2.5.so.1.0

ln -s   /usr/local/nukeVersion/libpython2.5.so.1.0   libpython.2.5.so.1.0

If these operations have been successful, you will be able to access Python2.5 modules within massive.Else you will be getting an error echoed in the console like this

libpython2.5.so.1.0: cannot open shared object file: No such file or directory

Installing Massive Prime on openSUSE 11.3

Massive is the premier simulation and visualization solution system for generating and visualizing realistic crowd behaviors and autonomous agent driven animation for a variety of industries, including film, games, television, architecture, transportation, engineering, and robotics. Using Massive, an animator, engineer or robot developer designs characters with a set of actions and reactions to what is going on around them.

The installation manual that comes along with massive is sufficient for a noob to get massive running on your machine. But if you are planning to run massive on a Linux machine, you better go through the Troubleshooting section too. Even after getting the mhost server running you may still get an error “could not open connection” while executing massive from the shell. If u are using Fedora, you will be happy to see the following section under the Troubleshooting section

I am on Fedora and get a “could not open connection” error message when trying to start Massive.

The “could not open connection” error you’re getting is because the X server on Fedora has TCP connections disabled by default. Massive is trying to connect to the X server over TCP and failing. If you add the following line to the [security] section of your /etc/X11/gdm/gdm.conf it should remedy the problem.

DisallowTCP=false

But under openSUSE running on KDE, you wont find a gdm installation at all. Hence in order to enable TCP/IP sockets for X11, you need to follow the instructions below.

  • Set DISPLAYMANAGER_XSERVER_TCP_PORT_6000_OPEN=”yes” in the /etc/sysconfig/displaymanager file
  • Running /sbin/SuSEconfig to propagate that setting
  • Restart your display manager through /usr/sbin/rcxdm restart

Disclaimer: Please support the developers as I do not in any way support piracy. Go out and purchase the softwares if you like them.

Transition to Open Source (read openSUSE)

Finally got my linux distro equipped with full functionality to resume my work on open source platforms. Configuring the network using YaST was just a piece of cake with a really interactive UI that included every information for even the novice user to get the job done. This was the third time I was installing SUSE within a span of 6 months and I had switched back to good old windows every time because of the lack of fully functional drivers for my Radeon 4200. But this time the ATI repository came handy. Last two times I had tried the conventional  ”windows-user style“: Download drivers>run the file>and there you go, which proved out to be the most stupid thing on the earth to do. I had just neglected the need for a xorg-x11-server which I finally downloaded using YaST.

The next thing was to get the X Window display driver for the ATI graphics accelerators and also ATI “fglrx” driver kernel module. Both packages could be found at:

http://www2.ati.com/suse/11.3/

After successful installation of the drivers the configuration can be set using the command aticonfig –initial which will save the xorg.conf with the new settings. Display modes can also be specified optionally using the command aticonfi –resolution=0,1280×1024,1024×768. I was planning to go with 1280×1024 resolution by default which left me with the need to specify just these two display modes.

The drivers can also be downloaded from:

X Window display driver for the ATI graphics accelerators

ATI “fglrx” driver kernel module

The next requisite was a screen capture tool that would help me prepare demos of the tools and also let me compile future tutorials which I intend to share in this space. Got hold of a simple and yet powerful screen capture App called recordMyDesktop. It provides two frontend options, one built on Gtk and the other on PyQT4. My love for Qt urged me to go for the Qt-based one.

Here is a screenshot of the recordMyDesktop App

The packages can be downloaded here

recordMyDesktop

qt-recordMyDesktop

recordMyDesktop-gtk