## Folder Layout ``` photon/ ├── Makefile ├── README ├── Dockerfile ├── Vagrantfile ├── SPECS # RPM SPEC files ├── common # Build, Packaging config ├── docs # Documentation ├── installer # Installer used at runtime ├── support # Build scripts └── tools ``` ## How to build the ISO? Pre-requisites : * Build O/S : Ubuntu 14.04 (or later) 64 bit * Packages: bison, gawk, g++, createrepo, python-aptdaemon, genisoimage, texinfo, python-requests ``` sudo apt-get -y install bison gawk g++ createrepo python-aptdaemon genisoimage texinfo python-requests ``` * Docker: ``` wget -qO- https://get.docker.com/ | sh ``` Make sure `/bin/sh` is a symbolic link pointing to `/bin/bash` If `/bin/sh` is pointing `/bin/dash`, execute the following: ``` sudo ln -sf /bin/bash /bin/sh ``` Assuming you checked out the workspace under `$HOME/workspaces/photon`. ``` cd $HOME/workspaces/photon sudo make iso ``` Deliverable will be created at `$HOME/workspaces/photon/stage/photon.iso` ## How to use cached toolchain and RPMS? ``` mkdir $HOME/photon-cache sudo make iso PHOTON_CACHE_PATH=$HOME/photon-cache ``` Directory format of `PHOTON_CACHE_PATH` is as follows. ``` photon-cache/ ├──tools-build.tar.gz ├──RPMS/x86-64/*.rpm └──RPMX/noarch/*.rpm ``` ## How to use cached sources? ``` mkdir $HOME/photon-sources sudo make iso PHOTON_SOURCES_PATH=$HOME/photon-sources ``` Directory format of `PHOTON_SOURCES_PATH` is as follows. ``` photon-sources/ ├──src1.tar.gz ├──src2.tar.gz └──... ``` ## Where are the build logs? ``` $HOME/workspaces/photon/stage/LOGS ``` ## Complete build environment using Vagrant A `Vagrantfile` is available to ensure a quick standup of a development/build environment for Photon, this Vagrantfile uses a box called `photon-build-machine` box that is created through a [Packer](http://packer.io) template available under `support/packer-templates`, see the [README.md](https://github.com/vmware/photon/blob/master/support/packer-templates/README.md) for more information on how to build `photon-build-machine`. ## Photon Vagrant box As with the build-machine a Packer template is available under `support/packer-templates` to build a Photon based Vagrant box running Docker, see the [README.md](https://github.com/vmware/photon/blob/master/support/packer-templates/README.md) for more information on how to build. ## Automated build environment and Vagrant boxes Convenience make targets also exist to build both the `photon-build-machine` and the `photon` Packer templates as well as building a fresh ISO using the `photon-build-machine`. See the [README.md](https://github.com/vmware/photon/blob/master/support/packer-templates/README.md) for more details.