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

Update project licenses #55

Merged
merged 51 commits into from Jun 8, 2012

Conversation

@ctrueden
Copy link
Member

commented Apr 14, 2012

This branch updates the licenses for all Bio-Formats / SCIFIO projects. The following things have been updated:

  1. Basic license metadata ("<licenses>" section) in each project's POM, identifying the project license. This metadata is mainly used when generating a Maven project web site. We include it for consistency, clarity and completeness.
  2. Plugin configuration in each project's POM for license-maven-plugin, necessary for the following items 3 and 4.
  3. LICENSE.txt file in each project base directory with a copy of the license for that project. These files were generated using "mvn license:update-project-license" from the toplevel directory, as well as the components/native directory. They can be regenerated as needed in the same way.
  4. Individual file headers for every source file of every project. Each header now has a blurb appropriate to the enclosing project's license, prefixed by a copyright statement indicating the year range and copyright holders. The headers were stamped using "mvn license:update-file-header" from the toplevel directory, as well as the components/native directory. They can be restamped as needed (e.g., to update the year range or copyright holders) in the same way.

In doing this work, a number of issues arose, which I summarize below. I consider them all to be points for discussion, which should be resolved prior to this PR being merged.

  1. The ome-xml project had a different style of copyright than the others. It used the OME copyright template, which begins with e.g. "Copyright (C) 2009 - 2012 Open Microscopy Environment" and then enumerates the constituent institutions on following lines, one per line, indented. Aesthetically, I really like this, as it is readable and identifies us all as members of the OME consortium very clearly. So, I styled the new ome-xml file headers in the same way. However, the rest of the projects are not styled this way. I propose that we make a decision one way or the other, for consistency, and I will update this branch accordingly.
  2. Similarly, the ome-xml project includes MIT and NIH as copyright holders, unlike any other Bio-Formats project. This does make sense as members of MIT and NIH were heavily involved in crafting the original OME schema, from which the entire ome-xml codebase is derived. So I left them in as copyright holders. Do you all agree that this makes the most sense?
  3. In components/bio-formats, the source file BDReader.java includes an additional copyright holder: Vanderbilt Integrative Cancer Center. Should we include this additional copyright holder for that one file? Note that BDReader.java also has an author tag that gives proper attribution. The difference here is that we have had many contributors to Bio-Formats (see Bio-Formats Authors page or components/bio-formats/pom.xml for a list) but none of the other contributors have explicitly retained copyright in the copyright holders section of the relevant source file(s).
  4. Related to item 3 above, it is possible to configure license-maven-plugin so that it does not overwrite the copyright holders portion of the file headers. In this way, we can maintain the copyright holders of each source file separately, as per OME general policy. Currently, this branch configures the license-maven-plugin to allow overwriting/updating of the copyright holders to match what is given in the project POM. Should we change this?
  5. The components/scifio project contains a few XSL files that had a different copyright than the rest of the project. They were labeled as LGPL, copyright Glencoe Software. This branch updates them to match the rest of SCIFIO, which changes the license to BSD-2. Note that as part of the SCIFIO refactoring (on Mark's scifio-refactor branch), these files will move out of components/scifio and into components/ome-xml, which is also licensed BSD-2 now. Please comment if there are any problems with this relicensing.
  6. Similarly, the components/metakit project was copyright Glencoe only, and the components/stubs/lwf-stubs project was copyright LOCI only. I have updated all projects to include at least UW-Madison, Glencoe and U. Dundee as copyright holders, since we have all invested much effort in developing this suite of projects. Are we agreed that this blanket application of those three copyright holders is OK? Or should we retain a smaller subset of copyright holders for relevant projects?
  7. The project forks in components/forks did not have proper licenses. That is, we had left the original copyright holders with the original license, without adding our own copyright headers. We need to have our copyright and license "over top" the original ones, so I have done this, keeping the original
  8. BF-ITK-pipe had some files with an Apache2 license, copyrighted by Insight Software Consortium, blanketed over top of our copyright header with BSD-2 license. This was due to substantial contributions from Gaëtan Lehmann (the approach and initial implementation of bf-itk-pipe was his idea). I preserved the Insight Software Consortium as a copyright holder on bf-itk-pipe, but reverted the license to BSD-2 to match the others. (Though I personally don't have much preference between Apache2 vs. BSD-2. The ITK codebase is largely migrating to Apache2 from BSD, which is probably why they stamped Apache2 over those files.) There is currently a patch set to include BF-ITK-pipe in ITK proper, and a corresponding JIRA issue for it, but it is currently marked as "Abandoned" as the Gaëtan has been too busy to pursue it to completion. If BF-ITK-pipe is included in ITK in the future, they can relicense Apache2 again, but until then, this branch sets the license to BSD-2. Sound OK?

This branch touches the vast majority of files in the repository. I have tried to group the commits so they are easy to review (for each source file, the old headers are removed and new headers added in same commit, for quick visual comparison). The testing burden of this PR is hopefully low: we need only verify that the code all still builds with Maven, since it touches all the POMs. That said, by and large, the sorts of problems this PR might introduce will not be caught by the compiler, or by runtime tests. We need manual code review of the header changes, to make sure nothing else fell through the cracks.

Sorry for writing a novel here but there are a lot of little things to think about! Thanks for reading!

@ctrueden

This comment has been minimized.

Copy link
Member Author

commented Apr 14, 2012

One thing I forgot to mention in my initial writeup: the license-maven-plugin supports a few licenses out of the box including GPL and Apache2, but there is no built-in template for BSD-style licenses. Instead, you must add your own header.txt and license.txt files for that, and serve them from a URL somewhere. I have done so at http://code.imagej.net/licenses/, but we may want to migrate this content to somewhere on the OO.org servers instead. The URL is defined in the toplevel POM using property license.server, so should be easy to change.

@ctrueden

This comment has been minimized.

Copy link
Member Author

commented May 15, 2012

Branch has been rebased on the latest develop branch as of today. There were some merge conflicts, but easily resolved.

@melissalinkert

This comment has been minimized.

Copy link
Member

commented May 17, 2012

In response to your points:

  1. Using the ome-xml-style headers across the board is fine by me, but should "Glencoe Software, Inc." not be included in the ome-xml copyrights?
  2. I'd agree that the MIT and NIH copyrights should be preserved in that case.
  3. Vanderbilt copyright should be preserved there, I think. Unlike most contributions, BDReader.java was actually written from scratch by someone there (the only other cases of this that I know of are ARFReader.java and AmiraReader.java; I'd guess that we could pretty easily determine whether or not the original authors of those desire copyright as well).
  4. Yes, I think we probably want to be able to specify slightly different copyrights for each file.
  5. I don't think that would cause a problem, but someone else would have to comment on that for sure.
  6. No objections to having all three institutions listed on the copyright for metakit and lwf-stubs. I wrote metakit originally, and if I recall @chris-allan wrote lwf-stubs.
  7. I honestly don't know what is the correct thing to do there.
  8. No objections from me, as long as that is fine with Gaëtan.

And a few points of my own:

  1. Why is the copyright on the LICENSE.txt files in the common, forks/jai, and ome-xml components "Copyright (C) 2008 - 2012 Board of Regents of the University of Wisconsin-Madison, Broad Institute of MIT and Harvard, and Max Planck Institute of Molecular Cell Biology and Genetics."?
  2. Copyrights on the ome-xml component files should not be set on the files directly, but rather in the templates that xsd-fu uses to generate them (otherwise, it's an extra step every time we have to re-generate those files [which I guarantee that I will forget to do]).
  3. I'm not a huge fan of having "#%L", "%%", and "#L%" in the headers, but I'll cope if there's no easy way of turning that off in the relevant Maven plugin.
  4. Copyrights appear to have been stripped entirely from components/*/test/**/utests/*
  5. Something went a bit funny with the copyright addition for components/forks/poi/src/loci/poi/hpsf/HPSFException.java, components/forks/poi/src/loci/poi/hpsf/DocumentSummaryInformation.java, and components/forks/poi/src/loci/poi/hpsf/CustomProperties.java, so compilation actually fails.
@ghost

This comment has been minimized.

Copy link

commented May 17, 2012

For the JAI stuff, should the original copyright holders not be retained in the copyright header? Do we know definitively that all these files fall under the BSD licence? Because AFAICS they do not have a BSD licence in their headers.

The JPEG2000 code may not even be free software:
/* No license

  • or right to this software module is granted for non JPEG 2000 Standard
  • conforming products. JJ2000 Partners have full right to use this
  • software module for his/her own purpose, assign or donate this
  • software module to any third party and to inhibit third parties from
  • using this software module for non JPEG 2000 Standard conforming
  • products
    */

So it is in fact valid to replace the licence on their code with our own?

@ctrueden

This comment has been minimized.

Copy link
Member Author

commented May 17, 2012

Thanks for the comments, @melissalinkert and @rleigh-dundee! I am busy for the rest of this week, and on vacation next week, but will reply in detail and address many of the issues raised when I return.

ctrueden added 4 commits May 31, 2012
Update to latest version of pom-scijava
This includes an update of license-maven-plugin to the officially
released version 1.1, rather than our custom pre-1.1 bugfix version.
ctrueden added 13 commits Jun 4, 2012
Reenable ome-notes in toplevel builds
At one point, we deemed this project too burdensome to maintain, as it
failed to compile. However, it appears to compile just fine right now,
so it makes sense to keep it in the toplevel build. It is useful at
least as another compile-time test for API backwards compatibility.

In the future, we may cease verification of compile-time compatibility,
but if so, I suggest we do so for all projects in legacy (i.e., both
ome-editor and ome-notes), for consistency.
@ctrueden

This comment has been minimized.

Copy link
Member Author

commented Jun 4, 2012

Issue 4 has been resolved; all test code (and other code in directories other than src) should now contain proper license headers.

I also updated the ome-notes project, since it has been left out. It is compiling again, so I reenabled it in the Ant and Maven toplevel builds.

I purged obsolete headers from anywhere else that still remained (just a few .txt files).

I fixed the BF-CPP header to match the SCIFIO license.

I removed the obsolete ICE templates, since autogen no longer has code for generating BF-ICE.

I believe this now resolves all issues in the bio-formats codebase except for the %L dividers (speak up if you want those changed). I will work on updating the xsd-fu templates, but as far as I'm concerned, this PR is ready to be merged.

@ctrueden

This comment has been minimized.

Copy link
Member Author

commented Jun 5, 2012

I have filed a separate pull request that updates the license headers in the xsd-fu templates: OME PR #191.

@melissalinkert

This comment has been minimized.

Copy link
Collaborator

commented on components/bio-formats/doc/sorttable.js in fc734fb Jun 7, 2012

Should this line actually have been changed?

@melissalinkert

This comment has been minimized.

Copy link
Member

commented Jun 7, 2012

Much better now, but as noted above there is one line that looks like it shouldn't have been changed (looks like something went a bit funny with how the license plugin handles UTF-8 strings).

Aside from that, the only thing blocking here (in my opinion) is that this branch no longer merges cleanly. Can you please try merging openmicroscopy/develop into the branch, double-check that there are no new files that need new headers, and then push the updated branch?

@ctrueden

This comment has been minimized.

Copy link
Member Author

commented Jun 7, 2012

OK, I fixed the UTF-8 problem (by eliminating non-ASCII characters, for maximum compatibility with various tools). I also merged the latest develop, and fixed up the license header for new files.

Update loci.formats.meta to use OME-XML copyright
The plan is for this code to eventually become part of the ome-xml
component anyway, so we decided to change the copyright preemptively.
@ctrueden

This comment has been minimized.

Copy link
Member Author

commented Jun 7, 2012

And openmicroscopy PR #191 has been updated to match.

melissalinkert added a commit that referenced this pull request Jun 8, 2012

@melissalinkert melissalinkert merged commit bda0110 into ome:develop Jun 8, 2012

hflynn pushed a commit to hflynn/bioformats that referenced this pull request Oct 11, 2013
Merge pull request ome#55 from sbesson/walkthroughs
Move walkthroughs to sysadmins section
melissalinkert pushed a commit to melissalinkert/bioformats that referenced this pull request Jan 11, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants
You can’t perform that action at this time.