BitSailor support thread

I installed a specific version and it works now, shall i just hold off updating the cli until node and npm is more up to date?

Sorry, I seem to not get notifications. What exactly did you get older version of?

Thats okay, i installed bitwarden/cli@2023.8.2 manually from command line, anything later than that version didnt work. It works fine currently just asks me to update when i open it

I have a problem that I don’t see described elsewhere:
I tried to log in but didn’t know I had to add the client_id and secret, so I just put in the username, password and server. The application asked me to enter the api keys and I did, but it would no longer let me try to log in again.
I tried logging in directly with the “bw” command and was able to do it without problems, but now the app keeps spinning around and has the text “Authenticating…”.
I tried everything I could think of, reinstalling the app, logging out from SSH, deleting the file in .config/Bitwarden CLI/data.json and nothing, the app is still stuck in the spin.
Any idea how to start the process again?

Ok, I think I found how to fix it:
uninstall bw, open the app, try to install bw from the app (it will fail because of a broken dependency), close the app, go to SSH and install the @bitwarden/cli@2023.8.2 version and open the app again.
With those steps I managed to get everything working perfectly.
One last note, as microtube depends on a very specific version of nodejs that interferes with the version you include in your repo, the best is to install the microtube version (which includes binaries called npm18 and node18) and manually create the symlinks to have npm and node.

Hi, i’m trying to set it up on my side, but i don’t get past the “Authenticating” screen:

steps taken:

  1. Installed the app
  2. It told me to install the cli
  3. Tried to install it through the app (failed, same error as users above)
  4. Installed the cli manually ( devel-su npm install -g @bitwarden/cli@2023.8.2)
  5. Opened the app: got an eternal “Authentication” loading screen
  6. devel-su npm uninstall -g @bitwarden/cli@2023.8.2 does not seem to uninstall the package:
[defaultuser@Xperia10II-DualSIM ~]$ npm list -g 
/usr/lib
├── @bitwarden/cli@2023.8.2
├── corepack@0.14.0
└── npm@8.19.1

[defaultuser@Xperia10II-DualSIM ~]$ npm uninstall -g @bitwarden/cli@2023.8.2

up to date, audited 1 package in 647ms

found 0 vulnerabilities
[defaultuser@Xperia10II-DualSIM ~]$ npm list -g 
/usr/lib
├── @bitwarden/cli@2023.8.2
├── corepack@0.14.0
└── npm@8.19.1

#i also tried with devel-su
  1. Downloaded the native linux x64 executable
  2. rebooted the phone
  3. ran the bw login command:
[defaultuser@Xperia10II-DualSIM ~]$ chmod +x bw
[defaultuser@Xperia10II-DualSIM ~]$ bw login
-bash: bw: Permission denied
[defaultuser@Xperia10II-DualSIM Downloads]$ devel-su bw login
Password: 
[defaultuser@Xperia10II-DualSIM Downloads]$

Does the executable works for anyone else ?
Is it compatible with the BitSailor app ?

I didn’t wanted to end like you… but I got the same problem.
I also tried to update node and npm, but that worked only with node.

But thanks to the release version site I was able to get a valid older version running.

I installed now “@bitwarden/cli@2023.8.2” and was able to enter my credentials. Even fingerprint is working!
But I have to note down, that older versions bring some vulnerabilitys… so… maybe not the best solution. @Rikudou_Sennin is it possible to update node and npm that the latest @bitwarden/cli is working? Or am I’m completly wrong? :sweat_smile:

Well I managed to pass throw the initial error, but now it loops forever at authenticating…

How should I authenticate?

did you use the 2023 bitwarden-cli ?

I advanced a bit in my investigations on how to fix it.

First i installed a newer version of node:
image

Which allowed me to install the newer version of bitwarden-cli:

I have a hunch that we can’t use the newer version of bitwarden because the app does not find the command “bw”: https://github.com/RikudouSage/harbour-bitsailor/blob/master/src/systemchecker.cpp

void SystemChecker::checkDependencies() {
    const QStringList dependencies {"node", "npm", "bw"};
    bool found;
    for (const auto &dependency : dependencies) {
        found = false;
        for (const auto &path : getPaths()) {
            QFile file(path + "/" + dependency);
            if (file.exists()) {
                found = true;
                break;
            }
        }
        if (!found) {
            if (dependency == "node" || dependency == "npm") {
                emit missingRequiredDependency(dependency); #no error here
            } else if (dependency == "bw") {
                emit missingBitwardenCli(); #error here
            } else {
                emit unknownErrorOccured(); #no error here
            }
            return;
        }
    }

I wish i could dig more but I am unable to build the app on the SDK:

RPM build errors:
error: Installed (but unpackaged) file(s) found:
   /usr/bin/harbour-bitsailor.debug
    Empty %files file /home/user/SailfishApps/build-harbour-bitsailor-SailfishOS_4_5_0_18_i486_in_Sailfish_SDK_Build_Engine-Debug/debugfiles.list
    Empty %files file /home/user/SailfishApps/build-harbour-bitsailor-SailfishOS_4_5_0_18_i486_in_Sailfish_SDK_Build_Engine-Debug/debugsourcefiles.list
    Installed (but unpackaged) file(s) found:
   /usr/bin/harbour-bitsailor.debug
12:00:03: The process "/home/user/SailfishOS/bin/sfdk" exited with code 1.
Error while building/deploying project harbour-bitsailor (kit: SailfishOS-4.5.0.18-i486 (in Sailfish SDK Build Engine))
When executing step "RPM Build"

So if anyone knows how to solve any of these problems I can dig further

Solved the problem.

Short answer, run: devel-su ln -s /usr/local/node-v22.2.0/bin/bw /usr/local/bin/bw

Long answer + explanation: i builded the app using OBS instead of the SDK and asked it to write in a file the $PATHs it was seaking for the commands. This was the output:

[defaultuser@Xperia10II-DualSIM ~]$ cat debug_log.txt 
Checking path: /home/defaultuser/.local/share/harbour-bitsailor/harbour-bitsailor/bin/node
Checking path: /usr/local/sbin/node
Checking path: /usr/local/bin/node
Checking path: /usr/sbin/node
Checking path: /usr/bin/node
Found: /usr/bin/node
Checking path: /home/defaultuser/.local/share/harbour-bitsailor/harbour-bitsailor/bin/npm
Checking path: /usr/local/sbin/npm
Checking path: /usr/local/bin/npm
Checking path: /usr/sbin/npm
Checking path: /usr/bin/npm
Found: /usr/bin/npm
Checking path: /home/defaultuser/.local/share/harbour-bitsailor/harbour-bitsailor/bin/bw
Checking path: /usr/local/sbin/bw
Checking path: /usr/local/bin/bw
Checking path: /usr/sbin/bw
Checking path: /usr/bin/bw
Missing required dependency: bw

I needed to check where was my npm installed:

[defaultuser@Xperia10II-DualSIM ~]$ npm -g list
/usr/local/node-v22.2.0/lib
├── @bitwarden/cli@2023.8.2
├── corepack@0.28.1
└── npm@10.7.0

[defaultuser@Xperia10II-DualSIM ~]$ which bw
/usr/local/node-v22.2.0/bin/bw

Added the link: devel-su ln -s /usr/local/node-v22.2.0/bin/bw /usr/local/bin/bw

Tried the app and it worked.

Updated the bitwarden cli to it’s latest version:

[defaultuser@Xperia10II-DualSIM ~]$ devel-su npm install -g @bitwarden/cli@latest
Password: 
[defaultuser@Xperia10II-DualSIM ~]$ npm list -g
/usr/local/node-v22.2.0/lib
├── @bitwarden/cli@2024.4.1
├── corepack@0.28.1
└── npm@10.7.0

App still works.

1 Like

For anyone wondering how to get BitSailor working, here’s how I did it. I’m gonna explain it in detail, because I don’t expect everyone to know how to use SSH or the terminal:


  • Enable developer mode:

    • Go to settings
    • Tap on developer tools
    • Enable developer mode
    • Set a password
    • Note down the wifi IP address
  • Install Storeman if you don’t have it already:

  • Install BitSailor through Storeman

  • If you attempt to launch it, it’ll either complain about missing “node” dependency or about missing “bitwarden-cli”

  • Connect to your device via SSH (skip if you want to use the Terminal on the device itself):

    • On Windows:
      • Download an SSH client like PuTTY (or install openssh from within the depths of “add and remove software”)
      • Launch PuTTY
      • Connect to your phone by entering it’s IP address
      • Use the “defaultuser” account with the previously set password
    • On Linux, BSD, macOS:
      • Launch a terminal
      • Type ssh defaultuser@your_phones_ip_address
      • Authenticate with the previously set password
  • Elevate privileges by typing “devel-su”, enter your password (won’t be shown) and hit enter

  • Unlink any symbolic links to node, npm and bitwarden-cli (bw), ignore any errors:

    • cd /usr/local/bin
    • unlink node
    • unlink npm
    • unlink bw
  • Install the most recent node runtime manually:

    • Change to the tmp directory: cd /tmp
    • Download the tarball: curl -O https://nodejs.org/dist/v22.3.0/node-v22.3.0-linux-arm64.tar.xz
    • Unpack it: tar -xf node-v22.3.0-linux-arm64.tar.xz
    • Copy the files into the right place: cp -r node-v22.3.0-linux-arm64 /usr/local/node-v22.3.0
    • Create symbolic links:
      • ln -s /usr/local/node-v22.3.0/bin/node /usr/bin/node
      • ln -s /usr/local/node-v22.3.0/bin/npm /usr/bin/npm
      • ln -s /usr/local/node-v22.3.0/bin/npx /usr/bin/npx
  • Check whether or not node is working and if the following commands show the current version number:

    • node -v
    • npm -v
  • Remove the tarball and the unpacked files: rm -r node-v22.3.0-linux-arm64*

  • Launch BitSailor

  • Let it install bitwarden-cli

  • Updating bitwarden-cli from within BitSailor should now work, as well

  • Follow the instructions to access your vault with client ID and client secret

  • Disable developer mode again, if you want


Heads up: Should BitSailor be stuck at “loading items”, go to the settings menu and use the option to “reset everything”. Then, log in again and it should work.

I’m aware that this is not the best way of installing node, as it’s not automatically updated, etc. If someone has a more elegant solution, please let me know.

2 Likes

Tried and didn’t work Still facing the issue to install CLI.

But one weird thing happend, the bw it is linked with node-22.2.0/bin/bw

but i have no bw folder and also i don’t have node-22 installed

Looks like that for me:


I did fool around quite a bit yesterday, so there could be something additional that I did to make it work. But I’m pretty sure that it’s not the case and that above instructions should™ work.

Edit: Maybe try to install bitwarden-cli manually after setting up node 22.3.0 and link the bw binary to /usr/local/bin?

npm install -g @bitwarden/cli@latest
ln -s /usr/local/node-v22.3.0/bin/bw /usr/bin/bw

For me, this didn’t work. I had to remove bitwarden-cli and let BitSailor install it.

Interesting something is wrong here when i run ls -la there in no link:

[root@Xperia10III tmp]# ln -s /usr/local/node-v22.3.0/bin/npx /usr/bin/npx
ln: /usr/bin/npx: File exists

but
[root@Xperia10III bin]# ls -la
total 8
drwxr-xr-x 2 root root 4096 Jun 19 10:50 .
drwxr-xr-x 13 root root 4096 Jun 19 10:38 …

And now i am starting to believe my node package has an issue

You’re trying to link to /usr/bin, while I linked to /usr/local/bin.

It should work either way. If you have installed node 22.3.0 by following my instructions, you should have it in /usr/local/node-v22.3.0.

You can now proceed and unlink any links to previous versions of node. I have not found any implications in doing so:

unlink /usr/bin/node
unlink /usr/bin/npm
unlink /usr/bin/npx

Now, you can just create new links to the newly installed node runtime as mentioned in my “how-to”.

DO NOT UPDATE TO LATEST SFOS VERSION, IT BRAKES THE APP.

I’m trying to figure some solution out but this one is not related to the npm/node folder

[EDIT]: it works, i had to erase and install the app again.

Uh, this is weird, BitSailor works perfectly after last SFOS update in my case, without doing anything (Xperia 10 II here).

I uninstalled and reinstalled the app, I deleted the secret manually and also from within the app, etc. BitSailor is still broken for me, as it states that any credentials I throw at it are invalid, which is not true, as I have a selfhosted Vaultwarden instance that works just fine.

It seems that BitSailor (or bitwarden-cli) doesn’t even try to connect to the server in the first place, because the logs on the server side state so.

Before the recent Sailfish OS update, things worked fine.

yes actually i had the same error, whenever clicking on an entry it would not show it, with some error. Now the app logged me out and now i cant log back…