summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Whitaker <mageia@martin.whitaker.me.uk>2022-10-04 23:54:06 +0100
committerMartin Whitaker <mageia@martin.whitaker.me.uk>2022-10-04 23:54:06 +0100
commit5ce51cb316e3afb3baf0b4c82f45335e161cb011 (patch)
tree884e8c5deb1767d72221d87031c95f661534bfe9
parent95d1367060c0dbba847c327e8bf409b65383049f (diff)
downloaddrakclassic-config-5ce51cb316e3afb3baf0b4c82f45335e161cb011.tar
drakclassic-config-5ce51cb316e3afb3baf0b4c82f45335e161cb011.tar.gz
drakclassic-config-5ce51cb316e3afb3baf0b4c82f45335e161cb011.tar.bz2
drakclassic-config-5ce51cb316e3afb3baf0b4c82f45335e161cb011.tar.xz
drakclassic-config-5ce51cb316e3afb3baf0b4c82f45335e161cb011.zip
Automatically generate the list of excluded Perl packages.
-rw-r--r--config/build.cfg1
-rw-r--r--config/pkg-exclude-perl.lst95
-rw-r--r--config/pkg-exclude-to-review.lst99
-rw-r--r--config/pkg-exclude.lst10
-rwxr-xr-xmake-perl-exclude-list.sh24
5 files changed, 130 insertions, 99 deletions
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 <use-distrib>"
+ 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\")"