nixpkgs/pkgs/development/libraries/science/math/rubiks/default.nix
2018-06-30 01:20:44 +02:00

83 lines
2.9 KiB
Nix

{ stdenv
, fetchurl
, fetchpatch
, coreutils
}:
stdenv.mkDerivation rec {
pname = "rubiks";
version = "20070912";
name = "${pname}-${version}";
src = fetchurl {
url = "mirror://sageupstream/rubiks/rubiks-${version}.tar.bz2";
sha256 = "0zdmkb0j1kyspdpsszzb2k3279xij79jkx0dxd9f3ix1yyyg3yfq";
};
preConfigure = ''
export INSTALL="${coreutils}/bin/install"
'';
# everything is done in `make install`
buildPhase = "true";
installFlags = [
"PREFIX=$(out)"
];
patches = [
# Fix makefiles which use all the variables in all the wrong ways and
# hardcode values for some variables.
(fetchpatch {
url = "https://git.sagemath.org/sage.git/plain/build/pkgs/rubiks/patches/dietz-cu2-Makefile.patch?id=07d6c37d18811e2b377a9689790a7c5e24da16ba";
sha256 = "1ry3w1mk9q4jqd91zlaa1bdiiplld4hpfjaldbhlmzlgrrc99qmq";
})
(fetchpatch {
url = "https://git.sagemath.org/sage.git/plain/build/pkgs/rubiks/patches/dietz-mcube-Makefile.patch?id=07d6c37d18811e2b377a9689790a7c5e24da16ba";
sha256 = "0zsbh6k3kqdg82fv0kzghr1x7pafisv943gmssqscp107bhg77bz";
})
(fetchpatch {
url = "https://git.sagemath.org/sage.git/plain/build/pkgs/rubiks/patches/dietz-solver-Makefile.patch?id=07d6c37d18811e2b377a9689790a7c5e24da16ba";
sha256 = "0vhw70ylnmydgjhwx8jjlb2slccj4pfqn6vzirkyz1wp8apsmfhp";
})
(fetchpatch {
url = "https://git.sagemath.org/sage.git/plain/build/pkgs/rubiks/patches/reid-Makefile.patch?id=07d6c37d18811e2b377a9689790a7c5e24da16ba";
sha256 = "1r311sn012xs135s0d21qwsig2kld7rdcq19nm0zbnklviid57df";
})
];
meta = with stdenv.lib; {
homepage = https://wiki.sagemath.org/spkg/rubiks;
description = "Several programs for working with Rubik's cubes";
# The individual websites are no longer available
longDescription = ''
There are several programs for working with Rubik's cubes, by three
different people. Look inside the directories under /src to see
specific info and licensing. In summary the three contributers are:
Michael Reid (GPL) http://www.math.ucf.edu/~reid/Rubik/optimal_solver.html
optimal - uses many pre-computed tables to find an optimal
solution to the 3x3x3 Rubik's cube
Dik T. Winter (MIT License)
cube - uses Kociemba's algorithm to iteratively find a short
solution to the 3x3x3 Rubik's cube
size222 - solves a 2x2x2 Rubik's cube
Eric Dietz (GPL) http://www.wrongway.org/?rubiksource
cu2 - A fast, non-optimal 2x2x2 solver
cubex - A fast, non-optimal 3x3x3 solver
mcube - A fast, non-optimal 4x4x4 solver
'';
license = with licenses; [
gpl2 # Michael Reid's and Eric Dietz software
mit # Dik T. Winter's software
];
maintainers = with maintainers; [ timokau ];
platforms = platforms.linux;
};
}