From 134c5cc8dbf317584b2e53273e4bacd59e20b9f7 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Wed, 1 Aug 2018 16:09:55 +0200 Subject: [PATCH] termite: factor wrapper out into its own file (#43691) Until now it's impossible to override the attrs of the actual build instruction for the `termite` package like this: ``` termite.overrideAttrs (_: { # ... }) ``` This issue occurs since the `termite/default.nix` expressions returns the `symlinkJoin` expression when I override termite (e.g. to provide a config file). I recently patched termite and wanted to apply this patch to my local termite installation in my system config which is impossible this, so splitting the wrapper and the build instruction into their own files makes this way easier to maintian. --- pkgs/applications/misc/termite/default.nix | 85 +++++++++------------- pkgs/applications/misc/termite/wrapper.nix | 15 ++++ pkgs/top-level/all-packages.nix | 4 +- 3 files changed, 54 insertions(+), 50 deletions(-) create mode 100644 pkgs/applications/misc/termite/wrapper.nix diff --git a/pkgs/applications/misc/termite/default.nix b/pkgs/applications/misc/termite/default.nix index 560dff59427..abcd5eb4288 100644 --- a/pkgs/applications/misc/termite/default.nix +++ b/pkgs/applications/misc/termite/default.nix @@ -1,55 +1,42 @@ -{ stdenv, fetchFromGitHub, lib, pkgconfig, vte, gtk3, ncurses, makeWrapper, wrapGAppsHook, symlinkJoin -, configFile ? null -}: +{ stdenv, fetchFromGitHub, pkgconfig, vte, gtk3, ncurses, wrapGAppsHook }: -let +stdenv.mkDerivation rec { + name = "termite-${version}"; version = "13"; - termite = stdenv.mkDerivation { - name = "termite-${version}"; - src = fetchFromGitHub { - owner = "thestinger"; - repo = "termite"; - rev = "v${version}"; - sha256 = "02cn70ygl93ghhkhs3xdxn5b1yadc255v3yp8cmhhyzsv5027hvj"; - fetchSubmodules = true; - }; - - # https://github.com/thestinger/termite/pull/516 - patches = [ ./url_regexp_trailing.patch ./add_errno_header.patch - ] ++ lib.optional stdenv.isDarwin ./remove_ldflags_macos.patch; - - makeFlags = [ "VERSION=v${version}" "PREFIX=" "DESTDIR=$(out)" ]; - - buildInputs = [ vte gtk3 ncurses ]; - - nativeBuildInputs = [ wrapGAppsHook pkgconfig ]; - - outputs = [ "out" "terminfo" ]; - - postInstall = '' - mkdir -p $terminfo/share - mv $out/share/terminfo $terminfo/share/terminfo - - mkdir -p $out/nix-support - echo "$terminfo" >> $out/nix-support/propagated-user-env-packages - ''; - - meta = with stdenv.lib; { - description = "A simple VTE-based terminal"; - license = licenses.lgpl2Plus; - homepage = https://github.com/thestinger/termite/; - maintainers = with maintainers; [ koral garbas ]; - platforms = platforms.all; - }; + src = fetchFromGitHub { + owner = "thestinger"; + repo = "termite"; + rev = "v${version}"; + sha256 = "02cn70ygl93ghhkhs3xdxn5b1yadc255v3yp8cmhhyzsv5027hvj"; + fetchSubmodules = true; }; -in if configFile == null then termite else symlinkJoin { - name = "termite-with-config-${version}"; - paths = [ termite ]; - nativeBuildInputs = [ makeWrapper ]; - postBuild = '' - wrapProgram $out/bin/termite \ - --add-flags "--config ${configFile}" + + # https://github.com/thestinger/termite/pull/516 + patches = [ ./url_regexp_trailing.patch ./add_errno_header.patch + ] ++ stdenv.lib.optional stdenv.isDarwin ./remove_ldflags_macos.patch; + + makeFlags = [ "VERSION=v${version}" "PREFIX=" "DESTDIR=$(out)" ]; + + buildInputs = [ vte gtk3 ncurses ]; + + nativeBuildInputs = [ wrapGAppsHook pkgconfig ]; + + outputs = [ "out" "terminfo" ]; + + postInstall = '' + mkdir -p $terminfo/share + mv $out/share/terminfo $terminfo/share/terminfo + + mkdir -p $out/nix-support + echo "$terminfo" >> $out/nix-support/propagated-user-env-packages ''; - passthru.terminfo = termite.terminfo; + + meta = with stdenv.lib; { + description = "A simple VTE-based terminal"; + license = licenses.lgpl2Plus; + homepage = https://github.com/thestinger/termite/; + maintainers = with maintainers; [ koral garbas ]; + platforms = platforms.all; + }; } diff --git a/pkgs/applications/misc/termite/wrapper.nix b/pkgs/applications/misc/termite/wrapper.nix new file mode 100644 index 00000000000..0b12a905360 --- /dev/null +++ b/pkgs/applications/misc/termite/wrapper.nix @@ -0,0 +1,15 @@ +{ makeWrapper, wrapGAppsHook, symlinkJoin, configFile ? null, termite }: + +if configFile == null then termite else symlinkJoin { + name = "termite-with-config-${termite.version}"; + + paths = [ termite ]; + nativeBuildInputs = [ makeWrapper ]; + + postBuild = '' + wrapProgram $out/bin/termite \ + --add-flags "--config ${configFile}" + ''; + + passthru.terminfo = termite.terminfo; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 7d2694238d8..1623c1262d6 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -18549,10 +18549,12 @@ with pkgs; vte = gnome3.vte; }; - termite = callPackage ../applications/misc/termite { + termite-unwrapped = callPackage ../applications/misc/termite { vte = gnome3.vte-ng; }; + termite = callPackage ../applications/misc/termite/wrapper.nix { termite = termite-unwrapped; }; + termtosvg = callPackage ../tools/misc/termtosvg { }; tesseract = callPackage ../applications/graphics/tesseract { };