From: Tim Harder Date: Sun, 4 Jan 2015 18:24:06 +0000 (+0000) Subject: Remove unused eclass. X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=d08e0f9768cddd2718e1aab50e70f8c294f43121;p=gentoo.git Remove unused eclass. --- diff --git a/eclass/ChangeLog b/eclass/ChangeLog index 2136737c566b..6b7dbf0a5e81 100644 --- a/eclass/ChangeLog +++ b/eclass/ChangeLog @@ -1,6 +1,9 @@ # ChangeLog for eclass directory # Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1496 2015/01/03 14:50:34 mgorny Exp $ +# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1497 2015/01/04 18:24:06 radhermit Exp $ + + 04 Jan 2015; Tim Harder -vim.eclass: + Remove unused eclass. 03 Jan 2015; Michał Górny waf-utils.eclass: Warn about unset EPYTHON. diff --git a/eclass/vim.eclass b/eclass/vim.eclass deleted file mode 100644 index 77451d0b6e21..000000000000 --- a/eclass/vim.eclass +++ /dev/null @@ -1,764 +0,0 @@ -# Copyright 1999-2013 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/eclass/vim.eclass,v 1.220 2013/06/11 09:25:45 radhermit Exp $ - -# Authors: -# Jim Ramsay -# Ryan Phillips -# Seemant Kulleen -# Aron Griffis -# Ciaran McCreesh -# Mike Kelly - -# This eclass handles vim, gvim and vim-core. - -# gvim's GUI preference order is as follows: -# aqua CARBON (not tested) -# -aqua gtk gnome GNOME2 -# -aqua gtk -gnome GTK2 -# -aqua -gtk motif MOTIF -# -aqua -gtk -motif neXt NEXTAW -# -aqua -gtk -motif -neXt ATHENA - -# Check for EAPI functions we need: -case "${EAPI:-0}" in - 0|1) - die "vim.eclass no longer supports EAPI 0 or 1" - ;; - 2|3) - ;; - 5) - HAS_PYTHON_R1=1 - ;; - *) - die "Unknown EAPI ${EAPI}" - ;; -esac - -if [[ ${PN} != "vim-core" ]] ; then - if [[ ${HAS_PYTHON_R1} ]]; then - PYTHON_REQ_USE=threads - inherit python-single-r1 - else - # vim supports python-2 only - PYTHON_DEPEND="python? 2" - PYTHON_USE_WITH_OPT="python" - PYTHON_USE_WITH="threads" - inherit python - fi -fi - -inherit eutils vim-doc flag-o-matic versionator fdo-mime bash-completion-r1 prefix - -if [[ ${PV} == 9999* ]] ; then - inherit mercurial - EHG_REPO_URI="https://vim.googlecode.com/hg/" - EHG_PROJECT="vim" -fi - -HOMEPAGE="http://www.vim.org/" -SLOT="0" -LICENSE="vim" - -IUSE="nls acl" - -EXPORT_FUNCTIONS pkg_setup src_prepare src_compile src_configure \ - src_install src_test pkg_postinst pkg_postrm - -DEPEND="${DEPEND} - >=app-admin/eselect-vi-1.1 - sys-apps/gawk - >=sys-apps/sed-4 - sys-devel/autoconf - >=sys-libs/ncurses-5.2-r2 - nls? ( virtual/libintl )" -RDEPEND="${RDEPEND} - >=app-admin/eselect-vi-1.1 - >=sys-libs/ncurses-5.2-r2 - nls? ( virtual/libintl )" - -if [[ ${PN} == "vim-core" ]] ; then - IUSE="${IUSE} livecd" - PDEPEND="!livecd? ( app-vim/gentoo-syntax )" -else - IUSE="${IUSE} cscope debug gpm perl python ruby" - - if [[ ${HAS_PYTHON_R1} ]]; then - DEPEND="${DEPEND} - python? ( ${PYTHON_DEPS} )" - RDEPEND="${RDEPEND} - python? ( ${PYTHON_DEPS} )" - REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" - fi - - DEPEND="${DEPEND} - cscope? ( dev-util/cscope ) - gpm? ( >=sys-libs/gpm-1.19.3 ) - perl? ( dev-lang/perl ) - acl? ( kernel_linux? ( sys-apps/acl ) ) - ruby? ( || ( dev-lang/ruby:1.9 dev-lang/ruby:1.8 ) )" - RDEPEND="${RDEPEND} - cscope? ( dev-util/cscope ) - gpm? ( >=sys-libs/gpm-1.19.3 ) - perl? ( dev-lang/perl ) - acl? ( kernel_linux? ( sys-apps/acl ) ) - ruby? ( || ( dev-lang/ruby:1.9 dev-lang/ruby:1.8 ) ) - !"/dev/stderr"} - patchnum = $3 - printf "%s:", patchnum >"/dev/stderr" - } - $1=="***" && $(NF)!="****" { - # First line of a patch; suppress printing - firstlines = $0 - next - } - $1=="---" && $(NF)!="----" { - # Second line of a patch; try to open the file to see - # if it exists. - thisfile = $2 - if (!seen[thisfile] && (getline tryme < thisfile) == -1) { - # Check if it will be created - firstlines = firstlines "\n" $0 - getline - firstlines = firstlines "\n" $0 - getline - if ($0 != "*** 0 ****") { - # Non-existent and not created, stop printing - printing = 0 - printf " (%s)", thisfile >"/dev/stderr" - next - } - } - # Close the file to avoid leakage, bug 205037 - close(thisfile) - # Print the previous lines and start printing - print firstlines - printing = 1 - printf " %s", thisfile >"/dev/stderr" - # Remember that we have seen this file - seen[thisfile] = 1 - } - printing { print } - END { if (patchnum) {printf "\n" >"/dev/stderr"} } - ' > ${p} || die - - # For reasons yet unknown, epatch fails to apply this cleanly - ebegin "Applying filtered vim patches" - TMPDIR=${T} patch -f -s -p0 < ${p} - eend 0 -} - -vim_pkg_setup() { - # people with broken alphabets run into trouble. bug 82186. - unset LANG LC_ALL - export LC_COLLATE="C" - - # Gnome sandbox silliness. bug #114475. - mkdir -p "${T}/home" - export HOME="${T}/home" - - if [[ ${PN} != "vim-core" ]] && use python; then - if [[ ${HAS_PYTHON_R1} ]]; then - python-single-r1_pkg_setup - else - # vim supports python-2 only - python_set_active_version 2 - # python.eclass only defines python_pkg_setup for EAPIs that support - # USE dependencies - python_pkg_setup - fi - fi -} - -vim_src_prepare() { - has "${EAPI:-0}" 0 1 2 && ! use prefix && EPREFIX= - if [[ ${PV} != 9999* ]] ; then - # Apply any patches available from vim.org for this version - if [[ $VIM_ORG_PATCHES == *.patch.bz2 ]]; then - einfo "Applying monolithic patch ${VIM_ORG_PATCHES}" - epatch "${WORKDIR}/${VIM_ORG_PATCHES%.bz2}" - else - apply_vim_patches - fi - fi - - # Another set of patches borrowed from src rpm to fix syntax errors etc. - cd "${S}" || die "cd ${S} failed" - if [[ -d "${WORKDIR}"/gentoo/patches-all/ ]]; then - EPATCH_SUFFIX="gz" EPATCH_FORCE="yes" \ - epatch "${WORKDIR}"/gentoo/patches-all/ - elif [[ ${PN} == "vim-core" ]] && [[ -d "${WORKDIR}"/gentoo/patches-core/ ]]; then - # Patches for vim-core only (runtime/*) - EPATCH_SUFFIX="patch" EPATCH_FORCE="yes" \ - epatch "${WORKDIR}"/gentoo/patches-core/ - fi - - # Fixup a script to use awk instead of nawk - sed -i '1s|.*|#!'"${EPREFIX}"'/usr/bin/awk -f|' "${S}"/runtime/tools/mve.awk \ - || die "mve.awk sed failed" - - # Patch to build with ruby-1.8.0_pre5 and following - sed -i 's/defout/stdout/g' "${S}"/src/if_ruby.c - - # Read vimrc and gvimrc from /etc/vim - echo '#define SYS_VIMRC_FILE "'${EPREFIX}'/etc/vim/vimrc"' >> "${S}"/src/feature.h - echo '#define SYS_GVIMRC_FILE "'${EPREFIX}'/etc/vim/gvimrc"' >> "${S}"/src/feature.h - - # Use exuberant ctags which installs as /usr/bin/exuberant-ctags. - # Hopefully this pattern won't break for a while at least. - # This fixes bug 29398 (27 Sep 2003 agriffis) - sed -i 's/\> "$c" ; done - - # conditionally make the manpager.sh script - if [[ ${PN} == vim ]] && use vim-pager ; then - cat < "${S}"/runtime/macros/manpager.sh -#!/bin/sh -sed -e 's/\x1B\[[[:digit:]]\+m//g' | col -b | \\ - vim \\ - -c 'let no_plugin_maps = 1' \\ - -c 'set nolist nomod ft=man' \\ - -c 'let g:showmarks_enable=0' \\ - -c 'runtime! macros/less.vim' - -END - fi - - # Try to avoid sandbox problems. Bug #114475. - if [[ -d "${S}"/src/po ]] ; then - sed -i -e \ - '/-S check.vim/s,..VIM.,ln -s $(VIM) testvim \; ./testvim -X,' \ - "${S}"/src/po/Makefile - fi - - if version_is_at_least 7.3.122; then - cp "${S}"/src/config.mk.dist "${S}"/src/auto/config.mk - fi - - # Bug #378107 - Build properly with >=perl-core/ExtUtils-ParseXS-3.20.0 - if version_is_at_least 7.3; then - sed -i "s:\\\$(PERLLIB)/ExtUtils/xsubpp:${EPREFIX}/usr/bin/xsubpp:" \ - "${S}"/src/Makefile || die 'sed for ExtUtils-ParseXS failed' - fi -} - -vim_src_configure() { - local myconf - - # Fix bug 37354: Disallow -funroll-all-loops on amd64 - # Bug 57859 suggests that we want to do this for all archs - filter-flags -funroll-all-loops - - # Fix bug 76331: -O3 causes problems, use -O2 instead. We'll do this for - # everyone since previous flag filtering bugs have turned out to affect - # multiple archs... - replace-flags -O3 -O2 - - # Fix bug 18245: Prevent "make" from the following chain: - # (1) Notice configure.in is newer than auto/configure - # (2) Rebuild auto/configure - # (3) Notice auto/configure is newer than auto/config.mk - # (4) Run ./configure (with wrong args) to remake auto/config.mk - ebegin "Creating configure script" - sed -i 's/ auto.config.mk:/:/' src/Makefile || die "Makefile sed failed" - rm -f src/auto/configure - # autoconf-2.13 needed for this package -- bug 35319 - # except it seems we actually need 2.5 now -- bug 53777 - WANT_AUTOCONF=2.5 \ - emake -j1 -C src autoconf || die "make autoconf failed" - eend $? - - # This should fix a sandbox violation (see bug 24447). The hvc - # things are for ppc64, see bug 86433. - for file in /dev/pty/s* /dev/console /dev/hvc/* /dev/hvc* ; do - [[ -e ${file} ]] && addwrite $file - done - - if [[ ${PN} == "vim-core" ]] || - ( [[ ${PN} == vim ]] && use minimal ); then - myconf="--with-features=tiny \ - --enable-gui=no \ - --without-x \ - --disable-darwin \ - --disable-perlinterp \ - --disable-pythoninterp \ - --disable-rubyinterp \ - --disable-gpm" - - else - use debug && append-flags "-DDEBUG" - - myconf="--with-features=huge \ - --enable-multibyte" - myconf="${myconf} $(use_enable cscope)" - myconf="${myconf} $(use_enable gpm)" - myconf="${myconf} $(use_enable perl perlinterp)" - if [[ ${HAS_PYTHON_R1} ]]; then - if use python; then - if [[ ${EPYTHON} == python3* ]]; then - myconf="${myconf} --enable-python3interp" - export vi_cv_path_python3="${PYTHON}" - else - myconf="${myconf} --enable-pythoninterp" - export vi_cv_path_python="${PYTHON}" - fi - else - myconf="${myconf} --disable-pythoninterp --disable-python3interp" - fi - else - myconf="${myconf} $(use_enable python pythoninterp)" - fi - myconf="${myconf} $(use_enable ruby rubyinterp)" - # tclinterp is broken; when you --enable-tclinterp flag, then - # the following command never returns: - # VIMINIT='let OS=system("uname -s")' vim - # mzscheme support is currently broken. bug #91970 - #myconf="${myconf} $(use_enable mzscheme mzschemeinterp)" - if [[ ${PN} == gvim ]] ; then - myconf="${myconf} $(use_enable netbeans)" - fi - - # --with-features=huge forces on cscope even if we --disable it. We need - # to sed this out to avoid screwiness. (1 Sep 2004 ciaranm) - if ! use cscope ; then - sed -i -e '/# define FEAT_CSCOPE/d' src/feature.h || \ - die "couldn't disable cscope" - fi - - if [[ ${PN} == vim ]] ; then - # don't test USE=X here ... see bug #19115 - # but need to provide a way to link against X ... see bug #20093 - myconf="${myconf} --enable-gui=no --disable-darwin $(use_with X x)" - - elif [[ ${PN} == gvim ]] ; then - myconf="${myconf} --with-vim-name=gvim --with-x" - - echo ; echo - if use aqua ; then - einfo "Building gvim with the Carbon GUI" - myconf="${myconf} --enable-darwin --enable-gui=carbon" - elif use gtk ; then - myconf="${myconf} --enable-gtk2-check" - if use gnome ; then - einfo "Building gvim with the Gnome 2 GUI" - myconf="${myconf} --enable-gui=gnome2" - else - einfo "Building gvim with the gtk+-2 GUI" - myconf="${myconf} --enable-gui=gtk2" - fi - elif use motif ; then - einfo "Building gvim with the MOTIF GUI" - myconf="${myconf} --enable-gui=motif" - elif use neXt ; then - einfo "Building gvim with the neXtaw GUI" - myconf="${myconf} --enable-gui=nextaw" - else - einfo "Building gvim with the Athena GUI" - myconf="${myconf} --enable-gui=athena" - fi - echo ; echo - - else - die "vim.eclass doesn't understand PN=${PN}" - fi - fi - - if [[ ${PN} == vim ]] && use minimal ; then - myconf="${myconf} --disable-nls --disable-multibyte --disable-acl" - else - myconf="${myconf} $(use_enable nls) $(use_enable acl)" - fi - - myconf="${myconf} --disable-selinux" - - # Let Portage do the stripping. Some people like that. - export ac_cv_prog_STRIP="$(type -P true ) faking strip" - - # Keep Gentoo Prefix env contained within the EPREFIX - use prefix && myconf="${myconf} --without-local-dir" - - if [[ ${PN} == "*vim" ]] ; then - if [[ ${CHOST} == *-interix* ]]; then - # avoid finding of this function, to avoid having to patch either - # configure or the source, which would be much more hackish. - # after all vim does it right, only interix is badly broken (again) - export ac_cv_func_sigaction=no - fi - fi - - myconf="${myconf} --with-modified-by=Gentoo-${PVR}" - econf ${myconf} || die "vim configure failed" -} - -vim_src_compile() { - # The following allows emake to be used - emake -j1 -C src auto/osdef.h objects || die "make failed" - - if [[ ${PN} == "vim-core" ]] ; then - emake tools || die "emake tools failed" - rm -f src/vim - else - if ! emake ; then - eerror "If the above messages seem to be talking about perl" - eerror "and undefined references, please try re-emerging both" - eerror "perl and libperl with the same USE flags. For more" - eerror "information, see:" - eerror " https://bugs.gentoo.org/show_bug.cgi?id=18129" - die "emake failed" - fi - fi -} - -vim_src_install() { - has "${EAPI:-0}" 0 1 2 && use !prefix && EPREFIX= - has "${EAPI:-0}" 0 1 2 && use !prefix && ED="${D}" - local vimfiles=/usr/share/vim/vim${VIM_VERSION/.} - - if [[ ${PN} == "vim-core" ]] ; then - dodir /usr/{bin,share/{man/man1,vim}} - cd src || die "cd src failed" - make \ - installruntime \ - installmanlinks \ - installmacros \ - installtutor \ - installtutorbin \ - installtools \ - install-languages \ - install-icons \ - DESTDIR=${D} \ - BINDIR="${EPREFIX}"/usr/bin \ - MANDIR="${EPREFIX}"/usr/share/man \ - DATADIR="${EPREFIX}"/usr/share \ - || die "install failed" - - keepdir ${vimfiles}/keymap - - # default vimrc is installed by vim-core since it applies to - # both vim and gvim - insinto /etc/vim/ - newins "${FILESDIR}"/vimrc${VIMRC_FILE_SUFFIX} vimrc - eprefixify "${ED}"/etc/vim/vimrc - - if use livecd ; then - # To save space, install only a subset of the files if we're on a - # livecd. bug 65144. - einfo "Removing some files for a smaller livecd install ..." - - eshopts_push -s extglob - - rm -fr "${ED}${vimfiles}"/{compiler,doc,ftplugin,indent} - rm -fr "${ED}${vimfiles}"/{macros,print,tools,tutor} - rm "${ED}"/usr/bin/vimtutor - - local keep_colors="default" - ignore=$(rm -fr "${ED}${vimfiles}"/colors/!(${keep_colors}).vim ) - - local keep_syntax="conf|crontab|fstab|inittab|resolv|sshdconfig" - # tinkering with the next line might make bad things happen ... - keep_syntax="${keep_syntax}|syntax|nosyntax|synload" - ignore=$(rm -fr "${ED}${vimfiles}"/syntax/!(${keep_syntax}).vim ) - - eshopts_pop - fi - - # These files might have slight security issues, so we won't - # install them. See bug #77841. We don't mind if these don't - # exist. - rm "${ED}${vimfiles}"/tools/{vimspell.sh,tcltags} 2>/dev/null - - elif [[ ${PN} == gvim ]] ; then - dobin src/gvim - dosym gvim /usr/bin/gvimdiff - dosym gvim /usr/bin/evim - dosym gvim /usr/bin/eview - dosym gvim /usr/bin/gview - dosym gvim /usr/bin/rgvim - dosym gvim /usr/bin/rgview - - dodir /usr/share/man/man1 - echo ".so vim.1" > "${ED}"/usr/share/man/man1/gvim.1 - echo ".so vim.1" > "${ED}"/usr/share/man/man1/gview.1 - echo ".so vimdiff.1" > "${ED}"/usr/share/man/man1/gvimdiff.1 - - insinto /etc/vim - newins "${FILESDIR}"/gvimrc${GVIMRC_FILE_SUFFIX} gvimrc - eprefixify "${ED}"/etc/vim/gvimrc - - insinto /usr/share/applications - newins "${FILESDIR}"/gvim.desktop${GVIM_DESKTOP_SUFFIX} gvim.desktop - insinto /usr/share/pixmaps - doins "${FILESDIR}"/gvim.xpm - - else # app-editor/vim - # Note: Do not install symlinks for 'vi', 'ex', or 'view', as these are - # managed by eselect-vi - dobin src/vim - dosym vim /usr/bin/vimdiff - dosym vim /usr/bin/rvim - dosym vim /usr/bin/rview - if use vim-pager ; then - dosym ${vimfiles}/macros/less.sh /usr/bin/vimpager - dosym ${vimfiles}/macros/manpager.sh /usr/bin/vimmanpager - insinto ${vimfiles}/macros - doins runtime/macros/manpager.sh - fperms a+x ${vimfiles}/macros/manpager.sh - fi - fi - - # bash completion script, bug #79018. - if [[ ${PN} == "vim-core" ]] ; then - newbashcomp "${FILESDIR}"/xxd-completion xxd - else - newbashcomp "${FILESDIR}"/${PN}-completion ${PN} - fi - # We shouldn't be installing the ex or view man page symlinks, as they - # are managed by eselect-vi - rm -f "${ED}"/usr/share/man/man1/{ex,view}.1 -} - -# Make convenience symlinks, hopefully without stepping on toes. Some -# of these links are "owned" by the vim ebuild when it is installed, -# but they might be good for gvim as well (see bug 45828) -update_vim_symlinks() { - has "${EAPI:-0}" 0 1 2 && use !prefix && EROOT="${ROOT}" - local f syms - syms="vimdiff rvim rview" - einfo "Calling eselect vi update..." - # Call this with --if-unset to respect user's choice (bug 187449) - eselect vi update --if-unset - - # Make or remove convenience symlink, vim -> gvim - if [[ -f "${EROOT}"/usr/bin/gvim ]]; then - ln -s gvim "${EROOT}"/usr/bin/vim 2>/dev/null - elif [[ -L "${EROOT}"/usr/bin/vim && ! -f "${EROOT}"/usr/bin/vim ]]; then - rm "${EROOT}"/usr/bin/vim - fi - - # Make or remove convenience symlinks to vim - if [[ -f "${EROOT}"/usr/bin/vim ]]; then - for f in ${syms}; do - ln -s vim "${EROOT}"/usr/bin/${f} 2>/dev/null - done - else - for f in ${syms}; do - if [[ -L "${EROOT}"/usr/bin/${f} && ! -f "${EROOT}"/usr/bin/${f} ]]; then - rm -f "${EROOT}"/usr/bin/${f} - fi - done - fi - - # This will still break if you merge then remove the vi package, - # but there's only so much you can do, eh? Unfortunately we don't - # have triggers like are done in rpm-land. -} - -vim_pkg_postinst() { - # Update documentation tags (from vim-doc.eclass) - update_vim_helptags - - # Update fdo mime stuff, bug #78394 - if [[ ${PN} == gvim ]] ; then - fdo-mime_mime_database_update - fi - - if [[ ${PN} == vim ]] ; then - if use X; then - echo - elog "The 'X' USE flag enables vim <-> X communication, like" - elog "updating the xterm titlebar. It does not install a GUI." - fi - echo - elog "To install a GUI version of vim, use the app-editors/gvim" - elog "package." - fi - echo - elog "Vim 7 includes an integrated spell checker. You need to install" - elog "word list files before you can use it. There are ebuilds for" - elog "some of these named app-vim/vim-spell-*. If your language of" - elog "choice is not included, please consult vim-spell.eclass for" - elog "instructions on how to make a package." - echo - ewarn "Note that the English word lists are no longer installed by" - ewarn "default." - echo - - if [[ ${PN} != "vim-core" ]] ; then - echo - elog "To see what's new in this release, use :help version${VIM_VERSION/.*/}.txt" - fi - - # Make convenience symlinks - if [[ ${PN} != "vim-core" ]] ; then - # But only for vim/gvim, bug #252724 - update_vim_symlinks - fi -} - -vim_pkg_postrm() { - # Update documentation tags (from vim-doc.eclass) - update_vim_helptags - - # Make convenience symlinks - if [[ ${PN} != "vim-core" ]] ; then - # But only for vim/gvim, bug #252724 - update_vim_symlinks - fi - - # Update fdo mime stuff, bug #78394 - if [[ ${PN} == gvim ]] ; then - fdo-mime_mime_database_update - fi -} - -vim_src_test() { - - if [[ ${PN} == "vim-core" ]] ; then - einfo "No testing needs to be done for vim-core" - return - fi - - einfo " " - einfo "Starting vim tests. Several error messages will be shown " - einfo "whilst the tests run. This is normal behaviour and does not " - einfo "indicate a fault." - einfo " " - ewarn "If the tests fail, your terminal may be left in a strange " - ewarn "state. Usually, running 'reset' will fix this." - ewarn " " - echo - - # Don't let vim talk to X - unset DISPLAY - - if [[ ${PN} == gvim ]] ; then - # Make gvim not try to connect to X. See :help gui-x11-start - # in vim for how this evil trickery works. - ln -s "${S}"/src/gvim "${S}"/src/testvim - testprog="../testvim" - else - testprog="../vim" - fi - - # We've got to call make test from within testdir, since the Makefiles - # don't pass through our VIMPROG argument - cd "${S}"/src/testdir - - # Test 49 won't work inside a portage environment - einfo "Test 49 isn't sandbox-friendly, so it will be skipped." - sed -i -e 's~test49.out~~g' Makefile - - # We don't want to rebuild vim before running the tests - sed -i -e 's,: \$(VIMPROG),: ,' Makefile - - # Don't try to do the additional GUI test - make VIMPROG=${testprog} nongui \ - || die "At least one test failed" -} -