babolivier / cozy-archlinux

Old Archlinux packaging for Cozy v2
4 stars 0 forks source link

[Bug] Infinite 'Domain name of your Cozy [cozy.example.tld]:' loop #9

Closed toothstone closed 8 years ago

toothstone commented 8 years ago

When installing cozy-nginx 1.6.1 or cozy-apache from the AUR, the installer gets stuck when asking for the domain name. It's outputting "==> Domain name of your Cozy [cozy.example.tld]:" constantly and does not accept any input.

babolivier commented 8 years ago

Hi @toothstone,

This is abnormal. As seen in this loop, the install script should get out of the loop whenever the input is not null.

What do you mean by does not accept any input? Do you mean you can't input anything? Or that, whatever you input, it doesn't exit the loop?

babolivier commented 8 years ago

Hi @toothstone,

I have a good news and a bad news. The bad news is that I haven't found a fix to your problem yet. The good one, however, is that it also happens on my side. Something must have changed in an update of the programms involved (bash, read, etc). I don't know, I'm just speculating.

Anyway, I'll work on this this week-end. I'm almost done with a great revamp I had to do on the package, and hope to release it this week-end along with the fix on the AUR.

toothstone commented 8 years ago

What do you mean by does not accept any input?

It just continues forever, no matter what I input or if I press return. Only Ctrl-C stops it.

Great that you could reproduce the problem, I hope you will find the problem :)

babolivier commented 8 years ago

OK, here's a summary of what I found and how we'll work around this problem.

Since a few versions of pacman (I don't know which one introduced it), stdin is closed while running install functions. That explains why read can't reach the standard input, and starts an infinite loop. This change has been made in order to get closer to pacman philosophy, which is more an installation utility than a configuration utility.

That's why I've decided to split the installation procedure. Everything that doesn't require user input will stay in the .install script, and everything that does (in our case, setting the Cozy's domain name and generating certificates) will go to a separate bash script located in /usr/bin, that will need to be run manually by the user after the installation is complete.

What I like in this solution is that, more than a workaround to this problem, it allows the user to easily reconfigure its Cozy's domain name, just by running the script whenever he wants it.

So yep, no more read in the install functions.

An update should be out later today on the AUR (if you're using the cozy-standalone do NOT update yet, I messed with git yesterday and I'm not sure at all that the package there is stable) containing the fix, so I'll consider this issue closed.