diff options
author | Cole Helbling <cole.e.helbling@outlook.com> | 2020-03-02 22:24:40 -0800 |
---|---|---|
committer | Cole Helbling <cole.e.helbling@outlook.com> | 2020-03-02 22:48:52 -0800 |
commit | 25057960cec97234e3a6cabbc96c9fcb0f18b933 (patch) | |
tree | ac65818ca5c3efa4e592eb56311575d53d9476da /pkgs/development/libraries | |
parent | c16f2218da6928ca52bb500cbebe4c62a67f90f8 (diff) | |
download | nixlib-25057960cec97234e3a6cabbc96c9fcb0f18b933.tar nixlib-25057960cec97234e3a6cabbc96c9fcb0f18b933.tar.gz nixlib-25057960cec97234e3a6cabbc96c9fcb0f18b933.tar.bz2 nixlib-25057960cec97234e3a6cabbc96c9fcb0f18b933.tar.lz nixlib-25057960cec97234e3a6cabbc96c9fcb0f18b933.tar.xz nixlib-25057960cec97234e3a6cabbc96c9fcb0f18b933.tar.zst nixlib-25057960cec97234e3a6cabbc96c9fcb0f18b933.zip |
howard-hinnant-date: allow access to zoneinfo
This fixes the situtation where, if `/usr/share/zoneinfo` was inaccessible/didn't otherwise exist, `howard-hinnant-date` would download and drop a `~/Downloads/tzdata` directory containing some timezone information from IANA [1]. To avoid this, we make use of the `tzdata`'s `zoneinfo`, preventing the dropping of random directories and files. [1] https://data.iana.org/time-zones/releases/tzdata2019c.tar.gz
Diffstat (limited to 'pkgs/development/libraries')
-rw-r--r-- | pkgs/development/libraries/howard-hinnant-date/default.nix | 10 | ||||
-rw-r--r-- | pkgs/development/libraries/howard-hinnant-date/make-zoneinfo-available.diff | 13 |
2 files changed, 22 insertions, 1 deletions
diff --git a/pkgs/development/libraries/howard-hinnant-date/default.nix b/pkgs/development/libraries/howard-hinnant-date/default.nix index 30e5c92b8f09..185af3dff319 100644 --- a/pkgs/development/libraries/howard-hinnant-date/default.nix +++ b/pkgs/development/libraries/howard-hinnant-date/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, cmake, curl, fetchpatch }: +{ stdenv, fetchFromGitHub, cmake, curl, tzdata, fetchpatch, substituteAll }: stdenv.mkDerivation rec { pname = "howard-hinnant-date-unstable"; @@ -16,6 +16,13 @@ stdenv.mkDerivation rec { url = "https://github.com/HowardHinnant/date/commit/e56b2dce7e89a92e1b9b35caa13b3e938c4cedea.patch"; sha256 = "0m3qbhq7kmm9qa3jm6d2px7c1dxdj5k9lffgdvqnrwmhxwj1p9n2"; }) + # Without this patch, this library will drop a `tzdata` directory into + # `~/Downloads` if it cannot find `/usr/share/zoneinfo`. Make the path it + # searches for `zoneinfo` be the one from the `tzdata` package. + (substituteAll { + src = ./make-zoneinfo-available.diff; + inherit tzdata; + }) ]; nativeBuildInputs = [ cmake ]; @@ -24,6 +31,7 @@ stdenv.mkDerivation rec { cmakeFlags = [ "-DBUILD_TZ_LIB=true" "-DBUILD_SHARED_LIBS=true" + "-DUSE_SYSTEM_TZ_DB=true" ]; outputs = [ "out" "dev" ]; diff --git a/pkgs/development/libraries/howard-hinnant-date/make-zoneinfo-available.diff b/pkgs/development/libraries/howard-hinnant-date/make-zoneinfo-available.diff new file mode 100644 index 000000000000..f9e69ff38cbb --- /dev/null +++ b/pkgs/development/libraries/howard-hinnant-date/make-zoneinfo-available.diff @@ -0,0 +1,13 @@ +diff --git a/src/tz.cpp b/src/tz.cpp +index 68436c3..2bfe19e 100644 +--- a/src/tz.cpp ++++ b/src/tz.cpp +@@ -349,7 +349,7 @@ discover_tz_dir() + struct stat sb; + using namespace std; + # ifndef __APPLE__ +- CONSTDATA auto tz_dir_default = "/usr/share/zoneinfo"; ++ CONSTDATA auto tz_dir_default = "@tzdata@/share/zoneinfo"; + CONSTDATA auto tz_dir_buildroot = "/usr/share/zoneinfo/uclibc"; + + // Check special path which is valid for buildroot with uclibc builds |