Compare commits
132 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d622719c5f | ||
|
|
bb415ca8c6 | ||
|
|
863787aaca | ||
|
|
b44eafb2c0 | ||
|
|
a8d07a7ebe | ||
|
|
844d1f1ac9 | ||
|
|
3b1bb85fc9 | ||
|
|
d776e47f06 | ||
|
|
23e13768c5 | ||
|
|
03b30f7d9f | ||
|
|
cfc6bab678 | ||
|
|
e8283f3a29 | ||
|
|
e303256c08 | ||
|
|
63adf40f8c | ||
|
|
7d0d256df1 | ||
|
|
f6bffb2308 | ||
|
|
5e752a9c57 | ||
|
|
a0de9172f2 | ||
|
|
5c19332f87 | ||
|
|
c8177cca56 | ||
|
|
15d69f21b8 | ||
|
|
e13a77655f | ||
|
|
680ac6a4c1 | ||
|
|
b433d435c1 | ||
|
|
d6a8ec7cfb | ||
|
|
41dbe75153 | ||
|
|
dafd61109e | ||
|
|
581f023de0 | ||
|
|
56ea88f536 | ||
|
|
1970264699 | ||
|
|
e119b54661 | ||
|
|
efbaf97d0a | ||
|
|
a8ecef19ac | ||
|
|
bb222c3f18 | ||
|
|
aedfae77ea | ||
|
|
ad807e7d2c | ||
|
|
38fa3d98ee | ||
|
|
861c58f080 | ||
|
|
2ac4a0798e | ||
|
|
021b07a2b2 | ||
|
|
dc54f0353a | ||
|
|
fd65aac1a3 | ||
|
|
1dd1fede85 | ||
|
|
f453437052 | ||
|
|
813b6608e7 | ||
|
|
10843c9071 | ||
|
|
db6bf65bd9 | ||
|
|
d33ccd80be | ||
|
|
46aa274405 | ||
|
|
9e9ad0fe5f | ||
|
|
f23390933a | ||
|
|
c64a1a91b0 | ||
|
|
7e3a83aacd | ||
|
|
c157badb12 | ||
|
|
b47f0a89fb | ||
|
|
58311d5340 | ||
|
|
55034917ed | ||
|
|
114c7bf40c | ||
|
|
567dc865bb | ||
|
|
4f05196702 | ||
|
|
ca0d32e2b6 | ||
|
|
9e26d5f265 | ||
|
|
9e71412838 | ||
|
|
b75ff681db | ||
|
|
bbf97e5a63 | ||
|
|
c594f79a40 | ||
|
|
88dd43cc51 | ||
|
|
b9595b0dae | ||
|
|
d6ac7eb3e1 | ||
|
|
845ca860fc | ||
|
|
67605e7cb2 | ||
|
|
a96cc5f73c | ||
|
|
111a9ae78c | ||
|
|
51ce802077 | ||
|
|
6f1e8c47b9 | ||
|
|
0a28ecc62d | ||
|
|
257e3c93fb | ||
|
|
f1c2fee180 | ||
|
|
bc065e2169 | ||
|
|
f77feb6ec0 | ||
|
|
850e46eba6 | ||
|
|
fe198edd1a | ||
|
|
9c9aa7fd23 | ||
|
|
24eb15e5fa | ||
|
|
2f6e2f662c | ||
|
|
a4da3200ee | ||
|
|
959ba21b72 | ||
|
|
5f06df1e0f | ||
|
|
0d8f2cf62b | ||
|
|
03f7f56b30 | ||
|
|
79c4acf033 | ||
|
|
a173299cf0 | ||
|
|
b0f769600b | ||
|
|
fd96c6ef49 | ||
|
|
506c0905f4 | ||
|
|
f509c0eeeb | ||
|
|
354b2b75c4 | ||
|
|
75fdf09203 | ||
|
|
2f58e22e3c | ||
|
|
2e789925e4 | ||
|
|
5b215c413b | ||
|
|
20eb4f1c8b | ||
|
|
21e27c8c67 | ||
|
|
da8a00bfab | ||
|
|
59bc1e6fcf | ||
|
|
9b4ef64d32 | ||
|
|
e51a646160 | ||
|
|
da71add69c | ||
|
|
b52930e590 | ||
|
|
3572ca5db9 | ||
|
|
b8a361a25a | ||
|
|
eb0ccb73d5 | ||
|
|
2a56d34ea0 | ||
|
|
075da4be87 | ||
|
|
b660f29789 | ||
|
|
f73bbb0929 | ||
|
|
caa5d3f915 | ||
|
|
6c67ee1261 | ||
|
|
502885cc75 | ||
|
|
d3929ece8e | ||
|
|
9355729f4a | ||
|
|
7f4f2f921c | ||
|
|
bcdf57190d | ||
|
|
fa913560e6 | ||
|
|
90fc296fbc | ||
|
|
f851596ef0 | ||
|
|
319d6f9a6d | ||
|
|
882ea8f750 | ||
|
|
7e3d12a4c4 | ||
|
|
96afc02cad | ||
|
|
024a2e796f | ||
|
|
65ea75914e |
@@ -12,12 +12,5 @@
|
|||||||
"plugin:prettier/recommended",
|
"plugin:prettier/recommended",
|
||||||
"prettier"
|
"prettier"
|
||||||
],
|
],
|
||||||
"plugins": ["@typescript-eslint", "jest"],
|
"plugins": ["@typescript-eslint", "jest"]
|
||||||
"rules": {
|
|
||||||
"camelcase": "off",
|
|
||||||
"require-atomic-updates": "off",
|
|
||||||
"@typescript-eslint/ban-ts-ignore": "off",
|
|
||||||
"@typescript-eslint/camelcase": "off",
|
|
||||||
"@typescript-eslint/no-unused-vars": "off"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
7
.github/FUNDING.yml
vendored
7
.github/FUNDING.yml
vendored
@@ -1,7 +0,0 @@
|
|||||||
# These are supported funding model platforms
|
|
||||||
|
|
||||||
open_collective: setup-php
|
|
||||||
tidelift: "npm/setup-php"
|
|
||||||
community_bridge: setup-php
|
|
||||||
patreon: shivammathur
|
|
||||||
custom: https://www.paypal.me/shivammathur
|
|
||||||
4
.github/codeql/codeql-configuration.yml
vendored
Normal file
4
.github/codeql/codeql-configuration.yml
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
name : CodeQL Configuration
|
||||||
|
|
||||||
|
paths:
|
||||||
|
- './src'
|
||||||
25
.github/workflows/codeql.yml
vendored
Normal file
25
.github/workflows/codeql.yml
vendored
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
name: CodeQL Workflow
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
schedule:
|
||||||
|
- cron: '0 15 * * 6'
|
||||||
|
jobs:
|
||||||
|
codeql:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
fetch-depth: 2
|
||||||
|
|
||||||
|
- name: Initialize CodeQL
|
||||||
|
uses: github/codeql-action/init@v2
|
||||||
|
with:
|
||||||
|
config-file: ./.github/codeql/codeql-configuration.yml
|
||||||
|
languages: javascript
|
||||||
|
|
||||||
|
- name: Autobuild
|
||||||
|
uses: github/codeql-action/autobuild@v2
|
||||||
|
|
||||||
|
- name: Perform CodeQL Analysis
|
||||||
|
uses: github/codeql-action/analyze@v2
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
name: Libs workflow
|
name: Git release workflow
|
||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
schedule:
|
schedule:
|
||||||
@@ -10,14 +10,14 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-20.04, ubuntu-18.04, ubuntu-16.04]
|
os: [ubuntu-22.04, ubuntu-20.04]
|
||||||
steps:
|
steps:
|
||||||
- name: Update lists
|
- name: Update lists
|
||||||
run: |
|
run: |
|
||||||
. /etc/lsb-release
|
. /etc/os-release
|
||||||
dpkg -l | awk '($1 == "ii") && ($2 ~ /^lib|lib$/) { print $2 }' | sed 's/:amd64//' > /tmp/"$DISTRIB_CODENAME"-libs
|
dpkg -l | awk '($1 == "ii") && ($2 ~ /^lib|lib$/) { print $2 }' | sed 's/:amd64//' > /tmp/"$VERSION_CODENAME"-libs
|
||||||
- name: Upload Artifact
|
- name: Upload Artifact
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: lists
|
name: lists
|
||||||
path: |
|
path: |
|
||||||
@@ -29,15 +29,21 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
ref: develop
|
ref: develop
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
- name: Download lists
|
- name: Download lists
|
||||||
uses: actions/download-artifact@v2
|
uses: actions/download-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: lists
|
name: lists
|
||||||
path: src/lists
|
path: src/lists
|
||||||
|
- name: Add brew to PATH
|
||||||
|
run: echo "/home/linuxbrew/.linuxbrew/bin" >> $GITHUB_PATH
|
||||||
|
- name: Update darwin extensions list
|
||||||
|
run: |
|
||||||
|
brew tap shivammathur/extensions
|
||||||
|
find "$(brew --repository shivammathur/extensions)"/.github/deps -mindepth 1 -type d -name "*" -exec basename {} \; | sort > src/lists/darwin-extensions
|
||||||
- name: Update tags and branches
|
- name: Update tags and branches
|
||||||
run: |
|
run: |
|
||||||
push_ref() {
|
push_ref() {
|
||||||
61
.github/workflows/node-release.yml
vendored
Normal file
61
.github/workflows/node-release.yml
vendored
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
name: Node release workflow
|
||||||
|
on:
|
||||||
|
release:
|
||||||
|
types: [created]
|
||||||
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
skip:
|
||||||
|
description: Skip release to repository
|
||||||
|
required: false
|
||||||
|
tag:
|
||||||
|
description: Tag name
|
||||||
|
required: true
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
packages: write
|
||||||
|
steps:
|
||||||
|
- name: Checkout release
|
||||||
|
if: github.event_name != 'workflow_dispatch'
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Checkout tag
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
if: github.event_name == 'workflow_dispatch'
|
||||||
|
with:
|
||||||
|
ref: ${{ github.event.inputs.tag }}
|
||||||
|
|
||||||
|
- name: Setup Node.js
|
||||||
|
uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version: '16.x'
|
||||||
|
registry-url: https://registry.npmjs.org
|
||||||
|
|
||||||
|
- name: Install dependencies and add lib
|
||||||
|
run: |
|
||||||
|
npm install
|
||||||
|
npm run build
|
||||||
|
sed -i -e '/lib\//d' .gitignore
|
||||||
|
|
||||||
|
- name: Publish to NPM
|
||||||
|
if: "!contains(github.event.inputs.skip, 'skip-npm')"
|
||||||
|
run: npm publish --access public
|
||||||
|
env:
|
||||||
|
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||||
|
|
||||||
|
- name: Change to GitHub Packages registry
|
||||||
|
uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
registry-url: https://npm.pkg.github.com
|
||||||
|
scope: '@shivammathur'
|
||||||
|
|
||||||
|
- name: Patch package.json
|
||||||
|
run: |
|
||||||
|
sed -i 's#"name": "#"name": "@shivammathur/#' package.json
|
||||||
|
- name: Publish to GitHub Packages
|
||||||
|
if: "!contains(github.event.inputs.skip, 'skip-github-packages')"
|
||||||
|
run: npm publish
|
||||||
|
env:
|
||||||
|
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
41
.github/workflows/node-test.yml
vendored
Normal file
41
.github/workflows/node-test.yml
vendored
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
name: Node test workflow
|
||||||
|
on: [push, pull_request]
|
||||||
|
jobs:
|
||||||
|
run:
|
||||||
|
name: Run
|
||||||
|
runs-on: ${{ matrix.operating-system }}
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
operating-system: [ubuntu-latest, windows-latest, macos-latest]
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
fetch-depth: 2
|
||||||
|
|
||||||
|
- name: Setup Node.js 16.x
|
||||||
|
uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version: 16.x
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: npm install
|
||||||
|
|
||||||
|
- name: Prettier Format Check
|
||||||
|
run: npm run format-check
|
||||||
|
|
||||||
|
- name: ESLint Check
|
||||||
|
run: npm run lint
|
||||||
|
|
||||||
|
- name: Run npm audit
|
||||||
|
run: npm audit
|
||||||
|
|
||||||
|
- name: Send Coverage
|
||||||
|
uses: codecov/codecov-action@v3
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.CODECOV_TOKEN }}
|
||||||
|
files: coverage/lcov.info
|
||||||
|
name: github-actions-codecov-${{ matrix.operating-system }}
|
||||||
|
fail_ci_if_error: false
|
||||||
|
verbose: true
|
||||||
31
.github/workflows/workflow.yml
vendored
31
.github/workflows/workflow.yml
vendored
@@ -1,31 +0,0 @@
|
|||||||
name: Main workflow
|
|
||||||
on: [push, pull_request]
|
|
||||||
jobs:
|
|
||||||
run:
|
|
||||||
name: Run
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
|
|
||||||
- name: Setup Node.js 12.x
|
|
||||||
uses: actions/setup-node@v1
|
|
||||||
with:
|
|
||||||
node-version: 12.x
|
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
run: npm install
|
|
||||||
|
|
||||||
- name: Prettier Format Check
|
|
||||||
run: npm run format-check
|
|
||||||
|
|
||||||
- name: ESLint Check
|
|
||||||
run: npm run lint
|
|
||||||
|
|
||||||
- name: Run tests
|
|
||||||
run: npm test
|
|
||||||
|
|
||||||
- name: Send Coverage
|
|
||||||
continue-on-error: true
|
|
||||||
timeout-minutes: 1
|
|
||||||
run: curl -s https://codecov.io/bash | bash -s -- -t ${{secrets.CODECOV_TOKEN}} -f coverage/clover.xml -n github-actions-codecov-${{ matrix.operating-system }}-php${{ matrix.php-versions }}
|
|
||||||
4
LICENSE
4
LICENSE
@@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
The MIT License (MIT)
|
The MIT License (MIT)
|
||||||
|
|
||||||
Copyright (c) 2020 shivammathur and contributors
|
Copyright (c) 2020-2023 shivammathur and contributors
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
@@ -19,4 +19,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
THE SOFTWARE.
|
THE SOFTWARE.
|
||||||
|
|||||||
67
README.md
67
README.md
@@ -4,7 +4,7 @@
|
|||||||
<a href="https://github.com/shivammathur/cache-extensions" title="Cache PHP extensions in GitHub Actions"><img alt="GitHub Actions status" src="https://github.com/shivammathur/cache-extensions/workflows/Main%20workflow/badge.svg"></a>
|
<a href="https://github.com/shivammathur/cache-extensions" title="Cache PHP extensions in GitHub Actions"><img alt="GitHub Actions status" src="https://github.com/shivammathur/cache-extensions/workflows/Main%20workflow/badge.svg"></a>
|
||||||
<a href="https://codecov.io/gh/shivammathur/cache-extensions" title="Code coverage"><img alt="Codecov Code Coverage" src="https://codecov.io/gh/shivammathur/cache-extensions/branch/master/graph/badge.svg"></a>
|
<a href="https://codecov.io/gh/shivammathur/cache-extensions" title="Code coverage"><img alt="Codecov Code Coverage" src="https://codecov.io/gh/shivammathur/cache-extensions/branch/master/graph/badge.svg"></a>
|
||||||
<a href="https://github.com/shivammathur/cache-extensions/blob/master/LICENSE" title="license"><img alt="LICENSE" src="https://img.shields.io/badge/license-MIT-428f7e.svg?logo=open%20source%20initiative&logoColor=white&labelColor=555555"></a>
|
<a href="https://github.com/shivammathur/cache-extensions/blob/master/LICENSE" title="license"><img alt="LICENSE" src="https://img.shields.io/badge/license-MIT-428f7e.svg?logo=open%20source%20initiative&logoColor=white&labelColor=555555"></a>
|
||||||
<a href="#tada-php-support" title="PHP Versions Supported"><img alt="PHP Versions Supported" src="https://img.shields.io/badge/php-5.3%20to%208.1-777bb3.svg?logo=php&logoColor=white&labelColor=555555"></a>
|
<a href="#tada-php-support" title="PHP Versions Supported"><img alt="PHP Versions Supported" src="https://img.shields.io/badge/php-5.3%20to%208.3-777bb3.svg?logo=php&logoColor=white&labelColor=555555"></a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
Cache PHP extensions in [GitHub Actions](https://github.com/features/actions "GitHub Actions"). This action has to be used along with [shivammathur/setup-php](https://github.com/shivammathur/setup-php "Setup PHP") and [actions/cache](https://github.com/actions/cache "Cache in GitHub Actions") GitHub Actions. It configures the environment required to cache PHP extensions. Refer to [Usage](#memo-usage "How to use this") section for details and example workflow.
|
Cache PHP extensions in [GitHub Actions](https://github.com/features/actions "GitHub Actions"). This action has to be used along with [shivammathur/setup-php](https://github.com/shivammathur/setup-php "Setup PHP") and [actions/cache](https://github.com/actions/cache "Cache in GitHub Actions") GitHub Actions. It configures the environment required to cache PHP extensions. Refer to [Usage](#memo-usage "How to use this") section for details and example workflow.
|
||||||
@@ -33,21 +33,23 @@ Cache PHP extensions in [GitHub Actions](https://github.com/features/actions "Gi
|
|||||||
|7.0|`Stable`|`End of life`|
|
|7.0|`Stable`|`End of life`|
|
||||||
|7.1|`Stable`|`End of life`|
|
|7.1|`Stable`|`End of life`|
|
||||||
|7.2|`Stable`|`End of life`|
|
|7.2|`Stable`|`End of life`|
|
||||||
|7.3|`Stable`|`Security fixes only`|
|
|7.3|`Stable`|`End of life`|
|
||||||
|7.4|`Stable`|`Active`|
|
|7.4|`Stable`|`Security fixes only`|
|
||||||
|8.0|`Stable`|`Active`|
|
|8.0|`Stable`|`Active`|
|
||||||
|8.1|`Nightly`|`In development`|
|
|8.1|`Stable`|`Active`|
|
||||||
|
|8.2|`Stable`|`Active`|
|
||||||
|
|8.3|`Nightly`|`In development`|
|
||||||
|
|
||||||
## :cloud: OS/Platform Support
|
## :cloud: OS/Platform Support
|
||||||
|
|
||||||
|Virtual environment|YAML workflow label|
|
| Virtual environment | YAML workflow label |
|
||||||
|--- |--- |
|
|----------------------|------------------------------------|
|
||||||
|Windows Server 2019|`windows-latest` or `windows-2019`|
|
| Ubuntu 22.04 | `ubuntu-22.04` |
|
||||||
|Ubuntu 20.04|`ubuntu-latest` or `ubuntu-20.04`|
|
| Ubuntu 20.04 | `ubuntu-latest` or `ubuntu-20.04` |
|
||||||
|Ubuntu 18.04|`ubuntu-18.04`|
|
| Windows Server 2022 | `windows-2022` |
|
||||||
|Ubuntu 16.04|`ubuntu-16.04`|
|
| Windows Server 2019 | `windows-latest` or `windows-2019` |
|
||||||
|macOS Catalina 10.15|`macos-latest` or `macOS-10.15`|
|
| macOS Big Sur 12.x | `macOS-12` |
|
||||||
|macOS Big Sur 11.x|`macOS-11.0`|
|
| macOS Big Sur 11.x | `macos-latest` or `macOS-11` |
|
||||||
|
|
||||||
## :memo: Usage
|
## :memo: Usage
|
||||||
|
|
||||||
@@ -55,17 +57,29 @@ Use this GitHub Action when the extensions you are adding in [setup-php](https:/
|
|||||||
|
|
||||||
### Inputs
|
### Inputs
|
||||||
|
|
||||||
#### `php-version` (required)
|
#### `php-version` (optional)
|
||||||
|
|
||||||
- Specify the PHP version you want to set-up.
|
- Specify the PHP version you want to set up.
|
||||||
- Accepts a `string`. For example `'7.4'`.
|
- Accepts a `string`. For example `'8.0'`.
|
||||||
- See [PHP support](#tada-php-support) for supported PHP versions.
|
- Accepts `latest` to set up the latest stable PHP version.
|
||||||
|
- Accepts `nightly` to set up a nightly build from the master branch of PHP.
|
||||||
|
- Accepts the format `d.x`, where `d` is the major version. For example `5.x`, `7.x` and `8.x`.
|
||||||
|
- See [PHP support](#tada-php-support) for the supported PHP versions.
|
||||||
|
- If not specified, it looks for `php-version-file` input.
|
||||||
|
|
||||||
|
#### `php-version-file` (optional)
|
||||||
|
|
||||||
|
- Specify a file with the PHP version you want to set up.
|
||||||
|
- Accepts a `string`. For example `'.phpenv-version'`.
|
||||||
|
- See [PHP support](#tada-php-support) for the supported PHP versions.
|
||||||
|
- By default, `.php-version` file is used.
|
||||||
|
- If not specified and the default `.php-version` file is not found, the latest stable PHP version is set up.
|
||||||
|
|
||||||
#### `extensions` (required)
|
#### `extensions` (required)
|
||||||
|
|
||||||
- Specify the extensions you want to setup.
|
- Specify the extensions you want to set up.
|
||||||
- Accepts a `string` in csv-format. For example `mbstring, xdebug, :opcache`.
|
- Accepts a `string` in csv-format. For example `mbstring, xdebug, :opcache`.
|
||||||
- Extensions prefixed with `:` are ignored.
|
- Extensions prefixed with `:` are ignored in output cache key.
|
||||||
|
|
||||||
#### `key` (required)
|
#### `key` (required)
|
||||||
|
|
||||||
@@ -86,14 +100,14 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
operating-system: [ubuntu-latest, windows-latest, macos-latest]
|
operating-system: [ubuntu-latest, windows-latest, macos-latest]
|
||||||
php-versions: ['7.2', '7.3', '7.4']
|
php-versions: ['8.0', '8.1', '8.2', '8.3']
|
||||||
name: PHP ${{ matrix.php-versions }} Test on ${{ matrix.operating-system }}
|
name: PHP ${{ matrix.php-versions }} Test on ${{ matrix.operating-system }}
|
||||||
env:
|
env:
|
||||||
extensions: intl, pcov
|
extensions: intl, pcov
|
||||||
key: cache-v1 # can be any string, change to clear the extension cache.
|
key: cache-v1 # can be any string, change to clear the extension cache.
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
- name: Setup cache environment
|
- name: Setup cache environment
|
||||||
id: extcache
|
id: extcache
|
||||||
@@ -104,7 +118,7 @@ jobs:
|
|||||||
key: ${{ env.key }}
|
key: ${{ env.key }}
|
||||||
|
|
||||||
- name: Cache extensions
|
- name: Cache extensions
|
||||||
uses: actions/cache@v2
|
uses: actions/cache@v3
|
||||||
with:
|
with:
|
||||||
path: ${{ steps.extcache.outputs.dir }}
|
path: ${{ steps.extcache.outputs.dir }}
|
||||||
key: ${{ steps.extcache.outputs.key }}
|
key: ${{ steps.extcache.outputs.key }}
|
||||||
@@ -119,11 +133,11 @@ jobs:
|
|||||||
|
|
||||||
### Thread Safe Setup
|
### Thread Safe Setup
|
||||||
|
|
||||||
If you set up both `TS` and `NTS` PHP versions on `Windows` in your workflow, please add `${{ env.phpts }}` to `key` and `restore-keys` inputs in `actions/cache` step in the above workflow to avoid a conflicting cache.
|
If you set up both `TS` and `NTS` PHP versions on `Ubuntu` or `Windows` in your workflow, please add `${{ env.phpts }}` to `key` and `restore-keys` inputs in `actions/cache` step in the above workflow to avoid a conflicting cache.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
- name: Cache extensions
|
- name: Cache extensions
|
||||||
uses: actions/cache@v2
|
uses: actions/cache@v3
|
||||||
with:
|
with:
|
||||||
path: ${{ steps.extcache.outputs.dir }}
|
path: ${{ steps.extcache.outputs.dir }}
|
||||||
key: ${{ steps.extcache.outputs.key }}-${{ env.phpts }}
|
key: ${{ steps.extcache.outputs.key }}-${{ env.phpts }}
|
||||||
@@ -132,7 +146,7 @@ If you set up both `TS` and `NTS` PHP versions on `Windows` in your workflow, pl
|
|||||||
|
|
||||||
## :scroll: License
|
## :scroll: License
|
||||||
|
|
||||||
The scripts and documentation in this project are under the [MIT License](LICENSE "License for shivammathur/cache-extensions"). This project has multiple [dependencies](https://github.com/shivammathur/cache-extensions/network/dependencies "Dependencies for this PHP Action"). Their licenses can be found in their respective repositories.
|
The code and documentation in this project are under the [MIT License](LICENSE "License for shivammathur/cache-extensions"). This project has multiple [dependencies](https://github.com/shivammathur/cache-extensions/network/dependencies "Dependencies for this PHP Action"). Their licenses can be found in their respective repositories.
|
||||||
|
|
||||||
## :+1: Contributions
|
## :+1: Contributions
|
||||||
|
|
||||||
@@ -143,9 +157,8 @@ Contributions are welcome! See [Contributor's Guide](.github/CONTRIBUTING.md "sh
|
|||||||
If this action helped you.
|
If this action helped you.
|
||||||
|
|
||||||
- Please star the project and share it. If you blog, please share your experience of using this action.
|
- Please star the project and share it. If you blog, please share your experience of using this action.
|
||||||
- Please consider supporting our work by sponsoring using [Open Collective](https://opencollective.com/setup-php), [Paypal](https://www.paypal.me/shivammathur "Shivam Mathur PayPal") or [Patreon](https://www.patreon.com/shivammathur "Shivam Mathur Patreon").
|
- Please support our work by sponsoring using [GitHub sponsors](https://github.com/sponsors/shivammathur).
|
||||||
- If you use this action at your company, please [reach out](mailto:contact@setup-php.com) to sponsor the project.
|
|
||||||
|
|
||||||
## :package: Dependencies
|
## :package: Dependencies
|
||||||
|
|
||||||
- [Node.js dependencies](https://github.com/shivammathur/setup-php/network/dependencies "Node.js dependencies")
|
- [Node.js dependencies](https://github.com/shivammathur/cache-extensions/network/dependencies "Node.js dependencies")
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
import * as path from 'path';
|
||||||
|
import * as spu from 'setup-php/lib/utils';
|
||||||
import * as cache from '../src/cache';
|
import * as cache from '../src/cache';
|
||||||
import * as utils from '../src/utils';
|
import * as utils from '../src/utils';
|
||||||
|
|
||||||
@@ -6,17 +8,14 @@ import * as utils from '../src/utils';
|
|||||||
*/
|
*/
|
||||||
jest.mock('../src/cache', () => ({
|
jest.mock('../src/cache', () => ({
|
||||||
run: jest.fn().mockImplementation(async (): Promise<string> => {
|
run: jest.fn().mockImplementation(async (): Promise<string> => {
|
||||||
let version: string = process.env['php-version'] || '';
|
const version: string = await spu.parseVersion(
|
||||||
version = version.length > 1 ? version.slice(0, 3) : version + '.0';
|
process.env['php-version'] || ''
|
||||||
|
);
|
||||||
const extensions = await utils.filterExtensions(
|
const extensions = await utils.filterExtensions(
|
||||||
process.env['extensions'] || ''
|
process.env['extensions'] || ''
|
||||||
);
|
);
|
||||||
const key: string = process.env['key'] || '';
|
const key: string = process.env['key'] || '';
|
||||||
const script_path = 'extensions.sh';
|
return await utils.scriptCall('test', extensions, key, version);
|
||||||
|
|
||||||
return (
|
|
||||||
'bash ' + script_path + ' "' + extensions + '" ' + key + ' ' + version
|
|
||||||
);
|
|
||||||
})
|
})
|
||||||
}));
|
}));
|
||||||
|
|
||||||
@@ -38,21 +37,22 @@ function setEnv(
|
|||||||
}
|
}
|
||||||
|
|
||||||
describe('Install', () => {
|
describe('Install', () => {
|
||||||
|
const spath: string = path.join(__dirname, '../src/scripts/cache.sh');
|
||||||
it('Test Run', async () => {
|
it('Test Run', async () => {
|
||||||
setEnv('7.0', 'xdebug, pcov', 'cache-v1');
|
setEnv('7.0', 'xdebug, pcov', 'cache-v1');
|
||||||
const script: string = '' + (await cache.run());
|
const script: string = '' + (await cache.run());
|
||||||
expect(script).toContain('bash extensions.sh "xdebug, pcov" cache-v1 7.0');
|
expect(script).toContain(`bash ${spath} test "xdebug, pcov" cache-v1 7.0`);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('Test Run', async () => {
|
it('Test Run', async () => {
|
||||||
setEnv('7.4', 'xdebug, zip', 'cache-v2');
|
setEnv('7.4', 'xdebug, zip', 'cache-v2');
|
||||||
const script: string = '' + (await cache.run());
|
const script: string = '' + (await cache.run());
|
||||||
expect(script).toContain('bash extensions.sh "xdebug, zip" cache-v2 7.4');
|
expect(script).toContain(`bash ${spath} test "xdebug, zip" cache-v2 7.4`);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('Test Run', async () => {
|
it('Test Run', async () => {
|
||||||
setEnv('7.4', 'xdebug, :zip', 'cache-v2');
|
setEnv('7.4', 'xdebug, :zip', 'cache-v2');
|
||||||
const script: string = '' + (await cache.run());
|
const script: string = '' + (await cache.run());
|
||||||
expect(script).toContain('bash extensions.sh "xdebug" cache-v2 7.4');
|
expect(script).toContain(`bash ${spath} test "xdebug" cache-v2 7.4`);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,38 +1,33 @@
|
|||||||
|
import * as fs from 'fs';
|
||||||
|
import * as path from 'path';
|
||||||
import * as utils from '../src/utils';
|
import * as utils from '../src/utils';
|
||||||
|
|
||||||
jest.mock('@actions/core', () => ({
|
async function cleanup(path: string): Promise<void> {
|
||||||
getInput: jest.fn().mockImplementation(key => {
|
fs.unlink(path, error => {
|
||||||
return ['cache-extensions'].indexOf(key) !== -1 ? key : '';
|
if (error) {
|
||||||
})
|
console.log(error);
|
||||||
}));
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
describe('Utils tests', () => {
|
describe('Utils tests', () => {
|
||||||
it('checking readEnv', async () => {
|
it('checking getOutput', async () => {
|
||||||
process.env['test'] = 'setup-php';
|
const temp_dir: string = process.env['RUNNER_TEMP'] || '';
|
||||||
expect(await utils.readEnv('test')).toBe('setup-php');
|
const file_path: string = path.join(temp_dir, 'test');
|
||||||
expect(await utils.readEnv('undefined')).toBe('');
|
fs.writeFileSync(file_path, 'test', {mode: 0o755});
|
||||||
});
|
expect(await utils.getOutput('test')).toBe('test');
|
||||||
|
await cleanup(file_path);
|
||||||
it('checking getInput', async () => {
|
|
||||||
process.env['test'] = 'setup-php';
|
|
||||||
expect(await utils.getInput('test', false)).toBe('setup-php');
|
|
||||||
expect(await utils.getInput('cache-extensions', false)).toBe(
|
|
||||||
'cache-extensions'
|
|
||||||
);
|
|
||||||
expect(await utils.getInput('DoesNotExist', false)).toBe('');
|
|
||||||
expect(async () => {
|
|
||||||
await utils.getInput('DoesNotExist', true);
|
|
||||||
}).rejects.toThrow('Input required and not supplied: DoesNotExist');
|
|
||||||
});
|
|
||||||
|
|
||||||
it('checking parseVersion', async () => {
|
|
||||||
expect(await utils.parseVersion('7')).toBe('7.0');
|
|
||||||
expect(await utils.parseVersion('7.4')).toBe('7.4');
|
|
||||||
expect(await utils.parseVersion('latest')).toBe('7.4');
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('checking filterExtensions', async () => {
|
it('checking filterExtensions', async () => {
|
||||||
expect(await utils.filterExtensions('a,:b,c')).toBe('a,c');
|
expect(await utils.filterExtensions('a,:b,c')).toBe('"a,c"');
|
||||||
expect(await utils.filterExtensions('a, :b, c')).toBe('a, c');
|
expect(await utils.filterExtensions('a, :b, c')).toBe('"a, c"');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('checking scriptCall', async () => {
|
||||||
|
const script: string = path.join(__dirname, '../src/scripts/cache.sh');
|
||||||
|
expect(await utils.scriptCall('test a b')).toBe(
|
||||||
|
['bash', script, 'test', 'a', 'b'].join(' ')
|
||||||
|
);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -6,8 +6,11 @@ branding:
|
|||||||
icon: 'box'
|
icon: 'box'
|
||||||
inputs:
|
inputs:
|
||||||
php-version:
|
php-version:
|
||||||
description: 'PHP version you are setting up.'
|
description: 'Setup PHP version.'
|
||||||
required: true
|
required: false
|
||||||
|
php-version-file:
|
||||||
|
description: 'Setup PHP version from a file.'
|
||||||
|
required: false
|
||||||
extensions:
|
extensions:
|
||||||
description: 'Extensions you want to cache.'
|
description: 'Extensions you want to cache.'
|
||||||
required: true
|
required: true
|
||||||
@@ -15,5 +18,5 @@ inputs:
|
|||||||
description: 'Key to version the cache hash.'
|
description: 'Key to version the cache hash.'
|
||||||
required: true
|
required: true
|
||||||
runs:
|
runs:
|
||||||
using: 'node12'
|
using: 'node16'
|
||||||
main: 'dist/index.js'
|
main: 'dist/index.js'
|
||||||
|
|||||||
58510
dist/index.js
vendored
58510
dist/index.js
vendored
File diff suppressed because one or more lines are too long
11865
package-lock.json
generated
11865
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
70
package.json
70
package.json
@@ -1,14 +1,24 @@
|
|||||||
{
|
{
|
||||||
"name": "cache-extensions",
|
"name": "cache-extensions",
|
||||||
"version": "1.5.1",
|
"version": "1.10.0",
|
||||||
"private": false,
|
"private": false,
|
||||||
"description": "Cache extensions in GitHub Actions",
|
"description": "Cache PHP extensions in GitHub Actions",
|
||||||
"main": "lib/cache.js",
|
"main": "lib/cache.js",
|
||||||
|
"types": "lib/cache.d.ts",
|
||||||
|
"directories": {
|
||||||
|
"lib": "lib",
|
||||||
|
"test": "__tests__",
|
||||||
|
"src": "src"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"lib",
|
||||||
|
"src"
|
||||||
|
],
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "tsc",
|
"build": "tsc",
|
||||||
"lint": "eslint **/*.ts --cache",
|
"lint": "eslint **/src/*.ts --cache --fix",
|
||||||
"format": "prettier --write **/*.ts && git add .",
|
"format": "prettier --write **/src/*.ts && git add .",
|
||||||
"format-check": "prettier --check **/*.ts",
|
"format-check": "prettier --check **/src/*.ts",
|
||||||
"release": "ncc build -o dist && git add -f dist/",
|
"release": "ncc build -o dist && git add -f dist/",
|
||||||
"test": "jest"
|
"test": "jest"
|
||||||
},
|
},
|
||||||
@@ -19,36 +29,38 @@
|
|||||||
"keywords": [
|
"keywords": [
|
||||||
"actions",
|
"actions",
|
||||||
"php",
|
"php",
|
||||||
"setup"
|
"extension",
|
||||||
|
"cache"
|
||||||
],
|
],
|
||||||
"author": "shivammathur",
|
"author": "shivammathur",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/core": "^1.3.0",
|
"@actions/cache": "^3.2.1",
|
||||||
"@actions/exec": "^1.0.4"
|
"@actions/core": "^1.10.0",
|
||||||
|
"@actions/exec": "^1.1.1",
|
||||||
|
"setup-php": "2.25.4"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/jest": "^26.0.23",
|
"@types/jest": "^29.5.3",
|
||||||
"@types/node": "^15.6.1",
|
"@types/node": "^20.4.5",
|
||||||
"@typescript-eslint/eslint-plugin": "^4.25.0",
|
"@typescript-eslint/eslint-plugin": "^6.2.0",
|
||||||
"@typescript-eslint/parser": "^4.25.0",
|
"@typescript-eslint/parser": "^6.2.0",
|
||||||
"@vercel/ncc": "^0.28.6",
|
"@vercel/ncc": "^0.36.1",
|
||||||
"eslint": "^7.27.0",
|
"eslint": "^8.46.0",
|
||||||
"eslint-config-prettier": "^8.3.0",
|
"eslint-config-prettier": "^8.9.0",
|
||||||
"eslint-plugin-import": "^2.23.4",
|
"eslint-plugin-import": "^2.28.0",
|
||||||
"eslint-plugin-jest": "^24.3.6",
|
"eslint-plugin-jest": "^27.2.3",
|
||||||
"eslint-plugin-prettier": "^3.4.0",
|
"eslint-plugin-prettier": "^5.0.0",
|
||||||
"husky": "^4.3.8",
|
"jest": "^29.6.2",
|
||||||
"jest": "^27.0.3",
|
"jest-circus": "^29.6.2",
|
||||||
"jest-circus": "^27.0.3",
|
"prettier": "^3.0.0",
|
||||||
"prettier": "^2.3.0",
|
"ts-jest": "^29.1.1",
|
||||||
"ts-jest": "^27.0.1",
|
"typescript": "^5.1.6"
|
||||||
"typescript": "^4.3.2"
|
|
||||||
},
|
},
|
||||||
"husky": {
|
"bugs": {
|
||||||
"skipCI": true,
|
"url": "https://github.com/shivammathur/cache-extensions/issues"
|
||||||
"hooks": {
|
},
|
||||||
"pre-commit": "npm run format && npm run lint && npm run test && npm run build && npm run release"
|
"simple-git-hooks": {
|
||||||
}
|
"pre-commit": "npm run format && npm run lint && npm run test && npm run build && npm run release"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
63
src/cache.ts
63
src/cache.ts
@@ -1,28 +1,69 @@
|
|||||||
import {exec} from '@actions/exec';
|
import {exec} from '@actions/exec';
|
||||||
|
import * as cache from '@actions/cache';
|
||||||
import * as core from '@actions/core';
|
import * as core from '@actions/core';
|
||||||
|
import * as spu from 'setup-php/lib/utils';
|
||||||
|
import * as fs from 'fs';
|
||||||
import * as path from 'path';
|
import * as path from 'path';
|
||||||
import * as utils from './utils';
|
import * as utils from './utils';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle dependencies
|
||||||
|
*
|
||||||
|
* @param extensions
|
||||||
|
* @param version
|
||||||
|
*/
|
||||||
|
export async function handleDependencies(
|
||||||
|
extensions: string,
|
||||||
|
version: string
|
||||||
|
): Promise<void> {
|
||||||
|
if (!/^5.[3-5]$/.test(version) && /linux|darwin/.test(process.platform)) {
|
||||||
|
const cache_key: string = (await utils.getOutput('key')) + '-deps';
|
||||||
|
const cache_dir: string = path.join(
|
||||||
|
await spu.readEnv('RUNNER_TOOL_CACHE'),
|
||||||
|
'deps'
|
||||||
|
);
|
||||||
|
const cache_hit: string | undefined = await cache.restoreCache(
|
||||||
|
[cache_dir],
|
||||||
|
cache_key,
|
||||||
|
[cache_key]
|
||||||
|
);
|
||||||
|
await exec(await utils.scriptCall('dependencies', extensions, version));
|
||||||
|
if (!cache_hit && fs.existsSync(cache_dir)) {
|
||||||
|
try {
|
||||||
|
await cache.saveCache([cache_dir], cache_key);
|
||||||
|
} catch {
|
||||||
|
await cache.saveCache([cache_dir], cache_key + '-take-2');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Run the script
|
* Run the script
|
||||||
*/
|
*/
|
||||||
export async function run(): Promise<void> {
|
export async function run(): Promise<void> {
|
||||||
try {
|
try {
|
||||||
const version: string = await utils.parseVersion(
|
const version: string = await spu.parseVersion(await spu.readPHPVersion());
|
||||||
await utils.getInput('php-version', true)
|
|
||||||
);
|
|
||||||
const extensions: string = await utils.filterExtensions(
|
const extensions: string = await utils.filterExtensions(
|
||||||
await utils.getInput('extensions', true)
|
await spu.getInput('extensions', true)
|
||||||
);
|
|
||||||
const key: string = await utils.getInput('key', true);
|
|
||||||
const script_path: string = path.join(__dirname, '../src/extensions.sh');
|
|
||||||
await exec(
|
|
||||||
'bash ' + script_path + ' "' + extensions + '" ' + key + ' ' + version
|
|
||||||
);
|
);
|
||||||
|
const key: string = await spu.getInput('key', true);
|
||||||
|
await exec(await utils.scriptCall('data', extensions, version, key));
|
||||||
|
await handleDependencies(extensions, version);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
core.setFailed(error.message);
|
core.setFailed((error as Error).message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// call the run function
|
// call the run function
|
||||||
run();
|
(async () => {
|
||||||
|
await run();
|
||||||
|
})().catch(error => {
|
||||||
|
if (error.name === cache.ValidationError.name) {
|
||||||
|
core.setFailed(error.message);
|
||||||
|
} else if (error.name === cache.ReserveCacheError.name) {
|
||||||
|
core.info(error.message);
|
||||||
|
} else {
|
||||||
|
core.warning(error.message);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|||||||
@@ -1,219 +0,0 @@
|
|||||||
step_log() {
|
|
||||||
message=$1
|
|
||||||
printf "\n\033[90;1m==> \033[0m\033[37;1m%s\033[0m\n" "$message"
|
|
||||||
}
|
|
||||||
|
|
||||||
add_log() {
|
|
||||||
mark=$1
|
|
||||||
shift
|
|
||||||
subjects=("$@")
|
|
||||||
for subject in "${subjects[@]}"; do
|
|
||||||
if [ "$mark" = "$tick" ]; then
|
|
||||||
printf "\033[32;1m%s \033[0m\033[34;1m%s \033[0m\033[90;1m%s\033[0m\n" "$mark" "$subject" "Added $subject"
|
|
||||||
else
|
|
||||||
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"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
fix_ownership() {
|
|
||||||
dir=$1
|
|
||||||
sudo chown -R "$USER":"$(id -g -n)" "$(dirname "$dir")"
|
|
||||||
}
|
|
||||||
|
|
||||||
link_apt_fast() {
|
|
||||||
if ! command -v apt-fast >/dev/null; then
|
|
||||||
sudo ln -sf /usr/bin/apt-get /usr/bin/apt-fast
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
fetch_package() {
|
|
||||||
if ! [ -e /tmp/Packages ]; then
|
|
||||||
deb_build_arch=$(dpkg-architecture -q DEB_BUILD_ARCH)
|
|
||||||
curl -o /tmp/Packages.gz -sL "http://ppa.launchpad.net/ondrej/php/ubuntu/dists/$DISTRIB_CODENAME/main/binary-$deb_build_arch/Packages.gz"
|
|
||||||
gzip -df /tmp/Packages.gz
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
get_dependencies() {
|
|
||||||
package=$1
|
|
||||||
prefix=$2
|
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
||||||
get_package_link() {
|
|
||||||
package=$1
|
|
||||||
trunk="http://ppa.launchpad.net/ondrej/php/ubuntu"
|
|
||||||
file=$(sed -e '/Package:\s'"$package$"'/,/^\s*$/!d' /tmp/Packages | grep -Eo "^Filename.*" | cut -d' ' -f 2 | tr -d '\r')
|
|
||||||
echo "$trunk/$file"
|
|
||||||
}
|
|
||||||
|
|
||||||
linux_extension_dir() {
|
|
||||||
api_version=$1
|
|
||||||
if [[ "$version" =~ $old_versions|$nightly_versions ]]; then
|
|
||||||
echo "/usr/local/php/$version/lib/php/extensions/no-debug-non-zts-$api_version"
|
|
||||||
else
|
|
||||||
echo "/usr/lib/php/$api_version"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
darwin_extension_dir() {
|
|
||||||
api_version=$1
|
|
||||||
if [[ "$version" =~ $old_versions ]]; then
|
|
||||||
echo "/opt/local/lib/php${version/./}/extensions/no-debug-non-zts-$api_version"
|
|
||||||
else
|
|
||||||
if [[ "$(sysctl -n hw.optional.arm64 2>/dev/null)" == "1" ]]; then
|
|
||||||
echo "/opt/homebrew/lib/php/pecl/$api_version"
|
|
||||||
else
|
|
||||||
echo "/usr/local/lib/php/pecl/$api_version"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
get_api_version() {
|
|
||||||
case $version in
|
|
||||||
5.3) echo "20090626" ;;
|
|
||||||
5.4) echo "20100525" ;;
|
|
||||||
5.5) echo "20121212" ;;
|
|
||||||
5.6) echo "20131226" ;;
|
|
||||||
7.0) echo "20151012" ;;
|
|
||||||
7.1) echo "20160303" ;;
|
|
||||||
7.2) echo "20170718" ;;
|
|
||||||
7.3) echo "20180731" ;;
|
|
||||||
7.4) echo "20190902" ;;
|
|
||||||
8.0) echo "20200930" ;;
|
|
||||||
*)
|
|
||||||
php_header="https://raw.githubusercontent.com/php/php-src/master/main/php.h"
|
|
||||||
curl -sSL --retry 5 "$php_header" | grep "PHP_API_VERSION" | cut -d' ' -f 3
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
add_config() {
|
|
||||||
dependent_extension=$1
|
|
||||||
dependency_extension=$2
|
|
||||||
echo "$dependency_extension" | sudo tee "$cache_directory/$dependent_extension/$dependency_extension" >/dev/null 2>&1
|
|
||||||
}
|
|
||||||
|
|
||||||
setup_extension() {
|
|
||||||
dependent_extension=$1
|
|
||||||
dependency_extension=$2
|
|
||||||
extension_dir=$3
|
|
||||||
if ! [ -e "$extension_dir/$dependency_extension.so" ]; then
|
|
||||||
extension_package_link="$(get_package_link "php$version-$dependency_extension")"
|
|
||||||
sudo curl -H "User-Agent: Debian APT-HTTP/GHA(ce)" -o "$dependency_extension".deb -sL "$extension_package_link"
|
|
||||||
sudo dpkg-deb -x "$dependency_extension".deb /
|
|
||||||
fix_ownership "$dir"
|
|
||||||
fi
|
|
||||||
if [ -e "$extension_dir/$dependency_extension.so" ]; then
|
|
||||||
add_config "$dependent_extension" "$dependency_extension"
|
|
||||||
add_log "$tick" "$dependency_extension"
|
|
||||||
else
|
|
||||||
add_log "$cross" "$dependency_extension"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
filter_dependencies_libs() {
|
|
||||||
libraries="$(echo "$1" | xargs -n1 | uniq | xargs)"
|
|
||||||
script_dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )
|
|
||||||
for library in $libraries; do
|
|
||||||
if grep -i -q -w "$library" "$script_dir"/lists/"$DISTRIB_CODENAME"-libs; then
|
|
||||||
libraries=${libraries//$library/}
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
echo "$libraries"
|
|
||||||
}
|
|
||||||
|
|
||||||
setup_dependencies_libs() {
|
|
||||||
libraries=$1
|
|
||||||
if [[ -n "${libraries// }" ]]; then
|
|
||||||
libraries=$(filter_dependencies_libs "$libraries")
|
|
||||||
if [[ -n "${libraries// }" ]]; then
|
|
||||||
step_log "Setup libraries"
|
|
||||||
IFS=' ' read -r -a libraries_array <<<"$libraries"
|
|
||||||
link_apt_fast
|
|
||||||
(
|
|
||||||
sudo DEBIAN_FRONTEND=noninteractive apt-fast install --no-install-recommends --no-upgrade -y "${libraries_array[@]}" >/dev/null 2>&1 &&
|
|
||||||
add_log "$tick" "${libraries_array[@]}"
|
|
||||||
) || add_log "$cross" "${libraries_array[@]}"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
setup_dependencies_extensions() {
|
|
||||||
extension_dir=$1
|
|
||||||
shift
|
|
||||||
extensions_array=("$@")
|
|
||||||
. /etc/lsb-release
|
|
||||||
cache_directory=/tmp/extcache
|
|
||||||
sudo rm -rf "$cache_directory" || true
|
|
||||||
libraries=""
|
|
||||||
for extension_package in "${extensions_array[@]}"; do
|
|
||||||
fetch_package
|
|
||||||
libraries="$libraries $(get_dependencies "$extension_package" "lib")"
|
|
||||||
extension="${extension_package/php$version-/}"
|
|
||||||
if ! [ -d "$cache_directory"/"$extension" ]; then
|
|
||||||
extension_dependencies=$(get_dependencies "$extension_package" "php$version-")
|
|
||||||
extension_dependencies="${extension_dependencies//php$version-common/}"
|
|
||||||
if [[ -n "${extension_dependencies// }" ]]; then
|
|
||||||
step_log "Setup extensions for $extension"
|
|
||||||
extension_dependencies_array=()
|
|
||||||
IFS=' ' read -r -a extension_dependencies_array <<<"$extension_dependencies"
|
|
||||||
sudo mkdir -p "$cache_directory"/"$extension"
|
|
||||||
(
|
|
||||||
cd "$cache_directory" || exit 1
|
|
||||||
to_wait=()
|
|
||||||
for extension_dependeny_package in "${extension_dependencies_array[@]}"; do
|
|
||||||
if [[ -n "${extension_dependeny_package// }" ]]; then
|
|
||||||
extension_dependency=${extension_dependeny_package/php$version-/}
|
|
||||||
setup_extension "$extension" "$extension_dependency" "$extension_dir" &
|
|
||||||
to_wait+=($!)
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
wait "${to_wait[@]}"
|
|
||||||
)
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
setup_dependencies_libs "$libraries"
|
|
||||||
}
|
|
||||||
|
|
||||||
setup_dependencies() {
|
|
||||||
extensions=$1
|
|
||||||
extension_dir=$2
|
|
||||||
if [[ -n "${extensions// }" ]]; then
|
|
||||||
IFS=' ' read -r -a extensions_array <<<"$(echo "$extensions" | sed -e "s/pdo[_-]//g" -Ee "s/^|,\s*/ php$version-/g")"
|
|
||||||
setup_dependencies_extensions "$extension_dir" "${extensions_array[@]}"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
extensions=$1
|
|
||||||
key=$2
|
|
||||||
version=$3
|
|
||||||
tick="✓"
|
|
||||||
cross="✗"
|
|
||||||
os=$(uname -s)
|
|
||||||
old_versions="5.[3-5]"
|
|
||||||
nightly_versions="8.[1-9]"
|
|
||||||
date='20210313'
|
|
||||||
if [ "$os" = "Linux" ]; then
|
|
||||||
. /etc/lsb-release
|
|
||||||
os=$os-$DISTRIB_CODENAME
|
|
||||||
api_version=$(get_api_version)
|
|
||||||
dir=$(linux_extension_dir "$api_version")
|
|
||||||
sudo mkdir -p "$dir" && fix_ownership "$dir"
|
|
||||||
setup_dependencies "$extensions" "$dir"
|
|
||||||
elif [ "$os" = "Darwin" ]; then
|
|
||||||
api_version=$(get_api_version)
|
|
||||||
dir=$(darwin_extension_dir "$api_version")
|
|
||||||
sudo mkdir -p "$dir" && fix_ownership "$dir"
|
|
||||||
[[ "$extensions" == *"imagick"* ]] && date='20210622'
|
|
||||||
else
|
|
||||||
os="Windows"
|
|
||||||
dir='C:\\tools\\php\\ext'
|
|
||||||
[[ "$extensions" == *"imagick"* ]] && date='20210512'
|
|
||||||
fi
|
|
||||||
key="$os"-ext-"$version"-$(echo -n "$extensions-$key" | openssl dgst -sha256 | cut -d ' ' -f 2)
|
|
||||||
key="$key-$date"
|
|
||||||
echo "::set-output name=dir::$dir"
|
|
||||||
echo "::set-output name=key::$key"
|
|
||||||
1
src/lists/darwin-deps
Normal file
1
src/lists/darwin-deps
Normal file
@@ -0,0 +1 @@
|
|||||||
|
geos=geos
|
||||||
171
src/lists/darwin-extensions
Normal file
171
src/lists/darwin-extensions
Normal file
@@ -0,0 +1,171 @@
|
|||||||
|
a
|
||||||
|
a
|
||||||
|
a
|
||||||
|
amqp
|
||||||
|
b
|
||||||
|
b
|
||||||
|
b
|
||||||
|
b
|
||||||
|
b
|
||||||
|
c
|
||||||
|
c
|
||||||
|
c
|
||||||
|
c
|
||||||
|
c
|
||||||
|
c
|
||||||
|
c
|
||||||
|
c
|
||||||
|
c
|
||||||
|
c
|
||||||
|
c
|
||||||
|
c
|
||||||
|
c
|
||||||
|
c
|
||||||
|
c
|
||||||
|
c
|
||||||
|
c
|
||||||
|
couchbase
|
||||||
|
e
|
||||||
|
e
|
||||||
|
event
|
||||||
|
expect
|
||||||
|
f
|
||||||
|
f
|
||||||
|
g
|
||||||
|
g
|
||||||
|
g
|
||||||
|
g
|
||||||
|
g
|
||||||
|
g
|
||||||
|
g
|
||||||
|
gearman
|
||||||
|
gnupg
|
||||||
|
grpc
|
||||||
|
h
|
||||||
|
h
|
||||||
|
i
|
||||||
|
i
|
||||||
|
i
|
||||||
|
i
|
||||||
|
i
|
||||||
|
imagick
|
||||||
|
imap
|
||||||
|
j
|
||||||
|
j
|
||||||
|
j
|
||||||
|
k
|
||||||
|
l
|
||||||
|
l
|
||||||
|
l
|
||||||
|
l
|
||||||
|
l
|
||||||
|
l
|
||||||
|
l
|
||||||
|
l
|
||||||
|
l
|
||||||
|
lib
|
||||||
|
lib
|
||||||
|
lib
|
||||||
|
lib
|
||||||
|
lib
|
||||||
|
lib
|
||||||
|
lib
|
||||||
|
lib
|
||||||
|
lib
|
||||||
|
lib
|
||||||
|
lib
|
||||||
|
lib
|
||||||
|
lib
|
||||||
|
lib
|
||||||
|
lib
|
||||||
|
lib
|
||||||
|
lua
|
||||||
|
m
|
||||||
|
m
|
||||||
|
m
|
||||||
|
m
|
||||||
|
m
|
||||||
|
mcrypt
|
||||||
|
memcached
|
||||||
|
mongodb
|
||||||
|
n
|
||||||
|
n
|
||||||
|
n
|
||||||
|
newrelic
|
||||||
|
o
|
||||||
|
o
|
||||||
|
o
|
||||||
|
o
|
||||||
|
o
|
||||||
|
o
|
||||||
|
o
|
||||||
|
o
|
||||||
|
o
|
||||||
|
o
|
||||||
|
o
|
||||||
|
o
|
||||||
|
o
|
||||||
|
o
|
||||||
|
o
|
||||||
|
o
|
||||||
|
o
|
||||||
|
p
|
||||||
|
p
|
||||||
|
p
|
||||||
|
p
|
||||||
|
p
|
||||||
|
p
|
||||||
|
p
|
||||||
|
p
|
||||||
|
p
|
||||||
|
p
|
||||||
|
pdo_sqlsrv
|
||||||
|
pecl_http
|
||||||
|
phalcon3
|
||||||
|
phalcon4
|
||||||
|
phalcon5
|
||||||
|
psr
|
||||||
|
r
|
||||||
|
r
|
||||||
|
r
|
||||||
|
r
|
||||||
|
r
|
||||||
|
rdkafka
|
||||||
|
redis
|
||||||
|
s
|
||||||
|
s
|
||||||
|
s
|
||||||
|
snmp
|
||||||
|
sqlsrv
|
||||||
|
ssh2
|
||||||
|
swoole
|
||||||
|
t
|
||||||
|
u
|
||||||
|
u
|
||||||
|
u
|
||||||
|
u
|
||||||
|
uuid
|
||||||
|
v
|
||||||
|
v
|
||||||
|
v8js
|
||||||
|
vips
|
||||||
|
w
|
||||||
|
w
|
||||||
|
x
|
||||||
|
x
|
||||||
|
x
|
||||||
|
x
|
||||||
|
x
|
||||||
|
x
|
||||||
|
x
|
||||||
|
yaml
|
||||||
|
z
|
||||||
|
z
|
||||||
|
z
|
||||||
|
z
|
||||||
|
z
|
||||||
|
z
|
||||||
|
z
|
||||||
|
z
|
||||||
|
z
|
||||||
|
zmq
|
||||||
@@ -21,6 +21,7 @@ libasound2
|
|||||||
libasound2-data
|
libasound2-data
|
||||||
libaspell15
|
libaspell15
|
||||||
libassuan0
|
libassuan0
|
||||||
|
libatasmart4
|
||||||
libatk-bridge2.0-0
|
libatk-bridge2.0-0
|
||||||
libatk1.0-0
|
libatk1.0-0
|
||||||
libatk1.0-data
|
libatk1.0-data
|
||||||
@@ -30,7 +31,6 @@ libatspi2.0-0
|
|||||||
libattr1
|
libattr1
|
||||||
libaudit-common
|
libaudit-common
|
||||||
libaudit1
|
libaudit1
|
||||||
libauthen-sasl-perl
|
|
||||||
libavahi-client3
|
libavahi-client3
|
||||||
libavahi-common-data
|
libavahi-common-data
|
||||||
libavahi-common3
|
libavahi-common3
|
||||||
@@ -39,6 +39,14 @@ libblas-dev
|
|||||||
libblas3
|
libblas3
|
||||||
libblkid-dev
|
libblkid-dev
|
||||||
libblkid1
|
libblkid1
|
||||||
|
libblockdev-crypto2
|
||||||
|
libblockdev-fs2
|
||||||
|
libblockdev-loop2
|
||||||
|
libblockdev-part-err2
|
||||||
|
libblockdev-part2
|
||||||
|
libblockdev-swap2
|
||||||
|
libblockdev-utils2
|
||||||
|
libblockdev2
|
||||||
libboost-context1.71.0
|
libboost-context1.71.0
|
||||||
libboost-filesystem1.71.0
|
libboost-filesystem1.71.0
|
||||||
libboost-program-options1.71.0
|
libboost-program-options1.71.0
|
||||||
@@ -94,7 +102,6 @@ libctf0
|
|||||||
libcups2
|
libcups2
|
||||||
libcurl3-gnutls
|
libcurl3-gnutls
|
||||||
libcurl4
|
libcurl4
|
||||||
libdata-dump-perl
|
|
||||||
libdatrie1
|
libdatrie1
|
||||||
libdb5.3
|
libdb5.3
|
||||||
libdbus-1-3
|
libdbus-1-3
|
||||||
@@ -145,12 +152,7 @@ libffi-dev
|
|||||||
libffi7
|
libffi7
|
||||||
libfftw3-double3
|
libfftw3-double3
|
||||||
libfido2-1
|
libfido2-1
|
||||||
libfile-basedir-perl
|
|
||||||
libfile-desktopentry-perl
|
|
||||||
libfile-listing-perl
|
|
||||||
libfile-mimeinfo-perl
|
|
||||||
libfl2
|
libfl2
|
||||||
libfont-afm-perl
|
|
||||||
libfontconfig1
|
libfontconfig1
|
||||||
libfontconfig1-dev
|
libfontconfig1-dev
|
||||||
libfontenc1
|
libfontenc1
|
||||||
@@ -162,6 +164,7 @@ libfuse2
|
|||||||
libfuse3-3
|
libfuse3-3
|
||||||
libfwupd2
|
libfwupd2
|
||||||
libfwupdplugin1
|
libfwupdplugin1
|
||||||
|
libfwupdplugin5
|
||||||
libgbm-dev
|
libgbm-dev
|
||||||
libgbm1
|
libgbm1
|
||||||
libgc1c2
|
libgc1c2
|
||||||
@@ -217,22 +220,17 @@ libgtk-3-common
|
|||||||
libgudev-1.0-0
|
libgudev-1.0-0
|
||||||
libgusb2
|
libgusb2
|
||||||
libharfbuzz0b
|
libharfbuzz0b
|
||||||
|
libhashkit2
|
||||||
libhavege1
|
libhavege1
|
||||||
libhcrypto4-heimdal
|
libhcrypto4-heimdal
|
||||||
libheimbase1-heimdal
|
libheimbase1-heimdal
|
||||||
libheimntlm0-heimdal
|
libheimntlm0-heimdal
|
||||||
libhogweed5
|
libhogweed5
|
||||||
libhtml-form-perl
|
|
||||||
libhtml-format-perl
|
|
||||||
libhtml-parser-perl
|
libhtml-parser-perl
|
||||||
libhtml-tagset-perl
|
libhtml-tagset-perl
|
||||||
libhtml-template-perl
|
libhtml-template-perl
|
||||||
libhtml-tree-perl
|
|
||||||
libhttp-cookies-perl
|
|
||||||
libhttp-daemon-perl
|
|
||||||
libhttp-date-perl
|
libhttp-date-perl
|
||||||
libhttp-message-perl
|
libhttp-message-perl
|
||||||
libhttp-negotiate-perl
|
|
||||||
libhunspell-1.7-0
|
libhunspell-1.7-0
|
||||||
libhx509-5-heimdal
|
libhx509-5-heimdal
|
||||||
libice-dev
|
libice-dev
|
||||||
@@ -244,11 +242,8 @@ libidn2-0
|
|||||||
libilmbase-dev
|
libilmbase-dev
|
||||||
libilmbase24
|
libilmbase24
|
||||||
libio-html-perl
|
libio-html-perl
|
||||||
libio-socket-ssl-perl
|
|
||||||
libio-stringy-perl
|
|
||||||
libip4tc2
|
libip4tc2
|
||||||
libip6tc2
|
libip6tc2
|
||||||
libipc-system-simple-perl
|
|
||||||
libisc-export1105
|
libisc-export1105
|
||||||
libisl22
|
libisl22
|
||||||
libisns0
|
libisns0
|
||||||
@@ -258,6 +253,7 @@ libitm1
|
|||||||
libjansson4
|
libjansson4
|
||||||
libjbig-dev
|
libjbig-dev
|
||||||
libjbig0
|
libjbig0
|
||||||
|
libjcat1
|
||||||
libjemalloc2
|
libjemalloc2
|
||||||
libjpeg-dev
|
libjpeg-dev
|
||||||
libjpeg-turbo8
|
libjpeg-turbo8
|
||||||
@@ -293,7 +289,6 @@ liblldb-12
|
|||||||
libllvm10
|
libllvm10
|
||||||
libllvm11
|
libllvm11
|
||||||
libllvm12
|
libllvm12
|
||||||
libllvm9
|
|
||||||
liblmdb0
|
liblmdb0
|
||||||
liblocale-gettext-perl
|
liblocale-gettext-perl
|
||||||
liblqr-1-0
|
liblqr-1-0
|
||||||
@@ -301,13 +296,11 @@ liblqr-1-0-dev
|
|||||||
liblsan0
|
liblsan0
|
||||||
libltdl-dev
|
libltdl-dev
|
||||||
libltdl7
|
libltdl7
|
||||||
liblttng-ust-ctl4
|
|
||||||
liblttng-ust0
|
|
||||||
liblua5.2-0
|
liblua5.2-0
|
||||||
liblvm2cmd2.03
|
liblvm2cmd2.03
|
||||||
liblwp-mediatypes-perl
|
liblwp-mediatypes-perl
|
||||||
liblwp-protocol-https-perl
|
|
||||||
liblz4-1
|
liblz4-1
|
||||||
|
liblz4-dev
|
||||||
liblzma-dev
|
liblzma-dev
|
||||||
liblzma5
|
liblzma5
|
||||||
liblzo2-2
|
liblzo2-2
|
||||||
@@ -324,12 +317,14 @@ libmagickwand-6-headers
|
|||||||
libmagickwand-6.q16-6
|
libmagickwand-6.q16-6
|
||||||
libmagickwand-6.q16-dev
|
libmagickwand-6.q16-dev
|
||||||
libmagickwand-dev
|
libmagickwand-dev
|
||||||
libmailtools-perl
|
|
||||||
libmaxminddb0
|
libmaxminddb0
|
||||||
|
libmbim-glib4
|
||||||
|
libmbim-proxy
|
||||||
libmcrypt4
|
libmcrypt4
|
||||||
libmecab2
|
libmecab2
|
||||||
libmediainfo0v5
|
libmediainfo0v5
|
||||||
libmemcached11
|
libmemcached11
|
||||||
|
libmm-glib0
|
||||||
libmms0
|
libmms0
|
||||||
libmnl0
|
libmnl0
|
||||||
libmono-2.0-1
|
libmono-2.0-1
|
||||||
@@ -487,18 +482,14 @@ libmysqlclient21
|
|||||||
libncurses-dev
|
libncurses-dev
|
||||||
libncurses5
|
libncurses5
|
||||||
libncurses6
|
libncurses6
|
||||||
libncursesw5
|
|
||||||
libncursesw6
|
libncursesw6
|
||||||
libnet-dbus-perl
|
|
||||||
libnet-http-perl
|
|
||||||
libnet-smtp-ssl-perl
|
|
||||||
libnet-ssleay-perl
|
|
||||||
libnet1
|
libnet1
|
||||||
libnetfilter-conntrack3
|
libnetfilter-conntrack3
|
||||||
libnetplan0
|
libnetplan0
|
||||||
libnettle7
|
libnettle7
|
||||||
libnewt0.52
|
libnewt0.52
|
||||||
libnfnetlink0
|
libnfnetlink0
|
||||||
|
libnftables1
|
||||||
libnftnl11
|
libnftnl11
|
||||||
libnghttp2-14
|
libnghttp2-14
|
||||||
libnginx-mod-http-image-filter
|
libnginx-mod-http-image-filter
|
||||||
@@ -536,6 +527,7 @@ libpangocairo-1.0-0
|
|||||||
libpangoft2-1.0-0
|
libpangoft2-1.0-0
|
||||||
libpaper-utils
|
libpaper-utils
|
||||||
libpaper1
|
libpaper1
|
||||||
|
libparted-fs-resize0
|
||||||
libparted2
|
libparted2
|
||||||
libpcap0.8
|
libpcap0.8
|
||||||
libpci3
|
libpci3
|
||||||
@@ -546,6 +538,7 @@ libpcre2-32-0
|
|||||||
libpcre2-8-0
|
libpcre2-8-0
|
||||||
libpcre2-dev
|
libpcre2-dev
|
||||||
libpcre2-posix2
|
libpcre2-posix2
|
||||||
|
libpcre2-posix3
|
||||||
libpcre3
|
libpcre3
|
||||||
libpcre3-dev
|
libpcre3-dev
|
||||||
libpcre32-3
|
libpcre32-3
|
||||||
@@ -580,6 +573,8 @@ libpython3.8-dev
|
|||||||
libpython3.8-minimal
|
libpython3.8-minimal
|
||||||
libpython3.8-stdlib
|
libpython3.8-stdlib
|
||||||
libqdbm14
|
libqdbm14
|
||||||
|
libqmi-glib5
|
||||||
|
libqmi-proxy
|
||||||
libquadmath0
|
libquadmath0
|
||||||
librabbitmq4
|
librabbitmq4
|
||||||
libre2-5
|
libre2-5
|
||||||
@@ -621,6 +616,7 @@ libsm-dev
|
|||||||
libsm6
|
libsm6
|
||||||
libsmartcols1
|
libsmartcols1
|
||||||
libsmbios-c2
|
libsmbios-c2
|
||||||
|
libsnappy1v5
|
||||||
libsnmp-base
|
libsnmp-base
|
||||||
libsnmp35
|
libsnmp35
|
||||||
libsodium23
|
libsodium23
|
||||||
@@ -653,7 +649,6 @@ libtext-wrapi18n-perl
|
|||||||
libthai-data
|
libthai-data
|
||||||
libthai0
|
libthai0
|
||||||
libtidy5deb1
|
libtidy5deb1
|
||||||
libtie-ixhash-perl
|
|
||||||
libtiff-dev
|
libtiff-dev
|
||||||
libtiff5
|
libtiff5
|
||||||
libtiffxx5
|
libtiffxx5
|
||||||
@@ -665,7 +660,6 @@ libtinyxml2-6a
|
|||||||
libtk8.6
|
libtk8.6
|
||||||
libtommath1
|
libtommath1
|
||||||
libtool
|
libtool
|
||||||
libtry-tiny-perl
|
|
||||||
libtsan0
|
libtsan0
|
||||||
libtss2-esys0
|
libtss2-esys0
|
||||||
libtypes-serialiser-perl
|
libtypes-serialiser-perl
|
||||||
@@ -674,6 +668,7 @@ libubsan1
|
|||||||
libuchardet0
|
libuchardet0
|
||||||
libucl1
|
libucl1
|
||||||
libudev1
|
libudev1
|
||||||
|
libudisks2-0
|
||||||
libunistring2
|
libunistring2
|
||||||
libunwind8
|
libunwind8
|
||||||
liburcu6
|
liburcu6
|
||||||
@@ -683,6 +678,7 @@ libutempter0
|
|||||||
libutf8proc2
|
libutf8proc2
|
||||||
libuuid1
|
libuuid1
|
||||||
libuv1
|
libuv1
|
||||||
|
libvolume-key1
|
||||||
libvorbis0a
|
libvorbis0a
|
||||||
libvorbisfile3
|
libvorbisfile3
|
||||||
libvpx6
|
libvpx6
|
||||||
@@ -698,14 +694,11 @@ libwind0-heimdal
|
|||||||
libwmf-dev
|
libwmf-dev
|
||||||
libwmf0.2-7
|
libwmf0.2-7
|
||||||
libwrap0
|
libwrap0
|
||||||
libwww-perl
|
|
||||||
libwww-robotrules-perl
|
|
||||||
libwxbase3.0-0v5
|
libwxbase3.0-0v5
|
||||||
libwxgtk3.0-gtk3-0v5
|
libwxgtk3.0-gtk3-0v5
|
||||||
libx11-6
|
libx11-6
|
||||||
libx11-data
|
libx11-data
|
||||||
libx11-dev
|
libx11-dev
|
||||||
libx11-protocol-perl
|
|
||||||
libx11-xcb1
|
libx11-xcb1
|
||||||
libxau-dev
|
libxau-dev
|
||||||
libxau6
|
libxau6
|
||||||
@@ -716,7 +709,6 @@ libxcb-glx0
|
|||||||
libxcb-present0
|
libxcb-present0
|
||||||
libxcb-render0
|
libxcb-render0
|
||||||
libxcb-render0-dev
|
libxcb-render0-dev
|
||||||
libxcb-shape0
|
|
||||||
libxcb-shm0
|
libxcb-shm0
|
||||||
libxcb-shm0-dev
|
libxcb-shm0-dev
|
||||||
libxcb-sync1
|
libxcb-sync1
|
||||||
@@ -741,14 +733,12 @@ libxkbfile-dev
|
|||||||
libxkbfile1
|
libxkbfile1
|
||||||
libxml-libxml-perl
|
libxml-libxml-perl
|
||||||
libxml-namespacesupport-perl
|
libxml-namespacesupport-perl
|
||||||
libxml-parser-perl
|
|
||||||
libxml-sax-base-perl
|
libxml-sax-base-perl
|
||||||
libxml-sax-perl
|
libxml-sax-perl
|
||||||
libxml-twig-perl
|
|
||||||
libxml-xpathengine-perl
|
|
||||||
libxml2
|
libxml2
|
||||||
libxml2-dev
|
libxml2-dev
|
||||||
libxmlb1
|
libxmlb1
|
||||||
|
libxmlb2
|
||||||
libxmlrpc-epi0
|
libxmlrpc-epi0
|
||||||
libxmlsec1
|
libxmlsec1
|
||||||
libxmlsec1-openssl
|
libxmlsec1-openssl
|
||||||
@@ -765,11 +755,10 @@ libxt-dev
|
|||||||
libxt6
|
libxt6
|
||||||
libxtables12
|
libxtables12
|
||||||
libxtst6
|
libxtst6
|
||||||
libxv1
|
|
||||||
libxxf86dga1
|
|
||||||
libxxf86vm1
|
libxxf86vm1
|
||||||
libyajl2
|
libyajl2
|
||||||
libyaml-0-2
|
libyaml-0-2
|
||||||
|
libyaml-dev
|
||||||
libz3-4
|
libz3-4
|
||||||
libz3-dev
|
libz3-dev
|
||||||
libzen0v5
|
libzen0v5
|
||||||
|
|||||||
@@ -1,27 +1,27 @@
|
|||||||
lib32gcc1
|
lib32gcc-s1
|
||||||
lib32stdc++6
|
lib32stdc++6
|
||||||
lib32z1
|
lib32z1
|
||||||
libaccountsservice0
|
|
||||||
libacl1
|
libacl1
|
||||||
libaio1
|
libaio1
|
||||||
|
libaom3
|
||||||
libapparmor1
|
libapparmor1
|
||||||
|
libappstream4
|
||||||
libapr1
|
libapr1
|
||||||
libaprutil1
|
libaprutil1
|
||||||
libaprutil1-dbd-sqlite3
|
libaprutil1-dbd-sqlite3
|
||||||
libaprutil1-ldap
|
libaprutil1-ldap
|
||||||
libapt-inst2.0
|
libapt-pkg6.0
|
||||||
libapt-pkg5.0
|
|
||||||
libarchive13
|
libarchive13
|
||||||
libargon2-0
|
|
||||||
libargon2-1
|
libargon2-1
|
||||||
libasan4
|
libaria2-0
|
||||||
libasan5
|
libasan5
|
||||||
libasan6
|
libasan6
|
||||||
libasn1-8-heimdal
|
libasan8
|
||||||
libasound2
|
libasound2
|
||||||
libasound2-data
|
libasound2-data
|
||||||
libaspell15
|
libaspell15
|
||||||
libassuan0
|
libassuan0
|
||||||
|
libatasmart4
|
||||||
libatk-bridge2.0-0
|
libatk-bridge2.0-0
|
||||||
libatk1.0-0
|
libatk1.0-0
|
||||||
libatk1.0-data
|
libatk1.0-data
|
||||||
@@ -31,25 +31,36 @@ libatspi2.0-0
|
|||||||
libattr1
|
libattr1
|
||||||
libaudit-common
|
libaudit-common
|
||||||
libaudit1
|
libaudit1
|
||||||
libauthen-sasl-perl
|
|
||||||
libavahi-client3
|
libavahi-client3
|
||||||
libavahi-common-data
|
libavahi-common-data
|
||||||
libavahi-common3
|
libavahi-common3
|
||||||
libbind9-160
|
libavahi-glib1
|
||||||
libbinutils
|
libbinutils
|
||||||
libbison-dev
|
|
||||||
libblas-dev
|
libblas-dev
|
||||||
libblas3
|
libblas3
|
||||||
|
libblkid-dev
|
||||||
libblkid1
|
libblkid1
|
||||||
|
libblockdev-crypto2
|
||||||
|
libblockdev-fs2
|
||||||
|
libblockdev-loop2
|
||||||
|
libblockdev-part-err2
|
||||||
|
libblockdev-part2
|
||||||
|
libblockdev-swap2
|
||||||
|
libblockdev-utils2
|
||||||
|
libblockdev2
|
||||||
|
libbpf0
|
||||||
|
libbrotli-dev
|
||||||
|
libbrotli1
|
||||||
libbsd0
|
libbsd0
|
||||||
libburn4
|
libburn4
|
||||||
libbz2-1.0
|
libbz2-1.0
|
||||||
libbz2-dev
|
libbz2-dev
|
||||||
|
libc++-14-dev
|
||||||
libc++-dev
|
libc++-dev
|
||||||
libc++-helpers
|
libc++1-14
|
||||||
libc++1
|
libc++abi-14-dev
|
||||||
libc++abi-dev
|
libc++abi-dev
|
||||||
libc++abi1
|
libc++abi1-14
|
||||||
libc-ares2
|
libc-ares2
|
||||||
libc-bin
|
libc-bin
|
||||||
libc-client2007e
|
libc-client2007e
|
||||||
@@ -65,38 +76,50 @@ libcanberra0
|
|||||||
libcap-ng0
|
libcap-ng0
|
||||||
libcap2
|
libcap2
|
||||||
libcap2-bin
|
libcap2-bin
|
||||||
|
libcbor0.8
|
||||||
libcc1-0
|
libcc1-0
|
||||||
libcgi-fast-perl
|
libcgi-fast-perl
|
||||||
libcgi-pm-perl
|
libcgi-pm-perl
|
||||||
libcgroup1
|
libcgroup1
|
||||||
libcilkrts5
|
libclang-common-13-dev
|
||||||
libclang-common-9-dev
|
libclang-common-14-dev
|
||||||
libclang-cpp9
|
libclang-common-15-dev
|
||||||
libclang1-9
|
libclang-cpp13
|
||||||
|
libclang-cpp14
|
||||||
|
libclang-cpp15
|
||||||
|
libclang1-13
|
||||||
|
libclang1-14
|
||||||
|
libclang1-15
|
||||||
|
libclone-perl
|
||||||
libcolord2
|
libcolord2
|
||||||
libcom-err2
|
libcom-err2
|
||||||
libcommon-sense-perl
|
libcommon-sense-perl
|
||||||
libcroco3
|
libcrypt-dev
|
||||||
|
libcrypt1
|
||||||
libcryptsetup12
|
libcryptsetup12
|
||||||
|
libctf-nobfd0
|
||||||
|
libctf0
|
||||||
libcups2
|
libcups2
|
||||||
libcurl3-gnutls
|
libcurl3-gnutls
|
||||||
libcurl4
|
libcurl4
|
||||||
libdata-dump-perl
|
|
||||||
libdatrie1
|
libdatrie1
|
||||||
|
libdav1d5
|
||||||
libdb5.3
|
libdb5.3
|
||||||
libdbus-1-3
|
libdbus-1-3
|
||||||
libdbus-glib-1-2
|
libdbus-glib-1-2
|
||||||
libdbusmenu-glib4
|
libdbusmenu-glib4
|
||||||
libdbusmenu-gtk3-4
|
libdbusmenu-gtk3-4
|
||||||
libdconf1
|
libdconf1
|
||||||
|
libde265-0
|
||||||
libdebconfclient0
|
libdebconfclient0
|
||||||
|
libdeflate-dev
|
||||||
|
libdeflate0
|
||||||
libdevmapper-event1.02.1
|
libdevmapper-event1.02.1
|
||||||
libdevmapper1.02.1
|
libdevmapper1.02.1
|
||||||
libdjvulibre-dev
|
libdjvulibre-dev
|
||||||
libdjvulibre-text
|
libdjvulibre-text
|
||||||
libdjvulibre21
|
libdjvulibre21
|
||||||
libdns-export1100
|
libdns-export1110
|
||||||
libdns1100
|
|
||||||
libdpkg-perl
|
libdpkg-perl
|
||||||
libdrm-amdgpu1
|
libdrm-amdgpu1
|
||||||
libdrm-common
|
libdrm-common
|
||||||
@@ -104,22 +127,19 @@ libdrm-intel1
|
|||||||
libdrm-nouveau2
|
libdrm-nouveau2
|
||||||
libdrm-radeon1
|
libdrm-radeon1
|
||||||
libdrm2
|
libdrm2
|
||||||
libdumbnet1
|
|
||||||
libdw1
|
libdw1
|
||||||
libdwarf1
|
|
||||||
libeatmydata1
|
libeatmydata1
|
||||||
libedit2
|
libedit2
|
||||||
libefiboot1
|
libefiboot1
|
||||||
libefivar1
|
libefivar1
|
||||||
libelf1
|
libelf1
|
||||||
libenchant1c2a
|
libenchant-2-2
|
||||||
libencode-locale-perl
|
libencode-locale-perl
|
||||||
libepoxy0
|
libepoxy0
|
||||||
liberror-perl
|
liberror-perl
|
||||||
libestr0
|
libestr0
|
||||||
libevent-2.1-6
|
libevent-core-2.1-7
|
||||||
libevent-core-2.1-6
|
libevent-pthreads-2.1-7
|
||||||
libevent-pthreads-2.1-6
|
|
||||||
libexif-dev
|
libexif-dev
|
||||||
libexif12
|
libexif12
|
||||||
libexpat1
|
libexpat1
|
||||||
@@ -128,57 +148,62 @@ libext2fs2
|
|||||||
libfakeroot
|
libfakeroot
|
||||||
libfastjson4
|
libfastjson4
|
||||||
libfbclient2
|
libfbclient2
|
||||||
|
libfcgi-bin
|
||||||
libfcgi-perl
|
libfcgi-perl
|
||||||
|
libfcgi0ldbl
|
||||||
libfdisk1
|
libfdisk1
|
||||||
libffi-dev
|
libffi-dev
|
||||||
libffi6
|
libffi8
|
||||||
libfftw3-double3
|
libfftw3-double3
|
||||||
libfile-basedir-perl
|
libfido2-1
|
||||||
libfile-desktopentry-perl
|
libflashrom1
|
||||||
libfile-listing-perl
|
libfontconfig-dev
|
||||||
libfile-mimeinfo-perl
|
|
||||||
libfont-afm-perl
|
|
||||||
libfontconfig1
|
libfontconfig1
|
||||||
libfontconfig1-dev
|
libfontconfig1-dev
|
||||||
libfontenc1
|
libfontenc1
|
||||||
|
libfreetype-dev
|
||||||
libfreetype6
|
libfreetype6
|
||||||
libfreetype6-dev
|
libfreetype6-dev
|
||||||
libfribidi0
|
libfribidi0
|
||||||
libfuse2
|
libfsverity0
|
||||||
|
libftdi1-2
|
||||||
|
libfuse3-3
|
||||||
|
libfwupd2
|
||||||
|
libfwupdplugin5
|
||||||
libgbm-dev
|
libgbm-dev
|
||||||
libgbm1
|
libgbm1
|
||||||
libgc1c2
|
libgc1
|
||||||
|
libgcab-1.0-0
|
||||||
libgcc-10-dev
|
libgcc-10-dev
|
||||||
libgcc-7-dev
|
libgcc-11-dev
|
||||||
|
libgcc-12-dev
|
||||||
|
libgcc-13-dev
|
||||||
libgcc-9-dev
|
libgcc-9-dev
|
||||||
libgcc-s1
|
libgcc-s1
|
||||||
libgcc1
|
|
||||||
libgconf-2-4
|
libgconf-2-4
|
||||||
libgcrypt20
|
libgcrypt20
|
||||||
|
libgcrypt20-dev
|
||||||
libgd3
|
libgd3
|
||||||
libgdbm-compat4
|
libgdbm-compat4
|
||||||
libgdbm5
|
libgdbm6
|
||||||
libgdiplus
|
libgdiplus
|
||||||
libgdk-pixbuf2.0-0
|
libgdk-pixbuf-2.0-0
|
||||||
|
libgdk-pixbuf-2.0-dev
|
||||||
|
libgdk-pixbuf2.0-bin
|
||||||
libgdk-pixbuf2.0-common
|
libgdk-pixbuf2.0-common
|
||||||
libgdk-pixbuf2.0-dev
|
|
||||||
libgeoip1
|
|
||||||
libgflags2.2
|
|
||||||
libgfortran-10-dev
|
libgfortran-10-dev
|
||||||
libgfortran-7-dev
|
libgfortran-11-dev
|
||||||
|
libgfortran-12-dev
|
||||||
|
libgfortran-13-dev
|
||||||
libgfortran-9-dev
|
libgfortran-9-dev
|
||||||
libgfortran4
|
|
||||||
libgfortran5
|
libgfortran5
|
||||||
libgif7
|
libgif7
|
||||||
libgirepository-1.0-1
|
libgirepository-1.0-1
|
||||||
libgl1
|
libgl1
|
||||||
libgl1-mesa-dri
|
libgl1-mesa-dri
|
||||||
libglade2-0
|
|
||||||
libglade2.0-cil
|
|
||||||
libglapi-mesa
|
libglapi-mesa
|
||||||
libglib2.0-0
|
libglib2.0-0
|
||||||
libglib2.0-bin
|
libglib2.0-bin
|
||||||
libglib2.0-cil
|
|
||||||
libglib2.0-data
|
libglib2.0-data
|
||||||
libglib2.0-dev
|
libglib2.0-dev
|
||||||
libglib2.0-dev-bin
|
libglib2.0-dev-bin
|
||||||
@@ -190,68 +215,46 @@ libgmp10
|
|||||||
libgmpxx4ldbl
|
libgmpxx4ldbl
|
||||||
libgnutls30
|
libgnutls30
|
||||||
libgomp1
|
libgomp1
|
||||||
libgoogle-glog0v5
|
libgpg-error-dev
|
||||||
libgpg-error0
|
libgpg-error0
|
||||||
libgpgme11
|
libgpgme11
|
||||||
libgpm2
|
libgpm2
|
||||||
libgraphite2-3
|
libgraphite2-3
|
||||||
libgraphite2-dev
|
|
||||||
libgsl-dev
|
libgsl-dev
|
||||||
libgsl23
|
libgsl27
|
||||||
libgslcblas0
|
libgslcblas0
|
||||||
libgssapi-krb5-2
|
libgssapi-krb5-2
|
||||||
libgssapi3-heimdal
|
libgstreamer1.0-0
|
||||||
libgtk-3-0
|
libgtk-3-0
|
||||||
libgtk-3-common
|
libgtk-3-common
|
||||||
libgtk2.0-0
|
libgudev-1.0-0
|
||||||
libgtk2.0-cil
|
libgusb2
|
||||||
libgtk2.0-common
|
|
||||||
libharfbuzz-dev
|
|
||||||
libharfbuzz-gobject0
|
|
||||||
libharfbuzz-icu0
|
|
||||||
libharfbuzz0b
|
libharfbuzz0b
|
||||||
libhavege1
|
libhavege2
|
||||||
libhcrypto4-heimdal
|
libheif1
|
||||||
libheimbase1-heimdal
|
libhogweed6
|
||||||
libheimntlm0-heimdal
|
|
||||||
libhogweed4
|
|
||||||
libhtml-form-perl
|
|
||||||
libhtml-format-perl
|
|
||||||
libhtml-parser-perl
|
libhtml-parser-perl
|
||||||
libhtml-tagset-perl
|
libhtml-tagset-perl
|
||||||
libhtml-template-perl
|
libhtml-template-perl
|
||||||
libhtml-tree-perl
|
|
||||||
libhttp-cookies-perl
|
|
||||||
libhttp-daemon-perl
|
|
||||||
libhttp-date-perl
|
libhttp-date-perl
|
||||||
libhttp-message-perl
|
libhttp-message-perl
|
||||||
libhttp-negotiate-perl
|
libhunspell-1.7-0
|
||||||
libhunspell-1.6-0
|
libhwasan0
|
||||||
libhx509-5-heimdal
|
|
||||||
libice-dev
|
libice-dev
|
||||||
libice6
|
libice6
|
||||||
libicu-dev
|
libicu-dev
|
||||||
libicu-le-hb-dev
|
libicu70
|
||||||
libicu-le-hb0
|
|
||||||
libicu60
|
|
||||||
libicu65
|
|
||||||
libiculx60
|
|
||||||
libidn11
|
|
||||||
libidn2-0
|
libidn2-0
|
||||||
libilmbase-dev
|
libilmbase-dev
|
||||||
libilmbase12
|
libilmbase25
|
||||||
|
libinih1
|
||||||
|
libintl-perl
|
||||||
|
libintl-xs-perl
|
||||||
libio-html-perl
|
libio-html-perl
|
||||||
libio-socket-ssl-perl
|
libip4tc2
|
||||||
libip4tc0
|
libip6tc2
|
||||||
libip6tc0
|
libisc-export1105
|
||||||
libipc-system-simple-perl
|
libisl23
|
||||||
libiptc0
|
|
||||||
libirs160
|
|
||||||
libisc-export169
|
|
||||||
libisc169
|
|
||||||
libisccc160
|
|
||||||
libisccfg160
|
|
||||||
libisl19
|
|
||||||
libisns0
|
libisns0
|
||||||
libisoburn1
|
libisoburn1
|
||||||
libisofs6
|
libisofs6
|
||||||
@@ -259,6 +262,7 @@ libitm1
|
|||||||
libjansson4
|
libjansson4
|
||||||
libjbig-dev
|
libjbig-dev
|
||||||
libjbig0
|
libjbig0
|
||||||
|
libjcat1
|
||||||
libjpeg-dev
|
libjpeg-dev
|
||||||
libjpeg-turbo8
|
libjpeg-turbo8
|
||||||
libjpeg-turbo8-dev
|
libjpeg-turbo8-dev
|
||||||
@@ -266,17 +270,19 @@ libjpeg8
|
|||||||
libjpeg8-dev
|
libjpeg8-dev
|
||||||
libjq1
|
libjq1
|
||||||
libjs-jquery
|
libjs-jquery
|
||||||
libjson-c3
|
libjs-sphinxdoc
|
||||||
|
libjs-underscore
|
||||||
|
libjs-xmlextras
|
||||||
|
libjson-c5
|
||||||
libjson-glib-1.0-0
|
libjson-glib-1.0-0
|
||||||
libjson-glib-1.0-common
|
libjson-glib-1.0-common
|
||||||
libjson-perl
|
libjson-perl
|
||||||
libjson-xs-perl
|
libjson-xs-perl
|
||||||
libjte1
|
libjte2
|
||||||
libk5crypto3
|
libk5crypto3
|
||||||
libkeyutils1
|
libkeyutils1
|
||||||
libklibc
|
libklibc
|
||||||
libkmod2
|
libkmod2
|
||||||
libkrb5-26-heimdal
|
|
||||||
libkrb5-3
|
libkrb5-3
|
||||||
libkrb5support0
|
libkrb5support0
|
||||||
libksba8
|
libksba8
|
||||||
@@ -284,13 +290,14 @@ liblapack-dev
|
|||||||
liblapack3
|
liblapack3
|
||||||
liblcms2-2
|
liblcms2-2
|
||||||
liblcms2-dev
|
liblcms2-dev
|
||||||
libldap-2.4-2
|
libldap-2.5-0
|
||||||
libldap-common
|
libldap-common
|
||||||
libldb1
|
liblldb-13
|
||||||
liblldb-9
|
liblldb-14
|
||||||
libllvm10
|
liblldb-15
|
||||||
libllvm6.0
|
libllvm13
|
||||||
libllvm9
|
libllvm14
|
||||||
|
libllvm15
|
||||||
liblmdb0
|
liblmdb0
|
||||||
liblocale-gettext-perl
|
liblocale-gettext-perl
|
||||||
liblqr-1-0
|
liblqr-1-0
|
||||||
@@ -298,17 +305,11 @@ liblqr-1-0-dev
|
|||||||
liblsan0
|
liblsan0
|
||||||
libltdl-dev
|
libltdl-dev
|
||||||
libltdl7
|
libltdl7
|
||||||
liblttng-ust-ctl4
|
liblua5.3-0
|
||||||
liblttng-ust0
|
liblvm2cmd2.03
|
||||||
liblua5.2-0
|
|
||||||
liblvm2app2.2
|
|
||||||
liblvm2cmd2.02
|
|
||||||
liblwp-mediatypes-perl
|
liblwp-mediatypes-perl
|
||||||
liblwp-protocol-https-perl
|
|
||||||
liblwres160
|
|
||||||
liblxc-common
|
|
||||||
liblxc1
|
|
||||||
liblz4-1
|
liblz4-1
|
||||||
|
liblz4-dev
|
||||||
liblzma-dev
|
liblzma-dev
|
||||||
liblzma5
|
liblzma5
|
||||||
liblzo2-2
|
liblzo2-2
|
||||||
@@ -317,20 +318,26 @@ libmagic-mgc
|
|||||||
libmagic1
|
libmagic1
|
||||||
libmagickcore-6-arch-config
|
libmagickcore-6-arch-config
|
||||||
libmagickcore-6-headers
|
libmagickcore-6-headers
|
||||||
libmagickcore-6.q16-3
|
libmagickcore-6.q16-6
|
||||||
libmagickcore-6.q16-3-extra
|
libmagickcore-6.q16-6-extra
|
||||||
libmagickcore-6.q16-dev
|
libmagickcore-6.q16-dev
|
||||||
libmagickcore-dev
|
libmagickcore-dev
|
||||||
libmagickwand-6-headers
|
libmagickwand-6-headers
|
||||||
libmagickwand-6.q16-3
|
libmagickwand-6.q16-6
|
||||||
libmagickwand-6.q16-dev
|
libmagickwand-6.q16-dev
|
||||||
libmagickwand-dev
|
libmagickwand-dev
|
||||||
libmailtools-perl
|
libmaxminddb0
|
||||||
libmcrypt4
|
libmbim-glib4
|
||||||
|
libmbim-proxy
|
||||||
|
libmd0
|
||||||
|
libmecab2
|
||||||
libmediainfo0v5
|
libmediainfo0v5
|
||||||
libmemcached11
|
libmemcached11
|
||||||
|
libmm-glib0
|
||||||
libmms0
|
libmms0
|
||||||
libmnl0
|
libmnl0
|
||||||
|
libmodule-find-perl
|
||||||
|
libmodule-scandeps-perl
|
||||||
libmono-2.0-1
|
libmono-2.0-1
|
||||||
libmono-2.0-dev
|
libmono-2.0-dev
|
||||||
libmono-accessibility4.0-cil
|
libmono-accessibility4.0-cil
|
||||||
@@ -475,54 +482,57 @@ libmono-xbuild-tasks4.0-cil
|
|||||||
libmonoboehm-2.0-1
|
libmonoboehm-2.0-1
|
||||||
libmonosgen-2.0-1
|
libmonosgen-2.0-1
|
||||||
libmonosgen-2.0-dev
|
libmonosgen-2.0-dev
|
||||||
|
libmount-dev
|
||||||
libmount1
|
libmount1
|
||||||
libmpc3
|
libmpc3
|
||||||
libmpdec2
|
libmpdec3
|
||||||
libmpfr6
|
libmpfr6
|
||||||
libmpx2
|
|
||||||
libmspack0
|
libmspack0
|
||||||
libmysqlclient-dev
|
libmysqlclient-dev
|
||||||
libmysqlclient20
|
libmysqlclient21
|
||||||
libncurses5
|
libncurses-dev
|
||||||
libncurses5-dev
|
libncurses6
|
||||||
libncursesw5
|
libncursesw6
|
||||||
libnet-dbus-perl
|
|
||||||
libnet-http-perl
|
|
||||||
libnet-smtp-ssl-perl
|
|
||||||
libnet-ssleay-perl
|
|
||||||
libnet1
|
|
||||||
libnetfilter-conntrack3
|
libnetfilter-conntrack3
|
||||||
libnetplan0
|
libnetplan0
|
||||||
libnettle6
|
libnettle8
|
||||||
libnewt0.52
|
libnewt0.52
|
||||||
libnfnetlink0
|
libnfnetlink0
|
||||||
|
libnftables1
|
||||||
|
libnftnl11
|
||||||
libnghttp2-14
|
libnghttp2-14
|
||||||
libnginx-mod-http-geoip
|
libnginx-mod-http-geoip2
|
||||||
libnginx-mod-http-image-filter
|
libnginx-mod-http-image-filter
|
||||||
libnginx-mod-http-xslt-filter
|
libnginx-mod-http-xslt-filter
|
||||||
libnginx-mod-mail
|
libnginx-mod-mail
|
||||||
libnginx-mod-stream
|
libnginx-mod-stream
|
||||||
libnih1
|
libnginx-mod-stream-geoip2
|
||||||
libnl-3-200
|
libnl-3-200
|
||||||
libnl-genl-3-200
|
libnl-genl-3-200
|
||||||
libnorm1
|
libnorm1
|
||||||
libnotify4
|
|
||||||
libnpth0
|
libnpth0
|
||||||
|
libnsl-dev
|
||||||
|
libnsl2
|
||||||
libnspr4
|
libnspr4
|
||||||
libnss-systemd
|
libnss-systemd
|
||||||
libnss3
|
libnss3
|
||||||
libntfs-3g88
|
libntfs-3g89
|
||||||
libnuma1
|
libnuma1
|
||||||
libobjc-7-dev
|
libobjc-11-dev
|
||||||
libobjc4
|
libobjc4
|
||||||
libodbc1
|
libodbc2
|
||||||
|
libodbccr2
|
||||||
|
libodbcinst2
|
||||||
libogg0
|
libogg0
|
||||||
libomp-9-dev
|
libonig5
|
||||||
libomp5-9
|
|
||||||
libonig4
|
|
||||||
libopenexr-dev
|
libopenexr-dev
|
||||||
libopenexr22
|
libopenexr25
|
||||||
|
libopeniscsiusr
|
||||||
|
libopenjp2-7
|
||||||
|
libopenjp2-7-dev
|
||||||
|
libostree-1-1
|
||||||
libp11-kit0
|
libp11-kit0
|
||||||
|
libpackagekit-glib2-18
|
||||||
libpam-cap
|
libpam-cap
|
||||||
libpam-modules
|
libpam-modules
|
||||||
libpam-modules-bin
|
libpam-modules-bin
|
||||||
@@ -534,6 +544,7 @@ libpangocairo-1.0-0
|
|||||||
libpangoft2-1.0-0
|
libpangoft2-1.0-0
|
||||||
libpaper-utils
|
libpaper-utils
|
||||||
libpaper1
|
libpaper1
|
||||||
|
libparted-fs-resize0
|
||||||
libparted2
|
libparted2
|
||||||
libpcap0.8
|
libpcap0.8
|
||||||
libpci3
|
libpci3
|
||||||
@@ -543,95 +554,97 @@ libpcre2-16-0
|
|||||||
libpcre2-32-0
|
libpcre2-32-0
|
||||||
libpcre2-8-0
|
libpcre2-8-0
|
||||||
libpcre2-dev
|
libpcre2-dev
|
||||||
libpcre2-posix2
|
libpcre2-posix3
|
||||||
libpcre3
|
libpcre3
|
||||||
libpcre3-dev
|
libpcre3-dev
|
||||||
libpcre32-3
|
libpcre32-3
|
||||||
libpcrecpp0v5
|
libpcrecpp0v5
|
||||||
libperl5.26
|
libperl5.34
|
||||||
libpfm4
|
libpfm4
|
||||||
libpgm-5.2-0
|
libpgm-5.3-0
|
||||||
libpipeline1
|
libpipeline1
|
||||||
libpixman-1-0
|
libpixman-1-0
|
||||||
libpixman-1-dev
|
libpixman-1-dev
|
||||||
libplymouth4
|
libplymouth5
|
||||||
libpng-dev
|
libpng-dev
|
||||||
libpng16-16
|
libpng16-16
|
||||||
libpolkit-agent-1-0
|
libpolkit-agent-1-0
|
||||||
libpolkit-backend-1-0
|
|
||||||
libpolkit-gobject-1-0
|
libpolkit-gobject-1-0
|
||||||
libpopt0
|
libpopt0
|
||||||
libpq-dev
|
libpq-dev
|
||||||
libpq5
|
libpq5
|
||||||
libprocps6
|
libproc-processtable-perl
|
||||||
libprotobuf-c1
|
libprocps8
|
||||||
libprotobuf10
|
libprotobuf-lite23
|
||||||
libproxy1v5
|
libproxy1v5
|
||||||
libpsl5
|
libpsl5
|
||||||
libpthread-stubs0-dev
|
libpthread-stubs0-dev
|
||||||
libpython-dev
|
|
||||||
libpython-stdlib
|
|
||||||
libpython2.7
|
|
||||||
libpython2.7-dev
|
|
||||||
libpython2.7-minimal
|
|
||||||
libpython2.7-stdlib
|
|
||||||
libpython3-dev
|
libpython3-dev
|
||||||
libpython3-stdlib
|
libpython3-stdlib
|
||||||
libpython3.6
|
libpython3.10
|
||||||
libpython3.6-dev
|
libpython3.10-dev
|
||||||
libpython3.6-minimal
|
libpython3.10-minimal
|
||||||
libpython3.6-stdlib
|
libpython3.10-stdlib
|
||||||
libqdbm14
|
libqdbm14
|
||||||
|
libqmi-glib5
|
||||||
|
libqmi-proxy
|
||||||
libquadmath0
|
libquadmath0
|
||||||
librabbitmq4
|
librabbitmq4
|
||||||
libre2-4
|
libre2-9
|
||||||
libreadline-dev
|
libreadline-dev
|
||||||
libreadline5
|
libreadline8
|
||||||
libreadline7
|
librpm9
|
||||||
librecode0
|
librpmbuild9
|
||||||
librest-0.7-0
|
librpmio9
|
||||||
libroken18-heimdal
|
librpmsign9
|
||||||
librpm8
|
|
||||||
librpmbuild8
|
|
||||||
librpmio8
|
|
||||||
librpmsign8
|
|
||||||
librsvg2-2
|
librsvg2-2
|
||||||
librsvg2-common
|
librsvg2-common
|
||||||
librsvg2-dev
|
librsvg2-dev
|
||||||
librtmp1
|
librtmp1
|
||||||
libruby2.5
|
libruby3.0
|
||||||
libsasl2-2
|
libsasl2-2
|
||||||
libsasl2-modules
|
libsasl2-modules
|
||||||
libsasl2-modules-db
|
libsasl2-modules-db
|
||||||
libsctp1
|
|
||||||
libseccomp2
|
libseccomp2
|
||||||
libsecret-1-0
|
libsecret-1-0
|
||||||
libsecret-1-dev
|
libsecret-1-dev
|
||||||
libsecret-common
|
libsecret-common
|
||||||
libselinux1
|
libselinux1
|
||||||
|
libselinux1-dev
|
||||||
libsemanage-common
|
libsemanage-common
|
||||||
libsemanage1
|
libsemanage2
|
||||||
libsensors4
|
libsensors-config
|
||||||
libsepol1
|
libsensors5
|
||||||
|
libsepol-dev
|
||||||
|
libsepol2
|
||||||
libserf-1-1
|
libserf-1-1
|
||||||
|
libsgutils2-2
|
||||||
libsigsegv2
|
libsigsegv2
|
||||||
libslang2
|
libslang2
|
||||||
|
libslirp0
|
||||||
libsm-dev
|
libsm-dev
|
||||||
libsm6
|
libsm6
|
||||||
libsmartcols1
|
libsmartcols1
|
||||||
|
libsmbios-c2
|
||||||
|
libsnappy1v5
|
||||||
libsnmp-base
|
libsnmp-base
|
||||||
libsnmp30
|
libsnmp40
|
||||||
libsodium23
|
libsodium23
|
||||||
libsoup-gnome2.4-1
|
libsort-naturally-perl
|
||||||
libsoup2.4-1
|
libsoup2.4-1
|
||||||
|
libsoup2.4-common
|
||||||
libsqlite3-0
|
libsqlite3-0
|
||||||
libsqlite3-dev
|
libsqlite3-dev
|
||||||
libss2
|
libss2
|
||||||
|
libssh-4
|
||||||
|
libssh2-1
|
||||||
libssl-dev
|
libssl-dev
|
||||||
libssl1.0.0
|
|
||||||
libssl1.1
|
libssl1.1
|
||||||
|
libssl3
|
||||||
libstdc++-10-dev
|
libstdc++-10-dev
|
||||||
libstdc++-7-dev
|
libstdc++-11-dev
|
||||||
|
libstdc++-12-dev
|
||||||
|
libstdc++-13-dev
|
||||||
libstdc++-9-dev
|
libstdc++-9-dev
|
||||||
libstdc++6
|
libstdc++6
|
||||||
libstemmer0d
|
libstemmer0d
|
||||||
@@ -640,9 +653,9 @@ libsybdb5
|
|||||||
libsystemd0
|
libsystemd0
|
||||||
libtalloc2
|
libtalloc2
|
||||||
libtasn1-6
|
libtasn1-6
|
||||||
libtbb2
|
|
||||||
libtcl8.6
|
libtcl8.6
|
||||||
libtdb1
|
libtdb1
|
||||||
|
libterm-readkey-perl
|
||||||
libtevent0
|
libtevent0
|
||||||
libtext-charwidth-perl
|
libtext-charwidth-perl
|
||||||
libtext-iconv-perl
|
libtext-iconv-perl
|
||||||
@@ -651,57 +664,68 @@ libtext-wrapi18n-perl
|
|||||||
libthai-data
|
libthai-data
|
||||||
libthai0
|
libthai0
|
||||||
libtidy5deb1
|
libtidy5deb1
|
||||||
libtie-ixhash-perl
|
|
||||||
libtiff-dev
|
libtiff-dev
|
||||||
libtiff5
|
libtiff5
|
||||||
libtiff5-dev
|
|
||||||
libtiffxx5
|
libtiffxx5
|
||||||
libtimedate-perl
|
libtimedate-perl
|
||||||
libtinfo-dev
|
libtinfo-dev
|
||||||
libtinfo5
|
libtinfo6
|
||||||
libtinyxml2-6
|
libtinyxml2-9
|
||||||
|
libtirpc-common
|
||||||
|
libtirpc-dev
|
||||||
|
libtirpc3
|
||||||
libtk8.6
|
libtk8.6
|
||||||
libtommath1
|
libtommath1
|
||||||
libtool
|
libtool
|
||||||
libtry-tiny-perl
|
|
||||||
libtsan0
|
libtsan0
|
||||||
|
libtsan2
|
||||||
|
libtss2-esys-3.0.2-0
|
||||||
|
libtss2-mu0
|
||||||
|
libtss2-rc0
|
||||||
|
libtss2-sys1
|
||||||
|
libtss2-tcti-cmd0
|
||||||
|
libtss2-tcti-device0
|
||||||
|
libtss2-tcti-mssim0
|
||||||
|
libtss2-tcti-swtpm0
|
||||||
libtypes-serialiser-perl
|
libtypes-serialiser-perl
|
||||||
libu2f-udev
|
libu2f-udev
|
||||||
libubsan0
|
|
||||||
libubsan1
|
libubsan1
|
||||||
|
libuchardet0
|
||||||
libucl1
|
libucl1
|
||||||
libudev1
|
libudev1
|
||||||
|
libudisks2-0
|
||||||
libunistring2
|
libunistring2
|
||||||
|
libunwind-14
|
||||||
|
libunwind-14-dev
|
||||||
libunwind8
|
libunwind8
|
||||||
liburcu6
|
liburcu8
|
||||||
liburi-perl
|
liburi-perl
|
||||||
libusb-1.0-0
|
libusb-1.0-0
|
||||||
libutempter0
|
libutempter0
|
||||||
|
libutf8proc2
|
||||||
libuuid1
|
libuuid1
|
||||||
libuv1
|
libuv1
|
||||||
|
libvolume-key1
|
||||||
libvorbis0a
|
libvorbis0a
|
||||||
libvorbisfile3
|
libvorbisfile3
|
||||||
libvpx5
|
|
||||||
libvulkan1
|
libvulkan1
|
||||||
libwayland-client0
|
libwayland-client0
|
||||||
libwayland-cursor0
|
libwayland-cursor0
|
||||||
libwayland-egl1
|
libwayland-egl1
|
||||||
libwayland-server0
|
libwayland-server0
|
||||||
libwbclient0
|
libwbclient0
|
||||||
libwebp6
|
libwebp7
|
||||||
libwind0-heimdal
|
libwebpdemux2
|
||||||
|
libwebpmux3
|
||||||
|
libwmf-0.2-7
|
||||||
libwmf-dev
|
libwmf-dev
|
||||||
libwmf0.2-7
|
libwmflite-0.2-7
|
||||||
libwrap0
|
libwrap0
|
||||||
libwww-perl
|
|
||||||
libwww-robotrules-perl
|
|
||||||
libwxbase3.0-0v5
|
|
||||||
libwxgtk3.0-0v5
|
|
||||||
libx11-6
|
libx11-6
|
||||||
libx11-data
|
libx11-data
|
||||||
libx11-dev
|
libx11-dev
|
||||||
libx11-protocol-perl
|
|
||||||
libx11-xcb1
|
libx11-xcb1
|
||||||
|
libx265-199
|
||||||
libxau-dev
|
libxau-dev
|
||||||
libxau6
|
libxau6
|
||||||
libxaw7
|
libxaw7
|
||||||
@@ -709,12 +733,13 @@ libxcb-dri2-0
|
|||||||
libxcb-dri3-0
|
libxcb-dri3-0
|
||||||
libxcb-glx0
|
libxcb-glx0
|
||||||
libxcb-present0
|
libxcb-present0
|
||||||
|
libxcb-randr0
|
||||||
libxcb-render0
|
libxcb-render0
|
||||||
libxcb-render0-dev
|
libxcb-render0-dev
|
||||||
libxcb-shape0
|
|
||||||
libxcb-shm0
|
libxcb-shm0
|
||||||
libxcb-shm0-dev
|
libxcb-shm0-dev
|
||||||
libxcb-sync1
|
libxcb-sync1
|
||||||
|
libxcb-xfixes0
|
||||||
libxcb1
|
libxcb1
|
||||||
libxcb1-dev
|
libxcb1-dev
|
||||||
libxcomposite1
|
libxcomposite1
|
||||||
@@ -726,7 +751,6 @@ libxext-dev
|
|||||||
libxext6
|
libxext6
|
||||||
libxfixes3
|
libxfixes3
|
||||||
libxfont2
|
libxfont2
|
||||||
libxft-dev
|
|
||||||
libxft2
|
libxft2
|
||||||
libxi6
|
libxi6
|
||||||
libxinerama1
|
libxinerama1
|
||||||
@@ -735,14 +759,11 @@ libxkbfile-dev
|
|||||||
libxkbfile1
|
libxkbfile1
|
||||||
libxml-libxml-perl
|
libxml-libxml-perl
|
||||||
libxml-namespacesupport-perl
|
libxml-namespacesupport-perl
|
||||||
libxml-parser-perl
|
|
||||||
libxml-sax-base-perl
|
libxml-sax-base-perl
|
||||||
libxml-sax-perl
|
libxml-sax-perl
|
||||||
libxml-twig-perl
|
|
||||||
libxml-xpathengine-perl
|
|
||||||
libxml2
|
libxml2
|
||||||
libxml2-dev
|
libxml2-dev
|
||||||
libxmlrpc-epi0
|
libxmlb2
|
||||||
libxmlsec1
|
libxmlsec1
|
||||||
libxmlsec1-openssl
|
libxmlsec1-openssl
|
||||||
libxmu6
|
libxmu6
|
||||||
@@ -758,13 +779,18 @@ libxt-dev
|
|||||||
libxt6
|
libxt6
|
||||||
libxtables12
|
libxtables12
|
||||||
libxtst6
|
libxtst6
|
||||||
libxv1
|
|
||||||
libxxf86dga1
|
|
||||||
libxxf86vm1
|
libxxf86vm1
|
||||||
|
libxxhash0
|
||||||
libyajl2
|
libyajl2
|
||||||
libyaml-0-2
|
libyaml-0-2
|
||||||
|
libyaml-dev
|
||||||
|
libz3-4
|
||||||
|
libz3-dev
|
||||||
libzen0v5
|
libzen0v5
|
||||||
libzip4
|
libzip4
|
||||||
libzmq5
|
libzmq5
|
||||||
|
libzstd-dev
|
||||||
libzstd1
|
libzstd1
|
||||||
|
python3-launchpadlib
|
||||||
python3-oauthlib
|
python3-oauthlib
|
||||||
|
python3-wadllib
|
||||||
4
src/lists/linux-deps
Normal file
4
src/lists/linux-deps
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
geos=libgeos-dev
|
||||||
|
pdo_firebird=firebird-dev
|
||||||
|
oci8=libaio-dev
|
||||||
|
pdo_oci=libaio-dev
|
||||||
@@ -1,743 +0,0 @@
|
|||||||
lib32gcc1
|
|
||||||
lib32stdc++6
|
|
||||||
lib32z1
|
|
||||||
libaccountsservice0
|
|
||||||
libacl1
|
|
||||||
libaio1
|
|
||||||
libapparmor-perl
|
|
||||||
libapparmor1
|
|
||||||
libapr1
|
|
||||||
libaprutil1
|
|
||||||
libaprutil1-dbd-sqlite3
|
|
||||||
libaprutil1-ldap
|
|
||||||
libapt-inst2.0
|
|
||||||
libapt-pkg5.0
|
|
||||||
libarchive13
|
|
||||||
libargon2-1
|
|
||||||
libasan2
|
|
||||||
libasan5
|
|
||||||
libasn1-8-heimdal
|
|
||||||
libasound2
|
|
||||||
libasound2-data
|
|
||||||
libaspell15
|
|
||||||
libasprintf0v5
|
|
||||||
libassuan0
|
|
||||||
libatk-bridge2.0-0
|
|
||||||
libatk1.0-0
|
|
||||||
libatk1.0-data
|
|
||||||
libatm1
|
|
||||||
libatomic1
|
|
||||||
libatspi2.0-0
|
|
||||||
libattr1
|
|
||||||
libaudit-common
|
|
||||||
libaudit1
|
|
||||||
libauthen-sasl-perl
|
|
||||||
libavahi-client3
|
|
||||||
libavahi-common-data
|
|
||||||
libavahi-common3
|
|
||||||
libbind9-140
|
|
||||||
libbison-dev
|
|
||||||
libblas-common
|
|
||||||
libblas-dev
|
|
||||||
libblas3
|
|
||||||
libblkid1
|
|
||||||
libboost-filesystem1.58.0
|
|
||||||
libboost-system1.58.0
|
|
||||||
libbsd0
|
|
||||||
libburn4
|
|
||||||
libbz2-1.0
|
|
||||||
libbz2-dev
|
|
||||||
libc++-dev
|
|
||||||
libc++-helpers
|
|
||||||
libc++1
|
|
||||||
libc++abi-dev
|
|
||||||
libc++abi1
|
|
||||||
libc-ares2
|
|
||||||
libc-bin
|
|
||||||
libc-client2007e
|
|
||||||
libc-dev-bin
|
|
||||||
libc6
|
|
||||||
libc6-dev
|
|
||||||
libc6-i386
|
|
||||||
libcairo-gobject2
|
|
||||||
libcairo-script-interpreter2
|
|
||||||
libcairo2
|
|
||||||
libcairo2-dev
|
|
||||||
libcanberra0
|
|
||||||
libcap-ng0
|
|
||||||
libcap2
|
|
||||||
libcap2-bin
|
|
||||||
libcapnp-0.5.3
|
|
||||||
libcc1-0
|
|
||||||
libcdt5
|
|
||||||
libcgi-fast-perl
|
|
||||||
libcgi-pm-perl
|
|
||||||
libcgraph6
|
|
||||||
libcgroup1
|
|
||||||
libcilkrts5
|
|
||||||
libclang-common-9-dev
|
|
||||||
libclang-cpp9
|
|
||||||
libcolord2
|
|
||||||
libcomerr2
|
|
||||||
libcommon-sense-perl
|
|
||||||
libcroco3
|
|
||||||
libcryptsetup4
|
|
||||||
libcups2
|
|
||||||
libcurl3
|
|
||||||
libcurl3-gnutls
|
|
||||||
libdatrie1
|
|
||||||
libdb5.3
|
|
||||||
libdbus-1-3
|
|
||||||
libdbus-glib-1-2
|
|
||||||
libdbusmenu-glib4
|
|
||||||
libdbusmenu-gtk3-4
|
|
||||||
libdconf1
|
|
||||||
libdebconfclient0
|
|
||||||
libdevmapper-event1.02.1
|
|
||||||
libdevmapper1.02.1
|
|
||||||
libdjvulibre-dev
|
|
||||||
libdjvulibre-text
|
|
||||||
libdjvulibre21
|
|
||||||
libdns-export162
|
|
||||||
libdns162
|
|
||||||
libdpkg-perl
|
|
||||||
libdrm-amdgpu1
|
|
||||||
libdrm-common
|
|
||||||
libdrm-intel1
|
|
||||||
libdrm-nouveau2
|
|
||||||
libdrm-radeon1
|
|
||||||
libdrm2
|
|
||||||
libdumbnet1
|
|
||||||
libdw1
|
|
||||||
libeatmydata1
|
|
||||||
libedit2
|
|
||||||
libefivar0
|
|
||||||
libegl1-mesa
|
|
||||||
libelf1
|
|
||||||
libenchant1c2a
|
|
||||||
libencode-locale-perl
|
|
||||||
libepoxy0
|
|
||||||
liberror-perl
|
|
||||||
libestr0
|
|
||||||
libevent-2.0-5
|
|
||||||
libevent-core-2.0-5
|
|
||||||
libevent-pthreads-2.0-5
|
|
||||||
libexif-dev
|
|
||||||
libexif12
|
|
||||||
libexpat1
|
|
||||||
libexpat1-dev
|
|
||||||
libfakeroot
|
|
||||||
libfbclient2
|
|
||||||
libfcgi-perl
|
|
||||||
libfdisk1
|
|
||||||
libffi-dev
|
|
||||||
libffi6
|
|
||||||
libfftw3-double3
|
|
||||||
libfile-basedir-perl
|
|
||||||
libfile-desktopentry-perl
|
|
||||||
libfile-listing-perl
|
|
||||||
libfile-mimeinfo-perl
|
|
||||||
libfl-dev
|
|
||||||
libfont-afm-perl
|
|
||||||
libfontconfig1
|
|
||||||
libfontconfig1-dev
|
|
||||||
libfontenc1
|
|
||||||
libfreetype6
|
|
||||||
libfreetype6-dev
|
|
||||||
libfribidi0
|
|
||||||
libfuse2
|
|
||||||
libgbm-dev
|
|
||||||
libgbm1
|
|
||||||
libgc1c2
|
|
||||||
libgcc-5-dev
|
|
||||||
libgcc-9-dev
|
|
||||||
libgcc1
|
|
||||||
libgconf-2-4
|
|
||||||
libgcrypt20
|
|
||||||
libgd3
|
|
||||||
libgdbm3
|
|
||||||
libgdiplus
|
|
||||||
libgdk-pixbuf2.0-0
|
|
||||||
libgdk-pixbuf2.0-common
|
|
||||||
libgdk-pixbuf2.0-dev
|
|
||||||
libgeoip1
|
|
||||||
libgflags2v5
|
|
||||||
libgfortran-5-dev
|
|
||||||
libgfortran-9-dev
|
|
||||||
libgfortran3
|
|
||||||
libgfortran5
|
|
||||||
libgif7
|
|
||||||
libgirepository-1.0-1
|
|
||||||
libgl1-mesa-dri
|
|
||||||
libgl1-mesa-glx
|
|
||||||
libglade2-0
|
|
||||||
libglade2.0-cil
|
|
||||||
libglapi-mesa
|
|
||||||
libglib2.0-0
|
|
||||||
libglib2.0-bin
|
|
||||||
libglib2.0-cil
|
|
||||||
libglib2.0-data
|
|
||||||
libglib2.0-dev
|
|
||||||
libgmp-dev
|
|
||||||
libgmp10
|
|
||||||
libgmpxx4ldbl
|
|
||||||
libgnutls-openssl27
|
|
||||||
libgnutls30
|
|
||||||
libgomp1
|
|
||||||
libgoogle-glog0v5
|
|
||||||
libgpg-error0
|
|
||||||
libgpm2
|
|
||||||
libgraphite2-3
|
|
||||||
libgraphviz-dev
|
|
||||||
libgsl-dev
|
|
||||||
libgsl2
|
|
||||||
libgssapi-krb5-2
|
|
||||||
libgssapi3-heimdal
|
|
||||||
libgtk-3-0
|
|
||||||
libgtk-3-bin
|
|
||||||
libgtk-3-common
|
|
||||||
libgtk2.0-0
|
|
||||||
libgtk2.0-cil
|
|
||||||
libgtk2.0-common
|
|
||||||
libgvc6
|
|
||||||
libgvc6-plugins-gtk
|
|
||||||
libgvpr2
|
|
||||||
libharfbuzz0b
|
|
||||||
libhavege1
|
|
||||||
libhcrypto4-heimdal
|
|
||||||
libheimbase1-heimdal
|
|
||||||
libheimntlm0-heimdal
|
|
||||||
libhogweed4
|
|
||||||
libhtml-form-perl
|
|
||||||
libhtml-format-perl
|
|
||||||
libhtml-parser-perl
|
|
||||||
libhtml-tagset-perl
|
|
||||||
libhtml-template-perl
|
|
||||||
libhtml-tree-perl
|
|
||||||
libhttp-cookies-perl
|
|
||||||
libhttp-daemon-perl
|
|
||||||
libhttp-date-perl
|
|
||||||
libhttp-message-perl
|
|
||||||
libhttp-negotiate-perl
|
|
||||||
libhunspell-1.3-0
|
|
||||||
libhx509-5-heimdal
|
|
||||||
libice-dev
|
|
||||||
libice6
|
|
||||||
libicu-dev
|
|
||||||
libicu55
|
|
||||||
libicu65
|
|
||||||
libidn11
|
|
||||||
libilmbase-dev
|
|
||||||
libilmbase12
|
|
||||||
libio-html-perl
|
|
||||||
libio-socket-ssl-perl
|
|
||||||
libipc-system-simple-perl
|
|
||||||
libisc-export160
|
|
||||||
libisc160
|
|
||||||
libisccc140
|
|
||||||
libisccfg140
|
|
||||||
libisl15
|
|
||||||
libisoburn1
|
|
||||||
libisofs6
|
|
||||||
libitm1
|
|
||||||
libjasper-dev
|
|
||||||
libjasper1
|
|
||||||
libjbig-dev
|
|
||||||
libjbig0
|
|
||||||
libjpeg-dev
|
|
||||||
libjpeg-turbo8
|
|
||||||
libjpeg-turbo8-dev
|
|
||||||
libjpeg8
|
|
||||||
libjpeg8-dev
|
|
||||||
libjs-jquery
|
|
||||||
libjson-c2
|
|
||||||
libjson-glib-1.0-0
|
|
||||||
libjson-glib-1.0-common
|
|
||||||
libjson-perl
|
|
||||||
libjson-xs-perl
|
|
||||||
libjte1
|
|
||||||
libk5crypto3
|
|
||||||
libkeyutils1
|
|
||||||
libklibc
|
|
||||||
libkmod2
|
|
||||||
libkrb5-26-heimdal
|
|
||||||
libkrb5-3
|
|
||||||
libkrb5support0
|
|
||||||
libksba8
|
|
||||||
liblapack-dev
|
|
||||||
liblapack3
|
|
||||||
liblcms2-2
|
|
||||||
liblcms2-dev
|
|
||||||
libldap-2.4-2
|
|
||||||
libldb1
|
|
||||||
liblldb-9
|
|
||||||
libllvm6.0
|
|
||||||
libllvm9
|
|
||||||
liblmdb0
|
|
||||||
liblocale-gettext-perl
|
|
||||||
liblqr-1-0
|
|
||||||
liblqr-1-0-dev
|
|
||||||
liblsan0
|
|
||||||
libltdl-dev
|
|
||||||
libltdl7
|
|
||||||
liblttng-ust-ctl2
|
|
||||||
liblttng-ust0
|
|
||||||
liblua5.1-0
|
|
||||||
liblua5.2-0
|
|
||||||
liblvm2app2.2
|
|
||||||
liblvm2cmd2.02
|
|
||||||
liblwp-mediatypes-perl
|
|
||||||
liblwp-protocol-https-perl
|
|
||||||
liblwres141
|
|
||||||
liblxc1
|
|
||||||
liblz4-1
|
|
||||||
liblzma-dev
|
|
||||||
liblzma5
|
|
||||||
liblzo2-2
|
|
||||||
libmagic-dev
|
|
||||||
libmagic1
|
|
||||||
libmagickcore-6-arch-config
|
|
||||||
libmagickcore-6-headers
|
|
||||||
libmagickcore-6.q16-2
|
|
||||||
libmagickcore-6.q16-2-extra
|
|
||||||
libmagickcore-6.q16-dev
|
|
||||||
libmagickcore-dev
|
|
||||||
libmagickwand-6-headers
|
|
||||||
libmagickwand-6.q16-2
|
|
||||||
libmagickwand-6.q16-dev
|
|
||||||
libmagickwand-dev
|
|
||||||
libmailtools-perl
|
|
||||||
libmcrypt4
|
|
||||||
libmediainfo0v5
|
|
||||||
libmemcached11
|
|
||||||
libmirclient9
|
|
||||||
libmircommon7
|
|
||||||
libmircore1
|
|
||||||
libmirprotobuf3
|
|
||||||
libmms0
|
|
||||||
libmnl0
|
|
||||||
libmono-2.0-1
|
|
||||||
libmono-2.0-dev
|
|
||||||
libmono-accessibility4.0-cil
|
|
||||||
libmono-cairo4.0-cil
|
|
||||||
libmono-cecil-private-cil
|
|
||||||
libmono-cil-dev
|
|
||||||
libmono-codecontracts4.0-cil
|
|
||||||
libmono-compilerservices-symbolwriter4.0-cil
|
|
||||||
libmono-corlib4.5-cil
|
|
||||||
libmono-cscompmgd0.0-cil
|
|
||||||
libmono-csharp4.0c-cil
|
|
||||||
libmono-custommarshalers4.0-cil
|
|
||||||
libmono-data-tds4.0-cil
|
|
||||||
libmono-db2-1.0-cil
|
|
||||||
libmono-debugger-soft4.0a-cil
|
|
||||||
libmono-http4.0-cil
|
|
||||||
libmono-i18n-cjk4.0-cil
|
|
||||||
libmono-i18n-mideast4.0-cil
|
|
||||||
libmono-i18n-other4.0-cil
|
|
||||||
libmono-i18n-rare4.0-cil
|
|
||||||
libmono-i18n-west4.0-cil
|
|
||||||
libmono-i18n4.0-all
|
|
||||||
libmono-i18n4.0-cil
|
|
||||||
libmono-ldap4.0-cil
|
|
||||||
libmono-management4.0-cil
|
|
||||||
libmono-messaging-rabbitmq4.0-cil
|
|
||||||
libmono-messaging4.0-cil
|
|
||||||
libmono-microsoft-build-engine4.0-cil
|
|
||||||
libmono-microsoft-build-framework4.0-cil
|
|
||||||
libmono-microsoft-build-tasks-v4.0-4.0-cil
|
|
||||||
libmono-microsoft-build-utilities-v4.0-4.0-cil
|
|
||||||
libmono-microsoft-build4.0-cil
|
|
||||||
libmono-microsoft-csharp4.0-cil
|
|
||||||
libmono-microsoft-visualc10.0-cil
|
|
||||||
libmono-microsoft-web-infrastructure1.0-cil
|
|
||||||
libmono-oracle4.0-cil
|
|
||||||
libmono-parallel4.0-cil
|
|
||||||
libmono-peapi4.0a-cil
|
|
||||||
libmono-posix4.0-cil
|
|
||||||
libmono-profiler
|
|
||||||
libmono-rabbitmq4.0-cil
|
|
||||||
libmono-relaxng4.0-cil
|
|
||||||
libmono-security4.0-cil
|
|
||||||
libmono-sharpzip4.84-cil
|
|
||||||
libmono-simd4.0-cil
|
|
||||||
libmono-smdiagnostics0.0-cil
|
|
||||||
libmono-sqlite4.0-cil
|
|
||||||
libmono-system-componentmodel-composition4.0-cil
|
|
||||||
libmono-system-componentmodel-dataannotations4.0-cil
|
|
||||||
libmono-system-configuration-install4.0-cil
|
|
||||||
libmono-system-configuration4.0-cil
|
|
||||||
libmono-system-core4.0-cil
|
|
||||||
libmono-system-data-datasetextensions4.0-cil
|
|
||||||
libmono-system-data-entity4.0-cil
|
|
||||||
libmono-system-data-linq4.0-cil
|
|
||||||
libmono-system-data-services-client4.0-cil
|
|
||||||
libmono-system-data-services4.0-cil
|
|
||||||
libmono-system-data4.0-cil
|
|
||||||
libmono-system-deployment4.0-cil
|
|
||||||
libmono-system-design4.0-cil
|
|
||||||
libmono-system-drawing-design4.0-cil
|
|
||||||
libmono-system-drawing4.0-cil
|
|
||||||
libmono-system-dynamic4.0-cil
|
|
||||||
libmono-system-enterpriseservices4.0-cil
|
|
||||||
libmono-system-identitymodel-selectors4.0-cil
|
|
||||||
libmono-system-identitymodel4.0-cil
|
|
||||||
libmono-system-io-compression-filesystem4.0-cil
|
|
||||||
libmono-system-io-compression4.0-cil
|
|
||||||
libmono-system-json-microsoft4.0-cil
|
|
||||||
libmono-system-json4.0-cil
|
|
||||||
libmono-system-ldap-protocols4.0-cil
|
|
||||||
libmono-system-ldap4.0-cil
|
|
||||||
libmono-system-management4.0-cil
|
|
||||||
libmono-system-messaging4.0-cil
|
|
||||||
libmono-system-net-http-formatting4.0-cil
|
|
||||||
libmono-system-net-http-webrequest4.0-cil
|
|
||||||
libmono-system-net-http4.0-cil
|
|
||||||
libmono-system-net4.0-cil
|
|
||||||
libmono-system-numerics-vectors4.0-cil
|
|
||||||
libmono-system-numerics4.0-cil
|
|
||||||
libmono-system-reactive-core2.2-cil
|
|
||||||
libmono-system-reactive-debugger2.2-cil
|
|
||||||
libmono-system-reactive-experimental2.2-cil
|
|
||||||
libmono-system-reactive-interfaces2.2-cil
|
|
||||||
libmono-system-reactive-linq2.2-cil
|
|
||||||
libmono-system-reactive-observable-aliases0.0-cil
|
|
||||||
libmono-system-reactive-platformservices2.2-cil
|
|
||||||
libmono-system-reactive-providers2.2-cil
|
|
||||||
libmono-system-reactive-runtime-remoting2.2-cil
|
|
||||||
libmono-system-reactive-windows-forms2.2-cil
|
|
||||||
libmono-system-reactive-windows-threading2.2-cil
|
|
||||||
libmono-system-reflection-context4.0-cil
|
|
||||||
libmono-system-runtime-caching4.0-cil
|
|
||||||
libmono-system-runtime-durableinstancing4.0-cil
|
|
||||||
libmono-system-runtime-serialization-formatters-soap4.0-cil
|
|
||||||
libmono-system-runtime-serialization4.0-cil
|
|
||||||
libmono-system-runtime4.0-cil
|
|
||||||
libmono-system-security4.0-cil
|
|
||||||
libmono-system-servicemodel-activation4.0-cil
|
|
||||||
libmono-system-servicemodel-discovery4.0-cil
|
|
||||||
libmono-system-servicemodel-internals0.0-cil
|
|
||||||
libmono-system-servicemodel-routing4.0-cil
|
|
||||||
libmono-system-servicemodel-web4.0-cil
|
|
||||||
libmono-system-servicemodel4.0a-cil
|
|
||||||
libmono-system-serviceprocess4.0-cil
|
|
||||||
libmono-system-threading-tasks-dataflow4.0-cil
|
|
||||||
libmono-system-transactions4.0-cil
|
|
||||||
libmono-system-web-abstractions4.0-cil
|
|
||||||
libmono-system-web-applicationservices4.0-cil
|
|
||||||
libmono-system-web-dynamicdata4.0-cil
|
|
||||||
libmono-system-web-extensions-design4.0-cil
|
|
||||||
libmono-system-web-extensions4.0-cil
|
|
||||||
libmono-system-web-http-selfhost4.0-cil
|
|
||||||
libmono-system-web-http-webhost4.0-cil
|
|
||||||
libmono-system-web-http4.0-cil
|
|
||||||
libmono-system-web-mobile4.0-cil
|
|
||||||
libmono-system-web-mvc3.0-cil
|
|
||||||
libmono-system-web-razor2.0-cil
|
|
||||||
libmono-system-web-regularexpressions4.0-cil
|
|
||||||
libmono-system-web-routing4.0-cil
|
|
||||||
libmono-system-web-services4.0-cil
|
|
||||||
libmono-system-web-webpages-deployment2.0-cil
|
|
||||||
libmono-system-web-webpages-razor2.0-cil
|
|
||||||
libmono-system-web-webpages2.0-cil
|
|
||||||
libmono-system-web4.0-cil
|
|
||||||
libmono-system-windows-forms-datavisualization4.0a-cil
|
|
||||||
libmono-system-windows-forms4.0-cil
|
|
||||||
libmono-system-windows4.0-cil
|
|
||||||
libmono-system-workflow-activities4.0-cil
|
|
||||||
libmono-system-workflow-componentmodel4.0-cil
|
|
||||||
libmono-system-workflow-runtime4.0-cil
|
|
||||||
libmono-system-xaml4.0-cil
|
|
||||||
libmono-system-xml-linq4.0-cil
|
|
||||||
libmono-system-xml-serialization4.0-cil
|
|
||||||
libmono-system-xml4.0-cil
|
|
||||||
libmono-system4.0-cil
|
|
||||||
libmono-tasklets4.0-cil
|
|
||||||
libmono-webbrowser4.0-cil
|
|
||||||
libmono-webmatrix-data4.0-cil
|
|
||||||
libmono-windowsbase4.0-cil
|
|
||||||
libmono-xbuild-tasks4.0-cil
|
|
||||||
libmonoboehm-2.0-1
|
|
||||||
libmonosgen-2.0-1
|
|
||||||
libmonosgen-2.0-dev
|
|
||||||
libmount1
|
|
||||||
libmpc3
|
|
||||||
libmpdec2
|
|
||||||
libmpfr4
|
|
||||||
libmpx0
|
|
||||||
libmspack0
|
|
||||||
libmysqlclient-dev
|
|
||||||
libmysqlclient20
|
|
||||||
libncurses5
|
|
||||||
libncurses5-dev
|
|
||||||
libncursesw5
|
|
||||||
libnet-dbus-perl
|
|
||||||
libnet-http-perl
|
|
||||||
libnet-smtp-ssl-perl
|
|
||||||
libnet-ssleay-perl
|
|
||||||
libnetfilter-conntrack3
|
|
||||||
libnettle6
|
|
||||||
libnewt0.52
|
|
||||||
libnfnetlink0
|
|
||||||
libnih-dbus1
|
|
||||||
libnih1
|
|
||||||
libnorm1
|
|
||||||
libnotify4
|
|
||||||
libnpth0
|
|
||||||
libnspr4
|
|
||||||
libnss3
|
|
||||||
libnss3-nssdb
|
|
||||||
libnuma1
|
|
||||||
libobjc-5-dev
|
|
||||||
libobjc4
|
|
||||||
libodbc1
|
|
||||||
libogg0
|
|
||||||
libomp-9-dev
|
|
||||||
libomp5-9
|
|
||||||
libonig2
|
|
||||||
libopenexr-dev
|
|
||||||
libopenexr22
|
|
||||||
libp11-kit0
|
|
||||||
libpam-modules
|
|
||||||
libpam-modules-bin
|
|
||||||
libpam-runtime
|
|
||||||
libpam-systemd
|
|
||||||
libpam0g
|
|
||||||
libpango-1.0-0
|
|
||||||
libpangocairo-1.0-0
|
|
||||||
libpangoft2-1.0-0
|
|
||||||
libpaper-utils
|
|
||||||
libpaper1
|
|
||||||
libparted2
|
|
||||||
libpathplan4
|
|
||||||
libpcap0.8
|
|
||||||
libpci3
|
|
||||||
libpciaccess0
|
|
||||||
libpcre16-3
|
|
||||||
libpcre2-16-0
|
|
||||||
libpcre2-32-0
|
|
||||||
libpcre2-8-0
|
|
||||||
libpcre2-dev
|
|
||||||
libpcre2-posix2
|
|
||||||
libpcre3
|
|
||||||
libpcre3-dev
|
|
||||||
libpcre32-3
|
|
||||||
libpcrecpp0v5
|
|
||||||
libperl5.22
|
|
||||||
libpfm4
|
|
||||||
libpgm-5.2-0
|
|
||||||
libpipeline1
|
|
||||||
libpixman-1-0
|
|
||||||
libpixman-1-dev
|
|
||||||
libplymouth4
|
|
||||||
libpng12-0
|
|
||||||
libpng12-dev
|
|
||||||
libpolkit-agent-1-0
|
|
||||||
libpolkit-backend-1-0
|
|
||||||
libpolkit-gobject-1-0
|
|
||||||
libpopt0
|
|
||||||
libpq-dev
|
|
||||||
libpq5
|
|
||||||
libprocps4
|
|
||||||
libprotobuf-lite9v5
|
|
||||||
libproxy1v5
|
|
||||||
libpthread-stubs0-dev
|
|
||||||
libpython-dev
|
|
||||||
libpython-stdlib
|
|
||||||
libpython2.7
|
|
||||||
libpython2.7-dev
|
|
||||||
libpython2.7-minimal
|
|
||||||
libpython2.7-stdlib
|
|
||||||
libpython3-dev
|
|
||||||
libpython3-stdlib
|
|
||||||
libpython3.5
|
|
||||||
libpython3.5-dev
|
|
||||||
libpython3.5-minimal
|
|
||||||
libpython3.5-stdlib
|
|
||||||
libqdbm14
|
|
||||||
libquadmath0
|
|
||||||
librabbitmq4
|
|
||||||
libre2-1v5
|
|
||||||
libreadline-dev
|
|
||||||
libreadline5
|
|
||||||
libreadline6
|
|
||||||
libreadline6-dev
|
|
||||||
librecode0
|
|
||||||
librest-0.7-0
|
|
||||||
libroken18-heimdal
|
|
||||||
librpm3
|
|
||||||
librpmbuild3
|
|
||||||
librpmio3
|
|
||||||
librpmsign3
|
|
||||||
librsvg2-2
|
|
||||||
librsvg2-common
|
|
||||||
librsvg2-dev
|
|
||||||
librtmp1
|
|
||||||
libruby2.3
|
|
||||||
libsasl2-2
|
|
||||||
libsasl2-modules
|
|
||||||
libsasl2-modules-db
|
|
||||||
libsctp1
|
|
||||||
libseccomp2
|
|
||||||
libsecret-1-0
|
|
||||||
libsecret-1-dev
|
|
||||||
libsecret-common
|
|
||||||
libselinux1
|
|
||||||
libsemanage-common
|
|
||||||
libsemanage1
|
|
||||||
libsensors4
|
|
||||||
libsepol1
|
|
||||||
libserf-1-1
|
|
||||||
libsigsegv2
|
|
||||||
libslang2
|
|
||||||
libsm-dev
|
|
||||||
libsm6
|
|
||||||
libsmartcols1
|
|
||||||
libsnmp-base
|
|
||||||
libsnmp30
|
|
||||||
libsodium23
|
|
||||||
libsoup-gnome2.4-1
|
|
||||||
libsoup2.4-1
|
|
||||||
libsqlite3-0
|
|
||||||
libsqlite3-dev
|
|
||||||
libss2
|
|
||||||
libssh2-1
|
|
||||||
libssl-dev
|
|
||||||
libssl-doc
|
|
||||||
libssl1.0.0
|
|
||||||
libssl1.1
|
|
||||||
libstdc++-5-dev
|
|
||||||
libstdc++-9-dev
|
|
||||||
libstdc++6
|
|
||||||
libstemmer0d
|
|
||||||
libsvn1
|
|
||||||
libsybdb5
|
|
||||||
libsystemd0
|
|
||||||
libtalloc2
|
|
||||||
libtasn1-6
|
|
||||||
libtbb2
|
|
||||||
libtcl8.6
|
|
||||||
libtcltk-ruby
|
|
||||||
libtdb1
|
|
||||||
libtevent0
|
|
||||||
libtext-charwidth-perl
|
|
||||||
libtext-iconv-perl
|
|
||||||
libtext-unidecode-perl
|
|
||||||
libtext-wrapi18n-perl
|
|
||||||
libthai-data
|
|
||||||
libthai0
|
|
||||||
libtidy5deb1
|
|
||||||
libtie-ixhash-perl
|
|
||||||
libtiff5
|
|
||||||
libtiff5-dev
|
|
||||||
libtiffxx5
|
|
||||||
libtimedate-perl
|
|
||||||
libtinfo-dev
|
|
||||||
libtinfo5
|
|
||||||
libtinyxml2-2v5
|
|
||||||
libtk8.6
|
|
||||||
libtool
|
|
||||||
libtsan0
|
|
||||||
libtypes-serialiser-perl
|
|
||||||
libubsan0
|
|
||||||
libubsan1
|
|
||||||
libucl1
|
|
||||||
libudev1
|
|
||||||
libunwind8
|
|
||||||
liburcu4
|
|
||||||
liburi-perl
|
|
||||||
libusb-0.1-4
|
|
||||||
libusb-1.0-0
|
|
||||||
libustr-1.0-1
|
|
||||||
libutempter0
|
|
||||||
libuuid1
|
|
||||||
libvorbis0a
|
|
||||||
libvorbisfile3
|
|
||||||
libvpx3
|
|
||||||
libvulkan1
|
|
||||||
libwayland-client0
|
|
||||||
libwayland-cursor0
|
|
||||||
libwayland-egl1-mesa
|
|
||||||
libwayland-server0
|
|
||||||
libwbclient0
|
|
||||||
libwind0-heimdal
|
|
||||||
libwmf-dev
|
|
||||||
libwmf0.2-7
|
|
||||||
libwrap0
|
|
||||||
libwww-perl
|
|
||||||
libwww-robotrules-perl
|
|
||||||
libwxbase3.0-0v5
|
|
||||||
libwxgtk3.0-0v5
|
|
||||||
libx11-6
|
|
||||||
libx11-data
|
|
||||||
libx11-dev
|
|
||||||
libx11-protocol-perl
|
|
||||||
libx11-xcb1
|
|
||||||
libxau-dev
|
|
||||||
libxau6
|
|
||||||
libxaw7
|
|
||||||
libxcb-dri2-0
|
|
||||||
libxcb-dri3-0
|
|
||||||
libxcb-glx0
|
|
||||||
libxcb-present0
|
|
||||||
libxcb-render0
|
|
||||||
libxcb-render0-dev
|
|
||||||
libxcb-shape0
|
|
||||||
libxcb-shm0
|
|
||||||
libxcb-shm0-dev
|
|
||||||
libxcb-sync1
|
|
||||||
libxcb-xfixes0
|
|
||||||
libxcb1
|
|
||||||
libxcb1-dev
|
|
||||||
libxcomposite1
|
|
||||||
libxcursor1
|
|
||||||
libxdamage1
|
|
||||||
libxdmcp-dev
|
|
||||||
libxdmcp6
|
|
||||||
libxdot4
|
|
||||||
libxext-dev
|
|
||||||
libxext6
|
|
||||||
libxfixes3
|
|
||||||
libxfont1
|
|
||||||
libxft-dev
|
|
||||||
libxft2
|
|
||||||
libxi6
|
|
||||||
libxinerama1
|
|
||||||
libxkbcommon0
|
|
||||||
libxkbfile-dev
|
|
||||||
libxkbfile1
|
|
||||||
libxml-libxml-perl
|
|
||||||
libxml-namespacesupport-perl
|
|
||||||
libxml-parser-perl
|
|
||||||
libxml-sax-base-perl
|
|
||||||
libxml-sax-perl
|
|
||||||
libxml-twig-perl
|
|
||||||
libxml-xpathengine-perl
|
|
||||||
libxml2
|
|
||||||
libxml2-dev
|
|
||||||
libxmlrpc-epi0
|
|
||||||
libxmlsec1
|
|
||||||
libxmlsec1-openssl
|
|
||||||
libxmu6
|
|
||||||
libxmuu1
|
|
||||||
libxpm4
|
|
||||||
libxrandr2
|
|
||||||
libxrender-dev
|
|
||||||
libxrender1
|
|
||||||
libxshmfence1
|
|
||||||
libxslt1.1
|
|
||||||
libxss1
|
|
||||||
libxt-dev
|
|
||||||
libxt6
|
|
||||||
libxtables11
|
|
||||||
libxtst6
|
|
||||||
libxv1
|
|
||||||
libxxf86dga1
|
|
||||||
libxxf86vm1
|
|
||||||
libyaml-0-2
|
|
||||||
libz3-dev
|
|
||||||
libzen0v5
|
|
||||||
libzip4
|
|
||||||
libzmq5
|
|
||||||
libzstd1
|
|
||||||
python3-oauthlib
|
|
||||||
125
src/scripts/cache.sh
Normal file
125
src/scripts/cache.sh
Normal file
@@ -0,0 +1,125 @@
|
|||||||
|
step_log() {
|
||||||
|
message=$1
|
||||||
|
printf "\n\033[90;1m==> \033[0m\033[37;1m%s\033[0m\n" "$message"
|
||||||
|
}
|
||||||
|
|
||||||
|
add_log() {
|
||||||
|
mark=$1
|
||||||
|
shift
|
||||||
|
subjects=("$@")
|
||||||
|
for subject in "${subjects[@]}"; do
|
||||||
|
if [ "$mark" = "$tick" ]; then
|
||||||
|
printf "\033[32;1m%s \033[0m\033[34;1m%s \033[0m\033[90;1m%s\033[0m\n" "$mark" "$subject" "Added $subject"
|
||||||
|
else
|
||||||
|
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"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
get_api_version_from_repo() {
|
||||||
|
php_header="https://raw.githubusercontent.com/php/php-src/PHP-$version/main/php.h"
|
||||||
|
status_code=$(curl -sSL -o /tmp/php.h -w "%{http_code}" "$php_header")
|
||||||
|
if [ "$status_code" != "200" ]; then
|
||||||
|
curl -sSL --retry 5 "${php_header/PHP-$version/master}" | grep "PHP_API_VERSION" | cut -d' ' -f 3
|
||||||
|
else
|
||||||
|
grep "PHP_API_VERSION" /tmp/php.h | cut -d' ' -f 3
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
get_api_version() {
|
||||||
|
case $version in
|
||||||
|
5.3) echo "20090626" ;;
|
||||||
|
5.4) echo "20100525" ;;
|
||||||
|
5.5) echo "20121212" ;;
|
||||||
|
5.6) echo "20131226" ;;
|
||||||
|
7.0) echo "20151012" ;;
|
||||||
|
7.1) echo "20160303" ;;
|
||||||
|
7.2) echo "20170718" ;;
|
||||||
|
7.3) echo "20180731" ;;
|
||||||
|
7.4) echo "20190902" ;;
|
||||||
|
8.0) echo "20200930" ;;
|
||||||
|
8.1) echo "20210902" ;;
|
||||||
|
*) get_api_version_from_repo ;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
fix_ownership() {
|
||||||
|
dir=$1
|
||||||
|
sudo chown -R "$USER":"$(id -g -n)" "$(dirname "$dir")"
|
||||||
|
}
|
||||||
|
|
||||||
|
add_config() {
|
||||||
|
dependent_extension=$1
|
||||||
|
dependency_extension=$2
|
||||||
|
echo "$dependency_extension" | sudo tee "${ext_config_directory:?}/$dependent_extension/$dependency_extension" >/dev/null 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
|
extension_dir_darwin() {
|
||||||
|
api_version=$1
|
||||||
|
if [[ "${version:?}" =~ ${old_versions:?} ]]; then
|
||||||
|
echo "/opt/local/lib/php${version/./}/extensions/no-debug-non-zts-$api_version"
|
||||||
|
else
|
||||||
|
if [[ "$(sysctl -n hw.optional.arm64 2>/dev/null)" == "1" ]]; then
|
||||||
|
echo "/opt/homebrew/lib/php/pecl/$api_version"
|
||||||
|
else
|
||||||
|
echo "/usr/local/lib/php/pecl/$api_version"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
extension_dir_linux() {
|
||||||
|
api_version=$1
|
||||||
|
if [[ "${version:?}" =~ ${old_versions:?} ]]; then
|
||||||
|
echo "/usr/local/php/$version/lib/php/extensions/no-debug-non-zts-$api_version"
|
||||||
|
else
|
||||||
|
echo "/usr/lib/php/$api_version"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
data() {
|
||||||
|
old_versions="5.[3-5]"
|
||||||
|
date='20220831'
|
||||||
|
if [ "$os" = "Linux" ]; then
|
||||||
|
. /etc/lsb-release
|
||||||
|
os=$os-$DISTRIB_CODENAME
|
||||||
|
api_version=$(get_api_version)
|
||||||
|
dir=$(extension_dir_linux "$api_version")
|
||||||
|
sudo mkdir -p "$dir/deps" && fix_ownership "$dir"
|
||||||
|
elif [ "$os" = "Darwin" ]; then
|
||||||
|
api_version=$(get_api_version)
|
||||||
|
dir=$(extension_dir_darwin "$api_version")
|
||||||
|
sudo mkdir -p "$dir/deps" && fix_ownership "$dir"
|
||||||
|
else
|
||||||
|
os="Windows"
|
||||||
|
dir='C:\\tools\\php\\ext'
|
||||||
|
fi
|
||||||
|
job="${GITHUB_REPOSITORY}-${GITHUB_WORKFLOW}-${GITHUB_JOB}"
|
||||||
|
key="$(echo -n "$extensions-$key-$job" | openssl dgst -sha256 | cut -d ' ' -f 2)"
|
||||||
|
key="$os"-"$version"-"$key"-"$date"
|
||||||
|
echo "$dir" > "${RUNNER_TEMP:?}"/dir
|
||||||
|
echo "$key" > "${RUNNER_TEMP:?}"/key
|
||||||
|
echo "dir=$dir" >> "${GITHUB_OUTPUT:?}"
|
||||||
|
echo "key=$key" >> "${GITHUB_OUTPUT:?}"
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies() {
|
||||||
|
if [ "$os" = "Linux" ] || [ "$os" = "Darwin" ]; then
|
||||||
|
export tick="✓"
|
||||||
|
export cross="✗"
|
||||||
|
export ext_config_directory="/tmp/extcache"
|
||||||
|
export deps_cache_directory="${RUNNER_TOOL_CACHE}"/deps
|
||||||
|
sudo mkdir -p "$deps_cache_directory"
|
||||||
|
script_dir=$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)
|
||||||
|
# shellcheck disable=SC1090
|
||||||
|
. "$script_dir/$(echo "$os" | tr '[:upper:]' '[:lower:]').sh"
|
||||||
|
setup_dependencies "$extensions" "$(cat "${RUNNER_TEMP:?}"/dir)"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
run=$1
|
||||||
|
extensions=$2
|
||||||
|
version=$3
|
||||||
|
key=$4
|
||||||
|
os=$(uname -s)
|
||||||
|
|
||||||
|
$run
|
||||||
192
src/scripts/darwin.sh
Normal file
192
src/scripts/darwin.sh
Normal file
@@ -0,0 +1,192 @@
|
|||||||
|
fetch_brew_tap() {
|
||||||
|
tap=$1
|
||||||
|
tap_user=$(dirname "$tap")
|
||||||
|
tap_name=$(basename "$tap")
|
||||||
|
mkdir -p "$tap_dir/$tap_user"
|
||||||
|
curl -sL "https://github.com/$tap/archive/master.tar.gz" | sudo tar -xzf - -C "$tap_dir/$tap_user"
|
||||||
|
if [ -d "$tap_dir/$tap_user/$tap_name-master" ]; then
|
||||||
|
sudo mv "$tap_dir/$tap_user/$tap_name-master" "$tap_dir/$tap_user/$tap_name"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
add_brew_tap() {
|
||||||
|
tap=$1
|
||||||
|
if ! [ -d "$tap_dir/$tap" ]; then
|
||||||
|
if [ "${ImageOS:=}-${ImageVersion:=}" = "-" ]; then
|
||||||
|
brew tap --shallow "$tap" >/dev/null 2>&1
|
||||||
|
else
|
||||||
|
fetch_brew_tap "$tap" >/dev/null 2>&1
|
||||||
|
if ! [ -d "$tap_dir/$tap" ]; then
|
||||||
|
brew tap --shallow "$tap" >/dev/null 2>&1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
get_dependencies() {
|
||||||
|
extension=$1
|
||||||
|
list_deps="$(grep "$extension" "${script_dir:?}"/../lists/darwin-deps | cut -d '=' -f 2)"
|
||||||
|
formula_file="$tap_dir/$ext_tap/Formula/$extension@${version:?}.rb"
|
||||||
|
if [ -e "$formula_file" ]; then
|
||||||
|
formula_deps="$(grep "depends_on" "$formula_file" | cut -d '"' -f 2 | tr '\n' ' ')"
|
||||||
|
formula_deps_from_macos="$(grep "uses_from_macos \"lib" "$formula_file" | cut -d '"' -f 2 | tr '\n' ' ')"
|
||||||
|
fi
|
||||||
|
deps=()
|
||||||
|
[[ -n "${list_deps[*]}" ]] && deps+=("${list_deps[@]}")
|
||||||
|
[[ -n "${formula_deps[*]}" ]] && deps+=("${formula_deps[@]}")
|
||||||
|
[[ -n "${formula_deps_from_macos[*]}" ]] && deps+=("${formula_deps_from_macos[@]}")
|
||||||
|
echo "${deps[@]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
filter_extensions() {
|
||||||
|
extensions_array=("$@")
|
||||||
|
filtered_extensions=()
|
||||||
|
for ext in "${extensions_array[@]}"; do
|
||||||
|
if grep -i -q -w "$ext" "${script_dir:?}"/../lists/darwin-extensions ||
|
||||||
|
grep -q "$ext=" "${script_dir:?}"/../lists/darwin-deps; then
|
||||||
|
filtered_extensions+=("$ext")
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
echo "${filtered_extensions[@]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
setup_extensions_helper() {
|
||||||
|
dependent_extension=$1
|
||||||
|
dependency_extension=$2
|
||||||
|
extension_dir=$3
|
||||||
|
cached_extension="${deps_cache_directory:?}/$dependency_extension.so"
|
||||||
|
if ! [ -e "$cached_extension" ]; then
|
||||||
|
brew install "$dependency_extension@$version"
|
||||||
|
sudo find "$brew_cellar/$dependency_extension@${version:?}" -name "$dependency_extension.so" -exec cp {} "$cached_extension" \;
|
||||||
|
else
|
||||||
|
echo "Found $dependency_extension extension in cache"
|
||||||
|
sudo cp "$cached_extension" "$extension_dir/"
|
||||||
|
fi
|
||||||
|
add_config "$dependent_extension" "$dependency_extension"
|
||||||
|
}
|
||||||
|
|
||||||
|
setup_extensions() {
|
||||||
|
dependent_extension=$1
|
||||||
|
extension_dir=$2
|
||||||
|
shift 2
|
||||||
|
dependency_extensions_array=("$@")
|
||||||
|
sudo mkdir -p "$cache_directory"/"$extension"
|
||||||
|
echo "::group::Logs to set up extensions required for $extension"
|
||||||
|
for dependency_extension in "${dependency_extensions_array[@]}"; do
|
||||||
|
setup_extensions_helper "$dependent_extension" "$dependency_extension" "$extension_dir"
|
||||||
|
done
|
||||||
|
echo "::endgroup::"
|
||||||
|
add_log "${tick:?}" "${dependency_extensions_array[@]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
add_library_helper() {
|
||||||
|
dep_name=$1
|
||||||
|
cache_dir=$2
|
||||||
|
echo "$dep_name" | sudo tee -a "$cache_dir"/list >/dev/null 2>&1
|
||||||
|
(
|
||||||
|
cd "$brew_cellar" || exit 1
|
||||||
|
if command -v gtar >/dev/null; then
|
||||||
|
sudo gtar -I "zstd -T0" -cf "$cache_dir"/"$dep_name".tar.zst "$dep_name"
|
||||||
|
else
|
||||||
|
sudo tar -cf - "$dep_name" | zstd -T0 > "$cache_dir"/"$dep_name".tar.zst
|
||||||
|
fi
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
add_library() {
|
||||||
|
lib=$1
|
||||||
|
cache_dir=$2
|
||||||
|
brew list "$lib" &>/dev/null || brew install "$lib"
|
||||||
|
IFS=' ' read -r -a deps_array <<<"$(brew deps "$lib" | tr '\n' ' ')"
|
||||||
|
to_wait=()
|
||||||
|
for dep_name in "$lib" "${deps_array[@]}"; do
|
||||||
|
add_library_helper "$dep_name" "$cache_dir" &
|
||||||
|
to_wait+=($!)
|
||||||
|
done
|
||||||
|
wait "${to_wait[@]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
restore_library_helper() {
|
||||||
|
dep_name=$1
|
||||||
|
cache_dir=$2
|
||||||
|
if ! [ -d "$brew_cellar/$dep_name" ]; then
|
||||||
|
if command -v gtar >/dev/null; then
|
||||||
|
sudo gtar -I "zstd -d" -xf "$cache_dir"/"$dep_name".tar.zst -C "$brew_cellar"
|
||||||
|
else
|
||||||
|
sudo zstd -dq "$cache_dir"/"$dep_name".tar.zst && sudo tar -xf "$cache_dir"/"$dep_name".tar -C "$brew_cellar"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if ! [ -d "$brew_prefix/opt/$dep_name" ]; then
|
||||||
|
brew link --force --overwrite "$dep_name" 2>/dev/null || true
|
||||||
|
fi
|
||||||
|
if ! [ -d "$brew_prefix/opt/$dep_name" ]; then
|
||||||
|
sudo ln -sf "$brew_cellar"/"$dep_name"/* "$brew_prefix"/opt/"$dep_name"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
restore_library() {
|
||||||
|
cache_dir=$1
|
||||||
|
to_wait=()
|
||||||
|
while read -r dep_name; do
|
||||||
|
restore_library_helper "$dep_name" "$cache_dir" &
|
||||||
|
to_wait+=($!)
|
||||||
|
done <"$cache_dir"/list
|
||||||
|
wait "${to_wait[@]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
setup_libraries() {
|
||||||
|
extension=$1
|
||||||
|
shift 1
|
||||||
|
libraries_array=("$@")
|
||||||
|
ext_deps_dir="$deps_cache_directory/$extension"
|
||||||
|
sudo cp -a "$tap_dir"/"$ext_tap"/.github/deps/"$extension"/*.rb "$tap_dir"/"$core_tap"/Formula/ 2>/dev/null || true
|
||||||
|
sudo mkdir -p "$ext_deps_dir"
|
||||||
|
echo "::group::Logs to set up libraries required for $extension"
|
||||||
|
for lib in "${libraries_array[@]}"; do
|
||||||
|
if ! [ -e "$ext_deps_dir"/list ]; then
|
||||||
|
add_library "$lib" "$ext_deps_dir"
|
||||||
|
else
|
||||||
|
restore_library "$ext_deps_dir"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
echo "::endgroup::"
|
||||||
|
add_log "$tick" "${libraries_array[@]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
setup_dependencies() {
|
||||||
|
extensions=$1
|
||||||
|
extension_dir=$2
|
||||||
|
cache_directory=/tmp/extcache
|
||||||
|
[[ -z "${extensions// /}" ]] && return
|
||||||
|
IFS=' ' read -r -a extensions_array <<<"$(echo "$extensions" | sed -e "s/pdo[_-]//g" -Ee "s/^|,\s*/ /g")"
|
||||||
|
IFS=' ' read -r -a extensions_array <<<"$(filter_extensions "${extensions_array[@]}")"
|
||||||
|
if [[ -n "${extensions_array[*]// /}" ]]; then
|
||||||
|
add_brew_tap "$php_tap"
|
||||||
|
add_brew_tap "$ext_tap"
|
||||||
|
for extension in "${extensions_array[@]}"; do
|
||||||
|
IFS=' ' read -r -a dependency_array <<<"$(get_dependencies "$extension")"
|
||||||
|
IFS=' ' read -r -a extension_array <<<"$(echo "${dependency_array[@]}" | grep -Eo "[a-z]*@" | sed 's/@//' | tr '\n' ' ')"
|
||||||
|
IFS=' ' read -r -a libraries_array <<<"${dependency_array[@]//shivammathur*/}"
|
||||||
|
if [[ -n "${libraries_array[*]// /}" ]]; then
|
||||||
|
step_log "Setup libraries for $extension"
|
||||||
|
setup_libraries "$extension" "${libraries_array[@]}"
|
||||||
|
fi
|
||||||
|
if [[ -n "${extension_array[*]// /}" ]] && [ "${skip_dependency_extensions:=}" != "true" ]; then
|
||||||
|
step_log "Setup extensions for $extension"
|
||||||
|
setup_extensions "$extension" "$extension_dir" "${extension_array[@]}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
export HOMEBREW_CHANGE_ARCH_TO_ARM=1
|
||||||
|
export HOMEBREW_NO_INSTALL_CLEANUP=1
|
||||||
|
export HOMEBREW_NO_AUTO_UPDATE=1
|
||||||
|
export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
|
||||||
|
|
||||||
|
brew_prefix="$(brew --prefix)"
|
||||||
|
brew_cellar="$brew_prefix/Cellar"
|
||||||
|
tap_dir="$(brew --repository)"/Library/Taps
|
||||||
|
core_tap=homebrew/homebrew-core
|
||||||
|
php_tap=shivammathur/homebrew-php
|
||||||
|
ext_tap=shivammathur/homebrew-extensions
|
||||||
125
src/scripts/linux.sh
Normal file
125
src/scripts/linux.sh
Normal file
@@ -0,0 +1,125 @@
|
|||||||
|
link_apt_fast() {
|
||||||
|
if ! command -v apt-fast >/dev/null; then
|
||||||
|
sudo ln -sf /usr/bin/apt-get /usr/bin/apt-fast
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
add_sudo() {
|
||||||
|
if ! command -v sudo >/dev/null; then
|
||||||
|
apt-get install -y sudo || (apt-get update && apt-get install -y sudo)
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
fetch_package() {
|
||||||
|
if ! [ -e /tmp/Packages ]; then
|
||||||
|
. /etc/os-release
|
||||||
|
arch=$(dpkg --print-architecture)
|
||||||
|
curl -o /tmp/Packages.gz -sL "http://ppa.launchpad.net/ondrej/php/ubuntu/dists/$VERSION_CODENAME/main/binary-$arch/Packages.gz"
|
||||||
|
gzip -df /tmp/Packages.gz
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
get_dependencies() {
|
||||||
|
package=$1
|
||||||
|
prefix=$2
|
||||||
|
list_deps="$(grep "${package#*-}" "${script_dir:?}"/../lists/linux-deps | cut -d '=' -f 2 | grep -Eo "$prefix.*")"
|
||||||
|
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)"
|
||||||
|
deps=()
|
||||||
|
[[ -n "${list_deps[*]}" ]] && deps+=("${list_deps[@]}")
|
||||||
|
[[ -n "${package_deps[*]}" ]] && deps+=("${package_deps[@]}")
|
||||||
|
echo "${deps[@]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
get_package_link() {
|
||||||
|
package=$1
|
||||||
|
trunk="http://ppa.launchpad.net/ondrej/php/ubuntu"
|
||||||
|
file=$(sed -e '/Package:\s'"$package$"'/,/^\s*$/!d' /tmp/Packages | grep -Eo "^Filename.*" | cut -d' ' -f 2 | tr -d '\r')
|
||||||
|
echo "$trunk/$file"
|
||||||
|
}
|
||||||
|
|
||||||
|
setup_extensions_helper() {
|
||||||
|
dependency_extension=$1
|
||||||
|
extension_dir=$2
|
||||||
|
cached_extension="${deps_cache_directory:?}/$dependency_extension.so"
|
||||||
|
if ! [ -e "$extension_dir/$dependency_extension.so" ]; then
|
||||||
|
if ! [ -e "$cached_extension" ]; then
|
||||||
|
extension_package_link="$(get_package_link "php${version:?}-$dependency_extension")"
|
||||||
|
sudo curl -H "User-Agent: Debian APT-HTTP/GHA(ce)" -o "/tmp/$dependency_extension".deb -sL "$extension_package_link"
|
||||||
|
sudo dpkg-deb -x "/tmp/$dependency_extension".deb /
|
||||||
|
sudo cp "$extension_dir/$dependency_extension.so" "$cached_extension"
|
||||||
|
fix_ownership "$extension_dir"
|
||||||
|
else
|
||||||
|
sudo cp "$cached_extension" "$extension_dir/"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
setup_extensions() {
|
||||||
|
extension_dir=$1
|
||||||
|
IFS=' ' read -r -a dependency_extension_array <<<"$(echo "$2" | xargs -n1 | sort | uniq | xargs)"
|
||||||
|
to_wait=()
|
||||||
|
for dependency_extension in "${dependency_extension_array[@]}"; do
|
||||||
|
setup_extensions_helper "$dependency_extension" "$extension_dir" &
|
||||||
|
to_wait+=($!)
|
||||||
|
done
|
||||||
|
wait "${to_wait[@]}"
|
||||||
|
add_log "${tick:?}" "${dependency_extension_array[@]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
filter_libraries() {
|
||||||
|
libraries="$(echo "$1" | xargs -n1 | sort | uniq | xargs)"
|
||||||
|
for library in $libraries; do
|
||||||
|
if grep -i -q -w "$library" "${script_dir:?}"/../lists/"$VERSION_CODENAME"-libs; then
|
||||||
|
libraries=${libraries//$library/}
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
echo "$libraries"
|
||||||
|
}
|
||||||
|
|
||||||
|
setup_libraries() {
|
||||||
|
libraries=$1
|
||||||
|
if [[ -n "${libraries// /}" ]]; then
|
||||||
|
libraries=$(filter_libraries "$libraries")
|
||||||
|
if [[ -n "${libraries// /}" ]]; then
|
||||||
|
step_log "Setup libraries"
|
||||||
|
IFS=' ' read -r -a libraries_array <<<"$libraries"
|
||||||
|
link_apt_fast
|
||||||
|
echo "::group::Logs to set up required libraries"
|
||||||
|
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[@]}")
|
||||||
|
ec="$?"
|
||||||
|
echo "::endgroup::"
|
||||||
|
if [ "$ec" -eq "0" ]; then mark="${tick:?}"; else mark="${cross:?}"; fi
|
||||||
|
add_log "$mark" "${libraries_array[@]}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
setup_dependencies() {
|
||||||
|
extensions=$1
|
||||||
|
extension_dir=$2
|
||||||
|
[[ -z "${extensions// }" ]] && return
|
||||||
|
add_sudo
|
||||||
|
IFS=' ' read -r -a extensions_array <<<"$(echo "$extensions" | sed -e "s/pdo[_-]//g" -Ee "s/^|,\s*/ php$version-/g")"
|
||||||
|
. /etc/os-release
|
||||||
|
sudo rm -rf "${ext_config_directory:?}" || true
|
||||||
|
libraries=""
|
||||||
|
extension_packages=""
|
||||||
|
for extension_package in "${extensions_array[@]}"; do
|
||||||
|
[[ ! "$extension_package" =~ php[0-9]+\.[0-9]+-[a-zA-Z0-9]+$ ]] && continue
|
||||||
|
fetch_package
|
||||||
|
libraries="$libraries $(get_dependencies "$extension_package" "lib")"
|
||||||
|
IFS=' ' read -r -a dependency_extension_packages_array <<<"$(get_dependencies "$extension_package" "php$version-")"
|
||||||
|
extension_packages="$extension_packages ${dependency_extension_packages_array[*]}"
|
||||||
|
extension_packages="${extension_packages//php$version-common/}"
|
||||||
|
for dependency_extension in "${dependency_extension_packages_array[@]}"; do
|
||||||
|
mkdir -p "$ext_config_directory/${extension_package#*-}"
|
||||||
|
add_config "${extension_package#*-}" "$dependency_extension"
|
||||||
|
done
|
||||||
|
done
|
||||||
|
if [[ -n "${libraries// /}" ]]; then
|
||||||
|
setup_libraries "$libraries"
|
||||||
|
fi
|
||||||
|
if [[ -n "${extension_packages// /}" ]] && [ "${skip_dependency_extensions:=}" != "true" ]; then
|
||||||
|
setup_extensions "$extension_dir" "${extension_packages//php$version-/}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
91
src/utils.ts
91
src/utils.ts
@@ -1,62 +1,15 @@
|
|||||||
import * as fs from 'fs';
|
import * as fs from 'fs';
|
||||||
import * as core from '@actions/core';
|
import * as path from 'path';
|
||||||
|
import * as spu from 'setup-php/lib/utils';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function to read environment variable and return a string value.
|
* Function to get outputs
|
||||||
*
|
|
||||||
* @param property
|
|
||||||
*/
|
*/
|
||||||
export async function readEnv(property: string): Promise<string> {
|
export async function getOutput(output: string): Promise<string> {
|
||||||
const value = process.env[property];
|
return fs.readFileSync(
|
||||||
switch (value) {
|
path.join(await spu.readEnv('RUNNER_TEMP'), output),
|
||||||
case undefined:
|
'utf8'
|
||||||
return '';
|
);
|
||||||
default:
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Function to get inputs from both with and env annotations.
|
|
||||||
*
|
|
||||||
* @param name
|
|
||||||
* @param mandatory
|
|
||||||
*/
|
|
||||||
export async function getInput(
|
|
||||||
name: string,
|
|
||||||
mandatory: boolean
|
|
||||||
): Promise<string> {
|
|
||||||
const input = core.getInput(name);
|
|
||||||
const env_input = await readEnv(name);
|
|
||||||
switch (true) {
|
|
||||||
case input != '':
|
|
||||||
return input;
|
|
||||||
case input == '' && env_input != '':
|
|
||||||
return env_input;
|
|
||||||
case input == '' && env_input == '' && mandatory:
|
|
||||||
throw new Error(`Input required and not supplied: ${name}`);
|
|
||||||
default:
|
|
||||||
return '';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Function to parse PHP version.
|
|
||||||
*
|
|
||||||
* @param version
|
|
||||||
*/
|
|
||||||
export async function parseVersion(version: string): Promise<string> {
|
|
||||||
switch (version) {
|
|
||||||
case 'latest':
|
|
||||||
return '7.4';
|
|
||||||
default:
|
|
||||||
switch (true) {
|
|
||||||
case version.length > 1:
|
|
||||||
return version.slice(0, 3);
|
|
||||||
default:
|
|
||||||
return version + '.0';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -65,10 +18,26 @@ export async function parseVersion(version: string): Promise<string> {
|
|||||||
* @param extension_csv
|
* @param extension_csv
|
||||||
*/
|
*/
|
||||||
export async function filterExtensions(extension_csv: string): Promise<string> {
|
export async function filterExtensions(extension_csv: string): Promise<string> {
|
||||||
return extension_csv
|
return JSON.stringify(
|
||||||
.split(',')
|
extension_csv
|
||||||
.filter(extension => {
|
.split(',')
|
||||||
return extension.trim()[0] != ':';
|
.filter(extension => {
|
||||||
})
|
return extension.trim()[0] != ':';
|
||||||
.join(',');
|
})
|
||||||
|
.join(',')
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function to get script call
|
||||||
|
*
|
||||||
|
* @param fn
|
||||||
|
* @param args
|
||||||
|
*/
|
||||||
|
export async function scriptCall(
|
||||||
|
fn: string,
|
||||||
|
...args: string[]
|
||||||
|
): Promise<string> {
|
||||||
|
const script: string = path.join(__dirname, '../src/scripts/cache.sh');
|
||||||
|
return ['bash', script, fn, ...args].join(' ');
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
{
|
{
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
|
"declaration": true,
|
||||||
"esModuleInterop": true,
|
"esModuleInterop": true,
|
||||||
"lib": [
|
"lib": [
|
||||||
"ESNext"
|
"ESNext"
|
||||||
|
|||||||
Reference in New Issue
Block a user