Open source packages in the Veikkaus app

I haven’t used the Veikkaus app for a long time, but launched it today on my iPhone. The app had been updated at some point and now wanted to have access to the local network. Which I obviously denied. Why on earth the app for gambling (lottery and such) for money would need to access my local network? Not granted.

Also, what I found interesting is that the reason for the access request was in English, not Finnish, though my device locale and language is set to Finnish, and the app otherwise is Finnish. Is this something Veikkaus messed up, or Apple? Anyways, for a normal non-tech Finnish user, the UX of this permission request was not good at all.

Anyways, that got me interested, and I tried to find a setting from the app that perhaps could tell me more. Didn’t find the setting, but saw that they list the open course components used in the app.

Using open source is always something that interests me. Especially as I was a teacher in an open source software development focused course in our curriculum – a course deprecated long time ago. I remember the first time seeing the Linux license in the papers of the new Sony TV I bought, how it astonished me at that time. That even televisions now contain open course software and include the licenses of such in their packages, on paper (at least then).

I clicked the link in the app to see the components, but for some reason, the list displayed only for a second and then disappeared. I tried again and again, but to no avail. Then I copied the link and pasted it in Safari browser in the phone. Similar issues there too.

Then I sent the link to my laptop, but also there I had the same issues. Next I resorted to curl in the terminal, redirecting the html to a file and opened that in Safari. Again, issues.

 curl https://msa.veikkaus.fi/licenses/mobile_lisenssit.html > lisenssit.html

The html itself is very simple, just the basic opening elements and then a list of the components and their licenses within a <pre> element.

I renamed the html file curl to xml and opened it in Xcode. The file is a 2.7 Mb file, containing not only the list of components the app uses, but also the different actual license texts listed. No wonder the file is so large and browsers have issues with it.

Anyways, the license texts (MIT, BSD, Apache, etc.) start from the line 1 374, after listing the open source components. Though some of the components are listed twice, with identical version numbers – don’t know why, so the true number of used components may be much smaller. Also, there are empty lines in the original html, so that also must be considered.

@adrianso/react-native-device-brightness              1.2.7         MIT                                                                                                                     
@graphql-typed-document-node/core                     3.2.0         MIT                                                                                                                     
tslib                                                 2.6.2         0BSD                                                                                                                    
tslib                                                 2.6.2         0BSD                                                                                                                    
@wry/context                                          0.7.3         MIT                                                                                                                     
@wry/context                                          0.7.3         MIT                                                                                                                     

After stripping out empty lines (and lines with whitespace characters, searching and replacing) and duplicates using sort and uniq command line tools…

 more cleaned-list.xml | sort | uniq > final.xml

… I can see that there are a total of 1 064 open source components used by the Veikkaus app, including often different versions of the same component:

@babel/compat-data                                    7.26.8        MIT
@babel/core                                           7.22.15       MIT
@babel/core                                           7.26.9        MIT
@babel/generator                                      7.22.15       MIT
@babel/generator                                      7.23.6        MIT
@babel/generator                                      7.25.6        MIT
@babel/generator                                      7.26.9        MIT
@babel/generator                                      7.28.6        MIT
@babel/helper-annotate-as-pure                        7.22.5        MIT
@babel/helper-annotate-as-pure                        7.24.7        MIT
...
which                                                 2.0.2         ISC
which-country                                         1.0.0         MIT
wonka                                                 6.3.5         MIT
wrap-ansi                                             7.0.0         MIT
wrappy                                                1.0.2         ISC
write-file-atomic                                     4.0.2         ISC
ws                                                    6.2.3         MIT
ws                                                    7.5.10        MIT
ws                                                    8.18.1        MIT
xcode                                                 3.0.1         Apache-2.0
xml2js                                                0.6.0         MIT
xmlbuilder                                            11.0.1        MIT
xmlbuilder                                            15.1.1        MIT
xtend                                                 4.0.2         MIT

I guess this is what modern software development is, nowadays. Or maybe their software BOM (Bill Of Materials) is not quite up to date, don’t know.

(You may wonder why do lottery? Well, I know very well about the odds of actually winning large sums of money. But sometimes the modern (work) life is so … so something that the hope of getting rid of it all is so overwhelming that I resort to desperate actions… The money I spend is very little, and this happens only spuriously, so no need to worry about any gaming addiction.)