Rclone mount on openindiana not available

What is the problem you are having with rclone?

I am trying to use rclone to mount Google Drive, and it has failed:

:; rclone listremotes
Predrags GD:
:; rclone ls "Predrags GD:"
  1560010 Getting started
:; rclone mount 'Predrags GD:' ~/gdrive
Error: unknown command "mount" for "rclone"
Run 'rclone --help' for usage.
You could use 'rclone selfupdate' to get latest features.

2022/01/05 12:39:44 Fatal error: unknown command "mount" for "rclone"

Run the command 'rclone version' and share the full output of the command.

:; rclone version
rclone v1.58.0-DEV
- os/version: OpenIndiana illumos-3d6d4f792e
- os/kernel: 5.11 (i86pc)
- os/type: illumos
- os/arch: amd64
- go/version: go1.17.5
- go/linking: dynamic
- go/tags: none

Which cloud storage system are you using? (eg Google Drive)

Google Drive

The command you were trying to run (eg rclone copy /tmp remote:tmp)

:; rclone mount 'Predrags GD:' ~/gdrive

The rclone config contents with secrets removed.

:; cat ~/.config/rclone/rclone.conf
[Predrags GD]
type = drive
client_id = ID
client_secret = SECRET
scope = drive
token = TOKEN
team_drive =

A log from the command with the -vv flag

:; rclone -vv mount 'Predrags GD:' ~/gdrive
Error: unknown command "mount" for "rclone"
Run 'rclone --help' for usage.
You could use 'rclone selfupdate' to get latest features.

2022/01/05 13:00:52 Fatal error: unknown command "mount" for "rclone"

OS and other relevant info

  • I have built rclone directly from git clone (go build) - that is it
  • OpenIndiana OS is 64 bit, go as well, fuse supports also 64bit libraries (seems that build did not found), gvfs is also present (if that is relevant)
:; uname -rsov
SunOS 5.11 illumos-3d6d4f792e illumos
:; file /pz/SFW/bin/rclone
/pz/SFW/bin/rclone: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /usr/lib/amd64/ld.so.1, Go BuildID=z27_tMCGiL7XQFqGUimi/Wdx-pcdDm_9VZqyEUM1O/-sEqrHwIy1Tl3ohDHtdA/wfet9pk55Xvv-wVuWRHz, not stripped
:; pkg list '*fuse*'
NAME (PUBLISHER)                                  VERSION                    IFO
driver/fuse                                       1.4-2020.0.1.2             i--
library/libfuse                                   2.7.6-2021.0.0.7           i--
:; pkg list '*gvfs*'
NAME (PUBLISHER)                                  VERSION                    IFO
library/gnome/gvfs                                1.26.0-2020.0.1.4          i--

With best regards.

P.S: I think that this is great tool (using it for home NAS backup)

I'd imagine you built it wrong if I had to guess.

Can you try with the amd64 binary instead? Why did you build it?

I think this os is not covered by the following build tag:

And therefore the build is skipping mount.

Would probably need to extend it with build tag illumos (introduced in go 1.13), but I suspect it is more to it than just that.. If you want to, you could try and see what happens, would be interesting to know!

But yeah, that is the easier and better option!

Thanks, I should be more specific / less blame in my comment and should have said it is probably a build issue rather than "you" built it wrong.

Been a long week in the forums here...

Because https://downloads.rclone.org/v1.57.0/rclone-v1.57.0-solaris-amd64.zip has failed to mount device, so I guessed...

Aha, there is an official Solaris build. At some point (version 1.13) golang did split illumos out from solaris. But if solaris build is without mount it is probably for a reason, and probability to get illumos build with mount not so high. But I have no idea.

Yes, I would like to try it (If you can add illumos)...
FYI,

:; ls -al /usr/lib/amd64/pkgconfig/*fuse*
-r--r--r-- 1 root bin 220 Jul 23  2020 /usr/lib/amd64/pkgconfig/fuse.pc

All 64 bit pc files are located under that directory (so, it will pick-up proper 64 bit libraries during build -- IMHO, go should know that):

:; ls -al $(which go)
lrwxrwxrwx 1 root root 39 Aug 23 09:35 /usr/bin/go -> ../lib/golang/1.17/bin/illumos_amd64/go

Regards.

Would have been great to share that detail prior..

Sorry for that...

I don't think I want to do that, its a bit too far away from my own build experience. I was more thinking you could just do it in your local clone, as an experiment, if you are motivated. Just do a git clone, edit the referenced build tag line, and then do a go build.

Will try, and let you know results... Thanks for your time.

Tried this (changed cmd/mount/mount.go to contain this, after fresh clone):

  1 // Package mount implements a FUSE mounting system for rclone remotes.
  2
  3 //go:build linux || freebsd || illumos
  4 // +build linux freebsd illumos

but:

:; go build
go: downloading bazil.org/fuse v0.0.0-20200524192727-fb710f7dfd05
# bazil.org/fuse
/export/home/predrag_zecevic/go/pkg/mod/bazil.org/fuse@v0.0.0-20200524192727-fb710f7dfd05/error_std.go:26:20: undefined: errNoXattr
/export/home/predrag_zecevic/go/pkg/mod/bazil.org/fuse@v0.0.0-20200524192727-fb710f7dfd05/fuse.go:425:32: undefined: maxWrite
/export/home/predrag_zecevic/go/pkg/mod/bazil.org/fuse@v0.0.0-20200524192727-fb710f7dfd05/fuse_kernel.go:185:28: undefined: syscall.O_DIRECTORY

Seems that only that change is not enough.
Regards.

Not very surprising... Its the third party fuse library which only support linux and freebsd it seems.

Rclone does have two alternative mount implementations, but most likely those would not work out of the box either:

hanwen/go-fuse

billziss-gh/cgofuse

Thanks for testing, though!

Yep! They also do not work (1st gives compilation error, 2nd not, but does not compile it).
Thanks

The last variant, cmount, is a bit special. It requires gcc compiler, and fuse library (package name "fuse2" on arch, "libfuse-dev" on Debian), and must be activated in rclone build with tag: go build -tags cmount. Wasn't expecting you to try this out, so did not mention it...

Have tried (again, fresh clone, edit file):

:; head -8 cmd/cmount/mount.go
// Package cmount implements a FUSE mounting system for rclone remotes.
//
// This uses the cgo based cgofuse library

//go:build cmount && cgo && (linux || darwin || freebsd || windows || illumos)
// +build cmount
// +build cgo
// +build linux darwin freebsd windows illumos

and:

:; go build -tags cmount
# github.com/billziss-gh/cgofuse/fuse
/export/home/predrag_zecevic/go/pkg/mod/github.com/billziss-gh/cgofuse@v1.5.0/fuse/fsop_cgo.go:19:2: error: #error platform not supported
 #error platform not supported
  ^~~~~

Thanks.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.