Bforartists: Increase Visibility of BforArtists in Software Repositories

Created on 3 Mar 2018  路  36Comments  路  Source: Bforartists/Bforartists

I love what BforArtists is doing - cleaning up the obtuse mess of a UI that Blender is/has. My only issue I have with BforArtists is that it isn't available in any repositories I can find. I would like to particularly request they be available for Ubuntu, Guix, Homebrew and Chocolatey.

I don't know what is involved in getting this to work but it would be helpful to have an option to install BforArtists via repository and not only via executable or manual compiling.

Promotion

Most helpful comment

Unfortunately, I do not yet have the skill to do such a thing. I'll add it to my listing of things to learn and get to it eventually.

I want to get it working with the Guix package manager which is compatible with many distros, and might be less of a nightmare.

All 36 comments

hi davidpgil,

Thanks for your suggestion. I would have nothing against this idea :)

It requires first and foremost somebody with the skills to build a static version on Linux. The one that you compile from the repository at your own Linux system, let's say Ubuntu, isn't portable to other Ubuntu systems. Some libraries must be build static, so that you can port the installation. Add to this that a arch build will not work at a Debian based Linux for example. Maintaining Linux binaries is a nightmare. I'm a Windows user. And haven't managed it at even Ubuntu. So when you have the skills, you are very welcome to create the required build(s) :)

The second step would be to get on the list of the different distributions. Also something that i have no idea about. And we would need somebody who takes care of all this. I have unfortunately just two hands, so also here, feel free to take the role :)

Kind regards

Reiner

Unfortunately, I do not yet have the skill to do such a thing. I'll add it to my listing of things to learn and get to it eventually.

I want to get it working with the Guix package manager which is compatible with many distros, and might be less of a nightmare.

No problem :)

On linux there are few (it's obvious that in linux world there can't be just one solution to problem) inter-distro packaging solutions:

In my opinion appimages looks easiest to make from all of them. There are many samples to learn from https://github.com/AppImage/AppImages/tree/master/recipes

I'm not a packager, I just wanted to leave 2 cents. Maybe I'll try to learn that same as my predecessor.

Thanks for the hints :)

The main problem still remains. We first need to manage to build with static dependencies, which is some kind of black magic, unfortunately. And i am lost with Linux anyways. I use Windows :)

need to manage to build with static dependencies

Why?

Providing an AppImage would have, among others, these advantages:

  • Applications packaged as an AppImage can run on many distributions (including Ubuntu, Fedora, openSUSE, CentOS, elementaryOS, Linux Mint, and others)
  • One app = one file = super simple for users: just download one AppImage file, make it executable, and run
  • No unpacking or installation necessary
  • No root needed
  • No system libraries changed
  • Works out of the box, no installation of runtimes needed
  • Optional desktop integration with appimaged
  • Optional binary delta updates, e.g., for continuous builds (only download the binary diff) using AppImageUpdate
  • Can optionally GPG2-sign your AppImages (inside the file)
  • Works on Live ISOs
  • Can use the same AppImages when dual-booting multiple distributions
  • Can be listed in the AppImageHub central directory of available AppImages
  • Can double as a self-extracting compressed archive with the --appimage-extract parameter

Here is an overview of projects that are already distributing upstream-provided, official AppImages.

If you have questions, AppImage developers are on #AppImage on irc.freenode.net.

Thanks for the hint :)

Do you have the time and the skills to create such an image? Every help is welcome ;)

Can you give me exact instructions how to build on Ubuntu 14.04? Then I should be able to send a pull request that would build the AppImage on Travis CI.

Yes, either use PPA:
sudo add-apt-repository ppa:jonathonf/python-3.6
Or build manually:

mkdir /tmp/py; cd /tmp/py
wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz
tar -xvf Python-3.6.3.tgz
cd Python-3.6.3
sudo ./configure --enable-optimizations
sudo make
sudo make install

The abvove method is the workaround to install Python 3.6 because Ubuntu 14 does not support Pyhton 3.6, which is required for Bforartists.

The method to compile Bforartists is the same than for Blender. Which can be found here: https://wiki.blender.org/wiki/Building_Blender/Linux/Ubuntu/CMake

Could someone plese give me the _exact_ commands, since the instructions talk a lot about build options and optional components. Please tell me how you would like the Bforartists that should go into the AppImage to be built.

Thank you very much.

These are the exact commands. And should give you an idea what's so complicated about the whole issue here. Since this is just the basic instruction. To make an AppImage things will even be more complicated ...

I would really love to help here, but there's a reason why i keep my fingers away from Linux ^^

"The method to compile Bforartists is the same than for Blender. Which can be found here: https://wiki.blender.org/wiki/Building_Blender/Linux/Ubuntu/CMake"
Well I tried to build it inside ubuntu 18.04/16.04 docker images using "easy" (automatic dependency install) approach but when it comes to blender bulding at startup it always returns this:

(pasted on pastebin because code section messed up new lines)
https://pastebin.com/9sLS6VjB

Maybe it just matter to manually install correct packages.

We'd also need it for 14.04 rather than 18.04 if we want the AppImage to run on more than just the very newest target systems.

Well I'm trying to build it on ubuntu 14.04 docker image. It fails like before using automatic cmake approach "Automatic CMake Setup" but manual way "Manual CMake Setup" seems to work, my CPU is hot now.

This is what i did:

  1. Downloaded v1.0 tar.gz from here https://github.com/Bforartists/Bforartists/releases
  2. Extracted and switched into it
  3. Added one ppa with more recent python add-apt-repository ppa:jonathonf/python-3.6. Probably install_deps.sh can build it itself.
  4. Installed newer version of python from ppa
  5. Removed package with deps that enables ppa, because it required python from repo, so install_deps.sh could not find that recent version
  6. apt-get build-dep -y blender
  7. install_deps.sh --skip-llvm (long compile time) --skip-opencollada (also quite long)
  8. "Few" minutes later... no errors, deps looks ok
  9. I purged old cmake version from repositories, installed new using first answer from here https://askubuntu.com/questions/952429/is-there-are-good-ppa-for-cmake-backports
  10. I used "Manual CMake Setup", bam no error like before and bforartist compile started

Compiled succefully. I copied from container into host (kubuntu 18.04) but throws error at startup
/bforartists: error while loading shared libraries: libpng12.so.0: cannot open shared object file: No such file or directory and shutdowns immediately. At least good start to work now on static linking/appimages.

This is what is needed by bforartist binary
https://pastebin.com/AZ9aT6Rq

Actually... the project is already building using Ubuntu trusty on Travis CI?
https://github.com/Bforartists/Bforartists/blob/master/.travis.yml

Can we get around without using the ubuntu-toolchain-r-test ppa and gcc-6 but using the gcc that comes with Ubuntu 14.04 by default?

I think this is a really good idea to make this project more universal across Linux. Just throwing in a reminder that 14.04 will reach end of life in about 9 months and I can't imagine too many people are even still on it. I'm not sure if that changes the work load at all, but just thought it might be worth mentioning in case it does :)

Well, it's not about the Ubuntu line of distributions but also about all other distributions from 2014, 2015,... I think these are still worth being supported for a while.

Started experimentation, first build running... takes a while. https://travis-ci.org/probonopd/Bforartists

Linux. I am so lost with it ^^

I googled for

/opt/lib/blosc/lib/libblosc.so: undefined reference to `__cpu_model'

(almost at end of log file)
https://stackoverflow.com/questions/38727800/ld-linker-error-cpu-model-hidden-symbol
https://github.com/tensorflow/tensorflow/issues/9593
https://github.com/nothings/stb/issues/280
Looks like a compiler problem, maybe try to compile it using same gcc as I did gcc4 (from trusty repos)

Let's see how the next build goes. Trial and error forever...

https://api.travis-ci.org/v3/job/401259836/log.txt
Looks like it succeed in building deps, and it almost built bforartist (75%). Pretty good.

The job exceeded the maximum time limit for jobs, and has been terminated.

So it didn't even error out, but Travis CI killed it because _it took too long_. Which makes me wonder... have the Travis CI builds ever succeeded?

https://github.com/Bforartists/Bforartists/commits/master

Do we really need to build our own libavcodec?

CMake Error at /usr/local/cmake-3.9.2/share/cmake-3.9/Modules/FindPackageHandleStandardArgs.cmake:137 (message): Could NOT find PythonLibsUnix (missing: PYTHON_LIBRARY PYTHON_LIBPATH PYTHON_INCLUDE_DIR PYTHON_INCLUDE_CONFIG_DIR)

Looks like few env var's needs to be set. Probably python3.6-dev need to be installed (from ppa).

https://wiki.blender.org/wiki/Building_Blender/Linux/Ubuntu/CMake#Static_Linking

Note: by default, Python is not static. To make it so, You'll have to edit PYTHON_LYBRARY to something like /usr/lib/libpython3.4m.a;/usr/lib/libexpat.a (exact paths depend on your OS).

I'm not expert with travis (far from it), but I'll try later to help.

I found one ppa with dev version of packages for most (or all) bforartist deps, so it maybe can seriously cut down build times
https://launchpad.net/~thomas-schiex/+archive/ubuntu/blender?field.series_filter=trusty
and also more recent ffmpeg from here https://launchpad.net/~jonathonf/+archive/ubuntu/ffmpeg-3
One bad thing is that their cmake is conflicting with trusty repos so it can't be installed from there.

I manually installed dev packages versions of bforartist/blender deps from this ppa

  • libopencolorio-dev (OpenColorIO) - this one was from trusty repos. install_deps.sh --show-deps prints that 1.0.9 would be downloaded and compiled, but in trusty repo there is 1.0.8
  • libopenexr-dev (OpenExr)
  • libopenimageio-dev (OpenImageIO)
  • libopenshadinglanguage-dev (OpenShadingLanguage)
  • libopensubdiv-dev (OpenSubdiv)
  • libopenvdb-dev (OpenVdb)
  • libopencollada-dev (OpenCollada)
  • rest were installed by install_deps.sh

I launched install_deps.sh --with-all --no-build --no-confirm. Now I'm trying to build it inside docker ubuntu 14.04 container. I had to manually set up few cmake param's to force build with osl, opensubdiv and etc. to match --with-all options. Probably libs were not detected before.

edit: Build was successful, without errors. I'll try with travis.

Okay, I'm trying to build Bforartists flatpak package based on this work https://github.com/flathub/org.blender.Blender. If it works for them, very probably it will work for bforartists (same dependencies). I changed branding, names etc. Repo is here https://github.com/tkaczz/org.bforartists.Bforartists, currently working in bforartist-1.0 branch.

Still not everyone is using flatpak's so AppImages/static builds are still needed.

@tkaczz did you succeed in building on Travis CI? I think once we get it to build, it's not that difficult to turn it into an AppImage (I can probably make that happen); but currently my build errors out.

I tried to use dev packages from that repo https://launchpad.net/%7Ethomas-schiex/+archive/ubuntu/blender, but there is probably problem with openexr at bforartists build time. Maybe better way would be:

  • gather all deps from certain src.rpm/src.deb
  • put it into packages section, except troublesome ones that later would be built
  • build bforartists with correct cmake params
  • and hope it works.

Unfortunately I don't have the time to do more trial-end-error on how to build Bforartists on Travis CI but I am happy to come back and help doing the AppImage once someone has succeeded compiling it.

Closing this one for now as ways too general. It's no defined single task that we could fulfill.

Different story was the very interesting discussion about compiling Bforartists at other platforms. But i think this thread has run its purpose. You can always reopen the discussion as a own issue. Or continue it at the Bforartists forum.

Thanks for trying folks :)

Was this page helpful?
0 / 5 - 0 ratings

Related issues

ReinerBforartists picture ReinerBforartists  路  8Comments

Draise14 picture Draise14  路  7Comments

Draise14 picture Draise14  路  5Comments

ReinerBforartists picture ReinerBforartists  路  6Comments

Draise14 picture Draise14  路  6Comments