Add Explanation About Maintenance Of Extern Libraries
Open, NormalPublic


After having been rebuffed T48491 over a patch to a library in extern, it seems clear that information is sorely lacking about which parts of the Blender source tree are or are not off-limits for patch submissions.

The enclosed patch 0001-add-explanation-about-maintenance-of-extern-librarie.patch adds a README which tries to make clearer the status of the various subdirectories in extern. It lists which ones belong to the Blender Foundation, and refers the reader to external project sites for the rest, where I have been able to determine them: in some cases, I have not been able to do so, or the sites concerned no longer seem to exist.


  • curve_fit_nd is also a BF developed module, ported over from similar code found in the OpenToonz project.
  • glew - I thought this was at ?

OK, changes made.


And yes, I do consider this a bug.

Another question: is there code elsewhere which is also off-limits (e.g. intern/mikktspace)? If so, why isn’t it in extern?

@Bastien Montagne (mont29), the patch itself we can and should discuss here. Discussion about what's the policy for intern/ is probably most efficient to be done via IRC.

I don't really have strong opinion here. Two aspects here actually:

Having link to an upstream version of library with exact version and such is something we should have, but i'm not sure having it in a single file will work really good: some libraries are automatically updated, and the update script can update library's README. We can, however, have an aggregate extern/README with just a links to upstream, and still have extern/<lib>/README with all the details about upstream version used and such.

Other aspect is that i'm not really sue we have to put information to extern/README. That would be a bit ridiculous to document policy of each and every folder in the sources. This is something which is mainly belong to a wiki or so.

Quick answer for intern' question: all the code in there is maintained by Blender developers, i don't see what we can move to extern'. All the future details about what and why is in extern or intern better to be moved to IRC.

Note that we already have much of this info here:

A while back I updated this list and wrote a script that validates the wiki against the source (to avoid it getting stale).

Wouldn't mind having an extern/README, each lib can be listed.

[library-name] [url] [notes]

where notes can be reference to another readme with details... or what ever info is useful note to add.

Every piece of code in the Blender source tree needs to have a maintainer. What are you going to do about those libraries where upstream has gone away? Even though T48491 was closed on me, I still haven’t received an answer on where I am supposed to submit the patch instead.

It looks, according to T48499, like the code for GHOST is off-limits for patches as well...

Bastien replied there and GHOST is maintained by us.

See how important it to give clear explanation what and where you did in the descruption ;) Same applies to the patches here and commit messages.

Sergey Sharybin (sergey) triaged this task as "Normal" priority.May 24 2016, 11:49 AM

Don't think it's really handy to have just a one line per library. It's important to have exact version, possible local modifications and such.

Added such information for libraries which i'm bundling into Blender, see rB8f04a22, rB8f04a22.

I did try to point out that it wasn’t the same task. In the end, I could only interpret their insistence that it was “exactly the same task”, and to “stop reopening them and make noise in tracker”, to mean that “exactly the same grounds for rejection applied”.

Your additions look helpful, but I notice they avoid any mention of the orphaned ones. What do we do about those?

Update patch to omit those libraries which now have their own README.blender. extern-readme-20160525.patch

Just a note that having links to archived pages, as in the wiki page, is useless for anything other than historical trivial purposes. We need current contact information.

Sorry, didn’t intend to submit a diff against my previous patch. Here is a fresh patch that should apply directly against master branch: extern-readme-2016-0525b.patch

Added carve and eigen. Carve we'll be getting rid of soon tho.

The libraries that are maintained by the Blender Foundation is not really correct term. Some of those libraries are just happened to be written by same guys who works for BF, but copyright is not necessarily given to BF. Not even sure why to have that closure?

I didn’t say anything about “copyright”, I said “maintained”. Where are bug reports and patch submissions to go, if not to those acting on behalf of the Blender Foundation, i.e. here, to

Maintained is still not proper word. BF itself doesn't really maintain those, it is developers who maintains libraries. Sometimes they work for BF, sometimes they don't. Sometimes it's more that just BF developers who involved into the library. it's quite vague wording currently in there.

  • If you follow the bugs in some libraries can be submitted here art dev.b.o then what's the difference between cuew and clew ?
  • libopenjpeg has it's own README.blender now
  • ceres as well.

I did say “developers attached to the Blender Foundation”, did I not?

Patch updated extern-readme-20160527b.patch, but already I can see a problem with some of the upstreams, in that there is no bug/patch tracker.

There needs to be some kind of issue tracker available for all these libraries. If upstream does not provide them, then it must fall back to you.

Add Comment