pkgr 1.9.0 → 1.9.1

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 (58) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +9 -1
  3. data/data/build_dependencies/centos.yml +2 -1
  4. data/data/build_dependencies/debian.yml +17 -2
  5. data/data/build_dependencies/sles.yml +6 -1
  6. data/data/build_dependencies/ubuntu.yml +12 -1
  7. data/data/buildpacks/amazon-2014 +3 -3
  8. data/data/buildpacks/amazon-2015 +3 -3
  9. data/data/buildpacks/centos-10 +4 -0
  10. data/data/buildpacks/centos-6 +3 -3
  11. data/data/buildpacks/centos-7 +3 -3
  12. data/data/buildpacks/centos-8 +3 -3
  13. data/data/buildpacks/centos-9 +4 -0
  14. data/data/buildpacks/debian-10 +3 -3
  15. data/data/buildpacks/debian-11 +3 -3
  16. data/data/buildpacks/debian-12 +4 -0
  17. data/data/buildpacks/debian-13 +4 -0
  18. data/data/buildpacks/debian-6 +2 -2
  19. data/data/buildpacks/debian-7 +3 -3
  20. data/data/buildpacks/debian-8 +3 -3
  21. data/data/buildpacks/debian-9 +3 -3
  22. data/data/buildpacks/fedora-20 +3 -3
  23. data/data/buildpacks/sles-11 +3 -3
  24. data/data/buildpacks/sles-12 +3 -3
  25. data/data/buildpacks/sles-15 +3 -0
  26. data/data/buildpacks/sles-16 +3 -0
  27. data/data/buildpacks/ubuntu-10.04 +3 -3
  28. data/data/buildpacks/ubuntu-12.04 +3 -3
  29. data/data/buildpacks/ubuntu-14.04 +3 -3
  30. data/data/buildpacks/ubuntu-16.04 +3 -3
  31. data/data/buildpacks/ubuntu-18.04 +3 -3
  32. data/data/buildpacks/ubuntu-20.04 +3 -3
  33. data/data/buildpacks/ubuntu-22.04 +3 -3
  34. data/data/buildpacks/ubuntu-24.04 +4 -0
  35. data/data/buildpacks/ubuntu-26.04 +4 -0
  36. data/data/cli/cli.sh.erb +98 -31
  37. data/data/dependencies/centos.yml +4 -0
  38. data/data/dependencies/sles.yml +2 -0
  39. data/data/dependencies/ubuntu.yml +16 -1
  40. data/data/hooks/postinstall.sh +5 -5
  41. data/data/hooks/preinstall.sh +1 -1
  42. data/data/init/systemd/default/process.service.erb +2 -3
  43. data/data/init/sysv/lsb-3.1/process.erb +4 -2
  44. data/lib/pkgr/builder.rb +18 -4
  45. data/lib/pkgr/buildpack.rb +22 -1
  46. data/lib/pkgr/config.rb +12 -1
  47. data/lib/pkgr/cron.rb +1 -1
  48. data/lib/pkgr/distributions/amazon.rb +3 -5
  49. data/lib/pkgr/distributions/base.rb +16 -5
  50. data/lib/pkgr/distributions/debian.rb +7 -3
  51. data/lib/pkgr/distributions/fedora.rb +4 -0
  52. data/lib/pkgr/distributions/redhat.rb +0 -1
  53. data/lib/pkgr/distributions/sles.rb +9 -1
  54. data/lib/pkgr/env.rb +4 -3
  55. data/lib/pkgr/fpm_command.rb +2 -0
  56. data/lib/pkgr/version.rb +1 -1
  57. data/lib/pkgr.rb +1 -0
  58. metadata +46 -10
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 97cad2ada805d4a5d186aa6e8dac7def0ba3d1d6dc80255ded270149ed4d8333
4
- data.tar.gz: f6b258481d1081548ba9a6b0f1f0e78002379c7123c1e7bb9c85b9bdab5027b8
3
+ metadata.gz: 221a39c168209a15e86c79ac926c8b42d89edc92e5c494682e43a75164d99148
4
+ data.tar.gz: e9da34d11459217574094d010f8c7f1674b4daf1f7d24ef499134ab114ecfbcd
5
5
  SHA512:
6
- metadata.gz: 5c8606fde8bdb86b138c3079289177f4ec28db16e174ea5f328fe477933c6a2aaf37499321e009fe34777696c08abf7e472b3ea802af6a20cb5ba1945965d456
7
- data.tar.gz: '0179edc432d6f0f8f2c81ec5f1bafd306112463fe7029778397d75436e430245a7985989ff5c2ad6d11aa895c510b689969cfc4600a9462f2386a8f05ff6cb72'
6
+ metadata.gz: 305ab83a398c4152ed1da1dd5a1346d56f884decc246a02f4fe3f7e46c1c70da7dcb2c0561517d171cdec53b3cc3aee13380bc5f90bd8f80cbefdeebcb3653f2
7
+ data.tar.gz: dee612e060415180d84b5c67685338c61cc5485e76257ad75a7c6c6dfb673063e74843cb33d2c554a847553f503acdb3adf594a77dadcf421723abbb6a180d95
data/README.md CHANGED
@@ -29,20 +29,28 @@ They may just work.
29
29
 
30
30
  ## Supported distributions (64bits only)
31
31
 
32
+ * Ubuntu 26.04
33
+ * Ubuntu 24.04 ("noble")
32
34
  * Ubuntu 22.04 ("jammy")
33
35
  * Ubuntu 20.04 ("focal")
34
36
  * Ubuntu 18.04 ("bionic")
35
37
  * Ubuntu 16.04 ("xenial")
36
38
  * Ubuntu 14.04 ("trusty")
37
39
  * Ubuntu 12.04 ("precise")
40
+ * Debian 13 ("trixie")
41
+ * Debian 12 ("bookworm")
38
42
  * Debian 11 ("bullseye")
39
43
  * Debian 10 ("buster")
40
44
  * Debian 9 ("stretch")
41
45
  * Debian 8 ("jessie")
42
46
  * Debian 7 ("wheezy")
47
+ * RHEL/CentOS 10
48
+ * RHEL/CentOS 9
43
49
  * RHEL/CentOS 8
44
50
  * RHEL/CentOS 7
45
51
  * RHEL/CentOS 6
52
+ * Suse Linux Enterprise Server 16
53
+ * Suse Linux Enterprise Server 15
46
54
  * Suse Linux Enterprise Server 12
47
55
  * Suse Linux Enterprise Server 11
48
56
  * Amazon Linux AMI 2015
@@ -206,7 +214,7 @@ Issue getting nokogiri to compile? Try the following based on this [comment](htt
206
214
 
207
215
  ## Authors
208
216
 
209
- * Cyril Rohr <cyril.rohr@gmail.com> - <http://crohr.me>, <https://packager.io>
217
+ * Cyril Rohr <https://cyrilrohr.com>. Other projects: [RunsOn - 10x cheaper GitHub Actions runners](https://runs-on.com), [PullPreview - Preview environments made simple](https://pullpreview.com).
210
218
 
211
219
  ## Copyright
212
220
 
@@ -1,5 +1,4 @@
1
1
  default:
2
- - curl
3
2
  - gcc
4
3
  - gcc-c++
5
4
  - kernel-devel
@@ -16,3 +15,5 @@ centos-7:
16
15
  - mariadb-devel
17
16
  centos-8:
18
17
  - mariadb-devel
18
+ centos-10:
19
+ - mariadb-devel
@@ -3,7 +3,6 @@ default:
3
3
  - libpq-dev
4
4
  - libsqlite3-0
5
5
  - libevent-dev
6
- - libxml2-dev
7
6
  - libxslt1-dev
8
7
  - libreadline-dev
9
8
  - build-essential
@@ -11,23 +10,39 @@ debian-6:
11
10
  - libssl0.9.8
12
11
  - libssl-dev
13
12
  - libmysqlclient-dev
13
+ - libxml2-dev
14
14
  debian-7:
15
15
  - libssl1.0.0
16
16
  - libssl-dev
17
17
  - libmysqlclient-dev
18
+ - libxml2-dev
18
19
  debian-8:
19
20
  - libssl1.0.0
20
21
  - libssl-dev
21
22
  - libmysqlclient-dev
23
+ - libxml2-dev
22
24
  debian-9:
23
25
  - libssl1.0.2
24
26
  - libssl1.0-dev
25
27
  - default-libmysqlclient-dev
28
+ - libxml2-dev
26
29
  debian-10:
27
30
  - libssl1.1
28
31
  - libssl-dev
29
32
  - default-libmysqlclient-dev
33
+ - libxml2-dev
30
34
  debian-11:
31
35
  - libssl1.1
32
36
  - libssl-dev
33
- - default-libmysqlclient-dev
37
+ - default-libmysqlclient-dev
38
+ - libxml2-dev
39
+ debian-12:
40
+ - libssl3
41
+ - libssl-dev
42
+ - default-libmysqlclient-dev
43
+ - libxml2-dev
44
+ debian-13:
45
+ - libssl3
46
+ - libssl-dev
47
+ - default-libmysqlclient-dev
48
+ - libxml2-dev
@@ -7,12 +7,17 @@ default:
7
7
  - libxml2-devel
8
8
  - libxslt-devel
9
9
  - libevent-devel
10
- - libmysqlclient-devel
11
10
  - sqlite3-devel
12
11
  - timezone
13
12
  sles-11:
13
+ - libmysqlclient-devel
14
14
  - kernel-default-devel
15
15
  - postgresql94-devel
16
16
  sles-12:
17
+ - libmysqlclient-devel
17
18
  - kernel-devel
18
19
  - postgresql-devel
20
+ sles-15:
21
+ - postgresql-devel
22
+ sles-16:
23
+ - postgresql-devel
@@ -5,21 +5,32 @@ default:
5
5
  - libsqlite3-0
6
6
  - libevent-dev
7
7
  - libssl-dev
8
- - libxml2-dev
9
8
  - libxslt1-dev
10
9
  - libreadline-dev
11
10
  - build-essential
12
11
  ubuntu-10.04:
13
12
  - libssl0.9.8
13
+ - libxml2-dev
14
14
  ubuntu-12.04:
15
15
  - libssl1.0.0
16
+ - libxml2-dev
16
17
  ubuntu-14.04:
17
18
  - libssl1.0.0
19
+ - libxml2-dev
18
20
  ubuntu-16.04:
19
21
  - libssl1.0.0
22
+ - libxml2-dev
20
23
  ubuntu-18.04:
21
24
  - libssl1.0.0
25
+ - libxml2-dev
22
26
  ubuntu-20.04:
23
27
  - libssl1.1
28
+ - libxml2-dev
24
29
  ubuntu-22.04:
25
30
  - libssl3
31
+ - libxml2-dev
32
+ ubuntu-24.04:
33
+ - libssl3
34
+ - libxml2-dev
35
+ ubuntu-26.04:
36
+ - libssl3
@@ -1,4 +1,4 @@
1
- https://github.com/pkgr/heroku-buildpack-ruby.git#v242-1
2
- https://github.com/pkgr/heroku-buildpack-python.git#buildcurl
3
- https://github.com/heroku/heroku-buildpack-nodejs.git#v197
1
+ https://github.com/pkgr/heroku-buildpack-ruby.git#v356-1
2
+ https://github.com/pkgr/heroku-buildpack-python#v221-1
3
+ https://github.com/heroku/heroku-buildpack-nodejs.git#v363
4
4
  https://github.com/kr/heroku-buildpack-go.git
@@ -1,4 +1,4 @@
1
- https://github.com/pkgr/heroku-buildpack-ruby.git#v242-1
2
- https://github.com/pkgr/heroku-buildpack-python.git#buildcurl
3
- https://github.com/heroku/heroku-buildpack-nodejs.git#v197
1
+ https://github.com/pkgr/heroku-buildpack-ruby.git#v356-1
2
+ https://github.com/pkgr/heroku-buildpack-python#v221-1
3
+ https://github.com/heroku/heroku-buildpack-nodejs.git#v363
4
4
  https://github.com/kr/heroku-buildpack-go.git
@@ -0,0 +1,4 @@
1
+ https://github.com/pkgr/heroku-buildpack-ruby.git#v356-1
2
+ https://github.com/pkgr/heroku-buildpack-python#v221-1
3
+ https://github.com/heroku/heroku-buildpack-nodejs.git#v363
4
+ https://github.com/kr/heroku-buildpack-go.git
@@ -1,4 +1,4 @@
1
- https://github.com/pkgr/heroku-buildpack-ruby.git#v242-1
2
- https://github.com/pkgr/heroku-buildpack-python.git#buildcurl
3
- https://github.com/heroku/heroku-buildpack-nodejs.git#v197
1
+ https://github.com/pkgr/heroku-buildpack-ruby.git#v356-1
2
+ https://github.com/pkgr/heroku-buildpack-python#v221-1
3
+ https://github.com/heroku/heroku-buildpack-nodejs.git#v363
4
4
  https://github.com/kr/heroku-buildpack-go.git
@@ -1,4 +1,4 @@
1
- https://github.com/pkgr/heroku-buildpack-ruby.git#v242-1
2
- https://github.com/pkgr/heroku-buildpack-python.git#buildcurl
3
- https://github.com/heroku/heroku-buildpack-nodejs.git#v197
1
+ https://github.com/pkgr/heroku-buildpack-ruby.git#v356-1
2
+ https://github.com/pkgr/heroku-buildpack-python#v221-1
3
+ https://github.com/heroku/heroku-buildpack-nodejs.git#v363
4
4
  https://github.com/kr/heroku-buildpack-go.git
@@ -1,4 +1,4 @@
1
- https://github.com/pkgr/heroku-buildpack-ruby.git#v242-1
2
- https://github.com/pkgr/heroku-buildpack-python.git#buildcurl
3
- https://github.com/heroku/heroku-buildpack-nodejs.git#v197
1
+ https://github.com/pkgr/heroku-buildpack-ruby.git#v356-1
2
+ https://github.com/pkgr/heroku-buildpack-python#v221-1
3
+ https://github.com/heroku/heroku-buildpack-nodejs.git#v363
4
4
  https://github.com/kr/heroku-buildpack-go.git
@@ -0,0 +1,4 @@
1
+ https://github.com/pkgr/heroku-buildpack-ruby.git#v356-1
2
+ https://github.com/pkgr/heroku-buildpack-python#v221-1
3
+ https://github.com/heroku/heroku-buildpack-nodejs.git#v363
4
+ https://github.com/kr/heroku-buildpack-go.git
@@ -1,4 +1,4 @@
1
- https://github.com/pkgr/heroku-buildpack-ruby.git#v242-1
2
- https://github.com/pkgr/heroku-buildpack-python.git#buildcurl
3
- https://github.com/heroku/heroku-buildpack-nodejs.git#v197
1
+ https://github.com/pkgr/heroku-buildpack-ruby.git#v356-1
2
+ https://github.com/pkgr/heroku-buildpack-python#v221-1
3
+ https://github.com/heroku/heroku-buildpack-nodejs.git#v363
4
4
  https://github.com/kr/heroku-buildpack-go.git
@@ -1,4 +1,4 @@
1
- https://github.com/pkgr/heroku-buildpack-ruby.git#v242-1
2
- https://github.com/pkgr/heroku-buildpack-python.git#buildcurl
3
- https://github.com/heroku/heroku-buildpack-nodejs.git#v197
1
+ https://github.com/pkgr/heroku-buildpack-ruby.git#v356-1
2
+ https://github.com/pkgr/heroku-buildpack-python#v221-1
3
+ https://github.com/heroku/heroku-buildpack-nodejs.git#v363
4
4
  https://github.com/kr/heroku-buildpack-go.git
@@ -0,0 +1,4 @@
1
+ https://github.com/pkgr/heroku-buildpack-ruby.git#v356-1
2
+ https://github.com/pkgr/heroku-buildpack-python#v221-1
3
+ https://github.com/heroku/heroku-buildpack-nodejs.git#v363
4
+ https://github.com/kr/heroku-buildpack-go.git
@@ -0,0 +1,4 @@
1
+ https://github.com/pkgr/heroku-buildpack-ruby.git#v356-1
2
+ https://github.com/pkgr/heroku-buildpack-python#v221-1
3
+ https://github.com/heroku/heroku-buildpack-nodejs.git#v363
4
+ https://github.com/kr/heroku-buildpack-go.git
@@ -1,3 +1,3 @@
1
- https://github.com/pkgr/heroku-buildpack-ruby.git#v242-1
2
- https://github.com/pkgr/heroku-buildpack-python.git#buildcurl
1
+ https://github.com/pkgr/heroku-buildpack-ruby.git#v356-1
2
+ https://github.com/pkgr/heroku-buildpack-python#v221-1
3
3
  https://github.com/heroku/heroku-buildpack-ruby.git,CURL_CONNECT_TIMEOUT=60,CURL_TIMEOUT=300
@@ -1,4 +1,4 @@
1
- https://github.com/pkgr/heroku-buildpack-ruby.git#v242-1
2
- https://github.com/pkgr/heroku-buildpack-python.git#buildcurl
3
- https://github.com/heroku/heroku-buildpack-nodejs.git#v197
1
+ https://github.com/pkgr/heroku-buildpack-ruby.git#v356-1
2
+ https://github.com/pkgr/heroku-buildpack-python#v221-1
3
+ https://github.com/heroku/heroku-buildpack-nodejs.git#v363
4
4
  https://github.com/kr/heroku-buildpack-go.git
@@ -1,4 +1,4 @@
1
- https://github.com/pkgr/heroku-buildpack-ruby.git#v242-1
2
- https://github.com/pkgr/heroku-buildpack-python.git#buildcurl
3
- https://github.com/heroku/heroku-buildpack-nodejs.git#v197
1
+ https://github.com/pkgr/heroku-buildpack-ruby.git#v356-1
2
+ https://github.com/pkgr/heroku-buildpack-python#v221-1
3
+ https://github.com/heroku/heroku-buildpack-nodejs.git#v363
4
4
  https://github.com/kr/heroku-buildpack-go.git
@@ -1,4 +1,4 @@
1
- https://github.com/pkgr/heroku-buildpack-ruby.git#v242-1
2
- https://github.com/pkgr/heroku-buildpack-python.git#buildcurl
3
- https://github.com/heroku/heroku-buildpack-nodejs.git#v197
1
+ https://github.com/pkgr/heroku-buildpack-ruby.git#v356-1
2
+ https://github.com/pkgr/heroku-buildpack-python#v221-1
3
+ https://github.com/heroku/heroku-buildpack-nodejs.git#v363
4
4
  https://github.com/kr/heroku-buildpack-go.git
@@ -1,3 +1,3 @@
1
- https://github.com/pkgr/heroku-buildpack-ruby.git#v242-1
2
- https://github.com/pkgr/heroku-buildpack-python.git#buildcurl
3
- https://github.com/heroku/heroku-buildpack-nodejs.git#v197
1
+ https://github.com/pkgr/heroku-buildpack-ruby.git#v356-1
2
+ https://github.com/pkgr/heroku-buildpack-python#v221-1
3
+ https://github.com/heroku/heroku-buildpack-nodejs.git#v363
@@ -1,3 +1,3 @@
1
- https://github.com/pkgr/heroku-buildpack-ruby.git#v242-1
2
- https://github.com/pkgr/heroku-buildpack-python.git#buildcurl
3
- https://github.com/heroku/heroku-buildpack-nodejs.git#v197
1
+ https://github.com/pkgr/heroku-buildpack-ruby.git#v356-1
2
+ https://github.com/pkgr/heroku-buildpack-python#v221-1
3
+ https://github.com/heroku/heroku-buildpack-nodejs.git#v363
@@ -1,3 +1,3 @@
1
- https://github.com/pkgr/heroku-buildpack-ruby.git#v242-1
2
- https://github.com/pkgr/heroku-buildpack-python.git#buildcurl
3
- https://github.com/heroku/heroku-buildpack-nodejs.git#v197
1
+ https://github.com/pkgr/heroku-buildpack-ruby.git#v356-1
2
+ https://github.com/pkgr/heroku-buildpack-python#v221-1
3
+ https://github.com/heroku/heroku-buildpack-nodejs.git#v363
@@ -0,0 +1,3 @@
1
+ https://github.com/pkgr/heroku-buildpack-ruby.git#v356-1
2
+ https://github.com/pkgr/heroku-buildpack-python#v221-1
3
+ https://github.com/heroku/heroku-buildpack-nodejs.git#v363
@@ -0,0 +1,3 @@
1
+ https://github.com/pkgr/heroku-buildpack-ruby.git#v356-1
2
+ https://github.com/pkgr/heroku-buildpack-python#v221-1
3
+ https://github.com/heroku/heroku-buildpack-nodejs.git#v363
@@ -1,3 +1,3 @@
1
- https://github.com/pkgr/heroku-buildpack-ruby.git#v242-1
2
- https://github.com/pkgr/heroku-buildpack-python.git#buildcurl
3
- https://github.com/heroku/heroku-buildpack-nodejs.git
1
+ https://github.com/pkgr/heroku-buildpack-ruby.git#v356-1
2
+ https://github.com/pkgr/heroku-buildpack-python#v221-1
3
+ https://github.com/heroku/heroku-buildpack-nodejs.git#v363
@@ -1,4 +1,4 @@
1
- https://github.com/pkgr/heroku-buildpack-ruby.git#v242-1
2
- https://github.com/pkgr/heroku-buildpack-python.git#buildcurl
3
- https://github.com/heroku/heroku-buildpack-nodejs.git#v197
1
+ https://github.com/pkgr/heroku-buildpack-ruby.git#v356-1
2
+ https://github.com/pkgr/heroku-buildpack-python#v221-1
3
+ https://github.com/heroku/heroku-buildpack-nodejs.git#v363
4
4
  https://github.com/kr/heroku-buildpack-go.git
@@ -1,4 +1,4 @@
1
- https://github.com/pkgr/heroku-buildpack-ruby.git#v242-1
2
- https://github.com/pkgr/heroku-buildpack-python.git#buildcurl
3
- https://github.com/heroku/heroku-buildpack-nodejs.git#v197
1
+ https://github.com/pkgr/heroku-buildpack-ruby.git#v356-1
2
+ https://github.com/pkgr/heroku-buildpack-python#v221-1
3
+ https://github.com/heroku/heroku-buildpack-nodejs.git#v363
4
4
  https://github.com/kr/heroku-buildpack-go.git
@@ -1,4 +1,4 @@
1
- https://github.com/pkgr/heroku-buildpack-ruby.git#v242-1
2
- https://github.com/pkgr/heroku-buildpack-python.git#buildcurl
3
- https://github.com/heroku/heroku-buildpack-nodejs.git#v197
1
+ https://github.com/pkgr/heroku-buildpack-ruby.git#v356-1
2
+ https://github.com/pkgr/heroku-buildpack-python#v221-1
3
+ https://github.com/heroku/heroku-buildpack-nodejs.git#v363
4
4
  https://github.com/kr/heroku-buildpack-go.git
@@ -1,4 +1,4 @@
1
- https://github.com/pkgr/heroku-buildpack-ruby.git#v242-1
2
- https://github.com/pkgr/heroku-buildpack-python.git#buildcurl
3
- https://github.com/heroku/heroku-buildpack-nodejs.git#v197
1
+ https://github.com/pkgr/heroku-buildpack-ruby.git#v356-1
2
+ https://github.com/pkgr/heroku-buildpack-python#v221-1
3
+ https://github.com/heroku/heroku-buildpack-nodejs.git#v363
4
4
  https://github.com/kr/heroku-buildpack-go.git
@@ -1,4 +1,4 @@
1
- https://github.com/pkgr/heroku-buildpack-ruby.git#v242-1
2
- https://github.com/pkgr/heroku-buildpack-python.git#buildcurl
3
- https://github.com/heroku/heroku-buildpack-nodejs.git#v197
1
+ https://github.com/pkgr/heroku-buildpack-ruby.git#v356-1
2
+ https://github.com/pkgr/heroku-buildpack-python#v221-1
3
+ https://github.com/heroku/heroku-buildpack-nodejs.git#v363
4
4
  https://github.com/kr/heroku-buildpack-go.git
@@ -1,4 +1,4 @@
1
- https://github.com/pkgr/heroku-buildpack-ruby.git#v242-1
2
- https://github.com/pkgr/heroku-buildpack-python.git#buildcurl
3
- https://github.com/heroku/heroku-buildpack-nodejs.git#v197
1
+ https://github.com/pkgr/heroku-buildpack-ruby.git#v356-1
2
+ https://github.com/pkgr/heroku-buildpack-python#v221-1
3
+ https://github.com/heroku/heroku-buildpack-nodejs.git#v363
4
4
  https://github.com/kr/heroku-buildpack-go.git
@@ -0,0 +1,4 @@
1
+ https://github.com/pkgr/heroku-buildpack-ruby.git#v356-1
2
+ https://github.com/pkgr/heroku-buildpack-python#v221-1
3
+ https://github.com/heroku/heroku-buildpack-nodejs.git#v363
4
+ https://github.com/kr/heroku-buildpack-go.git
@@ -0,0 +1,4 @@
1
+ https://github.com/pkgr/heroku-buildpack-ruby.git#v356-1
2
+ https://github.com/pkgr/heroku-buildpack-python#v221-1
3
+ https://github.com/heroku/heroku-buildpack-nodejs.git#v363
4
+ https://github.com/kr/heroku-buildpack-go.git
data/data/cli/cli.sh.erb CHANGED
@@ -7,8 +7,9 @@ set -o pipefail
7
7
  APP_NAME=$(basename $0)
8
8
  # useful for testing
9
9
  ROOT_PATH=${ROOT_PATH:="/"}
10
- # store original pwd
11
- export ORIGINAL_PWD=$(pwd)
10
+ # store original pwd (kept across the privilege drop, see exec_as_app_user)
11
+ export ORIGINAL_PWD=${PKGR_ORIGINAL_PWD:-$(pwd)}
12
+ unset PKGR_ORIGINAL_PWD
12
13
  # required for chroot on fedora
13
14
  PATH="$PATH:/usr/sbin"
14
15
 
@@ -52,15 +53,48 @@ usage() {
52
53
 
53
54
  DEFAULT_FILE=$(_p "/etc/default/${APP_NAME}")
54
55
  SYSTEMD_DIR=$(_p "/etc/systemd/system")
56
+ # Init templates are copied to system locations as root, so they are read from
57
+ # a root-owned directory rather than from APP_HOME.
58
+ SCALING_DIR=$(_p "/usr/share/${APP_NAME}/scaling")
55
59
 
56
60
  . ${DEFAULT_FILE}
57
61
 
58
- for file in $(_p "${APP_HOME}/.profile.d")/*.sh; do
59
- # .profile.d scripts assume HOME indicates the path to the app directory
60
- if [ -f $file ]; then HOME=${APP_HOME} . $file &>/dev/null; fi
61
- done
62
+ APP_UID="$(id -u "${APP_USER}" 2>/dev/null || true)"
63
+
64
+ # APP_HOME and /etc/APP_NAME/conf.d are writable by APP_USER. Anything sourced
65
+ # or executed from there must only ever run as APP_USER, otherwise the app
66
+ # user could get root the next time root runs this script (e.g. a service
67
+ # start). The app environment is therefore only loaded as APP_USER, and root
68
+ # re-executes this script as APP_USER whenever it needs that environment.
69
+ is_app_user() {
70
+ [ "$(id -u)" = "${APP_UID}" ]
71
+ }
72
+
73
+ exec_as_app_user() {
74
+ local self="$0"
75
+ if [ "${self#/}" = "$self" ]; then self="${ORIGINAL_PWD}/${self}"; fi
76
+ local additional_groups="$(id -Gn ${APP_USER} | tr ' ' ',')"
77
+ # PORT and HOME were set by the defaults file: pass on the caller's PORT
78
+ # only, so that the app user gets the same values as when calling directly.
79
+ unset HOME PORT
80
+ if [ -n "$BASE_PORT" ]; then export PORT="$BASE_PORT"; fi
81
+ export PKGR_ORIGINAL_PWD="${ORIGINAL_PWD}"
82
+ exec chroot --userspec ${APP_USER}:${APP_GROUP} --groups="${additional_groups}" "/" "$self" "$@"
83
+ }
84
+
85
+ if is_app_user ; then
86
+ for file in $(_p "${APP_HOME}/.profile.d")/*.sh; do
87
+ # .profile.d scripts assume HOME indicates the path to the app directory
88
+ if [ -f $file ]; then HOME=${APP_HOME} . $file &>/dev/null; fi
89
+ done
90
+ fi
62
91
 
63
92
  if [ "$APP_CLI" != "" ] ; then
93
+ # The custom CLI lives in APP_HOME, so never execute it as root.
94
+ if [ "$(id -u)" = "0" ] && ! is_app_user ; then
95
+ exec_as_app_user "$@"
96
+ fi
97
+
64
98
  cli_path="$APP_CLI"
65
99
  if [ ! -e "$cli_path" ]; then
66
100
  cli_path="$APP_HOME/$APP_CLI"
@@ -76,17 +110,18 @@ if [ "$APP_CLI" != "" ] ; then
76
110
  fi
77
111
  fi
78
112
 
79
- if [ ! -w "$(_p "/etc/${APP_NAME}/conf.d")" ] ; then
113
+ if [ "$(id -u)" != "0" ] && ! is_app_user ; then
80
114
  echo "Error: You must be executing as the user '${APP_USER}' or with root privileges to launch commands."
81
115
  echo "Either log in as '${APP_USER}', root, use sudo, or add sudo privileges for running ${APP_NAME} with your current user."
82
116
  exit 1
83
117
  fi
84
118
 
85
- # Source all environment variables for the app. This must be done as
86
- # privileged user since the config variables are only readable by root.
87
- for file in $(_p "/etc/${APP_NAME}/conf.d")/*; do
88
- if [ -f $file ]; then . $file; fi
89
- done
119
+ # Source all environment variables for the app.
120
+ if is_app_user ; then
121
+ for file in $(_p "/etc/${APP_NAME}/conf.d")/*; do
122
+ if [ -f $file ]; then . $file; fi
123
+ done
124
+ fi
90
125
 
91
126
  if [ -z "$BASE_PORT" ]; then
92
127
  BASE_PORT=$PORT
@@ -215,7 +250,6 @@ update_port() {
215
250
  local file="$1"
216
251
  local process_name="$2"
217
252
  local index="$3"
218
- local port_with_offset=$(process_port "$process_name" "$index")
219
253
  sed -i "s/__PROCESS_INDEX__/${index}/g" "${file}"
220
254
  }
221
255
 
@@ -253,7 +287,7 @@ scale_up() {
253
287
  for i in $(seq ${SCALE_DELTA}); do
254
288
  index=$((${i} + ${CURRENT_SCALE}))
255
289
  PROCESS_ID="${APP_NAME}-${PROCESS_NAME}-${index}"
256
- cp $(_p "${APP_HOME}/vendor/pkgr/scaling/upstart/${APP_NAME}-${PROCESS_NAME}-PROCESS_NUM.conf") $(_p "/etc/init/${PROCESS_ID}.conf")
290
+ cp "${SCALING_DIR}/upstart/${APP_NAME}-${PROCESS_NAME}-PROCESS_NUM.conf" $(_p "/etc/init/${PROCESS_ID}.conf")
257
291
 
258
292
  update_port $(_p "/etc/init/${PROCESS_ID}.conf") "${PROCESS_NAME}" $index
259
293
 
@@ -281,7 +315,7 @@ scale_up() {
281
315
  for i in $(seq ${SCALE_DELTA}); do
282
316
  index=$((${i} + ${CURRENT_SCALE}))
283
317
  PROCESS_ID="${APP_NAME}-${PROCESS_NAME}-${index}"
284
- cp $(_p "${APP_HOME}/vendor/pkgr/scaling/sysv/${APP_NAME}-${PROCESS_NAME}-PROCESS_NUM") $(_p "/etc/init.d/${PROCESS_ID}")
318
+ cp "${SCALING_DIR}/sysv/${APP_NAME}-${PROCESS_NAME}-PROCESS_NUM" $(_p "/etc/init.d/${PROCESS_ID}")
285
319
 
286
320
  update_port $(_p "/etc/init.d/${PROCESS_ID}") "${PROCESS_NAME}" $index
287
321
 
@@ -321,6 +355,34 @@ scale_down() {
321
355
  echo "--> done."
322
356
  }
323
357
 
358
+ # Re-installs the files of the first COUNT existing processes from the current
359
+ # templates, so that template changes reach existing installations when a
360
+ # package upgrade calls `scale`. Local changes belong in drop-ins.
361
+ refresh_processes() {
362
+ local process_name="$1"
363
+ local count="$2"
364
+ local index file
365
+
366
+ for index in $(seq "$count"); do
367
+ if [ "${APP_RUNNER_TYPE}" = "upstart" ]; then
368
+ file=$(_p "/etc/init/${APP_NAME}-${process_name}-${index}.conf")
369
+ cp "${SCALING_DIR}/upstart/${APP_NAME}-${process_name}-PROCESS_NUM.conf" "$file"
370
+ elif [ "$APP_RUNNER_TYPE" = "systemd" ]; then
371
+ file="$SYSTEMD_DIR/${APP_NAME}-${process_name}-${index}.service"
372
+ cp "${SCALING_DIR}/systemd/${APP_NAME}-${process_name}-PROCESS_NUM.service" "$file"
373
+ else
374
+ file=$(_p "/etc/init.d/${APP_NAME}-${process_name}-${index}")
375
+ cp "${SCALING_DIR}/sysv/${APP_NAME}-${process_name}-PROCESS_NUM" "$file"
376
+ chmod a+x "$file"
377
+ fi
378
+ update_port "$file" "$process_name" "$index"
379
+ done
380
+
381
+ if [ "$count" -gt 0 ] && [ "$APP_RUNNER_TYPE" = "systemd" ]; then
382
+ $APP_RUNNER_CLI daemon-reload
383
+ fi
384
+ }
385
+
324
386
  # Scale processes
325
387
  scale() {
326
388
  PROCESS_NAME="$1"
@@ -332,14 +394,14 @@ scale() {
332
394
 
333
395
  if [ "${APP_RUNNER_TYPE}" = "upstart" ]; then
334
396
  # copy initd
335
- cp $(_p "${APP_HOME}/vendor/pkgr/scaling/upstart/${APP_NAME}") $(_p "/etc/init.d/")
397
+ cp "${SCALING_DIR}/upstart/${APP_NAME}" $(_p "/etc/init.d/")
336
398
  chmod 0755 $(_p "/etc/init.d/${APP_NAME}")
337
399
  # copy master
338
- cp $(_p "${APP_HOME}/vendor/pkgr/scaling/upstart/${APP_NAME}.conf") $(_p "/etc/init/")
400
+ cp "${SCALING_DIR}/upstart/${APP_NAME}.conf" $(_p "/etc/init/")
339
401
  # copy master process
340
- cp $(_p "${APP_HOME}/vendor/pkgr/scaling/upstart/${APP_NAME}-${PROCESS_NAME}.conf") $(_p "/etc/init/")
402
+ cp "${SCALING_DIR}/upstart/${APP_NAME}-${PROCESS_NAME}.conf" $(_p "/etc/init/")
341
403
  elif [ "$APP_RUNNER_TYPE" = "systemd" ]; then
342
- local source=$(_p "${APP_HOME}/vendor/pkgr/scaling/systemd")
404
+ local source="${SCALING_DIR}/systemd"
343
405
  # copy master
344
406
  cp ${source}/${APP_NAME}.service $SYSTEMD_DIR
345
407
  # copy master process
@@ -348,14 +410,20 @@ scale() {
348
410
  $APP_RUNNER_CLI enable ${APP_NAME}.service || true
349
411
  $APP_RUNNER_CLI enable ${APP_NAME}-${PROCESS_NAME}.service || true
350
412
  else
351
- cp $(_p "${APP_HOME}/vendor/pkgr/scaling/sysv/${APP_NAME}") $(_p /etc/init.d/)
413
+ cp "${SCALING_DIR}/sysv/${APP_NAME}" $(_p /etc/init.d/)
352
414
  chmod a+x $(_p "/etc/init.d/${APP_NAME}")
353
415
  sysv_enable ${APP_NAME}
354
- cp $(_p "${APP_HOME}/vendor/pkgr/scaling/sysv/${APP_NAME}-${PROCESS_NAME}") $(_p /etc/init.d/)
416
+ cp "${SCALING_DIR}/sysv/${APP_NAME}-${PROCESS_NAME}" $(_p /etc/init.d/)
355
417
  chmod a+x $(_p "/etc/init.d/${APP_NAME}-${PROCESS_NAME}")
356
418
  sysv_enable ${APP_NAME}-${PROCESS_NAME}
357
419
  fi
358
420
 
421
+ if [ $SCALE_DELTA -lt 0 ]; then
422
+ refresh_processes "${PROCESS_NAME}" $NEW_SCALE
423
+ else
424
+ refresh_processes "${PROCESS_NAME}" $CURRENT_SCALE
425
+ fi
426
+
359
427
  if [ $SCALE_DELTA -gt 0 ]; then
360
428
  scale_up "${PROCESS_NAME}" $CURRENT_SCALE $NEW_SCALE $SCALE_DELTA
361
429
  elif [ $SCALE_DELTA -lt 0 ]; then
@@ -434,6 +502,14 @@ while : ; do
434
502
  case "$1" in
435
503
  run)
436
504
  [ $# -lt 2 ] && usage
505
+
506
+ # Do not use su, to avoid creating a new process. Note: chroot version
507
+ # is too old on Ubuntu Lucid, so this will fail. It works on Debian
508
+ # Squeeze though (and later).
509
+ # The app environment is only loaded as APP_USER, so drop privileges
510
+ # before doing anything else.
511
+ is_app_user || exec_as_app_user "$@"
512
+
437
513
  COMMAND="$2"
438
514
  shift 2
439
515
 
@@ -452,16 +528,7 @@ while : ; do
452
528
  runnable="${runnable}$(printf " %q" ${COMMAND} "$@")"
453
529
  fi
454
530
 
455
- # Do not use su, to avoid creating a new process. Note: chroot version
456
- # is too old on Ubuntu Lucid, so this will fail. It works on Debian
457
- # Squeeze though (and later).
458
- # Do not chroot if current user is APP_USER.
459
- if [ $(id -u) = $(id -u ${APP_USER}) ]; then
460
- exec sh -c "cd $(_p ${APP_HOME}) && $runnable"
461
- else
462
- additional_groups="$(id -Gn ${APP_USER} | tr ' ' ',')"
463
- exec chroot --userspec ${APP_USER}:${APP_GROUP} --groups="${additional_groups}" "/" sh -c "cd $(_p ${APP_HOME}) && $runnable"
464
- fi
531
+ exec sh -c "cd $(_p ${APP_HOME}) && $runnable"
465
532
 
466
533
  break ;;
467
534
 
@@ -11,3 +11,7 @@ centos-7:
11
11
  - postgresql-libs
12
12
  centos-8:
13
13
  - libpq
14
+ centos-9:
15
+ - libpq
16
+ centos-10:
17
+ - libpq