summaryrefslogtreecommitdiff
path: root/python.attr
blob: cf5ae390d62c308d9d3ce153aceeb75421544955 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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:]]+))$