1 Star 0 Fork 107

yinchuang/openEuler-rpm-config_test

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
brp-chrpath 1.71 KB
一键复制 编辑 原始数据 按行查看 历史
Funda Wang 提交于 2024-08-25 18:44 +08:00 . merge two messy repositories
#!/usr/bin/sh
# remove rpath specified
rpathSuffix=(
"/home/abuild/rpmbuild/BUILD",
"/home/lkp/rpmbuild/BUILD"
)
rpath=(
"/usr/lib64",
"/lib64",
"/usr/lib",
"/lib",
"/usr/lib/../lib64"
)
buildroot=$1
function rpathChange()
{
localSrcPath=$1
localDstPath=""
rpathArr=(`echo $localSrcPath | tr ':' ' '`)
for path in ${rpathArr[*]}
do
localflag=0
for suffix in ${rpathSuffix[*]}
do
if echo "$path" | grep $suffix &> /dev/null; then
localflag=1
break
fi
done
# Is the suffix path, delete
if [ $localflag -eq 1 ]; then
continue;
fi
#Is the standard path, delete
if echo "${rpath[@]}" | grep -w $path &> /dev/null; then
continue
fi
if [ x"$localDstPath" == x"" ]; then
localDstPath=$path
else
localDstPath=$localDstPath:$path
fi
done
echo $localDstPath
}
function removeRpathOrRunpath()
{
localfile=$1
rpathInfo=$(chrpath -l $localfile | grep "RPATH=")
runpathInfo=$(chrpath -l $localfile | grep "RUNPATH=")
currPath=""
realPath=""
needCh=0
if [ x"$rpathInfo" != x"" ]; then
needCh=1
currPath=$(echo $rpathInfo | awk -F "RPATH=" '{print $2}')
realPath=$(rpathChange $currPath)
fi
if [ x"$runpathInfo" != x"" ]; then
needCh=1
currPath=$(echo $runpathInfo | awk -F "RUNPATH=" '{print $2}')
realPath=$(rpathChange $currPath)
fi
if [ $needCh -eq 0 ]; then
return 0
fi
if [ x"$realPath" == x"" ]; then
chrpath -d $localfile
else
chrpath -r $realPath $localfile
fi
return 0
}
for file in $(find $buildroot/ -executable -type f -exec file {} ';' | grep "\<ELF\>" | awk -F ':' '{print $1}')
do
test -u $file
if [ $? -eq 0 ]; then
continue
fi
if [ -w "$file" ]; then
removeRpathOrRunpath $file
fi
done
exit 0
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/ychuawei/openEuler-rpm-config_test.git
git@gitee.com:ychuawei/openEuler-rpm-config_test.git
ychuawei
openEuler-rpm-config_test
openEuler-rpm-config_test
master

搜索帮助