summaryrefslogtreecommitdiff
path: root/python.attr
diff options
context:
space:
mode:
Diffstat (limited to 'python.attr')
-rw-r--r--python.attr31
1 files changed, 31 insertions, 0 deletions
diff --git a/python.attr b/python.attr
new file mode 100644
index 0000000..cf5ae39
--- /dev/null
+++ b/python.attr
@@ -0,0 +1,31 @@
+%__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')
+ -- Use /usr prefix by default, and /app for flatpak builds
+ local prefix = rpm.expand('%{?!flatpak:/usr}%{?flatpak:/app}')
+ if path:match(prefix .. '/bin/python%d+%.%d+$') then
+ local provides = path:gsub('.*' .. prefix .. '/bin/python(%d+%.%d+)', 'python(abi) = %1')
+ print(provides)
+ end
+}
+
+%__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')
+ -- Use /usr prefix by default, and /app for flatpak builds
+ local prefix = rpm.expand('%{?!flatpak:/usr}%{?flatpak:/app}')
+ if path:match(prefix .. '/lib%d*/python%d+%.%d+/.*') then
+ local requires = path:gsub('.*' .. prefix .. '/lib%d*/python(%d+%.%d+)/.*', 'python(abi) = %1')
+ print(requires)
+ end
+}
+
+%__python_path ^((%{?!flatpak:/usr}%{?flatpak:/app}/lib(64)?/python[[:digit:]]+\\.[[:digit:]]+/.*\\.(py[oc]?|so))|(%{_bindir}/python[[:digit:]]+\\.[[:digit:]]+))$