fedora-infra / mirrormanager2

Rewrite of the MirrorManager application in Flask and SQLAlchemy
https://mirrormanager.fedoraproject.org
GNU General Public License v2.0
65 stars 49 forks source link

Import generate-worldmap from MM1 #130

Closed adrianreber closed 8 years ago

adrianreber commented 9 years ago

I cherry-picked all generate-worldmap related commits from the MM1 repository and then adapted the script to MM2. The results of the new mm2_generate-worldmap can bee seen at:

https://admin.stg.fedoraproject.org/mirrormanager/statistics/maps/mirrors.html

https://adrian.fedorapeople.org/map.png

ralphbean commented 9 years ago

Looks good to me :) :+1:

pypingou commented 9 years ago

I was wondering if just the fact that we make use of data provided by a package license under GPL make our code GPL as well.

Also, I didn't check carefully the code, but do we block embargoed country?

Finally, the png you link to work but not the link to stg, is that expected?

adrianreber commented 9 years ago

The link to stg is kind of wrong. I tested something manually and it was overwritten by ansible. Another version of the map is here:

https://adrian.fedorapeople.org/map/mirrors.html

Concerning the license. I am not sure. The code (according to the comment) is based on examples from basemap which is licensed under GPLv2. So this seems to be the reason why this code has also been licensed under GPLv2. As I have cherry-picked all the related commits from MM1 the license was also included.

Embargoed countries are indeed blocked (line 63):

            if gir['country_code'] in embargoed_countries:
                print "skipping " + hn
                continue
mdomsch commented 9 years ago

Licensing, and pulling in the large basemaps as dependencies, is why I broke map generation out into a separate subpackage in the RPM. I didn't want all of MM to be licensed GPLv2 only because the map library being used very infrequently (e.g. never in the last few years) is GPLv2. We could just as easily write generate_worldmap to collect the data and export it into a CSV file, and then have a second program import the CSV file and plot the map.

MMv1 did not block embargoed countries. We had the ability should Fedora Legal have had a requirement for us to do so, but were never given that requirement to implement in MMv1. Instead, our mirrors, to be mirrors, must accept that they prevent export to embargoed countries. [1]

[1] https://fedoraproject.org/wiki/Embargoed_nations

On Fri, Sep 18, 2015 at 8:12 AM, Pierre-Yves Chibon < notifications@github.com> wrote:

I was wondering if just the fact that we make use of data provided by a package license under GPL make our code GPL as well.

Also, I didn't check carefully the code, but do we block embargoed country?

Finally, the png you link to work but not the link to stg, is that expected?

— Reply to this email directly or view it on GitHub https://github.com/fedora-infra/mirrormanager2/pull/130#issuecomment-141447554 .

pypingou commented 9 years ago

If we don't block, I think we were asked once to at least not show them in the map ;-)

adrianreber commented 9 years ago

The code excludes mirrors in embargoed countries and they are indeed not shown on the map. So that part of the PR should be good.

About the license, as it is based on @mdomsch's code its his call if this is GPLv2 or not. The comment says:

# Based on examples from python-GeoIP and python-basemap-examples
# Licensed under the GNU General Public License v2

I can also see comments in the basemap examples which are identical to the ones in the generate-worldmap script. So I would say, that the embargoed countries handling is correct and the license is also correct.

mdomsch commented 9 years ago

Yes, that was cribbed from python-basemap-examples, and only trivially edited. Hence the simple generate-worldmap program is GPLv2. That, and to avoid installing python-basemap everwhere (it's really large), is why it's in a separate RPM subpackage in MMv1.

On Thu, Sep 24, 2015 at 9:32 AM, Adrian Reber notifications@github.com wrote:

The code excludes mirrors in embargoed countries and they are indeed not shown on the map. So that part of the PR should be good.

About the license, as it is based on @mdomsch https://github.com/mdomsch's code its his call if this is GPLv2 or not. The comment says:

Based on examples from python-GeoIP and python-basemap-examples

Licensed under the GNU General Public License v2

I can also see comments in the basemap examples which are identical to the ones in the generate-worldmap script. So I would say, that the embargoed countries handling is correct and the license is also correct.

— Reply to this email directly or view it on GitHub https://github.com/fedora-infra/mirrormanager2/pull/130#issuecomment-142947023 .

adrianreber commented 8 years ago

Ping, any more comments? As far as I can tell all open points have been resolved.

ralphbean commented 8 years ago

:+1: