dunlin

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

default.nix (2075B)


      1 { stdenv
      2 , callPackage
      3 , copyDesktopItems
      4 , fennel
      5 , fetchFromGitHub
      6 , fetchurl
      7 , glib-networking
      8 , gobject-introspection
      9 , gtk3
     10 , gnome3
     11 , lib
     12 , librsvg
     13 , lua53Packages
     14 , lua5_3
     15 , makeDesktopItem
     16 , makeWrapper
     17 , pandoc
     18 , webkitgtk
     19 , writeText
     20 }:
     21 let pname = "dunlin";
     22     lume = let lua = lua5_3; in lua53Packages.buildLuaPackage rec {
     23       pname = "lume";
     24       version = "1";
     25       src = fetchFromGitHub {
     26         repo = "lume"; owner = "rxi";
     27         rev = "98847e7812cf28d3d64b289b03fad71dc704547d";
     28         hash = "sha256-/u23EqgjjkU8FV9oXvMNXBkY8JAOJUhJAzXTSibJthU=";
     29       };
     30       buildPhase = ":";
     31       installPhase = ''
     32         mkdir -p "$out/share/lua/${lua.luaversion}"
     33         cp lume.lua "$out/share/lua/${lua.luaversion}"
     34       '';
     35     };
     36 
     37     lsqlite3 = callPackage ./lsqlite3.nix { lua = lua5_3; };
     38 
     39     lua = lua5_3.withPackages (ps: with ps; [
     40       lgi
     41       luafilesystem
     42       luaposix
     43       readline
     44       lume
     45       lsqlite3
     46     ]);
     47     fennel_ = lua.pkgs.fennel;
     48     glib_networking_gio  = "${glib-networking}/lib/gio/modules";
     49 in stdenv.mkDerivation rec {
     50   inherit pname;
     51   fennel = fennel_;
     52 
     53   version = "0.1";
     54   src = lib.sources.cleanSource ./.;
     55 
     56   GIO_EXTRA_MODULES = glib_networking_gio;
     57 
     58   buildInputs = [
     59     lua
     60     gtk3
     61     webkitgtk
     62     gobject-introspection.dev
     63     fennel
     64     glib-networking
     65   ];
     66   nativeBuildInputs = [
     67     lua
     68     pandoc
     69     makeWrapper
     70     copyDesktopItems
     71   ];
     72 
     73   makeFlags = [ "PREFIX=${placeholder "out"}" ];
     74 
     75   desktopItems = [
     76     (makeDesktopItem rec {
     77       desktopName = "Just Browsing";
     78       name = pname;
     79       exec = pname;
     80       categories = ["Network"] ;
     81       # icon = ./just.png;
     82       genericName = "Web browser";
     83     })
     84   ];
     85 
     86   postInstall = ''
     87     makeWrapper ${fennel}/bin/fennel \
     88       $out/bin/${pname} \
     89       --set GI_TYPELIB_PATH "$GI_TYPELIB_PATH" \
     90       --prefix GIO_EXTRA_MODULES ":" "${glib_networking_gio}" \
     91       --add-flags "--add-fennel-path $out/lib/just/?.fnl" \
     92       --add-flags "--add-package-path $out/lib/just/?.lua" \
     93       --add-flags "$out/lib/just/just.fnl"
     94   '';
     95 }