[OE-core] [PATCH v2] oeqa: Touch cpio configure script before building

Andre McCurdy armccurdy at gmail.com
Fri Feb 7 18:39:49 UTC 2020


On Fri, Feb 7, 2020 at 10:25 AM Khem Raj <raj.khem at gmail.com> wrote:
>
> since the versions of autotools might differ, and difference in
> timestamps for configure and system can result in reconfigure lets avoid
> that by touching the configure script to match system time

This is probably only a partial fix. If you look at the various
dependencies in Makefile.in, ensuring that configure is newer than
$(am__configure_deps) is only one case that needs to be handled. You
also need to ensure that e.g. Makefile.in is newer than
$(srcdir)/Makefile.am $(srcdir)/Make.rules $(am__configure_deps), that
aclocal.m4 is newer than $(am__aclocal_m4_deps), etc.

Touching various files in the right order can be made to work, but
there's more to it than just touching configure. Configuring with
--disable-maintainer-mode and therefore disabling all these autotools
rules is probably a more robust solution.

> Avoids
> error: newly created file is older than distributed files!
>
> [YOCTO #13779]
>
> Signed-off-by: Khem Raj <raj.khem at gmail.com>
> ---
> v2: Touch configure to match timestamps with system
>     Move the touch cmd to configure step itself
>
>  meta/lib/oeqa/runtime/cases/buildcpio.py | 2 +-
>  meta/lib/oeqa/sdk/cases/buildcpio.py     | 2 +-
>  meta/lib/oeqa/selftest/cases/meta_ide.py | 2 +-
>  3 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/meta/lib/oeqa/runtime/cases/buildcpio.py b/meta/lib/oeqa/runtime/cases/buildcpio.py
> index 4bd72dd37e..a2cc8148db 100644
> --- a/meta/lib/oeqa/runtime/cases/buildcpio.py
> +++ b/meta/lib/oeqa/runtime/cases/buildcpio.py
> @@ -27,6 +27,6 @@ class BuildCpioTest(OERuntimeTestCase):
>      @OEHasPackage(['autoconf'])
>      def test_cpio(self):
>          self.project.download_archive()
> -        self.project.run_configure()
> +        self.project.run_configure('','touch ./configure;')
>          self.project.run_make()
>          self.project.run_install()
> diff --git a/meta/lib/oeqa/sdk/cases/buildcpio.py b/meta/lib/oeqa/sdk/cases/buildcpio.py
> index b0beafb38f..e412ee189f 100644
> --- a/meta/lib/oeqa/sdk/cases/buildcpio.py
> +++ b/meta/lib/oeqa/sdk/cases/buildcpio.py
> @@ -28,7 +28,7 @@ class BuildCpioTest(OESDKTestCase):
>              self.assertTrue(os.path.isdir(dirs["source"]))
>              os.makedirs(dirs["build"])
>
> -            self._run("cd {build} && {source}/configure $CONFIGURE_FLAGS".format(**dirs))
> +            self._run("cd {build} && touch {source}/configure && {source}/configure $CONFIGURE_FLAGS".format(**dirs))
>              self._run("cd {build} && make -j".format(**dirs))
>              self._run("cd {build} && make install DESTDIR={install}".format(**dirs))
>
> diff --git a/meta/lib/oeqa/selftest/cases/meta_ide.py b/meta/lib/oeqa/selftest/cases/meta_ide.py
> index 809142559a..16acd1154d 100644
> --- a/meta/lib/oeqa/selftest/cases/meta_ide.py
> +++ b/meta/lib/oeqa/selftest/cases/meta_ide.py
> @@ -43,7 +43,7 @@ class MetaIDE(OESelftestTestCase):
>                          "https://ftp.gnu.org/gnu/cpio/cpio-2.13.tar.gz",
>                          self.tmpdir_metaideQA, self.td['DATETIME'], dl_dir=dl_dir)
>          self.project.download_archive()
> -        self.assertEqual(self.project.run_configure(), 0,
> +        self.assertEqual(self.project.run_configure('','touch configure;'), 0,
>                          msg="Running configure failed")
>          self.assertEqual(self.project.run_make(), 0,
>                          msg="Running make failed")
> --
> 2.25.0
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core


More information about the Openembedded-core mailing list