[Ovirt-devel] [PATCH node-image] Added subpackage for srpms, ovirt-node-image-srpms

David Huff dhuff at redhat.com
Thu Nov 20 22:31:29 UTC 2008


Workaround which uses pungi to downoad srpms and create a srpm.iso.  This patch takes alot from ovirt-release ovirt.mk. Packages srpms into a new subrpm which only contains the source iso. Adds new RPM flag pungi_srpms to toggle srpm iso creation.
---
 Makefile.am              |   47 ++++++++++++++++++++++++++++++++++++++++++++++
 ovirt-node-image.spec.in |   32 ++++++++++++++++++++++++++++++-
 2 files changed, 78 insertions(+), 1 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index 61f826f..d34c8a1 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -65,6 +65,8 @@ RPMDIR		= $$(rpm --eval '%{_rpmdir}')
 RPM_FLAGS	= --define "ovirt_cache_dir $(OVIRT_CACHE_DIR)"
 RPM_FLAGS	+= $(if $(_ovirt_dev),--define "extra_release .$(GIT_RELEASE)")
 RPM_FLAGS	+= --define "source_iso 1"
+RPM_FLAGS	+= --define "pungi_srpms 1"
+SRC_KS = $(OVIRT_CACHE_DIR)/$(PACKAGE)-tmp/src.ks
 
 repos.ks:
 	( \
@@ -125,6 +127,51 @@ $(NVR).$(PKG_FMT).$(SUM): $(NVR).$(PKG_FMT)
 
 $(PACKAGE).$(PKG_FMT) node: $(NVR).$(PKG_FMT).$(SUM)
 
+$(PACKAGE).source source: $(NVR).$(PKG_FMT).$(SUM).source
+
+$(NVR).$(PKG_FMT).$(SUM).source: $(NVR).$(PKG_FMT).source
+
+$(NVR).$(PKG_FMT).source:
+	@mkdir -p $(OVIRT_CACHE_DIR)/$(PACKAGE)-tmp/tree/pungi
+	@sudo rm -Rf $(OVIRT_CACHE_DIR)/$(PACKAGE)-tmp/tree/pungi/*
+	@( if [ -n "$(FEDORA_URL)" ]; then \
+	  echo "repo --name=f$(FEDORA) --baseurl=$(FEDORA_URL)/releases/$(FEDORA)/Everything/\$$basearch/os" ; \
+	  echo "repo --name=f$(FEDORA)-updates --baseurl=$(FEDORA_URL)/updates/$(FEDORA)/\$$basearch" ; \
+	  echo "repo --name=f$(FEDORA)-updates-newkey --baseurl=$(FEDORA_URL)/updates/$(FEDORA)/\$$basearch.newkey" ; \
+	  echo "repo --name=f$(FEDORA)-src --baseurl=$(FEDORA_URL)/releases/$(FEDORA)/Everything/source/SRPMS" ; \
+	  echo "repo --name=f$(FEDORA)-updates-src --baseurl=$(FEDORA_URL)/updates/$(FEDORA)/SRPMS" ; \
+	  echo "repo --name=f$(FEDORA)-updates-src-newkey --baseurl=$(FEDORA_URL)/updates/$(FEDORA)/SRPMS.newkey" ; \
+	else \
+	  echo "repo --name=f$(FEDORA) --mirrorlist=$(FEDORA_MIRROR)?repo=fedora-$(FEDORA)&arch=\$$basearch" ; \
+	  echo "repo --name=f$(FEDORA)-updates --mirrorlist=$(FEDORA_MIRROR)?repo=updates-released-f$(FEDORA)&arch=\$$basearch" ; \
+	  echo "repo --name=f$(FEDORA)-updates-newkey --mirrorlist=$(FEDORA_MIRROR)?repo=updates-released-f$(FEDORA).newkey&arch=\$$basearch" ; \
+	  echo "repo --name=f$(FEDORA)-src --mirrorlist=$(FEDORA_MIRROR)?repo=fedora-source-$(FEDORA)&arch=src" ; \
+	  echo "repo --name=f$(FEDORA)-updates-src --mirrorlist=$(FEDORA_MIRROR)?repo=updates-released-source-f$(FEDORA)&arch=src" ; \
+	  echo "repo --name=f$(FEDORA)-updates-src-newkey --mirrorlist=$(FEDORA_MIRROR)?repo=updates-released-source-f$(FEDORA).newkey&arch=src" ; \
+	fi ; \
+	echo "repo --name=ovirt-org --baseurl=$(OVIRT_URL)/$(FEDORA)/\$$basearch" ; \
+	echo "repo --name=ovirt-org-src --baseurl=$(OVIRT_URL)/$(FEDORA)/src" ; \
+	echo "#repo --name=thincrust-net --baseurl=$(THINCRUST_URL)/noarch" ; \
+	echo "#repo --name=thincrust-net-src --baseurl=$(THINCRUST_URL)/srpms" ; \
+	echo "#repo --name=ovirt-local --baseurl=file://$(OVIRT_CACHE_DIR)/ovirt" ; \
+	echo "%packages --nobase" ; \
+	grep -v '^-' /usr/share/appliance-os/includes/base-pkgs.ks ; \
+	echo "lokkit" ; \
+		for dir in $(SUBDIRS); do \
+	  echo "ovirt-$$dir" ; \
+	  test -f $$dir/common-pkgs.ks && grep -v '^-' $$dir/common-pkgs.ks ; \
+	done ; \
+	echo "%end" ) > $(SRC_KS)
+	cd $(OVIRT_CACHE_DIR)/$(PACKAGE)-tmp/tree/pungi && \
+	  pungi -G --ver=$(PACKAGE)  -c $(SRC_KS) --cachedir=$(OVIRT_CACHE_DIR)/yum
+	cd $(OVIRT_CACHE_DIR)/$(PACKAGE)-tmp/tree/pungi &&  \
+		sudo pungi --sourceiso --ver=$(PACKAGE)  -c $(SRC_KS) --cachedir=$(OVIRT_CACHE_DIR)/yum
+	sudo mv $(OVIRT_CACHE_DIR)/$(PACKAGE)-tmp/tree/pungi/$(PACKAGE)/source/iso/Fedora-$(PACKAGE)-source.iso ./$(PACKAGE)-source.iso
+	sudo sudo chown -R $(USER) ./$(PACKAGE)-source.iso
+	sudo sudo chown -R $(USER) $(OVIRT_CACHE_DIR)/$(PACKAGE)-tmp/tree/pungi
+	sudo rm -Rf $(OVIRT_CACHE_DIR)/$(PACKAGE)-tmp/tree/pungi
+	@rm $(SRC_KS)
+
 rpms: dist node
 	rpmbuild $(RPM_FLAGS) -ta $(distdir).tar.gz
 
diff --git a/ovirt-node-image.spec.in b/ovirt-node-image.spec.in
index 009a499..851a475 100644
--- a/ovirt-node-image.spec.in
+++ b/ovirt-node-image.spec.in
@@ -1,5 +1,6 @@
 #include pre-built image ISO as source
 %{!?source_iso: %define source_iso 0}
+%{!?pungi_srpms: %define pungi_srpms 0}
 
 Summary: oVirt Node ISO image
 Name: ovirt-node-image
@@ -29,9 +30,21 @@ Requires: appliance-tools >= 003.9
 The ISO boot image for oVirt Node booting from CDROM device.
 At the moment, this RPM just packages prebuilt ISO.
 
+%if %{pungi_srpms}
+%package srpms
+Summary: oVirt Node source ISO image
+Group: Applications/System
+BuildRequires: pungi
+
+%description srpms
+The source rpms for the ISO boot image for oVirt Node.  At the moment, this RPM just contains a iso of the srpms
+
+%define image_source_iso %{name}-source.iso
+%endif
+
 %prep
 %setup -q
-%if ! %{source_iso}
+%if ! %{source_iso} || %{pungi_srpms}
 ./configure
 %endif
 
@@ -42,6 +55,12 @@ make %{?ovirt_cache_dir: OVIRT_CACHE_DIR=%{ovirt_cache_dir}} \
      %{?ovirt_url: OVIRT_URL=%{ovirt_url}} \
      %{name}.iso
 %endif
+%if %{pungi_srpms}
+	make %{?ovirt_cache_dir: OVIRT_CACHE_DIR=%{ovirt_cache_dir}} \
+   	%{?ovirt_local_repo: OVIRT_LOCAL_REPO=%{ovirt_local_repo}} \
+   	%{?ovirt_url: OVIRT_URL=%{ovirt_url}} \
+  	%{name}.source
+%endif
 
 %install
 %{__rm} -rf %{buildroot}
@@ -49,6 +68,9 @@ mkdir %{buildroot}
 
 %{__install} -d -m0755 %{buildroot}%{app_root}
 %{__install} -p -m0644 %{image_iso} %{buildroot}%{app_root}
+%if %{pungi_srpms}
+	%{__install} -p -m0644 %{image_source_iso} %{buildroot}%{app_root}
+%endif
 %{__install} -d -m0755 %{buildroot}%{_sbindir}
 %{__install} -p -m0755 ovirt-pxe %{buildroot}%{_sbindir}
 %{__install} -p -m0755 ovirt-flash %{buildroot}%{_sbindir}
@@ -71,7 +93,15 @@ mkdir %{buildroot}
 %{_sbindir}/edit-livecd
 %{_sbindir}/livecd-setauth
 
+%if %{pungi_srpms}
+%files srpms
+%{app_root}/%{name}-source.iso
+%endif
+
 %changelog
+* Thu Nov 20 2008 David Huff <dhuff at redhat.com> 0.93
+- add pungi source iso
+
 * Thu Jul 03 2008 Perry Myers <pmyers at redhat.com> 0.92-0
 - Only store ISO in SRPM, and generate PXE from that during build
 
-- 
1.5.5.1




More information about the ovirt-devel mailing list