Calamares using Google for GeoIP

I was taking a look last night at the EOS git and a little bit caught my eye. The mirror update script for the Calamares installer looks to use Google for GeoIP.

https://github.com/endeavouros-team/install-scripts/blob/master/update-mirrorlist

I understand this is minor or irrelevant to some but I feel this can be something folks like myself trying to keep more and more information from Google every day may be concerned with.

I’m happy to look into other GeoIP options if people are open to replacing that bit.

I’d even argue for making GeoIP optional and allow users to select a location first. Its been a bit since I’ve run the installer so I could be forgetting if that option is there already or not?

8 Likes

It just occurs to me that there isn’t much information they could extract at that point in time - the ‘computer system’ is a live build, the user has not entered a name or other info yet, and the IP is likely to change when in use anyway (assuming a VPN). You’re taking much more of a chance using Chrome, or GMail, or anything else on the internet!

IMHO, of course…

PS: interesting, though - thanks for having your eye caught.

1 Like

Oh I don’t disagree, and you’re not wrong on any point there.

I’m just of the opinion that if there is another option not from a privacy hostile company it should be used or to allow for GeoIP to be skipped entirely/disabled. I’ll have to run the installer in a VM and see if the option exists already

1 Like

Fair enough - but I tend to think that it’s a good thing to make whatever use you can of their services - WHEN they can’t extract anything useful out of your choice. I like to think of being part of their expenses, without providing a return :grin:

If I remembered enought well, we used before this server geoip.kde.org but we were limited by this below until it was closed at a moment having to many problems without stability so that’s why we choose a server we are sure to win stability:

You’re allowed up to 15,000 queries per hour by default. Once this limit is reached, all of your requests will result in HTTP 403, forbidden, until your quota is cleared

GeoIP on Calamares is not easy to deal with, there is a lot of work to be done still on this part, you could help for it.

4 Likes

Alright I see fair enough, so need something that doesn’t 403 queries after a basically a hand full in this context. I’ll look into other good options and how its handled with Calamares as I’m just now familiarizing myself with it.

1 Like

Good point though…
Ideally we don’t have to ask Google even: “What time it is?” :upside_down_face:

Surely there should be some GNU alternative somewhere out there or something

1 Like

Why use GeoIP at all? Just prompt the user for location.

I agree, it is a breach of privacy. Perhaps quantitatively a minor one, without any real consequences, but qualitatively it is still a script which contacts a third-party owned server without the user’s consent.

If your installer needs to know the user’s location (it doesn’t, btw), it should ask the user for it, GeoIP, if used at all, ought to be strictly optional in case the user is lazy or ignorant to input it himself.

3 Likes

Im already trying to figure out how exactly to add this sort of toggle option, GeoIP can be disabled in the configuration file we just need an option that explicitly asks the user if they wish to use it and enables/disables it based on preference. Ive never worked with QT or Python so its gonna take a bit of learning. The config files are really straight forward and according to the documentation shouldnt be bundled directly into calamares but have its own dir.

What i figure is before we start locale we can explicitly ask the user if they wish to use GeoIP and make them aware that this contacts a 3rd party not associated with EOS when doing so.

EDIT: Just to clarify, Im working on this atm under no expectation this is even a concern. Im learning how Calamares works and bits about QT/Python that it uses as its all magic to me at this point. This will likely not come to anything but experimentation by myself

1 Like

On another point @Kresimir made the easier solution would be to just have a locale list based on Arch Mirror List locale options if we’re going to use it for mirror updating and disable GeoIP entirely and have them select a locale

2 Likes

inside install process (calamares) we do use the KDE GeoIP service:


the script mentioned above is used inside welcome-app only (as far as i know) for updating-mirrorlist manually from the app.

We can disable the use of GeoIP search for calamares in configuration, but then the user will need to set up all of the locales related manually, and the GeoIP search happens only onetime on starting calamares before user do any input on setting up the install.

@manuel can give some info and can explain the google thing inside the script better?
The only thing i know here is that the KDE gossip service is not stable all the time and can wen offline out of a sudden, which would result in failing to create a mirror list.

4 Likes

Its in the install scripts which was linked under the netinstall section on the ISO wiki so that would be what caused my confusion if this is the case.

Im still going to play around with making a Calamares Page for disabling Geo IP for the installer so i can learn how this thing works. Beyond that Im still uncomfortable using google for any sort of location data but this is not on me to decide or a concern for EOS team at this time Im sure. Till i can find a usable solution people can agree with I will avoid the online install.

Oh boi :sweat_smile:, looks like i got some work ahead of me according to the Calamares IRC

But you’re going to have a heck of a time, I think: most of the modules do a GeoIP lookup – if configured for that – when the configuration file is loaded, and everything is loaded at startup. There’s not really an opportunity for UI before those lookups.

i really do enforce you to go forward on hacking gui part of calamares :wink:
We do not start with that as we try to keep it simple, and no one of the dev team currently have the time or knowledge to do so.
But hell yea you are welcome to start with it.

2 Likes

The update-mirrorlist script is used only in the installer.
A similar way to find location is used in reflector-simple.
Both scripts use location information for creating mirrorlist automatically, without needing user intervention.

Both scripts have several ways of detecting location. If one way fails, then another way is tried. At the time of writing them, google’s way was the fastest, that’s why it is the first method that will be executed.

If automatic location detection is not used, then some programs like calamares and reflector-simple need to be changed to ask for the location from the user.

Im not sure I do after asking some questions on the Calamares IRC :joy: but heck, ive been looking for something to tinker with. The problem is Geo IP is run first think at launch and possibly in other modules unless explicitly disabled so itll be a time

1 Like

Alright thanks for coming by to clarify that its not used how i thought it was initially.

Im a bit on the Google paranoid side trying to keep anything i dont specifically allow Google to have away from them so Google + GeoIP set off the alarms for me. Im going to spend some time seeing if there is a reliable option that isnt them and tinkering with Calamare/ the installer to see if i can make going without Geo IP for paranoid folks like me more seamless

That’s very understandable.

There are some other location providers, but their reliability is also a question mark.
The update-mirrorlist uses ipinfo.io (registered in CA, US) if google services fail.
To be honest, I don’t know how reliable that provider is. Hopefully someone here knows it and shares the info.

If you find the right spot, this auto-location could be made as an option, off by default.
And if possible, Calamares should somehow inform (via a file?) the update-mirrorlist script whether auto-location is allowed or not.

When you will use Calamares millions of time to test, maybe at a moment you would decide to let automatically the installer choose the GeoIp for you ! :smile:

What I don’t like in adding this choice, is still a step more to setup we don’t need !
There are already enought to setup on Calamares for user, not sure is a good way to add this choice still, it remembers me the dictatorchoice, but change the detection GeoIp server from google, why not if one exists !