On Fri, Jun 23, 2017 at 4:20 PM, Luke Gorrie <[email protected]> wrote: > Howdy! > > I want to build Pharo images using Nix <https://nixos.org/nix/>. On the > one hand this should look basically like the Jenkins scripts, but on the > other hand the build must run inside a sandbox that is isolated from the > network. So I need to download all of the code that I need ahead of time > because I am not able to contact Github, SmalltalkHub, etc, once the build > is running. >
Typically Monticello mcz files are hosted on services shared via HTTP that you can download with wget or curl, e.g.... http://smalltalkhub.com/mc/Pharo/Pharo60/main I guess if you pre-seed the package-cache, Pharo won't try to go to the network to find the package. And with git repos, Pharo would be build from a local clone. cheers -ben > > I am not sure how to approach this problem yet but I have a preliminary > question. > > Is there an easy way that I could "recursively" download all the Smalltalk > code (etc) required for an application onto the local filesystem, and then > load this into a Pharo image that does not have network access? > > Concrete example - How could I write a Pharo script that downloads all the > software required to install Moose in a standard Pharo 6.0 image? Then how > could I load that into an image off the local filesystem? > > I feel like there should be a solution here, since Monticello seems to be > able to cache packages locally on the filesystem, but I don't how enough > experience to quite know how to approach it. > > If this is possible then the "utopian" vision could be to recursively > download every Pharo package that exists, in every relevant version, and > make them available in the Nix universe. This is what Nix does with Python, > R, Emacs, etc packages. > > Or if this turns out to be difficult for some reason then I could perhaps > build the Pharo image externally - e.g. on the Inria Jenkins - and then > import that into Nix as an opaque binary. This is probably the simplest > solution but it is not very appealing from my Nix-centric viewpoint because > I won't have visibility into what has changed between one image build and > the next. > > Feedback would be much appreciated! > -Luke > > P.S. Screenshot from the Pharo part of my application that is starting to > come together, visualizing Lua JIT compiler IR code to make it more > understandable than disassembly listings: https://github.com/ > raptorjit/raptorjit/pull/63#issuecomment-310138536. > > >
