cache-extensions 1.10.1 → 1.11.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.
package/lib/cache.js CHANGED
@@ -23,7 +23,8 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.run = exports.handleDependencies = void 0;
26
+ exports.handleDependencies = handleDependencies;
27
+ exports.run = run;
27
28
  const exec_1 = require("@actions/exec");
28
29
  const cache = __importStar(require("@actions/cache"));
29
30
  const core = __importStar(require("@actions/core"));
@@ -47,7 +48,6 @@ async function handleDependencies(extensions, version) {
47
48
  }
48
49
  }
49
50
  }
50
- exports.handleDependencies = handleDependencies;
51
51
  async function run() {
52
52
  try {
53
53
  const version = await spu.parseVersion(await spu.readPHPVersion());
@@ -60,7 +60,6 @@ async function run() {
60
60
  core.setFailed(error.message);
61
61
  }
62
62
  }
63
- exports.run = run;
64
63
  (async () => {
65
64
  await run();
66
65
  })().catch(error => {
package/lib/cache.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cache.js","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wCAAmC;AACnC,sDAAwC;AACxC,oDAAsC;AACtC,yDAA2C;AAC3C,uCAAyB;AACzB,2CAA6B;AAC7B,+CAAiC;AAQ1B,KAAK,UAAU,kBAAkB,CACtC,UAAkB,EAClB,OAAe;IAEf,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxE,MAAM,SAAS,GAAW,CAAC,MAAM,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,OAAO,CAAC;QACnE,MAAM,SAAS,GAAW,IAAI,CAAC,IAAI,CACjC,MAAM,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAC,EACtC,MAAM,CACP,CAAC;QACF,MAAM,SAAS,GAAuB,MAAM,KAAK,CAAC,YAAY,CAC5D,CAAC,SAAS,CAAC,EACX,SAAS,EACT,CAAC,SAAS,CAAC,CACZ,CAAC;QACF,MAAM,IAAA,WAAI,EAAC,MAAM,KAAK,CAAC,UAAU,CAAC,cAAc,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;QACxE,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC;gBACH,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;YAChD,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAxBD,gDAwBC;AAKM,KAAK,UAAU,GAAG;IACvB,IAAI,CAAC;QACH,MAAM,OAAO,GAAW,MAAM,GAAG,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC;QAC3E,MAAM,UAAU,GAAW,MAAM,KAAK,CAAC,gBAAgB,CACrD,MAAM,GAAG,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,CACvC,CAAC;QACF,MAAM,GAAG,GAAW,MAAM,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACpD,MAAM,IAAA,WAAI,EAAC,MAAM,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QACrE,MAAM,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,SAAS,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC;AAZD,kBAYC;AAGD,CAAC,KAAK,IAAI,EAAE;IACV,MAAM,GAAG,EAAE,CAAC;AACd,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;IACjB,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;QAC9C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;SAAM,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;QACvD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAcA,gDAwBC;AAKD,kBAYC;AAvDD,wCAAmC;AACnC,sDAAwC;AACxC,oDAAsC;AACtC,yDAA2C;AAC3C,uCAAyB;AACzB,2CAA6B;AAC7B,+CAAiC;AAQ1B,KAAK,UAAU,kBAAkB,CACtC,UAAkB,EAClB,OAAe;IAEf,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxE,MAAM,SAAS,GAAW,CAAC,MAAM,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,OAAO,CAAC;QACnE,MAAM,SAAS,GAAW,IAAI,CAAC,IAAI,CACjC,MAAM,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAC,EACtC,MAAM,CACP,CAAC;QACF,MAAM,SAAS,GAAuB,MAAM,KAAK,CAAC,YAAY,CAC5D,CAAC,SAAS,CAAC,EACX,SAAS,EACT,CAAC,SAAS,CAAC,CACZ,CAAC;QACF,MAAM,IAAA,WAAI,EAAC,MAAM,KAAK,CAAC,UAAU,CAAC,cAAc,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;QACxE,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC;gBACH,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;YAChD,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAKM,KAAK,UAAU,GAAG;IACvB,IAAI,CAAC;QACH,MAAM,OAAO,GAAW,MAAM,GAAG,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC;QAC3E,MAAM,UAAU,GAAW,MAAM,KAAK,CAAC,gBAAgB,CACrD,MAAM,GAAG,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,CACvC,CAAC;QACF,MAAM,GAAG,GAAW,MAAM,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACpD,MAAM,IAAA,WAAI,EAAC,MAAM,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QACrE,MAAM,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,SAAS,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC;AAGD,CAAC,KAAK,IAAI,EAAE;IACV,MAAM,GAAG,EAAE,CAAC;AACd,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;IACjB,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;QAC9C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;SAAM,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;QACvD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC,CAAC,CAAC"}
package/lib/utils.js CHANGED
@@ -23,14 +23,15 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.scriptCall = exports.filterExtensions = exports.getOutput = void 0;
26
+ exports.getOutput = getOutput;
27
+ exports.filterExtensions = filterExtensions;
28
+ exports.scriptCall = scriptCall;
27
29
  const fs = __importStar(require("fs"));
28
30
  const path = __importStar(require("path"));
29
31
  const spu = __importStar(require("setup-php/lib/utils"));
30
32
  async function getOutput(output) {
31
33
  return fs.readFileSync(path.join(await spu.readEnv('RUNNER_TEMP'), output), 'utf8');
32
34
  }
33
- exports.getOutput = getOutput;
34
35
  async function filterExtensions(extension_csv) {
35
36
  return JSON.stringify(extension_csv
36
37
  .split(',')
@@ -39,10 +40,8 @@ async function filterExtensions(extension_csv) {
39
40
  })
40
41
  .join(','));
41
42
  }
42
- exports.filterExtensions = filterExtensions;
43
43
  async function scriptCall(fn, ...args) {
44
44
  const script = path.join(__dirname, '../src/scripts/cache.sh');
45
45
  return ['bash', script, fn, ...args].join(' ');
46
46
  }
47
- exports.scriptCall = scriptCall;
48
47
  //# sourceMappingURL=utils.js.map
package/lib/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAC7B,yDAA2C;AAKpC,KAAK,UAAU,SAAS,CAAC,MAAc;IAC5C,OAAO,EAAE,CAAC,YAAY,CACpB,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC,EACnD,MAAM,CACP,CAAC;AACJ,CAAC;AALD,8BAKC;AAOM,KAAK,UAAU,gBAAgB,CAAC,aAAqB;IAC1D,OAAO,IAAI,CAAC,SAAS,CACnB,aAAa;SACV,KAAK,CAAC,GAAG,CAAC;SACV,MAAM,CAAC,SAAS,CAAC,EAAE;QAClB,OAAO,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;IACpC,CAAC,CAAC;SACD,IAAI,CAAC,GAAG,CAAC,CACb,CAAC;AACJ,CAAC;AATD,4CASC;AAQM,KAAK,UAAU,UAAU,CAC9B,EAAU,EACV,GAAG,IAAc;IAEjB,MAAM,MAAM,GAAW,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,yBAAyB,CAAC,CAAC;IACvE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACjD,CAAC;AAND,gCAMC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAOA,8BAKC;AAOD,4CASC;AAQD,gCAMC;AA1CD,uCAAyB;AACzB,2CAA6B;AAC7B,yDAA2C;AAKpC,KAAK,UAAU,SAAS,CAAC,MAAc;IAC5C,OAAO,EAAE,CAAC,YAAY,CACpB,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC,EACnD,MAAM,CACP,CAAC;AACJ,CAAC;AAOM,KAAK,UAAU,gBAAgB,CAAC,aAAqB;IAC1D,OAAO,IAAI,CAAC,SAAS,CACnB,aAAa;SACV,KAAK,CAAC,GAAG,CAAC;SACV,MAAM,CAAC,SAAS,CAAC,EAAE;QAClB,OAAO,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;IACpC,CAAC,CAAC;SACD,IAAI,CAAC,GAAG,CAAC,CACb,CAAC;AACJ,CAAC;AAQM,KAAK,UAAU,UAAU,CAC9B,EAAU,EACV,GAAG,IAAc;IAEjB,MAAM,MAAM,GAAW,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,yBAAyB,CAAC,CAAC;IACvE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACjD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cache-extensions",
3
- "version": "1.10.1",
3
+ "version": "1.11.0",
4
4
  "private": false,
5
5
  "description": "Cache PHP extensions in GitHub Actions",
6
6
  "main": "lib/cache.js",
@@ -19,7 +19,7 @@
19
19
  "lint": "eslint **/src/*.ts --cache --fix",
20
20
  "format": "prettier --write **/src/*.ts && git add .",
21
21
  "format-check": "prettier --check **/src/*.ts",
22
- "release": "ncc build -o dist && git add -f dist/",
22
+ "release": "ncc build -m -o dist && git add -f dist/",
23
23
  "test": "jest"
24
24
  },
25
25
  "repository": {
@@ -38,24 +38,24 @@
38
38
  "@actions/cache": "^3.2.4",
39
39
  "@actions/core": "^1.10.1",
40
40
  "@actions/exec": "^1.1.1",
41
- "setup-php": "2.30.0"
41
+ "setup-php": "2.30.5"
42
42
  },
43
43
  "devDependencies": {
44
44
  "@types/jest": "^29.5.12",
45
- "@types/node": "^20.11.28",
46
- "@typescript-eslint/eslint-plugin": "^7.2.0",
47
- "@typescript-eslint/parser": "^7.2.0",
45
+ "@types/node": "^20.14.8",
46
+ "@typescript-eslint/eslint-plugin": "^7.13.1",
47
+ "@typescript-eslint/parser": "^7.13.1",
48
48
  "@vercel/ncc": "^0.38.1",
49
49
  "eslint": "^8.57.0",
50
50
  "eslint-config-prettier": "^9.1.0",
51
51
  "eslint-plugin-import": "^2.29.1",
52
- "eslint-plugin-jest": "^27.9.0",
52
+ "eslint-plugin-jest": "^28.6.0",
53
53
  "eslint-plugin-prettier": "^5.1.3",
54
54
  "jest": "^29.7.0",
55
55
  "jest-circus": "^29.7.0",
56
- "prettier": "^3.2.5",
57
- "ts-jest": "^29.1.2",
58
- "typescript": "^5.4.2"
56
+ "prettier": "^3.3.2",
57
+ "ts-jest": "^29.1.5",
58
+ "typescript": "^5.5.2"
59
59
  },
60
60
  "bugs": {
61
61
  "url": "https://github.com/shivammathur/cache-extensions/issues"
@@ -53,7 +53,6 @@ imagick
53
53
  imap
54
54
  j
55
55
  j
56
- j
57
56
  k
58
57
  l
59
58
  l
@@ -657,6 +657,9 @@ libtinfo-dev
657
657
  libtinfo5
658
658
  libtinfo6
659
659
  libtinyxml2-6a
660
+ libtirpc-common
661
+ libtirpc-dev
662
+ libtirpc3
660
663
  libtk8.6
661
664
  libtommath1
662
665
  libtool
@@ -177,7 +177,6 @@ libgcab-1.0-0
177
177
  libgcc-10-dev
178
178
  libgcc-11-dev
179
179
  libgcc-12-dev
180
- libgcc-13-dev
181
180
  libgcc-9-dev
182
181
  libgcc-s1
183
182
  libgconf-2-4
@@ -194,7 +193,6 @@ libgdk-pixbuf2.0-common
194
193
  libgfortran-10-dev
195
194
  libgfortran-11-dev
196
195
  libgfortran-12-dev
197
- libgfortran-13-dev
198
196
  libgfortran-9-dev
199
197
  libgfortran5
200
198
  libgif7
@@ -239,7 +237,6 @@ libhtml-template-perl
239
237
  libhttp-date-perl
240
238
  libhttp-message-perl
241
239
  libhunspell-1.7-0
242
- libhwasan0
243
240
  libice-dev
244
241
  libice6
245
242
  libicu-dev
@@ -644,7 +641,6 @@ libssl3
644
641
  libstdc++-10-dev
645
642
  libstdc++-11-dev
646
643
  libstdc++-12-dev
647
- libstdc++-13-dev
648
644
  libstdc++-9-dev
649
645
  libstdc++6
650
646
  libstemmer0d
@@ -0,0 +1,576 @@
1
+ lib32gcc-s1
2
+ lib32stdc++6
3
+ libacl1
4
+ libaio1t64
5
+ libaom3
6
+ libapparmor1
7
+ libappstream5
8
+ libapr1t64
9
+ libaprutil1-dbd-sqlite3
10
+ libaprutil1-ldap
11
+ libaprutil1t64
12
+ libapt-pkg6.0t64
13
+ libarchive13t64
14
+ libargon2-1
15
+ libaria2-0
16
+ libasan8
17
+ libasound2-data
18
+ libasound2t64
19
+ libaspell15
20
+ libassuan0
21
+ libatasmart4
22
+ libatk-bridge2.0-0t64
23
+ libatk1.0-0t64
24
+ libatm1t64
25
+ libatomic1
26
+ libatspi2.0-0t64
27
+ libattr1
28
+ libaudit-common
29
+ libaudit1
30
+ libauthen-sasl-perl
31
+ libavahi-client3
32
+ libavahi-common-data
33
+ libavahi-common3
34
+ libbinutils
35
+ libblkid1
36
+ libblockdev-crypto3
37
+ libblockdev-fs3
38
+ libblockdev-loop3
39
+ libblockdev-mdraid3
40
+ libblockdev-nvme3
41
+ libblockdev-part3
42
+ libblockdev-swap3
43
+ libblockdev-utils3
44
+ libblockdev3
45
+ libbpf1
46
+ libbpfcc
47
+ libbrotli1
48
+ libbsd0
49
+ libbytesize-common
50
+ libbytesize1
51
+ libbz2-1.0
52
+ libc-bin
53
+ libc-client2007e
54
+ libc-dev-bin
55
+ libc-devtools
56
+ libc6
57
+ libc6-dev
58
+ libc6-i386
59
+ libcairo-gobject2
60
+ libcairo2
61
+ libcap-ng0
62
+ libcap2
63
+ libcap2-bin
64
+ libcares2
65
+ libcbor0.10
66
+ libcc1-0
67
+ libcgi-fast-perl
68
+ libcgi-pm-perl
69
+ libclang-common-16-dev
70
+ libclang-common-17-dev
71
+ libclang-common-18-dev
72
+ libclang-cpp16t64
73
+ libclang-cpp17t64
74
+ libclang-cpp18
75
+ libclang-rt-16-dev
76
+ libclang-rt-17-dev
77
+ libclang-rt-18-dev
78
+ libclang1-16t64
79
+ libclang1-17t64
80
+ libclang1-18
81
+ libclone-perl
82
+ libcolord2
83
+ libcom-err2
84
+ libcommon-sense-perl
85
+ libcrypt-dev
86
+ libcrypt1
87
+ libcryptsetup12
88
+ libctf-nobfd0
89
+ libctf0
90
+ libcups2t64
91
+ libcurl3t64-gnutls
92
+ libcurl4t64
93
+ libdata-dump-perl
94
+ libdatrie1
95
+ libdb5.3t64
96
+ libdbus-1-3
97
+ libdconf1
98
+ libde265-0
99
+ libdebconfclient0
100
+ libdeflate0
101
+ libdevmapper-event1.02.1
102
+ libdevmapper1.02.1
103
+ libdpkg-perl
104
+ libdrm-amdgpu1
105
+ libdrm-common
106
+ libdrm-intel1
107
+ libdrm-nouveau2
108
+ libdrm-radeon1
109
+ libdrm2
110
+ libduktape207
111
+ libdw1t64
112
+ libeatmydata1
113
+ libedit2
114
+ libefiboot1t64
115
+ libefivar1t64
116
+ libegl-mesa0
117
+ libegl1
118
+ libelf1t64
119
+ libenchant-2-2
120
+ libencode-locale-perl
121
+ libepoxy0
122
+ liberror-perl
123
+ libestr0
124
+ libevdev2
125
+ libevent-core-2.1-7t64
126
+ libevent-pthreads-2.1-7t64
127
+ libexpat1
128
+ libexpat1-dev
129
+ libext2fs2t64
130
+ libfakeroot
131
+ libfastjson4
132
+ libfbclient2
133
+ libfcgi-bin
134
+ libfcgi-perl
135
+ libfcgi0t64
136
+ libfdisk1
137
+ libffi-dev
138
+ libffi8
139
+ libfftw3-double3
140
+ libfido2-1
141
+ libfile-basedir-perl
142
+ libfile-desktopentry-perl
143
+ libfile-listing-perl
144
+ libfile-mimeinfo-perl
145
+ libflashrom1
146
+ libfont-afm-perl
147
+ libfontconfig1
148
+ libfontenc1
149
+ libfreetype6
150
+ libfribidi0
151
+ libfsverity0
152
+ libftdi1-2
153
+ libfuse3-3
154
+ libfwupd2
155
+ libgbm1
156
+ libgc1
157
+ libgcc-12-dev
158
+ libgcc-13-dev
159
+ libgcc-14-dev
160
+ libgcc-s1
161
+ libgcrypt20
162
+ libgd3
163
+ libgdbm-compat4t64
164
+ libgdbm6t64
165
+ libgdk-pixbuf-2.0-0
166
+ libgdk-pixbuf2.0-bin
167
+ libgdk-pixbuf2.0-common
168
+ libgfortran-12-dev
169
+ libgfortran-13-dev
170
+ libgfortran-14-dev
171
+ libgfortran5
172
+ libgirepository-1.0-1
173
+ libgl1
174
+ libgl1-mesa-dri
175
+ libglapi-mesa
176
+ libgles2
177
+ libglib2.0-0t64
178
+ libglib2.0-bin
179
+ libglib2.0-data
180
+ libglvnd0
181
+ libglx-mesa0
182
+ libglx0
183
+ libgmp-dev
184
+ libgmp10
185
+ libgmpxx4ldbl
186
+ libgnutls30t64
187
+ libgomp1
188
+ libgpg-error-l10n
189
+ libgpg-error0
190
+ libgpgme11t64
191
+ libgpm2
192
+ libgprofng0
193
+ libgraphite2-3
194
+ libgssapi-krb5-2
195
+ libgstreamer1.0-0
196
+ libgtk-3-0t64
197
+ libgtk-3-bin
198
+ libgtk-3-common
199
+ libgudev-1.0-0
200
+ libgusb2
201
+ libharfbuzz0b
202
+ libhashkit2t64
203
+ libhavege2
204
+ libheif-plugin-aomdec
205
+ libheif-plugin-aomenc
206
+ libheif-plugin-libde265
207
+ libheif1
208
+ libhogweed6t64
209
+ libhtml-form-perl
210
+ libhtml-format-perl
211
+ libhtml-parser-perl
212
+ libhtml-tagset-perl
213
+ libhtml-template-perl
214
+ libhtml-tree-perl
215
+ libhttp-cookies-perl
216
+ libhttp-daemon-perl
217
+ libhttp-date-perl
218
+ libhttp-message-perl
219
+ libhttp-negotiate-perl
220
+ libhunspell-1.7-0
221
+ libhwasan0
222
+ libibverbs1
223
+ libice6
224
+ libicu-dev
225
+ libicu72
226
+ libicu74
227
+ libidn2-0
228
+ libinih1
229
+ libintl-perl
230
+ libintl-xs-perl
231
+ libio-html-perl
232
+ libio-socket-ssl-perl
233
+ libio-stringy-perl
234
+ libip4tc2
235
+ libip6tc2
236
+ libipc-system-simple-perl
237
+ libisl23
238
+ libisns0t64
239
+ libitm1
240
+ libjansson4
241
+ libjbig0
242
+ libjcat1
243
+ libjpeg-turbo8
244
+ libjpeg8
245
+ libjq1
246
+ libjs-jquery
247
+ libjs-sphinxdoc
248
+ libjs-underscore
249
+ libjson-c5
250
+ libjson-glib-1.0-0
251
+ libjson-glib-1.0-common
252
+ libjson-perl
253
+ libjson-xs-perl
254
+ libk5crypto3
255
+ libkeyutils1
256
+ libklibc
257
+ libkmod2
258
+ libkrb5-3
259
+ libkrb5support0
260
+ libksba8
261
+ liblcms2-2
262
+ libldap-common
263
+ libldap2
264
+ liblerc4
265
+ liblldb-16t64
266
+ liblldb-17t64
267
+ liblldb-18
268
+ libllvm16t64
269
+ libllvm17t64
270
+ libllvm18
271
+ liblmdb0
272
+ liblocale-gettext-perl
273
+ liblqr-1-0
274
+ liblsan0
275
+ libltdl7
276
+ liblttng-ust-common1t64
277
+ liblttng-ust-ctl5t64
278
+ liblttng-ust1t64
279
+ liblua5.3-0
280
+ liblua5.4-0
281
+ liblvm2cmd2.03
282
+ liblwp-mediatypes-perl
283
+ liblwp-protocol-https-perl
284
+ liblz4-1
285
+ liblz4-dev
286
+ liblzma5
287
+ liblzo2-2
288
+ libmagic-mgc
289
+ libmagic1t64
290
+ libmagickcore-6.q16-7t64
291
+ libmagickwand-6.q16-7t64
292
+ libmailtools-perl
293
+ libmaxminddb0
294
+ libmbim-glib4
295
+ libmbim-proxy
296
+ libmbim-utils
297
+ libmd0
298
+ libmecab2
299
+ libmediainfo0v5
300
+ libmemcached11t64
301
+ libmm-glib0
302
+ libmms0
303
+ libmnl0
304
+ libmodule-find-perl
305
+ libmodule-scandeps-perl
306
+ libmount1
307
+ libmpc3
308
+ libmpfr6
309
+ libmspack0t64
310
+ libmysqlclient-dev
311
+ libmysqlclient21
312
+ libncurses-dev
313
+ libncurses6
314
+ libncursesw6
315
+ libnet-dbus-perl
316
+ libnet-http-perl
317
+ libnet-smtp-ssl-perl
318
+ libnet-ssleay-perl
319
+ libnetfilter-conntrack3
320
+ libnetplan1
321
+ libnettle8t64
322
+ libnewt0.52
323
+ libnfnetlink0
324
+ libnftables1
325
+ libnftnl11
326
+ libnghttp2-14
327
+ libnl-3-200
328
+ libnl-genl-3-200
329
+ libnl-route-3-200
330
+ libnorm1t64
331
+ libnpth0t64
332
+ libnspr4
333
+ libnss-systemd
334
+ libnss3
335
+ libntfs-3g89t64
336
+ libnuma1
337
+ libnvme1t64
338
+ libobjc-13-dev
339
+ libobjc4
340
+ libodbc2
341
+ libonig5
342
+ libopeniscsiusr
343
+ libopenjp2-7
344
+ libp11-kit0
345
+ libpackagekit-glib2-18
346
+ libpam-cap
347
+ libpam-modules
348
+ libpam-modules-bin
349
+ libpam-runtime
350
+ libpam-systemd
351
+ libpam0g
352
+ libpango-1.0-0
353
+ libpangocairo-1.0-0
354
+ libpangoft2-1.0-0
355
+ libparted2t64
356
+ libpcap0.8t64
357
+ libpci3
358
+ libpciaccess0
359
+ libpcre2-16-0
360
+ libpcre2-32-0
361
+ libpcre2-8-0
362
+ libpcre2-dev
363
+ libpcre2-posix3
364
+ libperl5.38t64
365
+ libpfm4
366
+ libpgm-5.3-0t64
367
+ libpipeline1
368
+ libpixman-1-0
369
+ libpkgconf3
370
+ libplymouth5
371
+ libpng16-16t64
372
+ libpolkit-agent-1-0
373
+ libpolkit-gobject-1-0
374
+ libpopt0
375
+ libpq-dev
376
+ libpq5
377
+ libproc-processtable-perl
378
+ libproc2-0
379
+ libprotobuf-c1
380
+ libprotobuf-lite32t64
381
+ libpsl5t64
382
+ libpython3-dev
383
+ libpython3-stdlib
384
+ libpython3.12-dev
385
+ libpython3.12-minimal
386
+ libpython3.12-stdlib
387
+ libpython3.12t64
388
+ libqdbm14t64
389
+ libqmi-glib5
390
+ libqmi-proxy
391
+ libqmi-utils
392
+ libqrtr-glib0
393
+ libquadmath0
394
+ librabbitmq4
395
+ libraw23t64
396
+ libre2-10
397
+ libreadline8t64
398
+ libreiserfscore0t64
399
+ librpm9t64
400
+ librpmbuild9t64
401
+ librpmio9t64
402
+ librpmsign9t64
403
+ librsvg2-2
404
+ librsvg2-common
405
+ librtmp1
406
+ libruby
407
+ libruby3.2
408
+ libsasl2-2
409
+ libsasl2-modules
410
+ libsasl2-modules-db
411
+ libseccomp2
412
+ libselinux1
413
+ libsemanage-common
414
+ libsemanage2
415
+ libsensors-config
416
+ libsensors5
417
+ libsepol2
418
+ libsframe1
419
+ libsgutils2-1.46-2
420
+ libsharpyuv0
421
+ libsigsegv2
422
+ libslang2
423
+ libslirp0
424
+ libsm6
425
+ libsmartcols1
426
+ libsnappy1v5
427
+ libsnmp-base
428
+ libsnmp40t64
429
+ libsodium23
430
+ libsort-naturally-perl
431
+ libsqlite3-0
432
+ libss2
433
+ libssh-4
434
+ libssh2-1t64
435
+ libssl-dev
436
+ libssl3t64
437
+ libstdc++-12-dev
438
+ libstdc++-13-dev
439
+ libstdc++-14-dev
440
+ libstdc++6
441
+ libstemmer0d
442
+ libsubid4
443
+ libsybdb5
444
+ libsystemd-shared
445
+ libsystemd0
446
+ libtalloc2
447
+ libtasn1-6
448
+ libtcl8.6
449
+ libterm-readkey-perl
450
+ libtext-charwidth-perl
451
+ libtext-iconv-perl
452
+ libtext-unidecode-perl
453
+ libtext-wrapi18n-perl
454
+ libthai-data
455
+ libthai0
456
+ libtidy5deb1
457
+ libtie-ixhash-perl
458
+ libtiff6
459
+ libtimedate-perl
460
+ libtinfo6
461
+ libtinyxml2-10
462
+ libtirpc-common
463
+ libtirpc3t64
464
+ libtk8.6
465
+ libtommath1
466
+ libtool
467
+ libtraceevent1
468
+ libtraceevent1-plugin
469
+ libtracefs1
470
+ libtry-tiny-perl
471
+ libtsan2
472
+ libtss2-esys-3.0.2-0t64
473
+ libtss2-mu-4.0.1-0t64
474
+ libtss2-rc0t64
475
+ libtss2-sys1t64
476
+ libtss2-tcti-cmd0t64
477
+ libtss2-tcti-device0t64
478
+ libtss2-tcti-mssim0t64
479
+ libtss2-tcti-swtpm0t64
480
+ libtypes-serialiser-perl
481
+ libu2f-udev
482
+ libubsan1
483
+ libuchardet0
484
+ libudev1
485
+ libudisks2-0
486
+ libunistring5
487
+ libunwind8
488
+ liburcu8t64
489
+ liburi-perl
490
+ libusb-1.0-0
491
+ libutempter0
492
+ libuuid1
493
+ libuv1t64
494
+ libvolume-key1
495
+ libvulkan1
496
+ libwayland-client0
497
+ libwayland-cursor0
498
+ libwayland-egl1
499
+ libwayland-server0
500
+ libwbclient0
501
+ libwebp7
502
+ libwebpdemux2
503
+ libwebpmux3
504
+ libwrap0
505
+ libwww-perl
506
+ libwww-robotrules-perl
507
+ libx11-6
508
+ libx11-data
509
+ libx11-protocol-perl
510
+ libx11-xcb1
511
+ libxau6
512
+ libxaw7
513
+ libxcb-dri2-0
514
+ libxcb-dri3-0
515
+ libxcb-glx0
516
+ libxcb-present0
517
+ libxcb-randr0
518
+ libxcb-render0
519
+ libxcb-shape0
520
+ libxcb-shm0
521
+ libxcb-sync1
522
+ libxcb-xfixes0
523
+ libxcb1
524
+ libxcomposite1
525
+ libxcursor1
526
+ libxdamage1
527
+ libxdmcp6
528
+ libxext6
529
+ libxfixes3
530
+ libxfont2
531
+ libxft2
532
+ libxi6
533
+ libxinerama1
534
+ libxkbcommon0
535
+ libxkbfile1
536
+ libxml-libxml-perl
537
+ libxml-namespacesupport-perl
538
+ libxml-parser-perl
539
+ libxml-sax-base-perl
540
+ libxml-sax-perl
541
+ libxml-twig-perl
542
+ libxml-xpathengine-perl
543
+ libxml2
544
+ libxml2-dev
545
+ libxmlb2
546
+ libxmlsec1t64
547
+ libxmlsec1t64-openssl
548
+ libxmu6
549
+ libxmuu1
550
+ libxpm4
551
+ libxrandr2
552
+ libxrender1
553
+ libxshmfence1
554
+ libxslt1.1
555
+ libxss1
556
+ libxt6t64
557
+ libxtables12
558
+ libxtst6
559
+ libxv1
560
+ libxxf86dga1
561
+ libxxf86vm1
562
+ libxxhash0
563
+ libyajl2
564
+ libyaml-0-2
565
+ libyaml-dev
566
+ libz3-4
567
+ libz3-dev
568
+ libzen0t64
569
+ libzip4t64
570
+ libzmq5
571
+ libzstd-dev
572
+ libzstd1
573
+ python3-launchpadlib
574
+ python3-oauthlib
575
+ python3-wadllib
576
+ texinfo-lib
@@ -12,6 +12,7 @@ add_log() {
12
12
  printf "\033[32;1m%s \033[0m\033[34;1m%s \033[0m\033[90;1m%s\033[0m\n" "$mark" "$subject" "Added $subject"
13
13
  else
14
14
  printf "\033[31;1m%s \033[0m\033[34;1m%s \033[0m\033[90;1m%s\033[0m\n" "$mark" "$subject" "Failed to setup $subject"
15
+ [ "${fail_fast:?}" = "true" ] && exit 1
15
16
  fi
16
17
  done
17
18
  }
@@ -80,23 +81,30 @@ extension_dir_linux() {
80
81
 
81
82
  data() {
82
83
  old_versions="5.[3-5]"
83
- date='20220831'
84
+ date='20240716'
85
+ arch=$(uname -m)
84
86
  if [ "$os" = "Linux" ]; then
85
- . /etc/lsb-release
86
- os=$os-$DISTRIB_CODENAME
87
+ . /etc/os-release
88
+ os=$os-$VERSION_CODENAME-$arch
87
89
  api_version=$(get_api_version)
88
90
  dir=$(extension_dir_linux "$api_version")
89
91
  sudo mkdir -p "$dir/deps" && fix_ownership "$dir"
90
92
  elif [ "$os" = "Darwin" ]; then
93
+ os_version=$(sw_vers -productVersion)
94
+ os=$os-$os_version-$arch
91
95
  api_version=$(get_api_version)
92
96
  dir=$(extension_dir_darwin "$api_version")
93
97
  sudo mkdir -p "$dir/deps" && fix_ownership "$dir"
94
98
  else
95
- os="Windows"
99
+ os="Windows-$arch"
96
100
  dir='C:\\tools\\php\\ext'
97
101
  fi
98
102
  job="${GITHUB_REPOSITORY}-${GITHUB_WORKFLOW}-${GITHUB_JOB}"
99
- key="$(echo -n "$extensions-$key-$job" | openssl dgst -sha256 | cut -d ' ' -f 2)"
103
+ if command -v "sha256sum" >/dev/null; then
104
+ key="$(echo -n "$extensions-$key-$job" | sha256sum | cut -d ' ' -f 1)"
105
+ else
106
+ key="$(echo -n "$extensions-$key-$job" | openssl dgst -sha256 | cut -d ' ' -f 2)"
107
+ fi
100
108
  key="$os"-"$version"-"$key"-"$date"
101
109
  echo "$dir" > "${RUNNER_TEMP:?}"/dir
102
110
  echo "$key" > "${RUNNER_TEMP:?}"/key
@@ -106,15 +114,21 @@ data() {
106
114
 
107
115
  dependencies() {
108
116
  if [ "$os" = "Linux" ] || [ "$os" = "Darwin" ]; then
109
- export tick="✓"
110
- export cross="✗"
111
117
  export ext_config_directory="/tmp/extcache"
112
118
  export deps_cache_directory="${RUNNER_TOOL_CACHE}"/deps
113
119
  sudo mkdir -p "$deps_cache_directory"
114
- script_dir=$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)
120
+ setup_dependencies "$extensions" "$(cat "${RUNNER_TEMP:?}"/dir)"
121
+ fi
122
+ }
123
+
124
+ init() {
125
+ export tick="✓"
126
+ export cross="✗"
127
+ script_dir=$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)
128
+ if [[ "$os" = "Linux" || "$os" = "Darwin" ]]; then
115
129
  # shellcheck disable=SC1090
116
130
  . "$script_dir/$(echo "$os" | tr '[:upper:]' '[:lower:]').sh"
117
- setup_dependencies "$extensions" "$(cat "${RUNNER_TEMP:?}"/dir)"
131
+ self_hosted_helper
118
132
  fi
119
133
  }
120
134
 
@@ -122,6 +136,6 @@ run=$1
122
136
  extensions=$2
123
137
  version=$3
124
138
  key=$4
125
- os=$(uname -s)
126
-
139
+ os="$(uname -s)"
140
+ init
127
141
  $run
@@ -82,6 +82,7 @@ setup_extensions() {
82
82
  add_library_helper() {
83
83
  dep_name=$1
84
84
  cache_dir=$2
85
+ [ -e "$cache_dir"/list ] && grep -Eq "^$dep_name" "$cache_dir"/list && return
85
86
  echo "$dep_name" | sudo tee -a "$cache_dir"/list >/dev/null 2>&1
86
87
  (
87
88
  cd "$brew_cellar" || exit 1
@@ -97,9 +98,10 @@ add_library() {
97
98
  lib=$1
98
99
  cache_dir=$2
99
100
  brew list "$lib" &>/dev/null || brew install "$lib"
100
- IFS=' ' read -r -a deps_array <<<"$(brew deps "$lib" | tr '\n' ' ')"
101
+ IFS=' ' read -r -a deps_array <<<"$(brew deps --formula "$lib" | tr '\n' ' ')"
101
102
  to_wait=()
102
103
  for dep_name in "$lib" "${deps_array[@]}"; do
104
+ dep_name="$(basename "$dep_name")"
103
105
  add_library_helper "$dep_name" "$cache_dir" &
104
106
  to_wait+=($!)
105
107
  done
@@ -142,13 +144,13 @@ setup_libraries() {
142
144
  sudo cp -a "$tap_dir"/"$ext_tap"/.github/deps/"$extension"/*.rb "$tap_dir"/"$core_tap"/Formula/ 2>/dev/null || true
143
145
  sudo mkdir -p "$ext_deps_dir"
144
146
  echo "::group::Logs to set up libraries required for $extension"
145
- for lib in "${libraries_array[@]}"; do
146
- if ! [ -e "$ext_deps_dir"/list ]; then
147
+ if ! [ -e "$ext_deps_dir"/list ]; then
148
+ for lib in "${libraries_array[@]}"; do
147
149
  add_library "$lib" "$ext_deps_dir"
148
- else
149
- restore_library "$ext_deps_dir"
150
- fi
151
- done
150
+ done
151
+ else
152
+ restore_library "$ext_deps_dir"
153
+ fi
152
154
  echo "::endgroup::"
153
155
  add_log "$tick" "${libraries_array[@]}"
154
156
  }
@@ -165,8 +167,16 @@ setup_dependencies() {
165
167
  add_brew_tap "$ext_tap"
166
168
  for extension in "${extensions_array[@]}"; do
167
169
  IFS=' ' read -r -a dependency_array <<<"$(get_dependencies "$extension")"
168
- IFS=' ' read -r -a extension_array <<<"$(echo "${dependency_array[@]}" | grep -Eo "[a-z]*@" | sed 's/@//' | tr '\n' ' ')"
169
- IFS=' ' read -r -a libraries_array <<<"${dependency_array[@]//shivammathur*/}"
170
+ libraries_array=()
171
+ extension_array=()
172
+ for item in "${dependency_array[@]}"; do
173
+ if ! [[ "$item" == *"shivammathur"* ]]; then
174
+ libraries_array+=("$item")
175
+ else
176
+ formula_name="$(basename "$item")"
177
+ grep -q AbstractPhpExtension "$tap_dir/$ext_tap/Formula/$formula_name.rb" && extension_array+=("$item") || libraries_array+=("$item")
178
+ fi
179
+ done
170
180
  if [[ -n "${libraries_array[*]// /}" ]]; then
171
181
  step_log "Setup libraries for $extension"
172
182
  setup_libraries "$extension" "${libraries_array[@]}"
@@ -179,6 +189,10 @@ setup_dependencies() {
179
189
  fi
180
190
  }
181
191
 
192
+ self_hosted_helper() {
193
+ :
194
+ }
195
+
182
196
  export HOMEBREW_CHANGE_ARCH_TO_ARM=1
183
197
  export HOMEBREW_NO_INSTALL_CLEANUP=1
184
198
  export HOMEBREW_NO_AUTO_UPDATE=1
@@ -1,12 +1,37 @@
1
- link_apt_fast() {
2
- if ! command -v apt-fast >/dev/null; then
3
- sudo ln -sf /usr/bin/apt-get /usr/bin/apt-fast
1
+ read_env() {
2
+ fail_fast="${fail_fast:-${FAIL_FAST:-false}}"
3
+ [[ -z "${ImageOS}" && -z "${ImageVersion}" || -n ${ACT} ]] && _runner=self-hosted || _runner=github
4
+ runner="${runner:-${RUNNER:-$_runner}}"
5
+
6
+ if [[ "$runner" = "github" && $_runner = "self-hosted" ]]; then
7
+ fail_fast=true
8
+ add_log "${cross:?}" "Runner" "Runner set as github in self-hosted environment"
4
9
  fi
5
10
  }
6
11
 
7
- add_sudo() {
8
- if ! command -v sudo >/dev/null; then
9
- apt-get install -y sudo || (apt-get update && apt-get install -y sudo)
12
+ check_package() {
13
+ apt-cache policy "$1" 2>/dev/null | grep -q 'Candidate'
14
+ }
15
+
16
+ add_package() {
17
+ package=$1
18
+ if ! command -v "$package" >/dev/null; then
19
+ check_package "$package" || apt-get update >/dev/null 2>&1
20
+ apt-get install -y "$package" >/dev/null 2>&1 || (apt-get update >/dev/null 2>&1 && apt-get install -y "$package" >/dev/null 2>&1)
21
+ fi
22
+ }
23
+
24
+ add_ppa_package() {
25
+ package=$1
26
+ package_link="$(get_package_link "$package")"
27
+ curl -o /tmp/"$package.deb" -sL "$package_link"
28
+ sudo DEBIAN_FRONTEND=noninteractive dpkg -i "/tmp/$package.deb"
29
+ }
30
+
31
+ link_apt_fast() {
32
+ if ! command -v apt-fast >/dev/null; then
33
+ sudo ln -sf /usr/bin/apt-get /usr/bin/apt-fast
34
+ trap "sudo rm -f /usr/bin/apt-fast 2>/dev/null" exit
10
35
  fi
11
36
  }
12
37
 
@@ -23,7 +48,7 @@ get_dependencies() {
23
48
  package=$1
24
49
  prefix=$2
25
50
  list_deps="$(grep "${package#*-}" "${script_dir:?}"/../lists/linux-deps | cut -d '=' -f 2 | grep -Eo "$prefix.*")"
26
- package_deps="$(sed -e '/Package:\s'"$package$"'/,/^\s*$/!d' /tmp/Packages | grep -Eo "^Depends.*" | tr ',' '\n' | awk -v ORS='' '/^\s'"$prefix"'/{print$0}' | sed -e 's/([^()]*)//g' | sort | uniq | xargs echo -n)"
51
+ IFS=$'\n' read -d '' -r -a package_deps < <(sed -n '/Package:\s'"$package"'/,/^$/p' /tmp/Packages | grep '^Depends:' | cut -d ':' -f2- | tr ',' '\n' | grep -E '^\s*'"$prefix" | cut -d '(' -f1 | sed 's/^\s*//;s/\s*$//' | sort -u);
27
52
  deps=()
28
53
  [[ -n "${list_deps[*]}" ]] && deps+=("${list_deps[@]}")
29
54
  [[ -n "${package_deps[*]}" ]] && deps+=("${package_deps[@]}")
@@ -58,6 +83,7 @@ setup_extensions() {
58
83
  extension_dir=$1
59
84
  IFS=' ' read -r -a dependency_extension_array <<<"$(echo "$2" | xargs -n1 | sort | uniq | xargs)"
60
85
  to_wait=()
86
+ step_log "Setup extensions"
61
87
  for dependency_extension in "${dependency_extension_array[@]}"; do
62
88
  setup_extensions_helper "$dependency_extension" "$extension_dir" &
63
89
  to_wait+=($!)
@@ -68,11 +94,13 @@ setup_extensions() {
68
94
 
69
95
  filter_libraries() {
70
96
  libraries="$(echo "$1" | xargs -n1 | sort | uniq | xargs)"
71
- for library in $libraries; do
72
- if grep -i -q -w "$library" "${script_dir:?}"/../lists/"$VERSION_CODENAME"-libs; then
73
- libraries=${libraries//$library/}
74
- fi
75
- done
97
+ if [ "$runner" = "github" ]; then
98
+ for library in $libraries; do
99
+ if grep -i -q -w "$library" "${script_dir:?}"/../lists/"$VERSION_CODENAME"-libs; then
100
+ libraries=${libraries//$library/}
101
+ fi
102
+ done
103
+ fi
76
104
  echo "$libraries"
77
105
  }
78
106
 
@@ -80,16 +108,20 @@ setup_libraries() {
80
108
  libraries=$1
81
109
  if [[ -n "${libraries// /}" ]]; then
82
110
  libraries=$(filter_libraries "$libraries")
111
+ if [[ "$libraries" = *libgd* ]]; then
112
+ check_package 'libavif[0-9]*$' && libraries="$libraries libavif[0-9]*$"
113
+ check_package 'libheif[0-9]*$' && libraries="$libraries libheif[0-9]*$"
114
+ fi
83
115
  if [[ -n "${libraries// /}" ]]; then
84
116
  step_log "Setup libraries"
85
117
  IFS=' ' read -r -a libraries_array <<<"$libraries"
86
- link_apt_fast
87
118
  echo "::group::Logs to set up required libraries"
88
119
  sudo DEBIAN_FRONTEND=noninteractive apt-fast install --no-install-recommends --no-upgrade -y "${libraries_array[@]}" || (sudo DEBIAN_FRONTEND=noninteractive apt-get update && sudo DEBIAN_FRONTEND=noninteractive apt-fast install --no-install-recommends --no-upgrade -y "${libraries_array[@]}")
89
120
  ec="$?"
121
+ [[ "$libraries" = *libgd* ]] && add_ppa_package libgd3
90
122
  echo "::endgroup::"
91
123
  if [ "$ec" -eq "0" ]; then mark="${tick:?}"; else mark="${cross:?}"; fi
92
- add_log "$mark" "${libraries_array[@]}"
124
+ add_log "$mark" "${libraries_array[@]//\[0-9]*$/}"
93
125
  fi
94
126
  fi
95
127
  }
@@ -98,7 +130,6 @@ setup_dependencies() {
98
130
  extensions=$1
99
131
  extension_dir=$2
100
132
  [[ -z "${extensions// }" ]] && return
101
- add_sudo
102
133
  IFS=' ' read -r -a extensions_array <<<"$(echo "$extensions" | sed -e "s/pdo[_-]//g" -Ee "s/^|,\s*/ php$version-/g")"
103
134
  . /etc/os-release
104
135
  sudo rm -rf "${ext_config_directory:?}" || true
@@ -112,8 +143,10 @@ setup_dependencies() {
112
143
  extension_packages="$extension_packages ${dependency_extension_packages_array[*]}"
113
144
  extension_packages="${extension_packages//php$version-common/}"
114
145
  for dependency_extension in "${dependency_extension_packages_array[@]}"; do
115
- mkdir -p "$ext_config_directory/${extension_package#*-}"
116
- add_config "${extension_package#*-}" "$dependency_extension"
146
+ if [ "${dependency_extension#*-}" != 'common' ]; then
147
+ mkdir -p "$ext_config_directory/${extension_package#*-}"
148
+ add_config "${extension_package#*-}" "${dependency_extension#*-}"
149
+ fi
117
150
  done
118
151
  done
119
152
  if [[ -n "${libraries// /}" ]]; then
@@ -123,3 +156,10 @@ setup_dependencies() {
123
156
  setup_extensions "$extension_dir" "${extension_packages//php$version-/}"
124
157
  fi
125
158
  }
159
+
160
+ self_hosted_helper() {
161
+ add_package sudo
162
+ add_package curl
163
+ link_apt_fast
164
+ read_env
165
+ }