Announcement

Collapse
No announcement yet.

KDrive, Xnest, Xvfb Called For Removal From X.Org

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

  • #41
    Hm, checking the xserver git master seems xkb cannot be disabled. That's 4mb more of Xorg.

    So, using your stripped number, it's 650kb vs 5.6mb.

    Comment


    • #42
      In that case, I have no clue which Xfbdev you're shipping, since XKB has been mandatory for all of our servers for over four years now. If you took a four-year old version of Xorg too, then you could disable XKB from that and save 4MB. You're making a pretty pointless comparison.

      Comment


      • #43
        It is hardly a pointless comparison. It's an X server that fills a need versus another that has 4mb of cruft that cannot be disabled.

        In essence, it's showing that you've made something mandatory that causes 4mb of bloat that is not needed in some cases.

        Comment


        • #44
          Originally posted by curaga View Post
          It is hardly a pointless comparison. It's an X server that fills a need versus another that has 4mb of cruft that cannot be disabled.

          In essence, it's showing that you've made something mandatory that causes 4mb of bloat that is not needed in some cases.
          Yes, although the net benefit was the ability to remove huge tracts of code which were horrifically complex and error-prone. It fixed several real problems with the server and widened the scope of people who understood keyboard handling within the server from one to many. I stand by it, and I'd do it again today.

          Certainly it's a shame that the xkeyboard-config ruleset is so enormous; I've been toying with the idea of a minimal ruleset (for many reasons) for some time now. Hopefully I'll actually get around to it, but it would sure be nice if the crowd who needed a stripped-down server supported us by helping with things like this rather than just rubbishing everything on forums four years after the fact. If you want to help get involved, here's some ideas:
          - add a configuration option to only install a very minimal ruleset (evdev / pc105 / US only), plus the resulting XML file
          - add a configuration option to disable translations, and strip down the XML file to remove those translations
          * - help with the ongoing effort to simplify the ruleset, particularly within compat and types
          - possibly look at merging back the xkbcommon changes into xkbcomp, as well as making that generate a shared library the server could use instead of forking xkbcomp to produce an XKM file, then parsing that XKM file with resultant loss of information (libxkbcommon won't ever expose everything the X server needs to know)

          That way everyone benefits, and you guys don't feel compelled to ship a four-year old X server with no end of known security vulnerabilities.

          Comment


          • #45
            Originally posted by daniels View Post
            Certainly it's a shame that the xkeyboard-config ruleset is so enormous; I've been toying with the idea of a minimal ruleset (for many reasons) for some time now. Hopefully I'll actually get around to it, but it would sure be nice if the crowd who needed a stripped-down server supported us by helping with things like this rather than just rubbishing everything on forums four years after the fact.
            As shown by your own numbers, it's not only the ruleset: the size of the Xfbdev binary itself is near doubled. Is that only the xkb code? Or something else too?

            If you want to help get involved, here's some ideas:
            - add a configuration option to only install a very minimal ruleset (evdev / pc105 / US only), plus the resulting XML file
            - add a configuration option to disable translations, and strip down the XML file to remove those translations
            * - help with the ongoing effort to simplify the ruleset, particularly within compat and types
            - possibly look at merging back the xkbcommon changes into xkbcomp, as well as making that generate a shared library the server could use instead of forking xkbcomp to produce an XKM file, then parsing that XKM file with resultant loss of information (libxkbcommon won't ever expose everything the X server needs to know)
            You clearly know XKB well, but it seems you haven't considered the alternative.

            Please tell me why work should be spent on making the rulesets smaller, when not using them entirely is the better option. The code path that simply uses the console keymap surely still exists?

            Shipping all console keymaps is 140kb compressed, and those are enough for most western languages. Not shipping a keymap at all is also sometimes done when there's no need for one.

            That way everyone benefits, and you guys don't feel compelled to ship a four-year old X server with no end of known security vulnerabilities.
            Sorry, the amount of work in making current Xorg smaller far exceeds the cost of possible local exploits in a controlled environment. Only speaking for myself of course, but I'm also no X dev.

            Comment


            • #46
              Originally posted by daniels View Post
              In that case, I have no clue which Xfbdev you're shipping, since XKB has been mandatory for all of our servers for over four years now. If you took a four-year old version of Xorg too, then you could disable XKB from that and save 4MB. You're making a pretty pointless comparison.
              http://distro.ibiblio.org/tinycoreli...rc/Xvesa-base/
              Looks like XFree86 4.8.0.

              Comment


              • #47
                Originally posted by curaga View Post
                As shown by your own numbers, it's not only the ruleset: the size of the Xfbdev binary itself is near doubled. Is that only the xkb code? Or something else too?
                A mixture of making XKB mandatory, and other stuff we pushed from Xorg into common code.


                Originally posted by curaga View Post
                You clearly know XKB well, but it seems you haven't considered the alternative.

                Please tell me why work should be spent on making the rulesets smaller, when not using them entirely is the better option. The code path that simply uses the console keymap surely still exists?

                Shipping all console keymaps is 140kb compressed, and those are enough for most western languages. Not shipping a keymap at all is also sometimes done when there's no need for one.
                I have considered the alternative, and I still maintain that it's the better option. Argument by assertion isn't much fun though, so I'll say that I think it's better due to greater maintainability, not having to have two completely separate and unrelated rulesets (see, e.g. cxkb, which allows you to use XKB keymaps on the console), and due to being used by a far, far greater number of people than the alternative which was basically untested.

                So yeah, I'd much prefer to see XKB's worst flaws (mainly its size and complexity) fixed than maintain two options, only one of which sees any development or testing, when the interactions between the two are so incredibly complex as to be a significant source of problems on their own.

                Originally posted by curaga View Post
                Sorry, the amount of work in making current Xorg smaller far exceeds the cost of possible local exploits in a controlled environment. Only speaking for myself of course, but I'm also no X dev.
                No problem - it's your environment, so it's up to you to judge the importance of numerous local and remote code execution vulnerabilities.

                Comment


                • #48
                  OK then. Would you say whether it would be possible to skip the 3.6mb rulesets, 400kb library and compiler entirely, without removing the X-internal xkb parts?
                  I'm thinking it wouldn't be many lines of code to read the console keymap and load it into Xorg's internal xkb representation. Not that I know, merely guessing.

                  That would certainly be a huge improvement, though I'd certainly like to see the 500kb of Xorg-internal xkb removable too.

                  Comment


                  • #49
                    Not really, though it's certainly smaller to make the Xorg internals a fair bit smaller, and possible to make the ruleset very, very, very, very much smaller. To be honest that'd probably be size-competitive with parsing the console keymaps and mangling them into XKB keymaps.

                    Comment


                    • #50
                      You're saying the moon can be fetched, it sounds like

                      One console keymap is 2kb, and the X internals to load it were a few hundred kb smaller than the xkb internals. I think it would be a lot of work to get the xkb option to even within 500kb of the console one, and that is still not size-competitive.


                      If you mean to skip console keymaps entirely, then that's additional size in the form of cxkb (btw google doesn't find it, so I couldn't measure it).

                      Comment

                      Working...
                      X