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.
@@ -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