kuiper.spec 3.0 KB

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