diff --git a/Makefile b/Makefile index fd733880804dd21fcf33b1a878512118f27c889a..c2536283973b2371f2558ba0deb40599ae0a2108 100644 --- a/Makefile +++ b/Makefile @@ -71,6 +71,11 @@ ISO_CONTENT=$(ISO_IMAGE_DEST)/content IMAGE_PART_FILE=$(WORKSPACE)/image.img.part GRUB_ASSEMBLE_DIR=$(WORKSPACE)/grub +#GRUB_INSTALL_DIR is passed to grub mbr, so it has to be relative! +#Moreover, it has to be kept in sync with /contrib/image/grub_early.cfg +#and should not conflict with the secure boot grub shipped with the iso +#(usually /boot/grub) +GRUB_INSTALL_DIR=/grub ifneq (,$(findstring release-prefix,$(ISO_PATTERN_FLAGS))) ISO_PREFIX=$(ISO_RELEASE)- @@ -367,7 +372,7 @@ image_binary_files $(IMAGE_DIR)/.lipbinaries: image_git_pull $(IMAGE_BINARIES) $(RSYNC) --progress "$(SECONDARY_ARCH_DIR)/gparted-live.iso" "$(IMAGE_DIR)/gparted-live-$(SECONDARY_ARCH).iso" cd "$(PRIMARY_ARCH_DIR)$(ROOTFS)" && $(RSYNC) -L vmlinuz "$(IMAGE_DIR)/casper/vmlinuz-$(PRIMARY_ARCH)" cd "$(SECONDARY_ARCH_DIR)$(ROOTFS)" && $(RSYNC) -L vmlinuz "$(IMAGE_DIR)/casper/vmlinuz-$(SECONDARY_ARCH)" - mkdir -p "$(IMAGE_DIR)/boot/grub/" + mkdir -p "$(IMAGE_DIR)/boot/grub/" #note: this must not be $$(GRUB_INSTALL_DIR)! $(RSYNC) "$(PRIMARY_ARCH_DIR)$(ISO_CONTENT)/boot/grub/x86_64-efi" \ "$(IMAGE_DIR)/boot/grub/" touch "$(IMAGE_DIR)/.lipbinaries" @@ -376,7 +381,7 @@ image_remaster $(IMAGE_DIR)/.remastered: $(IMAGE_DIR)/.lipbinaries $(call patch_all,$(CURDIR)/patches/iso/,$(IMAGE_DIR)) touch "$(IMAGE_DIR)/.remastered" -image_content: image_git_pull $(IMAGE_DIR)/.remastered $(IMAGE_DIR)/grub/lipinfo.cfg +image_content: image_git_pull $(IMAGE_DIR)/.remastered $(IMAGE_DIR)$(GRUB_INSTALL_DIR)/lipinfo.cfg @echo @echo "Image content is ready: $(IMAGE_DIR)" @@ -398,7 +403,7 @@ $(GRUB_ASSEMBLE_DIR)/grub.x86_64-efi $(GRUB_ASSEMBLE_DIR)/grub.i386-efi : $(GRUB image_grub_mkimage_mbr: $(GRUB_ASSEMBLE_DIR)/grub.i386-pc $(GRUB_ASSEMBLE_DIR)/grub.i386-pc : | $(WORKSPACE) mkdir -p "$(GRUB_ASSEMBLE_DIR)" - grub-mkimage --prefix "(hd0,msdos1)/grub" \ + grub-mkimage --prefix "(hd0,msdos1)$(GRUB_INSTALL_DIR)" \ --output "$@" --format "i386-pc" \ $(IMAGE_GRUB_MBR_MODULES) @@ -407,6 +412,15 @@ $(GRUB_ASSEMBLE_DIR)/mbr.img : $(GRUB_ASSEMBLE_DIR)/grub.i386-pc dd if=/usr/lib/grub/i386-pc/boot.img of="$@" bs=446 count=1 dd if="$(GRUB_ASSEMBLE_DIR)/grub.i386-pc" of="$@" bs=512 seek=1 +image_grub_install: + mkdir -p "$(IMAGE_DIR)$(GRUB_INSTALL_DIR)" + $(RSYNC) "/usr/lib/grub/x86_64-efi" "$(IMAGE_DIR)$(GRUB_INSTALL_DIR)/" + $(RSYNC) "/usr/lib/grub/i386-efi" "$(IMAGE_DIR)$(GRUB_INSTALL_DIR)/" + $(RSYNC) "/usr/lib/grub/i386-pc" "$(IMAGE_DIR)$(GRUB_INSTALL_DIR)/" + $(RSYNC) "/usr/share/grub/themes" "$(IMAGE_DIR)$(GRUB_INSTALL_DIR)/" + mkdir -p "$(IMAGE_DIR)$(GRUB_INSTALL_DIR)/fonts" + $(RSYNC) "/usr/share/grub/unicode.pf2" "$(IMAGE_DIR)$(GRUB_INSTALL_DIR)/fonts/" + image_assemble: $(IMAGE_FILE) $(IMAGE_FILE): $(IMAGE_PART_FILE) $(GRUB_ASSEMBLE_DIR)/mbr.img cp "$(GRUB_ASSEMBLE_DIR)/mbr.img" "$@" @@ -423,14 +437,14 @@ image_clean: $(RM) -r "$(GRUB_ASSEMBLE_DIR)" image_grub_lipinfo : $(IMAGE_DIR)/grub/lipinfo.cfg -$(IMAGE_DIR)/grub/lipinfo.cfg : | $(WORKSPACE) - mkdir -p $(IMAGE_DIR)/grub/ - echo "#This file was generated by lipck." > $(IMAGE_DIR)/grub/lipinfo.cfg - echo "#Feel free to edit it." >> $(IMAGE_DIR)/grub/lipinfo.cfg - echo "set lip_flavor=\"$$(echo "$(ISO_FLAVOR)" | sed "s/\(.\)\(.*\)/\u\1\2/")\"" >> $(IMAGE_DIR)/grub/lipinfo.cfg - echo "set lip_version=\"$(ISO_VERSION)\"" >> $(IMAGE_DIR)/grub/lipinfo.cfg - echo "set lip_release=\"$(ISO_RELEASE)\"" >> $(IMAGE_DIR)/grub/lipinfo.cfg - echo "set lip_extra_info=\"$(IMAGE_EXTRA_INFO)\"" >> $(IMAGE_DIR)/grub/lipinfo.cfg +$(IMAGE_DIR)$(GRUB_INSTALL_DIR)/lipinfo.cfg : | $(WORKSPACE) + mkdir -p "$(IMAGE_DIR)$(GRUB_INSTALL_DIR)" + echo "#This file was generated by lipck." > "$@" + echo "#Feel free to edit it." >> "$@" + echo "set lip_flavor=\"$$(echo "$(ISO_FLAVOR)" | sed "s/\(.\)\(.*\)/\u\1\2/")\"" >> "$@" + echo "set lip_version=\"$(ISO_VERSION)\"" >> "$@" + echo "set lip_release=\"$(ISO_RELEASE)\"" >> "$@" + echo "set lip_extra_info=\"$(IMAGE_EXTRA_INFO)\"" >> "$@" image : image_content @@ -539,7 +553,7 @@ ROOTFS_PHONY=rootfs_unsquash rootfs_prepare rootfs_remaster rootfs_finalize root INITRD_PHONY=initrd_unpack initrd_remaster initrd_pack initrd_clean initrd_clean_both APT_CACHE_PHONY=apt_cache apt_cache_clean REPO_PHONY=repo repo_packages repo_package_info repo_metadata repo_clean -IMAGE_PHONY=image image_content image_skel_file image_assemble image_remaster image_git image_git_pull image_binary_files image_grub_lipinfo image_grub_mkimage_efi image_grub_mkimage_mbr image_grub_mbr_template image_clean +IMAGE_PHONY=image image_content image_skel_file image_assemble image_remaster image_git image_git_pull image_binary_files image_grub_lipinfo image_grub_mkimage_efi image_grub_mkimage_mbr image_grub_mbr_template image_grub_install image_clean COMMON_PHONY=help workspace config config_clean clean_really_all .PHONY : default $(COMMON_PHONY) $(ISO_PHONY) $(ROOTFS_PHONY) $(INITRD_PHONY) $(APT_CACHE_PHONY) $(IMAGE_PHONY) $(REPO_PHONY)