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.
>
>
>

Reply via email to