MantisBT - Doomseeker
View Issue Details
0003512DoomseekerIP2Cpublic2018-09-22 23:202018-12-17 03:34
WubTheCaptain 
Zalewa 
highmajoralways
closedfixed 
1.1 
1.21.2 
0003512: MaxMind GeoLite2: Update from CC BY-SA 3.0 licensed dataset to newer CC BY-SA 4.0 licensed work
The about dialog in Doomseeker says MaxMind GeoLite2 is included and under CC BY-SA 3.0 license. This is no longer true today, if updated stuff is shipped?

Also, CC BY-SA 3.0 would be incompatible with all other licenses. CC BY-SA 4.0 allows distributing the combined work (binaries with inclusion of GeoLite2) under terms of GPLv3-only.
  1. Launch Doomseeker.
  2. Navigate to Help β†’ About.
  3. In this "About Doomseeker" dialog window, notice the following text.


Quote
GeoLite2 License:
This work is licensed under the Creative Commons Attribution - ShareAlike 3.0 Unported License. To view a copy of this license, visit'http://creativecommons.org/licenses/by-sa/3.0/.
[^]'
0003237.

media/SOURCES.txt says CC BY-SA 4.0 properly.
No tags attached.
parent of 0003538closed Zalewa The preferred form of IP2C database for modifications (CSV) is not currently distributed 
parent of 0003543closed WubTheCaptain "This program uses GeoLite2 database..." is displayed in the About dialog regardless if the database is loaded or not 
related to 0003537closed Zalewa Unbake IpToCountry.dat from executable (resources.qrc), make it optional 
child of 0003237closed WubTheCaptain Non-free files and copyright issues in source archive 
Issue History
2018-09-22 23:20WubTheCaptainNew Issue
2018-09-22 23:20WubTheCaptainSteps to Reproduce Updatedbug_revision_view_page.php?rev_id=11942#r11942
2018-09-22 23:21WubTheCaptainRelationship addedchild of 0003237
2018-09-22 23:48WubTheCaptainPrioritynormal => high
2018-09-24 01:19Blzut3Target Version => 1.2
2018-09-24 21:52Pol MAssigned To => Pol M
2018-09-24 21:52Pol MStatusnew => assigned
2018-09-24 22:07Pol MNote Added: 0019721
2018-09-24 22:13WubTheCaptainStatusassigned => needs review
2018-09-24 22:13WubTheCaptainNote Added: 0019722
2018-09-24 23:42WubTheCaptainNote Added: 0019729
2018-09-25 15:26Pol MNote Added: 0019754
2018-09-25 15:27Pol MNote Edited: 0019754bug_revision_view_page.php?bugnote_id=19754#r12003
2018-09-25 15:28Pol MNote Edited: 0019754bug_revision_view_page.php?bugnote_id=19754#r12004
2018-09-25 18:06WubTheCaptainNote Added: 0019758
2018-09-25 18:13Pol MNote Added: 0019759
2018-09-25 20:50ZalewaNote Added: 0019764
2018-09-25 23:42WubTheCaptainNote Added: 0019768
2018-09-25 23:46WubTheCaptainStatusneeds review => assigned
2018-09-25 23:55WubTheCaptainNote Added: 0019769
2018-09-26 00:05WubTheCaptainNote Added: 0019770
2018-09-26 01:25WubTheCaptainNote Added: 0019774
2018-09-26 01:27WubTheCaptainNote Edited: 0019774bug_revision_view_page.php?bugnote_id=19774#r12022
2018-09-26 01:42WubTheCaptainNote Added: 0019775
2018-09-26 01:46WubTheCaptainCategoryBug => Suggestion
2018-09-26 01:46WubTheCaptainSummaryMaxMind GeoLite2: Outdated CC BY-SA 3.0 license statement in "About Doomseeker" dialog => MaxMind GeoLite2: Update from CC BY-SA 3.0 licensed dataset to newer CC BY-SA 4.0 licensed work
2018-09-26 01:47WubTheCaptainNote Added: 0019776
2018-09-26 01:49WubTheCaptainNote Edited: 0019776bug_revision_view_page.php?bugnote_id=19776#r12024
2018-09-26 05:42ZalewaNote Added: 0019779
2018-09-26 05:42ZalewaNote Edited: 0019779bug_revision_view_page.php?bugnote_id=19779#r12026
2018-09-26 12:08WubTheCaptainNote Added: 0019780
2018-09-26 13:00WubTheCaptainNote Added: 0019781
2018-09-27 01:11Blzut3Note Added: 0019782
2018-09-27 02:10WubTheCaptainNote Added: 0019784
2018-09-27 02:11WubTheCaptainNote Edited: 0019784bug_revision_view_page.php?bugnote_id=19784#r12031
2018-09-28 20:36Pol MNote Added: 0019798
2018-09-29 11:32ZalewaNote Added: 0019815
2018-09-29 13:28WubTheCaptainNote Added: 0019818
2018-09-30 01:50Blzut3Note Added: 0019834
2018-09-30 07:12ZalewaNote Added: 0019838
2018-10-01 04:58Blzut3Note Added: 0019854
2018-10-01 17:05Pol MNote Added: 0019862
2018-10-01 17:09Pol MNote Edited: 0019862bug_revision_view_page.php?bugnote_id=19862#r12068
2018-10-01 17:31ZalewaNote Added: 0019866
2018-10-01 17:33ZalewaNote Edited: 0019866bug_revision_view_page.php?bugnote_id=19866#r12072
2018-10-01 17:33WubTheCaptainNote Added: 0019867
2018-10-01 17:34ZalewaNote Edited: 0019866bug_revision_view_page.php?bugnote_id=19866#r12073
2018-10-01 17:36ZalewaNote Added: 0019868
2018-10-01 17:39ZalewaNote Edited: 0019868bug_revision_view_page.php?bugnote_id=19868#r12075
2018-10-01 18:47Pol MNote Added: 0019876
2018-10-01 18:49Pol MAssigned ToPol M =>
2018-10-01 18:51Pol MStatusassigned => confirmed
2018-10-04 21:42ZalewaAssigned To => Zalewa
2018-10-04 21:42ZalewaStatusconfirmed => assigned
2018-10-04 21:42ZalewaNote Added: 0019909
2018-10-06 11:14ZalewaNote Added: 0019932
2018-10-06 11:15ZalewaNote Edited: 0019932bug_revision_view_page.php?bugnote_id=19932#r12111
2018-10-06 11:16ZalewaNote Edited: 0019932bug_revision_view_page.php?bugnote_id=19932#r12112
2018-10-06 11:20WubTheCaptainNote Added: 0019933
2018-10-06 11:26WubTheCaptainNote View State: 0019932: private
2018-10-06 11:28WubTheCaptainRelationship addedrelated to 0003537
2018-10-06 11:31WubTheCaptainNote Edited: 0019932bug_revision_view_page.php?bugnote_id=19932#r12115
2018-10-06 11:31WubTheCaptainNote View State: 0019932: public
2018-10-06 11:31WubTheCaptainNote Deleted: 0019933
2018-10-06 11:50WubTheCaptainRelationship addedrelated to 0003538
2018-10-06 11:54WubTheCaptainNote Edited: 0019932bug_revision_view_page.php?bugnote_id=19932#r12125
2018-10-06 11:55WubTheCaptainNote Added: 0019938
2018-10-06 12:01WubTheCaptainRelationship deletedrelated to 0003538
2018-10-06 12:37WubTheCaptainRelationship addedparent of 0003538
2018-10-06 12:38WubTheCaptainRelationship replacedrelated to 0003538
2018-10-06 12:42WubTheCaptainRelationship replacedparent of 0003538
2018-10-06 12:51WubTheCaptainNote Added: 0019942
2018-10-06 12:51WubTheCaptainStatusassigned => feedback
2018-10-06 12:53WubTheCaptainNote Added: 0019943
2018-10-06 12:53WubTheCaptainStatusfeedback => assigned
2018-10-06 12:54WubTheCaptainStatusassigned => feedback
2018-10-06 12:54WubTheCaptainNote Edited: 0019942bug_revision_view_page.php?bugnote_id=19942#r12135
2018-10-06 12:56WubTheCaptainNote View State: 0019774: private
2018-10-06 12:57WubTheCaptainNote View State: 0019774: public
2018-10-06 17:45ZalewaNote Added: 0019958
2018-10-06 17:45ZalewaStatusfeedback => assigned
2018-10-06 17:45ZalewaNote Edited: 0019958bug_revision_view_page.php?bugnote_id=19958#r12157
2018-10-06 17:45ZalewaNote Edited: 0019958bug_revision_view_page.php?bugnote_id=19958#r12158
2018-10-07 06:16ZalewaNote Added: 0019976
2018-10-07 06:39Blzut3Note Added: 0019977
2018-10-07 09:30ZalewaNote Added: 0019984
2018-10-07 09:30ZalewaStatusassigned => needs review
2018-10-07 10:47WubTheCaptainRelationship addedrelated to 0003543
2018-10-07 10:49WubTheCaptainNote Added: 0019991
2018-10-07 10:49WubTheCaptainNote Edited: 0019991bug_revision_view_page.php?bugnote_id=19991#r12175
2018-10-07 11:05WubTheCaptainRelationship replacedparent of 0003543
2018-10-07 11:14WubTheCaptainStatusneeds review => resolved
2018-10-07 11:14WubTheCaptainFixed in Version => 1.2
2018-10-07 11:14WubTheCaptainResolutionopen => fixed
2018-10-27 22:54WubTheCaptainStatusresolved => closed
2018-12-17 03:34WubTheCaptainCategorySuggestion => IP2C

Notes
(0019721)
Pol M   
2018-09-24 22:07   
pull request good night :)
(0019722)
WubTheCaptain   
2018-09-24 22:13   
Question: What's the licensing of the one included with the distribution? (Not those remotely downloaded.)
(0019729)
WubTheCaptain   
2018-09-24 23:42   
Additionally, tools/geolite2_conv.py copyright notice is in question. (2016, CC BY-SA 3.0 mentioned there.)

Additionally, the "about dialog" (and its translations) still says (c) 2016 for the data. Is this correct?
(0019754)
Pol M   
2018-09-25 15:26   
(edited on: 2018-09-25 15:28)
Quote from Wub

Additionally, the "about dialog" (and its translations) still says (c) 2016 for the data. Is this correct?

Quote from About dialog

This program uses GeoLite2 database for IP-to-Country (IP2C) purposes. Database and Contents Copyright (c) 2016 MaxMind, Inc.

Yep, It does say so.

Quote from Wub

What's the licensing of the one included with the distribution?

(I'm not sure if I understood you) If you are referring to the file "media/IpToCountry.dat", It seems to be licenced under CC BY-SA 4.0, as you already stated. Unfortunately, I'm not sure, due to the file being added the 2016‑05‑14 with commit f78933a and at the time being licenced under CC BY-SA 3.0. The file has not changed ever since. If we have problems with the file, I think it could be updated. (2 years is a lot of time :)) (If you weren't referring to that, sorry)

(0019758)
WubTheCaptain   
2018-09-25 18:06   
I was referring to media/IpToCountry.dat indeed, it's downloaded and created with tools/geolite2_conv.py.
(0019759)
Pol M   
2018-09-25 18:13   
Quote from Linda

I was referring to media/IpToCountry.dat indeed

Ok, then I'll generate a new IpToCountry.dat, just in case you think that it needs to be updated.
(0019764)
Zalewa   
2018-09-25 20:50   
Quote from Pol
Ok, then I'll generate a new IpToCountry.dat, just in case you think that it needs to be updated.


From what I understand this ticket describes this approach as impossible because it would be illegal.

I'm not sure what's the "definition of done" for this ticket.
(0019768)
WubTheCaptain   
2018-09-25 23:42   
Quote from Zalewa
From what I understand this ticket describes this approach [generating a new IpToCountry.dat] as impossible because it would be illegal.


How so?

Let's disregard IP2C autoupdates for a moment. I'll make some interpretations and perhaps some assumptions, no warranties of what I speak of is correct.

Consider Doomseeker 1.1 is released under GPLv2. Consider Doomseeker 1.1 uses CC BY-SA 3.0'd GeoLite2. Consider CC BY-SA 3.0 is not compatible with GPLv2 or GPLv3. Binaries of Doomseeker 1.1 with GeoLite2 in it (linked) could be "illegal" to distribute, for plausibility of violating the copyright of both parties. (Fyi, 1.1 has not been relicensed to LGPLv2.1+ or granted any special linking exemption with MaxMind's database under GPLv2.)

Now, consider: Doomseeker 1.2 is released under LGPLv2.1+. MaxMind has licensed newer versions of GeoLite2 under CC BY-SA 4.0. One-way compatibility exists from CC BY-SA 4.0 to GPLv3, that is, CC BY-SA 4.0 works can be incorporated to GPLv3'd works but GPLv3'd works cannot be incorporated into CC BY-SA 4.0 works.

A compatibility chart between different versions of GNU licenses is available on GNU website:'https://www.gnu.org/licenses/gpl-faq.en.html#AllCompatibility [^]' – that is, "LGPLv2.1 gives you permission to relicense the code under any version of the GPL since GPLv2". Distributing Doomseeker 1.2 under terms of GPLv2+ seems fine.

A resulting adaptation of GeoLite2 (CC BY-SA 4.0) in Doomseeker (media/IpToCountry.dat) authored with tools/geolite2_conv.py would be licensable under GPLv3-only.

As GPLv3 license text also clarifies in section 5, a compilation of a work is called an "aggregate" and not a combined larger work. Or in other words, multiple incompatibly licensed works can reside on an aggregate medium like a filesystem or a CD without interference from GPLv3. "Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate." Doomseeker 1.2 source code may be legally conveyed under terms of LGPLv2.1+, resulting larger work binaries with GeoLite2 under GPLv3-only, and GeoLite2 under CC BY-SA 4.0 and GPLv3.

I say go ahead with updating media/IpToCountry.dat, as long as MaxMind's copyright notices are updated to reflect the license change to CC BY-SA 4.0.
(0019769)
WubTheCaptain   
2018-09-25 23:55   
Quote from Zalewa
I'm not sure what's the "definition of done" for this ticket.


I figured this ticket gets stretched a bit beyond the summary.

For clarification, it is:

  1. Update media/IpToCountry.dat with new CC BY-SA 4.0 licensed dataset from MaxMind with tools/geolite2_conv.py
  2. Keep media/SOURCES.txt at CC BY-SA 4.0
  3. Update about dialog year and text to 2018 / CC BY-SA 4.0
  4. Update tools/geolite2_conv.py copyright year and comment to 2018 / CC BY-SA 4.0 (please add the required attribution blurb from MaxMind too, see below)
  5. Preferably, open a new issue ticket to clarify Doomseeker 1.2 binaries are distributed under terms of GPLv3-only while Doomseeker 1.2 is licensed under LGPLv2.1+. (I'll not consider tools/updateinstaller's CPOL licensing and violations in the source archive, it's a seperate issue.)


Quote from MaxMind
This product includes GeoLite2 data created by MaxMind,
available from'http://www.maxmind.com.
[^]'
(0019770)
WubTheCaptain   
2018-09-26 00:05   
Quote from WubTheCaptain
As GPLv3 license text also clarifies in section 5, a compilation of a work is called an "aggregate" and not a combined larger work.


Just in case, I'll also clarify the point of view from LGPLv2.1:

Quote from GNU Lesser General Public License, version 2.1
In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.
(0019774)
WubTheCaptain   
2018-09-26 01:25   
(edited on: 2018-09-26 01:27)
Quote from WubTheCaptain
Quote from Zalewa
I'm not sure what's the "definition of done" for this ticket.


I figured this ticket gets stretched a bit beyond the summary.


Additionally, I think the preferred form for making modifications to MaxMind's GeoLite2 Country database is the CSV version (the one tools/geolite2_conv.py processes), not the MMDB binary. Required to satisfy GPLv3's source requirement. Distribute the CSV version alongside IpToCountry.dat in the source tree, too.

(0019775)
WubTheCaptain   
2018-09-26 01:42   
Lastly (?), don't forget to indicate you made changes to the CC BY-SA'd work (converted it to a format Doomseeker understands, if that's applicable [exemptions exist for interoperability in Finnish copyright law at least, I believe]). (CC BY-SA 4.0, section 3, article (a)(1)(B).)

I know, this ticket is messy and could use the help of some child tickets. πŸ˜•
(0019776)
WubTheCaptain   
2018-09-26 01:47   
(edited on: 2018-09-26 01:49)
Updated issue summary to reflect the actual work needed to be done here.

(0019779)
Zalewa   
2018-09-26 05:42   
Quote from "Zalewa"
From what I understand this ticket describes this approach as impossible because it would be illegal.

This comment still stands then as we want to release Doomseeker under LGPLv2.1, not GPLv3.

However, it seems the matter is as simple as removing the IpToCountry.dat database from the executable (resources.qrc) and putting it into /usr/share/doomseeker or Doomseeker dir on Windows.

(0019780)
WubTheCaptain   
2018-09-26 12:08   
Quote from WubTheCaptain
Lastly (?), don't forget to indicate you made changes to the CC BY-SA'd work


I wasn't aware of CC BY-SA 4.0 section 2, article (a)(4).

Quote from Zalewa
However, it seems the matter is as simple as removing the IpToCountry.dat database from the executable (resources.qrc) and putting it into /usr/share/doomseeker or Doomseeker dir on Windows.


I'm more dubious of practicability (especially for redistributors) of this, and not convinced due to lack of more detailed interpretation of the two licenses from you. The software still links with IpToCountry.dat (CC BY-SA 4.0). LGPLv2.1+ seemingly allows this (weak copyleft), but how can the CC BY-SA 4.0 license's copyleft be respected in such scenario for binaries? My answer: It cannot be. (I was initially going to say "Probably cannot be [under LGPLv2.1], but maybe under LGPLv3 leastmost could be respected.", but I later found out that's not true.)

Seems trivial to change something from static to dynamic linking if redistributors (NB: not you, The Doomseeker Team) still have to doubt about CC BY-SA 4.0 compliance under something else but GPLv3 or via Creative Commons proxy. It does still have some apparent benefits for redistributors, so I support the idea.

All the better for me (us) if GeoLite2 will be completely optional in use, so that any permanent license termination of CC BY-SA 4.0 does not make using Doomseeker with GeoLite2 useless or illegal too in such scenario beyond exceptions and limitations.

--

And now, the boring detail because I always ought to reason my views (how correct or incorrect ever those may be). I'm afraid it will most often just make me look worse or my opinions get easily dismissed for other reasons (such as in issue 0003510), because I feel like being the one-sided party arguing in this while not receiving arguments and interpretations back in detail. πŸ™ I don't want that to happen... Not the least someone would be asking the right questions for clarification, so I will try to explain almost everything at risk it will make me look worse and less comprehensible.

The benefit of dynamic linking (above) is that Doomseeker binary may (?) become distributable solely under LGPLv2.1+, if it can work without the BY-SA database (e.g., displaying "?" country flags for every server). I say "may", because [insert my incomprehensible question the "corresponding source", removed at last minute]. This may not immediately concern the supplier (Zalewa / Blzut3 at DRDTeam), but does arguably concern redistributors who do not want to infringe the copyrights in Doomseeker (its authors). There's no other benefit in Zalewa's proposal of dynamic linking / seperating the database from the Doomseeker binary.

The other part to solve is the copyleft provision of BY-SA 4.0's effect in Doomseeker, and respect that license.

I'm feeling quiet confident to claim the distribution of static linked Doomseeker binary with GeoLite2 (NB: excluding Doomseeker source code distribution from the claim) under terms of anything but GPLv3-only is unauthorized by the copyright holders (MaxMind), and leads to termination of the CC BY-SA license. (Hey, I believe to have started the 30-day BY-SA 4.0 license termination clock just now or slightly earlier! Oops, BY-SA 3.0 already terminated a long ago for DRDTeam. πŸ™)

"Share" in CC BY-SA 4.0 includes definition of communication, and an "adapted material" [sic] (from here on referred as "adapted work") includes, but is not limited to, "arranging" and "transforming" the works. It is my broad interpretation static or dynamic linking the two pieces fits these definitions. I'm thinking like collages (Commons:Collages), but in this case with software. The comparison to collages seems especially true with static linking.

The "contents" of IpToCountry.dat is not original work of Doomseeker developers; that's almost exclusively under MaxMind's copyright, despite the format change.

CC BY-SA 4.0 prohibits additional terms which restrict rights to that license. Far fetched, there's incompatibilities: LGPLv2.1 does not reinstate the license automatically and terminates immediately, unlike LGPLv3, GPLv3 and CC BY-SA 4.0. (It's far fetched, because changing from MMDB / CVS format to Doomseeker format doesn't seem to be an adaptation under CC BY-SA 4.0 section 2, article (a)(4); thus, there would be no adapter's license grant to terminate to that adapted work and the original BY-SA'd work. But I believe arranging and transforming (= linking) the two works together is an adaptation, so this plays a role.)

Assuming we have an adapted CC BY-SA 4.0 section 3, is LGPLv3 fine then? No... because article (b)(1) essentially says it needs to CC BY-SA 4.0 or later version, or a "BY-SA Compatible License", where the latter's explicit definition requires it to be "approved by Creative Commons as essentially the equivalent of this Public License" at the URL mentioned; and LGPLv3 is not on that list.

I emphasize: The BY-SA compatibility is a required condition of the license. Even though personally I think LGPLv3 (NB: not LGPLv2.1) makes sense with BY-SA 4.0 (NB: not BY-SA 3.0) compatibility in almost every way, the BY-SA 4.0 license does not allow to redistribute any adapted work of LGPLv2.1+/GPLv2+ and BY-SA 4.0 under anything but GPLv3-only + BY-SA 4.0; because Creative Commons (assumably) didn't review the LGPLv3 license for compatibility, and it is not recognized as "BY-SA compatible" by them. πŸ’©

Honestly, I stopped reviewing differences between the two licenses after this was so explicit in BY-SA 4.0.

If I didn't conclude something yet here, it's that Doomseeker binaries with GeoLite2 could be built with a GPLv3 configure flag (CMake, `-DENABLE_GPL`) at compile time. Else it could build without GeoLite2 and distribute under LGPLv2.1+. Neither is really an issue for a motivated redistributor, and not a concern for the source code supplier due to aggregation.

Hopefully my three hours of personal time saved in this note can save some costs on any questions to lawyers per hour. If the situation doesn't satisfy Zalewa, please take it to Creative Commons for compatibility review (if you will agree to at least LGPLv3+), remove GeoLite2 from LGPLv2.1+ distributions (CMake flag) or seek permission from MaxMind to have them relicense GeoLite2 under CC BY-4.0 (or similar compatible license without the conflicting copyleft).
(0019781)
WubTheCaptain   
2018-09-26 13:00   
I got few trivial words wrong (copyright & license, "is authorized" vs "would be unauthorized" or "would be in violation") but the point stays.

And for clarification, I must refer to GPLv3 text what creates an "aggregate" not an "adaptation" (because it was written by lawyers), to conclusively link the two things together:

Quote from GNU General Public License, version 3
A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program


I claim linking creates an extension to the LGPLv2.1+'d work.
(0019782)
Blzut3   
2018-09-27 01:11   
While I don't disagree with your interpretation of BY-SA, I think that Zalewa's proposal to move it out the binary would indeed work. If you were to take that database and import it into a Microsoft SQL database (MS SQL being the first thing that comes to mind when I think proprietary database software but take your pick), would I be violating the license? To that end I don't think Doomseeker reading the work is equivalent to linking, although this has made me think about just how arbitrary the line is between dynamically linking code and reading a file.

With that said, if I may direct you to'https://wiki.creativecommons.org/wiki/ShareAlike_compatibility:_GPLv3#Considerations_for_adapters_applying_the_GPLv3 [^]'
Quote
This one-way compatibility mechanism with GPLv3 is not for general use. It was designed to help solve a specific problem for those working in niche areas where content is adapted and melded with code. Please take advantage of it only when you are adapting BY-SA 4.0 works and incorporating the adaptation into GPLv3 software in ways that make it difficult or impossible for downstream users to distinguish the content from code.

With a separate file I don't think there's any doubt at all here so per this quote I don't believe the use of CC-BY-SA data has any implications of the licensing of the program. I'm not even certain that having the files separated is a requirement although it might not be a bad idea to be on the safe side.
Quote from WubTheCaptain
And now, the boring detail because I always ought to reason my views (how correct or incorrect ever those may be). I'm afraid it will most often just make me look worse or my opinions get easily dismissed for other reasons (such as in issue 0003510), because I feel like being the one-sided party arguing in this while not receiving arguments and interpretations back in detail. πŸ™ I don't want that to happen... Not the least someone would be asking the right questions for clarification, so I will try to explain almost everything at risk it will make me look worse and less comprehensible.

Please understand that while we disagree on a lot of things I very much appreciate your point of view.
(0019784)
WubTheCaptain   
2018-09-27 02:10   
(edited on: 2018-09-27 02:11)
Quote from Blzut3
If you were to take that database and import it into a Microsoft SQL database (MS SQL being the first thing that comes to mind when I think proprietary database software but take your pick), would I be violating the license?


I'll be short to answer this theoretical question:

  • Section 2, article (a)(4): Technical modifications necessary are allowed by the licensor. This in itself doesn't create an "adapted material" (adapted work or derivative work)...
  • ...except when you import it to a larger dataset (where Sui Generis Database Rights apply), because you're (essentially) creating an adaptation / a larger work based on all or substantial portions of the CC BY-SA 4.0 work.
  • Section 2, article (a)(5)(C): No additional Effective Technological Measures to restrict the granted rights to the license (e.g., use), granted in section 2.
  • There is no requirement have the adapted work be modifiable under the CC BY-SA 4.0 license. You can still probably query your MS SQL database, or share the database dump. The software used probably plays no role here, I think you can agree.


(0019798)
Pol M   
2018-09-28 20:36   
Is there a consensus? πŸ˜…
(0019815)
Zalewa   
2018-09-29 11:32   
Can this be it?


  1. Download the database from MaxMind, unzip it and add it to the repository (is that really necessary? that's 13 extra Megabytes that's really useless for us)
  2. Update media/IpToCountry.dat with new CC BY-SA 4.0 licensed dataset from MaxMind with tools/geolite2_conv.py, but not with the autodownloaddatabase but by using the geolite2_conv.py's 3-argument mode that allows to specify blocks and locations files from the local filesystem
  3. Keep media/SOURCES.txt at CC BY-SA 4.0
  4. Update about dialog year and text to 2018 / CC BY-SA 4.0
  5. Update tools/geolite2_conv.py copyright year and comment to 2018 / CC BY-SA 4.0 (please add the required attribution blurb from MaxMind too, see below)
  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.
  12. Keep releasing under LGPL21+.
(0019818)
WubTheCaptain   
2018-09-29 13:28   
Quote from Zalewa
Download the database from MaxMind, unzip it and add it to the repository (is that really necessary? that's 13 extra Megabytes that's really useless for us)


Needed by Debian, reproducibility and all. Copyright wise perhaps needed by GPLv3-only distribution (if this is how binaries will have to be distributed, source required), not in itself needed by LGPLv2.1+.

Additionally, it's disallowed for Debian packages to download something from the Internet in mid of build process. So yes, it's required for Debian (or else the Debian maintainer has to patch it in).

The rest of the proposal sounds fine, although a little complicated.

Quote from Zalewa
Add IpToCountry.dat from the repo to Doomseeker's distribution/installation as a separate file


Will be DFSG-removed from the Debian package and generated from source (point #1), but I don't think this is your concern.

Quote from Zalewa
Keep releasing under LGPL21+.


Reminding again that irregardless of outcome, Doomseeker's source code remains LGPLv2.1+'d – even if binaries built from LGPLv2.1+ code had to be distributed under terms of GPLv3-only. Beyond that, distributors, e.g. DRD Team, may still have to comply with Qt5's LGPLv3 source offer requirement for Qt5 source because of linking – this is not done yet. Qt4 shrug.
(0019834)
Blzut3   
2018-09-30 01:50   
If we're not baking it into the executable, do we actually benefit from having the database in the repo? The alternative is to download/convert it in our release scripts (to be clear for WubTheCaptain: not build time). I can't personally think of any real advantage to including the database in the repo especially given that even without a default Doomseeker can still download and use an updated database at runtime.

I suspect Debian would opt to not distribute a database at all given the closed ticket 0003235. But if they did want to distribute the database they could provide the database themselves and run the Python script during packaging.

Just throwing this out there since typically one want to avoid binary files in the repo a while before it made sense since it was compiled in, I'm not sure it makes sense in the separate file model.
(0019838)
Zalewa   
2018-09-30 07:12   
One thing to keep in mind here is that running the conversion script isn't costless when you're time-constrained. I made it use all CPU cores and split the jobs evenly, but even then

real 1m43.854s
user 0m0.000s
sys 0m0.000s
(0019854)
Blzut3   
2018-10-01 04:58   
Not anymore:'https://bitbucket.org/Doomseeker/doomseeker/commits/536f21e02e30fb552fcdb8e832b400064bc56fb9 [^]' (As I teased in an email to you last night.)
(0019862)
Pol M   
2018-10-01 17:05   
(edited on: 2018-10-01 17:09)
OK, let's see if I can make something out of this:

  1. Download the database from MaxMind, unzip it and add it to the repository (?)

  2. Quote from Blzut3

    do we actually benefit from having the database in the repo? The alternative is to download/convert it in our release scripts

    So, maybe we shall not add 13MB in the repo?

  3. Update media/IpToCountry.dat with new CC BY-SA 4.0 licensed dataset from MaxMind with tools/geolite2_conv.py, but not with the autodownloaddatabase but by using the geolite2_conv.py's 3-argument mode that allows to specify blocks and locations files from the local filesystem

  4. Affected by the 1st point, so only make a new media/IpToCountry.dat with new CC BY-SA 4.0?

  5. Keep media/SOURCES.txt at CC BY-SA 4.0

  6. Update about dialog year and text to 2018 / CC BY-SA 4.0

  7. Update tools/geolite2_conv.py copyright year and comment to 2018 / CC BY-SA 4.0 (please add the required attribution blurb from MaxMind too, see below)
  8. No problem here.

  9. Remove IpToCountry.dat from resources.qrc

  10. Add IpToCountry.dat from the repo to Doomseeker's distribution/installation as a separate file

  11. Quote from Wub
    Will be DFSG-removed from the Debian package and generated from source (point #1), but I don't think this is your concern.

    So not really necessary to satisfy the ticket?
  12. 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.

  13. 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.

  14. Ensure Doomseeker will read this file if there's no personally downloaded IP2C database.

  15. Ensure Doomseeker will read the personally downloaded IP2C database instead of the preinstalled file if such downloaded IP2C database is ready.
  16. This, even if it turns out not to be necessary, Could be implemented. This could easily be a ticket on its own.


I'm trying to get the ideas clear, this ticket turned out to be a lot more complex than expectedπŸ€”. I'm getting quite confused, and it is not helping the fever I'm dealing with πŸ˜‚πŸ˜…

(0019866)
Zalewa   
2018-10-01 17:31   
(edited on: 2018-10-01 17:34)
Quote from Pol M

Add IpToCountry.dat from the repo to Doomseeker's distribution/installation as a separate file

    > Quote from Wub
    > Will be DFSG-removed from the Debian package and generated from source (point #1), but I don't think this is your concern.


So not really necessary to satisfy the ticket?

We package the program for Windows, for Ubuntu and for Mac OS, so it is necessary. We must be able to prepare a correct installation package because we do prepare installation packages for all those systems. See our download page:'http://doomseeker.drdteam.org/download.php# [^]'

If you're unsure how to do this, seek out install() statements in CMakeLists.txt. If you don't wish to muddle with Windows stuff, leave it to me - I'll take care of it.



Quote from Pol M

> Ensure Doomseeker will read the personally downloaded IP2C database instead of the preinstalled file if such downloaded IP2C database is ready.

This, even if it turns out not to be necessary, Could be implemented. This could easily be a ticket on its own.


This is necessary because that's how Doomseeker works right now - the only difference is that the "preinstalled" database is not placed on the filesystem but baked directly into "doomseeker" binary ("doomseeker.exe" on Windows). In addition, there's also a secondary mechanism that will read this database from disk if it's placed in a specific location. Doomseeker will prefer to do this over reading the one that's baked in, in hope that this disk-database is more up-to-date than the baked in. Thanks to this, we can issue updates of the database that people use without releasing new version of Doomseeker. If you open the IP2C update box from the menu "File | Update IP2C" it will tell you where the downloaded database is.

(0019867)
WubTheCaptain   
2018-10-01 17:33   
Quote from Blzut3
Not anymore:'https://bitbucket.org/Doomseeker/doomseeker/commits/536f21e02e30fb552fcdb8e832b400064bc56fb9
[^]'

The best commit of 2018. πŸ‘

Any benchmarks?

Quote from Zalewa
So, maybe we shall not add 13MB in the repo?


I don't see an issue (yet) for package maintainers either way. 🀷

Quote from Zalewa
So not really necessary to satisfy the ticket?


IpToCountry.dat is a binary format, not the preferred form for modifications. The 13 MB CSV lump is for that.

If it's seperate from the binary and loaded at runtime: Dunno.

If it's built-in to resources.qrc: GPLv3 almost certainly, source (CSV file) required in source code tarball release.

Quote from Zalewa
I'm getting quite confused


Ditto.
(0019868)
Zalewa   
2018-10-01 17:36   
(edited on: 2018-10-01 17:39)
Wub, you're actually quoting Pol here :)

Quote from WubTheCaptain

Any benchmarks?


New version:


real 0m1.960s
user 0m0.000s
sys 0m0.000s


Thanks, Blzut! That's really awesome.

(0019876)
Pol M   
2018-10-01 18:47   
Quote from Zalewa

If you're unsure how to do this, seek out install() statements in CMakeLists.txt. If you don't wish to muddle with Windows stuff, leave it to me - I'll take care of it.


I cannot access Windows computers that easily. I'll leave this ticket.
(0019909)
Zalewa   
2018-10-04 21:42   
I'll be taking care of this ticket next.
(0019932)
Zalewa   
2018-10-06 11:14   
(edited on: 2018-10-06 11:54)
(note split to 0003537:0019934)

Now, onto sourcing of the database.

(note split to 0003538)

I'll let this linger for a moment before taking further action.

(0019938)
WubTheCaptain   
2018-10-06 11:55   
Zalewa: There's multiple unrelated issues. I've split your note to issues 0003537 and 0003538.
(0019942)
WubTheCaptain   
2018-10-06 12:51   
(edited on: 2018-10-06 12:54)
To resolve this ticket:

  1. Update media/IpToCountry.dat with new CC BY-SA 4.0 licensed dataset from MaxMind with tools/geolite2_conv.py
  2. Keep media/SOURCES.txt at CC BY-SA 4.0
  3. Update about dialog year and text to 2018 / CC BY-SA 4.0
  4. Update tools/geolite2_conv.py copyright year and comment to 2018 / CC BY-SA 4.0 (please add the required attribution blurb from MaxMind too)
  5. new: Include this blurb in about dialog (and geolite2_conv.py?) (from GeoLite2-Country-CSV_20181002/LICENSE.txt): "This database incorporates GeoNames [http://www.geonames.org] geographical data, which is made available under the Creative Commons Attribution 3.0 License. To view a copy of this license, visit'http://www.creativecommons.org/licenses/by/3.0/us/." [^]'


The rest is irrelevant to this ticket; see the other related issue tickets. Can we agree to this resolution?

(0019943)
WubTheCaptain   
2018-10-06 12:53   
Quote from WubTheCaptain
new: Include this blurb in about dialog (and geolite2_conv.py?) (from GeoLite2-Country-CSV_20181002/LICENSE.txt): "This database incorporates GeoNames [http://www.geonames.org] geographical data, which is made available under the Creative Commons Attribution 3.0 License. To view a copy of this license, visit'http://www.creativecommons.org/licenses/by/3.0/us/."
[^]'

Actually this may be possibly irrelevant to IpToCountry.dat and this ticket, but relevant to 0003538 (we don't use latitude/longitude in IpToCountry.dat).
(0019958)
Zalewa   
2018-10-06 17:45   
Progress on this will continue as stated in comment 0003512:0019942.

(0019976)
Zalewa   
2018-10-07 06:16   
One last thing that concerns me:

With this commit the database has become an optional component. However, the "This program uses GeoLite2 database..." remains in the About dialog regardless if the database is loaded or not. Furthermore, there's an unrealistic but still possible chance of someone using some other data source to build IpToCountry.dat, which would make this statement even more false.

Should the statement be removed from the dialog if there's no database loaded?
(0019977)
Blzut3   
2018-10-07 06:39   
While I'm curious on Wub's opinion on the subject, I would say that trying to make the about dialog perfectly accurate is basically impossible. For example Qt5 versions of Doomseeker are technically LGPLv3 or GPLv3 since it's impossible to distribute the combined work otherwise. Similarly Qt4 builds would be LGPLv2.1 or LGPLv3 (not "or later"). And of course this all changes if someone paid for the commercial license for Qt where suddenly the Qt5 version can probably be LGPLv2.1 again.

And as you say technically some one could replace the third party files with ones from wherever which has more implications on the license text. So in my opinion I'd rather just leave it there and overstate.
(0019984)
Zalewa   
2018-10-07 09:30   
As IP2C stuff was moved to the blobs repository, so was the documentation. Relevant statements were updated in this commit:'https://bitbucket.org/Doomseeker/doomseeker-blobs/commits/0720ceb57706e883d2e6627cba8eebe5cd26b5aa [^]'
I think the whole repository can now be inspected for any remaining issues.

From Doomseeker's perspective all that was left was the statement in the About dialog, which should be covered here:'https://bitbucket.org/Doomseeker/doomseeker/commits/ee388847d67dcc4b7c59484e51807a79f0ad2b4c [^]'
(0019991)
WubTheCaptain   
2018-10-07 10:49   
Quote from Zalewa
One last thing that concerns me:


New issue 0003543.

I think this issue ticket is resolved as soon as I take a look at 0003538.