[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#473144: provide {loadlin,gzip,cpio}.exe for dynamic use



Package: debian-installer
Severity: wishlist
Tags: patch

Currently, win32-loader is linking in loadlin.exe, gzip.exe and cpio.exe
statically into the executable, which is less than ideal for the propagation
of upgraded versions.

This patch adds them in their own win32-loader/ directory, so that newer
versions can get these files from there instead.

-- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.18-6-amd64 (SMP w/2 CPU cores)
Locale: LANG=ca_AD.UTF-8, LC_CTYPE=ca_AD.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Index: build/config/x86.cfg
===================================================================
--- build/config/x86.cfg	(revision 52185)
+++ build/config/x86.cfg	(working copy)
@@ -82,9 +82,14 @@
 	fi || echo "*** Failed to add boot logo, probably out of space." >&2
 
 	# win32-loader
-	(mcopy -i$(TEMP_BOOT) /usr/lib/win32-loader/win32-loader.exe	::setup.exe ; \
-	mcopy -i$(TEMP_BOOT) /usr/lib/win32-loader/g2ldr		::g2ldr ; \
-	mcopy -i$(TEMP_BOOT) /usr/lib/win32-loader/g2ldr.mbr		::g2ldr.mbr ; \
+	(mmd -i$(TEMP_BOOT) ::win32-loader ; \
+	mcopy -i$(TEMP_BOOT) /usr/lib/win32-loader/win32-loader.exe	::setup.exe ; \
+	mcopy -i$(TEMP_BOOT) /usr/lib/win32-loader/g2ldr		::win32-loader\\g2ldr ; \
+	mcopy -i$(TEMP_BOOT) /usr/lib/win32-loader/g2ldr.mbr		::win32-loader\\g2ldr.mbr ; \
+	mcopy -i$(TEMP_BOOT) /usr/share/win32/gzip.exe			::win32-loader\\gzip.exe ; \
+	mcopy -i$(TEMP_BOOT) /usr/share/win32/cpio.exe			::win32-loader\\cpio.exe ; \
+	gunzip /usr/lib/loadlin/loadlin.exe.gz -c > $(TEMP)/loadlin.exe ; \
+	mcopy -i$(TEMP_BOOT) $(TEMP)/loadlin.exe			::win32-loader\\loadlin.exe ; \
 	\
 	(echo -en "[installer]\n"; \
 	echo -en "arch=$(ARCH)\n"; \
@@ -95,9 +100,15 @@
 		echo -en "user_interface=text\n"; \
 		echo -en "$(ARCH)/linux=linux\n$(ARCH)/initrd=initrd.gz\n"; \
 	fi; \
-	echo -en "\n[grub]\ng2ldr=g2ldr\ng2ldr.mbr=g2ldr.mbr\n") \
+	echo -en "\n[util]\n"; \
+	echo -en "grub=win32-loader\\\\g2ldr\ngrub.mbr=win32-loader\\\\g2ldr.mbr\n"; \
+	echo -en "gzip=win32-loader\\\\gzip.exe\n"; \
+	echo -en "cpio=win32-loader\\\\cpio.exe\n"; \
+	echo -en "loadlin=win32-loader\\\\loadlin.exe\n"; \
+	echo -en "\n; deprecated section\n[grub]\ng2ldr=win32-loader\\\\g2ldr\ng2ldr.mbr=win32-loader\\\\g2ldr.mbr\n") \
 		| todos | mcopy -i$(TEMP_BOOT) - ::win32-loader.ini) \
-	|| (mdel -i$(TEMP_BOOT) ::setup.exe ::g2ldr ::g2ldr.mbr ::win32-loader.ini ; \
+	|| (mdel -i$(TEMP_BOOT) ::setup.exe ::win32-loader.ini ; \
+		mdeltree -i$(TEMP_BOOT) ::win32-loader ; \
 		echo "*** Failed to add win32-loader, probably out of space." >&2)
 
 	$(if $(GZIPPED),gzip -v9f $(TEMP_BOOT))
@@ -169,8 +180,14 @@
 
 	# win32-loader
 	cp /usr/lib/win32-loader/win32-loader.exe	$(TEMP_CD_INFO_DIR)/setup.exe
-	cp /usr/lib/win32-loader/g2ldr			$(TEMP_CD_INFO_DIR)/g2ldr
-	cp /usr/lib/win32-loader/g2ldr.mbr		$(TEMP_CD_INFO_DIR)/g2ldr.mbr
+	mkdir -p					$(TEMP_CD_INFO_DIR)/win32-loader
+	cp \
+		/usr/lib/win32-loader/g2ldr \
+		/usr/lib/win32-loader/g2ldr.mbr \
+		/usr/share/win32/gzip.exe \
+		/usr/share/win32/cpio.exe \
+							$(TEMP_CD_INFO_DIR)/win32-loader/
+	gunzip /usr/lib/loadlin/loadlin.exe.gz -c >	$(TEMP_CD_INFO_DIR)/win32-loader/loadlin.exe
 
 	# win32-loader.ini
 	(echo -en "[installer]\n"; \
@@ -182,7 +199,12 @@
 		echo -en "user_interface=text\n"; \
 		echo -en "$(ARCH)/linux=install/vmlinuz\n$(ARCH)/initrd=install/initrd.gz\n"; \
 	fi; \
-	echo -en "\n[grub]\ng2ldr=g2ldr\ng2ldr.mbr=g2ldr.mbr\n") \
+	echo -en "\n[util]\n"; \
+	echo -en "grub=win32-loader\\\\g2ldr\ngrub.mbr=win32-loader\\\\g2ldr.mbr\n"; \
+	echo -en "gzip=win32-loader\\\\gzip.exe\n"; \
+	echo -en "cpio=win32-loader\\\\cpio.exe\n"; \
+	echo -en "loadlin=win32-loader\\\\loadlin.exe\n"; \
+	echo -en "\n; deprecated section\n[grub]\ng2ldr=win32-loader\\\\g2ldr\ng2ldr.mbr=win32-loader\\\\g2ldr.mbr\n") \
 		| todos > $(TEMP_CD_INFO_DIR)/win32-loader.ini
 
 .PHONY: arch_miniiso
@@ -216,8 +238,14 @@
 	
 	# win32-loader
 	cp /usr/lib/win32-loader/win32-loader.exe	$(TEMP_CD_TREE)/setup.exe
-	cp /usr/lib/win32-loader/g2ldr			$(TEMP_CD_TREE)/g2ldr
-	cp /usr/lib/win32-loader/g2ldr.mbr		$(TEMP_CD_TREE)/g2ldr.mbr
+	mkdir -p					$(TEMP_CD_TREE)/win32-loader
+	cp \
+		/usr/lib/win32-loader/g2ldr \
+		/usr/lib/win32-loader/g2ldr.mbr \
+		/usr/share/win32/gzip.exe \
+		/usr/share/win32/cpio.exe \
+							$(TEMP_CD_TREE)/win32-loader/
+	gunzip /usr/lib/loadlin/loadlin.exe.gz -c >	$(TEMP_CD_TREE)/win32-loader/loadlin.exe
 
 	# win32-loader.ini
 	(echo -en "[installer]\n"; \
@@ -229,7 +257,12 @@
 		echo -en "user_interface=text\n"; \
 		echo -en "$(ARCH)/linux=linux\n$(ARCH)/initrd=initrd.gz\n"; \
 	fi; \
-	echo -en "\n[grub]\ng2ldr=g2ldr\ng2ldr.mbr=g2ldr.mbr\n") \
+	echo -en "\n[util]\n"; \
+	echo -en "grub=win32-loader\\\\g2ldr\ngrub.mbr=win32-loader\\\\g2ldr.mbr\n"; \
+	echo -en "gzip=win32-loader\\\\gzip.exe\n"; \
+	echo -en "cpio=win32-loader\\\\cpio.exe\n"; \
+	echo -en "loadlin=win32-loader\\\\loadlin.exe\n"; \
+	echo -en "\n; deprecated section\n[grub]\ng2ldr=win32-loader\\\\g2ldr\ng2ldr.mbr=win32-loader\\\\g2ldr.mbr\n") \
 		| todos > $(TEMP_CD_TREE)/win32-loader.ini
 
 	mkisofs -r -J -b isolinux.bin -c boot.cat \
Index: debian/control
===================================================================
--- debian/control	(revision 52185)
+++ debian/control	(working copy)
@@ -160,6 +160,9 @@
 #		Used to encrypt a firmware image so an ARM based device
 #		(Thecus N2100) will accept it.
 #	- win32-loader [i386 amd64 kfreebsd-i386 kfreebsd-amd64]
+#	- loadlin [i386 amd64 kfreebsd-i386 kfreebsd-amd64]
+#	- cpio-win32 [i386 amd64 kfreebsd-i386 kfreebsd-amd64]
+#	- gzip-win32 [i386 amd64 kfreebsd-i386 kfreebsd-amd64]
 #		Alternative boot method for win32 platforms.
 
 Package: debian-installer

Reply to: