Announcement

Collapse
No announcement yet.

Linux 6.6 To Better Protect Against The Illicit Behavior Of NVIDIA's Proprietary Driver

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

  • Originally posted by oiaohm View Post

    Little fact its a stale branch as of a year ago is no its not maintained any more. You did not read the date did you.

    Used yes there are some people still using dtrace 1.0. Maintained the answer is Dtrace 1.0 is not maintained any more in fact Oracle UEK is changing over to Dtrace 2.0 even on long-term supported releases.



    ktime_get caused tracing mistake by dtrace due to minor changes in operation is one of the examples why EXPORT_SYMBOL_GPL needs to be respected.
    Its not updated any more, (my whole point btw, since it destroys yours that its unstable and shouldn't be used) its still maintained within the confines of the kernel version it was support in

    and still exports
    the
    EXPORT_SYMBOL_GPL​(ktime_get_raw_fast_ns​)

    with
    EXPORT_SYMBOL(dtrace_gethrtime);​

    Additional kernel tracing features merged with recent Linux kernel releases. DTrace makes use of these additional features. - Blaming dtrace-linux-kernel/kernel/dtrace/dtrace_os.c at e17855d3134827...


    for use in the closed source DTrace.
    Last edited by mSparks; 02 September 2023, 10:19 PM.

    Comment


    • Originally posted by Khrundel View Post
      All of that doesn't matter. There are kernel maintainers who review and accept any patches. Assuming you are right and intention behind GPL only was to protect sensitive structures, that maintainer shouldn't accept these patches, he should've reject them saying "sorry, guys, looks like there is some misunderstanding here, GPL only was never intended to gatekeep some API, so either change this to usual export or implement some protected usual export counterpart.
      I wrote this before.
      EXPORT_SYMBOL_GPL. is used for 3 things.
      1) To mark functions that developer believe if you use them you have to be a derivative work.
      2) Patents have used in this function have that have only been licensed to GPLv2.0 works by OIN and the like. Yes exporting these functions to userspace would cause a legal problem for Linux kernel developers.
      3) To mark functions that are internal usage only.

      Originally posted by Khrundel View Post
      OMG. Just look at the adding date,
      Historic https://github.com/torvalds/linux/bl...21cac2/COPYING
      Current https://github.com/torvalds/linux/bl...999a0a/COPYING
      The date on that file means nothing because the way the license was writing in the Linux kernel got altered. Current has the exception and GPLv2.0 in in their own files they use to be glued into one.

      Originally posted by Khrundel View Post
      ​How many times I should repeat to you, this texts have no legal meaning. GPL is viral and it is final, everything based on GPL must be republished under GPL. Period. You may look at this file as some sort of clarification, nothing more.
      The reality here is the Linux kernel has never been a pure GPL licensed work.

      Yes this syscall note has moved location in the source but that text is in 0.1 Linux and every version since.


      Originally posted by Khrundel View Post
      ​​And these exceptions strictly violate GPL2 so they are null and void.
      Not the case either. Adding exception after fact GPL2 does not allow but when the exception was there since day one GPLv2 has no problem with it.

      The syscall note is it own license.that says that GPLv2 only applies to the kernel space code and everyone who has ever submitted code to the Linux kernel has accepted this addition and this define limitation on term of "derived work".


      Originally posted by Khrundel View Post
      Khm... So you are telling me that nvidia kernel module is derived work and must be relicensed under GPL because it uses GPL functions and simultaneously that GPL kernel contains some nongpl functions?
      Looks like contradiction to me.
      There is a reason why copyright derivative work court cases are as messy as hell and can take decades. When it comes to derivative work cases point of origin is important. So functions that only exist in the Linux kernel that you find in no other location have very odds if you use these in inside a kernel module that your kernel module is derivative work. Functions that lets say are copies of BSD ones and so(as in existed in BSD before Linux implemented them) have high odds that you are not a derivative work.


      The copyright in a derivative work covers only the additions, changes, or other new material appearing for the first time in the work. Protection does not extend to any preexisting material, that is, previously published or previously registered works or works in the public domain or owned by a third party.​
      I gave PDF and said read it. This line is important when it comes to GPL. This is why some functions in the Linux kernel are EXPORT_SYMBOL_GPL but its not the only reason.

      Yes re-implementing a OpenBSD/FreeBSD function on Linux should be labeled EXPORT_SYMBOL because there design is not new material so should not trigger GPL license derivative work clause by using because it point of origin is not the GPL work. Now some new function that only exists or first exists in Linux that should be EXPORT_SYMBOL_GPL to give you a heads up that hang on this is GPLv2 with Linus exception that has to be obeyed because you are walking into "derivative work" assessment being required that courts could rule different to what you believe form you assessment if you don't.

      Also EXPORT_SYMBOL_GPL is not just used for when its a derivative work risk. It also used like in the DMABUF case where the Linux kernel had license to use the patents behind that under GPLv2 with the syscall-note exception since only AMD and Intel and other open source drivers were using it at the time there was no need to negotiation for a broader coverage. Why don't they have a EXPORT_SYMBOL_PATENT because if you do that and you make something close to that function that happens to infringe the patent/patents you are up for willful infringement that is times the damages by at least x3. That something to be really aware of that the Linux foundation does not automatically negotiation to cover closed source kernel modules or third party drivers that are not GPLv2 with syscall-note against patent issues.

      Yes the Linux kernel tried having EXPORT_SYMBOL_UNSTABLE at one point only to have developers totally ignore that most effective way to prevent someone from using internal function of the Linux kernel found so far is tag it EXPORT_SYMBOL_GPL.

      I don't like that EXPORT_SYMBOL_GPL is a catch all bin for 3 different things but I understand how it end up that way. The 3 reasons why something ends up tagged EXPORT_SYMBOL_GPL does equal you should not use anything as third party kernel module tagged with that as here be dragon of some form.

      Please note the Linux developers are not complaining about Nvidia using EXPORT_SYMBOL tagged symbols in the Linux kernel. They give Nvidia the benefit of the doubt on the EXPORT_SYMBOL tagged functions that they could be in the right using them.

      The GPL viral nature is that infringement GPL demanding payment in source code instead of money this is what leads to opps we infringed GPL now we have to release our source code. GPL does not give legal option for cash settlement. You can think of GPL as a barter contract where the payment currency is source code. Barter contracts courts really don't like processing as they get messy.

      Yes a court case with the Linux kernel turns into a really be headache really quickly. With different developers being called to the stand and being asked did you get this code from elsewhere.​ This is also why Linux kernel developers are looking at DMCA, Customs and other things for enforcement instead.

      Comment


      • Originally posted by oiaohm View Post
        I wrote this before.
        EXPORT_SYMBOL_GPL. is used for 3 things.
        1) To mark functions that developer believe if you use them you have to be a derivative work.
        2) Patents have used in this function have that have only been licensed to GPLv2.0 works by OIN and the like. Yes exporting these functions to userspace would cause a legal problem for Linux kernel developers.
        3) To mark functions that are internal usage only.
        Sure, and you select convenient version depending of your current goal. The only real "thing" is to force additional inconvenience on nongpl modules developers. All BS about debugging easiness is just an excuse to have this mechanism within the kernel. You can see this just by used language, "tainted" module for example. Free software zealots have a fixation of forcing everyone to use gpl, even GNU project, while using lgpl license itself, because gpled library is a disaster nobody will touch, still discourages everybody from following their example.
        2.6 is not historic. 0.99 is, it was a first GPL linux, it contain GPL2 text and and it don't contain this clause. Still, when developers take their freedom to reformulate text without getting approval of everyone who touched code before, it mean this is not some legally binding contract, just their view on what and how this should work.
        So no, this exceptions BS is just a clarification, not legally binding contract.
        Not the case either. Adding exception after fact GPL2 does not allow but when the exception was there since day one GPLv2 has no problem with it.
        Now, when we know exception wasn't within 0.99, does it mean it was just clarification?
        There is a reason why copyright derivative work court cases are as messy as hell and can take decades. When it comes to derivative work cases point of origin is important. So functions that only exist in the Linux kernel that you find in no other location have very odds if you use these in inside a kernel module that your kernel module is derivative work. Functions that lets say are copies of BSD ones and so(as in existed in BSD before Linux implemented them) have high odds that you are not a derivative work.
        Sure, always vague and dark and messy, when somebody just proved you wrong, and always clear and eloquent when you want to say something absurd like "calling a function from dynamic library makes your project derived work"


        I gave PDF and said read it. This line is important when it comes to GPL. This is why some functions in the Linux kernel are EXPORT_SYMBOL_GPL but its not the only reason.
        Stop pretending you understand anything about copyright law. You've already proved you don't. Especially after you admit it is messy for you. And giving wild link "read it" is just a way to waste opponent's time and pretend there is some proof of your point.

        As for your quote: "The copyright in a derivative work covers only the additions, changes, or other new material appearing for the first time in the work. Protection does not extend to any preexisting material, that is, previously published or previously registered works or works in the public domain or owned by a third party.​"
        it says exactly what I've written before: if someone will add some changes into previously MIT licensed file within a kernel repo, these changes will be covered by GPL, not MIT. All kernel is GPL covered, all derived work (changes to files) made within kernel are GPL covered, there is no nongpl part​ within kernel. If your MIT code will be embedded into kernel, the embedding process already is a creation of derived work and it is GPL covered. This, of course, will not remove mit license from original work, but copy within kernel will be licensed under GPL. Would it be possible to preserve mit license on part of kernel, anybody could add some change into mit licensed part without following GPL requirement.
        Just read GPL2 already, it contain no clause allowing some part of code to be not licensed under GPL.


        Please note the Linux developers are not complaining about Nvidia using EXPORT_SYMBOL tagged symbols in the Linux kernel. They give Nvidia the benefit of the doubt on the EXPORT_SYMBOL tagged functions that they could be in the right using them.
        By the way, why?
        Is there exception for EXPORT_SYMBOL within license folder? At least such exception wasn't granted before this macro was introduced. So why kernel developers help nvidia to violate GPL? Your beloved DMCA criminalizes such activity.

        Comment


        • Originally posted by Khrundel View Post
          . This, of course, will not remove mit license from original work, but copy within kernel will be licensed under GPL. Would it be possible to preserve mit license on part of kernel, anybody could add some change into mit licensed part without following GPL requirement.
          Just read GPL2 already, it contain no clause allowing some part of code to be not licensed under GPL.
          the licence (more or less) stays as whatever is at the top of the file in the licence header.

          MIT/GPL just means it uses some files with a MIT header and some with a GPL header.

          compiling it doesn't change the licence of the source.

          Comment


          • mSparks

            I hope proprietary development for nvidia linux drivers continues, everybody just assumes that opensource always makes things better in every case when nvidia has known their own hardware for decades, I highly doubt some open source developers are going to make nvidia's code better or perform better, its a massive stack. Nvidia is pretty much going to have to fully release the proprietary driver with full support for nvidia-settings and everything for it to be even worth a shit.

            In this case if I were in NVIDIA I would tell the people hounding the Co to go fuck themselves, it's their intellectual property and their right to keep it closed, I would go to extra lengths to violate more GPL to just say "hey get bent", we made Linux more accessible for gamers, jump in a lake.

            Nvidia has had excellent support for LInux for 20 years, I heard nothing but shit about ATI, intel graphics support for games isn't even a logical argument historically unless you played some game low @640x480 using the iGPU with massive input lag and lied to yourself the performance is ok.

            On the other hand if NVIDIA by the graciousness of their hearts decided hey maybe we should throw these guys an open source bone and fully release everything? I would support that too.

            I love free open source software, however, I buy proprietary MIxbus 32C, why? It's superior to open source projects, it's simply much better software and I don't mind paying for it. And yes I used to even donate to the Ardour project back in it's beginner days.
            Last edited by creative; 03 September 2023, 11:28 AM.

            Comment


            • Originally posted by creative View Post
              mSparks

              I hope proprietary development for nvidia linux drivers continues, everybody just assumes that opensource always makes things better in every case when nvidia has known their own hardware for decades, I highly doubt some open source developers are going to make nvidia's code better or perform better, its a massive stack. Nvidia is pretty much going to have to fully release the proprietary driver with full support for nvidia-settings and everything for it to be even worth a shit.
              nvidia is a ~$1T.2 company selling software and hardware almost exclusively for Linux.
              google is a ~$2T company built almost 100% on linux.
              They've shown that when you successfully work around the barriers being put in the way to build a successful business Linux wins. This won't stop that or slow it down.

              I'm more concerned that "the year of the Linux desktop" for normal people, not capable of working around the intentional and harmful BS, can't happen until the likes of Christoph Hellwig either retire or are retired.
              Last edited by mSparks; 03 September 2023, 08:39 AM.

              Comment


              • mSparks He is obviously a jackass if that is who it is. I consider it the same as forcing a bunch of people at gunpoint to do what the pistol pointer says, it all went mostly unnoticed for years and this was never a big stir. This is all about someone getting their panties in a twist. Someone get that guy a box of manpons cause he is obviously on the rag.
                Last edited by creative; 03 September 2023, 09:04 AM.

                Comment


                • Originally posted by creative View Post
                  [USER="8431"]it all went mostly unnoticed for years and this was never a big stir.
                  I still have people tell me Linux is still only a small market share and not important, especially when they are going into a rant about how great windows is.

                  Then I point out 80% of mobile phones are running Linux (and the other 20% run unix), their TVs, their routers, and literally everything after that, including the search they type into google.
                  And that I give zero shits about how well their trusty MS Excel runs on it.

                  And what follows is mostly Crickets.

                  Linux has been a massive success despite this nonsense, it will continue to be a massive success, there isn't anything else even remotely close any more. I see the people cheering this guy as mostly in a similar position but from the other side, they are still waiting for Linux to supplant MS Excel and games consoles and consider Linux a failure because it hasn't, and see anything like MS Excel or Nvidia GPUs "making" it on Linux as a threat to a "glorious" GPL exclusive future.
                  Last edited by mSparks; 03 September 2023, 09:37 AM.

                  Comment


                  • Originally posted by mSparks View Post
                    I still have people tell me Linux is still only a small market share and not important, especially when they are going into a rant about how great windows is.

                    Then I point out 80% of mobile phones are running Linux (and the other 20% run unix), their TVs, their routers, and literally everything after that, including the search they type into google.
                    And that I give zero shits about how well their trusty MS Excel runs on it.

                    And what follows is mostly Crickets.

                    Linux has been a massive success despite this nonsense, it will continue to be a massive success, there isn't anything else even remotely close any more. I see the people cheering this guy as mostly in a similar position but from the other side, they are still waiting for Linux to supplant MS Excel and games consoles and consider Linux a failure because it hasn't, and see anything like MS Excel or Nvidia GPUs "making" it on Linux as a threat to a "glorious" GPL exclusive future.
                    I never would have said a single peep about this unless I wasn't going to be eventually effected. GPU's are expensive things and I paid a lot of money for mine a few years ago and have a long history of having great support for every NVIDIA GPU that I have owned on this platform. So all of a sudden someone wants to shit on that? Of coarse I am going to have some nasty things to say.

                    I'm getting pretty tired of peoples radical overly idealist horseshit.
                    Last edited by creative; 03 September 2023, 10:36 AM.

                    Comment


                    • Originally posted by Khrundel View Post
                      2.6 is not historic. 0.99 is, it was a first GPL linux, it contain GPL2 text and and it don't contain this clause. Still, when developers take their freedom to reformulate text without getting approval of everyone who touched code before, it mean this is not some legally binding contract, just their view on what and how this should work.
                      No you are wrong 0.99 is not the first GPL linux.


                      This is the first Linux to contain the GPL and it also contains the clause. Yes the COPYING in the 0.99.11 is the same as Linux-2.6.12-rc2 nothing changed over that time frame.

                      What you find as the license of 0.99 that you can also get from kernel.org is.
                      /*
                      * kernel/chr_drv/vt.c
                      *
                      * Copyright (C) 1992 obz under the linux copyright
                      */
                      ​That right a fun way of writing yet to be decided with "linux copyright" being used as placeholder. The debate on what the Linux copyright would be happened in the 0.1-0.99 time frame. GPL without the clause on the Linux kernel is pre the Linux kernel being decided to be GPL so in the place holder license time frame.

                      There is a time frame before the place holder as well'
                      /*
                      * linux/kernel/panic.c
                      *
                      * (C) 1991 Linus Torvalds
                      */
                      ​Where it just all copyright Linus Torvalds.

                      The first GPL containing Linux kernel is 0.99.11. Basically Khrundel stop attempting to rewrite history. Linux kernel GPL has always had the syscall note exception. The Linux kernel has had 4 different licenses.
                      1) Linus Torvalds only the earliest versions
                      2) Time frame of the "Linux copyright"
                      3) GPLv2 with syscall note/exception for user space program all in 1 file.
                      4) The recent split up version but it still GPLv2 with syscall note/exception.
                      There is no time frame that the Linux kernel is a pure GPL work.

                      Originally posted by Khrundel View Post
                      "calling a function from dynamic library makes your project derived work"
                      Warning base copyright law has no concept of dynamic library or kernel modules or programs. Yes calling a function that in a dynamic library might make your program a derived work of that dynamic library.

                      Originally posted by Khrundel View Post
                      As for your quote: "The copyright in a derivative work covers only the additions, changes, or other new material appearing for the first time in the work. Protection does not extend to any preexisting material, that is, previously published or previously registered works or works in the public domain or owned by a third party.​"
                      it says exactly what I've written before: if someone will add some changes into previously MIT licensed file within a kernel repo, these changes will be covered by GPL, not MIT. All kernel is GPL covered, all derived work (changes to files) made within kernel are GPL covered, there is no nongpl part​ within kernel. If your MIT code will be embedded into kernel, the embedding process already is a creation of derived work and it is GPL covered. This, of course, will not remove mit license from original work, but copy within kernel will be licensed under GPL. Would it be possible to preserve mit license on part of kernel, anybody could add some change into mit licensed part without following GPL requirement.
                      Just read GPL2 already, it contain no clause allowing some part of code to be not licensed under GPL.
                      No read the second sentence in the quote. GPL2 usage of derivative work means not everything in a GPL2 work has to be GPL. We get into a few issues with copyright law.
                      1) Copyright law does not say something cannot be doubled licensed.
                      2) Embedded existing work into Linux kernel is the second sentence.

                      Protection does not extend to any preexisting material, that is, previously published or previously registered works or works in the public domain or owned by a third party.​
                      The sentences I quoted are the closest to plain English you get for the copyright laws globally and you need to read the complete lot. You writing on the presume that derivative work is automatic that is not the case. Also you are incorrect that everything in the kernel is GPL that is also not the case by copyright law. There was a very big explode over BSD files being taken into the Linux kernel then modified. That required legal because it turns out the BSD license still stood. So the modifications to the BSD sections of the Linux kernel could be extracted from the Linux kernel and used under BSD license OpenBSD/FreeBSD... and be perfectly legal.

                      Originally posted by Khrundel View Post
                      ​Is there exception for EXPORT_SYMBOL within license folder? At least such exception wasn't granted before this macro was introduced. So why kernel developers help nvidia to violate GPL? Your beloved DMCA criminalizes such activity.
                      There is no exception or clarification for using EXPORT_SYMBOL or EXPORT_SYMBOL_GPL with the Linux kernel. This means you fall back to raw copyright law meaning of derivative work because GPL license does not define "derivative work" either. Only reason why the use of EXPORT_SYMBOL is not going to infect something like the Nvidia closed source driver is falls under copyright laws limitation that prevents preexisting licensed material from being derivative work. Preexisting material defense absolutely does not work if you are calling EXPORT_SYMBOL_GPL.

                      Take MIT licensed sections of the graphics stack that are shared with BSD and like from the Linux kernel. They have a preexisting material history. Those MIT functions exported ss EXPORT_SYMBOL are not GPLv2 derivative work triggers because the copyright law excludes them due to being preexisting material so party like Nvidia could use this functions with immunity because its the raw copyright law that blocks the derivative work effect.

                      Khrundel like it or not base copyright law on derivative work is clear is new material not pre-existing material. Now MIT licensed code by copyright law could be classed as new material or pre-existing materal.

                      Writing code to interface against Linux functions marked EXPORT_SYMBOL_GPL only that have never existed anywhere else that code has to be new material so this is now derivative work without question does not matter how you license it. Remember these are not exported by the syscall interface to use space so the syscall note does not apply. Yes Nvidia wrappers that use functions they should not are derivative works.

                      Writing code to interface against Linux functions marked EXPORT_SYMBOL you might be fine or your might be screwed if your code is not GPLv2. Question needs to be answered this function is classed as preexisting material or is classed as new material. MIT sections of the graphics stack are classed as preexisting material.

                      Also raw copyright law does not give a rats if you do it dynamically or not.

                      Its the requirement to get ruling on is this preexisting or new material that makes dealing with copyleft licenses that use the derivative work causes so tricky if you are not matching license. Get it wrong GPL license wording demands your source code as payment for your mistake.

                      It is possible to make this mistake with preexisting or new material between two copyleft license code bases resulting in neither code base being able to be legally shipped as it comes impossible to resolve the source payment requirement of both licenses.(yes this comes lets pretend we never did that code)

                      1) Linux kernel->MIT licensed preexisting material brought in from BSD or else where->closed source module that legal.
                      2) Linux kernel->MiT licensed work that new material-> closed source module that not legal.
                      Yes this is all due to copyright law and differences between new and preexisting and it effects on how derivative work functions.

                      Problem for Nvidia is lots of their MIT wrappers when you look at them are new work then they alter their binary blob to match up to the MIT wrapper code. Remember derivative work chains along new material not preexisting.

                      Another way Nvidia could have done a wrapper is formally write a ABI for their blob and make like ndiswrapper for loading it. Yes independent work is with copyright takes true effort to do it safely and will come with a performance cost.
                      Last edited by oiaohm; 03 September 2023, 11:43 PM.

                      Comment

                      Working...
                      X