diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 7f15d80a778c..5bb5045c6c73 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -673,6 +673,11 @@ github = "changlinli"; name = "Changlin Li"; }; + CharlesHD = { + email = "charleshdespointes@gmail.com"; + github = "CharlesHD"; + name = "Charles Huyghues-Despointes"; + }; chaoflow = { email = "flo@chaoflow.net"; github = "chaoflow"; diff --git a/pkgs/applications/misc/dozenal/default.nix b/pkgs/applications/misc/dozenal/default.nix new file mode 100644 index 000000000000..b5ae9fb567ca --- /dev/null +++ b/pkgs/applications/misc/dozenal/default.nix @@ -0,0 +1,61 @@ +{ stdenv, fetchFromGitHub, ncurses, hdate, lua5_2 }: + +stdenv.mkDerivation rec { + version = "12010904"; + name = "dozenal-${version}"; + src = fetchFromGitHub { + owner = "dgoodmaniii"; + repo = "dozenal"; + rev = "v${version}"; + sha256 = "1ic63gpdda762x6ks3al71dwgmsy2isicqyr2935bd245jx8s209"; + }; + makeFlags = [ + # author do not use configure and prefix directly using $prefix + "prefix=$(out)" + # graphical version of dozdc requires xforms, which is not i nixpkgs so I turned it down + "XFORMS_FLAGS=-UXFORMS" + "LUALIB=-llua" + "bindir=$(prefix)/bin/" + ]; + # some include hardcodes the lua libraries path. This is a patch for that + patches = [ ./lua-header.patch ]; + preBuild = "cd dozenal"; + buildInputs = [ ncurses hdate lua5_2 ]; + # I remove gdozdc, as I didn't figure all it's dependency yet. + postInstall = "rm $out/bin/gdozdc"; + + meta = { + description = "A complete suite of dozenal (base twelve) programs"; + longDescription = '' + Programs + + doz --- a converter; converts decimal numbers into dozenal. Accepts + input in standard or exponential notation (i.e., "1492.2" or "1.4922e3"). + dec --- a converter; converts dozenal numbers into decimal. Accepts input + in standard or exponential notation (i.e., "X44;4" or "X;444e2"). + dozword --- converts a dozenal number (integers only) into words, + according to the Pendlebury system. + dozdc --- a full-featured scientific calculator which works in the + dozenal base. RPN command line. + tgmconv --- a converter for all standard measurements; converts to and + from TGM, Imperial, customary, and SI metric. + dozpret --- a pretty-printer for dozenal numbers; inserts spacing (or + other characters) as desired, and can also transform transdecimal digits + from 'X' to 'E' into any character or sequence of characters desired. + dozdate --- a more-or-less drop-in replacement for GNU and BSD date, it + outputs the date and time in dozenal, as well as containing some TGM + extensions. + dozstring --- a simple byte converter; absorbs a string either from + standard input or a command line argument, leaving it identical but + for the numbers, which it converts into dozenal. Options for padding + and for not converting specific numbers. + doman --- a converter which takes a dozenal integer and + emits its equivalent in a non-place-value system, such as + Roman numerals. Arbitrary ranks and symbols may be used. + Defaults to dozenal Roman numerals. + ''; + homepage = https://github.com/dgoodmaniii/dozenal/; + maintainers = with stdenv.lib.maintainers; [ CharlesHD ]; + license = stdenv.lib.licenses.gpl3; + }; +} diff --git a/pkgs/applications/misc/dozenal/lua-header.patch b/pkgs/applications/misc/dozenal/lua-header.patch new file mode 100644 index 000000000000..45b76e159a11 --- /dev/null +++ b/pkgs/applications/misc/dozenal/lua-header.patch @@ -0,0 +1,16 @@ +diff -ruN dozenal-12010904/dozenal/dozcal/call_lua.c dozenal-patched/dozenal/dozcal/call_lua.c +--- dozenal-12010904/dozenal/dozcal/call_lua.c 2017-09-04 19:25:01.000000000 +0200 ++++ dozenal-patched/dozenal/dozcal/call_lua.c 2018-06-13 10:19:57.821950327 +0200 +@@ -38,9 +38,9 @@ + #include"utility.h" + #include"conv.h" + #include"proc_date.h" +-#include +-#include +-#include ++#include ++#include ++#include + + void bail(lua_State *L, int err_code, char *filename); + int file_prefix(char **s, char *t); diff --git a/pkgs/applications/misc/hdate/default.nix b/pkgs/applications/misc/hdate/default.nix new file mode 100644 index 000000000000..e2f5f653d47c --- /dev/null +++ b/pkgs/applications/misc/hdate/default.nix @@ -0,0 +1,16 @@ +{ stdenv, fetchurl }: + +stdenv.mkDerivation rec { + version = "1.6.02"; + name = "hdate-${version}"; + src = fetchurl { + url = "https://sourceforge.net/projects/libhdate/files/libhdate/libhdate-${version}/libhdate-${version}.tar.bz2"; + sha256 = "3c930a8deb57c01896dc37f0d7804e5a330ee8e88c4ff610b71f9d2b02c17762"; + }; + meta = { + description = "Hebrew calendar and solar astronomical times library and utilities"; + homepage = https://sourceforge.net/projects/libhdate/; + license = stdenv.lib.licenses.gpl3; + maintainers = with stdenv.lib.maintainers; [ CharlesHD ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 61c4ec417ccc..027e4632f38e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1218,6 +1218,8 @@ with pkgs; pythonPackages = python3Packages; }; + dozenal = callPackage ../applications/misc/dozenal { }; + dpic = callPackage ../tools/graphics/dpic { }; dragon-drop = callPackage ../tools/X11/dragon-drop { @@ -1364,6 +1366,8 @@ with pkgs; gti = callPackage ../tools/misc/gti { }; + hdate = callPackage ../applications/misc/hdate { }; + heatseeker = callPackage ../tools/misc/heatseeker { }; hebcal = callPackage ../tools/misc/hebcal {};