Pydio Cells & FreeBSD

Hi!

Is FreeBSD already supported by Cells or will it be supported in the future?

Thanks

2 Likes

Hi,
i don’t know the specifics of freeBSD but in theory if it’s based like debian and ubuntu , centos etc… it should be possible to make that work, you just need php php-fpm and some php-packages, a database and then launch a binary, if freebsd has those abilities it should be working then, we will be working a guide if it meets all the criteria.

sounds good, thanks!

Hi!
Since there hasn’t been any official news on this and Pydio 8 now reaches it’s end of life:
Is a FreeBSD binary planned
Has anyone succeeded in installing and maintaining Pydio Cells on FreeBSD without building from sources?

Thanks!

Hello @basbebe,

There was someone on the forum that might have a clue for this,

We have only binaries for, linux (amd64) macos (darwin) and windows, we actually bought a raspberry pi 4 and will add a build for arm64.

Hi @zayn,
Thanks for the reply!
I quickly checked to see wether pydio cells might work for me.
But I’m stuck pretty early.
I downloaded pydio to my /tmp folder and tried to execute it:

❯ la
total 137463
-rw-r--r--  1 root  wheel     0B 19 Dez. 10:21 ?
drwxrwxrwt  2 root  wheel     2B 18 Dez. 15:05 .font-unix
drwxrwxrwt  2 root  wheel     2B 18 Dez. 15:05 .ICE-unix
drwxrwxrwt  2 root  wheel     2B 18 Dez. 15:05 .X11-unix
drwxrwxrwt  2 root  wheel     2B 18 Dez. 15:05 .XIM-unix
-rwxr-x---  1 root  wheel   201M 19 Nov. 10:50 cells

❯ ./cells install
ELF binary type "0" not known.
zsh: exec format error: ./cells

The rc.d script by @GwynethLlewelyn will surely come in handy later, but first I don’t know how to start the bin…

I already stumbled upon @megapearl 's thread here:

But there also was no solution.

I build from sources and now got this:

/usr/local/www/cells root@cloud
❯ ./cells install
[Configs] Upgrading: setting default config services/pydio.web.oauth/secret to shFjJp5uqi1uj-10JKQk-If5-FKM1ekb
[Configs] successfully saved config after upgrade - Reloading from source

Welcome to Pydio Cells Home Edition installation
Pydio Cells Home Edition will be configured to run on this machine. Make sure to prepare the following data
 - IPs and ports for binding the webserver to outside world
 - MySQL 5.6+ (or MariaDB equivalent) server access
Pick your installation mode when you are ready.

panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x20 pc=0x4bf7449]

goroutine 1 [running]:
github.com/pydio/cells/vendor/github.com/zalando/go-keyring.Get(...)
	/root/go/src/github.com/pydio/cells/vendor/github.com/zalando/go-keyring/keyring.go:32
github.com/pydio/cells/common/crypto.GetKeyringPassword(0x222f814, 0x13, 0x221f345, 0xe, 0x0, 0x98, 0x1ffe240, 0xc000ca5350, 0x100000000000002, 0x98)
	/root/go/src/github.com/pydio/cells/common/crypto/keyring.go:35 +0x29
github.com/pydio/cells/common/config/vault.(*VaultSource).initMasterPassword(0xc0007dd7c0)
	/root/go/src/github.com/pydio/cells/common/config/vault/source.go:152 +0xe3
github.com/pydio/cells/common/config/vault.NewVaultSource(0xc000afe810, 0x2a, 0xc000afe840, 0x29, 0x0, 0x0, 0x0, 0x0, 0xc000ca3e70)
	/root/go/src/github.com/pydio/cells/common/config/vault/source.go:51 +0x184
github.com/pydio/cells/common/config.Vault.func1()
	/root/go/src/github.com/pydio/cells/common/config/secrets.go:47 +0x393
sync.(*Once).doSlow(0x6e182d0, 0x2361848)
	/usr/local/go/src/sync/once.go:66 +0xe3
sync.(*Once).Do(...)
	/usr/local/go/src/sync/once.go:57
github.com/pydio/cells/common/config.Vault(0xc000b41200, 0x1b6bea0)
	/root/go/src/github.com/pydio/cells/common/config/secrets.go:28 +0x65
github.com/pydio/cells/common/config.Set(0x1b6bea0, 0xc000bda500, 0xc000bdd740, 0x2, 0x2)
	/root/go/src/github.com/pydio/cells/common/config/vars.go:168 +0x17d
github.com/pydio/cells/cmd.glob..func33(0x67aefa0, 0x6e181c8, 0x0, 0x0)
	/root/go/src/github.com/pydio/cells/cmd/install.go:144 +0xbb4
github.com/pydio/cells/vendor/github.com/spf13/cobra.(*Command).execute(0x67aefa0, 0x6e181c8, 0x0, 0x0, 0x67aefa0, 0x6e181c8)
	/root/go/src/github.com/pydio/cells/vendor/github.com/spf13/cobra/command.go:760 +0x2aa
github.com/pydio/cells/vendor/github.com/spf13/cobra.(*Command).ExecuteC(0x67afde0, 0xc000b84d90, 0x1, 0x2)
	/root/go/src/github.com/pydio/cells/vendor/github.com/spf13/cobra/command.go:846 +0x2ea
github.com/pydio/cells/vendor/github.com/spf13/cobra.(*Command).Execute(...)
	/root/go/src/github.com/pydio/cells/vendor/github.com/spf13/cobra/command.go:794
github.com/pydio/cells/cmd.Execute()
	/root/go/src/github.com/pydio/cells/cmd/root.go:219 +0x11b
main.main()
	/root/go/src/github.com/pydio/cells/main.go:119 +0x68

I found @GwynethLlewelyn 's solution she posted here:

also

since this was in May I had hoped that this had been adressed.
If I make these changes to the source file, what will happen when I upgrade cells through the UI later?

Sadly, it seems that you’ll have to make the change again and again… that’s what I used to do back in May/June. Note that when compiling Pydio Cells from the source I could not upgrade it through the UI (it remains ‘stuck’ on version 0.1.0 or something); this is to be expected since FreeBSD is not supported by Pydio, and so the auto-update feature will not be able to download a FreeBSD binary… that seems logical, of course, but I was baffled the first time I managed to compile Cells. It won’t even be able to figure out if there is a new version… you’ll have to do all the downloading/compiling on your own — in my case, I used git to periodically get the latest code, patch it manually with the changes I suggested, and compile it from scratch again and again…

Note that the main issue here is that Pydio Cells ‘assumes’ that there is OS support of keyrings, which seems to be the case with Linux and macOS (and possibly Windows as well), although, of course, each case works differently. The package mentioned (github.com/zalando/go-keyring) is used by the Pydio developers to encapsulate keyring access in a transparent manner; sadly, though, FreeBSD doesn’t support keyrings at the OS level — @zalando, however, was clever enough to include an option for user-level keyrings, for those OSes that don’t have OS-level keyring support, and this used to work well under FreeBSD 16.04; the only change that was required was to force Cells to allow that feature of the go-keyring package to be used (by default, Cells’ code will fail, as you have noticed). Note that technically the Pydio dev team could make that change ‘forever’ (because it won’t hurt any other OS with built-in keyring support) but I can very well understand that they won’t change their well-tested code with an ‘unknown feature’…

Unfortunately, I have not been able to get the latest version of Pydio Cells compiled under FreeBSD, either, but to be honest, I haven’t been trying hard enough :slight_smile:

thanks @GwynethLlewelyn for your reply!

That is quite the bummer.
At this point it seems like I’ll have to switch to another filesharing system if there still is no way to run Pydio cells on FreeBSD…

It’s been a while, but I’ve created a FreeBSD port of Pydio Cells v2 now: FreshPorts -- www/pydio-cells: Nextgen file sharing platform for organizations If you’re gonna use it as package - wait for 2.2.7_1, as 2.2.7 is currently broken. The tests are currently failing on go-keyring, but I’ll fix it in 2.2.7_2.
I didn’t notice that the unit tests were broken before, the build succeeded, and I’m currently using 2.2.7_1 in production with little to no issues.
If you try the port - please write your feedback (good or bad) to my mail, you’ll find it in the port’s MAINTAINER section.

1 Like