From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:46910) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d8jNM-0002Xz-IM for guix-patches@gnu.org; Thu, 11 May 2017 04:23:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d8jNJ-0003e6-1v for guix-patches@gnu.org; Thu, 11 May 2017 04:23:08 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:34919) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1d8jNI-0003dl-Uk for guix-patches@gnu.org; Thu, 11 May 2017 04:23:04 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1d8jNG-00050H-82 for guix-patches@gnu.org; Thu, 11 May 2017 04:23:02 -0400 Subject: bug#26803: [PATCH 27/36] gnu: Add java-mockito-1. Resent-Message-ID: References: <20170506153617.3074-1-rekado@elephly.net> <20170506153617.3074-27-rekado@elephly.net> From: Ricardo Wurmus In-reply-to: Date: Thu, 11 May 2017 10:22:14 +0200 Message-ID: <871srvhkg9.fsf@elephly.net> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: Roel Janssen Cc: 26803@debbugs.gnu.org Roel Janssen writes: > Ricardo Wurmus writes: > >> * gnu/packages/java.scm (java-mockito): New variable. >> --- >> gnu/packages/java.scm | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++ >> 1 file changed, 60 insertions(+) >> >> diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm >> index 859f9934a..2cf2821c0 100644 >> --- a/gnu/packages/java.scm >> +++ b/gnu/packages/java.scm >> @@ -1977,6 +1977,66 @@ logging implementations. A library that uses the commons-logging API can be >> used with any logging implementation at runtime.") >> (license license:asl2.0))) >> >> +;; This is the last release of the 1.x series. >> +(define-public java-mockito-1 >> + (package >> + (name "java-mockito") >> + (version "1.10.19") >> + (source (origin >> + (method url-fetch) >> + (uri (string-append "http://repo1.maven.org/maven2/" >> + "org/mockito/mockito-core/" version >> + "/mockito-core-" version "-sources.jar")) >> + (sha256 >> + (base32 >> + "0vmiwnwpf83g2q7kj1rislmja8fpvqkixjhawh7nxnygx6pq11kc")))) >> + (build-system ant-build-system) >> + (arguments >> + `(#:jar-name "mockito.jar" >> + #:tests? #f ; no tests included >> + ;; FIXME: patch-and-repack does not support jars, so we have to apply >> + ;; patches in build phases. >> + #:phases >> + (modify-phases %standard-phases >> + ;; Mockito fails to build with our verson of hamcrest without this >> + ;; definition. >> + (add-after 'unpack 'fix-hamcrest-build-error >> + (lambda _ >> + (substitute* "src/org/mockito/internal/matchers/LocalizedMatcher.java" >> + (("public Matcher getActualMatcher\\(\\) .*" line) >> + (string-append " >> + public void describeMismatch(Object item, Description description) { >> + actualMatcher.describeMismatch(item, description); >> + }" >> + line))) >> + #t)) > > I understand this is easier and possibly less error-prone than creating > a patch file instead, but how far are we going with adding/removing code > inside the package recipes? There’s a FIXME comment above the #:phases. I would like to use a patch in this case, but patch-and-repack does not support jars. We usually unpack the sources, apply the patches, and then repack the sources, but this currently doesn’t work for jars. This is why I must do this in build phases. > As far as the actual code addition goes, it is pretty straightforward: > It adds a function that hamcrest expects is available. Maybe add a > comment describing this? Then it's OK to me. Okay, I’ll add a better comment here. Thanks! -- Ricardo GPG: BCA6 89B6 3655 3801 C3C6 2150 197A 5888 235F ACAC https://elephly.net