From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ricardo Wurmus Subject: Re: [PATCH] gnu: java-swt: Use other archive on 64-bit systems. Date: Tue, 07 Jun 2016 12:43:12 +0200 Message-ID: <87lh2hz3cv.fsf@elephly.net> References: <1462803393-7913-1-git-send-email-rekado@elephly.net> <20160509180342.GA16597@debian-netbook> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:44305) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bAETo-0002ld-42 for guix-devel@gnu.org; Tue, 07 Jun 2016 06:43:29 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bAETk-00049Z-0S for guix-devel@gnu.org; Tue, 07 Jun 2016 06:43:27 -0400 Received: from sender163-mail.zoho.com ([74.201.84.163]:24733) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bAETj-00049T-Mh for guix-devel@gnu.org; Tue, 07 Jun 2016 06:43:23 -0400 In-reply-to: <20160509180342.GA16597@debian-netbook> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Efraim Flashner Cc: guix-devel@gnu.org Efraim Flashner writes: > On Mon, May 09, 2016 at 04:16:33PM +0200, Ricardo Wurmus wrote: >> * gnu/packages/java.scm (java-swt)[source]: Use separate source archive >> for 64-bit systems. >> --- >> gnu/packages/java.scm | 37 +++++++++++++++++++++++++++---------- >> 1 file changed, 27 insertions(+), 10 deletions(-) >> >> diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm >> index 45e5683..d2a93bc 100644 >> --- a/gnu/packages/java.scm >> +++ b/gnu/packages/java.scm >> @@ -51,21 +51,38 @@ >> #:use-module (gnu packages xorg) >> #:use-module (gnu packages zip) >> #:use-module (gnu packages texinfo) >> - #:use-module ((srfi srfi-1) #:select (fold alist-delete))) >> + #:use-module ((srfi srfi-1) #:select (fold alist-delete)) >> + #:use-module (srfi srfi-11) >> + #:use-module (ice-9 match)) >> >> (define-public java-swt >> (package >> (name "java-swt") >> (version "4.5") >> - (source (origin >> - (method url-fetch) >> - (uri (string-append >> - "http://ftp-stud.fht-esslingen.de/pub/Mirrors/" >> - "eclipse/eclipse/downloads/drops4/R-" version >> - "-201506032000/swt-" version "-gtk-linux-x86.zip")) >> - (sha256 >> - (base32 >> - "03mhzraikcs4fsz7d3h5af9pw1bbcfd6dglsvbk2ciwimy9zj30q")))) >> + (source >> + ;; The types of many variables and procedures differ in the sources >> + ;; dependent on whether the target architecture is a 32-bit system or a >> + ;; 64-bit system. Instead of patching the sources on demand in a build >> + ;; phase we download either the 32-bit archive (which mostly uses "int" >> + ;; types) or the 64-bit archive (which mostly uses "long" types). >> + (let ((hash32 "03mhzraikcs4fsz7d3h5af9pw1bbcfd6dglsvbk2ciwimy9zj30q") >> + (hash64 "1qq0pjll6030v4ml0hifcaaik7sx3fl7ghybfdw95vsvxafwp2ff") >> + (file32 "x86") >> + (file64 "x86_64")) >> + (let-values (((hash file) >> + (match (or (%current-target-system) (%current-system)) >> + ("i686-linux" (values hash32 file32)) >> + ("x86_64-linux" (values hash64 file64)) >> + ("armhf-linux" (values hash32 file32)) >> + ("mips64el-linux" (values hash64 file64)) >> + (_ (values hash32 file32))))) > > If the catch-all is for 32-bit then you could leave out i686 and armhf. > With the values being x86 or x86_64, will it build on arm or mips? I’ve pushed this after only handling the case of x86_64. Since we only have working JDK packages for i686 and x86_64 right now, I think this makes sense. Thanks for your comments! ~~ Ricardo