timescaledb: Fixed the licensing for the timescaledb package to be split into TSL (Timescale Community License) and Apache 2.0 components.

TimescaleDB provides two types of licenses, Apache 2.0 and Timescale Community License (TSL), with different feature sets. While all the code is in the same repository, the build
system can build both versions depending on the build parameters set in.

Co-authored-by: Emily Lange <git@indeednotjames.com>
This commit is contained in:
Christoph Engelbert (noctarius) 2023-03-06 13:05:31 +01:00
parent be6d6cd37d
commit 4f7f469c82
No known key found for this signature in database
GPG key ID: 91CC7A40D278E64B
3 changed files with 12 additions and 3 deletions

View file

@ -909,6 +909,13 @@ in mkLicense lset) ({
url = "https://github.com/thestk/stk/blob/master/LICENSE";
};
tsl = {
shortName = "TSL";
fullName = "Timescale License Agreegment";
url = "https://github.com/timescale/timescaledb/blob/main/tsl/LICENSE-TIMESCALE";
unfree = true;
};
tcltk = {
spdxId = "TCL";
fullName = "TCL/TK License";

View file

@ -1,4 +1,4 @@
{ lib, stdenv, fetchFromGitHub, cmake, postgresql, openssl, libkrb5 }:
{ lib, stdenv, fetchFromGitHub, cmake, postgresql, openssl, libkrb5, enableUnfree ? true }:
# # To enable on NixOS:
# config.services.postgresql = let
@ -12,7 +12,7 @@
# }
stdenv.mkDerivation rec {
pname = "timescaledb";
pname = "timescaledb${lib.optionalString (!enableUnfree) "-apache"}";
version = "2.10.1";
nativeBuildInputs = [ cmake ];
@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
};
cmakeFlags = [ "-DSEND_TELEMETRY_DEFAULT=OFF" "-DREGRESS_CHECKS=OFF" "-DTAP_CHECKS=OFF" ]
++ lib.optionals (!enableUnfree) [ "-DAPACHE_ONLY=ON" ]
++ lib.optionals stdenv.isDarwin [ "-DLINTER=OFF" ];
# Fix the install phase which tries to install into the pgsql extension dir,
@ -48,7 +49,7 @@ stdenv.mkDerivation rec {
changelog = "https://github.com/timescale/timescaledb/raw/${version}/CHANGELOG.md";
maintainers = with maintainers; [ marsam ];
platforms = postgresql.meta.platforms;
license = licenses.asl20;
license = with licenses; if enableUnfree then tsl else asl20;
broken = versionOlder postgresql.version "12";
};
}

View file

@ -55,6 +55,7 @@ self: super: {
temporal_tables = super.callPackage ./ext/temporal_tables.nix { };
timescaledb = super.callPackage ./ext/timescaledb.nix { };
timescaledb-apache = super.callPackage ./ext/timescaledb.nix { enableUnfree = false; };
timescaledb_toolkit = super.callPackage ./ext/timescaledb_toolkit.nix { };