mirror of
https://github.com/flatcar/scripts.git
synced 2025-10-03 11:32:02 +02:00
dev-util/maturin: Sync with Gentoo
It's from Gentoo commit 94aafbdbebbc1424dbde073fef7659325cf0b258. Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
This commit is contained in:
parent
4c252c779f
commit
d6f51dcce8
@ -1,8 +1,4 @@
|
|||||||
DIST maturin-1.8.3-vendor.tar.xz 15014308 BLAKE2B 5dec263a5297108e5ac36ca6a05f7013f0bcc1704e8b5038418ac7c17d979dc449e1a06ec3a5b6439498b3473e68765fd2ae69ed671b9d4d9aef8e20f325a1a9 SHA512 106e7d0a013f715e1eb8008d31518317bb7e66c3d429c2972ddcfb457afc89de4359d4d85f19fce50861eff219063e666106e284916290e6cca08e7dd6c54889
|
|
||||||
DIST maturin-1.8.3.gh.tar.gz 544455 BLAKE2B 0e0115331a8e23d03b8c96348b505d9573988c1f6fdbf9c179d6c94a0d3aa3d448727babb9d7f6e85ae2bc3f2a8201c7b32dbba894228f0035055662449b1556 SHA512 b4f79df7b099777d6068d2705fd6ca6a79c0a96c77530dcca26fef5d09b39a57feabab9d3871fc5b4760df234955329222dc29a86df5404d880140f1a3736431
|
|
||||||
DIST maturin-1.8.6-vendor.tar.xz 15035340 BLAKE2B 0bc4016f460c704ac2be81af27842f65ddec9c69ea6a7c29fc421dc863c629109e4efbb6d87825d05c8d33f9e4803eb63081726a8d6d6dcd710c78ed6bca6f9c SHA512 c338cf375640f75d9b9c0151ea9e4ba99781ec6ca065f39e27020c37ce0505c085844d16426df8597063e1f15a965575150a0b25fe6bfc3841c483a45a80a12d
|
DIST maturin-1.8.6-vendor.tar.xz 15035340 BLAKE2B 0bc4016f460c704ac2be81af27842f65ddec9c69ea6a7c29fc421dc863c629109e4efbb6d87825d05c8d33f9e4803eb63081726a8d6d6dcd710c78ed6bca6f9c SHA512 c338cf375640f75d9b9c0151ea9e4ba99781ec6ca065f39e27020c37ce0505c085844d16426df8597063e1f15a965575150a0b25fe6bfc3841c483a45a80a12d
|
||||||
DIST maturin-1.8.6.gh.tar.gz 551946 BLAKE2B 4fbeadeb25b69e99286238c9f7b7acb2bdde05242af760a0279664277334831a8cd03db49ddb3a0d528b6acd827d3ee3863e283318270ee53c3710c103c7461f SHA512 2616b3bcdbb96c77a3efeda5a24841675fded9d1299507c64905c94e57af15afa855c329f013a1e36527c2b8de4bf7acfb060e5d2828558da658a7b86d88bf8f
|
DIST maturin-1.8.6.gh.tar.gz 551946 BLAKE2B 4fbeadeb25b69e99286238c9f7b7acb2bdde05242af760a0279664277334831a8cd03db49ddb3a0d528b6acd827d3ee3863e283318270ee53c3710c103c7461f SHA512 2616b3bcdbb96c77a3efeda5a24841675fded9d1299507c64905c94e57af15afa855c329f013a1e36527c2b8de4bf7acfb060e5d2828558da658a7b86d88bf8f
|
||||||
DIST maturin-1.8.7-vendor.tar.xz 15558504 BLAKE2B d8cd7808544f19834248e05a1ad45f42947520147bb2a36d590dd9273f0c16cc90690a7a1a8a6a7ef1c64c41b5ef96616277b6c4122b76ed99c37bb68da06d44 SHA512 ad72f016d78e4deef871b4a5e05585c87d123c16caba7caf943d5b9cfdbfa36f22ea94b50c588ce09d51e3931bfbd88488d153cabd1c85afb82f944ee48a5227
|
DIST maturin-1.9.1-vendor.tar.xz 15643332 BLAKE2B cf7fd445186c5de8d09c99eb4a270b85c547bcf8dddf891c24bf0d2a75f634f49115de7841b1bce88c97391d784119e9dd4873a6a4903735443ce05958056a3b SHA512 93665219f09bb16f1abcf810bc60e3b9056521d42b03d5b42d03e76ad782f56c86f1ead5077ab260eb530ff444dd16cd7ce18df89cd72d3ac8f6dcb588f46582
|
||||||
DIST maturin-1.8.7.gh.tar.gz 553665 BLAKE2B 029c4948d0e45f1ce404fcd586a92db035e1d2b1e56c719b3a240cae79c6335a1d0ed36b5e973979da429406b07fc8292ba937c5d06f0f9140bd9d5a02874208 SHA512 5f563273d6970fbcd69b363475a393f5dc3d6c7df844c1f33e4e0f2c07228462430c22e21ab13664e664262df5fafb1f9ab6118a31fcd8cb37de0851bc670c39
|
DIST maturin-1.9.1.gh.tar.gz 559847 BLAKE2B 8c69a437f7cabb71242e231baefb02b2f5c2a2f361318ddbcab18055d13b08836f36d690eac55307c61134e15f03511ea6bf711288f10871aff9578be41e6b44 SHA512 d4bc9994966cc654f109596a65d450924bdfd84b2ad5c1ea21ab93f8861b313258e0c60edc0843eeeb7d0d975a2f64f76d784868f1ef301fbb7748fc1ce56b96
|
||||||
DIST maturin-1.9.0-vendor.tar.xz 15629684 BLAKE2B aa12b79df4073246f48377a8630532da497f66d13f2b6417cf40c2e955a7c454d91392fb49d49493928e0619fa9248720e87a7aa52c37df1a2fef5667a356a6f SHA512 ba8378e772d0dcc10a321e54b6a9f69043ba1451d7e538c9a53030328aeccce16afa877a3be27c578f6ef7040a16f7c45143764a592fffc081596f5304116074
|
|
||||||
DIST maturin-1.9.0.gh.tar.gz 559678 BLAKE2B d4b79649f8d347a0504bb0eb3a883e6747e825928cbefeaa1396cbfd4a07efe0e9830f117eb1ed8c7ff0b6cf45ebe3d6148c9929280e290b1ffe515e2514881f SHA512 509fb64bcd1c24239e0c7e1e1af8ada99f6ba59e37af70e0484d060e88860b4df69dcd8ed48c4bfd4f027d368e2eb5938501920d820377f31617218c7717acc3
|
|
||||||
|
@ -1,155 +0,0 @@
|
|||||||
# Copyright 1999-2025 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=8
|
|
||||||
|
|
||||||
DISTUTILS_USE_PEP517=setuptools
|
|
||||||
PYTHON_COMPAT=( pypy3_11 python3_{11..13} )
|
|
||||||
RUST_MIN_VER=1.75.0
|
|
||||||
inherit cargo distutils-r1 flag-o-matic shell-completion toolchain-funcs
|
|
||||||
|
|
||||||
DESCRIPTION="Build and publish crates with pyo3, rust-cpython and cffi bindings"
|
|
||||||
HOMEPAGE="https://www.maturin.rs/"
|
|
||||||
SRC_URI="
|
|
||||||
https://github.com/PyO3/maturin/archive/refs/tags/v${PV}.tar.gz
|
|
||||||
-> ${P}.gh.tar.gz
|
|
||||||
https://dev.gentoo.org/~ionen/distfiles/${P}-vendor.tar.xz
|
|
||||||
"
|
|
||||||
# ^ tarball also includes test-crates' Cargo.lock(s) crates for tests
|
|
||||||
|
|
||||||
# rustls+ring is unused, so openssl license can be skipped
|
|
||||||
LICENSE="|| ( Apache-2.0 MIT ) doc? ( CC-BY-4.0 OFL-1.1 )"
|
|
||||||
LICENSE+="
|
|
||||||
0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD Boost-1.0 MIT
|
|
||||||
MPL-2.0 Unicode-3.0 Unicode-DFS-2016
|
|
||||||
" # crates
|
|
||||||
SLOT="0"
|
|
||||||
KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86"
|
|
||||||
IUSE="doc +ssl test"
|
|
||||||
RESTRICT="!test? ( test )"
|
|
||||||
|
|
||||||
DEPEND="
|
|
||||||
app-arch/xz-utils
|
|
||||||
ssl? ( dev-libs/openssl:= )
|
|
||||||
"
|
|
||||||
RDEPEND="${DEPEND}"
|
|
||||||
BDEPEND="
|
|
||||||
virtual/pkgconfig
|
|
||||||
doc? ( app-text/mdbook )
|
|
||||||
test? (
|
|
||||||
$(python_gen_cond_dep 'dev-python/cffi[${PYTHON_USEDEP}]' 'python*')
|
|
||||||
dev-python/boltons[${PYTHON_USEDEP}]
|
|
||||||
dev-python/virtualenv[${PYTHON_USEDEP}]
|
|
||||||
dev-vcs/git
|
|
||||||
elibc_musl? ( dev-util/patchelf )
|
|
||||||
)
|
|
||||||
"
|
|
||||||
|
|
||||||
QA_FLAGS_IGNORED="usr/bin/${PN}"
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
distutils-r1_src_prepare
|
|
||||||
|
|
||||||
# we build the Rust executable (just once) via cargo_src_compile
|
|
||||||
sed -i -e '/setuptools_rust/d' -e '/rust_extensions/d' setup.py || die
|
|
||||||
|
|
||||||
if use test; then
|
|
||||||
# used to prevent use of network during tests, and silence pip
|
|
||||||
# if it finds unrelated issues with system packages (bug #913613)
|
|
||||||
cat > "${T}"/pip.conf <<-EOF || die
|
|
||||||
[global]
|
|
||||||
quiet = 2
|
|
||||||
|
|
||||||
[install]
|
|
||||||
no-index = yes
|
|
||||||
no-dependencies = yes
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# uv does not work easily w/ network-sandbox, force virtualenv
|
|
||||||
sed -i 's/"uv"/"uv-not-found"/' tests/common/mod.rs || die
|
|
||||||
|
|
||||||
# increase timeouts for tests (bug #950332)
|
|
||||||
sed -i '/^#\[timeout/s/secs(60)/secs(300)/' tests/run.rs || die
|
|
||||||
|
|
||||||
# used by *git_sdist_generator tests
|
|
||||||
git init -q || die
|
|
||||||
git config --global user.email "larry@gentoo.org" || die
|
|
||||||
git config --global user.name "Larry the Cow" || die
|
|
||||||
git add . || die
|
|
||||||
git commit -qm init || die
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_configure() {
|
|
||||||
export OPENSSL_NO_VENDOR=1
|
|
||||||
|
|
||||||
# https://github.com/rust-lang/stacker/issues/79
|
|
||||||
use s390 && ! is-flagq '-march=*' &&
|
|
||||||
append-cflags $(test-flags-CC -march=z10)
|
|
||||||
|
|
||||||
local myfeatures=(
|
|
||||||
# like release.yml + native-tls for better platform support than rustls
|
|
||||||
full
|
|
||||||
password-storage
|
|
||||||
$(usev ssl native-tls)
|
|
||||||
)
|
|
||||||
|
|
||||||
cargo_src_configure --no-default-features
|
|
||||||
}
|
|
||||||
|
|
||||||
python_compile_all() {
|
|
||||||
cargo_src_compile
|
|
||||||
|
|
||||||
use !doc || mdbook build -d html guide || die
|
|
||||||
|
|
||||||
if ! tc-is-cross-compiler; then
|
|
||||||
local maturin=$(cargo_target_dir)/maturin
|
|
||||||
"${maturin}" completions bash > "${T}"/${PN} || die
|
|
||||||
"${maturin}" completions fish > "${T}"/${PN}.fish || die
|
|
||||||
"${maturin}" completions zsh > "${T}"/_${PN} || die
|
|
||||||
else
|
|
||||||
ewarn "shell completion files were skipped due to cross-compilation"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
python_test() {
|
|
||||||
local -x MATURIN_TEST_PYTHON=${EPYTHON}
|
|
||||||
local -x PIP_CONFIG_FILE=${T}/pip.conf
|
|
||||||
local -x VIRTUALENV_SYSTEM_SITE_PACKAGES=1
|
|
||||||
|
|
||||||
# need this for (new) python versions not yet recognized by pyo3
|
|
||||||
local -x PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1
|
|
||||||
|
|
||||||
local skip=(
|
|
||||||
# picky cli output test that easily benignly fail (bug #937992)
|
|
||||||
--skip cli_tests
|
|
||||||
# avoid need for wasm over a single hello world test
|
|
||||||
--skip integration_wasm_hello_world
|
|
||||||
# fragile depending on rust version, also wants libpypy*-c.so for pypy
|
|
||||||
--skip pyo3_no_extension_module
|
|
||||||
# unimportant tests that require uv, and not obvious to get it
|
|
||||||
# to work with network-sandbox (not worth the trouble)
|
|
||||||
--skip develop_hello_world::case_2
|
|
||||||
--skip develop_pyo3_ffi_pure::case_2
|
|
||||||
# compliance test using zig requires an old libc to pass (bug #946967)
|
|
||||||
--skip integration_pyo3_mixed_py_subdir
|
|
||||||
# fails on sparc since rust-1.74 (bug #934573), skip for now given
|
|
||||||
# should not affect the pep517 backend which is all we need on sparc
|
|
||||||
$(usev sparc '--skip build_context::test::test_macosx_deployment_target')
|
|
||||||
)
|
|
||||||
|
|
||||||
cargo_src_test -- "${skip[@]}"
|
|
||||||
}
|
|
||||||
|
|
||||||
python_install_all() {
|
|
||||||
cargo_src_install
|
|
||||||
|
|
||||||
dodoc Changelog.md README.md
|
|
||||||
use doc && dodoc -r guide/html
|
|
||||||
|
|
||||||
if ! tc-is-cross-compiler; then
|
|
||||||
dobashcomp "${T}"/${PN}
|
|
||||||
dofishcomp "${T}"/${PN}.fish
|
|
||||||
dozshcomp "${T}"/_${PN}
|
|
||||||
fi
|
|
||||||
}
|
|
@ -25,7 +25,7 @@ LICENSE+="
|
|||||||
MPL-2.0 Unicode-3.0 Unicode-DFS-2016
|
MPL-2.0 Unicode-3.0 Unicode-DFS-2016
|
||||||
" # crates
|
" # crates
|
||||||
SLOT="0"
|
SLOT="0"
|
||||||
KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
|
KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86"
|
||||||
IUSE="doc +ssl test"
|
IUSE="doc +ssl test"
|
||||||
RESTRICT="!test? ( test )"
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
@ -1,155 +0,0 @@
|
|||||||
# Copyright 1999-2025 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=8
|
|
||||||
|
|
||||||
DISTUTILS_USE_PEP517=setuptools
|
|
||||||
DISTUTILS_UPSTREAM_PEP517=standalone
|
|
||||||
PYTHON_COMPAT=( pypy3_11 python3_{11..14} )
|
|
||||||
RUST_MIN_VER=1.75.0
|
|
||||||
inherit cargo distutils-r1 flag-o-matic shell-completion toolchain-funcs
|
|
||||||
|
|
||||||
DESCRIPTION="Build and publish crates with pyo3, rust-cpython and cffi bindings"
|
|
||||||
HOMEPAGE="https://www.maturin.rs/"
|
|
||||||
SRC_URI="
|
|
||||||
https://github.com/PyO3/maturin/archive/refs/tags/v${PV}.tar.gz
|
|
||||||
-> ${P}.gh.tar.gz
|
|
||||||
https://dev.gentoo.org/~ionen/distfiles/${P}-vendor.tar.xz
|
|
||||||
"
|
|
||||||
# ^ tarball also includes test-crates' Cargo.lock(s) crates for tests
|
|
||||||
|
|
||||||
LICENSE="|| ( Apache-2.0 MIT ) doc? ( CC-BY-4.0 OFL-1.1 )"
|
|
||||||
LICENSE+="
|
|
||||||
0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD Boost-1.0 MIT
|
|
||||||
MPL-2.0 Unicode-3.0 Unicode-DFS-2016
|
|
||||||
" # crates
|
|
||||||
SLOT="0"
|
|
||||||
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
|
|
||||||
IUSE="doc +ssl test"
|
|
||||||
RESTRICT="!test? ( test )"
|
|
||||||
|
|
||||||
DEPEND="
|
|
||||||
app-arch/xz-utils
|
|
||||||
ssl? ( dev-libs/openssl:= )
|
|
||||||
"
|
|
||||||
RDEPEND="${DEPEND}"
|
|
||||||
BDEPEND="
|
|
||||||
virtual/pkgconfig
|
|
||||||
doc? ( app-text/mdbook )
|
|
||||||
test? (
|
|
||||||
$(python_gen_cond_dep 'dev-python/cffi[${PYTHON_USEDEP}]' 'python*')
|
|
||||||
dev-python/boltons[${PYTHON_USEDEP}]
|
|
||||||
dev-python/virtualenv[${PYTHON_USEDEP}]
|
|
||||||
dev-vcs/git
|
|
||||||
elibc_musl? ( dev-util/patchelf )
|
|
||||||
)
|
|
||||||
"
|
|
||||||
|
|
||||||
QA_FLAGS_IGNORED="usr/bin/${PN}"
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
distutils-r1_src_prepare
|
|
||||||
|
|
||||||
# we build the Rust executable (just once) via cargo_src_compile
|
|
||||||
sed -i -e '/setuptools_rust/d' -e '/rust_extensions/d' setup.py || die
|
|
||||||
|
|
||||||
if use test; then
|
|
||||||
# used to prevent use of network during tests, and silence pip
|
|
||||||
# if it finds unrelated issues with system packages (bug #913613)
|
|
||||||
cat > "${T}"/pip.conf <<-EOF || die
|
|
||||||
[global]
|
|
||||||
quiet = 2
|
|
||||||
|
|
||||||
[install]
|
|
||||||
no-index = yes
|
|
||||||
no-dependencies = yes
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# uv does not work easily w/ network-sandbox, force virtualenv
|
|
||||||
sed -i 's/"uv"/"uv-not-found"/' tests/common/mod.rs || die
|
|
||||||
|
|
||||||
# increase timeouts for tests (bug #950332)
|
|
||||||
sed -i '/^#\[timeout/s/secs(60)/secs(300)/' tests/run.rs || die
|
|
||||||
|
|
||||||
# used by *git_sdist_generator tests
|
|
||||||
git init -q || die
|
|
||||||
git config --global user.email "larry@gentoo.org" || die
|
|
||||||
git config --global user.name "Larry the Cow" || die
|
|
||||||
git add . || die
|
|
||||||
git commit -qm init || die
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
src_configure() {
|
|
||||||
export OPENSSL_NO_VENDOR=1
|
|
||||||
|
|
||||||
# https://github.com/rust-lang/stacker/issues/79
|
|
||||||
use s390 && ! is-flagq '-march=*' &&
|
|
||||||
append-cflags $(test-flags-CC -march=z10)
|
|
||||||
|
|
||||||
local myfeatures=(
|
|
||||||
# like release.yml + native-tls for better platform support than rustls
|
|
||||||
full
|
|
||||||
password-storage
|
|
||||||
$(usev ssl native-tls)
|
|
||||||
)
|
|
||||||
|
|
||||||
cargo_src_configure --no-default-features
|
|
||||||
}
|
|
||||||
|
|
||||||
python_compile_all() {
|
|
||||||
cargo_src_compile
|
|
||||||
|
|
||||||
use !doc || mdbook build -d html guide || die
|
|
||||||
|
|
||||||
if ! tc-is-cross-compiler; then
|
|
||||||
local maturin=$(cargo_target_dir)/maturin
|
|
||||||
"${maturin}" completions bash > "${T}"/${PN} || die
|
|
||||||
"${maturin}" completions fish > "${T}"/${PN}.fish || die
|
|
||||||
"${maturin}" completions zsh > "${T}"/_${PN} || die
|
|
||||||
else
|
|
||||||
ewarn "shell completion files were skipped due to cross-compilation"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
python_test() {
|
|
||||||
local -x MATURIN_TEST_PYTHON=${EPYTHON}
|
|
||||||
local -x PIP_CONFIG_FILE=${T}/pip.conf
|
|
||||||
local -x VIRTUALENV_SYSTEM_SITE_PACKAGES=1
|
|
||||||
|
|
||||||
# need this for (new) python versions not yet recognized by pyo3
|
|
||||||
local -x PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1
|
|
||||||
|
|
||||||
local skip=(
|
|
||||||
# picky cli output test that easily benignly fail (bug #937992)
|
|
||||||
--skip cli_tests
|
|
||||||
# avoid need for wasm over a single hello world test
|
|
||||||
--skip integration_wasm_hello_world
|
|
||||||
# fragile depending on rust version, also wants libpypy*-c.so for pypy
|
|
||||||
--skip pyo3_no_extension_module
|
|
||||||
# unimportant tests that require uv, and not obvious to get it
|
|
||||||
# to work with network-sandbox (not worth the trouble)
|
|
||||||
--skip develop_hello_world::case_2
|
|
||||||
--skip develop_pyo3_ffi_pure::case_2
|
|
||||||
# compliance test using zig requires an old libc to pass (bug #946967)
|
|
||||||
--skip integration_pyo3_mixed_py_subdir
|
|
||||||
# fails on sparc since rust-1.74 (bug #934573), skip for now given
|
|
||||||
# should not affect the pep517 backend which is all we need on sparc
|
|
||||||
$(usev sparc '--skip build_context::test::test_macosx_deployment_target')
|
|
||||||
)
|
|
||||||
|
|
||||||
cargo_src_test -- "${skip[@]}"
|
|
||||||
}
|
|
||||||
|
|
||||||
python_install_all() {
|
|
||||||
cargo_src_install
|
|
||||||
|
|
||||||
dodoc Changelog.md README.md
|
|
||||||
use doc && dodoc -r guide/html
|
|
||||||
|
|
||||||
if ! tc-is-cross-compiler; then
|
|
||||||
dobashcomp "${T}"/${PN}
|
|
||||||
dofishcomp "${T}"/${PN}.fish
|
|
||||||
dozshcomp "${T}"/_${PN}
|
|
||||||
fi
|
|
||||||
}
|
|
@ -24,7 +24,7 @@ LICENSE+="
|
|||||||
MPL-2.0 Unicode-3.0 Unicode-DFS-2016
|
MPL-2.0 Unicode-3.0 Unicode-DFS-2016
|
||||||
" # crates
|
" # crates
|
||||||
SLOT="0"
|
SLOT="0"
|
||||||
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
|
KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
|
||||||
IUSE="doc +ssl test"
|
IUSE="doc +ssl test"
|
||||||
RESTRICT="!test? ( test )"
|
RESTRICT="!test? ( test )"
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user