Mock Version: 6.5 Mock Version: 6.5 Mock Version: 6.5 ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --noclean --target noarch --nodeps /builddir/build/SPECS/python-specfile.spec'], chrootPath='/var/lib/mock/f45-build-33095-665/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=864000uid=995gid=135user='mockbuild'unshare_net=TrueprintOutput=Falsenspawn_args=['--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.licy5xf7:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/fuse', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11']) Using nspawn with args ['--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.licy5xf7:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/fuse', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11'] Executing command: ['/usr/bin/systemd-nspawn', '-q', '-M', '003cdf1151164b0d9bf2be6b14cfc88d', '-D', '/var/lib/mock/f45-build-33095-665/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.licy5xf7:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/fuse', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11', '--console=pipe', '--setenv=TERM=vt100', '--setenv=SHELL=/bin/bash', '--setenv=HOME=/builddir', '--setenv=HOSTNAME=mock', '--setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin', '--setenv=PROMPT_COMMAND=printf "\\033]0;\\007"', '--setenv=PS1= \\s-\\v\\$ ', '--setenv=LANG=C.UTF-8', '--resolv-conf=off', 'bash', '--login', '-c', '/usr/bin/rpmbuild -bs --noclean --target noarch --nodeps /builddir/build/SPECS/python-specfile.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8', 'SYSTEMD_NSPAWN_TMPFS_TMP': '0', 'SYSTEMD_SECCOMP': '0'} and shell False Building target platforms: noarch Building for target noarch error: %changelog not in descending chronological order setting SOURCE_DATE_EPOCH=1784505600 Wrote: /builddir/build/SRPMS/python-specfile-0.41.1-1.fc45.src.rpm Child return code was: 0 ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -br --noclean --target noarch --nodeps /builddir/build/SPECS/python-specfile.spec'], chrootPath='/var/lib/mock/f45-build-33095-665/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=864000uid=995gid=135user='mockbuild'unshare_net=TrueraiseExc=FalseprintOutput=Falsenspawn_args=['--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.licy5xf7:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/fuse', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11']) Using nspawn with args ['--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.licy5xf7:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/fuse', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11'] Executing command: ['/usr/bin/systemd-nspawn', '-q', '-M', '8c45bb98811f46f6a43d4f5a9d05d121', '-D', '/var/lib/mock/f45-build-33095-665/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.licy5xf7:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/fuse', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11', '--console=pipe', '--setenv=TERM=vt100', '--setenv=SHELL=/bin/bash', '--setenv=HOME=/builddir', '--setenv=HOSTNAME=mock', '--setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin', '--setenv=PROMPT_COMMAND=printf "\\033]0;\\007"', '--setenv=PS1= \\s-\\v\\$ ', '--setenv=LANG=C.UTF-8', '--resolv-conf=off', 'bash', '--login', '-c', '/usr/bin/rpmbuild -br --noclean --target noarch --nodeps /builddir/build/SPECS/python-specfile.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8', 'SYSTEMD_NSPAWN_TMPFS_TMP': '0', 'SYSTEMD_SECCOMP': '0'} and shell False Building target platforms: noarch Building for target noarch error: %changelog not in descending chronological order setting SOURCE_DATE_EPOCH=1784505600 Executing(mkbuilddir): /bin/sh -e /var/tmp/rpm-tmp.EEvZo2 Creating(rpmbuild.env): /builddir/build/BUILD/python-specfile-0.41.1-build/rpmbuild.env RPM_SOURCE_DIR="/builddir/build/SOURCES" RPM_BUILD_DIR="/builddir/build/BUILD/python-specfile-0.41.1-build" RPM_OPT_FLAGS="-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wno-complain-wrong-lang -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -march=rva23u64 -mabi=lp64d -fasynchronous-unwind-tables -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer" RPM_LD_FLAGS="-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 " RPM_ARCH="noarch" RPM_OS="linux" RPM_BUILD_NCPUS="8" RPM_SPECPARTS_DIR="/builddir/build/BUILD/python-specfile-0.41.1-build/SPECPARTS" export RPM_SOURCE_DIR RPM_BUILD_DIR RPM_OPT_FLAGS RPM_ARCH RPM_OS RPM_BUILD_NCPUS RPM_SPECPARTS_DIR RPM_LD_FLAGS RPM_DOC_DIR="/usr/share/doc" export RPM_DOC_DIR RPM_PACKAGE_NAME="python-specfile" RPM_PACKAGE_VERSION="0.41.1" RPM_PACKAGE_RELEASE="1.fc45" export RPM_PACKAGE_NAME RPM_PACKAGE_VERSION RPM_PACKAGE_RELEASE LANG=C.UTF-8 export LANG unset CDPATH DISPLAY ||: unset DEBUGINFOD_URLS ||: unset RPM_CONFIG_DIR ||: RPM_BUILD_ROOT="/builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT" export RPM_BUILD_ROOT PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:/usr/lib/pkgconfig:/usr/share/pkgconfig" export PKG_CONFIG_PATH CONFIG_SITE=${CONFIG_SITE:-NONE} export CONFIG_SITE Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.rYYcqS + umask 022 + cd /builddir/build/BUILD/python-specfile-0.41.1-build + cd /builddir/build/BUILD/python-specfile-0.41.1-build + rm -rf specfile-0.41.1 + /usr/bin/rpmuncompress -x /builddir/build/SOURCES/specfile-0.41.1.tar.gz + STATUS=0 + '[' 0 -ne 0 ']' + cd specfile-0.41.1 + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + sed -i 's/setuptools_scm\[toml\]>=7/setuptools_scm[toml]/' pyproject.toml + RPM_EC=0 ++ jobs -p + exit 0 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.MA1OgR + umask 022 + cd /builddir/build/BUILD/python-specfile-0.41.1-build + cd specfile-0.41.1 + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(packaging)' + echo 'python3dist(pip) >= 19' + '[' -f pyproject.toml ']' + echo '(python3dist(tomli) if python3-devel < 3.11)' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + mkdir -p /builddir/build/BUILD/python-specfile-0.41.1-build/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -march=rva23u64 -mabi=lp64d -fasynchronous-unwind-tables -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -march=rva23u64 -mabi=lp64d -fasynchronous-unwind-tables -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -march=rva23u64 -mabi=lp64d -fasynchronous-unwind-tables -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules ' + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -march=rva23u64 -mabi=lp64d -fasynchronous-unwind-tables -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules ' + VALAFLAGS=-g + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes --cap-lints=warn' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + LT_SYS_LIBRARY_PATH=/usr/lib: + CC=gcc + CXX=g++ + TMPDIR=/builddir/build/BUILD/python-specfile-0.41.1-build/.pyproject-builddir + RPM_TOXENV=py315 + FEDORA=45 + HOSTNAME=rpmbuild + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/python-specfile-0.41.1-build/pyproject-wheeldir --output /builddir/build/BUILD/python-specfile-0.41.1-build/python-specfile-0.41.1-1.fc45.noarch-pyproject-buildrequires --dep-overrides-file /builddir/build/BUILD/python-specfile-0.41.1-build/python-specfile-0.41.1-1.fc45.noarch-pyproject-dep-overrides -x testing Handling setuptools>=45 from build-system.requires Requirement not satisfied: setuptools>=45 Handling setuptools_scm[toml] from build-system.requires Requirement not satisfied: setuptools_scm[toml] Exiting dependency generation pass: build backend + cat /builddir/build/BUILD/python-specfile-0.41.1-build/python-specfile-0.41.1-1.fc45.noarch-pyproject-buildrequires + rm -rfv '*.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/python-specfile-0.41.1-1.fc45.buildreqs.nosrc.rpm Child return code was: 11 Dynamic buildrequires detected Going to install missing buildrequires. See root.log for details. ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -br --noprep --noclean --target noarch --nodeps /builddir/build/SPECS/python-specfile.spec'], chrootPath='/var/lib/mock/f45-build-33095-665/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=864000uid=995gid=135user='mockbuild'unshare_net=TrueraiseExc=FalseprintOutput=Falsenspawn_args=['--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.licy5xf7:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/fuse', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11']) Using nspawn with args ['--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.licy5xf7:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/fuse', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11'] Executing command: ['/usr/bin/systemd-nspawn', '-q', '-M', 'a46893308e204e388b88e20b51c95f5f', '-D', '/var/lib/mock/f45-build-33095-665/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.licy5xf7:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/fuse', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11', '--console=pipe', '--setenv=TERM=vt100', '--setenv=SHELL=/bin/bash', '--setenv=HOME=/builddir', '--setenv=HOSTNAME=mock', '--setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin', '--setenv=PROMPT_COMMAND=printf "\\033]0;\\007"', '--setenv=PS1= \\s-\\v\\$ ', '--setenv=LANG=C.UTF-8', '--resolv-conf=off', 'bash', '--login', '-c', '/usr/bin/rpmbuild -br --noprep --noclean --target noarch --nodeps /builddir/build/SPECS/python-specfile.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8', 'SYSTEMD_NSPAWN_TMPFS_TMP': '0', 'SYSTEMD_SECCOMP': '0'} and shell False Building target platforms: noarch Building for target noarch error: %changelog not in descending chronological order setting SOURCE_DATE_EPOCH=1784505600 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.i6Hxn3 + umask 022 + cd /builddir/build/BUILD/python-specfile-0.41.1-build + cd specfile-0.41.1 + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(packaging)' + echo 'python3dist(pip) >= 19' + '[' -f pyproject.toml ']' + echo '(python3dist(tomli) if python3-devel < 3.11)' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + mkdir -p /builddir/build/BUILD/python-specfile-0.41.1-build/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -march=rva23u64 -mabi=lp64d -fasynchronous-unwind-tables -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -march=rva23u64 -mabi=lp64d -fasynchronous-unwind-tables -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -march=rva23u64 -mabi=lp64d -fasynchronous-unwind-tables -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules ' + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -march=rva23u64 -mabi=lp64d -fasynchronous-unwind-tables -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules ' + VALAFLAGS=-g + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes --cap-lints=warn' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + LT_SYS_LIBRARY_PATH=/usr/lib: + CC=gcc + CXX=g++ + TMPDIR=/builddir/build/BUILD/python-specfile-0.41.1-build/.pyproject-builddir + RPM_TOXENV=py315 + FEDORA=45 + HOSTNAME=rpmbuild + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/python-specfile-0.41.1-build/pyproject-wheeldir --output /builddir/build/BUILD/python-specfile-0.41.1-build/python-specfile-0.41.1-1.fc45.noarch-pyproject-buildrequires --dep-overrides-file /builddir/build/BUILD/python-specfile-0.41.1-build/python-specfile-0.41.1-1.fc45.noarch-pyproject-dep-overrides -x testing Handling setuptools>=45 from build-system.requires Requirement satisfied: setuptools>=45 (installed: setuptools 83.0.0) Handling setuptools_scm[toml] from build-system.requires Requirement satisfied: setuptools_scm[toml] (installed: setuptools_scm 10.2.1) (extras are currently not checked) /usr/lib/python3.15/site-packages/setuptools/dist.py:765: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: MIT License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! self._finalize_license_expression() /usr/lib/python3.15/site-packages/vcs_versioning/_fallback_workdir.py:210: UserWarning: git archive did not support describe output return archival_to_version(data, config) /usr/lib/python3.15/site-packages/vcs_versioning/_fallback_workdir.py:210: UserWarning: unprocessed git archival found (no export subst applied) return archival_to_version(data, config) /usr/lib/python3.15/site-packages/setuptools_scm/_integration/version_inference.py:222: UserWarning: version of specfile already set warnings.warn(f"version of {self.dist_name} already set") running egg_info writing specfile.egg-info/PKG-INFO writing dependency_links to specfile.egg-info/dependency_links.txt writing requirements to specfile.egg-info/requires.txt writing top-level names to specfile.egg-info/top_level.txt adding license file 'LICENSE' writing manifest file 'specfile.egg-info/SOURCES.txt' running dist_info writing specfile.egg-info/PKG-INFO writing dependency_links to specfile.egg-info/dependency_links.txt writing requirements to specfile.egg-info/requires.txt writing top-level names to specfile.egg-info/top_level.txt adding license file 'LICENSE' writing manifest file 'specfile.egg-info/SOURCES.txt' creating '/builddir/build/BUILD/python-specfile-0.41.1-build/specfile-0.41.1/specfile-0.41.1.dist-info' Handling importlib-metadata; python_version < "3.8" from hook generated metadata: Requires-Dist (specfile) Ignoring alien requirement: importlib-metadata; python_version < "3.8" Handling dataclasses; python_version < "3.7" from hook generated metadata: Requires-Dist (specfile) Ignoring alien requirement: dataclasses; python_version < "3.7" Handling rpm from hook generated metadata: Requires-Dist (specfile) Requirement not satisfied: rpm Handling typing-extensions; python_version < "3.8" from hook generated metadata: Requires-Dist (specfile) Ignoring alien requirement: typing-extensions; python_version < "3.8" Handling pytest; extra == "testing" from hook generated metadata: Requires-Dist (specfile) Requirement not satisfied: pytest; extra == "testing" Handling flexmock; extra == "testing" from hook generated metadata: Requires-Dist (specfile) Requirement not satisfied: flexmock; extra == "testing" + cat /builddir/build/BUILD/python-specfile-0.41.1-build/python-specfile-0.41.1-1.fc45.noarch-pyproject-buildrequires + rm -rfv specfile-0.41.1.dist-info/ removed 'specfile-0.41.1.dist-info/top_level.txt' removed 'specfile-0.41.1.dist-info/METADATA' removed 'specfile-0.41.1.dist-info/licenses/LICENSE' removed directory 'specfile-0.41.1.dist-info/licenses' removed directory 'specfile-0.41.1.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/python-specfile-0.41.1-1.fc45.buildreqs.nosrc.rpm Child return code was: 11 Dynamic buildrequires detected Going to install missing buildrequires. See root.log for details. ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -br --noprep --noclean --target noarch --nodeps /builddir/build/SPECS/python-specfile.spec'], chrootPath='/var/lib/mock/f45-build-33095-665/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=864000uid=995gid=135user='mockbuild'unshare_net=TrueraiseExc=FalseprintOutput=Falsenspawn_args=['--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.licy5xf7:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/fuse', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11']) Using nspawn with args ['--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.licy5xf7:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/fuse', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11'] Executing command: ['/usr/bin/systemd-nspawn', '-q', '-M', '5e9dbb14b8a44e1c986bd99485871df0', '-D', '/var/lib/mock/f45-build-33095-665/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.licy5xf7:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/fuse', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11', '--console=pipe', '--setenv=TERM=vt100', '--setenv=SHELL=/bin/bash', '--setenv=HOME=/builddir', '--setenv=HOSTNAME=mock', '--setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin', '--setenv=PROMPT_COMMAND=printf "\\033]0;\\007"', '--setenv=PS1= \\s-\\v\\$ ', '--setenv=LANG=C.UTF-8', '--resolv-conf=off', 'bash', '--login', '-c', '/usr/bin/rpmbuild -br --noprep --noclean --target noarch --nodeps /builddir/build/SPECS/python-specfile.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8', 'SYSTEMD_NSPAWN_TMPFS_TMP': '0', 'SYSTEMD_SECCOMP': '0'} and shell False Building target platforms: noarch Building for target noarch error: %changelog not in descending chronological order setting SOURCE_DATE_EPOCH=1784505600 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.3LuhJb + umask 022 + cd /builddir/build/BUILD/python-specfile-0.41.1-build + cd specfile-0.41.1 + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(packaging)' + echo 'python3dist(pip) >= 19' + '[' -f pyproject.toml ']' + echo '(python3dist(tomli) if python3-devel < 3.11)' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + mkdir -p /builddir/build/BUILD/python-specfile-0.41.1-build/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -march=rva23u64 -mabi=lp64d -fasynchronous-unwind-tables -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -march=rva23u64 -mabi=lp64d -fasynchronous-unwind-tables -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -march=rva23u64 -mabi=lp64d -fasynchronous-unwind-tables -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules ' + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -march=rva23u64 -mabi=lp64d -fasynchronous-unwind-tables -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules ' + VALAFLAGS=-g + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes --cap-lints=warn' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + LT_SYS_LIBRARY_PATH=/usr/lib: + CC=gcc + CXX=g++ + TMPDIR=/builddir/build/BUILD/python-specfile-0.41.1-build/.pyproject-builddir + RPM_TOXENV=py315 + FEDORA=45 + HOSTNAME=rpmbuild + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/python-specfile-0.41.1-build/pyproject-wheeldir --output /builddir/build/BUILD/python-specfile-0.41.1-build/python-specfile-0.41.1-1.fc45.noarch-pyproject-buildrequires --dep-overrides-file /builddir/build/BUILD/python-specfile-0.41.1-build/python-specfile-0.41.1-1.fc45.noarch-pyproject-dep-overrides -x testing Handling setuptools>=45 from build-system.requires Requirement satisfied: setuptools>=45 (installed: setuptools 83.0.0) Handling setuptools_scm[toml] from build-system.requires Requirement satisfied: setuptools_scm[toml] (installed: setuptools_scm 10.2.1) (extras are currently not checked) /usr/lib/python3.15/site-packages/setuptools/dist.py:765: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: MIT License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! self._finalize_license_expression() /usr/lib/python3.15/site-packages/vcs_versioning/_fallback_workdir.py:210: UserWarning: git archive did not support describe output return archival_to_version(data, config) /usr/lib/python3.15/site-packages/vcs_versioning/_fallback_workdir.py:210: UserWarning: unprocessed git archival found (no export subst applied) return archival_to_version(data, config) /usr/lib/python3.15/site-packages/setuptools_scm/_integration/version_inference.py:222: UserWarning: version of specfile already set warnings.warn(f"version of {self.dist_name} already set") running egg_info writing specfile.egg-info/PKG-INFO writing dependency_links to specfile.egg-info/dependency_links.txt writing requirements to specfile.egg-info/requires.txt writing top-level names to specfile.egg-info/top_level.txt adding license file 'LICENSE' writing manifest file 'specfile.egg-info/SOURCES.txt' running dist_info writing specfile.egg-info/PKG-INFO writing dependency_links to specfile.egg-info/dependency_links.txt writing requirements to specfile.egg-info/requires.txt writing top-level names to specfile.egg-info/top_level.txt adding license file 'LICENSE' writing manifest file 'specfile.egg-info/SOURCES.txt' creating '/builddir/build/BUILD/python-specfile-0.41.1-build/specfile-0.41.1/specfile-0.41.1.dist-info' Handling importlib-metadata; python_version < "3.8" from hook generated metadata: Requires-Dist (specfile) Ignoring alien requirement: importlib-metadata; python_version < "3.8" Handling dataclasses; python_version < "3.7" from hook generated metadata: Requires-Dist (specfile) Ignoring alien requirement: dataclasses; python_version < "3.7" Handling rpm from hook generated metadata: Requires-Dist (specfile) Requirement satisfied: rpm (installed: rpm 6.1.0) Handling typing-extensions; python_version < "3.8" from hook generated metadata: Requires-Dist (specfile) Ignoring alien requirement: typing-extensions; python_version < "3.8" Handling pytest; extra == "testing" from hook generated metadata: Requires-Dist (specfile) Requirement satisfied: pytest; extra == "testing" (installed: pytest 9.1.1) Handling flexmock; extra == "testing" from hook generated metadata: Requires-Dist (specfile) Requirement satisfied: flexmock; extra == "testing" (installed: flexmock 0.13.0) + cat /builddir/build/BUILD/python-specfile-0.41.1-build/python-specfile-0.41.1-1.fc45.noarch-pyproject-buildrequires + rm -rfv specfile-0.41.1.dist-info/ removed 'specfile-0.41.1.dist-info/top_level.txt' removed 'specfile-0.41.1.dist-info/METADATA' removed 'specfile-0.41.1.dist-info/licenses/LICENSE' removed directory 'specfile-0.41.1.dist-info/licenses' removed directory 'specfile-0.41.1.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/python-specfile-0.41.1-1.fc45.buildreqs.nosrc.rpm Child return code was: 11 Dynamic buildrequires detected Going to install missing buildrequires. See root.log for details. ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -ba --noprep --noclean --target noarch --nodeps /builddir/build/SPECS/python-specfile.spec'], chrootPath='/var/lib/mock/f45-build-33095-665/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=864000uid=995gid=135user='mockbuild'unshare_net=TrueprintOutput=Falsenspawn_args=['--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.licy5xf7:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/fuse', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11']) Using nspawn with args ['--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.licy5xf7:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/fuse', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11'] Executing command: ['/usr/bin/systemd-nspawn', '-q', '-M', '236fd1460f384a8e988d8d155c754563', '-D', '/var/lib/mock/f45-build-33095-665/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.licy5xf7:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/fuse', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11', '--console=pipe', '--setenv=TERM=vt100', '--setenv=SHELL=/bin/bash', '--setenv=HOME=/builddir', '--setenv=HOSTNAME=mock', '--setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin', '--setenv=PROMPT_COMMAND=printf "\\033]0;\\007"', '--setenv=PS1= \\s-\\v\\$ ', '--setenv=LANG=C.UTF-8', '--resolv-conf=off', 'bash', '--login', '-c', '/usr/bin/rpmbuild -ba --noprep --noclean --target noarch --nodeps /builddir/build/SPECS/python-specfile.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8', 'SYSTEMD_NSPAWN_TMPFS_TMP': '0', 'SYSTEMD_SECCOMP': '0'} and shell False Building target platforms: noarch Building for target noarch error: %changelog not in descending chronological order setting SOURCE_DATE_EPOCH=1784505600 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.3xtYAw + umask 022 + cd /builddir/build/BUILD/python-specfile-0.41.1-build + cd specfile-0.41.1 + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(packaging)' + echo 'python3dist(pip) >= 19' + '[' -f pyproject.toml ']' + echo '(python3dist(tomli) if python3-devel < 3.11)' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + mkdir -p /builddir/build/BUILD/python-specfile-0.41.1-build/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -march=rva23u64 -mabi=lp64d -fasynchronous-unwind-tables -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -march=rva23u64 -mabi=lp64d -fasynchronous-unwind-tables -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -march=rva23u64 -mabi=lp64d -fasynchronous-unwind-tables -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules ' + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -march=rva23u64 -mabi=lp64d -fasynchronous-unwind-tables -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules ' + VALAFLAGS=-g + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes --cap-lints=warn' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + LT_SYS_LIBRARY_PATH=/usr/lib: + CC=gcc + CXX=g++ + TMPDIR=/builddir/build/BUILD/python-specfile-0.41.1-build/.pyproject-builddir + RPM_TOXENV=py315 + FEDORA=45 + HOSTNAME=rpmbuild + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/python-specfile-0.41.1-build/pyproject-wheeldir --output /builddir/build/BUILD/python-specfile-0.41.1-build/python-specfile-0.41.1-1.fc45.noarch-pyproject-buildrequires --dep-overrides-file /builddir/build/BUILD/python-specfile-0.41.1-build/python-specfile-0.41.1-1.fc45.noarch-pyproject-dep-overrides -x testing Handling setuptools>=45 from build-system.requires Requirement satisfied: setuptools>=45 (installed: setuptools 83.0.0) Handling setuptools_scm[toml] from build-system.requires Requirement satisfied: setuptools_scm[toml] (installed: setuptools_scm 10.2.1) (extras are currently not checked) /usr/lib/python3.15/site-packages/setuptools/dist.py:765: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: MIT License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! self._finalize_license_expression() /usr/lib/python3.15/site-packages/vcs_versioning/_fallback_workdir.py:210: UserWarning: git archive did not support describe output return archival_to_version(data, config) /usr/lib/python3.15/site-packages/vcs_versioning/_fallback_workdir.py:210: UserWarning: unprocessed git archival found (no export subst applied) return archival_to_version(data, config) /usr/lib/python3.15/site-packages/setuptools_scm/_integration/version_inference.py:222: UserWarning: version of specfile already set warnings.warn(f"version of {self.dist_name} already set") running egg_info writing specfile.egg-info/PKG-INFO writing dependency_links to specfile.egg-info/dependency_links.txt writing requirements to specfile.egg-info/requires.txt writing top-level names to specfile.egg-info/top_level.txt adding license file 'LICENSE' writing manifest file 'specfile.egg-info/SOURCES.txt' running dist_info writing specfile.egg-info/PKG-INFO writing dependency_links to specfile.egg-info/dependency_links.txt writing requirements to specfile.egg-info/requires.txt writing top-level names to specfile.egg-info/top_level.txt adding license file 'LICENSE' writing manifest file 'specfile.egg-info/SOURCES.txt' creating '/builddir/build/BUILD/python-specfile-0.41.1-build/specfile-0.41.1/specfile-0.41.1.dist-info' Handling importlib-metadata; python_version < "3.8" from hook generated metadata: Requires-Dist (specfile) Ignoring alien requirement: importlib-metadata; python_version < "3.8" Handling dataclasses; python_version < "3.7" from hook generated metadata: Requires-Dist (specfile) Ignoring alien requirement: dataclasses; python_version < "3.7" Handling rpm from hook generated metadata: Requires-Dist (specfile) Requirement satisfied: rpm (installed: rpm 6.1.0) Handling typing-extensions; python_version < "3.8" from hook generated metadata: Requires-Dist (specfile) Ignoring alien requirement: typing-extensions; python_version < "3.8" Handling pytest; extra == "testing" from hook generated metadata: Requires-Dist (specfile) Requirement satisfied: pytest; extra == "testing" (installed: pytest 9.1.1) Handling flexmock; extra == "testing" from hook generated metadata: Requires-Dist (specfile) Requirement satisfied: flexmock; extra == "testing" (installed: flexmock 0.13.0) + cat /builddir/build/BUILD/python-specfile-0.41.1-build/python-specfile-0.41.1-1.fc45.noarch-pyproject-buildrequires + rm -rfv specfile-0.41.1.dist-info/ removed 'specfile-0.41.1.dist-info/top_level.txt' removed 'specfile-0.41.1.dist-info/METADATA' removed 'specfile-0.41.1.dist-info/licenses/LICENSE' removed directory 'specfile-0.41.1.dist-info/licenses' removed directory 'specfile-0.41.1.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.jYh2s4 + umask 022 + cd /builddir/build/BUILD/python-specfile-0.41.1-build + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -march=rva23u64 -mabi=lp64d -fasynchronous-unwind-tables -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -march=rva23u64 -mabi=lp64d -fasynchronous-unwind-tables -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -march=rva23u64 -mabi=lp64d -fasynchronous-unwind-tables -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -march=rva23u64 -mabi=lp64d -fasynchronous-unwind-tables -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes --cap-lints=warn' + export RUSTFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd specfile-0.41.1 + mkdir -p /builddir/build/BUILD/python-specfile-0.41.1-build/.pyproject-builddir + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -march=rva23u64 -mabi=lp64d -fasynchronous-unwind-tables -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -march=rva23u64 -mabi=lp64d -fasynchronous-unwind-tables -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -march=rva23u64 -mabi=lp64d -fasynchronous-unwind-tables -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules ' + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -march=rva23u64 -mabi=lp64d -fasynchronous-unwind-tables -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules ' + VALAFLAGS=-g + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes --cap-lints=warn' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + LT_SYS_LIBRARY_PATH=/usr/lib: + CC=gcc + CXX=g++ + TMPDIR=/builddir/build/BUILD/python-specfile-0.41.1-build/.pyproject-builddir + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_wheel.py /builddir/build/BUILD/python-specfile-0.41.1-build/pyproject-wheeldir Processing ./. Preparing metadata (pyproject.toml): started Running command Preparing metadata (pyproject.toml) /usr/lib/python3.15/site-packages/vcs_versioning/_fallback_workdir.py:210: UserWarning: git archive did not support describe output return archival_to_version(data, config) /usr/lib/python3.15/site-packages/vcs_versioning/_fallback_workdir.py:210: UserWarning: unprocessed git archival found (no export subst applied) return archival_to_version(data, config) /usr/lib/python3.15/site-packages/setuptools_scm/_integration/version_inference.py:222: UserWarning: version of specfile already set warnings.warn(f"version of {self.dist_name} already set") /usr/lib/python3.15/site-packages/setuptools/dist.py:765: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: MIT License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! self._finalize_license_expression() running dist_info creating /builddir/build/BUILD/python-specfile-0.41.1-build/.pyproject-builddir/pip-modern-metadata-cs7gql47/specfile.egg-info writing /builddir/build/BUILD/python-specfile-0.41.1-build/.pyproject-builddir/pip-modern-metadata-cs7gql47/specfile.egg-info/PKG-INFO writing dependency_links to /builddir/build/BUILD/python-specfile-0.41.1-build/.pyproject-builddir/pip-modern-metadata-cs7gql47/specfile.egg-info/dependency_links.txt writing requirements to /builddir/build/BUILD/python-specfile-0.41.1-build/.pyproject-builddir/pip-modern-metadata-cs7gql47/specfile.egg-info/requires.txt writing top-level names to /builddir/build/BUILD/python-specfile-0.41.1-build/.pyproject-builddir/pip-modern-metadata-cs7gql47/specfile.egg-info/top_level.txt writing manifest file '/builddir/build/BUILD/python-specfile-0.41.1-build/.pyproject-builddir/pip-modern-metadata-cs7gql47/specfile.egg-info/SOURCES.txt' adding license file 'LICENSE' writing manifest file '/builddir/build/BUILD/python-specfile-0.41.1-build/.pyproject-builddir/pip-modern-metadata-cs7gql47/specfile.egg-info/SOURCES.txt' creating '/builddir/build/BUILD/python-specfile-0.41.1-build/.pyproject-builddir/pip-modern-metadata-cs7gql47/specfile-0.41.1.dist-info' Preparing metadata (pyproject.toml): finished with status 'done' Building wheels for collected packages: specfile Building wheel for specfile (pyproject.toml): started Running command Building wheel for specfile (pyproject.toml) /usr/lib/python3.15/site-packages/vcs_versioning/_fallback_workdir.py:210: UserWarning: git archive did not support describe output return archival_to_version(data, config) /usr/lib/python3.15/site-packages/vcs_versioning/_fallback_workdir.py:210: UserWarning: unprocessed git archival found (no export subst applied) return archival_to_version(data, config) /usr/lib/python3.15/site-packages/setuptools_scm/_integration/version_inference.py:222: UserWarning: version of specfile already set warnings.warn(f"version of {self.dist_name} already set") /usr/lib/python3.15/site-packages/setuptools/dist.py:765: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: MIT License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! self._finalize_license_expression() running bdist_wheel running build running build_py creating build/lib/specfile copying specfile/__init__.py -> build/lib/specfile copying specfile/changelog.py -> build/lib/specfile copying specfile/conditions.py -> build/lib/specfile copying specfile/constants.py -> build/lib/specfile copying specfile/context_management.py -> build/lib/specfile copying specfile/exceptions.py -> build/lib/specfile copying specfile/formatter.py -> build/lib/specfile copying specfile/macro_definitions.py -> build/lib/specfile copying specfile/macros.py -> build/lib/specfile copying specfile/options.py -> build/lib/specfile copying specfile/prep.py -> build/lib/specfile copying specfile/sanitizer.py -> build/lib/specfile copying specfile/sections.py -> build/lib/specfile copying specfile/sourcelist.py -> build/lib/specfile copying specfile/sources.py -> build/lib/specfile copying specfile/spec_parser.py -> build/lib/specfile copying specfile/specfile.py -> build/lib/specfile copying specfile/tags.py -> build/lib/specfile copying specfile/types.py -> build/lib/specfile copying specfile/utils.py -> build/lib/specfile copying specfile/value_parser.py -> build/lib/specfile running egg_info writing specfile.egg-info/PKG-INFO writing dependency_links to specfile.egg-info/dependency_links.txt writing requirements to specfile.egg-info/requires.txt writing top-level names to specfile.egg-info/top_level.txt adding license file 'LICENSE' writing manifest file 'specfile.egg-info/SOURCES.txt' copying specfile/context_management.pyi -> build/lib/specfile copying specfile/py.typed -> build/lib/specfile installing to build/bdist.linux-riscv64/wheel running install running install_lib creating build/bdist.linux-riscv64/wheel creating build/bdist.linux-riscv64/wheel/specfile copying build/lib/specfile/__init__.py -> build/bdist.linux-riscv64/wheel/./specfile copying build/lib/specfile/changelog.py -> build/bdist.linux-riscv64/wheel/./specfile copying build/lib/specfile/conditions.py -> build/bdist.linux-riscv64/wheel/./specfile copying build/lib/specfile/constants.py -> build/bdist.linux-riscv64/wheel/./specfile copying build/lib/specfile/context_management.py -> build/bdist.linux-riscv64/wheel/./specfile copying build/lib/specfile/exceptions.py -> build/bdist.linux-riscv64/wheel/./specfile copying build/lib/specfile/formatter.py -> build/bdist.linux-riscv64/wheel/./specfile copying build/lib/specfile/macro_definitions.py -> build/bdist.linux-riscv64/wheel/./specfile copying build/lib/specfile/macros.py -> build/bdist.linux-riscv64/wheel/./specfile copying build/lib/specfile/options.py -> build/bdist.linux-riscv64/wheel/./specfile copying build/lib/specfile/prep.py -> build/bdist.linux-riscv64/wheel/./specfile copying build/lib/specfile/sanitizer.py -> build/bdist.linux-riscv64/wheel/./specfile copying build/lib/specfile/sections.py -> build/bdist.linux-riscv64/wheel/./specfile copying build/lib/specfile/sourcelist.py -> build/bdist.linux-riscv64/wheel/./specfile copying build/lib/specfile/sources.py -> build/bdist.linux-riscv64/wheel/./specfile copying build/lib/specfile/spec_parser.py -> build/bdist.linux-riscv64/wheel/./specfile copying build/lib/specfile/specfile.py -> build/bdist.linux-riscv64/wheel/./specfile copying build/lib/specfile/tags.py -> build/bdist.linux-riscv64/wheel/./specfile copying build/lib/specfile/types.py -> build/bdist.linux-riscv64/wheel/./specfile copying build/lib/specfile/utils.py -> build/bdist.linux-riscv64/wheel/./specfile copying build/lib/specfile/value_parser.py -> build/bdist.linux-riscv64/wheel/./specfile copying build/lib/specfile/context_management.pyi -> build/bdist.linux-riscv64/wheel/./specfile copying build/lib/specfile/py.typed -> build/bdist.linux-riscv64/wheel/./specfile running install_egg_info Copying specfile.egg-info to build/bdist.linux-riscv64/wheel/./specfile-0.41.1-py3.15.egg-info running install_scripts creating build/bdist.linux-riscv64/wheel/specfile-0.41.1.dist-info/WHEEL creating '/builddir/.cache/pip/wheels/3b/4a/88/330233caa35192b26cca216fa5ba86f7f4443010b1f960f07b/tmpjgutya5x/.tmp-u0lrvyck/specfile-0.41.1-py3-none-any.whl' and adding 'build/bdist.linux-riscv64/wheel' to it adding 'specfile/__init__.py' adding 'specfile/changelog.py' adding 'specfile/conditions.py' adding 'specfile/constants.py' adding 'specfile/context_management.py' adding 'specfile/context_management.pyi' adding 'specfile/exceptions.py' adding 'specfile/formatter.py' adding 'specfile/macro_definitions.py' adding 'specfile/macros.py' adding 'specfile/options.py' adding 'specfile/prep.py' adding 'specfile/py.typed' adding 'specfile/sanitizer.py' adding 'specfile/sections.py' adding 'specfile/sourcelist.py' adding 'specfile/sources.py' adding 'specfile/spec_parser.py' adding 'specfile/specfile.py' adding 'specfile/tags.py' adding 'specfile/types.py' adding 'specfile/utils.py' adding 'specfile/value_parser.py' adding 'specfile-0.41.1.dist-info/licenses/LICENSE' adding 'specfile-0.41.1.dist-info/METADATA' adding 'specfile-0.41.1.dist-info/WHEEL' adding 'specfile-0.41.1.dist-info/top_level.txt' adding 'specfile-0.41.1.dist-info/RECORD' removing build/bdist.linux-riscv64/wheel Building wheel for specfile (pyproject.toml): finished with status 'done' Created wheel for specfile: filename=specfile-0.41.1-py3-none-any.whl size=79037 sha256=9b4366608ae100b31e92dc84ed91117d53b28ac6a92aa49f1f4149a784e79e29 Stored in directory: /builddir/.cache/pip/wheels/3b/4a/88/330233caa35192b26cca216fa5ba86f7f4443010b1f960f07b Successfully built specfile + RPM_EC=0 ++ jobs -p + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.Pvbp4Z + umask 022 + cd /builddir/build/BUILD/python-specfile-0.41.1-build + '[' /builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT '!=' / ']' + rm -rf /builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT ++ dirname /builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT + mkdir -p /builddir/build/BUILD/python-specfile-0.41.1-build + mkdir /builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -march=rva23u64 -mabi=lp64d -fasynchronous-unwind-tables -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -march=rva23u64 -mabi=lp64d -fasynchronous-unwind-tables -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -march=rva23u64 -mabi=lp64d -fasynchronous-unwind-tables -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -march=rva23u64 -mabi=lp64d -fasynchronous-unwind-tables -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes --cap-lints=warn' + export RUSTFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd specfile-0.41.1 ++ ls /builddir/build/BUILD/python-specfile-0.41.1-build/pyproject-wheeldir/specfile-0.41.1-py3-none-any.whl ++ xargs basename --multiple ++ sed -E 's/([^-]+)-([^-]+)-.+\.whl/\1==\2/' + specifier=specfile==0.41.1 + '[' -z specfile==0.41.1 ']' + PIP_CONFIG_FILE=/dev/null + TMPDIR=/builddir/build/BUILD/python-specfile-0.41.1-build/.pyproject-builddir + /usr/bin/python3 -m pip install --root /builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT --prefix /usr --no-deps --disable-pip-version-check --progress-bar off --verbose --ignore-installed --no-warn-script-location --no-index --no-cache-dir --find-links /builddir/build/BUILD/python-specfile-0.41.1-build/pyproject-wheeldir specfile==0.41.1 Using pip 26.1.2 from /usr/lib/python3.15/site-packages/pip (python 3.15) Looking in links: /builddir/build/BUILD/python-specfile-0.41.1-build/pyproject-wheeldir Processing /builddir/build/BUILD/python-specfile-0.41.1-build/pyproject-wheeldir/specfile-0.41.1-py3-none-any.whl Installing collected packages: specfile Successfully installed specfile-0.41.1 + '[' -d /builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT/usr/bin ']' + rm -f /builddir/build/BUILD/python-specfile-0.41.1-build/python-specfile-0.41.1-1.fc45.noarch-pyproject-ghost-distinfo + site_dirs=() + '[' -d /builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT/usr/lib/python3.15/site-packages ']' + site_dirs+=("/usr/lib/python3.15/site-packages") + '[' /builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT/usr/lib64/python3.15/site-packages '!=' /builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT/usr/lib/python3.15/site-packages ']' + '[' -d /builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT/usr/lib64/python3.15/site-packages ']' + for site_dir in ${site_dirs[@]} + for distinfo in /builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT$site_dir/*.dist-info + echo '%ghost %dir /usr/lib/python3.15/site-packages/specfile-0.41.1.dist-info' +++ basename /builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT/usr/lib/python3.15/site-packages/specfile-0.41.1.dist-info ++ PYTHONPATH=/usr/lib/rpm/redhat ++ /usr/bin/python3 -sBc 'import sys; from pyproject_save_files import canonical_name_from_distinfo; print(canonical_name_from_distinfo(sys.argv[1]))' specfile-0.41.1.dist-info + _normalized=specfile + echo '%ghost %dir /usr/lib/python3.15/site-packages/specfile-0.41.1.dist-info' + sed -i s/pip/rpm/ /builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT/usr/lib/python3.15/site-packages/specfile-0.41.1.dist-info/INSTALLER + PYTHONPATH=/usr/lib/rpm/redhat + /usr/bin/python3 -B /usr/lib/rpm/redhat/pyproject_preprocess_record.py --buildroot /builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT --record /builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT/usr/lib/python3.15/site-packages/specfile-0.41.1.dist-info/RECORD --output /builddir/build/BUILD/python-specfile-0.41.1-build/python-specfile-0.41.1-1.fc45.noarch-pyproject-record + rm -fv /builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT/usr/lib/python3.15/site-packages/specfile-0.41.1.dist-info/RECORD removed '/builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT/usr/lib/python3.15/site-packages/specfile-0.41.1.dist-info/RECORD' + rm -fv /builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT/usr/lib/python3.15/site-packages/specfile-0.41.1.dist-info/REQUESTED removed '/builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT/usr/lib/python3.15/site-packages/specfile-0.41.1.dist-info/REQUESTED' + '[' -f /builddir/build/BUILD/python-specfile-0.41.1-build/python-specfile-0.41.1-1.fc45.noarch-pyproject-dep-overrides ']' ++ wc -l /builddir/build/BUILD/python-specfile-0.41.1-build/python-specfile-0.41.1-1.fc45.noarch-pyproject-ghost-distinfo ++ cut -f1 '-d ' + lines=1 + '[' 1 -ne 1 ']' + RPM_FILES_ESCAPE=4.19 + /usr/bin/python3 /usr/lib/rpm/redhat/pyproject_save_files.py --output-files /builddir/build/BUILD/python-specfile-0.41.1-build/python-specfile-0.41.1-1.fc45.noarch-pyproject-files --output-modules /builddir/build/BUILD/python-specfile-0.41.1-build/python-specfile-0.41.1-1.fc45.noarch-pyproject-modules --buildroot /builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT --sitelib /usr/lib/python3.15/site-packages --sitearch /usr/lib64/python3.15/site-packages --python-version 3.15 --pyproject-record /builddir/build/BUILD/python-specfile-0.41.1-build/python-specfile-0.41.1-1.fc45.noarch-pyproject-record --prefix /usr specfile + /usr/lib/rpm/check-buildroot + /usr/lib/rpm/redhat/brp-ldconfig + COMPRESS='gzip -9 -n' + COMPRESS_EXT=.gz + /usr/lib/rpm/brp-compress + /usr/lib/rpm/brp-strip /usr/bin/strip + /usr/lib/rpm/brp-strip-comment-note /usr/bin/strip /usr/bin/objdump + /usr/lib/rpm/redhat/brp-strip-lto /usr/bin/strip + /usr/lib/rpm/check-rpaths + /usr/lib/rpm/redhat/brp-mangle-shebangs + /usr/lib/rpm/brp-remove-la-files + /usr/lib/rpm/redhat/brp-python-rpm-in-distinfo + env /usr/lib/rpm/redhat/brp-python-bytecompile '' 1 0 -j8 Bytecompiling .py files below /builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT/usr/lib/python3.15 using python3.15 + /usr/lib/rpm/redhat/brp-python-hardlink + /usr/bin/add-det --brp -j8 /builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT /builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT/usr/lib/python3.15/site-packages/specfile/__pycache__/constants.cpython-315.pyc: rewriting with normalized contents /builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT/usr/lib/python3.15/site-packages/specfile/__pycache__/exceptions.cpython-315.pyc: rewriting with normalized contents /builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT/usr/lib/python3.15/site-packages/specfile/__pycache__/formatter.cpython-315.pyc: rewriting with normalized contents /builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT/usr/lib/python3.15/site-packages/specfile/__pycache__/context_management.cpython-315.pyc: replacing with normalized version /builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT/usr/lib/python3.15/site-packages/specfile/__pycache__/__init__.cpython-315.pyc: rewriting with normalized contents /builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT/usr/lib/python3.15/site-packages/specfile/__pycache__/conditions.cpython-315.pyc: rewriting with normalized contents /builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT/usr/lib/python3.15/site-packages/specfile/__pycache__/macros.cpython-315.pyc: rewriting with normalized contents /builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT/usr/lib/python3.15/site-packages/specfile/__pycache__/macro_definitions.cpython-315.pyc: rewriting with normalized contents /builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT/usr/lib/python3.15/site-packages/specfile/__pycache__/options.cpython-315.pyc: rewriting with normalized contents /builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT/usr/lib/python3.15/site-packages/specfile/__pycache__/sourcelist.cpython-315.pyc: rewriting with normalized contents /builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT/usr/lib/python3.15/site-packages/specfile/__pycache__/sections.cpython-315.pyc: rewriting with normalized contents /builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT/usr/lib/python3.15/site-packages/specfile/__pycache__/types.cpython-315.pyc: rewriting with normalized contents /builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT/usr/lib/python3.15/site-packages/specfile/__pycache__/changelog.cpython-315.pyc: rewriting with normalized contents /builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT/usr/lib/python3.15/site-packages/specfile/__pycache__/prep.cpython-315.pyc: rewriting with normalized contents /builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT/usr/lib/python3.15/site-packages/specfile/__pycache__/spec_parser.cpython-315.pyc: rewriting with normalized contents /builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT/usr/lib/python3.15/site-packages/specfile/__pycache__/context_management.cpython-315.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT/usr/lib/python3.15/site-packages/specfile/__pycache__/sources.cpython-315.pyc: rewriting with normalized contents /builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT/usr/lib/python3.15/site-packages/specfile/__pycache__/utils.cpython-315.pyc: rewriting with normalized contents /builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT/usr/lib/python3.15/site-packages/specfile/__pycache__/sanitizer.cpython-315.pyc: rewriting with normalized contents /builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT/usr/lib/python3.15/site-packages/specfile/__pycache__/value_parser.cpython-315.pyc: rewriting with normalized contents /builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT/usr/lib/python3.15/site-packages/specfile/__pycache__/tags.cpython-315.pyc: rewriting with normalized contents /builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT/usr/lib/python3.15/site-packages/specfile/__pycache__/specfile.cpython-315.pyc: rewriting with normalized contents Scanned 9 directories and 70 files, processed 22 inodes, 22 modified (2 replaced + 20 rewritten), 0 unsupported format, 0 errors + /usr/bin/linkdupes --brp /builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT/usr Scanned 8 directories and 70 files, considered 70 files, read 0 files, linked 0 files, 0 errors sum of sizes of linked files: 0 bytes Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.EnpNo7 + umask 022 + cd /builddir/build/BUILD/python-specfile-0.41.1-build + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -march=rva23u64 -mabi=lp64d -fasynchronous-unwind-tables -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -march=rva23u64 -mabi=lp64d -fasynchronous-unwind-tables -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -march=rva23u64 -mabi=lp64d -fasynchronous-unwind-tables -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -march=rva23u64 -mabi=lp64d -fasynchronous-unwind-tables -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes --cap-lints=warn' + export RUSTFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd specfile-0.41.1 + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -march=rva23u64 -mabi=lp64d -fasynchronous-unwind-tables -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + PATH=/builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin + PYTHONPATH=/builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT/usr/lib64/python3.15/site-packages:/builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT/usr/lib/python3.15/site-packages + PYTHONDONTWRITEBYTECODE=1 + PYTEST_ADDOPTS=' --ignore=/builddir/build/BUILD/python-specfile-0.41.1-build/.pyproject-builddir' + PYTEST_XDIST_AUTO_NUM_WORKERS=8 + /usr/bin/pytest --verbose tests/unit tests/integration ============================= test session starts ============================== platform linux -- Python 3.15.0rc2, pytest-9.1.1, pluggy-1.6.0 -- /usr/bin/python3 cachedir: .pytest_cache rootdir: /builddir/build/BUILD/python-specfile-0.41.1-build/specfile-0.41.1 configfile: setup.cfg plugins: flexmock-0.13.0 collecting ... collected 909 items tests/unit/test_changelog.py::test_entry_evr[* Thu Jan 04 2007 Michael Schwendt -None] PASSED [ 0%] tests/unit/test_changelog.py::test_entry_evr[* Thu Jan 04 2007 Michael Schwendt -None] PASSED [ 0%] tests/unit/test_changelog.py::test_entry_evr[* Fri Jul 26 2024 Miroslav Such\xfd - ss981107-67-evr2] PASSED [ 0%] tests/unit/test_changelog.py::test_entry_evr[* Mon Jul 13 2020 Tom Stellard 4.0-0.4.pre2-evr3] PASSED [ 0%] tests/unit/test_changelog.py::test_entry_evr[* Fri Jul 20 2018 Gwyn Ciesla - 0.52-6-evr4] PASSED [ 0%] tests/unit/test_changelog.py::test_entry_evr[* Mon Feb 23 2009 Fedora Release Engineering - 1.23-3.20081106gitbe42b4-evr5] PASSED [ 0%] tests/unit/test_changelog.py::test_entry_evr[* Thu Feb 04 2016 Marcin Zajaczkowski - 1:0.9.10-6-evr6] PASSED [ 0%] tests/unit/test_changelog.py::test_entry_evr[* Mon Jan 03 2022 Fedora Kernel Team [5.16-0.rc8.55]-evr7] PASSED [ 0%] tests/unit/test_changelog.py::test_entry_evr[* Wed Jan 23 2002 Karsten Hopp (4.6-1)-evr8] PASSED [ 0%] tests/unit/test_changelog.py::test_entry_evr[* Thu Apr 9 2015 Jeffrey C. Ollie - 13.3.2-1:-evr9] PASSED [ 1%] tests/unit/test_changelog.py::test_entry_has_extended_timestamp[* Tue May 4 2021 Nikola Forr\xf3 - 0.1-1-False] PASSED [ 1%] tests/unit/test_changelog.py::test_entry_has_extended_timestamp[* Tue May 4 2021 Nikola Forr\xf3 - 0.1-1-False] PASSED [ 1%] tests/unit/test_changelog.py::test_entry_has_extended_timestamp[* Thu Jul 22 2021 Fedora Release Engineering - 0.1-2-False] PASSED [ 1%] tests/unit/test_changelog.py::test_entry_has_extended_timestamp[* Mon Oct 18 12:34:45 CEST 2021 Nikola Forr\xf3 - 0.2-1-True] PASSED [ 1%] tests/unit/test_changelog.py::test_entry_day_of_month_padding[* Tue May 4 2021 Nikola Forr\xf3 - 0.1-1-] PASSED [ 1%] tests/unit/test_changelog.py::test_entry_day_of_month_padding[* Tue May 04 2021 Nikola Forr\xf3 - 0.1-1-0] PASSED [ 1%] tests/unit/test_changelog.py::test_entry_day_of_month_padding[* Tue May 4 2021 Nikola Forr\xf3 - 0.1-1- ] PASSED [ 1%] tests/unit/test_changelog.py::test_entry_day_of_month_padding[* Thu Jul 22 2021 Fedora Release Engineering - 0.1-2-] PASSED [ 1%] tests/unit/test_changelog.py::test_entry_day_of_month_padding[* Mon Oct 18 12:34:45 CEST 2021 Nikola Forr\xf3 - 0.2-1-] PASSED [ 2%] tests/unit/test_changelog.py::test_entry_day_of_month_padding[* Mon Dec 11 2006 Author - 1.0-] PASSED [ 2%] tests/unit/test_changelog.py::test_entry_day_of_month_padding[* Invalid header-] PASSED [ 2%] tests/unit/test_changelog.py::test_filter[None-None-evrs0] PASSED [ 2%] tests/unit/test_changelog.py::test_filter[0.1-1-None-evrs1] PASSED [ 2%] tests/unit/test_changelog.py::test_filter[0.1-2-None-evrs2] PASSED [ 2%] tests/unit/test_changelog.py::test_filter[0.2-1-None-evrs3] PASSED [ 2%] tests/unit/test_changelog.py::test_filter[None-0.2-2-evrs4] PASSED [ 2%] tests/unit/test_changelog.py::test_filter[None-0.2-1-evrs5] PASSED [ 2%] tests/unit/test_changelog.py::test_filter[None-0.1-2-evrs6] PASSED [ 3%] tests/unit/test_changelog.py::test_filter[0.1-1-0.2-2-evrs7] PASSED [ 3%] tests/unit/test_changelog.py::test_filter[0.1-2-0.2-1-evrs8] PASSED [ 3%] tests/unit/test_changelog.py::test_filter[0.2-1-0.2-1-evrs9] PASSED [ 3%] tests/unit/test_changelog.py::test_filter[0.2-2-0.1-1-evrs10] PASSED [ 3%] tests/unit/test_changelog.py::test_filter[0.0.1-1-None-evrs11] PASSED [ 3%] tests/unit/test_changelog.py::test_filter[0.3-1-None-evrs12] PASSED [ 3%] tests/unit/test_changelog.py::test_filter[None-0.0.1-1-evrs13] PASSED [ 3%] tests/unit/test_changelog.py::test_filter[None-0.3-1-evrs14] PASSED [ 3%] tests/unit/test_changelog.py::test_filter[0.0.1-1-0.3-1-evrs15] PASSED [ 4%] tests/unit/test_changelog.py::test_parse PASSED [ 4%] tests/unit/test_changelog.py::test_suse_style_changelog_parse PASSED [ 4%] tests/unit/test_changelog.py::test_create_opensuse_changelog_assemble[timestamp0-Dan \u010cerm\xe1k -content0-entry0] PASSED [ 4%] tests/unit/test_changelog.py::test_create_opensuse_changelog_assemble[timestamp1-Dan \u010cerm\xe1k -content1-entry1] PASSED [ 4%] tests/unit/test_changelog.py::test_get_raw_section_data PASSED [ 4%] tests/unit/test_changelog.py::test_copy_changelog PASSED [ 4%] tests/unit/test_conditions.py::test_process_conditions[lines0-validity0-] PASSED [ 4%] tests/unit/test_conditions.py::test_process_conditions[lines1-validity1-] PASSED [ 4%] tests/unit/test_conditions.py::test_process_conditions[lines2-validity2-] PASSED [ 5%] tests/unit/test_conditions.py::test_process_conditions[lines3-validity3-] PASSED [ 5%] tests/unit/test_conditions.py::test_process_conditions[lines4-validity4-] PASSED [ 5%] tests/unit/test_formatter.py::test_format_expression[func('arg')-func('arg')] PASSED [ 5%] tests/unit/test_formatter.py::test_format_expression[func('arg1', "arg2")-func('arg1', 'arg2')] PASSED [ 5%] tests/unit/test_formatter.py::test_format_expression[func('arg1', 'arg\\'2')-func('arg1', "arg'2")] PASSED [ 5%] tests/unit/test_formatter.py::test_format_expression[func('arg', kwarg='val')-func('arg', kwarg='val')] PASSED [ 5%] tests/unit/test_formatter.py::test_format_expression[(None)-None] PASSED [ 5%] tests/unit/test_formatter.py::test_format_expression[(None,)-(None,)] PASSED [ 5%] tests/unit/test_formatter.py::test_format_expression[('a',"b",3)-('a', 'b', 3)] PASSED [ 6%] tests/unit/test_formatter.py::test_format_expression[[1,2,3,4]-[1, 2, 3, 4]] PASSED [ 6%] tests/unit/test_formatter.py::test_format_expression[{'key':'val'}-{'key': 'val'}] PASSED [ 6%] tests/unit/test_formatter.py::test_format_expression[-] PASSED [ 6%] tests/unit/test_formatter.py::test_format_expression[func1('first argument', True, func2(kwarg={42: ['nested list item 1', 'nested list item 2', 'nested list item 3']}), 0, indent=' ', spec=)-func1(\n 'first argument',\n True,\n func2(\n kwarg={\n 42: [\n 'nested list item 1',\n 'nested list item 2',\n 'nested list item 3',\n ],\n },\n ),\n 0,\n indent=' ',\n spec=,\n)] PASSED [ 6%] tests/unit/test_guess_packager.py::test_guess_packager_env PASSED [ 6%] tests/unit/test_guess_packager.py::test_guess_packager_macro PASSED [ 6%] tests/unit/test_guess_packager.py::test_guess_packager_git PASSED [ 6%] tests/unit/test_guess_packager.py::test_guess_packager_passwd PASSED [ 6%] tests/unit/test_guess_packager.py::test_guess_packager_pref1 PASSED [ 7%] tests/unit/test_guess_packager.py::test_guess_packager_pref2 PASSED [ 7%] tests/unit/test_guess_packager.py::test_guess_packager_pref3 PASSED [ 7%] tests/unit/test_guess_packager.py::test_guess_packager_pref4 PASSED [ 7%] tests/unit/test_guess_packager.py::test_guess_packager_empty PASSED [ 7%] tests/unit/test_macro_definitions.py::test_find PASSED [ 7%] tests/unit/test_macro_definitions.py::test_get PASSED [ 7%] tests/unit/test_macro_definitions.py::test_parse PASSED [ 7%] tests/unit/test_macro_definitions.py::test_get_raw_data PASSED [ 7%] tests/unit/test_macro_definitions.py::test_copy_macro_definitions PASSED [ 8%] tests/unit/test_macros.py::test_macros_parse PASSED [ 8%] tests/unit/test_macros.py::test_macros_remove PASSED [ 8%] tests/unit/test_macros.py::test_macros_remove_failure PASSED [ 8%] tests/unit/test_macros.py::test_macros_define PASSED [ 8%] tests/unit/test_macros.py::test_macros_reinit PASSED [ 8%] tests/unit/test_macros.py::test_macros_sideeffects PASSED [ 8%] tests/unit/test_options.py::test_positionals_get_items[vp:m:M:-tokens0-result0] PASSED [ 8%] tests/unit/test_options.py::test_positionals_get_items[vp:m:M:-tokens1-result1] PASSED [ 8%] tests/unit/test_options.py::test_positionals_get_items[vp:m:M:-tokens2-result2] PASSED [ 9%] tests/unit/test_options.py::test_positionals_insert[vp:m:M:-tokens0-0-test arg-2-TokenType.DOUBLE_QUOTED] PASSED [ 9%] tests/unit/test_options.py::test_positionals_insert[vp:m:M:-tokens1-1-123-4-TokenType.DEFAULT] PASSED [ 9%] tests/unit/test_options.py::test_positionals_insert[vp:m:M:-tokens2-0-test-0-TokenType.DEFAULT] PASSED [ 9%] tests/unit/test_options.py::test_options_valid_option[a:b:cDn:Tq-a-True] PASSED [ 9%] tests/unit/test_options.py::test_options_valid_option[a:b:cDn:Tq-q-True] PASSED [ 9%] tests/unit/test_options.py::test_options_valid_option[a:b:cDn:Tq-v-False] PASSED [ 9%] tests/unit/test_options.py::test_options_requires_argument[a:b:cDn:Tq-a-True] PASSED [ 9%] tests/unit/test_options.py::test_options_requires_argument[a:b:cDn:Tq-q-False] PASSED [ 9%] tests/unit/test_options.py::test_options_requires_argument[a:b:cDn:Tq-v-None] PASSED [ 10%] tests/unit/test_options.py::test_options_find_option[P:p:REb:z:F:d:o:Z-tokens0-p-result0] PASSED [ 10%] tests/unit/test_options.py::test_options_find_option[P:p:REb:z:F:d:o:Z-tokens1-b-result1] PASSED [ 10%] tests/unit/test_options.py::test_options_find_option[P:p:REb:z:F:d:o:Z-tokens2-E-result2] PASSED [ 10%] tests/unit/test_options.py::test_options_find_option[P:p:REb:z:F:d:o:Z-tokens3-F-result3] PASSED [ 10%] tests/unit/test_options.py::test_options_tokenize[-p1 -b .test -E-result0] PASSED [ 10%] tests/unit/test_options.py::test_options_tokenize[-p 28 -b .test\\ escape-result1] PASSED [ 10%] tests/unit/test_options.py::test_options_tokenize[-b ".test \\"double quotes\\""-result2] PASSED [ 10%] tests/unit/test_options.py::test_options_tokenize[-p1 -b .test_whitespace_at_the_end -M 2 -result3] PASSED [ 10%] tests/unit/test_options.py::test_options_tokenize[-q -n %{name}-%{version}%[%{rc}?"-rc":""]-result4] PASSED [ 11%] tests/unit/test_options.py::test_options_tokenize[-q -n '%{name}-%{version}'-result5] PASSED [ 11%] tests/unit/test_options.py::test_options_tokenize[-q -n "%{name}-%{version}"-result6] PASSED [ 11%] tests/unit/test_options.py::test_options_tokenize[-q -n '%{name}-%{version}%[%{rc}?"-rc":""]'-result7] PASSED [ 11%] tests/unit/test_options.py::test_options_tokenize[-q %{?prever:-n %{name}-%{prever}}-result8] PASSED [ 11%] tests/unit/test_options.py::test_options_stringify[tokens0--p1 -b .test -E] PASSED [ 11%] tests/unit/test_options.py::test_options_stringify[tokens1--p 28 -b .test\\ escape] PASSED [ 11%] tests/unit/test_options.py::test_options_stringify[tokens2--b ".test \\"double quotes\\""] PASSED [ 11%] tests/unit/test_options.py::test_options_stringify[tokens3--p1 -b .test_whitespace_at_the_end -M 2 ] PASSED [ 11%] tests/unit/test_options.py::test_options_stringify[tokens4--q -n %{name}-%{version}%[%{rc}?"-rc":""]] PASSED [ 11%] tests/unit/test_options.py::test_options_stringify[tokens5--q -n '%{name}-%{version}'] PASSED [ 12%] tests/unit/test_options.py::test_options_stringify[tokens6--q -n "%{name}-%{version}"] PASSED [ 12%] tests/unit/test_options.py::test_options_stringify[tokens7--q -n '%{name}-%{version}%[%{rc}?"-rc":""]'] PASSED [ 12%] tests/unit/test_options.py::test_options_stringify[tokens8--q %{?prever:-n %{name}-%{prever}}] PASSED [ 12%] tests/unit/test_prep.py::test_patch_macro_number[%patch2--p1-2] PASSED [ 12%] tests/unit/test_prep.py::test_patch_macro_number[%patch0028--p2-28] PASSED [ 12%] tests/unit/test_prep.py::test_patch_macro_number[%patch--p1-0] PASSED [ 12%] tests/unit/test_prep.py::test_patch_macro_number[%patch--P1-1] PASSED [ 12%] tests/unit/test_prep.py::test_patch_macro_number[%patch3--P5-3] PASSED [ 12%] tests/unit/test_prep.py::test_patch_macro_number[%patch0--P1 2-0] PASSED [ 13%] tests/unit/test_prep.py::test_patch_macro_number[%patch--P1 2-1] PASSED [ 13%] tests/unit/test_prep.py::test_patch_macro_number[%patch-2-2] PASSED [ 13%] tests/unit/test_prep.py::test_prep_macros_find PASSED [ 13%] tests/unit/test_prep.py::test_prep_add_patch_macro[lines_before0-0-True-options0-lines_after0] PASSED [ 13%] tests/unit/test_prep.py::test_prep_add_patch_macro[lines_before1-0-True-options1-lines_after1] PASSED [ 13%] tests/unit/test_prep.py::test_prep_add_patch_macro[lines_before2-28-False-options2-lines_after2] PASSED [ 13%] tests/unit/test_prep.py::test_prep_add_patch_macro[lines_before3-1001-False-options3-lines_after3] PASSED [ 13%] tests/unit/test_prep.py::test_prep_add_patch_macro[lines_before4-28-False-options4-lines_after4] PASSED [ 13%] tests/unit/test_prep.py::test_prep_remove_patch_macro[lines_before0-1-lines_after0] PASSED [ 14%] tests/unit/test_prep.py::test_prep_remove_patch_macro[lines_before1-0-lines_after1] PASSED [ 14%] tests/unit/test_prep.py::test_prep_parse PASSED [ 14%] tests/unit/test_prep.py::test_prep_get_raw_section_data PASSED [ 14%] tests/unit/test_prep.py::test_copy_prep PASSED [ 14%] tests/unit/test_sanitizer.py::test_substring_extraction[c=%{commit}; echo ${c:0:7}-%{sub %{commit} 1 7}] PASSED [ 14%] tests/unit/test_sanitizer.py::test_substring_extraction[c=%{commit};echo ${c:0:7}-%{sub %{commit} 1 7}] PASSED [ 14%] tests/unit/test_sanitizer.py::test_substring_extraction[c=%{commit0}; echo ${c:0:7}-%{sub %{commit0} 1 7}] PASSED [ 14%] tests/unit/test_sanitizer.py::test_substring_extraction[foo=%{version}; echo ${foo:0:5}-%{sub %{version} 1 5}] PASSED [ 14%] tests/unit/test_sanitizer.py::test_substring_extraction[foo=%{version}; echo ${foo:6}-%{sub %{version} 7}] PASSED [ 15%] tests/unit/test_sanitizer.py::test_substring_extraction[l=%{_lib}; echo ${l:3}-%{sub %{_lib} 4}] PASSED [ 15%] tests/unit/test_sanitizer.py::test_substring_extraction[c=%{version}; echo ${c:12:4}-%{sub %{version} 13 16}] PASSED [ 15%] tests/unit/test_sanitizer.py::test_substring_extraction[c=%{commit}; echo ${c:0:%{commit_abbrev}}-%{sub %{commit} 1 %{commit_abbrev}}] PASSED [ 15%] tests/unit/test_sanitizer.py::test_substring_extraction[c="%{git_commit}"; echo "${c:0:8}"-%{sub %{git_commit} 1 8}] PASSED [ 15%] tests/unit/test_sanitizer.py::test_substring_extraction[n=%{modname}; echo ${n:0:1}-%{sub %{modname} 1 1}] PASSED [ 15%] tests/unit/test_sanitizer.py::test_bash_replacement[v=%{version}; echo ${v//./_}-%{lua:print((rpm.expand("%{version}"):gsub("%.", "_")))}] PASSED [ 15%] tests/unit/test_sanitizer.py::test_bash_replacement[v=%{version}; echo ${v//./}-%{lua:print((rpm.expand("%{version}"):gsub("%.", "")))}] PASSED [ 15%] tests/unit/test_sanitizer.py::test_bash_replacement[n=%{name}; echo ${n//-/_}-%{lua:print((rpm.expand("%{name}"):gsub("%-", "_")))}] PASSED [ 15%] tests/unit/test_sanitizer.py::test_bash_replacement[b=%{built_tag_strip}; echo ${b/-/"~"}-%{lua:print((rpm.expand("%{built_tag_strip}"):gsub("%-", "~", 1)))}] PASSED [ 16%] tests/unit/test_sanitizer.py::test_bash_replacement[n=%{srcname}; echo ${n//-/.}-%{lua:print((rpm.expand("%{srcname}"):gsub("%-", ".")))}] PASSED [ 16%] tests/unit/test_sanitizer.py::test_bash_replacement[v=%{version}; echo ${v//./-}-%{lua:print((rpm.expand("%{version}"):gsub("%.", "-")))}] PASSED [ 16%] tests/unit/test_sanitizer.py::test_bash_replacement[d=%{inkscape_date}; echo ${d//-/}-%{lua:print((rpm.expand("%{inkscape_date}"):gsub("%-", "")))}] PASSED [ 16%] tests/unit/test_sanitizer.py::test_bash_replacement[rel="%{releasenum}"; echo "${rel//-/}"-%{lua:print((rpm.expand("%{releasenum}"):gsub("%-", "")))}] PASSED [ 16%] tests/unit/test_sanitizer.py::test_bash_replacement[v=%{version}; echo ${v//./%2F}-%{lua:print((rpm.expand("%{version}"):gsub("%.", "%%2F")))}] PASSED [ 16%] tests/unit/test_sanitizer.py::test_case_conversion[t="%{Bg_Name}";echo ${t,,}-%{lower:%{Bg_Name}}] PASSED [ 16%] tests/unit/test_sanitizer.py::test_case_conversion[v=%{name}; echo ${v^^}-%{upper:%{name}}] PASSED [ 16%] tests/unit/test_sanitizer.py::test_suffix_removal[ver=%{version}; echo ${ver%%%%.*}-%{lua:local v=rpm.expand("%{version}") print(v:match("^(.-)%.") or v)}] PASSED [ 16%] tests/unit/test_sanitizer.py::test_suffix_removal[v=%{version}; echo ${v%.*}-%{lua:local v=rpm.expand("%{version}") print(v:match("^(.*)%.") or v)}] PASSED [ 17%] tests/unit/test_sanitizer.py::test_suffix_removal[v=%{version}; echo ${v%%%%*}-%{lua:print("")}] PASSED [ 17%] tests/unit/test_sanitizer.py::test_suffix_removal[v=%{version}; echo ${v%*}-%{lua:print(rpm.expand("%{version}"))}] PASSED [ 17%] tests/unit/test_sanitizer.py::test_prefix_removal[v=%{version}; echo ${v##*.}-%{lua:local v=rpm.expand("%{version}") print(v:match(".*%.(.*)") or v)}] PASSED [ 17%] tests/unit/test_sanitizer.py::test_prefix_removal[v=%{version}; echo ${v#*.}-%{lua:local v=rpm.expand("%{version}") print(v:match("%.(.*)") or v)}] PASSED [ 17%] tests/unit/test_sanitizer.py::test_prefix_removal[v=%{version}; echo ${v#*#}-%{lua:local v=rpm.expand("%{version}") print(v:match("#(.*)") or v)}] PASSED [ 17%] tests/unit/test_sanitizer.py::test_prefix_removal[v=%{version}; echo ${v##*#}-%{lua:local v=rpm.expand("%{version}") print(v:match(".*#(.*)") or v)}] PASSED [ 17%] tests/unit/test_sanitizer.py::test_prefix_removal[v=%{version}; echo ${v##*}-%{lua:print("")}] PASSED [ 17%] tests/unit/test_sanitizer.py::test_prefix_removal[v=%{version}; echo ${v#*}-%{lua:print(rpm.expand("%{version}"))}] PASSED [ 17%] tests/unit/test_sanitizer.py::test_pipe_to_cut[echo %{version} | cut -d. -f3-%{lua:local v=rpm.expand("%{version}") local i=0 for f in v:gmatch("[^%.]+") do i=i+1 if i==3 then print(f) break end end}] PASSED [ 18%] tests/unit/test_sanitizer.py::test_pipe_to_cut[echo %{version} | cut -d. -f1-2-%{lua:local v=rpm.expand("%{version}") local t={} for f in v:gmatch("[^%.]+") do t[#t+1]=f end print(table.concat(t,".",1,2))}0] PASSED [ 18%] tests/unit/test_sanitizer.py::test_pipe_to_cut[echo %{version} | cut -d. -f1-%{lua:local v=rpm.expand("%{version}") local i=0 for f in v:gmatch("[^%.]+") do i=i+1 if i==1 then print(f) break end end}] PASSED [ 18%] tests/unit/test_sanitizer.py::test_pipe_to_cut[echo %{version} | cut -d. -f1-2-%{lua:local v=rpm.expand("%{version}") local t={} for f in v:gmatch("[^%.]+") do t[#t+1]=f end print(table.concat(t,".",1,2))}1] PASSED [ 18%] tests/unit/test_sanitizer.py::test_pipe_to_cut[echo %{version} | cut -d. -f-2-%{lua:local v=rpm.expand("%{version}") local t={} for f in v:gmatch("[^%.]+") do t[#t+1]=f end print(table.concat(t,".",1,2))}] PASSED [ 18%] tests/unit/test_sanitizer.py::test_pipe_to_cut[echo %{version} | cut -d '^' -f 1-%{lua:local v=rpm.expand("%{version}") local i=0 for f in v:gmatch("[^%^]+") do i=i+1 if i==1 then print(f) break end end}] PASSED [ 18%] tests/unit/test_sanitizer.py::test_pipe_to_cut[echo %{version} | cut -d'-' -f 1-%{lua:local v=rpm.expand("%{version}") local i=0 for f in v:gmatch("[^%-]+") do i=i+1 if i==1 then print(f) break end end}] PASSED [ 18%] tests/unit/test_sanitizer.py::test_pipe_to_cut[echo %{version} | cut -d. -f1-3-%{lua:local v=rpm.expand("%{version}") local t={} for f in v:gmatch("[^%.]+") do t[#t+1]=f end print(table.concat(t,".",1,3))}] PASSED [ 18%] tests/unit/test_sanitizer.py::test_pipe_to_cut_bytes[echo %{git_commit} | cut -c -8-%{sub %{git_commit} 1 8}] PASSED [ 18%] tests/unit/test_sanitizer.py::test_pipe_to_cut_bytes[echo %{gitcommit} | cut -c 1-8-%{sub %{gitcommit} 1 8}] PASSED [ 19%] tests/unit/test_sanitizer.py::test_pipe_to_cut_bytes[echo %{snapshot_rev} | cut -c1-6-%{sub %{snapshot_rev} 1 6}] PASSED [ 19%] tests/unit/test_sanitizer.py::test_pipe_to_tr[echo "%{name}" | tr '[:upper:]' '[:lower:]'-%{lower:%{name}}] PASSED [ 19%] tests/unit/test_sanitizer.py::test_pipe_to_tr[echo %{upstream_prever} | tr '[:upper:]' '[:lower:]'-%{lower:%{upstream_prever}}] PASSED [ 19%] tests/unit/test_sanitizer.py::test_pipe_to_tr[echo %{version} | tr . _-%{lua:print((rpm.expand("%{version}"):gsub("%.", "_")))}] PASSED [ 19%] tests/unit/test_sanitizer.py::test_pipe_to_tr[echo '%{version}' | tr '^' '.'-%{lua:print((rpm.expand("%{version}"):gsub("%^", ".")))}] PASSED [ 19%] tests/unit/test_sanitizer.py::test_pipe_to_tr[echo '%{version}' | tr -d .-%{lua:print((rpm.expand("%{version}"):gsub("%.", "")))}] PASSED [ 19%] tests/unit/test_sanitizer.py::test_pipe_to_tr[echo '%{version}' | tr -d '~'-%{lua:print((rpm.expand("%{version}"):gsub("~", "")))}] PASSED [ 19%] tests/unit/test_sanitizer.py::test_pipe_to_tr[echo %{date} | tr -d --%{lua:print((rpm.expand("%{date}"):gsub("%-", "")))}] PASSED [ 19%] tests/unit/test_sanitizer.py::test_pipe_to_tr[echo %{version} | tr '|' '.'-%{lua:print((rpm.expand("%{version}"):gsub("|", ".")))}] PASSED [ 20%] tests/unit/test_sanitizer.py::test_pipe_to_sed[echo %{version} | sed 's/\\./-/g'-%{lua:print((rpm.expand("%{version}"):gsub("%.", "-")))}] PASSED [ 20%] tests/unit/test_sanitizer.py::test_pipe_to_sed[echo %{version} | sed 's|\\.|_|g'-%{lua:print((rpm.expand("%{version}"):gsub("%.", "_")))}] PASSED [ 20%] tests/unit/test_sanitizer.py::test_pipe_to_sed[echo %{py3_shebang_flags} | sed 's|s||'-%{lua:print((rpm.expand("%{py3_shebang_flags}"):gsub("s", "", 1)))}] PASSED [ 20%] tests/unit/test_sanitizer.py::test_pipe_to_sed[echo %{version} | sed "s/\\./_/g"-%{lua:print((rpm.expand("%{version}"):gsub("%.", "_")))}] PASSED [ 20%] tests/unit/test_sanitizer.py::test_pipe_to_sed[echo %{unversion} | sed 's/_/./g'-%{lua:print((rpm.expand("%{unversion}"):gsub("_", ".")))}] PASSED [ 20%] tests/unit/test_sanitizer.py::test_pipe_to_sed[echo 1.2.3-rc4 | sed 's/-/~/g'-%{lua:print((rpm.expand("%{quote:1.2.3-rc4}"):gsub("-", "~")))}] PASSED [ 20%] tests/unit/test_sanitizer.py::test_pipe_to_sed[echo %{version} | sed 's/\\\\./_/g'-%{lua:print((rpm.expand("%{version}"):gsub("%.", "_")))}] PASSED [ 20%] tests/unit/test_sanitizer.py::test_chained_sed PASSED [ 20%] tests/unit/test_sanitizer.py::test_chained_sed_rpm_escaped PASSED [ 21%] tests/unit/test_sanitizer.py::test_piped_commands[echo %{version} | cut -d. -f1 | cut -d~ -f1-%{lua:local v=rpm.expand("%{version}") do local t={} for f in v:gmatch("[^%.]+") do t[#t+1]=f end v=t[1] or "" end do local t={} for f in v:gmatch("[^~]+") do t[#t+1]=f end v=t[1] or "" end print(v)}] PASSED [ 21%] tests/unit/test_sanitizer.py::test_piped_commands[echo %{version} | cut -d. -f1 | tr A B-%{lua:local v=rpm.expand("%{version}") do local t={} for f in v:gmatch("[^%.]+") do t[#t+1]=f end v=t[1] or "" end v=(v:gsub("A", "B")) print(v)}] PASSED [ 21%] tests/unit/test_sanitizer.py::test_piped_commands[echo %{version} | tr '~' '.' | cut -d. -f1-%{lua:local v=rpm.expand("%{version}") v=(v:gsub("~", ".")) do local t={} for f in v:gmatch("[^%.]+") do t[#t+1]=f end v=t[1] or "" end print(v)}] PASSED [ 21%] tests/unit/test_sanitizer.py::test_piped_commands[echo %{version} | cut -d. -f1 | unsupported_command-%{nil}] PASSED [ 21%] tests/unit/test_sanitizer.py::test_var_piped_commands[c=%{version}; echo $c | cut -d. -f1 | cut -d~ -f1-%{lua:local v=rpm.expand("%{version}") do local t={} for f in v:gmatch("[^%.]+") do t[#t+1]=f end v=t[1] or "" end do local t={} for f in v:gmatch("[^~]+") do t[#t+1]=f end v=t[1] or "" end print(v)}] PASSED [ 21%] tests/unit/test_sanitizer.py::test_pipe_to_awk[echo %{version} | awk -F. '{print $1"."$2}'-%{lua:local v=rpm.expand("%{version}") local t={} for f in v:gmatch("[^%.]+") do t[#t+1]=f end print(t[1] .. "." .. t[2])}] PASSED [ 21%] tests/unit/test_sanitizer.py::test_pipe_to_awk[echo %{version} | awk -F. '{print $1}'-%{lua:local v=rpm.expand("%{version}") local t={} for f in v:gmatch("[^%.]+") do t[#t+1]=f end print(t[1])}] PASSED [ 21%] tests/unit/test_sanitizer.py::test_herestring[tr . _ <<< %{version}-%{lua:print((rpm.expand("%{version}"):gsub("%.", "_")))}] PASSED [ 21%] tests/unit/test_sanitizer.py::test_herestring[tr - . <<< %{upstreamver}-%{lua:print((rpm.expand("%{upstreamver}"):gsub("%-", ".")))}] PASSED [ 22%] tests/unit/test_sanitizer.py::test_herestring[cut -d. -f1 <<< %{version}-%{lua:local v=rpm.expand("%{version}") local i=0 for f in v:gmatch("[^%.]+") do i=i+1 if i==1 then print(f) break end end}] PASSED [ 22%] tests/unit/test_sanitizer.py::test_herestring[cut -d. -f1-2 <<< %{version}-%{lua:local v=rpm.expand("%{version}") local t={} for f in v:gmatch("[^%.]+") do t[#t+1]=f end print(table.concat(t,".",1,2))}] PASSED [ 22%] tests/unit/test_sanitizer.py::test_herestring[cut -b -7 <<< %{emacscommit}-%{sub %{emacscommit} 1 7}] PASSED [ 22%] tests/unit/test_sanitizer.py::test_herestring[tr -d . <<< %{version}-%{lua:print((rpm.expand("%{version}"):gsub("%.", "")))}] PASSED [ 22%] tests/unit/test_sanitizer.py::test_herestring[sed 's/\\.//g' <<<%{version}-%{lua:print((rpm.expand("%{version}"):gsub("%.", "")))}] PASSED [ 22%] tests/unit/test_sanitizer.py::test_herestring[sed 's/-/~/g' <<<1.2.3-rc4-%{lua:print((rpm.expand("%{quote:1.2.3-rc4}"):gsub("-", "~")))}] PASSED [ 22%] tests/unit/test_sanitizer.py::test_variable_indirection[c=%{version}; echo $c | cut -d. -f1-%{lua:local v=rpm.expand("%{version}") local i=0 for f in v:gmatch("[^%.]+") do i=i+1 if i==1 then print(f) break end end}] PASSED [ 22%] tests/unit/test_sanitizer.py::test_variable_indirection[v=%{version}; tr . _ <<< $v-%{lua:print((rpm.expand("%{version}"):gsub("%.", "_")))}] PASSED [ 22%] tests/unit/test_sanitizer.py::test_bash_array_field[foo=%{version}; a=(${foo//./ }); echo ${a[0]} -%{lua:local v=rpm.expand("%{version}") local i=0 for f in v:gmatch("[^%.]+") do i=i+1 if i==1 then print(f) break end end}] PASSED [ 22%] tests/unit/test_sanitizer.py::test_bash_array_field[foo=%{version}; a=(${foo//./ }); echo ${a[1]} -%{lua:local v=rpm.expand("%{version}") local i=0 for f in v:gmatch("[^%.]+") do i=i+1 if i==2 then print(f) break end end}] PASSED [ 23%] tests/unit/test_sanitizer.py::test_date_formatting[date +"%Y%m%d"-%{lua:print(os.date("%Y%m%d"))}] PASSED [ 23%] tests/unit/test_sanitizer.py::test_date_formatting[date +'%Y%m%d'-%{lua:print(os.date("%Y%m%d"))}] PASSED [ 23%] tests/unit/test_sanitizer.py::test_date_formatting[date -u +'%Y-%m-%dT%H:%M:%SZ'-%{lua:print(os.date("!%Y-%m-%dT%H:%M:%SZ"))}] PASSED [ 23%] tests/unit/test_sanitizer.py::test_date_formatting[date +"%Y-%d-%m"-%{lua:print(os.date("%Y-%d-%m"))}] PASSED [ 23%] tests/unit/test_sanitizer.py::test_arithmetic[echo $((%{__isa_bits}+0))-%[%{__isa_bits}+0]] PASSED [ 23%] tests/unit/test_sanitizer.py::test_arithmetic[echo $((%{__isa_bits}+2))-%[%{__isa_bits}+2]] PASSED [ 23%] tests/unit/test_sanitizer.py::test_arithmetic[echo $((%{ver_minor}+1))-%[%{ver_minor}+1]] PASSED [ 23%] tests/unit/test_sanitizer.py::test_arithmetic[echo $((%{sover}-1))-%[%{sover}-1]] PASSED [ 23%] tests/unit/test_sanitizer.py::test_arithmetic[ echo $(( %majorversion + 1 )) -%[%majorversion + 1]] PASSED [ 24%] tests/unit/test_sanitizer.py::test_basename_dirname[basename %{_python3_include}-%{lua:print((rpm.expand("%{_python3_include}"):match("[^/]+$")))}] PASSED [ 24%] tests/unit/test_sanitizer.py::test_basename_dirname[dirname %{bashcompdir}-%{lua:print((rpm.expand("%{bashcompdir}"):match("^(.*)/")))}] PASSED [ 24%] tests/unit/test_sanitizer.py::test_basename_dirname[dirname %{compdir}-%{lua:print((rpm.expand("%{compdir}"):match("^(.*)/")))}] PASSED [ 24%] tests/unit/test_sanitizer.py::test_string_comparison_not_equal PASSED [ 24%] tests/unit/test_sanitizer.py::test_string_comparison_equal PASSED [ 24%] tests/unit/test_sanitizer.py::test_empty_test PASSED [ 24%] tests/unit/test_sanitizer.py::test_printf_truncation PASSED [ 24%] tests/unit/test_sanitizer.py::test_printf_float PASSED [ 24%] tests/unit/test_sanitizer.py::test_echo_concat[echo %{optflags} -fno-strict-aliasing-%{optflags} -fno-strict-aliasing] PASSED [ 25%] tests/unit/test_sanitizer.py::test_echo_concat[echo %{build_ldflags} -fuse-ld=lld-%{build_ldflags} -fuse-ld=lld] PASSED [ 25%] tests/unit/test_sanitizer.py::test_echo_concat[echo %{optflags} -D_DEFAULT_SOURCE-%{optflags} -D_DEFAULT_SOURCE] PASSED [ 25%] tests/unit/test_sanitizer.py::test_echo_concat[echo %{optflags} -Wno-error=dangling-reference-%{optflags} -Wno-error=dangling-reference] PASSED [ 25%] tests/unit/test_sanitizer.py::test_cut_bytes_with_macro_offset PASSED [ 25%] tests/unit/test_sanitizer.py::test_unconvertible_returns_nil[octave-config -p VERSION || echo 0] PASSED [ 25%] tests/unit/test_sanitizer.py::test_unconvertible_returns_nil[python3-config --abiflags] PASSED [ 25%] tests/unit/test_sanitizer.py::test_unconvertible_returns_nil[pkg-config --modversion qwt] PASSED [ 25%] tests/unit/test_sanitizer.py::test_unconvertible_returns_nil[/usr/bin/getconf _NPROCESSORS_ONLN] PASSED [ 25%] tests/unit/test_sanitizer.py::test_unconvertible_returns_nil[uname -m] PASSED [ 26%] tests/unit/test_sanitizer.py::test_unconvertible_returns_nil[hostname] PASSED [ 26%] tests/unit/test_sanitizer.py::test_unconvertible_returns_nil[id -un] PASSED [ 26%] tests/unit/test_sanitizer.py::test_unconvertible_returns_nil[mktemp --directory] PASSED [ 26%] tests/unit/test_sanitizer.py::test_unconvertible_returns_nil[ruby -rrbconfig -e "puts RbConfig::CONFIG['vendorlibdir']"] PASSED [ 26%] tests/unit/test_sanitizer.py::test_lua_safe_code[print(rpm.expand("%{version}"))] PASSED [ 26%] tests/unit/test_sanitizer.py::test_lua_safe_code[print((rpm.expand("%{version}"):gsub("%.", "_")))] PASSED [ 26%] tests/unit/test_sanitizer.py::test_lua_safe_code[print(os.date("%Y%m%d"))] PASSED [ 26%] tests/unit/test_sanitizer.py::test_lua_safe_code[print(os.date("!%Y-%m-%dT%H:%M:%SZ"))] PASSED [ 26%] tests/unit/test_sanitizer.py::test_lua_safe_code[print(os.clock())] PASSED [ 27%] tests/unit/test_sanitizer.py::test_lua_safe_code[print(os.time())] PASSED [ 27%] tests/unit/test_sanitizer.py::test_lua_safe_code[print(os.difftime(os.time(), 0))] PASSED [ 27%] tests/unit/test_sanitizer.py::test_lua_safe_code[local v=rpm.expand("%{version}") print(v:match("^(.-)%.") or v)] PASSED [ 27%] tests/unit/test_sanitizer.py::test_lua_safe_code[local v=rpm.expand("%{version}") local t={} for f in v:gmatch("[^%.]+") do t[#t+1]=f end print(table.concat(t,".",1,2))] PASSED [ 27%] tests/unit/test_sanitizer.py::test_lua_safe_code[print(string.len("hello"))] PASSED [ 27%] tests/unit/test_sanitizer.py::test_lua_safe_code[print(math.floor(3.7))] PASSED [ 27%] tests/unit/test_sanitizer.py::test_lua_safe_code[print(math.max(1, 2, 3))] PASSED [ 27%] tests/unit/test_sanitizer.py::test_lua_safe_code[print(table.concat({"a", "b"}, ","))] PASSED [ 27%] tests/unit/test_sanitizer.py::test_lua_safe_code[print(tostring(42))] PASSED [ 28%] tests/unit/test_sanitizer.py::test_lua_safe_code[print(tonumber("42"))] PASSED [ 28%] tests/unit/test_sanitizer.py::test_lua_safe_code[print(type("hello"))] PASSED [ 28%] tests/unit/test_sanitizer.py::test_lua_safe_code[local x = 1 print(x)] PASSED [ 28%] tests/unit/test_sanitizer.py::test_lua_safe_code[print(string.format("%.4f", tonumber(rpm.expand("%{version}"))))] PASSED [ 28%] tests/unit/test_sanitizer.py::test_lua_safe_code[print(string.format("%d", 42))] PASSED [ 28%] tests/unit/test_sanitizer.py::test_lua_safe_code[print(string.format("%%.4f", tonumber(rpm.expand("%{version}"))))] PASSED [ 28%] tests/unit/test_sanitizer.py::test_lua_safe_code[print(rpm.expand("%{version}")) -- a comment] PASSED [ 28%] tests/unit/test_sanitizer.py::test_lua_safe_code[local x = 1 --[[ block comment ]] print(x)] PASSED [ 28%] tests/unit/test_sanitizer.py::test_lua_unsafe_direct_calls[os.execute("id")] PASSED [ 29%] tests/unit/test_sanitizer.py::test_lua_unsafe_direct_calls[os.remove("/tmp/foo")] PASSED [ 29%] tests/unit/test_sanitizer.py::test_lua_unsafe_direct_calls[os.rename("/tmp/a", "/tmp/b")] PASSED [ 29%] tests/unit/test_sanitizer.py::test_lua_unsafe_direct_calls[os.exit(0)] PASSED [ 29%] tests/unit/test_sanitizer.py::test_lua_unsafe_direct_calls[io.open("/etc/passwd")] PASSED [ 29%] tests/unit/test_sanitizer.py::test_lua_unsafe_direct_calls[io.popen("id")] PASSED [ 29%] tests/unit/test_sanitizer.py::test_lua_unsafe_direct_calls[io.lines("/etc/passwd")] PASSED [ 29%] tests/unit/test_sanitizer.py::test_lua_unsafe_direct_calls[io.tmpfile()] PASSED [ 29%] tests/unit/test_sanitizer.py::test_lua_unsafe_direct_calls[require("os")] PASSED [ 29%] tests/unit/test_sanitizer.py::test_lua_unsafe_direct_calls[dofile("/tmp/evil.lua")] PASSED [ 30%] tests/unit/test_sanitizer.py::test_lua_unsafe_direct_calls[loadfile("/tmp/evil.lua")] PASSED [ 30%] tests/unit/test_sanitizer.py::test_lua_unsafe_direct_calls[loadstring("os.execute('id')")()] PASSED [ 30%] tests/unit/test_sanitizer.py::test_lua_unsafe_direct_calls[load("os.execute('id')")()] PASSED [ 30%] tests/unit/test_sanitizer.py::test_lua_unsafe_direct_calls[debug.getinfo(1)] PASSED [ 30%] tests/unit/test_sanitizer.py::test_lua_unsafe_direct_calls[debug.getregistry()] PASSED [ 30%] tests/unit/test_sanitizer.py::test_lua_unsafe_direct_calls[package.loadlib("/lib/libc.so.6", "system")] PASSED [ 30%] tests/unit/test_sanitizer.py::test_lua_unsafe_direct_calls[collectgarbage()] PASSED [ 30%] tests/unit/test_sanitizer.py::test_lua_unsafe_direct_calls[coroutine.create(function() end)] PASSED [ 30%] tests/unit/test_sanitizer.py::test_lua_unsafe_direct_calls[rpm.define("evil_macro 1")] PASSED [ 31%] tests/unit/test_sanitizer.py::test_lua_unsafe_direct_calls[rpm.undefine("Name")] PASSED [ 31%] tests/unit/test_sanitizer.py::test_lua_unsafe_direct_calls[rpm.register(function() end)] PASSED [ 31%] tests/unit/test_sanitizer.py::test_lua_unsafe_direct_calls[rpm.execute("id")] PASSED [ 31%] tests/unit/test_sanitizer.py::test_lua_unsafe_direct_calls[rpm.redirect2macro("foo")] PASSED [ 31%] tests/unit/test_sanitizer.py::test_lua_unsafe_direct_calls[posix.exec("/bin/sh")] PASSED [ 31%] tests/unit/test_sanitizer.py::test_lua_unsafe_direct_calls[fedora.rpm.vercmp("1", "2")] PASSED [ 31%] tests/unit/test_sanitizer.py::test_lua_unsafe_direct_calls[string.dump(print)] PASSED [ 31%] tests/unit/test_sanitizer.py::test_lua_unsafe_direct_calls[string.char(37, 40)] PASSED [ 31%] tests/unit/test_sanitizer.py::test_lua_unsafe_direct_calls[string.sub("hello", 1, 3)] PASSED [ 32%] tests/unit/test_sanitizer.py::test_lua_unsafe_direct_calls[string.find("hello", "l")] PASSED [ 32%] tests/unit/test_sanitizer.py::test_lua_unsafe_direct_calls[string.reverse("hello")] PASSED [ 32%] tests/unit/test_sanitizer.py::test_lua_unsafe_direct_calls[string.rep("x", 5)] PASSED [ 32%] tests/unit/test_sanitizer.py::test_lua_unsafe_direct_calls[string.format("%c", 37)] PASSED [ 32%] tests/unit/test_sanitizer.py::test_lua_unsafe_direct_calls[string.format("%s", "hello")] PASSED [ 32%] tests/unit/test_sanitizer.py::test_lua_unsafe_direct_calls[string.format("%q", "hello")] PASSED [ 32%] tests/unit/test_sanitizer.py::test_lua_unsafe_direct_calls[string.format(var)] PASSED [ 32%] tests/unit/test_sanitizer.py::test_lua_unsafe_identifiers[_G["os"]["execute"]("id")] PASSED [ 32%] tests/unit/test_sanitizer.py::test_lua_unsafe_identifiers[_G['os']['execute']('id')] PASSED [ 33%] tests/unit/test_sanitizer.py::test_lua_unsafe_identifiers[rawget(_G, "os")] PASSED [ 33%] tests/unit/test_sanitizer.py::test_lua_unsafe_identifiers[rawset(_G, "evil", function() end)] PASSED [ 33%] tests/unit/test_sanitizer.py::test_lua_unsafe_identifiers[rawequal(_G, _G)] PASSED [ 33%] tests/unit/test_sanitizer.py::test_lua_unsafe_identifiers[getfenv(0)] PASSED [ 33%] tests/unit/test_sanitizer.py::test_lua_unsafe_identifiers[setfenv(1, {})] PASSED [ 33%] tests/unit/test_sanitizer.py::test_lua_unsafe_identifiers[getmetatable("")] PASSED [ 33%] tests/unit/test_sanitizer.py::test_lua_unsafe_identifiers[setmetatable({}, {})] PASSED [ 33%] tests/unit/test_sanitizer.py::test_lua_unsafe_identifiers[newproxy(true)] PASSED [ 33%] tests/unit/test_sanitizer.py::test_lua_unsafe_identifiers[module("evil")] PASSED [ 33%] tests/unit/test_sanitizer.py::test_lua_unsafe_identifiers[pcall(load, "os.execute('id')")] PASSED [ 34%] tests/unit/test_sanitizer.py::test_lua_unsafe_identifiers[xpcall(load, print, "os.execute('id')")] PASSED [ 34%] tests/unit/test_sanitizer.py::test_lua_unsafe_identifiers[pcall(function() end)] PASSED [ 34%] tests/unit/test_sanitizer.py::test_lua_unsafe_identifiers[xpcall(function() end, print)] PASSED [ 34%] tests/unit/test_sanitizer.py::test_lua_unsafe_bracket_notation[local x = {}; x["os"] = true] PASSED [ 34%] tests/unit/test_sanitizer.py::test_lua_unsafe_bracket_notation[local x = {}; x['cmd'] = 'id'] PASSED [ 34%] tests/unit/test_sanitizer.py::test_lua_unsafe_bracket_notation[os["\\".."]] PASSED [ 34%] tests/unit/test_sanitizer.py::test_lua_unsafe_bracket_notation[os[string.char(101,120,101,99,117,116,101)]()] PASSED [ 34%] tests/unit/test_sanitizer.py::test_lua_unsafe_bracket_notation[os[[[execute]]]()] PASSED [ 34%] tests/unit/test_sanitizer.py::test_lua_unsafe_bracket_notation[os[var]] PASSED [ 35%] tests/unit/test_sanitizer.py::test_lua_unsafe_variable_aliasing[local e = _G e.os.execute("id")] PASSED [ 35%] tests/unit/test_sanitizer.py::test_lua_unsafe_variable_aliasing[local r = rawget print(r)] PASSED [ 35%] tests/unit/test_sanitizer.py::test_lua_unsafe_variable_aliasing[local d = debug d.getinfo(1)] PASSED [ 35%] tests/unit/test_sanitizer.py::test_lua_unsafe_variable_aliasing[local i = io i.popen("id")] PASSED [ 35%] tests/unit/test_sanitizer.py::test_lua_unsafe_variable_aliasing[local l = loadstring l("print(1)")()] PASSED [ 35%] tests/unit/test_sanitizer.py::test_lua_unsafe_variable_aliasing[local p = package p.loadlib("x", "y")] PASSED [ 35%] tests/unit/test_sanitizer.py::test_lua_unsafe_spaced_dot[os . execute("id")] PASSED [ 35%] tests/unit/test_sanitizer.py::test_lua_unsafe_spaced_dot[os . execute("id")] PASSED [ 35%] tests/unit/test_sanitizer.py::test_lua_unsafe_spaced_dot[os\t.\texecute("id")] PASSED [ 36%] tests/unit/test_sanitizer.py::test_lua_unsafe_paren_bypass[(os).execute("id")] PASSED [ 36%] tests/unit/test_sanitizer.py::test_lua_unsafe_paren_bypass[((os)).execute("id")] PASSED [ 36%] tests/unit/test_sanitizer.py::test_lua_unsafe_paren_bypass[(rpm).define("evil 1")] PASSED [ 36%] tests/unit/test_sanitizer.py::test_lua_unsafe_paren_bypass[(string).dump(print)] PASSED [ 36%] tests/unit/test_sanitizer.py::test_lua_unsafe_colon_access[os:execute("id")] PASSED [ 36%] tests/unit/test_sanitizer.py::test_lua_unsafe_colon_access[os:exit(0)] PASSED [ 36%] tests/unit/test_sanitizer.py::test_lua_unsafe_colon_access[rpm:define("evil 1")] PASSED [ 36%] tests/unit/test_sanitizer.py::test_lua_unsafe_comment_bypass[os.--[[comment]]execute("id")] PASSED [ 36%] tests/unit/test_sanitizer.py::test_lua_unsafe_comment_bypass[os.--[[x]]exit(0)] PASSED [ 37%] tests/unit/test_sanitizer.py::test_lua_unsafe_long_comment_bypass[--[=[ ]=] os.execute("id")] PASSED [ 37%] tests/unit/test_sanitizer.py::test_lua_unsafe_long_comment_bypass[--[==[ ]==] os.execute("id")] PASSED [ 37%] tests/unit/test_sanitizer.py::test_lua_unsafe_long_comment_bypass[print("safe" --[=[ ]=]) os.execute("id")] PASSED [ 37%] tests/unit/test_sanitizer.py::test_lua_unsafe_long_comment_bypass[--[===[ ]===] io.popen("id")] PASSED [ 37%] tests/unit/test_sanitizer.py::test_lua_unsafe_rpm_expand_bypass[rpm.expand("%(whoami)")] PASSED [ 37%] tests/unit/test_sanitizer.py::test_lua_unsafe_rpm_expand_bypass[rpm.expand("%{lua:os.execute('id')}")] PASSED [ 37%] tests/unit/test_sanitizer.py::test_lua_unsafe_rpm_expand_bypass[print(rpm.expand("%(cat /etc/passwd)"))] PASSED [ 37%] tests/unit/test_sanitizer.py::test_lua_unsafe_rpm_expand_bypass[rpm.expand('%(id)')] PASSED [ 37%] tests/unit/test_sanitizer.py::test_lua_unsafe_rpm_expand_bypass[local x = rpm.expand("%(uname -a)") print(x)] PASSED [ 38%] tests/unit/test_sanitizer.py::test_lua_unsafe_rpm_expand_bypass[rpm.expand("%{load:/tmp/evil.lua}")] PASSED [ 38%] tests/unit/test_sanitizer.py::test_lua_unsafe_rpm_expand_bypass[rpm.expand("%{include:/tmp/evil.spec}")] PASSED [ 38%] tests/unit/test_sanitizer.py::test_lua_unsafe_rpm_expand_bypass[rpm.expand("%{uncompress:/tmp/file.gz}")] PASSED [ 38%] tests/unit/test_sanitizer.py::test_lua_unsafe_rpm_expand_bypass[print(rpm.expand("%{load: /tmp/evil.lua}"))] PASSED [ 38%] tests/unit/test_sanitizer.py::test_lua_unsafe_rpm_expand_bypass[rpm.expand("%{uncompress: file}")] PASSED [ 38%] tests/unit/test_sanitizer.py::test_lua_unsafe_rpm_expand_bypass[rpm.expand("%{expand:%(whoami)}")] PASSED [ 38%] tests/unit/test_sanitizer.py::test_lua_unsafe_rpm_expand_bypass[rpm.expand("%{expand:%{lua:os.execute('id')}}")] PASSED [ 38%] tests/unit/test_sanitizer.py::test_lua_unsafe_rpm_expand_bypass[rpm.expand("%{define:evil %(whoami)}")] PASSED [ 38%] tests/unit/test_sanitizer.py::test_lua_unsafe_rpm_expand_bypass[rpm.expand("%{global:evil %(whoami)}")] PASSED [ 39%] tests/unit/test_sanitizer.py::test_lua_unsafe_rpm_expand_bypass[rpm.expand("%{define:Name evil}")] PASSED [ 39%] tests/unit/test_sanitizer.py::test_lua_unsafe_rpm_expand_bypass[rpm.expand("%{global:_prefix /tmp/evil}")] PASSED [ 39%] tests/unit/test_sanitizer.py::test_lua_unsafe_rpm_expand_bypass[rpm.expand("%{undefine:Name}")] PASSED [ 39%] tests/unit/test_sanitizer.py::test_lua_unsafe_rpm_expand_bypass[rpm.expand("%{define :__spec_check_post exit 0}")] PASSED [ 39%] tests/unit/test_sanitizer.py::test_lua_unsafe_rpm_expand_bypass[rpm.expand("%load /tmp/evil.lua")] PASSED [ 39%] tests/unit/test_sanitizer.py::test_lua_unsafe_rpm_expand_bypass[rpm.expand("%include /tmp/evil.spec")] PASSED [ 39%] tests/unit/test_sanitizer.py::test_lua_unsafe_rpm_expand_bypass[rpm.expand("%define __spec_check_post exit 0")] PASSED [ 39%] tests/unit/test_sanitizer.py::test_lua_unsafe_rpm_expand_bypass[rpm.expand("%global _prefix /tmp/evil")] PASSED [ 39%] tests/unit/test_sanitizer.py::test_lua_unsafe_rpm_expand_bypass[rpm.expand("%undefine Name")] PASSED [ 40%] tests/unit/test_sanitizer.py::test_lua_unsafe_env[local e = _ENV] PASSED [ 40%] tests/unit/test_sanitizer.py::test_lua_unsafe_env[_ENV.os.execute("id")] PASSED [ 40%] tests/unit/test_sanitizer.py::test_lua_rpm_expand_shell_bypass_in_sanitize PASSED [ 40%] tests/unit/test_sanitizer.py::test_lua_rpm_expand_nested_lua_bypass_in_sanitize PASSED [ 40%] tests/unit/test_sanitizer.py::test_lua_unsafe_rpm_expand_dynamic_args[rpm.expand(string.char(37, 40) .. "whoami)")] PASSED [ 40%] tests/unit/test_sanitizer.py::test_lua_unsafe_rpm_expand_dynamic_args[rpm.expand(string.format("%%") .. "(whoami)")] PASSED [ 40%] tests/unit/test_sanitizer.py::test_lua_unsafe_rpm_expand_dynamic_args[rpm.expand(string.reverse(")imaohw(%"))] PASSED [ 40%] tests/unit/test_sanitizer.py::test_lua_unsafe_rpm_expand_dynamic_args[rpm.expand(("%%"):format() .. "(whoami)")] PASSED [ 40%] tests/unit/test_sanitizer.py::test_lua_unsafe_rpm_expand_dynamic_args[rpm.expand("" .. "")] PASSED [ 41%] tests/unit/test_sanitizer.py::test_lua_unsafe_rpm_expand_dynamic_args[local f = rpm.expand] PASSED [ 41%] tests/unit/test_sanitizer.py::test_lua_unsafe_rpm_expand_dynamic_args[x = rpm.expand] PASSED [ 41%] tests/unit/test_sanitizer.py::test_lua_unsafe_rpm_expand_dynamic_args[rpm.expand(x)] PASSED [ 41%] tests/unit/test_sanitizer.py::test_lua_rpm_expand_string_construction_bypass_in_sanitize[%{lua:rpm.expand(string.char(37, 40) .. "whoami)")}] PASSED [ 41%] tests/unit/test_sanitizer.py::test_lua_rpm_expand_string_construction_bypass_in_sanitize[%{lua:rpm.expand(string.format("%%") .. "(whoami)")}] PASSED [ 41%] tests/unit/test_sanitizer.py::test_lua_rpm_expand_string_construction_bypass_in_sanitize[%{lua:rpm.expand(string.reverse(")imaohw(%"))}] PASSED [ 41%] tests/unit/test_sanitizer.py::test_lua_rpm_expand_string_construction_bypass_in_sanitize[%{lua:rpm.expand(("%%"):format() .. "(whoami)")}] PASSED [ 41%] tests/unit/test_sanitizer.py::test_lua_unsafe_in_sanitize PASSED [ 41%] tests/unit/test_sanitizer.py::test_lua_safe_in_sanitize PASSED [ 42%] tests/unit/test_sanitizer.py::test_lua_bracket_bypass_in_sanitize PASSED [ 42%] tests/unit/test_sanitizer.py::test_lua_load_include_uncompress_bypass_in_sanitize[%{lua:print(rpm.expand("%{load:/tmp/evil.lua}"))}] PASSED [ 42%] tests/unit/test_sanitizer.py::test_lua_load_include_uncompress_bypass_in_sanitize[%{lua:print(rpm.expand("%{include:/tmp/evil.spec}"))}] PASSED [ 42%] tests/unit/test_sanitizer.py::test_lua_load_include_uncompress_bypass_in_sanitize[%{lua:print(rpm.expand("%{uncompress:/tmp/file.gz}"))}] PASSED [ 42%] tests/unit/test_sanitizer.py::test_lua_rpm_expand_define_global_bypass_in_sanitize[%{lua:print(rpm.expand("%{expand:%(whoami)}"))}] PASSED [ 42%] tests/unit/test_sanitizer.py::test_lua_rpm_expand_define_global_bypass_in_sanitize[%{lua:print(rpm.expand("%{expand:%{lua:os.execute('id')}}"))}] PASSED [ 42%] tests/unit/test_sanitizer.py::test_lua_rpm_expand_define_global_bypass_in_sanitize[%{lua:print(rpm.expand("%{define:evil %(whoami)}"))}] PASSED [ 42%] tests/unit/test_sanitizer.py::test_lua_rpm_expand_define_global_bypass_in_sanitize[%{lua:print(rpm.expand("%{global:evil %(whoami)}"))}] PASSED [ 42%] tests/unit/test_sanitizer.py::test_lua_rpm_expand_braceless_directive_bypass_in_sanitize[%{lua:rpm.expand("%load /tmp/evil.lua")}] PASSED [ 43%] tests/unit/test_sanitizer.py::test_lua_rpm_expand_braceless_directive_bypass_in_sanitize[%{lua:rpm.expand("%include /tmp/evil.spec")}] PASSED [ 43%] tests/unit/test_sanitizer.py::test_lua_rpm_expand_braceless_directive_bypass_in_sanitize[%{lua:rpm.expand("%define __spec_check_post exit 0")}] PASSED [ 43%] tests/unit/test_sanitizer.py::test_lua_rpm_expand_braceless_directive_bypass_in_sanitize[%{lua:rpm.expand("%global _prefix /tmp/evil")}] PASSED [ 43%] tests/unit/test_sanitizer.py::test_lua_rpm_expand_braceless_directive_bypass_in_sanitize[%{lua:rpm.expand("%undefine Name")}] PASSED [ 43%] tests/unit/test_sanitizer.py::test_builtin_macro_body_sanitized[%{expand:%(whoami)}-%{expand:%{nil}}-1] PASSED [ 43%] tests/unit/test_sanitizer.py::test_builtin_macro_body_sanitized[%{lower:%(whoami)}-%{lower:%{nil}}-1] PASSED [ 43%] tests/unit/test_sanitizer.py::test_builtin_macro_body_sanitized[%{upper:%(whoami)}-%{upper:%{nil}}-1] PASSED [ 43%] tests/unit/test_sanitizer.py::test_builtin_macro_body_sanitized[%{expand:%{lua:os.execute("id")}}-%{expand:%{nil}}-1] PASSED [ 43%] tests/unit/test_sanitizer.py::test_builtin_macro_body_sanitized[%{lower:%{name}}-%{lower:%{name}}-0] PASSED [ 44%] tests/unit/test_sanitizer.py::test_builtin_macro_body_sanitized[%{quote:%(cat /etc/passwd)}-%{quote:%{nil}}-1] PASSED [ 44%] tests/unit/test_sanitizer.py::test_builtin_macro_body_sanitized[%{uncompress:/tmp/file.gz}--1] PASSED [ 44%] tests/unit/test_sanitizer.py::test_enclosed_macro_args_sanitized[%{upper %(whoami)}-%{upper %{nil}}-1] PASSED [ 44%] tests/unit/test_sanitizer.py::test_enclosed_macro_args_sanitized[%{macro %(whoami) %{version}}-%{macro %{nil} %{version}}-1] PASSED [ 44%] tests/unit/test_sanitizer.py::test_enclosed_macro_args_sanitized[%{macro %(whoami) %(id)}-%{macro %{nil} %{nil}}-2] PASSED [ 44%] tests/unit/test_sanitizer.py::test_enclosed_macro_args_sanitized[%{foo %{version}}-%{foo %{version}}-0] PASSED [ 44%] tests/unit/test_sanitizer.py::test_bash_replace_rejects_unsafe_repl[v=%{version}; echo ${v//./%(whoami)}] PASSED [ 44%] tests/unit/test_sanitizer.py::test_bash_replace_rejects_unsafe_repl[v=%{version}; echo ${v//./%{lua:os.execute('id')}}] PASSED [ 44%] tests/unit/test_sanitizer.py::test_bash_replace_rejects_unsafe_repl[v=%{name}; echo ${v//-/%(cat /etc/passwd)}] PASSED [ 44%] tests/unit/test_sanitizer.py::test_test_str_rejects_unsafe_values[test "a" == "a" && echo "%(whoami)" || echo "no"] PASSED [ 45%] tests/unit/test_sanitizer.py::test_test_str_rejects_unsafe_values[test "a" != "b" && echo "safe" || echo "%(id)"] PASSED [ 45%] tests/unit/test_sanitizer.py::test_test_str_rejects_unsafe_values[test "%(whoami)" == "a" && echo "yes" || echo "no"] PASSED [ 45%] tests/unit/test_sanitizer.py::test_test_str_rejects_unsafe_values[test "a" == "%(whoami)" && echo "yes" || echo "no"] PASSED [ 45%] tests/unit/test_sanitizer.py::test_test_empty_rejects_unsafe_values[[ -z "%{?flag}" ] && echo "%(whoami)" || echo "safe"] PASSED [ 45%] tests/unit/test_sanitizer.py::test_test_empty_rejects_unsafe_values[[ -z "%{?flag}" ] && echo "safe" || echo "%(whoami)"] PASSED [ 45%] tests/unit/test_sanitizer.py::test_date_rejects_unsafe_format[date +%(whoami)] PASSED [ 45%] tests/unit/test_sanitizer.py::test_date_rejects_unsafe_format[date +"%(whoami)%Y"] PASSED [ 45%] tests/unit/test_sanitizer.py::test_sed_rejects_unsafe_replacement[echo %{version} | sed 's/\\./ %(whoami)/g'] PASSED [ 45%] tests/unit/test_sanitizer.py::test_sed_rejects_unsafe_replacement[echo %{version} | sed 's/x/%(id)/g'] PASSED [ 46%] tests/unit/test_sanitizer.py::test_awk_rejects_unsafe_separator[echo %{version} | awk -F. '{print $1"%(whoami)"$2}'] PASSED [ 46%] tests/unit/test_sanitizer.py::test_lua_unsafe_escape_sequence_bypass[print("\\037(whoami)")] PASSED [ 46%] tests/unit/test_sanitizer.py::test_lua_unsafe_escape_sequence_bypass[print("\\037{lua:os.execute(\\"id\\")}")] PASSED [ 46%] tests/unit/test_sanitizer.py::test_lua_unsafe_escape_sequence_bypass[print("\\x25(whoami)")] PASSED [ 46%] tests/unit/test_sanitizer.py::test_lua_unsafe_escape_sequence_bypass[print("\\u{25}(whoami)")] PASSED [ 46%] tests/unit/test_sanitizer.py::test_lua_unsafe_escape_sequence_bypass[print("\\037\\z (whoami)")] PASSED [ 46%] tests/unit/test_sanitizer.py::test_lua_unsafe_string_format_bypass[print(string.format("%c(whoami)", 37))] PASSED [ 46%] tests/unit/test_sanitizer.py::test_lua_unsafe_string_format_bypass[print(string.format("%c", 37) .. "(whoami)")] PASSED [ 46%] tests/unit/test_sanitizer.py::test_lua_unsafe_colon_method_bypass[print(("%c(whoami)"):format(37))] PASSED [ 47%] tests/unit/test_sanitizer.py::test_lua_unsafe_colon_method_bypass[print((""):format(37))] PASSED [ 47%] tests/unit/test_sanitizer.py::test_lua_unsafe_colon_method_bypass[print((""):char(37))] PASSED [ 47%] tests/unit/test_sanitizer.py::test_lua_unsafe_colon_method_bypass[print((""):dump())] PASSED [ 47%] tests/unit/test_sanitizer.py::test_lua_unsafe_concatenation_bypass[print("%" .. "(whoami)")] PASSED [ 47%] tests/unit/test_sanitizer.py::test_lua_unsafe_concatenation_bypass[print("x%" .. "(whoami)")] PASSED [ 47%] tests/unit/test_sanitizer.py::test_lua_unsafe_concatenation_bypass[print("\\037" .. "(whoami)")] PASSED [ 47%] tests/unit/test_sanitizer.py::test_lua_unsafe_string_extraction_bypass[print(string.sub("% ", 1, 1) .. "(whoami)")] PASSED [ 47%] tests/unit/test_sanitizer.py::test_lua_unsafe_string_extraction_bypass[print(("% "):sub(1, 1) .. "(whoami)")] PASSED [ 47%] tests/unit/test_sanitizer.py::test_lua_unsafe_string_extraction_bypass[local _,_,c = string.find("% x", "^(.)"); print(c .. "(whoami)")] PASSED [ 48%] tests/unit/test_sanitizer.py::test_lua_unsafe_string_extraction_bypass[print(string.reverse("X%") .. "(whoami)")] PASSED [ 48%] tests/unit/test_sanitizer.py::test_lua_unsafe_string_extraction_bypass[print(string.rep("% ", 1):sub(1,1) .. "(whoami)")] PASSED [ 48%] tests/unit/test_sanitizer.py::test_lua_unsafe_string_format_alias_bypass[local f=string.format print(f("%%%c(whoami)", 40))] PASSED [ 48%] tests/unit/test_sanitizer.py::test_lua_unsafe_string_format_alias_bypass[local f=string.format; print(f("%%%c", 40) .. "whoami)")] PASSED [ 48%] tests/unit/test_sanitizer.py::test_lua_unsafe_string_format_alias_bypass[local t={f=string.format} print(t.f("%%%c", 40))] PASSED [ 48%] tests/unit/test_sanitizer.py::test_lua_unsafe_comment_injection_bypass[x = "--[["; os.execute("id"); x = "--]]"] PASSED [ 48%] tests/unit/test_sanitizer.py::test_lua_unsafe_comment_injection_bypass[x = '--[['; os.execute('id'); x = '--]]'] PASSED [ 48%] tests/unit/test_sanitizer.py::test_lua_unsafe_comment_injection_bypass[x = "--[=["; os.execute("id"); x = "--]=]"] PASSED [ 48%] tests/unit/test_sanitizer.py::test_lua_safe_real_comment_not_confused_with_string PASSED [ 49%] tests/unit/test_sanitizer.py::test_expression_expansion_sanitized[%[1+1]-%[1+1]] PASSED [ 49%] tests/unit/test_sanitizer.py::test_expression_expansion_sanitized[%[%{version}]-%[%{version}]] PASSED [ 49%] tests/unit/test_sanitizer.py::test_expression_expansion_sanitized[%[%{lua:os.execute("id")}]-%[%{nil}]] PASSED [ 49%] tests/unit/test_sanitizer.py::test_expression_expansion_sanitized[%[%(whoami)]-%[%{nil}]] PASSED [ 49%] tests/unit/test_sanitizer.py::test_expression_expansion_sanitized[%[lua:os.execute('id')]-%{nil}] PASSED [ 49%] tests/unit/test_sanitizer.py::test_expression_expansion_sanitized[%[lua: os.execute('id')]-%{nil}] PASSED [ 49%] tests/unit/test_sanitizer.py::test_expression_expansion_sanitized[%[lua:rpm.expand("%{version}")]-%[lua:rpm.expand("%{version}")]] PASSED [ 49%] tests/unit/test_sanitizer.py::test_macro_name_sanitized[%{%(whoami)}-%{%{nil}}] PASSED [ 49%] tests/unit/test_sanitizer.py::test_macro_name_sanitized[%{%(whoami) arg1 arg2}-%{%{nil} arg1 arg2}] PASSED [ 50%] tests/unit/test_sanitizer.py::test_macro_name_sanitized[%{%(whoami):body}-%{nil}] PASSED [ 50%] tests/unit/test_sanitizer.py::test_macro_name_sanitized[%{%{lua:os.execute("id")}}-%{nil}] PASSED [ 50%] tests/unit/test_sanitizer.py::test_macro_name_sanitized[%{?%(whoami):body}-%{nil}] PASSED [ 50%] tests/unit/test_sanitizer.py::test_macro_name_sanitized[%{!%(whoami):body}-%{nil}] PASSED [ 50%] tests/unit/test_sanitizer.py::test_macro_name_sanitized[%{version}-%{version}] PASSED [ 50%] tests/unit/test_sanitizer.py::test_macro_name_sanitized[%{?dist}-%{?dist}] PASSED [ 50%] tests/unit/test_sanitizer.py::test_macro_name_sanitized[%{?prerel:0.}-%{?prerel:0.}] PASSED [ 50%] tests/unit/test_sanitizer.py::test_lua_unsafe_expression_expansion_in_string[print(rpm.expand("%[lua:os.execute('id')]"))] PASSED [ 50%] tests/unit/test_sanitizer.py::test_lua_unsafe_expression_expansion_in_string[print("%[1+1]")] PASSED [ 51%] tests/unit/test_sanitizer.py::test_sed_pattern_newline_escape PASSED [ 51%] tests/unit/test_sanitizer.py::test_sed_pattern_parentheses_escaped PASSED [ 51%] tests/unit/test_sanitizer.py::test_sanitize_idempotent_printf_float PASSED [ 51%] tests/unit/test_sanitizer.py::test_lua_unsafe_char_escape_bypass[rpm.expand("%\\040whoami)")] PASSED [ 51%] tests/unit/test_sanitizer.py::test_lua_unsafe_char_escape_bypass[rpm.expand("%\\091lua\\058os.execute('id')\\093")] PASSED [ 51%] tests/unit/test_sanitizer.py::test_lua_unsafe_char_escape_bypass[rpm.expand("%\\x28whoami)")] PASSED [ 51%] tests/unit/test_sanitizer.py::test_lua_unsafe_char_escape_bypass[rpm.expand("%\\x7blua\\x3aos.execute('id')}")] PASSED [ 51%] tests/unit/test_sanitizer.py::test_lua_unsafe_char_escape_bypass[rpm.expand("%\\u{28}whoami)")] PASSED [ 51%] tests/unit/test_sanitizer.py::test_decode_lua_escapes_out_of_range PASSED [ 52%] tests/unit/test_sanitizer.py::test_sanitize_depth_limit PASSED [ 52%] tests/unit/test_sections.py::test_find PASSED [ 52%] tests/unit/test_sections.py::test_get PASSED [ 52%] tests/unit/test_sections.py::test_contains_and_getattr PASSED [ 52%] tests/unit/test_sections.py::test_get_or_create[package-True-package--content0] PASSED [ 52%] tests/unit/test_sections.py::test_get_or_create[prep-True-prep--content1] PASSED [ 52%] tests/unit/test_sections.py::test_get_or_create[package -n subpkg1-True-package--n subpkg1-content2] PASSED [ 52%] tests/unit/test_sections.py::test_get_or_create[package -n subpkg2-False-package--n subpkg2-content3] PASSED [ 52%] tests/unit/test_sections.py::test_parse PASSED [ 53%] tests/unit/test_sections.py::test_parse_case_insensitive PASSED [ 53%] tests/unit/test_sections.py::test_parse_invalid_name PASSED [ 53%] tests/unit/test_sections.py::test_parse_macro_definitions PASSED [ 53%] tests/unit/test_sections.py::test_get_raw_data PASSED [ 53%] tests/unit/test_sections.py::test_copy_sections PASSED [ 53%] tests/unit/test_sections.py::test_is_script[package-False] PASSED [ 53%] tests/unit/test_sections.py::test_is_script[install-True] PASSED [ 53%] tests/unit/test_sections.py::test_is_script[PostUn-True] PASSED [ 53%] tests/unit/test_sections.py::test_is_script[SourceList-False] PASSED [ 54%] tests/unit/test_sourcelist.py::test_parse PASSED [ 54%] tests/unit/test_sourcelist.py::test_get_raw_section_data PASSED [ 54%] tests/unit/test_sourcelist.py::test_copy_sourcelist PASSED [ 54%] tests/unit/test_sources.py::test_tag_source_extract_number[Source-None] PASSED [ 54%] tests/unit/test_sources.py::test_tag_source_extract_number[Source0-0] PASSED [ 54%] tests/unit/test_sources.py::test_tag_source_extract_number[Patch0001-0001] PASSED [ 54%] tests/unit/test_sources.py::test_tag_source_extract_number[Patch28-28] PASSED [ 54%] tests/unit/test_sources.py::test_tag_source_extract_number[Patch99999-99999] PASSED [ 54%] tests/unit/test_sources.py::test_sources_detect_implicit_numbering[tags0-True-False] PASSED [ 55%] tests/unit/test_sources.py::test_sources_detect_implicit_numbering[tags1-False-True] PASSED [ 55%] tests/unit/test_sources.py::test_sources_detect_implicit_numbering[tags2-False-False] PASSED [ 55%] tests/unit/test_sources.py::test_sources_detect_implicit_numbering[tags3-True-True] PASSED [ 55%] tests/unit/test_sources.py::test_sources_get_tag_format[Source-: -28-Source-: ] PASSED [ 55%] tests/unit/test_sources.py::test_sources_get_tag_format[Source0-: -28-Source28-:] PASSED [ 55%] tests/unit/test_sources.py::test_sources_get_tag_format[Source0001-: -2-Source0002-: ] PASSED [ 55%] tests/unit/test_sources.py::test_sources_get_initial_tag_setup[tags0-0-2] PASSED [ 55%] tests/unit/test_sources.py::test_sources_get_initial_tag_setup[tags1-999-0] PASSED [ 55%] tests/unit/test_sources.py::test_sources_deduplicate_tag_names[tags0-deduplicated_tags0] PASSED [ 55%] tests/unit/test_sources.py::test_sources_deduplicate_tag_names[tags1-deduplicated_tags1] PASSED [ 56%] tests/unit/test_sources.py::test_sources_deduplicate_tag_names[tags2-deduplicated_tags2] PASSED [ 56%] tests/unit/test_sources.py::test_sources_deduplicate_tag_names[tags3-deduplicated_tags3] PASSED [ 56%] tests/unit/test_sources.py::test_sources_deduplicate_tag_names[tags4-deduplicated_tags4] PASSED [ 56%] tests/unit/test_sources.py::test_sources_deduplicate_tag_names[tags5-deduplicated_tags5] PASSED [ 56%] tests/unit/test_sources.py::test_sources_deduplicate_tag_names[tags6-deduplicated_tags6] PASSED [ 56%] tests/unit/test_sources.py::test_sources_insert[tags0-sourcelists0-0-test-0-TagSource] PASSED [ 56%] tests/unit/test_sources.py::test_sources_insert[tags1-sourcelists1-0-test-0-ListSource] PASSED [ 56%] tests/unit/test_sources.py::test_sources_insert[tags2-sourcelists2-10-test-2-TagSource] PASSED [ 56%] tests/unit/test_sources.py::test_sources_insert[tags3-sourcelists3-10-test-4-ListSource] PASSED [ 57%] tests/unit/test_sources.py::test_sources_insert[tags4-sourcelists4-1-test-1-TagSource] PASSED [ 57%] tests/unit/test_sources.py::test_sources_insert[tags5-sourcelists5-1-test-10-TagSource] PASSED [ 57%] tests/unit/test_sources.py::test_sources_insert[tags6-sourcelists6-2-test-2-ListSource] PASSED [ 57%] tests/unit/test_sources.py::test_sources_insert[tags7-sourcelists7-10-source0-None-None] PASSED [ 57%] tests/unit/test_sources.py::test_sources_insert_numbered[tags0-28-test-0] PASSED [ 57%] tests/unit/test_sources.py::test_sources_insert_numbered[tags1-0-test-0] PASSED [ 57%] tests/unit/test_sources.py::test_sources_insert_numbered[tags2-2-test-2] PASSED [ 57%] tests/unit/test_sources.py::test_sources_insert_numbered[tags3-42-test-3] PASSED [ 57%] tests/unit/test_sources.py::test_sources_insert_numbered[tags4-1000-test-4] PASSED [ 58%] tests/unit/test_sources.py::test_sources_insert_numbered[tags5-37-test-1] PASSED [ 58%] tests/unit/test_sources.py::test_sources_remove_numbered[tags0-sourcelists0-1-new_tags0-new_sourcelists0] PASSED [ 58%] tests/unit/test_sources.py::test_sources_remove_numbered[tags1-sourcelists1-2-new_tags1-new_sourcelists1] PASSED [ 58%] tests/unit/test_sources.py::test_sources_remove_numbered[tags2-sourcelists2-2-new_tags2-new_sourcelists2] PASSED [ 58%] tests/unit/test_sources.py::test_patches_get_tag_format[Patch99-: -100-Patch100-: ] PASSED [ 58%] tests/unit/test_sources.py::test_patches_get_tag_format[Patch9999-: -28-Patch28-: ] PASSED [ 58%] tests/unit/test_sources.py::test_patches_get_tag_format[Patch0999-: -28-Patch0028-: ] PASSED [ 58%] tests/unit/test_sources.py::test_patches_get_tag_format[Source2-: -0-Patch0-: ] PASSED [ 58%] tests/unit/test_sources.py::test_patches_get_initial_tag_setup[tags0-0-3] PASSED [ 59%] tests/unit/test_sources.py::test_patches_get_initial_tag_setup[tags1-1-3] PASSED [ 59%] tests/unit/test_sources.py::test_patches_get_initial_tag_setup[tags2-2-2] PASSED [ 59%] tests/unit/test_sources.py::test_patches_get_initial_tag_setup[tags3-999-0] PASSED [ 59%] tests/unit/test_sources.py::test_copy_sources PASSED [ 59%] tests/unit/test_spec_parser.py::test_spec_parser_do_parse PASSED [ 59%] tests/unit/test_spec_parser.py::test_copy_spec_parser PASSED [ 59%] tests/unit/test_spec_parser.py::test_spec_parser_macros PASSED [ 59%] tests/unit/test_spec_parser.py::test_spec_parser_make_dummy_sources PASSED [ 59%] tests/unit/test_specfile.py::test_split_raw_release[1%{?dist}-1-%{?dist}-None] PASSED [ 60%] tests/unit/test_specfile.py::test_split_raw_release[0.1%{prerelease}%{dist}-0.1%{prerelease}-%{dist}-None] PASSED [ 60%] tests/unit/test_specfile.py::test_split_raw_release[%{_short_release}%{?dist}.20-%{_short_release}-%{?dist}-20] PASSED [ 60%] tests/unit/test_specfile.py::test_split_raw_release[28%dist-28-%dist-None] PASSED [ 60%] tests/unit/test_specfile.py::test_split_raw_release[%{release_string}-%{release_string}-None-None] PASSED [ 60%] tests/unit/test_specfile.py::test_get_updated_release[1%{?dist}-28-28%{?dist}] PASSED [ 60%] tests/unit/test_specfile.py::test_get_updated_release[0.1%{prerelease}%{dist}-1-1%{dist}] PASSED [ 60%] tests/unit/test_specfile.py::test_get_updated_release[%{_short_release}%{?dist}.20-3-3%{?dist}] PASSED [ 60%] tests/unit/test_specfile.py::test_get_updated_release[28%dist-0.1-0.1%dist] PASSED [ 60%] tests/unit/test_specfile.py::test_get_updated_release[%{release_string}-1-1] PASSED [ 61%] tests/unit/test_specfile.py::test_bump_release_string[1%{?dist}-2%{?dist}] PASSED [ 61%] tests/unit/test_specfile.py::test_bump_release_string[0.1%{?dist}-0.2%{?dist}] PASSED [ 61%] tests/unit/test_specfile.py::test_bump_release_string[%release_func 26-%release_func 27] PASSED [ 61%] tests/unit/test_specfile.py::test_bump_release_string[0.24.rc1%{?dist}-0.25.rc1%{?dist}] PASSED [ 61%] tests/unit/test_specfile.py::test_bump_release_string[0.2.%{prerel}%{?dist}-0.3.%{prerel}%{?dist}] PASSED [ 61%] tests/unit/test_specfile.py::test_bump_release_string[0.8.%{commitdate}%{shortcommit}%{?dist}-0.9.%{commitdate}%{shortcommit}%{?dist}] PASSED [ 61%] tests/unit/test_specfile.py::test_bump_release_string[3.%{git_date}git%{git_commit_short}%{?dist}-4.%{git_date}git%{git_commit_short}%{?dist}] PASSED [ 61%] tests/unit/test_specfile.py::test_bump_release_string[1%{?rcrel}%{?dist}.1-1%{?rcrel}%{?dist}.2] PASSED [ 61%] tests/unit/test_specfile.py::test_bump_release_string[%{?beta_ver:0.}%{fedora_rel}%{?beta_ver:.%beta_ver}%{?dist}%{flagrel}%{?extrarel}-%{?beta_ver:0.}%{fedora_rel}%{?beta_ver:.%beta_ver}%{?dist}%{flagrel}%{?extrarel}.1] PASSED [ 62%] tests/unit/test_specfile.py::test_bump_release_string[4.rc2%{?dist}-4.rc2%{?dist}.1] PASSED [ 62%] tests/unit/test_tags.py::test_find PASSED [ 62%] tests/unit/test_tags.py::test_parse PASSED [ 62%] tests/unit/test_tags.py::test_get_raw_section_data PASSED [ 62%] tests/unit/test_tags.py::test_copy_tags PASSED [ 62%] tests/unit/test_utils.py::test_get_filename_from_location[-] PASSED [ 62%] tests/unit/test_utils.py::test_get_filename_from_location[tarball-0.1.tar.gz-tarball-0.1.tar.gz] PASSED [ 62%] tests/unit/test_utils.py::test_get_filename_from_location[https://example.com-example.com] PASSED [ 62%] tests/unit/test_utils.py::test_get_filename_from_location[https://example.com#fragment-example.com#fragment] PASSED [ 63%] tests/unit/test_utils.py::test_get_filename_from_location[https://example.com/archive/tarball-0.1.tar.gz-tarball-0.1.tar.gz] PASSED [ 63%] tests/unit/test_utils.py::test_get_filename_from_location[https://example.com/archive/tarball-0.1.tar.gz#fragment-tarball-0.1.tar.gz#fragment] PASSED [ 63%] tests/unit/test_utils.py::test_get_filename_from_location[https://example.com/download_tarball.cgi#/tarball-0.1.tar.gz-tarball-0.1.tar.gz] PASSED [ 63%] tests/unit/test_utils.py::test_get_filename_from_location[https://example.com/tarball-latest.tar.gz#/file=tarball-0.1.tar.gz-tarball-0.1.tar.gz] PASSED [ 63%] tests/unit/test_utils.py::test_count_brackets[-count0] PASSED [ 63%] tests/unit/test_utils.py::test_count_brackets[%macro-count1] PASSED [ 63%] tests/unit/test_utils.py::test_count_brackets[%{macro}-count2] PASSED [ 63%] tests/unit/test_utils.py::test_count_brackets[%{{macro}}-count3] PASSED [ 63%] tests/unit/test_utils.py::test_count_brackets[%{{macro}-count4] PASSED [ 64%] tests/unit/test_utils.py::test_count_brackets[%{macro:-count5] PASSED [ 64%] tests/unit/test_utils.py::test_count_brackets[%(echo %{v}-count6] PASSED [ 64%] tests/unit/test_utils.py::test_count_brackets[%(echo %{v} | cut -d. -f3)-count7] PASSED [ 64%] tests/unit/test_utils.py::test_EVR_compare PASSED [ 64%] tests/unit/test_utils.py::test_NEVR_compare PASSED [ 64%] tests/unit/test_utils.py::test_NEVRA_compare PASSED [ 64%] tests/unit/test_utils.py::test_EVR_from_string[0-result0] PASSED [ 64%] tests/unit/test_utils.py::test_EVR_from_string[12.0-1-result1] PASSED [ 64%] tests/unit/test_utils.py::test_EVR_from_string[2:56.8-5-result2] PASSED [ 65%] tests/unit/test_utils.py::test_EVR_from_string[0.8.0-1.fc37-result3] PASSED [ 65%] tests/unit/test_utils.py::test_EVR_from_string[0.5.0~rc2-1.el9-result4] PASSED [ 65%] tests/unit/test_utils.py::test_EVR_from_string[7.3-0.2.rc1.fc38-result5] PASSED [ 65%] tests/unit/test_utils.py::test_EVR_from_string[7.3~rc1^20200701gdeadf00f-12.fc38-result6] PASSED [ 65%] tests/unit/test_utils.py::test_NEVR_from_string[package-0-result0] PASSED [ 65%] tests/unit/test_utils.py::test_NEVR_from_string[package-12.0-1-result1] PASSED [ 65%] tests/unit/test_utils.py::test_NEVR_from_string[package-2:56.8-5-result2] PASSED [ 65%] tests/unit/test_utils.py::test_NEVR_from_string[package-0.8.0-1.fc37-result3] PASSED [ 65%] tests/unit/test_utils.py::test_NEVR_from_string[package-0.5.0~rc2-1.el9-result4] PASSED [ 66%] tests/unit/test_utils.py::test_NEVR_from_string[package-devel-7.3-0.2.rc1.fc38-result5] PASSED [ 66%] tests/unit/test_utils.py::test_NEVR_from_string[package-7.3~rc1^20200701gdeadf00f-12.fc38-result6] PASSED [ 66%] tests/unit/test_utils.py::test_NEVRA_from_string[package-12.0-1.x86_64-result0] PASSED [ 66%] tests/unit/test_utils.py::test_NEVRA_from_string[package-2:56.8-5.aarch64-result1] PASSED [ 66%] tests/unit/test_utils.py::test_NEVRA_from_string[package-0.8.0-1.fc37.armv6hl-result2] PASSED [ 66%] tests/unit/test_utils.py::test_NEVRA_from_string[package-0.5.0~rc2-1.el9.noarch-result3] PASSED [ 66%] tests/unit/test_utils.py::test_NEVRA_from_string[package-devel-7.3-0.2.rc1.fc38.i686-result4] PASSED [ 66%] tests/unit/test_utils.py::test_NEVRA_from_string[package-7.3~rc1^20200701gdeadf00f-12.fc38.riscv-result5] PASSED [ 66%] tests/unit/test_value_parser.py::test_parse[-nodes0] PASSED [ 66%] tests/unit/test_value_parser.py::test_parse[escaped %%macro-nodes1] PASSED [ 67%] tests/unit/test_value_parser.py::test_parse[%(echo %{version} | cut -d. -f3)-nodes2] PASSED [ 67%] tests/unit/test_value_parser.py::test_parse[%version-nodes3] PASSED [ 67%] tests/unit/test_value_parser.py::test_parse[1%{?dist}-nodes4] PASSED [ 67%] tests/unit/test_value_parser.py::test_parse[%{longdesc %{name}}-nodes5] PASSED [ 67%] tests/unit/test_value_parser.py::test_parse[%{fedorarel}%{?dist}.2-nodes6] PASSED [ 67%] tests/unit/test_value_parser.py::test_parse[%{?prever:0.}%{mainrel}%{?prever:.%{prerpmver}}-nodes7] PASSED [ 67%] tests/unit/test_value_parser.py::test_parse[%{lua:ver = string.gsub(rpm.expand("%{ver}"), "-", "~"); print(string.lower(ver))}-nodes8] PASSED [ 67%] tests/unit/test_value_parser.py::test_parse[%{%{28}}-nodes9] PASSED [ 67%] tests/unit/test_value_parser.py::test_parse[%{%{macro}}-nodes10] PASSED [ 68%] tests/unit/test_value_parser.py::test_parse[%{upper:%{name}}-nodes11] PASSED [ 68%] tests/unit/test_value_parser.py::test_parse[%{version_no_tilde %{quote:nil}}-nodes12] PASSED [ 68%] tests/unit/test_value_parser.py::test_construct_regex[%(echo %version | cut -d. -f1,2).0-macros0-modifiable_entities0-flippable_entities0-^1\\.1(?P.+?)$-%(echo %version | cut -d. -f1,2)${sub_0}-entities_to_flip0] PASSED [ 68%] tests/unit/test_value_parser.py::test_construct_regex[%version-macros1-modifiable_entities1-flippable_entities1-^(?P.+)$-%version-entities_to_flip1] PASSED [ 68%] tests/unit/test_value_parser.py::test_construct_regex[%?version-macros2-modifiable_entities2-flippable_entities2-^(?P.+)$-%?version-entities_to_flip2] PASSED [ 68%] tests/unit/test_value_parser.py::test_construct_regex[%!?version-macros3-modifiable_entities3-flippable_entities3-^$-%!?version-entities_to_flip3] PASSED [ 68%] tests/unit/test_value_parser.py::test_construct_regex[1%{?dist}-macros4-modifiable_entities4-flippable_entities4-^(?P.+?)\\.fc35$-${sub_0}%{?dist}-entities_to_flip4] PASSED [ 68%] tests/unit/test_value_parser.py::test_construct_regex[%{longdesc %name}-macros5-modifiable_entities5-flippable_entities5-^Lorem\\ ipsum\\ dolor\\ sit\\ amet$-%{longdesc %name}-entities_to_flip5] PASSED [ 68%] tests/unit/test_value_parser.py::test_construct_regex[%{?prever:0.}%{mainrel}%{?prever:.%{prerpmver}}-macros6-modifiable_entities6-flippable_entities6-^(?P.+?)\\.(?P.+)\\.(?P.+)$-%{?prever:${sub_0}.}%{mainrel}%{?prever:.%{prerpmver}}-entities_to_flip6] PASSED [ 69%] tests/unit/test_value_parser.py::test_construct_regex[%{?prever:0.}%{mainrel}%{?prever:.%{prerpmver}}-macros7-modifiable_entities7-flippable_entities7-^(?P.+?)\\.(?P.+)\\.(?P.+)$-%{?prever:${sub_0}.}%{mainrel}%{?prever:.%{prerpmver}}-entities_to_flip7] PASSED [ 69%] tests/unit/test_value_parser.py::test_construct_regex[%{mingw64_libdir}/lib%{pkgname}stub%{majorver1}%{majorver2}.a-macros8-modifiable_entities8-flippable_entities8-^$-%{mingw64_libdir}/lib%{pkgname}stub%{majorver1}%{majorver2}.a-entities_to_flip8] PASSED [ 69%] tests/unit/test_value_parser.py::test_construct_regex[%{?commit:%{commit}}%{?!commit:%{tag}}-macros9-modifiable_entities9-flippable_entities9-^(?P.+)$-%{?commit:%{commit}}%{?!commit:%{tag}}-entities_to_flip9] PASSED [ 69%] tests/unit/test_value_parser.py::test_construct_regex[%{?commit:%{commit}}%{?!commit:%{tag}}-macros10-modifiable_entities10-flippable_entities10-^(?P.+)$-%{?commit:%{commit}}%{?!commit:%{tag}}-entities_to_flip10] PASSED [ 69%] tests/integration/test_specfile.py::test_parse PASSED [ 69%] tests/integration/test_specfile.py::test_prep_traditional[file_path] PASSED [ 69%] tests/integration/test_specfile.py::test_prep_traditional[text_file] PASSED [ 69%] tests/integration/test_specfile.py::test_prep_traditional[binary_file] PASSED [ 69%] tests/integration/test_specfile.py::test_prep_traditional[text_io_stream] PASSED [ 70%] tests/integration/test_specfile.py::test_prep_traditional[binary_io_stream] PASSED [ 70%] tests/integration/test_specfile.py::test_prep_traditional[content_string] PASSED [ 70%] tests/integration/test_specfile.py::test_prep_autosetup[file_path] PASSED [ 70%] tests/integration/test_specfile.py::test_prep_autosetup[text_file] PASSED [ 70%] tests/integration/test_specfile.py::test_prep_autosetup[binary_file] PASSED [ 70%] tests/integration/test_specfile.py::test_prep_autosetup[text_io_stream] PASSED [ 70%] tests/integration/test_specfile.py::test_prep_autosetup[binary_io_stream] PASSED [ 70%] tests/integration/test_specfile.py::test_prep_autosetup[content_string] PASSED [ 70%] tests/integration/test_specfile.py::test_prep_autopatch[file_path] PASSED [ 71%] tests/integration/test_specfile.py::test_prep_autopatch[text_file] PASSED [ 71%] tests/integration/test_specfile.py::test_prep_autopatch[binary_file] PASSED [ 71%] tests/integration/test_specfile.py::test_prep_autopatch[text_io_stream] PASSED [ 71%] tests/integration/test_specfile.py::test_prep_autopatch[binary_io_stream] PASSED [ 71%] tests/integration/test_specfile.py::test_prep_autopatch[content_string] PASSED [ 71%] tests/integration/test_specfile.py::test_sources[file_path] PASSED [ 71%] tests/integration/test_specfile.py::test_sources[text_file] PASSED [ 71%] tests/integration/test_specfile.py::test_sources[binary_file] PASSED [ 71%] tests/integration/test_specfile.py::test_sources[text_io_stream] PASSED [ 72%] tests/integration/test_specfile.py::test_sources[binary_io_stream] PASSED [ 72%] tests/integration/test_specfile.py::test_sources[content_string] PASSED [ 72%] tests/integration/test_specfile.py::test_patches[file_path] PASSED [ 72%] tests/integration/test_specfile.py::test_patches[text_file] PASSED [ 72%] tests/integration/test_specfile.py::test_patches[binary_file] PASSED [ 72%] tests/integration/test_specfile.py::test_patches[text_io_stream] PASSED [ 72%] tests/integration/test_specfile.py::test_patches[binary_io_stream] PASSED [ 72%] tests/integration/test_specfile.py::test_patches[content_string] PASSED [ 72%] tests/integration/test_specfile.py::test_add_changelog_entry[file_path-test-None-None-timestamp0-None-result0] PASSED [ 73%] tests/integration/test_specfile.py::test_add_changelog_entry[file_path-test-None-None-timestamp1-%{version}-%{release}-result1] PASSED [ 73%] tests/integration/test_specfile.py::test_add_changelog_entry[file_path-test-None-None-timestamp2-0.1-1-result2] PASSED [ 73%] tests/integration/test_specfile.py::test_add_changelog_entry[file_path-test-None-None-timestamp3-0.2-1.1-result3] PASSED [ 73%] tests/integration/test_specfile.py::test_add_changelog_entry[file_path-test-Bill Packager-None-timestamp4-None-result4] PASSED [ 73%] tests/integration/test_specfile.py::test_add_changelog_entry[file_path-test-Bill Packager-bill@packager.net-timestamp5-None-result5] PASSED [ 73%] tests/integration/test_specfile.py::test_add_changelog_entry[file_path-test-Bill Packager-bill@packager.net-timestamp6-None-result6] PASSED [ 73%] tests/integration/test_specfile.py::test_add_changelog_entry[file_path-entry7-Bill Packager-bill@packager.net-timestamp7-None-result7] PASSED [ 73%] tests/integration/test_specfile.py::test_add_changelog_entry[text_file-test-None-None-timestamp0-None-result0] PASSED [ 73%] tests/integration/test_specfile.py::test_add_changelog_entry[text_file-test-None-None-timestamp1-%{version}-%{release}-result1] PASSED [ 74%] tests/integration/test_specfile.py::test_add_changelog_entry[text_file-test-None-None-timestamp2-0.1-1-result2] PASSED [ 74%] tests/integration/test_specfile.py::test_add_changelog_entry[text_file-test-None-None-timestamp3-0.2-1.1-result3] PASSED [ 74%] tests/integration/test_specfile.py::test_add_changelog_entry[text_file-test-Bill Packager-None-timestamp4-None-result4] PASSED [ 74%] tests/integration/test_specfile.py::test_add_changelog_entry[text_file-test-Bill Packager-bill@packager.net-timestamp5-None-result5] PASSED [ 74%] tests/integration/test_specfile.py::test_add_changelog_entry[text_file-test-Bill Packager-bill@packager.net-timestamp6-None-result6] PASSED [ 74%] tests/integration/test_specfile.py::test_add_changelog_entry[text_file-entry7-Bill Packager-bill@packager.net-timestamp7-None-result7] PASSED [ 74%] tests/integration/test_specfile.py::test_add_changelog_entry[binary_file-test-None-None-timestamp0-None-result0] PASSED [ 74%] tests/integration/test_specfile.py::test_add_changelog_entry[binary_file-test-None-None-timestamp1-%{version}-%{release}-result1] PASSED [ 74%] tests/integration/test_specfile.py::test_add_changelog_entry[binary_file-test-None-None-timestamp2-0.1-1-result2] PASSED [ 75%] tests/integration/test_specfile.py::test_add_changelog_entry[binary_file-test-None-None-timestamp3-0.2-1.1-result3] PASSED [ 75%] tests/integration/test_specfile.py::test_add_changelog_entry[binary_file-test-Bill Packager-None-timestamp4-None-result4] PASSED [ 75%] tests/integration/test_specfile.py::test_add_changelog_entry[binary_file-test-Bill Packager-bill@packager.net-timestamp5-None-result5] PASSED [ 75%] tests/integration/test_specfile.py::test_add_changelog_entry[binary_file-test-Bill Packager-bill@packager.net-timestamp6-None-result6] PASSED [ 75%] tests/integration/test_specfile.py::test_add_changelog_entry[binary_file-entry7-Bill Packager-bill@packager.net-timestamp7-None-result7] PASSED [ 75%] tests/integration/test_specfile.py::test_add_changelog_entry[text_io_stream-test-None-None-timestamp0-None-result0] PASSED [ 75%] tests/integration/test_specfile.py::test_add_changelog_entry[text_io_stream-test-None-None-timestamp1-%{version}-%{release}-result1] PASSED [ 75%] tests/integration/test_specfile.py::test_add_changelog_entry[text_io_stream-test-None-None-timestamp2-0.1-1-result2] PASSED [ 75%] tests/integration/test_specfile.py::test_add_changelog_entry[text_io_stream-test-None-None-timestamp3-0.2-1.1-result3] PASSED [ 76%] tests/integration/test_specfile.py::test_add_changelog_entry[text_io_stream-test-Bill Packager-None-timestamp4-None-result4] PASSED [ 76%] tests/integration/test_specfile.py::test_add_changelog_entry[text_io_stream-test-Bill Packager-bill@packager.net-timestamp5-None-result5] PASSED [ 76%] tests/integration/test_specfile.py::test_add_changelog_entry[text_io_stream-test-Bill Packager-bill@packager.net-timestamp6-None-result6] PASSED [ 76%] tests/integration/test_specfile.py::test_add_changelog_entry[text_io_stream-entry7-Bill Packager-bill@packager.net-timestamp7-None-result7] PASSED [ 76%] tests/integration/test_specfile.py::test_add_changelog_entry[binary_io_stream-test-None-None-timestamp0-None-result0] PASSED [ 76%] tests/integration/test_specfile.py::test_add_changelog_entry[binary_io_stream-test-None-None-timestamp1-%{version}-%{release}-result1] PASSED [ 76%] tests/integration/test_specfile.py::test_add_changelog_entry[binary_io_stream-test-None-None-timestamp2-0.1-1-result2] PASSED [ 76%] tests/integration/test_specfile.py::test_add_changelog_entry[binary_io_stream-test-None-None-timestamp3-0.2-1.1-result3] PASSED [ 76%] tests/integration/test_specfile.py::test_add_changelog_entry[binary_io_stream-test-Bill Packager-None-timestamp4-None-result4] PASSED [ 77%] tests/integration/test_specfile.py::test_add_changelog_entry[binary_io_stream-test-Bill Packager-bill@packager.net-timestamp5-None-result5] PASSED [ 77%] tests/integration/test_specfile.py::test_add_changelog_entry[binary_io_stream-test-Bill Packager-bill@packager.net-timestamp6-None-result6] PASSED [ 77%] tests/integration/test_specfile.py::test_add_changelog_entry[binary_io_stream-entry7-Bill Packager-bill@packager.net-timestamp7-None-result7] PASSED [ 77%] tests/integration/test_specfile.py::test_add_changelog_entry[content_string-test-None-None-timestamp0-None-result0] PASSED [ 77%] tests/integration/test_specfile.py::test_add_changelog_entry[content_string-test-None-None-timestamp1-%{version}-%{release}-result1] PASSED [ 77%] tests/integration/test_specfile.py::test_add_changelog_entry[content_string-test-None-None-timestamp2-0.1-1-result2] PASSED [ 77%] tests/integration/test_specfile.py::test_add_changelog_entry[content_string-test-None-None-timestamp3-0.2-1.1-result3] PASSED [ 77%] tests/integration/test_specfile.py::test_add_changelog_entry[content_string-test-Bill Packager-None-timestamp4-None-result4] PASSED [ 77%] tests/integration/test_specfile.py::test_add_changelog_entry[content_string-test-Bill Packager-bill@packager.net-timestamp5-None-result5] PASSED [ 77%] tests/integration/test_specfile.py::test_add_changelog_entry[content_string-test-Bill Packager-bill@packager.net-timestamp6-None-result6] PASSED [ 78%] tests/integration/test_specfile.py::test_add_changelog_entry[content_string-entry7-Bill Packager-bill@packager.net-timestamp7-None-result7] PASSED [ 78%] tests/integration/test_specfile.py::test_add_changelog_entry_ignores_invalid_padding[file_path] PASSED [ 78%] tests/integration/test_specfile.py::test_add_changelog_entry_ignores_invalid_padding[text_file] PASSED [ 78%] tests/integration/test_specfile.py::test_add_changelog_entry_ignores_invalid_padding[binary_file] PASSED [ 78%] tests/integration/test_specfile.py::test_add_changelog_entry_ignores_invalid_padding[text_io_stream] PASSED [ 78%] tests/integration/test_specfile.py::test_add_changelog_entry_ignores_invalid_padding[binary_io_stream] PASSED [ 78%] tests/integration/test_specfile.py::test_add_changelog_entry_ignores_invalid_padding[content_string] PASSED [ 78%] tests/integration/test_specfile.py::test_set_version_and_release[file_path-0.2-3] PASSED [ 78%] tests/integration/test_specfile.py::test_set_version_and_release[file_path-67-1] PASSED [ 79%] tests/integration/test_specfile.py::test_set_version_and_release[file_path-1.4.6-0.1rc5] PASSED [ 79%] tests/integration/test_specfile.py::test_set_version_and_release[text_file-0.2-3] PASSED [ 79%] tests/integration/test_specfile.py::test_set_version_and_release[text_file-67-1] PASSED [ 79%] tests/integration/test_specfile.py::test_set_version_and_release[text_file-1.4.6-0.1rc5] PASSED [ 79%] tests/integration/test_specfile.py::test_set_version_and_release[binary_file-0.2-3] PASSED [ 79%] tests/integration/test_specfile.py::test_set_version_and_release[binary_file-67-1] PASSED [ 79%] tests/integration/test_specfile.py::test_set_version_and_release[binary_file-1.4.6-0.1rc5] PASSED [ 79%] tests/integration/test_specfile.py::test_set_version_and_release[text_io_stream-0.2-3] PASSED [ 79%] tests/integration/test_specfile.py::test_set_version_and_release[text_io_stream-67-1] PASSED [ 80%] tests/integration/test_specfile.py::test_set_version_and_release[text_io_stream-1.4.6-0.1rc5] PASSED [ 80%] tests/integration/test_specfile.py::test_set_version_and_release[binary_io_stream-0.2-3] PASSED [ 80%] tests/integration/test_specfile.py::test_set_version_and_release[binary_io_stream-67-1] PASSED [ 80%] tests/integration/test_specfile.py::test_set_version_and_release[binary_io_stream-1.4.6-0.1rc5] PASSED [ 80%] tests/integration/test_specfile.py::test_set_version_and_release[content_string-0.2-3] PASSED [ 80%] tests/integration/test_specfile.py::test_set_version_and_release[content_string-67-1] PASSED [ 80%] tests/integration/test_specfile.py::test_set_version_and_release[content_string-1.4.6-0.1rc5] PASSED [ 80%] tests/integration/test_specfile.py::test_add_patch[file_path-patchX.patch-None-None] PASSED [ 80%] tests/integration/test_specfile.py::test_add_patch[file_path-patchX.patch-0-None] PASSED [ 81%] tests/integration/test_specfile.py::test_add_patch[file_path-patch2.patch-None-None] PASSED [ 81%] tests/integration/test_specfile.py::test_add_patch[file_path-patch3.patch-3-patch3] PASSED [ 81%] tests/integration/test_specfile.py::test_add_patch[text_file-patchX.patch-None-None] PASSED [ 81%] tests/integration/test_specfile.py::test_add_patch[text_file-patchX.patch-0-None] PASSED [ 81%] tests/integration/test_specfile.py::test_add_patch[text_file-patch2.patch-None-None] PASSED [ 81%] tests/integration/test_specfile.py::test_add_patch[text_file-patch3.patch-3-patch3] PASSED [ 81%] tests/integration/test_specfile.py::test_add_patch[binary_file-patchX.patch-None-None] PASSED [ 81%] tests/integration/test_specfile.py::test_add_patch[binary_file-patchX.patch-0-None] PASSED [ 81%] tests/integration/test_specfile.py::test_add_patch[binary_file-patch2.patch-None-None] PASSED [ 82%] tests/integration/test_specfile.py::test_add_patch[binary_file-patch3.patch-3-patch3] PASSED [ 82%] tests/integration/test_specfile.py::test_add_patch[text_io_stream-patchX.patch-None-None] PASSED [ 82%] tests/integration/test_specfile.py::test_add_patch[text_io_stream-patchX.patch-0-None] PASSED [ 82%] tests/integration/test_specfile.py::test_add_patch[text_io_stream-patch2.patch-None-None] PASSED [ 82%] tests/integration/test_specfile.py::test_add_patch[text_io_stream-patch3.patch-3-patch3] PASSED [ 82%] tests/integration/test_specfile.py::test_add_patch[binary_io_stream-patchX.patch-None-None] PASSED [ 82%] tests/integration/test_specfile.py::test_add_patch[binary_io_stream-patchX.patch-0-None] PASSED [ 82%] tests/integration/test_specfile.py::test_add_patch[binary_io_stream-patch2.patch-None-None] PASSED [ 82%] tests/integration/test_specfile.py::test_add_patch[binary_io_stream-patch3.patch-3-patch3] PASSED [ 83%] tests/integration/test_specfile.py::test_add_patch[content_string-patchX.patch-None-None] PASSED [ 83%] tests/integration/test_specfile.py::test_add_patch[content_string-patchX.patch-0-None] PASSED [ 83%] tests/integration/test_specfile.py::test_add_patch[content_string-patch2.patch-None-None] PASSED [ 83%] tests/integration/test_specfile.py::test_add_patch[content_string-patch3.patch-3-patch3] PASSED [ 83%] tests/integration/test_specfile.py::test_remove_patches[file_path] PASSED [ 83%] tests/integration/test_specfile.py::test_remove_patches[text_file] PASSED [ 83%] tests/integration/test_specfile.py::test_remove_patches[binary_file] PASSED [ 83%] tests/integration/test_specfile.py::test_remove_patches[text_io_stream] PASSED [ 83%] tests/integration/test_specfile.py::test_remove_patches[binary_io_stream] PASSED [ 84%] tests/integration/test_specfile.py::test_remove_patches[content_string] PASSED [ 84%] tests/integration/test_specfile.py::test_autorelease[file_path-1%{?dist}-False] PASSED [ 84%] tests/integration/test_specfile.py::test_autorelease[file_path-%{release_number}%{?dist}-False] PASSED [ 84%] tests/integration/test_specfile.py::test_autorelease[file_path-0.27.%{commitdate}git%{shortcommit}%{?dist}-False] PASSED [ 84%] tests/integration/test_specfile.py::test_autorelease[file_path-%autorelease-True] PASSED [ 84%] tests/integration/test_specfile.py::test_autorelease[file_path-%{autorelease}-True] PASSED [ 84%] tests/integration/test_specfile.py::test_autorelease[file_path-%autorelease -b 4 -s %{date}git%{shortcommit}-True] PASSED [ 84%] tests/integration/test_specfile.py::test_autorelease[file_path-%{?autorelease}%{!?autorelease:1%{?dist}}-True] PASSED [ 84%] tests/integration/test_specfile.py::test_autorelease[file_path-0.10.%{date}git%{shortcommit}.%autorelease-True] PASSED [ 85%] tests/integration/test_specfile.py::test_autorelease[file_path-%{obsrel}.%{autorelease}-True] PASSED [ 85%] tests/integration/test_specfile.py::test_autorelease[text_file-1%{?dist}-False] PASSED [ 85%] tests/integration/test_specfile.py::test_autorelease[text_file-%{release_number}%{?dist}-False] PASSED [ 85%] tests/integration/test_specfile.py::test_autorelease[text_file-0.27.%{commitdate}git%{shortcommit}%{?dist}-False] PASSED [ 85%] tests/integration/test_specfile.py::test_autorelease[text_file-%autorelease-True] PASSED [ 85%] tests/integration/test_specfile.py::test_autorelease[text_file-%{autorelease}-True] PASSED [ 85%] tests/integration/test_specfile.py::test_autorelease[text_file-%autorelease -b 4 -s %{date}git%{shortcommit}-True] PASSED [ 85%] tests/integration/test_specfile.py::test_autorelease[text_file-%{?autorelease}%{!?autorelease:1%{?dist}}-True] PASSED [ 85%] tests/integration/test_specfile.py::test_autorelease[text_file-0.10.%{date}git%{shortcommit}.%autorelease-True] PASSED [ 86%] tests/integration/test_specfile.py::test_autorelease[text_file-%{obsrel}.%{autorelease}-True] PASSED [ 86%] tests/integration/test_specfile.py::test_autorelease[binary_file-1%{?dist}-False] PASSED [ 86%] tests/integration/test_specfile.py::test_autorelease[binary_file-%{release_number}%{?dist}-False] PASSED [ 86%] tests/integration/test_specfile.py::test_autorelease[binary_file-0.27.%{commitdate}git%{shortcommit}%{?dist}-False] PASSED [ 86%] tests/integration/test_specfile.py::test_autorelease[binary_file-%autorelease-True] PASSED [ 86%] tests/integration/test_specfile.py::test_autorelease[binary_file-%{autorelease}-True] PASSED [ 86%] tests/integration/test_specfile.py::test_autorelease[binary_file-%autorelease -b 4 -s %{date}git%{shortcommit}-True] PASSED [ 86%] tests/integration/test_specfile.py::test_autorelease[binary_file-%{?autorelease}%{!?autorelease:1%{?dist}}-True] PASSED [ 86%] tests/integration/test_specfile.py::test_autorelease[binary_file-0.10.%{date}git%{shortcommit}.%autorelease-True] PASSED [ 87%] tests/integration/test_specfile.py::test_autorelease[binary_file-%{obsrel}.%{autorelease}-True] PASSED [ 87%] tests/integration/test_specfile.py::test_autorelease[text_io_stream-1%{?dist}-False] PASSED [ 87%] tests/integration/test_specfile.py::test_autorelease[text_io_stream-%{release_number}%{?dist}-False] PASSED [ 87%] tests/integration/test_specfile.py::test_autorelease[text_io_stream-0.27.%{commitdate}git%{shortcommit}%{?dist}-False] PASSED [ 87%] tests/integration/test_specfile.py::test_autorelease[text_io_stream-%autorelease-True] PASSED [ 87%] tests/integration/test_specfile.py::test_autorelease[text_io_stream-%{autorelease}-True] PASSED [ 87%] tests/integration/test_specfile.py::test_autorelease[text_io_stream-%autorelease -b 4 -s %{date}git%{shortcommit}-True] PASSED [ 87%] tests/integration/test_specfile.py::test_autorelease[text_io_stream-%{?autorelease}%{!?autorelease:1%{?dist}}-True] PASSED [ 87%] tests/integration/test_specfile.py::test_autorelease[text_io_stream-0.10.%{date}git%{shortcommit}.%autorelease-True] PASSED [ 88%] tests/integration/test_specfile.py::test_autorelease[text_io_stream-%{obsrel}.%{autorelease}-True] PASSED [ 88%] tests/integration/test_specfile.py::test_autorelease[binary_io_stream-1%{?dist}-False] PASSED [ 88%] tests/integration/test_specfile.py::test_autorelease[binary_io_stream-%{release_number}%{?dist}-False] PASSED [ 88%] tests/integration/test_specfile.py::test_autorelease[binary_io_stream-0.27.%{commitdate}git%{shortcommit}%{?dist}-False] PASSED [ 88%] tests/integration/test_specfile.py::test_autorelease[binary_io_stream-%autorelease-True] PASSED [ 88%] tests/integration/test_specfile.py::test_autorelease[binary_io_stream-%{autorelease}-True] PASSED [ 88%] tests/integration/test_specfile.py::test_autorelease[binary_io_stream-%autorelease -b 4 -s %{date}git%{shortcommit}-True] PASSED [ 88%] tests/integration/test_specfile.py::test_autorelease[binary_io_stream-%{?autorelease}%{!?autorelease:1%{?dist}}-True] PASSED [ 88%] tests/integration/test_specfile.py::test_autorelease[binary_io_stream-0.10.%{date}git%{shortcommit}.%autorelease-True] PASSED [ 88%] tests/integration/test_specfile.py::test_autorelease[binary_io_stream-%{obsrel}.%{autorelease}-True] PASSED [ 89%] tests/integration/test_specfile.py::test_autorelease[content_string-1%{?dist}-False] PASSED [ 89%] tests/integration/test_specfile.py::test_autorelease[content_string-%{release_number}%{?dist}-False] PASSED [ 89%] tests/integration/test_specfile.py::test_autorelease[content_string-0.27.%{commitdate}git%{shortcommit}%{?dist}-False] PASSED [ 89%] tests/integration/test_specfile.py::test_autorelease[content_string-%autorelease-True] PASSED [ 89%] tests/integration/test_specfile.py::test_autorelease[content_string-%{autorelease}-True] PASSED [ 89%] tests/integration/test_specfile.py::test_autorelease[content_string-%autorelease -b 4 -s %{date}git%{shortcommit}-True] PASSED [ 89%] tests/integration/test_specfile.py::test_autorelease[content_string-%{?autorelease}%{!?autorelease:1%{?dist}}-True] PASSED [ 89%] tests/integration/test_specfile.py::test_autorelease[content_string-0.10.%{date}git%{shortcommit}.%autorelease-True] PASSED [ 89%] tests/integration/test_specfile.py::test_autorelease[content_string-%{obsrel}.%{autorelease}-True] PASSED [ 90%] tests/integration/test_specfile.py::test_autochangelog[file_path] PASSED [ 90%] tests/integration/test_specfile.py::test_autochangelog[text_file] PASSED [ 90%] tests/integration/test_specfile.py::test_autochangelog[binary_file] PASSED [ 90%] tests/integration/test_specfile.py::test_autochangelog[text_io_stream] PASSED [ 90%] tests/integration/test_specfile.py::test_autochangelog[binary_io_stream] PASSED [ 90%] tests/integration/test_specfile.py::test_autochangelog[content_string] PASSED [ 90%] tests/integration/test_specfile.py::test_update_tag[file_path] PASSED [ 90%] tests/integration/test_specfile.py::test_update_tag[text_file] PASSED [ 90%] tests/integration/test_specfile.py::test_update_tag[binary_file] PASSED [ 91%] tests/integration/test_specfile.py::test_update_tag[text_io_stream] PASSED [ 91%] tests/integration/test_specfile.py::test_update_tag[binary_io_stream] PASSED [ 91%] tests/integration/test_specfile.py::test_update_tag[content_string] PASSED [ 91%] tests/integration/test_specfile.py::test_multiple_instances[file_path] PASSED [ 91%] tests/integration/test_specfile.py::test_multiple_instances[text_file] PASSED [ 91%] tests/integration/test_specfile.py::test_multiple_instances[binary_file] PASSED [ 91%] tests/integration/test_specfile.py::test_multiple_instances[text_io_stream] PASSED [ 91%] tests/integration/test_specfile.py::test_multiple_instances[binary_io_stream] PASSED [ 91%] tests/integration/test_specfile.py::test_multiple_instances[content_string] PASSED [ 92%] tests/integration/test_specfile.py::test_includes[file_path] PASSED [ 92%] tests/integration/test_specfile.py::test_includes[text_file] PASSED [ 92%] tests/integration/test_specfile.py::test_includes[binary_file] PASSED [ 92%] tests/integration/test_specfile.py::test_includes[text_io_stream] PASSED [ 92%] tests/integration/test_specfile.py::test_includes[binary_io_stream] PASSED [ 92%] tests/integration/test_specfile.py::test_includes[content_string] PASSED [ 92%] tests/integration/test_specfile.py::test_shell_expansions[file_path] PASSED [ 92%] tests/integration/test_specfile.py::test_shell_expansions[text_file] PASSED [ 92%] tests/integration/test_specfile.py::test_shell_expansions[binary_file] PASSED [ 93%] tests/integration/test_specfile.py::test_shell_expansions[text_io_stream] PASSED [ 93%] tests/integration/test_specfile.py::test_shell_expansions[binary_io_stream] PASSED [ 93%] tests/integration/test_specfile.py::test_shell_expansions[content_string] PASSED [ 93%] tests/integration/test_specfile.py::test_context_management[file_path] PASSED [ 93%] tests/integration/test_specfile.py::test_context_management[text_file] PASSED [ 93%] tests/integration/test_specfile.py::test_context_management[binary_file] PASSED [ 93%] tests/integration/test_specfile.py::test_context_management[text_io_stream] PASSED [ 93%] tests/integration/test_specfile.py::test_context_management[binary_io_stream] PASSED [ 93%] tests/integration/test_specfile.py::test_context_management[content_string] PASSED [ 94%] tests/integration/test_specfile.py::test_copy[file_path] PASSED [ 94%] tests/integration/test_specfile.py::test_copy[text_file] PASSED [ 94%] tests/integration/test_specfile.py::test_copy[binary_file] PASSED [ 94%] tests/integration/test_specfile.py::test_copy[text_io_stream] PASSED [ 94%] tests/integration/test_specfile.py::test_copy[binary_io_stream] PASSED [ 94%] tests/integration/test_specfile.py::test_copy[content_string] PASSED [ 94%] tests/integration/test_specfile.py::test_parse_if_necessary[file_path] PASSED [ 94%] tests/integration/test_specfile.py::test_parse_if_necessary[text_file] PASSED [ 94%] tests/integration/test_specfile.py::test_parse_if_necessary[binary_file] PASSED [ 95%] tests/integration/test_specfile.py::test_parse_if_necessary[text_io_stream] PASSED [ 95%] tests/integration/test_specfile.py::test_parse_if_necessary[binary_io_stream] PASSED [ 95%] tests/integration/test_specfile.py::test_parse_if_necessary[content_string] PASSED [ 95%] tests/integration/test_specfile.py::test_update_version[file_path] PASSED [ 95%] tests/integration/test_specfile.py::test_update_version[text_file] PASSED [ 95%] tests/integration/test_specfile.py::test_update_version[binary_file] PASSED [ 95%] tests/integration/test_specfile.py::test_update_version[text_io_stream] PASSED [ 95%] tests/integration/test_specfile.py::test_update_version[binary_io_stream] PASSED [ 95%] tests/integration/test_specfile.py::test_update_version[content_string] PASSED [ 96%] tests/integration/test_specfile.py::test_trailing_newline[file_path] PASSED [ 96%] tests/integration/test_specfile.py::test_trailing_newline[text_file] PASSED [ 96%] tests/integration/test_specfile.py::test_trailing_newline[binary_file] PASSED [ 96%] tests/integration/test_specfile.py::test_trailing_newline[text_io_stream] PASSED [ 96%] tests/integration/test_specfile.py::test_trailing_newline[binary_io_stream] PASSED [ 96%] tests/integration/test_specfile.py::test_trailing_newline[content_string] PASSED [ 96%] tests/integration/test_specfile.py::test_reload[file_path-False] PASSED [ 96%] tests/integration/test_specfile.py::test_reload[file_path-True] PASSED [ 96%] tests/integration/test_specfile.py::test_reload[text_file-False] PASSED [ 97%] tests/integration/test_specfile.py::test_reload[text_file-True] PASSED [ 97%] tests/integration/test_specfile.py::test_reload[binary_file-False] PASSED [ 97%] tests/integration/test_specfile.py::test_reload[binary_file-True] PASSED [ 97%] tests/integration/test_specfile.py::test_reload[text_io_stream-False] PASSED [ 97%] tests/integration/test_specfile.py::test_reload[text_io_stream-True] PASSED [ 97%] tests/integration/test_specfile.py::test_reload[binary_io_stream-False] PASSED [ 97%] tests/integration/test_specfile.py::test_reload[binary_io_stream-True] PASSED [ 97%] tests/integration/test_specfile.py::test_reload[content_string-False] PASSED [ 97%] tests/integration/test_specfile.py::test_reload[content_string-True] PASSED [ 98%] tests/integration/test_specfile.py::test_save_after_inode_change[file_path] PASSED [ 98%] tests/integration/test_specfile.py::test_save_after_inode_change[text_file] PASSED [ 98%] tests/integration/test_specfile.py::test_save_after_inode_change[binary_file] PASSED [ 98%] tests/integration/test_specfile.py::test_save_after_inode_change[text_io_stream] PASSED [ 98%] tests/integration/test_specfile.py::test_save_after_inode_change[binary_io_stream] PASSED [ 98%] tests/integration/test_specfile.py::test_save_after_inode_change[content_string] PASSED [ 98%] tests/integration/test_specfile.py::test_sanitize[file_path] PASSED [ 98%] tests/integration/test_specfile.py::test_sanitize[text_file] PASSED [ 98%] tests/integration/test_specfile.py::test_sanitize[binary_file] PASSED [ 99%] tests/integration/test_specfile.py::test_sanitize[text_io_stream] PASSED [ 99%] tests/integration/test_specfile.py::test_sanitize[binary_io_stream] PASSED [ 99%] tests/integration/test_specfile.py::test_sanitize[content_string] PASSED [ 99%] tests/integration/test_specfile.py::test_circular_expansion[file_path] PASSED [ 99%] tests/integration/test_specfile.py::test_circular_expansion[text_file] PASSED [ 99%] tests/integration/test_specfile.py::test_circular_expansion[binary_file] PASSED [ 99%] tests/integration/test_specfile.py::test_circular_expansion[text_io_stream] PASSED [ 99%] tests/integration/test_specfile.py::test_circular_expansion[binary_io_stream] PASSED [ 99%] tests/integration/test_specfile.py::test_circular_expansion[content_string] PASSED [100%] ======================= 909 passed in 313.75s (0:05:13) ======================== + RPM_EC=0 ++ jobs -p + exit 0 Processing files: python3-specfile-0.41.1-1.fc45.noarch Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.l6lVVI + umask 022 + cd /builddir/build/BUILD/python-specfile-0.41.1-build + cd specfile-0.41.1 + DOCDIR=/builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT/usr/share/doc/python3-specfile + export LC_ALL=C.UTF-8 + LC_ALL=C.UTF-8 + export DOCDIR + /usr/bin/mkdir -p /builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT/usr/share/doc/python3-specfile + cp -pr /builddir/build/BUILD/python-specfile-0.41.1-build/specfile-0.41.1/README.md /builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT/usr/share/doc/python3-specfile + RPM_EC=0 ++ jobs -p + exit 0 Provides: python-specfile = 0.41.1-1.fc45 python3-specfile = 0.41.1-1.fc45 python3.15-specfile = 0.41.1-1.fc45 python3.15dist(specfile) = 0.41.1 python3dist(specfile) = 0.41.1 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PartialHardlinkSets) <= 4.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires: python(abi) = 3.15 python3.15dist(rpm) Checking for unpackaged file(s): /usr/lib/rpm/check-files /builddir/build/BUILD/python-specfile-0.41.1-build/BUILDROOT Wrote: /builddir/build/SRPMS/python-specfile-0.41.1-1.fc45.src.rpm Wrote: /builddir/build/RPMS/python3-specfile-0.41.1-1.fc45.noarch.rpm Child return code was: 0