kuiper.spec 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. %define debug_package %{nil}
  2. %define _user %{_name}
  3. %define _group %{_name}
  4. %define _conf_dir %{_sysconfdir}/%{_name}
  5. %define _log_dir %{_var}/log/%{_name}
  6. %define _lib_home /usr/lib/%{_name}
  7. %define _var_home %{_sharedstatedir}/%{_name}
  8. %define _build_id_links none
  9. Name: %{_package_name}
  10. Version: %{_version}
  11. Release: %{_release}%{?dist}
  12. Summary: kuiper
  13. Group: System Environment/Daemons
  14. License: Apache License Version 2.0
  15. URL: https://www.emqx.io
  16. BuildRoot: %{_tmppath}/%{_name}-%{_version}-root
  17. Provides: %{_name}
  18. AutoReq: 0
  19. %description
  20. A lightweight IoT edge analytics software
  21. %prep
  22. %build
  23. cd %{_code_source}
  24. GO111MODULE=on CGO_ENABLED=1 go build -ldflags="-s -w -X main.Version=%{_version}-%{_release} -X main.LoadFileType=absolute" -o %{_code_source}/cli %{_code_source}/xstream/cli/main.go
  25. GO111MODULE=on CGO_ENABLED=1 go build -ldflags="-s -w -X main.Version=%{_version}-%{_release} -X main.LoadFileType=absolute" -o %{_code_source}/server %{_code_source}/xstream/server/main.go
  26. cd -
  27. %install
  28. mkdir -p %{buildroot}%{_lib_home}/bin
  29. mkdir -p %{buildroot}%{_log_dir}
  30. mkdir -p %{buildroot}%{_unitdir}
  31. mkdir -p %{buildroot}%{_conf_dir}
  32. mkdir -p %{buildroot}%{_bindir}
  33. mkdir -p %{buildroot}%{_var_home}
  34. mkdir -p %{buildroot}%{_var_home}/data
  35. mkdir -p %{buildroot}%{_var_home}/plugins
  36. mkdir -p %{buildroot}%{_initddir}
  37. cp %{_code_source}/deploy/packages/service_helper.sh %{buildroot}%{_lib_home}/bin/
  38. cp %{_code_source}/cli %{buildroot}%{_lib_home}/bin/
  39. cp %{_code_source}/server %{buildroot}%{_lib_home}/bin/
  40. cp -R %{_code_source}/etc/* %{buildroot}%{_conf_dir}/
  41. cp -R %{_code_source}/plugins/* %{buildroot}%{_var_home}/plugins/
  42. install -m644 %{_service_src} %{buildroot}%{_service_dst}
  43. %pre
  44. if [ $1 = 1 ]; then
  45. # Initial installation
  46. /usr/bin/getent group %{_group} >/dev/null || /usr/sbin/groupadd -r %{_group}
  47. if ! /usr/bin/getent passwd %{_user} >/dev/null ; then
  48. /usr/sbin/useradd -r -g %{_group} -m -d %{_sharedstatedir}/%{_name} -c "%{_name}" %{_user}
  49. fi
  50. fi
  51. %post
  52. if [ $1 = 1 ]; then
  53. ln -s %{_lib_home}/bin/server %{_bindir}/kuiperd
  54. ln -s %{_lib_home}/bin/cli %{_bindir}/kuiper
  55. fi
  56. %{_post_addition}
  57. if [ -e %{_initddir}/%{_name} ] ; then
  58. /sbin/chkconfig --add %{_name}
  59. else
  60. systemctl enable %{_name}.service
  61. fi
  62. %preun
  63. %{_preun_addition}
  64. # Only on uninstall, not upgrades
  65. if [ $1 = 0 ]; then
  66. if [ -e %{_initddir}/%{_name} ] ; then
  67. /sbin/service %{_name} stop > /dev/null 2>&1
  68. /sbin/chkconfig --del %{_name}
  69. else
  70. systemctl disable %{_name}.service
  71. fi
  72. rm -f %{_bindir}/kuiperd
  73. rm -f %{_bindir}/kuiper
  74. fi
  75. exit 0
  76. %files
  77. %defattr(-,root,root)
  78. %{_service_dst}
  79. %{_lib_home}
  80. %attr(0700,%{_user},%{_group}) %dir %{_var_home}
  81. %attr(0755,%{_user},%{_group}) %config(noreplace) %{_var_home}/*
  82. %attr(0755,%{_user},%{_group}) %dir %{_log_dir}
  83. %attr(0755,%{_user},%{_group}) %config(noreplace) %{_conf_dir}/*
  84. %clean
  85. rm -rf %{buildroot}
  86. %changelog