Problem compiling both 1.3.2 and 1.4.0 on Slackware

Hello,
I found pzip from the AT&T software development site. I left makepanda running and when I came back it apparently ran, however I can’t find ppython. Any ideas?

Thank you.

The ‘pzip’ you might happen to find on the AT&T site is an unrelated program with the same name. makepanda was supposed to build pzip. There’s a bug in makepanda: if you use --no-openssl, it doesn’t build pzip. As it so happens, the code for pzip is in the “downloadertools” directory, and most of the stuff in the “downloadertools” directory requires openssl, so I just assumed that pzip requires openssl too. But obviously, it doesn’t.

So the way to fix makepanda is: look for this code:

if OMIT.count("OPENSSL")==0:
    ...
    EnqueueCxx(ipath=IPATH, opts=OPTS, src='pzip.cxx', obj='pzip_pzip.obj')
    EnqueueLink(dll='pzip.exe', opts=OPTS, obj=['pzip_pzip.obj']+LIBS)
    ...

What this code is saying is “if openssl is not being omitted, then schedule pzip for compilation and linking.” To fix it, you can just move the two lines (EnqueueCxx and EnqueueLink) outside the if-statement.

The real problem here, though, is deeper. When I compile panda, I never use any of the “–no-xxx” options. So those options are almost completely untested, and many are broken. I simply don’t have time to test them, either - I’m completely swamped. I’m working on an automated build system and regression tester, which will make it more practical to test them. Until then, it’s generally going to be easier to compile panda without any of these “–no-xxx” options. So my advice in the long run is to get a copy of openssl that’s up-to-date, and compile panda without any of these “–no-xxx” options.

Thanks! I started the process. Hopefully it will go until the end.
However, I do have Openssl installed. 0.9.8e which is the latest. :frowning:

If you have any ideas as to why is it not accepting my openssl package, let me know. Maybe new code introduced by the latest version?

thanks.

Actually, looking closer, I think it might be a genuine panda bug. Somehow, the old version of SSL tolerated the bug. I’m looking deeper now.

Thanks! Let me know if you find something.

thank you again for your time!
Francisco

Im currently uploading a slackware package. I cant guarantee that it will work, but if it does Josh could probably add it to the site.

There was indeed an openssl-related bug. It’s been fixed on the CVS head. So have the bugs in makepanda’s --no-openssl support.

So, I downloaded panda3d-1.4.1.tar.gz, the whole thing. I type makepanda/makepanda.py --everything --no-openssl. I got this:

built/lib/libp3dtool.so: undefined reference to `dlerror'
built/lib/libp3dtool.so: undefined reference to `dlopen'
built/lib/libp3dtool.so: undefined reference to `dlclose'
collect2: ld returned 1 exit status

I also got the code from CVS (I didn’t see a makepanda there though) so I copied the files from CVS over the ones from 1.4.1 hoping that the code that’s buggy would be fixed and typed makepanda/makepanda --everything and I got a bunch of errors like this:

panda/src/linmath/lmatrix4_src.I:72: error: redefinition of 'LMatrix4f& LMatrix4f::operator=(float)'
panda/src/linmath/lmatrix4_src.I:72: error: 'LMatrix4f& LMatrix4f::operator=(float)' previously defined here

All the errors are in lmatrix4_src.I and there are tons of them.
Lastly, I tried the same as above but with the --no-openssl option and I got:

built/lib/libp3dtool.so: undefined reference to `dlerror'
built/lib/libp3dtool.so: undefined reference to `dlopen'
built/lib/libp3dtool.so: undefined reference to `dlclose'
collect2: ld returned 1 exit status

I am at loss of things to do. How did you get it to compile in slackware tencius?

thanks for your help Josh. Maybe I am missing a step in the building process?

I took a clean copy of panda3d 1.4.0, and made two changes:

  1. in makepanda, changed -lpthread to -lpthread -ldl
  2. commented out line 61 of config_nativenet.cxx

Then, I compiled using:

makepanda/makepanda.py --everything --no-openssl

That’s how to do it.

Tenicus left out one correction — the thing about pzip, see above.

It seemed like it compiled fine, but… I can’t access ppython, although I can run genpycode (which was supposed to be built at the same time as ppython)
When I access ppython by providing a full path and execute a tutorial (see below)

./direct/src/showbase/ppython samples/Sample-Programs--Disco-Lights/Tut-Disco-Lights.py 

I get several errors that look like python can’t find modules:

File "samples/Sample-Programs--Disco-Lights/Tut-Disco-Lights.py", line 9, in <module>
    import direct.directbase.DirectStart

and at the end I get:

ImportError: No module named libpandaexpress

So I am thinking I have a problem with python, although I set PYTHONPATH to be my “built” and “built/lib” directories as well.

I am going to build this thing. Tenicus determination is my inspiration hehehe.

Thanks.
PS: pview seems to work.

Don’t forget the LD_LIBRARY_PATH. See earlier in this thread.

Okay, I had a typo in my PYTHONPATH. I apologyze for that. The LD_LIBRARY_PATH was set correctly.

thanks, although I am still intrigued… Why didn’t I get ppython in the built/bin directory?

thanks.

ppython is no longer used in the latest version. Use your system’s python interpreter instead.

That works. Thanks.
Francisco.