summaryrefslogtreecommitdiff
path: root/python.lua
diff options
context:
space:
mode:
Diffstat (limited to 'python.lua')
-rw-r--r--python.lua101
1 files changed, 0 insertions, 101 deletions
diff --git a/python.lua b/python.lua
deleted file mode 100644
index 526878b..0000000
--- a/python.lua
+++ /dev/null
@@ -1,101 +0,0 @@
--- Convenience Lua functions that can be used within Python srpm/rpm macros
-
--- Determine alternate names provided from the given name.
--- Used in pythonname provides generator, python_provide and py_provides.
--- If only_3_to_3_X is false/nil/unused there are 2 rules:
--- python3-foo -> python-foo, python3.X-foo
--- python3.X-foo -> python-foo, python3-foo
--- If only_3_to_3_X is true there is only 1 rule:
--- python3-foo -> python3.X-foo
--- There is no python-foo -> rule, python-foo packages are version agnostic.
--- Returns a table/array with strings. Empty when no rule matched.
-local function python_altnames(name, only_3_to_3_X)
- local xy = rpm.expand('%{python3_version}')
- local altnames = {}
- local replaced
- -- NB: dash needs to be escaped!
- if name:match('^python3%-') then
- local prefixes = only_3_to_3_X and {} or {'python-'}
- for i, prefix in ipairs({'python' .. xy .. '-', table.unpack(prefixes)}) do
- replaced = name:gsub('^python3%%-', prefix)
- table.insert(altnames, replaced)
- end
- elseif name:match('^python' .. xy .. '%-') and not only_3_to_3_X then
- for i, prefix in ipairs({'python-', 'python3-'}) do
- replaced = name:gsub('^python' .. xy .. '%%-', prefix)
- table.insert(altnames, replaced)
- end
- end
- return altnames
-end
-
-
-local function __python_alttags(name, evr, tag_type)
- -- for the "provides" tag_type we want also unversioned provides
- local only_3_to_3_X = tag_type ~= "provides"
- local operator = tag_type == "provides" and ' = ' or ' < '
-
- -- global cache that tells what package NEVRs were already processed for the
- -- given tag type
- if __python_alttags_beenthere == nil then
- __python_alttags_beenthere = {}
- end
- if __python_alttags_beenthere[tag_type] == nil then
- __python_alttags_beenthere[tag_type] = {}
- end
- __python_alttags_beenthere[tag_type][name .. ' ' .. evr] = true
- local alttags = {}
- for i, altname in ipairs(python_altnames(name, only_3_to_3_X)) do
- table.insert(alttags, altname .. operator .. evr)
- end
- return alttags
-end
-
--- For any given name and epoch-version-release, return provides except self.
--- Uses python_altnames under the hood
--- Returns a table/array with strings.
-local function python_altprovides(name, evr)
- return __python_alttags(name, evr, "provides")
-end
-
--- For any given name and epoch-version-release, return versioned obsoletes except self.
--- Uses python_altnames under the hood
--- Returns a table/array with strings.
-local function python_altobsoletes(name, evr)
- return __python_alttags(name, evr, "obsoletes")
-end
-
-
-local function __python_alttags_once(name, evr, tag_type)
- -- global cache that tells what provides were already processed
- if __python_alttags_beenthere == nil
- or __python_alttags_beenthere[tag_type] == nil
- or __python_alttags_beenthere[tag_type][name .. ' ' .. evr] == nil then
- return __python_alttags(name, evr, tag_type)
- else
- return nil
- end
-end
-
--- Like python_altprovides but only return something once.
--- For each argument can only be used once, returns nil otherwise.
--- Previous usage of python_altprovides counts as well.
-local function python_altprovides_once(name, evr)
- return __python_alttags_once(name, evr, "provides")
-end
-
--- Like python_altobsoletes but only return something once.
--- For each argument can only be used once, returns nil otherwise.
--- Previous usage of python_altobsoletes counts as well.
-local function python_altobsoletes_once(name, evr)
- return __python_alttags_once(name, evr, "obsoletes")
-end
-
-
-return {
- python_altnames = python_altnames,
- python_altprovides = python_altprovides,
- python_altobsoletes = python_altobsoletes,
- python_altprovides_once = python_altprovides_once,
- python_altobsoletes_once = python_altobsoletes_once,
-}