Joey Hess schrieb am Freitag, 08. Oktober 2004 um 20:02:14 -0400: > Joerg Friedrich wrote: > > having three preseed packages which can coexist in the same initrd: > > 1. initrd-preseed: like file-preseed but does not depend on any > > cdrom-detect or mount-floppy. but it only can read files which are on > > the initrd. this would make it possible to preseed even before the > > language-chooser. > > I guess that's a reasonable wishlist. File a bug on the preseed package. I had some spare time and tried to add it myself. A diff is attached. Maybe you could have a look at it, esp. the things about dh_*, debconf-templates... Btw, I first created a pressed-common package to have no file conflicts, and second I moved the method-specific functions to separate files to avoid the the dpkg-problem mentioned in this thread. -- Jörg Friedrich There are only 10 types of people: Those who understand binary and those who don't.
diff -Nurd di-old/debian-installer/packages/preseed/debian/changelog di/debian-installer/packages/preseed/debian/changelog --- di-old/debian-installer/packages/preseed/debian/changelog 2004-10-10 10:49:40.000000000 +0200 +++ di/debian-installer/packages/preseed/debian/changelog 2004-10-10 19:55:43.000000000 +0200 @@ -1,5 +1,12 @@ preseed (1.01) unstable; urgency=low + * preseed-common + * initrd-preseed + + -- Joerg Friedrich <Joerg.Dieter.Friedrich@uni-konstanz.de> Sun, 10 Oct 2004 19:54:23 +0200 + +preseed (1.01) unstable; urgency=low + * Updated translations: - Bulgarian (bg.po) by Ognyan Kulev - Catalan (ca.po) by Jordi Mallach diff -Nurd di-old/debian-installer/packages/preseed/debian/control di/debian-installer/packages/preseed/debian/control --- di-old/debian-installer/packages/preseed/debian/control 2004-10-10 10:49:40.000000000 +0200 +++ di/debian-installer/packages/preseed/debian/control 2004-10-09 16:55:13.000000000 +0200 @@ -5,17 +5,31 @@ Uploaders: Joey Hess <joeyh@debian.org> Build-Depends: debhelper (>= 4.2), dpkg-dev (>= 1.9) +Package: preseed-common +Architecture: all +Priority: standard +Depends: ${shlibs:Depends}, di-utils +Description: Debconf preseed - Common Files +XC-Package-Type: udeb + Package: network-preseed Architecture: all Priority: standard -Depends: ${shlibs:Depends}, configured-network, di-utils +Depends: ${shlibs:Depends}, preseed-common, configured-network Description: Download debconf preseed file XC-Package-Type: udeb XB-Installer-Menu-Item: 21 Package: file-preseed Architecture: all -Depends: ${shlibs:Depends}, cdrom-detect, di-utils +Depends: ${shlibs:Depends}, preseed-common, cdrom-detect Description: Load debconf preseed file XC-Package-Type: udeb XB-Installer-Menu-Item: 14 + +Package: initrd-preseed +Architecture: all +Depends: ${shlibs:Depends}, preseed-common +Description: Load debconf preseed file +XC-Package-Type: udeb +XB-Installer-Menu-Item: 5 diff -Nurd di-old/debian-installer/packages/preseed/debian/file-preseed.postinst di/debian-installer/packages/preseed/debian/file-preseed.postinst --- di-old/debian-installer/packages/preseed/debian/file-preseed.postinst 2004-10-10 10:49:40.000000000 +0200 +++ di/debian-installer/packages/preseed/debian/file-preseed.postinst 2004-10-09 16:48:08.000000000 +0200 @@ -3,29 +3,10 @@ . /usr/share/debconf/confmodule . /lib/preseed/preseed.sh +. /lib/preseed/file-preseed.sh -usedfloppy= -# Used by preseed function. -preseed_fetch () { - if [ "${1%/*}" = "/floppy" ]; then - mountfloppy || true - usedfloppy=1 - fi - - if [ ! -e "$1" ] || ! cp "$1" $2; then - return 1 - else - return 0 - fi -} -preseed_relative () { - if [ -z "${1##/*}" ]; then - return 1 - else - return 0 - fi -} +usedfloppy= preseed preseed/file preseed_command preseed/early_command diff -Nurd di-old/debian-installer/packages/preseed/debian/initrd-preseed.isinstallable di/debian-installer/packages/preseed/debian/initrd-preseed.isinstallable --- di-old/debian-installer/packages/preseed/debian/initrd-preseed.isinstallable 1970-01-01 01:00:00.000000000 +0100 +++ di/debian-installer/packages/preseed/debian/initrd-preseed.isinstallable 2004-10-09 16:53:37.000000000 +0200 @@ -0,0 +1,7 @@ +#!/bin/sh +. /usr/share/debconf/confmodule +db_get preseed/initrd || exit 1 +if [ -n "$RET" ]; then + exit 0 +fi +exit 1 diff -Nurd di-old/debian-installer/packages/preseed/debian/initrd-preseed.postinst di/debian-installer/packages/preseed/debian/initrd-preseed.postinst --- di-old/debian-installer/packages/preseed/debian/initrd-preseed.postinst 1970-01-01 01:00:00.000000000 +0100 +++ di/debian-installer/packages/preseed/debian/initrd-preseed.postinst 2004-10-10 11:08:35.000000000 +0200 @@ -0,0 +1,11 @@ +#!/bin/sh +set -e + +. /usr/share/debconf/confmodule +. /lib/preseed/preseed.sh +. /lib/preseed/initrd-preseed.sh + + +preseed preseed/initrd +preseed_command preseed/early_command + diff -Nurd di-old/debian-installer/packages/preseed/debian/initrd-preseed.templates di/debian-installer/packages/preseed/debian/initrd-preseed.templates --- di-old/debian-installer/packages/preseed/debian/initrd-preseed.templates 1970-01-01 01:00:00.000000000 +0100 +++ di/debian-installer/packages/preseed/debian/initrd-preseed.templates 2004-10-10 11:25:38.000000000 +0200 @@ -0,0 +1,10 @@ +Template: debian-installer/initrd-preseed/title +Type: text +# Main menu item +_Description: Load debconf preseed file + +Template: preseed/initrd +Type: string +Default: /etc/initrd-preseed +# not translatable as it's never displayed +Description: path to debconf preseed file (or files) to load diff -Nurd di-old/debian-installer/packages/preseed/debian/network-preseed.postinst di/debian-installer/packages/preseed/debian/network-preseed.postinst --- di-old/debian-installer/packages/preseed/debian/network-preseed.postinst 2004-10-10 10:49:40.000000000 +0200 +++ di/debian-installer/packages/preseed/debian/network-preseed.postinst 2004-10-09 16:49:13.000000000 +0200 @@ -3,29 +3,8 @@ . /usr/share/debconf/confmodule . /lib/preseed/preseed.sh +. /lib/preseed/network-preseed.sh -# Used by preseed function. -preseed_fetch () { - local url="$1" - local file="$2" - iters=0 - while [ $iters -lt 3 ]; do - # TODO proxy support? Would it be useful? - # TODO add progress bar - if wget -q "$url" -O "$file"; then - return 0 - fi - iters=$(($iters + 1)) - done - return 1 -} -preseed_relative () { - if [ -z ${1##*://*} ]; then - return 1 - else - return 0 - fi -} preseed preseed/url preseed_command preseed/early_command diff -Nurd di-old/debian-installer/packages/preseed/debian/rules di/debian-installer/packages/preseed/debian/rules --- di-old/debian-installer/packages/preseed/debian/rules 2004-10-10 10:49:40.000000000 +0200 +++ di/debian-installer/packages/preseed/debian/rules 2004-10-09 17:09:44.000000000 +0200 @@ -16,14 +16,18 @@ dh_testdir dh_testroot dh_clean -k - dh_install --all preseed_command bin - dh_install --all 05preseed usr/lib/prebaseconfig.d - dh_install --all preseed.sh lib/preseed + dh_install -ppreseed-common preseed_command bin + dh_install -ppreseed-common 05preseed usr/lib/prebaseconfig.d + dh_install -ppreseed-common preseed.sh lib/preseed + dh_install -pinitrd-preseed initrd-preseed.sh lib/preseed + dh_install -pnetwork-preseed network-preseed.sh lib/preseed + dh_install -pfile-preseed file-preseed.sh lib/preseed dh_installdebconf set -e; \ - for pkg in $(shell dh_listpackages); do \ (echo; po2debconf debian/common.templates ) \ - >> debian/$$pkg/DEBIAN/templates; \ + >> debian/preseed-common/DEBIAN/templates; + set -e; \ + for pkg in $(shell dh_listpackages -Npreseed-common); do \ cp debian/$$pkg.isinstallable debian/$$pkg/DEBIAN/isinstallable; \ done dh_compress diff -Nurd di-old/debian-installer/packages/preseed/file-preseed.sh di/debian-installer/packages/preseed/file-preseed.sh --- di-old/debian-installer/packages/preseed/file-preseed.sh 1970-01-01 01:00:00.000000000 +0100 +++ di/debian-installer/packages/preseed/file-preseed.sh 2004-10-09 16:47:29.000000000 +0200 @@ -0,0 +1,20 @@ +# Used by preseed function. +preseed_fetch () { + if [ "${1%/*}" = "/floppy" ]; then + mountfloppy || true + usedfloppy=1 + fi + + if [ ! -e "$1" ] || ! cp "$1" $2; then + return 1 + else + return 0 + fi +} +preseed_relative () { + if [ -z "${1##/*}" ]; then + return 1 + else + return 0 + fi +} diff -Nurd di-old/debian-installer/packages/preseed/initrd-preseed.sh di/debian-installer/packages/preseed/initrd-preseed.sh --- di-old/debian-installer/packages/preseed/initrd-preseed.sh 1970-01-01 01:00:00.000000000 +0100 +++ di/debian-installer/packages/preseed/initrd-preseed.sh 2004-10-09 16:58:01.000000000 +0200 @@ -0,0 +1,20 @@ +# Used by preseed function. +preseed_fetch () { + if [ "${1%/*}" = "/floppy" ]; then + mountfloppy || true + usedfloppy=1 + fi + + if [ ! -e "$1" ] || ! cp "$1" $2; then + return 1 + else + return 0 + fi +} +preseed_relative () { + if [ -z "${1##/*}" ]; then + return 1 + else + return 0 + fi +} diff -Nurd di-old/debian-installer/packages/preseed/network-preseed.sh di/debian-installer/packages/preseed/network-preseed.sh --- di-old/debian-installer/packages/preseed/network-preseed.sh 1970-01-01 01:00:00.000000000 +0100 +++ di/debian-installer/packages/preseed/network-preseed.sh 2004-10-09 16:48:34.000000000 +0200 @@ -0,0 +1,23 @@ +# Used by preseed function. +preseed_fetch () { + local url="$1" + local file="$2" + iters=0 + while [ $iters -lt 3 ]; do + # TODO proxy support? Would it be useful? + # TODO add progress bar + if wget -q "$url" -O "$file"; then + return 0 + fi + iters=$(($iters + 1)) + done + return 1 +} +preseed_relative () { + if [ -z ${1##*://*} ]; then + return 1 + else + return 0 + fi +} +
Attachment:
signature.asc
Description: Digital signature