Message ID | 20200615074919.12552-1-f4bug@amsat.org |
---|---|
State | New |
Headers | show |
Series | [v3] configure: Let SLOF be initialized by ./scripts/git-submodule.sh | expand |
On 15/06/2020 09.49, Philippe Mathieu-Daudé wrote: > The git-submodule.sh script is called by make and initialize the > submodules listed in the GIT_SUBMODULES variable generated by > ./configure. > > SLOF is required for building the s390-ccw firmware on s390x, since > it is using the libnet code from SLOF for network booting. > > Add it to the GIT_SUBMODULES when buildint the s390-ccw firmware, s/buildint/building/ > to fix: > > $ ( cd ${SRC_DIR} ; git submodule update --init roms/SLOF ) > Submodule 'roms/SLOF' (https://git.qemu.org/git/SLOF.git) registered for path 'roms/SLOF' > Cloning into '/home/travis/build/user/qemu/roms/SLOF'... > fatal: unable to access 'https://git.qemu.org/git/SLOF.git/': Could not resolve host: git.qemu.org > fatal: clone of 'https://git.qemu.org/git/SLOF.git' into submodule path '/home/travis/build/user/qemu/roms/SLOF' failed > Failed to clone 'roms/SLOF'. Retry scheduled > Cloning into '/home/travis/build/user/qemu/roms/SLOF'... > fatal: unable to access 'https://git.qemu.org/git/SLOF.git/': Could not resolve host: git.qemu.org > fatal: clone of 'https://git.qemu.org/git/SLOF.git' into submodule path '/home/travis/build/user/qemu/roms/SLOF' failed > Failed to clone 'roms/SLOF' a second time, aborting > The command "( cd ${SRC_DIR} ; git submodule update --init roms/SLOF )" exited with 1. I still somehow doubt that this will really fix the issue that you've seen here (why should it matter where the submodule is checked out?), but the patch is a good idea anyway, so: Reviewed-by: Thomas Huth <thuth@redhat.com> > Reported-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> > Suggested-by: Thomas Huth <thuth@redhat.com> > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > --- > configure | 5 +++++ > .travis.yml | 1 - > 2 files changed, 5 insertions(+), 1 deletion(-) > > diff --git a/configure b/configure > index bb7fd12612..927e4a3d06 100755 > --- a/configure > +++ b/configure > @@ -6533,6 +6533,11 @@ if test "$cpu" = "s390x" ; then > write_c_skeleton > if compile_prog "-march=z900" ""; then > roms="$roms s390-ccw" > + # SLOF is required for building the s390-ccw firmware on s390x, > + # since it is using the libnet code from SLOF for network booting. > + if test -e "${source_path}/.git" ; then > + git_submodules="${git_submodules} roms/SLOF" > + fi > fi > fi > > diff --git a/.travis.yml b/.travis.yml > index ec6367af1f..220855c1f0 100644 > --- a/.travis.yml > +++ b/.travis.yml > @@ -496,7 +496,6 @@ jobs: > - CONFIG="--disable-containers --target-list=${MAIN_SOFTMMU_TARGETS},s390x-linux-user" > - UNRELIABLE=true > script: > - - ( cd ${SRC_DIR} ; git submodule update --init roms/SLOF ) > - BUILD_RC=0 && make -j${JOBS} || BUILD_RC=$? > - | > if [ "$BUILD_RC" -eq 0 ] ; then >
On 6/15/20 10:13 AM, Thomas Huth wrote: > On 15/06/2020 09.49, Philippe Mathieu-Daudé wrote: >> The git-submodule.sh script is called by make and initialize the >> submodules listed in the GIT_SUBMODULES variable generated by >> ./configure. >> >> SLOF is required for building the s390-ccw firmware on s390x, since >> it is using the libnet code from SLOF for network booting. >> >> Add it to the GIT_SUBMODULES when buildint the s390-ccw firmware, > > s/buildint/building/ > >> to fix: >> >> $ ( cd ${SRC_DIR} ; git submodule update --init roms/SLOF ) >> Submodule 'roms/SLOF' (https://git.qemu.org/git/SLOF.git) registered for path 'roms/SLOF' >> Cloning into '/home/travis/build/user/qemu/roms/SLOF'... >> fatal: unable to access 'https://git.qemu.org/git/SLOF.git/': Could not resolve host: git.qemu.org >> fatal: clone of 'https://git.qemu.org/git/SLOF.git' into submodule path '/home/travis/build/user/qemu/roms/SLOF' failed >> Failed to clone 'roms/SLOF'. Retry scheduled >> Cloning into '/home/travis/build/user/qemu/roms/SLOF'... >> fatal: unable to access 'https://git.qemu.org/git/SLOF.git/': Could not resolve host: git.qemu.org >> fatal: clone of 'https://git.qemu.org/git/SLOF.git' into submodule path '/home/travis/build/user/qemu/roms/SLOF' failed >> Failed to clone 'roms/SLOF' a second time, aborting >> The command "( cd ${SRC_DIR} ; git submodule update --init roms/SLOF )" exited with 1. > > I still somehow doubt that this will really fix the issue that you've > seen here (why should it matter where the submodule is checked out?), Yeah I still don't understand why the previous checkouts succeeded. Is git.qemu.org cached by a CDN? Maybe we can reduce the pressure by adding a 'prepare-sources' step, then pass it as artifact within Travis-CI premises: https://docs.travis-ci.com/user/build-stages/#specifying-stage-order-and-conditions Alex, what do you think? > but the patch is a good idea anyway, so: > > Reviewed-by: Thomas Huth <thuth@redhat.com> > > >> Reported-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> >> Suggested-by: Thomas Huth <thuth@redhat.com> >> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> >> --- >> configure | 5 +++++ >> .travis.yml | 1 - >> 2 files changed, 5 insertions(+), 1 deletion(-) >> >> diff --git a/configure b/configure >> index bb7fd12612..927e4a3d06 100755 >> --- a/configure >> +++ b/configure >> @@ -6533,6 +6533,11 @@ if test "$cpu" = "s390x" ; then >> write_c_skeleton >> if compile_prog "-march=z900" ""; then >> roms="$roms s390-ccw" >> + # SLOF is required for building the s390-ccw firmware on s390x, >> + # since it is using the libnet code from SLOF for network booting. >> + if test -e "${source_path}/.git" ; then >> + git_submodules="${git_submodules} roms/SLOF" >> + fi >> fi >> fi >> >> diff --git a/.travis.yml b/.travis.yml >> index ec6367af1f..220855c1f0 100644 >> --- a/.travis.yml >> +++ b/.travis.yml >> @@ -496,7 +496,6 @@ jobs: >> - CONFIG="--disable-containers --target-list=${MAIN_SOFTMMU_TARGETS},s390x-linux-user" >> - UNRELIABLE=true >> script: >> - - ( cd ${SRC_DIR} ; git submodule update --init roms/SLOF ) >> - BUILD_RC=0 && make -j${JOBS} || BUILD_RC=$? >> - | >> if [ "$BUILD_RC" -eq 0 ] ; then >> >
On Mon, Jun 15, 2020 at 09:49:19AM +0200, Philippe Mathieu-Daudé wrote: > The git-submodule.sh script is called by make and initialize the > submodules listed in the GIT_SUBMODULES variable generated by > ./configure. > > SLOF is required for building the s390-ccw firmware on s390x, since > it is using the libnet code from SLOF for network booting. > > Add it to the GIT_SUBMODULES when buildint the s390-ccw firmware, > to fix: > > $ ( cd ${SRC_DIR} ; git submodule update --init roms/SLOF ) > Submodule 'roms/SLOF' (https://git.qemu.org/git/SLOF.git) registered for path 'roms/SLOF' > Cloning into '/home/travis/build/user/qemu/roms/SLOF'... > fatal: unable to access 'https://git.qemu.org/git/SLOF.git/': Could not resolve host: git.qemu.org > fatal: clone of 'https://git.qemu.org/git/SLOF.git' into submodule path '/home/travis/build/user/qemu/roms/SLOF' failed > Failed to clone 'roms/SLOF'. Retry scheduled > Cloning into '/home/travis/build/user/qemu/roms/SLOF'... > fatal: unable to access 'https://git.qemu.org/git/SLOF.git/': Could not resolve host: git.qemu.org > fatal: clone of 'https://git.qemu.org/git/SLOF.git' into submodule path '/home/travis/build/user/qemu/roms/SLOF' failed > Failed to clone 'roms/SLOF' a second time, aborting > The command "( cd ${SRC_DIR} ; git submodule update --init roms/SLOF )" exited with 1. The "git-submodule.sh" script just invokes "git submodule". So if you are getting DNS failures from "git submodule", using git-submodule.sh instead is not going to fix the problem. > > Reported-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> > Suggested-by: Thomas Huth <thuth@redhat.com> > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > --- > configure | 5 +++++ > .travis.yml | 1 - > 2 files changed, 5 insertions(+), 1 deletion(-) > > diff --git a/configure b/configure > index bb7fd12612..927e4a3d06 100755 > --- a/configure > +++ b/configure > @@ -6533,6 +6533,11 @@ if test "$cpu" = "s390x" ; then > write_c_skeleton > if compile_prog "-march=z900" ""; then > roms="$roms s390-ccw" > + # SLOF is required for building the s390-ccw firmware on s390x, > + # since it is using the libnet code from SLOF for network booting. > + if test -e "${source_path}/.git" ; then > + git_submodules="${git_submodules} roms/SLOF" > + fi > fi > fi This whole bit of configure looks a bit dubious. For all the other firmware images we ship as pre-built blobs, we never try to re-build them even if the host compiler supports it. So I don't think we need to make SLOF special. If someone wants to build SLOF they should do so explicitly. IOW, I'd just remove this code that automatically enables rebuilds of it, which will presumable fix the DNS problem by virtue of never running that code. Regards, Daniel
On 15/06/2020 11.19, Daniel P. Berrangé wrote: > On Mon, Jun 15, 2020 at 09:49:19AM +0200, Philippe Mathieu-Daudé wrote: >> The git-submodule.sh script is called by make and initialize the >> submodules listed in the GIT_SUBMODULES variable generated by >> ./configure. >> >> SLOF is required for building the s390-ccw firmware on s390x, since >> it is using the libnet code from SLOF for network booting. >> >> Add it to the GIT_SUBMODULES when buildint the s390-ccw firmware, >> to fix: >> >> $ ( cd ${SRC_DIR} ; git submodule update --init roms/SLOF ) >> Submodule 'roms/SLOF' (https://git.qemu.org/git/SLOF.git) registered for path 'roms/SLOF' >> Cloning into '/home/travis/build/user/qemu/roms/SLOF'... >> fatal: unable to access 'https://git.qemu.org/git/SLOF.git/': Could not resolve host: git.qemu.org >> fatal: clone of 'https://git.qemu.org/git/SLOF.git' into submodule path '/home/travis/build/user/qemu/roms/SLOF' failed >> Failed to clone 'roms/SLOF'. Retry scheduled >> Cloning into '/home/travis/build/user/qemu/roms/SLOF'... >> fatal: unable to access 'https://git.qemu.org/git/SLOF.git/': Could not resolve host: git.qemu.org >> fatal: clone of 'https://git.qemu.org/git/SLOF.git' into submodule path '/home/travis/build/user/qemu/roms/SLOF' failed >> Failed to clone 'roms/SLOF' a second time, aborting >> The command "( cd ${SRC_DIR} ; git submodule update --init roms/SLOF )" exited with 1. > > The "git-submodule.sh" script just invokes "git submodule". So if > you are getting DNS failures from "git submodule", using git-submodule.sh > instead is not going to fix the problem. > >> >> Reported-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> >> Suggested-by: Thomas Huth <thuth@redhat.com> >> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> >> --- >> configure | 5 +++++ >> .travis.yml | 1 - >> 2 files changed, 5 insertions(+), 1 deletion(-) >> >> diff --git a/configure b/configure >> index bb7fd12612..927e4a3d06 100755 >> --- a/configure >> +++ b/configure >> @@ -6533,6 +6533,11 @@ if test "$cpu" = "s390x" ; then >> write_c_skeleton >> if compile_prog "-march=z900" ""; then >> roms="$roms s390-ccw" >> + # SLOF is required for building the s390-ccw firmware on s390x, >> + # since it is using the libnet code from SLOF for network booting. >> + if test -e "${source_path}/.git" ; then >> + git_submodules="${git_submodules} roms/SLOF" >> + fi >> fi >> fi > > This whole bit of configure looks a bit dubious. > > For all the other firmware images we ship as pre-built blobs, we never > try to re-build them even if the host compiler supports it. All the other firmwares have separate projects and repositories, so it's normal that we don't try to rebuild them from the QEMU repo. But the s390-ccw firmware is part of the QEMU repository (for some good reasons), so of course we should build it during the QEMU build process if possible. And no, please don't suggest to move it to a separate repository instead, IIRC we've had this discussion in the past already, and it is easier if it stays in the current place. > So I don't think we need to make SLOF special. We are not talking about SLOF here. We are talking about the s390-ccw firmware which is part of the QEMU repository (see pc-bios/s390-ccw). It just requires the SLOF submodule for building its network booting part, since it re-uses the network stack from SLOF. Thomas
On 15/06/2020 10.28, Philippe Mathieu-Daudé wrote: > On 6/15/20 10:13 AM, Thomas Huth wrote: >> On 15/06/2020 09.49, Philippe Mathieu-Daudé wrote: >>> The git-submodule.sh script is called by make and initialize the >>> submodules listed in the GIT_SUBMODULES variable generated by >>> ./configure. >>> >>> SLOF is required for building the s390-ccw firmware on s390x, since >>> it is using the libnet code from SLOF for network booting. >>> >>> Add it to the GIT_SUBMODULES when buildint the s390-ccw firmware, >> >> s/buildint/building/ >> >>> to fix: >>> >>> $ ( cd ${SRC_DIR} ; git submodule update --init roms/SLOF ) >>> Submodule 'roms/SLOF' (https://git.qemu.org/git/SLOF.git) registered for path 'roms/SLOF' >>> Cloning into '/home/travis/build/user/qemu/roms/SLOF'... >>> fatal: unable to access 'https://git.qemu.org/git/SLOF.git/': Could not resolve host: git.qemu.org >>> fatal: clone of 'https://git.qemu.org/git/SLOF.git' into submodule path '/home/travis/build/user/qemu/roms/SLOF' failed >>> Failed to clone 'roms/SLOF'. Retry scheduled >>> Cloning into '/home/travis/build/user/qemu/roms/SLOF'... >>> fatal: unable to access 'https://git.qemu.org/git/SLOF.git/': Could not resolve host: git.qemu.org >>> fatal: clone of 'https://git.qemu.org/git/SLOF.git' into submodule path '/home/travis/build/user/qemu/roms/SLOF' failed >>> Failed to clone 'roms/SLOF' a second time, aborting >>> The command "( cd ${SRC_DIR} ; git submodule update --init roms/SLOF )" exited with 1. >> >> I still somehow doubt that this will really fix the issue that you've >> seen here (why should it matter where the submodule is checked out?), > > Yeah I still don't understand why the previous checkouts succeeded. > > Is git.qemu.org cached by a CDN? Is it still failing for you? For me it works fine: https://travis-ci.com/github/huth/qemu/jobs/349064333#L1531 Thomas
diff --git a/configure b/configure index bb7fd12612..927e4a3d06 100755 --- a/configure +++ b/configure @@ -6533,6 +6533,11 @@ if test "$cpu" = "s390x" ; then write_c_skeleton if compile_prog "-march=z900" ""; then roms="$roms s390-ccw" + # SLOF is required for building the s390-ccw firmware on s390x, + # since it is using the libnet code from SLOF for network booting. + if test -e "${source_path}/.git" ; then + git_submodules="${git_submodules} roms/SLOF" + fi fi fi diff --git a/.travis.yml b/.travis.yml index ec6367af1f..220855c1f0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -496,7 +496,6 @@ jobs: - CONFIG="--disable-containers --target-list=${MAIN_SOFTMMU_TARGETS},s390x-linux-user" - UNRELIABLE=true script: - - ( cd ${SRC_DIR} ; git submodule update --init roms/SLOF ) - BUILD_RC=0 && make -j${JOBS} || BUILD_RC=$? - | if [ "$BUILD_RC" -eq 0 ] ; then
The git-submodule.sh script is called by make and initialize the submodules listed in the GIT_SUBMODULES variable generated by ./configure. SLOF is required for building the s390-ccw firmware on s390x, since it is using the libnet code from SLOF for network booting. Add it to the GIT_SUBMODULES when buildint the s390-ccw firmware, to fix: $ ( cd ${SRC_DIR} ; git submodule update --init roms/SLOF ) Submodule 'roms/SLOF' (https://git.qemu.org/git/SLOF.git) registered for path 'roms/SLOF' Cloning into '/home/travis/build/user/qemu/roms/SLOF'... fatal: unable to access 'https://git.qemu.org/git/SLOF.git/': Could not resolve host: git.qemu.org fatal: clone of 'https://git.qemu.org/git/SLOF.git' into submodule path '/home/travis/build/user/qemu/roms/SLOF' failed Failed to clone 'roms/SLOF'. Retry scheduled Cloning into '/home/travis/build/user/qemu/roms/SLOF'... fatal: unable to access 'https://git.qemu.org/git/SLOF.git/': Could not resolve host: git.qemu.org fatal: clone of 'https://git.qemu.org/git/SLOF.git' into submodule path '/home/travis/build/user/qemu/roms/SLOF' failed Failed to clone 'roms/SLOF' a second time, aborting The command "( cd ${SRC_DIR} ; git submodule update --init roms/SLOF )" exited with 1. Reported-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Suggested-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> --- configure | 5 +++++ .travis.yml | 1 - 2 files changed, 5 insertions(+), 1 deletion(-)