From mboxrd@z Thu Jan 1 00:00:00 1970 From: Katherine Cox-Buday Subject: Re: Input needed: Plan for packaging scala Date: Sat, 25 Feb 2017 11:51:57 -0600 Message-ID: <878touupj6.fsf@gmail.com> References: <878tovwt43.fsf@gmail.com> <20170224194522.30b2ac58@scratchpost.org> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:49912) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1chgVq-0000JX-DS for guix-devel@gnu.org; Sat, 25 Feb 2017 12:52:07 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1chgVn-00057M-AD for guix-devel@gnu.org; Sat, 25 Feb 2017 12:52:06 -0500 Received: from mail-it0-x241.google.com ([2607:f8b0:4001:c0b::241]:33332) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1chgVn-00056c-5G for guix-devel@gnu.org; Sat, 25 Feb 2017 12:52:03 -0500 Received: by mail-it0-x241.google.com with SMTP id e137so7490514itc.0 for ; Sat, 25 Feb 2017 09:52:01 -0800 (PST) In-Reply-To: <20170224194522.30b2ac58@scratchpost.org> (Danny Milosavljevic's message of "Fri, 24 Feb 2017 19:45:22 +0100") 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: Danny Milosavljevic Cc: guix-devel@gnu.org Danny Milosavljevic writes: > Hi, > > On Fri, 24 Feb 2017 08:39:24 -0600 > Katherine Cox-Buday wrote: > >> 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. > > It seems you already did the hard work of finding out how to bootstrap > Scala. (I think that writing the package definitions is the easy > part. Finding the Scala versions that can be compiled by Java and then > compile the correct newer Scala version using it is the hard part) Looks like not quite! After speaking to some friendly scala community members, it looks[1] like the bootstrapping process is much more harrowing. The last version of scala which only used Java to compile was pre 2.0 (for reference the 2.0 commit appears to be here[2]). So we'd be looking at a chain of scala packages numbering possibly in the hundreds and going back 10+ years. >> 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? > > Yes please. > >> I do, however, want to confirm that this is a sane plan >> before I set out on this journey. > > Sounds good. > >> 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. > > It's acceptable. You should make sure to eventually do a reproducable > build - but it's OK to start with a binary package as a builder for > the time being. For the aforementioned reasons, I'm going to start by just packaging the source of sbt v0.13, but also the pre-built binary. This should help us at least bootstrap scala in a sane way, if not immediately sbt. Hopefully this still sounds OK? > The question is whether it's actually easier that way. Guix uses > non-standard locations (for good reasons) - so a random executable you > download won't run because it won't find any libraries. The situation > is not that bad if it's in Java, though - you can always specify the > classpath when invoking the VM. > > P.S. For storing custom package definitions, do you use > GUIX_PACKAGE_PATH ? I didn't when I started out using Guix - but I > should have. It's easiest to get started writing your own package > definitions that way. I'm not, thanks for pointing that out! [1] - https://issues.scala-lang.org/browse/SI-10172?focusedCommentId=76415&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-76415 [2] - https://github.com/scala/legacy-svn-scala/commit/d5f3f603228cb3a0cae1536dba9990a061fcded7 -- Katherine