meson: Correctly validate that prefix is a child of rootprefix
authorPeter Kjellerstedt <pkj@axis.com>
Thu, 27 May 2021 15:05:34 +0000 (17:05 +0200)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Fri, 9 Jul 2021 16:35:08 +0000 (18:35 +0200)
In commit d895e10a a test was introduced to validate that prefix is a
child of rootprefix. However, it only works when rootprefix is "/".
Since the test is ignored when rootprefix is equal to prefix, this is
only noticed if specifying both -Drootprefix= and -Dprefix=, e.g.:

  $ meson foo -Drootprefix=/foo -Dprefix=/foo/bar
  meson.build:111:8: ERROR: Problem encountered: Prefix is not below
  root prefix (now rootprefix=/foo prefix=/foo/bar)

(cherry picked from commit b2d74870711f859ddc72c5756299d2c2f1659468)

meson.build

index 27186d63a3c66d9d0197d991eed81d7329ccb806..3f32fcc1d06b60e8de60b0b9fccc7cd82b42dc9a 100644 (file)
@@ -115,7 +115,7 @@ prefixdir = get_option('prefix')
 if not prefixdir.startswith('/')
         error('Prefix is not absolute: "@0@"'.format(prefixdir))
 endif
-if prefixdir != rootprefixdir and not prefixdir.startswith(rootprefixdir.strip('/') + '/')
+if prefixdir != rootprefixdir and rootprefixdir != '/' and not prefixdir.strip('/').startswith(rootprefixdir.strip('/') + '/')
         error('Prefix is not below root prefix (now rootprefix=@0@ prefix=@1@)'.format(
                 rootprefixdir, prefixdir))
 endif