fpm 0.2.12 → 0.2.13

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.
Files changed (2) hide show
  1. data/lib/fpm/source.rb +11 -0
  2. metadata +8 -22
data/lib/fpm/source.rb CHANGED
@@ -76,6 +76,8 @@ class FPM::Source
76
76
  private
77
77
  def tar(output, paths, chdir=".")
78
78
  dirs = []
79
+
80
+ # Include all directory entries at the top of the tarball
79
81
  paths = [ paths ] if paths.is_a? String
80
82
  paths.each do |path|
81
83
  while path != "/" and path != "."
@@ -83,8 +85,17 @@ class FPM::Source
83
85
  path = File.dirname(path)
84
86
  end
85
87
  end # paths.each
88
+
89
+ # Want directories to be sorted thusly: [ "/usr", "/usr/bin" ]
90
+ # Why? tar and some package managers sometimes fail if the tar is created
91
+ # like: [ "/opt/fizz", "/opt" ]
92
+ # dpkg -i will fail if /opt doesn't exist, sorting it by length ensures
93
+ # /opt is created before /opt/fizz.
94
+ dirs.sort! { |a,b| a.size <=> b.size }
95
+ paths.sort! { |a,b| a.size <=> b.size }
86
96
 
87
97
  excludes = self[:exclude].map { |e| ["--exclude", e] }.flatten
98
+
88
99
  # TODO(sissel): To properly implement excludes as regexps, we
89
100
  # will need to find files ourselves. That may be more work
90
101
  # than it is worth. For now, rely on tar's --exclude.
metadata CHANGED
@@ -1,13 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fpm
3
3
  version: !ruby/object:Gem::Version
4
- hash: 15
5
4
  prerelease:
6
- segments:
7
- - 0
8
- - 2
9
- - 12
10
- version: 0.2.12
5
+ version: 0.2.13
11
6
  platform: ruby
12
7
  authors:
13
8
  - Jordan Sissel
@@ -15,7 +10,7 @@ autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
12
 
18
- date: 2011-04-01 00:00:00 -07:00
13
+ date: 2011-04-05 00:00:00 -07:00
19
14
  default_executable:
20
15
  dependencies:
21
16
  - !ruby/object:Gem::Dependency
@@ -26,9 +21,6 @@ dependencies:
26
21
  requirements:
27
22
  - - ">="
28
23
  - !ruby/object:Gem::Version
29
- hash: 3
30
- segments:
31
- - 0
32
24
  version: "0"
33
25
  type: :runtime
34
26
  version_requirements: *id001
@@ -43,16 +35,16 @@ extra_rdoc_files: []
43
35
 
44
36
  files:
45
37
  - lib/fpm/builder.rb
46
- - lib/fpm/namespace.rb
47
38
  - lib/fpm/source.rb
48
39
  - lib/fpm/rubyfixes.rb
49
- - lib/fpm/source/npm.rb
50
- - lib/fpm/source/dir.rb
51
- - lib/fpm/source/rpm.rb
52
- - lib/fpm/source/gem.rb
53
40
  - lib/fpm/target/deb.rb
54
41
  - lib/fpm/target/rpm.rb
55
42
  - lib/fpm/package.rb
43
+ - lib/fpm/namespace.rb
44
+ - lib/fpm/source/dir.rb
45
+ - lib/fpm/source/rpm.rb
46
+ - lib/fpm/source/npm.rb
47
+ - lib/fpm/source/gem.rb
56
48
  - lib/fpm.rb
57
49
  - bin/fpm
58
50
  - bin/fpm-npm
@@ -73,23 +65,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
73
65
  requirements:
74
66
  - - ">="
75
67
  - !ruby/object:Gem::Version
76
- hash: 3
77
- segments:
78
- - 0
79
68
  version: "0"
80
69
  required_rubygems_version: !ruby/object:Gem::Requirement
81
70
  none: false
82
71
  requirements:
83
72
  - - ">="
84
73
  - !ruby/object:Gem::Version
85
- hash: 3
86
- segments:
87
- - 0
88
74
  version: "0"
89
75
  requirements: []
90
76
 
91
77
  rubyforge_project:
92
- rubygems_version: 1.5.1
78
+ rubygems_version: 1.6.2
93
79
  signing_key:
94
80
  specification_version: 3
95
81
  summary: fpm - package building and mangling