From 0afec3ccda540e7583a77ebefd23e51284b3b23a Mon Sep 17 00:00:00 2001 From: Michal Hlavinka Date: Mon, 27 Jan 2025 16:23:37 +0100 Subject: [PATCH 1/7] updated to 668 (#2342067) --- .gitignore | 1 + less-661-pipefix.patch | 20 -------------------- less.spec | 11 +++++------ sources | 2 +- 4 files changed, 7 insertions(+), 27 deletions(-) delete mode 100644 less-661-pipefix.patch diff --git a/.gitignore b/.gitignore index d98e5ac..6fe5e3c 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ /less-633.tar.gz /less-643.tar.gz /less-661.tar.gz +/less-668.tar.gz diff --git a/less-661-pipefix.patch b/less-661-pipefix.patch deleted file mode 100644 index e82d2e1..0000000 --- a/less-661-pipefix.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff -up less-661/os.c.pipefix less-661/os.c ---- less-661/os.c.pipefix 2024-06-29 19:16:08.000000000 +0200 -+++ less-661/os.c 2024-08-10 08:06:14.762224766 +0200 -@@ -80,6 +80,7 @@ extern int exit_F_on_close; - extern int follow_mode; - extern int scanning_eof; - extern char intr_char; -+extern int is_tty; - #if !MSDOS_COMPILER - extern int tty; - #endif -@@ -237,7 +238,7 @@ start: - } - #endif - #if USE_POLL -- if (fd != tty && use_poll) -+ if (is_tty && fd != tty && use_poll) - { - int ret = check_poll(fd, tty); - if (ret != 0) diff --git a/less.spec b/less.spec index 7e39c87..8ada576 100644 --- a/less.spec +++ b/less.spec @@ -1,7 +1,7 @@ Summary: A text file browser similar to more, but better Name: less -Version: 661 -Release: 2%{?dist} +Version: 668 +Release: 1%{?dist} License: GPL-3.0-only and BSD-2-Clause Source0: https://www.greenwoodsoftware.com/less/%{name}-%{version}.tar.gz Source1: lesspipe.sh @@ -14,9 +14,6 @@ Patch8: less-458-lessecho-usage.patch Patch9: less-458-less-filters-man.patch Patch10: less-458-lesskey-usage.patch Patch11: less-458-old-bot-in-help.patch -# from upstream, for <=661, fixes regression in file-types sanity chack post v590 -# https://github.com/gwsw/less/commit/ed454a217da417dc052723ea70da8efde0f2e66c -Patch12: less-661-pipefix.patch Patch13: less-436-help.patch URL: https://www.greenwoodsoftware.com/less/ BuildRequires: ncurses-devel @@ -42,7 +39,6 @@ files, and you'll use it frequently. %patch -P 9 -p1 -b .less-filters-man %patch -P 10 -p1 -b .lesskey-usage %patch -P 11 -p1 -b .old-bot -%patch -P 12 -p1 -b .pipefix %patch -P 13 -p1 -b .help @@ -67,6 +63,9 @@ install -p -m 644 %{SOURCE3} $RPM_BUILD_ROOT/etc/profile.d %{_mandir}/man1/* %changelog +* Fri Oct 18 2024 Michal Hlavinka - 668-1 +- updated to 668 (#2342067) + * Mon Aug 12 2024 Michal Hlavinka - 661-2 - fix post-v590 regression causing reading only part of pipe when stdin is null (upstream#558) diff --git a/sources b/sources index b958d5f..55219e6 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (less-661.tar.gz) = 49d81ff9e79d43ce0271490e3bffd590b4aed5fcb387bc8eb3128de99e5b5a5ede2e2818b546f6e3a140fa6261f1de3dfba1231f7ff7ef18502bb7030eaea1b5 +SHA512 (less-668.tar.gz) = 6527741a609849ec27b6ab35de46f2c5c2b2771391e3efe263207bee28915946f44331a42f832a7cb42231a19b135cbadc15ae02cd997b83a13cdfbc7213fc27 From bc38a316fce82d8798d83c6b2d54de9a34aae176 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 24 Jul 2025 19:14:12 +0000 Subject: [PATCH 2/7] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild --- less.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/less.spec b/less.spec index 1d24c43..82c9fc8 100644 --- a/less.spec +++ b/less.spec @@ -1,7 +1,7 @@ Summary: A text file browser similar to more, but better Name: less Version: 679 -Release: 1%{?dist} +Release: 2%{?dist} License: GPL-3.0-only and BSD-2-Clause Source0: https://www.greenwoodsoftware.com/less/%{name}-%{version}.tar.gz Source1: lesspipe.sh @@ -63,6 +63,9 @@ install -p -m 644 %{SOURCE3} $RPM_BUILD_ROOT/etc/profile.d %{_mandir}/man1/* %changelog +* Thu Jul 24 2025 Fedora Release Engineering - 679-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + * Mon Jun 23 2025 Michal Hlavinka - 679-1 - updated to 679 From ce4a4f56bc68737ba9d954ca027a835bc3cfed96 Mon Sep 17 00:00:00 2001 From: Michal Hlavinka Date: Tue, 2 Sep 2025 11:30:08 +0200 Subject: [PATCH 3/7] add man page for lesspipe.sh (rhbz#2376159) --- less.spec | 7 +++++- lesspipe.sh.1 | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 lesspipe.sh.1 diff --git a/less.spec b/less.spec index 82c9fc8..9e50a68 100644 --- a/less.spec +++ b/less.spec @@ -1,12 +1,13 @@ Summary: A text file browser similar to more, but better Name: less Version: 679 -Release: 2%{?dist} +Release: 4%{?dist} License: GPL-3.0-only and BSD-2-Clause Source0: https://www.greenwoodsoftware.com/less/%{name}-%{version}.tar.gz Source1: lesspipe.sh Source2: less.sh Source3: less.csh +Source4: lesspipe.sh.1 Patch4: less-394-time.patch Patch5: less-475-fsync.patch Patch6: less-436-manpage-add-old-bot-option.patch @@ -54,6 +55,7 @@ mkdir -p $RPM_BUILD_ROOT/etc/profile.d install -p %{SOURCE1} $RPM_BUILD_ROOT%{_bindir} install -p -m 644 %{SOURCE2} $RPM_BUILD_ROOT/etc/profile.d install -p -m 644 %{SOURCE3} $RPM_BUILD_ROOT/etc/profile.d +install -p -m 644 %{SOURCE4} $RPM_BUILD_ROOT/%{_mandir}/man1/lesspipe.sh.1 %files %doc README NEWS INSTALL @@ -63,6 +65,9 @@ install -p -m 644 %{SOURCE3} $RPM_BUILD_ROOT/etc/profile.d %{_mandir}/man1/* %changelog +* Tue Sep 02 2025 Michal Hlavinka - 679-4 +- add man page for lesspipe.sh (rhbz#2376159) + * Thu Jul 24 2025 Fedora Release Engineering - 679-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild diff --git a/lesspipe.sh.1 b/lesspipe.sh.1 new file mode 100644 index 0000000..b79e329 --- /dev/null +++ b/lesspipe.sh.1 @@ -0,0 +1,60 @@ +.TH LESSPIPE.SH "1" "August 2025" "lesspipe.sh" "User Commands" +.SH NAME +lesspipe.sh \- a preprocessor for less +.SH SYNOPSIS +.B lesspipe.sh +[\fIFILE\fR] +.SH DESCRIPTION +.PP +The purpose of \fBlesspipe.sh\fP is to enhance the output of \fBless\fP. +.PP +With this preprocessor filter \fBless\fP +will be able to display contents of compressed files. For files +containing archives and directories, a table of contents will be displayed. +These filters can be applied recursively. +.SH FILTER ACTIVATION +For \fBlesspipe.sh\fP to be used by \fBless\fP the environment variable +\fBLESSOPEN\fP must be set properly. For bash like shells the command is: + +.EX +.I LESSOPEN="||lesspipe.sh %s"; export LESSOPEN +.EE + +Use absolute path, if \fBlesspipe.sh\fP is not in the search path. +.PP +Having set the environment variable as described above, \fBless\fP +will then display textual information for a wide range of file formats. +.SH USER DEFINED FILTERING +The \fBlesspipe.sh\fP preprocessing can be replaced or enhanced by a user defined +filter specified in \fB~/.lessfilter\fP This file should have an execute bit +set and accept only one parameter, which represents a filename. If the +user defined filter processes the file, zero should be returned. Otherwise +\fBlesspipe.sh\fP will try to handle the file. +.PP +This can be used not only to add filtering for new formats, but also to block +filtering for certain files types or files. An example ~/.lessfilter + +.RS +.EX +#!/usr/bin/sh + +if [[ "$1" = *.raw ]]; then + # do not process 'raw' files + cat "$1" + exit 0 +elif [[ "$1" = *.txt ]]; then + if [ $(wc -l <"$1") = 1 ]; then + # decorate oneliners with cowsay + cowsay <"$1" + exit 0; + fi +fi +# default, not handled by .lessfilter +exit 1 +.EE +.RE +.SH AUTHOR +Michal Hlavinka +.SH "SEE ALSO" +less(1) + From af51b9c7dd46e13b62400626d4a9e4682aef9bf0 Mon Sep 17 00:00:00 2001 From: Michal Hlavinka Date: Wed, 22 Oct 2025 11:09:28 +0200 Subject: [PATCH 4/7] updated to 685 (#2404089) --- .gitignore | 1 + less-458-less-filters-man.patch | 2 +- less.spec | 7 +++++-- sources | 2 +- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 0a5a605..911cf13 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,4 @@ /less-668.tar.gz /less-678.tar.gz /less-679.tar.gz +/less-685.tar.gz diff --git a/less-458-less-filters-man.patch b/less-458-less-filters-man.patch index 7de4415..90e7207 100644 --- a/less-458-less-filters-man.patch +++ b/less-458-less-filters-man.patch @@ -20,5 +20,5 @@ diff -up less-466/less.nro.filters-man less-466/less.nro +~/.lessfilter tries to handle the file. + .SH "NATIONAL CHARACTER SETS" - There are three types of characters in the input file: + There are five types of characters in the input file: .IP "normal characters" diff --git a/less.spec b/less.spec index 9e50a68..84d8ba6 100644 --- a/less.spec +++ b/less.spec @@ -1,7 +1,7 @@ Summary: A text file browser similar to more, but better Name: less -Version: 679 -Release: 4%{?dist} +Version: 685 +Release: 1%{?dist} License: GPL-3.0-only and BSD-2-Clause Source0: https://www.greenwoodsoftware.com/less/%{name}-%{version}.tar.gz Source1: lesspipe.sh @@ -65,6 +65,9 @@ install -p -m 644 %{SOURCE4} $RPM_BUILD_ROOT/%{_mandir}/man1/lesspipe.sh.1 %{_mandir}/man1/* %changelog +* Wed Oct 22 2025 Michal Hlavinka - 685-1 +- updated to 685 (#2404089) + * Tue Sep 02 2025 Michal Hlavinka - 679-4 - add man page for lesspipe.sh (rhbz#2376159) diff --git a/sources b/sources index a8e25fa..fd21d4b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (less-679.tar.gz) = f04e37dc4b2839b416a195e107d21328800e75080054788002c109b3b113a6a898b953391912e7538fb9843ef530b1991efc76dbf6fb5960e5530f3ff83421f6 +SHA512 (less-685.tar.gz) = aff745f1816e0f996fbdbc33ecae0726cf0d842efc227937ff8c32e734c8b5be4c611ffbb27e5e038b4d95280c95ca60c53af1a47cf419cb06e5fab543c231f3 From 7063e7b7725595fb7269d8d477ac246ac4d0453b Mon Sep 17 00:00:00 2001 From: Michal Hlavinka Date: Wed, 12 Nov 2025 12:10:33 +0100 Subject: [PATCH 5/7] use more feature rich lesspipe filter (#2308285) --- .gitignore | 1 + less.spec | 36 +++++++++++++++++++++++++++++++----- sources | 1 + 3 files changed, 33 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 911cf13..f6cddbb 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,4 @@ /less-678.tar.gz /less-679.tar.gz /less-685.tar.gz +/lesspipe-2.20.tar.gz diff --git a/less.spec b/less.spec index 84d8ba6..9f92f35 100644 --- a/less.spec +++ b/less.spec @@ -1,10 +1,11 @@ Summary: A text file browser similar to more, but better Name: less Version: 685 -Release: 1%{?dist} +Release: 4%{?dist} License: GPL-3.0-only and BSD-2-Clause Source0: https://www.greenwoodsoftware.com/less/%{name}-%{version}.tar.gz -Source1: lesspipe.sh +%global lesspipe_version 2.20 +Source1: https://github.com/wofr06/lesspipe/archive/refs/tags/v%{lesspipe_version}.tar.gz#/lesspipe-%{lesspipe_version}.tar.gz Source2: less.sh Source3: less.csh Source4: lesspipe.sh.1 @@ -20,6 +21,12 @@ URL: https://www.greenwoodsoftware.com/less/ BuildRequires: ncurses-devel BuildRequires: autoconf automake libtool BuildRequires: make +# for lesspipe make test +BuildRequires: perl-Archive-Tar +# for lesspipe +Recommends: unzip +Recommends: html2text +Recommends: 7zip %description The less utility is a text file browser that resembles more, but has @@ -32,7 +39,7 @@ You should install less because it is a basic utility for viewing text files, and you'll use it frequently. %prep -%setup -q +%setup -q -a 1 %patch -P 4 -p1 -b .time %patch -P 5 -p2 -b .fsync %patch -P 6 -p1 -b .manpage-add-old-bot-option @@ -49,13 +56,29 @@ autoreconf -fiv %configure %make_build CFLAGS="%{optflags} -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64" +pushd lesspipe-%{lesspipe_version} +#fix shebangs +sed -i "s|^#!/usr/bin/env bash|^#!/usr/bin/bash|" lesspipe.sh + +./configure --prefix=%{_prefix} +%make_build +popd + %install %make_install mkdir -p $RPM_BUILD_ROOT/etc/profile.d -install -p %{SOURCE1} $RPM_BUILD_ROOT%{_bindir} install -p -m 644 %{SOURCE2} $RPM_BUILD_ROOT/etc/profile.d install -p -m 644 %{SOURCE3} $RPM_BUILD_ROOT/etc/profile.d -install -p -m 644 %{SOURCE4} $RPM_BUILD_ROOT/%{_mandir}/man1/lesspipe.sh.1 + +pushd lesspipe-%{lesspipe_version} +%make_install +rm -f $RPM_BUILD_ROOT/usr/share/bash-completion/less_completion +popd + +%check +pushd lesspipe-%{lesspipe_version} +make test ||: +popd %files %doc README NEWS INSTALL @@ -65,6 +88,9 @@ install -p -m 644 %{SOURCE4} $RPM_BUILD_ROOT/%{_mandir}/man1/lesspipe.sh.1 %{_mandir}/man1/* %changelog +* Wed Nov 12 2025 Michal Hlavinka - 685-4 +- use more feature rich lesspipe filter (#2308285) + * Wed Oct 22 2025 Michal Hlavinka - 685-1 - updated to 685 (#2404089) diff --git a/sources b/sources index fd21d4b..703a9df 100644 --- a/sources +++ b/sources @@ -1 +1,2 @@ SHA512 (less-685.tar.gz) = aff745f1816e0f996fbdbc33ecae0726cf0d842efc227937ff8c32e734c8b5be4c611ffbb27e5e038b4d95280c95ca60c53af1a47cf419cb06e5fab543c231f3 +SHA512 (lesspipe-2.20.tar.gz) = bfeba1b921959e8cde8ce8bcc75765598cefd2cc705aa5b6417592fdbdb0c43bd3efb0d4379a0514f0da86806988ee95219539974c7af3319595d9b03aac550e From d54f2ef570e0a50af22448705bd006e5d762b015 Mon Sep 17 00:00:00 2001 From: Adam Williamson Date: Fri, 14 Nov 2025 08:21:06 -0800 Subject: [PATCH 6/7] Revert "use more feature rich lesspipe filter (#2308285)" This reverts commit 7063e7b7725595fb7269d8d477ac246ac4d0453b. It causes less to have a hard dependency on perl, which is not at all desirable and breaks all atomic desktop builds. See: https://bugzilla.redhat.com/show_bug.cgi?id=2308285#c3 --- .gitignore | 1 - less.spec | 36 ++++++++---------------------------- sources | 1 - 3 files changed, 8 insertions(+), 30 deletions(-) diff --git a/.gitignore b/.gitignore index f6cddbb..911cf13 100644 --- a/.gitignore +++ b/.gitignore @@ -13,4 +13,3 @@ /less-678.tar.gz /less-679.tar.gz /less-685.tar.gz -/lesspipe-2.20.tar.gz diff --git a/less.spec b/less.spec index 9f92f35..20e127b 100644 --- a/less.spec +++ b/less.spec @@ -1,11 +1,10 @@ Summary: A text file browser similar to more, but better Name: less Version: 685 -Release: 4%{?dist} +Release: 5%{?dist} License: GPL-3.0-only and BSD-2-Clause Source0: https://www.greenwoodsoftware.com/less/%{name}-%{version}.tar.gz -%global lesspipe_version 2.20 -Source1: https://github.com/wofr06/lesspipe/archive/refs/tags/v%{lesspipe_version}.tar.gz#/lesspipe-%{lesspipe_version}.tar.gz +Source1: lesspipe.sh Source2: less.sh Source3: less.csh Source4: lesspipe.sh.1 @@ -21,12 +20,6 @@ URL: https://www.greenwoodsoftware.com/less/ BuildRequires: ncurses-devel BuildRequires: autoconf automake libtool BuildRequires: make -# for lesspipe make test -BuildRequires: perl-Archive-Tar -# for lesspipe -Recommends: unzip -Recommends: html2text -Recommends: 7zip %description The less utility is a text file browser that resembles more, but has @@ -39,7 +32,7 @@ You should install less because it is a basic utility for viewing text files, and you'll use it frequently. %prep -%setup -q -a 1 +%setup -q %patch -P 4 -p1 -b .time %patch -P 5 -p2 -b .fsync %patch -P 6 -p1 -b .manpage-add-old-bot-option @@ -56,29 +49,13 @@ autoreconf -fiv %configure %make_build CFLAGS="%{optflags} -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64" -pushd lesspipe-%{lesspipe_version} -#fix shebangs -sed -i "s|^#!/usr/bin/env bash|^#!/usr/bin/bash|" lesspipe.sh - -./configure --prefix=%{_prefix} -%make_build -popd - %install %make_install mkdir -p $RPM_BUILD_ROOT/etc/profile.d +install -p %{SOURCE1} $RPM_BUILD_ROOT%{_bindir} install -p -m 644 %{SOURCE2} $RPM_BUILD_ROOT/etc/profile.d install -p -m 644 %{SOURCE3} $RPM_BUILD_ROOT/etc/profile.d - -pushd lesspipe-%{lesspipe_version} -%make_install -rm -f $RPM_BUILD_ROOT/usr/share/bash-completion/less_completion -popd - -%check -pushd lesspipe-%{lesspipe_version} -make test ||: -popd +install -p -m 644 %{SOURCE4} $RPM_BUILD_ROOT/%{_mandir}/man1/lesspipe.sh.1 %files %doc README NEWS INSTALL @@ -88,6 +65,9 @@ popd %{_mandir}/man1/* %changelog +* Fri Nov 14 2025 Adam Williamson - 685-5 +- Revert new lesspipe filter due to hard perl dependency + * Wed Nov 12 2025 Michal Hlavinka - 685-4 - use more feature rich lesspipe filter (#2308285) diff --git a/sources b/sources index 703a9df..fd21d4b 100644 --- a/sources +++ b/sources @@ -1,2 +1 @@ SHA512 (less-685.tar.gz) = aff745f1816e0f996fbdbc33ecae0726cf0d842efc227937ff8c32e734c8b5be4c611ffbb27e5e038b4d95280c95ca60c53af1a47cf419cb06e5fab543c231f3 -SHA512 (lesspipe-2.20.tar.gz) = bfeba1b921959e8cde8ce8bcc75765598cefd2cc705aa5b6417592fdbdb0c43bd3efb0d4379a0514f0da86806988ee95219539974c7af3319595d9b03aac550e From e113e6d59a455fef631b97baec4d0a9d6745e273 Mon Sep 17 00:00:00 2001 From: Michal Hlavinka Date: Mon, 24 Nov 2025 21:41:52 +0100 Subject: [PATCH 7/7] reintroduce use more feature rich lesspipe filter, but separate perl dependent colorizer into subpackage, credits Yaakov Selkowitz --- .gitignore | 1 + less.spec | 62 +++++++++++++++++++++--- lesspipe.sh | 132 -------------------------------------------------- lesspipe.sh.1 | 60 ----------------------- sources | 1 + 5 files changed, 57 insertions(+), 199 deletions(-) delete mode 100755 lesspipe.sh delete mode 100644 lesspipe.sh.1 diff --git a/.gitignore b/.gitignore index 911cf13..f6cddbb 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,4 @@ /less-678.tar.gz /less-679.tar.gz /less-685.tar.gz +/lesspipe-2.20.tar.gz diff --git a/less.spec b/less.spec index 20e127b..51d2494 100644 --- a/less.spec +++ b/less.spec @@ -1,13 +1,13 @@ Summary: A text file browser similar to more, but better Name: less Version: 685 -Release: 5%{?dist} +Release: 6%{?dist} License: GPL-3.0-only and BSD-2-Clause Source0: https://www.greenwoodsoftware.com/less/%{name}-%{version}.tar.gz -Source1: lesspipe.sh +%global lesspipe_version 2.20 +Source1: https://github.com/wofr06/lesspipe/archive/refs/tags/v%{lesspipe_version}.tar.gz#/lesspipe-%{lesspipe_version}.tar.gz Source2: less.sh Source3: less.csh -Source4: lesspipe.sh.1 Patch4: less-394-time.patch Patch5: less-475-fsync.patch Patch6: less-436-manpage-add-old-bot-option.patch @@ -20,6 +20,13 @@ URL: https://www.greenwoodsoftware.com/less/ BuildRequires: ncurses-devel BuildRequires: autoconf automake libtool BuildRequires: make +# for lesspipe make test +BuildRequires: perl-Archive-Tar +# for lesspipe +Recommends: (less-color = %{version}-%{release} if perl-interpreter) +Recommends: unzip +Recommends: html2text +Recommends: 7zip %description The less utility is a text file browser that resembles more, but has @@ -31,8 +38,17 @@ example, vi). You should install less because it is a basic utility for viewing text files, and you'll use it frequently. +%package color +Summary: Colorizers for less +Requires: %{name} = %{version}-%{release} +Conflicts: less < 685-5 + +%description color +Syntax highlighting modes for the less pager. + + %prep -%setup -q +%setup -q -a 1 %patch -P 4 -p1 -b .time %patch -P 5 -p2 -b .fsync %patch -P 6 -p1 -b .manpage-add-old-bot-option @@ -49,22 +65,54 @@ autoreconf -fiv %configure %make_build CFLAGS="%{optflags} -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64" +pushd lesspipe-%{lesspipe_version} +#fix shebangs +sed -i "s|^#!/usr/bin/env bash|^#!/usr/bin/bash|" lesspipe.sh + +./configure --prefix=%{_prefix} +%make_build +popd + %install %make_install mkdir -p $RPM_BUILD_ROOT/etc/profile.d -install -p %{SOURCE1} $RPM_BUILD_ROOT%{_bindir} install -p -m 644 %{SOURCE2} $RPM_BUILD_ROOT/etc/profile.d install -p -m 644 %{SOURCE3} $RPM_BUILD_ROOT/etc/profile.d -install -p -m 644 %{SOURCE4} $RPM_BUILD_ROOT/%{_mandir}/man1/lesspipe.sh.1 + +pushd lesspipe-%{lesspipe_version} +%make_install +rm -f $RPM_BUILD_ROOT/usr/share/bash-completion/less_completion +popd + +%check +pushd lesspipe-%{lesspipe_version} +# we dont have all required components to pass full test, but it is still +# useful to run for debug purposes +make test ||: +popd %files %doc README NEWS INSTALL %license LICENSE COPYING /etc/profile.d/* -%{_bindir}/* +%{_bindir}/less +%{_bindir}/lesscomplete +%{_bindir}/lessecho +%{_bindir}/lesskey +%{_bindir}/lesspipe.sh %{_mandir}/man1/* +%files color +%{_bindir}/archive_color +%{_bindir}/code2color +%{_bindir}/sxw2txt +%{_bindir}/vimcolor + %changelog +* Mon Nov 24 2025 Michal Hlavinka - 685-6 +- reintroduce use more feature rich lesspipe filter, but separate + perl dependent colorizer into subpackage, credits Yaakov Selkowitz + * Fri Nov 14 2025 Adam Williamson - 685-5 - Revert new lesspipe filter due to hard perl dependency diff --git a/lesspipe.sh b/lesspipe.sh deleted file mode 100755 index 71b75c7..0000000 --- a/lesspipe.sh +++ /dev/null @@ -1,132 +0,0 @@ -#!/bin/sh -# -# To use this filter with less, define LESSOPEN: -# export LESSOPEN="|/usr/bin/lesspipe.sh %s" -# -# The script should return zero if the output was valid and non-zero -# otherwise, so less could detect even a valid empty output -# (for example while uncompressing gzipped empty file). -# For backward-compatibility, this is not required by default. To turn -# this functionality there should be another vertical bar (|) straight -# after the first one in the LESSOPEN environment variable: -# export LESSOPEN="||/usr/bin/lesspipe.sh %s" - -if [ ! -e "$1" ] ; then - exit 1 -fi - -if [ -d "$1" ] ; then - ls -alF -- "$1" - exit $? -fi - -exec 2>/dev/null - -# Allow for user defined filters -if [ -x ~/.lessfilter ]; then - ~/.lessfilter "$1" - if [ $? -eq 0 ]; then - exit 0 - fi -fi - -manfilter () -{ - if test -x /usr/bin/man ; then - # See rhbz#1241543 for more info. Well, actually we firstly - # used 'man -l', then we switched to groff, and then we again - # switched back to 'man -l'. - /usr/bin/man -P /usr/bin/cat -l "$1" - elif test -x /usr/bin/groff; then - # This is from pre-rhbz#1241543-time. - groff -Tascii -mandoc "$1" | cat -s - else - echo "WARNING:" - echo "WARNING: to better show manual pages, install 'man-db' package" - echo "WARNING:" - cat "$1" - fi -} - -export MAN_KEEP_FORMATTING=1 - -case "$1" in -*.[1-9n].bz2|*.[1-9]x.bz2|*.man.bz2|*.[1-9n].[glx]z|*.[1-9]x.[glx]z|*.man.[glx]z|*.[1-9n].lzma|*.[1-9]x.lzma|*.man.lzma|*.[1-9n].zst|*.[1-9]x.zst|*.man.zst|*.[1-9n].br|*.[1-9]x.br|*.man.br) - case "$1" in - *.gz) DECOMPRESSOR="gzip -dc" ;; - *.bz2) DECOMPRESSOR="bzip2 -dc" ;; - *.lz) DECOMPRESSOR="lzip -dc" ;; - *.zst) DECOMPRESSOR="zstd -dcq" ;; - *.br) DECOMPRESSOR="brotli -dc" ;; - *.xz|*.lzma) DECOMPRESSOR="xz -dc" ;; - esac - if [ -n "$DECOMPRESSOR" ] && $DECOMPRESSOR -- "$1" | file - | grep -q troff; then - $DECOMPRESSOR -- "$1" | manfilter - - exit $? - fi -esac -case "$1" in -*.[1-9n]|*.[1-9]x|*.man) - if file "$1" | grep -q troff; then - manfilter "$1" - exit $? - fi -esac -case "$1" in -*.tar) tar tvvf "$1"; exit $? ;; -*.tgz|*.tar.gz|*.tar.[zZ]) tar tzvvf "$1"; exit $? ;; -*.tar.xz) tar Jtvvf "$1"; exit $? ;; -*.xz|*.lzma) xz -dc -- "$1"; exit $? ;; -*.tar.lz) tar --lzip -tvvf "$1"; exit $? ;; -*.lz) lzip -dc -- "$1"; exit $? ;; -*.tar.zst) tar --zstd -tvvf "$1"; exit $? ;; -*.zst) zstd -dcq -- "$1"; exit $? ;; -*.tar.br) brotli -dc -- "$1" | tar tvvf -; exit $? ;; -*.br) brotli -dc -- "$1"; exit $? ;; -*.tar.bz2|*.tbz2) bzip2 -dc -- "$1" | tar tvvf -; exit $? ;; -*.[zZ]|*.gz) gzip -dc -- "$1"; exit $? ;; -*.bz2) bzip2 -dc -- "$1"; exit $? ;; -*.zip|*.jar|*.nbm) zipinfo -- "$1"; exit $? ;; -# --nomanifest -> rhbz#1450277 -*.rpm) rpm -qpivl --changelog --nomanifest -- "$1"; exit $? ;; -*.cpi|*.cpio) cpio -itv < "$1"; exit $? ;; -*.gpg) - if [ -x /usr/bin/gpg2 ]; then - gpg2 -d "$1" - exit $? - elif [ -x /usr/bin/gpg ]; then - gpg -d "$1" - exit $? - else - echo "No GnuPG available." - echo "Install gnupg2 or gnupg to show encrypted files." - exit 1 - fi ;; -*.gif|*.jpeg|*.jpg|*.pcd|*.png|*.tga|*.tiff|*.tif) - if [ -x /usr/bin/identify ]; then - identify "$1" - exit $? - elif [ -x /usr/bin/gm ]; then - gm identify "$1" - exit $? - else - echo "No identify available" - echo "Install ImageMagick or GraphicsMagick to browse images" - exit 1 - fi ;; -*) - if [ -x /usr/bin/file ] && [ -x /usr/bin/iconv ] && [ -x /usr/bin/cut ]; then - case `file -b "$1"` in - *UTF-16*) conv='UTF-16' ;; - *UTF-32*) conv='UTF-32' ;; - esac - if [ -n "$conv" ]; then - env=`echo $LANG | cut -d. -f2` - if [ -n "$env" -a "$conv" != "$env" ]; then - iconv -f $conv -t $env "$1" - exit $? - fi - fi - fi - exit 1 -esac diff --git a/lesspipe.sh.1 b/lesspipe.sh.1 deleted file mode 100644 index b79e329..0000000 --- a/lesspipe.sh.1 +++ /dev/null @@ -1,60 +0,0 @@ -.TH LESSPIPE.SH "1" "August 2025" "lesspipe.sh" "User Commands" -.SH NAME -lesspipe.sh \- a preprocessor for less -.SH SYNOPSIS -.B lesspipe.sh -[\fIFILE\fR] -.SH DESCRIPTION -.PP -The purpose of \fBlesspipe.sh\fP is to enhance the output of \fBless\fP. -.PP -With this preprocessor filter \fBless\fP -will be able to display contents of compressed files. For files -containing archives and directories, a table of contents will be displayed. -These filters can be applied recursively. -.SH FILTER ACTIVATION -For \fBlesspipe.sh\fP to be used by \fBless\fP the environment variable -\fBLESSOPEN\fP must be set properly. For bash like shells the command is: - -.EX -.I LESSOPEN="||lesspipe.sh %s"; export LESSOPEN -.EE - -Use absolute path, if \fBlesspipe.sh\fP is not in the search path. -.PP -Having set the environment variable as described above, \fBless\fP -will then display textual information for a wide range of file formats. -.SH USER DEFINED FILTERING -The \fBlesspipe.sh\fP preprocessing can be replaced or enhanced by a user defined -filter specified in \fB~/.lessfilter\fP This file should have an execute bit -set and accept only one parameter, which represents a filename. If the -user defined filter processes the file, zero should be returned. Otherwise -\fBlesspipe.sh\fP will try to handle the file. -.PP -This can be used not only to add filtering for new formats, but also to block -filtering for certain files types or files. An example ~/.lessfilter - -.RS -.EX -#!/usr/bin/sh - -if [[ "$1" = *.raw ]]; then - # do not process 'raw' files - cat "$1" - exit 0 -elif [[ "$1" = *.txt ]]; then - if [ $(wc -l <"$1") = 1 ]; then - # decorate oneliners with cowsay - cowsay <"$1" - exit 0; - fi -fi -# default, not handled by .lessfilter -exit 1 -.EE -.RE -.SH AUTHOR -Michal Hlavinka -.SH "SEE ALSO" -less(1) - diff --git a/sources b/sources index fd21d4b..703a9df 100644 --- a/sources +++ b/sources @@ -1 +1,2 @@ SHA512 (less-685.tar.gz) = aff745f1816e0f996fbdbc33ecae0726cf0d842efc227937ff8c32e734c8b5be4c611ffbb27e5e038b4d95280c95ca60c53af1a47cf419cb06e5fab543c231f3 +SHA512 (lesspipe-2.20.tar.gz) = bfeba1b921959e8cde8ce8bcc75765598cefd2cc705aa5b6417592fdbdb0c43bd3efb0d4379a0514f0da86806988ee95219539974c7af3319595d9b03aac550e