On 06/11/17 11:22, Alexey Kardashevskiy wrote: > On 04/11/17 02:33, Daniel P. Berrange wrote: >> This short series of patches improves the reliability of the submodule >> handling to cope with various dev env scenarios that have since emerged >> >> v2: https://lists.gnu.org/archive/html/qemu-devel/2017-10/msg06272.html >> >> Changed in v3: >> >> - Avoid use of mktemp >> - Use '=' instead of '==' (bashism) in conditional tests >> - Fix problem with short-circuiting for empty submodule list >> - Ensure help message is displayed on all errors >> >> Daniel P. Berrange (5): >> build: allow setting a custom GIT binary for transparent proxying >> build: don't create temporary files in source dir >> build: allow automatic git submodule updates to be disabled >> build: don't fail if given a git submodule which does not exist >> build: delay check for empty git submodule list >> >> Makefile | 15 ++++++++-- >> configure | 12 ++++++++ >> scripts/git-submodule.sh | 72 >> ++++++++++++++++++++++++++++++++++++++---------- >> 3 files changed, 83 insertions(+), 16 deletions(-) > > > It is getting more complicated. > > So, same setup, > git checkout v2.10.0 > ./configure --target-list=ppc64-softmmu > make > > All good. > Then: > > git checkout git-submodule (upstream + this patchset) > ./configure --target-list=ppc64-softmmu > > I see an error and educational page about --disable-git-update, good. > ./configure --target-list=ppc64-softmmu --disable-git-update > make > > Now I get: > > GIT submodule checkout is out of date. Please run > scripts/git-submodule.sh update ui/keycodemapdb dtc capstone > from the source directory checkout /home/aik/p/qemu > > Good, as I wanted. > I do this on the server: > scripts/git-submodule.sh update ui/keycodemapdb dtc capstone > > and repeat "make" on the build machine but get the very same error. Then I > add "set -x" to scripts/git-submodule.sh and see: > > + substat=.git-submodule-status > + command=status > + shift > + maybe_modules=ui/keycodemapdb dtc capstone > + test -z git > + modules= > + git submodule status ui/keycodemapdb > + test 0 = 0 > + modules= ui/keycodemapdb > + git submodule status dtc > + test 0 = 0 > + modules= ui/keycodemapdb dtc > + git submodule status capstone > + test 0 = 0 > + modules= ui/keycodemapdb dtc capstone > + test -n ui/keycodemapdb dtc capstone > + test -e .git > + test -z ui/keycodemapdb dtc capstone > + test -f .git-submodule-status > + git submodule status ui/keycodemapdb dtc capstone > + CURSTATUS=-22ead3e0bfdb87516656453336160e0a37b066bf capstone > 558cd81bdd432769b59bff01240c44f82cfb1a9d dtc (v1.4.4) > 10739aa26051a5d49d88132604539d3ed085e72e ui/keycodemapdb (heads/master) > > + cat .git-submodule-status > + OLDSTATUS= 558cd81bdd432769b59bff01240c44f82cfb1a9d dtc (v1.4.4) > 10739aa26051a5d49d88132604539d3ed085e72e ui/keycodemapdb (heads/master) > > + test -22ead3e0bfdb87516656453336160e0a37b066bf capstone > 558cd81bdd432769b59bff01240c44f82cfb1a9d dtc (v1.4.4) > 10739aa26051a5d49d88132604539d3ed085e72e ui/keycodemapdb (heads/master) = > 558cd81bdd432769b59bff01240c44f82cfb1a9d dtc (v1.4.4) > 10739aa26051a5d49d88132604539d3ed085e72e ui/keycodemapdb (heads/master) > > + exit 1 > > > What is that new module - capstone - about? It is not in the status file: > > [vpl1 qemu]$ cat .git-submodule-status > 558cd81bdd432769b59bff01240c44f82cfb1a9d dtc (v1.4.4) > 10739aa26051a5d49d88132604539d3ed085e72e ui/keycodemapdb (heads/master)
Ufff, that was inaccurate me, sorry for the noise. This is a real thing: [vpl1 qemu]$ git submodule status capstone 22ead3e0bfdb87516656453336160e0a37b066bf capstone (3.0.5-rc3-14-g22ead3e0) [vpl1 qemu]$ ssh garrison2 git -C p/qemu submodule status capstone 22ead3e0bfdb87516656453336160e0a37b066bf capstone (3.0.5-rc3-14-g22ead3e) So now I have to add this to .gitconfig on all build machines: [core] abbrev=10 as "git submodule status" simply calls "git describe" which does not take "--abbrev". Well, ok :( -- Alexey