Estimated read time: 1 minutes
Sounds like an easy question, but I learned over the past few years that for software projects, the answer is typically not a yes or no question.
Technically — for example — Virtualbox OSE is considered opensource, even the OSE abbreviation suggests that it’s a stripped down version of the real codebase, that is kept as a secret. At first thought I wouldn’t even imagine it’s possible to contribute back a patch from someone not working on the original — closed — codebase, but of course I may be wrong in case of Virtualbox.
There is also the question of what is open. Only tarballs of releases, or also the SCM repo used for development? Think of Amazon’s custom kernels where the code is open, but it’s obviously only a code dump, one is not supposed to contribute to it, and the individual changesets are not public.
Finally, even if the software itself is developed in a truly free manner, some enterprise version (which is based on the free version) may not be publicly developed, e.g. only the resulting tarball is public. I’m happy to see that at $dayjob even this last detail is quite public, think of LibreOffice or the Linux kernel.