HybridOS Development Environment
Introduction
This article takes a look at the HybridOS development environment. The article provides HybridOS Development environment concepts that help you understand how work is accomplished in HybridOS development environment, which is very different as compared to work accomplished in a traditional embedded development environment.
Specifically, this article addresses development host, equivalent runtime , HybridOS Package management system, workflows and package.
The Development Host
A development host or build host is key to using the HybridOS. Because the goal of the HybridOS is to develop images and applications that run on embedded hardware, development of those images and applications generally takes place on a system not intended to run the software - the development host.
Supported Linux Distributions
Currently, the HybridOS is supported on the following distributions:
Notes
HybridOS releases are tested against the stable Linux distributions in the following list. The HybridOS should work on other distributions but validation is not performed against them.
...
- Ubuntu 18.04
Package directory structure
This section provides an overview of the HybridOS software package directory structure. The HybridOS package directory structure defines a special directory structure to minimize the impact on the host environment and prevent interference from multiple versions of the same software package.
Root diretory
- /opt/hybridos/{cpuinfo}/{soc}/
- cpuinfo: x86, arm
- soc: i386, amd64, AllwinnerR16, Snapdragon865
/opt/hybridos
|-- x86/
| |-- i386/
| |-- amd64/
|
|-- arm/
| |-- AllwinnerR16/
| |-- Snapdragon865/
| |-- ...
subdirectory
/{Root directory}/
|-- bin/
|-- lib/
|-- etc/
|-- include/
|-- sbin/
|-- share/
|-- ...
|
Setting Up a Linux Host
Follow these steps to prepare a Linux machine as your HybridOS Build Host:
-
Use a Supported Linux Distribution: See the "Supported Linux Distributions" section in the HybridOS Development Environment manual.
-
Have Enough Free Memory: Your system should have at least 50 Gbytes of free disk space for building images.
-
Required Base Packages for the Build Host:
- Git 1.8.3.1 or greater
- tar 1.27 or greater
- Perl v5.26.1 or greater
- ...
-
Install HybridOS Package management system: See the "HybridOS Package management system" section in the HybridOS Development Environment manual.
-
Install Dependencies Packages for HybridOS: Install dependencies packages by hpm.
- hpm install libjpeg-dev libpng-dev ...
Equivalent runtime
This section provides an overview of the equivalent runtime.
The equivalent runtime is a development runtime on the host. It offers a user experience similar to real embedded device. It is not virtual machines but using Linux containers(LXC/LXD) instead.
It provides functions to limit resources (CPU, memory, block I / O, network, etc.). Through these functions, it can provide an environment basically consistent with the real embedded device.
It provides some service programs to simulate hardware that does not exist on the host, such as bluetooth, gps and so on.
HybridOS package management system
HybridOS package management system is a package management system.It provides the functions to initialize, install and config the HybridOS development environment and packaging the image
hpm
hpm is the software at the base of the package management system in the HybridOS.
hpm command
- init : Used to initialize HybridOS Development Environment. It provides basic configuration for development enviroment and embedded device such as cpu architecture,memory, wifi, bluetooth and so on.
$ sudo hpm init
What is the cpu architecture? (i386, amd64, arm) [default=amd64]: amd64
What is the number of cpus? (1, 2, 4): 2
What is the numbers of memory? (k, m, g): 2g
Would you like to create a wifi device? (yes/no) [default=no]: no
...
- edit : It will open the default profile using the default editor(EDITOR environment varialbe).
sudo hpm edit
- update : Update the Package Index, The HPM package index is essentially a database of available packages from the repositories defined in the /{Root directory}/etc/hpm/sources.list file and in the /{Root directory}/etc/hpm/sources.list.d directory.
sudo hpm update
- install:Install a Package
sudo hpm install hibus
- remove: Remove a Package
sudo hpm remove hibus
- clean: cleans the packages and install script in /{Root directory}/var/cache/hpm/archives/
sudo hpm clean
- build: build image
sudo hpm build
Workflows
initialize development environment
developer application and test
test on equivalent runtime
burn binary image to the embedded device
Package
Base Libraries
libc
- Degree: 1
- /lib/x86_64-linux-gnu/libc.so.6
- GNU C Library
libc.so.6
|--- ld-linux-x86-64.so.2
libm
- Degree: 1
- /lib/x86_64-linux-gnu/libm.so.6
- It is the standard C library of basic mathematical functions.
libm.so.6
|--- libc.so.6
|--- ld-linux-x86-64.so.2
libgcc_s
- Degree: 1
- /lib/x86_64-linux-gnu/libgcc_s.so.1
- It's GCC's runtime library, which contains some low-level functions that GCC emits calls to.
libgcc_s.so.1
|--- libc.so.6
|--- ld-linux-x86-64.so.2
libdl
- Degree: 1
- /lib/x86_64-linux-gnu/libdl.so.2
- Historically, functions in libdl provided for dynamic linking support. This functionality now resides in libc.This library is maintained to provide backward compatibility for both runtime and compilation environments. The shared object is implemented as a filter on the runtime linker.
libdl.so.2
|--- libc.so.6
|--- ld-linux-x86-64.so.2
librt
- Degree: 1
- /lib/x86_64-linux-gnu/librt.so.1
- Realtime Extensions library. librt is the preferred name for this library. The name libposix4 is maintained for backward compatibility and should be avoided. Functions in this library provide most of the interfaces specified by the POSIX.1b Realtime Extension.
librt.so.1
|--- libpthread.so.0
|--- ld-linux-x86-64.so.2
|--- libc.so.6
libstdc++
- Degree: 1
- /usr/lib/x86_64-linux-gnu/libstdc++.so.6
- libstdc++.so: GNU Standard C++ Library
libstdc++.so.6
|--- libm.so.6
|--- libc.so.6
|--- ld-linux-x86-64.so.2
|--- libgcc_s.so.1
libpthread
- Degree: 1
- /lib/x86_64-linux-gnu/libpthread.so.0
- libpthread.so: POSIX threads library. Functions in this library provide the POSIX threads. This library is implemented as a filter on the threads library.
libpthread.so.0
|--- libc.so.6
|--- ld-linux-x86-64.so.2
libuuid
- Degree: 2
- /lib/x86_64-linux-gnu/libuuid.so.1
- The libuuid library is used to generate unique identifiers for objects that may be accessible beyond the local system
libuuid.so.1
|--- libc.so.6
|--- ld-linux-x86-64.so.2
Utility Libraries
libz
- Degree: 1
- /lib/x86_64-linux-gnu/libz.so.1
- It is designed to be a free, general-purpose, legally unencumbered -- that is, not covered by any patents -- lossless data-compression library for use on virtually any computer hardware and operating system. POSIX threads. This library is implemented as a filter on the threads library.
libz.so.1
|--- libc.so.6
|--- ld-linux-x86-64.so.2
liblzma
- Degree: 2
- /lib/x86_64-linux-gnu/liblzma.so.5
- XZ-format compression library.
liblzma.so.5
|--- libdl.so.2
|--- ld-linux-x86-64.so.2
|--- libpthread.so.0
|--- libc.so.6
libevent-2.1
- Degree: 1
- /usr/lib/x86_64-linux-gnu/libevent-2.1.so.6
- It is a asynchronous event notification library. The libevent API provides a mechanism to execute a callback function when a specific event occurs on a file descriptor or after a timeout has been reached.
libevent-2.1.so.6
|--- libpthread.so.0
|--- ld-linux-x86-64.so.2
|--- libc.so.6
libtasn1
- Degree: 1
- /usr/lib/x86_64-linux-gnu/libtasn1.so.6
- Manage ASN.1 structures. Manage ASN1 (Abstract Syntax Notation One) structures.
- Abstract Syntax Notation One(ASN.1)
- Source/WebCore/PAL, Source/ThirdParty/libwebrtc
libtasn1.so.6
|--- libc.so.6
|--- ld-linux-x86-64.so.2
libxml2
- Degree: 1
- WebKitBuild/DependenciesGTK/Root/lib/libxml2.so.2
- Libxml2 is the XML C parser and toolkit developed for the Gnome project (but usable outside of the Gnome platform), it is free software available under the MIT License.
libxml2.so.2
|--- libdl.so.2
|--- ld-linux-x86-64.so.2
|--- libz.so.1
|--- liblzma.so.5
|--- libpthread.so.0
|--- libm.so.6
|--- libc.so.6
libxslt
- Degree: 1
- /usr/lib/x86_64-linux-gnu/libxslt.so.1
- It is the XSLT C library developed for the GNOME project. It provides an implementation of XSLT 1.0, plus most of the EXSLT set of processor-portable extensions functions and some of Saxon's evaluate and expressions extensions.
libxslt.so.1
|--- libxml2.so.2
|--- libdl.so.2
|--- ld-linux-x86-64.so.2
|--- libz.so.1
|--- liblzma.so.5
|--- libpthread.so.0
|--- libm.so.6
|--- libc.so.6
libbrotlidec
- Degree: 2
- /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1
- Library implementing the Brotli decompressor.
libbrotlidec.so.1
|--- libbrotlicommon.so.1
|--- libc.so.6
|--- ld-linux-x86-64.so.2
libbrotlicommon
- Degree: 2
- /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1
- Library implementing the Brotli common functions.
libbrotlicommon.so.1
libgudev
- Degree: 2
- /usr/lib/x86_64-linux-gnu/libgudev-1.0.so.0
- This library provides GObject bindings for libudev. It was originally part of udev-extras, then udev, then systemd. It's now a project on its own.
libgudev-1.0.so.0
|--- libudev.so.1
|--- librt.so.1
|--- ld-linux-x86-64.so.2
|--- libgobject-2.0.so.0
|--- libffi.so.6
|--- libglib-2.0.so.0
|--- libpcre.so.3
|--- libpthread.so.0
|--- libc.so.6
libudev
- Degree: 2
- /lib/x86_64-linux-gnu/libudev.so.1
- It is used for creating software which needs to access a specific hardware device or monitor the real-time connection and disconnection status of hot-pluggable hardware.
libudev.so.1
|--- librt.so.1
|--- libpthread.so.0
|--- libc.so.6
|--- ld-linux-x86-64.so.2
libexpat
- Degree: 2
- /lib/x86_64-linux-gnu/libexpat.so.1
- This package contains the runtime, shared library of expat, the C library for parsing XML. Expat is a stream-oriented parser in which an application registers handlers for things the parser might find in the XML document (like start tags).
libexpat.so.1
|--- libc.so.6
|--- ld-linux-x86-64.so.2
libbsd
- Degree: 2
- /lib/x86_64-linux-gnu/libbsd.so.0
- This library provides some functions commonly available on BSD systems but not on others like GNU systems.
libbsd.so.0
|--- librt.so.1
|--- libpthread.so.0
|--- ld-linux-x86-64.so.2
|--- libc.so.6
libpsl
- Degree: 2
- WebKitBuild/DependenciesGTK/Root/lib/libpsl.so.5
- Libpsl allows checking domains against the Public Suffix List. It can be used to avoid privacy-leaking 'super-cookies', 'super domain' certificates, for domain highlighting purposes sorting domain lists by site and more.
- A Public Suffix List is a collection of Top Level Domains (TLDs) suffixes. TLDs include Global Top Level Domains (gTLDs) like .com and .net; Country Top Level Domains (ccTLDs) like .de and .cn; and Brand Top Level Domains like .apple and .google. Brand TLDs allows users to register their own top level domain that exist at the same level as ICANN's gTLDs. Brand TLDs are sometimes referred to as Vanity Domains.
- public_suffix_list.dat
libpsl.so.5
|--- libicuuc.so.63
|--- libicudata.so.63
|--- libdl.so.2
|--- ld-linux-x86-64.so.2
|--- libstdc++.so.6
|--- libm.so.6
|--- libgcc_s.so.1
|--- libc.so.6
libpcre
- Degree: 2
- /lib/x86_64-linux-gnu/libpcre.so.3
- The PCRE library is a set of functions that implement regular expression pattern matching using the same syntax and semantics as Perl 5. PCRE has its own native API, as well as a set of wrapper functions that correspond to the POSIX regular expression API. The PCRE library is free, even for building proprietary software.
libpcre.so.3
|--- libpthread.so.0
|--- ld-linux-x86-64.so.2
|--- libc.so.6
libresolv
- Degree: 2
- /lib/x86_64-linux-gnu/libresolv.so.2
- Resolver library. Functions in this library provide for creating, sending, and interpreting packets to the Internet domain name servers.
libresolv.so.2
|--- libc.so.6
|--- ld-linux-x86-64.so.2
libffi
- Degree: 2
- /usr/lib/x86_64-linux-gnu/libffi.so.6
- A foreign function interface is the popular name for the interface that allows code written in one language to call code written in another language.
libffi.so.6
|--- libc.so.6
|--- ld-linux-x86-64.so.2
libnotify
- Degree: 1
- /usr/lib/x86_64-linux-gnu/libnotify.so.4
- It is a library for sending desktop notifications.
libnotify.so.4
|--- libgdk_pixbuf-2.0.so.0
|--- libgmodule-2.0.so.0
|--- libdl.so.2
|--- ld-linux-x86-64.so.2
|--- libm.so.6
|--- libpthread.so.0
|--- libgio-2.0.so.0
|--- libz.so.1
|--- libselinux.so.1
|--- libpcre.so.3
|--- libresolv.so.2
|--- libmount.so.1
|--- libblkid.so.1
|--- libuuid.so.1
|--- librt.so.1
|--- libgobject-2.0.so.0
|--- libffi.so.6
|--- libglib-2.0.so.0
|--- libc.so.6
libatk
- Degree: 1
- WebKitBuild/DependenciesGTK/Root/lib/libatk-1.0.so.0
- ATK is a toolkit providing accessibility interfaces for applications or other toolkits.
libatk-1.0.so.0
|--- libglib-2.0.so.0
|--- libpcre.so.3
|--- libpthread.so.0
|--- ld-linux-x86-64.so.2
|--- libgobject-2.0.so.0
|--- libffi.so.6
|--- libc.so.6
Security Libraries
libseccomp
- Degree: 1
- /lib/x86_64-linux-gnu/libseccomp.so.2
- The libseccomp library provides an easy to use, platform independent, interface to the Linux Kernel's syscall filtering mechanism. The libseccomp API is designed to abstract away the underlying BPF based syscall filter language and present a more conventional function-call based filtering interface that should be familiar to, and easily adopted by, application developers.
- Seccomp BPF (SECure COMPuting with filters)
- seccomp_init, seccomp_rule_add, seccomp_export_bpf, seccomp_release
libseccomp.so.2
|--- libc.so.6
|--- ld-linux-x86-64.so.2
libssl
- Degree: 2
- /usr/lib/x86_64-linux-gnu/libssl.so.1.1
- Secure Sockets Layer toolkit. This package is part of the OpenSSL project's implementation of the SSL and TLS cryptographic protocols for secure communication over the Internet.
- libssl is the portion of OpenSSL which supports TLS ( SSL and TLS Protocols ), and depends on libcrypto.
libssl.so.1.1
|--- libcrypto.so.1.1
|--- libdl.so.2
|--- ld-linux-x86-64.so.2
|--- libpthread.so.0
|--- libc.so.6
libcrypto
- Degree: 2
- /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1
- Secure Sockets Layer toolkit. This package is part of the OpenSSL project's implementation of the SSL and TLS cryptographic protocols for secure communication over the Internet.
- The libcrypto library provides the fundamental cryptographic routines used by libssl.
libcrypto.so.1.1
|--- libdl.so.2
|--- ld-linux-x86-64.so.2
|--- libpthread.so.0
|--- libc.so.6
Encrypt Libraries
libgpg-error
- Degree: 1
- WebKitBuild/DependenciesGTK/Root/lib/libgpg-error.so.0
- Libgpg-error is a small library that originally defined common error values for all GnuPG components. This library will eventually be renamed to Libgpgrt to reflect that this is a runtime library for GnuPG and other software which likes to use it. The latest version already comes with a header file "gpgrt.h" which can be used instead of "gpg-error.h".
- Source/WebCore/crypto/gcrypt/
libgpg-error.so.0
|--- libc.so.6
|--- ld-linux-x86-64.so.2
libgcrypt
- Degree: 1
- WebKitBuild/DependenciesGTK/Root/lib/libgcrypt.so.20
- libgcrypt contains cryptographic functions. Many important free ciphers, hash algorithms and public key signing algorithms have been implemented.
libgcrypt.so.20
|--- libgpg-error.so.0
|--- libc.so.6
|--- ld-linux-x86-64.so.2
libsecret
- Degree: 1
- /usr/lib/x86_64-linux-gnu/libsecret-1.so.0
- It is a library for storing and retrieving passwords and other secrets. It communicates with the "Secret Service" using D-Bus.
- Source/WebKit/NetworkProcess/soup/
libsecret-1.so.0
|--- libgcrypt.so.20
|--- libgpg-error.so.0
|--- libgio-2.0.so.0
|--- libgmodule-2.0.so.0
|--- libdl.so.2
|--- ld-linux-x86-64.so.2
|--- libz.so.1
|--- libresolv.so.2
|--- libgobject-2.0.so.0
|--- libffi.so.6
|--- libglib-2.0.so.0
|--- libpcre.so.3
|--- libpthread.so.0
|--- libc.so.6
Text/Font Libraries
libicudata
- Degree: 2
- WebKitBuild/DependenciesGTK/Root/lib/libicudata.so.63
- ICU data library. This library provides data used by the ICU libraries through C++ and C API.
- ICU makes use of a wide variety of data tables to provide many of its services. Examples include converter mapping tables, collation rules, transliteration rules, break iterator rules and dictionaries, and other locale data. Additional data can be provided by users, either as customizations of ICU's data or as new data altogether.
libicudata.so.63
libicuuc
- Degree: 1
- WebKitBuild/DependenciesGTK/Root/lib/libicuuc.so.63
- ICU common library. This library provides data used by the ICU libraries through C++ and C API.
- The core Unicode and support functionality, such as resource bundles, character properties, locales, codepage conversion, normalization, Unicode properties, Locale, and UnicodeString.
libicuuc.so.63
|--- libicudata.so.63
|--- libdl.so.2
|--- ld-linux-x86-64.so.2
|--- libstdc++.so.6
|--- libm.so.6
|--- libgcc_s.so.1
|--- libc.so.6
libicui18n
- Degree: 1
- WebKitBuild/DependenciesGTK/Root/lib/libicui18n.so.63
- ICU i18n library. This library provides data used by the ICU libraries through C++ and C API.
- These deal with higher-level internationalization issues such as formatting, collation, text break analysis, and transliteration.
libicui18n.so.63
|--- libicuuc.so.63
|--- libicudata.so.63
|--- libdl.so.2
|--- ld-linux-x86-64.so.2
|--- libstdc++.so.6
|--- libm.so.6
|--- libgcc_s.so.1
|--- libc.so.6
libhyphen
- Degree: 1
- /usr/lib/x86_64-linux-gnu/libhyphen.so.0
- ALTLinux hyphenation library. ALTLinuxhyph is a modified version of libhnj which is a high quality hyphenation and justification library based on the TeX hyphenation algorithm. The TeX hyphenation patterns could be used after a preprocessing step.
libhyphen.so.0
|--- libc.so.6
|--- ld-linux-x86-64.so.2
libfontconfig
- Degree: 1
- WebKitBuild/DependenciesGTK/Root/lib/libfontconfig.so.1
- Fontconfig is a font configuration and customization library, which does not depend on the X Window System. It is designed to locate fonts within the system and select them according to requirements specified by applications.
libfontconfig.so.1
|--- libfreetype.so.6
|--- libpng16.so.16
|--- libm.so.6
|--- ld-linux-x86-64.so.2
|--- libz.so.1
|--- libxml2.so.2
|--- libdl.so.2
|--- liblzma.so.5
|--- libuuid.so.1
|--- libpthread.so.0
|--- libc.so.6
libfreetype
- Degree: 1
- WebKitBuild/DependenciesGTK/Root/lib/libfreetype.so.6
- FreeType 2 font engine, shared library files The FreeType project is a team of volunteers who develop free, portable and high-quality software solutions for digital typography. They specifically target embedded systems and focus on bringing small, efficient and ubiquitous products.
libfreetype.so.6
|--- libpng16.so.16
|--- libm.so.6
|--- ld-linux-x86-64.so.2
|--- libz.so.1
|--- libc.so.6
libharfbuzz
- Degree: 1
- WebKitBuild/DependenciesGTK/Root/lib/libharfbuzz.so.0
- HarfBuzz is a text shaping engine. It primarily supports OpenType, but also Apple Advanced Typography.
libharfbuzz.so.0
|--- libm.so.6
|--- ld-linux-x86-64.so.2
|--- libglib-2.0.so.0
|--- libpcre.so.3
|--- libpthread.so.0
|--- libfreetype.so.6
|--- libpng16.so.16
|--- libz.so.1
|--- libc.so.6
libharfbuzz-icu
- Degree: 1
- WebKitBuild/DependenciesGTK/Root/lib/libharfbuzz-icu.so.0
- OpenType text shaping engine ICU backend.
libharfbuzz-icu.so.0
|--- libicuuc.so.63
|--- libicudata.so.63
|--- libdl.so.2
|--- ld-linux-x86-64.so.2
|--- libstdc++.so.6
|--- libm.so.6
|--- libgcc_s.so.1
|--- libharfbuzz.so.0
|--- libglib-2.0.so.0
|--- libpcre.so.3
|--- libpthread.so.0
|--- libfreetype.so.6
|--- libpng16.so.16
|--- libz.so.1
|--- libc.so.6
libwoff2dec
- Degree: 1
- /usr/lib/x86_64-linux-gnu/libwoff2dec.so.1.0.2
- Web Open Font Format 2 reference implementation (decoder library)
libwoff2dec.so.1.0.2
|--- libwoff2common.so.1.0.2
|--- libbrotlidec.so.1
|--- libbrotlicommon.so.1
|--- libstdc++.so.6
|--- libm.so.6
|--- ld-linux-x86-64.so.2
|--- libgcc_s.so.1
|--- libc.so.6
libwoff2common
- Degree: 2
- /usr/lib/x86_64-linux-gnu/libwoff2common.so.1.0.2
- Web Open Font Format 2 reference implementation (common library)
libwoff2common.so.1.0.2
|--- libstdc++.so.6
|--- libm.so.6
|--- ld-linux-x86-64.so.2
|--- libgcc_s.so.1
|--- libc.so.6
libpango-1.0
- Degree: 1
- WebKitBuild/DependenciesGTK/Root/lib/libpango-1.0.so.0
- Layout and rendering of internationalized text. Pango is a library for laying out and rendering of text, with an emphasis on internationalization. Pango can be used anywhere that text layout is needed, though most of the work on Pango so far has been done in the context of the GTK+ widget toolkit. Pango forms the core of text and font handling for GTK+-2.x.
- Source/WebKit/UIProcess/API/gtk/WebKitEmojiChooser.cpp
- Source/WebKit/NetworkProcess/hybirdos
libpango-1.0.so.0
|--- libgobject-2.0.so.0
|--- libffi.so.6
|--- libglib-2.0.so.0
|--- libpcre.so.3
|--- libm.so.6
|--- ld-linux-x86-64.so.2
|--- libpthread.so.0
|--- libc.so.6
Multimedia
libvpx
- Degree: 1
- WebKitBuild/DependenciesGTK/Root/lib/libvpx.so.5
- It is a free software video codec library from Google and the Alliance for Open Media (AOMedia). It serves as the reference software implementation for the VP8 and VP9 video coding formats, and for AV1 a special fork named libaom that was stripped of backwards compatibility.
libvpx.so.5
|--- libpthread.so.0
|--- ld-linux-x86-64.so.2
|--- libm.so.6
|--- libc.so.6
libopus
- Degree: 1
- /usr/lib/x86_64-linux-gnu/libopus.so.0
- Opus codec runtime library. Opus is a totally open, royalty-free, highly versatile audio codec. Opus is unmatched for interactive speech and music transmission over the Internet, but is also intended for storage and streaming applications.
libopus.so.0
|--- libm.so.6
|--- ld-linux-x86-64.so.2
|--- libc.so.6
libgstapp-1.0
- Degree: 1
- WebKitBuild/DependenciesGTK/Root/lib/libgstapp-1.0.so.0
- GStreamer Base Plug-ins (a basic collection of elements)
libgstapp-1.0.so.0
|--- libgstbase-1.0.so.0
|--- libgstreamer-1.0.so.0
|--- libgmodule-2.0.so.0
|--- libm.so.6
|--- ld-linux-x86-64.so.2
|--- libdl.so.2
|--- libpthread.so.0
|--- libgobject-2.0.so.0
|--- libffi.so.6
|--- libglib-2.0.so.0
|--- libpcre.so.3
|--- libc.so.6
libgstbase
- Degree: 1
- WebKitBuild/DependenciesGTK/Root/lib/libgstbase-1.0.so.0
- GStreamer Base Plug-ins (a basic collection of elements)
libgstbase-1.0.so.0
|--- libgstreamer-1.0.so.0
|--- libgmodule-2.0.so.0
|--- libm.so.6
|--- ld-linux-x86-64.so.2
|--- libdl.so.2
|--- libpthread.so.0
|--- libgobject-2.0.so.0
|--- libffi.so.6
|--- libglib-2.0.so.0
|--- libpcre.so.3
|--- libc.so.6
libgstreamer-1.0
- Degree: 1
- WebKitBuild/DependenciesGTK/Root/lib/libgstreamer-1.0.so.0
- GStreamer is an extremely powerful and versatile framework for creating streaming media applications. Many of the virtues of the GStreamer framework come from its modularity: GStreamer can seamlessly incorporate new plugin modules. But because modularity and power often come at a cost of greater complexity, writing new applications is not always easy.
libgstreamer-1.0.so.0
|--- libgobject-2.0.so.0
|--- libffi.so.6
|--- libglib-2.0.so.0
|--- libpcre.so.3
|--- libgmodule-2.0.so.0
|--- libm.so.6
|--- ld-linux-x86-64.so.2
|--- libdl.so.2
|--- libpthread.so.0
|--- libc.so.6
libgstpbutils-1.0
- Degree: 1
- WebKitBuild/DependenciesGTK/Root/lib/libgstpbutils-1.0.so.0
- GStreamer Base Plug-ins (a basic collection of elements)
libgstpbutils-1.0.so.0
|--- libgstvideo-1.0.so.0
|--- libm.so.6
|--- ld-linux-x86-64.so.2
|--- liborc-0.4.so.0
|--- libgstaudio-1.0.so.0
|--- libgsttag-1.0.so.0
|--- libz.so.1
|--- libgstbase-1.0.so.0
|--- libgstreamer-1.0.so.0
|--- libgmodule-2.0.so.0
|--- libdl.so.2
|--- libpthread.so.0
|--- libgobject-2.0.so.0
|--- libffi.so.6
|--- libglib-2.0.so.0
|--- libpcre.so.3
|--- libc.so.6
libgstaudio
- Degree: 1
- WebKitBuild/DependenciesGTK/Root/lib/libgstaudio-1.0.so.0
- GStreamer Base Plug-ins (a basic collection of elements)
libgstaudio-1.0.so.0
|--- libgsttag-1.0.so.0
|--- libz.so.1
|--- libgstbase-1.0.so.0
|--- libgstreamer-1.0.so.0
|--- libgmodule-2.0.so.0
|--- libdl.so.2
|--- ld-linux-x86-64.so.2
|--- libpthread.so.0
|--- libgobject-2.0.so.0
|--- libffi.so.6
|--- libglib-2.0.so.0
|--- libpcre.so.3
|--- libm.so.6
|--- liborc-0.4.so.0
|--- libc.so.6
libgsttag
- Degree: 1
- WebKitBuild/DependenciesGTK/Root/lib/libgsttag-1.0.so.0
- Read write stream tags. Tags are pieces of information stored in a stream that are not the content itself, but they rather describe the content. Most media container formats support tagging in one way or another
- Source/WebCore/platform/graphics/gstreamer/
libgsttag-1.0.so.0
|--- libgstbase-1.0.so.0
|--- libgstreamer-1.0.so.0
|--- libgmodule-2.0.so.0
|--- libdl.so.2
|--- ld-linux-x86-64.so.2
|--- libpthread.so.0
|--- libgobject-2.0.so.0
|--- libffi.so.6
|--- libglib-2.0.so.0
|--- libpcre.so.3
|--- libm.so.6
|--- libz.so.1
|--- libc.so.6
libgstvideo
- Degree: 1
- WebKitBuild/DependenciesGTK/Root/lib/libgstvideo-1.0.so.0
- GStreamer Base Plug-ins (a basic collection of elements)
libgstvideo-1.0.so.0
|--- libgstbase-1.0.so.0
|--- libgstreamer-1.0.so.0
|--- libgmodule-2.0.so.0
|--- libdl.so.2
|--- ld-linux-x86-64.so.2
|--- libpthread.so.0
|--- libgobject-2.0.so.0
|--- libffi.so.6
|--- libglib-2.0.so.0
|--- libpcre.so.3
|--- libm.so.6
|--- liborc-0.4.so.0
|--- libc.so.6
libgstcodecparsers-1.0
- Degree: 1
- WebKitBuild/DependenciesGTK/Root/lib/libgstcodecparsers-1.0.so.0
- GStreamer Bad Plug-ins
libgstcodecparsers-1.0.so.0
|--- libgstbase-1.0.so.0
|--- libgobject-2.0.so.0
|--- libffi.so.6
|--- libgstreamer-1.0.so.0
|--- libgmodule-2.0.so.0
|--- libdl.so.2
|--- ld-linux-x86-64.so.2
|--- libpthread.so.0
|--- libglib-2.0.so.0
|--- libpcre.so.3
|--- libm.so.6
|--- libc.so.6
libgstfft-1.0
- Degree: 1
- WebKitBuild/DependenciesGTK/Root/lib/libgstfft-1.0.so.0
- General FFT functions and declarations. This library includes general definitions and functions, useful for all typed FFT classes.
libgstfft-1.0.so.0
|--- libglib-2.0.so.0
|--- libpcre.so.3
|--- libpthread.so.0
|--- ld-linux-x86-64.so.2
|--- libm.so.6
|--- libc.so.6
libgstgl-1.0
- Degree: 1
- WebKitBuild/DependenciesGTK/Root/lib/libgstgl-1.0.so.0
- libgstgl-1.0.so: GStreamer Bad Plug-ins
|--- libgstvideo-1.0.so.0
|--- libm.so.6
|--- ld-linux-x86-64.so.2
|--- liborc-0.4.so.0
|--- libgstallocators-1.0.so.0
|--- libgstbase-1.0.so.0
|--- libgstreamer-1.0.so.0
|--- libdl.so.2
|--- libgobject-2.0.so.0
|--- libffi.so.6
|--- libglib-2.0.so.0
|--- libpcre.so.3
|--- libgmodule-2.0.so.0
|--- libGL.so.1
|--- libGLX.so.0
|--- libGLdispatch.so.0
|--- libEGL.so.1
|--- libwayland-client.so.0
|--- librt.so.1
|--- libwayland-egl.so.1
|--- libX11.so.6
|--- libX11-xcb.so.1
|--- libxcb.so.1
|--- libXau.so.6
|--- libXdmcp.so.6
|--- libbsd.so.0
|--- libgudev-1.0.so.0
|--- libudev.so.1
|--- libdrm.so.2
|--- libgbm.so.1
|--- libwayland-server.so.0
|--- libexpat.so.1
|--- libpthread.so.0
|--- libc.so.6
libgstallocators-1.0
- Degree: 2
- WebKitBuild/DependenciesGTK/Root/lib/libgstallocators-1.0.so.0
- GStreamer Base Plug-ins (a basic collection of elements)
libgstallocators-1.0.so.0
|--- libgstreamer-1.0.so.0
|--- libgmodule-2.0.so.0
|--- libm.so.6
|--- ld-linux-x86-64.so.2
|--- libdl.so.2
|--- libpthread.so.0
|--- libgobject-2.0.so.0
|--- libffi.so.6
|--- libglib-2.0.so.0
|--- libpcre.so.3
|--- libc.so.6
libdrm
- Degree: 2
- /usr/lib/x86_64-linux-gnu/libdrm.so.2
- Userspace interface to kernel DRM services.
libdrm.so.2
|--- libm.so.6
|--- ld-linux-x86-64.so.2
|--- libc.so.6
libgbm
- Degree: 2
- /usr/lib/x86_64-linux-gnu/libgbm.so.1
- GNOME Display Manager (shared library) GDM provides the equivalent of a "login:" prompt for X displays: it asks for a login and starts graphical sessions.
libgbm.so.1
|--- libdrm.so.2
|--- libwayland-server.so.0
|--- libffi.so.6
|--- librt.so.1
|--- libdl.so.2
|--- ld-linux-x86-64.so.2
|--- libm.so.6
|--- libexpat.so.1
|--- libpthread.so.0
|--- libc.so.6
Image
libwebp
- Degree: 1
- /usr/lib/x86_64-linux-gnu/libwebp.so.6
- Lossy compression of digital photographic images. Image Compression format, based on the VP8 codec. WebP uses the modern VP8 compression format to deliver efficient compression of images for the web. More than 30% extra gain over optimized JPEG, for same quality, is not unusual.
libwebp.so.6
|--- libm.so.6
|--- ld-linux-x86-64.so.2
|--- libpthread.so.0
|--- libc.so.6
libwebpdemux
- Degree: 1
- /usr/lib/x86_64-linux-gnu/libwebpdemux.so.2
- WebP codec: library to encode and decode images in WebP format. This package contains the library that can be used in other programs to add WebP support, as well as the command line tools 'cwebp' and 'dwebp'
libwebpdemux.so.2
|--- libwebp.so.6
|--- libm.so.6
|--- ld-linux-x86-64.so.2
|--- libpthread.so.0
|--- libc.so.6
libjpeg
- Degree: 1
- /usr/lib/x86_64-linux-gnu/libjpeg.so.8
- It is a widely used C library for reading and writing JPEG image
libjpeg.so.8
|--- libc.so.6
|--- ld-linux-x86-64.so.2
libpng
- Degree: 1
- /usr/lib/x86_64-linux-gnu/libpng16.so.16
- It is the official PNG reference library. It supports almost all PNG features, is extensible, and has been extensively tested for over 23 years.
libpng16.so.16
|--- libz.so.1
|--- libm.so.6
|--- ld-linux-x86-64.so.2
|--- libc.so.6
libopenjp2
- Degree: 1
- WebKitBuild/DependenciesGTK/Root/lib/libopenjp2.so.7
- JPEG 2000 image compression/decompression library.
libopenjp2.so.7
|--- libm.so.6
|--- ld-linux-x86-64.so.2
|--- libpthread.so.0
|--- libc.so.6
Graphic
libGL
- Degree: 1
- /usr/lib/x86_64-linux-gnu/libGL.so.1
- Free implementation of the OpenGL API
libGL.so.1
|--- libGLX.so.0
|--- libX11.so.6
|--- libxcb.so.1
|--- libXau.so.6
|--- libXdmcp.so.6
|--- libbsd.so.0
|--- librt.so.1
|--- libdl.so.2
|--- ld-linux-x86-64.so.2
|--- libGLdispatch.so.0
|--- libpthread.so.0
|--- libc.so.6
libGLX
- Degree: 2
- /usr/lib/x86_64-linux-gnu/libGLX.so.0
- Free implementation of the OpenGL API(GLX vendor library)
libGLX.so.0
|--- libX11.so.6
|--- libxcb.so.1
|--- libXau.so.6
|--- libXdmcp.so.6
|--- libbsd.so.0
|--- librt.so.1
|--- libGLdispatch.so.0
|--- libdl.so.2
|--- ld-linux-x86-64.so.2
|--- libpthread.so.0
|--- libc.so.6
libGLdispatch
- Degree: 2
- /usr/lib/x86_64-linux-gnu/libGLdispatch.so.0
- It is responsible for dispatching OpenGL functions to the correct vendor library based on the current EGL or GLX rendering context.
libGLdispatch.so.0
|--- libdl.so.2
|--- ld-linux-x86-64.so.2
|--- libc.so.6
libEGL
- Degree: 1
- /usr/lib/x86_64-linux-gnu/libEGL.so.1
- Free implementation of the EGL API
libEGL.so.1
|--- libGLdispatch.so.0
|--- libdl.so.2
|--- ld-linux-x86-64.so.2
|--- libpthread.so.0
|--- libc.so.6
libWPEBackend-fdo-1.0
- Degree: 1
- WebKitBuild/DependenciesGTK/Root/lib/libWPEBackend-fdo-1.0.so.1
- WPE is the reference WebKit port for embedded and low-consumption computer devices. It has been designed from the ground-up with performance, small footprint, accelerated content rendering, and simplicity of deployment in mind, bringing the excellence of the WebKit engine to countless platforms and target devices.
- this is the reference WPE backend implementation, using freedesktop.org technologies and used for testing upstream WPE.
libWPEBackend-fdo-1.0.so.1
|--- libEGL.so.1
|--- libGLdispatch.so.0
|--- libdl.so.2
|--- ld-linux-x86-64.so.2
|--- libpthread.so.0
|--- libgio-2.0.so.0
|--- libgobject-2.0.so.0
|--- libffi.so.6
|--- libgmodule-2.0.so.0
|--- libz.so.1
|--- libresolv.so.2
|--- libglib-2.0.so.0
|--- libpcre.so.3
|--- libwayland-client.so.0
|--- librt.so.1
|--- libwayland-server.so.0
|--- libwayland-egl.so.1
|--- libwpe-1.0.so.1
|--- libxkbcommon.so.0
|--- libgcc_s.so.1
|--- libstdc++.so.6
|--- libm.so.6
|--- libc.so.6
libwpe-1.0
- Degree: 1
- WebKitBuild/DependenciesGTK/Root/lib/libwpe-1.0.so.1
- WPE is the reference WebKit port for embedded and low-consumption computer devices. It has been designed from the ground-up with performance, small footprint, accelerated content rendering, and simplicity of deployment in mind, bringing the excellence of the WebKit engine to countless platforms and target devices.
- This is the base library for WPE abstractions to provide platform EGL surfaces and handling input.
libwpe-1.0.so.1
|--- libdl.so.2
|--- ld-linux-x86-64.so.2
|--- libxkbcommon.so.0
|--- libstdc++.so.6
|--- libm.so.6
|--- libgcc_s.so.1
|--- libc.so.6
libgdk_pixbuf-2.0
- Degree: 1
- WebKitBuild/DependenciesGTK/Root/lib/libgdk_pixbuf-2.0.so.0
- GdkPixbuf is a library that loads image data in various formats and stores it as linear buffers in memory. The buffers can then be scaled, composited, modified, saved, or rendered.
libgdk_pixbuf-2.0.so.0
|--- libgmodule-2.0.so.0
|--- libdl.so.2
|--- ld-linux-x86-64.so.2
|--- libgio-2.0.so.0
|--- libz.so.1
|--- libresolv.so.2
|--- libgobject-2.0.so.0
|--- libffi.so.6
|--- libglib-2.0.so.0
|--- libpcre.so.3
|--- libm.so.6
|--- libpthread.so.0
|--- libc.so.6
libcairo
- Degree: 1
- WebKitBuild/DependenciesGTK/Root/lib/libcairo.so.2
- Cairo 2D vector graphics library. Cairo is a multi-platform library providing anti-aliased vector-based rendering for multiple target backends.
libcairo.so.2
|--- libpthread.so.0
|--- ld-linux-x86-64.so.2
|--- libpixman-1.so.0
|--- libfontconfig.so.1
|--- libxml2.so.2
|--- liblzma.so.5
|--- libuuid.so.1
|--- libfreetype.so.6
|--- libEGL.so.1
|--- libGLdispatch.so.0
|--- libdl.so.2
|--- libpng16.so.16
|--- libxcb-shm.so.0
|--- libxcb.so.1
|--- libXau.so.6
|--- libXdmcp.so.6
|--- libbsd.so.0
|--- libxcb-render.so.0
|--- libXrender.so.1
|--- libX11.so.6
|--- libXext.so.6
|--- libz.so.1
|--- libGL.so.1
|--- libGLX.so.0
|--- librt.so.1
|--- libm.so.6
|--- libc.so.6
libpixman-1
- Degree: 2
- WebKitBuild/DependenciesGTK/Root/lib/libpixman-1.so.0
- Pixman is a low-level software library for pixel manipulation, providing features such as image compositing and trapezoid rasterization. Important users of pixman are the cairo graphics library and the X server.
libpixman-1.so.0
|--- libm.so.6
|--- libpthread.so.0
|--- libc.so.6
|--- ld-linux-x86-64.so.2
libxcb
- Degree: 2
- /usr/lib/x86_64-linux-gnu/libxcb.so.1
- The X protocol C-language Binding (XCB) is a replacement for Xlib featuring a small footprint, latency hiding, direct access to the protocol, improved threading support, and extensibility.
libxcb.so.1
|--- libXau.so.6
|--- libXdmcp.so.6
|--- libbsd.so.0
|--- librt.so.1
|--- libpthread.so.0
|--- ld-linux-x86-64.so.2
|--- libc.so.6
libxcb-shm
- Degree: 2
- /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0
- The X protocol C-language Binding (XCB), shm extension.
libxcb-shm.so.0
|--- libxcb.so.1
|--- libXau.so.6
|--- libXdmcp.so.6
|--- libbsd.so.0
|--- librt.so.1
|--- libpthread.so.0
|--- ld-linux-x86-64.so.2
|--- libc.so.6
libXau
- Degree: 2
- /usr/lib/x86_64-linux-gnu/libXau.so.6
- X11 authorisation library. This package provides the main interface to the X11 authorisation handling, which controls authorisation for X connections, both client-side and server-side.
libXau.so.6
|--- libc.so.6
|--- ld-linux-x86-64.so.2
libXdmcp
- Degree: 2
- /usr/lib/x86_64-linux-gnu/libXdmcp.so.6
- X11 authorisation library. This package provides the main interface to the X11 display manager control protocol library, which allows for remote logins to display managers.
libXdmcp.so.6
|--- libbsd.so.0
|--- librt.so.1
|--- libpthread.so.0
|--- ld-linux-x86-64.so.2
|--- libc.so.6
libxcb-render
- Degree: 2
- /usr/lib/x86_64-linux-gnu/libxcb-render.so.0
- The X protocol C-language Binding (XCB), render extension.
libxcb-render.so.0
|--- libxcb.so.1
|--- libXau.so.6
|--- libXdmcp.so.6
|--- libbsd.so.0
|--- librt.so.1
|--- libpthread.so.0
|--- ld-linux-x86-64.so.2
|--- libc.so.6
Network
libsoup
- Degree: 1
- WebKitBuild/DependenciesGTK/Root/lib/libsoup-2.4.so.1
- libsoup is an HTTP client/server library for GNOME. It uses GObjects and the glib main loop, to integrate well with GNOME applications, and also has a synchronous API, for use in threaded applications.
libsoup-2.4.so.1
|--- libgio-2.0.so.0
|--- libgmodule-2.0.so.0
|--- libdl.so.2
|--- ld-linux-x86-64.so.2
|--- libz.so.1
|--- libresolv.so.2
|--- libpthread.so.0
|--- libgobject-2.0.so.0
|--- libffi.so.6
|--- libglib-2.0.so.0
|--- libpcre.so.3
|--- libxml2.so.2
|--- liblzma.so.5
|--- libm.so.6
|--- libsqlite3.so.0
|--- libpsl.so.5
|--- libicuuc.so.63
|--- libicudata.so.63
|--- libstdc++.so.6
|--- libgcc_s.so.1
|--- libc.so.6
Database
libsqlite3
- Degree: 1
- /usr/lib/x86_64-linux-gnu/libsqlite3.so.0
- SQLite is a C library that implements an in-process SQL database engine.
libsqlite3.so.0
|--- libm.so.6
|--- ld-linux-x86-64.so.2
|--- libpthread.so.0
|--- libdl.so.2
|--- libc.so.6
libmysqlclient
- Degree: 1
- /usr/lib/x86_64-linux-gnu/libmysqlclient.so.20
- MySQL database client
libmysqlclient.so.20
|--- libdl.so.2
|--- ld-linux-x86-64.so.2
|--- libz.so.1
|--- libssl.so.1.1
|--- libcrypto.so.1.1
|--- libpthread.so.0
|--- libstdc++.so.6
|--- libm.so.6
|--- libgcc_s.so.1
|--- libc.so.6
Other
libglib
- Degree: 1
- WebKitBuild/DependenciesGTK/Root/lib/libglib-2.0.so.0
- GLib is a bundle of three (formerly five) low-level system libraries written in C and developed mainly by GNOME. GLib's code was separated from GTK, so it can be used by software other than GNOME and has been developed in parallel ever since.
libglib-2.0.so.0
|--- libpcre.so.3
|--- libpthread.so.0
|--- ld-linux-x86-64.so.2
|--- libc.so.6
libgio
- Degree: 1
- WebKitBuild/DependenciesGTK/Root/lib/libgio-2.0.so.0
- GIO (Gnome Input/Output) is a library, designed to present programmers with a modern and usable interface to a virtual file system. It allows applications to access local and remote files with a single consistent API, which was designed "to overcome the shortcomings of GnomeVFS" and be "so good that developers prefer it over raw POSIX calls."
libgio-2.0.so.0
|--- libglib-2.0.so.0
|--- libpcre.so.3
|--- libgobject-2.0.so.0
|--- libffi.so.6
|--- libgmodule-2.0.so.0
|--- libdl.so.2
|--- ld-linux-x86-64.so.2
|--- libz.so.1
|--- libresolv.so.2
|--- libpthread.so.0
|--- libc.so.6
libgmodule
- Degree: 1
- WebKitBuild/DependenciesGTK/Root/lib/libgmodule-2.0.so.0
- GLib module. The GModule struct is an opaque data structure to represent a Dynamically-Loaded Module.
libgmodule-2.0.so.0
|--- libglib-2.0.so.0
|--- libpcre.so.3
|--- libdl.so.2
|--- ld-linux-x86-64.so.2
|--- libpthread.so.0
|--- libc.so.6
libgobject
- Degree: 1
- WebKitBuild/DependenciesGTK/Root/lib/libgobject-2.0.so.0
- The GLib Object System, or GObject, is a free software library providing a portable object system and transparent cross-language interoperability. GObject is designed for use both directly in C programs to provide object-oriented C-based APIs and through bindings to other languages to provide transparent cross-language interoperability, e.g. PyGObject.
libgobject-2.0.so.0
|--- libglib-2.0.so.0
|--- libpcre.so.3
|--- libpthread.so.0
|--- ld-linux-x86-64.so.2
|--- libffi.so.6
|--- libc.so.6
libgmodule
- Degree: 1
- WebKitBuild/DependenciesGTK/Root/lib/libgmodule-2.0.so.0
- GLib module. The GModule struct is an opaque data structure to represent a Dynamically-Loaded Module.
libgmodule-2.0.so.0
|--- libglib-2.0.so.0
|--- libpcre.so.3
|--- libdl.so.2
|--- ld-linux-x86-64.so.2
|--- libpthread.so.0
|--- libc.so.6
liborc
- Degree: 2
- WebKitBuild/DependenciesGTK/Root/lib/liborc-0.4.so.0
-
Orc is basically a simplified assembly language for data
processing (no loops/jumps etc.), it's supposed to map to SIMD instructions on various architectures curently there are two things:
- liborc, which is a JIT compiler that will at run-time take orc code (in some byte format) and generate machine code for the architecture in question on the fly and then execute that whenever there's a function call
- we have C backup functions as .c files in the gstreamer source code, which are also compiled in when orc can't compile some code (for various reasons), or liborc is not available, then the C backup function will be used that's the current state of things. Currently there is no ARM64/AArch64 support in ORC. Add this and implement all relevant opcodes to allow usage of most GStreamer ORC programs.
liborc-0.4.so.0
|--- libm.so.6
|--- ld-linux-x86-64.so.2
|--- libc.so.6
hiWebKit Libraries
libenchant
- Degree: 1
- /usr/lib/x86_64-linux-gnu/libenchant.so.1
- Wrapper library for various spell checker engines. Enchant is a generic spell checking library which uses existing spell checker engines such as ispell, aspell and myspell as its backends. Enchant steps in to provide uniformity and conformity on top of these libraries, and implement certain features that may be lacking in any individual provider library. This package contains files needed for development with Enchant.
- Source/WebCore/platform/text/enchant
libenchant.so.1
|--- libgmodule-2.0.so.0
|--- libdl.so.2
|--- ld-linux-x86-64.so.2
|--- libglib-2.0.so.0
|--- libpcre.so.3
|--- libpthread.so.0
|--- libc.so.6