How to Upload modified code in File Exchange

2 ビュー (過去 30 日間)
Pasc Peli
Pasc Peli 2016 年 8 月 20 日
編集済み: Stephen23 2017 年 1 月 5 日
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.
  1 件のコメント
Pasc Peli
Pasc Peli 2016 年 8 月 21 日
Maybe I have asked this Question in the wrong section?

サインインしてコメントする。

採用された回答

Stephen23
Stephen23 2016 年 8 月 22 日
編集済み: Stephen23 2017 年 1 月 5 日
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 件のコメント
Stephen23
Stephen23 2016 年 8 月 24 日
編集済み: Stephen23 2016 年 8 月 24 日
@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.

サインインしてコメントする。

その他の回答 (2 件)

Pasc Peli
Pasc Peli 2016 年 10 月 19 日
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 件のコメント
Stephen23
Stephen23 2017 年 1 月 4 日
編集済み: Stephen23 2017 年 1 月 4 日
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.

サインインしてコメントする。


John D'Errico
John D'Errico 2017 年 1 月 4 日
編集済み: John D'Errico 2017 年 1 月 4 日
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.

Community Treasure Hunt

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

Start Hunting!

Translated by