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: