Subject: Re: [bug#30417] [PATCH 06/11] gnu: Add java-modello-core.

From: Julien Lepiller <[email-masked]>
Date: Wed, 14 Feb 2018 22:56:38 +0100

Le Wed, 14 Feb 2018 21:22:25 +0100,
Björn Höfling <[email-masked]> a écrit :

> On Sun, 11 Feb 2018 00:04:33 +0100
> Julien Lepiller <[email-masked]> wrote:
> 
> > * gnu/packages/java.scm (java-modello-core): New variable.
> > ---
> >  gnu/packages/java.scm | 50
> > ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed,
> > 50 insertions(+)
> > 
> > diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
> > index af9acd71f..d75960831 100644
> > --- a/gnu/packages/java.scm
> > +++ b/gnu/packages/java.scm
> > @@ -2811,6 +2811,56 @@ a default implementation of it.  This API is
> > about scanning files in a project and determining what files need to
> > be rebuilt.") (license license:asl2.0)))
> >  
> > +(define-public java-modello-core
> > +  (package
> > +    (name "java-modello-core")
> > +    (version "1.9.1")
> > +    (source (origin
> > +              (method url-fetch)
> > +              (uri (string-append
> > "https://github.com/codehaus-plexus/modello"
> > +                                  "/archive/modello-" version
> > ".tar.gz"))
> > +              (sha256
> > +               (base32
> > +
> > "0l2pvns8pmlrmjm3iknp7gpg3654y1m8qhy55b19sdwdchdcyxfh"))))
> > +    (build-system ant-build-system)
> > +    (arguments
> > +     `(#:jar-name "modello-core.jar"
> > +       #:source-dir "modello-core/src/main/java"
> > +       #:test-dir "modello-core/src/test"
> > +       #:main-class "org.codehaus.modello.ModelloCli"
> > +       #:jdk ,icedtea-8
> > +       #:phases
> > +       (modify-phases %standard-phases
> > +         (add-before 'build 'copy-resources
> > +           (lambda _
> > +             (mkdir-p "build/classes/META-INF/plexus")
> > +             (copy-file
> > "modello-core/src/main/resources/META-INF/plexus/components.xml"
> > +
> > "build/classes/META-INF/plexus/components.xml")
> > +             #t))
> > +         (add-before 'check 'fix-tests
> > +           (lambda _
> > +             (substitute*
> > '("modello-core/src/test/java/org/codehaus/modello/core/DefaultModelloCoreTest.java"
> > +
> > "modello-core/src/test/java/org/codehaus/modello/core/io/ModelReaderTest.java")
> > +               (("src/test") "modello-core/src/test")))))))
> > +    (inputs
> > +     `(("java-plexus-utils" ,java-plexus-utils)
> > +
> > ("java-plexus-container-default-bootstrap" ,java-plexus-container-default-bootstrap)
> > +       ("java-sisu-build-api" ,java-sisu-build-api)))
> > +    (native-inputs
> > +     `(("java-junit" ,java-junit)
> > +       ("java-plexus-classworlds" ,java-plexus-classworlds)
> > +       ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
> > +       ("java-guava" ,java-guava)))
> > +    (home-page "http://codehaus-plexus.github.io/modello/")
> > +    (synopsis "Framework for code generation from a simple model")
> > +    (description "Modello is a framework for code generation from a
> > simple model. +
> > +Modello generates code from a simple model format: based on a
> > plugin +architecture, various types of code and descriptors can be
> > generated from the +single model, including Java POJOs,
> > XML/JSON/YAML marshallers/unmarshallers, +XSD and documentation.")
> > +    (license license:asl2.0)))  
> 
> I'm not sure about how to declare the license:
> 
> If you consider only the code under modello-core, that is only
> license:expat (if I havent overseen anything).
> 
> But as you are not working with snippets here, I think you have to
> look at every file in the original source package. And there I found
> three types of licenses:
> 
> * expat, as above
> * asl2.0, like
>   in ./modello-plugins/modello-plugin-stax/src/test/java/org/codehaus/modello/generator/xml/stax/BooleanTypeStaxGeneratorTest.java
> * Finally, some kind of "5-clause-BSD":
> ./modello-plugins/modello-plugin-java/src/main/java/org/codehaus/modello/plugin/java/javasource/JNaming.java
> I always have my troubles matching a license text to one of the
> available licenses, so I quote it in full here:
> 
> /**
>  * Redistribution and use of this software and associated
> documentation
>  * ("Software"), with or without modification, are permitted provided
>  * that the following conditions are met:
>  *
>  * 1. Redistributions of source code must retain copyright
>  *    statements and notices.  Redistributions must also contain a
>  *    copy of this document.
>  *
>  * 2. Redistributions in binary form must reproduce the
>  *    above copyright notice, this list of conditions and the
>  *    following disclaimer in the documentation and/or other
>  *    materials provided with the distribution.
>  *
>  * 3. The name "Exolab" must not be used to endorse or promote
>  *    products derived from this Software without prior written
>  *    permission of Intalio, Inc.  For written permission,
>  *    please contact [email-masked].
>  *
>  * 4. Products derived from this Software may not be called "Exolab"
>  *    nor may "Exolab" appear in their names without prior written
>  *    permission of Intalio, Inc. Exolab is a registered
>  *    trademark of Intalio, Inc.
>  *
>  * 5. Due credit should be given to the Exolab Project
>  *    (http://www.codehaus.org/).
>  *
>  * THIS SOFTWARE IS PROVIDED BY INTALIO, INC. AND CONTRIBUTORS
>  * ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
>  * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
>  * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
>  * INTALIO, INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
>  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
>  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
>  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
>  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
>  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
>  * OF THE POSSIBILITY OF SUCH DAMAGE.
>  *
>  * Copyright 1999-2000 (C) Intalio, Inc. All Rights Reserved.
>  *
>  * $Id$
>  */

We don't have anything for that license. I've seen it in some other
java packages, and I used (non-copyleft "file:///LICENSE.txt"), except
this time, LICENSE.txt contains only the expat license. The files that
have this license are also licensed under the expat license. Is it OK
to declare only the expat license here, as it is the only one in
LICENSE.txt?

> 
> 
> > +
> >  (define-public java-asm
> >    (package
> >      (name "java-asm")  
> 
> Linter found 3 lines too long:
> 
> /home/bjoern/guix/guix/gnu/packages/java.scm:2903:2:
> [email-masked]: line 2930 is way too long (110
> characters) /home/bjoern/guix/guix/gnu/packages/java.scm:2903:2:
> [email-masked]: line 2931 is way too long (107
> characters) /home/bjoern/guix/guix/gnu/packages/java.scm:2903:2:
> [email-masked]: line 2935 is way too long (91 characters)
> 
> The first ones are the substitute*, I think that is OK. The last one
> is the dependency:
> 
>        ("java-plexus-container-default-bootstrap" ,java-plexus-container-default-bootstrap)
> 
> That could be broken up in two lines.
> 
> 
> Björn