Subject: Re: [PATCH] gnu: java-classpathx-servletapi: Update to 3.0-r1244.

From: Gábor Boskovits <[email-masked]>
Date: Sun, 7 Jan 2018 23:13:54 +0100

The second version of this patch provides a good file-name.

2018-01-07 23:11 GMT+01:00 Gábor Boskovits <[email-masked]>:

> * gnu/packages/java.scm (java-classpathx-servletapi): Update to 3.0-r1244.
> [source]: Change to svn-fetch from upstream. (This version is only
> available from there)
> [arguments]: Switch to a java8 compiler, remove comment about not working
> with java8,
> add phase chdir to compensate for the different layout of the upstream
> repository.
>
> This version fixes java8 compilation by fixing a method signature which
> conflicts with
> java8. Communication with upstream:
>
> 2017-12-18 9:38 GMT+01:00 Chris Burdess <[email-masked]>:
> On 17/12/2017 20:53, Gábor Boskovits wrote:
> Dear classpathx developers,
>
> I discovered, that classpathx servletapi 3.0 does not compile with java8.
> The problem is that java8 added a method to the Map interface:
> boolean remove(Object,Object), which conflicts with
> Object remove(Object,Object) method in:
> source/javax/servlet/jsp/el/ImplicitObjectELResolver.java;
> ImplicitObjectELResolver::ScopeMap::remove
>
> how should we fix this problem?
>
> It was a typo in the method signature. I've fixed it now.
>
> Thank you very much!
> ---
>  gnu/packages/java.scm | 21 ++++++++++-----------
>  1 file changed, 10 insertions(+), 11 deletions(-)
>
> diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
> index 0be488dec..b2b4c254f 100644
> --- a/gnu/packages/java.scm
> +++ b/gnu/packages/java.scm
> @@ -2018,28 +2018,27 @@ debugging, etc.")
>  (define-public java-classpathx-servletapi
>    (package
>      (name "java-classpathx-servletapi")
> -    (version "3.0")
> +    (version "3.0-r1244")
>      (source (origin
> -              (method url-fetch)
> -              (uri (string-append "mirror://gnu/classpathx/servletapi/"
> -                                  "servletapi-" version ".tar.gz"))
> +              (method svn-fetch)
> +              (uri (svn-reference
> +                    (url "svn://svn.savannah.gnu.org/classpathx/trunk")
> +                    (revision 1244)))
> +              (file-name (string-append name "-" version "-checkout"))
>                (sha256
>                 (base32
> -                "0y9489pk4as9q6x300sk3ycc0psqfx
> cd4b0xvbmf3rhgli8q1kx3"))))
> +                "07ihcwhm5awdr1wj28lqvcxhd6z72w
> 427zbyxrqh42lgga74wsh3"))))
>      (build-system ant-build-system)
>      (arguments
>       `(#:tests? #f ; there is no test target
>         #:build-target "compile"
> -       ;; NOTE: This package does not build with Java 8 because of a type
> -       ;; mismatch in
> -       ;; "source/javax/servlet/jsp/el/ImplicitObjectELResolver.java".
> It
> -       ;; defines the return value of ScopeMap's "remove" method to be of
> type
> -       ;; "Object", whereas Map's "remove" method returns boolean.
>         #:make-flags
> -       (list "-Dbuild.compiler=javac1.7"
> +       (list "-Dbuild.compiler=javac1.8"
>               (string-append "-Ddist=" (assoc-ref %outputs "out")))
>         #:phases
>         (modify-phases %standard-phases
> +         (add-after 'unpack 'chdir
> +           (lambda _ (chdir "servletapi") #t))
>           (replace 'install
>             (lambda* (#:key make-flags #:allow-other-keys)
>               (zero? (apply system* `("ant" "dist" ,@make-flags))))))))
> --
> 2.15.1
>
>