fpm 0.2.12 → 0.2.13

Sign up to get free protection for your applications and to get access to all the features.
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