fpm 1.3.3 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,3 @@
1
1
  module FPM
2
- VERSION = "1.3.3"
2
+ VERSION = "1.4.0"
3
3
  end
@@ -1,18 +1,31 @@
1
+ #!/bin/sh
1
2
  after_upgrade() {
3
+ <%# Making sure that at least one command is in the function -%>
4
+ <%# avoids a lot of potential errors, including the case that -%>
5
+ <%# the script is non-empty, but just whitespace and/or comments -%>
6
+ :
2
7
  <% if script?(:after_upgrade) -%>
3
8
  <%= script(:after_upgrade) %>
4
9
  <% end -%>
5
10
  }
6
11
 
7
12
  after_install() {
13
+ <%# Making sure that at least one command is in the function -%>
14
+ <%# avoids a lot of potential errors, including the case that -%>
15
+ <%# the script is non-empty, but just whitespace and/or comments -%>
16
+ :
8
17
  <% if script?(:after_install) -%>
9
18
  <%= script(:after_install) %>
10
19
  <% end -%>
11
20
  }
12
21
 
13
- if [ "${1}" = "configure" -a -z "${2}" ]
22
+ if [ "${1}" = "configure" -a -z "${2}" ] || \
23
+ [ "${1}" = "abort-remove" ]
14
24
  then
15
25
  # "after install" here
26
+ # "abort-remove" happens when the pre-removal script failed.
27
+ # In that case, this script, which should be idemptoent, is run
28
+ # to ensure a clean roll-back of the removal.
16
29
  after_install
17
30
  elif [ "${1}" = "configure" -a -n "${2}" ]
18
31
  then
@@ -28,4 +41,3 @@ then
28
41
  echo "Failed to install before the post-installation script was run." >&2
29
42
  exit 1
30
43
  fi
31
-
@@ -1,16 +1,25 @@
1
+ #!/bin/sh
1
2
  after_remove() {
3
+ <%# Making sure that at least one command is in the function -%>
4
+ <%# avoids a lot of potential errors, including the case that -%>
5
+ <%# the script is non-empty, but just whitespace and/or comments -%>
6
+ :
2
7
  <% if script?(:after_remove) -%>
3
8
  <%= script(:after_remove) %>
4
9
  <% end -%>
5
10
  }
6
11
 
7
12
  dummy() {
13
+ :
8
14
  }
9
15
 
10
16
 
11
- if [ "${1}" = "remove" ]
17
+ if [ "${1}" = "remove" -o "${1}" = "abort-install" ]
12
18
  then
13
19
  # "after remove" goes here
20
+ # "abort-install" happens when the pre-installation script failed.
21
+ # In that case, this script, which should be idemptoent, is run
22
+ # to ensure a clean roll-back of the installation.
14
23
  after_remove
15
24
  elif [ "${1}" = "purge" -a -z "${2}" ]
16
25
  then
@@ -1,10 +1,19 @@
1
+ #!/bin/sh
1
2
  before_upgrade() {
3
+ <%# Making sure that at least one command is in the function -%>
4
+ <%# avoids a lot of potential errors, including the case that -%>
5
+ <%# the script is non-empty, but just whitespace and/or comments -%>
6
+ :
2
7
  <% if script?(:before_upgrade) -%>
3
8
  <%= script(:before_upgrade) %>
4
9
  <% end -%>
5
10
  }
6
11
 
7
12
  before_install() {
13
+ <%# Making sure that at least one command is in the function -%>
14
+ <%# avoids a lot of potential errors, including the case that -%>
15
+ <%# the script is non-empty, but just whitespace and/or comments -%>
16
+ :
8
17
  <% if script?(:before_install) -%>
9
18
  <%= script(:before_install) %>
10
19
  <% end -%>
@@ -16,7 +25,7 @@ then
16
25
  elif [ "${1}" = "upgrade" -a -n "${2}" ]
17
26
  then
18
27
  upgradeFromVersion="${2}"
19
- before_upgrade "${2}"
28
+ before_upgrade "${upgradeFromVersion}"
20
29
  elif [ "${1}" = "install" -a -n "${2}" ]
21
30
  then
22
31
  upgradeFromVersion="${2}"
@@ -24,7 +33,7 @@ then
24
33
  # and a new version is installed.
25
34
  # Looks a _lot_ like an upgrade case, I say we just execute the
26
35
  # same "before upgrade" script as in the previous case
27
- before_upgrade "${2}"
36
+ before_upgrade "${upgradeFromVersion}"
28
37
  elif echo "${1}" | grep -E -q '(fail|abort)'
29
38
  then
30
39
  echo "Failed to install before the pre-installation script was run." >&2
@@ -1,10 +1,16 @@
1
+ #!/bin/sh
1
2
  before_remove() {
3
+ <%# Making sure that at least one command is in the function -%>
4
+ <%# avoids a lot of potential errors, including the case that -%>
5
+ <%# the script is non-empty, but just whitespace and/or comments -%>
6
+ :
2
7
  <% if script?(:before_remove) -%>
3
8
  <%= script(:before_remove) %>
4
9
  <% end -%>
5
10
  }
6
11
 
7
12
  dummy() {
13
+ :
8
14
  }
9
15
 
10
16
  if [ "${1}" = "remove" -a -z "${2}" ]
@@ -13,13 +19,12 @@ then
13
19
  before_remove
14
20
  elif [ "${1}" = "upgrade" ]
15
21
  then
16
- upgradeVersionTo="${2}"
17
22
  # Executed before the old version is removed
18
23
  # upon upgrade.
19
24
  # We should generally not do anything here. The newly installed package
20
25
  # should do the upgrade, not the uninstalled one, since it can't anticipate
21
26
  # what new things it will have to do to upgrade for the new version.
22
- dummy "${2}"
27
+ dummy
23
28
  elif echo "${1}" | grep -E -q "(fail|abort)"
24
29
  then
25
30
  echo "Failed to install before the pre-removal script was run." >&2
@@ -0,0 +1,12 @@
1
+ set name=pkg.fmri value="<%=@name%>@<%=@version%>"
2
+ set name=pkg.summary value="<%=@description%>"
3
+ set name=pkg.human-version value="<%=@version%>"
4
+ set name=pkg.description value="<%=@description%>"
5
+ set name=info.classification value="org.opensolaris.category.2008:<%=@category%>"
6
+ set name=variant.opensolaris.zone <%= attributes[:p5p_zonetype] %>
7
+ set name=variant.arch value=<%=@architecture%>
8
+ <transform file dir -> set owner <%= attributes[:p5p_user] %>>
9
+ <transform file dir -> set group <%= attributes[:p5p_group] %>>
10
+ <transform dir path=opt$->drop>
11
+ <transform dir path=etc$->drop>
12
+ <transform dir path=usr(?:|/bin)$->drop>
@@ -17,8 +17,11 @@
17
17
  # Disable checking for unpackaged files ?
18
18
  #%undefine __check_files
19
19
 
20
- # Use <%= attributes[:rpm_digest] %> file digest method
20
+ # Use <%= attributes[:rpm_digest] %> file digest method.
21
+ # The first macro is the one used in RPM v4.9.1.1
21
22
  %define _binary_filedigest_algorithm <%= digest_algorithm %>
23
+ # This is the macro I find on OSX when Homebrew provides rpmbuild (rpm v5.4.14)
24
+ %define _build_binary_file_digest_algo <%= digest_algorithm %>
22
25
 
23
26
  # Use <%= attributes[:rpm_compression] %> payload compression
24
27
  %define _binary_payload <%= payload_compression %>
@@ -38,7 +41,7 @@ Version: <%= version %>
38
41
  <% if epoch -%>
39
42
  Epoch: <%= epoch %>
40
43
  <% end -%>
41
- Release: <%= iteration or 1 %>
44
+ Release: <%= iteration or 1 %><%= "%{?dist}" if attributes[:rpm_dist] %>
42
45
  <%# use the first line of the description as the summary -%>
43
46
  Summary: <%= description.split("\n").first.empty? ? "_" : description.split("\n").first %>
44
47
  <% if !attributes[:rpm_autoreqprov?] -%>
@@ -120,42 +123,60 @@ Obsoletes: <%= repl %>
120
123
  <% if script?(:before_upgrade) or script?(:before_install) -%>
121
124
  %pre
122
125
  upgrade() {
126
+ <%# Making sure that at least one command is in the function -%>
127
+ <%# avoids a lot of potential errors, including the case that -%>
128
+ <%# the script is non-empty, but just whitespace and/or comments -%>
129
+ :
123
130
  <% if script?(:before_upgrade) -%>
124
131
  <%= script(:before_upgrade) %>
125
132
  <% end -%>
126
133
  }
127
134
  install() {
135
+ <%# Making sure that at least one command is in the function -%>
136
+ <%# avoids a lot of potential errors, including the case that -%>
137
+ <%# the script is non-empty, but just whitespace and/or comments -%>
138
+ :
128
139
  <% if script?(:before_install) -%>
129
140
  <%= script(:before_install) %>
130
141
  <% end -%>
131
142
  }
132
143
  if [ "${1}" -eq 1 ]
133
144
  then
134
- install
135
145
  # "before install" goes here
146
+ install
136
147
  elif [ "${1}" -gt 1 ]
137
148
  then
149
+ # "before upgrade" goes here
138
150
  upgrade
139
151
  fi
140
152
  <% end -%>
141
153
  <% if script?(:after_upgrade) or script?(:after_install) -%>
142
- %pre
154
+ %post
143
155
  upgrade() {
156
+ <%# Making sure that at least one command is in the function -%>
157
+ <%# avoids a lot of potential errors, including the case that -%>
158
+ <%# the script is non-empty, but just whitespace and/or comments -%>
159
+ :
144
160
  <% if script?(:after_upgrade) -%>
145
161
  <%= script(:after_upgrade) %>
146
162
  <% end -%>
147
163
  }
148
164
  install() {
165
+ <%# Making sure that at least one command is in the function -%>
166
+ <%# avoids a lot of potential errors, including the case that -%>
167
+ <%# the script is non-empty, but just whitespace and/or comments -%>
168
+ :
149
169
  <% if script?(:after_install) -%>
150
170
  <%= script(:after_install) %>
151
171
  <% end -%>
152
172
  }
153
173
  if [ "${1}" -eq 1 ]
154
174
  then
175
+ # "after install" goes here
155
176
  install
156
- # "before install" goes here
157
177
  elif [ "${1}" -gt 1 ]
158
178
  then
179
+ # "after upgrade" goes here
159
180
  upgrade
160
181
  fi
161
182
  <% end -%>
@@ -163,6 +184,10 @@ fi
163
184
  %preun
164
185
  if [ "${1}" -eq 0 ]
165
186
  then
187
+ <%# Making sure that at least one command is in the function -%>
188
+ <%# avoids a lot of potential errors, including the case that -%>
189
+ <%# the script is non-empty, but just whitespace and/or comments -%>
190
+ :
166
191
  <%= script(:before_remove) %>
167
192
  fi
168
193
  <% end -%>
@@ -170,6 +195,10 @@ fi
170
195
  %postun
171
196
  if [ "${1}" -eq 0 ]
172
197
  then
198
+ <%# Making sure that at least one command is in the function -%>
199
+ <%# avoids a lot of potential errors, including the case that -%>
200
+ <%# the script is non-empty, but just whitespace and/or comments -%>
201
+ :
173
202
  <%= script(:after_remove) %>
174
203
  fi
175
204
  <% end -%>
@@ -27,6 +27,7 @@ function main() {
27
27
  wait_for_others
28
28
  kill_others
29
29
  set_owner
30
+ pre_install
30
31
  unpack_payload
31
32
 
32
33
  if [ "$UNPACK_ONLY" == "1" ] ; then
@@ -173,6 +174,14 @@ function set_owner(){
173
174
  log "Installing as user $OWNER"
174
175
  }
175
176
 
177
+ function pre_install() {
178
+ # for rationale on the `:`, see #871
179
+ :
180
+ <% if script?(:before_install) -%>
181
+ <%= script(:before_install) %>
182
+ <% end %>
183
+ }
184
+
176
185
  function unpack_payload(){
177
186
  if [ "$FORCE" == "1" ] || [ ! "$(ls -A $INSTALL_DIR)" ] ; then
178
187
  log "Unpacking payload . . ."
@@ -242,6 +251,12 @@ function clean_out_old_releases(){
242
251
  fi
243
252
  }
244
253
 
254
+ function print_package_metadata(){
255
+ local metadata_line=$(grep -a -n -m1 '__METADATA__$' $0 | sed 's/:.*//')
256
+ local archive_line=$(grep -a -n -m1 '__ARCHIVE__$' $0 | sed 's/:.*//')
257
+ sed -n "$((metadata_line + 1)),$((archive_line - 1)) p" $0
258
+ }
259
+
245
260
  function print_usage(){
246
261
  echo "Usage: `basename $0` [options]"
247
262
  echo "Install this package"
@@ -275,7 +290,7 @@ function log(){
275
290
  }
276
291
 
277
292
  function parse_args() {
278
- args=`getopt i:o:rfuyvh $*`
293
+ args=`getopt mi:o:rfuyvh $*`
279
294
 
280
295
  if [ $? != 0 ] ; then
281
296
  print_usage
@@ -286,6 +301,10 @@ function parse_args() {
286
301
  do
287
302
  case "$i"
288
303
  in
304
+ -m)
305
+ print_package_metadata
306
+ exit 0
307
+ shift;;
289
308
  -r)
290
309
  USE_FLAT_RELEASE_DIRECTORY=1
291
310
  shift;;
@@ -331,4 +350,6 @@ main
331
350
  save_environment $(fpm_metadata_file)
332
351
  exit 0
333
352
 
353
+ __METADATA__
354
+ <%= package_metadata if respond_to?(:package_metadata) %>
334
355
  __ARCHIVE__
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fpm
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.3
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jordan Sissel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-11 00:00:00.000000000 Z
11
+ date: 2015-07-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 0.0.9
61
+ version: 0.0.10
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 0.0.9
68
+ version: 0.0.10
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: clamp
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -189,18 +189,18 @@ files:
189
189
  - lib/fpm/package/gem.rb
190
190
  - lib/fpm/package/npm.rb
191
191
  - lib/fpm/package/osxpkg.rb
192
+ - lib/fpm/package/p5p.rb
192
193
  - lib/fpm/package/pear.rb
193
194
  - lib/fpm/package/pkgin.rb
194
195
  - lib/fpm/package/puppet.rb
195
196
  - lib/fpm/package/pyfpm/__init__.py
196
- - lib/fpm/package/pyfpm/__init__.pyc
197
197
  - lib/fpm/package/pyfpm/get_metadata.py
198
- - lib/fpm/package/pyfpm/get_metadata.pyc
199
198
  - lib/fpm/package/python.rb
200
199
  - lib/fpm/package/rpm.rb
201
200
  - lib/fpm/package/sh.rb
202
201
  - lib/fpm/package/solaris.rb
203
202
  - lib/fpm/package/tar.rb
203
+ - lib/fpm/package/virtualenv.rb
204
204
  - lib/fpm/package/zip.rb
205
205
  - lib/fpm/util.rb
206
206
  - lib/fpm/version.rb
@@ -212,6 +212,7 @@ files:
212
212
  - templates/deb/preinst_upgrade.sh.erb
213
213
  - templates/deb/prerm_upgrade.sh.erb
214
214
  - templates/osxpkg.erb
215
+ - templates/p5p_metadata.erb
215
216
  - templates/puppet/package.pp.erb
216
217
  - templates/puppet/package/remove.pp.erb
217
218
  - templates/rpm.erb
@@ -239,7 +240,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
239
240
  version: '0'
240
241
  requirements: []
241
242
  rubyforge_project:
242
- rubygems_version: 2.2.2
243
+ rubygems_version: 2.4.8
243
244
  signing_key:
244
245
  specification_version: 4
245
246
  summary: fpm - package building and mangling