File perl-Sex.spec of Package perl-Sex
#
# - Sex -
# This spec file was automatically generated by cpan2rpm [ver: 2.028]
# The following arguments were used:
# --spec-only --author 'Michael Schwern' --version 0.69 Sex
# For more information on cpan2rpm please visit: http://perl.arix.com/
#
%define pkgname Sex
%define filelist %{pkgname}-%{version}-filelist
%define NVR %{pkgname}-%{version}-%{release}
%define maketest 1
name: perl-Sex
summary: Sex - Perl teaches the birds and the bees
version: 0.69
release: 1
vendor: Michael Schwern
packager: Arix International <cpan2rpm@arix.com>
license: Artistic
group: Applications/CPAN
url: http://www.cpan.org
buildroot: %{_tmppath}/%{name}-%{version}-%(id -u -n)
buildarch: noarch
prefix: %(echo %{_prefix})
source: http://search.cpan.org//CPAN/authors/id/M/MS/MSCHWERN/Sex-0.69.tar.gz
%description
Heterogeneous recombination of Perl packages.
Given two (or more, I'm a liberal guy) packages, Sex.pm will recombine
their symbols at random recombining them into the new module thus
providing a cross-section of its functions and global variables.
It will also push the parent classes onto the child's @ISA array.
So you could do:
package Net::SFTP;
use Sex qw(Net::FTP Net::SSLeay);
And get a secure FTP client!
The recombination occurs in such a way to ensure that the child will
contain -all- the symbols of both parents. Should two (or more)
parents wish to bestow the same symbol on its child one will be chosen
at random.
For example:
package DejaNews;
use Sex qw(LWP::Simple Net::NNTP);
LWP::Simple and Net::NNTP both have a head() function and thus they
try to give head() to their child. Sex.pm will suck the head() off
either LWP::Simple or Net::NNTP and stick it to DejaNews. Afterwards,
DejaNews can procede to finally use its head().
Here's another timely example for Sex in the 21st century:
package URI::Bot9000;
use Sex qw(URI LWP::RobotUA protected);
Because of the dire consequences of having sex with URI, one should
make sure you're well protected.
#
# This package was generated automatically with the cpan2rpm
# utility. To get this software or for more information
# please visit: http://perl.arix.com/
#
%prep
%setup -q -n %{pkgname}-%{version}
chmod -R u+w %{_builddir}/%{pkgname}-%{version}
%build
grep -rsl '^#!.*perl' . |
grep -v '.bak$' |xargs --no-run-if-empty \
%__perl -MExtUtils::MakeMaker -e 'MY->fixin(@ARGV)'
CFLAGS="$RPM_OPT_FLAGS"
%{__perl} Makefile.PL `%{__perl} -MExtUtils::MakeMaker -e ' print qq|PREFIX=%{buildroot}%{_prefix}| if \$ExtUtils::MakeMaker::VERSION =~ /5\.9[1-6]|6\.0[0-5]/ '`
%if 0%{?suse_version} > 0
%{__sed} -i -e 's|site_perl|vendor_perl|g' Makefile
touch ./suse
%endif
%{__make}
%if %maketest
%{__make} test
%endif
%install
%{makeinstall} `%{__perl} -MExtUtils::MakeMaker -e ' print \$ExtUtils::MakeMaker::VERSION <= 6.05 ? qq|PREFIX=%{buildroot}%{_prefix}| : qq|DESTDIR=%{buildroot}| '`
cmd=/usr/share/spec-helper/compress_files
[ -x $cmd ] || cmd=/usr/lib/rpm/brp-compress
[ -x $cmd ] && $cmd
# SuSE Linux
%if 0%{?suse_version} < 1110
%{__mkdir_p} %{buildroot}/var/adm/perl-modules
%{__cat} `find %{buildroot} -name "perllocal.pod"` \
| %{__sed} -e s+%{buildroot}++g \
> %{buildroot}/var/adm/perl-modules/%{name}
%endif
# remove special files
find %{buildroot} -name "perllocal.pod" \
-o -name ".packlist" \
-o -name "*.bs" \
|xargs -i rm -f {}
# no empty directories
find %{buildroot}%{_prefix} \
-type d -depth \
-exec rmdir {} \; 2>/dev/null
%{__perl} -MFile::Find -le '
find({ wanted => \&wanted, no_chdir => 1}, "%{buildroot}");
print "%doc README";
for my $x (sort @dirs, @files) {
push @ret, $x unless indirs($x);
}
(-e "./suse") ? print join "\n", sort map {s|site_perl|vendor_perl|;$_}@ret
: print join "\n", sort @ret;
sub wanted {
return if /auto$/;
local $_ = $File::Find::name;
my $f = $_; s|^\Q%{buildroot}\E||;
return unless length;
return $files[@files] = $_ if -f $f;
$d = $_;
/\Q$d\E/ && return for reverse sort @INC;
$d =~ /\Q$_\E/ && return
for qw|/etc %_prefix/man %_prefix/bin %_prefix/share|;
$dirs[@dirs] = $_;
}
sub indirs {
my $x = shift;
$x =~ /^\Q$_\E\// && $x ne $_ && return 1 for @dirs;
}
' > %filelist
[ -z %filelist ] && {
echo "ERROR: empty %files listing"
exit -1
}
%clean
[ "%{buildroot}" != "/" ] && rm -rf %{buildroot}
%files -f %filelist
%defattr(-,root,root)
%changelog
* Thu May 20 2010 mweckbecker@s3gfault
- Initial build.