From 8b41bb6648447dfcde7a26430769dd85005121fd Mon Sep 17 00:00:00 2001
From: Felix Fietkau <nbd@openwrt.org>
Date: Mon, 7 Mar 2016 11:03:09 +0000
Subject: [PATCH] dsl-vrx200-firmware-xdsl: create Lantiq vrx200 firmware
 patches

Instead of having two big binaries only add one binary and then a patch
to create the other one when needed at runtime.
This is easier to handle in one Makefile for both firmware files.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 48939
---
 .../dsl-vrx200-firmware-xdsl-a/Makefile       |  47 -------
 .../dsl-vrx200-firmware-xdsl-b/Makefile       |  47 -------
 .../lantiq/dsl-vrx200-firmware-xdsl/Makefile  | 129 ++++++++++++++++++
 3 files changed, 129 insertions(+), 94 deletions(-)
 delete mode 100644 package/firmware/lantiq/dsl-vrx200-firmware-xdsl-a/Makefile
 delete mode 100644 package/firmware/lantiq/dsl-vrx200-firmware-xdsl-b/Makefile
 create mode 100644 package/firmware/lantiq/dsl-vrx200-firmware-xdsl/Makefile

diff --git a/package/firmware/lantiq/dsl-vrx200-firmware-xdsl-a/Makefile b/package/firmware/lantiq/dsl-vrx200-firmware-xdsl-a/Makefile
deleted file mode 100644
index e8dd6599a3..0000000000
--- a/package/firmware/lantiq/dsl-vrx200-firmware-xdsl-a/Makefile
+++ /dev/null
@@ -1,47 +0,0 @@
-# Copyright (C) 2015 OpenWrt.org
-# Copyright (C) 2015 Lantiq Beteiligungs GmbH & Co KG.
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=dsl_vr9_firmware_xdsl
-PKG_VERSION:=05.07.04.03.00.06_05.07.01.08.00.01_osc
-PKG_RELEASE:=1
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources
-PKG_MD5SUM:=4c8d9ca68dda88d3cfc0ca0fb946a63e
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/dsl-vrx200-firmware-xdsl-a
-  SECTION:=firmware
-  CATEGORY:=Firmware
-  TITLE:=VRX200 / VR9 CPE xDSL Annex A firmware
-  URL:=http://www.lantiq.com/
-  DEPENDS:=@TARGET_lantiq_xrx200
-endef
-
-define Package/dsl-vrx200-firmware-xdsl-a/description
-	VRX200 / VR9 CPE VDSL and ADSL Annex A firmware
-endef
-
-define Build/Prepare
-	rm -rf $(PKG_BUILD_DIR)
-	mkdir -p $(PKG_BUILD_DIR)
-	$(TAR) -C $(PKG_BUILD_DIR) -xzf $(DL_DIR)/$(PKG_SOURCE)
-endef
-
-define Build/Compile
-endef
-
-define Package/dsl-vrx200-firmware-xdsl-a/install
-	$(INSTALL_DIR) $(1)/lib/firmware/
-	$(INSTALL_DATA) $(PKG_BUILD_DIR)/LICENSE $(1)/lib/firmware/xcpe_574306_571801.LICENSE
-	$(INSTALL_DATA) $(PKG_BUILD_DIR)/xcpe_574306_571801.bin $(1)/lib/firmware/
-	ln -s xcpe_574306_571801.bin $(1)/lib/firmware/vdsl.bin
-	ln -s xcpe_574306_571801.bin $(1)/lib/firmware/adsl-a.bin
-endef
-
-$(eval $(call BuildPackage,dsl-vrx200-firmware-xdsl-a))
diff --git a/package/firmware/lantiq/dsl-vrx200-firmware-xdsl-b/Makefile b/package/firmware/lantiq/dsl-vrx200-firmware-xdsl-b/Makefile
deleted file mode 100644
index c283da2940..0000000000
--- a/package/firmware/lantiq/dsl-vrx200-firmware-xdsl-b/Makefile
+++ /dev/null
@@ -1,47 +0,0 @@
-# Copyright (C) 2015 OpenWrt.org
-# Copyright (C) 2015 Lantiq Beteiligungs GmbH & Co KG.
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=dsl_vr9_firmware_xdsl
-PKG_VERSION:=05.07.03.03.00.06_05.07.01.0C.00.02_osc
-PKG_RELEASE:=1
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources
-PKG_MD5SUM:=af5581836cbe574574590c046fe45bab
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/dsl-vrx200-firmware-xdsl-b
-  SECTION:=firmware
-  CATEGORY:=Firmware
-  TITLE:=VRX200 / VR9 CPE xDSL Annex B firmware
-  URL:=http://www.lantiq.com/
-  DEPENDS:=@TARGET_lantiq_xrx200
-endef
-
-define Package/dsl-vrx200-firmware-xdsl-b/description
-	VRX200 / VR9 CPE VDSL and ADSL Annex B firmware
-endef
-
-define Build/Prepare
-	rm -rf $(PKG_BUILD_DIR)
-	mkdir -p $(PKG_BUILD_DIR)
-	$(TAR) -C $(PKG_BUILD_DIR) -xzf $(DL_DIR)/$(PKG_SOURCE)
-endef
-
-define Build/Compile
-endef
-
-define Package/dsl-vrx200-firmware-xdsl-b/install
-	$(INSTALL_DIR) $(1)/lib/firmware/
-	$(INSTALL_DATA) $(PKG_BUILD_DIR)/LICENSE $(1)/lib/firmware/xcpe_573306_571C02.LICENSE
-	$(INSTALL_DATA) $(PKG_BUILD_DIR)/xcpe_573306_571C02.bin $(1)/lib/firmware/
-	ln -s xcpe_573306_571C02.bin $(1)/lib/firmware/vdsl.bin
-	ln -s xcpe_573306_571C02.bin $(1)/lib/firmware/adsl-b.bin
-endef
-
-$(eval $(call BuildPackage,dsl-vrx200-firmware-xdsl-b))
diff --git a/package/firmware/lantiq/dsl-vrx200-firmware-xdsl/Makefile b/package/firmware/lantiq/dsl-vrx200-firmware-xdsl/Makefile
new file mode 100644
index 0000000000..7e94d49246
--- /dev/null
+++ b/package/firmware/lantiq/dsl-vrx200-firmware-xdsl/Makefile
@@ -0,0 +1,129 @@
+# Copyright (C) 2015 OpenWrt.org
+# Copyright (C) 2015 Lantiq Beteiligungs GmbH & Co KG.
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=dsl_vr9_firmware_xdsl
+PKG_VERSION:=05.07.04.03.00.06_05.07.01.08.00.01_osc
+PKG_RELEASE:=1
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources
+PKG_MD5SUM:=4c8d9ca68dda88d3cfc0ca0fb946a63e
+PKG_BUILD_DEPENDS:=bsdiff/host
+
+include $(INCLUDE_DIR)/package.mk
+
+PKG_B_NAME:=dsl_vr9_firmware_xdsl
+PKG_B_VERSION:=05.07.03.03.00.06_05.07.01.0C.00.02_osc
+PKG_B_SOURCE:=$(PKG_B_NAME)-$(PKG_B_VERSION).tar.gz
+
+ANNEX_A_VER:=574306_571801
+ANNEX_B_VER:=573306_571C02
+
+define Download/dsl_vr9_firmware_xdsl_b
+  FILE:=$(PKG_B_SOURCE)
+  URL:=$(PKG_SOURCE_URL)
+  MD5SUM:=af5581836cbe574574590c046fe45bab
+endef
+$(eval $(call Download,dsl_vr9_firmware_xdsl_b))
+
+
+define Package/dsl-vrx200-firmware-xdsl-a
+  SECTION:=firmware
+  CATEGORY:=Firmware
+  TITLE:=VRX200 / VR9 CPE xDSL Annex A firmware
+  URL:=http://www.lantiq.com/
+  DEPENDS:=@TARGET_lantiq_xrx200
+endef
+
+define Package/dsl-vrx200-firmware-xdsl-a/description
+	VRX200 / VR9 CPE VDSL and ADSL Annex A firmware
+endef
+
+define Package/dsl-vrx200-firmware-xdsl-b
+  SECTION:=firmware
+  CATEGORY:=Firmware
+  TITLE:=VRX200 / VR9 CPE xDSL Annex B firmware
+  URL:=http://www.lantiq.com/
+  DEPENDS:=@TARGET_lantiq_xrx200
+endef
+
+define Package/dsl-vrx200-firmware-xdsl-b/description
+	VRX200 / VR9 CPE VDSL and ADSL Annex B firmware
+endef
+
+define Package/dsl-vrx200-firmware-xdsl-a-patch
+  SECTION:=firmware
+  CATEGORY:=Firmware
+  TITLE:=VRX200 / VR9 CPE xDSL Annex B to Annex A firmware patch
+  URL:=http://www.lantiq.com/
+  DEPENDS:=@TARGET_lantiq_xrx200 +dsl-vrx200-firmware-xdsl-b +bspatch
+endef
+
+define Package/dsl-vrx200-firmware-xdsl-a-patch/description
+	Patch which between the Annex A and Annex B firmware to create the Annex A firmware.
+endef
+
+define Package/dsl-vrx200-firmware-xdsl-b-patch
+  SECTION:=firmware
+  CATEGORY:=Firmware
+  TITLE:=VRX200 / VR9 CPE xDSL Annex A to Annex B firmware patch
+  URL:=http://www.lantiq.com/
+  DEPENDS:=@TARGET_lantiq_xrx200 +dsl-vrx200-firmware-xdsl-a +bspatch
+endef
+
+define Package/dsl-vrx200-firmware-xdsl-b-patch/description
+	Patch which between the Annex A and Annex B firmware to create the Annex B firmware.
+endef
+
+define Build/Prepare
+	rm -rf $(PKG_BUILD_DIR)
+	mkdir -p $(PKG_BUILD_DIR)
+	$(TAR) -C $(PKG_BUILD_DIR) -xzf $(DL_DIR)/$(PKG_SOURCE)
+	$(TAR) -C $(PKG_BUILD_DIR) -xzf $(DL_DIR)/$(PKG_B_SOURCE)
+endef
+
+define Build/Compile
+	bsdiff \
+		$(PKG_BUILD_DIR)/xcpe_$(ANNEX_A_VER).bin \
+		$(PKG_BUILD_DIR)/xcpe_$(ANNEX_B_VER).bin \
+		$(PKG_BUILD_DIR)/xcpe_$(ANNEX_A_VER)_to_$(ANNEX_B_VER).bspatch
+	bsdiff \
+		$(PKG_BUILD_DIR)/xcpe_$(ANNEX_B_VER).bin \
+		$(PKG_BUILD_DIR)/xcpe_$(ANNEX_A_VER).bin \
+		$(PKG_BUILD_DIR)/xcpe_$(ANNEX_B_VER)_to_$(ANNEX_A_VER).bspatch
+endef
+
+define Package/dsl-vrx200-firmware-xdsl-a/install
+	$(INSTALL_DIR) $(1)/lib/firmware/
+	$(INSTALL_DATA) $(PKG_BUILD_DIR)/LICENSE $(1)/lib/firmware/xcpe_$(ANNEX_A_VER).LICENSE
+	$(INSTALL_DATA) $(PKG_BUILD_DIR)/xcpe_$(ANNEX_A_VER).bin $(1)/lib/firmware/
+	ln -s xcpe_$(ANNEX_A_VER).bin $(1)/lib/firmware/lantiq-vrx200-a.bin
+endef
+
+define Package/dsl-vrx200-firmware-xdsl-b/install
+	$(INSTALL_DIR) $(1)/lib/firmware/
+	$(INSTALL_DATA) $(PKG_BUILD_DIR)/LICENSE $(1)/lib/firmware/xcpe_$(ANNEX_B_VER).LICENSE
+	$(INSTALL_DATA) $(PKG_BUILD_DIR)/xcpe_$(ANNEX_B_VER).bin $(1)/lib/firmware/
+	ln -s xcpe_$(ANNEX_B_VER).bin $(1)/lib/firmware/lantiq-vrx200-b.bin
+endef
+
+define Package/dsl-vrx200-firmware-xdsl-a-patch/install
+	$(INSTALL_DIR) $(1)/lib/firmware/
+	$(INSTALL_DATA) $(PKG_BUILD_DIR)/xcpe_$(ANNEX_B_VER)_to_$(ANNEX_A_VER).bspatch $(1)/lib/firmware/
+	ln -s xcpe_$(ANNEX_B_VER)_to_$(ANNEX_A_VER).bspatch $(1)/lib/firmware/lantiq-vrx200-b-to-a.bspatch
+endef
+
+define Package/dsl-vrx200-firmware-xdsl-b-patch/install
+	$(INSTALL_DIR) $(1)/lib/firmware/
+	$(INSTALL_DATA) $(PKG_BUILD_DIR)/xcpe_$(ANNEX_A_VER)_to_$(ANNEX_B_VER).bspatch $(1)/lib/firmware/
+	ln -s xcpe_$(ANNEX_A_VER)_to_$(ANNEX_B_VER).bspatch $(1)/lib/firmware/lantiq-vrx200-a-to-b.bspatch
+endef
+
+$(eval $(call BuildPackage,dsl-vrx200-firmware-xdsl-a))
+$(eval $(call BuildPackage,dsl-vrx200-firmware-xdsl-b))
+$(eval $(call BuildPackage,dsl-vrx200-firmware-xdsl-a-patch))
+$(eval $(call BuildPackage,dsl-vrx200-firmware-xdsl-b-patch))
-- 
2.34.1