Nixpkgs: Termite broken

Created on 22 Jan 2017  Â·  6Comments  Â·  Source: NixOS/nixpkgs

Issue description

The package termite has been marked as broken. Trying to install results in the following error:

vteseq.cc:3419:42: error: call of overloaded 'vteseq_n_lookup(const char*&, int&)' is ambiguous
   seqhandler = vteseq_n_lookup (name, len);

Why was the package marked as broken? Is there a way to help fix it?

Steps to reproduce

nix-env -Paq nixpkgs.termite

Technical details

  • System:
LSB Version:    core-9.20160110ubuntu5-amd64:core-9.20160110ubuntu5-noarch:printing-9.20160110ubuntu5-amd64:printing-9.20160110ubuntu5-noarch:security-9.20160110ubuntu5-amd64:security-9.20160110ubuntu5-noarch
Distributor ID: Ubuntu
Description:    Ubuntu 16.10
Release:        16.10
Codename:       yakkety
  • Nix version: nix-env (Nix) 1.11.4
  • Nixpkgs version: "17.03pre99246.dc64133"

Most helpful comment

@globin I fixed the errors you found during compilation and submitted a PR to upstream VTE. As the changes may take a while to propagate down into vte-ng, I added them as patches to the vte-ng package, which is now used to compile termite.

All 6 comments

According to the project homepage it requires a different version of the vte library: https://github.com/thestinger/vte-ng

If you package this one and add it as a dependency the package should work again.

Thanks for the response @Mic92 . Could you help understand the reasoning behind the commit that marked it as broken?

Was the problem that termite was being packaged with the wrong dependency?

The dependency it needs is not in NixPkgs, so it has to be packaged and
nobody cared enough to do it.

We had the patched vte under gnome-3.20, but 3.20 was now removed whole without porting that to the vte in 3.22. EDIT: refs 754a9cf69 and 189f64d8.

I've wasted hours trying to fix building the special vte library, you may try to continue:

{ gnome3, fetchFromGitHub, autoconf, automake, gtk_doc, gettext, libtool, gperf }:

gnome3.vte.overrideAttrs (oldAttrs: rec {
  name = "vte-ng-${version}";
  version = "0.46.1.a";

  src = fetchFromGitHub {
    owner = "thestinger";
    repo = "vte-ng";
    rev = version;
    sha256 = "125fpibid1liz50d7vbxy71pnm8b01x90xnkr4z3419b90lybr0a";
  };

  preConfigure = oldAttrs.preConfigure + "; ./autogen.sh";

  nativeBuildInputs = [ gtk_doc autoconf automake gettext libtool ];
  buildInputs = oldAttrs.buildInputs ++ [ gperf ];
})

This fails with:

  CXX      libvte_2_91_la-vteseq.lo
In file included from vteseq.cc:3413:0:
vteseq-n.gperf: In function 'const vteseq_n_struct* vteseq_n_lookup(const char*, size_t)':
vteseq-n.gperf:293:1: warning: no previous declaration for 'const vteseq_n_struct* vteseq_n_lookup(const char*, size_t)' [-Wmissing-declarations]
vteseq.cc: In function 'void (* _vte_sequence_get_handler(const char*))(VteTerminalPrivate*, GValueArray*)':
vteseq.cc:3426:42: error: call of overloaded 'vteseq_n_lookup(const char*&, int&)' is ambiguous
   seqhandler = vteseq_n_lookup (name, len);
                                          ^
vteseq.cc:3412:1: note: candidate: const vteseq_n_struct* vteseq_n_lookup(const char*, unsigned int)
 vteseq_n_lookup (register const char *str, register unsigned int len);
 ^
In file included from vteseq.cc:3413:0:
vteseq-n.gperf:293:1: note: candidate: const vteseq_n_struct* vteseq_n_lookup(const char*, size_t)
vteseq.cc: At global scope:
vteseq.cc:3412:1: warning: 'const vteseq_n_struct* vteseq_n_lookup(const char*, unsigned int)' declared 'static' but never defined [-Wunused-function]
 vteseq_n_lookup (register const char *str, register unsigned int len);
 ^
make[3]: *** [Makefile:1759: libvte_2_91_la-vteseq.lo] Error 1
make[3]: Leaving directory '/tmp/nix-build-vte-ng-0.46.1.a.drv-0/vte-ng-0.46.1.a-src/src'
make[2]: *** [Makefile:1200: all] Error 2
make[2]: Leaving directory '/tmp/nix-build-vte-ng-0.46.1.a.drv-0/vte-ng-0.46.1.a-src/src'
make[1]: *** [Makefile:570: all-recursive] Error 1
make[1]: Leaving directory '/tmp/nix-build-vte-ng-0.46.1.a.drv-0/vte-ng-0.46.1.a-src'
make: *** [Makefile:477: all] Error 2

builder for ‘/nix/store/9r5gy12hazhklxi4l7gzwvr09ad25sa0-vte-ng-0.46.1.a.drv’ failed with exit code 2

I don't see marking one package broken preferable to keeping the whole gnome-3.20 in tree, sadly. Please open a pull request if you manage to succeed, but I don't see myself wasting more time on this otherwise soon.

@globin I fixed the errors you found during compilation and submitted a PR to upstream VTE. As the changes may take a while to propagate down into vte-ng, I added them as patches to the vte-ng package, which is now used to compile termite.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

sid-kap picture sid-kap  Â·  3Comments

grahamc picture grahamc  Â·  3Comments

rzetterberg picture rzetterberg  Â·  3Comments

yawnt picture yawnt  Â·  3Comments

ghost picture ghost  Â·  3Comments