From 5ce51cb316e3afb3baf0b4c82f45335e161cb011 Mon Sep 17 00:00:00 2001 From: Martin Whitaker Date: Tue, 4 Oct 2022 23:54:06 +0100 Subject: Automatically generate the list of excluded Perl packages. --- config/build.cfg | 1 + config/pkg-exclude-perl.lst | 95 ++++++++++++++++++++++++++++++++++++++ config/pkg-exclude-to-review.lst | 99 ---------------------------------------- config/pkg-exclude.lst | 10 ++++ make-perl-exclude-list.sh | 24 ++++++++++ 5 files changed, 130 insertions(+), 99 deletions(-) create mode 100644 config/pkg-exclude-perl.lst create mode 100755 make-perl-exclude-list.sh diff --git a/config/build.cfg b/config/build.cfg index 5e8c954..1d98299 100644 --- a/config/build.cfg +++ b/config/build.cfg @@ -33,6 +33,7 @@ my $config = { ], package_exclude_lists => [ 'config/pkg-exclude.lst', + 'config/pkg-exclude-perl.lst', 'config/pkg-exclude-to-review.lst', ], biarch_packages => [ diff --git a/config/pkg-exclude-perl.lst b/config/pkg-exclude-perl.lst new file mode 100644 index 0000000..004d845 --- /dev/null +++ b/config/pkg-exclude-perl.lst @@ -0,0 +1,95 @@ +# This is a list of the perl modules provided by the perl and perl-base +# packages. Many of these modules are also provided by standalone packages. +# This list allows us to avoid including both on the installer media. +# +# This file is automatically generated by the make-perl-exclude-list script. +# It may need to be manually edited if the perl or perl-base package does not +# provide a suitable version of a particular module (e.g. if another package +# requires a different version, and that version is available as a standalone +# package). +# +perl-Archive-Tar +perl-Attribute-Handlers +perl-autodie +perl-AutoLoader +perl-bignum +perl-Compress-Raw-Bzip2 +perl-Compress-Raw-Zlib +perl-Config-Perl-V +perl-constant +perl-CPAN +perl-CPAN-Meta +perl-CPAN-Meta-Requirements +perl-CPAN-Meta-YAML +perl-Data-Dumper +perl-DB_File +perl-Devel-PPPort +perl-Digest +perl-Digest-MD5 +perl-Digest-SHA +perl-Encode +perl-experimental +perl-Exporter +perl-ExtUtils-CBuilder +perl-ExtUtils-Install +perl-ExtUtils-MakeMaker +perl-ExtUtils-Manifest +perl-ExtUtils-ParseXS +perl-File-Fetch +perl-File-Path +perl-File-Temp +perl-Filter-Simple +perl-Getopt-Long +perl-HTTP-Tiny +perl-IO-Socket-IP +perl-IO-Zlib +perl-IPC-Cmd +perl-IPC-SysV +perl-JSON-PP +perl-libnet +perl-Locale-Codes +perl-Locale-Maketext +perl-Locale-Maketext-Simple +perl-Math-BigInt +perl-Math-BigRat +perl-Math-Complex +perl-Memoize +perl-MIME-Base64 +perl-Module-CoreList +perl-Module-Load +perl-Module-Load-Conditional +perl-Module-Loaded +perl-Module-Metadata +perl-Net-Ping +perl-NEXT +perl-Params-Check +perl-parent +perl-PerlIO-via-QuotedPrint +perl-Perl-OSType +perl-Pod-Escapes +perl-Pod-Perldoc +perl-Pod-Simple +perl-Safe +perl-Search-Dict +perl-SelfLoader +perl-Socket +perl-Sys-Syslog +perl-Term-ANSIColor +perl-Term-ReadLine +perl-Test-Harness +perl-Test-Simple +perl-Test-use-ok +perl-Text-Abbrev +perl-Text-Balanced +perl-Text-ParseWords +perl-Thread-Queue +perl-threads +perl-Thread-Semaphore +perl-threads-shared +perl-Tie-RefHash +perl-Time-HiRes +perl-Time-Local +perl-Time-Piece +perl-Unicode-Collate +perl-Unicode-Normalize +perl-XSLoader diff --git a/config/pkg-exclude-to-review.lst b/config/pkg-exclude-to-review.lst index e725e49..e50fba7 100644 --- a/config/pkg-exclude-to-review.lst +++ b/config/pkg-exclude-to-review.lst @@ -52,102 +52,3 @@ x86_64: lib64cogl-pango-gir2.0 x86_64: lib64keybinder-gir0.0 x86_64: lib64kf5konq-devel x86_64: lib64wnck-gir1.0 - -perl-AppConfig -perl-Archive-Tar -perl-Archive-Zip -perl-CPAN -perl-CPAN-Checksums -perl-CPAN-Meta -perl-CPAN-Meta-Requirements -perl-CPAN-Meta-YAML -perl-Compress-Bzip2 -perl-Compress-Raw-Bzip2 -perl-Compress-Raw-Zlib -perl-Data-Compare -perl-Data-Dumper -perl-Data-Section-Simple -perl-Digest -perl-Digest-MD5 -perl-Encode -perl-Expect -perl-ExtUtils-CBuilder -perl-ExtUtils-Manifest -perl-ExtUtils-ParseXS -perl-File-Find-Rule -perl-Filter -perl-Filter-Simple -perl-HTTP-Tiny -perl-IO-Compress -perl-IO-Tty -perl-IO-Zlib -perl-IPC-Cmd -perl-IPC-SysV -perl-JSON-PP -perl-Locale-Maketext -perl-Locale-Maketext-Lexicon -perl-Locale-Maketext-Simple -perl-MIME-Base64 -perl-Memoize -perl-Module-CoreList -perl-Module-Load -perl-Module-Load-Conditional -perl-Module-Metadata -perl-Module-Signature -perl-Number-Compare -perl-Params-Check -perl-PathTools -perl-Perl-OSType -perl-Pod-Escapes -perl-Pod-POM -#perl-Pod-Parser -perl-Pod-Perldoc -perl-Pod-Simple -perl-Safe -perl-Scalar-List-Utils -perl-SelfLoader -perl-Socket -perl-Template-Toolkit -perl-Term-ReadLine -perl-Text-Abbrev -perl-Text-Balanced -perl-Text-Glob -perl-Text-Haml -perl-Tie-Watch -perl-Time-Piece -perl-Unicode-Collate -perl-Unicode-Normalize -perl-YAML-LibYAML -perl-YAML-Syck -perl-any -perl-bignum -perl-first -perl-parent -perl-threads -perl-threads-shared - -x86_64: perl-AutoLoader -x86_64: perl-Exporter -x86_64: perl-ExtUtils-Install -x86_64: perl-ExtUtils-MakeMaker -x86_64: perl-File-Path -x86_64: perl-File-Temp -x86_64: perl-Getopt-Long -x86_64: perl-IO-Extended -x86_64: perl-IO-Socket-IP -x86_64: perl-Math-BigInt -x86_64: perl-Math-Complex -x86_64: perl-Net-Ping -x86_64: perl-Term-ANSIColor -x86_64: perl-Test-Harness -x86_64: perl-Test-Simple -x86_64: perl-Text-ParseWords -x86_64: perl-Text-Tabs+Wrap -x86_64: perl-Tie-RefHash -x86_64: perl-Time-Local -x86_64: perl-XSLoader -x86_64: perl-autodie -x86_64: perl-constant -x86_64: perl-libnet -x86_64: perl-podlators -x86_64: perl-pragma-base diff --git a/config/pkg-exclude.lst b/config/pkg-exclude.lst index acc88ff..2a0bbb5 100644 --- a/config/pkg-exclude.lst +++ b/config/pkg-exclude.lst @@ -26,4 +26,14 @@ task-windowmaker texlive x11-font-bh-type1 +# These provide a superset of the modules included in perl and perl-base. +# The subset provided by perl and perl-base is currently sufficient. +perl-Filter +perl-IO-Compress +perl-IO-Extended +perl-PathTools +perl-Scalar-List-Utils +perl-Text-Tabs+Wrap +perl-Tie-Watch + #x86_64:firefox-beta diff --git a/make-perl-exclude-list.sh b/make-perl-exclude-list.sh new file mode 100755 index 0000000..490d747 --- /dev/null +++ b/make-perl-exclude-list.sh @@ -0,0 +1,24 @@ +#!/usr/bin/bash + +if [ $# -ne 1 ] ; then + >&2 echo "Usage: make-perl-exclude-list " + exit 1 +fi + +echo "# This is a list of the perl modules provided by the perl and perl-base" +echo "# packages. Many of these modules are also provided by standalone packages." +echo "# This list allows us to avoid including both on the installer media." +echo "#" +echo "# This file is automatically generated by the make-perl-exclude-list.sh script." +echo "# It may need to be manually edited if the perl or perl-base package does not" +echo "# provide a suitable version of a particular module (e.g. if another package" +echo "# requires a different version, and that version is available as a standalone" +echo "# package)." +echo "#" + +urpmq --use-distrib $1 --provides perl perl-base \ +| sed -E -e 's/^perl.*: //' -e 's/\((.*)\)/-\1/' -e 's/::/-/g' -e 's/\[.*\]$//' \ +| grep -v '^perl-base' \ +| grep '^perl-' \ +| sort -u \ +| perl -ne "my \$bn = \$_; chomp(\$bn); print \"\$_\" if my @files = grep { \$_ =~ \"$1/media/core/release/\$bn-[0-9].*rpm\" } glob(\"$1/media/core/release/\$bn-*.rpm\")" -- cgit v1.2.1