I think the OSL license is pretty clear...here are a few examples:
All of your examples (with Roy’s clarifications) make perfect sense to me. I am less confused about IF changes need to be released under OSL, but WHO has to release those changes.
I’ll give you two specific examples that apply to my store.
Example 2.) I have copied the following core file:
And placed it here:
Then on line 44 I changed this code:
$headBlock->setTitle($title.' '.Mage::getStoreConfig('catalog/seo/title_separator').' '.Mage::getStoreConfig('system/store/name'));
To this code:
$headBlock->setTitle($title . (Mage::registry('current_category') ? ' '.Mage::getStoreConfig('catalog/seo/title_separator').' '.Mage::registry('current_category')->getName() : '') );
I believe there is another file that I’ve changed related to this, but that’s enough to illustrate my point. This code was not written by me, and it’s from this thread: http://www.magentocommerce.com/boards/viewthread/5442/P0/
According to the OSL license, this new code must be released because it is a derivative work of core code. But who is required to release it? I didn’t write that code, and to me creating an extension out of it and releasing it via Magento Connect under the OSL license is not my place and would be equivalent to taking credit for someone else’s work. But I am the one who made the changes by hand to my own store. Now since the modified code is in fact publicly available in that thread, does that satisfy the license? There is no mention near that code of it being released under the OSL license, so must those words be put near the code or is it just assumed that it’s been released under that license?
And one last question. Let’s say I do modify core files myself, and release those via Magento Connect under the OSL license. Is it possible for a competitor of mine to demand that I send all of my modified files to him, or can I tell them to go pound sand since I’ve already made the code public?