fvwmorg / fvwm3

FVWM version 3 -- the successor to fvwm2
Other
515 stars 78 forks source link

Go and no go #350

Closed dirteat closed 3 years ago

dirteat commented 3 years ago

Go is a nice language, but what it does sometimes is not... I am here emitting an opinion that when I am looking for something like fvwm, I am not really happy to see that in the configure:

make[3]: Entering directory '/root/repos/fvwm3/BUILD/fvwm3-1.0.1/bin/FvwmPrompt' go build -o FvwmPrompt -v go: downloading github.com/abiosoft/ishell v2.0.0+incompatible go: downloading github.com/sirupsen/logrus v1.6.0 go: downloading github.com/fatih/color v1.9.0 go: downloading github.com/mattn/go-colorable v0.1.4 go: downloading github.com/mattn/go-isatty v0.0.12 go: downloading github.com/flynn-archive/go-shlex v0.0.0-20150515145356-3f9db97f8568 go: downloading github.com/abiosoft/readline v0.0.0-20180607040430-155bce2042db go: downloading golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4

Too many reasons to hate this, I certainly don't need to explain why for people loving a piece of software having spawned decades :(

For the time being I am disabling it with --disable-go; still I hope I'll be able to get as many nice tools as in fvwm2.

Thank you :) Cheers.

ThomasAdam commented 3 years ago

Hi @dirteat

Other than a philosophical dislike of change, is there a technical reason why you're objecting to this?

It's optional for the time-being -- and may even remain so, but I will be expanding Go as a module language in the future.

dirteat commented 3 years ago

Yes :)

Any build server on any distro will never allow this for obvious security reasons. Therefore, it kills the purpose of an autotool system, also makes the source code harder to compile (out of internet access) because of hidden dependencies, and always hide versioning of needed packages to both the developers and the packagers/users.

I will be expanding Go as a module language in the future.

That's not a pb per se, but the way Go has its deps resolved and solved by brute force downloading is pure madness. And not everyone gets an internet connection, especially people interested in fvwm!

Thanks for the explanation, Cheers.

ThomasAdam commented 3 years ago

Hi @dirteat

It's there purely for CI purposes on platforms such as Github Actions and Travis CI. Downstream packages of Golang modules already do their own thing, and having those dependencies already installed means the "go build ..." step I've put in is obsolete anyway.

So it's a no-op for most, a convenience at best, and security flaw? Well, you'll have to take that up with golang.org, but it's no better/worse than npm or pip, so your argument is already moot.