diff --git a/build_patch/gdisk/gpt-sig.patch b/build_patch/gdisk/gpt-sig.patch new file mode 100644 index 0000000000..13cf9737d6 --- /dev/null +++ b/build_patch/gdisk/gpt-sig.patch @@ -0,0 +1,33 @@ +diff --git a/gpt.cc b/gpt.cc +index 24d6918..4130352 100644 +--- a/gpt.cc ++++ b/gpt.cc +@@ -506,24 +506,24 @@ int GPTData::CheckHeaderValidity(void) { + // a message is displayed in the ReversePartitionBytes() function + if ((mainHeader.signature != GPT_SIGNATURE) || (!CheckHeaderCRC(&mainHeader, 1))) { + valid -= 1; +- } else if ((mainHeader.revision != 0x00010000) && valid) { ++ } else if ((mainHeader.revision != 0x00000001) && valid) { + valid -= 1; + cout << "Unsupported GPT version in main header; read 0x"; + cout.width(8); + cout << hex << mainHeader.revision << ", should be\n0x"; + cout.width(8); +- cout << UINT32_C(0x00010000) << dec << "\n"; ++ cout << UINT32_C(0x00000001) << dec << "\n"; + } // if/else/if + + if ((secondHeader.signature != GPT_SIGNATURE) || (!CheckHeaderCRC(&secondHeader))) { + valid -= 2; +- } else if ((secondHeader.revision != 0x00010000) && valid) { ++ } else if ((secondHeader.revision != 0x00000001) && valid) { + valid -= 2; + cout << "Unsupported GPT version in backup header; read 0x"; + cout.width(8); + cout << hex << secondHeader.revision << ", should be\n0x"; + cout.width(8); +- cout << UINT32_C(0x00010000) << dec << "\n"; ++ cout << UINT32_C(0x00000001) << dec << "\n"; + } // if/else/if + + // Check for an Apple disk signature diff --git a/makefiles/gdisk.mk b/makefiles/gdisk.mk new file mode 100644 index 0000000000..26e4abf22c --- /dev/null +++ b/makefiles/gdisk.mk @@ -0,0 +1,45 @@ +ifneq ($(PROCURSUS),1) +$(error Use the main Makefile) +endif + +SUBPROJECTS += gdisk +GDISK_VERSION := 1.0.9 +DEB_GDISK_V ?= $(GDISK_VERSION) + +gdisk-setup: setup + $(call DOWNLOAD_FILES,$(BUILD_SOURCE),https://sourceforge.net/projects/gptfdisk/files/gptfdisk/$(GDISK_VERSION)/gptfdisk-$(GDISK_VERSION).tar.gz) + $(call EXTRACT_TAR,gptfdisk-$(GDISK_VERSION).tar.gz,gptfdisk-$(GDISK_VERSION),gdisk) + $(call DO_PATCH,gdisk,gdisk,-p1) + +ifneq ($(wildcard $(BUILD_WORK)/gdisk/.build_complete),) +gdisk: + @echo "Using previously built gdisk." +else +gdisk: gdisk-setup + # TODO: fix the makefile, it sucks ass + +$(MAKE) -C $(BUILD_WORK)/gdisk + mkdir -p $(BUILD_STAGE)/gdisk/$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/bin + mv $(BUILD_WORK)/gdisk/gdisk $(BUILD_STAGE)/gdisk/$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/bin + $(call AFTER_BUILD,copy) +endif + +gdisk-package: gdisk-stage + # gdisk.mk Package Structure + rm -rf $(BUILD_DIST)/gdisk + mkdir -p $(BUILD_DIST)/gdisk/$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/bin + + # gdisk.mk Prep gdisk + cp -a $(BUILD_STAGE)/gdisk/$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/bin/gdisk $(BUILD_DIST)/gdisk/$(MEMO_PREFIX)$(MEMO_SUB_PREFIX)/bin + + # gdisk.mk Sign + # TODO: This probably needs more entitlements + $(call SIGN,gdisk,general.xml) + + # gdisk.mk Make .debs + # TODO: control file + $(call PACK,gdisk,DEB_GDISK_V) + + # gdisk.mk Build cleanup + rm -rf $(BUILD_DIST)/gdisk + +.PHONY: gdisk gdisk-package