Marcel Telka
2024-04-02 f1b1912adc00984cd165470b728dda03ac81b2c6
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 #
edb7fe 12 # Copyright 2021 Gary Mills
1a2fc0 13 # Copyright 2022 Grueninger, Grueninger GmbH, (grueni). All rights reserved. 
480717 14 #
AG 15
5907f8 16 BUILD_STYLE= justmake
MT 17
480717 18 include ../../../make-rules/shared-macros.mk
AG 19
20 COMPONENT_NAME= pcs
edb7fe 21 COMPONENT_VERSION= 0.10.1
5907f8 22 COMPONENT_REVISION= 2
480717 23 COMPONENT_FMRI= application/cluster/$(COMPONENT_NAME)
AG 24 COMPONENT_CLASSIFICATION= System/Shells
25 COMPONENT_PROJECT_URL= https://github.com/ClusterLabs/pcs
26 COMPONENT_SRC= $(COMPONENT_NAME)-$(COMPONENT_VERSION)
27 COMPONENT_ARCHIVE= $(COMPONENT_SRC).tar.gz
edb7fe 28 COMPONENT_ARCHIVE_HASH= sha256:61d36fc96c05a4724b76f45216a483e514c9da5b486ba77e906ae45722592cf2
480717 29 COMPONENT_ARCHIVE_URL= https://github.com/ClusterLabs/$(COMPONENT_NAME)/archive/$(COMPONENT_VERSION).tar.gz 
AG 30 COMPONENT_LICENSE= GPLv2
31 COMPONENT_SUMMARY= Pacemaker command line interface and GUI.
b25ecf 32
JMC 33 #
34 # The build process tries to use wget to download an archive without even a
35 # check for the correct hash.  In order to allow the build to work without
36 # networking, we download it first.  This will need to be updated if the
37 # version or URL in "pcs/snmp/Makefile" changes.
38 #
edb7fe 39 PYAGENTX_VERSION= 0.4.pcs.2
b25ecf 40 COMPONENT_ARCHIVE_1= pyagentx-v$(PYAGENTX_VERSION).tar.gz
edb7fe 41 COMPONENT_ARCHIVE_HASH_1= sha256:9aa8ec276e253ab8fffe04b786e322a1c1fe988e5e2af06fb617a43a4413d139
b25ecf 42 COMPONENT_ARCHIVE_URL_1= https://github.com/ondrejmular/pyagentx/archive/v$(PYAGENTX_VERSION).tar.gz
JMC 43
44 #
45 # The package includes a private copy of a series of Ruby Gems.  We must
46 # download these in advance so that the build can run without network access.
47 #
edb7fe 48 COMPONENT_ARCHIVE_2= backports-3.11.4.gem
GM 49 COMPONENT_ARCHIVE_HASH_2= sha256:0ff9c1601e381e51f93fca3b9931b5e0de4ff0f359da536603fa40c1799750c3
b25ecf 50 COMPONENT_ARCHIVE_URL_2= https://rubygems.org/gems/$(COMPONENT_ARCHIVE_2)
JMC 51 CACHED_GEM_FILES += $(COMPONENT_ARCHIVE_2)
52
53 COMPONENT_ARCHIVE_3= ethon-0.11.0.gem
54 COMPONENT_ARCHIVE_HASH_3= sha256:88ec7960a8e00f76afc96ed15dcc8be0cb515f963fe3bb1d4e0b5c51f9d7e078
55 COMPONENT_ARCHIVE_URL_3= https://rubygems.org/gems/$(COMPONENT_ARCHIVE_3)
56 CACHED_GEM_FILES += $(COMPONENT_ARCHIVE_3)
57
58 COMPONENT_ARCHIVE_4= ffi-1.9.25.gem
59 COMPONENT_ARCHIVE_HASH_4= sha256:f854f08f08190fec772a12e863f33761d02ad3efea3c3afcdeffc8a06313f54a
60 COMPONENT_ARCHIVE_URL_4= https://rubygems.org/gems/$(COMPONENT_ARCHIVE_4)
61 CACHED_GEM_FILES += $(COMPONENT_ARCHIVE_4)
62
63 COMPONENT_ARCHIVE_5= json-2.1.0.gem
64 COMPONENT_ARCHIVE_HASH_5= sha256:b76fd09b881088c6c64a12721a1528f2f747a1c2ee52fab4c1f60db8af946607
65 COMPONENT_ARCHIVE_URL_5= https://rubygems.org/gems/$(COMPONENT_ARCHIVE_5)
66 CACHED_GEM_FILES += $(COMPONENT_ARCHIVE_5)
67
68 COMPONENT_ARCHIVE_6= multi_json-1.13.1.gem
69 COMPONENT_ARCHIVE_HASH_6= sha256:db8613c039b9501e6b2fb85efe4feabb02f55c3365bae52bba35381b89c780e6
70 COMPONENT_ARCHIVE_URL_6= https://rubygems.org/gems/$(COMPONENT_ARCHIVE_6)
71 CACHED_GEM_FILES += $(COMPONENT_ARCHIVE_6)
72
edb7fe 73 COMPONENT_ARCHIVE_7= mustermann-1.0.3.gem
GM 74 COMPONENT_ARCHIVE_HASH_7= sha256:219ecbefebccb10778273bbd64ae468e5da30ac55f346b93700b786feb7ccc53
b25ecf 75 COMPONENT_ARCHIVE_URL_7= https://rubygems.org/gems/$(COMPONENT_ARCHIVE_7)
JMC 76 CACHED_GEM_FILES += $(COMPONENT_ARCHIVE_7)
77
edb7fe 78 COMPONENT_ARCHIVE_8= open4-1.3.4.gem
GM 79 COMPONENT_ARCHIVE_HASH_8= sha256:a1df037310624ecc1ea1d81264b11c83e96d0c3c1c6043108d37d396dcd0f4b1
b25ecf 80 COMPONENT_ARCHIVE_URL_8= https://rubygems.org/gems/$(COMPONENT_ARCHIVE_8)
JMC 81 CACHED_GEM_FILES += $(COMPONENT_ARCHIVE_8)
82
edb7fe 83 COMPONENT_ARCHIVE_9= rack-2.0.6.gem
GM 84 COMPONENT_ARCHIVE_HASH_9= sha256:f5874ac9c2223ecc65fcad3120c884fc2a868c1c18f548ff676a6eb21bda8fdd
b25ecf 85 COMPONENT_ARCHIVE_URL_9= https://rubygems.org/gems/$(COMPONENT_ARCHIVE_9)
JMC 86 CACHED_GEM_FILES += $(COMPONENT_ARCHIVE_9)
87
edb7fe 88 COMPONENT_ARCHIVE_10= rack-protection-2.0.4.gem
GM 89 COMPONENT_ARCHIVE_HASH_10= sha256:582a96c5a1a0787f2ff4eaf2db71cdbf6183f69816e0e7bdddf6fcad32399d7a
b25ecf 90 COMPONENT_ARCHIVE_URL_10= https://rubygems.org/gems/$(COMPONENT_ARCHIVE_10)
JMC 91 CACHED_GEM_FILES += $(COMPONENT_ARCHIVE_10)
92
edb7fe 93 COMPONENT_ARCHIVE_11= rack-test-1.1.0.gem
GM 94 COMPONENT_ARCHIVE_HASH_11= sha256:154161f40f162b1c009a655b7b0c5de3a3102cc6d7d2e94b64e1f46ace800866
b25ecf 95 COMPONENT_ARCHIVE_URL_11= https://rubygems.org/gems/$(COMPONENT_ARCHIVE_11)
JMC 96 CACHED_GEM_FILES += $(COMPONENT_ARCHIVE_11)
97
edb7fe 98 COMPONENT_ARCHIVE_12= sinatra-2.0.4.gem
GM 99 COMPONENT_ARCHIVE_HASH_12= sha256:30a084bd2c9906eb14194e75444a2dd22adc94c64071cbee59411b843aa4bcd7
b25ecf 100 COMPONENT_ARCHIVE_URL_12= https://rubygems.org/gems/$(COMPONENT_ARCHIVE_12)
JMC 101 CACHED_GEM_FILES += $(COMPONENT_ARCHIVE_12)
102
edb7fe 103 COMPONENT_ARCHIVE_13= tilt-2.0.8.gem
GM 104 COMPONENT_ARCHIVE_HASH_13= sha256:2a3be6c56a8cc6338203c02910e20e858664b633adb550e1103804d75eae4000
b25ecf 105 COMPONENT_ARCHIVE_URL_13= https://rubygems.org/gems/$(COMPONENT_ARCHIVE_13)
JMC 106 CACHED_GEM_FILES += $(COMPONENT_ARCHIVE_13)
107
5907f8 108 TEST_TARGET= $(NO_TESTS)
480717 109
5907f8 110 include $(WS_MAKE_RULES)/common.mk
e44754 111 include $(WS_MAKE_RULES)/ruby.mk
480717 112
fb87dc 113 PATH=$(PATH.gnu):/usr/ruby/$(RUBY_VERSION)/bin    
G 114
edb7fe 115 COMPONENT_INSTALL_ENV += DESTDIR="$(PROTO_DIR)"
GM 116 COMPONENT_INSTALL_ENV += am_cv_python_pythondir=$(PYTHON_VENDOR_PACKAGES)
117 COMPONENT_INSTALL_ENV += am_cv_python_pyexecdir=$(PYTHON_VENDOR_PACKAGES)
118 COMPONENT_INSTALL_ENV += PYTHON_SITELIB=$(PYTHON_VENDOR_PACKAGES)
119 COMPONENT_INSTALL_ENV += PYTHON=$(PYTHON)
120 COMPONENT_INSTALL_ENV += PATH=$(PATH)
121 COMPONENT_INSTALL_ENV += BASH_COMPLETION_DIR=/usr/share/bash-completion/completions
480717 122
b25ecf 123 #
JMC 124 # Unpack the pyagentx source into the build directory and pass its location to
edb7fe 125 # make.  If BUNDLE_PYAGENTX_SRC_DIR is set, "Makefile" will not use wget to
b25ecf 126 # download the file.
JMC 127 #
128 # Copy cached Ruby Gems to the bundle cache directory, and set
129 # BUNDLE_CACHE_PATH so that "bundle install --local ..." can find them.
130 #
131 COMPONENT_PREP_ACTION += (mkdir -p $(BUILD_DIR) && cd $(BUILD_DIR) && \
132     tar xfz $(USERLAND_ARCHIVES)$(COMPONENT_ARCHIVE_1) && \
133     mkdir -p bundle_cache && \
134     for x in $(CACHED_GEM_FILES); do \
135         cp $(USERLAND_ARCHIVES)$$x bundle_cache/; \
136     done)
edb7fe 137 COMPONENT_INSTALL_ENV += BUNDLE_PYAGENTX_SRC_DIR=$(BUILD_DIR)/pyagentx-$(PYAGENTX_VERSION)
GM 138 COMPONENT_INSTALL_ENV += BUNDLE_CACHE_PATH=../../bundle_cache
480717 139
AG 140 # beware of: the package has a combined build + install 
edb7fe 141 COMPONENT_BUILD_ACTION = echo 'No build target'
GM 142
143 # pytthon installation class overwrites the shebang during installation
144 COMPONENT_POST_INSTALL_ACTION=( \
145     $(MKDIR)  $(PROTO_DIR)/usr/share/pcs/examples; \
5907f8 146     $(MV) $(PROTO_DIR)/etc/logrotate.d $(PROTO_DIR)/usr/share/pcs/examples )
480717 147
d3e0bf 148 # Build dependencies
HL 149 REQUIRED_PACKAGES += library/ruby/bundler
edd80b 150 REQUIRED_PACKAGES += system/font/truetype/liberation
d3e0bf 151
b462d5 152 # Auto-generated dependencies
5907f8 153 PYTHON_REQUIRED_PACKAGES += library/python/setuptools
MT 154 PYTHON_REQUIRED_PACKAGES += runtime/python
480717 155 REQUIRED_PACKAGES += SUNWcs
b462d5 156 REQUIRED_PACKAGES += library/libffi
e44754 157 REQUIRED_PACKAGES += runtime/ruby-23
b462d5 158 REQUIRED_PACKAGES += shell/bash
480717 159 REQUIRED_PACKAGES += system/library