perl/perl-B-Lint: Added (Perl lint).

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
Charadon 2024-09-05 13:09:55 +07:00 committed by Willy Sudiarto Raharjo
parent f044ac6373
commit 47dea5eac3
No known key found for this signature in database
GPG key ID: 3F617144D7238786
5 changed files with 177 additions and 0 deletions

View file

@ -0,0 +1,49 @@
# Source: https://rt.cpan.org/Public/Ticket/Attachment/1507017/803268/B-Lint-1.20-Skip-a-bare-sub-test.patch
diff --git a/lib/B/Lint.pm b/lib/B/Lint.pm
index 1f5098f..7291b18 100644
--- a/lib/B/Lint.pm
+++ b/lib/B/Lint.pm
@@ -85,6 +85,10 @@ trap are:
Neither of these will do what a naive user would expect.
+Notice: Perl 5.22.0 does not report C<foo> in C<$b{foo}> as BARE token
+anymore. Therefore L<B::Lint> test is not reliable here. See
+L<CPAN RT#101115|https://rt.cpan.org/Public/Bug/Display.html?id=101115>.
+
=item B<dollar-underscore>
This option warns whenever C<$_> is used either explicitly anywhere or
diff --git a/t/lint.t b/t/lint.t
index 7317b1d..93255d9 100644
--- a/t/lint.t
+++ b/t/lint.t
@@ -14,7 +14,7 @@ BEGIN {
use strict;
use warnings;
-plan tests => 29;
+plan tests => 30;
# Runs a separate perl interpreter with the appropriate lint options
# turned on
@@ -116,10 +116,17 @@ RESULT
runlint 'bare-subs', 'sub bare(){1};$x=bare', '';
-runlint 'bare-subs', 'sub bare(){1}; $x=[bare=>0]; $x=$y{bare}', <<'RESULT';
+runlint 'bare-subs', 'sub bare(){1}; $x=[bare=>0]', <<'RESULT';
Bare sub name 'bare' interpreted as string at -e line 1
+RESULT
+
+SKIP: {
+ skip 'Perl 5.22 stopped marking $hash{bare} as BARE word, CPAN RT#101115',
+ 1, if $] >= 5.022;
+ runlint 'bare-subs', 'sub bare(){1}; $x=$y{bare}', <<'RESULT';
Bare sub name 'bare' interpreted as string at -e line 1
RESULT
+}
{
--

3
perl/perl-B-Lint/README Normal file
View file

@ -0,0 +1,3 @@
The B::Lint module is equivalent to an extended version of the -w
option of perl. It is named after the program 'lint' which carries
out a similar process for C Programs.

View file

@ -0,0 +1,96 @@
#!/bin/bash
# Slackware build script for perl-B-Lint
# Copyright 2024 Charadon US
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=perl-B-Lint
VERSION=${VERSION:-1.20}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
SRCNAM="$(printf $PRGNAM | cut -d- -f2-)"
ARCH=noarch
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
fi
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $SRCNAM-$VERSION
tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
cd $SRCNAM-$VERSION
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
-o -perm 511 \) -exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
# Apply patch to skip test
# https://rt.cpan.org/Public/Bug/Display.html?id=101115
patch -p1 < "$CWD/B-Lint-1.20-Skip-a-bare-sub-test.patch"
# Build method #1 (preferred)
perl Makefile.PL \
PREFIX=/usr \
INSTALLDIRS=vendor \
INSTALLVENDORMAN1DIR=/usr/man/man1 \
INSTALLVENDORMAN3DIR=/usr/man/man3
make
make test
make install DESTDIR=$PKG
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
find $PKG/usr/man -type f -exec gzip -9 {} \;
for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
# Remove perllocal.pod and other special files that don't need to be installed,
# as they will overwrite what's already on the system.
find $PKG -name perllocal.pod -o -name ".packlist" -o -name "*.bs" | xargs rm -f || true
# Remove empty directories
find $PKG -depth -type d -empty -delete || true
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a Changes README $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE

View file

@ -0,0 +1,10 @@
PRGNAM="perl-B-Lint"
VERSION="1.20"
HOMEPAGE="https://metacpan.org/pod/B::Lint"
DOWNLOAD="https://cpan.metacpan.org/authors/id/R/RJ/RJBS/B-Lint-1.20.tar.gz"
MD5SUM="fa50cb6d61b46f7ac4bdbebda455d6a0"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="perl-Module-Pluggable"
MAINTAINER="Charadon"
EMAIL="dev@iotib.net"

View file

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description.
# Line up the first '|' above the ':' following the base package name, and
# the '|' on the right side marks the last column you can put a character in.
# You must make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':' except on otherwise blank lines.
|-----handy-ruler------------------------------------------------------|
perl-B-Lint: perl-B-Lint (Perl lint)
perl-B-Lint:
perl-B-Lint: The B::Lint module is equivalent to an extended version of the -w
perl-B-Lint: option of perl. It is named after the program 'lint' which carries
perl-B-Lint: out a similar process for C Programs.
perl-B-Lint:
perl-B-Lint:
perl-B-Lint:
perl-B-Lint:
perl-B-Lint:
perl-B-Lint: