summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2021-08-09 03:17:04 +0100
committerSam James <sam@gentoo.org>2021-08-09 04:25:35 +0100
commit99fca65929712594962c5a6d671781311e2b76a9 (patch)
tree2b27bf1c63ca7d1820dbe141ddd375f519452f2c
parentapp-text/lesspipe: drop back to EAPI 7 (diff)
downloadgentoo-99fca65929712594962c5a6d671781311e2b76a9.tar.gz
gentoo-99fca65929712594962c5a6d671781311e2b76a9.tar.bz2
gentoo-99fca65929712594962c5a6d671781311e2b76a9.zip
app-text/lesspipe: make progress on running tests
* Tests still fail in 1.87 but let's run them in debug mode at least to get some more useful output on failures. * Applies an upstream patch for the majority of issues * Drops one particularly fragile/unreliable test * Uses LC_ALL to fix remaining failures The test suite now passes when lesspipe is not installed, at least. Spent too much time on this for now to debug further, but this is an improvement. Bug: https://bugs.gentoo.org/734896 Signed-off-by: Sam James <sam@gentoo.org>
-rw-r--r--app-text/lesspipe/files/lesspipe-1.87-fix-tests.patch76
-rw-r--r--app-text/lesspipe/lesspipe-1.87.ebuild26
2 files changed, 98 insertions, 4 deletions
diff --git a/app-text/lesspipe/files/lesspipe-1.87-fix-tests.patch b/app-text/lesspipe/files/lesspipe-1.87-fix-tests.patch
new file mode 100644
index 000000000000..c52e4c0957ef
--- /dev/null
+++ b/app-text/lesspipe/files/lesspipe-1.87-fix-tests.patch
@@ -0,0 +1,76 @@
+https://github.com/wofr06/lesspipe/commit/428062937e99f5a5da5c5f94fecba5b13557d973.patch
+
+Dropped ChangeLog + README hunks, but not weeded out the tiny MP4 change.
+
+From 428062937e99f5a5da5c5f94fecba5b13557d973 Mon Sep 17 00:00:00 2001
+From: wf <wp.friebelgmail.com>
+Date: Sun, 8 Aug 2021 21:26:17 +0200
+Subject: [PATCH] make all tests in the test suite work
+
+---
+ lesspipe.sh | 6 +++---
+ lesspipe.sh.in | 6 +++---
+ 4 files changed, 9 insertions(+), 6 deletions(-)
+
+diff --git a/lesspipe.sh b/lesspipe.sh
+index 0bf3cb9..22c10b2 100755
+--- a/lesspipe.sh
++++ b/lesspipe.sh
+@@ -54,7 +54,7 @@ filecmd() {
+ TMPDIR=${TMPDIR:-/tmp}
+ sep=: # file name separator
+ altsep== # alternate separator character
+-if [[ -e "$1" && "$1" = *$sep* || "$1" = *$sep*$altsep* ]]; then
++if [[ -e "$1" && "$1" = *$sep* ]]; then
+ sep=$altsep
+ xxx="${1%=}"
+ set "$xxx"
+@@ -773,7 +773,7 @@ isfinal() {
+ elif [[ "$PARSEHTML" = yes && "$1" = *HTML$NOL_A_P* ]]; then
+ msg "append $sep to filename to view the HTML source"
+ parsehtml "$2"
+- elif [[ "$1" = *pdf* ]] && cmd_exist pdftotext; then
++ elif [[ "$1" = *pdf* || "$1" = *PDF* ]] && cmd_exist pdftotext; then
+ if [[ "$PARSEHTML" = yes ]]; then
+ msg "append $sep to filename to view the PDF source"
+ istemp "pdftotext -htmlmeta -nopgbrk -q --" "$2" - | parsehtml -
+@@ -952,7 +952,7 @@ isfinal() {
+ elif [[ "$1" = *mp3* ]] && cmd_exist id3v2; then
+ msg "append $sep to filename to view the raw data"
+ istemp "id3v2 --list" "$2"
+- elif [[ "$1" = *image* || "$1" = *mp3* || "$1" = *audio* || "$1" = *video* ]] && cmd_exist mediainfo; then
++ elif [[ "$1" = *image* || "$1" = *mp3* || "$1" = *MP4* || "$1" = *audio* || "$1" = *video* ]] && cmd_exist mediainfo; then
+ msg "append $sep to filename to view the raw data"
+ mediainfo --Full "$2"
+ elif [[ "$1" = *image* || "$1" = *mp3* || "$1" = *audio* || "$1" = *video* ]] && cmd_exist exiftool; then
+diff --git a/lesspipe.sh.in b/lesspipe.sh.in
+index 8819dad..a099a84 100755
+--- a/lesspipe.sh.in
++++ b/lesspipe.sh.in
+@@ -56,7 +56,7 @@ TMPDIR=${TMPDIR:-/tmp}
+ sep=: # file name separator
+ altsep== # alternate separator character
+ # if the separator is part of the file name then altsep is used
+-if [[ -e "$1" && "$1" = *$sep* || "$1" = *$sep*$altsep* ]]; then
++if [[ -e "$1" && "$1" = *$sep* ]]; then
+ sep=$altsep
+ xxx="${1%=}"
+ set "$xxx"
+@@ -942,7 +942,7 @@ isfinal() {
+ msg "append $sep to filename to view the HTML source"
+ parsehtml "$2"
+ #ifdef pdftotext
+- elif [[ "$1" = *pdf* ]] && cmd_exist pdftotext; then
++ elif [[ "$1" = *pdf* || "$1" = *PDF* ]] && cmd_exist pdftotext; then
+ if [[ "$PARSEHTML" = yes ]]; then
+ msg "append $sep to filename to view the PDF source"
+ istemp "pdftotext -htmlmeta -nopgbrk -q --" "$2" - | parsehtml -
+@@ -1202,7 +1202,7 @@ isfinal() {
+ mp3info "$2"
+ #endif
+ #ifdef mediainfo
+- elif [[ "$1" = *image* || "$1" = *mp3* || "$1" = *audio* || "$1" = *video* ]] && cmd_exist mediainfo; then
++ elif [[ "$1" = *image* || "$1" = *mp3* || "$1" = *MP4* || "$1" = *audio* || "$1" = *video* ]] && cmd_exist mediainfo; then
+ msg "append $sep to filename to view the raw data"
+ mediainfo --Full "$2"
+ #ifdef exiftool
diff --git a/app-text/lesspipe/lesspipe-1.87.ebuild b/app-text/lesspipe/lesspipe-1.87.ebuild
index 3c79bc7fd3c0..2189709e0533 100644
--- a/app-text/lesspipe/lesspipe-1.87.ebuild
+++ b/app-text/lesspipe/lesspipe-1.87.ebuild
@@ -3,34 +3,52 @@
EAPI=7
-DESCRIPTION="a preprocessor for less"
+DESCRIPTION="A preprocessor for less"
HOMEPAGE="https://github.com/wofr06/lesspipe"
SRC_URI="https://github.com/wofr06/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE=""
# Tests are broken in 1.84, 1.85.
+# Still fragile in 1.87. Passes when lesspipe is not installed.
# Please check again on bumps!
# bug #734896
-RESTRICT="test"
DEPEND="dev-lang/perl"
RDEPEND="${DEPEND}
!<sys-apps/less-483-r1"
+PATCHES=(
+ "${FILESDIR}"/${P}-fix-tests.patch
+)
+
+src_prepare() {
+ default
+
+ # Drop a failing test. Not ideal, however:
+ # The test suite for this package is pretty fragile; it's more valuable
+ # to have _something_ failing/passing overall, than relying on a single
+ # test which seems to fail due to an unpredictable external command.
+ sed -i -e '/#needs pstotext ps2ascii/d' TESTCMDS || die
+}
+
src_configure() {
# Not an autoconf script.
./configure --fixed || die
}
src_compile() {
- # Nothing to build.
+ # Nothing to build (avoids the "all" target)
:
}
+src_test() {
+ # LC_ALL=C manages to fix one test failure
+ LC_ALL=C ./test.pl -d || die "Tests failed!"
+}
+
src_install() {
emake PREFIX="${EPREFIX}/usr" DESTDIR="${D}" install
einstalldocs