2020-01-13 10:27:00 -05:00
%define with_san %{?_with_san:1} %{?!_with_san:0}
%define with_ub %{?_with_ub:1} %{?!_with_ub:0}
%define debug_package %{nil}
Name : custom_build_tool
2020-10-21 17:01:58 +08:00
Summary : custom build tool for obs
License : Mulan PSL v2
2020-01-13 10:27:00 -05:00
Group : System/Management
2020-10-21 17:01:58 +08:00
Version : 1.0.0
2022-07-29 15:35:59 +08:00
Release : 20
2020-10-21 17:01:58 +08:00
BuildRoot : %{_tmppath} /%{name}
Source0 : https://gitee.com/openeuler/custom_build_tool/repository/archive/v%{version} .tar.gz#/%{name}-%{version}.tar.gz
2020-01-13 10:27:00 -05:00
BuildRequires : util-linux coreutils
BuildRequires : -custom_build_tool-nocheck
BuildRequires : -obs-env
BuildRequires : -gcc_secure
BuildRequires : -bep-env
BuildRequires : -custom_build_tool-san
2020-10-21 17:01:58 +08:00
Requires : bash rpm-build sed util-linux coreutils
2020-01-13 10:27:00 -05:00
%description
provide other method to deal parameter passing for OBS build
%package nocheck
Group : Development/Libraries
BuildArch : noarch
Requires : bash rpm-build sed util-linux coreutils
Requires : custom_build_tool
Summary : add nocheck to rpmbuild
%description nocheck
%package nodebug
Group : Development/Libraries
BuildArch : noarch
Requires : bash rpm-build sed util-linux coreutils
Requires : custom_build_tool
Summary : change debug error to warning for rpmbuild
%description nodebug
%package target
Group : Development/Libraries
BuildArch : noarch
Requires : bash rpm-build sed util-linux coreutils
Requires : custom_build_tool
Summary : add target to rpmbuild
%description target
%package uploadbuild
Group : Development/Libraries
Requires : util-linux rpm grep binutils gcc coreutils rpm-build pbzip2
Requires : custom_build_tool
BuildRequires : util-linux coreutils
Summary : Collect the rmpbuild/BUILD directory
%description uploadbuild
Collect the rmpbuild/BUILD directory and upload it to the specified server
%package san
Group : Development/Libraries
Requires : util-linux rpm grep binutils gcc coreutils rpm-build
Requires : custom_build_tool
Requires : gcc_secure
BuildRequires : util-linux coreutils
Summary : Build with san
%description san
%prep
2020-10-21 17:01:58 +08:00
%setup -c
2020-01-13 10:27:00 -05:00
%build
%install
mkdir -p %{buildroot} /opt/
mkdir -p %{buildroot} /opt/custom_build_tool
2020-10-21 17:01:58 +08:00
install -m 700 %{name} /*.sh %{buildroot} /opt/custom_build_tool/
install -m 600 %{name} /rpmbuild-nocheck %{buildroot} /opt/custom_build_tool/
install -m 600 %{name} /rpmbuild-target %{buildroot} /opt/custom_build_tool/
2020-01-13 10:27:00 -05:00
%if %{with_san}
2020-10-21 17:01:58 +08:00
install -m 600 %{name} /rpmbuild-san %{buildroot} /opt/custom_build_tool/
2020-01-13 10:27:00 -05:00
%endif
%post
bash /opt/custom_build_tool/custom_build_tool.sh
%post nocheck
sed -i '/####add parameter start/r /opt/custom_build_tool/rpmbuild-nocheck' /usr/bin/rpmbuild
%post target
sed -i '/####add parameter start/r /opt/custom_build_tool/rpmbuild-target' /usr/bin/rpmbuild
2022-01-19 11:33:42 +08:00
echo " a b u i l d A L L = ( A L L ) N O P A S S W D : / o p t / c u s t o m _ b u i l d _ t o o l / r p m b u i l d - n o c h e c k " >> /etc/sudoers
2020-01-13 10:27:00 -05:00
%if %{with_ub}
%post uploadbuild
sed -i '/####add parameter start/r /opt/custom_build_tool/rpmbuild-ub' /usr/bin/rpmbuild
bin_rpmbuild=/usr/bin/rpmbuild
cmd_rpmbuild=/usr/bin/rpmbuild-ub
cat <<END1 > ${cmd_rpmbuild}
#!/bin/sh -x
${bin_rpmbuild} " \ $ @ "
ret=\$?
if [ \$ret -ne 0 ]; then
exit \$ret
fi
source /opt/custom_build_tool/upload_build.sh
END1
chmod 755 ${cmd_rpmbuild}
%endif
%if %{with_san}
%post san
cp -a /usr/bin/mv /usr/bin/gmv
sed -i '/####add parameter start/r /opt/custom_build_tool/rpmbuild-san' /usr/bin/rpmbuild
old_gcc=/usr/bin/gcc
old_gplus=/usr/bin/g++
old_rpmbuild=/usr/bin/rpmbuild
old_cplus=/usr/bin/c++
ulimit -v unlimited
ulimit -a
sed '2 i export ASAN_OPTIONS=abort_on_error=0:disable_coredump=0:detect_leaks=0\nexport LD_PRELOAD=/usr/lib64/libasan.so.4' -i /usr/lib/rpm/find-debuginfo.sh
head /usr/lib/rpm/find-debuginfo.sh
sed -i " $ a * h a r d a s u n l i m i t e d \n * s o f t a s u n l i m i t e d " /etc/security/limits.conf
cat <<END1 > ${old_rpmbuild}-san
#!/bin/sh -x
ulimit -v unlimited
ulimit -a
export ASAN_OPTIONS=detect_leaks=0:halt_on_error=0
${old_rpmbuild} " \ $ @ "
ret=\$?
echo " S A N v e r s i o n h a s b e e n c o m p i l e d d d d d d d d d d d d d d d d d d d d d d d d d d d d "
exit \$ret
END1
chmod 755 ${old_rpmbuild}-san
# add gcc args
mv $old_gcc $old_gcc" _ s a n "
cat <<END1 > $old_gcc
#!/bin/sh
echo " \ $ @ " | grep conftest &>/tmp/tmp.tmp
ret=\$?
if [ \$ret -eq 0 ]; then
${old_gcc}_san " \ $ @ "
else
${old_gcc}_san %{?_with_san_args} " \ $ @ "
fi
END1
chmod 755 $old_gcc $old_gcc" _ s a n "
# add gplus args
if [ -f $old_gplus ]; then
mv $old_gplus $old_gplus" _ s a n "
cat <<END1 > $old_gplus
#!/bin/sh
echo " \ $ @ " | grep conftest &>/tmp/tmp.tmp
ret=\$?
if [ \$ret -eq 0 ]; then
${old_gplus}_san " \ $ @ "
else
${old_gplus}_san %{?_with_san_args} " \ $ @ "
fi
END1
chmod 755 $old_gplus $old_gplus" _ s a n "
fi
# add cplus args
if [ -f $old_cplus ]; then
mv $old_cplus $old_cplus" _ s a n "
cat <<END1 > $old_cplus
#!/bin/sh
echo " \ $ @ " | grep conftest &>/tmp/tmp.tmp
ret=\$?
if [ \$ret -eq 0 ]; then
${old_cplus}_san " \ $ @ "
else
${old_cplus}_san %{?_with_san_args} " \ $ @ "
fi
END1
chmod 755 $old_cplus $old_cplus" _ s a n "
fi
%endif
%preun
%postun
rm -rf /opt/custom_build_tool/custom_build_tool.sh
%postun nocheck
rm -rf /opt/custom_build_tool/rpmbuild-nocheck
%postun target
rm -rf /opt/custom_build_tool/rpmbuild-target
%if %{with_san}
%postun san
rm -rf /opt/custom_build_tool/rpmbuild-san
%endif
%if %{with_ub}
%postun uploadbuild
rm -rf /opt/custom_build_tool/rpmbuild-ub
%endif
%files
%defattr (-,root,root)
%dir /opt
%dir /opt/custom_build_tool
/opt/custom_build_tool/custom_build_tool.sh
%files nocheck
%defattr (-,root,root)
%dir /opt
%dir /opt/custom_build_tool
/opt/custom_build_tool/rpmbuild-nocheck
%files nodebug
%defattr (-,root,root)
%if %{with_ub}
%files uploadbuild
%defattr (-,root,root)
%dir /opt
%dir /opt/custom_build_tool
/opt/custom_build_tool/rpmbuild-ub
/opt/custom_build_tool/upload_build.sh
/opt/custom_build_tool/client-tool-linux
/opt/custom_build_tool/cmdlist
%endif
%if %{with_san}
%files san
%defattr (-,root,root)
%dir /opt
%dir /opt/custom_build_tool
/opt/custom_build_tool/rpmbuild-san
%endif
%files target
%defattr (-,root,root)
%dir /opt
%dir /opt/custom_build_tool
/opt/custom_build_tool/rpmbuild-target
%clean
rm -rf $RPM_BUILD_ROOT /*
2020-10-21 17:01:58 +08:00
rm -rf %{_tmppath} /%{name}
rm -rf $RPM_BUILD_DIR /%{name}
2020-01-13 10:27:00 -05:00
%changelog
2022-07-29 15:35:59 +08:00
* Fri Jul 29 2022 xu_ping <xuping33@h-partners.com> - 1.0.0-20
- Type: fix warning
- ID: NA
- SUG: NA
- DESC: fix install custom_build_tool warning due to new rpm-build not provides find-debuginfo.sh
2022-01-19 11:33:42 +08:00
* Mon Jan 24 2022 senlin <xiasenlin1@huawei.com> - 1.0.0-19
- Type: Correction of bad behavior
- ID: NA
- SUG: NA
- DESC: Specify the specific sudo commands for abuild users
2020-10-22 14:48:44 +08:00
* Fri Oct 16 2020 zhuchunyi <zhuchunyi@huawei.com> - 1.0.0-18
2020-10-21 17:01:58 +08:00
- Type:new package
2020-01-13 10:27:00 -05:00
- ID:NA
- SUG:NA
2020-10-21 17:01:58 +08:00
- DESC: package init