summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Ericson <git@JohnEricson.me>2024-01-09 22:25:34 -0500
committerGitHub <noreply@github.com>2024-01-09 22:25:34 -0500
commit78a70bef2fb1039ef64fe011a2816f6400b23739 (patch)
treeccf7fe273927098138c178527fe4a5e8a122ab89
parentMerge pull request #279907 from happysalada/fix_alacritty_darwin (diff)
parenttermcap: init at 1.3.1 (diff)
downloadnixpkgs-78a70bef2fb1039ef64fe011a2816f6400b23739.tar.gz
Merge pull request #279491 from wegank/termcap-init
termcap: init at 1.3.1
-rw-r--r--pkgs/by-name/te/termcap/package.nix67
1 files changed, 67 insertions, 0 deletions
diff --git a/pkgs/by-name/te/termcap/package.nix b/pkgs/by-name/te/termcap/package.nix
new file mode 100644
index 000000000000..6382ade90ea7
--- /dev/null
+++ b/pkgs/by-name/te/termcap/package.nix
@@ -0,0 +1,67 @@
+{ lib
+, stdenv
+, fetchurl
+, fetchpatch
+, autoreconfHook
+, enableStatic ? stdenv.hostPlatform.isStatic
+, enableShared ? !stdenv.hostPlatform.isStatic
+}:
+
+stdenv.mkDerivation rec {
+ pname = "termcap";
+ version = "1.3.1";
+
+ src = fetchurl {
+ url = "mirror://gnu/termcap/termcap-${version}.tar.gz";
+ hash = "sha256-kaDiLlOHykRntbyxjt8cUbkwJi/UZtX9o5bdnSZxkQA=";
+ };
+
+ patches = [
+ (fetchpatch {
+ name = "0001-tparam-replace-write-with-fprintf.patch";
+ url = "https://github.com/msys2/MINGW-packages/raw/c6691ad1bd9d4c6823a18068ca0683c3e32ea005/mingw-w64-termcap/0001-tparam-replace-write-with-fprintf.patch";
+ hash = "sha256-R9XaLfa8fzQBt+M+uA1AFTvKYCeOWLUD/7GViazXwto=";
+ })
+ ];
+
+ outputs = [ "out" "dev" ];
+
+ enableParallelBuilding = true;
+
+ strictDeps = true;
+
+ nativeBuildInputs = [ autoreconfHook ];
+
+ makeFlags = [
+ "AR=${stdenv.cc.targetPrefix}ar"
+ ];
+
+ env.NIX_CFLAGS_COMPILE = toString ([
+ "-DSTDC_HEADERS"
+ ] ++ lib.optionals stdenv.cc.isClang [
+ "-Wno-implicit-function-declaration"
+ ]);
+
+ # Library only statically links by default
+ postInstall = lib.optionalString (!enableStatic) ''
+ rm $out/lib/libtermcap.a
+ '' + lib.optionalString enableShared (let
+ libName = "lib${pname}${stdenv.hostPlatform.extensions.sharedLibrary}";
+ impLibName = "lib${pname}.dll.a";
+ winImpLib = lib.optionalString stdenv.hostPlatform.isWindows
+ "-Wl,--out-implib,${impLibName}";
+ in ''
+ ${stdenv.cc.targetPrefix}cc -shared -o ${libName} termcap.o tparam.o version.o ${winImpLib}
+ install -Dm644 ${libName} $out/lib
+ '' + lib.optionalString stdenv.hostPlatform.isWindows ''
+ install -Dm644 ${impLibName} $out/lib
+ '');
+
+ meta = {
+ description = "Terminal feature database";
+ homepage = "https://www.gnu.org/software/termutils/";
+ license = lib.licenses.gpl2Plus;
+ maintainers = with lib.maintainers; [ wegank ];
+ platforms = lib.platforms.all;
+ };
+}