89 lines
2.3 KiB
RPMSpec
89 lines
2.3 KiB
RPMSpec
|
Name: escape_paths
|
||
|
Version: 0.1
|
||
|
Release: 0
|
||
|
Summary: ...
|
||
|
License: MIT
|
||
|
BuildArch: noarch
|
||
|
|
||
|
%description
|
||
|
This spec file verifies that escaping percentage signs in paths is possible via
|
||
|
exactly 8 (or 2) percentage signs in a filelist and directly in the %%files section.
|
||
|
It also verifies other path escaping assumptions on RPM 4.19+.
|
||
|
It serves as a regression test for pyproject_save_files:escape_rpm_path().
|
||
|
When this breaks, the function needs to be adapted.
|
||
|
|
||
|
|
||
|
%prep
|
||
|
cat > pyproject.toml << EOF
|
||
|
[build-system]
|
||
|
requires = ["setuptools"]
|
||
|
build-backend = "setuptools.build_meta"
|
||
|
EOF
|
||
|
|
||
|
cat > setup.cfg << EOF
|
||
|
[metadata]
|
||
|
name = escape_paths
|
||
|
version = 0.1
|
||
|
[options]
|
||
|
packages =
|
||
|
escape_paths
|
||
|
[options.package_data]
|
||
|
escape_paths =
|
||
|
*
|
||
|
EOF
|
||
|
|
||
|
mkdir -p escape_paths
|
||
|
touch escape_paths/__init__.py
|
||
|
# the paths on disk will have 1 percentage sign if we type 2 in the spec
|
||
|
# we use the word 'version' after the sign, as that is a known existing macro
|
||
|
touch 'escape_paths/one%%version'
|
||
|
%if v"0%{?rpmversion}" >= v"4.18.90"
|
||
|
touch 'escape_paths/path with spaces'
|
||
|
touch 'escape_paths/path with spaces and "quotes'
|
||
|
touch 'escape_paths/path_with_?*[!globs]!'
|
||
|
touch 'escape_paths/path_with_\backslash'
|
||
|
touch 'escape_paths/path_with_{curly,brackets}'
|
||
|
touch 'escape_paths/path with spaces and ?*[!globs]! and \backslash'
|
||
|
%endif
|
||
|
|
||
|
|
||
|
%generate_buildrequires
|
||
|
%pyproject_buildrequires
|
||
|
|
||
|
|
||
|
%build
|
||
|
%pyproject_wheel
|
||
|
|
||
|
|
||
|
%install
|
||
|
%pyproject_install
|
||
|
%pyproject_save_files -L escape_paths
|
||
|
touch '%{buildroot}/two%%version'
|
||
|
%if v"0%{?rpmversion}" >= v"4.18.90"
|
||
|
touch '%{buildroot}/another_path with spaces'
|
||
|
touch '%{buildroot}/another_path with spaces and "quotes'
|
||
|
touch '%{buildroot}/another_path_with_?*[!globs]!'
|
||
|
touch '%{buildroot}/another_path_with_\backslash'
|
||
|
touch '%{buildroot}/another_path_with_{curly,brackets}'
|
||
|
touch '%{buildroot}/another_path with spaces and ?*[!globs]! and \backslash'
|
||
|
%endif
|
||
|
|
||
|
|
||
|
%check
|
||
|
grep '/escape_paths/one' %{pyproject_files}
|
||
|
|
||
|
|
||
|
|
||
|
%files -f %{pyproject_files}
|
||
|
%if v"0%{?rpmversion}" >= v"4.18.90"
|
||
|
/two%%version
|
||
|
/another_path\ with\ spaces
|
||
|
/another_path\ with\ spaces\ and\ \"quotes
|
||
|
/another_path_with_\?\*\[\!globs\]\!
|
||
|
/another_path_with_\\backslash
|
||
|
/another_path_with_\{curly,brackets\}
|
||
|
/another_path\ with\ spaces\ and\ \?\*\[\!globs\]\!\ and\ \\backslash
|
||
|
%else
|
||
|
/two%%%%%%%%version
|
||
|
%endif
|