Skip to content

Commit

Permalink
modify OCCU package installation routines to extract and use 64bit
Browse files Browse the repository at this point in the history
binaries for all our supported 64bit platforms (aarch64, x86_64).
This refs #903.
  • Loading branch information
jens-maus committed Sep 17, 2024
1 parent 4474b1e commit b8c2b50
Show file tree
Hide file tree
Showing 3 changed files with 76 additions and 50 deletions.
101 changes: 59 additions & 42 deletions buildroot-external/package/occu/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -7,65 +7,82 @@ OCCU_ROOT=
install_rfd_arch:
mkdir -p $(TARGET_DIR)/bin
mkdir -p $(TARGET_DIR)/lib
mkdir -p $(TARGET_DIR)/$(OCCU_LIBDIR)
mkdir -p $(TARGET_DIR)/$(OCCU_LIB)
mkdir -p $(TARGET_DIR)/etc/config_templates
mkdir -p $(TARGET_DIR)/www/config
mkdir -p $(TARGET_DIR)/firmware
rm -f $(OCCU_ARCH)/packages-eQ-3/RFD/bin/avrprog
rm -f $(OCCU_ARCH)/packages-eQ-3/RFD/lib/libXmlRpc.so
rm -f $(OCCU_ARCH)/packages-eQ-3/RFD/lib/libxmlparser.so
cp -R $(OCCU_ARCH)/packages-eQ-3/RFD/bin/* $(TARGET_DIR)/bin/
cp -R $(OCCU_ARCH)/packages-eQ-3/RFD/lib/* $(TARGET_DIR)/$(OCCU_LIBDIR)/
cp -a $(OCCU_ARCH)/packages-eQ-3/RFD/etc/init.d/S61rfd $(TARGET_DIR)/etc/init.d/
cp -R $(OCCU_ARCH)/packages-eQ-3/RFD/etc/config_templates/* $(TARGET_DIR)/etc/config_templates/
cp -R $(OCCU_ARCH)/packages-eQ-3/RFD/www/config/* $(TARGET_DIR)/www/config/
cp -R firmware/* $(TARGET_DIR)/firmware
rm -fv $(OCCU_ARCH)/packages-eQ-3/RFD/bin/avrprog
rm -fv $(OCCU_ARCH)/packages-eQ-3/RFD/lib/libXmlRpc.so
rm -fv $(OCCU_ARCH)/packages-eQ-3/RFD/lib/libxmlparser.so
chmod 755 $(OCCU_ARCH)/packages-eQ-3/RFD/bin/*
cp -av $(OCCU_ARCH)/packages-eQ-3/RFD/bin/* $(TARGET_DIR)/bin/
cp -Rv $(OCCU_ARCH)/packages-eQ-3/RFD/lib/* $(TARGET_DIR)/$(OCCU_LIB)/
cp -av $(OCCU_ARCH)/packages-eQ-3/RFD/etc/init.d/S61rfd $(TARGET_DIR)/etc/init.d/
cp -Rv $(OCCU_ARCH)/packages-eQ-3/RFD/etc/config_templates/* $(TARGET_DIR)/etc/config_templates/
cp -Rv $(OCCU_ARCH)/packages-eQ-3/RFD/www/config/* $(TARGET_DIR)/www/config/
cp -Rv firmware/* $(TARGET_DIR)/firmware
ifneq (,$(filter $(OCCU_RF_PROTOCOL), HM_HMIP HMIP))
cp -a $(OCCU_ARCH)/packages-eQ-3/RFD/etc/init.d/S60multimacd $(TARGET_DIR)/etc/init.d/
cp -a $(OCCU_ARCH)/packages-eQ-3/RFD/bin/multimacd $(TARGET_DIR)/bin/
cp -a $(OCCU_ARCH)/packages-eQ-3/RFD/etc/crRFD_ccu3.conf $(TARGET_DIR)/etc/config_templates/crRFD.conf
cp -av $(OCCU_ARCH)/packages-eQ-3/RFD/etc/init.d/S60multimacd $(TARGET_DIR)/etc/init.d/
cp -av $(OCCU_ARCH)/packages-eQ-3/RFD/bin/multimacd $(TARGET_DIR)/bin/
cp -av $(OCCU_ARCH)/packages-eQ-3/RFD/etc/crRFD_ccu3.conf $(TARGET_DIR)/etc/config_templates/crRFD.conf
endif
ifneq ($(OCCU_ARCH64), )
cp -av $(OCCU_ARCH64)/packages-eQ-3/RFD-Beta/lib/* $(TARGET_DIR)/$(OCCU_LIB64)/
endif

install_hs485d_arch:
cp -R $(OCCU_ARCH)/packages-eQ-3/HS485D/bin/* $(TARGET_DIR)/bin/
cp -R $(OCCU_ARCH)/packages-eQ-3/HS485D/etc/* $(TARGET_DIR)/etc/
rm -f $(OCCU_ARCH)/packages-eQ-3/HS485D/lib/libXmlRpc.so
rm -f $(OCCU_ARCH)/packages-eQ-3/HS485D/lib/libxmlparser.so
cp -R $(OCCU_ARCH)/packages-eQ-3/HS485D/lib/* $(TARGET_DIR)/$(OCCU_LIBDIR)/
chmod 755 $(OCCU_ARCH)/packages-eQ-3/HS485D/bin/*
cp -av $(OCCU_ARCH)/packages-eQ-3/HS485D/bin/* $(TARGET_DIR)/bin/
cp -Rv $(OCCU_ARCH)/packages-eQ-3/HS485D/etc/* $(TARGET_DIR)/etc/
rm -fv $(OCCU_ARCH)/packages-eQ-3/HS485D/lib/libXmlRpc.so
rm -fv $(OCCU_ARCH)/packages-eQ-3/HS485D/lib/libxmlparser.so
cp -Rv $(OCCU_ARCH)/packages-eQ-3/HS485D/lib/* $(TARGET_DIR)/$(OCCU_LIB)/

install_webui_arch:
# remove unnecessary stuff
rm -f $(OCCU_ARCH)/packages-eQ-3/WebUI/config
rm -f $(OCCU_ARCH)/packages-eQ-3/WebUI/bin/ReGaHss.normal
mv -f $(OCCU_ARCH)/packages-eQ-3/WebUI/bin/ReGaHss.community $(OCCU_ARCH)/packages-eQ-3/WebUI/bin/ReGaHss
rm -f $(OCCU_ARCH)/packages-eQ-3/WebUI/bin/eq3-uds-services
rm -rf $(OCCU_ARCH)/packages-eQ-3/WebUI/etc/config
rm -f $(OCCU_ARCH)/packages-eQ-3/WebUI/lib/libeq3udss.so
rm -f $(OCCU_ARCH)/packages-eQ-3/WebUI/lib/libXmlRpc.so
rm -f $(OCCU_ARCH)/packages-eQ-3/WebUI/lib/libxmlparser.so
rm -fv $(OCCU_ARCH)/packages-eQ-3/WebUI/config
rm -fv $(OCCU_ARCH)/packages-eQ-3/WebUI/bin/ReGaHss.normal
mv -fv $(OCCU_ARCH)/packages-eQ-3/WebUI/bin/ReGaHss.community $(OCCU_ARCH)/packages-eQ-3/WebUI/bin/ReGaHss
rm -fv $(OCCU_ARCH)/packages-eQ-3/WebUI/bin/eq3-uds-services
rm -rfv $(OCCU_ARCH)/packages-eQ-3/WebUI/etc/config
rm -fv $(OCCU_ARCH)/packages-eQ-3/WebUI/lib/libeq3udss.so
rm -fv $(OCCU_ARCH)/packages-eQ-3/WebUI/lib/libXmlRpc.so
rm -fv $(OCCU_ARCH)/packages-eQ-3/WebUI/lib/libxmlparser.so
# TCL 8.6 tuning
cp -R $(OCCU_ARCH)/packages-eQ-3/WebUI/lib/tcl8.2/homematic $(TARGET_DIR)/usr/lib/tcl8.6/
rm -rf $(OCCU_ARCH)/packages-eQ-3/WebUI/lib/tcl8.2
rm -f $(OCCU_ARCH)/packages-eQ-3/WebUI/lib/libtcl8.2.so
rm -f $(OCCU_ARCH)/packages-eQ-3/WebUI/lib/tcl*.so
rm -f $(OCCU_ARCH)/packages-eQ-3/WebUI/bin/tclsh
cp -Rv $(OCCU_ARCH)/packages-eQ-3/WebUI/lib/tcl8.2/homematic $(TARGET_DIR)/usr/lib/tcl8.6/
rm -rfv $(OCCU_ARCH)/packages-eQ-3/WebUI/lib/tcl8.2
rm -fv $(OCCU_ARCH)/packages-eQ-3/WebUI/lib/libtcl8.2.so
rm -fv $(OCCU_ARCH)/packages-eQ-3/WebUI/lib/tcl*.so
rm -fv $(OCCU_ARCH)/packages-eQ-3/WebUI/bin/tclsh
ln -sf /usr/bin/tclsh $(TARGET_DIR)/bin/tclsh
# copy WebUI stuff to target dir
cp -R $(OCCU_ARCH)/packages-eQ-3/WebUI/bin/* $(TARGET_DIR)/bin/
cp -R $(OCCU_ARCH)/packages-eQ-3/WebUI/etc/* $(TARGET_DIR)/etc/
cp -R $(OCCU_ARCH)/packages-eQ-3/WebUI/lib/*.so $(TARGET_DIR)/$(OCCU_LIBDIR)/
cp -R WebUI/* $(TARGET_DIR)/
chmod 755 $(OCCU_ARCH)/packages-eQ-3/WebUI/bin/*
cp -av $(OCCU_ARCH)/packages-eQ-3/WebUI/bin/* $(TARGET_DIR)/bin/
cp -Rv $(OCCU_ARCH)/packages-eQ-3/WebUI/etc/* $(TARGET_DIR)/etc/
cp -Rv $(OCCU_ARCH)/packages-eQ-3/WebUI/lib/*.so $(TARGET_DIR)/$(OCCU_LIB)/
cp -Rv WebUI/* $(TARGET_DIR)/
# copy ReGaHss beta to target dir
ifeq ($(OCCU_WEBUI_REGAHSS_BETA), y)
rm -f $(OCCU_ARCH)/packages-eQ-3/WebUI-Beta/lib/libXmlRpc.so
rm -f $(OCCU_ARCH)/packages-eQ-3/WebUI-Beta/lib/libxmlparser.so
cp -R $(OCCU_ARCH)/packages-eQ-3/WebUI-Beta/bin/* $(TARGET_DIR)/bin/
cp -R $(OCCU_ARCH)/packages-eQ-3/WebUI-Beta/lib/* $(TARGET_DIR)/$(OCCU_LIBDIR)/ || true
rm -fv $(OCCU_ARCH)/packages-eQ-3/WebUI-Beta/lib/libXmlRpc.so
rm -fv $(OCCU_ARCH)/packages-eQ-3/WebUI-Beta/lib/libxmlparser.so
chmod 755 $(OCCU_ARCH)/packages-eQ-3/WebUI-Beta/bin/*
cp -av $(OCCU_ARCH)/packages-eQ-3/WebUI-Beta/bin/* $(TARGET_DIR)/bin/
cp -Rv $(OCCU_ARCH)/packages-eQ-3/WebUI-Beta/lib/* $(TARGET_DIR)/$(OCCU_LIB)/ || true
# copy 64bit ReGaHss if it exists
ifneq ($(OCCU_ARCH64), )
chmod 755 $(OCCU_ARCH64)/packages-eQ-3/WebUI-Beta/bin/*
cp -av $(OCCU_ARCH64)/packages-eQ-3/WebUI-Beta/bin/* $(TARGET_DIR)/bin/
endif
endif

install_linuxbasis_arch:
chmod 755 $(OCCU_ARCH)/packages-eQ-3/LinuxBasis/bin/*
cp -av $(OCCU_ARCH)/packages-eQ-3/LinuxBasis/bin/* $(TARGET_DIR)/bin/
cp -av $(OCCU_ARCH)/packages-eQ-3/LinuxBasis/lib/* $(TARGET_DIR)/$(OCCU_LIBDIR)/
cp -av $(OCCU_ARCH)/packages-eQ-3/LinuxBasis/lib/* $(TARGET_DIR)/$(OCCU_LIB)/
ifneq ($(OCCU_ARCH64), )
chmod 755 $(OCCU_ARCH64)/packages-eQ-3/LinuxBasis-Beta/bin/*
cp -av $(OCCU_ARCH64)/packages-eQ-3/LinuxBasis-Beta/bin/* $(TARGET_DIR)/bin/
endif

install_lighttpd_arch:
mkdir -p $(TARGET_DIR)/etc/lighttpd
Expand All @@ -83,7 +100,7 @@ install_hmserver:
cp -R HMserver/opt/HMServer/measurement $(TARGET_DIR)/opt/HMServer/
cp -R HMserver/opt/HMServer/pages $(TARGET_DIR)/opt/HMServer/
cp -a HMserver/etc/init.d/S62HMServer $(TARGET_DIR)/etc/init.d/
chmod a+rx $(TARGET_DIR)/etc/init.d/S62HMServer
chmod 755 $(TARGET_DIR)/etc/init.d/S62HMServer
ifneq (,$(filter $(OCCU_RF_PROTOCOL), HM_HMIP HMIP))
cp -a HMserver/opt/HMServer/HMIPServer.jar $(TARGET_DIR)/opt/HMServer/
cp -a HMserver/opt/HmIP $(TARGET_DIR)/opt/
Expand Down Expand Up @@ -125,7 +142,7 @@ update_webui:

ln -snf ${OCCU_ROOT}/etc/config/addons/www $(TARGET_DIR)/www/addons

chmod a+rx $(TARGET_DIR)/www/config/fileupload.ccc
chmod 755 $(TARGET_DIR)/www/config/fileupload.ccc

grep -rl 'XXX-WEBUI-VERSION-XXX' $(TARGET_DIR)/www | xargs sed -i 's/XXX-WEBUI-VERSION-XXX/$(PRODUCT_VERSION)/g'
grep -rl 'XXX-PRODUCT-XXX' $(TARGET_DIR)/www | xargs sed -i 's/XXX-PRODUCT-XXX/$(PRODUCT)/g'
Expand Down
2 changes: 1 addition & 1 deletion buildroot-external/package/occu/occu.hash
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# Locally computed
sha256 e600b8a501a17600d01bd7a4646508f94f3cd3b9df03661babd9f1801e579b36 LicenseDE.txt
sha256 cf63c345f0564e7ed090b738777e790d80eeb9e65e921576956c91d9fbab1471 occu-3.79.2-1.tar.gz
sha256 f52c467af00bd3d035937e6d5a32a6f03f22e5f087930188157014b4ace987f6 occu-3.79.2-2.tar.gz
23 changes: 16 additions & 7 deletions buildroot-external/package/occu/occu.mk
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
#
################################################################################

OCCU_VERSION = 3.79.2-1
OCCU_VERSION = 3.79.2-2
OCCU_SITE = $(call github,jens-maus,occu,$(OCCU_VERSION))
OCCU_LICENSE = HMSL
OCCU_LICENSE_FILES = LicenseDE.txt
Expand Down Expand Up @@ -101,29 +101,38 @@ endif

ifeq ($(BR2_arm),y)
OCCU_ARCH=arm-gnueabihf-gcc8
OCCU_LIBDIR=lib
OCCU_ARCH64=
OCCU_LIB=lib
OCCU_LIB64=
endif

ifeq ($(BR2_aarch64),y)
OCCU_ARCH=arm-gnueabihf-gcc8
OCCU_LIBDIR=$(BR2_ROOTFS_LIB32_DIR)
OCCU_ARCH64=aarch64-linux-gnu
OCCU_LIB=$(BR2_ROOTFS_LIB32_DIR)
OCCU_LIB64=$(BR2_ROOTFS_LIB_DIR)
endif

ifeq ($(BR2_i386),y)
OCCU_ARCH=X86_32_GCC8
OCCU_LIBDIR=lib
OCCU_ARCH64=
OCCU_LIB=lib
OCCU_LIB64=
endif

ifeq ($(BR2_x86_64),y)
OCCU_ARCH=X86_32_GCC8
OCCU_LIBDIR=$(BR2_ROOTFS_LIB32_DIR)
OCCU_ARCH64=x86_64
OCCU_LIB=$(BR2_ROOTFS_LIB32_DIR)
OCCU_LIB64=$(BR2_ROOTFS_LIB_DIR)
endif

define OCCU_INSTALL_TARGET_CMDS
$(MAKE) OCCU_RF_PROTOCOL=$(OCCU_RF_PROTOCOL) \
OCCU_ARCH=$(OCCU_ARCH) \
OCCU_LIBDIR=$(OCCU_LIBDIR) \
OCCU_WEBUI_REGAHSS_BETA=$(OCCU_WEBUI_REGAHSS_BETA) \
OCCU_ARCH64=$(OCCU_ARCH64) \
OCCU_LIB=$(OCCU_LIB) \
OCCU_LIB64=$(OCCU_LIB64) \
OCCU_WEBUI_REGAHSS_BETA=$(OCCU_WEBUI_REGAHSS_BETA) \
-C $(@D) install
endef
Expand Down

0 comments on commit b8c2b50

Please sign in to comment.