fpm 1.3.3 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELIST +32 -0
- data/CONTRIBUTORS +1 -1
- data/lib/fpm.rb +1 -0
- data/lib/fpm/command.rb +43 -18
- data/lib/fpm/package.rb +13 -13
- data/lib/fpm/package/cpan.rb +29 -17
- data/lib/fpm/package/deb.rb +59 -23
- data/lib/fpm/package/dir.rb +13 -26
- data/lib/fpm/package/empty.rb +6 -0
- data/lib/fpm/package/gem.rb +4 -4
- data/lib/fpm/package/npm.rb +2 -2
- data/lib/fpm/package/osxpkg.rb +3 -3
- data/lib/fpm/package/p5p.rb +124 -0
- data/lib/fpm/package/pyfpm/get_metadata.py +9 -1
- data/lib/fpm/package/python.rb +16 -9
- data/lib/fpm/package/rpm.rb +17 -10
- data/lib/fpm/package/sh.rb +1 -7
- data/lib/fpm/package/solaris.rb +1 -1
- data/lib/fpm/package/virtualenv.rb +136 -0
- data/lib/fpm/package/zip.rb +1 -1
- data/lib/fpm/util.rb +31 -5
- data/lib/fpm/version.rb +1 -1
- data/templates/deb/postinst_upgrade.sh.erb +14 -2
- data/templates/deb/postrm_upgrade.sh.erb +10 -1
- data/templates/deb/preinst_upgrade.sh.erb +11 -2
- data/templates/deb/prerm_upgrade.sh.erb +7 -2
- data/templates/p5p_metadata.erb +12 -0
- data/templates/rpm.erb +34 -5
- data/templates/sh.erb +22 -1
- metadata +8 -7
- data/lib/fpm/package/pyfpm/__init__.pyc +0 -0
- data/lib/fpm/package/pyfpm/get_metadata.pyc +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c5242a72c4435675eabd2eb890ac8296bf77553b
|
4
|
+
data.tar.gz: 3aeda059fb3d5cfab49e0eaff6cb457c7a61e374
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 91d43f3e9ec89f218d08f2d05a0b2cf43c6e06ea2e617ce353bd4be58892167b7617f50f2bc1758a5946033ffc974d05bb9be01396759f79e8b532f5aa5efb93
|
7
|
+
data.tar.gz: 613babff93a8b1e0acf992ea46d4de82bfa0f175f20b1194f039049480f818a3d52cce267c282ec2721324a839de72da5a777c454a264f914e276b02c54ca4b4
|
data/CHANGELIST
CHANGED
@@ -1,3 +1,35 @@
|
|
1
|
+
1.4.0 (???)
|
2
|
+
- Solaris 11 IPS packages 'p5p' now supported `-t p5p`. (Jonathan Craig)
|
3
|
+
- Python Virtualenv is now supported `-t virtualenv` (#930, Simone
|
4
|
+
Margaritelli and Daniel Haskin)
|
5
|
+
- deb: Files in /etc are now by default marked as config files. (#877,
|
6
|
+
Vincent Bernat)
|
7
|
+
- `fpm --help` output now includes a list of supported package types (#896,
|
8
|
+
Daniel Haskin)
|
9
|
+
- cpan: --[no-]cpan-sandbox-non-core flag to make non-core module sandboxing
|
10
|
+
optional during packaging (#752, Matt Sharpe)
|
11
|
+
- rpm: Add --rpm-dist flag for specifically setting the target distribution
|
12
|
+
of an rpm. (Adam Lamar)
|
13
|
+
- rpm: Fix a crash if --before-upgrade or --after-upgrade were used. (#822,
|
14
|
+
Dave Anderson)
|
15
|
+
- deb: Ensure maintainer scripts have shebang lines (#836, Wesley Spikes)
|
16
|
+
- deb: Fix bug in maintainer scripts where sometimes we would write an empty
|
17
|
+
shell function. Empty functions aren't valid in shell. (Wesley Spikes)
|
18
|
+
- Fix symlink copying bug (#863, Pete Fritchman)
|
19
|
+
- python: Default to https for pypi queries (Timothy Sutton)
|
20
|
+
- New flag --exclude-file for providing a file containing line-delimited
|
21
|
+
exclusions (Jamie Lawrence)
|
22
|
+
- python: new flag --python-disable-dependency to disable specific python
|
23
|
+
dependencies (Ward Vandewege)
|
24
|
+
- python: ensure we avoid wheel packages for now until fpm better supports them.
|
25
|
+
(#885, Matt Callaway)
|
26
|
+
- deb: Add support for installation states "abort-remove" and "abort-install"
|
27
|
+
(#887, Daniel Haskin)
|
28
|
+
- If PATH isn't set, and we need it, tell the user (#886, Ranjib Dey)
|
29
|
+
- cpan: --[no-]cpan-test now works correctly (#853, Matt Schreiber)
|
30
|
+
- deb-to-rpm: some improved support for config file knowledge passing from
|
31
|
+
deb to rpm packages (Daniel Haskin)
|
32
|
+
|
1
33
|
1.3.3 (December 11, 2014)
|
2
34
|
- The fpm project now uses Contributor Covenant. You can read more about this on
|
3
35
|
the website: http://contributor-covenant.org/
|
data/CONTRIBUTORS
CHANGED
data/lib/fpm.rb
CHANGED
data/lib/fpm/command.rb
CHANGED
@@ -24,7 +24,7 @@ class FPM::Command < Clamp::Command
|
|
24
24
|
include FPM::Util
|
25
25
|
|
26
26
|
def help(*args)
|
27
|
-
|
27
|
+
lines = [
|
28
28
|
"Intro:",
|
29
29
|
"",
|
30
30
|
" This is fpm version #{FPM::VERSION}",
|
@@ -35,10 +35,14 @@ class FPM::Command < Clamp::Command
|
|
35
35
|
" You can find support on irc (#fpm on freenode irc) or via email with",
|
36
36
|
" fpm-users@googlegroups.com",
|
37
37
|
"",
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
38
|
+
"Loaded package types:",
|
39
|
+
]
|
40
|
+
FPM::Package.types.each do |name, _|
|
41
|
+
lines.push(" - #{name}")
|
42
|
+
end
|
43
|
+
lines.push("")
|
44
|
+
lines.push(super)
|
45
|
+
return lines.join("\n")
|
42
46
|
end # def help
|
43
47
|
|
44
48
|
option "-t", "OUTPUT_TYPE",
|
@@ -139,6 +143,11 @@ class FPM::Command < Clamp::Command
|
|
139
143
|
excludes << val
|
140
144
|
next excludes
|
141
145
|
end # -x / --exclude
|
146
|
+
|
147
|
+
option "--exclude-file", "EXCLUDE_PATH",
|
148
|
+
"The path to a file containing a newline-sparated list of "\
|
149
|
+
"patterns to exclude from input."
|
150
|
+
|
142
151
|
option "--description", "DESCRIPTION", "Add a description for this package." \
|
143
152
|
" You can include '\n' sequences to indicate newline breaks.",
|
144
153
|
:default => "no description" do |val|
|
@@ -191,7 +200,7 @@ class FPM::Command < Clamp::Command
|
|
191
200
|
option "--after-upgrade", "FILE",
|
192
201
|
"A script to be run after package upgrade. If not specified,\n" \
|
193
202
|
"--before-install, --after-install, --before-remove, and \n" \
|
194
|
-
"--after-remove
|
203
|
+
"--after-remove will behave in a backwards-compatible manner\n" \
|
195
204
|
"(they will not be upgrade-case aware).\n" \
|
196
205
|
"Currently only supports deb and rpm packages." do |val|
|
197
206
|
File.expand_path(val) # Get the full path to the script
|
@@ -199,7 +208,7 @@ class FPM::Command < Clamp::Command
|
|
199
208
|
option "--before-upgrade", "FILE",
|
200
209
|
"A script to be run before package upgrade. If not specified,\n" \
|
201
210
|
"--before-install, --after-install, --before-remove, and \n" \
|
202
|
-
"--after-remove
|
211
|
+
"--after-remove will behave in a backwards-compatible manner\n" \
|
203
212
|
"(they will not be upgrade-case aware).\n" \
|
204
213
|
"Currently only supports deb and rpm packages." do |val|
|
205
214
|
File.expand_path(val) # Get the full path to the script
|
@@ -215,7 +224,7 @@ class FPM::Command < Clamp::Command
|
|
215
224
|
option "--template-value", "KEY=VALUE",
|
216
225
|
"Make 'key' available in script templates, so <%= key %> given will be " \
|
217
226
|
"the provided value. Implies --template-scripts",
|
218
|
-
:multivalued => true do |kv|
|
227
|
+
:multivalued => true do |kv|
|
219
228
|
@template_scripts = true
|
220
229
|
next kv.split("=", 2)
|
221
230
|
end
|
@@ -272,7 +281,7 @@ class FPM::Command < Clamp::Command
|
|
272
281
|
# fpm would assume you meant to add '.' to the end of the commandline.
|
273
282
|
# Let's hack that. https://github.com/jordansissel/fpm/issues/187
|
274
283
|
if input_type == "dir" and args.empty? and !chdir.nil?
|
275
|
-
logger.info("No args, but -s dir and -C are given, assuming '.' as input")
|
284
|
+
logger.info("No args, but -s dir and -C are given, assuming '.' as input")
|
276
285
|
args << "."
|
277
286
|
end
|
278
287
|
|
@@ -293,7 +302,7 @@ class FPM::Command < Clamp::Command
|
|
293
302
|
|
294
303
|
input = input_class.new
|
295
304
|
|
296
|
-
# Merge in package settings.
|
305
|
+
# Merge in package settings.
|
297
306
|
# The 'settings' stuff comes in from #apply_options, which goes through
|
298
307
|
# all the options defined in known packages and puts them into our command.
|
299
308
|
# Flags in packages defined as "--foo-bar" become named "--<packagetype>-foo-bar"
|
@@ -310,10 +319,10 @@ class FPM::Command < Clamp::Command
|
|
310
319
|
# clamp makes option attributes available as accessor methods
|
311
320
|
# --foo-bar is available as 'foo_bar'. Put these in the package
|
312
321
|
# attributes hash. (See FPM::Package#attributes)
|
313
|
-
#
|
322
|
+
#
|
314
323
|
# In the case of 'flag' options, the accessor is actually 'foo_bar?'
|
315
324
|
# instead of just 'foo_bar'
|
316
|
-
|
325
|
+
|
317
326
|
# If the instance variable @{attr} is defined, then
|
318
327
|
# it means the flag was given on the command line.
|
319
328
|
flag_given = instance_variable_defined?("@#{attr}")
|
@@ -328,8 +337,8 @@ class FPM::Command < Clamp::Command
|
|
328
337
|
# For directories, this means paths. For things like gem and python, this
|
329
338
|
# means package name or paths to the packages (rails, foo-1.0.gem, django,
|
330
339
|
# bar/setup.py, etc)
|
331
|
-
args.each do |arg|
|
332
|
-
input.input(arg)
|
340
|
+
args.each do |arg|
|
341
|
+
input.input(arg)
|
333
342
|
end
|
334
343
|
|
335
344
|
# If --inputs was specified, read it as a file.
|
@@ -340,12 +349,28 @@ class FPM::Command < Clamp::Command
|
|
340
349
|
end
|
341
350
|
|
342
351
|
# Read each line as a path
|
343
|
-
File.new(inputs, "r").each_line do |line|
|
352
|
+
File.new(inputs, "r").each_line do |line|
|
344
353
|
# Handle each line as if it were an argument
|
345
354
|
input.input(line.strip)
|
346
355
|
end
|
347
356
|
end
|
348
357
|
|
358
|
+
# If --exclude-file was specified, read it as a file and append to
|
359
|
+
# the exclude pattern list.
|
360
|
+
if !exclude_file.nil?
|
361
|
+
if !File.exists?(exclude_file)
|
362
|
+
logger.fatal("File given for --exclude-file does not exist (#{exclude_file})")
|
363
|
+
return 1
|
364
|
+
end
|
365
|
+
|
366
|
+
# Read each line as a path
|
367
|
+
File.new(exclude-file, "r").each_line do |line|
|
368
|
+
# Handle each line as if it were an argument
|
369
|
+
# 'excludes' is defined above near the -x option.
|
370
|
+
excludes << line.strip
|
371
|
+
end
|
372
|
+
end
|
373
|
+
|
349
374
|
# Override package settings if they are not the default flag values
|
350
375
|
# the below proc essentially does:
|
351
376
|
#
|
@@ -389,7 +414,7 @@ class FPM::Command < Clamp::Command
|
|
389
414
|
|
390
415
|
input.attrs = h
|
391
416
|
|
392
|
-
|
417
|
+
|
393
418
|
script_errors = []
|
394
419
|
setscript = proc do |scriptname|
|
395
420
|
# 'self.send(scriptname) == self.before_install == --before-install
|
@@ -435,9 +460,9 @@ class FPM::Command < Clamp::Command
|
|
435
460
|
end
|
436
461
|
end
|
437
462
|
|
438
|
-
# Write the output somewhere, package can be nil if no --package is specified,
|
463
|
+
# Write the output somewhere, package can be nil if no --package is specified,
|
439
464
|
# and that's OK.
|
440
|
-
|
465
|
+
|
441
466
|
# If the package output (-p flag) is a directory, write to the default file name
|
442
467
|
# but inside that directory.
|
443
468
|
if ! package.nil? && File.directory?(package)
|
data/lib/fpm/package.rb
CHANGED
@@ -17,7 +17,7 @@ class FPM::Package
|
|
17
17
|
|
18
18
|
# This class is raised if there's something wrong with a setting in the package.
|
19
19
|
class InvalidArgument < StandardError; end
|
20
|
-
|
20
|
+
|
21
21
|
# This class is raised when a file already exists when trying to write.
|
22
22
|
class FileAlreadyExists < StandardError
|
23
23
|
# Get a human-readable error message
|
@@ -116,7 +116,7 @@ class FPM::Package
|
|
116
116
|
private
|
117
117
|
|
118
118
|
def initialize
|
119
|
-
# Attributes for this specific package
|
119
|
+
# Attributes for this specific package
|
120
120
|
@attributes = {}
|
121
121
|
|
122
122
|
# Reference
|
@@ -151,7 +151,7 @@ class FPM::Package
|
|
151
151
|
@category = "default"
|
152
152
|
@license = "unknown"
|
153
153
|
@vendor = "none"
|
154
|
-
|
154
|
+
|
155
155
|
# Iterate over all the options and set defaults
|
156
156
|
if self.class.respond_to?(:declared_options)
|
157
157
|
self.class.declared_options.each do |option|
|
@@ -227,7 +227,7 @@ class FPM::Package
|
|
227
227
|
# Add a new source to this package.
|
228
228
|
# The exact behavior depends on the kind of package being managed.
|
229
229
|
#
|
230
|
-
# For instance:
|
230
|
+
# For instance:
|
231
231
|
#
|
232
232
|
# * for FPM::Package::Dir, << expects a path to a directory or files.
|
233
233
|
# * for FPM::Package::RPM, << expects a path to an rpm.
|
@@ -270,21 +270,21 @@ class FPM::Package
|
|
270
270
|
|
271
271
|
# Clean up any temporary storage used by this class.
|
272
272
|
def cleanup
|
273
|
-
cleanup_staging
|
274
|
-
cleanup_build
|
273
|
+
cleanup_staging
|
274
|
+
cleanup_build
|
275
275
|
end # def cleanup
|
276
276
|
|
277
277
|
def cleanup_staging
|
278
278
|
if File.directory?(staging_path)
|
279
279
|
logger.debug("Cleaning up staging path", :path => staging_path)
|
280
|
-
FileUtils.rm_r(staging_path)
|
280
|
+
FileUtils.rm_r(staging_path)
|
281
281
|
end
|
282
282
|
end # def cleanup_staging
|
283
283
|
|
284
284
|
def cleanup_build
|
285
285
|
if File.directory?(build_path)
|
286
286
|
logger.debug("Cleaning up build path", :path => build_path)
|
287
|
-
FileUtils.rm_r(build_path)
|
287
|
+
FileUtils.rm_r(build_path)
|
288
288
|
end
|
289
289
|
end # def cleanup_build
|
290
290
|
|
@@ -292,7 +292,7 @@ class FPM::Package
|
|
292
292
|
#
|
293
293
|
# The paths will all be relative to staging_path and will not include that
|
294
294
|
# path.
|
295
|
-
#
|
295
|
+
#
|
296
296
|
# This method will emit 'leaf' paths. Files, symlinks, and other file-like
|
297
297
|
# things are emitted. Intermediate directories are ignored, but
|
298
298
|
# empty directories are emitted.
|
@@ -317,7 +317,7 @@ class FPM::Package
|
|
317
317
|
.select { |path| is_leaf.call(path) } \
|
318
318
|
.collect { |path| path[staging_path.length + 1.. -1] }
|
319
319
|
end # def files
|
320
|
-
|
320
|
+
|
321
321
|
def template_dir
|
322
322
|
File.expand_path(File.join(File.dirname(__FILE__), "..", "..", "templates"))
|
323
323
|
end
|
@@ -390,7 +390,7 @@ class FPM::Package
|
|
390
390
|
|
391
391
|
class << self
|
392
392
|
# This method is invoked when subclass occurs.
|
393
|
-
#
|
393
|
+
#
|
394
394
|
# Lets us track all known FPM::Package subclasses
|
395
395
|
def inherited(klass)
|
396
396
|
@subclasses ||= {}
|
@@ -441,7 +441,7 @@ class FPM::Package
|
|
441
441
|
|
442
442
|
def default_attributes(&block)
|
443
443
|
return if @options.nil?
|
444
|
-
@options.each do |flag, param, help, options,
|
444
|
+
@options.each do |flag, param, help, options, _block|
|
445
445
|
attr = flag.first.gsub(/^-+/, "").gsub(/-/, "_").gsub("[no_]", "")
|
446
446
|
attr += "?" if param == :flag
|
447
447
|
yield attr.to_sym, options[:default]
|
@@ -509,7 +509,7 @@ class FPM::Package
|
|
509
509
|
def provides=(value)
|
510
510
|
if !value.is_a?(Array)
|
511
511
|
@provides = [value]
|
512
|
-
else
|
512
|
+
else
|
513
513
|
@provides = value
|
514
514
|
end
|
515
515
|
end
|
data/lib/fpm/package/cpan.rb
CHANGED
@@ -27,6 +27,9 @@ class FPM::Package::CPAN < FPM::Package
|
|
27
27
|
option "--perl-lib-path", "PERL_LIB_PATH",
|
28
28
|
"Path of target Perl Libraries"
|
29
29
|
|
30
|
+
option "--sandbox-non-core", :flag,
|
31
|
+
"Sandbox all non-core modules, even if they're already installed", :default => true
|
32
|
+
|
30
33
|
private
|
31
34
|
def input(package)
|
32
35
|
#if RUBY_VERSION =~ /^1\.8/
|
@@ -49,18 +52,18 @@ class FPM::Package::CPAN < FPM::Package
|
|
49
52
|
end
|
50
53
|
|
51
54
|
# Read package metadata (name, version, etc)
|
52
|
-
if File.
|
55
|
+
if File.exist?(File.join(moduledir, "META.json"))
|
53
56
|
metadata = JSON.parse(File.read(File.join(moduledir, ("META.json"))))
|
54
|
-
elsif File.
|
57
|
+
elsif File.exist?(File.join(moduledir, ("META.yml")))
|
55
58
|
require "yaml"
|
56
59
|
metadata = YAML.load_file(File.join(moduledir, ("META.yml")))
|
57
|
-
elsif File.
|
60
|
+
elsif File.exist?(File.join(moduledir, "MYMETA.json"))
|
58
61
|
metadata = JSON.parse(File.read(File.join(moduledir, ("MYMETA.json"))))
|
59
|
-
elsif File.
|
62
|
+
elsif File.exist?(File.join(moduledir, ("MYMETA.yml")))
|
60
63
|
require "yaml"
|
61
64
|
metadata = YAML.load_file(File.join(moduledir, ("MYMETA.yml")))
|
62
65
|
else
|
63
|
-
raise FPM::InvalidPackageConfiguration,
|
66
|
+
raise FPM::InvalidPackageConfiguration,
|
64
67
|
"Could not find package metadata. Checked for META.json and META.yml"
|
65
68
|
end
|
66
69
|
self.version = metadata["version"]
|
@@ -100,14 +103,23 @@ class FPM::Package::CPAN < FPM::Package
|
|
100
103
|
# We'll install to a temporary directory.
|
101
104
|
logger.info("Installing any build or configure dependencies")
|
102
105
|
|
103
|
-
|
104
|
-
|
106
|
+
if attributes[:cpan_sandbox_non_core?]
|
107
|
+
cpanm_flags = ["-L", build_path("cpan"), moduledir]
|
108
|
+
else
|
109
|
+
cpanm_flags = ["-l", build_path("cpan"), moduledir]
|
110
|
+
end
|
111
|
+
|
112
|
+
# This flag causes cpanm to ONLY download dependencies, skipping the target
|
113
|
+
# module itself. This is fine, because the target module has already been
|
114
|
+
# downloaded, and there's no need to download twice, test twice, etc.
|
115
|
+
cpanm_flags += ["--installdeps"]
|
116
|
+
cpanm_flags += ["-n"] if !attributes[:cpan_test?]
|
105
117
|
cpanm_flags += ["--mirror", "#{attributes[:cpan_mirror]}"] if !attributes[:cpan_mirror].nil?
|
106
118
|
cpanm_flags += ["--mirror-only"] if attributes[:cpan_mirror_only?] && !attributes[:cpan_mirror].nil?
|
107
119
|
|
108
120
|
safesystem(attributes[:cpan_cpanm_bin], *cpanm_flags)
|
109
121
|
|
110
|
-
if !attributes[:no_auto_depends?]
|
122
|
+
if !attributes[:no_auto_depends?]
|
111
123
|
unless metadata["requires"].nil?
|
112
124
|
metadata["requires"].each do |dep_name, version|
|
113
125
|
# Special case for representing perl core as a version.
|
@@ -116,7 +128,7 @@ class FPM::Package::CPAN < FPM::Package
|
|
116
128
|
next
|
117
129
|
end
|
118
130
|
dep = search(dep_name)
|
119
|
-
|
131
|
+
|
120
132
|
if dep.include?("distribution")
|
121
133
|
name = fix_name(dep["distribution"])
|
122
134
|
else
|
@@ -156,7 +168,7 @@ class FPM::Package::CPAN < FPM::Package
|
|
156
168
|
|
157
169
|
# Try Makefile.PL, Build.PL
|
158
170
|
#
|
159
|
-
if File.
|
171
|
+
if File.exist?("Build.PL")
|
160
172
|
# Module::Build is in use here; different actions required.
|
161
173
|
safesystem(attributes[:cpan_perl_bin],
|
162
174
|
"-Mlocal::lib=#{build_path("cpan")}",
|
@@ -180,7 +192,7 @@ class FPM::Package::CPAN < FPM::Package
|
|
180
192
|
# Empty install_base to avoid local::lib being used.
|
181
193
|
"--install_base", "")
|
182
194
|
end
|
183
|
-
elsif File.
|
195
|
+
elsif File.exist?("Makefile.PL")
|
184
196
|
if attributes[:cpan_perl_lib_path]
|
185
197
|
perl_lib_path = attributes[:cpan_perl_lib_path]
|
186
198
|
safesystem(attributes[:cpan_perl_bin],
|
@@ -206,7 +218,7 @@ class FPM::Package::CPAN < FPM::Package
|
|
206
218
|
|
207
219
|
|
208
220
|
else
|
209
|
-
raise FPM::InvalidPackageConfiguration,
|
221
|
+
raise FPM::InvalidPackageConfiguration,
|
210
222
|
"I don't know how to build #{name}. No Makefile.PL nor " \
|
211
223
|
"Build.PL found"
|
212
224
|
end
|
@@ -231,10 +243,10 @@ class FPM::Package::CPAN < FPM::Package
|
|
231
243
|
# Find any shared objects in the staging directory to set architecture as
|
232
244
|
# native if found; otherwise keep the 'all' default.
|
233
245
|
Find.find(staging_path) do |path|
|
234
|
-
if path =~ /\.so$/
|
246
|
+
if path =~ /\.so$/
|
235
247
|
logger.info("Found shared library, setting architecture=native",
|
236
248
|
:path => path)
|
237
|
-
self.architecture = "native"
|
249
|
+
self.architecture = "native"
|
238
250
|
end
|
239
251
|
end
|
240
252
|
end
|
@@ -280,7 +292,7 @@ class FPM::Package::CPAN < FPM::Package
|
|
280
292
|
release_metadata = JSON.parse(data)
|
281
293
|
archive = release_metadata["archive"]
|
282
294
|
|
283
|
-
# should probably be basepathed from the url
|
295
|
+
# should probably be basepathed from the url
|
284
296
|
tarball = File.basename(archive)
|
285
297
|
|
286
298
|
url_base = "http://www.cpan.org/"
|
@@ -289,7 +301,7 @@ class FPM::Package::CPAN < FPM::Package
|
|
289
301
|
#url = "http://www.cpan.org/CPAN/authors/id/#{author[0,1]}/#{author[0,2]}/#{author}/#{tarball}"
|
290
302
|
url = "#{url_base}/authors/id/#{author[0,1]}/#{author[0,2]}/#{author}/#{archive}"
|
291
303
|
logger.debug("Fetching perl module", :url => url)
|
292
|
-
|
304
|
+
|
293
305
|
begin
|
294
306
|
response = httpfetch(url)
|
295
307
|
rescue Net::HTTPServerException => e
|
@@ -336,7 +348,7 @@ class FPM::Package::CPAN < FPM::Package
|
|
336
348
|
def httpfetch(url)
|
337
349
|
uri = URI.parse(url)
|
338
350
|
if ENV['http_proxy']
|
339
|
-
proxy = URI.parse(ENV['http_proxy'])
|
351
|
+
proxy = URI.parse(ENV['http_proxy'])
|
340
352
|
http = Net::HTTP.Proxy(proxy.host,proxy.port,proxy.user,proxy.password).new(uri.host, uri.port)
|
341
353
|
else
|
342
354
|
http = Net::HTTP.new(uri.host, uri.port)
|