Joshua M. Clulow
2020-09-26 b25ecf0ce898d1acc65c0752cb94abf39fba9b2d
commit | author | age
480717 1 #
AG 2 # This file and its contents are supplied under the terms of the
3 # Common Development and Distribution License ("CDDL)". You may
4 # only use this file in accordance with the terms of the CDDL.
5 #
6 # A full copy of the text of the CDDL should have accompanied this
7 # source. A copy of the CDDL is also available via the Internet at
8 # http://www.illumos.org/license/CDDL.
9 #
10
11 #
c12ded 12 # Copyright 2019 Grueninger, Grueninger GmbH, (grueni). All rights reserved. 
480717 13 #
AG 14
15 include ../../../make-rules/shared-macros.mk
16
17 COMPONENT_NAME= pcs
c12ded 18 COMPONENT_VERSION= 0.9.168
b25ecf 19 COMPONENT_REVISION= 1
480717 20 COMPONENT_FMRI= application/cluster/$(COMPONENT_NAME)
AG 21 COMPONENT_CLASSIFICATION= System/Shells
22 COMPONENT_PROJECT_URL= https://github.com/ClusterLabs/pcs
23 COMPONENT_SRC= $(COMPONENT_NAME)-$(COMPONENT_VERSION)
24 COMPONENT_ARCHIVE= $(COMPONENT_SRC).tar.gz
c12ded 25 COMPONENT_ARCHIVE_HASH= sha256:f1f3684978e13f2bd95a5fbd5d662a3f7b30908969addbb3559152b2791efc19
480717 26 COMPONENT_ARCHIVE_URL= https://github.com/ClusterLabs/$(COMPONENT_NAME)/archive/$(COMPONENT_VERSION).tar.gz 
AG 27 COMPONENT_LICENSE= GPLv2
28 COMPONENT_SUMMARY= Pacemaker command line interface and GUI.
b25ecf 29
JMC 30 #
31 # The build process tries to use wget to download an archive without even a
32 # check for the correct hash.  In order to allow the build to work without
33 # networking, we download it first.  This will need to be updated if the
34 # version or URL in "pcs/snmp/Makefile" changes.
35 #
36 PYAGENTX_VERSION= 0.4.pcs.1
37 COMPONENT_ARCHIVE_1= pyagentx-v$(PYAGENTX_VERSION).tar.gz
38 COMPONENT_ARCHIVE_HASH_1= sha256:700ee61aef73f4c7af6dcf368c44d84479227112aaa535651a09665484aa30cc
39 COMPONENT_ARCHIVE_URL_1= https://github.com/ondrejmular/pyagentx/archive/v$(PYAGENTX_VERSION).tar.gz
40
41 #
42 # The package includes a private copy of a series of Ruby Gems.  We must
43 # download these in advance so that the build can run without network access.
44 #
45 COMPONENT_ARCHIVE_2= backports-3.11.3.gem
46 COMPONENT_ARCHIVE_HASH_2= sha256:57b04d4e2806c199bff3663d810db25e019cf88c42cacc0edbb36d3038d6a5ab
47 COMPONENT_ARCHIVE_URL_2= https://rubygems.org/gems/$(COMPONENT_ARCHIVE_2)
48 CACHED_GEM_FILES += $(COMPONENT_ARCHIVE_2)
49
50 COMPONENT_ARCHIVE_3= ethon-0.11.0.gem
51 COMPONENT_ARCHIVE_HASH_3= sha256:88ec7960a8e00f76afc96ed15dcc8be0cb515f963fe3bb1d4e0b5c51f9d7e078
52 COMPONENT_ARCHIVE_URL_3= https://rubygems.org/gems/$(COMPONENT_ARCHIVE_3)
53 CACHED_GEM_FILES += $(COMPONENT_ARCHIVE_3)
54
55 COMPONENT_ARCHIVE_4= ffi-1.9.25.gem
56 COMPONENT_ARCHIVE_HASH_4= sha256:f854f08f08190fec772a12e863f33761d02ad3efea3c3afcdeffc8a06313f54a
57 COMPONENT_ARCHIVE_URL_4= https://rubygems.org/gems/$(COMPONENT_ARCHIVE_4)
58 CACHED_GEM_FILES += $(COMPONENT_ARCHIVE_4)
59
60 COMPONENT_ARCHIVE_5= json-2.1.0.gem
61 COMPONENT_ARCHIVE_HASH_5= sha256:b76fd09b881088c6c64a12721a1528f2f747a1c2ee52fab4c1f60db8af946607
62 COMPONENT_ARCHIVE_URL_5= https://rubygems.org/gems/$(COMPONENT_ARCHIVE_5)
63 CACHED_GEM_FILES += $(COMPONENT_ARCHIVE_5)
64
65 COMPONENT_ARCHIVE_6= multi_json-1.13.1.gem
66 COMPONENT_ARCHIVE_HASH_6= sha256:db8613c039b9501e6b2fb85efe4feabb02f55c3365bae52bba35381b89c780e6
67 COMPONENT_ARCHIVE_URL_6= https://rubygems.org/gems/$(COMPONENT_ARCHIVE_6)
68 CACHED_GEM_FILES += $(COMPONENT_ARCHIVE_6)
69
70 COMPONENT_ARCHIVE_7= open4-1.3.4.gem
71 COMPONENT_ARCHIVE_HASH_7= sha256:a1df037310624ecc1ea1d81264b11c83e96d0c3c1c6043108d37d396dcd0f4b1
72 COMPONENT_ARCHIVE_URL_7= https://rubygems.org/gems/$(COMPONENT_ARCHIVE_7)
73 CACHED_GEM_FILES += $(COMPONENT_ARCHIVE_7)
74
75 COMPONENT_ARCHIVE_8= rack-1.6.10.gem
76 COMPONENT_ARCHIVE_HASH_8= sha256:58e8ae09c502f219a6ad2e7f932072faf2d2b38ce6fd0251ac7ff3096c55c046
77 COMPONENT_ARCHIVE_URL_8= https://rubygems.org/gems/$(COMPONENT_ARCHIVE_8)
78 CACHED_GEM_FILES += $(COMPONENT_ARCHIVE_8)
79
80 COMPONENT_ARCHIVE_9= rack-protection-1.5.5.gem
81 COMPONENT_ARCHIVE_HASH_9= sha256:5a9f0d56ef96b616a242138986dc930aca76f6efa24f998e8683164538e5c057
82 COMPONENT_ARCHIVE_URL_9= https://rubygems.org/gems/$(COMPONENT_ARCHIVE_9)
83 CACHED_GEM_FILES += $(COMPONENT_ARCHIVE_9)
84
85 COMPONENT_ARCHIVE_10= rack-test-0.7.0.gem
86 COMPONENT_ARCHIVE_HASH_10= sha256:217421e6811faa7bd13536e93cf2f90e64112ca8110a2270100f8db7a8a4a038
87 COMPONENT_ARCHIVE_URL_10= https://rubygems.org/gems/$(COMPONENT_ARCHIVE_10)
88 CACHED_GEM_FILES += $(COMPONENT_ARCHIVE_10)
89
90 COMPONENT_ARCHIVE_11= rpam-ruby19-1.2.1.gem
91 COMPONENT_ARCHIVE_HASH_11= sha256:0184e4a1c51056c566b5b9228966937838a2ec24dd7aa1cf17ae9ab07857b85c
92 COMPONENT_ARCHIVE_URL_11= https://rubygems.org/gems/$(COMPONENT_ARCHIVE_11)
93 CACHED_GEM_FILES += $(COMPONENT_ARCHIVE_11)
94
95 COMPONENT_ARCHIVE_12= sinatra-1.4.8.gem
96 COMPONENT_ARCHIVE_HASH_12= sha256:18cb20ffabf31484b02d8606e450fbf040b52aea6147755a07718e9e0ffddd2f
97 COMPONENT_ARCHIVE_URL_12= https://rubygems.org/gems/$(COMPONENT_ARCHIVE_12)
98 CACHED_GEM_FILES += $(COMPONENT_ARCHIVE_12)
99
100 COMPONENT_ARCHIVE_13= sinatra-contrib-1.4.7.gem
101 COMPONENT_ARCHIVE_HASH_13= sha256:d9597918b1346c550bffe4127e54f53ad875f1eafb76afe28b4ec4c52288236e
102 COMPONENT_ARCHIVE_URL_13= https://rubygems.org/gems/$(COMPONENT_ARCHIVE_13)
103 CACHED_GEM_FILES += $(COMPONENT_ARCHIVE_13)
104
105 COMPONENT_ARCHIVE_14= tilt-2.0.8.gem
106 COMPONENT_ARCHIVE_HASH_14= sha256:2a3be6c56a8cc6338203c02910e20e858664b633adb550e1103804d75eae4000
107 COMPONENT_ARCHIVE_URL_14= https://rubygems.org/gems/$(COMPONENT_ARCHIVE_14)
108 CACHED_GEM_FILES += $(COMPONENT_ARCHIVE_14)
109
480717 110
AG 111 include $(WS_MAKE_RULES)/prep.mk
112 include $(WS_MAKE_RULES)/justmake.mk
113 include $(WS_MAKE_RULES)/ips.mk
e44754 114 include $(WS_MAKE_RULES)/ruby.mk
480717 115
fb87dc 116 PATH=$(PATH.gnu):/usr/ruby/$(RUBY_VERSION)/bin    
480717 117
AG 118 ENV += DESTDIR="$(PROTO_DIR)"
119 ENV += am_cv_python_pythondir=$(PYTHON_VENDOR_PACKAGES)
120 ENV += am_cv_python_pyexecdir=$(PYTHON_VENDOR_PACKAGES)
121 ENV += PYTHON_SITELIB=$(PYTHON_VENDOR_PACKAGES)
122 ENV += PYTHON=$(PYTHON)
fb87dc 123 ENV += PATH=$(PATH)
G 124
125 COMPONENT_BUILD_GMAKE_ARGS += BASH_COMPLETION_DIR=$(PROTO_DIR)/usr/share/bash-completion/completions
480717 126
AG 127 PKG_MACROS +=    RUBY_VERSION=$(RUBY_VERSION)
128 PKG_MACROS += RUBY_LIB_VERSION=$(RUBY_LIB_VERSION)
129
b25ecf 130 #
JMC 131 # Unpack the pyagentx source into the build directory and pass its location to
132 # make.  If PYAGENTX_DIR is set, "pcs/snmp/Makefile" will not use wget to
133 # download the file.
134 #
135 # Copy cached Ruby Gems to the bundle cache directory, and set
136 # BUNDLE_CACHE_PATH so that "bundle install --local ..." can find them.
137 #
138 COMPONENT_PREP_ACTION += (mkdir -p $(BUILD_DIR) && cd $(BUILD_DIR) && \
139     tar xfz $(USERLAND_ARCHIVES)$(COMPONENT_ARCHIVE_1) && \
140     mkdir -p bundle_cache && \
141     for x in $(CACHED_GEM_FILES); do \
142         cp $(USERLAND_ARCHIVES)$$x bundle_cache/; \
143     done)
144 ENV += PYAGENTX_DIR=$(BUILD_DIR)/pyagentx-$(PYAGENTX_VERSION)
145 ENV += BUNDLE_CACHE_PATH=../../bundle_cache
146
147
af6845 148 # Ugly hack to avoid fail on second install
AP 149 COMPONENT_PRE_BUILD_ACTION = ($(RM) -r $(PROTO_DIR))
150
480717 151 COMPONENT_POST_BUILD_ACTION=( \
fb87dc 152     $(MKDIR)  $(PROTO_DIR)/usr/share/pcs/examples; \
G 153     $(MV) $(PROTO_DIR)/etc/logrotate.d    $(PROTO_DIR)/usr/share/pcs/examples )
480717 154
AG 155 # pytthon installation class overwrites the shebang during installation
156 $(INSTALL_32):  $(BUILD_32)
157         grep -q python2.7 ${PROTO_DIR}/usr/sbin/pcs || \
158         gsed -i -- "s~/usr/bin/python~/usr/bin/python2.7~g" ${PROTO_DIR}/usr/sbin/pcs
159
160 # beware of: the package has a combined build + install 
161 build:          $(BUILD_32)
162
163 install:        $(INSTALL_32)
164
165 test:           $(TESTS_32)
166
d3e0bf 167 # Build dependencies
HL 168 REQUIRED_PACKAGES += library/ruby/bundler
edd80b 169 REQUIRED_PACKAGES += system/font/truetype/liberation
d3e0bf 170
b462d5 171 # Auto-generated dependencies
480717 172 REQUIRED_PACKAGES += SUNWcs
b462d5 173 REQUIRED_PACKAGES += library/libffi
480717 174 REQUIRED_PACKAGES += library/python/setuptools-27
AG 175 REQUIRED_PACKAGES += runtime/python-27
e44754 176 REQUIRED_PACKAGES += runtime/ruby-23
b462d5 177 REQUIRED_PACKAGES += shell/bash
480717 178 REQUIRED_PACKAGES += system/library