diff options
| author | Florian Dold <florian.dold@gmail.com> | 2019-06-27 00:49:48 +0200 | 
|---|---|---|
| committer | Florian Dold <florian.dold@gmail.com> | 2019-06-27 00:49:48 +0200 | 
| commit | bc4f3e09b59880e542dc3131de362d6f7afc09f3 (patch) | |
| tree | 9a781a6e16577dc5f57880a193336759cf8ea558 /contrib | |
| parent | 4832594274e82bd8c1c9372ac56ffd05ff3a2af6 (diff) | |
move nix files to separate dir
Diffstat (limited to 'contrib')
| -rw-r--r-- | contrib/nix/default.nix | 84 | ||||
| -rw-r--r-- | contrib/nix/taler-exchange-dev.nix | 61 | 
2 files changed, 145 insertions, 0 deletions
diff --git a/contrib/nix/default.nix b/contrib/nix/default.nix new file mode 100644 index 00000000..358538e8 --- /dev/null +++ b/contrib/nix/default.nix @@ -0,0 +1,84 @@ +# Nix package for GNUnet development +# +## INSTALL +# +# To build and install the package in the user environment, use: +# +# $ nix-env -f . -i +# +## BUILD ONLY +# +# To build the package and add it to the nix store, use: +# +# $ nix-build +# +## SHELL +# +# To launch a shell with all dependencies installed in the environment, use one of the following: +#    $ nix-shell +# +# After entering nix-shell, build it: +# +# $ configurePhase +# $ buildPhase +# +## NIXPKGS +# +# For all of the above commands, nixpkgs to use can be set the following way: +# +# a) by default it uses nixpkgs pinned to a known working version +# +# b) use nixpkgs from the system: +#    --arg pkgs 0 +# +# c) use nixpkgs at a given path +#    --arg pkgs /path/to/nixpkgs +# +## CCACHE +# +# To enable ccache, use the following: +# +#    --argstr ccache_dir /var/cache/ccache + +# or when using nix-shell: +#    --argstr ccache_dir ~/.ccache +# +# and make sure the given directory is writable by the nixpkgs group when using nix-build or nix-env -i, +# or the current user when using nix-shell +# + +{ + pkgs ? null, + ccache_dir ? "", +}: + +let +  syspkgs = import <nixpkgs> { }; +  pinpkgs = syspkgs.fetchFromGitHub { +    owner = "NixOS"; +    repo = "nixpkgs"; + +    # binary cache exists for revisions in https://nixos.org/releases/nixos/<release>/<build>/git-revision +    rev = "c4469edac1fc1fa5e5b5aa2ceadeda8f3f92d30a"; # https://nixos.org/releases/nixos/16.09/nixos-16.09beta430.c4469ed/git-revision +    sha256 = "1x6hmf815d5anfxrxl6iivfkk60q5qxa6waa9xnwhwkbc14rhvn9"; +  }; +  usepkgs = if null == pkgs then +             import pinpkgs {} +            else +              if 0 == pkgs then +                import <nixpkgs> { } +              else +                import pkgs {}; +  stdenv = usepkgs.stdenvAdapters.keepDebugInfo usepkgs.stdenv; + +in { +    gnunet-dev = usepkgs.callPackage ./gnunet/gnunet-dev.nix { +      inherit ccache_dir; +    }; +  taler-exchange-dev = usepkgs.callPackage ./taler-exchange-dev.nix { +    inherit ccache_dir; +    gnunet-dev = usepkgs.callPackage ./gnunet/gnunet-dev.nix { +      inherit ccache_dir; +    }; +  }; +} diff --git a/contrib/nix/taler-exchange-dev.nix b/contrib/nix/taler-exchange-dev.nix new file mode 100644 index 00000000..2e5e068e --- /dev/null +++ b/contrib/nix/taler-exchange-dev.nix @@ -0,0 +1,61 @@ +{ stdenv, makeWrapper, pkgconfig, autoconf, automake, libtool, ccache, ccache_dir ? "" +, gnunet-dev, postgresql, jansson, libgcrypt, libgnurl, libmicrohttpd }: + +stdenv.mkDerivation rec { +  src = ./.; +  name = "taler-exchange-dev"; + +  buildInputs = [ +    makeWrapper pkgconfig autoconf automake libtool ccache +    gnunet-dev postgresql jansson libgcrypt libgnurl libmicrohttpd +  ]; + +  patchPhase = '' +    if [ -e Makefile ]; then +      make distclean +    fi +  ''; + +  NIX_CFLAGS_COMPILE = "-ggdb -O0"; + +  configureFlags = [ +    "--enable-gcc-hardening" +    "--enable-linker-hardening" + +    "--enable-logging=verbose" +    "--enable-poisoning" +  ]; + +  preConfigure = '' +    ./bootstrap + +    if [ -n "${ccache_dir}" ]; then +      export CC='ccache gcc' +      export CCACHE_COMPRESS=1 +      export CCACHE_DIR="${ccache_dir}" +      export CCACHE_UMASK=007 +    fi +  ''; + +  doCheck = false; + +  postInstall = '' +    # Tests can be run this way +    #export GNUNET_PREFIX="$out" +    #export PATH="$out/bin:$PATH" +    #make -k check +  ''; + +  meta = with stdenv.lib; { +    description = "Exchange for GNU Taler"; + +    longDescription = '' +    ''; + +    homepage = https://taler.net/; + +    license = licenses.gpl3Plus; +    platforms = platforms.gnu; +    maintainers = with maintainers; [ ]; +  }; +}  | 
