Merge remote-tracking branch 'up/master' into master-riscv64
Signed-off-by: David Abdurachmanov <david.abdurachmanov@gmail.com>
This commit is contained in:
commit
90623f9be5
|
@ -129,8 +129,8 @@ while IFS= read -r -d $'\0' f; do
|
||||||
py_shebang=$(echo "$shebang" | sed -r -e 's@/usr/bin/python(\s|$)@/usr/bin/python2\1@')
|
py_shebang=$(echo "$shebang" | sed -r -e 's@/usr/bin/python(\s|$)@/usr/bin/python2\1@')
|
||||||
|
|
||||||
if [ "$shebang" != "$py_shebang" ]; then
|
if [ "$shebang" != "$py_shebang" ]; then
|
||||||
sed -i -e "1c #!$py_shebang" "$f"
|
echo >&2 "*** ERROR: ambiguous python shebang in $path: #!$orig_shebang. Change it to python3 (or python2) explicitly."
|
||||||
echo >&2 "*** WARNING: mangling shebang in $path from #!$orig_shebang to #!$py_shebang. This will become an ERROR, fix it manually!"
|
fail=1
|
||||||
elif [ "#!$shebang" != "#!$orig_shebang" ]; then
|
elif [ "#!$shebang" != "#!$orig_shebang" ]; then
|
||||||
sed -i -e "1c #!$shebang" "$f"
|
sed -i -e "1c #!$shebang" "$f"
|
||||||
echo "mangling shebang in $path from $orig_shebang to #!$shebang"
|
echo "mangling shebang in $path from $orig_shebang to #!$shebang"
|
||||||
|
|
|
@ -0,0 +1,113 @@
|
||||||
|
-- Convenience Lua functions that can be used within rpm macros
|
||||||
|
|
||||||
|
-- Set a spec variable
|
||||||
|
-- Echo the result if verbose
|
||||||
|
local function explicitset(rpmvar,value,verbose)
|
||||||
|
local value = value
|
||||||
|
if (value == nil) or (value == "") then
|
||||||
|
value = "%{nil}"
|
||||||
|
end
|
||||||
|
rpm.define(rpmvar .. " " .. value)
|
||||||
|
if verbose then
|
||||||
|
rpm.expand("%{echo:Setting %%{" .. rpmvar .. "} = " .. value .. "}")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Unset a spec variable if it is defined
|
||||||
|
-- Echo the result if verbose
|
||||||
|
local function explicitunset(rpmvar,verbose)
|
||||||
|
if (rpm.expand("%{" .. rpmvar .. "}") ~= "%{" .. rpmvar .. "}") then
|
||||||
|
rpm.define(rpmvar .. " %{nil}")
|
||||||
|
if verbose then
|
||||||
|
rpm.expand("%{echo:Unsetting %%{" .. rpmvar .. "}}")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Set a spec variable, if not already set
|
||||||
|
-- Echo the result if verbose
|
||||||
|
local function safeset(rpmvar,value,verbose)
|
||||||
|
if (rpm.expand("%{" .. rpmvar .. "}") == "%{" .. rpmvar .. "}") then
|
||||||
|
explicitset(rpmvar,value,verbose)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Alias a list of rpm variables to the same variables suffixed with 0 (and vice versa)
|
||||||
|
-- Echo the result if verbose
|
||||||
|
local function zalias(rpmvars,verbose)
|
||||||
|
for _, sfx in ipairs({{"","0"},{"0",""}}) do
|
||||||
|
for _, rpmvar in ipairs(rpmvars) do
|
||||||
|
local toalias = "%{?" .. rpmvar .. sfx[1] .. "}"
|
||||||
|
if (rpm.expand(toalias) ~= "") then
|
||||||
|
safeset(rpmvar .. sfx[2], toalias, verbose)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Echo the list of rpm variables, with suffix, if set
|
||||||
|
local function echovars(rpmvars, suffix)
|
||||||
|
for _, rpmvar in ipairs(rpmvars) do
|
||||||
|
rpmvar = rpmvar .. suffix
|
||||||
|
local header = string.sub(" " .. rpmvar .. ": ",1,21)
|
||||||
|
rpm.expand("%{?" .. rpmvar .. ":%{echo:" .. header .. "%{?" .. rpmvar .. "}}}")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Returns an array, indexed by suffix, containing the non-empy values of
|
||||||
|
-- <rpmvar><suffix>, with suffix an integer string or the empty string
|
||||||
|
local function getsuffixed(rpmvar)
|
||||||
|
local suffixes = {}
|
||||||
|
zalias({rpmvar})
|
||||||
|
for suffix=0,9999 do
|
||||||
|
local value = rpm.expand("%{?" .. rpmvar .. suffix .. "}")
|
||||||
|
if (value ~= "") then
|
||||||
|
suffixes[tostring(suffix)] = value
|
||||||
|
end
|
||||||
|
end
|
||||||
|
-- rpm convention is to alias no suffix to zero suffix
|
||||||
|
-- only add no suffix if zero suffix is different
|
||||||
|
local value = rpm.expand("%{?" .. rpmvar .. "}")
|
||||||
|
if (value ~= "") and (value ~= suffixes["0"]) then
|
||||||
|
suffixes[""] = value
|
||||||
|
end
|
||||||
|
return suffixes
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Returns the list of suffixes, including the empty string, for which
|
||||||
|
-- <rpmvar><suffix> is set to a non empty value
|
||||||
|
local function getsuffixes(rpmvar)
|
||||||
|
suffixes = {}
|
||||||
|
for suffix in pairs(getsuffixed(rpmvar)) do
|
||||||
|
table.insert(suffixes,suffix)
|
||||||
|
end
|
||||||
|
table.sort(suffixes,
|
||||||
|
function(a,b) return (tonumber(a) or 0) < (tonumber(b) or 0) end)
|
||||||
|
return suffixes
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Returns the suffix for which <rpmvar><suffix> has a non-empty value that
|
||||||
|
-- matches best the beginning of the value string
|
||||||
|
local function getbestsuffix(rpmvar, value)
|
||||||
|
local best = nil
|
||||||
|
local currentmatch = ""
|
||||||
|
for suffix, setvalue in pairs(getsuffixed(rpmvar)) do
|
||||||
|
if (string.len(setvalue) > string.len(currentmatch)) and
|
||||||
|
(string.find(value, "^" .. setvalue)) then
|
||||||
|
currentmatch = setvalue
|
||||||
|
best = suffix
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return best
|
||||||
|
end
|
||||||
|
|
||||||
|
return {
|
||||||
|
explicitset = explicitset,
|
||||||
|
explicitunset = explicitunset,
|
||||||
|
safeset = safeset,
|
||||||
|
zalias = zalias,
|
||||||
|
echovars = echovars,
|
||||||
|
getsuffixed = getsuffixed,
|
||||||
|
getsuffixes = getsuffixes,
|
||||||
|
getbestsuffix = getbestsuffix,
|
||||||
|
}
|
|
@ -0,0 +1,253 @@
|
||||||
|
-- Lua code used by macros.forge and derivatives
|
||||||
|
|
||||||
|
-- Computes the suffix of a version string, removing vprefix if it matches
|
||||||
|
-- For example with vprefix 1.2.3: 1.2.3.rc2 → .rc2 but 1.2.30 → 1.2.30 not 0
|
||||||
|
local function getversionsuffix(vstring,vprefix)
|
||||||
|
if (string.sub(vstring, 1, #vprefix) == vprefix) and
|
||||||
|
(not string.match(string.sub(vstring, #vprefix + 1), "^%.?%d")) then
|
||||||
|
return string.sub(vstring, #vprefix + 1)
|
||||||
|
else
|
||||||
|
return vstring
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Check if an identified url is sane
|
||||||
|
local function checkforgeurl(url, id, silent)
|
||||||
|
local checkedurl = nil
|
||||||
|
local checkedid = nil
|
||||||
|
local urlpatterns = {
|
||||||
|
gitlab = {
|
||||||
|
pattern = 'https://[^/]+/[^/]+/[^/#?]+',
|
||||||
|
description = 'https://(…[-.])gitlab[-.]…/owner/repo'},
|
||||||
|
github = {
|
||||||
|
pattern = 'https://[^/]+/[^/]+/[^/#?]+',
|
||||||
|
description = 'https://(…[-.])github[-.]…/owner/repo'},
|
||||||
|
["code.googlesource.com"] = {
|
||||||
|
pattern = 'https://code.googlesource.com/[^#?]*[^/#?]+',
|
||||||
|
description = 'https://code.googlesource.com/…/repo'},
|
||||||
|
["bitbucket.org"] = {
|
||||||
|
pattern = 'https://[^/]+/[^/]+/[^/#?]+',
|
||||||
|
description = 'https://bitbucket.org/owner/repo'}}
|
||||||
|
if (urlpatterns[id] ~= nil) then
|
||||||
|
checkedurl = string.match(url,urlpatterns[id]["pattern"])
|
||||||
|
if (checkedurl == nil) then
|
||||||
|
if not silent then
|
||||||
|
rpm.expand("%{error:" .. id .. " URLs must match " .. urlpatterns[id]["description"] .. " !}")
|
||||||
|
end
|
||||||
|
else
|
||||||
|
checkedid = id
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return checkedurl, checkedid
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Check if an url matches a known forge
|
||||||
|
local function idforge(url, silent)
|
||||||
|
local forgeurl = nil
|
||||||
|
local forge = nil
|
||||||
|
if (url ~= "") then
|
||||||
|
forge = string.match(url, "^[^:]+://([^/]+)/")
|
||||||
|
if (forge == nil) then
|
||||||
|
if not silent then
|
||||||
|
rpm.expand("%{error:URLs must include a protocol such as https:// and a path starting with / !}")
|
||||||
|
end
|
||||||
|
else
|
||||||
|
if (string.match(forge, "^gitlab[%.-]") or string.match(forge, "[%.-]gitlab[%.]")) then
|
||||||
|
forge = "gitlab"
|
||||||
|
elseif (string.match(forge, "^github[%.-]") or string.match(forge, "[%.-]github[%.]")) then
|
||||||
|
forge = "github"
|
||||||
|
end
|
||||||
|
forgeurl, forge = checkforgeurl(url, forge, silent)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return forgeurl, forge
|
||||||
|
end
|
||||||
|
|
||||||
|
-- The forgemeta macro main processing function
|
||||||
|
-- See the documentation in the macros.forge file for argument description
|
||||||
|
-- Also called directly by gometa
|
||||||
|
local function forgemeta(suffix, verbose, informative, silent)
|
||||||
|
local fedora = require "fedora.common"
|
||||||
|
local ismain = (suffix == "") or (suffix == "0")
|
||||||
|
if ismain then
|
||||||
|
fedora.zalias({"forgeurl", "forgesource", "forgesetupargs",
|
||||||
|
"archivename", "archiveext", "archiveurl",
|
||||||
|
"topdir", "extractdir", "repo", "owner",
|
||||||
|
"scm", "tag", "commit", "shortcommit", "branch", "version",
|
||||||
|
"date", "distprefix"}, verbose)
|
||||||
|
end
|
||||||
|
local variables = {
|
||||||
|
default = {
|
||||||
|
scm = "git",
|
||||||
|
archiveext = "tar.bz2",
|
||||||
|
repo = '%{lua:print(string.match(rpm.expand("%{forgeurl' .. suffix .. '}"), "^[^:]+://[^/]+/[^/]+/([^/]+)"))}',
|
||||||
|
archivename = "%{repo" .. suffix .. "}-%{ref" .. suffix .. "}",
|
||||||
|
topdir = "%{archivename" .. suffix .. "}" },
|
||||||
|
gitlab = {
|
||||||
|
archiveurl = "%{forgeurl" .. suffix .. "}/-/archive/%{ref" .. suffix .. "}/%{archivename" .. suffix .. "}.%{archiveext" .. suffix .. "}" },
|
||||||
|
github = {
|
||||||
|
archiveext = "tar.gz",
|
||||||
|
archivename = "%{repo" .. suffix .. "}-%{fileref" .. suffix .. "}",
|
||||||
|
archiveurl = "%{forgeurl" .. suffix .. "}/archive/%{ref" .. suffix .. "}/%{archivename" .. suffix .. "}.%{archiveext" .. suffix .. "}" },
|
||||||
|
["code.googlesource.com"] = {
|
||||||
|
archiveext = "tar.gz",
|
||||||
|
repo = '%{lua:print(string.match(rpm.expand("%{forgeurl' .. suffix .. '}"), "^[^:]+://.+/([^/?#]+)"))}',
|
||||||
|
archiveurl = "%{forgeurl" .. suffix .. "}/+archive/%{ref" .. suffix .. "}.%{archiveext" .. suffix .. "}",
|
||||||
|
topdir = "" },
|
||||||
|
["bitbucket.org"] = {
|
||||||
|
shortcommit = '%{lua:print(string.sub(rpm.expand("%{commit' .. suffix .. '}"), 1, 12))}',
|
||||||
|
owner = '%{lua:print(string.match(rpm.expand("%{forgeurl' .. suffix .. '}"), "^[^:]+://[^/]+/([^/]+)"))}',
|
||||||
|
archivename = "%{owner" .. suffix .. "}-%{repo" .. suffix .. "}-%{shortcommit" .. suffix .. "}",
|
||||||
|
archiveurl = "%{forgeurl" .. suffix .. "}/get/%{ref" .. suffix .. "}.%{archiveext" .. suffix .. "}" } }
|
||||||
|
-- Packaging a moving branch is quite a bad idea, but since at least Gitlab
|
||||||
|
-- will treat branches and tags the same way better support branches explicitly
|
||||||
|
-- than have packagers hijack %{tag} to download branch states
|
||||||
|
local spec = {}
|
||||||
|
for _, v in ipairs({'forgeurl','tag','commit','branch','version'}) do
|
||||||
|
spec[v] = rpm.expand("%{?" .. v .. suffix .. "}")
|
||||||
|
end
|
||||||
|
-- Compute the reference of the object to fetch
|
||||||
|
local isrelease = false
|
||||||
|
if (spec["tag"] ~= "") then ref = "%{?tag" .. suffix .. "}"
|
||||||
|
elseif (spec["commit"] ~= "") then ref = "%{?commit" .. suffix .. "}"
|
||||||
|
elseif (spec["branch"] ~= "") then ref = "%{?branch" .. suffix .. "}"
|
||||||
|
else ref = "%{?version" .. suffix .. "}"
|
||||||
|
isrelease = true
|
||||||
|
end
|
||||||
|
if (rpm.expand(ref) == "") then
|
||||||
|
if (suffix == "") then
|
||||||
|
rpm.expand("%{error:You need to define Version:, %{commit} or %{tag} before the macro invocation !}")
|
||||||
|
else
|
||||||
|
rpm.expand("%{error:You need to define %{version" .. suffix .. "}, %{commit" .. suffix .. "} or %{tag" .. suffix .. "} before the macro invocation !}")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
local forgeurl = spec["forgeurl"]
|
||||||
|
-- For backwards compatibility only
|
||||||
|
local expliciturl = rpm.expand("%{?-u*}")
|
||||||
|
if (expliciturl ~= "") then
|
||||||
|
rpm.expand("%{warn:-u use in %%forgemeta is deprecated, use -z instead to select a separate set of rpm variables!}")
|
||||||
|
forgeurl = expliciturl
|
||||||
|
end
|
||||||
|
local forge
|
||||||
|
forgeurl, forge = idforge(forgeurl, silent)
|
||||||
|
if (forge ~= nil) then
|
||||||
|
fedora.explicitset("forgeurl" .. suffix, forgeurl, verbose)
|
||||||
|
-- Custom processing of quirky forges that can not be handled with simple variables
|
||||||
|
if (forge == "github") then
|
||||||
|
-- Workaround the way GitHub injects "v"s before some version strings (but not all!)
|
||||||
|
-- To package one of the minority of sane GitHub projects that do not munge their version
|
||||||
|
-- strings set tag to %{version} in your spec
|
||||||
|
local fileref = ref
|
||||||
|
if (ref == "%{?version" .. suffix .. "}") then
|
||||||
|
ref = "v" .. ref
|
||||||
|
elseif (fileref ~= "%{?commit" .. suffix .. "}") and
|
||||||
|
string.match(rpm.expand(fileref), "^v[%d]") then
|
||||||
|
fileref = string.gsub(rpm.expand(fileref), "^v", "")
|
||||||
|
end
|
||||||
|
fedora.safeset("fileref" .. suffix, fileref, verbose)
|
||||||
|
elseif (forge == "code.googlesource.com") then
|
||||||
|
if (ref == "%{?version" .. suffix .. "}") then
|
||||||
|
ref = "v" .. ref
|
||||||
|
end
|
||||||
|
elseif (forge == "bitbucket.org") then
|
||||||
|
if (spec["commit"] == "") then
|
||||||
|
rpm.expand("%{error:All BitBucket URLs require commit value knowledge: you need to define %{commit}!}")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
fedora.safeset("ref" .. suffix, ref, verbose)
|
||||||
|
-- Mass setting of the remaining variables
|
||||||
|
for k,v in pairs(variables[forge]) do
|
||||||
|
fedora.safeset(k .. suffix, variables[forge][k], verbose)
|
||||||
|
end
|
||||||
|
for k,v in pairs(variables["default"]) do
|
||||||
|
if (variables[forge][k] == nil) then
|
||||||
|
fedora.safeset(k .. suffix, variables["default"][k], verbose)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
-- Generic rules
|
||||||
|
for _, v in ipairs({'archiveurl','archivename','archiveext','topdir'}) do
|
||||||
|
spec[v] = rpm.expand("%{?" .. v .. suffix .. "}")
|
||||||
|
end
|
||||||
|
-- Source URL processing (computing the forgesource spec variable)
|
||||||
|
local forgesource = "%{archiveurl" .. suffix .. "}"
|
||||||
|
if (string.match(spec["archiveurl"], "/([^/]+)$") ~= spec["archivename"] .. "." .. spec["archiveext"]) then
|
||||||
|
forgesource = "%{?archiveurl" .. suffix .. "}#/%{?archivename" .. suffix .. "}.%{archiveext" .. suffix .. "}"
|
||||||
|
end
|
||||||
|
fedora.safeset("forgesource" .. suffix, forgesource, verbose)
|
||||||
|
-- Setup processing (computing the forgesetup and extractdir variables)
|
||||||
|
local forgesetupargs = "-n %{extractdir" .. suffix .. "}"
|
||||||
|
local extractdir = "%{topdir" .. suffix .. "}"
|
||||||
|
if (spec["topdir"] == "") then
|
||||||
|
forgesetupargs = "-c " .. forgesetupargs
|
||||||
|
extractdir = "%{archivename" .. suffix .. "}"
|
||||||
|
end
|
||||||
|
if not ismain then
|
||||||
|
if (spec["topdir"] ~= "") then
|
||||||
|
forgesetupargs = "-T -D -b " .. suffix .. " " .. forgesetupargs
|
||||||
|
else
|
||||||
|
forgesetupargs = "-T -D -a " .. suffix .. " " .. forgesetupargs
|
||||||
|
end
|
||||||
|
end
|
||||||
|
fedora.safeset("forgesetupargs" .. suffix, forgesetupargs, verbose)
|
||||||
|
fedora.safeset("extractdir" .. suffix, extractdir, verbose)
|
||||||
|
-- dist processing (computing the correct prefix for snapshots)
|
||||||
|
local distprefix = ""
|
||||||
|
if not isrelease then
|
||||||
|
distprefix = string.lower(rpm.expand(ref))
|
||||||
|
if (ref == "%{?commit" .. suffix .. "}") then
|
||||||
|
distprefix = string.sub(distprefix, 1, 7)
|
||||||
|
elseif (ref ~= "%{?branch" .. suffix .. "}") then
|
||||||
|
distprefix = string.gsub(distprefix, "[%p%s]+", ".")
|
||||||
|
distprefix = string.gsub(distprefix, "^" .. string.lower(rpm.expand("%{?repo}")) .. "%.?", "")
|
||||||
|
local v = string.gsub(rpm.expand("%{version}"), "[%p%s]+", ".")
|
||||||
|
for _, p in ipairs({'','v','v.','version','version.'}) do
|
||||||
|
distprefix = getversionsuffix(distprefix, p .. v)
|
||||||
|
end
|
||||||
|
distprefix = string.gsub(distprefix, "^%.", "")
|
||||||
|
end
|
||||||
|
if (distprefix ~= "") then
|
||||||
|
distprefix = "%{scm" .. suffix .. "}" .. distprefix
|
||||||
|
date = rpm.expand("%{?date" .. suffix .. "}")
|
||||||
|
if (date ~= "") then
|
||||||
|
distprefix = date .. distprefix
|
||||||
|
else
|
||||||
|
distprefix = "%([ -r %{_sourcedir}/%{archivename" .. suffix .. "}.%{archiveext" .. suffix .. "} ] && date +%Y%m%d -u -r %{_sourcedir}/%{archivename" .. suffix .. "}.%{archiveext" .. suffix .. "})" .. distprefix
|
||||||
|
end
|
||||||
|
distprefix = "." .. distprefix
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if (spec["version"] ~= "") and
|
||||||
|
(spec["version"] ~= "0") and
|
||||||
|
(spec["version"] ~= rpm.expand("%{?version}")) then
|
||||||
|
distprefix = ".%{version" .. suffix .. "}" .. distprefix
|
||||||
|
end
|
||||||
|
if (rpm.expand(distprefix) ~= "") then
|
||||||
|
if not ismain then
|
||||||
|
distprefix = string.gsub(distprefix, "^%.", ".S")
|
||||||
|
end
|
||||||
|
fedora.safeset ("distprefix" .. suffix, distprefix, verbose)
|
||||||
|
end
|
||||||
|
if ismain then
|
||||||
|
fedora.zalias({"forgeurl", "forgesource", "forgesetupargs",
|
||||||
|
"archivename", "archiveext", "archiveurl",
|
||||||
|
"topdir", "extractdir", "repo", "owner",
|
||||||
|
"scm", "shortcommit", "distprefix"}, verbose)
|
||||||
|
end
|
||||||
|
-- Final spec variable summary if the macro was called with -i
|
||||||
|
if informative then
|
||||||
|
rpm.expand("%{echo:Packaging variables read or set by %%forgemeta}")
|
||||||
|
fedora.echovars({"forgeurl", "forgesource", "forgesetupargs",
|
||||||
|
"archivename", "archiveext", "archiveurl",
|
||||||
|
"topdir", "extractdir", "repo", "owner",
|
||||||
|
"scm", "tag", "commit", "shortcommit", "branch", "version",
|
||||||
|
"date", "distprefix"}, suffix)
|
||||||
|
fedora.echovars({"dist"},"")
|
||||||
|
rpm.expand("%{echo: (snapshot date is either manually supplied or computed once %%{_sourcedir}/%%{archivename" .. suffix .. "}.%%{archiveext" .. suffix .. "} is available)}")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return {
|
||||||
|
forgemeta = forgemeta,
|
||||||
|
}
|
||||||
|
|
6
macros
6
macros
|
@ -184,7 +184,7 @@
|
||||||
## Should python bytecompilation errors terminate a build?
|
## Should python bytecompilation errors terminate a build?
|
||||||
%_python_bytecompile_errors_terminate_build 1
|
%_python_bytecompile_errors_terminate_build 1
|
||||||
## Should python bytecompilation compile outisde python specific directories?
|
## Should python bytecompilation compile outisde python specific directories?
|
||||||
%_python_bytecompile_extra 1
|
%_python_bytecompile_extra 0
|
||||||
|
|
||||||
# Use SHA-256 for FILEDIGESTS instead of default MD5
|
# Use SHA-256 for FILEDIGESTS instead of default MD5
|
||||||
%_source_filedigest_algorithm 8
|
%_source_filedigest_algorithm 8
|
||||||
|
@ -219,8 +219,8 @@
|
||||||
%_ld_symbols_flags %{?_ld_strict_symbol_defs:-Wl,-z,defs}
|
%_ld_symbols_flags %{?_ld_strict_symbol_defs:-Wl,-z,defs}
|
||||||
|
|
||||||
# https://fedoraproject.org/wiki/Changes/RemoveExcessiveLinking
|
# https://fedoraproject.org/wiki/Changes/RemoveExcessiveLinking
|
||||||
# use "%define _ld_as_needed 1" to enable.
|
# use "%undefine _ld_as_needed" to disable.
|
||||||
#%_ld_as_needed 1
|
%_ld_as_needed 1
|
||||||
%_ld_as_needed_flags %{?_ld_as_needed:-Wl,--as-needed}
|
%_ld_as_needed_flags %{?_ld_as_needed:-Wl,--as-needed}
|
||||||
|
|
||||||
%__global_compiler_flags -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches %{_hardened_cflags} %{_annotated_cflags}
|
%__global_compiler_flags -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches %{_hardened_cflags} %{_annotated_cflags}
|
||||||
|
|
|
@ -6,3 +6,6 @@
|
||||||
# A directory for appdata metainfo. This has changed between releases so a
|
# A directory for appdata metainfo. This has changed between releases so a
|
||||||
# macro is useful.
|
# macro is useful.
|
||||||
%_metainfodir %{_datadir}/metainfo
|
%_metainfodir %{_datadir}/metainfo
|
||||||
|
|
||||||
|
# A directory for SWID tag files describing the installation
|
||||||
|
%_swidtagdir %{_prefix}/lib/swidtag/fedoraproject.org
|
||||||
|
|
307
macros.forge
307
macros.forge
|
@ -4,10 +4,12 @@
|
||||||
# The following spec variables SHOULD be set before calling the macro:
|
# The following spec variables SHOULD be set before calling the macro:
|
||||||
#
|
#
|
||||||
# forgeurl the project url on the forge, strongly recommended;
|
# forgeurl the project url on the forge, strongly recommended;
|
||||||
# alternatively, use -u <url>
|
|
||||||
# Version if applicable, set it with Version: <version>
|
# Version if applicable, set it with Version: <version>
|
||||||
# tag if applicable
|
# tag if applicable
|
||||||
# commit if applicable
|
# commit if applicable
|
||||||
|
# date if applicable (to override the mtime of the Source archive)
|
||||||
|
#
|
||||||
|
# Use -z for multiple calls to the macro
|
||||||
#
|
#
|
||||||
# The macro will attempt to compute and set the following variables if they are
|
# The macro will attempt to compute and set the following variables if they are
|
||||||
# not already set by the packager:
|
# not already set by the packager:
|
||||||
|
@ -19,264 +21,77 @@
|
||||||
# archiveext the source archive filename extensions, without leading dot
|
# archiveext the source archive filename extensions, without leading dot
|
||||||
# archiveurl the url that can be used to download the source archive,
|
# archiveurl the url that can be used to download the source archive,
|
||||||
# without renaming
|
# without renaming
|
||||||
|
# topdir the source archive top directory (can be empty)
|
||||||
|
# extractdir the source directory created inside %{_builddir} after using
|
||||||
|
# %%forgesetup, %forgeautosetup or %{forgesetupargs}
|
||||||
|
# repo the repository name
|
||||||
|
# owner the repository owner (if used by another computed variable)
|
||||||
|
# shortcommit the commit hash clamping used by the forge, if any
|
||||||
# scm the scm type, when packaging code snapshots: commits or tags
|
# scm the scm type, when packaging code snapshots: commits or tags
|
||||||
|
# distprefix the prefix that needs adding to dist to trace non-release packaging
|
||||||
#
|
#
|
||||||
# If the macro is unable to parse your forgeurl value set at least archivename
|
# Most of the computed variables are both overridable and optional.
|
||||||
# and archiveurl before calling it.
|
|
||||||
#
|
|
||||||
# Most of the computed variables are both overridable and optional. However,
|
|
||||||
# the macro WILL REDEFINE %{dist} when packaging a snapshot (commit or tag).
|
|
||||||
# The previous %{dist} value will be lost. Don’t call the macro if you don’t
|
|
||||||
# wish %{dist} to be changed.
|
|
||||||
#
|
#
|
||||||
# Optional parameters:
|
# Optional parameters:
|
||||||
# -u <url> Ignore forgeurl even if it exists and use <url> instead. Note
|
# -a process all sources in one go, instead of using separate -z calls
|
||||||
# that the macro will still end up setting <url> as the forgeurl
|
# -z <number> suffix all the read and written variable names with <number>
|
||||||
# spec variable if it manages to parse it.
|
# for example read forgeurl<number>, version<number>…
|
||||||
|
# and generate forgesetupargs<number>, archiveurl<number>…
|
||||||
|
# The macro assumes that null or nil suffix is used for the primary
|
||||||
|
# package source.
|
||||||
# -s Silently ignore problems in forgeurl, use it if it can be parsed,
|
# -s Silently ignore problems in forgeurl, use it if it can be parsed,
|
||||||
# ignore it otherwise.
|
# ignore it otherwise.
|
||||||
# -p Restore problem handling, override -s.
|
|
||||||
# -v Be verbose and print every spec variable the macro sets.
|
# -v Be verbose and print every spec variable the macro sets.
|
||||||
# -i Print some info about the state of spec variables the macro may use or
|
# -i Print some info about the state of spec variables the macro may use or
|
||||||
# set at the end of the processing.
|
# set at the end of the processing.
|
||||||
%forgemeta(u:spvi) %{lua:
|
%forgemeta(az:sviu:) %{lua:
|
||||||
local forgeurl = rpm.expand("%{?-u*}")
|
local fedora = require "fedora.common"
|
||||||
if (forgeurl == "") then
|
local forge = require "fedora.srpm.forge"
|
||||||
forgeurl = rpm.expand("%{?forgeurl}")
|
local verbose = rpm.expand("%{-v}") ~= ""
|
||||||
end
|
local informative = rpm.expand("%{-i}") ~= ""
|
||||||
local silent = false
|
local silent = rpm.expand("%{-s}") ~= ""
|
||||||
local verbose = false
|
local processall = (rpm.expand("%{-a}") ~= "") and (rpm.expand("%{-z}") == "")
|
||||||
local informative = false
|
if processall then
|
||||||
if (rpm.expand("%{?-s}") ~= "") then
|
for _,s in pairs(fedora.getsuffixes("forgeurl")) do
|
||||||
silent = true
|
forge.forgemeta(s,verbose,informative,silent)
|
||||||
end
|
|
||||||
if (rpm.expand("%{?-p}") ~= "") then
|
|
||||||
silent = false
|
|
||||||
end
|
|
||||||
if (rpm.expand("%{?-v}") ~= "") then
|
|
||||||
verbose = true
|
|
||||||
end
|
|
||||||
if (rpm.expand("%{?-i}") ~= "") then
|
|
||||||
informative = true
|
|
||||||
end
|
|
||||||
local tag = rpm.expand("%{?tag}")
|
|
||||||
local commit = rpm.expand("%{?commit}")
|
|
||||||
-- Be explicit about the spec variables we’re setting
|
|
||||||
local function explicitset(rpmvariable,value)
|
|
||||||
rpm.define(rpmvariable .. " " .. value)
|
|
||||||
if verbose then
|
|
||||||
rpm.expand("%{echo:Setting %%{" .. rpmvariable .. "} = " .. value .. "\\n}")
|
|
||||||
end
|
end
|
||||||
end
|
else
|
||||||
-- Never ever stomp on a spec variable the packager already set
|
forge.forgemeta(rpm.expand("%{-z*}"),verbose,informative,silent)
|
||||||
local function safeset(rpmvariable,value)
|
|
||||||
if (rpm.expand("%{?" .. rpmvariable .. "}") == "") then
|
|
||||||
explicitset(rpmvariable,value)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
-- Set spec variable values for each known software publishing service
|
|
||||||
if (forgeurl ~= "") then
|
|
||||||
local forge = string.match(forgeurl, "^[^:]+://([^/]+)/")
|
|
||||||
if (forge == nil) then
|
|
||||||
if not silent then
|
|
||||||
rpm.expand("%{error:URLs must include a protocol such as https:// and a path starting with / !\\n}")
|
|
||||||
end
|
|
||||||
else
|
|
||||||
if (string.match(forge, "^gitlab[%.-]") or string.match(forge, "[%.-]gitlab[%.]")) then
|
|
||||||
forgeurl = string.match(forgeurl, "https://[^/]+/[^/]+/[^/#?]+")
|
|
||||||
if (forgeurl == nil) then
|
|
||||||
if not silent then
|
|
||||||
rpm.expand("%{error:Gitlab URLs must match https://(…[-.])gitlab[-.]…/owner/repo !\\n}")
|
|
||||||
end
|
|
||||||
else
|
|
||||||
explicitset("forgeurl", forgeurl)
|
|
||||||
if (commit == "") then
|
|
||||||
rpm.expand("%{error:All Gitlab URLs require commit value knowledge: you need to define %{commit}!\\nPlease vote on https://gitlab.com/gitlab-org/gitlab-ce/issues/38830\\n}")
|
|
||||||
end
|
|
||||||
safeset("archiveext", "tar.bz2")
|
|
||||||
safeset("forgesetupargs", "-n %{archivename}")
|
|
||||||
if (commit ~= "") or (tag ~= "") then
|
|
||||||
safeset("scm", "git")
|
|
||||||
end
|
|
||||||
local owner = string.match(forgeurl, "^[^:]+://[^/]+/([^/]+)")
|
|
||||||
local repo = string.match(forgeurl, "^[^:]+://[^/]+/[^/]+/([^/]+)")
|
|
||||||
local version = rpm.expand("%{?version}")
|
|
||||||
if (version ~= "") and (version ~= "0") and (tag == "") then
|
|
||||||
-- GitLab does not have strong versionning semantics
|
|
||||||
-- Some projects use "version" as release tag, others "v" + "version"
|
|
||||||
-- Tag value needs to be explicitly declared before calling the macro
|
|
||||||
-- in the second case
|
|
||||||
tag = version
|
|
||||||
safeset("tag", tag)
|
|
||||||
end
|
|
||||||
if (tag ~= "") then
|
|
||||||
safeset("archivename", repo .. "-%{tag}-%{commit}")
|
|
||||||
safeset("archiveurl", "%{forgeurl}/repository/%{tag}/archive.%{archiveext}")
|
|
||||||
else
|
|
||||||
safeset("archivename", repo .. "-%{commit}")
|
|
||||||
safeset("archiveurl", "%{forgeurl}/repository/%{commit}/archive.%{archiveext}")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
if (string.match(forge, "^github[%.-]") or string.match(forge, "[%.-]github[%.]")) then
|
|
||||||
forgeurl = string.match(forgeurl, "https://[^/]+/[^/]+/[^/#?]+")
|
|
||||||
if (forgeurl == nil) then
|
|
||||||
if not silent then
|
|
||||||
rpm.expand("%{error:GitHub URLs must match https://(…[-.])github[-.]…/owner/repo !\\n}")
|
|
||||||
end
|
|
||||||
else
|
|
||||||
explicitset("forgeurl", forgeurl)
|
|
||||||
safeset("archiveext", "tar.gz")
|
|
||||||
local forgesetupargs = "-n %{archivename}"
|
|
||||||
if (commit ~= "") or (tag ~= "") then
|
|
||||||
safeset("scm", "git")
|
|
||||||
end
|
|
||||||
local owner = string.match(forgeurl, "^[^:]+://[^/]+/([^/]+)")
|
|
||||||
local repo = string.match(forgeurl, "^[^:]+://[^/]+/[^/]+/([^/]+)")
|
|
||||||
if (tag ~= "") then
|
|
||||||
-- if upstream used a version suffix such as -rc1 or -beta it will not
|
|
||||||
-- be a valid version string for rpm but github will accept it fine and
|
|
||||||
-- use the same naming as for other versions: v prefix in the tag and
|
|
||||||
-- archivename, no v prefix in the topdir naming inside the archive
|
|
||||||
local version = rpm.expand("%{?version}")
|
|
||||||
if version ~= "" and
|
|
||||||
(string.match(tag, "^v" .. version .. "[^%d]") or
|
|
||||||
string.match(tag, "^v" .. version .. "$")) then
|
|
||||||
forgesetupargs = "-n " .. repo .. "-" .. string.gsub(tag, "^v", "")
|
|
||||||
end
|
|
||||||
safeset("archivename", repo .. "-%{tag}")
|
|
||||||
safeset("archiveurl", "%{forgeurl}/archive/%{tag}.%{archiveext}")
|
|
||||||
else
|
|
||||||
if (commit ~= "") then
|
|
||||||
safeset("archivename", repo .. "-%{commit}")
|
|
||||||
safeset("archiveurl", "%{forgeurl}/archive/%{commit}/" .. repo .. "-%{commit}.%{archiveext}")
|
|
||||||
else
|
|
||||||
safeset("archivename", repo .. "-%{version}")
|
|
||||||
safeset("archiveurl", "%{forgeurl}/archive/v%{version}.%{archiveext}")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
safeset("forgesetupargs", forgesetupargs)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
if (forge == "code.googlesource.com") then
|
|
||||||
forgeurl = string.match(forgeurl, "https://code.googlesource.com/[^#?]*[^/#?]+")
|
|
||||||
if (forgeurl == nil) then
|
|
||||||
if not silent then
|
|
||||||
rpm.expand("%{error:Googlesource URLs must match https://code.googlesource.com/…/repo !\\n}")
|
|
||||||
end
|
|
||||||
else
|
|
||||||
explicitset("forgeurl", forgeurl)
|
|
||||||
safeset("archiveext", "tar.gz")
|
|
||||||
safeset("forgesetupargs", "-c")
|
|
||||||
if (commit ~= "") or (tag ~= "") then
|
|
||||||
safeset("scm", "git")
|
|
||||||
end
|
|
||||||
local repo = string.match(forgeurl, "^[^:]+://.+/([^/?#]+)")
|
|
||||||
if (tag ~= "") then
|
|
||||||
safeset("archivename", repo .. "-%{tag}")
|
|
||||||
safeset("archiveurl", "%{forgeurl}/+archive/%{tag}.%{archiveext}")
|
|
||||||
else
|
|
||||||
if (commit ~= "") then
|
|
||||||
safeset("archivename", repo .. "-%{commit}")
|
|
||||||
safeset("archiveurl", "%{forgeurl}/+archive/%{commit}.%{archiveext}")
|
|
||||||
else
|
|
||||||
safeset("archivename", repo .. "-v%{version}")
|
|
||||||
safeset("archiveurl", "%{forgeurl}/+archive/v%{version}.%{archiveext}")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
if (forge == "bitbucket.org") then
|
|
||||||
forgeurl = string.match(forgeurl, "https://[^/]+/[^/]+/[^/#?]+")
|
|
||||||
if (forgeurl == nil) then
|
|
||||||
if not silent then
|
|
||||||
rpm.expand("%{error:BitBucket URLs must match https://bitbucket.org/owner/repo !\\n}")
|
|
||||||
end
|
|
||||||
else
|
|
||||||
explicitset("forgeurl", forgeurl)
|
|
||||||
if (commit == "") then
|
|
||||||
rpm.expand("%{error:All BitBucket URLs require commit value knowledge: you need to define %{commit}!\\n}")
|
|
||||||
end
|
|
||||||
local shortcommit = string.sub(commit, 1, 12)
|
|
||||||
safeset("archiveext", "tar.bz2")
|
|
||||||
-- Default to git even though BitBucket allows choosing between several SCMs
|
|
||||||
-- Set scm to hg for example before calling the macro if your project does not use git
|
|
||||||
safeset("scm", "git")
|
|
||||||
local owner = string.match(forgeurl, "^[^:]+://[^/]+/([^/]+)")
|
|
||||||
local repo = string.match(forgeurl, "^[^:]+://[^/]+/[^/]+/([^/]+)")
|
|
||||||
safeset("archivename", owner .. "-" .. repo .. "-" .. shortcommit)
|
|
||||||
safeset("forgesetupargs", "-n %{archivename}")
|
|
||||||
if (tag ~= "") then
|
|
||||||
safeset("archiveurl", "%{forgeurl}/get/%{tag}.%{archiveext}")
|
|
||||||
else
|
|
||||||
safeset("archiveurl", "%{forgeurl}/get/%{commit}.%{archiveext}")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
if (forge == "pagure.io") then
|
|
||||||
if not silent then
|
|
||||||
rpm.expand("%{error:https://pagure.io/pagure/issue/861 needs to be resolved before the “pagure.io”\\nsoftware publishing service can be supported.\\n}")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
-- Final tests to check forgeurl was successfuly parsed
|
|
||||||
if not silent then
|
|
||||||
if (rpm.expand("%{?archivename}") == "") or (rpm.expand("%{?archiveurl}") == "") then
|
|
||||||
rpm.expand("%{error:Automation for the “" .. forge .. "”\\nsoftware publishing service is not implemented yet.\\nPlease extend the %%forgemeta macro!\\n}")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
-- Set defaults if forgeurl is missing or does not parse
|
|
||||||
local archivename = rpm.expand("%{?archivename}")
|
|
||||||
safeset("archiveext", "tar.gz")
|
|
||||||
if (archivename ~= "") then
|
|
||||||
safeset("forgesetupargs", "-n %{archivename}")
|
|
||||||
end
|
|
||||||
if (commit ~= "") or (tag ~= "") then
|
|
||||||
safeset("scm", "git")
|
|
||||||
end
|
|
||||||
-- Source URL processing (computing the forgesource spec variable)
|
|
||||||
local archiveurl = rpm.expand("%{?archiveurl}")
|
|
||||||
local archiveext = rpm.expand("%{?archiveext}")
|
|
||||||
if (archivename ~= "") and (archiveurl ~= "") then
|
|
||||||
if (string.match(archiveurl, "/([^/]+)$") == archivename .. "." .. archiveext) then
|
|
||||||
safeset("forgesource", "%{archiveurl}")
|
|
||||||
else
|
|
||||||
safeset("forgesource", "%{?archiveurl}#/%{?archivename}.%{archiveext}")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
-- dist processing (computing the correct pefix for snapshots)
|
|
||||||
local distprefix = rpm.expand("%{?tag}")
|
|
||||||
local version = rpm.expand("%{?version}")
|
|
||||||
if (distprefix == version) or (distprefix == "v" .. version) then
|
|
||||||
distprefix = ""
|
|
||||||
end
|
|
||||||
if (distprefix == "") then
|
|
||||||
distprefix = string.sub(rpm.expand("%{?commit}"), 1, 7)
|
|
||||||
end
|
|
||||||
if (distprefix ~= "") then
|
|
||||||
local dist = ".%([ -r %{_sourcedir}/%{archivename}.%{archiveext} ] && date +%Y%m%d -u -r %{_sourcedir}/%{archivename}.%{archiveext})%{scm}" .. string.gsub(distprefix, "-",".") .. rpm.expand("%{?dist}")
|
|
||||||
explicitset("dist", dist)
|
|
||||||
end
|
|
||||||
-- Final spec variable summary if the macro was called with -i
|
|
||||||
if informative then
|
|
||||||
rpm.expand("%{echo:Forge-specific packaging variables\\n}")
|
|
||||||
rpm.expand("%{echo: forgeurl: %{?forgeurl}\\n}")
|
|
||||||
rpm.expand("%{echo: forgesource: %{?forgesource}\\n}")
|
|
||||||
rpm.expand("%{echo: forgesetupargs: %{?forgesetupargs}\\n}")
|
|
||||||
rpm.expand("%{echo:Generic variables\\n}")
|
|
||||||
rpm.expand("%{echo: archivename: %{?archivename}\\n}")
|
|
||||||
rpm.expand("%{echo: archiveext: %{?archiveext}\\n}")
|
|
||||||
rpm.expand("%{echo: archiveurl: %{?archiveurl}\\n}")
|
|
||||||
rpm.expand("%{echo: scm: %{?scm}\\n}")
|
|
||||||
rpm.expand("%{echo: tag: %{?tag}\\n}")
|
|
||||||
rpm.expand("%{echo: commit: %{?commit}\\n}")
|
|
||||||
rpm.expand("%{echo: dist: %{?dist} (snapshot date is computed once %%{_sourcedir}/%%{archivename}.%%{archiveext} is available)\\n}")
|
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
|
|
||||||
# Convenience macro to relay computed arguments to %setup
|
# Convenience macro to relay computed arguments to %setup
|
||||||
%forgesetup(a:b:cDn:Tq) %setup %{?forgesetupargs} %{-a} %{-b} %{-c} %{-D} %{-n} %{-T} %{-q}
|
# Optional parameters:
|
||||||
|
# -a process all sources in one go, instead of using separate -z calls
|
||||||
|
# -z <number> read %{?forgesetupargs<number>}
|
||||||
|
# -v be verbose
|
||||||
|
%forgesetup(az:v) %{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
|
||||||
|
}
|
||||||
|
|
||||||
# Convenience macro to relay computed arguments to %autosetup
|
# Convenience macro to relay computed arguments to %autosetup
|
||||||
%forgeautosetup(a:b:cDn:TvNS:p:) %autosetup %{?forgesetupargs} %{-a} %{-b} %{-c} %{-D} %{-n} %{-T} %{-v} %{-N} %{-S} %{-p}
|
# Parameters relayed to %autosetup: -v -N -S -p
|
||||||
|
# Optional parameters:
|
||||||
|
# -z <number> read %{?forgesetupargs<number>}
|
||||||
|
%forgeautosetup(z:vNS:p:q) %{lua:
|
||||||
|
print(rpm.expand("%autosetup %{-v} %{-N} %{?-S} %{?-p} %{?forgesetupargs" .. rpm.expand("%{-z*}") .. "}\\n"))
|
||||||
|
}
|
||||||
|
|
||||||
|
# List files matching inclusion globs, excluding files matching exclusion blogs
|
||||||
|
# Parameters:
|
||||||
|
# -i "<globs>" include shell globs (also takes all other macro arguments)
|
||||||
|
# -x "<globs>" exclude shell globs
|
||||||
|
%listfiles(i:x:) %{expand:
|
||||||
|
while IFS= read -r -d $'\\n' finc ; do
|
||||||
|
printf "%s\\n" %{?-x*} \\
|
||||||
|
| xargs -i realpath --relative-base=. '{}' \\
|
||||||
|
| grep "${finc}" >/dev/null || echo "${finc}"
|
||||||
|
done <<< $(printf "%s\\n" %{?-i*} %* | xargs -i realpath --relative-base=. '{}' | sort -u)
|
||||||
|
}
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
# arches that ldc builds on
|
# arches that ldc builds on
|
||||||
%ldc_arches %{ix86} x86_64 %{arm}
|
%ldc_arches %{ix86} x86_64 %{arm} aarch64
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
Summary: Red Hat specific rpm configuration files
|
Summary: Red Hat specific rpm configuration files
|
||||||
Name: redhat-rpm-config
|
Name: redhat-rpm-config
|
||||||
Version: 117
|
Version: 125
|
||||||
Release: 1.0.riscv64%{?dist}
|
Release: 1.0.riscv64%{?dist}
|
||||||
# No version specified.
|
# No version specified.
|
||||||
License: GPL+
|
License: GPL+
|
||||||
|
@ -73,6 +73,10 @@ Source602: libsymlink.attr
|
||||||
# BRPs
|
# BRPs
|
||||||
Source700: brp-ldconfig
|
Source700: brp-ldconfig
|
||||||
|
|
||||||
|
# Convenience lua functions
|
||||||
|
Source800: common.lua
|
||||||
|
Source801: forge.lua
|
||||||
|
|
||||||
# Documentation
|
# Documentation
|
||||||
Source900: buildflags.md
|
Source900: buildflags.md
|
||||||
|
|
||||||
|
@ -150,6 +154,10 @@ mkdir -p %{buildroot}%{_fileattrsdir}
|
||||||
install -p -m 644 -t %{buildroot}%{_fileattrsdir} *.attr
|
install -p -m 644 -t %{buildroot}%{_fileattrsdir} *.attr
|
||||||
install -p -m 755 -t %{buildroot}%{_rpmconfigdir} kmod.prov
|
install -p -m 755 -t %{buildroot}%{_rpmconfigdir} kmod.prov
|
||||||
|
|
||||||
|
mkdir -p %{buildroot}%{_rpmluadir}/fedora/{rpm,srpm}
|
||||||
|
install -p -m 644 -t %{buildroot}%{_rpmluadir}/fedora common.lua
|
||||||
|
install -p -m 644 -t %{buildroot}%{_rpmluadir}/fedora/srpm forge.lua
|
||||||
|
|
||||||
%files
|
%files
|
||||||
%dir %{rrcdir}
|
%dir %{rrcdir}
|
||||||
%{rrcdir}/macros
|
%{rrcdir}/macros
|
||||||
|
@ -169,6 +177,12 @@ install -p -m 755 -t %{buildroot}%{_rpmconfigdir} kmod.prov
|
||||||
%{_rpmconfigdir}/macros.d/macros.forge
|
%{_rpmconfigdir}/macros.d/macros.forge
|
||||||
%{_rpmconfigdir}/macros.d/macros.ldconfig
|
%{_rpmconfigdir}/macros.d/macros.ldconfig
|
||||||
%{_rpmconfigdir}/macros.d/macros.vpath
|
%{_rpmconfigdir}/macros.d/macros.vpath
|
||||||
|
%dir %{_rpmluadir}/fedora
|
||||||
|
%dir %{_rpmluadir}/fedora/srpm
|
||||||
|
%dir %{_rpmluadir}/fedora/rpm
|
||||||
|
%{_rpmluadir}/fedora/*.lua
|
||||||
|
%{_rpmluadir}/fedora/srpm/*lua
|
||||||
|
|
||||||
%doc buildflags.md
|
%doc buildflags.md
|
||||||
|
|
||||||
%files -n kernel-rpm-macros
|
%files -n kernel-rpm-macros
|
||||||
|
@ -183,12 +197,39 @@ install -p -m 755 -t %{buildroot}%{_rpmconfigdir} kmod.prov
|
||||||
%{_rpmconfigdir}/macros.d/macros.kmp
|
%{_rpmconfigdir}/macros.d/macros.kmp
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Mon Jul 23 2018 David Abdurachmanov <david.abdurachmanov@gmail.com> - 117-1.0.riscv64
|
* Thu Nov 29 2018 David Abdurachmanov <david.abdurachmanov@gmail.com> - 125-1.0.riscv64
|
||||||
- Disable perl_default_subpackage_tests (test suite subpackage for perl packages)
|
- Disable perl_default_subpackage_tests (test suite subpackage for perl packages)
|
||||||
- Disable %check for riscv64
|
- Disable %check for riscv64
|
||||||
- Add -fasynchronous-unwind-tables -fstack-clash-protection to riscv64 (other
|
- Add -fasynchronous-unwind-tables -fstack-clash-protection to riscv64 (other
|
||||||
arches seem to have them now)
|
arches seem to have them now)
|
||||||
|
|
||||||
|
* Thu Nov 15 2018 Miro Hrončok <mhroncok@redhat.com> - 125-1
|
||||||
|
- Make automagic Python bytecompilation optional
|
||||||
|
https://fedoraproject.org/wiki/Changes/No_more_automagic_Python_bytecompilation_phase_2
|
||||||
|
|
||||||
|
* Thu Nov 08 2018 Jason L Tibbitts III <tibbs@math.uh.edu> - 124-1
|
||||||
|
- forge: add more distprefix cleaning (bz1646724)
|
||||||
|
|
||||||
|
* Mon Oct 22 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 123-1
|
||||||
|
- Add -q option to %%forgesetup
|
||||||
|
|
||||||
|
* Sat Oct 20 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 122-1
|
||||||
|
- Allow multiple calls to forge macros
|
||||||
|
|
||||||
|
* Thu Oct 11 2018 Jan Pazdziora <jpazdziora@redhat.com> - 121-1
|
||||||
|
- Add %_swidtagdir for directory for SWID tag files describing the
|
||||||
|
installation.
|
||||||
|
|
||||||
|
* Mon Sep 10 2018 Miro Hrončok <mhroncok@redhat.com> - 120-1
|
||||||
|
- Make ambiguous python shebangs error
|
||||||
|
https://fedoraproject.org/wiki/Changes/Make_ambiguous_python_shebangs_error
|
||||||
|
|
||||||
|
* Mon Aug 20 2018 Kalev Lember <klember@redhat.com> - 119-1
|
||||||
|
- Add aarch64 to ldc arches
|
||||||
|
|
||||||
|
* Wed Aug 15 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 118-1
|
||||||
|
- Enable --as-needed by default
|
||||||
|
|
||||||
* Mon Jul 16 2018 Miro Hrončok <mhroncok@redhat.com> - 117-1
|
* Mon Jul 16 2018 Miro Hrončok <mhroncok@redhat.com> - 117-1
|
||||||
- Mangle /bin shebnags to /usr/bin ones (#1581757)
|
- Mangle /bin shebnags to /usr/bin ones (#1581757)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue