Commit 2987fa8f authored by Anton Midyukov's avatar Anton Midyukov

build-vm, image.in: add VM_SAVE_TARBALL parameter

The parameter is used to save the intermediate tarball used to build the virtual machine image.
parent f9ef0e95
...@@ -121,6 +121,12 @@ ...@@ -121,6 +121,12 @@
*** пусто (по умолчанию) либо строка (например, "alpha", "beta") *** пусто (по умолчанию) либо строка (например, "alpha", "beta")
** см. image.in/Makefile ** см. image.in/Makefile
* VM_SAVE_TARBALL
** указывает, что нужно сохранить промежуточный тарбол, из которого
** создаётся образ виртуальной машины, в заданном формате
** значения: tar tar.gz tar.xz
** см. features.in/build-vm/lib/90-build-vm.mk
* VM_SIZE * VM_SIZE
** задаёт размер несжатого образа виртуальной машины в байтах ** задаёт размер несжатого образа виртуальной машины в байтах
** значение: пусто (по умолчанию двойной размер чрута) или целое ** значение: пусто (по умолчанию двойной размер чрута) или целое
......
...@@ -18,6 +18,7 @@ endif ...@@ -18,6 +18,7 @@ endif
# intermediate chroot archive # intermediate chroot archive
VM_TARBALL := $(IMAGE_OUTDIR)/$(IMAGE_NAME).tar VM_TARBALL := $(IMAGE_OUTDIR)/$(IMAGE_NAME).tar
VM_OUT_TARBALL := $(IMAGE_OUTDIR)/$(IMAGE_OUTNAME).tar
VM_RAWDISK := $(IMAGE_OUTDIR)/$(IMAGE_NAME).raw VM_RAWDISK := $(IMAGE_OUTDIR)/$(IMAGE_NAME).raw
VM_FSTYPE ?= ext4 VM_FSTYPE ?= ext4
VM_SIZE ?= 0 VM_SIZE ?= 0
...@@ -28,6 +29,16 @@ VM_XZ_COMMAND ?= xz -T0 ...@@ -28,6 +29,16 @@ VM_XZ_COMMAND ?= xz -T0
# tavolga # tavolga
RECOVERY_LINE ?= Press ENTER to start RECOVERY_LINE ?= Press ENTER to start
# tarball save
#SAVE_TARBALL := convert-image/tar
ifdef VM_SAVE_TAR
ifeq (,$(filter-out img img.xz qcow2 qcow2c vdi vmdk vhd,$(IMAGE_TYPE)))
ifeq (,$(filter-out tar tar.gz tar.xz,$(VM_SAVE_TAR)))
SAVE_TARBALL := convert-image/$(VM_SAVE_TAR)
endif
endif
endif
check-sudo: check-sudo:
@if ! type -t sudo >&/dev/null; then \ @if ! type -t sudo >&/dev/null; then \
echo "** error: sudo not available, see doc/vm.txt" >&2; \ echo "** error: sudo not available, see doc/vm.txt" >&2; \
...@@ -39,7 +50,7 @@ check-qemu: ...@@ -39,7 +50,7 @@ check-qemu:
exit 1; \ exit 1; \
fi fi
tar2fs: check-sudo prepare-tarball-qemu tar2fs: $(SAVE_TARBALL) check-sudo prepare-tarball-qemu
@if [ -x /usr/share/mkimage-profiles/bin/tar2fs ]; then \ @if [ -x /usr/share/mkimage-profiles/bin/tar2fs ]; then \
TOPDIR=/usr/share/mkimage-profiles; \ TOPDIR=/usr/share/mkimage-profiles; \
fi; \ fi; \
...@@ -57,13 +68,17 @@ prepare-tarball-qemu: ...@@ -57,13 +68,17 @@ prepare-tarball-qemu:
tar -rf "$(VM_TARBALL)" ./.host/qemu*) ||: tar -rf "$(VM_TARBALL)" ./.host/qemu*) ||:
convert-image/tar: convert-image/tar:
mv "$(VM_TARBALL)" "$(IMAGE_OUTPATH)" ifdef SAVE_TARBALL
cp "$(VM_TARBALL)" "$(VM_OUT_TARBALL)"
else
mv "$(VM_TARBALL)" "$(VM_OUT_TARBALL)"
endif
convert-image/tar.gz: convert-image/tar.gz: convert-image/tar
$(VM_GZIP_COMMAND) < "$(VM_TARBALL)" > "$(IMAGE_OUTPATH)" $(VM_GZIP_COMMAND) "$(VM_OUT_TARBALL)"
convert-image/tar.xz: convert-image/tar.xz: convert-image/tar
$(VM_XZ_COMMAND) < "$(VM_TARBALL)" > "$(IMAGE_OUTPATH)" $(VM_XZ_COMMAND) "$(VM_OUT_TARBALL)"
convert-image/img: tar2fs convert-image/img: tar2fs
mv "$(VM_RAWDISK)" "$(IMAGE_OUTPATH)" mv "$(VM_RAWDISK)" "$(IMAGE_OUTPATH)"
......
...@@ -41,8 +41,8 @@ IMAGE_VERSION := -$(DISTRO_VERSION) ...@@ -41,8 +41,8 @@ IMAGE_VERSION := -$(DISTRO_VERSION)
IMAGE_VER_LINK := $(IMAGE_NAME)$(IMAGE_VERSION)-latest-$(ARCH).$(IMAGE_TYPE) IMAGE_VER_LINK := $(IMAGE_NAME)$(IMAGE_VERSION)-latest-$(ARCH).$(IMAGE_TYPE)
endif endif
IMAGE_OUTFILE := \ IMAGE_OUTNAME := $(IMAGE_NAME)$(IMAGE_VERSION)-$(STATUS)$(DATE)-$(ARCH)
$(IMAGE_NAME)$(IMAGE_VERSION)-$(STATUS)$(DATE)-$(ARCH).$(IMAGE_TYPE) IMAGE_OUTFILE := $(IMAGE_OUTNAME).$(IMAGE_TYPE)
IMAGE_OUTDIR := $(IMAGEDIR)$(IMAGE_SORTDIR:%=/%) IMAGE_OUTDIR := $(IMAGEDIR)$(IMAGE_SORTDIR:%=/%)
IMAGE_OUTPATH := $(IMAGE_OUTDIR)/$(IMAGE_OUTFILE) IMAGE_OUTPATH := $(IMAGE_OUTDIR)/$(IMAGE_OUTFILE)
IMAGE_RELPATH := $(IMAGE_SORTDIR:%=%/)$(IMAGE_OUTFILE) IMAGE_RELPATH := $(IMAGE_SORTDIR:%=%/)$(IMAGE_OUTFILE)
...@@ -95,6 +95,9 @@ postprocess: | $(addprefix postprocess-,$(sort $(POSTPROCESS_TARGETS))) ...@@ -95,6 +95,9 @@ postprocess: | $(addprefix postprocess-,$(sort $(POSTPROCESS_TARGETS)))
echo "** error: $(IMAGE_OUTPATH) missing" >&2; \ echo "** error: $(IMAGE_OUTPATH) missing" >&2; \
exit 1; \ exit 1; \
fi; \ fi; \
if [ -n "$(VM_SAVE_TAR)" ]; then \
echo "** tarball saved: $(IMAGE_OUTPATH)/$(IMAGE_OUTNAME).$(VM_SAVE_TAR)" >&2; \
fi; \
echo "** image: $(IMAGE_OUTPATH) [$$OUTSIZE]" >&2 && \ echo "** image: $(IMAGE_OUTPATH) [$$OUTSIZE]" >&2 && \
echo "IMAGE_OUTPATH = $(IMAGE_OUTPATH)" && \ echo "IMAGE_OUTPATH = $(IMAGE_OUTPATH)" && \
echo "IMAGE_OUTFILE = $(IMAGE_OUTFILE)" && \ echo "IMAGE_OUTFILE = $(IMAGE_OUTFILE)" && \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment