Lets say programmer Ed has made program foo and the program is licensed under the GPL license. If Ed updates his program, is that now a derivative or modified work? What if John contributes to upstream, is that also now a modified work? Or is a program only a modified or derivative work if the original author had nothing to do with it? My confusion is where something is considered a modified or derivative work. Sometimes I want a binary for a certain platform to be under GPL and some platforms a more liberal license, but don't know if I can't relicense code I wrote because I previously licensed it under GPL.