How to Upload modified code in File Exchange

3 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.

Accepted Answer

Stephen23
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.
etc
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.
  2 Comments
Pasc Peli
Pasc Peli on 22 Aug 2016
Yes, I saw those two FAQs you mentioned and I thought that "use" doesn't mean modify and publish and . But the example you gave helped a lot, I was looking for something like this. If I may joke a little, I didn't like the disclaimer at the beginning one bit... Thank you for your reply.
Stephen23
Stephen23 on 24 Aug 2016
Edited: Stephen23 on 24 Aug 2016
@Pasc Peli: ultimately it depends only on the BSD license itself: that is why I told you to read the license. Does it prevent you from changing, copying, or distributing derivative code? No, it does not prevent you from doing these things. What does it require? It requires that the original license is attached to that derivative work.

Sign in to comment.

More Answers (2)

Pasc Peli
Pasc Peli on 19 Oct 2016
So I went and uploaded my files and on the last step ("publish") it asked me if I used code from other File Exchange projects. Once I entered the names of the projects it created a license including the licenses of these projects as well.
  1 Comment
Stephen23
Stephen23 on 4 Jan 2017
Edited: Stephen23 on 4 Jan 2017
This does not answer the original question, which was "if I can upload the modified code and what steps do I have to take".
The question does not ask what steps can be taken, just what ones have to be taken.
Of course there are plenty of things that you could do: you could write a poem to the original author, or send them a birthday card, or sing them a song, or list their submission when you upload yours to FEX. However none of these have any legal meaning. They are not things that you have to do. Do them if you wish to, by all means.
As my answer explains, any permissions are granted by the BSD license of the original code. As long as you fulfill the conditions of this license then you upload the code wherever you want to.
The fact that MATLAB provides a box for listing other FEX uploads that you have used makes absolutely no difference to what you are allowed to do. That box is a social nicety, but has absolutely no legal meaning (afaik). The BSD license certainly does not require listing the source submissions when you upload to FEX, but it does require including the original license when you distribute that code.
So your own answer does not even mention the steps that you have to do (include a copy of the license), yet it does mention steps that you do not have to do at all.

Sign in to comment.


John D'Errico
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.

Categories

Find more on Introduction to Installation and Licensing in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!