From 01e4cba9a9aa27badc903a60847717992df9dc7e Mon Sep 17 00:00:00 2001 From: Martin Väth Date: Sat, 24 Jun 2023 10:47:40 +0200 Subject: sys-apps/less: revision bump MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Martin Väth --- metadata/pkg_desc_index | 2 +- sys-apps/less/files/lesspipe-r1.sh | 287 ------------------------------------ sys-apps/less/files/lesspipe-r2.sh | 291 +++++++++++++++++++++++++++++++++++++ sys-apps/less/less-633-r1.ebuild | 110 ++++++++++++++ sys-apps/less/less-633.ebuild | 99 ------------- 5 files changed, 402 insertions(+), 387 deletions(-) delete mode 100644 sys-apps/less/files/lesspipe-r1.sh create mode 100644 sys-apps/less/files/lesspipe-r2.sh create mode 100644 sys-apps/less/less-633-r1.ebuild delete mode 100644 sys-apps/less/less-633.ebuild diff --git a/metadata/pkg_desc_index b/metadata/pkg_desc_index index d59617ed..681c639c 100644 --- a/metadata/pkg_desc_index +++ b/metadata/pkg_desc_index @@ -98,7 +98,7 @@ net-print/foo2zjs 20200221: Support for printing to ZjStream-based printers sci-geosciences/googleearth 7.1.8.3036-r4 7.3.0.3832-r4 7.3.4-r2: A 3D interface to the planet sci-mathematics/reduce 20141130-r3 20190413: A general-purpose computer algebra system sys-apps/cpi 3.2: A wrapper for cp -i -a, making use of diff -sys-apps/less 633: Excellent text file viewer, optionally with additional selection feature +sys-apps/less 633-r1: Excellent text file viewer, optionally with additional selection feature sys-apps/man 1.6g-r4: Standard commands to read man pages sys-apps/openrc-wrapper 2.4: Use openrc init scripts with systemd or other init systems sys-apps/paxopen 1.2: A wrapper script to set PAX kernel variables to an insecure/safe state diff --git a/sys-apps/less/files/lesspipe-r1.sh b/sys-apps/less/files/lesspipe-r1.sh deleted file mode 100644 index 9dcfea1d..00000000 --- a/sys-apps/less/files/lesspipe-r1.sh +++ /dev/null @@ -1,287 +0,0 @@ -#!/bin/bash -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# Preprocessor for 'less'. Used when this environment variable is set: -# LESSOPEN="|lesspipe %s" - -# TODO: handle compressed files better - -[[ -n ${LESSDEBUG+set} ]] && set -x - -trap 'exit 0' PIPE - -guesscompress() { - case "$1" in - *.gz|*.z) echo "gunzip -c" ;; - *.bz2|*.bz) echo "bunzip2 -c" ;; - *.lz) echo "lzip -dc" ;; - *.lzma) echo "unlzma -c" ;; - *.lzo) echo "lzop -dc" ;; - *.xz) echo "xzdec" ;; - *.zst) echo "zstdcat" ;; - *) echo "cat" ;; - esac -} - -lesspipe_file() { - local out=$(file -L -- "$1") - local suffix - case ${out} in - *" 7-zip archive"*) suffix="7z";; - *" ar archive"*) suffix="a";; - *" CAB-Installer"*) suffix="cab";; - *" cpio archive"*) suffix="cpio";; - *" ELF "*) suffix="elf";; - *" LHa"*archive*) suffix="lha";; - *" troff "*) suffix="man";; - *" script text"*) suffix="sh";; - *" shared object"*) suffix="so";; - *" tar archive"*) suffix="tar";; - *" Zip archive"*) suffix="zip";; - *": data") hexdump -C -- "$1"; return 0;; - *) return 1;; - esac - lesspipe "$1" ".${suffix}" - return 0 -} - -lesspipe() { - local match=$2 - [[ -z ${match} ]] && match=$1 - - local DECOMPRESSOR=$(guesscompress "${match}") - - # User filters - if [[ -x ~/.lessfilter ]] ; then - ~/.lessfilter "$1" && exit 0 - fi - - local ignore - for ignore in ${LESSIGNORE} ; do - [[ ${match} == *.${ignore} ]] && exit 0 - done - - # Handle non-regular file types. - if [[ -d $1 ]] ; then - ls -alF -- "$1" - return - elif [[ ! -f $1 ]] ; then - # Only return if the stat passes. This is needed to handle pseudo - # arguments like URIs. - stat -- "$1" && return - fi - - case "${match}" in - - ### Doc files ### - *.[0-9n]|*.man|\ - *.[0-9n].bz2|*.man.bz2|\ - *.[0-9n].gz|*.man.gz|\ - *.[0-9n].lzma|*.man.lzma|\ - *.[0-9n].xz|*.man.xz|\ - *.[0-9n].zst|*.man.zst|\ - *.[0-9][a-z].gz|*.[0-9][a-z].gz) - local out=$(${DECOMPRESSOR} -- "$1" | file -) - case ${out} in - *troff*) - # Need to make sure we pass path to man or it will try - # to locate "$1" in the man search paths - if [[ $1 == /* ]] ; then - man -- "$1" - else - man -- "./$1" - fi - ;; - *text*) - ${DECOMPRESSOR} -- "$1" - ;; - *) - # We could have matched a library (libc.so.6), so let - # `file` figure out what the hell this thing is - lesspipe_file "$1" - ;; - esac - ;; - *.dvi) dvi2tty "$1" ;; - *.ps) ps2ascii "$1" || pstotext "$1" ;; - *.pdf) pdftotext "$1" - || ps2ascii "$1" || pstotext "$1" ;; - *.doc) antiword "$1" || catdoc "$1" ;; - *.rtf) unrtf --nopict --text "$1" ;; - *.conf|*.txt|*.log) ;; # force less to work on these directly #150256 - *.json) python -mjson.tool "$1" ;; - - ### URLs ### - ftp://*|http://*|https://|*.htm|*.html) - for b in elinks links2 links lynx ; do - ${b} -dump "$1" && exit 0 - done - html2text -style pretty "$1" - ;; - - ### Tar files ### - *.tar|\ - *.tar.bz2|*.tar.bz|*.tar.gz|*.tar.z|*.tar.zst|\ - *.tar.lz|*.tar.tlz|\ - *.tar.lzma|*.tar.xz) - ${DECOMPRESSOR} -- "$1" | tar tvvf -;; - *.tbz2|*.tbz|*.tgz|*.tlz|*.txz) - lesspipe "$1" "$1.tar.${1##*.t}" ;; - - ### Misc archives ### - *.bz2|\ - *.gz|*.z|\ - *.zst|\ - *.lz|\ - *.lzma|*.xz) ${DECOMPRESSOR} -- "$1" ;; - *.rpm) rpm -qpivl --changelog -- "$1" || rpm2tar -O "$1" | tar tvvf -;; - *.cpi|*.cpio) cpio -itv < "$1" ;; - *.ace) unace l "$1" ;; - *.arc) arc v "$1" ;; - *.arj) arj l -- "$1" || unarj l "$1" ;; - *.cab) cabextract -l -- "$1" ;; - *.lha|*.lzh) lha v "$1" ;; - *.zoo) zoo -list "$1" || unzoo -l "$1" ;; - *.7z|*.exe) 7z l -- "$1" || 7za l -- "$1" || 7zr l -- "$1" ;; - *.a) ar tv "$1" ;; - *.elf) readelf -a -W -- "$1" ;; - *.so) readelf -h -d -s -W -- "$1" ;; - *.mo|*.gmo) msgunfmt -- "$1" ;; - - *.rar|.r[0-9][0-9]) unrar l -- "$1" ;; - - *.jar|*.war|*.ear|*.xpi|*.zip) - unzip -v "$1" || miniunzip -l "$1" || miniunz -l "$1" || zipinfo -v "$1" - ;; - - *.deb|*.udeb) - if type -P dpkg > /dev/null ; then - dpkg --info "$1" - dpkg --contents "$1" - else - ar tv "$1" - ar p "$1" data.tar.gz | tar tzvvf - - fi - ;; - - ### Filesystems ### - *.squashfs) unsquashfs -s "$1" && unsquashfs -ll "$1" ;; - - ### Media ### - *.bmp|*.gif|*.jpeg|*.jpg|*.ico|*.pcd|*.pcx|*.png|*.ppm|*.tga|*.tiff|*.tif|*.webp) - identify -verbose -- "$1" || file -L -- "$1" - ;; - *.asf|*.avi|*.flv|*.mkv|*.mov|*.mp4|*.mpeg|*.mpg|*.qt|*.ram|*.rm|*.webm|*.wmv) - midentify "$1" || file -L -- "$1" - ;; - *.mp3) mp3info "$1" || id3info "$1" ;; - *.ogg) ogginfo "$1" ;; - *.flac) metaflac --list "$1" ;; - *.torrent) torrentinfo "$1" || torrentinfo-console "$1" || ctorrent -x "$1" ;; - *.bin|*.cue|*.raw) - # not all .bin/.raw files are cd images #285507 - # fall back to lesspipe_file if .cue doesn't exist, or if - # cd-info failed to parse things sanely - [[ -e ${1%.*}.cue ]] \ - && cd-info --no-header --no-device-info "$1" \ - || lesspipe_file "$1" - ;; - *.iso) - iso_info=$(isoinfo -d -i "$1") - echo "${iso_info}" - # Joliet output overrides Rock Ridge, so prefer the better Rock - case ${iso_info} in - *$'\n'"Rock Ridge"*) iso_opts="-R";; - *$'\n'"Joliet"*) iso_opts="-J";; - *) iso_opts="";; - esac - isoinfo -l ${iso_opts} -i "$1" - ;; - - ### Encryption stuff ### - *.crl) openssl crl -hash -text -noout -in "$1" ;; - *.csr) openssl req -text -noout -in "$1" ;; - *.crt|*.pem) openssl x509 -hash -text -noout -in "$1" ;; - -# May not be such a good idea :) -# ### Device nodes ### -# /dev/[hs]d[a-z]*) -# fdisk -l "${1:0:8}" -# [[ $1 == *hd* ]] && hdparm -I "${1:0:8}" -# ;; - - ### Everything else ### - *) - case $(( recur++ )) in - # Maybe we didn't match due to case issues ... - 0) lesspipe "$1" "$(echo "$1" | LC_ALL=C tr '[:upper:]' '[:lower:]')" ;; - - # Maybe we didn't match because the file is named weird ... - 1) lesspipe_file "$1" ;; - esac - - # So no matches from above ... finally fall back to an external - # coloring package. No matching here so we don't have to worry - # about keeping in sync with random packages. Any coloring tool - # you use should not output errors about unsupported files to - # stdout. If it does, it's your problem. - - # Allow people to flip color off if they dont want it - case ${LESSCOLOR} in - always) LESSCOLOR=2;; - [yY][eE][sS]|[yY]|1|true) LESSCOLOR=1;; - [nN][oO]|[nN]|0|false) LESSCOLOR=0;; - *) LESSCOLOR=0;; # default to no color #188835 - esac - if [[ ${LESSCOLOR} != "0" ]] && [[ -n ${LESSCOLORIZER=code2color} ]] ; then - # 2: Only colorize if user forces it ... - # 1: ... or we know less will handle raw codes -- this will - # not detect -seiRM, so set LESSCOLORIZER yourself - if [[ ${LESSCOLOR} == "2" ]] || [[ " ${LESS} " == *" -"[rR]" "* ]] ; then - LESSQUIET=true ${LESSCOLORIZER} "$1" - fi - fi - - # Nothing left to do but let less deal - exit 0 - ;; - esac -} - -if [[ $# -eq 0 ]] ; then - echo "Usage: lesspipe " -elif [[ $1 == "-V" || $1 == "--version" ]] ; then - cat <<-EOF - lesspipe (git) - Copyright 1999-2019 Gentoo Authors - Mike Frysinger - (with plenty of ideas stolen from other projects/distros) - - EOF - less -V -elif [[ $1 == "-h" || $1 == "--help" ]] ; then - cat <<-EOF - lesspipe: preprocess files before sending them to less - - Usage: lesspipe - - lesspipe specific settings: - LESSCOLOR env - toggle colorizing of output (no/yes/always; default: no) - LESSCOLORIZER env - program used to colorize output (default: code2color) - LESSIGNORE - list of extensions to ignore (don't do anything fancy) - - You can create per-user filters as well by creating the executable file: - ~/.lessfilter - One argument is passed to it: the file to display. The script should exit 0 - to indicate it handled the file, or non-zero to tell lesspipe to handle it. - - To use lesspipe, simply add to your environment: - export LESSOPEN="|lesspipe %s" - - Run 'less --help' or 'man less' for more info. - EOF -else - recur=0 - [[ -z ${LESSDEBUG+set} ]] && exec 2>/dev/null - lesspipe "$1" -fi diff --git a/sys-apps/less/files/lesspipe-r2.sh b/sys-apps/less/files/lesspipe-r2.sh new file mode 100644 index 00000000..fc54d5b2 --- /dev/null +++ b/sys-apps/less/files/lesspipe-r2.sh @@ -0,0 +1,291 @@ +#!/bin/bash +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# Preprocessor for 'less'. Used when this environment variable is set: +# LESSOPEN="|lesspipe %s" + +# TODO: handle compressed files better + +[[ -n ${LESSDEBUG+set} ]] && set -x + +trap 'exit 0' PIPE + +guesscompress() { + case "$1" in + *.gz|*.z) echo "gunzip -c" ;; + *.bz2|*.bz) echo "bunzip2 -c" ;; + *.lz) echo "lzip -dc" ;; + *.lzma) echo "unlzma -c" ;; + *.lzo) echo "lzop -dc" ;; + *.xz) echo "xzdec" ;; + *.zst) echo "zstdcat" ;; + *) echo "cat" ;; + esac +} + +lesspipe_file() { + local out=$(file -L -- "$1") + local suffix + case ${out} in + *" 7-zip archive"*) suffix="7z";; + *" ar archive"*) suffix="a";; + *" CAB-Installer"*) suffix="cab";; + *" cpio archive"*) suffix="cpio";; + *" ELF "*) suffix="elf";; + *" LHa"*archive*) suffix="lha";; + *" troff "*) suffix="man";; + *" script text"*) suffix="sh";; + *" shared object"*) suffix="so";; + *" tar archive"*) suffix="tar";; + *" Zip archive"*) suffix="zip";; + *": data") hexdump -C -- "$1"; return 0;; + *) return 1;; + esac + lesspipe "$1" ".${suffix}" + return 0 +} + +lesspipe() { + local match=$2 + [[ -z ${match} ]] && match=$1 + + local DECOMPRESSOR=$(guesscompress "${match}") + + # User filters + if [[ -x ~/.lessfilter ]] ; then + ~/.lessfilter "$1" && exit 0 + fi + + local ignore + for ignore in ${LESSIGNORE} ; do + [[ ${match} == *.${ignore} ]] && exit 0 + done + + # Handle non-regular file types. + if [[ -d $1 ]] ; then + ls -alF -- "$1" + return + elif [[ ! -f $1 ]] ; then + # Only return if the stat passes. This is needed to handle pseudo + # arguments like URIs. + stat -- "$1" && return + fi + + case "${match}" in + + ### Doc files ### + *.[0-9n]|*.man|\ + *.[0-9n].bz2|*.man.bz2|\ + *.[0-9n].gz|*.man.gz|\ + *.[0-9n].lzma|*.man.lzma|\ + *.[0-9n].xz|*.man.xz|\ + *.[0-9n].zst|*.man.zst|\ + *.[0-9][a-z].gz|*.[0-9][a-z].gz) + local out=$(${DECOMPRESSOR} -- "$1" | file -) + case ${out} in + *troff*) + # Need to make sure we pass path to man or it will try + # to locate "$1" in the man search paths + if [[ $1 == /* ]] ; then + man -- "$1" + else + man -- "./$1" + fi + ;; + *text*) + ${DECOMPRESSOR} -- "$1" + ;; + *) + # We could have matched a library (libc.so.6), so let + # `file` figure out what the hell this thing is + lesspipe_file "$1" + ;; + esac + ;; + *.dvi) dvi2tty "$1" ;; + *.ps) ps2ascii "$1" || pstotext "$1" ;; + *.pdf) pdftotext "$1" - || ps2ascii "$1" || pstotext "$1" ;; + *.doc) antiword "$1" || catdoc "$1" ;; + *.rtf) unrtf --nopict --text "$1" ;; + *.conf|*.txt|*.log) ;; # force less to work on these directly #150256 + *.json) python -mjson.tool "$1" ;; + + ### URLs ### + ftp://*|http://*|https://|*.htm|*.html) + for b in elinks links2 links lynx ; do + ${b} -dump "$1" && exit 0 + done + html2text -style pretty "$1" + ;; + + ### Tar files ### + *.tar|\ + *.tar.bz2|*.tar.bz|*.tar.gz|*.tar.z|*.tar.zst|\ + *.tar.lz|*.tar.tlz|\ + *.tar.lzma|*.tar.xz) + ${DECOMPRESSOR} -- "$1" | tar tvvf -;; + *.tbz2|*.tbz|*.tgz|*.tlz|*.txz) + lesspipe "$1" "$1.tar.${1##*.t}" ;; + + ### Misc archives ### + *.bz2|\ + *.gz|*.z|\ + *.zst|\ + *.lz|\ + *.lzma|*.xz) ${DECOMPRESSOR} -- "$1" ;; + *.rpm) rpm -qpivl --changelog -- "$1" || rpm2tar -O "$1" | tar tvvf -;; + *.cpi|*.cpio) cpio -itv < "$1" ;; + *.ace) unace l "$1" ;; + *.arc) arc v "$1" ;; + *.arj) arj l -- "$1" || unarj l "$1" ;; + *.cab) cabextract -l -- "$1" ;; + *.lha|*.lzh) lha v "$1" ;; + *.zoo) zoo -list "$1" || unzoo -l "$1" ;; + *.7z|*.exe) 7z l -- "$1" || 7za l -- "$1" || 7zr l -- "$1" ;; + *.a) ar tv "$1" ;; + *.elf) readelf -a -W -- "$1" ;; + *.so) readelf -h -d -s -W -- "$1" ;; + *.mo|*.gmo) msgunfmt -- "$1" ;; + + *.rar|.r[0-9][0-9]) unrar l -- "$1" ;; + + *.jar|*.war|*.ear|*.xpi|*.zip) + unzip -v "$1" || miniunzip -l "$1" || miniunz -l "$1" || zipinfo -v "$1" + ;; + + *.deb|*.udeb) + if type -P dpkg > /dev/null ; then + dpkg --info "$1" + dpkg --contents "$1" + else + ar tv "$1" + ar p "$1" data.tar.gz | tar tzvvf - + fi + ;; + + ### Filesystems ### + *.squashfs) unsquashfs -s "$1" && unsquashfs -ll "$1" ;; + + ### Media ### + *.bmp|*.gif|*.jpeg|*.jpg|*.ico|*.pcd|*.pcx|*.png|*.ppm|*.tga|*.tiff|*.tif|*.webp) + identify -verbose -- "$1" || file -L -- "$1" + ;; + *.asf|*.avi|*.flv|*.mkv|*.mov|*.mp4|*.mpeg|*.mpg|*.qt|*.ram|*.rm|*.webm|*.wmv) + midentify "$1" || file -L -- "$1" + ;; + *.mp3) mp3info "$1" || id3info "$1" ;; + *.ogg) ogginfo "$1" ;; + *.flac) metaflac --list "$1" ;; + *.torrent) torrentinfo "$1" || torrentinfo-console "$1" || ctorrent -x "$1" ;; + *.bin|*.cue|*.raw) + # not all .bin/.raw files are cd images #285507 + # fall back to lesspipe_file if .cue doesn't exist, or if + # cd-info failed to parse things sanely + [[ -e ${1%.*}.cue ]] \ + && cd-info --no-header --no-device-info "$1" \ + || lesspipe_file "$1" + ;; + *.iso) + iso_info=$(isoinfo -d -i "$1") + echo "${iso_info}" + # Joliet output overrides Rock Ridge, so prefer the better Rock + case ${iso_info} in + *$'\n'"Rock Ridge"*) iso_opts="-R";; + *$'\n'"Joliet"*) iso_opts="-J";; + *) iso_opts="";; + esac + isoinfo -l ${iso_opts} -i "$1" + ;; + + ### Encryption stuff ### + *.crl) openssl crl -hash -text -noout -in "$1" ;; + *.csr) openssl req -text -noout -in "$1" ;; + *.crt|*.pem) openssl x509 -hash -text -noout -in "$1" ;; + +# May not be such a good idea :) +# ### Device nodes ### +# /dev/[hs]d[a-z]*) +# fdisk -l "${1:0:8}" +# [[ $1 == *hd* ]] && hdparm -I "${1:0:8}" +# ;; + + ### Everything else ### + *) + case $(( recur++ )) in + # Maybe we didn't match due to case issues ... + 0) lesspipe "$1" "$(echo "$1" | LC_ALL=C tr '[:upper:]' '[:lower:]')" ;; + + # Maybe we didn't match because the file is named weird ... + 1) lesspipe_file "$1" ;; + esac + + # So no matches from above ... finally fall back to an external + # coloring package. No matching here so we don't have to worry + # about keeping in sync with random packages. Any coloring tool + # you use should not output errors about unsupported files to + # stdout. If it does, it's your problem. + + # Allow people to flip color off if they dont want it + case ${LESSCOLOR} in + always) LESSCOLOR=2;; + [yY][eE][sS]|[yY]|1|true) LESSCOLOR=1;; + [nN][oO]|[nN]|0|false) LESSCOLOR=0;; + *) LESSCOLOR=1;; + esac + if [[ ${LESSCOLOR} != "0" ]] && [[ -n ${LESSCOLORIZER=pygmentize} ]] ; then + # 2: Only colorize if user forces it ... + # 1: ... or we know less will handle raw codes -- this will + # not detect -seiRM, so set LESSCOLORIZER yourself + if [[ ${LESSCOLOR} == "2" ]] || [[ " ${LESS} " == *" -"[rR]" "* ]] ; then + LESSQUIET=true ${LESSCOLORIZER} "$1" + fi + fi + + # Nothing left to do but let less deal + exit 0 + ;; + esac +} + +if [[ $# -eq 0 ]] ; then + echo "Usage: lesspipe " +elif [[ $1 == "-V" || $1 == "--version" ]] ; then + cat <<-EOF + lesspipe (git) + Copyright 1999-2019 Gentoo Authors + Mike Frysinger + (with plenty of ideas stolen from other projects/distros) + + EOF + less -V +elif [[ $1 == "-h" || $1 == "--help" ]] ; then + cat <<-EOF + lesspipe: preprocess files before sending them to less + + Usage: lesspipe + + lesspipe specific settings: + LESSCOLOR env - toggle colorizing of output (no/yes/always; default: no) + LESSCOLORIZER env - program used to colorize output (default: pygmentize) + LESSIGNORE - list of extensions to ignore (don't do anything fancy) + + You can create per-user filters as well by creating the executable file: + ~/.lessfilter + One argument is passed to it: the file to display. The script should exit 0 + to indicate it handled the file, or non-zero to tell lesspipe to handle it. + + To use lesspipe, simply add to your environment: + export LESSOPEN="|lesspipe %s" + + For colorization, install dev-python/pygments for the pygmentize program. Note, + if using alternative code2color from sys app-text/lesspipe you may run out of + memory due to #188835. + + Run 'less --help' or 'man less' for more info. + EOF +else + recur=0 + [[ -z ${LESSDEBUG+set} ]] && exec 2>/dev/null + lesspipe "$1" +fi diff --git a/sys-apps/less/less-633-r1.ebuild b/sys-apps/less/less-633-r1.ebuild new file mode 100644 index 00000000..6fe90b67 --- /dev/null +++ b/sys-apps/less/less-633-r1.ebuild @@ -0,0 +1,110 @@ +# Copyright 1999-2023 Gentoo Authors and Martin V\"ath +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +WANT_AUTOMAKE=none +WANT_LIBTOOL=none +inherit autotools optfeature + +DESCRIPTION="Excellent text file viewer, optionally with additional selection feature" +PATCHN="less-select" +PATCHV="2.15" +PATCHVER="633" +PATCHRUMP="${PATCHN}-${PATCHV}" +PATCHBALL="${PATCHRUMP}.tar.gz" +SELECTDIR="${WORKDIR}/${PATCHRUMP}" +HOMEPAGE="http://www.greenwoodsoftware.com/less/ https://github.com/vaeth/less-select" +SRC_URI="mirror+http://www.greenwoodsoftware.com/less/${P}.tar.gz + less-select? ( https://github.com/vaeth/${PATCHN}/archive/v${PATCHV}.tar.gz -> ${PATCHBALL} )" +RESTRICT="mirror" + +LICENSE="|| ( GPL-3 BSD-2 )" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +IUSE="+lesspipe +less-select pcre original-gentoo source" +# As of 623_beta, lesstest is not included in dist tarballs +# https://github.com/gwsw/less/issues/344 +RESTRICT="test" + +DEPEND=" + >=app-misc/editor-wrapper-3 + >=sys-libs/ncurses-5.2:= + pcre? ( dev-libs/libpcre2 ) +" +RDEPEND="${DEPEND} + less-select? ( dev-lang/perl )" +# || ( >=dev-lang/perl-5.10.1 >=virtual/perl-File-Temp-0.19 ) +PDEPEND="lesspipe? ( app-text/lesspipe )" + +pkg_setup() { + if use source && ! use less-select + then ewarn 'ignoring USE=source without USE=less-select' + fi +} + +src_prepare() { + if use less-select + then eapply "${SELECTDIR}/patches/less-${PATCHVER}-select.patch" + "${SELECTDIR}"/after-patch || die "${SELECTDIR}/after-patch failed" + sed -i -e 's|\([^a-zA-Z]\)/etc/less-select-key.bin|\1'"${EPREFIX}"'/etc/less/select-key.bin|g' \ + "${SELECTDIR}/bin/less-select" || die + fi + + default + # Upstream uses unpatched autoconf-2.69, which breaks with clang-16. + # https://bugs.gentoo.org/870412 + eautoreconf +} + +src_configure() { + local myeconfargs=( + --with-regex=$(usex pcre pcre2 posix) + --with-editor="${EPREFIX}"/usr/libexec/editor + ) + econf "${myeconfargs[@]}" +} + +src_compile() { + default + if use less-select + then ./lesskey -o normal-key.bin "${SELECTDIR}/keys/less-normal-key.src" || die + ./lesskey -o select-key.bin "${SELECTDIR}/keys/less-select-key.src" || die + fi +} + +src_test() { + emake check VERBOSE=1 +} + +src_install() { + local a + default + + newbin "${FILESDIR}"/lesspipe-r2.sh lesspipe + + if use original-gentoo + then a="-R -M --shift 5" + else a="-sFRiMX --shift 5" + fi + printf '%s\n' \ + 'LESSOPEN="|lesspipe'$(usex lesspipe .sh)' %s"' \ + "LESS=\"${a}\"" \ + >70less || die + doenvd 70less + + if use less-select + then newdoc "${SELECTDIR}"/README.md README.less-select + dobin "${SELECTDIR}/bin/"* + insinto /etc/less + doins select-key.bin normal-key.bin + if use source + then newins "${SELECTDIR}/keys/less-select-key.src" select-key.src + newins "${SELECTDIR}/keys/less-normal-key.src" normal-key.src + fi + fi +} + +pkg_preinst() { + use lesspipe || optfeature "Colorized output support" dev-python/pygments +} diff --git a/sys-apps/less/less-633.ebuild b/sys-apps/less/less-633.ebuild deleted file mode 100644 index 96999db1..00000000 --- a/sys-apps/less/less-633.ebuild +++ /dev/null @@ -1,99 +0,0 @@ -# Copyright 1999-2023 Gentoo Authors and Martin V\"ath -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -WANT_AUTOMAKE=none -WANT_LIBTOOL=none -inherit autotools - -DESCRIPTION="Excellent text file viewer, optionally with additional selection feature" -PATCHN="less-select" -PATCHV="2.15" -PATCHVER="633" -PATCHRUMP="${PATCHN}-${PATCHV}" -PATCHBALL="${PATCHRUMP}.tar.gz" -SELECTDIR="${WORKDIR}/${PATCHRUMP}" -HOMEPAGE="http://www.greenwoodsoftware.com/less/ https://github.com/vaeth/less-select" -SRC_URI="mirror+http://www.greenwoodsoftware.com/less/${P}.tar.gz - less-select? ( https://github.com/vaeth/${PATCHN}/archive/v${PATCHV}.tar.gz -> ${PATCHBALL} )" -RESTRICT="mirror" - -LICENSE="|| ( GPL-3 BSD-2 )" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" -IUSE="+lesspipe +less-select pcre original-gentoo source" - -DEPEND=" - >=app-misc/editor-wrapper-3 - >=sys-libs/ncurses-5.2:= - pcre? ( dev-libs/libpcre2 ) -" -RDEPEND="${DEPEND} - less-select? ( dev-lang/perl )" -# || ( >=dev-lang/perl-5.10.1 >=virtual/perl-File-Temp-0.19 ) -PDEPEND="lesspipe? ( app-text/lesspipe )" - -pkg_setup() { - if use source && ! use less-select - then ewarn 'ignoring USE=source without USE=less-select' - fi -} - -src_prepare() { - if use less-select - then eapply "${SELECTDIR}/patches/less-${PATCHVER}-select.patch" - "${SELECTDIR}"/after-patch || die "${SELECTDIR}/after-patch failed" - sed -i -e 's|\([^a-zA-Z]\)/etc/less-select-key.bin|\1'"${EPREFIX}"'/etc/less/select-key.bin|g' \ - "${SELECTDIR}/bin/less-select" || die - fi - - default - # Upstream uses unpatched autoconf-2.69, which breaks with clang-16. - # https://bugs.gentoo.org/870412 - eautoreconf -} - -src_configure() { - local myeconfargs=( - --with-regex=$(usex pcre pcre2 posix) - --with-editor="${EPREFIX}"/usr/libexec/editor - ) - econf "${myeconfargs[@]}" -} - -src_compile() { - default - if use less-select - then ./lesskey -o normal-key.bin "${SELECTDIR}/keys/less-normal-key.src" || die - ./lesskey -o select-key.bin "${SELECTDIR}/keys/less-select-key.src" || die - fi -} - -src_install() { - local a - default - - newbin "${FILESDIR}"/lesspipe-r1.sh lesspipe - - if use original-gentoo - then a="-R -M --shift 5" - else a="-sFRiMX --shift 5" - fi - printf '%s\n' \ - 'LESSOPEN="|lesspipe'$(! use lesspipe || echo .sh)' %s"' \ - "LESS=\"${a}\"" \ - >70less || die - doenvd 70less - - if use less-select - then newdoc "${SELECTDIR}"/README.md README.less-select - dobin "${SELECTDIR}/bin/"* - insinto /etc/less - doins select-key.bin normal-key.bin - if use source - then newins "${SELECTDIR}/keys/less-select-key.src" select-key.src - newins "${SELECTDIR}/keys/less-normal-key.src" normal-key.src - fi - fi -} -- cgit v1.2.3-65-gdbad