fedora 11 and panda3d

Ah, ok, thanks. I was just worried that binary installs may be going away.

hmm; may I suggest submitting panda3d to rpmfusion.org/ ?

Now that’s what I was looking for. Awesome, thanks for the link! I’ll look into it.

Sounds like it serves a similar purpose as packman, which I’m now using to host the openSUSE builds.

Same problem here under Ferdora 11 64bit

I’ve also tried to run the samples before installing as suggested into the readme (adding the foldet inyo my path) but with no luck

[madbad@localhost Fireflies]$ echo $PATH
/usr/lib64/qt-3.3/bin:/usr/kerberos/bin:/usr/lib64/ccache:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/madbad/bin:/home/madbad/bin:/home/madbad/Scrivania/panda3d-1.6.2/built/bin:/home/madbad/Scrivania/panda3d-1.6.2/built/bin:/home/madbad/Scrivania/panda3d-1.6.2/built:/home/madbad/Scrivania/panda3d-1.6.2


[madbad@localhost Fireflies]$ python ./Tut-Fireflies.py
Traceback (most recent call last):
  File "./Tut-Fireflies.py", line 6, in <module>
    import direct.directbase.DirectStart
ImportError: No module named direct.directbase.DirectStart
[madbad@localhost Fireflies]$ 

Hello,

here I am again, today I decided to give panda a second shot. This time I tried following the instructions in INSTALL-MK to the letter. So the first step was building the entire thing using the command:

makepanda/makepanda.py --everything

everything seems to work fine, just as before (there is only some warnings about _XOPEN_SOURCE being redefined). The next step in the instructions is to test the build before installing, this is where things fail. I add built/bin to the path and built/lib to LD_LIBRARY_PATH, and test any sample program. I always get the same error (this e.g. for the Carousel sample):

$ python Tut-Carousel.py 
Traceback (most recent call last):
  File "Tut-Carousel.py", line 18, in <module>
    import direct.directbase.DirectStart
ImportError: No module named direct.directbase.DirectStart

The error is the same for all samples. What am I missing?

BTW there is no ppython anywhere to be seen in my system. From what I saw around the forums it is not necessary for linux and I should be ok to use simply python, right?

Hum, the instructions in INSTALL-MK are a bit outdated. You shouldn’t put “built” anywhere in the system paths.

Instead, invoke makepanda with the --installer option. Alternatively, you can invoke installpanda (which works like “make install”):

python makepanda/installpanda.py --prefix /usr/local

Then, invoke “ldconfig” as root and you should be all set.

Ok, I will try that again. The last time around I tried using the --prefix part but I ended up with a weird directory structure, with stuff in places like:
/usr/local/usr/lib
/usr/local/usr/bin
etc…
and things did not work. It was a few weeks ago, but I will try again.

does the makepanda --installer need to be run as root?

wow, ok, I got something new this time trying to generate the installer:

$ makepanda/makepanda.py --installer
Storing dependency cache.
Elapsed Time: 0 sec
Cannot build installer without python

but python is there

$ python
Python 2.6 (r26:66714, Jun  8 2009, 16:07:29) 
[GCC 4.4.0 20090506 (Red Hat 4.4.0-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 

Just to make you know that I’ve been able to install Panda on Fedora 11 64bit.
Thats a sort of pro-noob guide (or at least that’s what I’ve done) ^^
1) Check out svn

2) Build the source (from the main panda3d folder)

(this terminate with errors because of something wrong whit the rpm build process)

3) Generate myself the rpm

The red part should be something different depending in wich directory you done the 1) step

4) Install the generated rpm

Give your root password

The red part could be something different

5) Than you have panda installed but not working because he can’t find the libraries (that’s due to 64bit arch)

To resolve this there is something you must put into a panda config file
The file is:

you must add into it this line at the end of the file to tell panda where to find the libs

ps.: Sorry for my bad english.

I had no idea fixing the RPM issue was as simple as adding a --root argument to rpmbuild. Just checked in a fix for that to makepanda, so step 3 should no longer be necessary. (Can anyone test it for me?)

Thank you, I tried your steps and generated an RPM. However, after installing it I still cannot run the samples.

$ python test1.py 
DirectStart: Starting the game.
Traceback (most recent call last):
  File "test1.py", line 1, in <module>
    import direct.directbase.DirectStart
  File "/usr/share/panda3d/direct/directbase/DirectStart.py", line 3, in <module>
    from direct.showbase import ShowBase
  File "/usr/share/panda3d/direct/showbase/ShowBase.py", line 10, in <module>
    from pandac.PandaModules import *
  File "/usr/share/panda3d/pandac/PandaModules.py", line 1, in <module>
    from libpandaexpressModules import *
  File "/usr/share/panda3d/pandac/libpandaexpressModules.py", line 1, in <module>
    from extension_native_helpers import *
  File "/usr/share/panda3d/pandac/extension_native_helpers.py", line 75, in <module>
    Dtool_PreloadDLL("libpandaexpress")
  File "/usr/share/panda3d/pandac/extension_native_helpers.py", line 69, in Dtool_PreloadDLL
    raise ImportError, message
ImportError: DLL loader cannot find libpandaexpress.

I did modify Config.prc and also run ldconfig just in case.
Upon further investigation, I saw that there is no libpandaexpress.so anywhere on the system under /usr/*
However, I did find the file in built/lib in the source tree. After checking, I saw that this file was NOT included in the RPM for some reason.

@rdb
Checked and works for me!

@scuac
No idea why this appen.
For me the lib exist (also in the rpm) and after the installation is located in
/usr/lib64/panda3d

Maybe some developer can give you some better help than me

Huh, that’s weird. I don’t see a reason why it wouldn’t have installed the libraries. Did you see an error when the RPM was created?

When I first tried it, I got:

$ rpmbuild --root /home/scuac/Download/panda3d-1.6.2 --buildroot linuxroot -bb panda3d.spec 
Processing files: panda3d-1.6.2-1.x86_64
Checking for unpackaged file(s): /usr/lib/rpm/check-files /linuxroot
error: cannot create /home/scuac/rpmbuild/RPMS/x86_64: No such file or directory
error: Could not open /home/scuac/rpmbuild/RPMS/x86_64/panda3d-1.6.2-1.x86_64.rpm: No such file or directory


RPM build errors:
    cannot create /home/scuac/rpmbuild/RPMS/x86_64: No such file or directory
    Could not open /home/scuac/rpmbuild/RPMS/x86_64/panda3d-1.6.2-1.x86_64.rpm: No such file or directory

so I created the folder ~/rpmbuild/RPMS/x86_64 manually, I tried again and got

$ rpmbuild --root /home/scuac/Download/panda3d-1.6.2/ --buildroot linuxroot -bb panda3d.spec 
Processing files: panda3d-1.6.2-1.x86_64
Checking for unpackaged file(s): /usr/lib/rpm/check-files /linuxroot
Wrote: /home/scuac/rpmbuild/RPMS/x86_64/panda3d-1.6.2-1.x86_64.rpm

EDIT: I want to add that libpandaexpress.so (which is missing from the RPM) is present in both built/lib and in linuxroot/usr/lib64/panda3d

Were you in the Panda3D source directory when you invoked that command? Can you replace “linuxroot” in the --buildroot flag with the full path?

(Alternatively, if you update your CVS tree, the --installer option should be fixed now.)

I tried the full path in --buildroot but that gets appended to the path in --root

error: File not found: /home/scuac/Download/panda3d-1.6.2/home/scuac/Download/panda3d-1.6.2/linuxroot/etc/Confauto.prc

I will try the CVS now, I have so far been using the source tar from panda3d.org.
BTW thank you for your help and patience.

Well, things are moving forward, I guess.

I got the CVS source, compiled using

makepanda/makepanda.py --everything --installer

and except for some warning everything worked. I got a nice RPM ready to go.

I installed the RPM and tried the simplest example I could find, file test1.py contains only

import direct.directbase.DirectStart
run()

but when I run it I get

$ python test1.py 
DirectStart: Starting the game.
:display(warning): Unable to load: No error.
Known pipe types:
(all display modules loaded.)
Traceback (most recent call last):
  File "test1.py", line 1, in <module>
    import direct.directbase.DirectStart
  File "/usr/share/panda3d/direct/directbase/DirectStart.py", line 4, in <module>
    ShowBase.ShowBase()
  File "/usr/share/panda3d/direct/showbase/ShowBase.py", line 242, in __init__
    self.openDefaultWindow(startDirect = False, props=props)
  File "/usr/share/panda3d/direct/showbase/ShowBase.py", line 726, in openDefaultWindow
    self.openMainWindow(*args, **kw)
  File "/usr/share/panda3d/direct/showbase/ShowBase.py", line 811, in openMainWindow
    self.openWindow(*args, **kw)
  File "/usr/share/panda3d/direct/showbase/ShowBase.py", line 556, in openWindow
    self.makeDefaultPipe()
  File "/usr/share/panda3d/direct/showbase/ShowBase.py", line 489, in makeDefaultPipe
    "No graphics pipe is available!\n"
  File "/usr/share/panda3d/direct/directnotify/Notifier.py", line 131, in error
    raise exception(errorString)
StandardError: No graphics pipe is available!
Your Config.prc file must name at least one valid panda display
library via load-display or aux-display.

/etc/Config.prc does contain the line
load-display pandagl
so I don’t know why that is not valid.

On a completely separate note, I first tried compiling the source with the --threads 4 flag and it crashed, don’t remember the exact problem. It compiled fine without the flag.

Try putting “plugin-path /usr/lib64/panda3d” (or just “lib” for 32-bits) in your /etc/Config.prc.

SUCCESS!

I can finally see the gray screen come up. I then tried a more complex example and can see a lovely panda walking around a bamboo forest. GREAT!

Thank you so much for your help.

hello !
i got problem with fedora 12 on rpm building with:

makepanda/makepanda.py --everything --installer

i solved this by putting :

PEXEC="/usr/bin/python"

instead of :

PEXEC=os.path.join(os.path.dirname(sys.executable), os.readlink(sys.executable))

in makepanda/installpanda.py

all working good and it build me my rpm.

see you later