gawkextlib: init at unstable-2019-11-21 (#51721)
Co-Authored-By: Dmitry Kalinkin <dmitry.kalinkin@gmail.com>
This commit is contained in:
parent
9dc8e77e4e
commit
774ad67ce0
12
pkgs/tools/text/gawk/gawk-with-extensions.nix
Normal file
12
pkgs/tools/text/gawk/gawk-with-extensions.nix
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
{ runCommand, gawk, extensions, makeWrapper }:
|
||||||
|
|
||||||
|
runCommand "gawk-with-extensions" {
|
||||||
|
buildInputs = [ makeWrapper gawk ] ++ extensions;
|
||||||
|
} ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
for i in ${gawk}/bin/*; do
|
||||||
|
name="$(basename "$i")"
|
||||||
|
makeWrapper $i $out/bin/$name \
|
||||||
|
--prefix AWKLIBPATH : "${gawk}/lib/gawk:''${AWKLIBPATH:-}"
|
||||||
|
done
|
||||||
|
''
|
149
pkgs/tools/text/gawk/gawkextlib.nix
Normal file
149
pkgs/tools/text/gawk/gawkextlib.nix
Normal file
@ -0,0 +1,149 @@
|
|||||||
|
{ stdenv, recurseIntoAttrs, fetchgit, writeText, pkgconfig, autoreconfHook
|
||||||
|
, autoconf, automake, libiconv, libtool, texinfo, gettext, gawk, rapidjson, gd
|
||||||
|
, shapelib, libharu, lmdb, gmp, glibcLocales, mpfr, more, postgresql, hiredis
|
||||||
|
, expat, tre, makeWrapper }:
|
||||||
|
|
||||||
|
let
|
||||||
|
buildExtension = stdenv.lib.makeOverridable
|
||||||
|
({ name, gawkextlib, extraBuildInputs ? [ ], doCheck ? true }:
|
||||||
|
let is_extension = !isNull gawkextlib;
|
||||||
|
in stdenv.mkDerivation rec {
|
||||||
|
pname = "gawkextlib-${name}";
|
||||||
|
version = "unstable-2019-11-21";
|
||||||
|
|
||||||
|
src = fetchgit {
|
||||||
|
url = "git://git.code.sf.net/p/gawkextlib/code";
|
||||||
|
rev = "f70f10da2804e4fd0a0bac57736e9c1cf21e345d";
|
||||||
|
sha256 = "0r8fz89n3l4dfszs1980yqj0ah95430lj0y1lb7blfkwxa6c2xik";
|
||||||
|
};
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
cd ${name}
|
||||||
|
'';
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
autoconf
|
||||||
|
automake
|
||||||
|
libtool
|
||||||
|
autoreconfHook
|
||||||
|
pkgconfig
|
||||||
|
texinfo
|
||||||
|
gettext
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [ gawk ] ++ extraBuildInputs;
|
||||||
|
propagatedBuildInputs = stdenv.lib.optional is_extension gawkextlib;
|
||||||
|
|
||||||
|
setupHook = if is_extension then ./setup-hook.sh else null;
|
||||||
|
inherit gawk;
|
||||||
|
|
||||||
|
inherit doCheck;
|
||||||
|
checkInputs = [ more ];
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
homepage = "https://sourceforge.net/projects/gawkextlib/";
|
||||||
|
description = "Dynamically loaded extension libraries for GNU AWK";
|
||||||
|
longDescription = ''
|
||||||
|
The gawkextlib project provides several extension libraries for
|
||||||
|
gawk (GNU AWK), as well as libgawkextlib containing some APIs that
|
||||||
|
are useful for building gawk extension libraries. These libraries
|
||||||
|
enable gawk to process XML data, interact with a PostgreSQL
|
||||||
|
database, use the GD graphics library, and perform unlimited
|
||||||
|
precision MPFR calculations.
|
||||||
|
'';
|
||||||
|
license = licenses.gpl3Plus;
|
||||||
|
platforms = platforms.unix;
|
||||||
|
maintainers = with maintainers; [ tomberek ];
|
||||||
|
};
|
||||||
|
});
|
||||||
|
gawkextlib = buildExtension {
|
||||||
|
gawkextlib = null;
|
||||||
|
name = "lib";
|
||||||
|
};
|
||||||
|
libs = {
|
||||||
|
abort = buildExtension {
|
||||||
|
inherit gawkextlib;
|
||||||
|
name = "abort";
|
||||||
|
};
|
||||||
|
aregex = buildExtension {
|
||||||
|
inherit gawkextlib;
|
||||||
|
name = "aregex";
|
||||||
|
extraBuildInputs = [ tre ];
|
||||||
|
};
|
||||||
|
csv = buildExtension {
|
||||||
|
inherit gawkextlib;
|
||||||
|
name = "csv";
|
||||||
|
};
|
||||||
|
errno = buildExtension {
|
||||||
|
inherit gawkextlib;
|
||||||
|
name = "errno";
|
||||||
|
};
|
||||||
|
gd = buildExtension {
|
||||||
|
inherit gawkextlib;
|
||||||
|
name = "gd";
|
||||||
|
extraBuildInputs = [ gd ];
|
||||||
|
};
|
||||||
|
haru = buildExtension {
|
||||||
|
inherit gawkextlib;
|
||||||
|
name = "haru";
|
||||||
|
extraBuildInputs = [ libharu ];
|
||||||
|
};
|
||||||
|
json = buildExtension {
|
||||||
|
inherit gawkextlib;
|
||||||
|
name = "json";
|
||||||
|
extraBuildInputs = [ rapidjson ];
|
||||||
|
};
|
||||||
|
lmdb = buildExtension {
|
||||||
|
inherit gawkextlib;
|
||||||
|
name = "lmdb";
|
||||||
|
extraBuildInputs = [ lmdb ];
|
||||||
|
# mdb_env_open(env, /dev/null)
|
||||||
|
#! No such device
|
||||||
|
# mdb_env_open(env, /dev/null)
|
||||||
|
#! Operation not supported by device
|
||||||
|
doCheck = !stdenv.isDarwin;
|
||||||
|
};
|
||||||
|
mbs = buildExtension {
|
||||||
|
inherit gawkextlib;
|
||||||
|
name = "mbs";
|
||||||
|
extraBuildInputs = [ glibcLocales ];
|
||||||
|
#! "spät": length: 5, mbs_length: 6, wcswidth: 4
|
||||||
|
doCheck = !stdenv.isDarwin;
|
||||||
|
};
|
||||||
|
mpfr = buildExtension {
|
||||||
|
inherit gawkextlib;
|
||||||
|
name = "mpfr";
|
||||||
|
extraBuildInputs = [ gmp mpfr ];
|
||||||
|
};
|
||||||
|
nl_langinfo = buildExtension {
|
||||||
|
inherit gawkextlib;
|
||||||
|
name = "nl_langinfo";
|
||||||
|
};
|
||||||
|
pgsql = buildExtension {
|
||||||
|
inherit gawkextlib;
|
||||||
|
name = "pgsql";
|
||||||
|
extraBuildInputs = [ postgresql ];
|
||||||
|
};
|
||||||
|
redis = buildExtension {
|
||||||
|
inherit gawkextlib;
|
||||||
|
name = "redis";
|
||||||
|
extraBuildInputs = [ hiredis ];
|
||||||
|
};
|
||||||
|
select = buildExtension {
|
||||||
|
inherit gawkextlib;
|
||||||
|
name = "select";
|
||||||
|
};
|
||||||
|
timex = buildExtension {
|
||||||
|
inherit gawkextlib;
|
||||||
|
name = "timex";
|
||||||
|
};
|
||||||
|
xml = buildExtension {
|
||||||
|
inherit gawkextlib;
|
||||||
|
name = "xml";
|
||||||
|
extraBuildInputs = [ expat libiconv ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in recurseIntoAttrs (libs // {
|
||||||
|
inherit gawkextlib buildExtension;
|
||||||
|
full = builtins.attrValues libs;
|
||||||
|
})
|
6
pkgs/tools/text/gawk/setup-hook.sh
Normal file
6
pkgs/tools/text/gawk/setup-hook.sh
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
local oldOpts="-u"
|
||||||
|
shopt -qo nounset || oldOpts="+u"
|
||||||
|
set +u
|
||||||
|
. @gawk@/etc/profile.d/gawk.sh
|
||||||
|
gawklibpath_append @out@/lib/gawk
|
||||||
|
set "$oldOpts"
|
@ -3399,6 +3399,11 @@ in
|
|||||||
inherit (darwin) locale;
|
inherit (darwin) locale;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
gawk-with-extensions = callPackage ../tools/text/gawk/gawk-with-extensions.nix {
|
||||||
|
extensions = gawkextlib.full;
|
||||||
|
};
|
||||||
|
gawkextlib = callPackage ../tools/text/gawk/gawkextlib.nix {};
|
||||||
|
|
||||||
gawkInteractive = appendToName "interactive"
|
gawkInteractive = appendToName "interactive"
|
||||||
(gawk.override { interactive = true; });
|
(gawk.override { interactive = true; });
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user