Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove old licenses from ESMF and FFTPACK, remove all MCEL references #943

Merged
merged 6 commits into from
Nov 20, 2019

Conversation

davegill
Copy link
Contributor

@davegill davegill commented Jun 28, 2019

TYPE: enhancement

KEYWORDS: ESMF, FFTPACK, LICENSE

SOURCE: fomented by Michael Kavulich (NCAR/DTC), internal

DESCRIPTION OF CHANGES:

  1. For ESMF and FFTPACK directories, remove individual licenses from files.
  2. Replace with a single LICENSE file in each directory.
  3. LICENSE file is taken from FFTPACK homepage or ESMF source tree.
  4. Remove all references to MCEL in WRF system.

Specific commit messages:

  1. Remove unnecessary files from WRF source
    These files were used to split a large file into
    multiple pieces. We do not use this capability.

deleted: external/fftpack/f90split.f90
deleted: external/fftpack/f90split.sh

  1. Remove GPL license from FFTPACK, replace with a single LICENSE file. The original license
    change for FFTPACK in WRF in 2009 was ok'd by CISL (the distributor of the library). With the
    replacement of the library in 2014 (via svn), the original licenses were accidentally returned.

Replaced GPL from every *.F with newer NCAR CISL license, and locate it in a single file:
https://www2.cisl.ucar.edu/resources/legacy/fft5/license

  1. Remove individual license statement from F90 and inc files for ESMF

Grabbed license from LICENSE file from ESMF source:
git clone https://git.code.sf.net/p/esmf/esmf

modified: ESMF_Alarm.F90
modified: ESMF_AlarmClock.F90
modified: ESMF_Base.F90
modified: ESMF_BaseTime.F90
modified: ESMF_Calendar.F90
modified: ESMF_Clock.F90
modified: ESMF_Fraction.F90
modified: ESMF_Time.F90
modified: ESMF_TimeInterval.F90

modified: ESMF_Macros.inc
modified: ESMF_TimeMgr.inc

new file: LICENSE

  1. MCEL is not used, not supported, and not being developed. Removal of all MCEL references
    gets rid of a GPL file.

modified: ./Registry/Registry.CONVERT
modified: ./Registry/Registry.EM_COMMON
modified: ./Registry/Registry.NMM
modified: ./dyn_em/start_em.F
modified: ./external/Makefile
modified: ./frame/module_io.F

deleted: ./external/io_mcel/configure.wrf.example
deleted: ./external/io_mcel/ext_mcel_open_for_read.F90
deleted: ./external/io_mcel/ext_mcel_open_for_write.F90
deleted: ./external/io_mcel/ext_mcel_read_field.F90
deleted: ./external/io_mcel/ext_mcel_write_field.F90
deleted: ./external/io_mcel/io_mcel.F90
deleted: ./external/io_mcel/makefile
deleted: ./external/io_mcel/timeconvert.c

LIST OF MODIFIED FILES:
Registry/Registry.CONVERT
Registry/Registry.EM_COMMON
Registry/Registry.NMM
dyn_em/start_em.F
external/Makefile
external/esmf_time_f90/ESMF_Alarm.F90
external/esmf_time_f90/ESMF_AlarmClock.F90
external/esmf_time_f90/ESMF_Base.F90
external/esmf_time_f90/ESMF_BaseTime.F90
external/esmf_time_f90/ESMF_Calendar.F90
external/esmf_time_f90/ESMF_Clock.F90
external/esmf_time_f90/ESMF_Fraction.F90
external/esmf_time_f90/ESMF_Macros.inc
external/esmf_time_f90/ESMF_Time.F90
external/esmf_time_f90/ESMF_TimeInterval.F90
external/esmf_time_f90/ESMF_TimeMgr.inc
external/esmf_time_f90/LICENSE
external/fftpack/f90split.f90
external/fftpack/f90split.sh
external/fftpack/fftpack5/LICENSE
external/fftpack/fftpack5/c1f2kb.F
external/fftpack/fftpack5/c1f2kf.F
external/fftpack/fftpack5/c1f3kb.F
external/fftpack/fftpack5/c1f3kf.F
external/fftpack/fftpack5/c1f4kb.F
external/fftpack/fftpack5/c1f4kf.F
external/fftpack/fftpack5/c1f5kb.F
external/fftpack/fftpack5/c1f5kf.F
external/fftpack/fftpack5/c1fgkb.F
external/fftpack/fftpack5/c1fgkf.F
external/fftpack/fftpack5/c1fm1b.F
external/fftpack/fftpack5/c1fm1f.F
external/fftpack/fftpack5/cfft1b.F
external/fftpack/fftpack5/cfft1f.F
external/fftpack/fftpack5/cfft1i.F
external/fftpack/fftpack5/cfft2b.F
external/fftpack/fftpack5/cfft2f.F
external/fftpack/fftpack5/cfft2i.F
external/fftpack/fftpack5/cfftmb.F
external/fftpack/fftpack5/cfftmf.F
external/fftpack/fftpack5/cfftmi.F
external/fftpack/fftpack5/cmf2kb.F
external/fftpack/fftpack5/cmf2kf.F
external/fftpack/fftpack5/cmf3kb.F
external/fftpack/fftpack5/cmf3kf.F
external/fftpack/fftpack5/cmf4kb.F
external/fftpack/fftpack5/cmf4kf.F
external/fftpack/fftpack5/cmf5kb.F
external/fftpack/fftpack5/cmf5kf.F
external/fftpack/fftpack5/cmfgkb.F
external/fftpack/fftpack5/cmfgkf.F
external/fftpack/fftpack5/cmfm1b.F
external/fftpack/fftpack5/cmfm1f.F
external/fftpack/fftpack5/cosq1b.F
external/fftpack/fftpack5/cosq1f.F
external/fftpack/fftpack5/cosq1i.F
external/fftpack/fftpack5/cosqb1.F
external/fftpack/fftpack5/cosqf1.F
external/fftpack/fftpack5/cosqmb.F
external/fftpack/fftpack5/cosqmf.F
external/fftpack/fftpack5/cosqmi.F
external/fftpack/fftpack5/cost1b.F
external/fftpack/fftpack5/cost1f.F
external/fftpack/fftpack5/cost1i.F
external/fftpack/fftpack5/costb1.F
external/fftpack/fftpack5/costf1.F
external/fftpack/fftpack5/costmb.F
external/fftpack/fftpack5/costmf.F
external/fftpack/fftpack5/costmi.F
external/fftpack/fftpack5/d1f2kb.F
external/fftpack/fftpack5/d1f2kf.F
external/fftpack/fftpack5/d1f3kb.F
external/fftpack/fftpack5/d1f3kf.F
external/fftpack/fftpack5/d1f4kb.F
external/fftpack/fftpack5/d1f4kf.F
external/fftpack/fftpack5/d1f5kb.F
external/fftpack/fftpack5/d1f5kf.F
external/fftpack/fftpack5/d1fgkb.F
external/fftpack/fftpack5/d1fgkf.F
external/fftpack/fftpack5/dcosq1b.F
external/fftpack/fftpack5/dcosq1f.F
external/fftpack/fftpack5/dcosq1i.F
external/fftpack/fftpack5/dcosqb1.F
external/fftpack/fftpack5/dcosqf1.F
external/fftpack/fftpack5/dcost1b.F
external/fftpack/fftpack5/dcost1f.F
external/fftpack/fftpack5/dcost1i.F
external/fftpack/fftpack5/dcostb1.F
external/fftpack/fftpack5/dcostf1.F
external/fftpack/fftpack5/dfft1b.F
external/fftpack/fftpack5/dfft1f.F
external/fftpack/fftpack5/dfft1i.F
external/fftpack/fftpack5/dfftb1.F
external/fftpack/fftpack5/dfftf1.F
external/fftpack/fftpack5/dffti1.F
external/fftpack/fftpack5/dsint1b.F
external/fftpack/fftpack5/dsint1f.F
external/fftpack/fftpack5/dsint1i.F
external/fftpack/fftpack5/dsintb1.F
external/fftpack/fftpack5/dsintf1.F
external/fftpack/fftpack5/mcsqb1.F
external/fftpack/fftpack5/mcsqf1.F
external/fftpack/fftpack5/mcstb1.F
external/fftpack/fftpack5/mcstf1.F
external/fftpack/fftpack5/mradb2.F
external/fftpack/fftpack5/mradb3.F
external/fftpack/fftpack5/mradb4.F
external/fftpack/fftpack5/mradb5.F
external/fftpack/fftpack5/mradbg.F
external/fftpack/fftpack5/mradf2.F
external/fftpack/fftpack5/mradf3.F
external/fftpack/fftpack5/mradf4.F
external/fftpack/fftpack5/mradf5.F
external/fftpack/fftpack5/mradfg.F
external/fftpack/fftpack5/mrftb1.F
external/fftpack/fftpack5/mrftf1.F
external/fftpack/fftpack5/mrfti1.F
external/fftpack/fftpack5/msntb1.F
external/fftpack/fftpack5/msntf1.F
external/fftpack/fftpack5/r1f2kb.F
external/fftpack/fftpack5/r1f2kf.F
external/fftpack/fftpack5/r1f3kb.F
external/fftpack/fftpack5/r1f3kf.F
external/fftpack/fftpack5/r1f4kb.F
external/fftpack/fftpack5/r1f4kf.F
external/fftpack/fftpack5/r1f5kb.F
external/fftpack/fftpack5/r1f5kf.F
external/fftpack/fftpack5/r1fgkb.F
external/fftpack/fftpack5/r1fgkf.F
external/fftpack/fftpack5/r4_factor.F
external/fftpack/fftpack5/r4_mcfti1.F
external/fftpack/fftpack5/r4_tables.F
external/fftpack/fftpack5/r8_factor.F
external/fftpack/fftpack5/r8_mcfti1.F
external/fftpack/fftpack5/r8_tables.F
external/fftpack/fftpack5/rfft1b.F
external/fftpack/fftpack5/rfft1f.F
external/fftpack/fftpack5/rfft1i.F
external/fftpack/fftpack5/rfft2b.F
external/fftpack/fftpack5/rfft2f.F
external/fftpack/fftpack5/rfft2i.F
external/fftpack/fftpack5/rfftb1.F
external/fftpack/fftpack5/rfftf1.F
external/fftpack/fftpack5/rffti1.F
external/fftpack/fftpack5/rfftmb.F
external/fftpack/fftpack5/rfftmf.F
external/fftpack/fftpack5/rfftmi.F
external/fftpack/fftpack5/sinq1b.F
external/fftpack/fftpack5/sinq1f.F
external/fftpack/fftpack5/sinq1i.F
external/fftpack/fftpack5/sinqmb.F
external/fftpack/fftpack5/sinqmf.F
external/fftpack/fftpack5/sinqmi.F
external/fftpack/fftpack5/sint1b.F
external/fftpack/fftpack5/sint1f.F
external/fftpack/fftpack5/sint1i.F
external/fftpack/fftpack5/sintb1.F
external/fftpack/fftpack5/sintf1.F
external/fftpack/fftpack5/sintmb.F
external/fftpack/fftpack5/sintmf.F
external/fftpack/fftpack5/sintmi.F
external/fftpack/fftpack5/xercon.F
external/fftpack/fftpack5/xerfft.F
external/fftpack/fftpack5/z1f2kb.F
external/fftpack/fftpack5/z1f2kf.F
external/fftpack/fftpack5/z1f3kb.F
external/fftpack/fftpack5/z1f3kf.F
external/fftpack/fftpack5/z1f4kb.F
external/fftpack/fftpack5/z1f4kf.F
external/fftpack/fftpack5/z1f5kb.F
external/fftpack/fftpack5/z1f5kf.F
external/fftpack/fftpack5/z1fgkb.F
external/fftpack/fftpack5/z1fgkf.F
external/fftpack/fftpack5/z1fm1b.F
external/fftpack/fftpack5/z1fm1f.F
external/fftpack/fftpack5/zfft1b.F
external/fftpack/fftpack5/zfft1f.F
external/fftpack/fftpack5/zfft1i.F
external/fftpack/fftpack5/zfft2b.F
external/fftpack/fftpack5/zfft2f.F
external/fftpack/fftpack5/zfft2i.F
external/fftpack/fftpack5/zfftmb.F
external/fftpack/fftpack5/zfftmf.F
external/fftpack/fftpack5/zfftmi.F
external/fftpack/fftpack5/zmf2kb.F
external/fftpack/fftpack5/zmf2kf.F
external/fftpack/fftpack5/zmf3kb.F
external/fftpack/fftpack5/zmf3kf.F
external/fftpack/fftpack5/zmf4kb.F
external/fftpack/fftpack5/zmf4kf.F
external/fftpack/fftpack5/zmf5kb.F
external/fftpack/fftpack5/zmf5kf.F
external/fftpack/fftpack5/zmfgkb.F
external/fftpack/fftpack5/zmfgkf.F
external/fftpack/fftpack5/zmfm1b.F
external/fftpack/fftpack5/zmfm1f.F
external/io_mcel/configure.wrf.example
external/io_mcel/ext_mcel_open_for_read.F90
external/io_mcel/ext_mcel_open_for_write.F90
external/io_mcel/ext_mcel_read_field.F90
external/io_mcel/ext_mcel_write_field.F90
external/io_mcel/io_mcel.F90
external/io_mcel/makefile
external/io_mcel/timeconvert.c
frame/module_io.F

TESTS CONDUCTED:

  • For FFTPACK and ESMF modifications, text only, so no testing required.
  • For MCEL, code still builds without option, and no "unsatisfied externals".

These files were used to split a large file into
multiple pieces. We do not use this capability.

deleted:    external/fftpack/f90split.f90
deleted:    external/fftpack/f90split.sh
Replaced GPL from every *.F with newer NCAR CISL license,
and locate it in a single file:
https://www2.cisl.ucar.edu/resources/legacy/fft5/license
Grabbed license from LICENSE file from ESMF source:
git clone https://git.code.sf.net/p/esmf/esmf

modified:   ESMF_Alarm.F90
modified:   ESMF_AlarmClock.F90
modified:   ESMF_Base.F90
modified:   ESMF_BaseTime.F90
modified:   ESMF_Calendar.F90
modified:   ESMF_Clock.F90
modified:   ESMF_Fraction.F90
modified:   ESMF_Time.F90
modified:   ESMF_TimeInterval.F90

modified:   ESMF_Macros.inc
modified:   ESMF_TimeMgr.inc

new file:   LICENSE
@davegill davegill requested a review from a team as a code owner June 28, 2019 16:25
@davegill
Copy link
Contributor Author

@mkavulich @weiwangncar @llpcarson
This is a first effort. These are easy to do as

  1. There is an existing, new, official license each for FFTPACK and ESMF
  2. The licenses are really similar to what we put for all of WRF (doing anything you want, don't blame us, keep the license notifications, we don't endorse you, etc)
  3. KPP and DA look tougher to untangle

Copy link
Contributor

@llpcarson llpcarson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good to clean this up, Dave, thanks!

@mgduda
Copy link
Collaborator

mgduda commented Jun 28, 2019

Should we get some legal advice regarding these changes? Although later releases of FFPACK and ESMF may have been released under different licenses, it almost seems like we shouldn't be able to unilaterally and retroactively apply the newer licenses to older versions of the software.

@llpcarson
Copy link
Contributor

Michael - The original change for FFTPACK in WRF in 2009 was ok'd by CISL (the distributor of the library). Your comment may be important for ESMF, though, I don't know the history of the licensing of that code!

@mgduda
Copy link
Collaborator

mgduda commented Jun 28, 2019

@llpcarson That's useful to know.

@davegill Where we have explicit permission from the library distributors to re-license the existing code, I think that would be good to mention in the PR description.

@davegill
Copy link
Contributor Author

davegill commented Jul 1, 2019

@mgduda @llpcarson
Folks,
I have sent an email to Cecelia Deluca requesting permission to change the licensing in the old ESMF Fortran code that resides in WRF.

1. Remove types in Registry files
2. Remove ifdefs from source code (Fortran only)
3. Remove MCEL directory

This code is
1. not supported
2. not being developed
3. not used by anyone

modified:   ./Registry/Registry.CONVERT
modified:   ./Registry/Registry.EM_COMMON
modified:   ./Registry/Registry.NMM
modified:   ./dyn_em/start_em.F
modified:   ./frame/module_io.F
deleted:    ./external/io_mcel/configure.wrf.example
deleted:    ./external/io_mcel/ext_mcel_open_for_read.F90
deleted:    ./external/io_mcel/ext_mcel_open_for_write.F90
deleted:    ./external/io_mcel/ext_mcel_read_field.F90
deleted:    ./external/io_mcel/ext_mcel_write_field.F90
deleted:    ./external/io_mcel/io_mcel.F90
deleted:    ./external/io_mcel/makefile
deleted:    ./external/io_mcel/timeconvert.c
@davegill davegill requested a review from a team as a code owner July 1, 2019 17:21
@davegill davegill changed the title Remove individual licenses from ESMF and FFTPACK, replace with single file Remove old licenses from ESMF and FFTPACK, remove all MCEL references Jul 1, 2019
No need to go into external/io_mcel for `clean` or `clean -a`
since the directory no longer exists.

modified:   external/Makefile
@dudhia
Copy link
Collaborator

dudhia commented Nov 13, 2019

check target branch 4.1.2

@davegill davegill changed the base branch from release-v4.1.2 to release-v4.1.3 November 20, 2019 17:52
@davegill davegill merged commit d951def into wrf-model:release-v4.1.3 Nov 20, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants