diff --git a/SOURCES/propagate_ldflags.patch b/SOURCES/propagate_ldflags.patch new file mode 100644 index 0000000..aff5ce8 --- /dev/null +++ b/SOURCES/propagate_ldflags.patch @@ -0,0 +1,70 @@ +commit 4788eba65956aa9347bbb5856c9208888a20330b +Author: Gary V. Vaughan +Date: Thu Sep 9 12:40:55 2021 -0700 + + maint: sync luke with upstream. + + * build-aux/luke: Propagates LDFLAGS to module compilation commands + + Signed-off-by: Gary V. Vaughan + +diff --git a/build-aux/luke b/build-aux/luke +index 9f476f7..9d74aa2 100755 +--- a/build-aux/luke ++++ b/build-aux/luke +@@ -17,10 +17,10 @@ end,fatal=fatal,} + end + package.preload['luke.cli']=function() + local _ENV=require'std.normalize'{'luke._base','luke.lukefile','luke.platforms','std.functional',}local function version()print[[ +-luke (Luke) 0.2.0 ++luke (Luke) 0.2.2 + Written by Gary V. Vaughan , 2014 + +-Copyright (C) 2020, Gary V. Vaughan ++Copyright (C) 2021, Gary V. Vaughan + Luke comes with ABSOLUTELY NO WARRANTY. + You may redistribute copies of Luke under the terms of the MIT license; + it may be used for any purpose at absolutely no cost, without permission. +@@ -102,7 +102,7 @@ abspath=abspath..'.lua'return src,(gsub(abspath,'/[^/]+%.lua$',''))end + local function module_to_path(module,sources,objdir)return dropuntil(sources,function(source)return case(source,{['.*%.[ch]']=bind(c_source,{module,objdir}),['(.*%.[ch])%.in']=bind(c_source,{module,objdir}),['.*%.lua']=bind(lua_source,{module}),['(.*%.lua)%.in']=bind(lua_source,{module}),function(src)fatal("unsupported source type '%s'",src)end,})end)end + return{build_c_module=function(L,env,luke,name)local rules=luke.modules[name]local c_module=c_module_path(luke.variables.objdir,name)local command={'$MAKEDIRS',dirname(c_module)}local status,err,out=spawn(env,unpack(command))if status~=0 then + stdout:write(concat(command,' ')..'\n')stderr:write(err..'\n')exit(status)end +-return run(L,env,flatten('$CC $CFLAGS $LIBFLAG $PKGFLAGS $CPPFLAGS',defines(env,except(list(rules.defines,luke.defines),nil)),incdirs(rules.incdirs,luke.incdirs),rules.sources,'-o',c_module,libdirs(rules.libdirs,luke.libdirs),'$LIBS',rules.libraries,luke.libraries))end,c_modules=function(modules)return filter(keys(modules),function(name)return dropuntil(modules[name].sources,bind(match,{[2]='%.[ch]$'}))end)end,incdirs=incdirs,install_modules=function(L,env,luke,modules)return reduce(keys(modules),0,function(status,name)if status==0 then ++return run(L,env,flatten('$CC $CFLAGS $LIBFLAG $PKGFLAGS $CPPFLAGS',defines(env,except(list(rules.defines,luke.defines),nil)),incdirs(rules.incdirs,luke.incdirs),rules.sources,'-o',c_module,'$LDFLAGS',libdirs(rules.libdirs,luke.libdirs),'$LIBS',rules.libraries,luke.libraries))end,c_modules=function(modules)return filter(keys(modules),function(name)return dropuntil(modules[name].sources,bind(match,{[2]='%.[ch]$'}))end)end,incdirs=incdirs,install_modules=function(L,env,luke,modules)return reduce(keys(modules),0,function(status,name)if status==0 then + local src,dir=module_to_path(name,modules[name].sources,luke.variables.objdir)if not exists(interpolate(env,dir))then + status=run(L,env,{'$MAKEDIRS',dir})end + if status==0 then +@@ -135,6 +135,15 @@ return with(File(progpath,'r'),function(h)return h and isfile(h.context)and prog + end)end)L.log(found and'found '..found or prog..' not found')return found~=nil + end + local function check_header_compile(L,env,config,header,extra_hdrs)return with(CTest(),function(conftest)conftest:write(format('%s\n#include "%s"\n',extra_hdrs,header))return logspawn(L,env,compile_command(L,env,config,conftest.filename))end)end ++local function check_struct_member_compile(L,env,config,structname,member,extra_hdrs)return with(CTest(),function(conftest)conftest:write(format([[ ++%s ++int main () { ++static %s aggr; ++if (sizeof aggr.%s) ++ return 0; ++return 0; ++} ++]],extra_hdrs,structname,member))return logspawn(L,env,compile_command(L,env,config,conftest.filename))end)end + local function try_link(L,env,config,lib,symbol)return with(CTest(),TmpFile(),function(conftest,a_out)conftest:write(format([[ + /* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC +@@ -225,7 +234,7 @@ end + CONFIGENV.libs=lib..CONFIGENV.libs + end + return found_library(L,lib)end +-end)or call(function()L.verbose'\n'fatal("required symbol '%s' not found in any of libc, lib%s",symbol,concat(libraries,', lib'))end)end},{checkfunc=function(L,env,config)checking(L,'for',config.checkfunc)return found_result(L,check_func_link(L,env,config,config.checkfunc))end}),{__call=function(self,L,env,config,prefix)return case(type(config),{['number']=function()return str(config)end,['string']=function()return config ++end)or call(function()L.verbose'\n'fatal("required symbol '%s' not found in any of libc, lib%s",symbol,concat(libraries,', lib'))end)end},{checkfunc=function(L,env,config)checking(L,'for',config.checkfunc)return found_result(L,check_func_link(L,env,config,config.checkfunc))end},{checkmember=function(L,env,config)checking(L,'for',config.checkmember)local extra_hdrs=concat(format_includes(config.includes),'\n')local i=find(config.checkmember,'%.')local structname=sub(config.checkmember,1,i-1)local member=sub(config.checkmember,i+1)return found_result(L,check_struct_member_compile(L,env,config,structname,member,extra_hdrs))end}),{__call=function(self,L,env,config,prefix)return case(type(config),{['number']=function()return str(config)end,['string']=function()return config + end,['table']=function()return dropuntil(self,function(fname)if config[fname]~=nil then + add_external_deps(env,config,prefix)return apply(self[fname],list(L,env,config))end + end)or fatal("unable to configure with keys '%s'",concat(keys(config),"', '"))end,function(type)fatal("unsupported configure type '%s'",type)end,})end,})return{config_compiler=function(L,env)local CC=env.CC +@@ -588,7 +597,7 @@ end + return setmetatable({append=function(seq,v)local n=(int(seq.n)or len(seq))+1 + seq.n,seq[n]=n,v + return seq +-end,arg=arg,assert=assert,char=string.char,close=io.close,concat=concat,copy=copy,dirsep=dirsep,exit=os.exit,format=string.format,getenv=os.getenv,getmetatable=getmetatable,getmetamethod=getmetamethod,gmatch=string.gmatch,gsub=string.gsub,int=int,iscallable=iscallable,len=len,lines=io.lines,list=pack,loadstring=loadstring,match=string.match,maxn=function(iterable)local n=0 ++end,arg=arg,assert=assert,char=string.char,close=io.close,concat=concat,copy=copy,dirsep=dirsep,exit=os.exit,find=string.find,format=string.format,getenv=os.getenv,getmetatable=getmetatable,getmetamethod=getmetamethod,gmatch=string.gmatch,gsub=string.gsub,int=int,iscallable=iscallable,len=len,lines=io.lines,list=pack,loadstring=loadstring,match=string.match,maxn=function(iterable)local n=0 + for k,v in next,iterable or{}do + local i=int(k)if i and i>n then + n=i diff --git a/SPECS/lua-posix.spec b/SPECS/lua-posix.spec index 2d9446e..6b1678c 100644 --- a/SPECS/lua-posix.spec +++ b/SPECS/lua-posix.spec @@ -6,7 +6,7 @@ Name: lua-posix Version: 35.0 -Release: 5%{?dist} +Release: 6%{?dist} Summary: A POSIX library for Lua License: MIT URL: http://luaforge.net/projects/luaposix/ @@ -15,15 +15,20 @@ BuildRequires: gcc BuildRequires: lua-devel %{?lua_requires} +# Fixes passing LDFLAGS into the build, in upstream release 35.1 +# https://github.com/luaposix/luaposix/commit/4788eba65956aa9347bbb5856c9208888a20330b +Patch0: propagate_ldflags.patch + %description This is a POSIX library for Lua which provides access to many POSIX features to Lua programs. %prep %setup -q -n luaposix-%{version} +%patch0 -p1 %build -build-aux/luke CFLAGS="%build_cflags" +build-aux/luke CFLAGS="%build_cflags" LDFLAGS="%build_ldflags" %install @@ -42,6 +47,11 @@ build-aux/luke install PREFIX=%{buildroot}%{_prefix} INST_LIBDIR=%{buildroot}%{l %changelog +* Mon Feb 14 2022 Andrew Hughes - 35.0-6 +- Pass LDFLAGS to the build so RPM linker flags are used and annocheck passes. +- Add patch from upstream to fix propagation of LDFLAGS into build system. +- Resolves: rhbz#2044879 + * Mon Aug 09 2021 Mohan Boddu - 35.0-5 - Rebuilt for IMA sigs, glibc 2.34, aarch64 flags Related: rhbz#1991688