Home | News | Download | Packages | Forum | Wiki | Github

Termite terminal package?


(Phestek) #1

Hi,
Yesterday I switched from Arch to Void and I’m loving this distro. Great work!
Unfortunately, for couple of hours I was unable to build termite terminal (which is one of the best if not the best term emulator). Probably the problem is me, but… Is there any chance to add termite to official repositiories? I hate urxvt and other terminals doesn’t support base16-shell.
Thanks from advance!


Your WTFs and frustrations in Void
#2

Hey, I also come from Arch and I also have the same question. :slight_smile: Well you could request it at https://github.com/voidlinux/void-packages/issues


(Phestek) #3

Didn’t know about that, thanks. Gonna make request in few minutes :slight_smile:


#4

You need the custom vte build that exposes functions needed by termite first.

Did you try follow this guide?
https://log.eoc.io/logs/building-and-installing-termite-on-void-linux


#5

Good night,

Can you help me, guys?

I looked at the guide and decided that I’d prefer to have a package, so I can update more easily and that all the prerequisites are managed by the ./xbps-src.

Preliminary version of the template is as follows:

# Template build file for 'vte3-ng
pkgname=vte3-ng
version=0.48.3.a
revision=1
wrksrc=vte-ng-0.48.3.a
build_style=fetch
makedepends="make automake autoconf gtk-doc glib-devel vala-devel gobject-introspection pkg-config intltool gettext-devel gnutls-devel gtk+3-devel pango-devel gperf pcre2-devel"
short_desc="Enhanced Virtual Terminal Emulator widget for use with GTK3"
maintainer=" <>"
homepage="https://github.com/thestinger/vte-ng"
license="LGPL-2.1"
distfiles="https://github.com/thestinger/vte-ng/archive/0.48.3.a.tar.gz"
checksum=f02377288d512d38a35439fedf0195ea3f671cf24fb60e43f098b20f1270b3f1

provides="vte3-${version}_${revision}"
replaces="vte3>=0"
conflicts="vte3>=0"


do_install(){
./autogen.sh --prefix=/usr
make
}

but the installation stalls due to no PKGDESTDIR:

=> vte3-ng-0.48.3.a_1: running pre-pkg hook: 99-pkglint ...
=> ERROR: vte3-ng-0.48.3.a_1: PKGDESTDIR is empty and build_style != meta
=> ERROR: vte3-ng-0.48.3.a_1: cannot continue with installation!

How do I set it correctly?


(Masato the Empty) #6

Are you missing the make install step? Most makefiles have “make” just do the compilation, not install to the destdir…

(that error is not “no PKGDESTDIR” but an empty one - meaning nothing for xbps to package up, which should only be the case for metapackages)


#7

I have changed the template a bit to include make install

# Template build file for 'vte3-ng
pkgname=vte3-ng
version=0.48.3.a
revision=1
wrksrc=vte-ng-0.48.3.a
build_style=fetch
makedepends="make automake autoconf gtk-doc glib-devel vala-devel gobject-introspection pkg-config intltool gettext-devel gnutls-devel gtk+3-devel pango-devel gperf pcre2-devel"
short_desc="Enhanced Virtual Terminal Emulator widget for use with GTK3"
maintainer=" <>"
homepage="https://github.com/thestinger/vte-ng"
license="LGPL-2.1"
distfiles="https://github.com/thestinger/vte-ng/archive/0.48.3.a.tar.gz"
checksum=f02377288d512d38a35439fedf0195ea3f671cf24fb60e43f098b20f1270b3f1

provides="vte3-${version}_${revision}"
replaces="vte3>=0"
conflicts="vte3>=0"

do_extract() {
tar xzf ${XBPS_SRCDISTDIR}/${pkgname}-${version}/${version}.tar.gz -C ..
}

do_configure() {
./autogen.sh --prefix=/usr
}

do_build() {
make
}

do_install() {
make install
}

But the problem seems to persist:

=> vte3-ng-0.48.3.a_1: running pre-pkg hook: 06-shlib-provides ...
=> vte3-ng-0.48.3.a_1: running pre-pkg hook: 90-set-timestamps ...
=> vte3-ng-0.48.3.a_1: setting mtimes to Sat Jul  8 09:26:03 CEST 2017
=> vte3-ng-0.48.3.a_1: running pre-pkg hook: 99-pkglint ...
=> ERROR: vte3-ng-0.48.3.a_1: PKGDESTDIR is empty and build_style != meta
=> ERROR: vte3-ng-0.48.3.a_1: cannot continue with installation!

EDIT: my mistake, had to add DESTDIR=${DESTDIR} to make install.
Everything works now, thank you!

EDIT_2: I have one last question with which I need help.

How can there not be tic command?

I run ./xbps-src pkg termite with the following template:

# Template file for 'termite'
pkgname=termite
version=v12
revision=1
wrksrc="${pkgname}-${version}-${revision}"
build_style=gnu-makefile
#hostmakedepends="base-devel gtk+3-devel pkg-config git-perl gnutls-devel glib-devel ncurses"
#makedepends="base-devel gtk+3-devel gtk+-devel vte3-ng"
makedepends="git gcc make gtk-doc glib-devel vala-devel gobject-introspection pkg-config intltool gettext-devel gnutls-devel gtk+3-devel pango-devel gperf pcre2-devel"
depends="vte3-ng xdg-utils"
short_desc="A keyboard-centric VTE-based terminal, aimed at use within a window manager with tiling and/or tabbing support. "
maintainer="Vintodrimmer <vintodrimmer@protonmail.ch>"
license="GPL-2"
homepage="https://github.com/thestinger/termite"

do_fetch() {
	git clone --recursive $homepage $wrksrc
	cd $wrksrc
	git checkout "${version}"
}

pre_configure() {
    sed 's/PREFIX = \/usr\/local/PREFIX = \/usr/' -i Makefile
}

But it fails with the following error:

=> termite-v12_1: running do_install ...
mkdir -p /destdir//termite-v12/usr/share/terminfo
install -Dm755 termite /destdir//termite-v12/usr/bin/termite
install -Dm644 config /destdir//termite-v12/etc/xdg/termite/config
install -Dm644 termite.desktop /destdir//termite-v12/usr/share/applications/termite.desktop
install -Dm644 man/termite.1 /destdir//termite-v12/usr/share/man/man1/termite.1
install -Dm644 man/termite.config.5 /destdir//termite-v12/usr/share/man/man5/termite.config.5
tic -x termite.terminfo -o /destdir//termite-v12/usr/share/terminfo
make: tic: Command not found
make: *** [Makefile:45: install] Error 127
=> ERROR: termite-v12_1: failed to run do_install() at line 22.

#8

tic is part of ncurses. You commented it out (in hostmakedepends).


#9

Thank you very much!

I now have a running termite thanks to everyone in this thread.

Here’s the templates (with terrible dependencies, that I will later sort out) if you would like to install them the same way.

VTE3-ng:

# Template build file for 'vte3-ng
pkgname=vte3-ng
version=0.48.3.a
revision=1
wrksrc=vte-ng-0.48.3.a
build_style=fetch
makedepends="make automake autoconf gtk-doc glib-devel vala-devel gobject-introspection pkg-config intltool gettext-devel gnutls-devel gtk+3-devel pango-devel gperf pcre2-devel"
short_desc="Enhanced Virtual Terminal Emulator widget for use with GTK3"
maintainer=" <>"
homepage="https://github.com/thestinger/vte-ng"
license="LGPL-2.1"
distfiles="https://github.com/thestinger/vte-ng/archive/0.48.3.a.tar.gz"
checksum=f02377288d512d38a35439fedf0195ea3f671cf24fb60e43f098b20f1270b3f1

provides="vte3-${version}_${revision}"
replaces="vte3>=0"
conflicts="vte3>=0"

do_extract() {
tar xzf ${XBPS_SRCDISTDIR}/${pkgname}-${version}/${version}.tar.gz -C ..
}

do_configure() {
./autogen.sh --prefix=/usr
}

do_build() {
make
}

do_install() {
make install DESTDIR=${DESTDIR}
}

termite:

# Template file for 'termite'
pkgname=termite
version=v12
revision=1
wrksrc="${pkgname}-${version}-${revision}"
build_style=gnu-makefile
hostmakedepends="base-devel gtk+3-devel pkg-config git-perl gnutls-devel glib-devel ncurses"
makedepends="gcc make gtk-doc glib-devel vala-devel gobject-introspection pkg-config intltool gettext-devel gtk+3-devel pango-devel gperf pcre2-devel"
depends="vte3-ng xdg-utils"
short_desc="A keyboard-centric VTE-based terminal, aimed at use within a window manager with tiling and/or tabbing support. "
maintainer="Vintodrimmer <vintodrimmer@protonmail.ch>"
license="GPL-2"
homepage="https://github.com/thestinger/termite"

do_fetch() {
	git clone --recursive $homepage $wrksrc
	cd $wrksrc
	git checkout "${version}"
}

pre_configure() {
    sed 's/PREFIX = \/usr\/local/PREFIX = \/usr/' -i Makefile
}

#10

Hello,
I just tried using both of your packaging templates. vte3-ng seems to work fine, since it built and installed without any errors, but when I try to build termite, it gives me this error
=> termite-v12_1: running do_build ... Package vte-2.91 was not found in the pkg-config search path. Perhaps you should add the directory containingvte-2.91.pc’
to the PKG_CONFIG_PATH environment variable
No package ‘vte-2.91’ found
Package vte-2.91 was not found in the pkg-config search path.
Perhaps you should add the directory containing vte-2.91.pc' to the PKG_CONFIG_PATH environment variable No package 'vte-2.91' found g++ -std=c++11 -O3 -Wall -Wextra -pedantic -Winit-self -Wshadow -Wformat=2 -Wmissing-declarations -Wstrict-overflow=5 -Wcast-align -Wconversion -Wunused-macros -Wwrite-strings -DNDEBUG -D_POSIX_C_SOURCE=200809L -DTERMITE_VERSION=\"v12\" -specs=/void-packages/common/environment/configure/gccspecs/hardened-cc1 -fstack-protector-strong -D_FORTIFY_SOURCE=2 -mtune=generic -O2 -pipe -Wno-missing-field-initializers -specs=/void-packages/common/environment/configure/gccspecs/hardened-ld -Wl,-z,relro -Wl,-z,now -Wl,--as-needed termite.cc -o termite termite.cc:32:21: fatal error: gtk/gtk.h: No such file or directory #include <gtk/gtk.h> ^ compilation terminated. make: *** [Makefile:36: termite] Error 1 => ERROR: termite-v12_1: failed to run do_build() at line 9.


#11

Good day to you,

I’ve tried building it on my other machine and got the same error.
Guess I screwed up with one of the two templates. I think it’s the vte3-ng one, though.

In any case, I don’t have that much time to fix it right now, since my exams start next week, but I’ll make sure to check on it after.

Sorry for not being much help right now.


#12

Atleast it’s good to hear that it’s not me beeing stupid and forgetting something. You can take your time with the fix :slight_smile:


#13

vte3-ng-devel package is required:

ln -s void-packages/srcpkgs/vte3-ng void-packages/srcpkgs/vte3-ng-devel

# Template build file for 'vte3-ng
pkgname=vte3-ng
version=0.48.3.a
revision=2
wrksrc=vte-ng-${version}
build_style=gnu-configure
makedepends="gtk-doc glib-devel vala-devel gobject-introspection gettext-devel gnutls-devel gtk+3-devel gperf pcre2-devel"
hostmakedepends="automake pkg-config intltool"
short_desc="Enhanced Virtual Terminal Emulator widget for use with GTK3"
maintainer=" <>"
homepage="https://github.com/thestinger/vte-ng"
license="LGPL-2.1"
distfiles="https://github.com/thestinger/vte-ng/archive/0.48.3.a.tar.gz"
checksum=f02377288d512d38a35439fedf0195ea3f671cf24fb60e43f098b20f1270b3f1

provides="vte3-${version}_${revision}"
replaces="vte3>=0"
conflicts="vte3>=0"

pre_configure() {
        NOCONFIGURE=1 ./autogen.sh
}

vte3-ng-devel_package() {
	depends="gnutls-devel gtk+3-devel pcre2-devel"
	short_desc+=" - development files"
	pkg_install() {
		vmove usr/include/vte-2.91/vte
		vmove usr/lib/pkgconfig
		vmove usr/lib/*.so*
                vmove usr/lib/*.a
		vmove usr/lib/girepository-1.0
        }
}

Add vte3-ng-devel to termite template makedepends:

# Template file for 'termite'
pkgname=termite
version=v12
revision=1
wrksrc="${pkgname}-${version}-${revision}"
build_style=gnu-makefile
hostmakedepends="base-devel gtk+3-devel pkg-config git-perl gnutls-devel glib-devel    ncurses"
makedepends="gcc make gtk-doc glib-devel vala-devel gobject-introspection pkg-config intltool gettext-devel gtk+3-devel pango-devel gperf pcre2-devel vte3-ng-devel"
depends="vte3-ng xdg-utils"
short_desc="A keyboard-centric VTE-based terminal, aimed at use within a window manager with tiling and/or tabbing support. "
maintainer="Vintodrimmer <vintodrimmer@protonmail.ch>"
license="GPL-2"
homepage="https://github.com/thestinger/termite"

do_fetch() {
git clone --recursive $homepage $wrksrc
cd $wrksrc
git checkout "${version}"
}

pre_configure() {
sed 's/PREFIX = \/usr\/local/PREFIX = \/usr/' -i Makefile
}

#14

Has anyone tried building it with musl? I get the following error:

termite.cc: In instantiation of 'void move_forward(VteTerminal*, select_info*, F) [with F = std::unary_negate<std::reference_wrapper<int(unsigned int)> >; VteTerminal = _VteTerminal]':
termite.cc:722:69:   required from here
termite.cc:711:37: error: 'vte_terminal_set_cursor_position' was not declared in this scope
termite.cc: In instantiation of 'void move_first(VteTerminal*, select_info*, F) [with F = std::unary_negate<std::reference_wrapper<int(unsigned int)> >; VteTerminal = _VteTerminal]':
termite.cc:859:86:   required from here
termite.cc:635:41: error: 'vte_terminal_set_cursor_position' was not declared in this scope
         vte_terminal_set_cursor_position(vte, iter - codepoints, cursor_row);
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make: *** [Makefile:36: termite] Error 1
=> ERROR: termite-v12_1: failed to run do_build() at line 9.