summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorDavide Cavalca <dcavalca@fb.com>2021-11-30 12:52:38 -0800
committerGitHub <noreply@github.com>2021-11-30 12:52:38 -0800
commitf616d5e46d2acf9aa395a3934e9ecc8ad4da1497 (patch)
tree75be36137a270a5a40a303ff69858c6edf6f138f /spec
parent17b492e4192a4ca12001dbc410f0067825412be5 (diff)
downloadohai-f616d5e46d2acf9aa395a3934e9ecc8ad4da1497.tar.gz
Add new rpm plugin (#1718)
Add a basic plugin to expose configuration information from the RPM package manager. I specifically wrote this to expose the `_db_backend` macro, but figured it'd be useful to make it cover a bit more while at it. This plugin is enabled on all non-Windows platforms, because a port of RPM exists (and is sometimes used) on pretty much all platforms, even where it's not usually installed by default. Signed-off-by: Davide Cavalca <dcavalca@fb.com>
Diffstat (limited to 'spec')
-rw-r--r--spec/data/plugins/rpm-showrc.output2553
-rw-r--r--spec/unit/plugins/rpm_spec.rb51
2 files changed, 2604 insertions, 0 deletions
diff --git a/spec/data/plugins/rpm-showrc.output b/spec/data/plugins/rpm-showrc.output
new file mode 100644
index 00000000..1bcd110f
--- /dev/null
+++ b/spec/data/plugins/rpm-showrc.output
@@ -0,0 +1,2553 @@
+ARCHITECTURE AND OS:
+build arch : x86_64
+compatible build archs: x86_64 noarch
+build os : Linux
+compatible build os's : Linux
+install arch : x86_64
+install os : Linux
+compatible archs : x86_64 amd64 em64t athlon noarch i686 i586 i486 i386 fat
+compatible os's : Linux
+
+RPMRC VALUES:
+archcolor : 2
+optflags : %{__global_compiler_flags} -m64 %{__cflags_arch_x86_64} -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection
+
+Features supported by rpmlib:
+ rpmlib(BuiltinLuaScripts) = 4.2.2-1
+ rpmlib(CaretInVersions) = 4.15.0-1
+ rpmlib(CompressedFileNames) = 3.0.4-1
+ rpmlib(ConcurrentAccess) = 4.1-1
+ rpmlib(DynamicBuildRequires) = 4.15.0-1
+ rpmlib(ExplicitPackageProvide) = 4.0-1
+ rpmlib(FileCaps) = 4.6.1-1
+ rpmlib(FileDigests) = 4.6.0-1
+ rpmlib(HeaderLoadSortsTags) = 4.0.1-1
+ rpmlib(LargeFiles) = 4.12.0-1
+ rpmlib(PartialHardlinkSets) = 4.0.4-1
+ rpmlib(PayloadFilesHavePrefix) = 4.0-1
+ rpmlib(PayloadIsBzip2) = 3.0.5-1
+ rpmlib(PayloadIsLzma) = 4.4.2-1
+ rpmlib(PayloadIsXz) = 5.2-1
+ rpmlib(PayloadIsZstd) = 5.4.18-1
+ rpmlib(RichDependencies) = 4.12.0-1
+ rpmlib(ScriptletExpansion) = 4.9.0-1
+ rpmlib(ScriptletInterpreterArgs) = 4.0.3-1
+ rpmlib(TildeInVersions) = 4.10.0-1
+ rpmlib(VersionedDependencies) = 3.0.3-1
+
+Macro path: /usr/lib/rpm/macros:/usr/lib/rpm/macros.d/macros.*:/usr/lib/rpm/platform/%{_target}/macros:/usr/lib/rpm/fileattrs/*.attr:/usr/lib/rpm/redhat/macros:/etc/rpm/macros.*:/etc/rpm/macros:/etc/rpm/%{_target}/macros:~/.rpmmacros
+
+========================
+-13: GNAT_arches %{GPRbuild_arches} ia64 ppc alpha
+-13: GPRbuild_arches %{ix86} x86_64 %{power64} s390x %{arm} aarch64
+-20: P <builtin>
+-20: S <builtin>
+-13: __7zip /usr/bin/7za
+-13: ___build_args -e
+-13: ___build_cmd %{?_sudo:%{_sudo} }%{?_remsh:%{_remsh} %{_remhost} }%{?_remsudo:%{_remsudo} }%{?_remchroot:%{_remchroot} %{_remroot} }%{___build_shell} %{___build_args}
+-13: ___build_post
+ RPM_EC=$?
+ for pid in $(jobs -p); do kill -9 ${pid} || continue; done
+ exit ${RPM_EC}
+%{nil}
+-13: ___build_pre
+ RPM_SOURCE_DIR="%{u2p:%{_sourcedir}}"
+ RPM_BUILD_DIR="%{u2p:%{_builddir}}"
+ RPM_OPT_FLAGS="%{optflags}"
+ RPM_LD_FLAGS="%{?build_ldflags}"
+ RPM_ARCH="%{_arch}"
+ RPM_OS="%{_os}"
+ RPM_BUILD_NCPUS="%{_smp_build_ncpus}"
+ export RPM_SOURCE_DIR RPM_BUILD_DIR RPM_OPT_FLAGS RPM_LD_FLAGS RPM_ARCH RPM_OS RPM_BUILD_NCPUS RPM_LD_FLAGS
+ RPM_DOC_DIR="%{_docdir}"
+ export RPM_DOC_DIR
+ RPM_PACKAGE_NAME="%{NAME}"
+ RPM_PACKAGE_VERSION="%{VERSION}"
+ RPM_PACKAGE_RELEASE="%{RELEASE}"
+ export RPM_PACKAGE_NAME RPM_PACKAGE_VERSION RPM_PACKAGE_RELEASE
+ LANG=C
+ export LANG
+ unset CDPATH DISPLAY ||:
+ %{?buildroot:RPM_BUILD_ROOT="%{u2p:%{buildroot}}"
+ export RPM_BUILD_ROOT}
+ %{?_javaclasspath:CLASSPATH="%{_javaclasspath}"
+ export CLASSPATH}
+ PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:%{_libdir}/pkgconfig:%{_datadir}/pkgconfig"
+ export PKG_CONFIG_PATH
+ CONFIG_SITE=${CONFIG_SITE:-NONE}
+ export CONFIG_SITE
+
+ %[%{verbose}?"set -x":""]
+ umask 022
+ cd "%{u2p:%{_builddir}}"
+-13: ___build_shell %{?_buildshell:%{_buildshell}}%{!?_buildshell:/bin/sh}
+-13: ___build_template #!%{___build_shell}
+%{___build_pre}
+%{nil}
+-13: __apply_patch(qp:m:)
+%{lua:
+local file = rpm.expand("%{1}")
+local num = rpm.expand("%{2}")
+if posix.access(file, "r") then
+ local options = rpm.expand("%{-q} %{-p:-p%{-p*}} %{-m:-m%{-m*}}")
+ local scm_apply = rpm.expand("%__scm_apply_%{__scm}")
+ print(rpm.expand("%{uncompress:"..file.."} | "..scm_apply.." "..options.." "..file.." "..num.."\n"))
+else
+ print("echo 'Cannot read "..file.."'; exit 1;".."\n")
+end}
+-13: __ar ar
+-13: __arch_install_post /usr/lib/rpm/check-buildroot
+-13: __as as
+-13: __awk gawk
+-13: __bootstrap ~bootstrap
+-13: __brp_boot_efi_times /usr/lib/rpm/brp-boot-efi-times
+-13: __brp_check_rpaths /usr/lib/rpm/check-rpaths
+-13: __brp_compress /usr/lib/rpm/brp-compress
+-13: __brp_elfperms %{_rpmconfigdir}/brp-elfperms
+-13: __brp_fix_pyc_reproducibility %{_rpmconfigdir}/redhat/brp-fix-pyc-reproducibility
+-13: __brp_ldconfig /usr/lib/rpm/redhat/brp-ldconfig
+-13: __brp_llvm_compile_lto_elf /usr/lib/rpm/redhat/brp-llvm-compile-lto-elf %{build_cflags} %{build_ldflags}
+-13: __brp_mangle_shebangs /usr/lib/rpm/redhat/brp-mangle-shebangs %{?__brp_mangle_shebangs_exclude:--shebangs "%{?__brp_mangle_shebangs_exclude}"} %{?__brp_mangle_shebangs_exclude_file:--shebangs-from "%{__brp_mangle_shebangs_exclude_file}"} %{?__brp_mangle_shebangs_exclude_from:--files "%{?__brp_mangle_shebangs_exclude_from}"} %{?__brp_mangle_shebangs_exclude_from_file:--files-from "%{__brp_mangle_shebangs_exclude_from_file}"}
+-13: __brp_python_bytecompile %{_rpmconfigdir}/redhat/brp-python-bytecompile "" "%{?_python_bytecompile_errors_terminate_build}" "%{?_python_bytecompile_extra}"
+-13: __brp_python_hardlink %{_rpmconfigdir}/redhat/brp-python-hardlink
+-13: __brp_remove_la_files %{_rpmconfigdir}/brp-remove-la-files
+-13: __brp_strip /usr/lib/rpm/brp-strip %{__strip}
+-13: __brp_strip_comment_note /usr/lib/rpm/brp-strip-comment-note %{__strip} %{__objdump}
+-13: __brp_strip_lto /usr/lib/rpm/redhat/brp-strip-lto %{__strip}
+-13: __brp_strip_static_archive /usr/lib/rpm/brp-strip-static-archive %{__strip}
+-13: __bzip2 /usr/bin/bzip2
+-13: __bzr /usr/bin/bzr
+-13: __cargo_skip_build %{lua:
+local crate = rpm.expand('%{crate}')
+local build_crate = false
+for w in rpm.expand('%{?_build_crates}'):gmatch('%S+') do
+ if w == crate then
+ build_crate = true
+ break
+ end
+end
+if (rpm.expand('%{defined _module_build}') ~= '0' and not build_crate) then
+ print(1)
+else
+ print(0)
+end}
+-13: __cat /usr/bin/cat
+-13: __cc %{expand:%%{__cc_%{toolchain}}}
+-13: __cc_clang clang
+-13: __cc_gcc gcc
+-13: __cflags_arch_s390x %[0%{?rhel} >= 8 ? "-march=z13 -mtune=z14" : "-march=zEC12 -mtune=z13"]
+-13: __cflags_arch_x86_64 %[0%{?rhel} >= 9 ? "-march=x86-64-v2" : ""]
+-13: __check_files %{_rpmconfigdir}/check-files %{buildroot}
+-13: __chmod /usr/bin/chmod
+-13: __chown /usr/bin/chown
+-13: __cmake /usr/bin/cmake
+-13: __cmake_builddir %{!?__cmake_in_source_build:%{_vpath_builddir}}%{?__cmake_in_source_build:.}
+-13: __cmake_path ^(%{_libdir}|%{_datadir})/cmake/.*/.*(Config.cmake|-config.cmake)$
+-13: __cmake_provides %{_rpmconfigdir}/cmake.prov
+-13: __cmake_requires %{_rpmconfigdir}/cmake.req
+-13: __cp /usr/bin/cp
+-13: __cpp %{expand:%%{__cpp_%{toolchain}}}
+-13: __cpp_clang clang-cpp
+-13: __cpp_gcc gcc -E
+-13: __crates_url https://crates.io/api/v1/crates/
+-13: __ctest /usr/bin/ctest
+-13: __cxx %{expand:%%{__cxx_%{toolchain}}}
+-13: __cxx_clang clang++
+-13: __cxx_gcc g++
+-13: __debug_install_post
+ %{__find_debuginfo} \
+ %{?_smp_build_ncpus:-j%{_smp_build_ncpus}} \
+ %{?_missing_build_ids_terminate_build:--strict-build-id} \
+ %{?_no_recompute_build_ids:-n} \
+ %{?_include_minidebuginfo:-m} \
+ %{?_include_gdb_index:-i} \
+ %{?_unique_build_ids:--build-id-seed "%{VERSION}-%{RELEASE}"} \
+ %{?_unique_debug_names:--unique-debug-suffix "-%{VERSION}-%{RELEASE}.%{_arch}"} \
+ %{?_unique_debug_srcs:--unique-debug-src-base "%{name}-%{VERSION}-%{RELEASE}.%{_arch}"} \
+ %{?_find_debuginfo_dwz_opts} \
+ %{?_find_debuginfo_opts} \
+ %{?_debugsource_packages:-S debugsourcefiles.list} \
+ "%{_builddir}/%{?buildsubdir}"
+%{nil}
+-13: __debuginfo_path ^/usr/lib/debug/.build-id/[^/]+/[^/]+\.debug$
+-13: __debuginfo_provides %{lua:
+ local file = rpm.expand("%1")
+ local b1, b2 = file:match("/([0-9a-f]+)/([0-9a-f]+).debug$")
+ print(string.format("debuginfo(build-id) = %s%s\n", b1, b2))
+}
+-13: __default_python3_pkgversion %__default_python3_version
+-13: __default_python3_version 3.10
+-13: __desktop_path ^%{_datadir}/applications/.*\.desktop$
+-13: __desktop_provides %{lua:
+ local executable = false
+ local mimetypes = nil
+ for line in io.lines(rpm.expand("%1")) do
+ if line:match("^Type%s*=%s*Application$") or line:match("^Exec%s*=") then
+ executable = true
+ elseif line:match("^MimeType%s*=") then
+ mimetypes = line:match("=%s*(.+)")
+ end
+ end
+ if executable then
+ print("application()\n")
+ print(string.format("application(%s)\n", rpm.expand("%{basename:%1}")))
+ if mimetypes then
+ for mimetype in mimetypes:gmatch("([^;]+)") do
+ print(string.format("mimehandler(%s)\n", mimetype))
+ end
+ end
+ end
+}
+-13: __docdir_path %{_datadir}/doc:%{_datadir}/man:%{_datadir}/info:%{_datadir}/gtk-doc/html:%{_datadir}/gnome/help:%{?_docdir}:%{?_mandir}:%{?_infodir}:%{?_javadocdir}:/usr/doc:/usr/man:/usr/info:/usr/X11R6/man
+-13: __elf_magic ^(setuid,? )?(setgid,? )?(sticky )?ELF (32|64)-bit.*$
+-13: __elf_provides %{_rpmconfigdir}/elfdeps --provides
+-13: __elf_requires %{_rpmconfigdir}/elfdeps --requires
+-13: __extension_strip_flags %{lua:
+local name = rpm.expand("%{1}")
+local value = " " .. rpm.expand("%{build_" .. name .. "}")
+local specs_pattern = "%s+-specs=[^%s]+"
+local lto_flags_pattern = rpm.expand("%{?_lto_cflags}"):gsub("[%-%.]", "%%%1")
+local result = value:gsub(specs_pattern, " "):gsub(lto_flags_pattern, "")
+print(result)
+}
+-13: __file /usr/bin/file
+-13: __find_debuginfo /usr/bin/find-debuginfo
+-13: __find_provides %{_rpmconfigdir}/find-provides
+-13: __find_requires %{_rpmconfigdir}/find-requires
+-13: __font_magic [Ff]ont?( (program|collection))?( (text|data))
+-13: __font_provides %{_rpmconfigdir}/fontconfig.prov
+-13: __font_requires %{nil}
+-13: __gem /usr/bin/gem
+-13: __git /usr/bin/git
+-13: __global_cflags %{build_cflags}
+-13: __global_compiler_flags %{_general_options} %{_warning_options} %{_preprocessor_defines} %{_hardened_cflags} %{_annotation_cflags} %{_legacy_options}
+-13: __global_cxxflags %{build_cxxflags}
+-13: __global_fcflags %{build_fflags}
+-13: __global_fflags %{build_fflags}
+-13: __global_ldflags %{build_ldflags}
+-13: __global_provides_exclude_from %{?_docdir:%{_docdir}}
+-13: __global_requires_exclude_from %{?_docdir:%{_docdir}}
+-13: __go_flags path
+-13: __go_path ^%{gopath}/src/.+/.goipath$
+-13: __go_provides go-rpm-integration provides --prefix "%{buildroot}" --go-path "%{gopath}" %{?goprovflags}
+-13: __go_requires go-rpm-integration requires --prefix "%{buildroot}" --go-path "%{gopath}" %{?goreqflags}
+-13: __goaltinstall %{expand:
+install -m 0755 -d "%{buildroot}%{gopath}/src/%(dirname %{currentgoaltipath})"
+ln -rs "%{buildroot}%{gopath}/src/%{currentgocanonipath}" "%{buildroot}%{gopath}/src/%{currentgoaltipath}"
+echo "%{gopath}/src/%{currentgoaltipath}" >> "%{goworkdir}/%{currentgoaltfilelist}"
+}
+-13: __gobundled_flags magic_and_path
+-13: __gobundled_magic ^(.*, )?directory$
+-13: __gobundled_path ^%{gopath}/src/.+/vendor/.+/.*$
+-13: __gobundled_provides %{_rpmconfigdir}/gobundled.prov
+-13: __godevelinstall(-i:v) %{expand:
+(
+%define __godevelinstall_ipath %{-i*}
+cd "%{gobuilddir}/src/%{__godevelinstall_ipath}"
+%define listfiles_include %{?currentgosupfiles}
+%define listfiles_exclude %{?currentgosupfilesex}
+IFS= gosupfiles=$(%listfiles
+)
+mapfile -t gosupfilesA <<< "${gosupfiles}"
+go-rpm-integration install -i "%{__godevelinstall_ipath}" \
+ -b "%{gobuilddir}/bin" \
+ -s "%{gobuilddir}" \
+ -o "%{currentgodevelfilelist}" \
+ -O "%{goworkdir}" \
+ -V "%{version}-%{release}" \
+ %{?currenttag: -T "%{?currenttag}"} \
+ %{?currentcommit: -C "%{?currentcommit}"} \
+ %{?currentbranch: -B "%{?currentbranch}"} \
+ -p "%{buildroot}" \
+ -g "%{gopath}" \
+ %{?currentgoipathsex} \
+ %{?currentgoextensions} \
+ %{?goinstallflags} \
+ %{-v} ${gosupfilesA[@]:+"${gosupfilesA[@]}"}
+)
+}
+-13: __godevelinstalldoc %{expand:
+(
+%define listfiles_include %{?currentgodocs}
+%define listfiles_exclude %{?currentgodocsex}
+IFS= godocs=$(%listfiles
+)
+if [[ -n "${godocs}" ]] ; then
+ while IFS= read -r f ; do
+ echo %doc \""${f}"\" >> "%{goworkdir}/%{currentgodevelfilelist}"
+ done <<< "${godocs}"
+fi
+)
+(
+%define listfiles_include %{?currentgolicenses}
+%define listfiles_exclude %{?currentgolicensesex}
+IFS= golicenses=$(%listfiles
+)
+if [[ -n "${golicenses}" ]] ; then
+ while IFS= read -r f; do
+ echo "%"license \""${f}"\" >> "%{goworkdir}/%{currentgodevelfilelist}"
+ done <<< "${golicenses}"
+fi
+)
+}
+-13: __gosymlink_flags magic_and_path
+-13: __gosymlink_magic ^(.*, )?(broken )?symbolic link to .*$
+-13: __gosymlink_path ^%{gopath}/src/.*$
+-13: __gosymlink_provides %{_rpmconfigdir}/gosymlink.deps provides --prefix "%{buildroot}" --go-path "%{gopath}"
+-13: __gosymlink_requires %{_rpmconfigdir}/gosymlink.deps requires --prefix "%{buildroot}" --go-path "%{gopath}"
+-13: __gpg /usr/bin/gpg2
+-13: __gpg_reserved_space 4096
+-13: __gpg_sign_cmd %{__gpg}
+ gpg --no-verbose --no-armor
+ %{?_gpg_digest_algo:--digest-algo %{_gpg_digest_algo}}
+ --no-secmem-warning
+ %{?_gpg_sign_cmd_extra_args:%{_gpg_sign_cmd_extra_args}}
+ -u "%{_gpg_name}" -sbo %{__signature_filename} %{__plaintext_filename}
+-13: __grep /usr/bin/grep
+-13: __gstreamer1_path ^%{_libdir}/gstreamer-1.*/.*.so$
+-13: __gstreamer1_provides %{_rpmconfigdir}/gstreamer1.prov
+-13: __gzip /usr/bin/gzip
+-13: __hg /usr/bin/hg
+-13: __id /usr/bin/id
+-13: __id_u %{__id} -u
+-13: __install /usr/bin/install
+-13: __isa %{__isa_name}-%{__isa_bits}
+-13: __isa_bits 64
+-13: __isa_name x86
+-13: __kmod_path ^/lib/modules/.*/(modules.builtin|.*ko)
+-13: __kmod_provides %{lua:
+ function basename(fn)
+ return string.gsub(fn, "(.*/)(.*)", "%2")
+ end
+ function printdep(mod)
+ print("kmod("..mod..")")
+ end
+ local fn = rpm.expand("%{1}")
+ local bn = basename(fn)
+ if bn == "modules.builtin" then
+ for l in io.lines(fn) do
+ printdep(basename(l))
+ end
+ else
+ local mod = string.match(bn, "%g+.ko")
+ if mod then
+ printdep(mod)
+ end
+ end
+}
+-13: __ld /usr/bin/ld
+-13: __libsymlink_flags magic_and_path
+-13: __libsymlink_magic ^symbolic link to .*lib.*.so..*$
+-13: __libsymlink_path ^.*.so$
+-13: __libsymlink_requires %{_rpmconfigdir}/elfdeps --provides --soname-only
+-13: __ln_s ln -s
+-13: __lrzip /usr/bin/lrzip
+-13: __lzip /usr/bin/lzip
+-13: __make /usr/bin/make
+-13: __meson /usr/bin/meson
+-13: __meson_auto_features enabled
+-13: __meson_wrap_mode nodownload
+-13: __metainfo_path ^%{_datadir}/(appdata|metainfo)/.*\.(appdata|metainfo)\.xml$
+-13: __metainfo_provides %{lua:
+ print("metainfo()\n")
+ print(string.format("metainfo(%s)\n", rpm.expand("%{basename:%1}")))
+}
+-13: __mkdir /usr/bin/mkdir
+-13: __mkdir_p /usr/bin/mkdir -p
+-13: __mv /usr/bin/mv
+-13: __ninja /usr/bin/ninja
+-13: __ninja_common_opts -v %{?_smp_mflags}
+-13: __nodejs %{_bindir}/node
+-13: __nodejs_native_path ^/usr/lib.*/node_modules/.*\.node$
+-13: __nodejs_native_requires %{_rpmconfigdir}/nodejs_native.req
+-13: __nodejs_path ^/usr/lib(64)?/node_modules/[^/]+/package\.json$
+-13: __nodejs_provides %{_rpmconfigdir}/nodejs.prov
+-13: __nodejs_requires %{_rpmconfigdir}/nodejs.req
+-13: __nodejs_suggests %{_rpmconfigdir}/nodejs.req --optional
+-13: __objdump /usr/bin/objdump
+-13: __ocaml_flags magic_and_path
+-13: __ocaml_magic ^(ELF|Objective caml|OCaml) .*$
+-13: __ocaml_path .(cma|cmi|cmo|cmx|cmxa|cmxs)$
+-13: __ocaml_provides %{_rpmconfigdir}/ocamldeps.sh --provides
+-13: __ocaml_requires %{_rpmconfigdir}/ocamldeps.sh --requires
+-13: __os_install_post
+ %[ "%{toolchain}" == "clang" ? "%{?__brp_llvm_compile_lto_elf}" : "%{nil}" ]
+ %{?__brp_ldconfig}
+ %{?__brp_compress}
+ %{!?__debug_package:
+ %{?__brp_strip}
+ %{?__brp_strip_comment_note}
+ }
+ %{?__brp_strip_lto}
+ %{?__brp_strip_static_archive}
+ %{?__brp_check_rpaths}
+ %{?__brp_mangle_shebangs}
+ %{__os_install_post_python}
+%{nil}
+-13: __os_install_post_python
+ %{?py_auto_byte_compile:%{?__brp_python_bytecompile}}
+ %{?py_reproducible_pyc_path:%{?__brp_fix_pyc_reproducibility} "%{py_reproducible_pyc_path}"}
+ %{?__brp_python_hardlink}
+%{nil}
+-13: __patch /usr/bin/patch
+-13: __perl %{_bindir}/perl
+-13: __pkgconfig_path ^((%{_libdir}|%{_datadir})/pkgconfig/.*.pc|%{_bindir}/pkg-config)$
+-13: __pkgconfig_provides %{_rpmconfigdir}/pkgconfigdeps.sh --provides
+-13: __pkgconfig_requires %{_rpmconfigdir}/pkgconfigdeps.sh --requires
+-13: __plugindir %{_libdir}/rpm-plugins
+-13: __psdriver_magic ^PPD file.*$
+-13: __psdriver_path ^(/usr/lib/cups/driver/.*|%{_datadir}/cups/drv/.*.drv)$
+-13: __psdriver_provides %{_rpmconfigdir}/postscriptdriver.prov
+-13: __pypi_default_extension tar.gz
+-13: __pypi_url https://files.pythonhosted.org/packages/source/
+-13: __pytest /usr/bin/pytest%(test %{python3_pkgversion} == 3 || echo -%{python3_version})
+-13: __python %{error:attempt to use unversioned python, define %%__python to %{__python2} or %{__python3} explicitly}
+-13: __python2 /usr/bin/python2
+-13: __python3 /usr/bin/python3
+-13: __python_path ^((%{_prefix}/lib(64)?/python[[:digit:]]+\.[[:digit:]]+/.*\.(py[oc]?|so))|(%{_bindir}/python[[:digit:]]+\.[[:digit:]]+))$
+-13: __python_provides %{lua:
+ -- Match buildroot/payload paths of the form
+ -- /PATH/OF/BUILDROOT/usr/bin/pythonMAJOR.MINOR
+ -- generating a line of the form
+ -- python(abi) = MAJOR.MINOR
+ -- (Don't match against -config tools e.g. /usr/bin/python2.6-config)
+ local path = rpm.expand('%1')
+ if path:match('/usr/bin/python%d+%.%d+$') then
+ local provides = path:gsub('.*/usr/bin/python(%d+%.%d+)', 'python(abi) = %1')
+ print(provides)
+ end
+}
+-13: __python_requires %{lua:
+ -- Match buildroot paths of the form
+ -- /PATH/OF/BUILDROOT/usr/lib/pythonMAJOR.MINOR/ and
+ -- /PATH/OF/BUILDROOT/usr/lib64/pythonMAJOR.MINOR/
+ -- generating a line of the form:
+ -- python(abi) = MAJOR.MINOR
+ local path = rpm.expand('%1')
+ if path:match('/usr/lib%d*/python%d+%.%d+/.*') then
+ local requires = path:gsub('.*/usr/lib%d*/python(%d+%.%d+)/.*', 'python(abi) = %1')
+ print(requires)
+ end
+}
+-13: __pythondist_path ^/usr/lib(64)?/python[3-9]\.[[:digit:]]+/site-packages/[^/]+\.(dist-info|egg-info|egg-link)$
+-13: __pythondist_provides %{_rpmconfigdir}/pythondistdeps.py --provides --normalized-names-format pep503 --package-name %{name} --normalized-names-provide-both --majorver-provides-versions %{__default_python3_version}
+-13: __pythondist_requires %{_rpmconfigdir}/pythondistdeps.py --requires --normalized-names-format pep503 --package-name %{name} %{?!_python_no_extras_requires:--require-extras-subpackages} --console-scripts-nodep-setuptools-since 3.10
+-13: __pythonname_path ^/
+-13: __pythonname_provides %{lua:
+ local python = require 'fedora.srpm.python'
+ -- this macro is called for each file in a package, the path being in %1
+ -- but we don't need to know the path, so we would get for each file: Macro %1 defined but not used within scope
+ -- in here, we expand %name conditionally on %1 to suppress the warning
+ local name = rpm.expand('%{?1:%{name}}')
+ local evr = rpm.expand('%{?epoch:%{epoch}:}%{version}-%{release}')
+ local provides = python.python_altprovides_once(name, evr)
+ -- provides is either an array/table or nil
+ -- nil means the function was already called with the same arguments:
+ -- either with another file in %1 or manually via %py_provide
+ if provides then
+ for i, provide in ipairs(provides) do
+ print(provide .. ' ')
+ end
+ end
+}
+-13: __quilt /usr/bin/quilt
+-13: __rm /usr/bin/rm
+-13: __scm patch
+-13: __scm_apply_bzr(qp:m:)
+%{__patch} %{-p:-p%{-p*}} %{-q:-s}
+%{__bzr} commit %{-q} -m %{-m*}
+-13: __scm_apply_gendiff(qp:m:)
+%{__patch} %{-p:-p%{-p*}} %{-q:-s} --fuzz=%{_default_patch_fuzz} %{_default_patch_flags} -b --suffix ".%{2}"
+-13: __scm_apply_git(qp:m:)
+%{__git} apply --index --reject %{-p:-p%{-p*}} -
+%{__git} commit %{-q} -m %{-m*} --author "%{__scm_author}"
+-13: __scm_apply_git_am(qp:m:)
+%{__git} am --reject %{-q} %{-p:-p%{-p*}}
+-13: __scm_apply_hg(qp:m:)
+%{__hg} import - %{-p:-p%{-p*}} %{-q} -m %{-m*} --user "%{__scm_author}"
+-13: __scm_apply_patch(qp:m:)
+%{__patch} %{-p:-p%{-p*}} %{-q:-s} --fuzz=%{_default_patch_fuzz} %{_default_patch_flags}
+-13: __scm_apply_quilt(qp:m:)
+%{__quilt} import %{-p:-p%{-p*}} %{1} && %{__quilt} push %{-q}
+-13: __scm_author %{__scm_username} %{__scm_usermail}
+-13: __scm_setup_bzr(q)
+%{__bzr} init %{-q}
+%{__bzr} whoami --branch "%{__scm_author}"
+%{__bzr} add .
+%{__bzr} commit %{-q} -m "%{NAME}-%{VERSION} base"
+-13: __scm_setup_gendiff(q) %{nil}
+-13: __scm_setup_git(q)
+%{__git} init %{-q}
+%{__git} config user.name "%{__scm_username}"
+%{__git} config user.email "%{__scm_usermail}"
+%{__git} config gc.auto 0
+%{__git} add --force .
+%{__git} commit %{-q} --allow-empty -a\
+ --author "%{__scm_author}" -m "%{NAME}-%{VERSION} base"
+-13: __scm_setup_git_am(q)
+%{expand:%__scm_setup_git %{-q}}
+-13: __scm_setup_hg(q)
+%{__hg} init %{-q} .
+%{__hg} add %{-q} .
+%{__hg} commit %{-q} --user "%{__scm_author}" -m "%{NAME}-%{VERSION} base"
+-13: __scm_setup_patch(q) %{nil}
+-13: __scm_setup_quilt(q) %{nil}
+-13: __scm_usermail <rpm-build>
+-13: __scm_username rpm-build
+-13: __script_flags exeonly
+-13: __script_magic ^.* script[, ].*$
+-13: __script_requires %{_rpmconfigdir}/script.req
+-13: __sed /usr/bin/sed
+-13: __spec_build_args %{___build_args}
+-13: __spec_build_body %{___build_body}
+-13: __spec_build_cmd %{___build_cmd}
+-13: __spec_build_post %{___build_post}
+-13: __spec_build_pre %{___build_pre}
+-13: __spec_build_shell %{___build_shell}
+-13: __spec_build_template #!%{__spec_build_shell}
+%{__spec_build_pre}
+%{nil}
+-13: __spec_buildrequires_args %{___build_args}
+-13: __spec_buildrequires_body %{___build_body}
+-13: __spec_buildrequires_cmd %{___build_cmd}
+-13: __spec_buildrequires_post %{___build_post}
+-13: __spec_buildrequires_pre %{___build_pre}
+-13: __spec_buildrequires_shell %{___build_shell}
+-13: __spec_buildrequires_template #!%{__spec_buildrequires_shell}
+%{__spec_buildrequires_pre}
+%{nil}
+-13: __spec_check_args %{___build_args}
+-13: __spec_check_body %{___build_body}
+-13: __spec_check_cmd %{___build_cmd}
+-13: __spec_check_post %{___build_post}
+-13: __spec_check_pre %{___build_pre}
+-13: __spec_check_shell %{___build_shell}
+-13: __spec_check_template #!%{__spec_check_shell}
+%{__spec_check_pre}
+%{nil}
+-13: __spec_clean_args %{___build_args}
+-13: __spec_clean_body %{___build_body}
+-13: __spec_clean_cmd %{___build_cmd}
+-13: __spec_clean_post %{___build_post}
+-13: __spec_clean_pre %{___build_pre}
+-13: __spec_clean_shell %{___build_shell}
+-13: __spec_clean_template #!%{__spec_clean_shell}
+%{__spec_clean_pre}
+%{nil}
+-13: __spec_install_args %{___build_args}
+-13: __spec_install_body %{___build_body}
+-13: __spec_install_cmd %{___build_cmd}
+-13: __spec_install_post
+ %{?__debug_package:%{__debug_install_post}}
+ %{__arch_install_post}
+ %{__os_install_post}
+%{nil}
+-13: __spec_install_pre %{___build_pre}
+ [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "${RPM_BUILD_ROOT}"
+ mkdir -p "`dirname "$RPM_BUILD_ROOT"`"
+ mkdir "$RPM_BUILD_ROOT"
+%{nil}
+-13: __spec_install_shell %{___build_shell}
+-13: __spec_install_template #!%{__spec_install_shell}
+%{__spec_install_pre}
+%{nil}
+-13: __spec_prep_args %{___build_args}
+-13: __spec_prep_body %{___build_body}
+-13: __spec_prep_cmd %{___build_cmd}
+-13: __spec_prep_post %{___build_post}
+-13: __spec_prep_pre %{___build_pre}
+-13: __spec_prep_shell %{___build_shell}
+-13: __spec_prep_template #!%{__spec_prep_shell}
+%{__spec_prep_pre}
+%{nil}
+-13: __spec_rmbuild_args %{___build_args}
+-13: __spec_rmbuild_body %{___build_body}
+-13: __spec_rmbuild_cmd %{___build_cmd}
+-13: __spec_rmbuild_post %{___build_post}
+-13: __spec_rmbuild_pre %{___build_pre}
+-13: __spec_rmbuild_shell %{___build_shell}
+-13: __spec_rmbuild_template #!%{__spec_rmbuild_shell}
+%{__spec_rmbuild_pre}
+%{nil}
+-13: __strip /usr/bin/strip
+-13: __systemd_someargs_0(:) %{error:The %%%1 macro requires some arguments}
+-13: __systemd_twoargs_2 %{nil}
+-13: __sysusers_path ^%{_sysusersdir}/.*\.conf$
+-13: __sysusers_provides %{_rpmconfigdir}/sysusers.prov
+-13: __tar /usr/bin/tar
+-13: __transaction_audit %{__plugindir}/audit.so
+-13: __transaction_dbus_announce %{__plugindir}/dbus_announce.so
+-13: __transaction_fapolicyd %{__plugindir}/fapolicyd.so
+-13: __transaction_fsverity %{__plugindir}/fsverity.so
+-13: __transaction_ima %{__plugindir}/ima.so
+-13: __transaction_prioreset %{__plugindir}/prioreset.so
+-13: __transaction_selinux %{__plugindir}/selinux.so
+-13: __transaction_syslog %{__plugindir}/syslog.so
+-13: __transaction_systemd_inhibit %{__plugindir}/systemd_inhibit.so
+-13: __unzip /usr/bin/unzip
+-13: __urlhelper_proxyopts %{?_httpproxy:--proxy %{_httpproxy}%{?_httpport::%{_httpport}}}%{!?_httpproxy:%{nil}}
+-13: __urlhelpercmd /usr/bin/curl
+-13: __urlhelperopts --silent --show-error --fail --globoff --location -o
+-13: __vsflags 0xf0000
+-13: __xz /usr/bin/xz
+-13: __zstd /usr/bin/zstd
+-13: _annobin_clang_plugin %dnl-fplugin=/usr/lib64/clang/`clang -dumpversion`/lib/annobin.so
+-13: _annobin_gcc_plugin -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1
+-13: _annotated_build 1
+-13: _annotation_cflags %[ "%{_target_cpu}" == "armv7hl" ? "" : "%{_annotation_plugin}" ]
+-13: _annotation_ldflags %{?_lto_cflags:%{_annotation_cflags}}
+-13: _annotation_plugin %{?_annotated_build:%{expand:%%{_annobin_%{toolchain}_plugin}}}
+-13: _arch x86_64
+-13: _binaries_in_noarch_packages_terminate_build 1
+-13: _binary_filedigest_algorithm 8
+-13: _binary_payload w19.zstdio
+-13: _bindir %{_exec_prefix}/bin
+-13: _binfmtdir /usr/lib/binfmt.d
+-13: _build %{_host}
+-13: _build_alias %{_host_alias}
+-13: _build_arch x86_64
+-13: _build_cpu %{_host_cpu}
+-13: _build_id_links compat
+-13: _build_name_fmt %%{ARCH}/%%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm
+-13: _build_os %{_host_os}
+-13: _build_vendor %{_host_vendor}
+-13: _builddir %{_topdir}/BUILD
+-13: _buildrootdir %{_topdir}/BUILDROOT
+-13: _buildshell /bin/sh
+-13: _changelog_trimage %{expr:2*365*24*60*60}
+-13: _changelog_trimtime 0
+-13: _clang_lto_cflags -flto
+-13: _cmake_lib_suffix64 -DLIB_SUFFIX=64
+-13: _cmake_shared_libs -DBUILD_SHARED_LIBS:BOOL=ON
+-13: _cmake_skip_rpath -DCMAKE_SKIP_RPATH:BOOL=ON
+-13: _cmake_version 3.21.3
+-13: _cmmscolordir %_colordir/cmms
+-13: _color_output never
+-13: _colordir %_datadir/color
+-13: _configure ./configure
+-13: _configure_gnuconfig_hack 1
+-13: _configure_libtool_hardening_hack 1
+-13: _datadir %{_datarootdir}
+-13: _datarootdir %{_prefix}/share
+-13: _db_backend sqlite
+-13: _dbpath %{_var}/lib/rpm
+-13: _dbpath_rebuild %{_dbpath}
+-13: _debuginfo_subpackages 1
+-13: _debuginfo_template
+%package debuginfo
+Summary: Debug information for package %{name}
+Group: Development/Debug
+AutoReq: 0
+AutoProv: 1
+%description debuginfo
+This package provides debug information for package %{name}.
+Debug information is useful when developing applications that use this
+package or when debugging this package.
+%files debuginfo -f debugfiles.list
+%{nil}
+-13: _debugsource_packages 1
+-13: _debugsource_template
+%package debugsource
+Summary: Debug sources for package %{name}
+Group: Development/Debug
+AutoReqProv: 0
+%description debugsource
+This package provides debug sources for package %{name}.
+Debug sources are useful when developing applications that use this
+package or when debugging this package.
+%files debugsource -f debugsourcefiles.list
+%{nil}
+-13: _default_patch_flags --no-backup-if-mismatch -f
+-13: _default_patch_fuzz 0
+-13: _defaultdocdir %{_datadir}/doc
+-13: _defaultlicensedir %{_datadir}/licenses
+-13: _disable_source_fetch 1
+-13: _docdir_fmt %%{NAME}
+-13: _duplicate_files_terminate_build 0
+-13: _dwz_limit %{expand:%%{?%{1}_%{_arch}}%%{!?%{1}_%{_arch}:%%%{1}}}
+-13: _dwz_low_mem_die_limit 10000000
+-13: _dwz_low_mem_die_limit_armv5tel 4000000
+-13: _dwz_low_mem_die_limit_armv7hl 4000000
+-13: _dwz_max_die_limit 50000000
+-13: _dwz_max_die_limit_armv5tel 10000000
+-13: _dwz_max_die_limit_armv7hl 10000000
+-13: _dwz_max_die_limit_x86_64 110000000
+-13: _efi_srpm_macros_setup %{expand:%{lua:
+ -- test if our arch matches
+ local function arch(archmacro)
+ local target = rpm.expand(" %{_target_cpu} ")
+ local arches = rpm.expand(" " .. archmacro .. " ")
+ local match = string.match(arches, target)
+ return (match ~= nil)
+ end
+ -- give us the arch...
+ local function getarch()
+ if arch("ia64") then
+ return("ia64")
+ elseif arch("x86_64") then
+ return("x64")
+ elseif arch("%{ix86}") then
+ return("ia32")
+ elseif arch("aarch64") then
+ return("aa64")
+ elseif arch("%{arm}") then
+ return("arm")
+ else
+ return("none")
+ end
+ end
+ -- alt arch
+ local function getaltarch()
+ if arch("x86_64") then
+ return("ia32")
+ else
+ return("none")
+ end
+ end
+ -- make some macros
+ local done = rpm.expand("%{?_efi}")
+ if done == nil or done == "" then
+ local arch = getarch()
+ local alt = getaltarch()
+ print("%global _efi x86_64 aarch64 armv3l armv4b armv4l armv4tl armv5tl armv5tel armv5tejl armv6l armv6hl armv7l armv7hl armv7hnl armv8l armv8hl armv8hnl armv8hcnl i386 i486 i586 i686 pentium3 pentium4 athlon geode\n")
+ print("%global _efi_vendor fedora\n")
+ if arch == "none" then
+ print("%global _efi_has_arch 0\n")
+ else
+ print("%global _efi_has_arch 1\n")
+ end
+ print("%global _efi_arch " .. getarch() .. "\n")
+ print("%global _efi_arch_upper " .. string.upper(getarch()) .. "\n")
+ if alt == "none" then
+ print("%global _efi_has_alt_arch 0\n")
+ else
+ print("%global _efi_has_alt_arch 1\n")
+ end
+ print("%global _efi_alt_arch " .. alt .. "\n")
+ print("%global _efi_alt_arch_upper " .. string.upper(alt) .. "\n")
+ end
+}}
+-13: _empty_manifest_terminate_build 1
+-13: _enable_debug_packages 1
+-13: _environmentdir /usr/lib/environment.d
+-13: _environmnentdir %{warn:Use %%_environmentdir instead}%_environmentdir
+-13: _exec_prefix %{_prefix}
+-13: _file_context_file %{_sysconfdir}/selinux/${SELINUXTYPE}/contexts/files/file_contexts
+-13: _file_context_file_pre %{_localstatedir}/lib/rpm-state/file_contexts.pre
+-13: _file_custom_defined_booleans %{_selinux_store_policy_path}/rpmbooleans.custom
+-13: _file_custom_defined_booleans_tmp %{_selinux_store_policy_path}/rpmbooleans.custom.tmp
+-13: _fileattrsdir %{_rpmconfigdir}/fileattrs
+-13: _find_debuginfo_dwz_opts --run-dwz\
+ --dwz-low-mem-die-limit %{_dwz_limit _dwz_low_mem_die_limit}\
+ --dwz-max-die-limit %{_dwz_limit _dwz_max_die_limit}
+-13: _fix_broken_configure_for_lto
+ for file in $(find . -type f -name configure -print); do
+ %{__sed} -r --in-place=.backup 's/^char \(\*f\) \(\) = /__attribute__ ((used)) char (*f) () = /g' $file;
+ diff -u $file.backup $file && mv $file.backup $file
+ %{__sed} -r --in-place=.backup 's/^char \(\*f\) \(\);/__attribute__ ((used)) char (*f) ();/g' $file;
+ diff -u $file.backup $file && mv $file.backup $file
+ %{__sed} -r --in-place=.backup 's/^char \$2 \(\);/__attribute__ ((used)) char \$2 ();/g' $file;
+ diff -u $file.backup $file && mv $file.backup $file
+ %{__sed} --in-place=.backup '1{$!N;$!N};$!N;s/int x = 1;\nint y = 0;\nint z;\nint nan;/volatile int x = 1; volatile int y = 0; volatile int z, nan;/;P;D' $file;
+ diff -u $file.backup $file && mv $file.backup $file
+ %{__sed} --in-place=.backup 's#^lt_cv_sys_global_symbol_to_cdecl=.*#lt_cv_sys_global_symbol_to_cdecl="sed -n -e '"'"'s/^T .* \\(.*\\)$/extern int \\1();/p'"'"' -e '"'"'s/^$symcode* .* \\(.*\\)$/extern char \\1;/p'"'"'"#' $file;
+ diff -u $file.backup $file && mv $file.backup $file
+ done
+-13: _fixperms %{__chmod} -Rf a+rX,u+w,g-w,o-w
+-13: _fmoddir %{_libdir}/gfortran/modules
+-13: _fontbasedir /usr/share/fonts
+-13: _fontconfig_confdir /etc/fonts/conf.d
+-13: _fontconfig_masterdir /etc/fonts
+-13: _fontconfig_templatedir /usr/share/fontconfig/conf.avail
+-13: _gcc_lto_cflags -flto=auto -ffat-lto-objects
+-13: _general_options -O2 %{?_lto_cflags} -fexceptions -g -grecord-gcc-switches -pipe
+-13: _gnu -gnu
+-13: _hardened_build 1
+-13: _hardened_cflags %{?_hardened_build:%{_hardening_cflags}}
+-13: _hardened_ldflags %{?_hardened_build:%{_hardening_ldflags}}
+-13: _hardening_cflags %{expand:%%{_hardening_%{toolchain}_cflags}} -fstack-protector-strong
+-13: _hardening_clang_cflags --config /usr/lib/rpm/redhat/redhat-hardened-clang.cfg
+-13: _hardening_gcc_cflags -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1
+-13: _hardening_ldflags -Wl,-z,now %[ "%{toolchain}" == "gcc" ? "-specs=/usr/lib/rpm/redhat/redhat-hardened-ld" : "" ]
+-13: _hkp_keyserver http://pgp.mit.edu
+-13: _hkp_keyserver_query %{_hkp_keyserver}:11371/pks/lookup?op=get&search=0x
+-13: _host x86_64-redhat-linux-gnu
+-13: _host_alias x86_64-redhat-linux-gnu%{nil}
+-13: _host_cpu x86_64
+-13: _host_os linux
+-13: _host_vendor redhat
+-13: _icccolordir %_colordir/icc
+-13: _include_gdb_index 1
+-13: _include_minidebuginfo 1
+-13: _includedir %{_prefix}/include
+-13: _infodir %{_datarootdir}/info
+-13: _initddir %{_sysconfdir}/rc.d/init.d
+-13: _initrddir %{_initddir}
+-13: _install_langs all
+-13: _install_script_path /sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin
+-13: _invalid_encoding_terminates_build 1
+-13: _isa %{?__isa:(%{__isa})}%{!?__isa:%{nil}}
+-13: _ivyxmldir %{_datadir}/ivy-xmls
+-13: _javaconfdir %{_sysconfdir}/java
+-13: _javadir %{_datadir}/java
+-13: _javadocdir %{_datadir}/javadoc
+-13: _jnidir %{_prefix}/lib/java
+-13: _journalcatalogdir /usr/lib/systemd/catalog
+-13: _jvmcommondatadir %{_datadir}/jvm-common
+-13: _jvmcommonlibdir %{_prefix}/lib/jvm-common
+-13: _jvmcommonsysconfdir %{_sysconfdir}/jvm-common
+-13: _jvmdatadir %{_datadir}/jvm
+-13: _jvmdir %{_prefix}/lib/jvm
+-13: _jvmlibdir %{_prefix}/lib/jvm
+-13: _jvmprivdir %{_prefix}/lib/jvm-private
+-13: _jvmsysconfdir %{_sysconfdir}/jvm
+-13: _keyring rpmdb
+-13: _keyringpath %{_dbpath}/pubkeys/
+-13: _keyringsdir %_datadir/keyrings
+-13: _ld_as_needed 1
+-13: _ld_as_needed_flags %{?_ld_as_needed:-Wl,--as-needed}
+-13: _ld_symbols_flags %{?_ld_strict_symbol_defs:-Wl,-z,defs}
+-13: _legacy_options %{?_legacy_common_support: -fcommon}
+-13: _lib lib64
+-13: _libdir %{_prefix}/lib64
+-13: _libexecdir %{_exec_prefix}/libexec
+-13: _localstatedir /var
+-13: _lto_cflags %{expand:%%{_%{toolchain}_lto_cflags}}
+-13: _make_output_sync %(! %{__make} --version -O >/dev/null 2>&1 || echo -O)
+-13: _make_verbose V=1 VERBOSE=1
+-13: _mandir %{_datarootdir}/man
+-13: _mavenpomdir %{_datadir}/maven-poms
+-13: _metainfodir %{_datadir}/metainfo
+-13: _missing_build_ids_terminate_build 1
+-13: _missing_doc_files_terminate_build 1
+-13: _modprobedir /usr/lib/modprobe.d
+-13: _modulesloaddir /usr/lib/modules-load.d
+-13: _monodir %{_prefix}/lib/mono
+-13: _monogacdir %{_monodir}/gac
+-13: _oldincludedir /usr/include
+-13: _os linux
+-13: _pam_confdir %{_sysconfdir}/pam.d
+-13: _pam_libdir %{_libdir}
+-13: _pam_moduledir %{_libdir}/security
+-13: _pam_secconfdir %{_sysconfdir}/security
+-13: _pam_vendordir %{_datadir}/pam.d
+-13: _pkgdocdir %{_docdir}/%{name}
+-13: _pkgverify_flags 0x0
+-13: _pkgverify_level digest
+-13: _prefix /usr
+-13: _preprocessor_defines -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS
+-13: _presetdir /usr/lib/systemd/system-preset
+-13: _pyproject_builddir %{_builddir}%{?buildsubdir:/%{buildsubdir}}/.pyproject-builddir
+-13: _pyproject_ghost_distinfo %{_builddir}/pyproject-ghost-distinfo
+-13: _pyproject_modules %{_builddir}/pyproject-modules
+-13: _pyproject_record %{_builddir}/pyproject-record
+-13: _pyproject_wheeldir %{_builddir}%{?buildsubdir:/%{buildsubdir}}/pyproject-wheeldir
+-13: _python_bytecompile_errors_terminate_build 1
+-13: _python_bytecompile_extra 0
+-13: _qt5 qt5-qtbase
+-13: _qt5_epoch 0
+-13: _qt5_evr 5.15.2-28.fc35
+-13: _qt5_version 5.15.2
+-13: _query_all_fmt %%{nvra}
+-13: _query_selector_match default
+-13: _rpmconfigdir %{getconfdir}
+-13: _rpmdir %{_topdir}/RPMS
+-13: _rpmfilename %{_build_name_fmt}
+-13: _rpmlock_path %{_dbpath}/.rpm.lock
+-13: _rpmluadir %{_rpmconfigdir}/lua
+-13: _rpmmacrodir %{_rpmconfigdir}/macros.d
+-13: _rundir /run
+-13: _sbindir %{_exec_prefix}/sbin
+-13: _selinux_policy_version 35.5-1.fc35
+-13: _selinux_store_path /var/lib/selinux
+-13: _selinux_store_policy_path %{_selinux_store_path}/${_policytype}
+-13: _set_pytest_addopts %global __pytest_addopts --ignore=%{_pyproject_builddir}
+-13: _settingscolordir %_colordir/settings
+-13: _sharedstatedir /var/lib
+-13: _smp_build_ncpus %([ -z "$RPM_BUILD_NCPUS" ] \
+ && RPM_BUILD_NCPUS="%{getncpus}"; \
+ ncpus_max=%{?_smp_ncpus_max}; \
+ if [ -n "$ncpus_max" ] && [ "$ncpus_max" -gt 0 ] && [ "$RPM_BUILD_NCPUS" -gt "$ncpus_max" ]; then RPM_BUILD_NCPUS="$ncpus_max"; fi; \
+ echo "$RPM_BUILD_NCPUS";)
+-13: _smp_build_nthreads %{_smp_build_ncpus}
+-13: _smp_mflags -j%{_smp_build_ncpus}
+-13: _source_filedigest_algorithm 8
+-13: _sourcedir %{_topdir}/SOURCES
+-13: _specdir %{_topdir}/SPECS
+-13: _srcrpmdir %{_topdir}/SRPMS
+-13: _swidtagdir %{_prefix}/lib/swidtag/fedoraproject.org
+-13: _syscolordir %_colordir
+-13: _sysconfdir /etc
+-13: _sysctldir /usr/lib/sysctl.d
+-13: _systemd_system_env_generator_dir /usr/lib/systemd/system-environment-generators
+-13: _systemd_user_env_generator_dir /usr/lib/systemd/user-environment-generators
+-13: _systemd_util_dir /usr/lib/systemd
+-13: _systemdgeneratordir /usr/lib/systemd/system-generators
+-13: _systemdusergeneratordir /usr/lib/systemd/user-generators
+-13: _sysusersdir /usr/lib/sysusers.d
+-11: _target x86_64-linux
+-13: _target_alias %{_host_alias}
+-11= _target_cpu x86_64
+-11= _target_os linux
+-13: _target_platform %{_target_cpu}-%{_vendor}-%{_target_os}%{?_gnu}
+-13: _target_vendor %{_host_vendor}
+-13: _texmf /usr/share/texlive/texmf-local
+-13: _texmf_conf /usr/share/texlive/texmf-config
+-13: _texmf_main /usr/share/texlive/texmf-dist
+-13: _texmf_var /var/lib/texmf
+-13: _texmf_vendor /usr/share/texlive/texmf-dist
+-13: _tmpfilesdir /usr/lib/tmpfiles.d
+-13: _tmppath %{_var}/tmp
+-13: _topdir %{getenv:HOME}/rpmbuild
+-13: _transaction_color 3
+-13: _udevhwdbdir /usr/lib/udev/hwdb.d
+-13: _udevrulesdir /usr/lib/udev/rules.d
+-13: _unique_build_ids 1
+-13: _unique_debug_names 1
+-13: _unique_debug_srcs 1
+-13: _unitdir /usr/lib/systemd/system
+-13: _unpackaged_files_terminate_build 1
+-13: _urlhelper %{__urlhelpercmd} %{?__urlhelper_localopts} %{?__urlhelper_proxyopts} %{__urlhelperopts}
+-13: _use_internal_dependency_generator 1
+-13: _userpresetdir /usr/lib/systemd/user-preset
+-13: _userunitdir /usr/lib/systemd/user
+-13: _usr /usr
+-13: _usrsrc %{_usr}/src
+-13: _var /var
+-13: _vendor redhat
+-13: _vpath_builddir %{_vendor}-%{_target_os}-build
+-13: _vpath_srcdir .
+-13: _vsflags_build %{__vsflags}
+-13: _vsflags_erase %{__vsflags}
+-13: _vsflags_install %{__vsflags}
+-13: _vsflags_query %{__vsflags}
+-13: _vsflags_rebuilddb 0xc0c00
+-13: _vsflags_verify %{__vsflags}
+-13: _warning_options -Wall -Werror=format-security
+-13: _wrong_version_format_terminate_build 1
+-13: alpha alpha alphaev56 alphaev6 alphaev67
+-13: ant %{?jpb_env} JAVA_HOME=%{java_home} ant
+-13: arm %{arm32}
+-13: arm32 armv3l armv4b armv4l armv4tl armv5tl armv5tel armv5tejl armv6l armv6hl armv7l armv7hl armv7hnl armv8l armv8hl armv8hnl armv8hcnl
+-13: arm64 aarch64
+-13: autochangelog %{lua:
+ locale = os.setlocale(nil)
+ os.setlocale("C.utf8")
+ date = os.date("%a %b %d %Y")
+ os.setlocale(locale)
+ packager = rpm.expand("%{?packager}%{!?packager:John Doe <packager@example.com>}")
+ evr = rpm.expand("%{?epoch:%{epoch}:}%{version}-%{release}")
+ print("* " .. date .. " " .. packager .. " - " .. evr .. "\n")
+ print("- local build")
+}
+-13: autopatch(vp:m:M:) %{lua:
+if #arg == 0 then
+ local lo = tonumber(rpm.expand("%{-m:%{-m*}}"))
+ local hi = tonumber(rpm.expand("%{-M:%{-M*}}"))
+ for i, n in ipairs(patch_nums) do
+ if ((not lo or n >= lo) and (not hi or n <= hi)) then
+ table.insert(arg, n)
+ end
+ end
+end
+local options = rpm.expand("%{!-v:-q} %{-p:-p%{-p*}} ")
+local bynum = {}
+for i, p in ipairs(patches) do
+ bynum[patch_nums[i]] = p
+end
+for i, a in ipairs(arg) do
+ local p = bynum[a]
+ if p then
+ print(rpm.expand("%__apply_patch -m %{basename:"..p.."} "..options..p.." "..i.."\n"))
+ else
+ macros.error({"no such patch "..a})
+ end
+end
+}
+-13: autorelease(e:s:pb:) %{?-p:0.}%{lua:
+ release_number = tonumber(rpm.expand("%{?_rpmautospec_release_number}%{!?_rpmautospec_release_number:1}"));
+ base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}"));
+ print(release_number + base_release_number - 1);
+}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{?dist}
+-13: autosetup(a:b:cDn:TvNS:p:)
+%setup %{-a} %{-b} %{-c} %{-D} %{-n} %{-T} %{!-v:-q}
+%{-S:%global __scm %{-S*}}
+%{expand:%__scm_setup_%{__scm} %{!-v:-q}}
+%{!-N:%autopatch %{-v} %{-p:-p%{-p*}}}
+-20: basename <builtin>
+-13: bcond_with %{expand:%%{?_with_%{1}:%%global with_%{1} 1}}
+-13: bcond_without %{expand:%%{!?_without_%{1}:%%global with_%{1} 1}}
+-13: binfmt_apply
+%{expand:%%{?__systemd_someargs_%#:%%__systemd_someargs_%# binfmt_apply}}
+[ -x /usr/lib/systemd/systemd-binfmt ] && /usr/lib/systemd/systemd-binfmt %{?*} || :
+%{nil}
+-13: build_cc %{__cc}
+-13: build_cflags %{optflags}
+-13: build_cpp %{__cpp}
+-13: build_cxx %{__cxx}
+-13: build_cxxflags %{optflags}
+-13: build_fflags %{optflags} -I%{_fmoddir}
+-13: build_ldflags -Wl,-z,relro %{_ld_as_needed_flags} %{_ld_symbols_flags} %{_hardened_ldflags} %{_annotation_ldflags} %[ "%{toolchain}" == "clang" ? "%{?_lto_cflags}" : "" ]
+-13: buildroot %{_buildrootdir}/%{NAME}-%{VERSION}-%{RELEASE}.%{_arch}
+-13: clamp_mtime_to_source_date_epoch 0
+-13: cmake
+%if 0%{?set_build_flags:1}
+ %set_build_flags
+%else
+ CFLAGS="${CFLAGS:-%optflags}" ; export CFLAGS ;
+ CXXFLAGS="${CXXFLAGS:-%optflags}" ; export CXXFLAGS ;
+ FFLAGS="${FFLAGS:-%optflags%{?_fmoddir: -I%_fmoddir}}" ; export FFLAGS ;
+ FCFLAGS="${FCFLAGS:-%optflags%{?_fmoddir: -I%_fmoddir}}" ; export FCFLAGS ;
+ %{?__global_ldflags:LDFLAGS="${LDFLAGS:-%__global_ldflags}" ; export LDFLAGS ;}
+%endif
+ %__cmake \
+ %{!?__cmake_in_source_build:-S "%{_vpath_srcdir}"} \
+ %{!?__cmake_in_source_build:-B "%{__cmake_builddir}"} \
+ -DCMAKE_C_FLAGS_RELEASE:STRING="-DNDEBUG" \
+ -DCMAKE_CXX_FLAGS_RELEASE:STRING="-DNDEBUG" \
+ -DCMAKE_Fortran_FLAGS_RELEASE:STRING="-DNDEBUG" \
+ -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
+ -DCMAKE_INSTALL_DO_STRIP:BOOL=OFF \
+ -DCMAKE_INSTALL_PREFIX:PATH=%{_prefix} \
+ -DINCLUDE_INSTALL_DIR:PATH=%{_includedir} \
+ -DLIB_INSTALL_DIR:PATH=%{_libdir} \
+ -DSYSCONF_INSTALL_DIR:PATH=%{_sysconfdir} \
+ -DSHARE_INSTALL_PREFIX:PATH=%{_datadir} \
+%if "%{?_lib}" == "lib64"
+ %{?_cmake_lib_suffix64} \
+%endif
+ %{?_cmake_shared_libs}
+-13: cmake3 %cmake
+-13: cmake3_build %cmake_build
+-13: cmake3_install %cmake_install
+-13: cmake_build
+ %__cmake --build "%{__cmake_builddir}" %{?_smp_mflags} --verbose
+-13: cmake_install
+ DESTDIR="%{buildroot}" %__cmake --install "%{__cmake_builddir}"
+-13: configure
+ %{set_build_flags};
+ [ "%{_lto_cflags}"x != x ] && %{_fix_broken_configure_for_lto};
+ [ "%_configure_gnuconfig_hack" = 1 ] && for i in $(find $(dirname %{_configure}) -name config.guess -o -name config.sub) ; do
+ [ -f /usr/lib/rpm/redhat/$(basename $i) ] && %{__rm} -f $i && %{__cp} -fv /usr/lib/rpm/redhat/$(basename $i) $i ;
+ done ;
+ [ "%_configure_libtool_hardening_hack" = 1 ] && [ x != "x%{_hardened_ldflags}" ] &&
+ for i in $(find . -name ltmain.sh) ; do
+ %{__sed} -i.backup -e 's~compiler_flags=$~compiler_flags="%{_hardened_ldflags}"~' $i
+ done ;
+ %{_configure} --build=%{_build} --host=%{_host} \
+ --program-prefix=%{?_program_prefix} \
+ --disable-dependency-tracking \
+ %{?_configure_disable_silent_rules:--disable-silent-rules} \
+ --prefix=%{_prefix} \
+ --exec-prefix=%{_exec_prefix} \
+ --bindir=%{_bindir} \
+ --sbindir=%{_sbindir} \
+ --sysconfdir=%{_sysconfdir} \
+ --datadir=%{_datadir} \
+ --includedir=%{_includedir} \
+ --libdir=%{_libdir} \
+ --libexecdir=%{_libexecdir} \
+ --localstatedir=%{_localstatedir} \
+ --sharedstatedir=%{_sharedstatedir} \
+ --mandir=%{_mandir} \
+ --infodir=%{_infodir}
+-13: crates_source %{lua:
+ local crate = rpm.expand('%1')
+ local version = rpm.expand('%2')
+ local url = rpm.expand('%__crates_url')
+
+ if crate == '%1' then
+ crate = rpm.expand('%real_crate')
+ end
+ if crate == '%real_crate' then
+ crate = rpm.expand('%crate')
+ end
+ if crate == '%crate' then
+ crate = rpm.expand('%name')
+ end
+
+ if version == '%2' then
+ version = rpm.expand('%version')
+ end
+ version = version:gsub('~', '-')
+
+ print(url .. crate .. '/' .. version .. '/download#/' .. crate .. '-' .. version .. '.crate')
+}
+-13: ctest(:-:)
+ cd "%{__cmake_builddir}"
+ %__ctest --output-on-failure --force-new-ctest-process %{?_smp_mflags} %{**}
+ cd -
+-13: ctest3(:-:) %ctest %{**}
+-13: debug_package
+%ifnarch noarch
+%global __debug_package 1
+%_debuginfo_template
+%{?_debugsource_packages:%_debugsource_template}
+%endif
+%{nil}
+-13: default_toxenv py%{python3_version_nodots}
+-20: define <builtin>
+-13: defined %{expand:%%{?%{1}:1}%%{!?%{1}:0}}
+-20: dirname <builtin>
+-13: dist %{!?distprefix0:%{?distprefix}}%{expand:%{lua:for i=0,9999 do print("%{?distprefix" .. i .."}") end}}.fc%{fedora}%{?with_bootstrap:~bootstrap}
+-20: dnl <builtin>
+-20: dump <builtin>
+-20: echo <builtin>
+-13: efi %{expand:%{_efi_srpm_macros_setup}}%{expand:%{_efi}}
+-13: efi_alt_arch %{expand:%{_efi_srpm_macros_setup}}%{?_efi_alt_arch}%{nil}
+-13: efi_alt_arch_upper %{expand:%{_efi_srpm_macros_setup}}%{?_efi_alt_arch_upper}%{nil}
+-13: efi_arch %{expand:%{_efi_srpm_macros_setup}}%{_efi_arch}
+-13: efi_arch_upper %{expand:%{_efi_srpm_macros_setup}}%{_efi_arch_upper}
+-13: efi_build_requires bash coreutils
+-13: efi_esp_boot %{efi_esp_efi}/BOOT
+-13: efi_esp_dir %{expand:%{_efi_srpm_macros_setup}}%{efi_esp_efi}/%{efi_vendor}
+-13: efi_esp_efi %{efi_esp_root}/EFI
+-13: efi_esp_root /boot/efi
+-13: efi_has_alt_arch %{expand:%{_efi_srpm_macros_setup}}0%{_efi_has_alt_arch}
+-13: efi_has_arch %{expand:%{_efi_srpm_macros_setup}}0%{_efi_has_arch}
+-13: efi_srpm_macros_version %{expand:%{_efi_srpm_macros_setup}}5
+-13: efi_vendor %{expand:%{_efi_srpm_macros_setup}}%{expand:%{_efi_vendor}}
+-20: error <builtin>
+-20: exists <builtin>
+-20: expand <builtin>
+-20: expr <builtin>
+-13: extension_cflags %{__extension_strip_flags cflags}
+-13: extension_cxxflags %{__extension_strip_flags cxxflags}
+-13: extension_fflags %{__extension_strip_flags fflags}
+-13: extension_ldflags %{__extension_strip_flags ldflags}
+-13: fc35 1
+-13: fedora 35
+-13: filter_from_provides %{expand:
+%global __filter_from_prov %{?__filter_from_prov} | %{__sed} -e '%*'
+}
+-13: filter_from_requires %{expand:
+%global __filter_from_req %{?__filter_from_req} | %{__sed} -e '%*'
+}
+-13: filter_provides_in(P) %{expand:
+%global __filter_prov_cmd %{?__filter_prov_cmd} %{__grep} -v %{-P} '%*' |
+}
+-13: filter_requires_in(P) %{expand:
+%global __filter_req_cmd %{?__filter_req_cmd} %{__grep} -v %{-P} '%*' |
+}
+-13: filter_setup %{expand:
+%global _use_internal_dependency_generator 0
+%global __deploop() while read FILE; do echo "${FILE}" | /usr/lib/rpm/rpmdeps -%{1}; done | /bin/sort -u
+%global __find_provides /bin/sh -c "%{?__filter_prov_cmd} %{__deploop P} %{?__filter_from_prov}"
+%global __find_requires /bin/sh -c "%{?__filter_req_cmd} %{__deploop R} %{?__filter_from_req}"
+}
+-13: find_lang %{_rpmconfigdir}/find-lang.sh %{buildroot}
+-13: firewalld_reload
+test -x %{_bindir}/firewall-cmd && firewall-cmd --reload --quiet || :
+%{nil}
+-13: fontcontact fonts@lists.fedoraproject.org
+-13: fontenv(z:vf:F:c:C:s:S:d:D:l:L:) %{lua:
+local fonts = require "fedora.srpm.fonts"
+local suffix = rpm.expand("%{?-z*}")
+local verbose = (rpm.expand("%{-v}") ~= "")
+local globvalues = {}
+for g,_ in pairs(fonts.globargs) do
+ globvalues[g] = rpm.expand("%{?-" .. fonts.globargs[g] .. "*}")
+end
+fonts.env(suffix, verbose, globvalues)
+}
+-13: fontmetapkg(n:s:d:z:) %{lua:
+local fonts = require "fedora.srpm.fonts"
+local name = rpm.expand("%{?-n*}")
+local summary = rpm.expand("%{?-s*}")
+if (summary ~= "") then
+ summary = "%{" .. summary .. "}"
+end
+local description = rpm.expand("%{?-d*}")
+if (description ~= "") then
+ description = "%{" .. description .. "}"
+end
+local suffixes = rpm.expand("%{?-z*}")
+fonts.metapkg(name, summary, description, suffixes)
+}
+-13: fontorg org.fedoraproject
+-13: fontpkg(z:avms) %{lua:
+local fonts = require "fedora.srpm.fonts"
+local suffix = rpm.expand("%{?-z*}")
+local processall = (rpm.expand("%{-a}") ~= "") and (rpm.expand("%{-z}") == "")
+local verbose = (rpm.expand("%{-v}") ~= "")
+local forcemain = (rpm.expand("%{-m}") ~= "")
+local forcesub = (rpm.expand("%{-s}") ~= "")
+fonts.pkg(forcemain, forcesub, suffix, processall, verbose)
+}
+-13: fontrpmname %{lua:
+local fonts = require "fedora.srpm.fonts"
+print(fonts.rpmname(rpm.expand("%1")))
+}
+-13: forgeautosetup(z:vNS:p:q) %{lua:
+print(rpm.expand("%autosetup %{-v} %{-N} %{?-S} %{?-p} %{?forgesetupargs" .. rpm.expand("%{-z*}") .. "}\n"))
+}
+-13: forgemeta(z:isva) %{lua:
+local fedora = require "fedora.common"
+local forge = require "fedora.srpm.forge"
+local verbose = rpm.expand("%{-v}") ~= ""
+local informative = rpm.expand("%{-i}") ~= ""
+local silent = rpm.expand("%{-s}") ~= ""
+local processall = (rpm.expand("%{-a}") ~= "") and (rpm.expand("%{-z}") == "")
+if processall then
+ for _,s in pairs(fedora.getsuffixes("forgeurl")) do
+ forge.meta(s,verbose,informative,silent)
+ end
+else
+ forge.meta(rpm.expand("%{-z*}"),verbose,informative,silent)
+end
+}
+-13: forgesetup(z:va) %{lua:
+local fedora = require "fedora.common"
+if (rpm.expand("%{-z}") == "") and (rpm.expand("%{-a}") ~= "") then
+ for _,s in pairs(fedora.getsuffixes("forgesetupargs")) do
+ print(rpm.expand("%setup %{!-v:-q} %{?forgesetupargs" .. s .. "}\n"))
+ end
+else
+ print( rpm.expand("%setup %{!-v:-q} %{?forgesetupargs" .. rpm.expand("%{-z*}") .. "}\n"))
+end
+}
+-13: fpc_arches %{ix86} %{arm} x86_64 ppc64le aarch64
+-13: gccgo_arches mips mipsel mipsr6 mipsr6el mips64 mips64el mips64r6 mips64r6el
+-13: gccgo_min_vers 5.0.0
+-20: getconfdir <builtin>
+-20: getenv <builtin>
+-20: getncpus <builtin>
+-13: ghc_arches %{ix86} x86_64 armv7hl ppc64 ppc64le aarch64 s390 s390x
+-13: ghc_arches_with_ghci %{ix86} x86_64 armv7hl ppc64 ppc64le aarch64 s390 s390x %{mips}
+-13: ghc_devel_prof prof
+-20: global <builtin>
+-13: go_arches %{golang_arches} %{gccgo_arches}
+-13: go_compiler 1
+-13: go_generate_buildrequires(z:ai:) %{lua:
+local fedora = require "fedora.common"
+local processall = (rpm.expand("%{-a}") ~= "") and (rpm.expand("%{-z}") == "")
+local forcedgoipath = rpm.expand("%{?-i}")
+local golistargs = ""
+if processall then
+ for _, s in pairs(fedora.getsuffixes("goipath")) do
+ golistargs = golistargs .. " --package-path %{goipath" .. s .. "}"
+ end
+ golistargs = string.gsub(golistargs, "^ ", "")
+elseif forcedgoipath ~= "" then
+ golistargs = "--package-path " .. forcedgoipath
+else
+ golistargs = "--package-path %{goipath" .. rpm.expand("%{?-z*}") .. "}"
+end
+print(rpm.expand('GOPATH="%{?gobuilddir:%{gobuilddir}:}${GOPATH:+${GOPATH}:}%{?gopath}" ' ..
+ 'GO111MODULE=off ' ..
+ "golist --imported " .. golistargs ..
+ " --template 'golang({{.}})\\n'" ..
+ " --with-tests --skip-self\n"))
+}
+-13: goaltfiles(z:av) %{lua:
+local go = require "fedora.srpm.go"
+local suffix = rpm.expand("%{-z*}")
+local processall = (rpm.expand("%{-a}") ~= "") and (rpm.expand("%{-z}") == "")
+local verbose = (rpm.expand("%{-v}") ~= "")
+go.files("alt", suffix, processall, verbose)
+}
+-13: goaltinstall(z:av) %{lua:
+local go = require "fedora.rpm.go"
+local suffix = rpm.expand("%{-z*}")
+local processall = (rpm.expand("%{-a}") ~= "") and (rpm.expand("%{-z}") == "")
+local verbose = (rpm.expand("%{-v}") ~= "")
+go.install("alt", suffix, processall, verbose)
+}
+-13: goaltpkg(z:av) %{lua:
+local go = require "fedora.srpm.go"
+local suffix = rpm.expand("%{-z*}")
+local processall = (rpm.expand("%{-a}") ~= "") and (rpm.expand("%{-z}") == "")
+local verbose = (rpm.expand("%{-v}") ~= "")
+go.pkg("alt", suffix, processall, verbose)
+}
+-13: gobuild(o:) %{expand:
+ # https://bugzilla.redhat.com/show_bug.cgi?id=995136#c12
+ %global _dwz_low_mem_die_limit 0
+ %{?gobuilddir:GOPATH="%{gobuilddir}:${GOPATH:+${GOPATH}:}%{?gopath}"} %{?gomodulesmode} \
+ go build %{?gocompilerflags} -tags="rpm_crashtraceback ${BUILDTAGS:-}" -ldflags "${LDFLAGS:-} %{?currentgoldflags} -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \n') -compressdwarf=false -extldflags '%__global_ldflags %{?__golang_extldflags}'" -a -v -x %{?**};
+}
+-13: gobuildflags %{expand:%{gocompilerflags} -tags=\"rpm_crashtraceback \" -ldflags \"${LDFLAGS:-} %{?currentgoldflags} -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \n') -compressdwarf=false -extldflags '%__global_ldflags %{?__golang_extldflags}'\" -a -v -x}
+-13: gobuildroot %{expand:
+%{warn:%%gobuildroot is obsolete, use %%goprep in %%prep instead!}
+%goenv -z 0
+%gomkdir -k
+ln -fs "%{gobuilddir}/bin" _bin
+}
+-13: gocheck(z:ai:b:s:vd:t:rV:T:C:B:p:g:w) %{lua:
+local fedora = require "fedora.common"
+local processall = (rpm.expand("%{-a}") ~= "") and (rpm.expand("%{-z}") == "")
+local myenvflags = rpm.expand('%{?-i} %{?-v} %{?-V} %{?-T} %{?-C} %{?-B}')
+local mycheckflags = rpm.expand('%{!-i:-i "%%{currentgoipath}" }' ..
+ '%{!-b:-b "%%{gobuilddir}/bin" }' ..
+ '%{!-s:-s "%%{gobuilddir}" }' ..
+ '%{!-V:-V "%{version}-%{release}" }' ..
+ '%{!-T:%%{?currenttag: -T "%%{?currenttag}" }}' ..
+ '%{!-C:%%{?currentcommit: -C "%%{?currentcommit}" }}' ..
+ '%{!-B:%%{?currentbranch: -B "%%{?currentbranch}" }}' ..
+ '%{!-p:-p "%{buildroot}" }' ..
+ '%{!-g:-g "%{gopath}" }' ..
+ '%{?gocheckflags} %{?**}')
+-- Main function
+local function process(suffix)
+ local zsuffix = ""
+ if (suffix ~= "") and (suffix ~= nil) then
+ zsuffix = "-z " .. suffix .. " "
+ end
+ print(rpm.expand('%goenv ' .. zsuffix .. myenvflags .. '\n' ..
+ '%{?currentgoldflags:LDFLAGS="${LDFLAGS} %{?currentgoldflags}" }' ..
+ '%{?gotestflags:GO_TEST_FLAGS="%{gotestflags}" }' ..
+ '%{?gotestextldflags:GO_TEST_EXT_LD_FLAGS="%{gotestextldflags}" }' ..
+ 'go-rpm-integration check ' .. mycheckflags .. '\n'))
+end
+-- Main loop
+if processall then
+ for _,s in pairs(fedora.getsuffixes("goipath")) do
+ process(s)
+ end
+else
+ process(rpm.expand("%{-z*}"))
+end
+}
+-13: gocheckflags %{godefaultflags}
+-13: gochecks(z:ai:b:s:vd:t:rV:T:C:B:p:g:w) %{expand:
+%{warn:%%gochecks is obsolete, use %%gocheck in %%check instead!}
+%gocheck %{-z} %{-a} %{-i} %{-b} %{-s} %{-v} %{-d} %{-t} %{-r} %{-V} %{-T} %{-C} %{-B} %{-p} %{-g} %{-w}
+}
+-13: gochecksflags %{gocheckflags}
+-13: gocompilerflags -buildmode pie -compiler gc
+-13: godefaultflags %{goignoreflags_examples}
+-13: godevelfiles(z:av) %{lua:
+local go = require "fedora.srpm.go"
+local suffix = rpm.expand("%{-z*}")
+local processall = (rpm.expand("%{-a}") ~= "") and (rpm.expand("%{-z}") == "")
+local verbose = (rpm.expand("%{-v}") ~= "")
+go.files("devel", suffix, processall, verbose)
+}
+-13: godevelinstall(z:av) %{lua:
+local go = require "fedora.rpm.go"
+local suffix = rpm.expand("%{-z*}")
+local processall = (rpm.expand("%{-a}") ~= "") and (rpm.expand("%{-z}") == "")
+local verbose = (rpm.expand("%{-v}") ~= "")
+go.install("devel", suffix, processall, verbose)
+}
+-13: godevelpkg(z:av) %{lua:
+local go = require "fedora.srpm.go"
+local suffix = rpm.expand("%{-z*}")
+local processall = (rpm.expand("%{-a}") ~= "") and (rpm.expand("%{-z}") == "")
+local verbose = (rpm.expand("%{-v}") ~= "")
+go.pkg("devel", suffix, processall, verbose)
+}
+-13: goenv(z:i:vV:T:C:B:) %{lua:
+local go = require "fedora.rpm.go"
+local suffix = rpm.expand("%{?-z*}")
+local goipath = rpm.expand("%{?-i*}")
+local verbose = (rpm.expand("%{-v}") ~= "")
+local margs = { version = "V", tag = "T", commit = "C", branch = "B", }
+local mvalues = {}
+for m,_ in pairs(margs) do
+ local v = rpm.expand("%{?-" .. margs[m] .. "*}")
+ if (v ~= "") then mvalues[m] = v end
+end
+go.env(suffix, goipath, verbose, mvalues)
+}
+-13: gofilelist devel.file-list
+-13: goignoreflags_examples -r '.*example.*'
+-13: goinstall(z:ai:b:s:o:O:ve:d:t:rV:T:C:B:p:g:) %{lua:
+local fedora = require "fedora.common"
+local processall = (rpm.expand("%{-a}") ~= "") and (rpm.expand("%{-z}") == "")
+local myenvflags = rpm.expand('%{?-i} %{?-v} %{?-V} %{?-T} %{?-C} %{?-B}')
+local myinstallflags = rpm.expand('%{!-i:-i "%%{currentgoipath}" }' ..
+ '%{!-b:-b "%%{gobuilddir}/bin" }' ..
+ '%{!-s:-s "%%{gobuilddir}" }' ..
+ '%{!-o:-o "%%{thisgofilelist}" }' ..
+ '%{!-O:-O "%%{goworkdir}" }' ..
+ '%{!-V:-V "%{version}-%{release}" }' ..
+ '%{!-T:%%{?currenttag: -T "%%{?currenttag}" }}' ..
+ '%{!-C:%%{?currentcommit: -C "%%{?currentcommit}" }}' ..
+ '%{!-B:%%{?currentbranch: -B "%%{?currentbranch}" }}' ..
+ '%{!-p:-p "%{buildroot}" }' ..
+ '%{!-g:-g "%{gopath}" }' ..
+ '%{?goinstallflags} %{?**}')
+-- Main function
+local function process(suffix)
+ local zsuffix = ""
+ if (suffix ~= "") and (suffix ~= nil) then
+ zsuffix = "-z " .. suffix .. " "
+ end
+ print(rpm.expand('%goenv ' .. zsuffix .. myenvflags .. '\n' ..
+ 'go-rpm-integration install ' .. myinstallflags .. '\n'))
+end
+-- Main loop
+if processall then
+ for _,s in pairs(fedora.getsuffixes("goipath")) do
+ process(s)
+ end
+else
+ process(rpm.expand("%{-z*}"))
+end
+}
+-13: goinstallflags %{godefaultflags}
+-13: golang_arches i386 i486 i586 i686 pentium3 pentium4 athlon geode x86_64 armv3l armv4b armv4l armv4tl armv5tl armv5tel armv5tejl armv6l armv6hl armv7l armv7hl armv7hnl armv8l armv8hl armv8hnl armv8hcnl aarch64 ppc64le s390x
+-13: gometa(az:svi) %{lua:
+print( "BuildRequires: go-rpm-macros\n")
+print(rpm.expand("ExclusiveArch: %{go_arches}\n"))
+local fedora = require "fedora.common"
+local go = require "fedora.srpm.go"
+local verbose = rpm.expand("%{-v}") ~= ""
+local informative = rpm.expand("%{-i}") ~= ""
+local silent = rpm.expand("%{-s}") ~= ""
+local processall = (rpm.expand("%{-a}") ~= "") and (rpm.expand("%{-z}") == "")
+if processall then
+ for _,s in pairs(fedora.getsuffixes("goipath")) do
+ go.meta(s,verbose,informative,silent)
+ end
+else
+ go.meta(rpm.expand("%{-z*}"),verbose,informative,silent)
+end
+}
+-13: gomkdir(z:i:b:s:kv) %{expand:
+%goenv %{?-z} %{?-i} %{?-v}
+%define mybuilddir %{?-b*}%{!-b:%{gobuilddir}}
+%define mygoipath %{?-i*}%{!-i:%{currentgoipath}}
+%define mysourcedir %{?-s*}%{!-s:%{currentgosourcedir}}
+%{!?-k:rm -fr "%{mysourcedir}/vendor"}
+if [[ ! -e "%{mybuilddir}/bin" ]] ; then
+ install -m 0755 -vd "%{mybuilddir}/bin"
+ export GOPATH="%{mybuilddir}:${GOPATH:+${GOPATH}:}%{?gopath}"
+fi
+if [[ ! -e "%{mybuilddir}/src/%{mygoipath}" ]] ; then
+ install -m 0755 -vd "$(dirname %{mybuilddir}/src/%{mygoipath})"
+ ln -fs "%{mysourcedir}" "%{mybuilddir}/src/%{mygoipath}"
+fi
+cd "%{mybuilddir}/src/%{mygoipath}"
+}
+-13: gomodulesmode GO111MODULE=off
+-13: gopath /usr/share/gocode
+-13: gopkg(av) %{expand:
+%godevelpkg -a %{-v}
+%goaltpkg -a %{-v}
+}
+-13: gopkgfiles(av) %{expand:
+%godevelfiles -a %{-v}
+%goaltfiles -a %{-v}
+}
+-13: gopkginstall(av) %{expand:
+%godevelinstall -a %{-v}
+%goaltinstall -a %{-v}
+}
+-13: goprep(z:ai:b:s:kerv) %{lua:
+local fedora = require "fedora.common"
+local extract = (rpm.expand("%{-e}") == "")
+local installdeps = (rpm.expand("%{-r}") == "")
+local processall = (rpm.expand("%{-a}") ~= "") and (rpm.expand("%{-z}") == "")
+local setupflags = rpm.expand("%{!-v:-q}")
+local gomkdirflags = rpm.expand("%{?-i} %{?-b} %{?-s} %{-k} %{-v}")
+local buildrequires = {}
+local function process(suffix)
+ local zsuffix = ""
+ if (suffix ~= "") and (suffix ~= nil) then
+ zsuffix = "-z " .. suffix .. " "
+ end
+ if extract then
+ print(rpm.expand("%setup " .. setupflags .. " %{?forgesetupargs" .. suffix .. "}\n"))
+ end
+ print( rpm.expand("%gomkdir " .. zsuffix .. gomkdirflags .. "\n"))
+end
+-- Main loop
+if processall then
+ for _,s in pairs(fedora.getsuffixes("goipath")) do
+ process(s)
+ end
+else
+ process(rpm.expand("%{?-z*}"))
+end
+}
+-13: goprovflags %{godefaultflags}
+-13: goreqflags %{godefaultflags}
+-13: gorpmname(c:) %{lua:
+local go = require "fedora.srpm.go"
+print(go.rpmname("%1", "%{-c*}"))
+}
+-13: gotest %{?gomodulesmode} go test %{gotestflags} -ldflags "${LDFLAGS:-} %{?currentgoldflags} -extldflags '%{gotestextldflags}'" %{?**};
+-13: gotestextldflags %__global_ldflags %{?__golang_extldflags}
+-13: gotestflags %{gocompilerflags}
+-13: gpgverify(k:s:d:) %{lua:
+local script = rpm.expand("%{_rpmconfigdir}/redhat/gpgverify ")
+local keyring = rpm.expand("%{-k*}")
+local signature = rpm.expand("%{-s*}")
+local data = rpm.expand("%{-d*}")
+print(script)
+if keyring ~= "" then
+ print(rpm.expand("--keyring='%{SOURCE" .. keyring .. "}' "))
+end
+if signature ~= "" then
+ print(rpm.expand("--signature='%{SOURCE" .. signature .. "}' "))
+end
+if data ~= "" then
+ print(rpm.expand("--data='%{SOURCE" .. data .. "}' "))
+end
+}
+-13: install %{?_enable_debug_packages:%{?buildsubdir:%{debug_package}}}
+%%install
+%{nil}
+-13: ix86 i386 i486 i586 i686 pentium3 pentium4 athlon geode
+-13: jar %{java_home}/bin/jar
+-13: java %(. /usr/share/java-utils/java-functions; set_javacmd; echo $JAVACMD)
+-13: java_home %(. /usr/share/java-utils/java-functions; set_jvm; echo $JAVA_HOME)
+-13: javac %{java_home}/bin/javac
+-13: javadoc %{java_home}/bin/javadoc
+-13: journal_catalog_update %{nil}
+-13: jpackage_script
+install -d -m 755 %{buildroot}%{_bindir}
+cat > %{buildroot}%{_bindir}/%5 << EOF
+#!/bin/bash
+#
+# %{name} script
+# JPackage Project <http://www.jpackage.org/>
+
+# Source functions library
+_prefer_jre="%{?6}"
+. /usr/share/java-utils/java-functions
+
+# Source system prefs
+if [ -f %{_sysconfdir}/java/%{name}.conf ] ; then
+ . %{_sysconfdir}/java/%{name}.conf
+fi
+
+# Source user prefs
+if [ -f \$HOME/.%{name}rc ] ; then
+ . \$HOME/.%{name}rc
+fi
+
+# Configuration
+MAIN_CLASS=%1
+BASE_FLAGS=%2
+BASE_OPTIONS=%3
+BASE_JARS="%(echo %4 | sed -e 's,:, ,g')"
+
+# Set parameters
+set_jvm
+set_classpath \$BASE_JARS
+set_flags \$BASE_FLAGS
+set_options \$BASE_OPTIONS
+
+# Let's start
+run "\$@"
+EOF
+chmod 755 %{buildroot}%{_bindir}/%5
+%{nil}
+-13: kernel_arches x86_64 s390x ppc64le aarch64 %{arm}
+-13: ldc_arches %{ix86} x86_64 %{arm} aarch64
+-13: ldconfig_post(n:) %{?ldconfig:%post -p %ldconfig %{?*} %{-n:-n %{-n*}}
+%end}
+-13: ldconfig_postun(n:) %{?ldconfig:%postun -p %ldconfig %{?*} %{-n:-n %{-n*}}
+%end}
+-13: ldconfig_scriptlets(n:) %{?ldconfig:
+%ldconfig_post %{?*} %{-n:-n %{-n*}}
+%ldconfig_postun %{?*} %{-n:-n %{-n*}}
+}
+-13: limit_build(m:) %{lua:
+ local mem_per_process=rpm.expand("%{-m*}")
+ if mem_per_process == "" then
+ mem_per_process = 1024
+ else
+ mem_per_process = tonumber(mem_per_process)
+ end
+ local mem_total = 0
+ for line in io.lines('/proc/meminfo') do
+ if line:sub(1, 9) == "MemTotal:" then
+ local tokens = {}
+ for token in line:gmatch("%w+") do
+ tokens[#tokens + 1] = token
+ end
+ mem_total = tonumber(tokens[2])
+ break
+ end
+ end
+ local max_jobs = mem_total // (mem_per_process * 1024)
+ if max_jobs < 1 then
+ max_jobs = 1
+ end
+ cur_max_jobs=tonumber(rpm.expand("%{_smp_build_ncpus}"))
+ if cur_max_jobs > max_jobs then
+ print("-j" .. max_jobs)
+ end
+}
+-13: listfiles(i:x:) %{expand:
+%if %{lua: print(string.len(rpm.expand("%{?-i*}%{?listfiles_include}%*")))}
+ listfiles_include=$(realpath -e --relative-base=. %{?-i*} %{?listfiles_include} %* | sort -u)
+ %if %{lua: print(string.len(rpm.expand("%{?-x*}%{?listfiles_exclude}")))}
+ while IFS= read -r finc ; do
+ realpath -qe --relative-base=. %{?-x*} %{?listfiles_exclude} \
+ | sort -u | grep -q "${finc}" || echo "${finc}"
+ done <<< "${listfiles_include}"
+ %else
+ echo "${listfiles_include}"
+ %endif
+%endif
+}
+-20: load <builtin>
+-20: lua <builtin>
+-13: lua_requires
+%if 0%{?fedora} || 0%{?rhel} >= 7
+Requires: lua(abi) = %{lua_version}
+%else
+Requires: lua >= %{lua_version}
+Requires: lua < %{lua: os.setlocale('C'); print(string.sub(_VERSION, 5) + 0.1)}
+%endif
+%{nil}
+-13: lua_version %{lua: print(string.sub(_VERSION, 5))}
+-20: macrobody <builtin>
+-13: make_build %{__make} %{_make_output_sync} %{?_smp_mflags} %{_make_verbose}
+-13: make_install %{__make} install DESTDIR=%{?buildroot} INSTALL="%{__install} -p"
+-13: makeinstall
+ echo "warning: %%makeinstall is deprecated, try %%make_install instead" 1>&2
+ %{__make} \
+ prefix=%{?buildroot:%{buildroot}}%{_prefix} \
+ exec_prefix=%{?buildroot:%{buildroot}}%{_exec_prefix} \
+ bindir=%{?buildroot:%{buildroot}}%{_bindir} \
+ sbindir=%{?buildroot:%{buildroot}}%{_sbindir} \
+ sysconfdir=%{?buildroot:%{buildroot}}%{_sysconfdir} \
+ datadir=%{?buildroot:%{buildroot}}%{_datadir} \
+ includedir=%{?buildroot:%{buildroot}}%{_includedir} \
+ libdir=%{?buildroot:%{buildroot}}%{_libdir} \
+ libexecdir=%{?buildroot:%{buildroot}}%{_libexecdir} \
+ localstatedir=%{?buildroot:%{buildroot}}%{_localstatedir} \
+ sharedstatedir=%{?buildroot:%{buildroot}}%{_sharedstatedir} \
+ mandir=%{?buildroot:%{buildroot}}%{_mandir} \
+ infodir=%{?buildroot:%{buildroot}}%{_infodir} \
+ install
+-13: meson
+ %set_build_flags
+ %{shrink:%{__meson}
+ --buildtype=plain
+ --prefix=%{_prefix}
+ --libdir=%{_libdir}
+ --libexecdir=%{_libexecdir}
+ --bindir=%{_bindir}
+ --sbindir=%{_sbindir}
+ --includedir=%{_includedir}
+ --datadir=%{_datadir}
+ --mandir=%{_mandir}
+ --infodir=%{_infodir}
+ --localedir=%{_datadir}/locale
+ --sysconfdir=%{_sysconfdir}
+ --localstatedir=%{_localstatedir}
+ --sharedstatedir=%{_sharedstatedir}
+ --wrap-mode=%{__meson_wrap_mode}
+ --auto-features=%{__meson_auto_features}
+ %{_vpath_srcdir} %{_vpath_builddir}
+ %{nil}}
+-13: meson_build
+ %{shrink:%{__meson} compile
+ -C %{_vpath_builddir}
+ -j %{_smp_build_ncpus}
+ --verbose
+ %{nil}}
+-13: meson_install
+ %{shrink:DESTDIR=%{buildroot} %{__meson} install
+ -C %{_vpath_builddir}
+ --no-rebuild
+ %{nil}}
+-13: meson_test
+ %{shrink:%{__meson} test
+ -C %{_vpath_builddir}
+ --num-processes %{_smp_build_ncpus}
+ --print-errorlogs
+ %{nil}}
+-13: mips %{mips32} %{mips64}
+-13: mips32 mips mipsel mipsr6 mipsr6el
+-13: mips64 mips64 mips64el mips64r6 mips64r6el
+-13: mipseb mips mipsr6 mips64 mips64r6
+-13: mipsel mipsel mipsr6el mips64el mips64r6el
+-13: mono_arches %{ix86} x86_64 sparc sparcv9 ia64 %{arm} aarch64 alpha s390x ppc ppc64 ppc64le
+-13: new_package(n:v) %{lua:
+local fedora = require "fedora.common"
+local pkg_name = fedora.readflag("n")
+local verbose = fedora.hasflag("v")
+local name_suffix = fedora.read("1")
+local source_name = fedora.read("source_name")
+local first = not ( fedora.read("name") or fedora.read("currentname") )
+fedora.new_package(source_name, pkg_name, name_suffix, first, verbose)
+}
+-13: nil %{!?nil}
+-13: nim_arches %{ix86} x86_64
+-13: ninja_build
+ %{__ninja} %{__ninja_common_opts}
+-13: ninja_install
+ DESTDIR=%{buildroot} %{__ninja} install %{__ninja_common_opts}
+-13: ninja_test
+ %{__ninja} test %{__ninja_common_opts}
+-13: nodejs_arches %{ix86} x86_64 %{arm} aarch64 %{power64} s390x
+-13: nodejs_default_filter %{expand:
+%global __provides_exclude_from ^%{nodejs_sitearch}/.*\.node$
+}
+-13: nodejs_find_provides_and_requires %{nil}
+-13: nodejs_fixdep %{_rpmconfigdir}/nodejs-fixdep
+-13: nodejs_setversion %{_rpmconfigdir}/nodejs-setversion
+-13: nodejs_sitearch %{nodejs_sitelib}
+-13: nodejs_sitelib %{_prefix}/lib/node_modules
+-13: nodejs_symlink_deps %{_rpmconfigdir}/nodejs-symlink-deps %{nodejs_sitelib}
+-13: nodejs_version %(%{__nodejs} -v | sed s/v//)
+-13: ocaml_natdynlink aarch64 %{arm} %{ix86} ppc ppc64 ppc64le riscv64 s390x sparc sparcv9 x86_64
+-13: ocaml_native_compiler aarch64 %{arm} %{ix86} ppc ppc64 ppc64le riscv64 s390x sparc sparcv9 x86_64
+-13: ocaml_native_profiling %{nil}
+-13: openblas_arches x86_64 %{ix86} armv7hl %{power64} aarch64 s390x
+-11: optflags %{__global_compiler_flags} -m64 %{__cflags_arch_x86_64} -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection
+-13: patches %{lua: for i, p in ipairs(patches) do print(p.." ") end}
+-13: pkgconfig_personalitydir /usr/share/pkgconfig/personality.d
+-13: power64 ppc64 ppc64p7 ppc64le
+-13: py2_build %{expand:\
+ sleep 1
+ CFLAGS="${CFLAGS:-${RPM_OPT_FLAGS}}" LDFLAGS="${LDFLAGS:-${RPM_LD_FLAGS}}"\
+ %{__python2} %{py_setup} %{?py_setup_args} build --executable="%{__python2} %{py2_shbang_opts}" %{?*}
+ sleep 1
+}
+-13: py2_build_egg %{expand:\
+ sleep 1
+ CFLAGS="${CFLAGS:-${RPM_OPT_FLAGS}}" LDFLAGS="${LDFLAGS:-${RPM_LD_FLAGS}}"\
+ %{__python2} %{py_setup} %{?py_setup_args} bdist_egg %{?*}
+ sleep 1
+}
+-13: py2_build_wheel %{expand:\
+ sleep 1
+ CFLAGS="${CFLAGS:-${RPM_OPT_FLAGS}}" LDFLAGS="${LDFLAGS:-${RPM_LD_FLAGS}}"\
+ %{__python2} %{py_setup} %{?py_setup_args} bdist_wheel %{?*}
+ sleep 1
+}
+-13: py2_dist %{lua:
+ args = {}
+ arg = 1
+ while (true) do
+ name = rpm.expand("%{?" .. arg .. ":%{" .. arg .. "}}");
+ if (name == nil or name == '') then
+ break
+ end
+ args[arg] = name
+ arg = arg + 1
+ end
+ for arg, name in ipairs(args) do
+ canonical = rpm.expand("%py_dist_name " .. name);
+ print("python2dist(" .. canonical .. ") ");
+ end
+}
+-13: py2_install %{expand:\
+ CFLAGS="${CFLAGS:-${RPM_OPT_FLAGS}}" LDFLAGS="${LDFLAGS:-${RPM_LD_FLAGS}}"\
+ %{__python2} %{py_setup} %{?py_setup_args} install -O1 --skip-build --root %{buildroot} %{?*}
+ rm -rfv %{buildroot}%{_bindir}/__pycache__
+}
+-13: py2_install_egg %{expand:\
+ mkdir -p %{buildroot}%{python2_sitelib}
+ %{__python2} -m easy_install -m --prefix %{buildroot}%{_prefix} -Z dist/*-py%{python2_version}.egg %{?*}
+ rm -rfv %{buildroot}%{_bindir}/__pycache__
+}
+-13: py2_install_wheel %{expand:\
+ %{__python2} -m pip install -I dist/%{1} --root %{buildroot} --no-deps --no-index --no-warn-script-location
+ rm -rfv %{buildroot}%{_bindir}/__pycache__
+ for distinfo in %{buildroot}%{python2_sitelib}/*.dist-info %{buildroot}%{python2_sitearch}/*.dist-info; do
+ if [ -f ${distinfo}/direct_url.json ]; then
+ rm -fv ${distinfo}/direct_url.json
+ sed -i '/direct_url.json/d' ${distinfo}/RECORD
+ fi
+ done
+}
+-13: py2_shbang_opts -s
+-13: py2_shbang_opts_nodash %(opts=%{py2_shbang_opts}; echo ${opts#-})
+-13: py2_shebang_fix %{expand:\
+ if [ -z "%{?py_shebang_flags}" ]; then
+ shebang_flags="-k"
+ else
+ shebang_flags="-ka%{py2_shebang_flags}"
+ fi
+ /usr/bin/pathfix.py -pni %{__python2} $shebang_flags}
+-13: py2_shebang_flags %(opts=%{py2_shbang_opts}; echo ${opts#-})
+-13: py3_build %{expand:\
+ CFLAGS="${CFLAGS:-${RPM_OPT_FLAGS}}" LDFLAGS="${LDFLAGS:-${RPM_LD_FLAGS}}"\
+ %{__python3} %{py_setup} %{?py_setup_args} build --executable="%{__python3} %{py3_shbang_opts}" %{?*}
+}
+-13: py3_build_egg %{expand:\
+ CFLAGS="${CFLAGS:-${RPM_OPT_FLAGS}}" LDFLAGS="${LDFLAGS:-${RPM_LD_FLAGS}}"\
+ %{__python3} %{py_setup} %{?py_setup_args} bdist_egg %{?*}
+}
+-13: py3_build_wheel %{expand:\
+ CFLAGS="${CFLAGS:-${RPM_OPT_FLAGS}}" LDFLAGS="${LDFLAGS:-${RPM_LD_FLAGS}}"\
+ %{__python3} %{py_setup} %{?py_setup_args} bdist_wheel %{?*}
+}
+-13: py3_check_import(e:tf:) %{expand:\
+ PATH="%{buildroot}%{_bindir}:$PATH"\
+ PYTHONPATH="${PYTHONPATH:-%{buildroot}%{python3_sitearch}:%{buildroot}%{python3_sitelib}}"\
+ _PYTHONSITE="%{buildroot}%{python3_sitearch}:%{buildroot}%{python3_sitelib}"\
+ PYTHONDONTWRITEBYTECODE=1\
+ %{lua:
+ local command = "%{__python3} "
+ if rpm.expand("%{?py3_shebang_flags}") ~= "" then
+ command = command .. "-%{py3_shebang_flags}"
+ end
+ command = command .. " %{_rpmconfigdir}/redhat/import_all_modules.py "
+ -- handle multiline arguments correctly, see https://bugzilla.redhat.com/2018809
+ local args=rpm.expand('%{?**}'):gsub("[%s\\]*%s+", " ")
+ print(command .. args)
+ }
+}
+-13: py3_dist %{lua:
+ python3_pkgversion = rpm.expand("%python3_pkgversion");
+ args = {}
+ arg = 1
+ while (true) do
+ name = rpm.expand("%{?" .. arg .. ":%{" .. arg .. "}}");
+ if (name == nil or name == '') then
+ break
+ end
+ args[arg] = name
+ arg = arg + 1
+ end
+ for arg, name in ipairs(args) do
+ canonical = rpm.expand("%py_dist_name " .. name);
+ print("python" .. python3_pkgversion .. "dist(" .. canonical .. ") ");
+ end
+}
+-13: py3_install %{expand:\
+ CFLAGS="${CFLAGS:-${RPM_OPT_FLAGS}}" LDFLAGS="${LDFLAGS:-${RPM_LD_FLAGS}}"\
+ %{__python3} %{py_setup} %{?py_setup_args} install -O1 --skip-build --root %{buildroot} %{?*}
+ rm -rfv %{buildroot}%{_bindir}/__pycache__
+}
+-13: py3_install_egg %{expand:\
+ mkdir -p %{buildroot}%{python3_sitelib}
+ %{__python3} -m easy_install -m --prefix %{buildroot}%{_prefix} -Z dist/*-py%{python3_version}.egg %{?*}
+ rm -rfv %{buildroot}%{_bindir}/__pycache__
+}
+-13: py3_install_wheel %{expand:\
+ %{__python3} -m pip install -I dist/%{1} --root %{buildroot} --no-deps --no-index --no-warn-script-location
+ rm -rfv %{buildroot}%{_bindir}/__pycache__
+ for distinfo in %{buildroot}%{python3_sitelib}/*.dist-info %{buildroot}%{python3_sitearch}/*.dist-info; do
+ if [ -f ${distinfo}/direct_url.json ]; then
+ rm -fv ${distinfo}/direct_url.json
+ sed -i '/direct_url.json/d' ${distinfo}/RECORD
+ fi
+ done
+}
+-13: py3_shbang_opts -s
+-13: py3_shbang_opts_nodash %(opts=%{py3_shbang_opts}; echo ${opts#-})
+-13: py3_shebang_fix %{expand:\
+ if [ -f /usr/bin/pathfix%{python3_version}.py ]; then
+ pathfix=/usr/bin/pathfix%{python3_version}.py
+ else
+ # older versions of Python don't have it and must BR /usr/bin/pathfix.py from python3-devel explicitly
+ pathfix=/usr/bin/pathfix.py
+ fi
+ if [ -z "%{?py3_shebang_flags}" ]; then
+ shebang_flags="-k"
+ else
+ shebang_flags="-ka%{py3_shebang_flags}"
+ fi
+ $pathfix -pni %{__python3} $shebang_flags}
+-13: py3_shebang_flags %(opts=%{py3_shbang_opts}; echo ${opts#-})
+-13: py3dir %{_builddir}/python3-%{name}-%{version}-%{release}
+-13: py_auto_byte_compile 1
+-13: py_build %{expand:\
+ CFLAGS="${CFLAGS:-${RPM_OPT_FLAGS}}" LDFLAGS="${LDFLAGS:-${RPM_LD_FLAGS}}"\
+ %{__python} %{py_setup} %{?py_setup_args} build --executable="%{__python} %{py_shbang_opts}" %{?*}
+}
+-13: py_build_egg %{expand:\
+ CFLAGS="${CFLAGS:-${RPM_OPT_FLAGS}}" LDFLAGS="${LDFLAGS:-${RPM_LD_FLAGS}}"\
+ %{__python} %{py_setup} %{?py_setup_args} bdist_egg %{?*}
+}
+-13: py_build_wheel %{expand:\
+ CFLAGS="${CFLAGS:-${RPM_OPT_FLAGS}}" LDFLAGS="${LDFLAGS:-${RPM_LD_FLAGS}}"\
+ %{__python} %{py_setup} %{?py_setup_args} bdist_wheel %{?*}
+}
+-13: py_byte_compile
+py2_byte_compile () {
+ python_binary="env PYTHONHASHSEED=0 %1"
+ bytecode_compilation_path="%2"
+ failure=0
+ find $bytecode_compilation_path -type f -a -name "*.py" -print0 | xargs -0 $python_binary -s -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("'"$RPM_BUILD_ROOT"'")[2], doraise=True) for f in sys.argv[1:]]' || failure=1
+ find $bytecode_compilation_path -type f -a -name "*.py" -print0 | xargs -0 $python_binary -s -O -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("'"$RPM_BUILD_ROOT"'")[2], doraise=True) for f in sys.argv[1:]]' || failure=1
+ test $failure -eq 0
+}
+
+py3_byte_compile () {
+ python_binary="env PYTHONHASHSEED=0 %1"
+ bytecode_compilation_path="%2"
+ PYTHONPATH="%{_rpmconfigdir}/redhat" $python_binary -s -B -m compileall2 -o 0 -o 1 -s $RPM_BUILD_ROOT -p / $bytecode_compilation_path
+}
+
+py39_byte_compile () {
+ python_binary="env PYTHONHASHSEED=0 %1"
+ bytecode_compilation_path="%2"
+ $python_binary -s -B -m compileall -o 0 -o 1 -s $RPM_BUILD_ROOT -p / $bytecode_compilation_path
+}
+
+# Path to intepreter should not contain any arguments
+[[ "%1" =~ " -" ]] && echo "ERROR py_byte_compile: Path to interpreter should not contain any arguments" >&2 && exit 1
+# Get version without a dot (36 instead of 3.6), bash doesn't compare floats well
+python_version=$(%1 -c "import sys; sys.stdout.write('{0.major}{0.minor}'.format(sys.version_info))")
+# compileall2 is an enhanced fork of stdlib compileall module for Python >= 3.4
+# and it was merged back to stdlib in Python >= 3.9
+if [ "$python_version" -ge 39 ]; then
+py39_byte_compile "%1" "%2";
+elif [ "$python_version" -ge 34 ]; then
+py3_byte_compile "%1" "%2";
+else
+py2_byte_compile "%1" "%2";
+fi
+-13: py_check_import(e:tf:) %{expand:\
+ PATH="%{buildroot}%{_bindir}:$PATH"\
+ PYTHONPATH="${PYTHONPATH:-%{buildroot}%{python_sitearch}:%{buildroot}%{python_sitelib}}"\
+ _PYTHONSITE="%{buildroot}%{python_sitearch}:%{buildroot}%{python_sitelib}"\
+ PYTHONDONTWRITEBYTECODE=1\
+ %{lua:
+ local command = "%{__python} "
+ if rpm.expand("%{?py_shebang_flags}") ~= "" then
+ command = command .. "-%{py_shebang_flags}"
+ end
+ command = command .. " %{_rpmconfigdir}/redhat/import_all_modules.py "
+ -- handle multiline arguments correctly, see https://bugzilla.redhat.com/2018809
+ local args=rpm.expand('%{?**}'):gsub("[%s\\]*%s+", " ")
+ print(command .. args)
+ }
+}
+-13: py_dist_name %{lua:
+ name = rpm.expand("%{?1:%{1}}");
+ canonical = string.gsub(string.lower(name), "[^%w%[%]]+", "-");
+ print(canonical);
+}
+-13: py_install %{expand:\
+ CFLAGS="${CFLAGS:-${RPM_OPT_FLAGS}}" LDFLAGS="${LDFLAGS:-${RPM_LD_FLAGS}}"\
+ %{__python} %{py_setup} %{?py_setup_args} install -O1 --skip-build --root %{buildroot} %{?*}
+ rm -rfv %{buildroot}%{_bindir}/__pycache__
+}
+-13: py_install_egg %{expand:\
+ mkdir -p %{buildroot}%{python_sitelib}
+ %{__python} -m easy_install -m --prefix %{buildroot}%{_prefix} -Z dist/*-py%{python_version}.egg %{?*}
+ rm -rfv %{buildroot}%{_bindir}/__pycache__
+}
+-13: py_install_wheel %{expand:\
+ %{__python} -m pip install -I dist/%{1} --root %{buildroot} --no-deps --no-index --no-warn-script-location
+ rm -rfv %{buildroot}%{_bindir}/__pycache__
+ for distinfo in %{buildroot}%{python_sitelib}/*.dist-info %{buildroot}%{python_sitearch}/*.dist-info; do
+ if [ -f ${distinfo}/direct_url.json ]; then
+ rm -fv ${distinfo}/direct_url.json
+ sed -i '/direct_url.json/d' ${distinfo}/RECORD
+ fi
+ done
+}
+-13: py_provides %{lua:
+ local python = require 'fedora.srpm.python'
+ local name = rpm.expand('%1')
+ if name == '%1' then
+ rpm.expand('%{error:%%py_provides requires at least 1 argument, the name to provide}')
+ end
+ local evr = rpm.expand('%2')
+ if evr == '%2' then
+ evr = rpm.expand('%{?epoch:%{epoch}:}%{version}-%{release}')
+ end
+ print('Provides: ' .. name .. ' = ' .. evr .. '\n')
+ local provides = python.python_altprovides(name, evr)
+ for i, provide in ipairs(provides) do
+ print('Provides: ' .. provide .. '\n')
+ end
+}
+-13: py_setup setup.py
+-13: py_shbang_opts -s
+-13: py_shbang_opts_nodash %(opts=%{py_shbang_opts}; echo ${opts#-})
+-13: py_shebang_fix %{expand:\
+ if [ -f /usr/bin/pathfix%{python_version}.py ]; then
+ pathfix=/usr/bin/pathfix%{python_version}.py
+ else
+ # older versions of Python don't have it and must BR /usr/bin/pathfix.py from python3-devel explicitly
+ pathfix=/usr/bin/pathfix.py
+ fi
+ if [ -z "%{?py_shebang_flags}" ]; then
+ shebang_flags="-k"
+ else
+ shebang_flags="-ka%{py_shebang_flags}"
+ fi
+ $pathfix -pni %{__python} $shebang_flags}
+-13: py_shebang_flags %(opts=%{py_shbang_opts}; echo ${opts#-})
+-13: pycached %{lua:
+ path = rpm.expand("%{?*}")
+ if (string.sub(path, "-3") ~= ".py") then
+ rpm.expand("%{error:%%pycached can only be used with paths explicitly ending with .py}")
+ else
+ print(path)
+ pyminor = path:match("/python3.(%d+)/") or "*"
+ dirname = path:match("(.*/)")
+ modulename = path:match(".*/([^/]+).py")
+ print("\n" .. dirname .. "__pycache__/" .. modulename .. ".cpython-3" .. pyminor .. "{,.opt-?}.pyc")
+ end
+}
+-13: pypi_source %{lua:
+ local src = rpm.expand('%1')
+ local ver = rpm.expand('%2')
+ local ext = rpm.expand('%3')
+ local url = rpm.expand('%__pypi_url')
+
+ -- If no first argument, try %srcname, then %pypi_name, then %name
+ -- Note that rpm leaves macros unchanged if they are not defined.
+ if src == '%1' then
+ src = rpm.expand('%srcname')
+ end
+ if src == '%srcname' then
+ src = rpm.expand('%pypi_name')
+ end
+ if src == '%pypi_name' then
+ src = rpm.expand('%name')
+ end
+
+ -- If no second argument, use %version
+ if ver == '%2' then
+ ver = rpm.expand('%version'):gsub('~', '')
+ end
+
+ -- If no third argument, use the preset default extension
+ if ext == '%3' then
+ ext = rpm.expand('%__pypi_default_extension')
+ end
+
+ local first = string.sub(src, 1, 1)
+
+ print(url .. first .. '/' .. src .. '/' .. src .. '-' .. ver .. '.' .. ext)
+}
+-13: pyproject_buildrequires(rxtNe:) %{expand:\
+%{-N:
+%{-r:%{error:The -N and -r options are mutually exclusive}}
+%{-x:%{error:The -N and -x options are mutually exclusive}}
+%{-e:%{error:The -N and -e options are mutually exclusive}}
+%{-t:%{error:The -N and -t options are mutually exclusive}}
+}
+%{-e:%{expand:%global toxenv %(%{__python3} -s %{_rpmconfigdir}/redhat/pyproject_construct_toxenv.py %{?**})}}
+echo 'python%{python3_pkgversion}-devel'
+echo 'python%{python3_pkgversion}dist(pip) >= 19'
+echo 'python%{python3_pkgversion}dist(packaging)'
+%{!-N:if [ -f pyproject.toml ]; then
+ echo 'python%{python3_pkgversion}dist(toml)'
+elif [ -f setup.py ]; then
+ # Note: If the default requirements change, also change them in the script!
+ echo 'python%{python3_pkgversion}dist(setuptools) >= 40.8'
+ echo 'python%{python3_pkgversion}dist(wheel)'
+else
+ echo 'ERROR: Neither pyproject.toml nor setup.py found, consider using %%%%pyproject_buildrequires -N <requirements-file> if this is not a Python package.' >&2
+ exit 1
+fi}
+# setuptools assumes no pre-existing dist-info
+rm -rfv *.dist-info/ >&2
+if [ -f %{__python3} ]; then
+ RPM_TOXENV="%{toxenv}" HOSTNAME="rpmbuild" %{__python3} -s %{_rpmconfigdir}/redhat/pyproject_buildrequires.py %{?!_python_no_extras_requires:--generate-extras} --python3_pkgversion %{python3_pkgversion} %{?**}
+fi
+}
+-13: pyproject_check_import(e:t) %{expand:\
+if [ ! -f "%{_pyproject_modules}" ]; then
+ echo 'ERROR: %%%%pyproject_check_import only works when %%%%pyproject_save_files is used' >&2
+ exit 1
+fi
+%py3_check_import -f "%{_pyproject_modules}" %{?**}
+}
+-13: pyproject_extras_subpkg(n:i:f:F) %{expand:%{?python_extras_subpkg:%{python_extras_subpkg%{?!-i:%{?!-f:%{?!-F: -f %{_pyproject_ghost_distinfo}}}} %**}}}
+-13: pyproject_files %{_builddir}/pyproject-files
+-13: pyproject_install %{expand:\
+specifier=$(ls %{_pyproject_wheeldir}/*.whl | xargs basename --multiple | sed -E 's/([^-]+)-([^-]+)-.+\.whl/\1==\2/')
+TMPDIR="%{_pyproject_builddir}" %{__python3} -m pip install --root %{buildroot} --no-deps --disable-pip-version-check --progress-bar off --verbose --ignore-installed --no-warn-script-location --no-index --no-cache-dir --find-links %{_pyproject_wheeldir} $specifier
+if [ -d %{buildroot}%{_bindir} ]; then
+ %py3_shebang_fix %{buildroot}%{_bindir}/*
+ rm -rfv %{buildroot}%{_bindir}/__pycache__
+fi
+rm -f %{_pyproject_ghost_distinfo}
+site_dirs=()
+# Process %%{python3_sitelib} if exists
+if [ -d %{buildroot}%{python3_sitelib} ]; then
+ site_dirs+=( "%{python3_sitelib}" )
+fi
+# Process %%{python3_sitearch} if exists and does not equal to %%{python3_sitelib}
+if [ %{buildroot}%{python3_sitearch} != %{buildroot}%{python3_sitelib} ] && [ -d %{buildroot}%{python3_sitearch} ]; then
+ site_dirs+=( "%{python3_sitearch}" )
+fi
+# Process all *.dist-info dirs in sitelib/sitearch
+for site_dir in ${site_dirs[@]}; do
+ for distinfo in %{buildroot}$site_dir/*.dist-info; do
+ echo "%ghost ${distinfo#%{buildroot}}" >> %{_pyproject_ghost_distinfo}
+ sed -i 's/pip/rpm/' ${distinfo}/INSTALLER
+ PYTHONPATH=%{_rpmconfigdir}/redhat \
+ %{__python3} -B %{_rpmconfigdir}/redhat/pyproject_preprocess_record.py \
+ --buildroot %{buildroot} --record ${distinfo}/RECORD --output %{_pyproject_record}
+ rm -fv ${distinfo}/RECORD
+ rm -fv ${distinfo}/REQUESTED
+ done
+done
+lines=$(wc -l %{_pyproject_ghost_distinfo} | cut -f1 -d" ")
+if [ $lines -ne 1 ]; then
+ echo -e "\n\nWARNING: %%%%pyproject_extras_subpkg won't work without explicit -i or -F, found $lines dist-info directories.\n\n" >&2
+ rm %{_pyproject_ghost_distinfo} # any attempt to use this will fail
+fi
+}
+-13: pyproject_save_files %{expand:\
+%{__python3} %{_rpmconfigdir}/redhat/pyproject_save_files.py \
+ --output-files "%{pyproject_files}" \
+ --output-modules "%{_pyproject_modules}" \
+ --buildroot "%{buildroot}" \
+ --sitelib "%{python3_sitelib}" \
+ --sitearch "%{python3_sitearch}" \
+ --python-version "%{python3_version}" \
+ --pyproject-record "%{_pyproject_record}" \
+ %{*}
+}
+-13: pyproject_wheel %{expand:\
+%_set_pytest_addopts
+mkdir -p "%{_pyproject_builddir}"
+CFLAGS="${CFLAGS:-${RPM_OPT_FLAGS}}" LDFLAGS="${LDFLAGS:-${RPM_LD_FLAGS}}" TMPDIR="%{_pyproject_builddir}" \
+%{__python3} -m pip wheel --wheel-dir %{_pyproject_wheeldir} --no-deps --use-pep517 --no-build-isolation --disable-pip-version-check --no-clean --progress-bar off --verbose .
+}
+-13: pytest %{expand:\
+ CFLAGS="${CFLAGS:-${RPM_OPT_FLAGS}}" LDFLAGS="${LDFLAGS:-${RPM_LD_FLAGS}}"\
+ PATH="%{buildroot}%{_bindir}:$PATH"\
+ PYTHONPATH="${PYTHONPATH:-%{buildroot}%{python3_sitearch}:%{buildroot}%{python3_sitelib}}"\
+ PYTHONDONTWRITEBYTECODE=1\
+ %{?__pytest_addopts:PYTEST_ADDOPTS="${PYTEST_ADDOPTS:-} %{__pytest_addopts}"}\
+ %__pytest}
+-13: python %__python
+-13: python2 %__python2
+-13: python2_platform %(%{__python2} -Esc "import sysconfig; print(sysconfig.get_platform())")
+-13: python2_sitearch %(%{__python2} -Esc "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")
+-13: python2_sitelib %(%{__python2} -Esc "from distutils.sysconfig import get_python_lib; print(get_python_lib())")
+-13: python2_version %(%{__python2} -Esc "import sys; sys.stdout.write('{0.major}.{0.minor}'.format(sys.version_info))")
+-13: python2_version_nodots %(%{__python2} -Esc "import sys; sys.stdout.write('{0.major}{0.minor}'.format(sys.version_info))")
+-13: python3 %__python3
+-13: python3_ext_suffix %(%{__python3} -Ic "import sysconfig; print(sysconfig.get_config_var('EXT_SUFFIX'))")
+-13: python3_pkgversion 3
+-13: python3_platform %(%{__python3} -Ic "import sysconfig; print(sysconfig.get_platform())")
+-13: python3_platform_triplet %(%{__python3} -Ic "import sysconfig; print(sysconfig.get_config_var('MULTIARCH'))")
+-13: python3_sitearch %(%{__python3} -Ic "import sysconfig; print(sysconfig.get_path('platlib'))")
+-13: python3_sitelib %(%{__python3} -Ic "import sysconfig; print(sysconfig.get_path('purelib'))")
+-13: python3_version %(%{__python3} -Ic "import sys; sys.stdout.write('{0.major}.{0.minor}'.format(sys.version_info))")
+-13: python3_version_nodots %(%{__python3} -Ic "import sys; sys.stdout.write('{0.major}{0.minor}'.format(sys.version_info))")
+-13: python_disable_dependency_generator
+%undefine __pythondist_requires
+%{nil}
+-13: python_ext_suffix %(%{__python} -Esc "import sysconfig; print(sysconfig.get_config_var('EXT_SUFFIX'))")
+-13: python_extras_subpkg(n:i:f:F) %{expand:%{lua:
+ local option_n = '-n (name of the base package)'
+ local option_i = '-i (buildroot path to metadata)'
+ local option_f = '-f (builddir path to a filelist)'
+ local option_F = '-F (skip %%files section)'
+ local value_n = rpm.expand('%{-n*}')
+ local value_i = rpm.expand('%{-i*}')
+ local value_f = rpm.expand('%{-f*}')
+ local value_F = rpm.expand('%{-F}')
+ local args = rpm.expand('%{*}')
+ if value_n == '' then
+ rpm.expand('%{error:%%%0: missing option ' .. option_n .. '}')
+ end
+ if value_i == '' and value_f == '' and value_F == '' then
+ rpm.expand('%{error:%%%0: missing option ' .. option_i .. ' or ' .. option_f .. ' or ' .. option_F .. '}')
+ end
+ if value_i ~= '' and value_f ~= '' then
+ rpm.expand('%{error:%%%0: simultaneous ' .. option_i .. ' and ' .. option_f .. ' options are not possible}')
+ end
+ if value_i ~= '' and value_F ~= '' then
+ rpm.expand('%{error:%%%0: simultaneous ' .. option_i .. ' and ' .. option_F .. ' options are not possible}')
+ end
+ if value_f ~= '' and value_F ~= '' then
+ rpm.expand('%{error:%%%0: simultaneous ' .. option_f .. ' and ' .. option_F .. ' options are not possible}')
+ end
+ if args == '' then
+ rpm.expand('%{error:%%%0 requires at least one argument with "extras" name}')
+ end
+ local requires = 'Requires: ' .. value_n .. ' = %{?epoch:%{epoch}:}%{version}-%{release}'
+ for extras in args:gmatch('[^%s,]+') do
+ local rpmname = value_n .. '+' .. extras
+ local pkgdef = '%package -n ' .. rpmname
+ local summary = 'Summary: Metapackage for ' .. value_n .. ': ' .. extras .. ' extras'
+ local description = '%description -n ' .. rpmname .. '\n'
+ local current_line = 'This is a metapackage bringing in'
+ for _, word in ipairs({extras, 'extras', 'requires', 'for', value_n .. '.'}) do
+ local line = current_line .. ' ' .. word
+ if line:len() > 79 then
+ description = description .. current_line .. '\n'
+ current_line = word
+ else
+ current_line = line
+ end
+ end
+ description = description .. current_line .. '\n' ..
+ 'It makes sure the dependencies are installed.\n'
+ local files = ''
+ if value_i ~= '' then
+ files = '%files -n ' .. rpmname .. '\n' .. '%ghost ' .. value_i
+ elseif value_f ~= '' then
+ files = '%files -n ' .. rpmname .. ' -f ' .. value_f
+ end
+ for i, line in ipairs({pkgdef, summary, requires, description, files, ''}) do
+ print(line .. '\n')
+ end
+ end
+}}
+-13: python_platform %(%{__python} -Esc "import sysconfig; print(sysconfig.get_platform())")
+-13: python_platform_triplet %(%{__python} -Esc "import sysconfig; print(sysconfig.get_config_var('MULTIARCH'))")
+-13: python_provide %{lua:
+ local python = require "fedora.srpm.python"
+ function string.starts(String,Start)
+ return string.sub(String,1,string.len(Start))==Start
+ end
+ local package = rpm.expand("%{?1}")
+ local vr = rpm.expand("%{?epoch:%{epoch}:}%{version}-%{release}")
+ local provides = python.python_altprovides(package, vr)
+ local default_python3_pkgversion = rpm.expand("%{__default_python3_pkgversion}")
+ if (string.starts(package, "python3-")) then
+ for i, provide in ipairs(provides) do
+ print("\nProvides: " .. provide)
+ end
+ --Obsoleting the previous default python package (if it doesn't have isa)
+ if (string.sub(package, "-1") ~= ")") then
+ print("\nObsoletes: python-")
+ print(string.sub(package,9,string.len(package)))
+ print(" < " .. vr)
+ end
+ elseif (string.starts(package, "python" .. default_python3_pkgversion .. "-")) then
+ for i, provide in ipairs(provides) do
+ print("\nProvides: " .. provide)
+ end
+ --Obsoleting the previous default python package (if it doesn't have isa)
+ if (string.sub(package, "-1") ~= ")") then
+ print("\nObsoletes: python-")
+ print(string.sub(package,8+string.len(default_python3_pkgversion),string.len(package)))
+ print(" < " .. vr)
+ end
+ elseif (string.starts(package, "python")) then
+ --No unversioned provides as other python3 cases are not the default
+ elseif (string.starts(package, "pypy")) then
+ --No unversioned provides as pypy is not default either
+ else
+ print("%python_provide: ERROR: ")
+ print(package)
+ print(" not recognized.")
+ end
+}
+-13: python_sitearch %(%{__python} -Esc "import sysconfig; print(sysconfig.get_path('platlib'))")
+-13: python_sitelib %(%{__python} -Esc "import sysconfig; print(sysconfig.get_path('purelib'))")
+-13: python_version %(%{__python} -Esc "import sys; sys.stdout.write('{0.major}.{0.minor}'.format(sys.version_info))")
+-13: python_version_nodots %(%{__python} -Esc "import sys; sys.stdout.write('{0.major}{0.minor}'.format(sys.version_info))")
+-13: python_wheel_dir %{_datadir}/%{python_wheel_pkg_prefix}-wheels
+-13: python_wheel_pkg_prefix python%{?rhel:%{!?eln:%{python3_pkgversion}}}
+-13: qt5_qtwebengine_arches %{ix86} x86_64 %{arm} aarch64 mips mipsel mips64el
+-20: quote <builtin>
+-13: riscv %{riscv32} %{riscv64} %{riscv128}
+-13: riscv128 riscv128
+-13: riscv32 riscv32
+-13: riscv64 riscv64
+-13: rpmmacrodir /usr/lib/rpm/macros.d
+-13: rust_arches x86_64 %{ix86} armv7hl aarch64 ppc64 ppc64le riscv64 s390x
+-13: selinux_modules_install("s:p:")
+if [ -e /etc/selinux/config ]; then
+ . /etc/selinux/config
+fi
+_policytype=%{-s*}
+if [ -z "${_policytype}" ]; then
+ _policytype="targeted"
+fi
+if [ "${SELINUXTYPE}" = "${_policytype}" ]; then
+ %{_sbindir}/semodule -n -s ${_policytype} -X %{!-p:200}%{-p*} -i %* || :
+ %{_sbindir}/selinuxenabled && %{_sbindir}/load_policy || :
+fi
+%{nil}
+-13: selinux_modules_uninstall("s:p:")
+if [ -e /etc/selinux/config ]; then
+ . /etc/selinux/config
+fi
+_policytype=%{-s*}
+if [ -z "${_policytype}" ]; then
+ _policytype="targeted"
+fi
+if [ $1 -eq 0 ]; then
+ if [ "${SELINUXTYPE}" = "${_policytype}" ]; then
+ %{_sbindir}/semodule -n -X %{!-p:200}%{-p*} -s ${_policytype} -r %* &> /dev/null || :
+ %{_sbindir}/selinuxenabled && %{_sbindir}/load_policy || :
+ fi
+fi
+%{nil}
+-13: selinux_relabel_post("s:")
+if [ -e /etc/selinux/config ]; then
+ . /etc/selinux/config
+fi
+_policytype=%{-s*}
+if [ -z "${_policytype}" ]; then
+ _policytype="targeted"
+fi
+if %{_sbindir}/selinuxenabled && [ "${SELINUXTYPE}" = "${_policytype}" ]; then
+ if [ -f %{_file_context_file_pre} ]; then
+ %{_sbindir}/fixfiles -C %{_file_context_file_pre} restore &> /dev/null
+ rm -f %{_file_context_file_pre}
+ fi
+fi
+%{nil}
+-13: selinux_relabel_pre("s:")
+if %{_sbindir}/selinuxenabled; then
+ if [ -e /etc/selinux/config ]; then
+ . /etc/selinux/config
+ fi
+ _policytype=%{-s*}
+ if [ -z "${_policytype}" ]; then
+ _policytype="targeted"
+ fi
+ if [ "${SELINUXTYPE}" = "${_policytype}" ]; then
+ [ -f %{_file_context_file_pre} ] || cp -f %{_file_context_file} %{_file_context_file_pre}
+ fi
+fi
+%{nil}
+-13: selinux_requires
+Requires: selinux-policy >= %{_selinux_policy_version}
+BuildRequires: pkgconfig(systemd)
+BuildRequires: selinux-policy
+BuildRequires: selinux-policy-devel
+Requires(post): selinux-policy-base >= %{_selinux_policy_version}
+Requires(post): libselinux-utils
+Requires(post): policycoreutils
+%if 0%{?fedora} || 0%{?rhel} > 7
+Requires(post): policycoreutils-python-utils
+%else
+Requires(post): policycoreutils-python
+%endif
+%{nil}
+-13: selinux_set_booleans("s:")
+if [ -e /etc/selinux/config ]; then
+ . /etc/selinux/config
+fi
+_policytype=%{-s*}
+if [ -z "${_policytype}" ]; then
+ _policytype="targeted"
+fi
+if [ -d "%{_selinux_store_policy_path}" ]; then
+ LOCAL_MODIFICATIONS=$(%{_sbindir}/semanage boolean -E)
+ if [ ! -f %_file_custom_defined_booleans ]; then
+ /bin/echo "# This file is managed by macros.selinux-policy. Do not edit it manually" > %_file_custom_defined_booleans
+ fi
+ semanage_import=''
+ for boolean in %*; do
+ boolean_name=${boolean%=*}
+ boolean_value=${boolean#*=}
+ boolean_local_string=$(grep "$boolean_name$" <<<$LOCAL_MODIFICATIONS)
+ if [ -n "$boolean_local_string" ]; then
+ semanage_import="${semanage_import}\nboolean -m -$boolean_value $boolean_name"
+ boolean_customized_string=$(grep "$boolean_name$" %_file_custom_defined_booleans | tail -n 1)
+ if [ -n "$boolean_customized_string" ]; then
+ /bin/echo $boolean_customized_string >> %_file_custom_defined_booleans
+ else
+ /bin/echo $boolean_local_string >> %_file_custom_defined_booleans
+ fi
+ else
+ semanage_import="${semanage_import}\nboolean -m -$boolean_value $boolean_name"
+ boolean_default_value=$(LC_ALL=C %{_sbindir}/semanage boolean -l | grep "^$boolean_name " | sed 's/[^(]*([^,]*, *\(on\|off\).*/\1/')
+ /bin/echo "boolean -m --$boolean_default_value $boolean_name" >> %_file_custom_defined_booleans
+ fi
+ done;
+ if %{_sbindir}/selinuxenabled && [ "${SELINUXTYPE}" = "${_policytype}" ]; then
+ /bin/echo -e "$semanage_import" | %{_sbindir}/semanage import -S "${_policytype}"
+ elif test -d /usr/share/selinux/"${_policytype}"/base.lst; then
+ /bin/echo -e "$semanage_import" | %{_sbindir}/semanage import -S "${_policytype}" -N
+ fi
+fi
+%{nil}
+-13: selinux_unset_booleans("s:")
+if [ -e /etc/selinux/config ]; then
+ . /etc/selinux/config
+fi
+_policytype=%{-s*}
+if [ -z "${_policytype}" ]; then
+ _policytype="targeted"
+fi
+if [ -d "%{_selinux_store_policy_path}" ]; then
+ semanage_import=''
+ for boolean in %*; do
+ boolean_name=${boolean%=*}
+ boolean_customized_string=$(grep "$boolean_name$" %_file_custom_defined_booleans | tail -n 1)
+ if [ -n "$boolean_customized_string" ]; then
+ awk "/$boolean_customized_string/ && !f{f=1; next} 1" %_file_custom_defined_booleans > %_file_custom_defined_booleans_tmp && mv %_file_custom_defined_booleans_tmp %_file_custom_defined_booleans
+ if ! grep -q "$boolean_name$" %_file_custom_defined_booleans; then
+ semanage_import="${semanage_import}\n${boolean_customized_string}"
+ fi
+ fi
+ done;
+ if %{_sbindir}/selinuxenabled && [ "${SELINUXTYPE}" = "${_policytype}" ]; then
+ /bin/echo -e "$semanage_import" | %{_sbindir}/semanage import -S "${_policytype}"
+ elif test -d /usr/share/selinux/"${_policytype}"/base.lst; then
+ /bin/echo -e "$semanage_import" | %{_sbindir}/semanage import -S "${_policytype}" -N
+ fi
+fi
+%{nil}
+-13: set_build_flags
+ CFLAGS="${CFLAGS:-%{build_cflags}}" ; export CFLAGS ;
+ CXXFLAGS="${CXXFLAGS:-%{build_cxxflags}}" ; export CXXFLAGS ;
+ FFLAGS="${FFLAGS:-%{build_fflags}}" ; export FFLAGS ;
+ FCFLAGS="${FCFLAGS:-%{build_fflags}}" ; export FCFLAGS ;
+ LDFLAGS="${LDFLAGS:-%{build_ldflags}}" ; export LDFLAGS ;
+ LT_SYS_LIBRARY_PATH="${LT_SYS_LIBRARY_PATH:-%_libdir:}" ; export LT_SYS_LIBRARY_PATH ;
+ CC="${CC:-%{__cc}}" ; export CC ;
+ CXX="${CXX:-%{__cxx}}" ; export CXX
+-20: shrink <builtin>
+-13: source_date_epoch_from_changelog 1
+-13: sources %{lua: for i, s in ipairs(sources) do print(s.." ") end}
+-13: sparc sparc sparcv8 sparcv9 sparcv9v sparc64 sparc64v
+-20: suffix <builtin>
+-13: sysctl_apply
+%{expand:%%{?__systemd_someargs_%#:%%__systemd_someargs_%# sysctl_apply}}
+[ -x /usr/lib/systemd/systemd-sysctl ] && /usr/lib/systemd/systemd-sysctl %{?*} || :
+%{nil}
+-13: systemd_ordering
+OrderWithRequires(post): systemd
+OrderWithRequires(preun): systemd
+OrderWithRequires(postun): systemd
+%{nil}
+-13: systemd_post
+%{expand:%%{?__systemd_someargs_%#:%%__systemd_someargs_%# systemd_post}}
+if [ $1 -eq 1 ] && [ -x "/usr/lib/systemd/systemd-update-helper" ]; then
+ # Initial installation
+ /usr/lib/systemd/systemd-update-helper install-system-units %{?*} || :
+fi
+%{nil}
+-13: systemd_postun
+%{expand:%%{?__systemd_someargs_%#:%%__systemd_someargs_%# systemd_postun}}
+%{nil}
+-13: systemd_postun_with_restart
+%{expand:%%{?__systemd_someargs_%#:%%__systemd_someargs_%# systemd_postun_with_restart}}
+if [ $1 -ge 1 ] && [ -x "/usr/lib/systemd/systemd-update-helper" ]; then
+ # Package upgrade, not uninstall
+ /usr/lib/systemd/systemd-update-helper mark-restart-system-units %{?*} || :
+fi
+%{nil}
+-13: systemd_preun
+%{expand:%%{?__systemd_someargs_%#:%%__systemd_someargs_%# systemd_preun}}
+if [ $1 -eq 0 ] && [ -x "/usr/lib/systemd/systemd-update-helper" ]; then
+ # Package removal, not upgrade
+ /usr/lib/systemd/systemd-update-helper remove-system-units %{?*} || :
+fi
+%{nil}
+-13: systemd_requires
+Requires(post): systemd
+Requires(preun): systemd
+Requires(postun): systemd
+%{nil}
+-13: systemd_user_post
+%{expand:%%{?__systemd_someargs_%#:%%__systemd_someargs_%# systemd_user_post}}
+if [ $1 -eq 1 ] && [ -x "/usr/lib/systemd/systemd-update-helper" ]; then
+ # Initial installation
+ /usr/lib/systemd/systemd-update-helper install-user-units %{?*} || :
+fi
+%{nil}
+-13: systemd_user_postun
+%{expand:%%{?__systemd_someargs_%#:%%__systemd_someargs_%# systemd_user_postun}}
+%{nil}
+-13: systemd_user_postun_with_restart
+%{expand:%%{?__systemd_someargs_%#:%%__systemd_someargs_%# systemd_user_postun_with_restart}}
+if [ $1 -ge 1 ] && [ -x "/usr/lib/systemd/systemd-update-helper" ]; then
+ # Package upgrade, not uninstall
+ /usr/lib/systemd/systemd-update-helper mark-restart-user-units %{?*} || :
+fi
+%{nil}
+-13: systemd_user_preun
+%{expand:%%{?__systemd_someargs_%#:%%__systemd_someargs_%# systemd_user_preun}}
+if [ $1 -eq 0 ] && [ -x "/usr/lib/systemd/systemd-update-helper" ]; then
+ # Package removal, not upgrade
+ /usr/lib/systemd/systemd-update-helper remove-user-units %{?*} || :
+fi
+%{nil}
+-13: sysusers_create
+%{expand:%%{?__systemd_someargs_%#:%%__systemd_someargs_%# sysusers_create}}
+command -v systemd-sysusers >/dev/null && systemd-sysusers %{?*} || :
+%{nil}
+-13: sysusers_create_compat
+%(%{_rpmconfigdir}/sysusers.generate-pre.sh %{?*})
+%{nil}
+-13: sysusers_create_inline
+command -v systemd-sysusers >/dev/null && systemd-sysusers - <<SYSTEMD_INLINE_EOF || :
+%{?*}
+SYSTEMD_INLINE_EOF
+%{nil}
+-13: sysusers_create_package
+%{expand:%%{?!__systemd_twoargs_%#:%%{error:The %%%%sysusers_create_package macro requires two arguments}}}
+systemd-sysusers --replace=%_sysusersdir/%1.conf - <<SYSTEMD_INLINE_EOF || :
+%(cat %2)
+SYSTEMD_INLINE_EOF
+%{nil}
+-13: sysusers_requires_compat Requires(pre): shadow-utils
+-13: texlive_post
+mkdir -p /var/run/texlive
+touch /var/run/texlive/run-texhash
+touch /var/run/texlive/run-mtxrun
+:
+-13: texlive_posttrans
+if [ -e /var/run/texlive/run-texhash ] && [ -e %{_bindir}/texhash ]; then %{_bindir}/texhash 2> /dev/null; rm -f /var/run/texlive/run-texhash; fi
+if [ -e /var/run/texlive/run-mtxrun ]; then export TEXMF=/usr/share/texlive/texmf-dist; export TEXMFCNF=/usr/share/texlive/texmf-dist/web2c; export TEXMFCACHE=/var/lib/texmf; %{_bindir}/mtxrun --generate &> /dev/null; rm -f /var/run/texlive/run-mtxrun; fi
+:
+-13: texlive_postun
+if [ $1 == 1 ]; then
+ mkdir -p /var/run/texlive
+ touch /var/run/run-texhash
+else
+ %{_bindir}/texhash 2> /dev/null
+fi
+:
+-13: tmpfiles_create
+%{expand:%%{?__systemd_someargs_%#:%%__systemd_someargs_%# tmpfiles_create}}
+command -v systemd-tmpfiles >/dev/null && systemd-tmpfiles --create %{?*} || :
+%{nil}
+-13: tmpfiles_create_package
+%{expand:%%{?!__systemd_twoargs_%#:%%{error:The %%%%tmpfiles_create_package macro requires two arguments}}}
+systemd-tmpfiles --replace=%_tmpfilesdir/%1.conf --create - <<SYSTEMD_INLINE_EOF || :
+%(cat %2)
+SYSTEMD_INLINE_EOF
+%{nil}
+-13: toolchain gcc
+-13: tox(e:) %{expand:\
+TOX_TESTENV_PASSENV="${TOX_TESTENV_PASSENV:-*}" \
+PYTHONDONTWRITEBYTECODE=1 \
+PATH="%{buildroot}%{_bindir}:$PATH" \
+PYTHONPATH="${PYTHONPATH:-%{buildroot}%{python3_sitearch}:%{buildroot}%{python3_sitelib}}" \
+%{?__pytest_addopts:PYTEST_ADDOPTS="${PYTEST_ADDOPTS:-} %{__pytest_addopts}"} \
+HOSTNAME="rpmbuild" \
+%{__python3} -m tox --current-env -q --recreate -e "%{-e:%{-e*}}%{!-e:%{toxenv}}" %{?*}
+}
+-13: toxenv %{default_toxenv}
+-20: trace <builtin>
+-20: u2p <builtin>
+-13: udev_hwdb_update %{nil}
+-13: udev_rules_update %{nil}
+-20: uncompress <builtin>
+-20: undefine <builtin>
+-13: undefined %{expand:%%{?%{1}:0}%%{!?%{1}:1}}
+-20: url2path <builtin>
+-13: use_source_date_epoch_as_buildtime 0
+-13: valgrind_arches %{ix86} x86_64 ppc ppc64 ppc64le s390x armv7hl aarch64
+-20: verbose <builtin>
+-13: version_no_tilde %{lua:
+ local sep = rpm.expand('%1')
+ local ver = rpm.expand('%2')
+
+ if sep == '%1' then
+ sep = '-'
+ end
+
+ if ver == '%2' then
+ ver = rpm.expand('%version')
+ end
+ ver = ver:gsub('~', sep)
+
+ print(ver)
+}
+-13: vimfiles_root %{_datadir}/vim/vimfiles
+-20: warn <builtin>
+-13: with %{expand:%%{?with_%{1}:1}%%{!?with_%{1}:0}}
+-13: without %{expand:%%{?with_%{1}:0}%%{!?with_%{1}:1}}
+-13: wordwrap(v:) %{lua:
+local fedora = require "fedora.common"
+local variable = "%{?" .. rpm.expand("%{-v*}%{!-v:_description}") .. "}"
+print(fedora.wordwrap(variable))
+}
+-13: writevars(f:) %{lua:
+local fedora = require "fedora.common"
+local macrofile = rpm.expand("%{-f*}")
+local rpmvars = {}
+for i = 1, rpm.expand("%#") do
+ table.insert(rpmvars, rpm.expand("%" .. i))
+end
+fedora.writevars(macrofile,rpmvars)
+}
+======================== active 840 empty 0
diff --git a/spec/unit/plugins/rpm_spec.rb b/spec/unit/plugins/rpm_spec.rb
new file mode 100644
index 00000000..e225cd49
--- /dev/null
+++ b/spec/unit/plugins/rpm_spec.rb
@@ -0,0 +1,51 @@
+#
+# Author:: Davide Cavalca <dcavalca@fb.com>
+# Copyright:: Copyright (c) 2021 Facebook
+# License:: Apache License, Version 2.0
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+require "spec_helper"
+
+describe Ohai::System, "rpm plugin" do
+ let(:plugin) { get_plugin("rpm") }
+
+ before do
+ allow(plugin).to receive(:collect_os).and_return(:linux)
+ end
+
+ it "populates rpm if rpm is found" do
+ rpm_version_out = "RPM version 4.17.0\n"
+ rpm_showrc_out = File.read(File.join(SPEC_PLUGIN_PATH, "rpm-showrc.output"))
+
+ allow(plugin).to receive(:which).with("rpm").and_return("/bin/rpm")
+ allow(plugin).to receive(:shell_out).with("/bin/rpm --version").and_return(mock_shell_out(0, rpm_version_out, ""))
+ allow(plugin).to receive(:shell_out).with("/bin/rpm --showrc").and_return(mock_shell_out(0, rpm_showrc_out, ""))
+ plugin.run
+ expect(plugin[:rpm].to_hash).to eq({
+ "arch_os" => { "build_arch" => "x86_64", "build_os" => "Linux", "compatible_archs" => %w{x86_64 amd64 em64t athlon noarch i686 i586 i486 i386 fat}, "compatible_build_archs" => %w{x86_64 noarch}, "compatible_build_oses" => ["Linux"], "compatible_oses" => ["Linux"], "install_arch" => "x86_64", "install_os" => "Linux" },
+ "features" => { "rpmlib(BuiltinLuaScripts)" => "4.2.2-1", "rpmlib(CaretInVersions)" => "4.15.0-1", "rpmlib(CompressedFileNames)" => "3.0.4-1", "rpmlib(ConcurrentAccess)" => "4.1-1", "rpmlib(DynamicBuildRequires)" => "4.15.0-1", "rpmlib(ExplicitPackageProvide)" => "4.0-1", "rpmlib(FileCaps)" => "4.6.1-1", "rpmlib(FileDigests)" => "4.6.0-1", "rpmlib(HeaderLoadSortsTags)" => "4.0.1-1", "rpmlib(LargeFiles)" => "4.12.0-1", "rpmlib(PartialHardlinkSets)" => "4.0.4-1", "rpmlib(PayloadFilesHavePrefix)" => "4.0-1", "rpmlib(PayloadIsBzip2)" => "3.0.5-1", "rpmlib(PayloadIsLzma)" => "4.4.2-1", "rpmlib(PayloadIsXz)" => "5.2-1", "rpmlib(PayloadIsZstd)" => "5.4.18-1", "rpmlib(RichDependencies)" => "4.12.0-1", "rpmlib(ScriptletExpansion)" => "4.9.0-1", "rpmlib(ScriptletInterpreterArgs)" => "4.0.3-1", "rpmlib(TildeInVersions)" => "4.10.0-1", "rpmlib(VersionedDependencies)" => "3.0.3-1" },
+ "macros" => { "GNAT_arches" => "%{GPRbuild_arches} ia64 ppc alpha", "Main" => "loop\nif processall then\n for _,s in pairs(fedora.getsuffixes(\"goipath\")) do\n process(s)\n end\nelse\n process(rpm.expand(\"%{-z*}\"))\nend\n}", "P" => "<builtin>", "__7zip" => "/usr/bin/7za", "___build_cmd" => "%{?_sudo:%{_sudo} }%{?_remsh:%{_remsh} %{_remhost} }%{?_remsudo:%{_remsudo} }%{?_remchroot:%{_remchroot} %{_remroot} }%{___build_shell} %{___build_args}", "___build_pre" => "\n RPM_SOURCE_DIR=\"%{u2p:%{_sourcedir}}\"\n RPM_BUILD_DIR=\"%{u2p:%{_builddir}}\"\n RPM_OPT_FLAGS=\"%{optflags}\"\n RPM_LD_FLAGS=\"%{?build_ldflags}\"\n RPM_ARCH=\"%{_arch}\"\n RPM_OS=\"%{_os}\"\n RPM_BUILD_NCPUS=\"%{_smp_build_ncpus}\"\n export RPM_SOURCE_DIR RPM_BUILD_DIR RPM_OPT_FLAGS RPM_LD_FLAGS RPM_ARCH RPM_OS RPM_BUILD_NCPUS RPM_LD_FLAGS\n RPM_DOC_DIR=\"%{_docdir}\"\n export RPM_DOC_DIR\n RPM_PACKAGE_NAME=\"%{NAME}\"\n RPM_PACKAGE_VERSION=\"%{VERSION}\"\n RPM_PACKAGE_RELEASE=\"%{RELEASE}\"\n export RPM_PACKAGE_NAME RPM_PACKAGE_VERSION RPM_PACKAGE_RELEASE\n LANG=C\n export LANG\n unset CDPATH DISPLAY ||:\n %{?buildroot:RPM_BUILD_ROOT=\"%{u2p:%{buildroot}}\"\n export RPM_BUILD_ROOT}\n %{?_javaclasspath:CLASSPATH=\"%{_javaclasspath}\"\n export CLASSPATH}\n PKG_CONFIG_PATH=\"${PKG_CONFIG_PATH}:%{_libdir}/pkgconfig:%{_datadir}/pkgconfig\"\n export PKG_CONFIG_PATH\n CONFIG_SITE=${CONFIG_SITE:-NONE}\n export CONFIG_SITE\n \n %[%{verbose}?\"set -x\":\"\"]\n umask 022\n cd \"%{u2p:%{_builddir}}\"", "___build_template" => "#!%{___build_shell}\n%{___build_pre}\n%{nil}", "__ar" => "ar", "__as" => "as", "__bootstrap" => "~bootstrap", "__brp_check_rpaths" => "/usr/lib/rpm/check-rpaths", "__brp_elfperms" => "%{_rpmconfigdir}/brp-elfperms", "__brp_ldconfig" => "/usr/lib/rpm/redhat/brp-ldconfig", "__brp_mangle_shebangs" => "/usr/lib/rpm/redhat/brp-mangle-shebangs %{?__brp_mangle_shebangs_exclude:--shebangs \"%{?__brp_mangle_shebangs_exclude}\"} %{?__brp_mangle_shebangs_exclude_file:--shebangs-from \"%{__brp_mangle_shebangs_exclude_file}\"} %{?__brp_mangle_shebangs_exclude_from:--files \"%{?__brp_mangle_shebangs_exclude_from}\"} %{?__brp_mangle_shebangs_exclude_from_file:--files-from \"%{__brp_mangle_shebangs_exclude_from_file}\"}", "__brp_python_hardlink" => "%{_rpmconfigdir}/redhat/brp-python-hardlink", "__brp_strip" => "/usr/lib/rpm/brp-strip %{__strip}", "__brp_strip_lto" => "/usr/lib/rpm/redhat/brp-strip-lto %{__strip}", "__bzip2" => "/usr/bin/bzip2", "__cargo_skip_build" => "%{lua:\nlocal crate = rpm.expand('%{crate}')\nlocal build_crate = false\nfor w in rpm.expand('%{?_build_crates}'):gmatch('%S+') do\n if w == crate then\n build_crate = true\n break\n end\nend\nif (rpm.expand('%{defined _module_build}') ~= '0' and not build_crate) then\n print(1)\nelse\n print(0)\nend}", "__cc" => "%{expand:%%{__cc_%{toolchain}}}", "__cc_gcc" => "gcc", "__cflags_arch_x86_64" => "%[0%{?rhel} >= 9 ? \"-march=x86-64-v2\" : \"\"]", "__chmod" => "/usr/bin/chmod", "__cmake" => "/usr/bin/cmake", "__cmake_path" => "^(%{_libdir}|%{_datadir})/cmake/.*/.*(Config.cmake|-config.cmake)$", "__cmake_requires" => "%{_rpmconfigdir}/cmake.req", "__cpp" => "%{expand:%%{__cpp_%{toolchain}}}", "__cpp_gcc" => "gcc -E", "__ctest" => "/usr/bin/ctest", "__cxx_clang" => "clang++", "__debug_install_post" => "\n %{__find_debuginfo} \\\n %{?_smp_build_ncpus:-j%{_smp_build_ncpus}} \\\n %{?_missing_build_ids_terminate_build:--strict-build-id} \\\n %{?_no_recompute_build_ids:-n} \\\n %{?_include_minidebuginfo:-m} \\\n %{?_include_gdb_index:-i} \\\n %{?_unique_build_ids:--build-id-seed \"%{VERSION}-%{RELEASE}\"} \\\n %{?_unique_debug_names:--unique-debug-suffix \"-%{VERSION}-%{RELEASE}.%{_arch}\"} \\\n %{?_unique_debug_srcs:--unique-debug-src-base \"%{name}-%{VERSION}-%{RELEASE}.%{_arch}\"} \\\n %{?_find_debuginfo_dwz_opts} \\\n %{?_find_debuginfo_opts} \\\n %{?_debugsource_packages:-S debugsourcefiles.list} \\\n \"%{_builddir}/%{?buildsubdir}\"\n%{nil}", "__debuginfo_provides" => "%{lua:\n local file = rpm.expand(\"%1\")\n local b1, b2 = file:match(\"/([0-9a-f]+)/([0-9a-f]+).debug$\")\n print(string.format(\"debuginfo(build-id) = %s%s\\n\", b1, b2))\n}", "__default_python3_version" => "3.10", "__desktop_provides" => "%{lua:\n local executable = false\n local mimetypes = nil\n for line in io.lines(rpm.expand(\"%1\")) do\n if line:match(\"^Type%s*=%s*Application$\") or line:match(\"^Exec%s*=\") then\n executable = true\n elseif line:match(\"^MimeType%s*=\") then\n mimetypes = line:match(\"=%s*(.+)\")\n end\n end\n if executable then\n print(\"application()\\n\")\n print(string.format(\"application(%s)\\n\", rpm.expand(\"%{basename:%1}\")))\n if mimetypes then\n for mimetype in mimetypes:gmatch(\"([^;]+)\") do\n print(string.format(\"mimehandler(%s)\\n\", mimetype))\n end\n end\n end\n}", "__elf_magic" => "^(setuid,? )?(setgid,? )?(sticky )?ELF (32|64)-bit.*$", "__elf_requires" => "%{_rpmconfigdir}/elfdeps --requires", "__file" => "/usr/bin/file", "__find_provides" => "%{_rpmconfigdir}/find-provides", "__font_magic" => "[Ff]ont?( (program|collection))?( (text|data))", "__font_requires" => "%{nil}", "__git" => "/usr/bin/git", "__global_compiler_flags" => "%{_general_options} %{_warning_options} %{_preprocessor_defines} %{_hardened_cflags} %{_annotation_cflags} %{_legacy_options}", "__global_fcflags" => "%{build_fflags}", "__global_ldflags" => "%{build_ldflags}", "__global_requires_exclude_from" => "%{?_docdir:%{_docdir}}", "__go_path" => "^%{gopath}/src/.+/.goipath$", "__go_requires" => "go-rpm-integration requires --prefix \"%{buildroot}\" --go-path \"%{gopath}\" %{?goreqflags}", "__gobundled_flags" => "magic_and_path", "__gobundled_path" => "^%{gopath}/src/.+/vendor/.+/.*$", "__godevelinstall(-i:v)" => "%{expand:\n(\n%define __godevelinstall_ipath %{-i*}\ncd \"%{gobuilddir}/src/%{__godevelinstall_ipath}\"\n%define listfiles_include %{?currentgosupfiles}\n%define listfiles_exclude %{?currentgosupfilesex}\nIFS= gosupfiles=$(%listfiles\n)\nmapfile -t gosupfilesA <<< \"${gosupfiles}\"\ngo-rpm-integration install -i \"%{__godevelinstall_ipath}\" \\\n -b \"%{gobuilddir}/bin\" \\\n -s \"%{gobuilddir}\" \\\n -o \"%{currentgodevelfilelist}\" \\\n -O \"%{goworkdir}\" \\\n -V \"%{version}-%{release}\" \\\n %{?currenttag: -T \"%{?currenttag}\"} \\\n %{?currentcommit: -C \"%{?currentcommit}\"} \\\n %{?currentbranch: -B \"%{?currentbranch}\"} \\\n -p \"%{buildroot}\" \\\n -g \"%{gopath}\" \\\n %{?currentgoipathsex} \\\n %{?currentgoextensions} \\\n %{?goinstallflags} \\\n %{-v} ${gosupfilesA[@]:+\"${gosupfilesA[@]}\"}\n)\n}", "__gosymlink_flags" => "magic_and_path", "__gosymlink_path" => "^%{gopath}/src/.*$", "__gosymlink_requires" => "%{_rpmconfigdir}/gosymlink.deps requires --prefix \"%{buildroot}\" --go-path \"%{gopath}\"", "__gpg_reserved_space" => "4096", "__grep" => "/usr/bin/grep", "__gstreamer1_provides" => "%{_rpmconfigdir}/gstreamer1.prov", "__hg" => "/usr/bin/hg", "__id_u" => "%{__id} -u", "__isa" => "%{__isa_name}-%{__isa_bits}", "__isa_name" => "x86", "__kmod_provides" => "%{lua:\n function basename(fn)\n return string.gsub(fn, \"(.*/)(.*)\", \"%2\")\n end\n function printdep(mod)\n print(\"kmod(\"..mod..\")\")\n end\n local fn = rpm.expand(\"%{1}\")\n local bn = basename(fn)\n if bn == \"modules.builtin\" then\n for l in io.lines(fn) do\n printdep(basename(l))\n end\n else\n local mod = string.match(bn, \"%g+.ko\")\n if mod then\n printdep(mod)\n end\n end\n}", "__libsymlink_flags" => "magic_and_path", "__libsymlink_path" => "^.*.so$", "__ln_s" => "ln -s", "__lzip" => "/usr/bin/lzip", "__meson" => "/usr/bin/meson", "__meson_wrap_mode" => "nodownload", "__metainfo_provides" => "%{lua:\n print(\"metainfo()\\n\")\n print(string.format(\"metainfo(%s)\\n\", rpm.expand(\"%{basename:%1}\")))\n}", "__mkdir_p" => "/usr/bin/mkdir -p", "__ninja" => "/usr/bin/ninja", "__nodejs" => "%{_bindir}/node", "__nodejs_native_requires" => "%{_rpmconfigdir}/nodejs_native.req", "__nodejs_provides" => "%{_rpmconfigdir}/nodejs.prov", "__nodejs_suggests" => "%{_rpmconfigdir}/nodejs.req --optional", "__ocaml_flags" => "magic_and_path", "__ocaml_path" => ".(cma|cmi|cmo|cmx|cmxa|cmxs)$", "__ocaml_requires" => "%{_rpmconfigdir}/ocamldeps.sh --requires", "__os_install_post_python" => "\n %{?py_auto_byte_compile:%{?__brp_python_bytecompile}} \n %{?py_reproducible_pyc_path:%{?__brp_fix_pyc_reproducibility} \"%{py_reproducible_pyc_path}\"} \n %{?__brp_python_hardlink} \n%{nil}", "__perl" => "%{_bindir}/perl", "__pkgconfig_provides" => "%{_rpmconfigdir}/pkgconfigdeps.sh --provides", "__plugindir" => "%{_libdir}/rpm-plugins", "__psdriver_path" => "^(/usr/lib/cups/driver/.*|%{_datadir}/cups/drv/.*.drv)$", "__pypi_default_extension" => "tar.gz", "__pytest" => "/usr/bin/pytest%(test %{python3_pkgversion} == 3 || echo -%{python3_version})", "__python2" => "/usr/bin/python2", "__python_path" => "^((%{_prefix}/lib(64)?/python[[:digit:]]+\\.[[:digit:]]+/.*\\.(py[oc]?|so))|(%{_bindir}/python[[:digit:]]+\\.[[:digit:]]+))$", "__python_requires" => "%{lua:\n -- Match buildroot paths of the form\n -- /PATH/OF/BUILDROOT/usr/lib/pythonMAJOR.MINOR/ and\n -- /PATH/OF/BUILDROOT/usr/lib64/pythonMAJOR.MINOR/\n -- generating a line of the form:\n -- python(abi) = MAJOR.MINOR\n local path = rpm.expand('%1')\n if path:match('/usr/lib%d*/python%d+%.%d+/.*') then\n local requires = path:gsub('.*/usr/lib%d*/python(%d+%.%d+)/.*', 'python(abi) = %1')\n print(requires)\n end\n}", "__pythondist_provides" => "%{_rpmconfigdir}/pythondistdeps.py --provides --normalized-names-format pep503 --package-name %{name} --normalized-names-provide-both --majorver-provides-versions %{__default_python3_version}", "__pythonname_path" => "^/", "__quilt" => "/usr/bin/quilt", "__scm" => "patch", "__scm_apply_gendiff(qp:m:)" => "\n%{__patch} %{-p:-p%{-p*}} %{-q:-s} --fuzz=%{_default_patch_fuzz} %{_default_patch_flags} -b --suffix \".%{2}\"", "__scm_apply_git_am(qp:m:)" => "\n%{__git} am --reject %{-q} %{-p:-p%{-p*}}", "__scm_apply_patch(qp:m:)" => "\n%{__patch} %{-p:-p%{-p*}} %{-q:-s} --fuzz=%{_default_patch_fuzz} %{_default_patch_flags}", "__scm_author" => "%{__scm_username} %{__scm_usermail}", "__scm_setup_gendiff(q)" => "%{nil}", "__scm_setup_git_am(q)" => "\n%{expand:%__scm_setup_git %{-q}}", "__scm_setup_patch(q)" => "%{nil}", "__scm_usermail" => "<rpm-build>", "__script_flags" => "exeonly", "__script_requires" => "%{_rpmconfigdir}/script.req", "__spec_build_args" => "%{___build_args}", "__spec_build_cmd" => "%{___build_cmd}", "__spec_build_pre" => "%{___build_pre}", "__spec_build_template" => "#!%{__spec_build_shell}\n%{__spec_build_pre}\n%{nil}", "__spec_buildrequires_body" => "%{___build_body}", "__spec_buildrequires_post" => "%{___build_post}", "__spec_buildrequires_shell" => "%{___build_shell}", "__spec_check_args" => "%{___build_args}", "__spec_check_cmd" => "%{___build_cmd}", "__spec_check_pre" => "%{___build_pre}", "__spec_check_template" => "#!%{__spec_check_shell}\n%{__spec_check_pre}\n%{nil}", "__spec_clean_body" => "%{___build_body}", "__spec_clean_post" => "%{___build_post}", "__spec_clean_shell" => "%{___build_shell}", "__spec_install_args" => "%{___build_args}", "__spec_install_cmd" => "%{___build_cmd}", "__spec_install_pre" => "%{___build_pre}\n [ \"$RPM_BUILD_ROOT\" != \"/\" ] && rm -rf \"${RPM_BUILD_ROOT}\"\n mkdir -p \"`dirname \"$RPM_BUILD_ROOT\"`\"\n mkdir \"$RPM_BUILD_ROOT\"\n%{nil}", "__spec_install_template" => "#!%{__spec_install_shell}\n%{__spec_install_pre}\n%{nil}", "__spec_prep_body" => "%{___build_body}", "__spec_prep_post" => "%{___build_post}", "__spec_prep_shell" => "%{___build_shell}", "__spec_rmbuild_args" => "%{___build_args}", "__spec_rmbuild_cmd" => "%{___build_cmd}", "__spec_rmbuild_pre" => "%{___build_pre}", "__spec_rmbuild_template" => "#!%{__spec_rmbuild_shell}\n%{__spec_rmbuild_pre}\n%{nil}", "__systemd_someargs_0(:)" => "%{error:The %%%1 macro requires some arguments}", "__sysusers_path" => "^%{_sysusersdir}/.*\\.conf$", "__tar" => "/usr/bin/tar", "__transaction_dbus_announce" => "%{__plugindir}/dbus_announce.so", "__transaction_fsverity" => "%{__plugindir}/fsverity.so", "__transaction_prioreset" => "%{__plugindir}/prioreset.so", "__transaction_syslog" => "%{__plugindir}/syslog.so", "__unzip" => "/usr/bin/unzip", "__urlhelpercmd" => "/usr/bin/curl", "__vsflags" => "0xf0000", "__zstd" => "/usr/bin/zstd", "_annobin_gcc_plugin" => "-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1", "_annotation_cflags" => "%[ \"%{_target_cpu}\" == \"armv7hl\" ? \"\" : \"%{_annotation_plugin}\" ]", "_annotation_plugin" => "%{?_annotated_build:%{expand:%%{_annobin_%{toolchain}_plugin}}}", "_binaries_in_noarch_packages_terminate_build" => "1", "_binary_payload" => "w19.zstdio", "_binfmtdir" => "/usr/lib/binfmt.d", "_build_alias" => "%{_host_alias}", "_build_cpu" => "%{_host_cpu}", "_build_name_fmt" => "%%{ARCH}/%%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm", "_build_vendor" => "%{_host_vendor}", "_buildrootdir" => "%{_topdir}/BUILDROOT", "_changelog_trimage" => "%{expr:2*365*24*60*60}", "_clang_lto_cflags" => "-flto", "_cmake_shared_libs" => "-DBUILD_SHARED_LIBS:BOOL=ON", "_cmake_version" => "3.21.3", "_color_output" => "never", "_configure" => "./configure", "_configure_libtool_hardening_hack" => "1", "_datarootdir" => "%{_prefix}/share", "_dbpath" => "%{_var}/lib/rpm", "_debuginfo_subpackages" => "1", "_debugsource_packages" => "1", "_default_patch_flags" => "--no-backup-if-mismatch -f", "_defaultdocdir" => "%{_datadir}/doc", "_disable_source_fetch" => "1", "_duplicate_files_terminate_build" => "0", "_dwz_low_mem_die_limit" => "10000000", "_dwz_low_mem_die_limit_armv7hl" => "4000000", "_dwz_max_die_limit_armv5tel" => "10000000", "_dwz_max_die_limit_x86_64" => "110000000", "_empty_manifest_terminate_build" => "1", "_environmentdir" => "/usr/lib/environment.d", "_exec_prefix" => "%{_prefix}", "_file_context_file_pre" => "%{_localstatedir}/lib/rpm-state/file_contexts.pre", "_file_custom_defined_booleans_tmp" => "%{_selinux_store_policy_path}/rpmbooleans.custom.tmp", "_find_debuginfo_dwz_opts" => "--run-dwz\\\n --dwz-low-mem-die-limit %{_dwz_limit _dwz_low_mem_die_limit}\\\n --dwz-max-die-limit %{_dwz_limit _dwz_max_die_limit}", "_fixperms" => "%{__chmod} -Rf a+rX,u+w,g-w,o-w", "_fontbasedir" => "/usr/share/fonts", "_fontconfig_masterdir" => "/etc/fonts", "_gcc_lto_cflags" => "-flto=auto -ffat-lto-objects", "_gnu" => "-gnu", "_hardened_cflags" => "%{?_hardened_build:%{_hardening_cflags}}", "_hardening_cflags" => "%{expand:%%{_hardening_%{toolchain}_cflags}} -fstack-protector-strong", "_hardening_gcc_cflags" => "-specs=/usr/lib/rpm/redhat/redhat-hardened-cc1", "_hkp_keyserver" => "http://pgp.mit.edu", "_host" => "x86_64-redhat-linux-gnu", "_host_cpu" => "x86_64", "_host_vendor" => "redhat", "_include_gdb_index" => "1", "_includedir" => "%{_prefix}/include", "_initddir" => "%{_sysconfdir}/rc.d/init.d", "_install_langs" => "all", "_invalid_encoding_terminates_build" => "1", "_ivyxmldir" => "%{_datadir}/ivy-xmls", "_javadir" => "%{_datadir}/java", "_jnidir" => "%{_prefix}/lib/java", "_jvmcommondatadir" => "%{_datadir}/jvm-common", "_jvmcommonsysconfdir" => "%{_sysconfdir}/jvm-common", "_jvmdir" => "%{_prefix}/lib/jvm", "_jvmprivdir" => "%{_prefix}/lib/jvm-private", "_keyring" => "rpmdb", "_keyringsdir" => "%_datadir/keyrings", "_ld_as_needed_flags" => "%{?_ld_as_needed:-Wl,--as-needed}", "_legacy_options" => "%{?_legacy_common_support: -fcommon}", "_libdir" => "%{_prefix}/lib64", "_localstatedir" => "/var", "_make_output_sync" => "%(! %{__make} --version -O >/dev/null 2>&1 || echo -O)", "_mandir" => "%{_datarootdir}/man", "_metainfodir" => "%{_datadir}/metainfo", "_missing_doc_files_terminate_build" => "1", "_modulesloaddir" => "/usr/lib/modules-load.d", "_monogacdir" => "%{_monodir}/gac", "_os" => "linux", "_pam_libdir" => "%{_libdir}", "_pam_secconfdir" => "%{_sysconfdir}/security", "_pkgdocdir" => "%{_docdir}/%{name}", "_pkgverify_level" => "digest", "_preprocessor_defines" => "-Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS", "_pyproject_builddir" => "%{_builddir}%{?buildsubdir:/%{buildsubdir}}/.pyproject-builddir", "_pyproject_modules" => "%{_builddir}/pyproject-modules", "_pyproject_wheeldir" => "%{_builddir}%{?buildsubdir:/%{buildsubdir}}/pyproject-wheeldir", "_python_bytecompile_extra" => "0", "_qt5_epoch" => "0", "_qt5_version" => "5.15.2", "_query_selector_match" => "default", "_rpmdir" => "%{_topdir}/RPMS", "_rpmlock_path" => "%{_dbpath}/.rpm.lock", "_rpmmacrodir" => "%{_rpmconfigdir}/macros.d", "_sbindir" => "%{_exec_prefix}/sbin", "_selinux_store_path" => "/var/lib/selinux", "_set_pytest_addopts" => "%global __pytest_addopts --ignore=%{_pyproject_builddir}", "_sharedstatedir" => "/var/lib", "_smp_build_nthreads" => "%{_smp_build_ncpus}", "_source_filedigest_algorithm" => "8", "_specdir" => "%{_topdir}/SPECS", "_swidtagdir" => "%{_prefix}/lib/swidtag/fedoraproject.org", "_sysconfdir" => "/etc", "_systemd_system_env_generator_dir" => "/usr/lib/systemd/system-environment-generators", "_systemd_util_dir" => "/usr/lib/systemd", "_systemdusergeneratordir" => "/usr/lib/systemd/user-generators", "_target" => "x86_64-linux", "_target_cpu" => "x86_64", "_target_platform" => "%{_target_cpu}-%{_vendor}-%{_target_os}%{?_gnu}", "_texmf" => "/usr/share/texlive/texmf-local", "_texmf_main" => "/usr/share/texlive/texmf-dist", "_texmf_vendor" => "/usr/share/texlive/texmf-dist", "_tmppath" => "%{_var}/tmp", "_transaction_color" => "3", "_udevrulesdir" => "/usr/lib/udev/rules.d", "_unique_debug_names" => "1", "_unitdir" => "/usr/lib/systemd/system", "_urlhelper" => "%{__urlhelpercmd} %{?__urlhelper_localopts} %{?__urlhelper_proxyopts} %{__urlhelperopts}", "_userpresetdir" => "/usr/lib/systemd/user-preset", "_usr" => "/usr", "_var" => "/var", "_vpath_builddir" => "%{_vendor}-%{_target_os}-build", "_vsflags_build" => "%{__vsflags}", "_vsflags_install" => "%{__vsflags}", "_vsflags_rebuilddb" => "0xc0c00", "_warning_options" => "-Wall -Werror=format-security", "alpha" => "alpha alphaev56 alphaev6 alphaev67", "arm" => "%{arm32}", "arm64" => "aarch64", "autopatch(vp:m:M:)" => "%{lua:\nif #arg == 0 then\n local lo = tonumber(rpm.expand(\"%{-m:%{-m*}}\"))\n local hi = tonumber(rpm.expand(\"%{-M:%{-M*}}\"))\n for i, n in ipairs(patch_nums) do\n if ((not lo or n >= lo) and (not hi or n <= hi)) then\n table.insert(arg, n)\n end\n end\nend\nlocal options = rpm.expand(\"%{!-v:-q} %{-p:-p%{-p*}} \")\nlocal bynum = {}\nfor i, p in ipairs(patches) do\n bynum[patch_nums[i]] = p\nend\nfor i, a in ipairs(arg) do\n local p = bynum[a]\n if p then\n print(rpm.expand(\"%__apply_patch -m %{basename:\"..p..\"} \"..options..p..\" \"..i..\"\\n\"))\n else\n macros.error({\"no such patch \"..a})\n end\nend\n}", "autosetup(a:b:cDn:TvNS:p:)" => "\n%setup %{-a} %{-b} %{-c} %{-D} %{-n} %{-T} %{!-v:-q}\n%{-S:%global __scm %{-S*}}\n%{expand:%__scm_setup_%{__scm} %{!-v:-q}}\n%{!-N:%autopatch %{-v} %{-p:-p%{-p*}}}", "bcond_with" => "%{expand:%%{?_with_%{1}:%%global with_%{1} 1}}", "binfmt_apply" => "\n%{expand:%%{?__systemd_someargs_%#:%%__systemd_someargs_%# binfmt_apply}} \n[ -x /usr/lib/systemd/systemd-binfmt ] && /usr/lib/systemd/systemd-binfmt %{?*} || : \n%{nil}", "build_cflags" => "%{optflags}", "build_cxx" => "%{__cxx}", "build_fflags" => "%{optflags} -I%{_fmoddir}", "buildroot" => "%{_buildrootdir}/%{NAME}-%{VERSION}-%{RELEASE}.%{_arch}", "cmake" => "\n%if 0%{?set_build_flags:1} \n %set_build_flags \n%else \n CFLAGS=\"${CFLAGS:-%optflags}\" ; export CFLAGS ; \n CXXFLAGS=\"${CXXFLAGS:-%optflags}\" ; export CXXFLAGS ; \n FFLAGS=\"${FFLAGS:-%optflags%{?_fmoddir: -I%_fmoddir}}\" ; export FFLAGS ; \n FCFLAGS=\"${FCFLAGS:-%optflags%{?_fmoddir: -I%_fmoddir}}\" ; export FCFLAGS ; \n %{?__global_ldflags:LDFLAGS=\"${LDFLAGS:-%__global_ldflags}\" ; export LDFLAGS ;} \n%endif \n %__cmake \\\n %{!?__cmake_in_source_build:-S \"%{_vpath_srcdir}\"} \\\n %{!?__cmake_in_source_build:-B \"%{__cmake_builddir}\"} \\\n -DCMAKE_C_FLAGS_RELEASE:STRING=\"-DNDEBUG\" \\\n -DCMAKE_CXX_FLAGS_RELEASE:STRING=\"-DNDEBUG\" \\\n -DCMAKE_Fortran_FLAGS_RELEASE:STRING=\"-DNDEBUG\" \\\n -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \\\n -DCMAKE_INSTALL_DO_STRIP:BOOL=OFF \\\n -DCMAKE_INSTALL_PREFIX:PATH=%{_prefix} \\\n -DINCLUDE_INSTALL_DIR:PATH=%{_includedir} \\\n -DLIB_INSTALL_DIR:PATH=%{_libdir} \\\n -DSYSCONF_INSTALL_DIR:PATH=%{_sysconfdir} \\\n -DSHARE_INSTALL_PREFIX:PATH=%{_datadir} \\\n%if \"%{?_lib}\" == \"lib64\" \n %{?_cmake_lib_suffix64} \\\n%endif \n %{?_cmake_shared_libs}", "cmake3_build" => "%cmake_build", "cmake_build" => "\n %__cmake --build \"%{__cmake_builddir}\" %{?_smp_mflags} --verbose", "configure" => "\n %{set_build_flags}; \n [ \"%{_lto_cflags}\"x != x ] && %{_fix_broken_configure_for_lto}; \n [ \"%_configure_gnuconfig_hack\" = 1 ] && for i in $(find $(dirname %{_configure}) -name config.guess -o -name config.sub) ; do \n [ -f /usr/lib/rpm/redhat/$(basename $i) ] && %{__rm} -f $i && %{__cp} -fv /usr/lib/rpm/redhat/$(basename $i) $i ; \n done ; \n [ \"%_configure_libtool_hardening_hack\" = 1 ] && [ x != \"x%{_hardened_ldflags}\" ] && \n for i in $(find . -name ltmain.sh) ; do \n %{__sed} -i.backup -e 's~compiler_flags=$~compiler_flags=\"%{_hardened_ldflags}\"~' $i \n done ; \n %{_configure} --build=%{_build} --host=%{_host} \\\n\t--program-prefix=%{?_program_prefix} \\\n\t--disable-dependency-tracking \\\n\t%{?_configure_disable_silent_rules:--disable-silent-rules} \\\n\t--prefix=%{_prefix} \\\n\t--exec-prefix=%{_exec_prefix} \\\n\t--bindir=%{_bindir} \\\n\t--sbindir=%{_sbindir} \\\n\t--sysconfdir=%{_sysconfdir} \\\n\t--datadir=%{_datadir} \\\n\t--includedir=%{_includedir} \\\n\t--libdir=%{_libdir} \\\n\t--libexecdir=%{_libexecdir} \\\n\t--localstatedir=%{_localstatedir} \\\n\t--sharedstatedir=%{_sharedstatedir} \\\n\t--mandir=%{_mandir} \\\n\t--infodir=%{_infodir}", "ctest(:-:)" => "\n cd \"%{__cmake_builddir}\" \n %__ctest --output-on-failure --force-new-ctest-process %{?_smp_mflags} %{**} \n cd -", "debug_package" => "\n%ifnarch noarch\n%global __debug_package 1\n%_debuginfo_template\n%{?_debugsource_packages:%_debugsource_template}\n%endif\n%{nil}", "define" => "<builtin>", "dirname" => "<builtin>", "dnl" => "<builtin>", "echo" => "<builtin>", "efi_alt_arch" => "%{expand:%{_efi_srpm_macros_setup}}%{?_efi_alt_arch}%{nil}", "efi_arch" => "%{expand:%{_efi_srpm_macros_setup}}%{_efi_arch}", "efi_build_requires" => "bash coreutils", "efi_esp_dir" => "%{expand:%{_efi_srpm_macros_setup}}%{efi_esp_efi}/%{efi_vendor}", "efi_esp_root" => "/boot/efi", "efi_has_arch" => "%{expand:%{_efi_srpm_macros_setup}}0%{_efi_has_arch}", "efi_vendor" => "%{expand:%{_efi_srpm_macros_setup}}%{expand:%{_efi_vendor}}", "exists" => "<builtin>", "expr" => "<builtin>", "extension_cxxflags" => "%{__extension_strip_flags cxxflags}", "extension_ldflags" => "%{__extension_strip_flags ldflags}", "fedora" => "35", "filter_from_requires" => "%{expand: \n%global __filter_from_req %{?__filter_from_req} | %{__sed} -e '%*' \n}", "filter_requires_in(P)" => "%{expand: \n%global __filter_req_cmd %{?__filter_req_cmd} %{__grep} -v %{-P} '%*' | \n}", "find_lang" => "%{_rpmconfigdir}/find-lang.sh %{buildroot}", "fontcontact" => "fonts@lists.fedoraproject.org", "fontmetapkg(n:s:d:z:)" => "%{lua:\nlocal fonts = require \"fedora.srpm.fonts\"\nlocal name = rpm.expand(\"%{?-n*}\")\nlocal summary = rpm.expand(\"%{?-s*}\")\nif (summary ~= \"\") then\n summary = \"%{\" .. summary .. \"}\"\nend\nlocal description = rpm.expand(\"%{?-d*}\")\nif (description ~= \"\") then\n description = \"%{\" .. description .. \"}\"\nend\nlocal suffixes = rpm.expand(\"%{?-z*}\")\nfonts.metapkg(name, summary, description, suffixes)\n}", "fontpkg(z:avms)" => "%{lua:\nlocal fonts = require \"fedora.srpm.fonts\"\nlocal suffix = rpm.expand(\"%{?-z*}\")\nlocal processall = (rpm.expand(\"%{-a}\") ~= \"\") and (rpm.expand(\"%{-z}\") == \"\")\nlocal verbose = (rpm.expand(\"%{-v}\") ~= \"\")\nlocal forcemain = (rpm.expand(\"%{-m}\") ~= \"\")\nlocal forcesub = (rpm.expand(\"%{-s}\") ~= \"\")\nfonts.pkg(forcemain, forcesub, suffix, processall, verbose)\n}", "forgeautosetup(z:vNS:p:q)" => "%{lua:\nprint(rpm.expand(\"%autosetup %{-v} %{-N} %{?-S} %{?-p} %{?forgesetupargs\" .. rpm.expand(\"%{-z*}\") .. \"}\\n\"))\n}", "forgesetup(z:va)" => "%{lua:\nlocal fedora = require \"fedora.common\"\nif (rpm.expand(\"%{-z}\") == \"\") and (rpm.expand(\"%{-a}\") ~= \"\") then\n for _,s in pairs(fedora.getsuffixes(\"forgesetupargs\")) do\n print(rpm.expand(\"%setup %{!-v:-q} %{?forgesetupargs\" .. s .. \"}\\n\"))\n end\nelse\n print( rpm.expand(\"%setup %{!-v:-q} %{?forgesetupargs\" .. rpm.expand(\"%{-z*}\") .. \"}\\n\"))\nend\n}", "gccgo_arches" => "mips mipsel mipsr6 mipsr6el mips64 mips64el mips64r6 mips64r6el", "getconfdir" => "<builtin>", "getncpus" => "<builtin>", "ghc_arches_with_ghci" => "%{ix86} x86_64 armv7hl ppc64 ppc64le aarch64 s390 s390x %{mips}", "global" => "<builtin>", "go_compiler" => "1", "goaltfiles(z:av)" => "%{lua:\nlocal go = require \"fedora.srpm.go\"\nlocal suffix = rpm.expand(\"%{-z*}\")\nlocal processall = (rpm.expand(\"%{-a}\") ~= \"\") and (rpm.expand(\"%{-z}\") == \"\")\nlocal verbose = (rpm.expand(\"%{-v}\") ~= \"\")\ngo.files(\"alt\", suffix, processall, verbose)\n}", "goaltpkg(z:av)" => "%{lua:\nlocal go = require \"fedora.srpm.go\"\nlocal suffix = rpm.expand(\"%{-z*}\")\nlocal processall = (rpm.expand(\"%{-a}\") ~= \"\") and (rpm.expand(\"%{-z}\") == \"\")\nlocal verbose = (rpm.expand(\"%{-v}\") ~= \"\")\ngo.pkg(\"alt\", suffix, processall, verbose)\n}", "gobuildflags" => "%{expand:%{gocompilerflags} -tags=\\\"rpm_crashtraceback \\\" -ldflags \\\"${LDFLAGS:-} %{?currentgoldflags} -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \\n') -compressdwarf=false -extldflags '%__global_ldflags %{?__golang_extldflags}'\\\" -a -v -x}", "gocheck(z:ai:b:s:vd:t:rV:T:C:B:p:g:w)" => "%{lua:\nlocal fedora = require \"fedora.common\"\nlocal processall = (rpm.expand(\"%{-a}\") ~= \"\") and (rpm.expand(\"%{-z}\") == \"\")\nlocal myenvflags = rpm.expand('%{?-i} %{?-v} %{?-V} %{?-T} %{?-C} %{?-B}')\nlocal mycheckflags = rpm.expand('%{!-i:-i \"%%{currentgoipath}\" }' ..\n '%{!-b:-b \"%%{gobuilddir}/bin\" }' ..\n '%{!-s:-s \"%%{gobuilddir}\" }' ..\n '%{!-V:-V \"%{version}-%{release}\" }' ..\n '%{!-T:%%{?currenttag: -T \"%%{?currenttag}\" }}' ..\n '%{!-C:%%{?currentcommit: -C \"%%{?currentcommit}\" }}' ..\n '%{!-B:%%{?currentbranch: -B \"%%{?currentbranch}\" }}' ..\n '%{!-p:-p \"%{buildroot}\" }' ..\n '%{!-g:-g \"%{gopath}\" }' ..\n '%{?gocheckflags} %{?**}')", "gochecks(z:ai:b:s:vd:t:rV:T:C:B:p:g:w)" => "%{expand:\n%{warn:%%gochecks is obsolete, use %%gocheck in %%check instead!}\n%gocheck %{-z} %{-a} %{-i} %{-b} %{-s} %{-v} %{-d} %{-t} %{-r} %{-V} %{-T} %{-C} %{-B} %{-p} %{-g} %{-w}\n}", "gocompilerflags" => "-buildmode pie -compiler gc", "godevelfiles(z:av)" => "%{lua:\nlocal go = require \"fedora.srpm.go\"\nlocal suffix = rpm.expand(\"%{-z*}\")\nlocal processall = (rpm.expand(\"%{-a}\") ~= \"\") and (rpm.expand(\"%{-z}\") == \"\")\nlocal verbose = (rpm.expand(\"%{-v}\") ~= \"\")\ngo.files(\"devel\", suffix, processall, verbose)\n}", "godevelpkg(z:av)" => "%{lua:\nlocal go = require \"fedora.srpm.go\"\nlocal suffix = rpm.expand(\"%{-z*}\")\nlocal processall = (rpm.expand(\"%{-a}\") ~= \"\") and (rpm.expand(\"%{-z}\") == \"\")\nlocal verbose = (rpm.expand(\"%{-v}\") ~= \"\")\ngo.pkg(\"devel\", suffix, processall, verbose)\n}", "gofilelist" => "devel.file-list", "goinstall(z:ai:b:s:o:O:ve:d:t:rV:T:C:B:p:g:)" => "%{lua:\nlocal fedora = require \"fedora.common\"\nlocal processall = (rpm.expand(\"%{-a}\") ~= \"\") and (rpm.expand(\"%{-z}\") == \"\")\nlocal myenvflags = rpm.expand('%{?-i} %{?-v} %{?-V} %{?-T} %{?-C} %{?-B}')\nlocal myinstallflags = rpm.expand('%{!-i:-i \"%%{currentgoipath}\" }' ..\n '%{!-b:-b \"%%{gobuilddir}/bin\" }' ..\n '%{!-s:-s \"%%{gobuilddir}\" }' ..\n '%{!-o:-o \"%%{thisgofilelist}\" }' ..\n '%{!-O:-O \"%%{goworkdir}\" }' ..\n '%{!-V:-V \"%{version}-%{release}\" }' ..\n '%{!-T:%%{?currenttag: -T \"%%{?currenttag}\" }}' ..\n '%{!-C:%%{?currentcommit: -C \"%%{?currentcommit}\" }}' ..\n '%{!-B:%%{?currentbranch: -B \"%%{?currentbranch}\" }}' ..\n '%{!-p:-p \"%{buildroot}\" }' ..\n '%{!-g:-g \"%{gopath}\" }' ..\n '%{?goinstallflags} %{?**}')", "golang_arches" => "i386 i486 i586 i686 pentium3 pentium4 athlon geode x86_64 armv3l armv4b armv4l armv4tl armv5tl armv5tel armv5tejl armv6l armv6hl armv7l armv7hl armv7hnl armv8l armv8hl armv8hnl armv8hcnl aarch64 ppc64le s390x", "gomkdir(z:i:b:s:kv)" => "%{expand:\n%goenv %{?-z} %{?-i} %{?-v}\n%define mybuilddir %{?-b*}%{!-b:%{gobuilddir}}\n%define mygoipath %{?-i*}%{!-i:%{currentgoipath}}\n%define mysourcedir %{?-s*}%{!-s:%{currentgosourcedir}}\n%{!?-k:rm -fr \"%{mysourcedir}/vendor\"}\nif [[ ! -e \"%{mybuilddir}/bin\" ]] ; then\n install -m 0755 -vd \"%{mybuilddir}/bin\"\n export GOPATH=\"%{mybuilddir}:${GOPATH:+${GOPATH}:}%{?gopath}\"\nfi\nif [[ ! -e \"%{mybuilddir}/src/%{mygoipath}\" ]] ; then\n install -m 0755 -vd \"$(dirname %{mybuilddir}/src/%{mygoipath})\"\n ln -fs \"%{mysourcedir}\" \"%{mybuilddir}/src/%{mygoipath}\"\nfi\ncd \"%{mybuilddir}/src/%{mygoipath}\"\n}", "gopath" => "/usr/share/gocode", "gopkgfiles(av)" => "%{expand:\n%godevelfiles -a %{-v}\n%goaltfiles -a %{-v}\n}", "goprep(z:ai:b:s:kerv)" => "%{lua:\nlocal fedora = require \"fedora.common\"\nlocal extract = (rpm.expand(\"%{-e}\") == \"\")\nlocal installdeps = (rpm.expand(\"%{-r}\") == \"\")\nlocal processall = (rpm.expand(\"%{-a}\") ~= \"\") and (rpm.expand(\"%{-z}\") == \"\")\nlocal setupflags = rpm.expand(\"%{!-v:-q}\")\nlocal gomkdirflags = rpm.expand(\"%{?-i} %{?-b} %{?-s} %{-k} %{-v}\")\nlocal buildrequires = {}\nlocal function process(suffix)\n local zsuffix = \"\"\n if (suffix ~= \"\") and (suffix ~= nil) then\n zsuffix = \"-z \" .. suffix .. \" \"\n end\n if extract then\n print(rpm.expand(\"%setup \" .. setupflags .. \" %{?forgesetupargs\" .. suffix .. \"}\\n\"))\n end\n print( rpm.expand(\"%gomkdir \" .. zsuffix .. gomkdirflags .. \"\\n\"))\nend", "goprovflags" => "%{godefaultflags}", "gorpmname(c:)" => "%{lua:\nlocal go = require \"fedora.srpm.go\"\nprint(go.rpmname(\"%1\", \"%{-c*}\"))\n}", "gotestextldflags" => "%__global_ldflags %{?__golang_extldflags}", "gpgverify(k:s:d:)" => "%{lua:\nlocal script = rpm.expand(\"%{_rpmconfigdir}/redhat/gpgverify \")\nlocal keyring = rpm.expand(\"%{-k*}\")\nlocal signature = rpm.expand(\"%{-s*}\")\nlocal data = rpm.expand(\"%{-d*}\")\nprint(script)\nif keyring ~= \"\" then\n print(rpm.expand(\"--keyring='%{SOURCE\" .. keyring .. \"}' \"))\nend\nif signature ~= \"\" then\n print(rpm.expand(\"--signature='%{SOURCE\" .. signature .. \"}' \"))\nend\nif data ~= \"\" then\n print(rpm.expand(\"--data='%{SOURCE\" .. data .. \"}' \"))\nend\n}", "ix86" => "i386 i486 i586 i686 pentium3 pentium4 athlon geode", "java" => "%(. /usr/share/java-utils/java-functions; set_javacmd; echo $JAVACMD)", "javac" => "%{java_home}/bin/javac", "journal_catalog_update" => "%{nil}", "kernel_arches" => "x86_64 s390x ppc64le aarch64 %{arm}", "ldconfig_post(n:)" => "%{?ldconfig:%post -p %ldconfig %{?*} %{-n:-n %{-n*}}\n%end}", "ldconfig_scriptlets(n:)" => "%{?ldconfig:\n%ldconfig_post %{?*} %{-n:-n %{-n*}}\n%ldconfig_postun %{?*} %{-n:-n %{-n*}}\n}", "listfiles(i:x:)" => "%{expand:\n%if %{lua: print(string.len(rpm.expand(\"%{?-i*}%{?listfiles_include}%*\")))}\n listfiles_include=$(realpath -e --relative-base=. %{?-i*} %{?listfiles_include} %* | sort -u)\n %if %{lua: print(string.len(rpm.expand(\"%{?-x*}%{?listfiles_exclude}\")))}\n while IFS= read -r finc ; do\n realpath -qe --relative-base=. %{?-x*} %{?listfiles_exclude} \\\n | sort -u | grep -q \"${finc}\" || echo \"${finc}\"\n done <<< \"${listfiles_include}\"\n %else\n echo \"${listfiles_include}\"\n %endif\n%endif\n}", "lua" => "<builtin>", "lua_version" => "%{lua: print(string.sub(_VERSION, 5))}", "make_build" => "%{__make} %{_make_output_sync} %{?_smp_mflags} %{_make_verbose}", "makeinstall" => "\n echo \"warning: %%makeinstall is deprecated, try %%make_install instead\" 1>&2\n %{__make} \\\n\tprefix=%{?buildroot:%{buildroot}}%{_prefix} \\\n\texec_prefix=%{?buildroot:%{buildroot}}%{_exec_prefix} \\\n\tbindir=%{?buildroot:%{buildroot}}%{_bindir} \\\n\tsbindir=%{?buildroot:%{buildroot}}%{_sbindir} \\\n\tsysconfdir=%{?buildroot:%{buildroot}}%{_sysconfdir} \\\n\tdatadir=%{?buildroot:%{buildroot}}%{_datadir} \\\n\tincludedir=%{?buildroot:%{buildroot}}%{_includedir} \\\n\tlibdir=%{?buildroot:%{buildroot}}%{_libdir} \\\n\tlibexecdir=%{?buildroot:%{buildroot}}%{_libexecdir} \\\n\tlocalstatedir=%{?buildroot:%{buildroot}}%{_localstatedir} \\\n\tsharedstatedir=%{?buildroot:%{buildroot}}%{_sharedstatedir} \\\n\tmandir=%{?buildroot:%{buildroot}}%{_mandir} \\\n\tinfodir=%{?buildroot:%{buildroot}}%{_infodir} \\\n install", "meson_build" => "\n %{shrink:%{__meson} compile \n -C %{_vpath_builddir} \n -j %{_smp_build_ncpus} \n --verbose \n %{nil}}", "meson_test" => "\n %{shrink:%{__meson} test \n -C %{_vpath_builddir} \n --num-processes %{_smp_build_ncpus} \n --print-errorlogs \n %{nil}}", "mips32" => "mips mipsel mipsr6 mipsr6el", "mipseb" => "mips mipsr6 mips64 mips64r6", "mono_arches" => "%{ix86} x86_64 sparc sparcv9 ia64 %{arm} aarch64 alpha s390x ppc ppc64 ppc64le", "nil" => "%{!?nil}", "ninja_build" => "\n %{__ninja} %{__ninja_common_opts}", "ninja_test" => "\n %{__ninja} test %{__ninja_common_opts}", "nodejs_default_filter" => "%{expand: \n%global __provides_exclude_from ^%{nodejs_sitearch}/.*\\.node$\n}", "nodejs_fixdep" => "%{_rpmconfigdir}/nodejs-fixdep", "nodejs_sitearch" => "%{nodejs_sitelib}", "nodejs_symlink_deps" => "%{_rpmconfigdir}/nodejs-symlink-deps %{nodejs_sitelib}", "ocaml_natdynlink" => "aarch64 %{arm} %{ix86} ppc ppc64 ppc64le riscv64 s390x sparc sparcv9 x86_64", "ocaml_native_profiling" => "%{nil}", "optflags" => "%{__global_compiler_flags} -m64 %{__cflags_arch_x86_64} -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection", "pkgconfig_personalitydir" => "/usr/share/pkgconfig/personality.d", "py2_build" => "%{expand:\\\n sleep 1\n CFLAGS=\"${CFLAGS:-${RPM_OPT_FLAGS}}\" LDFLAGS=\"${LDFLAGS:-${RPM_LD_FLAGS}}\"\\\n %{__python2} %{py_setup} %{?py_setup_args} build --executable=\"%{__python2} %{py2_shbang_opts}\" %{?*}\n sleep 1\n}", "py2_build_wheel" => "%{expand:\\\n sleep 1\n CFLAGS=\"${CFLAGS:-${RPM_OPT_FLAGS}}\" LDFLAGS=\"${LDFLAGS:-${RPM_LD_FLAGS}}\"\\\n %{__python2} %{py_setup} %{?py_setup_args} bdist_wheel %{?*}\n sleep 1\n}", "py2_install" => "%{expand:\\\n CFLAGS=\"${CFLAGS:-${RPM_OPT_FLAGS}}\" LDFLAGS=\"${LDFLAGS:-${RPM_LD_FLAGS}}\"\\\n %{__python2} %{py_setup} %{?py_setup_args} install -O1 --skip-build --root %{buildroot} %{?*}\n rm -rfv %{buildroot}%{_bindir}/__pycache__\n}", "py2_install_wheel" => "%{expand:\\\n %{__python2} -m pip install -I dist/%{1} --root %{buildroot} --no-deps --no-index --no-warn-script-location\n rm -rfv %{buildroot}%{_bindir}/__pycache__\n for distinfo in %{buildroot}%{python2_sitelib}/*.dist-info %{buildroot}%{python2_sitearch}/*.dist-info; do\n if [ -f ${distinfo}/direct_url.json ]; then\n rm -fv ${distinfo}/direct_url.json\n sed -i '/direct_url.json/d' ${distinfo}/RECORD\n fi\n done\n}", "py2_shbang_opts_nodash" => "%(opts=%{py2_shbang_opts}; echo ${opts#-})", "py2_shebang_flags" => "%(opts=%{py2_shbang_opts}; echo ${opts#-})", "py3_build_egg" => "%{expand:\\\n CFLAGS=\"${CFLAGS:-${RPM_OPT_FLAGS}}\" LDFLAGS=\"${LDFLAGS:-${RPM_LD_FLAGS}}\"\\\n %{__python3} %{py_setup} %{?py_setup_args} bdist_egg %{?*}\n}", "py3_check_import(e:tf:)" => "%{expand:\\\n PATH=\"%{buildroot}%{_bindir}:$PATH\"\\\n PYTHONPATH=\"${PYTHONPATH:-%{buildroot}%{python3_sitearch}:%{buildroot}%{python3_sitelib}}\"\\\n _PYTHONSITE=\"%{buildroot}%{python3_sitearch}:%{buildroot}%{python3_sitelib}\"\\\n PYTHONDONTWRITEBYTECODE=1\\\n %{lua:\n local command = \"%{__python3} \"\n if rpm.expand(\"%{?py3_shebang_flags}\") ~= \"\" then\n command = command .. \"-%{py3_shebang_flags}\"\n end\n command = command .. \" %{_rpmconfigdir}/redhat/import_all_modules.py \"\n -- handle multiline arguments correctly, see https://bugzilla.redhat.com/2018809\n local args=rpm.expand('%{?**}'):gsub(\"[%s\\\\]*%s+\", \" \")\n print(command .. args)\n }\n}", "py3_install" => "%{expand:\\\n CFLAGS=\"${CFLAGS:-${RPM_OPT_FLAGS}}\" LDFLAGS=\"${LDFLAGS:-${RPM_LD_FLAGS}}\"\\\n %{__python3} %{py_setup} %{?py_setup_args} install -O1 --skip-build --root %{buildroot} %{?*}\n rm -rfv %{buildroot}%{_bindir}/__pycache__\n}", "py3_install_wheel" => "%{expand:\\\n %{__python3} -m pip install -I dist/%{1} --root %{buildroot} --no-deps --no-index --no-warn-script-location\n rm -rfv %{buildroot}%{_bindir}/__pycache__\n for distinfo in %{buildroot}%{python3_sitelib}/*.dist-info %{buildroot}%{python3_sitearch}/*.dist-info; do\n if [ -f ${distinfo}/direct_url.json ]; then\n rm -fv ${distinfo}/direct_url.json\n sed -i '/direct_url.json/d' ${distinfo}/RECORD\n fi\n done\n}", "py3_shbang_opts_nodash" => "%(opts=%{py3_shbang_opts}; echo ${opts#-})", "py3_shebang_flags" => "%(opts=%{py3_shbang_opts}; echo ${opts#-})", "py_auto_byte_compile" => "1", "py_build_egg" => "%{expand:\\\n CFLAGS=\"${CFLAGS:-${RPM_OPT_FLAGS}}\" LDFLAGS=\"${LDFLAGS:-${RPM_LD_FLAGS}}\"\\\n %{__python} %{py_setup} %{?py_setup_args} bdist_egg %{?*}\n}", "py_byte_compile" => "\npy2_byte_compile () {\n python_binary=\"env PYTHONHASHSEED=0 %1\"\n bytecode_compilation_path=\"%2\"\n failure=0\n find $bytecode_compilation_path -type f -a -name \"*.py\" -print0 | xargs -0 $python_binary -s -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition(\"'\"$RPM_BUILD_ROOT\"'\")[2], doraise=True) for f in sys.argv[1:]]' || failure=1\n find $bytecode_compilation_path -type f -a -name \"*.py\" -print0 | xargs -0 $python_binary -s -O -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition(\"'\"$RPM_BUILD_ROOT\"'\")[2], doraise=True) for f in sys.argv[1:]]' || failure=1\n test $failure -eq 0\n}\n\npy3_byte_compile () {\n python_binary=\"env PYTHONHASHSEED=0 %1\"\n bytecode_compilation_path=\"%2\"\n PYTHONPATH=\"%{_rpmconfigdir}/redhat\" $python_binary -s -B -m compileall2 -o 0 -o 1 -s $RPM_BUILD_ROOT -p / $bytecode_compilation_path \n}\n\npy39_byte_compile () {\n python_binary=\"env PYTHONHASHSEED=0 %1\"\n bytecode_compilation_path=\"%2\"\n $python_binary -s -B -m compileall -o 0 -o 1 -s $RPM_BUILD_ROOT -p / $bytecode_compilation_path \n}\n\n# Path to intepreter should not contain any arguments \n[[ \"%1\" =~ \" -\" ]] && echo \"ERROR py_byte_compile: Path to interpreter should not contain any arguments\" >&2 && exit 1 \n# Get version without a dot (36 instead of 3.6), bash doesn't compare floats well \npython_version=$(%1 -c \"import sys; sys.stdout.write('{0.major}{0.minor}'.format(sys.version_info))\") \n# compileall2 is an enhanced fork of stdlib compileall module for Python >= 3.4 \n# and it was merged back to stdlib in Python >= 3.9 \nif [ \"$python_version\" -ge 39 ]; then \npy39_byte_compile \"%1\" \"%2\"; \nelif [ \"$python_version\" -ge 34 ]; then \npy3_byte_compile \"%1\" \"%2\"; \nelse \npy2_byte_compile \"%1\" \"%2\"; \nfi", "py_dist_name" => "%{lua:\n name = rpm.expand(\"%{?1:%{1}}\");\n canonical = string.gsub(string.lower(name), \"[^%w%[%]]+\", \"-\");\n print(canonical);\n}", "py_install_egg" => "%{expand:\\\n mkdir -p %{buildroot}%{python_sitelib}\n %{__python} -m easy_install -m --prefix %{buildroot}%{_prefix} -Z dist/*-py%{python_version}.egg %{?*}\n rm -rfv %{buildroot}%{_bindir}/__pycache__\n}", "py_provides" => "%{lua:\n local python = require 'fedora.srpm.python'\n local name = rpm.expand('%1')\n if name == '%1' then\n rpm.expand('%{error:%%py_provides requires at least 1 argument, the name to provide}')\n end\n local evr = rpm.expand('%2')\n if evr == '%2' then\n evr = rpm.expand('%{?epoch:%{epoch}:}%{version}-%{release}')\n end\n print('Provides: ' .. name .. ' = ' .. evr .. '\\n')\n local provides = python.python_altprovides(name, evr)\n for i, provide in ipairs(provides) do\n print('Provides: ' .. provide .. '\\n')\n end\n}", "py_shbang_opts" => "-s", "py_shebang_fix" => "%{expand:\\\n if [ -f /usr/bin/pathfix%{python_version}.py ]; then\n pathfix=/usr/bin/pathfix%{python_version}.py\n else\n # older versions of Python don't have it and must BR /usr/bin/pathfix.py from python3-devel explicitly\n pathfix=/usr/bin/pathfix.py\n fi\n if [ -z \"%{?py_shebang_flags}\" ]; then\n shebang_flags=\"-k\"\n else\n shebang_flags=\"-ka%{py_shebang_flags}\"\n fi\n $pathfix -pni %{__python} $shebang_flags}", "pycached" => "%{lua:\n path = rpm.expand(\"%{?*}\")\n if (string.sub(path, \"-3\") ~= \".py\") then\n rpm.expand(\"%{error:%%pycached can only be used with paths explicitly ending with .py}\")\n else\n print(path)\n pyminor = path:match(\"/python3.(%d+)/\") or \"*\"\n dirname = path:match(\"(.*/)\")\n modulename = path:match(\".*/([^/]+).py\")\n print(\"\\n\" .. dirname .. \"__pycache__/\" .. modulename .. \".cpython-3\" .. pyminor .. \"{,.opt-?}.pyc\")\n end\n}", "pyproject_buildrequires(rxtNe:)" => "%{expand:\\\n%{-N:\n%{-r:%{error:The -N and -r options are mutually exclusive}}\n%{-x:%{error:The -N and -x options are mutually exclusive}}\n%{-e:%{error:The -N and -e options are mutually exclusive}}\n%{-t:%{error:The -N and -t options are mutually exclusive}}\n}\n%{-e:%{expand:%global toxenv %(%{__python3} -s %{_rpmconfigdir}/redhat/pyproject_construct_toxenv.py %{?**})}}\necho 'python%{python3_pkgversion}-devel'\necho 'python%{python3_pkgversion}dist(pip) >= 19'\necho 'python%{python3_pkgversion}dist(packaging)'\n%{!-N:if [ -f pyproject.toml ]; then\n echo 'python%{python3_pkgversion}dist(toml)'\nelif [ -f setup.py ]; then\n # Note: If the default requirements change, also change them in the script!\n echo 'python%{python3_pkgversion}dist(setuptools) >= 40.8'\n echo 'python%{python3_pkgversion}dist(wheel)'\nelse\n echo 'ERROR: Neither pyproject.toml nor setup.py found, consider using %%%%pyproject_buildrequires -N <requirements-file> if this is not a Python package.' >&2\n exit 1\nfi}\n# setuptools assumes no pre-existing dist-info\nrm -rfv *.dist-info/ >&2\nif [ -f %{__python3} ]; then\n RPM_TOXENV=\"%{toxenv}\" HOSTNAME=\"rpmbuild\" %{__python3} -s %{_rpmconfigdir}/redhat/pyproject_buildrequires.py %{?!_python_no_extras_requires:--generate-extras} --python3_pkgversion %{python3_pkgversion} %{?**}\nfi\n}", "pyproject_extras_subpkg(n:i:f:F)" => "%{expand:%{?python_extras_subpkg:%{python_extras_subpkg%{?!-i:%{?!-f:%{?!-F: -f %{_pyproject_ghost_distinfo}}}} %**}}}", "pyproject_install" => "%{expand:\\\nspecifier=$(ls %{_pyproject_wheeldir}/*.whl | xargs basename --multiple | sed -E 's/([^-]+)-([^-]+)-.+\\.whl/\\1==\\2/')\nTMPDIR=\"%{_pyproject_builddir}\" %{__python3} -m pip install --root %{buildroot} --no-deps --disable-pip-version-check --progress-bar off --verbose --ignore-installed --no-warn-script-location --no-index --no-cache-dir --find-links %{_pyproject_wheeldir} $specifier\nif [ -d %{buildroot}%{_bindir} ]; then\n %py3_shebang_fix %{buildroot}%{_bindir}/*\n rm -rfv %{buildroot}%{_bindir}/__pycache__\nfi\nrm -f %{_pyproject_ghost_distinfo}\nsite_dirs=()\n# Process %%{python3_sitelib} if exists\nif [ -d %{buildroot}%{python3_sitelib} ]; then\n site_dirs+=( \"%{python3_sitelib}\" )\nfi\n# Process %%{python3_sitearch} if exists and does not equal to %%{python3_sitelib}\nif [ %{buildroot}%{python3_sitearch} != %{buildroot}%{python3_sitelib} ] && [ -d %{buildroot}%{python3_sitearch} ]; then\n site_dirs+=( \"%{python3_sitearch}\" )\nfi\n# Process all *.dist-info dirs in sitelib/sitearch\nfor site_dir in ${site_dirs[@]}; do\n for distinfo in %{buildroot}$site_dir/*.dist-info; do\n echo \"%ghost ${distinfo#%{buildroot}}\" >> %{_pyproject_ghost_distinfo}\n sed -i 's/pip/rpm/' ${distinfo}/INSTALLER\n PYTHONPATH=%{_rpmconfigdir}/redhat \\\n %{__python3} -B %{_rpmconfigdir}/redhat/pyproject_preprocess_record.py \\\n --buildroot %{buildroot} --record ${distinfo}/RECORD --output %{_pyproject_record}\n rm -fv ${distinfo}/RECORD\n rm -fv ${distinfo}/REQUESTED\n done\ndone\nlines=$(wc -l %{_pyproject_ghost_distinfo} | cut -f1 -d\" \")\nif [ $lines -ne 1 ]; then\n echo -e \"\\n\\nWARNING: %%%%pyproject_extras_subpkg won't work without explicit -i or -F, found $lines dist-info directories.\\n\\n\" >&2\n rm %{_pyproject_ghost_distinfo} # any attempt to use this will fail\nfi\n}", "pyproject_wheel" => "%{expand:\\\n%_set_pytest_addopts\nmkdir -p \"%{_pyproject_builddir}\"\nCFLAGS=\"${CFLAGS:-${RPM_OPT_FLAGS}}\" LDFLAGS=\"${LDFLAGS:-${RPM_LD_FLAGS}}\" TMPDIR=\"%{_pyproject_builddir}\" \\\n%{__python3} -m pip wheel --wheel-dir %{_pyproject_wheeldir} --no-deps --use-pep517 --no-build-isolation --disable-pip-version-check --no-clean --progress-bar off --verbose .\n}", "python" => "%__python", "python2_platform" => "%(%{__python2} -Esc \"import sysconfig; print(sysconfig.get_platform())\")", "python2_sitelib" => "%(%{__python2} -Esc \"from distutils.sysconfig import get_python_lib; print(get_python_lib())\")", "python2_version_nodots" => "%(%{__python2} -Esc \"import sys; sys.stdout.write('{0.major}{0.minor}'.format(sys.version_info))\")", "python3_ext_suffix" => "%(%{__python3} -Ic \"import sysconfig; print(sysconfig.get_config_var('EXT_SUFFIX'))\")", "python3_platform" => "%(%{__python3} -Ic \"import sysconfig; print(sysconfig.get_platform())\")", "python3_sitearch" => "%(%{__python3} -Ic \"import sysconfig; print(sysconfig.get_path('platlib'))\")", "python3_version" => "%(%{__python3} -Ic \"import sys; sys.stdout.write('{0.major}.{0.minor}'.format(sys.version_info))\")", "python_disable_dependency_generator" => "\n%undefine __pythondist_requires \n%{nil}", "python_extras_subpkg(n:i:f:F)" => "%{expand:%{lua:\n local option_n = '-n (name of the base package)'\n local option_i = '-i (buildroot path to metadata)'\n local option_f = '-f (builddir path to a filelist)'\n local option_F = '-F (skip %%files section)'\n local value_n = rpm.expand('%{-n*}')\n local value_i = rpm.expand('%{-i*}')\n local value_f = rpm.expand('%{-f*}')\n local value_F = rpm.expand('%{-F}')\n local args = rpm.expand('%{*}')\n if value_n == '' then\n rpm.expand('%{error:%%%0: missing option ' .. option_n .. '}')\n end\n if value_i == '' and value_f == '' and value_F == '' then\n rpm.expand('%{error:%%%0: missing option ' .. option_i .. ' or ' .. option_f .. ' or ' .. option_F .. '}')\n end\n if value_i ~= '' and value_f ~= '' then\n rpm.expand('%{error:%%%0: simultaneous ' .. option_i .. ' and ' .. option_f .. ' options are not possible}')\n end\n if value_i ~= '' and value_F ~= '' then\n rpm.expand('%{error:%%%0: simultaneous ' .. option_i .. ' and ' .. option_F .. ' options are not possible}')\n end\n if value_f ~= '' and value_F ~= '' then\n rpm.expand('%{error:%%%0: simultaneous ' .. option_f .. ' and ' .. option_F .. ' options are not possible}')\n end\n if args == '' then\n rpm.expand('%{error:%%%0 requires at least one argument with \"extras\" name}')\n end\n local requires = 'Requires: ' .. value_n .. ' = %{?epoch:%{epoch}:}%{version}-%{release}'\n for extras in args:gmatch('[^%s,]+') do\n local rpmname = value_n .. '+' .. extras\n local pkgdef = '%package -n ' .. rpmname\n local summary = 'Summary: Metapackage for ' .. value_n .. ': ' .. extras .. ' extras'\n local description = '%description -n ' .. rpmname .. '\\n'\n local current_line = 'This is a metapackage bringing in'\n for _, word in ipairs({extras, 'extras', 'requires', 'for', value_n .. '.'}) do\n local line = current_line .. ' ' .. word\n if line:len() > 79 then\n description = description .. current_line .. '\\n'\n current_line = word\n else\n current_line = line\n end\n end\n description = description .. current_line .. '\\n' ..\n 'It makes sure the dependencies are installed.\\n'\n local files = ''\n if value_i ~= '' then\n files = '%files -n ' .. rpmname .. '\\n' .. '%ghost ' .. value_i\n elseif value_f ~= '' then\n files = '%files -n ' .. rpmname .. ' -f ' .. value_f\n end\n for i, line in ipairs({pkgdef, summary, requires, description, files, ''}) do\n print(line .. '\\n')\n end\n end\n}}", "python_platform_triplet" => "%(%{__python} -Esc \"import sysconfig; print(sysconfig.get_config_var('MULTIARCH'))\")", "python_sitearch" => "%(%{__python} -Esc \"import sysconfig; print(sysconfig.get_path('platlib'))\")", "python_version" => "%(%{__python} -Esc \"import sys; sys.stdout.write('{0.major}.{0.minor}'.format(sys.version_info))\")", "python_wheel_dir" => "%{_datadir}/%{python_wheel_pkg_prefix}-wheels", "qt5_qtwebengine_arches" => "%{ix86} x86_64 %{arm} aarch64 mips mipsel mips64el", "riscv" => "%{riscv32} %{riscv64} %{riscv128}", "riscv32" => "riscv32", "rpmmacrodir" => "/usr/lib/rpm/macros.d", "selinux_modules_install(\"s:p:\")" => "\nif [ -e /etc/selinux/config ]; then \n . /etc/selinux/config \nfi \n_policytype=%{-s*} \nif [ -z \"${_policytype}\" ]; then \n _policytype=\"targeted\" \nfi \nif [ \"${SELINUXTYPE}\" = \"${_policytype}\" ]; then \n %{_sbindir}/semodule -n -s ${_policytype} -X %{!-p:200}%{-p*} -i %* || : \n %{_sbindir}/selinuxenabled && %{_sbindir}/load_policy || : \nfi \n%{nil}", "selinux_relabel_post(\"s:\")" => "\nif [ -e /etc/selinux/config ]; then \n . /etc/selinux/config \nfi \n_policytype=%{-s*} \nif [ -z \"${_policytype}\" ]; then \n _policytype=\"targeted\" \nfi \nif %{_sbindir}/selinuxenabled && [ \"${SELINUXTYPE}\" = \"${_policytype}\" ]; then \n if [ -f %{_file_context_file_pre} ]; then \n %{_sbindir}/fixfiles -C %{_file_context_file_pre} restore &> /dev/null \n rm -f %{_file_context_file_pre} \n fi \nfi \n%{nil}", "selinux_requires" => "\nRequires: selinux-policy >= %{_selinux_policy_version} \nBuildRequires: pkgconfig(systemd) \nBuildRequires: selinux-policy \nBuildRequires: selinux-policy-devel \nRequires(post): selinux-policy-base >= %{_selinux_policy_version} \nRequires(post): libselinux-utils \nRequires(post): policycoreutils \n%if 0%{?fedora} || 0%{?rhel} > 7\nRequires(post): policycoreutils-python-utils \n%else \nRequires(post): policycoreutils-python \n%endif \n%{nil}", "selinux_unset_booleans(\"s:\")" => "\nif [ -e /etc/selinux/config ]; then \n . /etc/selinux/config \nfi \n_policytype=%{-s*} \nif [ -z \"${_policytype}\" ]; then \n _policytype=\"targeted\" \nfi \nif [ -d \"%{_selinux_store_policy_path}\" ]; then \n semanage_import='' \n for boolean in %*; do \n boolean_name=${boolean%=*} \n boolean_customized_string=$(grep \"$boolean_name$\" %_file_custom_defined_booleans | tail -n 1) \n if [ -n \"$boolean_customized_string\" ]; then \n awk \"/$boolean_customized_string/ && !f{f=1; next} 1\" %_file_custom_defined_booleans > %_file_custom_defined_booleans_tmp && mv %_file_custom_defined_booleans_tmp %_file_custom_defined_booleans \n if ! grep -q \"$boolean_name$\" %_file_custom_defined_booleans; then \n semanage_import=\"${semanage_import}\\n${boolean_customized_string}\" \n fi \n fi \n done; \n if %{_sbindir}/selinuxenabled && [ \"${SELINUXTYPE}\" = \"${_policytype}\" ]; then \n /bin/echo -e \"$semanage_import\" | %{_sbindir}/semanage import -S \"${_policytype}\" \n elif test -d /usr/share/selinux/\"${_policytype}\"/base.lst; then \n /bin/echo -e \"$semanage_import\" | %{_sbindir}/semanage import -S \"${_policytype}\" -N \n fi \nfi \n%{nil}", "shrink" => "<builtin>", "sources" => "%{lua: for i, s in ipairs(sources) do print(s..\" \") end}", "suffix" => "<builtin>", "systemd_ordering" => "\nOrderWithRequires(post): systemd \nOrderWithRequires(preun): systemd \nOrderWithRequires(postun): systemd \n%{nil}", "systemd_postun" => "\n%{expand:%%{?__systemd_someargs_%#:%%__systemd_someargs_%# systemd_postun}} \n%{nil}", "systemd_preun" => "\n%{expand:%%{?__systemd_someargs_%#:%%__systemd_someargs_%# systemd_preun}} \nif [ $1 -eq 0 ] && [ -x \"/usr/lib/systemd/systemd-update-helper\" ]; then \n # Package removal, not upgrade \n /usr/lib/systemd/systemd-update-helper remove-system-units %{?*} || : \nfi \n%{nil}", "systemd_user_post" => "\n%{expand:%%{?__systemd_someargs_%#:%%__systemd_someargs_%# systemd_user_post}} \nif [ $1 -eq 1 ] && [ -x \"/usr/lib/systemd/systemd-update-helper\" ]; then \n # Initial installation \n /usr/lib/systemd/systemd-update-helper install-user-units %{?*} || : \nfi \n%{nil}", "systemd_user_postun_with_restart" => "\n%{expand:%%{?__systemd_someargs_%#:%%__systemd_someargs_%# systemd_user_postun_with_restart}} \nif [ $1 -ge 1 ] && [ -x \"/usr/lib/systemd/systemd-update-helper\" ]; then \n # Package upgrade, not uninstall \n /usr/lib/systemd/systemd-update-helper mark-restart-user-units %{?*} || : \nfi \n%{nil}", "sysusers_create" => "\n%{expand:%%{?__systemd_someargs_%#:%%__systemd_someargs_%# sysusers_create}} \ncommand -v systemd-sysusers >/dev/null && systemd-sysusers %{?*} || : \n%{nil}", "sysusers_create_inline" => "\ncommand -v systemd-sysusers >/dev/null && systemd-sysusers - <<SYSTEMD_INLINE_EOF || : \n%{?*} \nSYSTEMD_INLINE_EOF\n%{nil}", "sysusers_requires_compat" => "Requires(pre): shadow-utils", "texlive_posttrans" => "\nif [ -e /var/run/texlive/run-texhash ] && [ -e %{_bindir}/texhash ]; then %{_bindir}/texhash 2> /dev/null; rm -f /var/run/texlive/run-texhash; fi \nif [ -e /var/run/texlive/run-mtxrun ]; then export TEXMF=/usr/share/texlive/texmf-dist; export TEXMFCNF=/usr/share/texlive/texmf-dist/web2c; export TEXMFCACHE=/var/lib/texmf; %{_bindir}/mtxrun --generate &> /dev/null; rm -f /var/run/texlive/run-mtxrun; fi \n:", "tmpfiles_create" => "\n%{expand:%%{?__systemd_someargs_%#:%%__systemd_someargs_%# tmpfiles_create}} \ncommand -v systemd-tmpfiles >/dev/null && systemd-tmpfiles --create %{?*} || : \n%{nil}", "toolchain" => "gcc", "toxenv" => "%{default_toxenv}", "u2p" => "<builtin>", "udev_rules_update" => "%{nil}", "undefine" => "<builtin>", "url2path" => "<builtin>", "valgrind_arches" => "%{ix86} x86_64 ppc ppc64 ppc64le s390x armv7hl aarch64", "version_no_tilde" => "%{lua:\n local sep = rpm.expand('%1')\n local ver = rpm.expand('%2')\n\n if sep == '%1' then\n sep = '-'\n end\n\n if ver == '%2' then\n ver = rpm.expand('%version')\n end\n ver = ver:gsub('~', sep)\n\n print(ver)\n}", "warn" => "<builtin>", "without" => "%{expand:%%{?with_%{1}:0}%%{!?with_%{1}:1}}" },
+ "macro_path" => ["/usr/lib/rpm/macros", "/usr/lib/rpm/macros.d/macros.*", "/usr/lib/rpm/platform/%{_target}/macros", "/usr/lib/rpm/fileattrs/*.attr", "/usr/lib/rpm/redhat/macros", "/etc/rpm/macros.*", "/etc/rpm/macros", "/etc/rpm/%{_target}/macros", "~/.rpmmacros"],
+ "rpmrc" => { "archcolor" => "2", "optflags" => "%{__global_compiler_flags} -m64 %{__cflags_arch_x86_64} -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection" },
+ "version" => "4.17.0",
+ })
+ end
+
+ it "does not populate rpm if rpm is not found" do
+ allow(plugin).to receive(:which).with("rpm").and_return(false)
+ plugin.run
+ expect(plugin[:rpm]).to be(nil)
+ end
+end