#1187 System Tray icon gone if lxpanel crashes

v1.0_(example)
open
nobody
Linux (75)
1
2014-11-06
2014-05-14
JP Vossen
No

Low priority, but I've had a few lxpanel crashes on Lubuntu 12.04 and after I restart using 'lxpanel --profile Lubuntu' my PWS task bar icon is missing. I know of no way to reconnect to that session, so I just kill it and open a new one. But other indicators, like volume, Wi-Fi, battery, and SpiderOak come back and are fine after the restart.

No big deal, just thought I'd mention it. It would confuse end-users, but then if they crash lxpanel they will just reboot anyway, so...

Discussion

  • I have the same problem under xfce. After having started up a new instance of pwsafe, the PWS task bar of the previous instance turns up again. It would be nice if something could be done about it. Since I restart my xfce-panel each time I come out of sleep, this is rather annoying.

     
    Last edit: Reinaert Albrecht 2014-10-21
    • Saurav Ghosh
      Saurav Ghosh
      2014-10-22

      For taskbar icon functionality, pwsafe is totally dependent on how well the UI toolkit used by pwsafe (i.e. wxWidgets) integrates with the platform (gnome, unity, etc). Such issues will only get fixed when wxWidgets improves it support for the taskbar functionality on the underlying platform.

      Since wxWidgets 2.8 will only have bug fixes (if any) not add any new features, if your platform has only wxWidgets 2.8, this will probably never work any better for you, unless someone with knowledge on these platforms can fix it.

      But, I believe the task bar support in wxWidgets 3.X is better than wxWidgets 2.8.X. If you are building pwsafe yourself, building with wxWidgets 3.X might be worth a try. Unless your platform supplies a wxWidgets 3.X build, you might have to build that yourself as well.

      And this is just a guess: I have not tried it myself on Linux, but I do see improvements on Mac OS X.

       
  • Shouldn't you provide a version of pwsafe then that's built against wxwidgets 3.x? I can't just remove my 2.8.x libraries because a lot of other programs depend on it.

     
  • Rony Shapiro
    Rony Shapiro
    2014-10-22

    We'd love to. Care to join the porting effort?

     
    • Saurav Ghosh
      Saurav Ghosh
      2014-10-22

      You don’t have to remove existing wx2.8 libraries. Just build wx3 in a new directory and link pwsafe with it. Here’s how I do it:

      1. Download and unzip wxWidgets3. Lets say its under ~/work/wx3
      2. Create another directory inside it, i.e. ~/work/wx3/static-release. “change dir” into it.
      3. Run "../configure —disable-shared —enable-unicode". Add other flags to your taste :-) Note that you should be in ~/work/wx3/static-release. The “configure” script is in parent dir.
      4. Run make. Once again, you are in ~/work/wx3/static-release. Everything gets built there and below.

      Once the above wxWidgets build is over, you can build pwsafe against it by going to the root of pwsafe source tree and running

      WX_CONFIG=~/work/wx3/static-release/wx-config make unicoderelease

      This builds the release version (sans debug alerts) of pwsafe statically linked with wxWidgets3 libraries (so you can now rm -rf ~/work/wx3).

      Please see README.LINUX.DEVELOPERS.txt in pwsafe sources for all the things pwsafe requires to be built. If you are not interested in building with YubiKey support (may be because you can’t find proper libraries for it), you can disable it by

      NO_YUBI=1 WX_CONFIG=~/work/wx3/static-release/wx-config make unicoderelease

       
  • I get a bunch of errors compiling against wx3 sources (I used those provided with ubuntu BTW).

     
    Attachments
  • Rony Shapiro
    Rony Shapiro
    2014-11-06

    You should compile the current master from git. The released tar sources won't build under 3.0.2, as you've found out...

     
  • Hi, I tried to compile the git version (git clone git://git.code.sf.net/p/passwordsafe/git-code passwordsafe-git-code) and I get roughly the same errors. See attachment.

     
    Attachments
    • Saurav Ghosh
      Saurav Ghosh
      2014-11-06

      Can you post the output of

      /usr/bin/wx-config --debug=no --unicode=yes --inplace —cxxflags

       
  • There was no output.

     
    • Saurav Ghosh
      Saurav Ghosh
      2014-11-06

      Did you copy-paste the command into a terminal? If yes, can you type the same command on the keyboard (seriously)?

      For some reason, the hyphens seem to have been converted into something else.

      This is when I copy/paste from your logs:

      ~$ /usr/bin/wx-config --debug=no --unicode=yes --inplace —-cxxflags

      <no output="">

      This is from the keyboard:

      ~$ /usr/bin/wx-config --debug=no --unicode=yes --inplace --cxxflags
      -I/usr/lib/i386-linux-gnu/wx/include/gtk2-unicode-release-2.8 -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -DWXGTK -pthread

      After a lot of head-scratching, it seems the hyphen chars are not what they seem:

      Copy/pasted from your logs:

      ~$ echo "—" | od -t x1
      0000000 e2 80 94 0a
      0000004

      Copy/pasted from my keyboard input:

      sghosh@saurav-ws:~$ echo "-" | od -t x1
      0000000 2d 0a

      Please also post the value of your LANG environment variable. Mine is en_US.utf8

       
      • Ha, indeed. This is the output:
        -I/usr/lib/x86_64-linux-gnu/wx/include/base-unicode-3.0 -I/usr/include/wx-3.0 -D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -pthread

         
        • Saurav Ghosh
          Saurav Ghosh
          2014-11-06

          What about that LANG environment variable?

           
  • en_US.UTF-8

     
    • Saurav Ghosh
      Saurav Ghosh
      2014-11-06

      Can you attach your Makefile from src/ui/wxWidgets?

      Do you yourself have any idea what could cause this? Did you check it out elsewhere and then copy it wherever you are trying to build it? Is your checkout on a network share (nfs/cifs whatever)? Did you check it out while you were logged in over some kind of a remote session? Is your checkout in any way different than you sitting at a Linux console and checking out directly from sourceforge on to a disk locally attached?

      These are just wild thoughts. I have no clue why this is happening on your machine. But it might be worth checking it out once more into a new directory and try to build it.

      I tried building myself, but It doesn’t happen on my checkout.

       
  • I'm using the build supplied with ubuntu: libwxbase3.0-dev 3.0.0-2 amd64 wxBase library (development)
    Just found out that one of the dependencies was not installed thus somehow rewiring the wx-config to my 2.8 install. Installed libwxgtk3.0-dev which showed:
    update-alternatives: using /usr/lib/x86_64-linux-gnu/wx/config/gtk2-unicode-3.0 to provide /usr/bin/wx-config (wx-config) in auto mode
    Now it compiles.

     
  • I can now also confirm that this solves this bug. Maybe you should start to provide a deb-package build against the 3.0.0 wx?

     
    • Saurav Ghosh
      Saurav Ghosh
      2014-11-06

      Which bug? The missing Tray icon on lxpanel crash, or your build problem?

      We only recently migrated to wx3. I guess the deb-package would be coming soon.

       
  • Both ;)