MantisBT - Doomseeker
View Issue Details
0003537DoomseekerIP2Cpublic2018-10-06 11:262018-12-17 03:34
WubTheCaptain 
Zalewa 
normaltweakN/A
closedfixed 
1.1 
1.21.2 
0003537: Unbake IpToCountry.dat from executable (resources.qrc), make it optional
With IpToCountry.dat being CC BY-SA 4.0 licensed (MaxMind GeoLite2), this has only one-way compatibility of binary distribution under terms of GPLv3-only. Apparently this is undesirable for Zalewa and/or Blzut3 (the maintainers), but seemingly not a blocking issue.

Additionally, an older CC BY-SA 3.0 IP2C dataset in the binary would create a license violation due to having no compatibility at all with LGPLv2.1+/GPLv2+.

Some ideas were proposed in ticket 0003512 of making this (IP2C) optional, so that binaries could be possibly distributed under LGPLv2.1+.
No tags attached.
related to 0003512closed Zalewa MaxMind GeoLite2: Update from CC BY-SA 3.0 licensed dataset to newer CC BY-SA 4.0 licensed work 
related to 0003237closed WubTheCaptain Non-free files and copyright issues in source archive 
parent of 0003543closed WubTheCaptain "This program uses GeoLite2 database..." is displayed in the About dialog regardless if the database is loaded or not 
parent of 0003548closed Blzut3 Release scripts don't bundle IP2C 
related to 0003538closed Zalewa The preferred form of IP2C database for modifications (CSV) is not currently distributed 
Issue History
2018-10-06 11:26WubTheCaptainNew Issue
2018-10-06 11:26WubTheCaptainStatusnew => assigned
2018-10-06 11:26WubTheCaptainAssigned To => Zalewa
2018-10-06 11:27WubTheCaptainNote Added: 0019934
2018-10-06 11:28WubTheCaptainNote Edited: 0019934bug_revision_view_page.php?bugnote_id=19934#r12114
2018-10-06 11:28WubTheCaptainRelationship addedrelated to 0003512
2018-10-06 11:29WubTheCaptainStatusassigned => needs testing
2018-10-06 11:32WubTheCaptainNote Edited: 0019934bug_revision_view_page.php?bugnote_id=19934#r12116
2018-10-06 11:34WubTheCaptainDescription Updatedbug_revision_view_page.php?rev_id=12118#r12118
2018-10-06 11:43WubTheCaptainRelationship addedchild of 0003237
2018-10-06 11:45WubTheCaptainDescription Updatedbug_revision_view_page.php?rev_id=12122#r12122
2018-10-06 12:00WubTheCaptainRelationship addedrelated to 0003538
2018-10-06 12:03WubTheCaptainSeverityfeature => tweak
2018-10-07 09:15ZalewaNote Added: 0019982
2018-10-07 09:26ZalewaNote Added: 0019983
2018-10-07 09:27ZalewaAssigned ToZalewa => Blzut3
2018-10-07 09:27ZalewaStatusneeds testing => assigned
2018-10-07 10:52WubTheCaptainRelationship addedparent of 0003543
2018-10-09 11:16WubTheCaptainRelationship addedparent of 0003548
2018-10-09 11:17WubTheCaptainAssigned ToBlzut3 => Zalewa
2018-10-09 11:17WubTheCaptainStatusassigned => needs testing
2018-10-09 11:27WubTheCaptainNote Added: 0020055
2018-10-09 11:28WubTheCaptainNote Edited: 0020055bug_revision_view_page.php?bugnote_id=20055#r12213
2018-10-09 11:33WubTheCaptainNote Added: 0020056
2018-10-09 11:34WubTheCaptainNote Deleted: 0020056
2018-10-09 11:41WubTheCaptainNote Added: 0020057
2018-10-09 11:41WubTheCaptainNote Edited: 0020057bug_revision_view_page.php?bugnote_id=20057#r12215
2018-10-09 11:43WubTheCaptainNote Edited: 0020057bug_revision_view_page.php?bugnote_id=20057#r12216
2018-10-09 11:43WubTheCaptainNote Edited: 0020057bug_revision_view_page.php?bugnote_id=20057#r12217
2018-10-09 19:27ZalewaNote Added: 0020066
2018-10-09 19:27ZalewaStatusneeds testing => assigned
2018-10-11 19:12ZalewaNote Added: 0020081
2018-10-11 19:12ZalewaStatusassigned => needs testing
2018-10-11 19:12ZalewaNote Edited: 0020081bug_revision_view_page.php?bugnote_id=20081#r12244
2018-10-12 20:57WubTheCaptainNote Added: 0020087
2018-10-12 20:57WubTheCaptainStatusneeds testing => resolved
2018-10-12 20:57WubTheCaptainFixed in Version => 1.2
2018-10-12 20:57WubTheCaptainResolutionopen => fixed
2018-10-12 20:57WubTheCaptainRelationship replacedchild of 0003548
2018-10-13 16:35WubTheCaptainRelationship replacedparent of 0003548
2018-10-13 17:26WubTheCaptainRelationship replacedrelated to 0003237
2018-10-27 22:53WubTheCaptainStatusresolved => closed
2018-12-17 03:34WubTheCaptainCategorySuggestion => IP2C

Notes
(0019934)
WubTheCaptain   
2018-10-06 11:27   
(edited on: 2018-10-06 11:32)
0003512:0019932:

Quote from Zalewa
Quote from Zalewa

6. Remove IpToCountry.dat from resources.qrc
7. Get Doomseeker into state where it can run without the IP2C database altogether. The '?' flags shouldn't be displayed. Instead no flags should be displayed apart the icons for LAN and localhost servers.
8. Ensure Doomseeker is capable of reading the personally downloaded IP2C database from the "IP2C update" feature without having any other copy of the database lying around. The country flags should reappear.
9. Add IpToCountry.dat from the repo to Doomseeker's distribution/installation as a separate file
10. Ensure Doomseeker will read this file if there's no personally downloaded IP2C database.
11. Ensure Doomseeker will read the personally downloaded IP2C database instead of the preinstalled file if such downloaded IP2C database is ready.


This part should be covered by this commit:'https://bitbucket.org/Doomseeker/doomseeker/commits/c0cce7ea738d5570e12a0d4adfd26ffe672cb7c0
[^]'

(0019982)
Zalewa   
2018-10-07 09:15   
Solution furthered by this commit:'https://bitbucket.org/Doomseeker/doomseeker/commits/ad48cade47f154f56970ecf117a8306748c08199 [^]'

DOOMSEEKER_IP2C_DAT option was added to CMake to make the IpToCountry.dat installation truly optional. This option has no default value as IpToCountry.dat file was removed from the main repo. Despite my concerns about complicating the build I have moved all IP2C related stuff to a separate doomseeker-blobs repository here:'https://bitbucket.org/Doomseeker/doomseeker-blobs/src [^]'

I suppose `releasescripts` will need to be updated now to accomodate for that.
(0019983)
Zalewa   
2018-10-07 09:26   
Compilation instructions updated:'https://bitbucket.org/Doomseeker/doomseeker/commits/13bf2040a055181d3403a575a489701c03f214bc [^]'
(0020055)
WubTheCaptain   
2018-10-09 11:27   
(edited on: 2018-10-09 11:28)
[11:26:07] Please wait. IP2C database is being read. This may take some time.
[11:26:07] Parsing IP2C database: data:IpToCountry.dat
[11:26:07] Unable to open IP2C file.
[11:26:08] Init finished.
================================
[11:26:08] IP2C parsing thread has finished.
[11:26:08] Failed to read IP2C database. Reverting...
[11:26:08] IP2C revert attempt failed. Nothing to go back to.
[11:26:08] Trying to use preinstalled IP2C database.
[11:26:08] Parsing IP2C database: data:IpToCountry.dat
[11:26:08] Unable to open IP2C file.
[11:26:08] Total refresh initialized!
[11:26:08] IP2C parsing thread has finished.
[11:26:08] Failed to read IP2C fallback. Stopping.


Probably as intended? Although, the paths are not obvious.

(0020057)
WubTheCaptain   
2018-10-09 11:41   
(edited on: 2018-10-09 11:43)
There's a caveat to know here:
  • Qt4 uses `$HOME/.local/share/data/doomseeker`.
  • Qt5 uses `$HOME/.local/share/doomseeker`.

Migrating from Qt4 to Qt5 will not find the IpToCountry.dat file again. Unlike demos directory, no symlink is created for the transition. This might be acceptable, though.

(0020066)
Zalewa   
2018-10-09 19:27   
Quote from WubTheCaptain


[11:26:07] Parsing IP2C database: data:IpToCountry.dat


I think it would be preferable to print the actual path from which the database is loaded. I'll amend that.

Quote from WubTheCaptain

Migrating from Qt4 to Qt5 will not find the IpToCountry.dat file again. Unlike demos directory, no symlink is created for the transition. This might be acceptable, though.

We trust Qt with this one. I don't think we have code that migrates from Qt4 to Qt5. We only have code that migrates from pre-1.2 our own paths schema to 1.2 paths that come from QStandardPaths (Qt5) / QDesktopServices (Qt4).

This discrepancy may be a problem, though. Perhaps it deserves a separate ticket as it may cause people to lose data when they migrate from Qt4 version to Qt5.
(0020081)
Zalewa   
2018-10-11 19:12   
This commit should improve the logged path as well as explicitly handle the cases where the database is not available:
'https://bitbucket.org/Doomseeker/doomseeker/commits/be66799d17da33514b7095e0744d08d71e1892b1 [^]'

Also, a related minor text fix:
'https://bitbucket.org/Doomseeker/doomseeker/commits/b9e0c79a5b5ef422e46c88547cb33be986b7e4b7 [^]'

(0020087)
WubTheCaptain   
2018-10-12 20:57   
[20:53:05] Initializing IP2C database.
[20:53:05] Initializing passwords configuration file.
[20:53:05] Initializing configuration for plugins.
[20:53:05] Initializing IRC configuration file.
[20:53:05] Setting IRC INI file: /home/wub/.config/doomseeker/doomseeker-irc.ini
[20:53:05] Starting refreshing thread.
[20:53:05] Preparing GUI.
[20:53:05] Did not find any IP2C database. IP2C functionality will be disabled.
[20:53:05] You may install an IP2C database from the "File" menu.
[20:53:05] Init finished.
================================
[20:53:05] Total refresh initialized!
[20:53:08] Finished refreshing. Servers on the list: 480 (+1 custom, +0 LAN). Players: 124.