Menu

Tree [beb357] master /
 History

HTTPS access


File Date Author Commit
 balloon-bootstrap 2016-07-08 David Lloyd David Lloyd [198bdf] Fix up installer
 balloon-install 2016-07-22 root root [beb357] Add support for latest kernel
 balloon-splashscreen 2016-07-05 David Lloyd David Lloyd [fcfa83] Update to work with latest upstream packages
 AUTHORS 2014-03-16 david david [64e4bc] Initial commit
 COPYING 2014-03-16 david david [64e4bc] Initial commit
 Makefile 2014-08-04 root root [3b43b3] Add splash screen.
 ProductDefinitions.h 2016-07-22 root root [beb357] Add support for latest kernel
 README 2014-03-16 david david [994ddb] Correct Copyright header.
 README_PRODUCT 2014-03-21 DDD DDD [1e52ba] Add Copyright files to DVD.

Read Me

/* This file is part of Balloon-Installer.
 * Copyright (C) 2014 David Lloyd
 *
 * Balloon-Installer is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Balloon-Installer is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with Balloon-Installer.  If not, see <http://www.gnu.org/licenses/>.
 */

Introduction
------------

This module creates a bootable ISO that attempts to download a newer version of itself as a .tar.gz file, verifies its signature, and uses it to install the system.


To configure
------------

The ProductDefinition.h needs to be configured with the DOWNLOAD_DOWNLOAD_FROM https address (e.g. https://www.example.com/download/%s), and a DOWNLOAD_PRODUCT file name of the tar.gz file to download.  The server should serve:
 (1) A <DOWNLOAD_PRODUCT> file
 (2) A <DOWNLOAD_PRODUCT>.signed digital signature file
 (3) A CurrentVersion.txt file (starting at 1 and incrementing whenever there is an upgrade available)

Two trusted root certificates (it is best to include any intermediate certficates as well) need to be included:
 (1) ssl-trustedcert.pem - used to verify the HTTPS connection
 (2) trustedcert.pem - used to verify the <tar.gz>.signed digital signature



To build
--------

Run make to produce a disk.iso with the installer.  The system will also produce a product.tar.gz to place on the server

To sign the product.tar.gz, use openssl to create a cms signature.
     openssl cms -sign -in product.tar.gz -inkey cms.private -signer cms.pem -out product.tar.gz.signed -outform PEM -binary


To customise
------------

Normally, only a single disk.iso is ever needed - it always loads the latest product.tar.gz from your server.  Create a separate copy of the Balloon-Installer project and modify:
   (1) The ProductDefinition.h INSTALLED_VERSION (higher numbers indicate that an upgrade is required).
   (2) The CurrentVersion.txt to match the INSTALLED_VERSION in the product.tar.gz

The list of required modules can be extended in the ProductDefinition.h. Additional product files can be included in the product directory

 
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.