kuiper.spec 3.0 KB

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