.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "Debian::Control::FromCPAN 3pm" .TH Debian::Control::FromCPAN 3pm 2024-03-14 "perl v5.38.2" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH NAME Debian::Control::FromCPAN \- fill debian/control from unpacked CPAN distribution .SH SYNOPSIS .IX Header "SYNOPSIS" .Vb 3 \& my $c = Debian::Control::FromCPAN\->new(); \& $c\->discover_dependencies( { ... } ); \& $c\->prune_perl_deps; \& \& Debian::Control::FromCPAN inherits from L. .Ve .SH METHODS .IX Header "METHODS" .IP "discover_dependencies( [ { options hash } ] )" 4 .IX Item "discover_dependencies( [ { options hash } ] )" Discovers module dependencies and fills the dependency fields in \&\fIdebian/control\fR accordingly. .Sp Options: .RS 4 .IP apt_contents 4 .IX Item "apt_contents" An instance of Debian::AptContents to be used when locating to which package a required module belongs. .IP dpkg_available 4 .IX Item "dpkg_available" An instance of Dpkg::Index to be used when checking whether the locally available package is the required version. For example: .Sp .Vb 2 \& my $available = Dpkg::Index\->new(type => CTRL_INFO_PKG); \& $available\->load("$Dpkg::ADMINDIR/available"); .Ve .IP dir 4 .IX Item "dir" The directory where the cpan distribution was unpacked. .IP intrusive 4 .IX Item "intrusive" A flag indicating permission to use Module::Depends::Intrusive for discovering dependencies in case Module::Depends fails. Since this requires loading all Perl modules in the distribution (and running their BEGIN blocks (and the BEGIN blocks of their dependencies, recursively), it is recommended to use this only when dealing with trusted sources. .IP require_deps 4 .IX Item "require_deps" If true, causes the method to die if some a package for some dependency cannot be found. Otherwise only a warning is issued. .IP verbose 4 .IX Item "verbose" .PD 0 .IP wnpp_query 4 .IX Item "wnpp_query" .PD An instance of Debian::WNPP::Query to be used when checking for WNPP bugs of depended upon packages. .RE .RS 4 .Sp Returns a list of module names for which no suitable Debian packages were found. .RE .IP "find_debs_for_modules \fIdep hash\fR[, APT contents[, verbose[, DPKG available]]]" 4 .IX Item "find_debs_for_modules dep hash[, APT contents[, verbose[, DPKG available]]]" Scans the given hash of dependencies ( module => version ) and returns matching Debian package dependency specification (as an instance of Debian::Dependencies class) and a list of missing modules. .Sp Installed packages and perl core are searched first, then the APT contents. .Sp If a Dpkg::Index object is passed, also check the available package version. .IP prune_simple_perl_dep 4 .IX Item "prune_simple_perl_dep" Input: .RS 4 .IP "dependency object" 4 .IX Item "dependency object" shall be a simple dependency (no alternatives) .IP "(optional) build dependency flag" 4 .IX Item "(optional) build dependency flag" true value indicates the dependency is a build-time one .RE .RS 4 .Sp The following checks are made .ie n .IP "dependencies on ""perl\-modules*"" and ""libperl*""" 4 .el .IP "dependencies on \f(CWperl\-modules*\fR and \f(CWlibperl*\fR" 4 .IX Item "dependencies on perl-modules* and libperl*" These are replaced with \f(CW\*(C`perl\*(C'\fR as per Perl policy. .ie n .IP "dependencies on ""perl\-base"" and build-dependencies on ""perl"" or ""perl\-base""" 4 .el .IP "dependencies on \f(CWperl\-base\fR and build-dependencies on \f(CWperl\fR or \f(CWperl\-base\fR" 4 .IX Item "dependencies on perl-base and build-dependencies on perl or perl-base" These are removed, unless they specify a version greater than the one available in \f(CW\*(C`oldstable\*(C'\fR or the dependency relation is not \f(CW\*(C`>=\*(C'\fR or \f(CW\*(C`>>\*(C'\fR. .RE .RS 4 .Sp Return value: .IP undef 4 .IX Item "undef" if the dependency is redundant. .IP "pruned dependency" 4 .IX Item "pruned dependency" otherwise. \f(CW\*(C`perl\-modules*\*(C'\fR and \f(CW\*(C`libperl*\*(C'\fR replaced with \f(CW\*(C`perl\*(C'\fR. .RE .RS 4 .RE .IP prune_perl_dep 4 .IX Item "prune_perl_dep" Similar to "prune_simple_perl_dep", but supports alternative dependencies. If any of the alternatives is redundant, the whole dependency is considered redundant. .IP prune_perl_deps 4 .IX Item "prune_perl_deps" Remove redundant (build\-)dependencies on perl, libperl, perl-modules and perl-base. .SH "CLASS METHODS" .IX Header "CLASS METHODS" .IP module_name_to_pkg_name 4 .IX Item "module_name_to_pkg_name" Receives a perl module name like \f(CW\*(C`Foo::Bar\*(C'\fR and returns a suitable Debian package name for it, like \f(CW\*(C`libfoo\-bar\-perl\*(C'\fR. .SH "COPYRIGHT & LICENSE" .IX Header "COPYRIGHT & LICENSE" Copyright (C) 2009, 2010, 2012 Damyan Ivanov dmn@debian.org .PP Copyright (C) 2019, 2020 gregor herrmann gregoa@debian.org .PP This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. .PP This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.