Blender package is incomplete

Hi all,

Blender 3D is missing the blenderplayer file, making it impossible to compile a game to runtime. It’s possible to make it partially functional by copying blenderplayer from blender.org to /usr/lib/blender/, but there will be some Python problems (some modules fail to import).
I know most people think of Blender as being mainly a modeling/animation tool, but recently it has also evolved into a complete platform for creating 3D games. Even more, the Blender Engine is currently used in a few commercial games. It would be a pity to not have this great tool working 100% under openSUSE.

Thanks

Look up the packager in the rpm info and politely email them. Perhaps they have a reason for leaving it out, but either way you’ll get a better response.

Or better still work out the differences in the src.rpm spec and email the patch.

At the end of the day it is all a community and we are part of it.

For me it’s a community at the start of the day as well, and i’m part of it all day and glad to be so…Start early and you can have that as well :wink:

Hi, FeatherMonkey. I would patch it myself if I had the knowledge, but I’m still working on it. Will mail the packager in the meantime.

We all help the best we can, but if we all help a little then a lot will get helped.

Some can patch, some help, some bug report, some just email packager maintainers, etc…

Wasn’t specifically talking patches though in my experience I find building rpm’s painful, so your not alone. Neither can I but developers and package maintainers love patches. Many times they are involved in multiple projects and many probably suffer with a lack of man hours.

I suggested a patch as you seemed to be close, by copying it. I suspect it is just a distro specific path to python and needs a compile flag. i.e expecting /opt but is in /usr.

This is great!

Can you tell me how I set a path during the compilation? Blender is not recognizing that I have the python.h library installed, and so it quits during the compile.

Thanks,
Aaron

aaronryan, I’ll mail the packager just as soon as I clear a few things on Blender’s forums.

I’ll tell you how to compile it, but there’s a tiny chance there might be some features missing.

First of all, install the following packages:

zypper install make gcc gcc-c++ python-devel libjpeg-devel libpng-devel zlib-devel openal-devel freealut-devel SDL-devel libtiff-devel OpenEXR-devel freetype2-devel

Then follow the official instructions starting with section “Downloading and Building”

BUT, before runing the final compile command

python scons/scons.py

open user-config.py and add these lines:

WITH_BF_GAMEENGINE = True
WITH_BF_PLAYER = True

So your user-config.py should now look like this:

BF_PYTHON_VERSION = "2.6"
BF_OPENAL_LIB = 'openal alut'
WITH_BF_GAMEENGINE = True
WITH_BF_PLAYER = True

That’s all there is. Post any errors here.

ok…things were going well until I received these error messages.

/home/aaron/blender-svn/build/linux2/lib/libextern_x264.a(dct.o): In function `x264_dct_init':
dct.c:(.text+0xee2): undefined reference to `x264_add16x16_idct8_altivec'
dct.c:(.text+0xee6): undefined reference to `x264_sub16x16_dct8_altivec'
dct.c:(.text+0xeea): undefined reference to `x264_add16x16_idct8_altivec'
dct.c:(.text+0xeee): undefined reference to `x264_sub16x16_dct8_altivec'
dct.c:(.text+0xefa): undefined reference to `x264_add8x8_idct8_altivec'
dct.c:(.text+0xefe): undefined reference to `x264_sub8x8_dct8_altivec'
dct.c:(.text+0xf02): undefined reference to `x264_add8x8_idct8_altivec'
dct.c:(.text+0xf06): undefined reference to `x264_sub8x8_dct8_altivec'
dct.c:(.text+0xf12): undefined reference to `x264_sub4x4_dct_altivec'
dct.c:(.text+0xf16): undefined reference to `x264_add4x4_idct_altivec'
dct.c:(.text+0xf1a): undefined reference to `x264_sub4x4_dct_altivec'
dct.c:(.text+0xf1e): undefined reference to `x264_add4x4_idct_altivec'
dct.c:(.text+0xf2a): undefined reference to `x264_sub8x8_dct_altivec'
dct.c:(.text+0xf2e): undefined reference to `x264_add8x8_idct_altivec'
dct.c:(.text+0xf32): undefined reference to `x264_sub8x8_dct_altivec'
dct.c:(.text+0xf36): undefined reference to `x264_add8x8_idct_altivec'
dct.c:(.text+0xf42): undefined reference to `x264_sub16x16_dct_altivec'
dct.c:(.text+0xf46): undefined reference to `x264_add16x16_idct_altivec'
dct.c:(.text+0xf4a): undefined reference to `x264_sub16x16_dct_altivec'
dct.c:(.text+0xf4e): undefined reference to `x264_add16x16_idct_altivec'
/home/aaron/blender-svn/build/linux2/lib/libextern_x264.a(dct.o): In function `x264_zigzag_init':
dct.c:(.text+0x2142): undefined reference to `x264_zigzag_scan_4x4_field_altivec'
dct.c:(.text+0x2146): undefined reference to `x264_zigzag_scan_4x4_field_altivec'
dct.c:(.text+0x219a): undefined reference to `x264_zigzag_scan_4x4_frame_altivec'
dct.c:(.text+0x219e): undefined reference to `x264_zigzag_scan_4x4_frame_altivec'
/home/aaron/blender-svn/build/linux2/lib/libextern_x264.a(mc.o): In function `x264_mc_init':
mc.c:(.text+0x1340): undefined reference to `x264_mc_altivec_init'
/home/aaron/blender-svn/build/linux2/lib/libextern_x264.a(pixel.o): In function `x264_pixel_init':
pixel.c:(.text+0x457c): undefined reference to `x264_pixel_altivec_init'
/home/aaron/blender-svn/build/linux2/lib/libextern_x264.a(quant.o): In function `x264_quant_init':
quant.c:(.text+0x1282): undefined reference to `x264_quant_2x2_dc_altivec'
quant.c:(.text+0x1286): undefined reference to `x264_quant_4x4_dc_altivec'
quant.c:(.text+0x128a): undefined reference to `x264_quant_2x2_dc_altivec'
quant.c:(.text+0x128e): undefined reference to `x264_quant_4x4_dc_altivec'
quant.c:(.text+0x129a): undefined reference to `x264_quant_4x4_altivec'
quant.c:(.text+0x129e): undefined reference to `x264_quant_8x8_altivec'
quant.c:(.text+0x12a2): undefined reference to `x264_quant_4x4_altivec'
quant.c:(.text+0x12a6): undefined reference to `x264_quant_8x8_altivec'
quant.c:(.text+0x12b2): undefined reference to `x264_dequant_4x4_altivec'
quant.c:(.text+0x12b6): undefined reference to `x264_dequant_8x8_altivec'
quant.c:(.text+0x12ba): undefined reference to `x264_dequant_4x4_altivec'
quant.c:(.text+0x12be): undefined reference to `x264_dequant_8x8_altivec'
/home/aaron/blender-svn/build/linux2/lib/libextern_x264.a(predict.o): In function `x264_predict_8x8c_init':
predict.c:(.text+0x2c9c): undefined reference to `x264_predict_8x8c_init_altivec'
/home/aaron/blender-svn/build/linux2/lib/libextern_x264.a(predict.o): In function `x264_predict_16x16_init':
predict.c:(.text+0x2d1c): undefined reference to `x264_predict_16x16_init_altivec'
/home/aaron/blender-svn/build/linux2/lib/libextern_x264.a(frame.o): In function `x264_deblock_init':
frame.c:(.text+0x96a): undefined reference to `x264_deblock_h_luma_altivec'
frame.c:(.text+0x96e): undefined reference to `x264_deblock_v_luma_altivec'
frame.c:(.text+0x972): undefined reference to `x264_deblock_h_luma_altivec'
frame.c:(.text+0x976): undefined reference to `x264_deblock_v_luma_altivec'
collect2: ld returned 1 exit status
scons: *** [/home/aaron/blender-svn/build/linux2/bin/blender] Error 1
scons: building terminated because of errors.

italics make it hard to read here it is again.

/home/aaron/blender-svn/build/linux2/lib/libextern_x264.a(dct.o): In function `x264_dct_init':
dct.c:(.text+0xee2): undefined reference to `x264_add16x16_idct8_altivec'
dct.c:(.text+0xee6): undefined reference to `x264_sub16x16_dct8_altivec'
dct.c:(.text+0xeea): undefined reference to `x264_add16x16_idct8_altivec'
dct.c:(.text+0xeee): undefined reference to `x264_sub16x16_dct8_altivec'
dct.c:(.text+0xefa): undefined reference to `x264_add8x8_idct8_altivec'
dct.c:(.text+0xefe): undefined reference to `x264_sub8x8_dct8_altivec'
dct.c:(.text+0xf02): undefined reference to `x264_add8x8_idct8_altivec'
dct.c:(.text+0xf06): undefined reference to `x264_sub8x8_dct8_altivec'
dct.c:(.text+0xf12): undefined reference to `x264_sub4x4_dct_altivec'
dct.c:(.text+0xf16): undefined reference to `x264_add4x4_idct_altivec'
dct.c:(.text+0xf1a): undefined reference to `x264_sub4x4_dct_altivec'
dct.c:(.text+0xf1e): undefined reference to `x264_add4x4_idct_altivec'
dct.c:(.text+0xf2a): undefined reference to `x264_sub8x8_dct_altivec'
dct.c:(.text+0xf2e): undefined reference to `x264_add8x8_idct_altivec'
dct.c:(.text+0xf32): undefined reference to `x264_sub8x8_dct_altivec'
dct.c:(.text+0xf36): undefined reference to `x264_add8x8_idct_altivec'
dct.c:(.text+0xf42): undefined reference to `x264_sub16x16_dct_altivec'
dct.c:(.text+0xf46): undefined reference to `x264_add16x16_idct_altivec'
dct.c:(.text+0xf4a): undefined reference to `x264_sub16x16_dct_altivec'
dct.c:(.text+0xf4e): undefined reference to `x264_add16x16_idct_altivec'
/home/aaron/blender-svn/build/linux2/lib/libextern_x264.a(dct.o): In function `x264_zigzag_init':
dct.c:(.text+0x2142): undefined reference to `x264_zigzag_scan_4x4_field_altivec'
dct.c:(.text+0x2146): undefined reference to `x264_zigzag_scan_4x4_field_altivec'
dct.c:(.text+0x219a): undefined reference to `x264_zigzag_scan_4x4_frame_altivec'
dct.c:(.text+0x219e): undefined reference to `x264_zigzag_scan_4x4_frame_altivec'
/home/aaron/blender-svn/build/linux2/lib/libextern_x264.a(mc.o): In function `x264_mc_init':
mc.c:(.text+0x1340): undefined reference to `x264_mc_altivec_init'
/home/aaron/blender-svn/build/linux2/lib/libextern_x264.a(pixel.o): In function `x264_pixel_init':
pixel.c:(.text+0x457c): undefined reference to `x264_pixel_altivec_init'
/home/aaron/blender-svn/build/linux2/lib/libextern_x264.a(quant.o): In function `x264_quant_init':
quant.c:(.text+0x1282): undefined reference to `x264_quant_2x2_dc_altivec'
quant.c:(.text+0x1286): undefined reference to `x264_quant_4x4_dc_altivec'
quant.c:(.text+0x128a): undefined reference to `x264_quant_2x2_dc_altivec'
quant.c:(.text+0x128e): undefined reference to `x264_quant_4x4_dc_altivec'
quant.c:(.text+0x129a): undefined reference to `x264_quant_4x4_altivec'
quant.c:(.text+0x129e): undefined reference to `x264_quant_8x8_altivec'
quant.c:(.text+0x12a2): undefined reference to `x264_quant_4x4_altivec'
quant.c:(.text+0x12a6): undefined reference to `x264_quant_8x8_altivec'
quant.c:(.text+0x12b2): undefined reference to `x264_dequant_4x4_altivec'
quant.c:(.text+0x12b6): undefined reference to `x264_dequant_8x8_altivec'
quant.c:(.text+0x12ba): undefined reference to `x264_dequant_4x4_altivec'
quant.c:(.text+0x12be): undefined reference to `x264_dequant_8x8_altivec'
/home/aaron/blender-svn/build/linux2/lib/libextern_x264.a(predict.o): In function `x264_predict_8x8c_init':
predict.c:(.text+0x2c9c): undefined reference to `x264_predict_8x8c_init_altivec'
/home/aaron/blender-svn/build/linux2/lib/libextern_x264.a(predict.o): In function `x264_predict_16x16_init':
predict.c:(.text+0x2d1c): undefined reference to `x264_predict_16x16_init_altivec'
/home/aaron/blender-svn/build/linux2/lib/libextern_x264.a(frame.o): In function `x264_deblock_init':
frame.c:(.text+0x96a): undefined reference to `x264_deblock_h_luma_altivec'
frame.c:(.text+0x96e): undefined reference to `x264_deblock_v_luma_altivec'
frame.c:(.text+0x972): undefined reference to `x264_deblock_h_luma_altivec'
frame.c:(.text+0x976): undefined reference to `x264_deblock_v_luma_altivec'
collect2: ld returned 1 exit status
scons: *** [/home/aaron/blender-svn/build/linux2/bin/blender] Error 1
scons: building terminated because of errors.

Some packages were missing, I’ll post the new instructions. You need to run zypper once again, update user-config.py and build it.

COMPILE INSTRUCTIONS

(1) Install the necessary packages:

zypper install make gcc gcc-c++ python-devel libjpeg-devel libpng-devel zlib-devel openal-devel freealut-devel SDL-devel libtiff-devel OpenEXR-devel freetype2-devel libogg-devel libtheora-devel libvorbis-devel yasm-devel gettext-tools ffmpeg libffmpeg-devel

(2) Follow the official instructions, starting with section “Downloading and Building”, but stop before running the final compile command python scons/scons.py

(3) Open user-config.py and complete it with these lines:

WITH_BF_GAMEENGINE = True
WITH_BF_PLAYER = True
WITH_BF_VERSE = True

WITH_BF_BULLET = True
WITH_BF_OPENEXR = True
WITH_BF_FTGL = True
WITH_BF_FFMPEG = True
WITH_BF_OPENAL = True
WITH_BF_SDL = True
WITH_BF_INTERNATIONAL = True
WITH_BF_YAFRAY = True
WITH_BF_JPEG = True
WITH_BF_PNG = True
WITH_BF_OPENEXR = True
WITH_BF_ZLIB = True
WITH_BF_ODE = False
WITH_BF_QUICKTIME = False

(Only the first 3 lines are a change over the default configuration; the rest is added for control)

(4) Build it:

python scons/scons.py

A new folder will be created blender-svn/install which contains the final build. You can delete the rest.

Don’t forget to tell me if it all worked well!

Oh yeah, and use the root user only to run zypper, not for the rest!

Thanks for that…I zyppered in the extra packages, but I’m still getting the same error message as above.

I am running openSUSE ppc64 11.1, not sure if that has anything to do with these errors.

I’m poking around the Blender Developer forums for answers also.

Best,
Aaron

Aaron, could you check in Yast’s Package Manager if x264 and libx264-devel are installed?

Yes…I have:

libx264-60
libx264-64
libx264-65
libx264-66
libx264-devel
x264
x264-debuginfo
x264-debugsource

These were all obtained through Packman, and installed using YaST, so when I added them to the zypper install command, the last time through they reported “already installed”.

Early in the compiling process I get alot of warnings concerning ffmpeg/libavcodec, but both of these are installed.

Is Blender looking in the wrong place for these files…or conversely, are they installed in the wrong place?

libx264-67 and libx264-devel are enough for me to finish the build. You could try fiddling with their versions, I remember that’s how I fixed a problem with another application. If you have Packman and VideoLan repos enabled, you should see 4 versions for each.

Another thing, I noticed it complains about not finding the git command when configuring libx264, so install that too.

Also, the svn repository was updated over this weekend to 248.3, it would be a good idea to make an update or a new download.

If all fails, then ask the devs for help at Blender.org :: View Forum - Coding Blender Maybe it really is something ppc related…

That may be the answer…I notice that for the x86 packages of x264, there is a version 67 (x264-67), but for the ppc there isn’t one.

How did you tweak the version in YaST or elsewhere?

Best,
Aaron

It’s in Yast’s Software Manager; here’s a screenshot.

repo_3 = Packman Repository
repo_4 = VideoLan Repository

The snapshot is on KDE 4 but there should be a similar functionality on other desktops.

Hi

I compiled Blender on openSUSE 11.1 i586

I used the current SVN and it has everything in it.

See link below for a download at GraphicAll.org

King regards,
Zebulon

Blender-2.48 SVN 19463 Py 2.6 - GraphicAll.org

Thanks so much for all of your help, clashcityrocker.

Off to the Blender Forum to bug the developers.

Best,
Aaron

Aaron, you’re welcomed! I’m pretty sure openSUSE’s packagers will have a working build soon. Also, since I never asked your original problem, I’ll like to point out that while the repo_oss version has the GE disabled completely, the one in repo_3 is missing only blenderplayer. Just in case…

Zebulon, I see your build it’s optimized for AMD. Wouldn’t this make it unstable on other processors?