1
0
Files
build.ems/rpmbuild/SPECS/omc.spec
2024-05-24 16:27:01 +08:00

211 lines
7.1 KiB
RPMSpec

%define __check_files %{nil}
%define __spec_build_pre %{nil}
%define __arch_install_post %{nil}
%define release_version 1
%define release_date %(echo `date +%%Y%%m%%d`)
%define project_lname omc
%define project_Uname OMC
Name: %{project_lname}
Summary: AGrandTech 5GC OMC
Version: 2.2405.3
Release: %{release_date}
Vendor: AGrandTech
URL: https://www.agrandtech.com/
License: commercial
Group: Applications/Communications
#BuildRoot: $PWD/rpmoutput
%description
AGrandTech's 5GC OMC
%prep
rm -rf ${RPM_BUILD_ROOT}/*
#rm -rf ${RPM_BUILD_ROOT}/lib
#rm -rf ${RPM_BUILD_ROOT}/usr
mkdir -p ${RPM_BUILD_ROOT}
cd ${RPM_BUILD_ROOT}
#mkdir -p usr/local/omc/
#mkdir -p usr/local/db/
#mkdir -p etc/nginx/conf.d
#mkdir -p lib/systemd/system/
#cd ${RPM_BUILD_DIR}
cp -rf ${RPM_BUILD_DIR}/* ${RPM_BUILD_ROOT}/
chmod +rx ${RPM_BUILD_ROOT}/usr/local/omc
chmod +rx ${RPM_BUILD_ROOT}/usr/local/omc/*
chmod +rx ${RPM_BUILD_ROOT}/usr/local/db/bin/*
chmod +rx ${RPM_BUILD_ROOT}/usr/local/bin/*
chmod -R 755 ${RPM_BUILD_ROOT}/usr/local/omc/htdocs/front
chmod +rx ${RPM_BUILD_ROOT}/usr/lib64/*
#cp -rf omc/.ssh ${RPM_BUILD_ROOT}/usr/local/omc/
#cp -rf omc/mmllog ${RPM_BUILD_ROOT}/usr/local/omc/
#cp -rf omc/mmlhome ${RPM_BUILD_ROOT}/usr/local/omc/
#cp -rf omc/bin ${RPM_BUILD_ROOT}/usr/local/omc/
#cp -rf omc/etc ${RPM_BUILD_ROOT}/usr/local/omc/
#cp -rf omc/htdocs ${RPM_BUILD_ROOT}/usr/local/omc/
#cp -rf omc/log ${RPM_BUILD_ROOT}/usr/local/omc/
#cp -rf omc/backup ${RPM_BUILD_ROOT}/usr/local/omc/
#cp -rf omc/upload ${RPM_BUILD_ROOT}/usr/local/omc/
#cp -rf omc/software ${RPM_BUILD_ROOT}/usr/local/omc/
#cp -rf omc/license ${RPM_BUILD_ROOT}/usr/local/omc/
#cp -rf omc/database ${RPM_BUILD_ROOT}/usr/local/omc/
#cp -rf db/* ${RPM_BUILD_ROOT}/usr/local/db/
#cp -f nginx/omc.conf ${RPM_BUILD_ROOT}/etc/nginx/conf.d/
#cp -f systemd/restagent.service ${RPM_BUILD_ROOT}/lib/systemd/system/restagent.service
#cp -f systemd/crontask.service ${RPM_BUILD_ROOT}/lib/systemd/system/crontask.service
#cp -f systemd/sshsvc.service ${RPM_BUILD_ROOT}/lib/systemd/system/sshsvc.service
#cp -f systemd/captrace.service ${RPM_BUILD_ROOT}/lib/systemd/system/captrace.service
#cp -f systemd/adb.service ${RPM_BUILD_ROOT}/lib/systemd/system/adb.service
%build
#cd %{buildroot}/..
#make
# 安装完成后执行
%post
RedisConfDir=/usr/local/db/bin/conf
OMCEtcDir=/usr/local/omc/etc
FERootDir=/usr/local/omc/htdocs/front
UsrLib64Dir=/usr/lib64
OmcBinDir=/usr/local/omc/bin
OMCStaticDir=/usr/local/omc/static
UsrLocalBinDir=/usr/local/bin
OmcDaemon=omcd
NginxEtcDir=/etc/nginx
CFileList="restconf.yaml crontask.yaml tasks.yaml sshsvc.yaml capconf.yaml"
LogoFileList="zh_brand.png zh_icon.png en_brand.png en_icon.png"
for CFile in ${CFileList}; do
if [ ! -e "${OMCEtcDir}/${CFile}" ]; then
cp -f ${OMCEtcDir}/default/${CFile} ${OMCEtcDir}
else
mv -f ${OMCEtcDir}/${CFile} ${OMCEtcDir}/${CFile}.bak
cp -f ${OMCEtcDir}/default/${CFile} ${OMCEtcDir}
fi
done
if [ ! -e "${RedisConfDir}/adb.conf" ]; then
cp ${RedisConfDir}/default/adb.conf ${RedisConfDir};
fi
sed -i 's/replica-read-only yes/replica-read-only no/g' ${RedisConfDir}/adb.conf
LINE="masterauth helloearth"
FILE="${RedisConfDir}/adb.conf"
if ! grep -qxF "$LINE" "$FILE"; then
# 如果不存在,将其添加到文件末尾
echo "$LINE" >> "$FILE"
fi
if [ ! -e "${FERootDir}/config.js" ]; then cp ${FERootDir}/default/config.js ${FERootDir}; fi
for LogoFile in ${LogoFileList}; do
if [ ! -e "${OMCStaticDir}/logo/${LogoFile}" ]; then
cp ${OMCStaticDir}/agt.d/logo/${LogoFile} ${OMCStaticDir}/logo;
fi
done
if ! id -u omc >/dev/null 2>&1 ; then useradd -d /opt/omc -m -s /bin/bash -p1000ftp@kp omc; else echo "user omc exist"; fi
mkdir -p /opt/omc/ftp
mkdir -p /opt/omc/ftp/log
#chmod +rx /usr/local/omc
#chmod +rx /usr/local/omc/*
#chmod +rx /usr/local/db/bin/*
#chmod +rx /usr/local/bin/*
#chmod -R 755 /usr/local/omc/htdocs/front
cd ${UsrLib64Dir}
if [ ! -e libwireshark.so.15 ]; then ln -s libwireshark.so.15.0.12 libwireshark.so.15; fi
if [ ! -e libwireshark.so ]; then ln -s libwireshark.so.15.0.12 libwireshark.so; fi
if [ ! -e libwiretap.so.12 ]; then ln -s libwiretap.so.12.0.12 libwiretap.so.12; fi
if [ ! -e libwiretap.so ]; then ln -s libwiretap.so.12.0.12 libwiretap.so; fi
if [ ! -e libwsutil.so.13 ]; then ln -s libwsutil.so.13.1.0 libwsutil.so.13; fi
if [ ! -e libwsutil.so ]; then ln -s libwsutil.so.13.1.0 libwsutil.so; fi
cd ${UsrLocalBinDir}
if [ ! -e ${OmcDaemon} ]; then ln -s ${OmcBinDir}/omcsvc.sh ${OmcDaemon}; fi
sed -i 's/listen 80;/listen 1080;/g' ${NginxEtcDir}/nginx.conf
sed -i 's/listen \[::\]:80;/listen \[::\]:1080;/g' ${NginxEtcDir}/nginx.conf
systemctl daemon-reload
systemctl enable restagent.service
systemctl enable crontask.service
systemctl enable sshsvc.service
systemctl enable captrace.service
systemctl enable adb.service
systemctl stop restagent.service
systemctl stop crontask.service
systemctl stop sshsvc.service
systemctl stop captrace.service
systemctl stop nginx.service
systemctl stop adb.service
systemctl start adb.service
systemctl start nginx.service
systemctl start captrace.service
systemctl start sshsvc.service
systemctl start crontask.service
systemctl start restagent.service
# 卸载时执行
%postun
UsrLib64Dir=/usr/lib64
cd ${UsrLib64Dir}
rm libwireshark.so.15
rm libwireshark.so
rm libwiretap.so.12
rm libwiretap.so
rm libwsutil.so.13
rm libwsutil.so
if [ "$1" = "0" ] ; then
sudo systemctl stop restagent.service
sudo systemctl stop crontask.service
sudo systemctl stop sshsvc.service
sudo systemctl stop captrace.service
sudo systemctl stop adb.service
sudo systemctl stop nginx.service
#rm -rf /usr/local/omc
rm -rf /etc/nginx/conf.d/omc.conf
sudo systemctl disable restagent.service
sudo systemctl disable crontask.service
sudo systemctl disable sshsvc.service
sudo systemctl disable captrace.service
sudo systemctl disable adb.service
sudo systemctl daemon-reload
else
sudo systemctl daemon-reload
sudo systemctl stop nginx.service
sudo systemctl stop restagent.service
sudo systemctl stop crontask.service
sudo systemctl stop sshsvc.service
sudo systemctl stop captrace.service
sudo systemctl stop adb.service
sudo systemctl start nginx.service
sudo systemctl start adb.service
sudo systemctl start crontask.service
sudo systemctl start sshsvc.service
sudo systemctl start captrace.service
sudo systemctl start restagent.service
fi
# 规定那些文件必须放入安装程序中,如果没有就报错
%files
%defattr(-,root,root)
/usr/local/omc/.ssh
/usr/local/omc/mmllog
/usr/local/omc/mmlhome
/usr/local/omc/bin
/usr/local/omc/etc
/usr/local/omc/htdocs
/usr/local/omc/log
/usr/local/omc/backup
/usr/local/omc/upload
/usr/local/omc/software
/usr/local/omc/license
/usr/local/omc/database
/usr/local/omc/static
/usr/local/omc/depends
/usr/local/db
/etc/nginx/conf.d/omc.conf
/lib/systemd/system/restagent.service
/lib/systemd/system/crontask.service
/lib/systemd/system/sshsvc.service
/lib/systemd/system/captrace.service
/lib/systemd/system/adb.service
/usr/lib64/libwireshark.so.15.0.12
/usr/lib64/libwiretap.so.12.0.12
/usr/lib64/libwsutil.so.13.1.0
/usr/local/bin/tshark