Panda3d with Ubuntu 11.04

Panda3d won’t compile with Ubuntu 11.04 (after installing a lot of libraries, etc, I get “fatal error: linux/videodev.h: no such file or directory”.

Seems like the current version of Panda3d isn’t compatible with the new kernal, etc etc. I’ve done some research, but I’m a bit in over my head. Alas.

Any advice for building, or knowledge as to when a version of Panda3d for ubuntu 11.04 will arrive?

Hmm… seems like Video4Linux 1 support was removed in Natty. I’ll provide a proper fix as soon as I look into making a natty build.
I think you should be able to compile with HAVE_VIDEO4LINUX disabled, or so. Poke around in panda/src/vision to disable compiling the Video4Linux code.

If you don’t want to compile yourself, you can install the maverick build and be sure to use python2.6 instead of python2.7.

This is my first attempt at compiling Panda from source on Ubuntu 11.04.

I’m having issues with the following third party libraries using makepanda.py --verbose --everything

fcollada

  • library is no longer available on public website? is it needed?

squish

  • source will not compile on platform even without SSE enabled. I have a Dell Inspiron N5010 Intel core i3 x64.

tiff

  • verified via locate command library is installed in usr/lib32/ but makepanda.py still cannot find. I tried to manually add via the Lib( ALWAYS, dir) Python command but no effect

vrpn

  • vr device periphers from UNC and I did not download and try to compile. how to disable certain third party libraries?

jpeg

  • libjpeg8-dev installation in package manager wants to remove libhighgui-dev and libtiff4-dev but Panda needs these libraries - is this a package creation error?

zlib

  • installed and verified libz location in /usr/lib32/ via locate command but still makepanda.py cannot find as tiff

Thanks

Welcome to the forums!

FCollada is needed for the dae2egg tool. You can grab the libfcollada-dev maverick package from the Panda3D repo if you need it.

You can also grab the maverick package for squish from there.

As for tiff, jpeg and zlib- you’re saying you only have the 32-bits packages for them installed. Get the 64-bits ones, be sure to get the -dev ones. Like zlib1g-dev, libjpeg-dev, libtiff-dev…

You don’t need to compile anything from source, the packages are all either available from the Panda3D repo/PPA (for maverick) or the Ubuntu repo.

You don’t need vrpn, you can compile without it. Makepanda automatically disables support for missing packages.

Thanks for response.

I tried installing the Panda3d maverick package from archives.panda3d.org onto natty but no luck.

I also can’t compile 1.7.2 or main. I also get the videodev.h error. As stated earlier it seems Video4Linux is not supported by latest Linux kernel. It’s been almost six years since I’ve worked with Linux and Ubuntu and the platform has improved greatly. There’s a post here about the problem:
stackoverflow.com/questions/5842 … untu-11-04

I could dig deeper, change the includes, make sure things compile, and check in changes to cvs. I’d rather just wait until an Ubuntu Natty release is up though. It seems from other forum posts new package releases are automated so I shouldn’t have to wait long?

I haven’t set up a natty build machine yet. I’ll look into it, though. Demand seems to be high.

Since there are no Fedora 1.7.2 rpms available, I’d like to try to take advantage of the old 1.7.0 rpm sources to put together a new rpm.

Or try the latest CVS. I modified makepanda to run rpm through fakeroot, this may have solved the issues with system damage that the Fedora RPMs have done in the past.

Ah rats. After downloading from cvs with:

makepanda bailed out on errors. Thank you for the suggestion, though.

Are the original rpm source directories for the 1.7.0 version no longer around?

Here are my makepanda errors:

I added the fakeroot call to the 1.7.2 release version of makepanda.py

and I was able to create an rpm and everything appears to be ok, but of course I still get warnings about those missing 3rd party packages.

Thanks again for the help.

I’m trying to compile from cvs to install on Natty without downgrade python.

It still no compile but I near to finish a build successfully (I think).

Firs squish will not compile even if you have SSE for 64 bits archs. You have to edit config file in its source code main dir and add the line:

CXXFLAGS += -fPIC

It should look like this:

default flags

CXXFLAGS ?= -O2
CXXFLAGS += -fPIC
ifeq ((USE_ALTIVEC),1) CPPFLAGS += -DSQUISH_USE_ALTIVEC=1 CXXFLAGS += -maltivec endif ifeq ((USE_SSE),1)
CPPFLAGS += -DSQUISH_USE_SSE=2
CXXFLAGS += -msse
endif

And even if you cannot use squis you still can use panda, maybe some samples won’t run, don’t know.

EDIT: sorry, I forget about this error:

alpha.cpp:117:15: error: ‘INT_MAX’ was not declared in this scope

singlecolourfit.cpp:71:16: error: ‘INT_MAX’ was not declared in this scope

You can fix this by editing files alpha.cpp and singlecolourfit.cpp to add:

#include <limits.h>

Below others includes at the beginning of each file.

fmod is not necessary.

ffmpeg will not be autodetected by makepanda.py, there is not dev package for ffmpeg, it is called libav and similar (I will look for exact names later when I get to my Natty box), look for these in synaptic and install their *-dev. Run makepanda.py again, this time no warning about ffmpeg.

fcollada you really do not need it. Install blender from repo or the beta from blender.org, install the chicken exporter from sourceforge.net, when you need to convert collada to egg, import collada into blender, export from blender into egg.

Why fcollada and not collada dom?

randall reply is the solution for videodev.h includes, I found the same post in stackoverflow when searching for the same error in google.

I also get missing zlib warning and I have zlib dev installed, and it is 64 bits. Same for jpeg and tiff, they are not detected. Does no jpeg (and other image formats) mean no textures?

May 29, 2011:

The only solution I’ve found for jpeg, tiff and zlib to be detected correctly is to stop using makepanda.py (I don’t know how to tell it to use alternative third party libraries) and build Panda 3D using ppremake. In the Config.pp file that ppremake process I wrote paths to libjpeg (actually, I’m using libjpeg-turbo that is a fork of libjpeg), and zlib, the same should apply to any other third party.

This opens the possibility to distribute libjpeg, zlib and so with the finished game rather than use the ones in the system.

It seems with the last cvs editing the includes of videodev.h is not more needed. But libjpeg and zlib and a few others are not detected by makepanda.py so I like ppremake more now.