It appears to me that the problem is that geoclue_position_get_position() is not blocking until a response comes from geoclue *OR* its possible that the ubuntu-geoip is doing the wrong thing and is fooling geoclue into thinking there's a response, but since the fields come back as not set, I think its geoclue working in a confusing way.
As a workaround, I added a sleep loop that waits 1 second between retries, which should be long enough if you boot up with network connectivity.
Long term, redshift should be trying repeatedly to get a location forever, not just at startup. If I put my laptop to sleep in Los Angeles, and get on a plane to New York, I'd like for redshift to adjust. This would also make it more resilient to not having a defined location at startup. It should basically just refuse to start messing with the display until a location is available.
It appears to me that the problem is that geoclue_ position_ get_position( ) is not blocking until a response comes from geoclue *OR* its possible that the ubuntu-geoip is doing the wrong thing and is fooling geoclue into thinking there's a response, but since the fields come back as not set, I think its geoclue working in a confusing way.
As a workaround, I added a sleep loop that waits 1 second between retries, which should be long enough if you boot up with network connectivity.
Long term, redshift should be trying repeatedly to get a location forever, not just at startup. If I put my laptop to sleep in Los Angeles, and get on a plane to New York, I'd like for redshift to adjust. This would also make it more resilient to not having a defined location at startup. It should basically just refuse to start messing with the display until a location is available.