How to Upload modified code in File Exchange
2 views (last 30 days)
Hello, I have downloaded and modified code distributed by matlab's file exchange. The code was accompanied by the usual BSD license. My question is if I can upload the modified code and what steps do I have to take. I am aware of the FAQ http://www.mathworks.com/matlabcentral/FX_transition_faq.html but I believe it's a bit unclear on the procedure and I can't find a walkthrough. Thank you in advance for your help.
Stephen23 on 22 Aug 2016
Edited: Stephen23 on 5 Jan 2017
Disclaimer: I am not a lawyer, and this answer does not constitute legal advice.
You can submit your new version to MATLAB exchange, or distribute your code in any other way that you wish, as long as the original BSD license is distributed with it. I recommend that you read the BSD license itself. The page you linked to clearly states:
Do I have to ask an author's permission to use BSD-licensed code?
No. Permission to use the code is granted in the license.
Do I have to acknowledge the author of code I'm reusing?
No, but you do have to keep the original BSD license attached to the code and include it with any derivative work you create.
So this means that you can do whatever changes you want, and then post your (derivative) work on FEX, and all you have to do is to include the original license together with your distribution (note that FEX only supports BSD licensing). In practice many people simply add their own name and year (of modification) to the original BSD license, something like this:
Copyright (c) 1985, Anna Smith
Copyright (c) 2016, Pasc Peli
All rights reserved.
MATLAB FEX also provides a field where you can list other FEX submissions that you have included in your own submission, but while this might be a nice thing to do it is not required by the BSD license.
More Answers (2)
John D'Errico on 4 Jan 2017
Edited: John D'Errico on 4 Jan 2017
As an author of many heavily used tools on the FEX, I'll suggest that it is important to ask the author for their approval. (Note that this is only my own opinion, as an author.) Show what you did. Even then, issues can arise. Why do I say this?
You cannot simply update their code, on their submission, as only the author has permission to do so. So, the two options are:
1. To send your modified code to the original author, offering the improved version to them to repost, with thanks to you of course.
2. To post a modified version, under your own name, referencing your version. Explain CLEARLY what is different of course.
If they post your code as an improved version of their own code, then the author must now maintain it, and be able to treat it as if it is theirs. The problem is, most of the time that I see modifications to my code done by others, those mods are what I'd call hacks. I.e., poorly implemented versions that (probably) do what the modder wants, but are not up to the standards of code that I would write on my own. But if I post code with a mod in it, I will still need to maintain that code, as if it was my own code! So, before I'd post modded code, I'd need almost always to implement the fundamental idea of the mods done to the code so they were up to my own coding standards.
If you post a modified version, under your own name, but implying that your version is better, then it should indeed be better code. And you need to maintain it. Otherwise, you are doing a major disservice to the original author. I'd had people send me e-mail, asking for help on code of mine that they had modified, or been modified by someone else. The rule in free software MUST be that if you modify it, you bought it. Any problems at all in that code are now yours to own.