Announcement

Collapse
No announcement yet.

Samsung Accidentally Leaked The exFAT Linux Driver

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #11
    Originally posted by r1348 View Post
    This is a blatant licence violation and Samsung has the right to go medieval on his ass. Will they? Probably not, but I'd expect a cease&desist pretty soon.
    Well it is also likely that this module violates the GPL license of the kernel. Linus only considers stuff that was originally written for other operating systems and then trivially ported to Linux as non-GPL:

    Originally posted by Linus Torvalds
    And in fact, when it comes to modules, the GPL issue is exactly the same.
    The kernel _is_ GPL. No ifs, buts and maybe's about it. As a result,
    anything that is a derived work has to be GPL'd. It's that simple.

    Now, the "derived work" issue in copyright law is the only thing that
    leads to any gray areas. There are areas that are not gray at all: user
    space is clearly not a derived work, while kernel patches clearly _are_
    derived works.

    But one gray area in particular is something like a driver that was
    originally written for another operating system (ie clearly not a derived
    work of Linux in origin). At exactly what point does it become a derived
    work of the kernel (and thus fall under the GPL)?

    THAT is a gray area, and _that_ is the area where I personally believe
    that some modules may be considered to not be derived works simply because
    they weren't designed for Linux and don't depend on any special Linux
    behaviour.

    Basically:
    - anything that was written with Linux in mind (whether it then _also_
    works on other operating systems or not) is clearly partially a derived
    work.

    - anything that has knowledge of and plays with fundamental internal
    Linux behaviour is clearly a derived work. If you need to muck around
    with core code, you're derived, no question about it.
    The Samsung code appears to have been written by a developer who has been doing Linux kernel development since 2002 (at least), so I think they would have a hard time in court arguing that this is a cleanroom implementation that wasn't "designed for Linux". Now that the source is out, it will be interesting to see some more technical analysis of exactly how integrated it is with the kernel, and whether it actually contains any code/data structures that taint it due to being directly copied from the kernel.

    Comment


    • #12
      Originally posted by WorBlux View Post
      But if the can't GPL thier code, and distribute it anyways as a kernel module in some kernel, that's a copyright violation itself. If the M$ patents are the issue, then port F2FS to windows and mac.
      Samsung can release patented code as GPLv2 but not GPLv3. The kernel is GPLv2 so patented drivers are ok.

      Comment


      • #13
        Originally posted by chrisb View Post
        The Samsung code appears to have been written by a developer who has been doing Linux kernel development since 2002 (at least), so I think they would have a hard time in court arguing that this is a cleanroom implementation that wasn't "designed for Linux". Now that the source is out, it will be interesting to see some more technical analysis of exactly how integrated it is with the kernel, and whether it actually contains any code/data structures that taint it due to being directly copied from the kernel.
        Ok I took a quick 10 second look: https://github.com/rxrz/exfat-nofuse.../exfat_super.c contains string "timestamp is already written, so mark_inode_dirty() is unneeded." searching on this string shows that it was added to the kernel in 2005 in this commit: http://linux.derkeiler.com/Mailing-L...5-03/1976.html

        Other comments are the same e.g. exfat_setattr() "We don't return -EPERM here. Yes, strange, but this is too * old behavior.": http://www.cs.fsu.edu/~baker/devices.../fs/fat/file.c
        Code:
        390         /*
        391          * [B]We don't return -EPERM here. Yes, strange, but this is too[/B]
        392          * [B]old behavior.[/B]
        393          */
        394         if (attr->ia_valid & ATTR_MODE) {
        395                 if (fat_sanitize_mode(sbi, inode, &attr->ia_mode) < 0)
        396                         attr->ia_valid &= ~ATTR_MODE;
        397         }
        398 
        399         if (attr->ia_valid)
        400                 error = inode_setattr(inode, attr);
        401 out:
        402         return error;
        403 }
        404 [B]EXPORT_SYMBOL_GPL(fat_setattr);[/B]
        So it appears the "Samsung Proprietary code" contains GPLv2 copied straight from Linux kernel.

        Comment


        • #14
          Originally posted by chrisb View Post
          Samsung can release patented code as GPLv2 but not GPLv3. The kernel is GPLv2 so patented drivers are ok.
          The can distribute the program without a patent license, but if you distribute it with a patent license, that licence must be royaly-free and redistributable. See section 7 of the GPL 2.0. The main difference outlined in section 11 of 3.0 is the automatic grant of patent licenses by contributors to the program. Otherwise it just spells out obligations regarding a third party patent in greater detail.

          I don't know what parts of the filesystem the patents cover, but It may be possible that buying flash media preformated to exfat gives you an implied license to use code neccessary to use that filesytem. If this isn't the case Samsung still might be in the clear if thier patent license is linked to the hardware rather than the software.

          Comment


          • #15
            Somebody opened the can of worms! It seems a Samsung employee did dirty things in the code, copying GPL'd stuff into their "propietary" filesystem driver and that means it's a derived work by all means.

            Are there plans about researching that source code? I'm sure there can be more interesting stuff out there, maybe an automated pattern search could give more results.

            So well, exFAT is available. Now let's attack the patents that cover it


            Originally posted by chrisb View Post
            Ok I took a quick 10 second look: https://github.com/rxrz/exfat-nofuse.../exfat_super.c contains string "timestamp is already written, so mark_inode_dirty() is unneeded." searching on this string shows that it was added to the kernel in 2005 in this commit: http://linux.derkeiler.com/Mailing-L...5-03/1976.html

            Other comments are the same e.g. exfat_setattr() "We don't return -EPERM here. Yes, strange, but this is too * old behavior.": http://www.cs.fsu.edu/~baker/devices.../fs/fat/file.c
            Code:
            390         /*
            391          * [B]We don't return -EPERM here. Yes, strange, but this is too[/B]
            392          * [B]old behavior.[/B]
            393          */
            394         if (attr->ia_valid & ATTR_MODE) {
            395                 if (fat_sanitize_mode(sbi, inode, &attr->ia_mode) < 0)
            396                         attr->ia_valid &= ~ATTR_MODE;
            397         }
            398 
            399         if (attr->ia_valid)
            400                 error = inode_setattr(inode, attr);
            401 out:
            402         return error;
            403 }
            404 [B]EXPORT_SYMBOL_GPL(fat_setattr);[/B]
            So it appears the "Samsung Proprietary code" contains GPLv2 copied straight from Linux kernel.

            Comment


            • #16
              Originally posted by timofonic View Post
              did dirty things in the code, copying GPL'd stuff into their "propietary"
              They all do that. I wonder if there's one piece of closed source out there that isn't parasitic (i.e. doesn't contain stolen GPL-ed code).

              Comment


              • #17
                Originally posted by prodigy_ View Post
                They all do that. I wonder if there's one piece of closed source out there that isn't parasitic (i.e. doesn't contain stolen GPL-ed code).
                Let's research and sue'em all!

                Comment


                • #18
                  Originally posted by prodigy_ View Post
                  They all do that. I wonder if there's one piece of closed source out there that isn't parasitic (i.e. doesn't contain stolen GPL-ed code).
                  Do you have any evidence to back that up?

                  Comment


                  • #19
                    Originally posted by chrisb View Post
                    Well it is also likely that this module violates the GPL license of the kernel. Linus only considers stuff that was originally written for other operating systems and then trivially ported to Linux as non-GPL:



                    The Samsung code appears to have been written by a developer who has been doing Linux kernel development since 2002 (at least), so I think they would have a hard time in court arguing that this is a cleanroom implementation that wasn't "designed for Linux". Now that the source is out, it will be interesting to see some more technical analysis of exactly how integrated it is with the kernel, and whether it actually contains any code/data structures that taint it due to being directly copied from the kernel.
                    Good post. I got the best understanding of what is going on from this post. Thanks for making it so clear.

                    Comment


                    • #20
                      Originally posted by archibald View Post
                      Do you have any evidence to back that up?
                      /sigh

                      Don't we have right here in this thread a random piece of closed source code with evidence all over it?

                      Comment

                      Working...
                      X