summaryrefslogtreecommitdiffstats
path: root/scripts
Commit message (Collapse)AuthorAgeFilesLines
* wic: code cleanup: wildcard importsEd Bartosh2015-04-2412-60/+43
| | | | | | | | | | | | | Here is what PEP8(Style Guide for Python Code) says about this: Wildcard imports (from <module> import *) should be avoided, as they make it unclear which names are present in the namespace, confusing both readers and many automated tools. (From OE-Core rev: 13416c1941f5dc8abcdb0073f2104a89eae2d6f1) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: code cleanup: undefined variablesEd Bartosh2015-04-243-2/+3
| | | | | | | | | | Fixed forgoten imports Wic_PartData and ImageError. Removed unused and undefined variable syslinux_conf. (From OE-Core rev: db0903ad89dcb655c0eec5ac6dce96aae26533da) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* devtool: force use of bash when running build within extensible SDKPaul Eggleton2015-04-241-0/+5
| | | | | | | | | | | | | | | | | | | Ubuntu's default dash shell causes oe-init-build-env to behave a bit differently - (a) it can't pick up the OE root directory and (b) it can't see any build directory specified as a command-line argument (since dash doesn't pass through any arguments specified to sourced scripts). We could work around these but doing so requires some internal knowledge of the script; a much simpler fix is just to force running the command under bash since it's expected to be installed on every distro. Thanks to Chen Qi <Qi.Chen@windriver.com> for this fix. Fixes [YOCTO #7614]. (From OE-Core rev: 27942f546e6b08cdf9f2dbda2e24d237cde7f5f5) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* fontcache: allow to pass different fontconfig cache dirMartin Jansa2015-04-211-3/+1
| | | | | | | (From OE-Core rev: 40f7986313277ef815b19331388bca124187bfeb) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: try to find bitbake using find_executable APIEd Bartosh2015-04-191-5/+15
| | | | | | | | | | | | | | | | Current wic code was assuming that bitbake directory is on the same level as scripts, which is not the case for oe classic. Using find_executable bitbake location should be determined better as this API uss $PATH to search for executables. Fixes [YOCTO #7621] (From OE-Core rev: 9d86eb2e448263f7e395b48d95c380b2dc66ad8e) Signed-off-by: Ed Bartosh <eduard.bartosh@intel.com> Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* devtool: call parse_recipe with correct argumentsMarkus Lehtonen2015-04-191-2/+3
| | | | | | | | | | | | Give the correct data object ("config data" instead of "recipe data") as an argument to oe.recipeutils.patch_recipe() Fixes [YOCTO #7595] (From OE-Core rev: 7d2b918019b0afe215a6489dad697afac34f73e9) Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Print bitbake error outputEd Bartosh2015-04-141-0/+1
| | | | | | | | | | | | Added bitbake error output to wic error message to make it more descriptive. [YOCTO #6911] (From OE-Core rev: f68576d4c9cecbe7122325d7fc78c9b27ff07a8e) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: use native partedEd Bartosh2015-04-143-24/+7
| | | | | | | | | | | | | | | | | Used exec_native_cmd instead of find_binary_path to run parted. Got rid of find_binary_path as it's not used anywhere else. There are several tools wic is trying to find not only in sysroot, but also in host root. Parted is a special as on some distros it's installed in /usr/sbin, which is not in the user's PATH. This makes wic to fail with error "External command 'parted' not found, exiting." [YOCTO #7122] (From OE-Core rev: 76adf38c0d8e0faf04a5ecb3fcfbe831c85bb81f) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oe-init-build-env: fix for build dirs that have spaces in their pathJoshua Lock2015-04-131-5/+5
| | | | | | | | | | Enclose expansions of BUILDDIR in quotes in order to correctly handle paths which include spaces. (From OE-Core rev: 0c08723cf5ebc1a7df7dc4ca36cffa090286468c) Signed-off-by: Joshua Lock <joshua.lock@collabora.co.uk> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: setup infrastructure for nosetestsEd Bartosh2015-04-132-0/+46
| | | | | | | | | | | | cd scripts && nosetests runs 3 simple tests and produces nice test coverage report for wic codebase. This infra can be used to test other scripts and modules. (From OE-Core rev: 510dadc2cd8ff8a09932c101512dba74d4624a07) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Add argv argument to mainEd Bartosh2015-04-131-3/+3
| | | | | | | | | | | | Make it possible to call wic as an API from tests passing command line parameters as arguments to main. This is yet another enabler for wic unit testing. (From OE-Core rev: 8cb9ac3751424d429a38f6f80d733b289b6684ea) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Use __file__ instead of sys.argv[0]Ed Bartosh2015-04-131-1/+1
| | | | | | | | | | | | | | Using __file__ makes the code work independently of the way it's loaded. In some cases wic can be imported by another program without executing it. sys.argv[0] would not contain path to the wic in such a cases. This is an enabler for unit testing with nose framework. (From OE-Core rev: 7166262032648dbbc8b4b476c8770e35b1d4e234) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic:code cleanup: No space allowedEd Bartosh2015-04-139-60/+60
| | | | | | | | | | Fixed pylint warning 'No space allowed around keyword argument assignment' (From OE-Core rev: e07dd9b9c71960fbeded162ed52fbce06de620e9) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* generate-manifest-2.7.py: Add fractions to ${PN}-numbersTim Orling2015-04-131-1/+1
| | | | | | | | | python-cryptography requires fractions module which is currently unpackaged. (From OE-Core rev: ac09a1830fffb6aded499ade55c039e35202867e) Signed-off-by: Tim Orling <TicoTimo@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: make error message more informativeEd Bartosh2015-04-101-2/+2
| | | | | | | | | | | | | Included name of the missing program into the error message produced by exec_native_cmd when program is not found. Removed mentioning of the host programs as this API is not running them anymore. (From OE-Core rev: 7d1599cf6a55d3624d2b90c1f55e14c4df73e570) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: don't use host paths when looking for native toolsEd Bartosh2015-04-101-1/+1
| | | | | | | | | | | | exec_native_cmd should not use host paths in $PATH to avoid finding and using host tools. [YOCTO: #6204] (From OE-Core rev: fa263f238bbddb00c9953994fb69cc358170e2ec) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: Implement --build-rootfs command line optionEd Bartosh2015-04-092-7/+28
| | | | | | | | | | | -f/--build-rootfs option makes wic to run bitbake <image> to produce rootfs. This option requires image name to be specified with -e/--image-name. (From OE-Core rev: 75ae0b7cf3863eb2857a2b6a7073beea626f751d) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: support ontrackdm6aux3 partitionsAlexandre Belloni2015-04-091-0/+2
| | | | | | | | | | ontrack dm6 aux3 is a type of partition required to be able to boot a Freescale mxs based platform. (From OE-Core rev: aa2d05c58992810a5f816eef8078facf03a07e3c) Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: rawcopy: ensure comparison is done on intAlexandre Belloni2015-04-091-1/+1
| | | | | | | | | | The size comparison may fail because it is done on strings rather than integers. (From OE-Core rev: 2ef885329cfd0351f551a33dcf3f42e25f38dea7) Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: code cleanup: unused importsEd Bartosh2015-04-0915-32/+3
| | | | | | | | | Fixed pylint warning 'Unused import' (From OE-Core rev: dfde8bdae3ae151ffed5777b920d24c774e5da2c) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* wic: code cleanup: bad indentationEd Bartosh2015-04-091-4/+4
| | | | | | | | | Fixed pylint warning 'Bad indentation' (From OE-Core rev: ee71acc6f114f992a2edc9a3f557a731795aa076) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* combo-layer: fix file_exclude for empty commitsPatrick Ohly2015-03-311-0/+4
| | | | | | | | | | | | | | | The code detecting empty patches after removing files with file_exclude failed for commits which were already empty before (like the initial commit in some repos): such patches are completely empty files, without a From line. Detect that case and just let the normal empty patch detection deal with it. (From OE-Core rev: 3e310b8cd603539a2de115b2b73e1db35403b426) Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* combo-layer: fix file_exclude for dest_dir = .Patrick Ohly2015-03-311-4/+7
| | | | | | | | | | | | | | | | "filterdiff -x ./some/file" does not remove changes for some/file. We must be more careful about constructing the path name and only add the prefix when it really means a directory. While at it, also better normalize the path in copy_selected_files() early on, to handle double slashes. Useful should the function ever gets used for something other that dest_dir (which gets normalized in sanity_check()). (From OE-Core rev: 8ea63c6c920c39e5a4ba176223fe472f92e2632a) Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* combo-layer: clean up dest_dir checkingPatrick Ohly2015-03-311-4/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Empty dest_dir is basically undocumented behavior. The sample conf only mentions using just a dot for the current directory. In practice, the empty string does not work because of code like this: def action_splitpatch(conf, args): ... if dest_dir != ".": filerange_root = '%s -x "%s/*"' % (filerange_root, dest_dir) However, the empty string was not explicitly checked for, leading to strange errors when trying to apply patches: [12:50:23] Applying: foobar: xyz fatal: unable to stat newly created file '/foobar': No such file or directory This patch turns the empty string into an alias for the dot. This seems more user-friendly than throwing an error. This alias is intentionally not document in the sample conf, because the dot is clearer and works also with older copies of combo-layer. Instead of checking for both all the time and normalizing the path when needed (as done in some places), rewrite the value in sanity_check() and then only check for '.'. (From OE-Core rev: f8cdbe749755dc769150d3a6c2c54318c80e1562) Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oe-git-proxy: Redirect error messages to STDERRJuro Bystricky2015-03-311-1/+1
| | | | | | | | | | | | | | | | | | | oe-git-proxy script needs socat. If socat is not found, an error message is issued on STDOUT. This leads to a misleading git message: fatal: protocol error: bad line length character: ERRO instead of the intended message: ERROR: socat binary not in PATH Redirecting the error message to STDERR fixes this issue. (From OE-Core rev: 960a7f7ae24e72efc165a431f8b91b3f3b176916) Signed-off-by: Juro Bystricky <juro.bystricky@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* yocto-bsp: Update templates to 3.19 kernelTom Zanussi2015-03-2448-894/+114
| | | | | | | | | | | Add 3.19 kernel support and remove 3.10 and 3.17 support. 'Fixes' [YOCTO #7391]. (From meta-yocto rev: fe9b3c567230e815f528431f1098626669a9568f) Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* postinst_intercept script: drop pipeMatthieu Crapet2015-03-221-1/+1
| | | | | | | | | | Avoid useless subshell. There's no word splitting in variable assignment. (From OE-Core rev: 7b12f4860138d8f5e53ebdfa2a87b59a9ea5c487) Signed-off-by: Matthieu Crapet <Matthieu.Crapet@ingenico.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* scripts/combo-layer: Handle update with no repo/revision specifiedRichard Purdie2015-03-201-6/+7
| | | | | | | | | | | Running an update operation with no repo/revision specified was failing. This fixes that code path which worked until the change from: http://git.yoctoproject.org/cgit.cgi/poky/commit/scripts/combo-layer?id=3592507a149b668c0a925e176535f7f2002fa543 (From OE-Core rev: 411a6a3694a9fcd563c5b5320597314fbec75cc2) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* recipetool: fix duplicate licenses being picked upPaul Eggleton2015-03-201-1/+3
| | | | | | | | | | | If a license file matched more than one of the specifications (e.g. COPYING.GPL) then it was being added to LIC_FILES_CHKSUM more than once. (From OE-Core rev: 58316a2890782d206e9b9472ba483367f7560109) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* devtool: deploy-target: add dry-run optionPaul Eggleton2015-03-201-0/+16
| | | | | | | | | | | | Add a dry-run option to the deploy-target and undeploy-target subcommands so you can see the list of files to be deployed or un-deployed before actually carrying out the operation. (From OE-Core rev: b9625581f3fe72fc402632be2d87cf889301c6a2) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* devtool: deploy-target: add an option to disable quiet modePaul Eggleton2015-03-201-3/+12
| | | | | | | | | | | | | | The -q option to scp does stop the progress being shown, which is mostly superfluous, however it also stops errors from ssh being shown - if there's a problem, you'll just get "lost connection" which really isn't that helpful. As a compromise, add a -s/--show-status option and advertise this when the command fails. (From OE-Core rev: 5cbb026212b4c8f5206a07d70b94f57edeee0839) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* devtool: deploy-target: detect and error if D is emptyPaul Eggleton2015-03-201-2/+6
| | | | | | | | | | | If you haven't built the recipe yet or if the output directory (${D}) is empty, then we should tell the user rather than have scp error out. (From OE-Core rev: 3fd9ac277393bef5c646f16b9d8f30c277881d70) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* devtool: deploy-target: allow disabling host key checkingPaul Eggleton2015-03-201-4/+13
| | | | | | | | | | | | | | | | | | | | | | If you're testing with multiple images/devices that have the same IP address / hostname then it can be annoying to deal with host key mismatches all of the time. As a MITM attack is unlikely in the local test environment, provide a command line option to pass the appropriate options to scp/ssh to disable the host key checking. Note: if you wish to apply this permanently, the best way is to do it through your ssh configuration e.g. by adding the following to your ~/.ssh/config: Host 192.168.7.2 UserKnownHostsFile=/dev/null StrictHostKeyChecking no (From OE-Core rev: 81dd1319112a99bc38b7a7ced0663918ac5b09a4) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* devtool: modify/extract: prevent usage with incompatible recipesPaul Eggleton2015-03-201-13/+35
| | | | | | | | | | | | Consolidate code for checking compatible recipes and consider meta and packagegroup recipes as well as package-index and gcc-source to be incompatible. (From OE-Core rev: 4be9bf637583b341a89af1b9924752abc7d49c94) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* devtool: modify: get correct initial revision from previously extracted ↵Paul Eggleton2015-03-201-2/+13
| | | | | | | | | | | | | | | source tree If you point devtool modify to a source tree previously created by devtool modify or devtool extract, then we need to try to pick up the correct initial revision so that devtool update-recipe knows where to start looking for commits that match up with patches in the recipe. (From OE-Core rev: c20e10543e268ebb43074a3f8d6e7ed991e54ec8) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* devtool: reset: add ability to reset entire workspacePaul Eggleton2015-03-201-19/+33
| | | | | | | | | | | Add a -a/--all option to allow you to quickly reset all recipes in your workspace. (From OE-Core rev: 0c83788b111a761f6f500b86780cc51aed255402) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* devtool: name command line parsers appropriatelyPaul Eggleton2015-03-201-22/+22
| | | | | | | | | | No functional changes, just use a unique name for each parser. (From OE-Core rev: 5fabc59d6221c3fe7137b70e31ec2761a4276a6c) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* devtool: deploy-target: fix deploying to previously deployed machinePaul Eggleton2015-03-201-1/+3
| | | | | | | | | | | * Pass correct arguments to undeploy() function * If an error occurs during undeploy(), exit instead of continuing (From OE-Core rev: c938dee4b28af7e6296c86347dfa533f85605033) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* combo-layer-hook-default.sh: handle patches without Signed-off-byPatrick Ohly2015-03-201-1/+8
| | | | | | | | | | | | | | | | Inserting the "From rev" comment depended on having at least one Signed-off-by line in the patch header. Some old repository commits in openembedded-core and bitbake do not have those. When inporting those, just insert at the end of the patch header. While doing so, ensure that there's exactly one blank line since the last non-blank line. (From OE-Core rev: 58548081b15f37452b71c135d5aa8cbbda5b1b61) Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* combo-layer-hook-default.sh: beware of embedded patchesPatrick Ohly2015-03-201-1/+1
| | | | | | | | | | | | | | | Patching the subject line must be limited to the subject of the main patch itself. In particular, git formatted patches embedded in the patch must not be changed. Achieved by limiting the replacement to the lines until the first subject in the patch, just as it is done for modifying the first Signed-off-by. (From OE-Core rev: 2737bd1c3f7c51dd6509a0f91337f695f9c69165) Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* combo-layer-hook-default.sh: avoid duplicating prefixPatrick Ohly2015-03-201-1/+1
| | | | | | | | | | | | The existing patch might already have the desired prefix, perhaps even multiple times (due to some previous import error). Ensure that after the replace, the prefix is present exactly once. (From OE-Core rev: 03be3d350425783a5938a7e4c0b858cda634b71d) Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* combo-layer: partial import for '--history init'Patrick Ohly2015-03-202-0/+53
| | | | | | | | | | | | | | | | | | | | The new "since_revision" property can be used to cut off the imported history at some point. This is useful to keep the resulting repository smaller while still preserving enough history that "git annotate" reports the right author and commit for most lines. The initial, squashed import commit shows up with "unknown" as author in the "git annotate" output. It has the repository name as prefix in the subject line; importing that commit works best with a layer hook which does not add the repository name again when it is already present. Adding it here is useful for hooks which do not extend the subject line. (From OE-Core rev: 74f4c9e3bcdb3c4ca919623086e92a9379bd81ff) Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* combo-layer: combine trees via replacement objectsPatrick Ohly2015-03-201-8/+8
| | | | | | | | | | | | | | | | | Instead of local graft entries rooting the imported branches in the shared root commit, use replacement objects. The advantage is that they get moved around by "git push" and "git fetch", so everyone has the same, nicer view with everything starting at the beginning of the combined repository. If undesired, these objects can be removed with "git replace". (From OE-Core rev: 220d816cda3c9b8d888288cc03eb74be5e71cc59) Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* combo-layer: init with full historyPatrick Ohly2015-03-201-13/+174
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The new --history parameter enables a new mode in "combo-layer init" where it copies the entire history of the components into the new combined repository. This also imports merge commits. Moving into a destination directory and applying commit hooks is done via "git filter-branch" of the upstream branch. File filtering uses the same code as before and just applies it to that filtered branch to create the final commit which then gets merged into the master branch of the new repository. When multiple components are involved, they all get merged into a single commit with an octopus merge. This depends on a common ancestor, which is grafted onto the filtered branches via .git/info/grafts. These grafts are currently left in place. However, they do not get pushed, so the local view on the entire history (all branches rooted in the initial, empty commit, temporarily diverging and then converging) is not the same as what others will see (branches starting independently and converging). Perhaps "git replace" should be used instead. The final commit needs to be done manually, as before. A commit message with some tracking information is ready for use as-is. This information should be sufficient to implement also "combo-layer update" using this approach, if desired. The advantage would be that merge commits with conflict resolution would not longer break the update. (From OE-Core rev: 9e40cb1ab77029df7f2cf1e548a645ff6a62c919) Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* combo-layer: update() also instance propertyPatrick Ohly2015-03-201-0/+1
| | | | | | | | | | | | The Configuration class mirrors all properties in local hashes. When updating the configuration, also update these properties to remain consistent. (From OE-Core rev: c575ff183ae5c35e0f7e8d90c222994574ce73c9) Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* combo-layer: exclude filesPatrick Ohly2015-03-202-1/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some combined repos intentionally do not include certain files. For example, Poky does not include bitbake's setup files and OE-core's sample files under meta/conf. When these files get modified in the upstream repository, applying the patches fails and requires manual intervention. That is merely a nuisance for someone familiar with the problem, but a real show stopper when having the import run automatically or by someone less experienced. Therefore this change introduces "file_exclude", a new per-repo list of file patterns which removes all matching files when initializing or updating a combined repository. Because fnmatch is used under the hood to match full path strings, removing entire directories must be done with a pattern ending in a '/*' (in contrast to file_filter). For Poky, the additional configuration looks like this: [bitbake] ... file_exclude = classes/base.bbclass conf/bitbake.conf .gitignore MANIFEST.in setup.py TODO [openembedded-core] ... file_exclude = meta/conf/bblayers.conf.sample meta/conf/local.conf.sample meta/conf/local.conf.sample.extended meta/conf/site.conf.sample (From OE-Core rev: a51b37f4db6b144386d1bd5789ec91acc78a0bd8) Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* combo-layer: runcmd() with separate outputPatrick Ohly2015-03-201-7/+11
| | | | | | | | | | | | | | | | | Allow the caller to specify a separate output stream. stderr is always a temporary file opened by runcmd(), so read from that to capture output for error reporting *and* the return value. The reasoning for the latter is a) that this preserves the traditional behavior when out=None and b) if the caller wants the content of stdout, it can read from the stream itself, which is not possible for the temporary stderr. (From OE-Core rev: a084162a9dc4718ab453723f1f28aefc55100e2e) Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* combo-layer: make Signed-off-by optionalPatrick Ohly2015-03-202-1/+16
| | | | | | | | | | | | | | | | | | | | | It depends on the diligence of the person running the combo-layer tool whether the Signed-off-by line added to each commit actually indicates that the person was involved in validating the change. When the import is purely automatic, it is better to not add the line, because the history is more useful without it (searching for the person really only lists changes he or she was involved with) and it would be a false statement. The 'signoff' property can be set per repository, like every other property. But setting it in the special [DEFAULT] section is more useful, so that is what the example shows. (From OE-Core rev: dba34e5a6f0a4c726266654dc5f26e0f7f13db0f) Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* combo-layer: let user choose where properties get updatedPatrick Ohly2015-03-201-1/+3
| | | | | | | | | | | | | | | | | | | | When updating a property (at the moment, only 'last_revision'), first check whether the user already added it to the main config. If so, update there even if there is a local config. This way, 'last_revision' can be shared between developers as part of the repository while still configuring per-developer repo paths outside of the git repository in a local config. An example of a repository which is set up like that is tizen-distro, with instructions for such a collaborative maintenance found here: https://review.tizen.org/git/?p=scm/bb/tizen-distro.git;a=blob;f=README;hb=refs/heads/tizen-ivi (From OE-Core rev: a3b246ee928d2ec59c8b6a775d9309f5be33ecc7) Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* runqemu-internal: Add cpio support for qemux86 so that we can boot poky-tiny ↵Richard Purdie2015-03-201-0/+5
| | | | | | | | | | | | | images poky-tiny generates cpio.gz images, add support for these so we can boot them using runqemu. (From OE-Core rev: fdd2e0c1baa80106d26236cb734e0d9a98e3fdac) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>