Roger Pau Monne: 1 alpine-iso: add support to create Xen Dom0 LiveCD/USB 3 files changed, 80 insertions(+), 1 deletions(-)
Copy & paste the following snippet into your terminal to import this patchset into git:
curl -s https://lists.alpinelinux.org/~alpine/devel/patches/305/mbox | git am -3Learn more about email & git
A new profile has been added, called alpine-xen, that shoud be used when trying to craft a Xen Dom0 LiveCD/USB. Please review and comment. --- Makefile | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++- alpine-xen.conf.mk | 4 +++ alpine-xen.packages | 10 +++++++ 3 files changed, 80 insertions(+), 1 deletions(-) create mode 100644 alpine-xen.conf.mk create mode 100644 alpine-xen.packages diff --git a/Makefile b/Makefile index 7fa36b2..5072a03 100755 --- a/Makefile +++ b/Makefile @@ -200,6 +200,47 @@ $(VSTEMPLATE): @cd $(VSTEMPLATE_DIR) && $(TAR) -jcf $@ * # +# apkovl rules +# + +ifdef BUILD_APKOVL +APKOVL_DEST := $(ISO_DIR)/$(BUILD_APKOVL).apkovl.tar.gz +APKOVL_DIR := $(DESTDIR)/apkovl_$(BUILD_APKOVL) +endif + +# Helper function to link a script to runlevel + +rc_add = \ + @mkdir -p "$(APKOVL_DIR)"/etc/runlevels/"$(2)"; \ + ln -sf /etc/init.d/"$(1)" "$(APKOVL_DIR)"/etc/runlevels/"$(2)"/"$(1)"; + +$(ISO_DIR)/xen.apkovl.tar.gz: + @rm -rf "$(APKOVL_DIR)" + @mkdir -p "$(APKOVL_DIR)" + @mkdir -p "$(APKOVL_DIR)"/etc/apk + @mkdir -p "$(APKOVL_DIR)"/etc/network + @echo "auto lo" >> "$(APKOVL_DIR)"/etc/network/interfaces + @echo "iface lo inet loopback" >> "$(APKOVL_DIR)"/etc/network/interfaces + @echo "xen udev" >> "$(APKOVL_DIR)"/etc/apk/world + @echo "xen_netback" >> "$(APKOVL_DIR)"/etc/modules + @echo "xen_blkback" >> "$(APKOVL_DIR)"/etc/modules + $(call rc_add,devfs,sysinit) + $(call rc_add,dmesg,sysinit) + $(call rc_add,hwclock,boot) + $(call rc_add,modules,boot) + $(call rc_add,sysctl,boot) + $(call rc_add,hostname,boot) + $(call rc_add,bootmisc,boot) + $(call rc_add,syslog,boot) + $(call rc_add,mount-ro,shutdown) + $(call rc_add,killprocs,shutdown) + $(call rc_add,savecache,shutdown) + $(call rc_add,udev,sysinit) + $(call rc_add,udev-postmount,default) + $(call rc_add,xencommons,default) + @cd $(APKOVL_DIR) && $(TAR) -zcf $@ * + @echo "==> apkovl: built $@" +# # ISO rules # @@ -223,24 +264,42 @@ $(ISOLINUX_CFG): @echo "$(SYSLINUX_SERIAL)" >$@ @echo "timeout 20" >>$@ @echo "prompt 1" >>$@ +ifeq ($(PROFILE), alpine-xen) + @echo "default xen-$(KERNEL_FLAVOR_DEFAULT)" >>$@ + @for flavor in $(KERNEL_FLAVOR); do \ + echo "label xen-$$flavor"; \ + echo " kernel /boot/mboot.c32"; \ + echo " append /boot/xen.gz --- /boot/$$flavor alpine_dev=cdrom:iso9660 modules=loop,squashfs,sd-mod,usb-storage,floppy,sr-mod modloop=/boot/$$flavor.modloop.squashfs $(BOOT_CONSOLE) --- /boot/$$flavor.gz"; \ + done >>$@ +else @echo "default $(KERNEL_FLAVOR_DEFAULT)" >>$@ @for flavor in $(KERNEL_FLAVOR); do \ echo "label $$flavor"; \ echo " kernel /boot/$$flavor"; \ echo " append initrd=/boot/$$flavor.gz alpine_dev=cdrom:iso9660 modules=loop,squashfs,sd-mod,usb-storage,floppy,sr-mod quiet $(BOOT_CONSOLE)"; \ done >>$@ +endif $(SYSLINUX_CFG): $(ALL_MODLOOP_DIRSTAMP) @echo "==> iso: configure syslinux" @echo "$(SYSLINUX_SERIAL)" >$@ @echo "timeout 20" >>$@ @echo "prompt 1" >>$@ +ifeq ($(PROFILE), alpine-xen) + @echo "default xen-$(KERNEL_FLAVOR_DEFAULT)" >>$@ + @for flavor in $(KERNEL_FLAVOR); do \ + echo "label xen-$$flavor"; \ + echo " kernel /boot/mboot.c32"; \ + echo " append /boot/xen.gz --- /boot/$$flavor alpine_dev=usbdisk:vfat modules=loop,squashfs,sd-mod,usb-storage modloop=/boot/$$flavor.modloop.squashfs $(BOOT_CONSOLE) --- /boot/$$flavor.gz"; \ + done >>$@ +else @echo "default $(KERNEL_FLAVOR_DEFAULT)" >>$@ @for flavor in $(KERNEL_FLAVOR); do \ echo "label $$flavor"; \ echo " kernel /boot/$$flavor"; \ echo " append initrd=/boot/$$flavor.gz alpine_dev=usbdisk:vfat modules=loop,squashfs,sd-mod,usb-storage quiet $(BOOT_CONSOLE)"; \ done >>$@ +endif clean-syslinux: @rm -f $(SYSLINUX_CFG) $(ISOLINUX_CFG) $(ISOLINUX_BIN) @@ -266,6 +325,12 @@ $(ISO_KERNEL_STAMP): $(MODLOOP_DIRSTAMP) @mkdir -p $(dir $(ISO_KERNEL)) @apk fetch $(APK_OPTS) --stdout $(KERNEL_PKGNAME) \ | $(TAR) -C $(ISO_DIR) -xz boot +ifeq ($(PROFILE), alpine-xen) + @apk fetch $(APK_OPTS) --stdout xen \ + | $(TAR) -C $(ISO_DIR) -xz boot + @apk fetch $(APK_OPTS) --stdout syslinux \ + | $(TAR) -xz usr/share/syslinux/mboot.c32 -O > $(ISO_DIR)/boot/mboot.c32 +endif @rm -f $(ISO_KERNEL) @ln -s vmlinuz-$(MODLOOP_KERNEL_RELEASE) $(ISO_KERNEL) @rm -rf $(ISO_DIR)/.[A-Z]* $(ISO_DIR)/.[a-z]* $(ISO_DIR)/lib @@ -281,7 +346,7 @@ $(APKOVL_STAMP): fi @touch $@ -$(ISOFS_DIRSTAMP): $(ALL_MODLOOP) $(ALL_INITFS) $(ISOLINUX_CFG) $(ISOLINUX_BIN) $(ALL_ISO_KERNEL) $(ISO_REPOS_DIRSTAMP) $(APKOVL_STAMP) $(SYSLINUX_CFG) +$(ISOFS_DIRSTAMP): $(ALL_MODLOOP) $(ALL_INITFS) $(ISOLINUX_CFG) $(ISOLINUX_BIN) $(ALL_ISO_KERNEL) $(ISO_REPOS_DIRSTAMP) $(APKOVL_STAMP) $(SYSLINUX_CFG) $(APKOVL_DEST) @echo "$(ALPINE_NAME)-$(ALPINE_RELEASE) $(BUILD_DATE)" \ > $(ISO_DIR)/.alpine-release @touch $@ diff --git a/alpine-xen.conf.mk b/alpine-xen.conf.mk new file mode 100644 index 0000000..016db33 --- /dev/null +++ b/alpine-xen.conf.mk @@ -0,0 +1,4 @@ +ALPINE_NAME := alpine-xen +MODLOOP_EXTRA := +KERNEL_FLAVOR := grsec +BUILD_APKOVL := xen diff --git a/alpine-xen.packages b/alpine-xen.packages new file mode 100644 index 0000000..b1cbd42 --- /dev/null +++ b/alpine-xen.packages @@ -0,0 +1,10 @@ +bkeymaps +alpine-base +alpine-mirrors +wpa_supplicant +wireless-tools +openssl +tzdata +xen +udev +multipath-tools -- 1.7.7.1 --- Unsubscribe: alpine-devel+unsubscribe@lists.alpinelinux.org Help: alpine-devel+help@lists.alpinelinux.org ---