diff options
author | Jeremy Katz <katzj@redhat.com> | 2003-07-08 03:00:53 +0000 |
---|---|---|
committer | Jeremy Katz <katzj@redhat.com> | 2003-07-08 03:00:53 +0000 |
commit | 459119c94529602d08de465b7ebfa4871d328081 (patch) | |
tree | 369a7eb643938d6d51ef6f2d0c46561e61dcc0ae /loader2/urlinstall.c | |
parent | 390977d3ee0ebc010168ce04573f63ae15458718 (diff) | |
download | anaconda-459119c94529602d08de465b7ebfa4871d328081.tar.gz anaconda-459119c94529602d08de465b7ebfa4871d328081.tar.xz anaconda-459119c94529602d08de465b7ebfa4871d328081.zip |
massive merge from taroon branch. changes are all over the place, but a
summary of looking through the diff is
* clean up warnings, we build with -Wall -Werror here too
* product.img stuff
* max logical partitions enforcement
* 1 TB max fs size
* ethtool stuff
* autopart in kickstart
* driver disk fixes
* RHEL upgrade stuff
* network driver disks
* variant pkgorder/tree splitting
Diffstat (limited to 'loader2/urlinstall.c')
-rw-r--r-- | loader2/urlinstall.c | 33 |
1 files changed, 25 insertions, 8 deletions
diff --git a/loader2/urlinstall.c b/loader2/urlinstall.c index fcfe7c5e4..e372e3377 100644 --- a/loader2/urlinstall.c +++ b/loader2/urlinstall.c @@ -99,6 +99,16 @@ static int loadUrlImages(struct iurlinfo * ui, int flags) { unlink("/tmp/ramfs/updates-disk.img"); } + /* grab the product.img before netstg1.img so that we minimize our + * ramdisk usage */ + if (!loadSingleUrlImage(ui, "RedHat/base/product.img", flags, + "/tmp/ramfs/product-disk.img", "/tmp/product-disk", + "loop7", 1)) { + copyDirectory("/tmp/product-disk", "/tmp/product"); + umountLoopback("/tmp/product-disk", "loop7"); + unlink("/tmp/ramfs/product-disk.img"); + } + /* require 128MB for use of graphical stage 2 due to size of image */ if (FL_TEXT(flags) || totalMemory() < 128000) { stage2img = "netstg2.img"; @@ -297,16 +307,15 @@ char * mountUrlImage(struct installMethod * method, return url; } -/* pull kickstart configuration file via http */ -int kickstartFromUrl(char * url, struct knownDevices * kd, - struct loaderData_s * loaderData, int flags) { +int getFileFromUrl(char * url, char * dest, struct knownDevices * kd, + struct loaderData_s * loaderData, int flags) { struct iurlinfo ui; enum urlprotocol_t proto = !strncmp(url, "ftp://", 6) ? URL_METHOD_FTP : URL_METHOD_HTTP; char * host = NULL, * file = NULL, * chptr = NULL; int fd, rc; struct networkDeviceConfig netCfg; - char *ehdrs; + char * ehdrs; if (kickstartNetworkUp(kd, loaderData, &netCfg, flags)) { logMessage("unable to bring up network"); @@ -367,15 +376,16 @@ int kickstartFromUrl(char * url, struct knownDevices * kd, } fd = urlinstStartTransfer(&ui, file, ehdrs, 1); + if (fd < 0) { logMessage("failed to retrieve http://%s/%s/%s", ui.address, ui.prefix, file); return 1; } - rc = copyFileFd(fd, "/tmp/ks.cfg"); + rc = copyFileFd(fd, dest); if (rc) { - unlink ("/tmp/ks.cfg"); - logMessage("failed to copy ks.cfg to /tmp/ks.cfg"); + unlink (dest); + logMessage("failed to copy file to %s", dest); return 1; } @@ -384,7 +394,14 @@ int kickstartFromUrl(char * url, struct knownDevices * kd, return 0; } -void setKickstartUrl(struct loaderData_s * loaderData, int argc, +/* pull kickstart configuration file via http */ +int kickstartFromUrl(char * url, struct knownDevices * kd, + struct loaderData_s * loaderData, int flags) { + return getFileFromUrl(url, "/tmp/ks.cfg", kd, loaderData, flags); +} + +void setKickstartUrl(struct knownDevices * kd, + struct loaderData_s * loaderData, int argc, char ** argv, int * flagsPtr) { char *url; |