kuiper.spec 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  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}/kuiper %{_code_source}/cmd/kuiper/main.go
  25. GO111MODULE=on CGO_ENABLED=1 go build -trimpath -ldflags="-s -w -X main.Version=%{_version}-%{_release} -X main.LoadFileType=absolute" -o %{_code_source}/kuiperd %{_code_source}/cmd/kuiperd/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}%{_var_home}/plugins/sources
  37. mkdir -p %{buildroot}%{_var_home}/plugins/sinks
  38. mkdir -p %{buildroot}%{_var_home}/plugins/functions
  39. mkdir -p %{buildroot}%{_var_home}/plugins/portable
  40. mkdir -p %{buildroot}%{_initddir}
  41. cp %{_code_source}/deploy/packages/service_helper.sh %{buildroot}%{_lib_home}/bin/
  42. cp %{_code_source}/kuiper %{buildroot}%{_lib_home}/bin/
  43. cp %{_code_source}/kuiperd %{buildroot}%{_lib_home}/bin/
  44. cp -R %{_code_source}/etc/* %{buildroot}%{_conf_dir}/
  45. install -m644 %{_service_src} %{buildroot}%{_service_dst}
  46. %pre
  47. if [ $1 = 1 ]; then
  48. # Initial installation
  49. /usr/bin/getent group %{_group} >/dev/null || /usr/sbin/groupadd -r %{_group}
  50. if ! /usr/bin/getent passwd %{_user} >/dev/null ; then
  51. /usr/sbin/useradd -r -g %{_group} -m -d %{_sharedstatedir}/%{_name} -c "%{_name}" %{_user}
  52. fi
  53. fi
  54. %post
  55. if [ $1 = 1 ]; then
  56. ln -s %{_lib_home}/bin/kuiperd %{_bindir}/kuiperd
  57. ln -s %{_lib_home}/bin/kuiper %{_bindir}/kuiper
  58. fi
  59. %{_post_addition}
  60. if [ -e %{_initddir}/%{_name} ] ; then
  61. /sbin/chkconfig --add %{_name}
  62. else
  63. systemctl enable %{_name}.service
  64. fi
  65. %preun
  66. %{_preun_addition}
  67. # Only on uninstall, not upgrades
  68. if [ $1 = 0 ]; then
  69. if [ -e %{_initddir}/%{_name} ] ; then
  70. /sbin/service %{_name} stop > /dev/null 2>&1
  71. /sbin/chkconfig --del %{_name}
  72. else
  73. systemctl disable %{_name}.service
  74. fi
  75. rm -f %{_bindir}/kuiperd
  76. rm -f %{_bindir}/kuiper
  77. fi
  78. exit 0
  79. %files
  80. %defattr(-,root,root)
  81. %{_service_dst}
  82. %{_lib_home}
  83. %attr(0700,%{_user},%{_group}) %dir %{_var_home}
  84. %attr(0755,%{_user},%{_group}) %config(noreplace) %{_var_home}/*
  85. %attr(0755,%{_user},%{_group}) %dir %{_log_dir}
  86. %attr(0755,%{_user},%{_group}) %config(noreplace) %{_conf_dir}/*
  87. %clean
  88. rm -rf %{buildroot}
  89. %changelog