Sat Nov 18 15:49:32 EST 2017

Pinning versions

This doesn't seem to be possible if nixpkgs doesn't actually have the
package version.

Only resort is to create a local package hierarchy, and name the
packages explicitly.

So let's start doing this with racket.

Start here:

tom@core:~/git$ git clone https://github.com/NixOS/nixpkgs

Having a look at how racket is built.

in pkgs/top-level/all-packages.nix :
  racket = callPackage ../development/interpreters/racket {
    # racket 6.11 doesn't build with gcc6 + recent glibc:
    # https://github.com/racket/racket/pull/1886
    # https://github.com/NixOS/nixpkgs/pull/31017#issuecomment-343574769
    stdenv = overrideCC stdenv gcc7;

Now, what I don't understand is how nixpkgs evolves over time.  E.g. I
have one fixed at racket-6.8 and one at racket-6.11

6.8     https://github.com/NixOS/nixpkgs/blob/17.03/pkgs/development/interpreters/racket/default.nix
6.10.1  https://github.com/NixOS/nixpkgs/blob/17.09/pkgs/development/interpreters/racket/default.nix

So it seems that nixos nixpkgs seem to be maintained as git tags.