Do open source licences cover the Ship of Theseus?

(shkspr.mobi)

146 points | by edent 314 days ago

30 comments

  • caseysoftware 313 days ago
    I did something similar to this years ago. I forked a GPL'd project that had been BSD prior to that and wanted to flip it back to BSD. I contacted the people who had contributed since the license change and got most of them to agree to a relicense but was left with ~900 lines of code that wasn't going to change. I worked with an IP attorney and came up with a strategy that worked in my case (but don't blindly apply it to yours):

    - I wrote unit tests for every single one of those functions to confirm/validate the behavior.

    - Then I deleted all 900 lines of code and committed it.

    - Then I wrote code to make the unit tests pass again.

    It was painful but that kept it tightly scoped and I could "prove" the behavior hadn't changed AND that I didn't use the original code.

    There's an argument that the unit tests could be a "derivative work" but they were not part of the original system, did not change or add functionality to the system, and did not impact its performance so we discounted that concern.

    The more pressing was that - as an open source project - and the guy doing the audit, I had reviewed the GPL implementation and had access to it at any time. What helped me there is that I made a point of using more modern language constructs and patterns which improved the performance of those functions by 30-90% and I resolved a number of buggy edge cases and other problems so it was clearly "substantially different" in implementation.

    This was never tested in a lawsuit and do NOT take the above as a definitive solution.

    • dtech 313 days ago
      Interesting, this does sound a bit like clean-room reverse engineering which is a tried-and-true method for reproduction without breaking copyright, but you having access to and having reviewed the GPL implementation would break that mold.
      • klyrs 313 days ago
        From the wikipedia clean room page:

        > Typically, a clean-room design is done by having someone examine the system to be reimplemented and having this person write a specification. This specification is then reviewed by a lawyer to ensure that no copyrighted material is included. The specification is then implemented by a team with no connection to the original examiners.

        Without the disconnection between examiners and implementers, it's only slightly similar to a clean room. And we have new case law to consider: an API may be subject to copyright, and those unit tests are highly suspect under that lens.

      • doctorpangloss 313 days ago
        > Interesting, this does sound a bit like clean-room reverse engineering which is a tried-and-true method for reproduction without breaking copyright

        To me, it seems obvious that if the developer read the code that's getting replaced and reproduced its behavior to the T, by reading it and running it many times... that's the opposite of a clean room implementation. What do you think a dirty room implementation is then?

        I'm not saying you are right or wrong, I'm not an IP attorney and I think IP is really boring. I can see how if a developer at a giant company rewrites open source X in Swift, C# or Golang in order to exploit it commercially, there could be a cathedral of opinions that would support, "Okay, this is what is meant by clean room." In the same way that BigCo developers work with their attorneys to file patents for ideas they saw elsewhere and didn't invent all the time. It's one of many possible beliefs about IP, and it can even thrive in reality, but it doesn't mean it is a correct one.

        • zugi 312 days ago
          My understanding is that the clean room approach is tried and true and sufficient to avoid copyright infringement. So BigCo and other organizations that worry greatly about liability insist on it.

          However I'm unaware of case law indicating that it's strictly necessary. If the final implementation differs enough from the original, no copyright infringement occurs and no one is going to sue anyone, so the steps taken to arrive at the new version are less relevant.

      • dspillett 313 days ago
        It is very similar in spirit to how mp3 patents were worked around back on the late 90s / early 00s.

        Of course copyright and patents are different beasts, so this similarity is probably legally insignificant.

      • emodendroket 313 days ago
        Yeah, adding another engineer to the process would probably make it "cleaner" if you thought the other party was motivated to want to sue you.
      • maxloh 313 days ago
        It is very similar to what Google did for Java SE libraries too.
    • Y_Y 313 days ago
      That sounds like something I could get an LLM to do. And then of course I can do it iteratively until all the code has been laundered. Maybe that's how Microsoft can justify training on all the GitHub data.
      • jcranmer 313 days ago
        IANAL, but my understanding of copyright law jurisprudence is that using an LLM to automate the process is going to substantially increase the likelihood that you will be found to be infringing.
        • foota 313 days ago
          I think, but I'm not sure, that they mean to write the tests, and then they'd be able to fix the implementation blindly?
          • pjmlp 313 days ago
            Except the detail about what licenses were used for the learning model.

            It remains to be tested in court.

            • DowsingSpoon 313 days ago
              It’s entirely possible that the model and all of its outputs will be determined to be derivative works of the training inputs. If that happens then, oh boy, not good things for anyone using it, I’m sure.
    • earhart 313 days ago
      Just curious - what was your motivation?
    • plonk 313 days ago
      Could you maybe have deleted the unit tests and written new ones based on the new code to be safe? After all you know that the new behavior is good.
    • maxloh 313 days ago
      What is the project you worked on?
    • goodpoint 313 days ago
      You are not breaching the GPL in the letter but you surely broke it in the spirit.
      • Thiez 312 days ago
        How?
        • goodpoint 312 days ago
          The point of GPL is to allow end users to benefit from open source, instead of getting closed software or hardware.

          In this case caseysoftware clearly benefits from the GPL code that gets replaced. End users get no guarantees.

  • trhr 313 days ago
    I once got fired over a single line of PHP that they "traced back to" whatever came before stackexchange. This was in the before-times when people didn't rip things off the internet all day long. Companies were really worried about intellectual property when they needed to reduce headcount.

    I don't even remember what the line of code did. I remember it was something absolutely trivial and common though, like trimming the first and last character off a string, then splitting it on a delimiter. They called it "specialized functionality" that "matched character for character with copyrighted code." I called it "overreacting to two good developers both typing the same exact 30 characters in a row."

    • parpfish 313 days ago
      That’s nuts.

      Sometimes if I find a weird hack solution on S/O, I’ll add a comment that permalinks to the thread that fixed it in order to prevent a Chestertons fence problem. Maybe I should stop doing that?

      • lionkor 313 days ago
        SO content is public domain, so not usually a problem

        Edit: I stand corrected, its not public domain.

        • shagie 313 days ago
          SO content is NOT public domain. It is CC BY-SA (some version).

          This requires attribution.

          > Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.

          Additionally, the province of code on Stack Overflow is not always clean. It is quite possible to find code on SO that was originally under a GPL license without the necessary "this is GPL code" (and really shouldn't be on SO because of license laundering in the first place).

          • parpfish 313 days ago
            what if it's not code per se but more like "if you see this error, make sure to use this flag/change the value of this parameter"?
            • shagie 313 days ago
              If you copy those exact words, that's copyrighted and under a CC license.

              If you follow the instructions, you're completely fine since how you do that is up to you.

              This is covered under the idea–expression dichotomy ( https://en.wikipedia.org/wiki/Idea–expression_distinction ).

              It is the expression of an idea - not the idea itself - that is copyrightable.

              I can paint a picture of a red house on a wooded hillside with a snow capped mountain in the background. My painting is copyrighted. You can paint the same thing based on the the same description. I can't copyright the idea of the red house on a wooded hillside with a snow capped mountain in the background (I can copyright the text, but that text likely lacks sufficient originality).

              Likewise, I can't copyright the idea of how to fix a problem. I can copyright some particular code that fixes that problem. I can copyright the text that describes how to fix the problem - but I can't copyright the idea. Creative Commons, GPL, and the rest of the FOSS licenses all deal with copyrights - not ideas.

              If you do want to protect an idea, that is in the domain of a patent. "This particular arrangement of latches and levers solves the problem of how to open the back of a truck with minimal force" - that idea of the arrangement of latches and levers is patentable.

          • maxloh 312 days ago
            I once heard that some one liners in SO are not enough to be copyrightable.

            Is that correct?

            • shagie 312 days ago
              That is based on the question "do they meat the threshold of originality?" https://en.wikipedia.org/wiki/Threshold_of_originality

              > The threshold of originality is a concept in copyright law that is used to assess whether a particular work can be copyrighted. It is used to distinguish works that are sufficiently original to warrant copyright protection from those that are not. In this context, "originality" refers to "coming from someone as the originator/author" (insofar as it somehow reflects the author's personality), rather than "never having occurred or existed before" (which would amount to the protection of something new, as in patent protection).

              This most often comes into play with graphics works, but is applicable to anything that may be copyrighted.

              There are one liners are not sufficiently creative in their creation to warrant copy protection. However, note that this is a very low bar.

          • lionkor 313 days ago
            Oh, okay, sorry - my mistake. I have yet to use SO code anywhere, only been doing this for a few years, so I havent looked into it more.
          • pwdisswordfishc 313 days ago
            Worst of all, Stack Overflow code may also come from a country which isn’t even divided into provinces.
    • klyrs 313 days ago
      This is why I always put my name and my employer's name in every function/variable name.

      (heavy sarcasm)

  • jrochkind1 313 days ago
    Legally in the US it's a question of whether copyright was violated or not when you copy a tiny bit.

    I'm not a lawyer but I feel confident in saying that you can copy a background color without a license, because a background color alone is definitely not copyrightable.

    But in the grey area... it's a grey area. There is lots of case law we could look at, but ultimately it depends on what a judge or jury would think if anyone took you to court. And sometimes they do surprising things.

    Which is why for well-resourced commercial operations (that have more to lose and more to gain), they don't take the risk. In this case... is anyone going to even notice or get mad if they notice you took 40% of a free HTML template for some random not-million-dollar website? Probabably not? If they do, then saying sorry and adding the attribution will probably suffice?

    That's the legal situation. I think it is reasonable to ask an ethical question separated from legality, which is a different question. Sometimes I ask the authors of open-source-licensed things what they would think about my use.

    • brookst 313 days ago
      Colors are not copyrightable, but they can be protected by trademarks: https://www.businessinsider.com/colors-that-are-trademarked-...
      • jrochkind1 313 days ago
        True. As the article you linked to explains, a trademark on a color would prevent you from using the color(s) in ways that compete or confuse with the original company/product, but not any use of a color at all. It almost definitely isn't going to apply to the bg color an open sourced HTML template chose.
      • ghaff 313 days ago
        Though, to be more precise, it's protecting colors as part of the trade dress of a brand. In general, some especially vigilant trademark enforcement aside, you can use the color so long as it's not being used in a way that could plausibly cause confusion with the trademark holder.
    • xen2xen1 313 days ago
      Part of this is the "Look and Feel" Supreme Court decision from Apple v Microsoft (IIRC). Apple sued MS for copying the way their OS looked, and the Supreme Court said the entire thing wasn't able to be protected. But that only settled the "whole thing", not parts of pieces. Where that line is is the Grey area.
  • lifeisstillgood 313 days ago
    The cleanroom idea is a very good starting point.

    The famous example is the IBM bios the company reverse engineered. One of the execs had read the IBM spec, so they "sealed off" a couple of other engineers who were not allowed to talk to (anyone? the guy who read the spec?)

    And then this people used reverse engineering techniques to build a bios that did the same as the working one they had, but all they could see was electrical currents coming out of the pins etc.

    So I think copyright law would allow you to look at a web page and, without viewing the source rebuild the page from scratch (ie box is red and 12 pixels wide)

    The more interesting part is what happens if one person writes a 1,000 lines of open source licensed code, then another comes along and writes a different 800 lines replacing each of the original lines but with the same output.

    That's much more a ship of theseus - but really it's a moot point - the second person would (have to?) release each new "plank" under an open source license.

    So depending on the license I guess you can chnage the license by replacing all the original code with new code under a new license.

    Hmm - I see ...

    I think there is some implication here - that you could not (as easily?) build the new lines of code if you did not have the "scaffolding" of the original there - and I suspect that might be the way to argue the ship is still originally theseus ?

    • jahewson 313 days ago
      The best answer is “it depends”. Almost any trick a layman can think of to work around a license is probably wrong.

      A mindless transliteration of those 800 lines is likely a derivative work, whereas a thoughtful re-creation likely isn’t. Copying an API for compatibility is regarded as a derived work but permitted as fair use (Oracle vs Google). There’s also the notion of de minimis copying were a very (very!) small portion of a work is regarded as insubstantial - maybe a line or two, again see Oracle vs Google.

    • jefftk 313 days ago
    • moffkalast 313 days ago
      > And then this people used reverse engineering techniques to build a bios that did the same as the working one they had, but all they could see was electrical currents coming out of the pins etc.

      > So I think copyright law would allow you to look at a web page and, without viewing the source rebuild the page from scratch (ie box is red and 12 pixels wide)

      What I don't exactly see is, how the hell do you prove you didn't just rip off the original and pretended you never saw it? In fact if you knew what the original was it would be easier to use different methods that would otherwise likely be duplicated because people go for the obvious solution first.

  • latexr 313 days ago
    > Is anyone seriously going to argue that I stole half a dozen bytes?

    The license itself might provide a clue. For example, the MIT license¹ says (emphasis mine):

    > The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

    Half a dozen bytes are unlikely to constitute a “substantial portion” of the software.

    ¹ https://opensource.org/license/mit/

    • Tomte 313 days ago
      The LGPL has this provision:

      "You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length), [...]"

      • Asooka 313 days ago
        Hm. Newlines are not required in many programming languages. I could see someone trying to skirt this by first converting the code to a single line, publishing that under LGPL, then taking that single line and modifying it however they like in their proprietary licensed software.
        • saagarjha 313 days ago
          I’m sure a judge will be very pleased with your code that has fifteen semicolons on the same line to skirt this rule.
    • edent 313 days ago
      How many bytes is substantial?

      Or is it percentage based?

  • tunesmith 313 days ago
    This distantly reminds me of the Jonathan Coulson / Glee situation that happened a few years back.

    Basically, a recording of his came out that had the lyrics to "Baby Got Back", but against music that was entirely fresh and original. And then later, Glee had a scene with a (really weird) a cappella group that did a cover of Coulton's recording - his music, but with the Baby Got Back lyrics.

    The show gave Coulson zero credit, didn't ask his permission, didn't give him any compensation, and I believe didn't give him any notice ahead of time. (I'm typing this all from memory, so I'm sure I might have some details wrong, but that's the thrust.)

    So the question is, should they have? It turns out it depends entirely on how the creation process was described.

    There's an old songwriting exercise where you take a song, and then write entirely different music for the lyrics, and then write new lyrics for the song. Presto, it's a whole new song, and there's nothing wrong with that songwriting process. You can do the reverse where you write new lyrics for the old music, and then new music for the new lyrics, too.

    Coulson could have easily written that new music for "Baby Got Back", and then written new lyrics for it, and copyrighted the song. And then, I'm not sure, but he possibly could have then released the version with the "Baby Got Back" lyrics as a joke/parody of his song, and it still would have been his song. But since he released his version as a cover of "Baby Got Back", all Fox had to do was "steal" his version, pay the royalties to Sir Mix-A-Lot, and cut out Coulton entirely.

    • joshuaissac 313 days ago
      > Coulson could have easily written that new music for "Baby Got Back", and then written new lyrics for it, and copyrighted the song.

      Why wouldn't Coulton have the copyright on his version of the song? If I create a derivative work, I would own the copyright on the modifications, so I would have thought that Coulton would similarly own the copyright on his music.

      For example, if I take Apache-licensed source code, add my own modifications, and release my work under the GPL v3 (as is permitted by both licences), someone else cannot reuse my work under the terms of the Apache licence, just because it is a derivative work of something licensed under the Apache licence. They would have to follow the GPL if they wanted to use my version. So how is that different to Fox reusing Coulton's work without his permission?

      • tunesmith 313 days ago
        Because it's possible to create a cover of a song that doesn't sound a lot like the original song. In that case, if you record it, you have the copyright of the recording, but not of the song itself. You still have to pay royalties to the songwriter of the original song if you record a cover.

        Coulton's "cover" just stretched that past the breaking point (or just before the breaking point, from Fox's point of view). In fact, there's an argument that Coulton did something wrong here, and should have gotten a "print license" since it changed the fundamental nature of the melody, and that the recording was technically breaking copyright.

        But either way, Coulton didn't have copyright of the music, only of the recording. And since Fox didn't use Coulton's recording on Glee (although there was apparently some disagreement about that), their argument was they didn't owe him anything.

        • joshuaissac 313 days ago
          It makes sense that Coulton would not have copyright on the lyrics (because they are not his) but why would he not have copyright on everything but the lyrics? I just listened to his version and the Glee version (which sound the same), and they sound completely different to Sir Mix-A-Lot's original version. Is there a special rule for musical works that sets a very high threshold of originality for derivative works?
          • tunesmith 313 days ago
            In music, there's a difference between holding the copyright for the music, and the copyright for the recording. And it's absolutely possible to write a cover, but where the music sounds different than the original version. People that do this don't have the copyright for the music, since the cover would not have existed were it not for the work by the original artist.

            That said, Coulton's version is very different, and probably could have led to some interesting legal arguments had it been challenged in court. But it's probably very relevant that Coulton first represented it as a cover, and that the entire reason his version (pre-Glee) became famous is because he marketed it as a cover.

    • cnasc 313 days ago
      > his music, but with the Baby Got Back lyrics

      Well, his version is slightly different. He says “Johnny C’s in trouble” where the original says “Mixalot’s in trouble” and I believe Glee used the Johnny C version. That’s probably not enough for a legal claim but it would have been classier either for them to use the original lyrics without his twist or give him at least a little bit of credit.

    • AceJohnny2 313 days ago
      (tiny correction: It's Jonathan Coulton. Coulson is the Marvel SHIELD agent)
  • gumby 313 days ago
    The post isn't really about the ship of theseus case. Most comments are about the cases discussed in the post, but the SoT case is worth mention as that case seems pretty clear:*

    1. If the code started with was *GPL'ed, each edit resulted in a GPL'ed piece of code, thus the final edit was a change to a GPL'd piece of code and the result is GPLed.

    This is basically no different from doing the same with a proprietary library you'd licensed from a vendor.

    Because you looked at the code to begin with you couldn't make the "clean room implementation" argument even if every line were different.

    2. MIT or related licenses: just depends on whether what remains is "substantial".

    * modulo the effect of interested lawyers, of course.

    • joshuaissac 313 days ago
      > If the code started with was *GPL'ed, each edit resulted in a GPL'ed piece of code, thus the final edit was a change to a GPL'd piece of code and the result is GPLed.

      The second clause is not correct. Each edit does not result in GPL'd code. GPL only applies to the code you start with. If you want to redistribute the code with the modifications, then the GPL requires that you make your changes available under the GPL. If you cannot license the work in this way, then you may not redistribute it; the licensing under the GPL is not automatic, and it may not even be possible (e.g., if the modifications are copied from code with an incompatible licence). But this does not apply if none of the code you want to distribute is covered under the GPL. So if you remove all of the original code, and your final work is independent of the original, then the GPL would not apply.

      • gumby 313 days ago
        The license still applies even when the redistribution clause is not being exercised (else any edit on your machine would strip the license!). This is an unremarkable part of the language and of contract law.

        If you mix in other code that you don’t have the right to distribute into the GPL code this has the same kind of impact as doing that with non-GPL code.

        • joshuaissac 313 days ago
          Yes, of course the licence applies even without redistribution. Without a copyright licence, the user does not have the right to use, modify or distribute the code.

          But what the licence applies to is the original work. If you replace half of the original work with your own work, then the GPL applies to the remaining half of the original work, while you would own the copyright to your own half of it. GPL requires you to license modifications under the GPL only if you redistribute them. But if what you are distributing is modified to the point of being completely independent of the original, with none of the original code or any dependency on it remaining, then the GPL is no longer relevant to it.

          • d0mine 313 days ago
            According to that logic, you may just rewrite any GPL code line by line and then apply any license you want to distribute the result. It doesn't sound right.
    • crazygringo 313 days ago
      Is 1) actually clear though?

      I'm unaware of it ever having been tested and upheld in court in a SoT situation. And while it's easy to argue that it should be upheld because that's what the license says, it's also just as easy to argue that it shouldn't. Because it's easy to argue that a chain of derivation loses all meaning under copyright law once there are no recognizable elements of the original work. Quite simply, making a claim of copyright infringement requires elements of the original being used. If no original elements exist, then no license can bind, no matter what path it took to get there. Just because you put something in a license doesn't mean it's enforceable.

      • gumby 313 days ago
        Yes, I think it's pretty clear (though yes, a lawyer can bring anything up). The basis is the propriety code case I mentioned which has been well litigated over the decades, its clear definition of "derived work" (in particular for the ToS case, not calling into it) and the implication of derivation vs clean room (discussed by others in this thread).

        When people try to attack the GPL in court it's typically over it being a contract of adhesion, enforceability, or applicability of calling into it (none of which are an issue in this discussion). The aspects I mention above are too well trodden.

        (I'm talking about the USA only, of course, and I assume you, the author of the post are too).

    • stkdump 313 days ago
      I think you always retain the right to change the license of your own code. If something is 100% your own code, you can choose whatever license you like.
      • josephcsible 313 days ago
        Yes, but you can't take back old licenses from anyone who got it before you changed it (unless they specifically say you can, which no FOSS license does, by definition).

        But anyway, I think this is about code that's a derivative of someone else's and so not entirely your own.

        • stkdump 313 days ago
          No, the idea here is that after all the original GPL licensed code (not own code) was step by step fully replaced by by own code (Ship of Theseus). Then you can change the license, because it is 100% your own.
          • gumby 312 days ago
            There is plenty of legal case law on this ranging from BSD to various proprietary licenses. You would not win on this. This is why Compaq had to do a clean room implementation of the BIOS back in the 80s -- the law of doing it otherwise was already clear back then.
  • twic 313 days ago
    Surely the greatest example of a Ship of Theseus in software is BSD Unix itself? It started out as a small set of patches to AT&T Unix, then grew to a large set of patches, then in the early '90s all the AT&T code was removed, precisely to avoid AT&T licensing.
  • resoluteteeth 313 days ago
    I think the whole idea of "clean-room reverse engineering" is essentially predicated on the idea that copyright would indeed apply to a scenario where you take a copyrighted work and incrementally replace all the individual pieces
    • tobyjsullivan 313 days ago
      Back in the IBM BIOS days, they were writing machine code. Basically a series of operation codes (ie, numbers).

      Two people trying to implement the same complex system were almost guaranteed to produce the same code for several components. A clean-room procedure offers a verifiable defense that the duplication was not a result of copying.

      Today we use much higher level languages so it’s trivial to write the same code a hundred different ways. I’m not sure a clean room is worth the effort other than to force the engineer to not be lazy and copy.

      All that said, there’s also copyright rules covering derivative works. I’m sure there’s plenty of precedent in literature to cover “copying without actually copying” but I wouldn’t know how that works.

    • ComputerGuru 313 days ago
      That's funny - I think the opposite! Clean-room reverse engineering would give you the same indivisible line of code (background-color: #xyz;) so it can't be required... or can it?
      • resoluteteeth 313 days ago
        I'm thinking of stuff like the re-implementation of the IBM bios where the re-implementation had to effectively match a certain undocumented specification but not necessarily follow the actual implementation from the original bios

        but in some sense clean-room reverse engineering does necessarily entail that certain things will be identical, and I guess the scenario in the article could be describing a situation where none of the final product matches the original template at all, so maybe it is slightly different, and in that case I guess there wouldn't be a copyright issue at all?

        It would be more like how when movies are made they tend to use existing music as a placeholder until the final music is made, and it doesn't seem like anyone considers the final movie to require a license from the creator of the placeholder song even though the direction of the final work is often strongly influenced by its pacing

    • 13of40 313 days ago
      I've actually wondered why projects like WINE and ReactOS didn't just start with Windows and replace one DLL at a time until there was no Windows code left. Then again, it seems weird that we hyper focus on the value of the source code and not all the engineering effort that went into the architecture. As in I can make a command-for-command knockoff of Unix and that's fair game, but if I reuse "a = b + c" that's a violation.
  • yeputons 313 days ago
    Not sure about open-source licenses specifically, but as for Ship of Theseus, _bits have color_. One sequence of bits may be a license violation, and the exact sequence of bits obtained through different means may be not a license violation.

    See https://ansuz.sooke.bc.ca/entry/23 and discussion at https://news.ycombinator.com/item?id=24917679 and older

  • grayhatter 313 days ago
    The only responsability is for attribution? Then I think you have an ethical and contractual obligation to include it. Ship of Theseus or not, the ship you're currently riding on only exists because of their work. Even if you believe like me, that the current author is entitled to both primary authorship and ownership. Had you never started from their work, no ship, or an entirely different ship would exist instead. Even if there's so little left of the original that it's meaningless, you should still credit them if for historical context alone.

    Credit isn't a zero sum game. You don't lose value by including others contributions. You should be proud to accept credit for your work! You should be willing to share that credit as widely as you're able. And no one should ever feel guilty for standing on the shoulders of giants.

    • ghaff 313 days ago
      I wouldn't bother for a background color. For something more substantial but still minimal, I'd probably figure no skin off my nose to give credit. There is a bit of a rub if the original is under a copyleft license and you want to release under a permissive license. Giving attribution could be a bit of a red flag--and maybe it should be unless the code that made it into the final product really is minimal.
  • Alan_Dillman 313 days ago
    >Could they prove that I copied that single line from them? Would anyone care?

    A year from now, you could decide to write something, and the obvious appears in your mind, and you type it out. It just happens to be identical to a line that you've read from a licensed document.

    Did you copy it? Were you inventing, or remembering? Did you copy/paste from your own mind? Should you attribute the one who lugged the block of marble last year? What about last week? Everything you'll ever think is informed by everything you've thunk before.

    This is a good reason for the law to not care about small things.

  • einpoklum 313 days ago
    It's quite possible that this will be answered by people's behavior in practice rather than by philosophizing about it.

    If FOSS projects develop which include tiny bits from copyrighted pieces of software, and they are not challenged for long enough, and see wide use - then the answer will be effectively "yes". If people steer clear of doing this and ask permission for every little bit used - then that will be the custom, and those who don't might end up in court.

  • praptak 313 days ago
    Two exact same strings of bits may have different statuses because of how they were produced: https://news.ycombinator.com/item?id=506986

    Once you take that into account the copyrighted Ship of Theseus becomes less of a paradox.

  • cdibona 313 days ago
    So once you reduce the remaining pieces of the ship to api calls or interfaces or simply constant definitions, you'll find that copyright still attaches, but that's okay.

    The whole point of the final rulings in the oracle/google trial is that is indeed copywritten by the author, but fair use. So source code stanzas that are ...well...totally banal or generic aren't actually suddenly not covered by copyright, but the argument you'd make (after fourteen years in court in googles case) is that it is fair use, wether that copyright is under open source or proprietary licenses.

    There isn't a magical ability to declare something a derivative work when it isn't, just because it's open source/copyleft.

    That said, when engineers or pms came to me asking to remove copyright attribution, I almost always said no.

  • layer8 313 days ago
    As a sibling comment notes, one important aspect is whether the copied portion is something copyrightable in the first place. In particular, whether it exceeds the threshold of originality [0], which at least in the US requires "some minimal degree of creativity". It’s rather unlikely for "half a dozen bytes" to meet that criterion.

    [0] https://en.wikipedia.org/wiki/Threshold_of_originality

    • jahewson 313 days ago
      That’s not the right way to approach this. There’s no way to subdivide a copyrightable work into portions that become uncopyrightable. Otherwise one could simply split up the work, free themselves of copyright, and reassemble the pieces. A work is by definition an assembly of pieces; it is not meaningful to talk about copyright at the piece level.

      The way it actually works is that very small portions of a work are still under copyright but their copying is regarded as de minimis, so small as to be permitted. For example, sampling a single snare dum hit from a song.

      Copying a color is even less than that, it’s like copying a single word from a book, it’s a piece from which the work is made up but it’s not a work, it’s not even a portion of a work.

  • kuratkull 313 days ago
    50/50 imho. You still change what was there to begin with,and it made you structure your new additions into the one created by the author. Basically if you look at your code evolve in eg. Git commits, you see how it evolves out of the licensed code, thus carrying the license with each commit. Not sure how I feel about that though in extreme cases like yours. Someone can create a "hello world" file and add a license to it, how should we handle that?
  • manicennui 313 days ago
    "Is anyone seriously going to argue that I stole half a dozen bytes?"

    There are many companies that would love to be able to sue and get settlements for such nonsense.

    • saghm 313 days ago
      Slightly more than "half a dozen bytes", and copyright rather than license but see the "rangeCheck" allegation from Oracle back in their trial against Google: https://en.wikipedia.org/wiki/Google_LLC_v._Oracle_America,_...

      > The copyright phase started on April 16, 2012, and consisted of several distinct claims of infringement: a nine-line rangeCheck function, several test files, the structure, sequence and organization (SSO) of the Java (API), and the API documentation > ... > Alsup did agree with the jury that the rangeCheck function and eight security files were a copyright infringement, but the only relief available was statutory damages up to a maximum of US$150,000

      The damages were small (and included some other files beyond just the 9-line function), but from my(obligatorily disclaimed as non-lawyer) understanding, there is legal precedent that copying a nine-line function.

      (I had a little trouble digging up the exact line lines of code since I don't know offhand where to find the Java standard library sources, but if anyone is curious, I did find them in this blogpost: https://majadhondt.wordpress.com/2012/05/16/googles-9-lines/)

      • yeputons 313 days ago
        IIRC, the lawsuit was not primarily about rangeCheck function, it was just one of dozen points.

        If you've got time, check out the full 62-page solution, it's a really nice read even if you're not a lawyer: https://www.supremecourt.gov/opinions/20pdf/18-956_d18f.pdf . Of course, it does not mean you (or me) understands it correctly. But it does contain everything you want, starting from background and some facts.

        The main opinion and relevant facts are on pages 5-40. Dissenting opinion is on pages 44+. An interesting quote from there:

        > Oracle spent years developing a programming library that successfully attracted software developers, thus enhancing the value of Oracle’s products[1]. Google sought a license to use the library in Android, the operating system it was developing for mobile phones. But when the companies could not agree on terms, Google simply copied verbatim 11,500 lines of code from the library. As a result, it erased 97.5% of the value of Oracle’s partnership with Amazon, made tens of billions of dollars, and established its position as the owner of the largest mobile operating system in the world. > ... > Oracle gave developers free access to these methods to encourage them to write programs for the Java platform. In return, developers were required to make their programs compatible with the Java platform on any device. Developers were encouraged to make improvements to the platform, but they were required to release beneficial modifications to the public. If a company wanted to customize the platform and keep those customizations secret for business purposes, it had to pay for a separate license.

        • saghm 313 days ago
          > IIRC, the lawsuit was not primarily about rangeCheck function, it was just one of dozen points.

          Yeah, there was a ton of other stuff; I was just citing the part that I thought was most relevant to this discussion.

    • __turbobrew__ 313 days ago
      AT&T tried to copyright an empty file https://news.ycombinator.com/item?id=3528663
  • VoodooJuJu 313 days ago
    Open source licenses are quite clear. We needn't appeal to overused-by-nerds buzzwordy Greek paradoxes, just read the license and carry on.
  • ineedasername 313 days ago
    Considering my ability to turn a block of beautiful code into spaghetti, the answer is yes-- I always leave in the original attribution /s
  • sriku 313 days ago
    I wonder if a criterion based on "did it get you monetary value" is useful to make these judgements.

    If you take a css color line from a page, could you have chosen another color to equal effect or chosen this line from somewhere else (i.e. is it common knowledge)? Is the color so unique that it would take someone a lot of money to have figured out that that was the "right" color?

    If you take some code and then rewrite a substantial part of it, did it save you time? (= Money) ... that you would've spent had you not had that code to start with?

  • userbinator 313 days ago
    At what point do you say "this has changed so much that it is no longer necessary to abide by the original licence"?

    Questions like these are why Imaginary Property is such a horrible quagmire. If you look closely enough, everything is a derivative work, and recent developments with things like LLMs has given this topic prominence. Everyone has absorbed countless amounts of copyrighted material in the course of their education, and can make use of it even if they don't remember the author.

  • brudgers 314 days ago
    If it matters ethically, then asking the question already provides the answer because foregoing actions which might be gotten away with is what it means to act ethically.

    If it matters legally pay your attorney for legal advice, because there is no government agency that enforces licenses, the degree to which a license matters is the degree to which someone is willing to lawyer up.

    If it doesn't matter, it doesn't matter.

    • ComputerGuru 313 days ago
      You're just punting on the question. To rephrase, does it matter ethically, legally, or at all?

      (Yes, I understand that if you're basing a business off it then it matters legally differently than if you're just hacking away on a hobby project, but the law covers all things and ethics is not confined to hobbies.)

      • brudgers 313 days ago
        None of it matters to me enough to pay a lawyer.

        Because I am not in the circumstances described in the question.

        Or your comment.

        All three cases, yours, the article, and mine depend on the specific facts.

    • Dylan16807 313 days ago
      > If it matters ethically

      When you use the word 'it', are you referring to "giving credit", or the question "Do I need to give credit"?

      The former would mean "If giving credit matters ethically, then asking the question provides the answer [which is yes.]". But that's just asking the same question as OP. Does giving credit matter?

      The latter would mean "If you felt like you might need to give credit, that the answer to that question matters ethically, then that provides the answer [which is yes, you need to give credit]". But that sounds wrong to me. That kind of logic would turn every positive impulse into an instant obligation.

      • brudgers 313 days ago
        Every ‘it’ is the same.

        Ethical behavior is erring on the side of caution in the face of uncertainty, ambiguity, or doubt.

        That’s what makes it ethical behavior.

        Giving unnecessary credit is not unethical.

        • Dylan16807 313 days ago
          Donating to and volunteering for every good cause you see, every time you see it, will bankrupt you and deprive you of sleep pretty fast.

          You can't err on the side of nicety in every single situation.

          If an argument depends on there being no cost, then you're not actually making an ethical determination, you're just saying "better safe than sorry".

          Caution and ethics are not the same thing.

          • brudgers 313 days ago
            I didn’t say anything about volunteering.
            • Dylan16807 313 days ago
              Your argument was that I should err on the side of ethical behavior every time I'm at all unsure, right?

              Donating or volunteering is more ethical than not donating or volunteering, right?

              If both of those are true, then every time I consider donating or volunteering I would be obligated to do it.

              • brudgers 312 days ago
                I have been explaining.

                I am not arguing.

                It is fine by me for us to have differences of opinion.

  • JamesLeonis 313 days ago
    IANAL, but common open source licenses is a Yes. Non-licensed works are legally murkier.

    You have a derivative work based on the original. The author retains the copyright, but has granted some permissions within the license document. What you can and can't do will be spelled out there. For example, the MIT license expressly permits modification and sublicensing [0]. The GNU GPL3 is even more explicit, giving definitions to modify, distribute, their permissions, and the requirements for both [1]. Double-check what the terms of the license give you explicitly.

    What if their is no license? I think that gets closer to the heart of the article. Imagine you come across a website design you like. What are the permissions for their HTML or CSS? By definition the distributor controls all aspects under copyright. But if you only use a small part, you can defend yourself under Fair Use. But this is murky legal territory, as Entertainment companies and individuals have sued each other over Music Samples and their relevant copyright and licensing.

    [0]: https://mit-license.org/

    [1]: https://www.gnu.org/licenses/gpl-3.0.en.html

  • tiberious726 313 days ago
    This is not the ship of Theseus, the a correct application of that concept would be rewriting the gdb module by module, testing each step of the way, and then falsely pretending that the gpl wouldn't apply even after 100% of the original code is replaced
  • 23B1 313 days ago
    Historically, the "reasonable person" standard has been sufficient for a handful of things like obscenity, IP, and other nuanced things.

    I wonder how much that will change in the age of AI!

    • pessimizer 313 days ago
      "Reasonable person" is not a good standard for anything nuanced. Sometimes you need a "moron in a hurry" to eliminate all nuance.
      • bitwize 313 days ago
        Always speak on the internet as if the least reasonable person in the world gave your words the least charitable interpretation possible.
      • 23B1 313 days ago
        Yes, this is why there are so many lawyers in the world. Ain't it grand?! /s
  • lfowles 313 days ago
    One of my top stackoverflow posts is asking about this same situation. The resolution was simply "email the author asking for permission to relicense my new ship"!
  • efitz 313 days ago
    This discussion makes the whole idea of software licensing (of any sort) seem silly to me.
  • slowhadoken 313 days ago
    Aristotle would probably say yeah it’s the sand code