-
Notifications
You must be signed in to change notification settings - Fork 18
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Co-authored-by: Auguste Baum <[email protected]> Co-authored-by: Matúš Ferech <[email protected]>
- Loading branch information
1 parent
fdc6e94
commit 73b0bba
Showing
4 changed files
with
253 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
{ | ||
lib, | ||
stdenv, | ||
libgcrypt, | ||
curl, | ||
gnutls, | ||
pkg-config, | ||
libiconv, | ||
libintl, | ||
version, | ||
src, | ||
meta ? {}, | ||
fetchpatch, | ||
}: let | ||
meta_ = meta; | ||
in | ||
stdenv.mkDerivation rec { | ||
pname = "libmicrohttpd"; | ||
inherit version src; | ||
|
||
patches = lib.optionals (lib.versionOlder version "0.9.76") [ | ||
(fetchpatch { | ||
name = "CVE-2023-27371.patch"; | ||
url = "https://git.gnunet.org/libmicrohttpd.git/patch/?id=e0754d1638c602382384f1eface30854b1defeec"; | ||
hash = "sha256-vzrq9HPysGpc13rFEk6zLPgpUqp/ST4q/Wp30Dam97k="; | ||
excludes = [ | ||
"ChangeLog" | ||
]; | ||
}) | ||
]; | ||
|
||
outputs = ["out" "dev" "devdoc" "info"]; | ||
nativeBuildInputs = [pkg-config]; | ||
buildInputs = [libgcrypt curl gnutls libiconv libintl]; | ||
|
||
preCheck = '' | ||
# Since `localhost' can't be resolved in a chroot, work around it. | ||
sed -ie 's/localhost/127.0.0.1/g' src/test*/*.[ch] | ||
''; | ||
|
||
# Disabled because the tests can time-out. | ||
doCheck = false; | ||
|
||
meta = with lib; | ||
{ | ||
description = "Embeddable HTTP server library"; | ||
|
||
longDescription = '' | ||
GNU libmicrohttpd is a small C library that is supposed to make | ||
it easy to run an HTTP server as part of another application. | ||
''; | ||
|
||
license = licenses.lgpl2Plus; | ||
|
||
homepage = "https://www.gnu.org/software/libmicrohttpd/"; | ||
|
||
maintainers = with maintainers; [eelco vrthra fpletz]; | ||
platforms = platforms.unix; | ||
} | ||
// meta_; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
{ | ||
callPackage, | ||
fetchurl, | ||
}: | ||
callPackage ./generic.nix rec { | ||
version = "0.9.74"; | ||
|
||
src = fetchurl { | ||
url = "mirror://gnu/libmicrohttpd/libmicrohttpd-${version}.tar.gz"; | ||
sha256 = "sha256-QgNdAmE3MyS/tDQBj0q4klFLECU9GvIy5BtMwsEeZQs="; | ||
}; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,155 @@ | ||
{ | ||
lib, | ||
stdenv, | ||
fetchgit, | ||
curl, | ||
gnunet, | ||
jansson, | ||
libgcrypt, | ||
libmicrohttpd_0_9_74, | ||
qrencode, | ||
libsodium, | ||
libtool, | ||
libunistring, | ||
pkg-config, | ||
postgresql, | ||
autoreconfHook, | ||
python39, | ||
recutils, | ||
wget, | ||
jq, | ||
gettext, | ||
texinfo, | ||
}: let | ||
version = "0.9.3"; | ||
|
||
taler-wallet-core = fetchgit { | ||
url = "https://git.taler.net/wallet-core.git"; | ||
rev = "v${version}"; | ||
sha256 = "sha256-uwbgIzSjLN+KQCY134VfnCuBEtvCO3a6mEw++HoZDHs="; | ||
}; | ||
in rec { | ||
taler-exchange = stdenv.mkDerivation rec { | ||
pname = "taler-exchange"; | ||
inherit version; | ||
|
||
src = fetchgit { | ||
url = "https://git.taler.net/exchange.git"; | ||
rev = "v${version}"; | ||
# REMOVEME: this should only be a problem for specifically v0.9.3 | ||
# When fetching submodules without deep clone we get the following error: | ||
# "Server does not allow request for unadvertised object" | ||
deepClone = true; | ||
fetchSubmodules = true; | ||
sha256 = "sha256-x+RUVVo7Q4ZxKo4tHcEMBvLq9do2yp2vcOWdmUgpRdM="; | ||
}; | ||
|
||
nativeBuildInputs = [ | ||
autoreconfHook | ||
pkg-config | ||
]; | ||
buildInputs = [ | ||
libgcrypt | ||
libmicrohttpd_0_9_74 | ||
jansson | ||
libsodium | ||
postgresql | ||
curl | ||
recutils | ||
gettext | ||
texinfo # Fix 'makeinfo' is missing on your system. | ||
libunistring | ||
python39.pkgs.jinja2 | ||
# jq is necessary for some tests and is checked by configure script | ||
jq | ||
]; | ||
propagatedBuildInputs = [gnunet]; | ||
|
||
preConfigure = '' | ||
./contrib/gana-generate.sh | ||
''; | ||
|
||
enableParallelBuilding = true; | ||
|
||
nativeCheckInputs = [wget curl]; | ||
doInstallCheck = true; | ||
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; | ||
}; | ||
}; | ||
|
||
taler-merchant = stdenv.mkDerivation rec { | ||
pname = "taler-merchant"; | ||
inherit version; | ||
|
||
src = fetchgit { | ||
url = "https://git.taler.net/merchant.git"; | ||
rev = "v${version}"; | ||
fetchSubmodules = true; | ||
sha256 = "sha256-HewCqyO/7nnIQY9Tgva0k1nTk2LuwLyGK/UUxvx9BG0="; | ||
}; | ||
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 = '' | ||
cd 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 | ||
cd .. | ||
''; | ||
configureFlags = [ | ||
"--with-gnunet=${gnunet}" | ||
"--with-exchange=${taler-exchange}" | ||
]; | ||
|
||
enableParallelBuilding = true; | ||
|
||
nativeCheckInputs = [jq]; | ||
doInstallCheck = true; | ||
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; | ||
}; | ||
}; | ||
} |