Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37562328
en ru br
Репозитории ALT
S:5.34.1-alt1
5.1: 5.8.9-alt3
4.1: 5.8.8-alt19.M41.1
4.0: 5.8.8-alt14
+updates:5.8.8-alt14
3.0: 5.8.7-alt2
www.altlinux.org/Changes

Группа :: Разработка/Perl
Пакет: perl

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

%define major 5
%define minor 8
%define micro 7

Name: perl
Version: %major.%minor.%micro
Release: alt2
Epoch: 1

%define sover %major.%minor

%define interp_compat_v 5.6.1 5.6.0
%define binary_compat_v 5.8.6 5.8.5 5.8.4 5.8.3 5.8.2 5.8.1 5.8.0
%define inc_v_list %(echo %binary_compat_v | sed 's,[0-9.]\\+,&/%perl_arch_os,g') %binary_compat_v %interp_compat_v

Summary: The Perl programming language
License: GPL or Artistic
Group: Development/Perl
Url: http://www.perl.org
Packager: Alexey Tourbin <at at altlinux.ru>

# $^X can use /proc/self/exe

BuildPreReq: /proc

# Added by buildreq2 on Fri Jun 17 2005 (--without test)

BuildRequires: libdb4-devel libgdbm-devel

# {{{ perl directories


%ifarch %ix86
%define perl_arch i386
%else
%define perl_arch %_arch
%endif

%define perl_arch_os %perl_arch-%_os

# skeleton

%define privlib %_prefix/lib/%name%major
%define archlib %privlib/%perl_arch_os
%define autolib %archlib/auto
%define vendor_privlib %privlib/vendor_perl
%define vendor_archlib %vendor_privlib/%perl_arch_os
%define vendor_autolib %vendor_archlib/auto
%define _perl_lib_path %privlib:%archlib

# site stuff is now used for local installations

%define site_prefix /usr/local
%define site_privlib %site_prefix/lib/%name%major/site_perl/%version
%define site_archlib %site_privlib/%perl_arch_os
%define site_autolib %site_archlib/auto
%define site_man1dir %site_prefix/man/man1
%define site_man3dir %site_prefix/man/man3

# }}}


# {{{ tweak audodeps


# The failure for bytes_heavy.pl is normal, it's not self-contained.

%add_findreq_skiplist */bytes_heavy.pl

# skip Compress::Zlib and Encode dependencies

%add_findreq_skiplist */DBM_Filter/*.pm

# Data::Dumper uses B::Deparse (on demand) to store coderefs

%add_findreq_skiplist */Data/Dumper.pm

# open.pm require Encode and I18N::LangInfo in certain cases

%add_findreq_skiplist */open.pm

# O.pm requires PerlIO::scalar for -q and -qq options

%add_findreq_skiplist */O.pm

# do not provide auxilary unicore libraries

%add_findprov_skiplist */unicore/*/*

# do not provide demo files

%add_findprov_skiplist */demo/*

# }}}


Source0: ftp://ftp.perl.org/pub/CPAN/src/%name-%version.tar.bz2

# legacy libraries for perl4-compat

Source2: %name-5.6.1-chat2.pl
Source3: %name-5.6.1-ftp.pl

# {{{ patches


# fix build and install scripts

Patch0: %name-5.8.6-alt-makefile-soname.patch
Patch1: %name-5.8.6-alt-rh-makefile-ldflags.patch
Patch2: %name-5.8.6-alt-installperl-suidperl.patch
Patch3: %name-5.8.6-alt-installperl-0755.patch
Patch4: %name-5.8.6-alt-configure-lib64.patch
Patch5: %name-5.8.6-alt-hints-lib64.patch
Patch6: %name-5.8.7-alt-configpm-common.patch

# cleanup build dependencies

Patch10: %name-5.8.6-alt-configure-trylist.patch
Patch11: %name-5.8.3-alt-configure-no-perl.patch
Patch12: %name-5.8.6-alt-configure-no-ksh.patch
Patch13: %name-5.8.6-alt-configure-no-socks.patch
Patch14: %name-5.8.6-alt-hints-no-csh.patch
Patch15: %name-5.8.6-alt-hints-no-libndbm.patch
Patch16: %name-5.8.6-alt-DynaLoader-hints-no-libelf.patch

# fix build and install issues for modules

Patch20: %name-5.8.6-alt-ExtUtils-Install-0755.patch
Patch21: %name-5.8.6-alt-ExtUtils-Manifest-0755.patch
Patch22: %name-5.8.6-alt-ExtUtils-MM_Unix-UNINST.patch
Patch23: %name-5.8.6-alt-ExtUtils-MM_Unix-fixin.patch
Patch24: %name-5.8.6-alt-mdk-ExtUtils-MM_Unix-LD_RUN_PATH.patch
Patch25: %name-5.8.6-alt-deb-ExtUtils-Liblist-Kid-LD_RUN_PATH.patch
Patch26: %name-5.8.6-alt-ExtUtils-MakeMaker-no-parent-prereq.patch
Patch27: %name-5.8.7-alt-ExtUtils-xsubpp-static_XS.patch

# core fixes and enhancements

Patch30: %name-5.8.6-alt-deb-etc-perl5.patch
Patch31: %name-5.8.6-alt-rh-suidperl-syslog.patch
Patch32: %name-5.8.7-alt-pp_sys-getppid.patch

# module fixes and enhancements

Patch40: %name-5.8.7-alt-AnyDBM_File-DB_File.patch
Patch41: %name-5.8.6-alt-Cwd-libc-realpath.patch
Patch42: %name-5.8.6-alt-diagnostics-trypod.patch
Patch43: %name-5.8.6-alt-File-Copy-preserve.patch
Patch44: %name-5.8.6-alt-ExtUtils-MakeMaker-CAN-2004-0976.patch
Patch45: %name-5.8.6-alt-pod-vendor-dirs-perlbug34500.patch
Patch46: %name-5.8.7-alt-DB_File-db_version.patch

# fix scripts

Patch50: %name-5.8.3-owl-perlbug-vitmp.patch
Patch51: %name-5.8.6-alt-deb-instmodsh-pod.patch
Patch52: %name-5.8.6-alt-pod2usage-no-diagnostics.patch
Patch53: %name-5.8.6-alt-h2ph-no-umask.patch
Patch54: %name-5.8.6-alt-instmodsh-CAN-2004-0976.patch

# assist perl.req

Patch60: %name-5.8.6-alt-req-perl5db-threads.patch
Patch61: %name-5.8.7-alt-req-Test-Builder-0.22-threads.patch
Patch62: %name-5.8.7-alt-req-ExtUtils-Constant-Base-0.01-perl56.patch

# }}}


# {{{ packages


%package -n perl4-compat
Summary: Perl 4 legacy libraries and *.ph files
Group: Development/Perl
AutoReq: yes, nolibperl
Requires: perl-base = %epoch:%version-%release

%package base
Summary: The Perl programming language
Group: System/Base
AutoReq: yes, nolibperl
Provides: %name = %epoch:%version %_bindir/%name
Obsoletes: %name
Provides:  perl-Digest-MD5 perl-Time-HiRes perl-MIME-Base64
Obsoletes: perl-Digest-MD5 perl-Time-HiRes perl-MIME-Base64

%package devel
Summary: Perl development files
Group: Development/Perl
AutoReq: yes, nolibperl
Requires: perl-base = %epoch:%version-%release

%package pod
Summary: Perl documentation set
Group: Development/Perl
AutoReq: yes, nolibperl
Requires: perl-base = %epoch:%version-%release

%package threads
Summary: Perl threads
Group: Development/Perl
AutoReq: yes, nolibperl
Requires: perl-base = %epoch:%version-%release

%package unicore
Summary: Unicode support for Perl
Group: Development/Perl
AutoReq: yes, nolibperl
Requires: perl-base = %epoch:%version-%release

%package DBM
Summary: Perl modules for accessing DBM databases
Group: Development/Perl
AutoReq: yes, nolibperl
Requires: perl-base = %epoch:%version-%release
Provides:  perl-DB_File
Obsoletes: perl-DB_File

%package Storable
Summary: Persistence for Perl data structures
Group: Development/Perl
AutoReq: yes, nolibperl
Requires: perl-base = %epoch:%version-%release

%package PerlIO
Summary: PerlIO abstraction layer
Group: Development/Perl
AutoReq: yes, nolibperl
Requires: perl-base = %epoch:%version-%release

%package suidperl
Summary: suidperl, for use with setuid perl scripts
Group: Development/Perl
AutoReq: yes, nolibperl
Requires: perl-base = %epoch:%version-%release
Requires(pre,post): control

%package full
Summary: The Perl programming language (full kit installer)
Group: Development/Perl
# built from this source package
Requires: perl4-compat perl-base = %epoch:%version-%release perl-devel perl-pod
Requires: perl-threads perl-unicore perl-DBM perl-Storable perl-PerlIO
# packaged separately
Requires: perl-libnet >= 1:1.19 perl-CGI >= 3.10
Requires: perl-Memoize >= 1.01
Requires: perl-Term-ReadLine-Gnu >= 1.15 perl-CPAN >= 1.76
# former perl-base
Requires: perl-Net-Ping >= 2.31 perl-Text-Balanced >= 1.95
Requires: perl-Tie-File >= 0.96 perl-Attribute-Handlers >= 0.78
Requires: perl-Math-BigInt >= 1.77 perl-Math-BigRat >= 0.15 perl-bignum >= 0.17
Requires: perl-Filter >= 1.30 perl-Filter-Simple >= 0.79 perl-Switch >= 2.10
Requires: perldoc >= 3.14 perl-NEXT >= 0.60
# former perl-i18n
Requires: perl-I18N-LangTags >= 0.35 perl-Locale-Maketext >= 1.09
Requires: perl-Locale-Codes >= 2.07
Requires: perl-Unicode-Normalize >= 0.32 perl-Unicode-Collate >= 0.50
Requires: perl-Encode >= 2.10
# other packages (e.g. for CPAN)
Requires: perl-Compress-Zlib >= 1.34 perl-libwww >= 5.803

# }}}


# {{{ descriptions


%description
Perl is a high-level programming language with roots in C, sed, awk
and shell scripting.  Perl is good at handling processes and files,
and is especially good at handling text.  Perl's hallmarks are
practicality and efficiency.  While it is used to do a lot of
different things, Perl's most common applications (and what it excels
at) are probably system administration utilities and web programming.
A large proportion of the CGI scripts on the web are written in Perl.

%description -n perl4-compat
This package contains old Perl libraries for backward compatibility
with Perl 4 programs which may require it; these libraries are no longer
maintained.  It also contains *.ph Perl header files and h2ph utility
for creating them from C headers.

%description base
This package provides a minimal (yet mostly sufficient) Perl setup,
i.e. the %_bindir/perl binary plus a basic set of Perl libraries.

Other important packages are perl-devel (development files),
perl-pod (documentation) and perldoc (for displaying documentation).

%description devel
This package contains components required for developing applications
which embed a Perl interpreter and compiling perl modules (AutoSplit,
ExtUtils::MakeMaker, Test modules, B compiler, header files, debugger).

%description pod
This package contains Perl documentation set in Pod format.

%description threads
This package contains thread-related Perl modules.  threads module
provides interface to interpreter-based threading implementation
(ithreads).  threads::shared allows data sharing between threads.
Thread module refers to the old 5005threads implementation.
Thread::Queue and Thread::Semaphore provide thread-safe primitives.

%description unicore
This package provides basic Unicode support for Perl (Unicode Character
Database 4.1.0, Unicode::UCD module, and charnames pragma).

%description DBM
This package contains Perl modules for tied access to DBM files.
AnyDBM_File provides a framework for multiple DBM implementations
(DB_File, NDBM_File, GDBM_File, and SDBM_File). DBM_Filter allows
filtering DBM keys/values by user-defined code.

%description Storable
The Storable module brings persistence to Perl data structures.
Any Perl data can be stored to disk and retrieved at a later time.

%description PerlIO
This package contains PerlIO-related modules.  Introduced just after
perl-5.7.0, PerlIO is an implementation of the input/output abstraction
which allows perl more control over how IO is done as it decouples IO
from the way the operating system and C library choose to do things.

%description suidperl
suidperl is a setuid binary copy of perl that allows for (hopefully)
more secure running of setuid perl scripts.

%description full
This package helps to install an extended set of Perl packages.
It contains no files, only dependencies.

# }}}


%prep
%setup -q
%__cp -a %SOURCE2 lib/chat2.pl
%__cp -a %SOURCE3 lib/ftp.pl

# {{{ remove modules for which we have separate packages


drop_util()
{
%__rm -fv utils/$1*
%__subst -p "/\\/$1/d" utils.lst
%__subst -p "s,./$1 ,,g; s,$1 ,,g; s,$1\.PL ,,g" utils/Makefile
}

: without Attribute::Handlers
%__rm -rfv lib/Attribute/Handlers*

: without CGI
%__rm -rfv lib/CGI*

: without CPAN
%__rm -rfv lib/CPAN*
%__rm -fv t/lib/1_compile.t
drop_util cpan

: without Encode
%__rm -rfv {ext,lib}/Encode*
drop_util enc2xs
drop_util piconv

: without Filter::Simple and Filter::Util::Call
%__rm -rfv {ext,lib}/Filter

: without I18N::LangTags
%__rm -rfv lib/I18N/LangTags*

: without libnet and Net::Ping
find lib/Net/* -not -name '*ent.*' -print0 |xargs -r0 rm -rfv --
drop_util libnetcfg

: without Locale::Codes
%__rm -rfv lib/Locale/{Codes,Constants,Country,Currency,Language,Script}*

: without Locale::Maketext
%__rm -rfv lib/Locale/Maketext*

: without Memoize
%__rm -rfv lib/Memoize*

: without Math::Big{Int,Float,Rat} and big{num,int,rat}
%__rm -rfv lib/Math/Big* lib/bignum lib/big*.pm
%__rm -fv t/op/pack.t

: without NEXT
%__rm -rfv lib/NEXT*

: without Switch
%__rm -frv lib/Switch*

: without perldoc and Pod::Perldoc
%__rm -rfv lib/Pod/Perldoc*
drop_util perldoc

: without Term::ReadLine, which is in perl-Term-ReadLine-Gnu package
%__rm -fv lib/Term/ReadLine*

: without Text::Balanced
%__rm -rfv lib/Text/Balanced*

: without Tie::File
%__rm -rfv lib/Tie/File*

: without Unicode::Collate
%__rm -rfv lib/Unicode/Collate*

: without Unicode::Normalize
%__rm -rfv {ext,lib}/Unicode/Normalize*

# further cleanup


: these ExtUtils::MakeMaker backends are for non-Unix systems
%__rm -fv lib/ExtUtils/MM_{BeOS,Cygwin,DOS,MacOS,NW5,OS2,UWIN,VMS,Win32,Win95}.pm

: not needed
drop_util perlivp

# }}}


# {{{ apply patches


%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1 -b -
%patch10 -p1
%patch11 -p1
%patch12 -p1
%patch13 -p1
%patch14 -p1
%patch15 -p1
%patch16 -p1
%patch20 -p1
%patch21 -p1
%patch22 -p1
%patch23 -p1
%patch24 -p1
%patch25 -p1
%patch26 -p1
%patch27 -p1
%patch30 -p1
%patch31 -p1
%patch32 -p1
%patch40 -p1
%patch41 -p1
%patch42 -p1
%patch43 -p1
%patch44 -p1
%patch45 -p1
%patch46 -p1
%patch50 -p1
%patch51 -p1
%patch52 -p1
%patch53 -p1
%patch54 -p1
%patch60 -p1
%patch61 -p1
%patch62 -p1

# }}}


: fixup MANIFEST
%__mv MANIFEST MANIFEST.orig
set +x
while read f i; do if [ -f "$f" ]; then printf %s\\t%s\\n "$f" "$i"; fi; \
done <MANIFEST.orig >MANIFEST
set -x
! diff -ub MANIFEST.orig MANIFEST
touch -r MANIFEST.orig MANIFEST

# enabled in alt-makefile-soname.patch

%__cat <<__EOF__ >lib%name.def
PERL_5.8.6 {
Perl_Guse_safe_putenv_ptr;
};
PERL_5.8.7 {
Perl_Ipte_arenaroot_ptr;
Perl_Ipte_root_ptr;
Perl_my_swabn;
Perl_op_refcnt_lock;
Perl_op_refcnt_unlock;
Perl_savesvpv;
};
DynaLoader {
boot_DynaLoader;
XS_DynaLoader_dl_error;
XS_DynaLoader_dl_find_symbol;
XS_DynaLoader_dl_install_xsub;
XS_DynaLoader_dl_load_file;
XS_DynaLoader_dl_undef_symbols;
XS_DynaLoader_dl_unload_file;
};
__EOF__

%build
# Custom optimization.  This will affect all perl binary modules.  Why really?
# Because the whole perlapi(1) is heavily based on macros.  Here is an example:
# $ echo "SvPV(x,y)" | gcc -include /usr/lib/perl5/i386-linux/CORE/perl.h -E - | tail -1
# (((x)->sv_flags & (0x00040000)) == 0x00040000 ? ((y = ((XPV*) (x)->sv_any)->xpv_cur), ((XPV*) (x)->sv_any)->xpv_pv) : Perl_sv_2pv_flags(my_perl, x,&y,2))
%define _optlevel s
%add_optflags -D_GNU_SOURCE -momit-leaf-frame-pointer

: we expect a working /proc/self/exe
[ -L /proc/self/exe -a -e /proc/self/exe ]

sh Configure -de %{?!_enable_debug: -rs} \
-Darchname=%perl_arch_os -Dd_dosuid -Ud_csh \
-Dlibswanted="dl m c crypt db ndbm gdbm" \
-Duseshrplib -Dlibperl=lib%name.so.%sover \
-Dcc=gcc -Doptimize="%optflags" -Dcccdlflags='%optflags_shared' \
-Dccdlflags="-rdynamic -Wl,-O1" -Dlddlflags="-shared -Wl,-O1" -Dldflags="-Wl,-O1" \
-Dprefix=%_prefix -Dprivlib=%privlib -Darchlib=%archlib \
-Dvendorprefix=%_prefix -Dvendorlib=%vendor_privlib -Dvendorarch=%vendor_archlib \
-Dman1dir=%_man1dir -Dman3dir=%_man3dir -Dvendorman1dir=%_man1dir -Dvendorman3dir=%_man3dir \
-Dsiteprefix=%site_prefix -Dsitelib=%site_privlib -Dsitearch=%site_archlib \
-Dsiteman1dir=%site_man1dir -Dsite_man3dir=%site_man3dir \
-Dcf_by='%vendor' -Dcf_email='%packager' \
-Dmyhostname=localhost -Dperladmin=root at localhost \
-Dmyuname="$(uname -mrs)" -Dnewmyuname="$(uname -mrs)" \
-Dinc_version_list='%inc_v_list' \
-Dpager='%_bindir/less -isR' \
-Di_shadow -Di_syslog \
-Dusethreads -Duseithreads \
-Duselargefiles \
-Di_db -Di_gdbm -Di_ndbm -Di_sdbm -Ui_odbm

# eliminate rpath (implies later libperl relocation)

%__subst -p 's at  -Wl,-rpath[,=]%archlib/CORE at  at g' config.sh [Mm]akefile* myconfig

# don't export XS(XS_...) functions

# enabled in alt-xsubpp-static_XS.patch
export XSUBPP_STATIC_XS=1

# when CWD.so is not available, Cwd.pm falls back to readdir method that

# scans the whole filesystem (this confuses buildreq); so build Cwd.so ASAP
%__make lib/auto/Cwd/Cwd.so lib/auto/File/Glob/Glob.so perl

# get rid of miniperl because it cannot load Cwd.so

%__ln_s -f perl miniperl

# DynaLoader goes to libperl.so (see debian bug #247291; [devel] DynaLoader.a)

%__rm -fv lib%name.so.%sover perl suidperl lib/auto/DynaLoader/DynaLoader.a
%__ar rcs lib/auto/DynaLoader/DynaLoader.a
%__make lib%name.so.%sover ARCHOBJS=ext/DynaLoader/DynaLoader.o
%__make perl suidperl DYNALOADER=

# build the rest (SMP incompatible)

%__make

# fix binares

: a2p wants extra libraries
%__make -C x2p libs= clean all

%ifdef __buildreqs
%def_without test
%else
%def_with test
%endif

%if_with test
export LD_LIBRARY_PATH=$PWD LD_BIND_NOW=1 PERL_DL_NONLAZY=1
%__ln_s -f lib%name.so.%sover lib%name.so
%__make test
%endif

: OS-specific docs, linked to e.g ../README.aix
find pod/ -name '*.pod' -type l -print0 |xargs -r0 %__rm -fv --

: dummy
%__rm -fv lib/dbm_filter_util.pl

%install
export LD_LIBRARY_PATH=$PWD PERL5LIB=$PWD/lib PERL=$PWD/perl
%make_install install.perl DESTDIR=%buildroot UNINST=undef

# hack for pre-releases

#__mv %buildroot%_bindir/perl%major.* %buildroot%_bindir/perl%version
#__mv %buildroot%_bindir/sperl%major.* %buildroot%_bindir/sperl%version

# use symlinks instead of hardlinks

%__ln_s -f perl%version %buildroot%_bindir/perl
%__ln_s -f perl%version %buildroot%_bindir/perl%major
%__ln_s -f perl%version %buildroot%_bindir/suidperl
%__ln_s -f c2ph %buildroot%_bindir/pstruct
%__ln_s -f psed %buildroot%_bindir/s2p

# skeleton

%__mkdir_p \
%buildroot%vendor_privlib \
%buildroot%vendor_privlib/auto \
%buildroot%vendor_archlib \
%buildroot%vendor_autolib \
%buildroot%vendor_autolib \
%buildroot%_sysconfdir/%name%major

# relocate libperl.so.%sover

%__mkdir_p %buildroot%_libdir
%__mv %buildroot%archlib/CORE/lib%name.so.%sover %buildroot%_libdir/lib%name.so.%version
%__ln_s -f lib%name.so.%version %buildroot%_libdir/lib%name.so.%sover
%__ln_s -f lib%name.so.%version %buildroot%_libdir/lib%name.so

: check DynaLoader
%__nm -D %buildroot%_libdir/lib%name.so.%sover |%__grep ' T boot_DynaLoader'
%__nm -D %buildroot%_bindir/perl |%__grep ' U boot_DynaLoader'
! %__ar tv %buildroot%autolib/DynaLoader/DynaLoader.a |%__grep .

: we expect kernel header files from glibc-kernheaders package
: try /usr/sbin/adjust_kernel_headers default
pkg=`rpm -qf --qf '%{NAME}' %_includedir/linux/version.h`
[ "$pkg" = glibc-kernheaders ]

$PERL %buildroot%_bindir/h2ph -a -d %buildroot%archlib \
syscall.h sys/syscall.h syslog.h sys/syslog.h \
termios.h sys/termios.h asm/termios.h \
sys/ioctl.h sys/socket.h sys/time.h wait.h \
sys/resource.h syslimits.h linux/modsetver.h \
||: machine/ansi.h failed

: these File::Spec backends are for non-Unix systems
%__rm -fv %buildroot%privlib/File/Spec/{Cygwin,Epoc,Mac,OS2,VMS,Win32}.pm

# control facility for suidperl

%__mkdir_p %buildroot%_controldir
%__cat <<\__EOF__ >%buildroot%_controldir/suidperl
#!/bin/sh

. /etc/control.d/functions

BINARY=%_bindir/sperl%version

new_fmode public 4711 root root
new_fmode wheelonly 4710 root wheel
new_fmode restricted 700 root root

control_fmode "$BINARY" "$*" || exit 1
__EOF__
%__chmod 755 %buildroot%_controldir/suidperl

%pre suidperl
%pre_control suidperl
%post suidperl
%post_control -s wheelonly suidperl

%post base -p %post_ldconfig
%postun base -p %postun_ldconfig

# {{{ files


%files -n perl4-compat
%_bindir/h2ph
%_bindir/pl2pm
# skeleton
%dir %privlib
%dir %archlib
# *.ph files
%dir %archlib/asm
%dir %archlib/bits
%dir %archlib/linux
%dir %archlib/sys
%dir %archlib/gnu
%archlib/*.ph
%archlib/*/*.ph
# legacy libraries
%privlib/*.pl
# legacy libraries still in use
%exclude %privlib/ctime.pl
%exclude %privlib/find.pl
%exclude %privlib/getopts.pl
# these are not legacy libraries
%exclude %privlib/bytes_heavy.pl
%exclude %privlib/utf8_heavy.pl
%exclude %privlib/dumpvar.pl
%exclude %privlib/perl5db.pl

%files base
%doc Artistic AUTHORS README
%_bindir/perl
%_bindir/perl%major
%_bindir/perl%version
%_libdir/lib%name.so.%sover
%_libdir/lib%name.so.%version
# skeleton
%dir %privlib
%dir %privlib/auto
%dir %archlib
%dir %autolib
%dir %vendor_privlib
%dir %vendor_privlib/auto
%dir %vendor_archlib
%dir %vendor_autolib
%dir %_sysconfdir/%name%major
# pragma
%privlib/base.pm
%privlib/bytes*
%privlib/constant.pm
%privlib/integer.pm
%archlib/lib.pm
%privlib/locale.pm
%privlib/overload.pm
%archlib/re.pm
%privlib/sigtrap.pm
%privlib/strict.pm
%privlib/subs.pm
%privlib/vars.pm
%privlib/utf8*
%privlib/warnings*
# perl4-compat
%privlib/ctime.pl
%privlib/find.pl
%privlib/getopts.pl
# Loaders
%privlib/AutoLoader.pm
%archlib/DynaLoader.pm
%autolib/DynaLoader
%exclude %autolib/DynaLoader/DynaLoader.a
%privlib/SelfLoader.pm
%archlib/XSLoader.pm
# Utils
%privlib/Hash
%privlib/List
%autolib/List
%privlib/Scalar
# initial unicode support
%dir %privlib/unicore
%dir %privlib/unicore/To
%dir %privlib/unicore/lib
%dir %privlib/unicore/lib/gc_sc
%privlib/unicore/Canonical.pl
%privlib/unicore/Exact.pl
%privlib/unicore/PVA.pl
%privlib/unicore/To/Fold.pl
%privlib/unicore/To/Lower.pl
%privlib/unicore/To/Upper.pl
%privlib/unicore/lib/gc_sc/ASCII.pl
%privlib/unicore/lib/gc_sc/Cntrl.pl
%privlib/unicore/lib/gc_sc/Digit.pl
%privlib/unicore/lib/gc_sc/Print.pl
%privlib/unicore/lib/gc_sc/SpacePer.pl
%privlib/unicore/lib/gc_sc/Uppercas.pl
%privlib/unicore/lib/gc_sc/Word.pl
# modules
%privlib/Carp*
%archlib/Config.pm
%archlib/Config_heavy.pl
%privlib/Class
%archlib/Cwd.pm
%autolib/Cwd
%archlib/Data
%autolib/Data
%privlib/Digest*
%archlib/Digest*
%autolib/Digest
%privlib/English.pm
%archlib/Errno.pm
%privlib/Exporter*
%archlib/Fcntl.pm
%autolib/Fcntl
%privlib/File
%privlib/FileHandle.pm
%archlib/File
%autolib/File
%privlib/FindBin.pm
%privlib/Getopt
%privlib/IO
%archlib/IO
%archlib/IO.pm
%autolib/IO
%privlib/IPC
%archlib/IPC
%autolib/IPC
%archlib/MIME
%autolib/MIME
%privlib/auto/POSIX
%archlib/POSIX.pm
%autolib/POSIX
%privlib/SelectSaver.pm
%archlib/Socket.pm
%autolib/Socket
%privlib/Symbol.pm
%archlib/Sys
%autolib/Sys
%privlib/Text
%privlib/Tie
%privlib/Time
%archlib/Time
%autolib/Time
%privlib/UNIVERSAL.pm
# required for perl.req and perl.prov
%dir %archlib/B
%archlib/B.pm
%dir %autolib/B
%autolib/B/B.so
%archlib/O.pm
%archlib/Opcode.pm
%autolib/Opcode
%archlib/Safe.pm
# rarely used pragma
%privlib/attributes.pm
%privlib/autouse.pm
%archlib/attrs.pm
%autolib/attrs
%privlib/fields.pm
%privlib/filetest.pm
%privlib/if.pm
%privlib/less.pm
%privlib/open.pm
%archlib/ops.pm
%privlib/sort.pm
# rarely used but a part of perl bundle
%privlib/Benchmark.pm
%privlib/DirHandle.pm
%privlib/Env.pm
%privlib/Fatal.pm
%privlib/FileCache.pm
%dir %privlib/I18N
%privlib/I18N/Collate.pm
%dir %archlib/I18N
%archlib/I18N/Langinfo.pm
%autolib/I18N/Langinfo
%dir %privlib/Math
%privlib/Math/Complex.pm
%privlib/Math/Trig.pm
%dir %privlib/Net
%privlib/Net/*ent.pm
%dir %privlib/Search
%privlib/Search/Dict.pm
%privlib/Shell.pm
%dir %privlib/User
%privlib/User/*ent.pm
# can be packaged separately
%_bindir/pod2*
%privlib/Pod
%privlib/Term

%files devel
%_bindir/a2p
%_bindir/c2ph
%_bindir/dprofpp
%_bindir/find2perl
%_bindir/h2xs
%_bindir/instmodsh
%_bindir/perlbug
%_bindir/perlcc
%_bindir/podchecker
%_bindir/podselect
%_bindir/prove
%_bindir/psed
%_bindir/pstruct
%_bindir/s2p
%_bindir/splain
%_bindir/xsubpp
%_libdir/lib%name.so
%privlib/blib.pm
%privlib/diagnostics.pm
%privlib/dumpvar.pl
%privlib/perl5db.pl
%privlib/Dumpvalue.pm
%dir %autolib/DynaLoader
%autolib/DynaLoader/DynaLoader.a
%dir %archlib/CORE
%archlib/CORE/*.h
%archlib/CORE/*.inc
%autolib/re
# perl-devel modules
%privlib/AutoSplit.pm
%privlib/B
%archlib/B
%autolib/B
%exclude %autolib/B/B.so
%archlib/ByteLoader.pm
%autolib/ByteLoader
%privlib/DB.pm
%privlib/Devel
%archlib/Devel
%autolib/Devel
%privlib/ExtUtils
%privlib/Test*
%archlib/XS
%autolib/XS
%dir %privlib/pod
%doc %privlib/pod/a2p.pod
%privlib/pod/perldiag.pod
%doc %archlib/Config.pod
%doc %archlib/POSIX.pod

%files pod
%dir %privlib/pod
%doc %privlib/pod/perl*.pod
%exclude %privlib/pod/perldiag.pod
%exclude %privlib/pod/perldbmfilter.pod

%files threads
%privlib/Thread*
%archlib/threads*
%autolib/threads

%files unicore
%privlib/charnames.pm
%dir %privlib/Unicode
%privlib/Unicode/UCD.pm
%dir %privlib/unicore
%privlib/unicore/*.pl
%privlib/unicore/lib/
%privlib/unicore/To/
# required for Unicode::Normalize
%privlib/unicore/CompositionExclusions.txt
# required for Unicode::UCD
%privlib/unicore/Blocks.txt
%privlib/unicore/CaseFolding.txt
%privlib/unicore/NamedSequences.txt
%privlib/unicore/Scripts.txt
%privlib/unicore/SpecialCasing.txt
%privlib/unicore/UnicodeData.txt
# initial unicode support is in perl-base
%exclude %privlib/unicore/Canonical.pl
%exclude %privlib/unicore/Exact.pl
%exclude %privlib/unicore/PVA.pl
%exclude %privlib/unicore/To/Fold.pl
%exclude %privlib/unicore/To/Lower.pl
%exclude %privlib/unicore/To/Upper.pl
%exclude %privlib/unicore/lib/gc_sc/ASCII.pl
%exclude %privlib/unicore/lib/gc_sc/Cntrl.pl
%exclude %privlib/unicore/lib/gc_sc/Digit.pl
%exclude %privlib/unicore/lib/gc_sc/Print.pl
%exclude %privlib/unicore/lib/gc_sc/SpacePer.pl
%exclude %privlib/unicore/lib/gc_sc/Uppercas.pl
%exclude %privlib/unicore/lib/gc_sc/Word.pl

%files DBM
%privlib/AnyDBM_File.pm
%archlib/DB_File.pm
%autolib/DB_File
%archlib/NDBM_File.pm
%autolib/NDBM_File
%archlib/GDBM_File.pm
%autolib/GDBM_File
%archlib/SDBM_File.pm
%autolib/SDBM_File
%autolib/sdbm
%privlib/DBM_Filter*
%dir %privlib/pod
%doc %privlib/pod/perldbmfilter.pod

%files Storable
%archlib/Storable*
%autolib/Storable*

%files PerlIO
%privlib/PerlIO*
%archlib/PerlIO*
%autolib/PerlIO*

%files suidperl
%config %_controldir/suidperl
%attr(4710,root,wheel) %_bindir/sperl%version
%_bindir/suidperl

%files full

# }}}


%changelog

Полный changelog можно просмотреть здесь

 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin