From 6a91a5a72474b213bdba834175c665b963e12f5a Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Wed, 5 Nov 2014 01:33:29 +0100 Subject: [PATCH 1/4] installer: Show better helpline in unattended mode --- src/installer/main.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/installer/main.c b/src/installer/main.c index 9262a400c..4dd561ddb 100644 --- a/src/installer/main.c +++ b/src/installer/main.c @@ -412,7 +412,13 @@ int main(int argc, char *argv[]) { setlocale(LC_ALL, language); } - char* helpline = center_string(_("/ between elements | selects | next screen"), screen_cols); + // Set helpline + char* helpline = NULL; + if (config.unattended) + helpline = center_string(_("Unattended mode"), screen_cols); + else + helpline = center_string(_("/ between elements | selects | next screen"), screen_cols); + newtPushHelpLine(helpline); if (!config.unattended) { From 69749af1005aa4a35a63d5daf55f39e4c47554aa Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Wed, 5 Nov 2014 01:33:59 +0100 Subject: [PATCH 2/4] installer: Don't try to install /etc/hosts which does not exist --- src/installer/dracut-module/module-setup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/installer/dracut-module/module-setup.sh b/src/installer/dracut-module/module-setup.sh index 0173e95b6..08dcdd563 100755 --- a/src/installer/dracut-module/module-setup.sh +++ b/src/installer/dracut-module/module-setup.sh @@ -42,7 +42,7 @@ install() { inst /var/ipfire/dhcpc/dhcpcd-run-hooks inst "$moddir/70-dhcpcd.exe" "/var/ipfire/dhcpc/dhcpcd-hooks/70-dhcpcd.exe" - inst /etc/host.conf /etc/hosts /etc/protocols + inst /etc/host.conf /etc/protocols inst /etc/nsswitch.conf /etc/resolv.conf inst_libdir_file "libnss_dns.so.*" From 3e1145e1a0b1a08bf61d6c4962eeae48e3d0c355 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Wed, 5 Nov 2014 01:34:27 +0100 Subject: [PATCH 3/4] installer: Fix download of the ISO image --- src/installer/downloadsource.sh | 9 ++++++++ src/installer/main.c | 40 ++++++++++++++++++++++++--------- 2 files changed, 38 insertions(+), 11 deletions(-) diff --git a/src/installer/downloadsource.sh b/src/installer/downloadsource.sh index 4a48686ea..c74f9e232 100644 --- a/src/installer/downloadsource.sh +++ b/src/installer/downloadsource.sh @@ -31,6 +31,15 @@ fi OUTPUT="${1}" URL="${2}" +# Mount a tmpfs which is big enough to hold the ISO image +OUTPUT_DIR="${OUTPUT%/*}" + +mkdir -p "${OUTPUT_DIR}" +if ! mount -t tmpfs none "${OUTPUT_DIR}" -o size=512M; then + echo "Could not mount tmpfs to ${OUTPUT_DIR}" >&2 + exit 1 +fi + echo "Downloading ${URL}..." if ! download -O "${OUTPUT}" "${URL}"; then echo "Download failed" >&2 diff --git a/src/installer/main.c b/src/installer/main.c index 4dd561ddb..01a9cc61c 100644 --- a/src/installer/main.c +++ b/src/installer/main.c @@ -25,7 +25,7 @@ #define INST_FILECOUNT 21000 #define LICENSE_FILE "/cdrom/COPYING" -#define SOURCE_TEMPFILE "/tmp/downloaded-image.iso" +#define SOURCE_TEMPFILE "/tmp/downloads/image.iso" extern char url[STRING_SIZE]; @@ -502,7 +502,7 @@ int main(int argc, char *argv[]) { FILE* f = fopen(SOURCE_TEMPFILE, "r"); if (f) { - sourcedrive = SOURCE_TEMPFILE; + sourcedrive = strdup(SOURCE_TEMPFILE); fclose(f); } else { char reason[STRING_SIZE] = "-"; @@ -849,6 +849,18 @@ int main(int argc, char *argv[]) { // Umount source drive and eject hw_umount(SOURCE_MOUNT_PATH); + // Free downloaded ISO image + if (strcmp(sourcedrive, SOURCE_TEMPFILE) == 0) { + rc = unlink(sourcedrive); + if (rc) + fprintf(flog, "Could not free downloaded ISO image: %s\n", sourcedrive); + + // or eject real images + } else { + snprintf(commandstring, STRING_SIZE, "/usr/bin/eject %s", sourcedrive); + mysystem(logfile, commandstring); + } + // Download and execute the postinstall script if (*config.postinstall) { snprintf(commandstring, sizeof(commandstring), @@ -860,9 +872,6 @@ int main(int argc, char *argv[]) { } } - snprintf(commandstring, STRING_SIZE, "/usr/bin/eject %s", sourcedrive); - mysystem(logfile, commandstring); - if (!config.unattended) { snprintf(message, sizeof(message), _( "%s was successfully installed!\n\n" @@ -886,19 +895,28 @@ EXIT: newtFinished(); // Free resources - free(system_release); - free(roottext); - free(helpline); + if (system_release) + free(system_release); - free(sourcedrive); - free(destination); + if (roottext) + free(roottext); + + if (helpline) + free(helpline); + + if (sourcedrive) + free(sourcedrive); + + if (destination) + free(destination); hw_stop_all_raid_arrays(logfile); if (selected_disks) hw_free_disks(selected_disks); - hw_free(hw); + if (hw) + hw_free(hw); fcloseall(); From 851fba0e8df26b85c39760d0e8307ec3b6abdc46 Mon Sep 17 00:00:00 2001 From: Timmothy Wilson Date: Wed, 5 Nov 2014 22:08:02 +0100 Subject: [PATCH 4/4] httpscert: Create certificate with SHA256 hash --- src/scripts/httpscert | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scripts/httpscert b/src/scripts/httpscert index d0e23fa7f..e20f789ed 100644 --- a/src/scripts/httpscert +++ b/src/scripts/httpscert @@ -14,7 +14,7 @@ case "$1" in /bin/cat /etc/certparams | sed "s/HOSTNAME/`hostname -f`/" | /usr/bin/openssl \ req -new -key /etc/httpd/server.key -out /etc/httpd/server.csr echo "Signing certificate" - /usr/bin/openssl x509 -req -days 999999 -in \ + /usr/bin/openssl x509 -req -days 999999 -sha256 -in \ /etc/httpd/server.csr -signkey /etc/httpd/server.key -out \ /etc/httpd/server.crt ;;