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)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 27 May 2021 21:29:45 +0000 (06:29 +0900)
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)

meson.build

index 3ddae84c1e498684ae337e21f80dec39b8f95b2f..0ce978f8e529b15c550d3a5524853c3bdd2fb721 100644 (file)
@@ -107,7 +107,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