Menu

#122 Design to "graceful degradation" when using non-universal features

Next release
closed-works-for-me
6
2025-07-23
2020-01-07
Astara
No

If it is possible for an expected OS feature not to present, have a means of disabling its use so the main product can still launch. On some linux versions, vym just up and dies if it can't attach to the UNRELATED (and extraneous) "D-Bus".

I have a desktop on 1 machine (with a graphics card) and run programs on another machine with lots of CPU & diskspace. Yet vym just rolls over and dies if it can't fine D-Bus. DBus isn't required for any of vym's core features. That it should complely prevent launch is broken. It's like 'vim' that can support various language interpretters -- it can be linked with the libs 2 ways. One, link the, say Cobol lib, to the main binary so that launching vim requires Cobol to be present. Everyone runs cobol, right? cough.

Or it can use the run-time dynamic load function on such libs so that vim still runs and can do its core-function -- editing, w/o colbol being present. So only users who try to run cobol from with-in vim will be inconvenienced -- and be told that cobol support isn't present.

Same with D-Bus -- if not present, don't roll over and die, but continue w/o DBus support, so users can use the core features of vym (without having to find its source and how to disable DBus @ compile time).

Related

Bugs: #122

Discussion

  • In Silmaril

    In Silmaril - 2020-01-14
    • assigned_to: In Silmaril
    • Priority: 3 --> 6
     
    • Astara

      Astara - 2020-01-23
      <style> /* Linda's Style playground (c) 2011 L. A Walsh (permission given to do w/this anything other than claim my original as your own! -- <a class="moz-txt-link-abbreviated" href="mailto:dept.playgrounds@tlinx.org">dept.playgrounds@tlinx.org</a> ) */ /* margin:(X):=T+B+R+L; (V H):V=T+B,H=R+L; (T H B):T,H=R+L, (T R B L) */ html,body { font: 13pt "Lucida Console", monospace, fixed; font-size-adjust:.50; background-color:#f0f8ff; color:#304060; max-width:95ex; } table, tbody, tr, td {font: inherit;font-size 11.4pt; } p { margin: 1em; text-indent:1em } p+p { margin-top: .75em;margin-bottom:.75em } small { font-size:85.18% } big { font-size:117.4% } q { font-style:italic; q.l { font-style:italic; font-family:cursive,sans-serif;} em { font-variant:small-caps } h6 { font-size:85.180%/117.398% } h5 { font-size:100%/132.824% } h4 { font-size:117.398%/161.803% } h3 { font-size:132.824%/200.00% } h2 { font-size:161.803%/234.797% } h1 { font-size:200.000%/265.648% } h1, h2, h3, h4, h5 {font-size: inherit; font-weight:bold} h5, h6 {font-size: inherit; font-variant:small-caps;} hr {font-family:monospace:fixed; width:90ex; margin:0;left} h5 {font: inherit; font-weight:800 } h6 { font: inherit; font-weight:700 } h1,h2,h3,h4,h5,h6 { margin:1em } blockquote { margin:1em 1em; font-style:italic; } blockquote &gt; p, blockquote &gt; blockquote {margin-top:0.50em;margin-bottom:0.50em; text-indent:0;} * { -moz-tab-size:2; -o-tab-size:2; tab-size:2; } pre, cite { margin: 1.2em .8em; } pre, cite, tt {font-style:oblique; background-color:#f6f6f0; color:#202040; font-family:"Lucida Console", monospace; } pre+pre {font-inherit; font-style:oblique; background-color:#f6f6f0; color:#202040; margin:1ex .8em } address {font inherit; font-style:oblique; font-family:"Cambria";} address {font:inherit; margin:1em 3em; background-color:#f8faff;} address+address {margin:0 2em} img { margin:1.6em } q:before { content:open-quote } q:after { content:close-quote } a, a:link, a:focus, a:visited {text-decoration:underline} a:link { color:#44BB33 } a:focus { color: #22FF11 } a:visited { color: #557722 } .sig { font: oblique 15.75pt/84pt "Lucida Handwriting",cursive } .sig:first-letter { float:left; font: italic 56pt/84pt "Lucida Calligraphy",cursive; font-weight:200; } #sig_fl { float:left;font:italic 56pt/84pt "Lucida Calligraphy",cursive; font-weight:200; } @font-face {font-family:Verdana; panose-1:2 11 6 4 3 5 4 4 2 4;} @font-face {font-family:Cambria; panose-1:2 4 5 3 5 4 6 3 2 4;} @font-face {font-family:"Lucida Calligraphy"; panose-1:3 1 1 1 1 1 1 1 1 1;} @font-face {font-family:"Lucida Handwriting"; panose-1:3 1 1 1 1 1 1 1 1 1;} .MsoNormal, .MsoNormalTab { padding:0; margin:0; color:"darkmagenta"; background:"honeydew"; font: oblique 100%/100% "Calibri","Verdana","Arial" !important; } span.MsoNormal , span.MsoNormalTable { font-family: inherit !important; font-size: inherit !important; font-style: inherit !important; color: inherit !important; } span[font-family=Arial], span[font-family="Times New Roman"], font[face=Arial] ,font[face="Times New Roman"] { font-family: inherit !important; font-size-adjust:inherit !important; font-size: inherit !important; line-height: inherit !important; color: inherit !important; } </style> On 2020/01/14 00:45, In Silmaril wrote:
      • assigned_to: In Silmaril
      • Priority: 3 --> 6
      • Comment:

      Hm, I thought meanwhile all major Linux distribution use DBUS for IPC. That's not related to using graphics or not. Is there no DBUS at all on your machine or just no session bus available?

      ----
          The reason I mentioned graphics, is the "headless" linux machine I wanted
      to run vym on, used to work with the display sent to my Win7 desktop using
      'X'.  At one point, DBUS was envisioned to work on split machines or cluster
      machines that talk via a protected, internal network not accessible to the internet.

          While the documentation mentions this, it was never implemented with the DBUS
      people afraid that one wrong move could cast such negative light on the project
      that it might kill it.  While I tend to think he is over-reacting, I've seem
      some pretty bad knee-jerk reactions to limited security problems where they
      misconfigured their server, and blamed the unix software for allowing them
      to shoot themselves in the foot.  *ahem*  Anyway, AFAIK, running the IPC over the
      network doesn't work.  It was my original idea w/my computer to use the Win
      computer as a rendering/desktop, and the linux computer as handling pretty much
      everything else, so having dbus treating my setup as 1 computer would be
      ideal  (it uses a Point-to-point 10G ethernet that isn't exposed to the internet.

      Anyway -- even though dbus is supported on cygwin and unix, no way for them
      to talk at this point. (*sigh*).

      Tnx,
      Astara

      The former would be a packaging issue IMHO, to be solved by maintainers of your distribution. The latter I probably could catch.


      [bugs:#122] Design to "graceful degradation" when using non-universal features

      Status: open
      Group: Next release
      Labels: prevents-launch
      Created: Tue Jan 07, 2020 10:24 PM UTC by Astara
      Last Updated: Tue Jan 07, 2020 10:24 PM UTC
      Owner: In Silmaril

      If it is possible for an expected OS feature not to present, have a means of disabling its use so the main product can still launch. On some linux versions, vym just up and dies if it can't attach to the UNRELATED (and extraneous) "D-Bus".

      I have a desktop on 1 machine (with a graphics card) and run programs on another machine with lots of CPU & diskspace. Yet vym just rolls over and dies if it can't fine D-Bus. DBus isn't required for any of vym's core features. That it should complely prevent launch is broken. It's like 'vim' that can support various language interpretters -- it can be linked with the libs 2 ways. One, link the, say Cobol lib, to the main binary so that launching vim requires Cobol to be present. Everyone runs cobol, right? cough.

      Or it can use the run-time dynamic load function on such libs so that vim still runs and can do its core-function -- editing, w/o colbol being present. So only users who try to run cobol from with-in vim will be inconvenienced -- and be told that cobol support isn't present.

      Same with D-Bus -- if not present, don't roll over and die, but continue w/o DBus support, so users can use the core features of vym (without having to find its source and how to disable DBus @ compile time).


      Sent from sourceforge.net because you indicated interest in https://sourceforge.net/p/vym/bugs/122/

      To unsubscribe from further messages, please visit https://sourceforge.net/auth/subscriptions/

      <meta itemprop="name" content="View">
      <meta itemprop="description" content="View">
       

      Related

      Bugs: #122

  • In Silmaril

    In Silmaril - 2020-01-14

    Hm, I thought meanwhile all major Linux distribution use DBUS for IPC. That's not related to using graphics or not. Is there no DBUS at all on your machine or just no session bus available?

    The former would be a packaging issue IMHO, to be solved by maintainers of your distribution. The latter I probably could catch.

     
  • In Silmaril

    In Silmaril - 2025-07-23

    Meanwhile vym uses cmake for building, if at build time no DBUS is present, it won't be compiled into vym. So basically a packaging issue.

    If this is still a problem, please open a ticket at https://github.com/insilmaril/vym

     
  • In Silmaril

    In Silmaril - 2025-07-23
    • status: open --> closed-works-for-me
     
MongoDB Logo MongoDB