Create About Spyder dialog with general information.

def about(self):
        """Create About Spyder dialog with general information."""
        versions = get_versions()
        # Show Git revision for development version
        revlink = ''
        if versions['revision']:
            rev = versions['revision']
            revlink = " (<a href='https://github.com/spyder-ide/spyder/"\
                      "commit/%s'>Commit: %s</a>)" % (rev, rev)
        msgBox = QMessageBox(self)
        msgBox.setText(
            """
            <b>Spyder {spyder_ver}</b> {revision}
            <br>The Scientific Python Development Environment |
            <a href="{website_url}">Spyder-IDE.org</a>
            <br>Copyright &copy; 2009-2019 Spyder Project Contributors and
            <a href="{github_url}/blob/master/AUTHORS.txt">others</a>
            <br>Distributed under the terms of the
            <a href="{github_url}/blob/master/LICENSE.txt">MIT License</a>.

            <p>Created by Pierre Raybaut; current maintainer is Carlos Cordoba.
            <br>Developed by the
            <a href="{github_url}/graphs/contributors">international
            Spyder community</a>.
            <br>Many thanks to all the Spyder beta testers and dedicated users.

            <p>For help with Spyder errors and crashes, please read our
            <a href="{trouble_url}">Troubleshooting Guide</a>, and for bug
            reports and feature requests, visit our
            <a href="{github_url}">Github site</a>.
            For project discussion, see our
            <a href="{forum_url}">Google Group</a>.
            <p>This project is part of a larger effort to promote and
            facilitate the use of Python for scientific and engineering
            software development.
            The popular Python distributions
            <a href="https://www.anaconda.com/download/">Anaconda</a> and
            <a href="https://winpython.github.io/">WinPython</a>
            also contribute to this plan.

            <p>Python {python_ver} {bitness}-bit | Qt {qt_ver} |
            {qt_api} {qt_api_ver} | {os_name} {os_ver}

            <small><p>Certain source files under other compatible permissive
            licenses and/or originally by other authors.
            Spyder 3 theme icons derived from
            <a href="https://fontawesome.com/">Font Awesome</a> 4.7
            (&copy; 2016 David Gandy; SIL OFL 1.1) and
            <a href="http://materialdesignicons.com/">Material Design</a>
            (&copy; 2014 Austin Andrews; SIL OFL 1.1).
            Most Spyder 2 theme icons sourced from the
            <a href="https://www.everaldo.com">Crystal Project iconset</a>
            (&copy; 2006-2007 Everaldo Coelho; LGPL 2.1+).
            Other icons from
            <a href="http://p.yusukekamiyamane.com/">Yusuke Kamiyamane</a>
            (&copy; 2013 Yusuke Kamiyamane; CC-BY 3.0),
            the <a href="http://www.famfamfam.com/lab/icons/silk/">FamFamFam
            Silk icon set</a> 1.3 (&copy; 2006 Mark James; CC-BY 2.5), and
            the <a href="https://www.kde.org/">KDE Oxygen icons</a>
            (&copy; 2007 KDE Artists; LGPL 3.0+).</small>

            <p>See the <a href="{github_url}/blob/master/NOTICE.txt">NOTICE</a>
            file for full legal information.
            """
            .format(spyder_ver=versions['spyder'],
                    revision=revlink,
                    website_url=__website_url__,
                    github_url=__project_url__,
                    trouble_url=__trouble_url__,
                    forum_url=__forum_url__,
                    python_ver=versions['python'],
                    bitness=versions['bitness'],
                    qt_ver=versions['qt'],
                    qt_api=versions['qt_api'],
                    qt_api_ver=versions['qt_api_ver'],
                    os_name=versions['system'],
                    os_ver=versions['release'])
        )
        msgBox.setWindowTitle(_("About %s") % "Spyder")
        msgBox.setStandardButtons(QMessageBox.Ok)

        from spyder.config.gui import is_dark_interface
        if PYQT5:
            if is_dark_interface():
                icon_filename = "spyder.svg"
            else:
                icon_filename = "spyder_dark.svg"
        else:
            if is_dark_interface():
                icon_filename = "spyder.png"
            else:
                icon_filename = "spyder_dark.png"
        app_icon = QIcon(get_image_path(icon_filename))
        msgBox.setIconPixmap(app_icon.pixmap(QSize(64, 64)))

        msgBox.setTextInteractionFlags(
            Qt.LinksAccessibleByMouse | Qt.TextSelectableByMouse)
        msgBox.exec_()