diff options
Diffstat (limited to 'nixpkgs/pkgs/development/misc/resholve/deps.nix')
-rw-r--r-- | nixpkgs/pkgs/development/misc/resholve/deps.nix | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/misc/resholve/deps.nix b/nixpkgs/pkgs/development/misc/resholve/deps.nix new file mode 100644 index 000000000000..86bcba570759 --- /dev/null +++ b/nixpkgs/pkgs/development/misc/resholve/deps.nix @@ -0,0 +1,120 @@ +{ lib, stdenv +, python27Packages +, fetchFromGitHub +, makeWrapper +, # re2c deps + autoreconfHook +, # py-yajl deps + git +, # oil deps + readline +, cmark +, file +, glibcLocales +, oilPatches ? [ ] +}: + +/* +Notes on specific dependencies: +- if/when python2.7 is removed from nixpkgs, this may need to figure + out how to build oil's vendored python2 +- I'm not sure if glibcLocales is worth the addition here. It's to fix + a libc test oil runs. My oil fork just disabled the libc tests, but + I haven't quite decided if that's the right long-term call, so I + didn't add a patch for it here yet. +*/ + +rec { + # had to add this as well; 1.3 causes a break here; sticking + # to oil's official 1.0.3 dep for now. + re2c = stdenv.mkDerivation rec { + pname = "re2c"; + version = "1.0.3"; + sourceRoot = "${src.name}/re2c"; + src = fetchFromGitHub { + owner = "skvadrik"; + repo = "re2c"; + rev = version; + sha256 = "0grx7nl9fwcn880v5ssjljhcb9c5p2a6xpwil7zxpmv0rwnr3yqi"; + }; + nativeBuildInputs = [ autoreconfHook ]; + preCheck = '' + patchShebangs run_tests.sh + ''; + }; + + py-yajl = python27Packages.buildPythonPackage rec { + pname = "oil-pyyajl-unstable"; + version = "2019-12-05"; + src = fetchFromGitHub { + owner = "oilshell"; + repo = "py-yajl"; + rev = "eb561e9aea6e88095d66abcc3990f2ee1f5339df"; + sha256 = "17hcgb7r7cy8r1pwbdh8di0nvykdswlqj73c85k6z8m0filj3hbh"; + fetchSubmodules = true; + }; + # just for submodule IIRC + nativeBuildInputs = [ git ]; + }; + + # resholve's primary dependency is this developer build of the oil shell. + oildev = python27Packages.buildPythonPackage rec { + pname = "oildev-unstable"; + version = "2020-03-31"; + + src = fetchFromGitHub { + owner = "oilshell"; + repo = "oil"; + rev = "ea80cdad7ae1152a25bd2a30b87fe3c2ad32394a"; + sha256 = "0pxn0f8qbdman4gppx93zwml7s5byqfw560n079v68qjgzh2brq2"; + + /* + It's not critical to drop most of these; the primary target is + the vendored fork of Python-2.7.13, which is ~ 55M and over 3200 + files, dozens of which get interpreter script patches in fixup. + */ + extraPostFetch = '' + rm -rf Python-2.7.13 benchmarks metrics py-yajl rfc gold web testdata services demo devtools cpp + ''; + }; + + # TODO: not sure why I'm having to set this for nix-build... + # can anyone tell if I'm doing something wrong? + SOURCE_DATE_EPOCH = 315532800; + + # These aren't, strictly speaking, nix/nixpkgs specific, but I've + # had hell upstreaming them. Pulling from resholve source and + # passing in from resholve.nix + patches = oilPatches; + + buildInputs = [ readline cmark py-yajl ]; + + nativeBuildInputs = [ re2c file makeWrapper ]; + + propagatedBuildInputs = with python27Packages; [ six typing ]; + + doCheck = true; + + preBuild = '' + build/dev.sh all + ''; + + postPatch = '' + patchShebangs asdl build core doctools frontend native oil_lang + ''; + + _NIX_SHELL_LIBCMARK = "${cmark}/lib/libcmark${stdenv.hostPlatform.extensions.sharedLibrary}"; + + # See earlier note on glibcLocales + LOCALE_ARCHIVE = lib.optionalString (stdenv.buildPlatform.libc == "glibc") "${glibcLocales}/lib/locale/locale-archive"; + + meta = { + description = "A new unix shell"; + homepage = "https://www.oilshell.org/"; + license = with lib.licenses; [ + psfl # Includes a portion of the python interpreter and standard library + asl20 # Licence for Oil itself + ]; + }; + }; +} |