about summary refs log tree commit diff
path: root/pkgs/by-name/ta
diff options
context:
space:
mode:
authorWeijia Wang <9713184+wegank@users.noreply.github.com>2024-04-28 04:44:25 +0200
committerGitHub <noreply@github.com>2024-04-28 04:44:25 +0200
commite05b8bb9284ee39372a4475abae2c6cf49f81593 (patch)
treea2d1a985f610cb5ac8ff5cba33e70b3e0da8932b /pkgs/by-name/ta
parente412b1fdc174aca5d3c256f8b48a428bf49ddd96 (diff)
parent60cec04ec7e5e66af7df870dcc8139b4c4f9eb9b (diff)
Merge pull request #307166 from wegank/taler-by-name
taler: move to pkgs/by-name
Diffstat (limited to 'pkgs/by-name/ta')
-rw-r--r--pkgs/by-name/ta/taler-exchange/package.nix104
-rw-r--r--pkgs/by-name/ta/taler-merchant/package.nix88
2 files changed, 192 insertions, 0 deletions
diff --git a/pkgs/by-name/ta/taler-exchange/package.nix b/pkgs/by-name/ta/taler-exchange/package.nix
new file mode 100644
index 0000000000000..e077b3d7d10bf
--- /dev/null
+++ b/pkgs/by-name/ta/taler-exchange/package.nix
@@ -0,0 +1,104 @@
+{
+  lib,
+  stdenv,
+  fetchgit,
+  curl,
+  gnunet,
+  jansson,
+  libgcrypt,
+  libmicrohttpd,
+  libsodium,
+  libunistring,
+  pkg-config,
+  postgresql,
+  autoreconfHook,
+  python3,
+  recutils,
+  wget,
+  jq,
+  gettext,
+  texinfo,
+}:
+
+let
+  version = "0.10.1";
+in
+stdenv.mkDerivation {
+  pname = "taler-exchange";
+  inherit version;
+
+  src = fetchgit {
+    url = "https://git.taler.net/exchange.git";
+    rev = "v${version}";
+    fetchSubmodules = true;
+    hash = "sha256-SKnMep8bMQaJt4r3u0SrzwYSuFbzv4RnflbutSqwtPg=";
+
+    # When fetching submodules without the .git folder we get the following error:
+    # "Server does not allow request for unadvertised object"
+    leaveDotGit = true;
+    postFetch = ''
+      rm -rf $out/.git
+    '';
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+  ];
+
+  buildInputs = [
+    libgcrypt
+    libmicrohttpd
+    jansson
+    libsodium
+    postgresql
+    curl
+    recutils
+    gettext
+    texinfo # Fix 'makeinfo' is missing on your system.
+    libunistring
+    python3.pkgs.jinja2
+    # jq is necessary for some tests and is checked by configure script
+    jq
+  ];
+
+  propagatedBuildInputs = [ gnunet ];
+
+  # From ./bootstrap
+  preAutoreconf = ''
+    ./contrib/gana-generate.sh
+    pushd contrib
+    find wallet-core/aml-backoffice/ -type f -printf '  %p \\\n' | sort > Makefile.am.ext
+    truncate -s -2 Makefile.am.ext
+    cat Makefile.am.in Makefile.am.ext >> Makefile.am
+    popd
+  '';
+
+  enableParallelBuilding = true;
+
+  doInstallCheck = true;
+
+  nativeCheckInputs = [
+    wget
+    curl
+  ];
+
+  checkTarget = "check";
+
+  meta = with lib; {
+    description = ''
+      Taler is an electronic payment system providing the ability to pay
+      anonymously using digital cash.  Taler consists of a network protocol
+      definition (using a RESTful API over HTTP), a Exchange (which creates
+      digital coins), a Wallet (which allows customers to manage, store and
+      spend digital coins), and a Merchant website which allows customers to
+      spend their digital coins.  Naturally, each Merchant is different, but
+      Taler includes code examples to help Merchants integrate Taler as a
+      payment system.
+    '';
+    homepage = "https://taler.net/";
+    license = licenses.agpl3Plus;
+    maintainers = with maintainers; [ astro ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/by-name/ta/taler-merchant/package.nix b/pkgs/by-name/ta/taler-merchant/package.nix
new file mode 100644
index 0000000000000..d416845fe1291
--- /dev/null
+++ b/pkgs/by-name/ta/taler-merchant/package.nix
@@ -0,0 +1,88 @@
+{
+  lib,
+  stdenv,
+  fetchgit,
+  gnunet,
+  qrencode,
+  taler-exchange,
+  libtool,
+  pkg-config,
+  autoreconfHook,
+  jq,
+}:
+
+let
+  version = "0.10.1";
+
+  taler-wallet-core = fetchgit {
+    url = "https://git.taler.net/wallet-core.git";
+    rev = "v${version}";
+    hash = "sha256-sgiJd1snN9JDqS7IUeORKL60Gcm7XwL/JCX3sNRDTdY=";
+  };
+in
+stdenv.mkDerivation {
+  pname = "taler-merchant";
+  inherit version;
+
+  src = fetchgit {
+    url = "https://git.taler.net/merchant.git";
+    rev = "v${version}";
+    fetchSubmodules = true;
+    hash = "sha256-8VpoyloLpd/HckSIRU6IclWUXQyEHqlcNdoJI9U3t0Y=";
+  };
+
+  postUnpack = ''
+    ln -s ${taler-wallet-core}/spa.html $sourceRoot/contrib/
+  '';
+
+  nativeBuildInputs = [
+    pkg-config
+    autoreconfHook
+  ];
+
+  buildInputs = taler-exchange.buildInputs ++ [
+    qrencode
+    taler-exchange
+    # for ltdl.h
+    libtool
+  ];
+
+  propagatedBuildInputs = [ gnunet ];
+
+  # From ./bootstrap
+  preAutoreconf = ''
+    pushd contrib
+    find wallet-core/backoffice/ -type f -printf '  %p \\\n' | sort > Makefile.am.ext
+    truncate -s -2 Makefile.am.ext
+    cat Makefile.am.in Makefile.am.ext >> Makefile.am
+    popd
+  '';
+
+  configureFlags = [
+    "--with-gnunet=${gnunet}"
+    "--with-exchange=${taler-exchange}"
+  ];
+
+  enableParallelBuilding = true;
+
+  doInstallCheck = true;
+
+  nativeCheckInputs = [ jq ];
+
+  checkTarget = "check";
+
+  meta = with lib; {
+    description = ''
+      This is the GNU Taler merchant backend. It provides the logic that should run
+      at every GNU Taler merchant.  The GNU Taler merchant is a RESTful backend that
+      can be used to setup orders and process payments.  This component allows
+      merchants to receive payments without invading the customers' privacy. Of
+      course, this applies mostly for digital goods, as the merchant does not need
+      to know the customer's physical address.
+    '';
+    homepage = "https://taler.net/";
+    license = licenses.agpl3Plus;
+    maintainers = with maintainers; [ astro ];
+    platforms = platforms.linux;
+  };
+}