1Alien::Build::Plugin::DUoswenrloCaodn:t:rNiebguAotlteiideantP:ee:(rB3lu)iDlodc:u:mPelnutgaitni:o:nDownload::Negotiate(3)
2
3
4

NAME

6       Alien::Build::Plugin::Download::Negotiate - Download negotiation plugin
7

VERSION

9       version 2.17
10

SYNOPSIS

12        use alienfile;
13        share {
14          start_url 'http://ftp.gnu.org/gnu/make';
15          plugin 'Download' => (
16            filter => qr/^make-.*\.tar\.gz$/,
17            version => qr/([0-9\.]+)/,
18          );
19        };
20

DESCRIPTION

22       This is a negotiator plugin for downloading packages from the internet.
23       This plugin picks the best Fetch, Decode and Prefer plugins to do the
24       actual work.  Which plugins are picked depend on the properties you
25       specify, your platform and environment.  It is usually preferable to
26       use a negotiator plugin rather than the Fetch, Decode and Prefer
27       plugins directly from your alienfile.
28

PROPERTIES

30   url
31       [DEPRECATED] use "start_url" instead.
32
33       The Initial URL for your package.  This may be a directory listing
34       (either in HTML or ftp listing format) or the final tarball intended to
35       be downloaded.
36
37   filter
38       This is a regular expression that lets you filter out files that you do
39       not want to consider downloading.  For example, if the directory
40       listing contained tarballs and readme files like this:
41
42        foo-1.0.0.tar.gz
43        foo-1.0.0.readme
44
45       You could specify a filter of "qr/\.tar\.gz$/" to make sure only
46       tarballs are considered for download.
47
48   version
49       Regular expression to parse out the version from a filename.  The
50       regular expression should store the result in $1.
51
52       Note: if you provide a "version" property, this plugin will assume that
53       you will be downloading an initial index to select package downloads
54       from.  Depending on the protocol (and typically this is the case for
55       http and HTML) that may bring in additional dependencies.  If start_url
56       points to a tarball or other archive directly (without needing to do
57       through an index selection process), it is recommended that you not
58       specify this property.
59
60   ssl
61       If your initial URL does not need SSL, but you know ahead of time that
62       a subsequent request will need it (for example, if your directory
63       listing is on "http", but includes links to "https" URLs), then you can
64       set this property to true, and the appropriate Perl SSL modules will be
65       loaded.
66
67   passive
68       If using FTP, attempt a passive mode transfer first, before trying an
69       active mode transfer.
70
71   bootstrap_ssl
72       If set to true, then the download negotiator will avoid using plugins
73       that have a dependency on Net::SSLeay, or other Perl SSL modules.  The
74       intent for this option is to allow OpenSSL to be alienized and be a
75       useful optional dependency for Net::SSLeay.
76
77       The implementation may improve over time, but as of this writing, this
78       option relies on you having a working "curl" or "wget" with SSL support
79       in your "PATH".
80
81   prefer
82       How to sort candidates for selection.  This should be one of three
83       types of values:
84
85       code reference
86           This will be used as the prefer hook.
87
88       true value
89           Use Alien::Build::Plugin::Prefer::SortVersions.
90
91       false value
92           Don't set any preference at all.  A hook must be installed, or
93           another prefer plugin specified.
94
95   decoder
96       Override the detected decoder.
97

METHODS

99   pick
100        my($fetch, @decoders) = $plugin->pick;
101
102       Returns the fetch plugin and any optional decoders that should be used.
103

SEE ALSO

105       Alien::Build, alienfile, Alien::Build::MM, Alien
106

AUTHOR

108       Author: Graham Ollis <plicease@cpan.org>
109
110       Contributors:
111
112       Diab Jerius (DJERIUS)
113
114       Roy Storey (KIWIROY)
115
116       Ilya Pavlov
117
118       David Mertens (run4flat)
119
120       Mark Nunberg (mordy, mnunberg)
121
122       Christian Walde (Mithaldu)
123
124       Brian Wightman (MidLifeXis)
125
126       Zaki Mughal (zmughal)
127
128       mohawk (mohawk2, ETJ)
129
130       Vikas N Kumar (vikasnkumar)
131
132       Flavio Poletti (polettix)
133
134       Salvador Fandiño (salva)
135
136       Gianni Ceccarelli (dakkar)
137
138       Pavel Shaydo (zwon, trinitum)
139
140       Kang-min Liu (劉康民, gugod)
141
142       Nicholas Shipp (nshp)
143
144       Juan Julián Merelo Guervós (JJ)
145
146       Joel Berger (JBERGER)
147
148       Petr Pisar (ppisar)
149
150       Lance Wicks (LANCEW)
151
152       Ahmad Fatoum (a3f, ATHREEF)
153
154       José Joaquín Atria (JJATRIA)
155
156       Duke Leto (LETO)
157
158       Shoichi Kaji (SKAJI)
159
160       Shawn Laffan (SLAFFAN)
161
162       Paul Evans (leonerd, PEVANS)
163
165       This software is copyright (c) 2011-2020 by Graham Ollis.
166
167       This is free software; you can redistribute it and/or modify it under
168       the same terms as the Perl 5 programming language system itself.
169
170
171
172perl v5.30.2                      2A0l2i0e-n0:3:-B2u0ild::Plugin::Download::Negotiate(3)
Impressum