harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Geir Magnusson Jr. <g...@pobox.com>
Subject Re: [general] centralization of the NOTICE, COPYRIGHT, etc files
Date Wed, 17 Jan 2007 15:09:37 GMT

On Jan 15, 2007, at 12:56 AM, bootjvm wrote:

>
> All,
>
> Now that Harmony has graduated from the incubator
> and several contributions have been checked in, and now
> that the federated build process in 'enhanced/trunk' is getting
> off the ground, it is probably time to take another look at the
> outstanding matter of centrally managed administrative files.  At
> this time, this means that the root of various directory trees
> contain some or all of the following files: COPYRIGHT, LICENSE,
> NOTICE, THIRD_PARTY_NOTICES.txt.  In addition,
> the 'harmony/enhanced/jchevm' tree contains a couple
> of unique files of this genre.
>
> Geir originally suggested condensing the various identical LICENSE
> files and the like into one (back in July).  By October 2, the  
> discussion
> took the form of a first pass idea plus comments from the list.  
> (The list's
> discussion to date follows at the end of this message.)  But with the
> prospect of incubator graduation and new contributions, this second
> attempt seems to me a bit more focused and mature in my thinking
> about the issue.  Here is the substance of what I propose:
>
> 1.  Make _sure_ to set EOL style to 'native' on all affected files.

+1

>
> 2.  Add Intel's 2006 copyright from a new contribution to the
>      centralized 'enhanced/trunk/COPYRIGHT' file.

Well.... not sure.  I think that right now, the various files are  
pulled from classlib.  Certainly having them in one place is good.   
Maybe "common resources"?

>
> 3.  Remove almost all COPYRIGHT, LICENSE, NOTICE, and
>     THIRD_PARTY_NOTICES.txt files in favor of a symbolic
>     link to the equivalent file in 'enhanced/trunk'.  These files  
> contain
>     the complete superset of all other files that will be replaced  
> with
>     a symbolic link.  Intel's 2006 copyright claim for a contribution
>     is the only change that will be made to these files:
>
>         enhanced/trunk/COPYRIGHT
>         enhanced/trunk/LICENSE
>         enhanced/trunk/NOTICE
>         enhanced/trunk/THIRD_PARTY_NOTICES.txt

You can't do links in SVN.  We just need to make sure that we have a  
README in every root that points people to the right place for the  
files.

>
> 4.  Two exceptions to this rule are some similarly-named files
>      in '/enhanced/jchevm' which cover special circumstances
>     of that contribution.  Those files will, however, be adjusted
>     to use native EOL style in SVN.
>
> 5.  The complete list of affected files follows this narrative
>     and precedes the previous list e-mail discussion.
>
> This is everything that needs to be done now.  Several adjustments
> along the way have made other ideas either obsolete or have already
> been accounted for.
>
> Comments are solicited, especially from Tim Ellison and Geir  
> Magnusson.
>
> I would appreciate it if everyone could respond within about a  
> week, namely
> by January 22.  I would like to perform the SVN adjustments soon  
> thereafter.
> Thanks for your time in evaluating this proposal.

Actually, I think that an alternative might be simply to have

   COPYRIGHT_CLASSIB
   COPYRIGHT_DRLVM
   COPYRIGHT_JCHEVM

etc...  so each component maintains their own info?

Dunno

geir

>
> Dan Lydick
>
>
> #
> # Summary of all activities:
> #
> # enhanced/trunk/COPYRIGHT
> #     Change EOL property to 'native'.
> #
> #     Recommend adding language:
> #         (C) Copyright 2006 Intel Corporation
> #
> # enhanced/trunk/LICENSE
> #     Change EOL property to 'native'.
> #
> # enhanced/trunk/NOTICE
> #     Change EOL property to 'native'.
> #
> # enhanced/trunk/THIRD_PARTY_NOTICES.txt
> #     No changes.
> ##########
> # ./enhanced/jchevm/LICENSE.sablevm
> #     Change EOL property to 'native'.
> #     Due to special provisions,  recommend no changes to this file.
> #
> # ./enhanced/jchevm/NOTICE
> #     Change EOL property to 'native'.
> #     Due to special provisions,  recommend no changes to this file.
> ##########
> #
> # ./enhanced/classlib/trunk/COPYRIGHT
> # ./enhanced/classlib/trunk/modules/rmi/COPYRIGHT
> # ./enhanced/drlvm/trunk/COPYRIGHT
> # ./enhanced/drlvm/trunk/vm/gc_cc/COPYRIGHT
> # ./enhanced/drlvm/trunk/vm/gc_gen/src/COPYRIGHT
> # ./enhanced/jdktools/trunk/modules/jpda/COPYRIGHT.txt
> # ./enhanced/tools/trunk/jmx_console/COPYRIGHT
> #     Remove in favor of symbolic link to ./enhanced/trunk/COPYRIGHT
> #####
> # ./enhanced/classlib/trunk/LICENSE
> # ./enhanced/classlib/trunk/modules/rmi/LICENSE
> # ./enhanced/drlvm/trunk/LICENSE
> # ./enhanced/drlvm/trunk/vm/gc_cc/LICENSE
> # ./enhanced/drlvm/trunk/vm/gc_gen/src/LICENSE
> # ./enhanced/jchevm/LICENSE
> # ./enhanced/jdktools/trunk/LICENSE
> # ./enhanced/jdktools/trunk/modules/jpda/LICENSE.txt
> #
> ./enhanced/tools/trunk/eclipse/ 
> org.apache.harmony.eclipse.jdt.launching/LICE
> NSE
> # ./enhanced/tools/trunk/jmx_console/LICENSE
>
> #     Remove in favor of symbolic link to ./enhanced/trunk/LICENSE
> #####
> # ./enhanced/classlib/trunk/NOTICE
> # ./enhanced/classlib/trunk/modules/rmi/NOTICE
> # ./enhanced/drlvm/trunk/NOTICE
> # ./enhanced/drlvm/trunk/vm/gc_cc/NOTICE
> # ./enhanced/drlvm/trunk/vm/gc_gen/src/NOTICE
> # ./enhanced/jdktools/trunk/NOTICE
> # ./enhanced/jdktools/trunk/modules/jpda/NOTICE.txt
> # ./enhanced/tools/trunk/jmx_console/NOTICE
>
> #     Remove in favor of symbolic link to ./enhanced/trunk/NOTICE
> #####
> # ./enhanced/classlib/trunk/THIRD_PARTY_NOTICES.txt
> #     Remove in favor of symbolic link to
> ./enhanced/trunk/THIRD_PARTY_NOTICES.txt
> #
>
> ===================================================
>
>> [Original Message]
>> From: Tim Ellison <t.p.ellison@gmail.com>
>> To: <harmony-dev@incubator.apache.org>
>> Date: 10/2/06 1:27:19 PM
>> Subject: Re: [general] centralization of the NOTICE, COPYRIGHT,  
>> etc files
>>
>> There's a lot to take in here Dan.  Some comments in-line.
>>
>> bootjvm wrote:
>>> A while back, Geir asked for someone to volunteer to take a
>>> look at his first pass at gathering all of the COPYRIGHT,
>>> LICENSE, NOTICE, and other such files from the top level of
>>> the several Harmony directory trees that he had gathered
>>> them into 'harmony/enhanced/trunk'.
>>
>> Ok.  There is certainly duplication in places, the challenge is to
>> ensure that the modular code structure stays intact (so we don't  
>> end up
>> with, say, JCHEVM notices in a build that doesn't contain the code!)
>>
>>> I have taken a look at these and have summarized them below.
>>> Following that is a short proposal as to what to do about
>>> finishing this process that Geir started by eliminating the
>>> redundancies while retaining the unique elements of these
>>> files for each area.  From the Harmony SVN repository
>>> https://svn.apache.org/repos/asf/incubator/harmony/enhanced:
>>>
>>> trunk/
>>>     COPYRIGHT -- contains these declarations:
>>>         (C) Copyright 2005 Intel Corporation
>>>         (C) Copyright 2005-2006 Intel Corporation
>>>
>>>     INCUBATOR_NOTICE.txt
>>>         "...Incubation is required of all newly accepted  
>>> projects..."
>>>
>>>     LICENSE
>>>         Apache License
>>>           Version 2.0, January 2004
>>>             http://www.apache.org/licenses ...
>>>               TERMS AND CONDITIONS FOR USE, REPRODUCTION, ...
>>>                 1. Definitions.  ...
>>>
>>>     NOTICE -- re ASF License 2.0 section 4 d:  "Portions of  
>>> Harmony..."
>>>         Intel Corporation
>>>         Internet Society RFC 3280 re X.509 Public Key Infrastructure
>>
>> Currently, I take the NOTICE file to be our (Apache's) notices to the
>> recipient, such as the copyright statement and arguably the incubator
>> notice, and...
>>
>>>     THIRD_PARTY_NOTICES.txt -- regarding a number of packages:
>>
>> THIRD_PARTY_NOTICES is the notices that we pass on from code/ 
>> resources
>> we have used in our implementation.  In principle we can roll them  
>> all
>> into a single NOTICE file if that helps.
>>
>>>         ICU4C version 3.4:
>>>             ICU License - ICU 1.8.1 and later-- IBM 1995-2005
>>>         ICU4J version 3.4:
>>>             ICU4J 1.3.1 and later-- IBM 1995-2005
>>>         ICU4JNI version 3.4:
>>>             ICU4JNI 1.3.1 and later-- IBM 1995-2005
>>>         FDLIBM version 5.2:
>>>             Sun 2004
>>>         ZLIB version 1.2.3:
>>>             1995-2004 Jean-loup Gailly and Mark Adler
>>>         Visual C++ Runtime Files:
>>>             The file msvcr71.dll is the Microsoft(R) C Runtime  
>>> Library.
>>>             This file is redistributed from Microsoft(R) Visual
>>>             Studio 7.1
>>>         Bouncy Castle version 133:
>>>             2000 - 2006 The Legion Of The Bouncy Castle
>>>         MX4J 3.0.1:
>>>             The MX4J License, Version 1.0
>>>             Copyright (c) 2001-2004 by the MX4J contributors
>>>         The Independent JPEG Group's JPEG software
>>>             1991-1998, Thomas G. Lane
>>>         Little CMS
>>>             1998-2004 Marti Maria
>>>         libpng
>>>             2004, 2006 Glenn Randers-Pehrson
>>>         Unicode Character Database
>>>             1991-2005 Unicode, Inc.
>>
>> Yep.  Some of these are required notices and some are courtesy  
>> notices.
>>
>>> classlib/trunk
>>>     COPYRIGHT
>>>         identical to 'trunk/COPYRIGHT' regarding
>>>            "(C) Copyright 2005 Intel Corporation"
>>>
>>>     LICENSE
>>>           identical to 'trunk/LICENSE'
>>>
>>>     NOTICE
>>>           identical to 'trunk/NOTICE'
>>>
>>>     README.txt
>>>         "...Incubation is required of all newly accepted  
>>> projects..."
>>>         same as 'trunk/INCUBATOR_NOTICE.txt', plus additional
> information
>>>         following)
>>>
>>>     THIRD_PARTY_NOTICES.txt
>>>         identical to 'trunk/THIRD_PARTY_NOTICES.txt'
>>
>> I expect that many of these were copied-up (rather than moved), hence
>> the duplication.
>>
>>> classlib/trunk/modules/rmi
>>>     COPYRIGHT
>>>         identical to 'trunk/COPYRIGHT' regarding
>>>            "(C) Copyright 2005-2006 Intel Corporation"
>>>
>>>     LICENSE
>>>         identical to 'trunk/LICENSE'
>>>
>>>     NOTICE
>>>         identical to 'trunk/NOTICE' portion regarding Intel  
>>> Corporation
>>
>> A hang-over from the original contribution -- I think these can be
>> merged-up now.
>>
>>> drlvm/trunk
>>>     COPYRIGHT
>>>         identical to 'trunk/COPYRIGHT' regarding
>>>            "(C) Copyright 2005-2006 Intel Corporation"
>>>
>>>     LICENSE
>>>         identical to 'trunk/LICENSE'
>>>
>>>     NOTICE
>>>         identical to 'trunk/NOTICE' portion regarding Intel  
>>> Corporation
>>>
>>> jchevm
>>>     LICENSE
>>>         identical to 'trunk/LICENSE'
>>>
>>>     NOTICE
>>>         Same as 'trunk/NOTICE' portion regarding portion
>>>         regarding, "This product includes software developed by  
>>> the ASF"
>>>         but then adds info about code derived from the SableVM  
>>> project.
>>>
>>>
>>> Here is a possible way to meet Geir's original objectives:
>>>
>>>    (1) Make 'trunk' the focal point where all such files are  
>>> gathered.
>>
>> which trunk <g>?
>>
>>>    (2) For files that are completely common between the projects,  
>>> such
>>>        as 'LICENSE', remove the copies in each directory and replace
>>>        them in SVN with a symbolic link to the version in 'trunk'.
>>
>> 'the projects'?  and what do you mean by symbolic link?  more
>> svn:externals :-( ?
>>
>>>    (3) For files that have significant redundant content, replace  
>>> the
>>>        common portions of these files with statements referencing  
>>> the
>>>        relevant language in a like-named file in 'trunk'.  As an
>>>        alternative, retain the language but add a reference to
>>>        the common file.
>>
>> I would imagine that the duplication is in boilerplate files like the
>> ASL file, but is there duplication in third party notices between
>> 'classlib', 'drlvm', 'jchevm', etc.?
>>
>>>    (4) In order to protect the integrity of the licensing agreements
>>>        for bulk contributions, maintain their existing 'COPYRIGHT'
>>>        files as they stand, but add a related file to 'trunk' that
>>>        has the same exact contents.  Should the original files  
>>> change,
>>>        which is highly unlikely, since it concerns a historical  
>>> event,
>>>        then the 'trunk' version would be updated also.  (By keeping
> these
>>>        files as they stand, then there can never be any question  
>>> as to
>>>        the arrangement by which that code came into the ASF, thus
>>>        protecting all parties.)  The relevant files are:
>>>
>>>          classlib/trunk/COPYRIGHT:  "(C) Copyright 2005 Intel
> Corporation"
>>>
>>>          classlib/trunk/modules/rmi/COPYRIGHT:
>>>                                     "(C) Copyright 2005-2006 Intel
>>> Corporation"
>>>
>>>          drlvm/trunk/COPYRIGHT:     "(C) Copyright 2005-2006 Intel
>>> Corporation"
>>>
>>>        The suggested additions become:
>>>
>>>          trunk/COPYRIGHT.classlib:  "(C) Copyright 2005 Intel
> Corporation"
>>>
>>>          trunk/COPYRIGHT.dlrvm:     "(C) Copyright 2005-2006 Intel
>>> Corporation"
>>>
>>>          trunk/COPYRIGHT:           remove this file
>>>
>>>        The existing file 'trunk/COPYRIGHT' would be removed  
>>> because it
> only
>>>        contains the messages from the two other directories, yet  
>>> does
> not
>>>        state which copyright notice goes with which contribution.
>>
>> What is the difference, therefore, between having
>>     classlib/trunk/COPYRIGHT
>>     drlvm/trunk/COPYRIGHT
>> and
>>     trunk/COPYRIGHT.classlib
>>     trunk/COPYRIGHT.dlrvm
>>
>>>    (5) The LICENSE files may be combined into one central location:
>>>
>>>        trunk/LICENSE                The central focus and target  
>>> of all
>>> others
>>>
>>>        classlib/trunk/LICENSE       Replaced by symbolic link to
>>> 'trunk/LICENSE'
>>>
>>>        classlib/trunk/modules/rmi/LICENSE
>>
>> Not sure that we need to call out RMI as a special case.
>>
>>>                                     Replaced by symbolic link to
>>> 'trunk/LICENSE'
>>>
>>>        drlvm/trunk/LICENSE          Replaced by symbolic link to
>>> 'trunk/LICENSE'
>>>
>>>        jchevm/LICENSE               Replaced by symbolic link to
>>> 'trunk/LICENSE'
>>>
>>>
>>>    (6) The NOTICE files retain their existing text, but adds a  
>>> statement
>>> such
>>>        as, "This notice also appears in the main
>>> 'harmony/enhanced/trunk/NOTICE'
>>>        file, where all such notices appear."
>>
>> That won't mean much to the recipient of a build though.
>>
>>>
>>>        trunk/NOTICE                 Contains a grand union of all  
>>> NOTICE
>>> files.
>>>
>>>        classlib/trunk/NOTICE        Adds this message at the end  
>>> of its
> text
>>>
>>>        classlib/trunk/modules/rmi/LICENSE
>>>                                     Adds this message at the end  
>>> of its
> text
>>>
>>>        drlvm/trunk/LICENSE          Adds this message at the end  
>>> of its
> text
>>>
>>>        jchevm/LICENSE               Adds this message at the end  
>>> of its
> text
>>>
>>>
>>>    (7) The THIRD_PARTY_NOTICES.txt files may be combined into one
>>>        central location:
>>>
>>>        trunk/THIRD_PARTY_NOTICE.txt   The central focus and  
>>> target of
> all
>>> others
>>>
>>>        classlib/trunk/THIRD_PARTY_NOTICE.txt
>>>                                     * Replaced by symbolic link to
>>>                                         'trunk/ 
>>> THIRD_PARTY_NOTICES.txt'
>>> --OR--
>>>                                     * Add language at the end of  
>>> this
> file
>>> to
>>>                                         the effect "this list is  
>>> part of
>>>                                         a project-wide list found in
>>>                                         'trunk/ 
>>> THIRD_PARTY_NOTICES.txt'
>>>                                         (Comments?)
>>
>> As above, is there overlap here?
>>
>>>    (8) Ad hoc changes to selected files, namely:
>>>
>>>        classlib/trunk/README.txt    Remove language that is  
>>> identical to
>>>                                     'trunk/INCUBATOR_NOTICE.txt',  
>>> then
>>>                                     in its place, add reference  
>>> to that
> file
>>>                                     for such information.
>>
>> Do you need to cross-reference like this?
>>
>>>    (9) All other files are unchanged, namely:
>>>
>>>        trunk/INCUBATOR_NOTICE.txt
>>>
>>>
>>>   (10) In _all_ such files, set 'svn propset svn:eol- 
>>> style=native' to
> avoid
>>>        white space differences in comparison between them and  
>>> usage by
> all
>>>        interested parties without wrangling with this issue.
>>
>> Sure.
>>
>>>   (11) Future bulk contributions 'harmony/enhanced/foo' would then
>>>        follow this same general approach:
>>>
>>>        (a) to gather all common files into 'harmony/enhanced/ 
>>> trunk' and
>>>            point symbolic links to them.
>>>
>>>        (b) Add a 'harmony/enhanced/trunk/COPYRIGHT.foo' file  
>>> containing
>>>            their prior copyright information.
>>>
>>>        (c) Any NOTICE file would add the appropriate reference to
>>>            'trunk/NOTICE' and extend that file with any new  
>>> language.
>>>
>>>        (d) Third party notices would be added at the end of
>>>            'trunk/THIRD_PARTY_NOTICES.txt' and add a symbolic
>>>            link 'foo/THIRD_PARTY_NOTICES.txt' to point to that  
>>> addition,
>>>            or add a file by that name containing _only_ the new
>>>            information and language referring to the global one.
>>> (Comments?)
>>
>> Hopefully covered by comments above.
>>
>>>   (12) Suggest replacing the name 'THIRD_PARTY_NOTICES.txt' simply
>>>        with 'THIRD_PARTY_NOTICES' (for consistency in naming),  
>>> perhaps
>>>        in 'classlib/trunk' adding a symbolic link with the old name
>>>        pointing to the new.
>>
>> Sure
>>
>>> Your comments would be appreciated.
>>
>> Thanks for tackling it Dan.
>>
>> Regards,
>> Tim
>>
>>
>>> Dan Lydick
>>>
>>>> [Original Message]
>>>> From: Geir Magnusson Jr <geir@pobox.com>
>>>> To: <harmony-dev@incubator.apache.org>
>>>> Date: 7/20/06 9:52:37 PM
>>>> Subject: Re: [general] centralization of the NOTICE, COPYRIGHT, etc
> files
>>>>
>>>> Well, go for it!  See what I have in there now and see what you
> think...
>>>>
>>>> geir
>>>>
>>>>
>>>> bootjvm wrote:
>>>>> Geir,
>>>>>
>>>>> I have been working off and on with on putting together
>>>>> a contribution for this purpose.  It has all the things you
>>>>> mentioned plus some more things.  If you like, I would
>>>>> be glad to put it together shortly and submit for The List's
>>>>> inspection and approval.  What do you say?
>>>>>
>>>>>
>>>>> Dan Lydick
>>>>>
>>>>>
>>>>>> [Original Message]
>>>>>> From: Geir Magnusson Jr <geir@pobox.com>
>>>>>> To: <harmony-dev@incubator.apache.org>
>>>>>> Date: 7/20/06 2:07:14 PM
>>>>>> Subject: [general] centralization of the NOTICE, COPYRIGHT,  
>>>>>> etc files
>>>>>>
>>>>>> If you haven't guessed from my random checkins, questions, and
>>>>>> befuddlement, I'm finishing off a first cut at a federated build.
>>>>>>
>>>>>> The plan is to cut a hdk and a jre snapshot.  The HDK will  
>>>>>> contain
> the
>>>>>> jre, but I thought it would be more conventional for users to  
>>>>>> get a
>>>>>> plain jre and not have to figure out what a HDK is.
>>>>>>
>>>>>> Now, I want to coalesce the NOTICE, COPYRIGHT, 3rd party, etc  
>>>>>> files
>>> into
>>>>>> one project-wide file in
>>>>>>
>>>>>> enhanced/trunk/
>>>>>>
>>>>>> and replace the ones we have in classlib/, drlvm/ etc with a  
>>>>>> NOTICE,
>>> etc
>>>>>> file that points to the root one.
>>>>>>
>>>>>> Any complaints, suggestions?
>>>>>>
>>>>>> geir
>>>>>>
>>>>>> -----------------------------------------------------------------

>>>>>> ----
>>>>>> Terms of use : http://incubator.apache.org/harmony/mailing.html
>>>>>> To unsubscribe, e-mail: harmony-dev- 
>>>>>> unsubscribe@incubator.apache.org
>>>>>> For additional commands, e-mail:
> harmony-dev-help@incubator.apache.org
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> ------------------------------------------------------------------ 
>>>>> ---
>>>>> Terms of use : http://incubator.apache.org/harmony/mailing.html
>>>>> To unsubscribe, e-mail: harmony-dev- 
>>>>> unsubscribe@incubator.apache.org
>>>>> For additional commands, e-mail: harmony-dev- 
>>>>> help@incubator.apache.org
>>>>>
>>>>>
>>>>>
>>>> ------------------------------------------------------------------- 
>>>> --
>>>> Terms of use : http://incubator.apache.org/harmony/mailing.html
>>>> To unsubscribe, e-mail: harmony-dev- 
>>>> unsubscribe@incubator.apache.org
>>>> For additional commands, e-mail: harmony-dev- 
>>>> help@incubator.apache.org
>>>>
>>>
>>>
>>>
>>>
>>> -------------------------------------------------------------------- 
>>> -
>>> Terms of use : http://incubator.apache.org/harmony/mailing.html
>>> To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
>>> For additional commands, e-mail: harmony-dev- 
>>> help@incubator.apache.org
>>>
>>>
>>
>> -- 
>>
>> Tim Ellison (t.p.ellison@gmail.com)
>> IBM Java technology centre, UK.
>>
>> ---------------------------------------------------------------------
>> Terms of use : http://incubator.apache.org/harmony/mailing.html
>> To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
>> For additional commands, e-mail: harmony-dev- 
>> help@incubator.apache.org
>>
>
>
>


Mime
View raw message