Skip to content

Commit

Permalink
termite: factor wrapper out into its own file (#43691)
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
Ma27 authored and xeji committed Aug 1, 2018
1 parent 2b75a72 commit 134c5cc
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 43 deletions.
71 changes: 29 additions & 42 deletions pkgs/applications/misc/termite/default.nix
Original file line number Diff line number Diff line change
@@ -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;
};
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;
# 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)" ];
makeFlags = [ "VERSION=v${version}" "PREFIX=" "DESTDIR=$(out)" ];

buildInputs = [ vte gtk3 ncurses ];
buildInputs = [ vte gtk3 ncurses ];

nativeBuildInputs = [ wrapGAppsHook pkgconfig ];
nativeBuildInputs = [ wrapGAppsHook pkgconfig ];

outputs = [ "out" "terminfo" ];
outputs = [ "out" "terminfo" ];

postInstall = ''
mkdir -p $terminfo/share
mv $out/share/terminfo $terminfo/share/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
'';
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;
};
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;
};
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}"
'';
passthru.terminfo = termite.terminfo;
}
15 changes: 15 additions & 0 deletions pkgs/applications/misc/termite/wrapper.nix
Original file line number Diff line number Diff line change
@@ -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;
}
4 changes: 3 additions & 1 deletion pkgs/top-level/all-packages.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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 { };
Expand Down

0 comments on commit 134c5cc

Please sign in to comment.