From 625178782fc054b6e722db666eddeee8b5513a90 Mon Sep 17 00:00:00 2001 From: Christopher Spinrath <christopher.spinrath@rwth-aachen.de> Date: Tue, 1 Sep 2015 21:44:16 +0200 Subject: [PATCH] ensure mounted partition for all targets accessing $(IMAGE_DIR) --- Makefile | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/Makefile b/Makefile index 52d4a58..b2f25ac 100644 --- a/Makefile +++ b/Makefile @@ -363,7 +363,7 @@ $(call gentargets,$(INITRD_TARGET)) : $(call archdir,%)$(STATE_DIR)/initrd_remas clean_really_all: iso_clean_both rootfs_clean_both rootfs_common_clean initrd_clean_both image_clean -image_git $(IMAGE_DIR)/.git: |$(WORKSPACE) +$(call ensure_mount,image_git) $(IMAGE_DIR)/.git: |$(WORKSPACE) test ! -e "$(IMAGE_DIR)/.git" mkdir -p "$(IMAGE_DIR)" cd "$(IMAGE_DIR)" && git init @@ -371,7 +371,7 @@ image_git $(IMAGE_DIR)/.git: |$(WORKSPACE) cd "$(IMAGE_DIR)" && git fetch cd "$(IMAGE_DIR)" && git checkout -t "origin/$(IMAGE_GIT_BRANCH)" -image_git_pull: |$(IMAGE_DIR)/.git +$(call ensure_mount,image_git_pull): |$(IMAGE_DIR)/.git cd "$(IMAGE_DIR)" && $(SHELL) ./scripts/update_stick.sh "$(IMAGE_GIT_BRANCH)" IMAGE_BINARIES= $(COMMON_DIR)/lip-$(PRIMARY_ARCH).squashfs $(COMMON_DIR)/lip-$(SECONDARY_ARCH).squashfs $(COMMON_DIR)/lip-common.squashfs \ @@ -379,7 +379,7 @@ $(PRIMARY_ARCH_DIR)$(INITRD_TARGET) $(SECONDARY_ARCH_DIR)$(INITRD_TARGET) \ $(PRIMARY_ARCH_DIR)$(STATE_DIR)/iso_extracted $(SECONDARY_ARCH_DIR)$(STATE_DIR)/iso_extracted \ $(PRIMARY_ARCH_DIR)/filesystem.size \ $(PRIMARY_ARCH_DIR)/gparted-live.iso $(SECONDARY_ARCH_DIR)/gparted-live.iso -image_binary_files $(IMAGE_DIR)/.lipbinaries: image_git_pull $(IMAGE_BINARIES) +$(call ensure_mount,image_binary_files) $(IMAGE_DIR)/.lipbinaries: image_git_pull $(IMAGE_BINARIES) $(RSYNC) "$(PRIMARY_ARCH_DIR)$(ISO_CONTENT)/dists" \ "$(PRIMARY_ARCH_DIR)$(ISO_CONTENT)/isolinux" \ "$(PRIMARY_ARCH_DIR)$(ISO_CONTENT)/pool" \ @@ -408,11 +408,11 @@ image_binary_files $(IMAGE_DIR)/.lipbinaries: image_git_pull $(IMAGE_BINARIES) "$(IMAGE_DIR)/boot/grub/" touch "$(IMAGE_DIR)/.lipbinaries" -image_remaster $(IMAGE_DIR)/.remastered: $(IMAGE_DIR)/.lipbinaries +$(call ensure_mount,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_INSTALL_DIR)/lipinfo.cfg $(IMAGE_DIR)$(GRUB_INSTALL_DIR)/.lipgrub +$(call ensure_mount,image_content): image_git_pull $(IMAGE_DIR)/.remastered $(IMAGE_DIR)$(GRUB_INSTALL_DIR)/lipinfo.cfg $(IMAGE_DIR)$(GRUB_INSTALL_DIR)/.lipgrub @echo @echo "Image content is ready: $(IMAGE_DIR)" @@ -443,7 +443,7 @@ $(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: $(IMAGE_DIR)$(GRUB_INSTALL_DIR)/.lipgrub +$(call ensure_mount,image_grub_install): $(IMAGE_DIR)$(GRUB_INSTALL_DIR)/.lipgrub $(IMAGE_DIR)$(GRUB_INSTALL_DIR)/.lipgrub: $(GRUB_ASSEMBLE_DIR)/grub.x86_64-efi $(GRUB_ASSEMBLE_DIR)/grub.i386-efi mkdir -p "$(IMAGE_DIR)$(GRUB_INSTALL_DIR)" $(RSYNC) "/usr/lib/grub/x86_64-efi" "$(IMAGE_DIR)$(GRUB_INSTALL_DIR)/" @@ -478,7 +478,7 @@ image_clean: $(RM) "$(IMAGE_PART_FILE)" $(RM) -r "$(GRUB_ASSEMBLE_DIR)" -image_grub_lipinfo : $(IMAGE_DIR)$(GRUB_INSTALL_DIR)/lipinfo.cfg +$(call ensure_mount,image_grub_lipinfo) : $(IMAGE_DIR)$(GRUB_INSTALL_DIR)/lipinfo.cfg $(IMAGE_DIR)$(GRUB_INSTALL_DIR)/lipinfo.cfg : | $(WORKSPACE) mkdir -p "$(IMAGE_DIR)$(GRUB_INSTALL_DIR)" echo "#This file was generated by lipck." > "$@" @@ -498,7 +498,7 @@ image_umount_if : [ "$$(findmnt --target "$(IMAGE_DIR)" -f -n --output=target)" != "$(IMAGE_DIR)" ] \ || umount -d "$(IMAGE_DIR)" -image : image_content $(GRUB_ASSEMBLE_DIR)/mbr.img +$(call ensure_mount,image) : image_content $(GRUB_ASSEMBLE_DIR)/mbr.img #The following target is not used by lipck itself. It may be used to create #an empty (only the bootloader will be installed) manually. In particular, @@ -509,7 +509,7 @@ multiboot : image_skel_file mkdir -p "$(WORKSPACE)/multiboot.work" mount "$(WORKSPACE)/multiboot.part" "$(WORKSPACE)/multiboot.work" - $(MAKE) "IMAGE_DIR=$(WORKSPACE)/multiboot.work" image_grub_install \ + $(MAKE) "IMAGE_DIR=$(WORKSPACE)/multiboot.work" image_grub_install__ignore_mount \ || (umount "$(WORKSPACE)/multiboot.work" && exit 1) #since this is most likely a standalone image make the lipck grubx64 the #default bootloader for 64bit efi systems @@ -523,7 +523,7 @@ gparted : $(call archdir,$(PRIMARY_ARCH))/gparted-live.iso $(call archdir,$(SECO $(call gentargets,/gparted-live.iso) : wget -O "$@" "$(GPARTED_BASE_URL)/gparted-live-$(GPARTED_VERSION)-$(subst $(SECONDARY_ARCH),i686-pae,$(subst $(PRIMARY_ARCH),amd64,$*)).iso" -repo_packages : $(REPO_ARCHIVE_DIR)/Packages.$(call altarch,$(ARCH)) +$(call ensure_mount,repo_packages) : $(REPO_ARCHIVE_DIR)/Packages.$(call altarch,$(ARCH)) $(REPO_ARCHIVE_DIR)/Packages.$(call altarch,$(PRIMARY_ARCH)) $(REPO_ARCHIVE_DIR)/Packages.$(call altarch,$(SECONDARY_ARCH)) : $(REPO_ARCHIVE_DIR)/Packages.% : $(call archdir,$*)$(STATE_DIR)/rootfs_remastered | $(IMAGE_DIR) $(MAKE) ARCH=$(call to_arch,$*) rootfs_prepare mkdir -p "$(call archdir,$*)$(ROOTFS)/cdrom" @@ -539,7 +539,7 @@ $(REPO_ARCHIVE_DIR)/Packages.$(call altarch,$(PRIMARY_ARCH)) $(REPO_ARCHIVE_DIR) rmdir "$(call archdir,$*)$(ROOTFS)/cdrom" $(MAKE) ARCH=$(call to_arch,$*) rootfs_finalize -repo_package_info : $(REPO_DIST_DIR)/binary-$(call altarch,$(ARCH))/Packages.bz2 +$(call ensure_mount,repo_package_info) : $(REPO_DIST_DIR)/binary-$(call altarch,$(ARCH))/Packages.bz2 $(REPO_DIST_DIR)/binary-$(call altarch,$(PRIMARY_ARCH))/Packages.bz2 $(REPO_DIST_DIR)/binary-$(call altarch,$(SECONDARY_ARCH))/Packages.bz2 : $(REPO_DIST_DIR)/binary-%/Packages.bz2 : $(REPO_ARCHIVE_DIR)/Packages.% mkdir -p "$(REPO_ARCHIVE_DIR)" mkdir -p "$(REPO_DIST_DIR)/binary-$*/" @@ -561,7 +561,7 @@ $(REPO_DIST_DIR)/binary-$(call altarch,$(PRIMARY_ARCH))/Packages.bz2 $(REPO_DIST #The following rules requires none of its dependencies. However, it writes a timestamp to the metadata #that should always be "newer" than the dependencies. -repo_metadata : $(REPO_ARCHIVE_DIR)/Release +$(call ensure_mount,repo_metadata) : $(REPO_ARCHIVE_DIR)/Release $(REPO_ARCHIVE_DIR)/Release : $(REPO_DIST_DIR)/binary-$(call altarch,$(PRIMARY_ARCH))/Packages.bz2 $(REPO_DIST_DIR)/binary-$(call altarch,$(SECONDARY_ARCH))/Packages.bz2 mkdir -p "$(REPO_ARCHIVE_DIR)" @@ -587,7 +587,7 @@ repo_clean: $(RM) -r "$(REPO_DIST_DIR)" $(RM) -r "$(REPO_ARCHIVE_DIR)" -repo: repo_packages repo_package_info repo_metadata +$(call ensure_mount,repo): repo_packages repo_package_info repo_metadata config $(CONFIG_FILE): @echo "Generating configuration $(CONFIG_FILE)" @@ -610,7 +610,6 @@ help: @echo @echo "=== Example run of lipck ===" @echo "\$$ make WORKSPACE=/media/drivewithspace config #configure lipck" - @echo "# make image_mount_if #create and mount a partition" @echo "# make image #main remaster process (requires several cups of coffee)" @echo "# make repo #build offline repo" @echo "# make image_umount #umount the image partition" -- GitLab