gdmd -man fails perhaps due to out-of-date commands?

Joseph Rushton Wakeling joseph.wakeling at webdrake.net
Thu Mar 28 06:35:06 PDT 2013


Calling gdmd -man is supposed to open the default browser and load the user
documentation.  However, on my system (Ubuntu 13.04, Unity interface) the
command fails with the errors:

  Use of uninitialized value $ENV{"KDE_FULL_SESSION"} in string eq at
/opt/gdc/bin/gdmd line 289.
  Can't exec "gnome-open": No such file or directory at /opt/gdc/bin/gdmd line 297.

I'm not familiar with perl so can't readily debug, but it obviously relates to
the following function:

sub browse($) {
    my ($url) = @_;
    my @cmd;

    if ($^O =~ m/MSWin32/i) {
        @cmd = qw(cmd /c start);
    } elsif ($^O =~ m/darwin/i &&
             -x '/usr/bin/open') { # MacOS X vs. just Darwin
        @cmd = 'open';
    } elsif ($ENV{KDE_FULL_SESSION} eq 'true') {
        @cmd = qw(kfmclient exec);
    } elsif ($ENV{GNOME_DESKTOP_SESSION_ID} ne '') {
        @cmd = 'gnome-open';
    } else {
        errorExit "Sorry, I do not know how to start your browser.\nManual URL:
$url"
    }
    push @cmd, $url;
    system @cmd;
    print "Opening documentation page.";
    exit 0;
}

... and looks likely to be down to out-of-date or buggy calls to environment
variables.  The closest I was able to find searching online were these issues in
xgamer:
https://code.google.com/p/xgamer/issues/detail?id=8
https://code.google.com/p/xgamer/issues/detail?id=9

... but it's not obvious what the fix referred to was.

There's no gnome-open on my system (or available in repos) so I presume this is
an old GNOME 2 command that's been removed?

In any case, this looks like something that needs to be addressed for a number
of other reasons, e.g. it appears to assume 32-bit Windows.  The simplest thing
to do might be to simply delete the -man option.


More information about the D.gnu mailing list