1.42 not compiling in mandriva 2008

Hi fellow panda users,

I am having trouble with the tar.gz of 1.42 compiling here in mandriva 2008 with the following error and thx for any help on this :wink:

g++ -ftemplate-depth-30 -fPIC -c -o built/tmp/dtoolbase_composite1.o -I"/usr/include/python2.5" -Ibuilt/tmp -Idtool/src/dtoolbase -Ibuilt/include -O2 -DBUILDING_DTOOL dtool/src/dtoolbase/dtoolbase_composite1.cxx
In file included from dtool/src/dtoolbase/dtoolbase_composite1.cxx:8:
dtool/src/dtoolbase/memoryHook.cxx: In member function ‘virtual void* MemoryHook::heap_alloc_single(size_t)’:
dtool/src/dtoolbase/memoryHook.cxx:184: error: ‘abort’ was not declared in this scope
dtool/src/dtoolbase/memoryHook.cxx: In member function ‘virtual void* MemoryHook::heap_alloc_array(size_t)’:
dtool/src/dtoolbase/memoryHook.cxx:232: error: ‘abort’ was not declared in this scope
dtool/src/dtoolbase/memoryHook.cxx: In member function ‘virtual void* MemoryHook::heap_realloc_array(void*, size_t)’:
dtool/src/dtoolbase/memoryHook.cxx:257: error: ‘abort’ was not declared in this scope
dtool/src/dtoolbase/memoryHook.cxx: In member function ‘virtual void* MemoryHook::mmap_alloc(size_t, bool)’:
dtool/src/dtoolbase/memoryHook.cxx:377: error: ‘abort’ was not declared in this scope
Storing dependency cache.
Elapsed Time: 6 sec

thx
nl

Try adding the line:

#include <stdlib.h>

to the beginning of memoryHook.cxx.

Davod

Hi there david and thx,

Okay thats fixed so lets move on:

built/bin/genpycode
Importing code library: libpandaexpress
Found extensions for class: Ramfile
Found extensions for class: StreamReader
Found extensions for class: HTTPChannel
Importing code library: libpanda
Found extensions for class: NodePath
Found extensions for class: Mat3
Found extensions for class: NodePathCollection
Found extensions for class: VBase3
Found extensions for class: VBase4
Importing code library: libpandaphysics
Importing code library: libpandafx
Importing code library: libp3direct
Found extensions for class: CInterval
Importing code library: libpandaskel
Importing code library: libpandaegg
Found extensions for class: EggPrimitive
Found extensions for class: EggGroupNode
Storing dependency cache.
Elapsed Time: 41 min 5 sec
Cannot read built/tmp/architecture.txt
[neighborlee@localhost makepanda]$

cheers
nl

I have no idea what this is. Maybe this is a makepanda thing? Josh?

David

Makepanda’s code to build a linux DEB or RPM installer looks like this:

if (os.path.exists("/usr/bin/dpkg-deb")):
    oscmd("dpkg --print-architecture > built/tmp/architecture.txt")
if (os.path.exists("/usr/bin/rpmbuild")):
    oscmd("rpm -E '%_target_cpu' > built/tmp/architecture.txt")

If your system doesn’t support either DEB or RPM packages, or if the tools to build these packages aren’t installed in the usual locations, this code will fail. Looks like that’s what’s happening. Since I don’t know how mandriva does package management, there’s not much I can do to fix it.

ok I verified online…mandriva 2008 uses rpmbuild, its just in rpm-build package LOL

recompiling :wink:

cheers
nl

well well…I suspect you guys ared tired of trying to get this working too and if so ill accept defeat and just change to a distro maybe that is working…opensuse binaries dont work nor do fedora so im out of options now…

anyway this is the result now after 5 recompiles:

chmod -R 555 linuxroot/usr/share/panda3d
rpmbuild --define ‘_rpmdir /home/neighborlee/panda3d-1.4.2’ -bb panda3d.spec
Processing files: panda3d-1.4.2-1
error: File not found: /var/tmp/panda3d-1.4.2-1-buildroot/etc/Confauto.prc
error: File not found: /var/tmp/panda3d-1.4.2-1-buildroot/etc/Config.prc
error: File not found: /var/tmp/panda3d-1.4.2-1-buildroot/usr/share/panda3d
error: File not found: /var/tmp/panda3d-1.4.2-1-buildroot/etc/ld.so.conf.d/panda3d.conf
error: File not found: /var/tmp/panda3d-1.4.2-1-buildroot/usr/bin
error: File not found: /var/tmp/panda3d-1.4.2-1-buildroot/usr/lib
error: File not found: /var/tmp/panda3d-1.4.2-1-buildroot/usr/include/panda3d

RPM build errors:
File not found: /var/tmp/panda3d-1.4.2-1-buildroot/etc/Confauto.prc
File not found: /var/tmp/panda3d-1.4.2-1-buildroot/etc/Config.prc
File not found: /var/tmp/panda3d-1.4.2-1-buildroot/usr/share/panda3d
File not found: /var/tmp/panda3d-1.4.2-1-buildroot/etc/ld.so.conf.d/panda3d.conf
File not found: /var/tmp/panda3d-1.4.2-1-buildroot/usr/bin
File not found: /var/tmp/panda3d-1.4.2-1-buildroot/usr/lib
File not found: /var/tmp/panda3d-1.4.2-1-buildroot/usr/include/panda3d
Storing dependency cache.
Elapsed Time: 43 min 30 sec

You have already successfully build panda. You just didn’t build a DEB or RPM. But you don’t need that, technically. You can install it manually just by moving the files. See the instructions in doc/INSTALL-MK

ah ok I was wondeing as I wasn’t seeing any files in /usr/share

alrigh thx ill check

nl

well and the sage continues :wink:

I followed directions in install-mk and did the ld.so.conf stuff and bin path and all…still I get:

[neighborlee@localhost Sample-Programs–Roaming-Ralph] python Tut*.py Traceback (most recent call last): File "Tut-Roaming-Ralph.py", line 11, in <module> import direct.directbase.DirectStart ImportError: No module named direct.directbase.DirectStart [neighborlee@localhost Sample-Programs--Roaming-Ralph]

sorry for the hastles but I’d hoped at least to get a rpm built to help another mand* user but alas not even that works…I just get alolt of erros saying it can’t find Release and several other files of similar type you would see at TOP Of spec file.

cheers
nl

Ah, crap. Looks like the instructions in INSTALL-MK don’t work any more. It’s missing the part about creating a panda.pth file inside your python site-packages directory. That’s why python can’t find the “direct” code.

But as for why the RPM build process isn’t working - honestly, I don’t know. Building RPMs seems to be some sort of black art that I don’t quite get. Back in the day I managed to get it working, somehow, but it was mostly by trial and error.

This is weird, though:

rpmbuild --define ‘_rpmdir /home/neighborlee/panda3d-1.4.2’ etc etc…
Processing files: panda3d-1.4.2-1
error: File not found: /var/tmp/panda3d-1.4.2-1-buildroot/etc/Confauto.prc

Why the heck is it looking in /var/tmp? It says right on the command line to look in /home/neighborlee. I can’t explain that.

Sounds like something in rpmbuild. Perhaps it needs to run as root? Have you tried running makepanda as root to build an installer?

Okay I just manually created the /var/tmp pathing and the rpm built just fine…oddness but oh well

I verified it and it installs just fine into /usr/share and samples work fine.

Now to get file to you…

cheers
nl

It’s not so useful to send the file, since it will be invalidated as soon as I release the next version. Instead, I’d rather have the magic formula for how to build panda under mandriva. All the steps for obtaining the necessary packages and so forth.

Hi there Josh :wink:

Do you remember the time I built Panda3D at Mandriva? Anyway, the magic formula neighborlee used was right there in that post. I had uploaded an archive containing all the necessary packages for a succesful Panda3D build and uploaded it somewhere, and in exchange you would make an RPM and upload it. (though you probably forgot it, since you didn’t reply and at the next releases still no RPM appeared.)
Anyway, here’s the link to the archive again if you need it:
bin.pro-rsoft.com/Archive.tar.gz

OK, I have the archive of mandriva tools. These are for mandriva one 2008? If so, I’ll install that OS later today.

I also need a list of “special” steps needed, ie:

  • Create /var/tmp
  • Add “rpm-build” as an alias for “rpmbuild”
  • What else?

PS. I’m in the process of adding debian lenny, ubuntu gutsy, suse 10.3, and fedora 8 as well.

Also, I’m dropping support for ubuntu dapper, suse 10.1, and fedora 5.

OK, I’m running into the same problems with mandriva that I did last time: basically, it doesn’t seem to supply the software I need.

Step 1, to transfer an initial set of files into the virtual machine, I need smbclient. It doesn’t seem to be installed, and I can’t find it in the software installation utility either. What’s the trick?

Step 2. It seems to be missing ‘sudo,’ too. That’s kinda fundamental… what’s the deal?

Update: It turns out the only software listed in the installer is software that’s on the CD. If you want to access the repository, you have to dork around with the options menu in rpmdrake. I found the two packages above.

Oh yes, I forgot to include sudo indeed. Sorry about that. I don’t know about smbclient – I can’t recall I had to install that…
Indeed, the packaging system of Mandriva really sucks. And they don’t have much packages installed by default.
If you need more packages, I found an excellent site for RPM downloads: rpm.pbone.net/ it supplied all the RPM’s I needed.

Well, you probably wouldn’t need smbclient for your work. I only need it because it’s the easiest way I can transfer files into and out of my virtual machines. (The host machine is a windows box).

I got a long way toward successfully compiling panda3d on mandriva yesterday. I think I’m going to succeed this time.