mirror of
https://github.com/lovell/sharp.git
synced 2025-07-09 10:30:15 +02:00
Update package names to use 'img' npm organisation
This commit is contained in:
parent
e6942805b4
commit
f8b6cb6d5b
@ -38,7 +38,7 @@ jobs:
|
||||
- run: sudo docker exec sharp sh -c "npm test"
|
||||
- run: |
|
||||
sudo docker exec sharp sh -c "npm run package-from-local-build"
|
||||
sudo docker exec sharp sh -c "npm pkg set \"optionalDependencies.@sharpen/sharp-linux-arm64=file:./npm/linux-arm64\""
|
||||
sudo docker exec sharp sh -c "npm pkg set \"optionalDependencies.@img/sharp-linux-arm64=file:./npm/linux-arm64\""
|
||||
sudo docker exec sharp sh -c "npm run clean"
|
||||
sudo docker exec sharp sh -c "npm install --ignore-scripts"
|
||||
sudo docker exec sharp sh -c "npm test"
|
||||
@ -62,7 +62,7 @@ jobs:
|
||||
- run: sudo docker exec sharp sh -c "npm test"
|
||||
- run: |
|
||||
sudo docker exec sharp sh -c "npm run package-from-local-build"
|
||||
sudo docker exec sharp sh -c "npm pkg set \"optionalDependencies.@sharpen/sharp-linux-arm64=file:./npm/linux-arm64\""
|
||||
sudo docker exec sharp sh -c "npm pkg set \"optionalDependencies.@img/sharp-linux-arm64=file:./npm/linux-arm64\""
|
||||
sudo docker exec sharp sh -c "npm run clean"
|
||||
sudo docker exec sharp sh -c "npm install --ignore-scripts"
|
||||
sudo docker exec sharp sh -c "npm test"
|
||||
@ -79,7 +79,7 @@ jobs:
|
||||
- run: sudo docker exec sharp sh -c "npm test"
|
||||
- run: |
|
||||
sudo docker exec sharp sh -c "npm run package-from-local-build"
|
||||
sudo docker exec sharp sh -c "npm pkg set \"optionalDependencies.@sharpen/sharp-linuxmusl-arm64=file:./npm/linuxmusl-arm64\""
|
||||
sudo docker exec sharp sh -c "npm pkg set \"optionalDependencies.@img/sharp-linuxmusl-arm64=file:./npm/linuxmusl-arm64\""
|
||||
sudo docker exec sharp sh -c "npm run clean"
|
||||
sudo docker exec sharp sh -c "npm install --ignore-scripts"
|
||||
sudo docker exec sharp sh -c "npm test"
|
||||
@ -99,7 +99,7 @@ jobs:
|
||||
- run: sudo docker exec sharp sh -c "npm test"
|
||||
- run: |
|
||||
sudo docker exec sharp sh -c "npm run package-from-local-build"
|
||||
sudo docker exec sharp sh -c "npm pkg set \"optionalDependencies.@sharpen/sharp-linuxmusl-arm64=file:./npm/linuxmusl-arm64\""
|
||||
sudo docker exec sharp sh -c "npm pkg set \"optionalDependencies.@img/sharp-linuxmusl-arm64=file:./npm/linuxmusl-arm64\""
|
||||
sudo docker exec sharp sh -c "npm run clean"
|
||||
sudo docker exec sharp sh -c "npm install --ignore-scripts"
|
||||
sudo docker exec sharp sh -c "npm test"
|
||||
|
6
.github/workflows/ci.yml
vendored
6
.github/workflows/ci.yml
vendored
@ -106,7 +106,7 @@ jobs:
|
||||
- name: Test packaging
|
||||
run: |
|
||||
npm run package-from-local-build
|
||||
npm pkg set "optionalDependencies.@sharpen/sharp-${{ matrix.platform }}=file:./npm/${{ matrix.platform }}"
|
||||
npm pkg set "optionalDependencies.@img/sharp-${{ matrix.platform }}=file:./npm/${{ matrix.platform }}"
|
||||
npm run clean
|
||||
npm install --ignore-scripts
|
||||
npm test
|
||||
@ -141,7 +141,7 @@ jobs:
|
||||
npm install --build-from-source
|
||||
npx mocha --no-config --spec=test/unit/io.js
|
||||
npm run package-from-local-build
|
||||
npm pkg set "optionalDependencies.@sharpen/sharp-linux-arm=file:./npm/linux-arm"
|
||||
npm pkg set "optionalDependencies.@img/sharp-linux-arm=file:./npm/linux-arm"
|
||||
npm run clean
|
||||
npm install --ignore-scripts
|
||||
npx mocha --no-config --spec=test/unit/io.js --timeout=30000
|
||||
@ -182,7 +182,7 @@ jobs:
|
||||
- name: Test packaging
|
||||
run: |
|
||||
npm run package-from-local-build
|
||||
npm pkg set "optionalDependencies.@sharpen/sharp-${{ matrix.platform }}=file:./npm/${{ matrix.platform }}"
|
||||
npm pkg set "optionalDependencies.@img/sharp-${{ matrix.platform }}=file:./npm/${{ matrix.platform }}"
|
||||
npm run clean
|
||||
npm install --ignore-scripts
|
||||
npm test
|
||||
|
@ -106,14 +106,14 @@ must include binaries for either the linux-x64 or linux-arm64 platforms
|
||||
depending on the chosen architecture.
|
||||
|
||||
When building your deployment package on a machine that differs from the target architecture,
|
||||
you will need to install either `@sharpen/sharp-linux-x64` or `@sharpen/sharp-linux-arm64` package.
|
||||
you will need to install either `@img/sharp-linux-x64` or `@img/sharp-linux-arm64` package.
|
||||
|
||||
```sh
|
||||
npm install --force @sharpen/sharp-linux-x64
|
||||
npm install --force @img/sharp-linux-x64
|
||||
```
|
||||
|
||||
```sh
|
||||
npm install --force @sharpen/sharp-linux-arm64
|
||||
npm install --force @img/sharp-linux-arm64
|
||||
```
|
||||
|
||||
To get the best performance select the largest memory available.
|
||||
@ -165,7 +165,7 @@ custom:
|
||||
- sharp
|
||||
packagerOptions:
|
||||
scripts:
|
||||
- npm install --force @sharpen/sharp-linux-x64
|
||||
- npm install --force @img/sharp-linux-x64
|
||||
```
|
||||
|
||||
## TypeScript
|
||||
|
@ -48,7 +48,7 @@ const buildPlatformArch = () => {
|
||||
|
||||
const buildSharpLibvipsIncludeDir = () => {
|
||||
try {
|
||||
return require('@sharpen/sharp-libvips-dev/include');
|
||||
return require('@img/sharp-libvips-dev/include');
|
||||
} catch {}
|
||||
/* istanbul ignore next */
|
||||
return '';
|
||||
@ -56,7 +56,7 @@ const buildSharpLibvipsIncludeDir = () => {
|
||||
|
||||
const buildSharpLibvipsCPlusPlusDir = () => {
|
||||
try {
|
||||
return require('@sharpen/sharp-libvips-dev/cplusplus');
|
||||
return require('@img/sharp-libvips-dev/cplusplus');
|
||||
} catch {}
|
||||
/* istanbul ignore next */
|
||||
return '';
|
||||
@ -64,7 +64,7 @@ const buildSharpLibvipsCPlusPlusDir = () => {
|
||||
|
||||
const buildSharpLibvipsLibDir = () => {
|
||||
try {
|
||||
return require(`@sharpen/sharp-libvips-${buildPlatformArch()}/lib`);
|
||||
return require(`@img/sharp-libvips-${buildPlatformArch()}/lib`);
|
||||
} catch {}
|
||||
/* istanbul ignore next */
|
||||
return '';
|
||||
|
@ -18,7 +18,7 @@ try {
|
||||
} catch (errLocal) {
|
||||
try {
|
||||
// Check for runtime package
|
||||
module.exports = require(`@sharpen/sharp-${runtimePlatform}/sharp.node`);
|
||||
module.exports = require(`@img/sharp-${runtimePlatform}/sharp.node`);
|
||||
} catch (errPackage) {
|
||||
const help = ['Could not load the "sharp" module at runtime'];
|
||||
if (errLocal.code !== 'MODULE_NOT_FOUND') {
|
||||
@ -31,13 +31,13 @@ try {
|
||||
// Common error messages
|
||||
if (prebuiltPlatforms.includes(runtimePlatform)) {
|
||||
help.push('- Add an explicit dependency for the runtime platform:');
|
||||
help.push(` npm install --force @sharpen/sharp-${runtimePlatform}`);
|
||||
help.push(` npm install --force @img/sharp-${runtimePlatform}`);
|
||||
} else {
|
||||
help.push(`- The ${runtimePlatform} platform requires manual installation of libvips >= ${minimumLibvipsVersion}`);
|
||||
}
|
||||
if (isLinux && /symbol not found/i.test(errPackage)) {
|
||||
try {
|
||||
const { engines } = require(`@sharpen/sharp-libvips-${runtimePlatform}/package`);
|
||||
const { engines } = require(`@img/sharp-libvips-${runtimePlatform}/package`);
|
||||
const libcFound = `${familySync()} ${versionSync()}`;
|
||||
const libcRequires = `${engines.musl ? 'musl' : 'glibc'} ${engines.musl || engines.glibc}`;
|
||||
help.push('- Update your OS:');
|
||||
|
@ -60,10 +60,10 @@ let versions = {
|
||||
/* istanbul ignore next */
|
||||
if (!libvipsVersion.isGlobal) {
|
||||
try {
|
||||
versions = require(`@sharpen/sharp-${runtimePlatform}/versions`);
|
||||
versions = require(`@img/sharp-${runtimePlatform}/versions`);
|
||||
} catch (_) {
|
||||
try {
|
||||
versions = require(`@sharpen/sharp-libvips-${runtimePlatform}/versions`);
|
||||
versions = require(`@img/sharp-libvips-${runtimePlatform}/versions`);
|
||||
} catch (_) {}
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "@sharpen/sharp-darwin-arm64",
|
||||
"name": "@img/sharp-darwin-arm64",
|
||||
"version": "0.0.1-alpha.8",
|
||||
"description": "Prebuilt sharp for use with macOS ARM64",
|
||||
"homepage": "https://sharp.pixelplumbing.com",
|
||||
@ -14,7 +14,7 @@
|
||||
},
|
||||
"preferUnplugged": true,
|
||||
"optionalDependencies": {
|
||||
"@sharpen/sharp-libvips-darwin-arm64": "0.0.1-alpha.2"
|
||||
"@img/sharp-libvips-darwin-arm64": "0.0.1"
|
||||
},
|
||||
"files": [
|
||||
"lib"
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "@sharpen/sharp-darwin-x64",
|
||||
"name": "@img/sharp-darwin-x64",
|
||||
"version": "0.0.1-alpha.8",
|
||||
"description": "Prebuilt sharp for use with macOS x64",
|
||||
"homepage": "https://sharp.pixelplumbing.com",
|
||||
@ -14,7 +14,7 @@
|
||||
},
|
||||
"preferUnplugged": true,
|
||||
"optionalDependencies": {
|
||||
"@sharpen/sharp-libvips-darwin-x64": "0.0.1-alpha.2"
|
||||
"@img/sharp-libvips-darwin-x64": "0.0.1"
|
||||
},
|
||||
"files": [
|
||||
"lib"
|
||||
|
@ -5,7 +5,7 @@
|
||||
|
||||
// Populate contents of all packages with the current GitHub release
|
||||
|
||||
const { writeFile, copyFile, rm } = require('node:fs/promises');
|
||||
const { readFile, writeFile, appendFile, copyFile, rm } = require('node:fs/promises');
|
||||
const path = require('node:path');
|
||||
const { Readable } = require('node:stream');
|
||||
const { pipeline } = require('node:stream/promises');
|
||||
@ -60,11 +60,12 @@ workspaces.map(async platform => {
|
||||
await copyFile(path.join(__dirname, '..', 'LICENSE'), path.join(dir, 'LICENSE'));
|
||||
// Copy Windows-specific files
|
||||
if (platform.startsWith('win32-')) {
|
||||
const sharpLibvipsDir = path.join(require(`@sharpen/sharp-libvips-${platform}/lib`), '..');
|
||||
await Promise.all(
|
||||
['versions.json', 'THIRD-PARTY-NOTICES.md'].map(
|
||||
filename => copyFile(path.join(sharpLibvipsDir, filename), path.join(dir, filename))
|
||||
)
|
||||
);
|
||||
const sharpLibvipsDir = path.join(require(`@img/sharp-libvips-${platform}/lib`), '..');
|
||||
// Copy versions.json
|
||||
await copyFile(path.join(sharpLibvipsDir, 'versions.json'), path.join(dir, 'versions.json'));
|
||||
// Append third party licensing to README
|
||||
const readme = await readFile(path.join(sharpLibvipsDir, 'README.md'), { encoding: 'utf-8' });
|
||||
const thirdParty = readme.substring(readme.indexOf('\nThis software contains'));
|
||||
appendFile(path.join(dir, 'README.md'), thirdParty);
|
||||
}
|
||||
});
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "@sharpen/sharp-linux-arm",
|
||||
"name": "@img/sharp-linux-arm",
|
||||
"version": "0.0.1-alpha.8",
|
||||
"description": "Prebuilt sharp for use with Linux (glibc) ARM (32-bit)",
|
||||
"homepage": "https://sharp.pixelplumbing.com",
|
||||
@ -14,7 +14,7 @@
|
||||
},
|
||||
"preferUnplugged": true,
|
||||
"optionalDependencies": {
|
||||
"@sharpen/sharp-libvips-linux-arm": "0.0.1-alpha.2"
|
||||
"@img/sharp-libvips-linux-arm": "0.0.1"
|
||||
},
|
||||
"files": [
|
||||
"lib"
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "@sharpen/sharp-linux-arm64",
|
||||
"name": "@img/sharp-linux-arm64",
|
||||
"version": "0.0.1-alpha.8",
|
||||
"description": "Prebuilt sharp for use with Linux (glibc) ARM64",
|
||||
"homepage": "https://sharp.pixelplumbing.com",
|
||||
@ -14,7 +14,7 @@
|
||||
},
|
||||
"preferUnplugged": true,
|
||||
"optionalDependencies": {
|
||||
"@sharpen/sharp-libvips-linux-arm64": "0.0.1-alpha.2"
|
||||
"@img/sharp-libvips-linux-arm64": "0.0.1"
|
||||
},
|
||||
"files": [
|
||||
"lib"
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "@sharpen/sharp-linux-x64",
|
||||
"name": "@img/sharp-linux-x64",
|
||||
"version": "0.0.1-alpha.8",
|
||||
"description": "Prebuilt sharp for use with Linux (glibc) x64",
|
||||
"homepage": "https://sharp.pixelplumbing.com",
|
||||
@ -14,7 +14,7 @@
|
||||
},
|
||||
"preferUnplugged": true,
|
||||
"optionalDependencies": {
|
||||
"@sharpen/sharp-libvips-linux-x64": "0.0.1-alpha.2"
|
||||
"@img/sharp-libvips-linux-x64": "0.0.1"
|
||||
},
|
||||
"files": [
|
||||
"lib"
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "@sharpen/sharp-linuxmusl-arm64",
|
||||
"name": "@img/sharp-linuxmusl-arm64",
|
||||
"version": "0.0.1-alpha.8",
|
||||
"description": "Prebuilt sharp for use with Linux (musl) ARM64",
|
||||
"homepage": "https://sharp.pixelplumbing.com",
|
||||
@ -14,7 +14,7 @@
|
||||
},
|
||||
"preferUnplugged": true,
|
||||
"optionalDependencies": {
|
||||
"@sharpen/sharp-libvips-linuxmusl-arm64": "0.0.1-alpha.2"
|
||||
"@img/sharp-libvips-linuxmusl-arm64": "0.0.1"
|
||||
},
|
||||
"files": [
|
||||
"lib"
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "@sharpen/sharp-linuxmusl-x64",
|
||||
"name": "@img/sharp-linuxmusl-x64",
|
||||
"version": "0.0.1-alpha.8",
|
||||
"description": "Prebuilt sharp for use with Linux (musl) x64",
|
||||
"homepage": "https://sharp.pixelplumbing.com",
|
||||
@ -14,7 +14,7 @@
|
||||
},
|
||||
"preferUnplugged": true,
|
||||
"optionalDependencies": {
|
||||
"@sharpen/sharp-libvips-linuxmusl-x64": "0.0.1-alpha.2"
|
||||
"@img/sharp-libvips-linuxmusl-x64": "0.0.1"
|
||||
},
|
||||
"files": [
|
||||
"lib"
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "@sharpen/sharp",
|
||||
"name": "@img/sharp",
|
||||
"version": "0.0.1-alpha.8",
|
||||
"private": "true",
|
||||
"workspaces": [
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "@sharpen/sharp-win32-ia32",
|
||||
"name": "@img/sharp-win32-ia32",
|
||||
"version": "0.0.1-alpha.8",
|
||||
"description": "Prebuilt sharp for use with Windows x86 (32-bit)",
|
||||
"homepage": "https://sharp.pixelplumbing.com",
|
||||
@ -15,8 +15,7 @@
|
||||
"preferUnplugged": true,
|
||||
"files": [
|
||||
"lib",
|
||||
"versions.json",
|
||||
"THIRD-PARTY-NOTICES.md"
|
||||
"versions.json"
|
||||
],
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "@sharpen/sharp-win32-x64",
|
||||
"name": "@img/sharp-win32-x64",
|
||||
"version": "0.0.1-alpha.8",
|
||||
"description": "Prebuilt sharp for use with Windows x64",
|
||||
"homepage": "https://sharp.pixelplumbing.com",
|
||||
@ -15,8 +15,7 @@
|
||||
"preferUnplugged": true,
|
||||
"files": [
|
||||
"lib",
|
||||
"versions.json",
|
||||
"THIRD-PARTY-NOTICES.md"
|
||||
"versions.json"
|
||||
],
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
@ -24,7 +23,8 @@
|
||||
"type": "commonjs",
|
||||
"exports": {
|
||||
"./sharp.node": "./lib/sharp-win32-x64.node",
|
||||
"./package": "./package.json"
|
||||
"./package": "./package.json",
|
||||
"./versions": "./versions.json"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^18.17.0 || ^20.3.0 || >=21.0.0",
|
||||
|
38
package.json
38
package.json
@ -139,27 +139,27 @@
|
||||
"semver": "^7.5.4"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@sharpen/sharp-darwin-arm64": "0.0.1-alpha.8",
|
||||
"@sharpen/sharp-darwin-x64": "0.0.1-alpha.8",
|
||||
"@sharpen/sharp-libvips-darwin-arm64": "0.0.1-alpha.2",
|
||||
"@sharpen/sharp-libvips-darwin-x64": "0.0.1-alpha.2",
|
||||
"@sharpen/sharp-libvips-linux-arm": "0.0.1-alpha.2",
|
||||
"@sharpen/sharp-libvips-linux-arm64": "0.0.1-alpha.2",
|
||||
"@sharpen/sharp-libvips-linux-x64": "0.0.1-alpha.2",
|
||||
"@sharpen/sharp-libvips-linuxmusl-arm64": "0.0.1-alpha.2",
|
||||
"@sharpen/sharp-libvips-linuxmusl-x64": "0.0.1-alpha.2",
|
||||
"@sharpen/sharp-linux-arm": "0.0.1-alpha.8",
|
||||
"@sharpen/sharp-linux-arm64": "0.0.1-alpha.8",
|
||||
"@sharpen/sharp-linux-x64": "0.0.1-alpha.8",
|
||||
"@sharpen/sharp-linuxmusl-arm64": "0.0.1-alpha.8",
|
||||
"@sharpen/sharp-linuxmusl-x64": "0.0.1-alpha.8",
|
||||
"@sharpen/sharp-win32-ia32": "0.0.1-alpha.8",
|
||||
"@sharpen/sharp-win32-x64": "0.0.1-alpha.8"
|
||||
"@img/sharp-darwin-arm64": "0.0.1-alpha.8",
|
||||
"@img/sharp-darwin-x64": "0.0.1-alpha.8",
|
||||
"@img/sharp-libvips-darwin-arm64": "0.0.1",
|
||||
"@img/sharp-libvips-darwin-x64": "0.0.1",
|
||||
"@img/sharp-libvips-linux-arm": "0.0.1",
|
||||
"@img/sharp-libvips-linux-arm64": "0.0.1",
|
||||
"@img/sharp-libvips-linux-x64": "0.0.1",
|
||||
"@img/sharp-libvips-linuxmusl-arm64": "0.0.1",
|
||||
"@img/sharp-libvips-linuxmusl-x64": "0.0.1",
|
||||
"@img/sharp-linux-arm": "0.0.1-alpha.8",
|
||||
"@img/sharp-linux-arm64": "0.0.1-alpha.8",
|
||||
"@img/sharp-linux-x64": "0.0.1-alpha.8",
|
||||
"@img/sharp-linuxmusl-arm64": "0.0.1-alpha.8",
|
||||
"@img/sharp-linuxmusl-x64": "0.0.1-alpha.8",
|
||||
"@img/sharp-win32-ia32": "0.0.1-alpha.8",
|
||||
"@img/sharp-win32-x64": "0.0.1-alpha.8"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@sharpen/sharp-libvips-dev": "0.0.1-alpha.2",
|
||||
"@sharpen/sharp-libvips-win32-ia32": "0.0.1-alpha.2",
|
||||
"@sharpen/sharp-libvips-win32-x64": "0.0.1-alpha.2",
|
||||
"@img/sharp-libvips-dev": "0.0.1",
|
||||
"@img/sharp-libvips-win32-ia32": "0.0.1",
|
||||
"@img/sharp-libvips-win32-x64": "0.0.1",
|
||||
"@types/node": "*",
|
||||
"async": "^3.2.4",
|
||||
"cc": "^3.0.1",
|
||||
|
@ -157,8 +157,8 @@
|
||||
'OTHER_LDFLAGS': [
|
||||
# Ensure runtime linking is relative to sharp.node
|
||||
'-Wl,-rpath,\'@loader_path/../../sharp-libvips-<(platform_and_arch)/lib\'',
|
||||
'-Wl,-rpath,\'@loader_path/../../node_modules/@sharpen/sharp-libvips-<(platform_and_arch)/lib\'',
|
||||
'-Wl,-rpath,\'@loader_path/../../../node_modules/@sharpen/sharp-libvips-<(platform_and_arch)/lib\''
|
||||
'-Wl,-rpath,\'@loader_path/../../node_modules/@img/sharp-libvips-<(platform_and_arch)/lib\'',
|
||||
'-Wl,-rpath,\'@loader_path/../../../node_modules/@img/sharp-libvips-<(platform_and_arch)/lib\''
|
||||
]
|
||||
}
|
||||
}],
|
||||
@ -178,8 +178,8 @@
|
||||
'-Wl,-s',
|
||||
'-Wl,--disable-new-dtags',
|
||||
'-Wl,-rpath=\'$$ORIGIN/../../sharp-libvips-<(platform_and_arch)/lib\'',
|
||||
'-Wl,-rpath=\'$$ORIGIN/../../node_modules/@sharpen/sharp-libvips-<(platform_and_arch)/lib\'',
|
||||
'-Wl,-rpath=\'$$ORIGIN/../../../node_modules/@sharpen/sharp-libvips-<(platform_and_arch)/lib\''
|
||||
'-Wl,-rpath=\'$$ORIGIN/../../node_modules/@img/sharp-libvips-<(platform_and_arch)/lib\'',
|
||||
'-Wl,-rpath=\'$$ORIGIN/../../../node_modules/@img/sharp-libvips-<(platform_and_arch)/lib\''
|
||||
]
|
||||
}
|
||||
}]
|
||||
|
Loading…
x
Reference in New Issue
Block a user