0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[servo] Exception: Your system's gstreamer libraries are out of date (we need at least 1.12). でこける場合の対処法

Posted at

エラーログは以下

Exception: Your system's gstreamer libraries are out of date (we need at least 1.12). If you're unable to install them, let us know by filing a bug!

  File "/Users/ykonomi/servo/python/servo/build_commands.py", line 286, in build
    env = self.build_env(target=target, is_build=True)
  File "/Users/ykonomi/servo/python/servo/command_base.py", line 612, in build_env
    if self.needs_gstreamer_env(target):
  File "/Users/ykonomi/servo/python/servo/command_base.py", line 560, in needs_gstreamer_env
    install them, let us know by filing a bug!")

原因の箇所. check_gstreamer_lib では, subprocess.call(["pkg-config", "--atleast-version=1.14", "gstreamer-1.0"], stdout=PIPE, stderr=PIPE) == 0
が実行される。どうやら、pkg-configの実行が原因でエラーになっている模様。

    def needs_gstreamer_env(self, target):
        try:
            if check_gstreamer_lib():
                return False
        except:
            # Some systems don't have pkg-config; we can't probe in this case
            # and must hope for the best
            return False
        effective_target = target or host_triple()
        if "x86_64" not in effective_target or "android" in effective_target:
            # We don't build gstreamer for non-x86_64 / android yet
            return False
        if sys.platform == "linux2":
            if path.isdir(self.get_gstreamer_path()):
                return True
            else:
                raise Exception("Your system's gstreamer libraries are out of date \
(we need at least 1.12). Please run ./mach bootstrap-gstreamer")
        else:
                raise Exception("Your system's gstreamer libraries are out of date \
(we need at least 1.12). If you're unable to \
install them, let us know by filing a bug!")
        return False

pkg-config gstreamer-1.0 --debug を実行したところ libffi がインストール
されていないと出力されたため、改めて入れ直した。すると、以下のログが出力された。どうやら、/usr/local へのシンボリックリンクが生成されていないため、エラーになっていた模様。

==> Reinstalling libffi
==> Downloading https://homebrew.bintray.com/bottles/libffi-3.2.1.high_sierra.bottle.tar.gz
######################################################################## 100.0%
==> Pouring libffi-3.2.1.high_sierra.bottle.tar.gz
==> Caveats
libffi is keg-only, which means it was not symlinked into /usr/local,
because some formulae require a newer version of libffi.

For compilers to find libffi you may need to set:
  export LDFLAGS="-L/usr/local/opt/libffi/lib"

For pkg-config to find libffi you may need to set:
  export PKG_CONFIG_PATH="/usr/local/opt/libffi/lib/pkgconfig"

==> Summary
🍺  /usr/local/Cellar/libffi/3.2.1: 16 files, 297.0KB

素直に、export PKG_CONFIG_PATH="/usr/local/opt/libffi/lib/pkgconfig"
を実行して解決した。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?