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?
nix-env -Paq nixpkgs.termite
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-env (Nix) 1.11.4"17.03pre99246.dc64133"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.
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.