1Alien::Build::Plugin::DUoswenrloCaodn:t:rNiebguAotlteiideantP:ee:(rB3lu)iDlodc:u:mPelnutgaitni:o:nDownload::Negotiate(3)
2
3
4
6 Alien::Build::Plugin::Download::Negotiate - Download negotiation plugin
7
9 version 2.17
10
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
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
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
99 pick
100 my($fetch, @decoders) = $plugin->pick;
101
102 Returns the fetch plugin and any optional decoders that should be used.
103
105 Alien::Build, alienfile, Alien::Build::MM, Alien
106
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)