From mboxrd@z Thu Jan 1 00:00:00 1970 From: Katherine Cox-Buday Subject: Input needed: Plan for packaging scala Date: Fri, 24 Feb 2017 08:39:24 -0600 Message-ID: <878tovwt43.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:45109) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1chH1z-0005IP-WA for guix-devel@gnu.org; Fri, 24 Feb 2017 09:39:37 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1chH1w-0001wQ-Ti for guix-devel@gnu.org; Fri, 24 Feb 2017 09:39:36 -0500 Received: from mail-it0-x22a.google.com ([2607:f8b0:4001:c0b::22a]:35960) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1chH1w-0001vV-Mk for guix-devel@gnu.org; Fri, 24 Feb 2017 09:39:32 -0500 Received: by mail-it0-x22a.google.com with SMTP id h10so21783284ith.1 for ; Fri, 24 Feb 2017 06:39:31 -0800 (PST) Received: from washu (71-85-224-176.dhcp.stls.mo.charter.com. [71.85.224.176]) by smtp.gmail.com with ESMTPSA id s193sm765149ita.15.2017.02.24.06.39.24 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 24 Feb 2017 06:39:25 -0800 (PST) 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: guix-devel@gnu.org Hi all, I'm planning to have a go at packaging scala. This is my first time packaging software of any kind, let alone for Guix, so guidance is appreciated! I'm brand-new to scala, but it appears that building it from source involves circular dependencies. Here's the situation: - scala 2.12.1 is the latest version. To build it from source, a tool called "sbt" (scala build tool) is required. - sbt 0.13 is the latest version. To build it from source requires a prior version of sbt. - I was able to find older versions[1] of sbt which can be built with only scala. - scala 2.9.2 appears to be the last version that can be built with ant. So, to untangle this knot to achieve reproducibility, I was planning on first packaging scala 2.9.2, then the latest version of sbt that could be built with scala, then sbt 0.13 (which would be useful in its own right as a package), and then finally scala 2.12.1. The build for scala 2.9.2 attempts to pull some libraries from a remote source, so I'm assuming I'll need to also package those? For a new contributor, this is a pile of work, but I don't mind too much since my need drives me, and I'll be learning more about Guix in the process :) I do, however, want to confirm that this is a sane plan before I set out on this journey. It would be easier if I could just do a binary package to bootstrap the toolchain and back-fill when I have more experience, but I wasn't sure if that is acceptable. [1] - https://github.com/sbt/sbt-zero-seven -- Katherine