Docs/SupportedAPI

From Apertis
Jump to: navigation, search

SDK APIs will be made available using a review process.

In Apertis, compatibility of applications is an important concern, given the facts that it will be a long-living system running on a computer which is not necessarily consistently connected to the Internet, while at the same time trying to stay close to the fresh new versions delivered by the Open Source projects that are being used as a base for the platform. This page documents what APIs are available, and how they fit into the support levels, as discussed in the Supported APIs proposal (look for the newest version in the Specs page.

Contents

Enabling APIs

These are the libraries that make up the supported API surface made available for applications from the store to use. Effort may be made to ease or remove transition issues when ABI or API breakages happen.

Content Rendering

Component Packages Category
WebKit Clutter libwebkit-clutter-0 Web engine
Poppler libpoppler-glib8, libpoppler28 PDF rendering
ClutterGst 3 libclutter-gst-3.0-0 High-level multimedia

UI

Component Packages Category
Cairo libcairo2 Drawing library
Clutter libclutter-1.0-0 High-level graphics
Mx 2.0 libmx-2.0-0 UI toolkit

Services

Component Packages Category
Canberra libcanberra0 High-level sounds
PolicyKit policykit-1 libpolkit-agent-1-0 libpolkit-backend-1-0 libpolkit-gobject-1-0 System
Folks libfolks-eds25, libfolks-telepathy25, libfolks25 Contacts & calendar
Grilo libgrilo-0.2-1 Media indexing
Tracker libtracker-extract-0.16-0, libtracker-miner-0.16-0, libtracker-sparql-0.16-0 Media indexing
libsecret libsecret-1-0 Secrets management
Telepathy libtelepathy-glib0 libtelepathy-farstream3 Communication

OS APIs

These are more fundamental APIs, usually used by the Enabling APIs to provide higher-level functionality. Platform upgrades may require adapting applications to new APIs and/or ABIs for these.

Infrastructure

Component Packages Category
eglibc libc6 Base
GLib libglib2.0-0 Base

Environment integration

Component Packages Category
Systemd libudev1 libsystemd-daemon0 libsystemd-journal0 libsystemd-login0 libpam-systemd libgudev-1.0-0 System
D-Bus libdbus-1-3 Low-level D-Bus API
dbus-glib libdbus-glib-1-2 High-level D-Bus API
WNCK libwnck-3-0 Window management

Rendering building blocks

Component Packages Category
pixman libpixman-1-0 Low-level graphics
Pango libpango1.0-0 High-level font rendering
Cogl libcogl15 Low-level graphics
Mesa libegl1-mesa libgbm1 libgl1-mesa-dri libglapi-mesa libgles2-mesa Low-level graphics
hafbuzz libharfbuzz0 Low-level font rendering
freetype libfreetype6 Low-level font rendering

Functionality

Component Packages Category
LLVM libllvm3.2 Compiler technology
GTK+ 3 libgtk-3-0 UI toolkit
gdk-pixbuf libgdk-pixbuf2.0-0 Image manipulation
GMime libgmime-2.6-0 File format support
GStreamer libgstreamer1.0-0 gstreamer1.0-plugins-base libgstreamer-plugins-base1.0-0 gstreamer1.0-plugins-good libgstreamer-plugins-good1.0-0 Low-level multimedia
Farstream libfarstream-0.2-2 Communication
libxml2 libxml2 File format support
libxslt libxslt1.1 File format support
SQLite libsqlite3-0 Data storage
JSON GLib libjson-glib-1.0-0 File format support
Soup libsoup-gnome2.4-1, libsoup2.4-1 Network protocol


Note that Apertis deploys only license verified Gstreamer plugins. Basically, each Gstreamer plugin is developing under LGPL, but only gstreamer core, base and good provide license and patent-free plugins. In case of gst-plugins-ugly and gst-plugins-bad, they are not immune from the license and patent issues. gst-plugins-bad usually provides a space to review API stablity as well as license problem. In addition, the plugins which have potential issues with patents, or license fee should be located in gst-plugins-ugly.For more information, please refer to http://gstreamer.freedesktop.org/documentation/licensing.html

Internal APIs

APIs used to build platform functionality, not supported for usage by applications from the store. Breaking API and ABI surface here is less of a problem, because all of the pieces are under Apertis developers' control.

Functionality

Component Packages Category Used by/for
LibreOffice libreoffice-common, libreoffice-core, libreoffice-style-galaxy File format support Tracker and Apertis tool to read documents
Zeitgeist libzeitgeist-1.0-1 Metadata Event logging service (see Contacts proposal)
Evolution Data Server libcamel-1.2-40, libebackend-1.2-5, libebook-1.2-14, libecal-1.2-15, libedata-book-1.2-15, libedata-cal-1.2-18, libedataserver-1.2-17 Contacts & calendar Main contacts backend for Folks
SyncEvolution libsyncevolution0 Contacts & calendar Apertis synchronization application
Bluez libbluetooth3 System ofono

Indexing building blocks

Component Packages Category Used by/for
taglib libtag1-vanilla, libtag1c2a Media indexing Tracker and grilo
Tumbler libtumbler-1-0 Media indexing Tracker

Multimedia building blocks

Component Packages Category Used by/for
Theora libtheora0 Media format support GStreamer plugin
Vorbis libvorbis0a, libvorbisenc2, libvorbisfile3 Media format support GStreamer plugin
Ogg libogg0 Media format support GStreamer plugin
VPX libvpx1 Media format support GStreamer plugin
Flac libflac8 Media format support GStreamer plugin

Support code

Component Packages Category Used by/for
libnice libnice10 Connectivity GStreamer/Farstream support library
upower libupower-glib1 System Telelpathy, Tracker, potentially several Apertis services
Apertis BTRFS libbtrfsc1 System Apertis system tools, system updater
Boot flags (static only) chaiwala-bootflags-dev System Boot up process, system updater
JSON libjson0 File format support json-glib (for clutter)
libwebsockets libwebsockets1 Network protocol Apertis's custom web server

External APIs

These libraries need to be shipped along with the application if they are to be used.

Component Packages Category
GTK+ 2 libgtk2.0-0 UI toolkit
libgdata libgdata13 Web services
libjpeg8 libjpeg-turbo libjpeg-turbo8 Image format support
webp libwebp4 Image format support
giflib libgif4 Image format support
tiff libtiff5 Image format support
libpng libpng12-0 Image format support
Champlain libchamplain-0.12-0 Clutter-based map rendering

Deprecated APIs

APIs which are still shipped in Apertis, but that are going away.

Component Packages Category Notes
ClutterGst 2 libclutter-gst-2.0-0 High-level multimedia Replaced by ClutterGst 3
GNOME Keyring libgnome-keyring0 Secrets management Replaced by libsecret
GeoClue libgeoclue0 Geolocation support To be replaced by Geoclue2
startup-notification libstartup-notification0 Session management Replaced by gio's GApplication

Potentially Unused APIs

Component Packages Category Notes
libsocialweb libsocialweb0 libsocialweb-service libsocialweb-client2 libfolks-libsocialweb25 Web services Depends on whether libsocialweb will be used for implementing any web service support

Unsupported

These libraries are currently shipped, but they are used directly by pieces of the platform which are custom, and are not supposed to be used by applications from the store. They exist only to support the other libraries and services of the system.

Component Packages
aalib libaa1, libaa1
acl libacl1
alsa-lib libasound2
alsa-plugins libasound2-plugins
apt libapt-inst1.5, libapt-pkg4.12
atk1.0 libatk1.0-0, libatk1.0-data 2.8.0-1be1
at-spi2-atk libatk-bridge2.0-0
at-spi2-core libatspi2.0-0
attr libattr1
audit libaudit1, libauparse0
avahi libavahi-client3, libavahi-common3, libavahi-core7
bind9 libbind9-90, libdns95
bind9 libisc92, libisccc90, libisccfg90, liblwres90
boost1.49 libboost-date-time1.49.0
bzip2 libbz2-1.0
cdparanoia libcdparanoia0
colord libcolord1
cryptsetup libcryptsetup4
curl libcurl3, libcurl3-gnutls
cyrus-sasl2 libsasl2-2
db libdb5.1
d-conf libdconf1
e2fsprogs libcomerr2
e2fsprogs libss2
enca libenca0
exempi libexempi3
?? expat libexpat1
fftw3 libfftw3-single3
file libmagic1
fontconfig libfontconfig1
gcc-4.7 libgcc1, libgomp1, libstdc++6
gcr libgck-1-0, libgcr-3-1
gdbm libgdbm3
geoip libgeoip1
gmp libgmp10
gnutls26 libgnutls26
gobject-introspection libgirepository-1.0-1
gpgme1.0 libgpgme11
gpm libgpm2
gssdp libgssdp-1.0-3
gupnp-av libgupnp-av-1.0-2
gupnp-igd libgupnp-igd-1.0-4
gupnp libgupnp-1.0-4
hunspell libhunspell-1.3-0
hyphen libhyphen0
icu libicu48
jasper libjasper1
jbigkit libjbig0
keyutils libkeyutils1
klibc libklibc
kmod libkmod2
krb5 libgssapi-krb5-2, libk5crypto3, libkrb5-3, libk5crypto3, libkrb5support0
lcms2 liblcms2-2
libarchive libarchive13
libasyncns libasyncns0
libavc1394 libavc1394-0
libcaca libcaca0
libcap2 libcap2
libclass-isa-perl libclass-isa-perl
libcmis libcmis-0.3-3
libdaemon libdaemon0
libdatrie libdatrie1
libdrm libdrm-nouveau2 ?? -> not needed on arm, libdrm-radeon1 ?? -> not needed on arm, libdrm2
libdrm libkms1
libdv libdv4
libelf libelfg0
libexif libexif12
libexttextcat libexttextcat-2.0-0, libexttextcat-data
libffi libffi6
libfontenc libfontenc1
libgcrypt11 libgcrypt11
libgee libgee2
libgpg-error libgpg-error0
libgsf libgsf-1-114
libgusb libgusb2
libgweather libgweather-3-1
libgxps libgxps2
libical libical0
libice libice6
libidn libidn11
libiec61883 libiec61883-0
libiptcdata libiptcdata0
liblocale-gettext-perl liblocale-gettext-perl
libmrss libmrss0
libnfnetlink libnfnetlink0
libnl3 libnl-3-200, libnl-genl-3-200
libnotify libnotify4
libnxml libnxml0
liboauth liboauth0
libopenobex libopenobex1
libopenraw libopenraw1, libopenrawgnome1
libpciaccess libpciaccess0
libpipeline libpipeline1
libproxy libproxy1
libquvi libquvi7
libquvi-scripts libquvi-scripts
libraw1394 libraw1394-11
librest librest-0.7-0, librest-extras-0.7-0
libsamplerate libsamplerate0
libselinux libselinux1
libsemanage libsemanage1
libsepol libsepol1
libshout libshout3
libsm libsm6
libsndfile libsndfile1
libswitch-perl libswitch-perl
libsynthesis libsmltk0, libsynthesis0
libtasn1-3 libtasn1-3
libtext-charwidth-perl libtext-charwidth-perl
libtext-iconv-perl libtext-iconv-perl
libtext-wrapi18n-perl libtext-wrapi18n-perl
libthai libthai0
libtool libltdl7
libunistring libunistring0
libusb-1.0 libusb-1.0-0
libusb libusb-0.1-4
libutempter libutempter0 -> xterm
libuuid-perl libuuid-perl
libvisual libvisual-0.4-0
libx11 libx11-6, libx11-xcb1
libxau libxau6
libxaw libxaw7
libxcb libxcb-dri2-0, libxcb-render0, libxcb-shm0, libxcb-xfixes0, libxcb1
libxcomposite libxcomposite1
libxcursor libxcursor1
libxdamage libxdamage1
libxdmcp libxdmcp6
libxext libxext6
libxfixes libxfixes3
libxfont libxfont1
libxi libxi6
libxinerama libxinerama1
libxkbcommon libxkbcommon0
libxkbfile libxkbfile1
libxmu libxmu6, libxmuu1
libxpm libxpm4
libxrandr libxrandr2
libxrender libxrender1
libxres libxres1
libxt libxt6
libxtst libxtst6
libxv libxv1
lua5.1 liblua5.1-0
lvm2 libdevmapper1.02.1
lzo2 liblzo2-2
mhash libmhash2
mozjs libmozjs185-1.0
mtdev libmtdev1
mutter libmutter0a
mythes libmythes-1.2-0
ncurses libncurses5, libncursesw5, libtinfo5
neon27 libneon27-gnutls
nettle libnettle4
newt libnewt0.52
nspr libnspr4
nss libnss3
openldap libldap-2.4-2
openssl libssl1.0.0
orc liborc-0.4-0
p11-kit libp11-kit0
pacrunner libproxy1-pacrunner
pam libpam-modules, libpam-modules-bin, libpam-runtime, libpam0g
pcre3 libpcre3, libpcrecpp0
pcsc-lite libpcsclite1
popt libpopt0
procps libprocps0
pth libpth20
python2.7 libpython2.7-minimal, libpython2.7-stdlib
python-defaults libpython-stdlib
raptor2 libraptor2-0
rasqal librasqal3
readline6 libreadline6
redland librdf0
rtmpdump librtmp0
sbc libsbc1
slang2 libslang2
speex libspeex1, libspeexdsp1
taglib libtag1-vanilla, libtag1c2a
tcp-wrappers libwrap0
tdb libtdb1
totem-pl-parser libtotem-plparser17
ustr libustr-1.0-1
util-linux libblkid1
util-linux libmount1
util-linux libuuid1
v4l-utils libv4l-0, libv4lconvert0
wayland libwayland0
xcb-util libxcb-util0
xft libxft2
xz-utils liblzma5
yajl libyajl2
Personal tools
Namespaces

Variants
Actions
Navigation
Tools