Bforartists for PCLinuxOS

18 posts / 0 new
Last post
linuxdev's picture
Offline
Joined: 05/21/2018 - 11:23
Bforartists for PCLinuxOS

Greetings,

I'm using Blender occasionally (I'm not a 3D designer but I do need to edit some 3D models, sometimes) and always pestered against its totally retard UI. I then discovered Bforartists and breathed out a sigh of relief: great job on the UI, guys, it's at least (and at last) manageable ! Biggrin

So I compiled Bforartists v1.0.0 for PCLinuxOS which is the Linux distro I am currently using, and the RPM packages for it are available here.

The feature table is as follow:

Blender Configuration
=====================
 
  Build Options:
  - WITH_GAMEENGINE             ON
  - WITH_PLAYER                 OFF
  - WITH_BULLET                 ON
  - WITH_IK_SOLVER              ON
  - WITH_IK_ITASC               ON
  - WITH_OPENCOLLADA            ON
  - WITH_FFTW3                  ON
  - WITH_INTERNATIONAL          OFF
  - WITH_INPUT_NDOF             ON
  - WITH_CYCLES                 OFF
  - WITH_FREESTYLE              ON
  - WITH_OPENCOLORIO            OFF
  - WITH_OPENVDB                OFF
  - WITH_ALEMBIC                OFF
 
  Compiler Options:
  - WITH_BUILDINFO              ON
  - WITH_OPENMP                 ON
  - WITH_RAYOPTIMIZATION        ON
 
  System Options:
  - WITH_INSTALL_PORTABLE       ON
  - WITH_X11_ALPHA              ON
  - WITH_X11_XF86VMODE          ON
  - WITH_X11_XFIXES             ON
  - WITH_X11_XINPUT             ON
  - WITH_MEM_JEMALLOC           OFF
  - WITH_MEM_VALGRIND           OFF
  - WITH_SYSTEM_GLEW            OFF
  - WITH_SYSTEM_OPENJPEG        OFF
 
  Image Formats:
  - WITH_OPENIMAGEIO            OFF
  - WITH_IMAGE_CINEON           ON
  - WITH_IMAGE_DDS              ON
  - WITH_IMAGE_HDR              ON
  - WITH_IMAGE_OPENEXR          ON
  - WITH_IMAGE_OPENJPEG         ON
  - WITH_IMAGE_TIFF             ON
 
  Audio:
  - WITH_OPENAL                 ON
  - WITH_SDL                    OFF
  - WITH_SDL_DYNLOAD            OFF
  - WITH_JACK                   OFF
  - WITH_JACK_DYNLOAD           OFF
  - WITH_CODEC_AVI              ON
  - WITH_CODEC_FFMPEG           ON
  - WITH_CODEC_SNDFILE          ON
 
  Compression:
  - WITH_LZMA                   ON
  - WITH_LZO                    ON
 
  Python:
  - WITH_PYTHON_INSTALL         ON
  - WITH_PYTHON_INSTALL_NUMPY   ON
  - WITH_PYTHON_MODULE          OFF
  - WITH_PYTHON_SAFETY          OFF
 
  Modifiers:
  - WITH_MOD_REMESH             ON
  - WITH_MOD_FLUID              ON
  - WITH_MOD_OCEANSIM           OFF
 
  OpenGL:
  - WITH_GLEW_ES                OFF
  - WITH_GLU                    ON
  - WITH_GL_EGL                 OFF
  - WITH_GL_PROFILE_COMPAT      ON
  - WITH_GL_PROFILE_CORE        OFF
  - WITH_GL_PROFILE_ES20        OFF

Note that the internationalization support fails to compile while it did compile fine in bforartists v0.9.7 ("syntax error" message when 'make' tries to turn the .po files into .mo files, while they do compile fine by hand with 'msgfmt': I suspect that 'make' tries to use something else than 'msgfmt' to compile them, due to a bug in the cmake files), but since I did not have time to investigate (and do not really care about menu languages: the native English is usually better anyway, due to translations "fuzziness"), I had to turn WITH_INTERNATIONAL off.
The RPMS source file also contains a couple of patches of mine to allow the compilation and use of OpenCollada (tested and working) and PCLinuxOS' FFMeg v4.0 (the latter is untested however: I do not produce movies with Bforartists).

up
1 user likes this.
Reiner's picture
administrator, developer
Offline
Joined: 07/25/2015 - 08:59
Thanks

Thanks Smile

And thanks for the rpm file. Great effort. I have unfortunately close to zero knowledge about Linux. I have just a Ubuntu in a VM here. And Ubuntu and Debian can't deal with rpm. So i can't check.

Now for the bad thing. I noticed in your list above that some vital things are missing in your build. Jack, Player. And lots of other things. The most important one is Cycles. That's the renderer. This one you should definitely not leave away. No wonder the rmp file is so small Smile

To check what options should be on for a release version go to build_files\cmake\config\ and open the blender_release.cmake file in a text editor. Here you can read the points that should be activated. There must also be a way to use this file directly to feed Cmake with. But i have never found out how. Most probably a linux thing ...

I was told that "with international" also makes trouble with Blender at Linux. Windows works fine. So it seems that for now we simply have to live with it.

Kind regards

Reiner

EDIT says, "With international" works under Linux. Somebody was so kind to test it. I have no idea why it fails at your os I-m so happy

up
0 users likes this.

Free gamegraphics, Freeware Games http://www.reinerstilesets.de

linuxdev's picture
Offline
Joined: 05/21/2018 - 11:23
Here is release #2

Well, as I wrote, I'm only using blender/bforartists occasionally, and it worked fine for me that way Blum 3

Also, Blender's build system is just as messy as Blender's UI, lol ! Why the Hell don't they setup the *default* build options to the release ones ??? Plus lot's off stuff that does not get enabled is not listed as being OFF in the options output at the build stage, making missing things hard to spot.

Thanks for your pointer to the blender_release.cmake file: I could add the missing defines based on it.

Anyway... I produced a second release, this time with a lot more stuff enabled, and I found a way to work around the msgfmt bug in the cmake file that caused a failure to build the internationalized *.mo files (I patched the cmake file to just use the *.mo files that I produce in the *.spec file script before the build stage). I also had to create the Alembic library rpm packages since PCLinuxOS did not have them.

Here is the new feature table for the new release:

Blender Configuration
=====================
 
  Build Options:
  - WITH_GAMEENGINE             ON
  - WITH_PLAYER                 ON
  - WITH_BULLET                 ON
  - WITH_IK_SOLVER              ON
  - WITH_IK_ITASC               ON
  - WITH_OPENCOLLADA            ON
  - WITH_FFTW3                  ON
  - WITH_INTERNATIONAL          ON
  - WITH_INPUT_NDOF             ON
  - WITH_CYCLES                 ON
  - WITH_FREESTYLE              ON
  - WITH_OPENCOLORIO            ON
  - WITH_OPENVDB                OFF
  - WITH_ALEMBIC                ON
 
  Compiler Options:
  - WITH_BUILDINFO              ON
  - WITH_OPENMP                 ON
  - WITH_RAYOPTIMIZATION        ON
 
  System Options:
  - WITH_INSTALL_PORTABLE       ON
  - WITH_X11_ALPHA              ON
  - WITH_X11_XF86VMODE          ON
  - WITH_X11_XFIXES             ON
  - WITH_X11_XINPUT             ON
  - WITH_MEM_JEMALLOC           OFF
  - WITH_MEM_VALGRIND           OFF
  - WITH_SYSTEM_GLEW            ON
  - WITH_SYSTEM_OPENJPEG        OFF
 
  Image Formats:
  - WITH_OPENIMAGEIO            ON
  - WITH_IMAGE_CINEON           ON
  - WITH_IMAGE_DDS              ON
  - WITH_IMAGE_HDR              ON
  - WITH_IMAGE_OPENEXR          ON
  - WITH_IMAGE_OPENJPEG         ON
  - WITH_IMAGE_TIFF             ON
 
  Audio:
  - WITH_OPENAL                 ON
  - WITH_SDL                    ON
  - WITH_SDL_DYNLOAD            ON
  - WITH_JACK                   ON
  - WITH_JACK_DYNLOAD           ON
  - WITH_CODEC_AVI              ON
  - WITH_CODEC_FFMPEG           ON
  - WITH_CODEC_SNDFILE          ON
 
  Compression:
  - WITH_LZMA                   ON
  - WITH_LZO                    ON
 
  Python:
  - WITH_PYTHON_INSTALL         ON
  - WITH_PYTHON_INSTALL_NUMPY   ON
  - WITH_PYTHON_MODULE          OFF
  - WITH_PYTHON_SAFETY          OFF
 
  Modifiers:
  - WITH_MOD_REMESH             ON
  - WITH_MOD_FLUID              ON
  - WITH_MOD_OCEANSIM           ON
 
  OpenGL:
  - WITH_GLEW_ES                OFF
  - WITH_GLU                    ON
  - WITH_GL_EGL                 OFF
  - WITH_GL_PROFILE_COMPAT      ON
  - WITH_GL_PROFILE_CORE        OFF
  - WITH_GL_PROFILE_ES20        OFF

Note that jemalloc is disabled on purpose (useless for such programs: the glibc malloc() performs just as good).
Also, I tried WITH_GL_PROFILE_CORE=ON but it causes the program to crash with a "trap divide error", not sure why...

There are still a few things missing (in excess of OpenVDB):

-- Could NOT find OSL (missing: _osl_LIBRARIES OSL_INCLUDE_DIR OSL_COMPILER) 
-- OSL not found, disabling it from Cycles
 
-- Could NOT find OpenSubdiv (missing: _opensubdiv_LIBRARIES OPENSUBDIV_INCLUDE_DIR) 
-- OpenSubdiv not found
 
CUDA_TOOLKIT_ROOT_DIR not found or specified
-- Could NOT find CUDA (missing: CUDA_TOOLKIT_ROOT_DIR CUDA_NVCC_EXECUTABLE CUDA_INCLUDE_DIRS CUDA_CUDART_LIBRARY) 
-- CUDA compiler not found, disabling WITH_CYCLES_CUDA_BINARIES

But well, I think it's a decent release already (certainly more than what I personally need).

up
0 users likes this.
Reiner's picture
administrator, developer
Offline
Joined: 07/25/2015 - 08:59
That's better. Linux

That's better. Linux Bforartists users will love you for this :)

Also, Blender's build system is just as messy as Blender's UI, lol !

Hehe, yes, it's under the hood as messy as at the surface. Just curious, do you even have Cuda installed? That could explain the error. And for the libraries, have you downloaded the libs from Blender?

The different build options makes sense. For development you want a fast compiling. For the release version you want all the bells and whistles.

up
0 users likes this.

Free gamegraphics, Freeware Games http://www.reinerstilesets.de

linuxdev's picture
Offline
Joined: 05/21/2018 - 11:23
Hehe, yes, it's under the

Hehe, yes, it's under the hood as messy as at the surface.
.../...
The different build options makes sense. For development you want a fast compiling. For the release version you want all the bells and whistles.

I beg to differ: first of all, while developing such a large software, you do not recompile everything every time you change a source file: 'make' will sort out what needs to be recompiled based on the file(s) you changed, so using a smaller set of features does not lower (or only very marginally) the recompile time anyway. Second, you'd better make sure that your changes won't impact negatively release builds, so you do want to test your changes on a release feature set each time.
I confirm: definitely a messy build system ! Blum 3

Just curious, do you even have Cuda installed?

Got only the runtime libraries (the proprietary ones, straight from NVIDIA's drivers download site). The build message about missing CUDA was therefore not much of a surprise to me, and I would need to install the (huge: over 1Gb) CUDA devel toolkit from NVIDIA (no such package in PCLinuxOS repository either).

up
0 users likes this.
Reiner's picture
administrator, developer
Offline
Joined: 07/25/2015 - 08:59
The build message about

The build message about missing CUDA was therefore not much of a surprise to me, and I would need to install the (huge: over 1Gb) CUDA devel toolkit from NVIDIA (no such package in PCLinuxOS repository either).

Riddle solved. No Cuda. Since you need of course the dev kit to build it with Cuda ^^ 

up
0 users likes this.

Free gamegraphics, Freeware Games http://www.reinerstilesets.de

MoxFulder's picture
administrator, developer
Offline
Joined: 07/25/2015 - 09:02
Have you called build_files

Have you called build_files/build_environment/install_deps.sh previously to build BFA? This script would install OSL and OSD and contains rpm install routines. 

 

CUDA_TOOLKIT_ROOT_DIR not found or specified

Doesn't indicate anything, on my arch and deb systems that's also always undefined while the library-paths are correct. But would be interesting if there is Cuda included Wink

I'm btw currently in the process o f making Arch AUR packages and *.deb packages for Debian based systems, but a *.rpm package would of course be very nice.

up
0 users likes this.
linuxdev's picture
Offline
Joined: 05/21/2018 - 11:23
Have you called build_files

Have you called build_files/build_environment/install_deps.sh previously to build BFA? This script would install OSL and OSD and contains rpm install routines.

It is not designed for Mandrake/Mandriva forks such as PCLinuxOS (or Mageia, OpenMandriva, Rosa, etc), so it plain does not work.
Funnily enough, it also got DOS (CR/LF) line endings, so it cannot be run "as is" under Linux (bash hates CRs) and needs to be first converted into LF-line-ending file... Did someone (rather overzealous) convert that file to a DOS file ? Biggrin

The only proper way to add the missing features is to create packages for the missing libraries (like I did for Alembic) or to compile and use static versions of the libraries during the bforartists package building (like I do for OpenCOLLADA, because PCLinuxOS does not provide a *static* library for it, which blender needs).

Time permitting, I may create the missing OpenVDB, OSL and OSD packages (but they depend on yet other missing packages, thus why I skipped them for now).

up
0 users likes this.
MoxFulder's picture
administrator, developer
Offline
Joined: 07/25/2015 - 09:02
It is not designed for

It is not designed for Mandrake/Mandriva forks such as PCLinuxOS (or Mageia, OpenMandriva, Rosa, etc), so it plain does not work.
Funnily enough, it also got DOS (CR/LF) line endings, so it cannot be run "as is" under Linux (bash hates CRs) and needs to be first converted into LF-line-ending file... Did someone (rather overzealous) convert that file to a DOS file ? Biggrin

Interesting, my system does not complain about CR/LF endings. 

The only proper way to add the missing features is to create packages for the missing libraries (like I did for Alembic) or to compile and use static versions of the libraries during the bforartists package building (like I do for OpenCOLLADA, because PCLinuxOS does not provide a *static* library for it, which blender needs).

Oh yeah, I know that problems. Maybe one can introduce submodules again, containing all needed third party libraries in an extra directory. I know, will need lots of memory and time for compilation, but that could be made as an extra toolchain file for cmake for static compilation,packaging and deployment. I could take a look into that in the next days.

up
0 users likes this.
linuxdev's picture
Offline
Joined: 05/21/2018 - 11:23
Release #3

I just uploaded release #3, with OpenVDB support.

up
0 users likes this.
Reiner's picture
administrator, developer
Offline
Joined: 07/25/2015 - 08:59
Thanks for your effort

Thanks for your effort Smile

I could upload and link it here in the download section if you want Smile

up
0 users likes this.

Free gamegraphics, Freeware Games http://www.reinerstilesets.de

linuxdev's picture
Offline
Joined: 05/21/2018 - 11:23
Release #4

I just uploaded release #4, with OpenSubdiv and Open Shading Language support (and packages). Smile
Apart from CUDA support, everything is now implemented.

I could upload and link it here in the download section if you want

Your best bet would be to simply link to http://linux.developer.free.fr/#bforartists since this is not a monolithic package (its bforartists binary is not fully statically linked but uses the system dynamic libraries) and therefore requires ancillary packages (Alembic, Blosc OpenVDB, OSD, OSL) that are not part of PCLinuxOS official repositories, but are provided on my site (the latter being usable as a rpm auxiliary repository for PCLinuxOS).

Also, please keep in mind that this release was largely untested: it does what I need from it (and much more), but I did not perform an exhaustive testing of all of its features and it could just as well blow in your face when using some specific feature... It should be considered beta software.

At least, it got the merit to provide a recipe for other RPM-based distros packagers: the .spec files of the various packages could be reused (with only minor alterations, such as the package names in the BuildRequires and Requires dependencies) for RedHat/Fedora, (Open)Suse, and of course all Mandrake forks.

up
0 users likes this.
Reiner's picture
administrator, developer
Offline
Joined: 07/25/2015 - 08:59
Okay, then i'll put a link to

Okay, then i'll put a link to your page into the downloads section Smile

up
0 users likes this.

Free gamegraphics, Freeware Games http://www.reinerstilesets.de

linuxdev's picture
Offline
Joined: 05/21/2018 - 11:23
Thanks !

Thanks !

However, you made a slight mistake in the description;
"There is a deb package for Version 1.0.0 available here"

It's, of course, a *rpm* package. Biggrin

I also tested my build of Bforartiss (v1.0.0) against Blender's (v2.79) and rendered the "Blendman" scene (as available on Blender's demo files site): my build is almost 50% faster (both builds ran in the exact same conditions, with no other software running). Here are screen-shots (with the time to render shown): Bforastists, Blender.

The optimization options I used in gcc did really make a difference...

up
0 users likes this.
Reiner's picture
administrator, developer
Offline
Joined: 07/25/2015 - 08:59
Yikes!

Yikes!

Thanks for reporting. Will change it Smile

up
0 users likes this.

Free gamegraphics, Freeware Games http://www.reinerstilesets.de

Blenux's picture
Offline
Joined: 05/20/2018 - 17:35
Awesome work guys, I was

Awesome work guys, I was trying to build the linux version also since I notice there wasn't any linux maintainer no more, but I haven't compiled a program before and was getting errors, any chance you could teach me linuxdev via Discord or similar?

up
0 users likes this.
Reiner's picture
administrator, developer
Offline
Joined: 07/25/2015 - 08:59
Not at my end, sorry. I am

Not at my end, sorry. Hardcore Windows user here. I am happy when i can start my Ubuntu I-m so happy

But maybe you can tell us the error that you get Smile

up
0 users likes this.

Free gamegraphics, Freeware Games http://www.reinerstilesets.de

Blenux's picture
Offline
Joined: 05/20/2018 - 17:35
Issues with Open Shading but

Issues with Open Shading but I am a very very noob when compilign something in Linux, something I wouldn't mind learning though.....

up
0 users likes this.
Log in or register to post comments