dev-perl/Authen-Libwrap: -r bump fix for bug #737212

This overrides the magic detection in Build.PL, which was previously
creating problems for LD=lld due to the inclusion of "/usr/lib/" instead
of "/usr/lib64/".

This employs get_libdir to resolve the right version, and passes
expected config into Build.PL, and patches Build.PL to simply die when
the passed values don't look usable, instead of doing some weird config
discovery which could possibly do wrong things.

Bug: https://bugs.gentoo.org/737212
Package-Manager: Portage-2.3.103, Repoman-2.3.22
Signed-off-by: Kent Fredric <kentnl@gentoo.org>
This commit is contained in:
Kent Fredric
2020-08-16 13:26:19 +12:00
parent 085dd00ce3
commit 8cd94a41de
2 changed files with 144 additions and 0 deletions

View File

@@ -0,0 +1,46 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
DIST_AUTHOR=DMUEY
DIST_VERSION=0.23
DIST_EXAMPLES=("example.pl")
inherit perl-module multilib
DESCRIPTION="A Perl access to the TCP Wrappers interface"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="test"
RESTRICT="!test? ( test )"
RDEPEND="sys-apps/tcp-wrappers"
DEPEND="dev-perl/Module-Build"
BDEPEND="${RDEPEND}
>=dev-perl/Module-Build-0.420.0
virtual/perl-ExtUtils-CBuilder
test? (
virtual/perl-Test-Simple
dev-perl/Test-Exception
)
"
PATCHES=(
"${FILESDIR}/${PN}-0.23-inc-paths.patch"
)
PERL_RM_FILES=(
t/03_pod.t
t/02_maintainer.t
)
src_configure() {
unset LD
if [[ -n "${CCLD}" ]]; then
export LD="${CCLD}"
fi
GENTOO_INCDIR="${EPREFIX}/usr/include" \
GENTOO_LIBDIR="${EPREFIX}/usr/$(get_libdir)" \
perl-module_src_configure
}
src_compile() {
./Build --config optimize="${CFLAGS}" build || die
}

View File

@@ -0,0 +1,98 @@
From 012d607fa5ca2dd8d7b48110a9639841cd3db704 Mon Sep 17 00:00:00 2001
From: Kent Fredric <kentnl@gentoo.org>
Date: Sun, 16 Aug 2020 12:59:38 +1200
Subject: Remove libdir/incdir autodetection magic
Instead, in favour of gentoo controled paths and hard-erroring when
they're wrong.
Bug: https://bugs.gentoo.org/737212
---
Build.PL | 70 +++++++++++---------------------------------------------
1 file changed, 13 insertions(+), 57 deletions(-)
diff --git a/Build.PL b/Build.PL
index c76c1d8..d2179de 100644
--- a/Build.PL
+++ b/Build.PL
@@ -9,64 +9,20 @@ use Module::Build;
use File::Spec;
-my $inc_dir;
-my $lib_dir;
-
-# possible prefixes where we might find libwrap.a
-# if you know of other common ones please let me know
-my @prefixes = (
- File::Spec->catdir( File::Spec->rootdir, 'usr' ),
- File::Spec->catdir( File::Spec->rootdir, 'usr', 'local' ),
- File::Spec->catdir( File::Spec->rootdir, 'opt' ),
- File::Spec->catdir( File::Spec->rootdir, 'opt', 'local' ),
- File::Spec->catdir( File::Spec->rootdir, 'opt', 'libwrap' ),
- File::Spec->catdir( File::Spec->rootdir, 'opt', 'tcpwrappers' ),
-);
-
-# try to figure out where libwrap.a is
-for my $prefix( @prefixes ) {
- for my $libname( qw|libwrap.so libwrap.a| ) {
- my $candidate = File::Spec->catfile( $prefix, 'lib', $libname );
- if( -e $candidate && -f _ && -r _ ) {
- my $y_n = Module::Build->y_n(
- "do you want to link against $candidate?", "y"
- );
- if( $y_n ) {
- $lib_dir = File::Spec->catdir( $prefix, 'lib' );
- last;
- }
- }
- }
-}
-
-# try to figure out where tcpd.h is
-for my $prefix( @prefixes ) {
- my $candidate = File::Spec->catfile( $prefix, 'include', 'tcpd.h' );
- if( -e $candidate && -f _ && -r _ ) {
- my $y_n = Module::Build->y_n(
- "do you want to use $candidate as your header?", "y"
- );
- if( $y_n ) {
- $inc_dir = File::Spec->catdir( $prefix, 'include' );
- last;
- }
- }
-}
-
-# if we can't find it, prompt
-unless( $inc_dir ) {
- $inc_dir = Module::Build->prompt(
- "enter include directory to use:",
- File::Spec->catdir($prefixes[0], 'include')
- );
-}
-unless( $lib_dir ) {
- $lib_dir = Module::Build->prompt(
- "enter library directory to use:",
- File::Spec->catdir($prefixes[0], 'lib')
- );
-}
+my $inc_dir = $ENV{GENTOO_INCDIR};
+my $lib_dir = $ENV{GENTOO_LIBDIR};
+die "GENTOO_LIBDIR not set" unless $lib_dir;
+die "GENTOO_INCDIR not set" unless $inc_dir;
+
+die "No usable libwrap.so in $lib_dir" unless -e File::Spec->catfile( $lib_dir, 'libwrap.so' )
+ and -f _ and -r _;
+
+die "No usable tcpd.h in $inc_dir" unless -e File::Spec->catfile( $inc_dir, 'tcpd.h' )
+ and -f _ and -r _;
+
+warn "$0 libdir: $lib_dir\n";
+warn "$0 incdir: $inc_dir\n";
# create the Buildfile
Module::Build->new(
--
2.28.0