summaryrefslogtreecommitdiffstats
path: root/fuel/build/Makefile
AgeCommit message (Collapse)AuthorFilesLines
2015-11-27Restructcture of the directory layoutJonas Bjurel1-197/+0
Restructure of the directory layout due to move of Fuel into it's own repo JIRA: FUEL-85 Change-Id: I3647e1992a508f29dce06a5d6c790725c527f6f5 Signed-off-by: Jonas Bjurel <jonas.bjurel@ericsson.com>
2015-11-18EXPERIMENTAL; DO NOT MERGE! Fuel 7.0 rebaseStefan K. Berg1-4/+1
This is work in progress, do not merge but feel free to experiment with this commit changeset as a base. Change-Id: Ifbe1db9c892a94e64abbcfaaf1c98abce0c03dd4 Signed-off-by: Stefan K. Berg <stefan.k.berg@ericsson.com> Conflicts: fuel/build/config.mk
2015-10-26Support for building Fuel behind a http proxyStefan K. Berg1-5/+35
The build system is now able to work also behind a traditional web proxy setup if the http_proxy, https_proxy and (if needed) no_proxy environment variables has been set prior to invoking make. This is a joint work by Gillian Dunne <gillian.dunne@intel.com> and Stefan Berg <stefan.k.berg@ericsson.com>. Verification so far has been with a mock setup, placing the build machine behind a Squid proxy and blocking outgoing traffic not going through the proxy by firewall rules. The following environment variables was set in the host for these tests: RSYNC_PROXY=10.0.0.1:8888 http_proxy=http://10.0.0.1:8888 https_proxy=http://10.0.0.1:8888 no_proxy=localhost,127.0.0.1,.consultron.com,.sock *** IMPORTANT NOTE ABOUT THE HOST PROXY SETTINGS *** The build system will make use the following proxy environment variables: http_proxy: https_proxy no_proxy RSYNC_PROXY RSYNC_CONNECT_PROG During the build phase, a local Ubuntu package repository is fetched from upstream in order to be added to the OPNFV Fuel ISO and for parts of this process rsync is used. This will require that either RSYNC_PROXY is set according to the format "<proxy host>:<proxy port>" and that the proxy indicated indeed allows rsync traffic *or* that RSYNC_CONNECT_PROG is set to use an alternative transport. For a detailed explanation of these settings, see the rsync manual page. *** IMPORTANT NOTE ABOUT THE HOST DOCKER DAEMON SETTINGS *** The Docker daemon on the host must be configured to use the http proxy for it to be able to pull the base Ubuntu 14.04 image from the Docker registry before invoking make! In Ubuntu this is done by adding a line like: export http_proxy="http://10.0.0.1:8888/" to /etc/default/docker and restarting the Docker daemon. Change-Id: Ieed2269af295d90a4b33d834f723889bdf9c7dc6 Signed-off-by: Stefan K. Berg <stefan.k.berg@ericsson.com>
2015-10-15Improved caching functionality and tracabilityStefan K. Berg1-19/+46
In order to enable the caching of more build artifacts than the Fuel iso during CI builds, the caching functionality and the CI build frontend "build.sh" has been rewritten. The build.sh script will now rely on the "make cache" functionality of the top Makefile to make sure that the build is using cache handling. The underlying cache logic is implemented in "cache.mk" for the top makefile and those recursive levels that do not produce cachable artifacts themselves in that they are only calling the SUBDIRS of their lower level (like f_isoroot). All "leaf" Makefiles will however need to implement three cache targets in their top Makefile (for visibility): clean-cache: Clean all files relating to the handling of caches. get-cache: Attempt to fetch a cached artifact using a SHA1 key. put-cache: Store a built artifact into the cache. They can just implement a simple "no-op" functionality for thes targets if they do not have any use of the caching functionality. If they are to use the caching functionality, they must make sure to implement a logic that produces a SHA1 hash based on the source of the data they are to cache - for upstream repos one suggestion is to use the commit ID of the used upstream HEAD. For examples, see the top Makefile that implements this logic for the Fuel ISO build, taking into consideration the commit IDs of all the upstream repositories used. To improve tracability, the root directory of the ISO will contain the file gitinfo.txt, which is meant to detail the upstream repo and commit ID used for all upstream dependencies of a build. If you are adding additional upstream dependencies, make sure to use the repo_info.sh tool to add this data. The cache tool cache.sh has no notion of the cache data it is storing - from the tools perspective, cache data is just a binary blob piped in or out of the tool. This blob is stored by the cache tool at the cache location as <SHA1>.blob, together with an associated meta file <SHA1>.meta. The cache meta file currently holds just one line: Expires: <epoch time> This file is expected to be used to iterate through the cache objects and retire those who's expiry date has passed. Currently objects will always have an expiry date of two weeks into the future, but down the road the "cache put" functionality may be amended with an optional "age" argument that can set a different expiration time. New tools in this commit: cache.sh - the cache logic repo_info.sh - the (optionally recursive) repo information logger Change-Id: I8a40546c21febeecc9de6d82c0ceb6bc60b04205 Signed-off-by: Stefan K. Berg <stefan.k.berg@ericsson.com>
2015-10-07Modifications due to upstream changesStefan K. Berg1-7/+0
Removed a patch which is now incorporated upstream. Added debmirror as a requirement for the build Docker container. Change-Id: I92fa8571019ece9bac41bec2baa3629d286a3a51 Signed-off-by: Stefan K. Berg <stefan.k.berg@ericsson.com>
2015-10-02Move of genesis/fuel master branch: commit ↵Jonas Bjurel1-0/+150
563547b4a9f44090f32c0e17d040114854563760 Note: other installers and /common are removed Change-Id: Ie5a2b0b7f3e7fa2eda191710c98456eeec17ed61 Signed-off-by: Jonas Bjurel <jonas.bjurel@ericsson.com>