PasswordSafe with 64 bit Linux

1 2 > >> (Page 1 of 2)
  • Peter Hillier-Brook

    I've been happily using the Linux beta with 32 bit Linux, but thought Wine
    might be a better option for a 64 OS. So far, so good: I have 3.23 running
    well and life is once again good (ish), but one minor problem is the absence
    of Help. It opens fine and displays the left-hand pane, but the right-hand
    pane is blank and also the icons all appear to be a standard default.

    My guess is that this is a Wine issue, but I thought it worth asking here in
    case there is an obvious solution?

    Thanks to anyone.

    Peter HB

  • Andrey Kuznetsov

    Wine's hh tool doesn't fully support chm format (you can see "fixme" messages
    when running wine hh ./pwsafe.chm in console. There are some discussions
    about it in winehq forum).

    Empty right pane possibly means, that you doesn't have
    Gecko installed (you can see message about it
    in console output of wine hh ./pwsafe.chm)

    Gecko can be installed manually, or with

    After installing Gecko, text on the right pane is displayed, but there are no

    This can be solved by:

    • using external chm viewer (xchm, okular, ...)
    • installing ie6 using winetricks

    Sorry for my English

    PS: I've checked it under wine 1.3.7.

  • Peter Hillier-Brook

    Many thanks for your help, which led to a solution. I upgraded wine to 1.3.8
    and used winetricks to install gecko and ie8. Lots of "fixme"s, but something
    in that process has done the trick and I now have text and pictures in
    Password Safe help.

    I'll try to be a little more scientific on another machine and refine what the
    fix actually was.

  • Evan Black

    Evan Black - 2011-07-02

    Same here I'm running PWS v.3.26 in wine ubuntu 11.04 x64. It works ok, but
    would love a native 64 bit compile.

  • Anonymous - 2011-07-20

    Just a question... why not go ahead and compile it for yourself?

    You might actually have fun learning a new skill :~)

  • scad

    scad - 2012-01-11

    to :-)

    What about version 0.7 for ubuntu x64?

  • Anonymous - 2012-01-16

    Hi Scad18,

    I did write to developer about this. He said he would update very soon. I
    guess he is busy with other things.

  • Rony Shapiro

    Rony Shapiro - 2012-01-23

    Thanks for sharing your build.

    Did you make any changes to the source to get it to compile? If so, please
    send me the patch, so that I can add the changes to the repository.


  • Brian

    Brian - 2012-01-23

    Hi Rony,

    No changes to the source were made. I just followed your instructions in the
    README.LINUX.DEVELOPERS.txt file and built it on a vanilla 10.04.3 64bit box.

    Thank you for making this available.


  • Micha

    Micha - 2012-05-01

    Just tried compiling trunk (svn4885) under 64-bit Debian and had to make the
    two following changes.

    1. Won't compile due to invalid cast.

    $ svn diff src/ui/wxWidgets/addeditpropsheet.cpp

    Index: src/ui/wxWidgets/addeditpropsheet.cpp
    --- src/ui/wxWidgets/addeditpropsheet.cpp   (revision 4885)
    +++ src/ui/wxWidgets/addeditpropsheet.cpp   (working copy)
    @@ -1126,14 +1126,16 @@
     static short GetSelectedDCA(wxComboBox *pcbox, short defval)
       int sel = pcbox->GetSelection();
    -  short retval;
    +  intptr_t retval = -1;
       if (sel == wxNOT_FOUND) { // no selection - is this possible with our combobox?
    -    return -1;
    +   goto done;
       } else {
    -    retval = reinterpret_cast<int>(pcbox->GetClientData(sel));
    +    retval = reinterpret_cast<intptr_t>(pcbox->GetClientData(sel));
       if (retval == defval)
         retval = -1;
       return retval;
    1. segfault when creating a new password database due to double-free:

    $ svn diff src/core/PWSfile.cpp

    Index: src/core/PWSfile.cpp
    --- src/core/PWSfile.cpp    (revision 4885)
    +++ src/core/PWSfile.cpp    (working copy)
    @@ -143,8 +143,10 @@
     int PWSfile::Close()
    -  delete m_fish;
    -  m_fish = NULL;
    +  if (m_fish != NULL) {
    +   delete m_fish;
    +   m_fish = NULL;
    +  }
       if (m_fd != NULL) {
    • The PwsfileV3::Close() method of PwsfileV3 calls Pwsfile::Close() multiple times.
  • Rony Shapiro

    Rony Shapiro - 2012-05-02

    Thanks for the patches. I've a problem with the second one, though, as C++
    guarantees that delete-ing a null vary is safe and a no-op, so I don't see how
    the if statement you've added protects against a double-free. Perhaps the
    memory corruption's occurring elsewhere?

  • Micha

    Micha - 2012-05-02

    Hi Ronys,

    Wow, I'm rustier than I thought with my C++.

    I reverted the second patch and can no longer repro the segfault which is a
    bit odd as I was getting it constantly on startup. Even tried deleting my
    .pwsafe directory. Well, nevermind then.


    • Micha.
  • DrK

    DrK - 2012-05-02


    With your first patch, would this one-line change be good enough? (i.e.
    changing <int> to <short>)


    retval = reinterpret_cast<int>(pcbox->GetClientData(sel));


    retval = reinterpret_cast<short>(pcbox->GetClientData(sel));


  • Micha

    Micha - 2012-05-02

    No, you can't cast a pointer to an integer shorter than a pointer, even though
    you can cast or assign integers to shorter integers (C++ is weird). This is
    why I used uintptr_t as that is always guaranteed to be the same size as a
    pointer. But you can assign the result of the cast directly to the short :

    retval = reinterpret_cast<uintptr_t>(pcBox->GetClientData(sel));

    Since you're controlling what goes into the combo-box, you're sure to only
    ever get shorts out, otherwise you might also want to check for overflows.


    uintptr_t ptrVal = reinterpret_cast<uintptr_t>(pcBox->GetClientData(sel));
    retval = ptrVal;
    if (retval != ptrVal) /* Value overflow error */
  • DrK

    DrK - 2012-05-02

    How about the old-fashioned way (and yes - we know the value is only a short -
    in fact way less than 16 (decimal) in the current version?

    retval = (short)pcBox->GetClientData(sel); 
  • DrK

    DrK - 2012-05-02

    Sorry - formatting issue:

    retval = (short)pcBox->GetClientData(sel);


  • Micha

    Micha - 2012-05-02

    What was wrong with reinterpret_casting to an intptr_t and then assigning to
    retval? That keeps it C++ and type-safe and is also the smallest change from
    the existing code.

    Anyway, I don't care as long as it compiles and runs :)

  • Rony Shapiro

    Rony Shapiro - 2012-05-02

    Simplest version of patch that compiles cleanly & runs under 64bit has been
    committed (4886).



  • Micha

    Micha - 2012-05-05

    Cool, thanks Rony :)

  • Martin Barlow

    Martin Barlow - 2012-06-02

    I successfully built passwordsafe-debian-0.7.0BETA.amd64.deb on debian 6.05.
    Seemed to require no modifications. works great. thanks.

  • Brian

    Brian - 2012-08-31

    Please forgive the noob question in advance, but is it expected to have the
    amd64 deb package request an additional 240 packages (all of which are i386)?
    I'm sure they are dependencies, but some packages it is requesting seem
    strange. Like "bluez-alsa:i386" and "libgstreamer-plugins:i386".

    Also, this happens whether I compile 0.7.0BETA or 0.8.0BETA and on two
    different machines.


  • Brian

    Brian - 2012-08-31

    For those who want to compile on LinuxMint, here are the two items I changed
    to get past the compile errors:

    In the Makefile inside ./pwsafe-0.8BETA/install/deb change line 7 from:

    DISTRO := $(shell echo $(word 2,$(shell lsb_release -d))|tr [:upper:] [:lower:])


    DISTRO := $(shell echo $(word 3,$(shell lsb_release -i))|tr [:upper:] [:lower:])


    cp control-ubuntu.amd64 control-linuxmint.amd64
  • Brian

    Brian - 2012-08-31

    Regarding my noob question - I may have answered this myself and am a bit

1 2 > >> (Page 1 of 2)

Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

No, thanks