Linux Standard Base (LSB)

Noyau de base normalisé Linux (LSB)

General Information

Status
Published
Current Stage
Ref Project

RELATIONS

Buy Standard

Draft
ISO/IEC PRF 23360-2-3 - Linux Standard Base (LSB)
English language
492 pages
sale 15% off
Preview
sale 15% off
Preview

Standards Content (sample)

INTERNATIONAL ISO/IEC
STANDARD 23360-2-3
First edition
2021-08
Linux Standard Base (LSB) —
Part 2-3:
Desktop specification for X86-32
architecture
Reference number
ISO/IEC 23360-2-3:2021(E)
ISO/IEC 2021
---------------------- Page: 1 ----------------------
ISO/IEC 23360-2-3:2021(E)
COPYRIGHT PROTECTED DOCUMENT
© ISO/IEC 2021

All rights reserved. Unless otherwise specified, or required in the context of its implementation, no part of this publication may

be reproduced or utilized otherwise in any form or by any means, electronic or mechanical, including photocopying, or posting

on the internet or an intranet, without prior written permission. Permission can be requested from either ISO at the address

below or ISO’s member body in the country of the requester.
ISO copyright office
CP 401 • Ch. de Blandonnet 8
CH-1214 Vernier, Geneva
Phone: +41 22 749 01 11
Email: copyright@iso.org
Website: www.iso.org
Published in Switzerland
ii © ISO/IEC 2021 – All rights reserved
---------------------- Page: 2 ----------------------
ISO/IEC 23360-2-3:2021(E)
Foreword

ISO (the International Organization for Standardization) and IEC (the International Electrotechnical

Commission) form the specialized system for worldwide standardization. National bodies that are

members of ISO or IEC participate in the development of International Standards through technical

committees established by the respective organization to deal with particular fields of technical activity.

ISO and IEC technical committees collaborate in fields of mutual interest. Other international

organizations, governmental and non-governmental, in liaison with ISO and IEC, also take part in the

work.

The procedures used to develop this document and those intended for its further maintenance are

described in the ISO/IEC Directives, Part 1. In particular, the different approval criteria needed for the

different types of document should be noted (see www.iso.org/directives or
www.iec.ch/members_experts/refdocs).

Attention is drawn to the possibility that some of the elements of this document may be the subject of

patent rights. ISO and IEC shall not be held responsible for identifying any or all such patent rights. Details

of any patent rights identified during the development of the document will be in the Introduction and/or

on the ISO list of patent declarations received (see www.iso.org/patents) or the IEC list of patent

declarations received (see patents.iec.ch).

Any trade name used in this document is information given for the convenience of users and does not

constitute an endorsement.

For an explanation of the voluntary nature of standards, the meaning of ISO specific terms and

expressions related to conformity assessment, as well as information about ISO's adherence to the World

Trade Organization (WTO) principles in the Technical Barriers to Trade (TBT),

see www.iso.org/iso/foreword.html. In the IEC, see www.iec.ch/understanding-standards.

This document was prepared by the Linux Foundation [as Linux Standard Base (LSB): Desktop

specification for X86-32 architecture] and drafted in accordance with its editorial rules. It was assigned

to Joint Technical Committee ISO/IEC JTC 1, Information technology, Subcommittee SC 22, Programming

languages, their environments and system software interfaces, and adopted by National Bodies.

This first edition of ISO/IEC 23360-2-3 cancels and replaces ISO/IEC 23360-2:2006, which has been

technically revised.

A list of all parts in the ISO/IEC 23660 series can be found on the ISO and IEC websites.

Any feedback or questions on this document should be directed to the user’s national standards body. A

complete listing of these bodies can be found at www.iso.org/members.html and www.iec.ch/national-

committees.
© ISO/IEC 2021 – All rights reserved iii
---------------------- Page: 3 ----------------------
ISO/IEC 23360-2-3:2021(E)
Contents

Foreword ...................................................................................................................................................... iii

Introduction ................................................................................................................................................ vi

I Introductory Elements ............................................................................................................................. 1

1 Scope........................................................................................................................................................................ 2

2 References ............................................................................................................................................................. 3

2.1 Normative References ........................................................................................................................ 3

2.2 Informative References/Bibliography......................................................................................... 6

3 Requirements ...................................................................................................................................................... 7

3.1 Relevant Libraries ................................................................................................................................ 7

4 Terms and Definitions ...................................................................................................................................... 8

5 Documentation Conventions ...................................................................................................................... 10

II GTK+ Stack Libraries ............................................................................................................................ 11

6 Libraries ............................................................................................................................................................... 12

6.1 Introduction .......................................................................................................................................... 12

6.2 Interfaces for libglib-2.0 .................................................................................................................. 13

6.3 Data Definitions for libglib-2.0 ..................................................................................................... 20

6.4 Interfaces for libgmodule-2.0 ........................................................................................................ 21

6.5 Data Definitions for libgmodule-2.0 ........................................................................................... 21

6.6 Interfaces for libgobject-2.0 ........................................................................................................... 22

6.7 Data Definitions for libgobject-2.0 .............................................................................................. 23

6.8 Interfaces for libgthread-2.0 .......................................................................................................... 24

6.9 Interfaces for libgio-2.0 ................................................................................................................... 24

6.10 Data Definitions for libgio-2.0 .................................................................................................... 25

6.11 Interfaces for libatk-1.0 ................................................................................................................. 42

6.12 Data Definitions for libatk-1.0 .................................................................................................... 42

6.13 Interfaces for libpango-1.0 .......................................................................................................... 43

6.14 Data Definitions for libpango-1.0 ............................................................................................. 43

6.15 Interfaces for libpangocairo-1.0 ................................................................................................ 44

6.16 Data Definitions for libpangocairo-1.0 ................................................................................... 44

6.17 Interfaces for libpangoxft-1.0 ..................................................................................................... 45

6.18 Data Definitions for libpangoxft-1.0 ........................................................................................ 45

6.19 Interfaces for libpangoft2-1.0 .................................................................................................... 46

6.20 Data Definitions for libpangoft2-1.0 ....................................................................................... 46

6.21 Interfaces for libgdk_pixbuf-2.0 ................................................................................................ 47

6.22 Data Definitions for libgdk_pixbuf-2.0 ................................................................................... 47

6.23 Interfaces for libgdk_pixbuf_xlib-2.0 ....................................................................................... 48

6.24 Data Definitions for libgdk_pixbuf_xlib-2.0 .......................................................................... 48

6.25 Interfaces for libgdk-x11-2.0 ...................................................................................................... 48

6.26 Data Definitions for libgdk-x11-2.0 ......................................................................................... 49

6.27 Interfaces for libgtk-x11-2.0 ....................................................................................................... 49

6.28 Data Definitions for libgtk-x11-2.0 .......................................................................................... 50

III Qt Libraries ............................................................................................................................................. 53

7 Libraries ............................................................................................................................................................... 54

7.1 Introduction .......................................................................................................................................... 54

7.2 Interfaces for libQtCore ................................................................................................................... 55

7.3 Data Definitions for libQtCore ...................................................................................................... 69

7.4 Interface Definitions for libQtCore ............................................................................................. 78

7.5 Interfaces for libQtGui ...................................................................................................................... 79

7.6 Data Definitions for libQtGui ...................................................................................................... 355

7.7 Interfaces for libQtXml .................................................................................................................. 375

7.8 Data Definitions for libQtXml ..................................................................................................... 384

7.9 Interfaces for libQtOpenGL ......................................................................................................... 385

7.10 Data Definitions for libQtOpenGL .......................................................................................... 390

7.11 Interfaces for libQtSql ................................................................................................................. 390

iv © 2021 ISO/IEC – All rights reserved
---------------------- Page: 4 ----------------------
ISO/IEC 23360-2-3:2021(E)

7.12 Data Definitions for libQtSql .................................................................................................... 394

7.13 Interfaces for libQtSvg ................................................................................................................ 396

7.14 Data Definitions for libQtSvg ................................................................................................... 400

7.15 Interfaces for libQtNetwork ..................................................................................................... 400

7.16 Data Definitions for libQtNetwork ........................................................................................ 403

IV Package Format and Installation ................................................................................................. 406

8 Software Installation ................................................................................................................................... 407

8.1 Package Dependencies .................................................................................................................. 407

Annex A Alphabetical Listing of Interfaces by Library .............................................................. 408

A.1 libGL ................................................................................................................................................................ 408

A.2 libGLU ............................................................................................................................................................. 418

A.3 libICE .............................................................................................................................................................. 419

A.4 libSM ............................................................................................................................................................... 420

A.5 libX11 ............................................................................................................................................................. 421

A.6 libXext ............................................................................................................................................................ 432

A.7 libXft ............................................................................................................................................................... 434

A.8 libXi ................................................................................................................................................................. 435

A.9 libXrender .................................................................................................................................................... 436

A.10 libXt .............................................................................................................................................................. 437

A.11 libXtst........................................................................................................................................................... 442

A.12 libcairo ........................................................................................................................................................ 442

A.13 libcairo-gobject ....................................................................................................................................... 449

A.14 libcairo-script-interpreter .................................................................................................................. 450

A.15 libfontconfig.............................................................................................................................................. 450

A.16 libfreetype ................................................................................................................................................. 453

A.17 libjpeg .......................................................................................................................................................... 455

A.18 libpng12 ..................................................................................................................................................... 456

A.19 libtiff ............................................................................................................................................................. 459

A.20 libxcb ............................................................................................................................................................ 461

A.21 libQtCore .................................................................................................................................................... 470

A.22 libQtGui ....................................................................................................................................................... 470

A.23 libQtOpenGL ............................................................................................................................................. 476

A.24 libQtSql ....................................................................................................................................................... 476

A.25 libQtSvg ....................................................................................................................................................... 476

A.26 libQtXml ...................................................................................................................................................... 477

A.27 libasound ................................................................................................................................................... 477

© 2021 ISO/IEC – All rights reserved v
---------------------- Page: 5 ----------------------
ISO/IEC 23360-2-3:2021(E)
Introduction
The LSB defines a binary interface for application programs that are compiled
and packaged for LSB-conforming implementations on many different hardware
architectures. A binary specification must include information specific to the

computer processor architecture for which it is intended. To avoid the complexity

of conditional descriptions, the specification has instead been divided into
generic parts which are augmented by one of several architecture-specific parts,
depending on the target processor architecture; the generic part will indicate
when reference must be made to the architecture part, and vice versa.
This document should be used in conjunction with the documents it references.
This document enumerates the system components it includes, but descriptions
of those components may be included entirely or partly in this document, partly
in other documents, or entirely in other reference documents. For example, the
section that describes system service routines includes a list of the system
routines supported in this interface, formal declarations of the data structures
they use that are visible to applications, and a pointer to the underlying
referenced specification for information about the syntax and semantics of each

call. Only those routines not described in standards referenced by this document,

or extensions to those standards, are described in the detail. Information
referenced in this way is as much a part of this document as is the information
explicitly included here.
The specification carries a version number of either the form x.y or x.y.z. This
version number carries the following meaning:
1. The first number (x) is the major version number. Versions sharing the same
major version number shall be compatible in a backwards direction; that is,
a newer version shall be compatible with an older version. Any deletion of
a library results in a new major version number. Interfaces marked as
deprecated may be removed from the specification at a major version
change.
2. The second number (y) is the minor version number. Libraries and
individual interfaces may be added, but not removed. Interfaces may be
marked as deprecated at a minor version change. Other minor changes may
be permitted at the discretion of the LSB workgroup.

3. The third number (z), if present, is the editorial level. Only editorial changes

should be included in such versions.

Since this specification is a descriptive Application Binary Interface, and not a

source level API specification, it is not possible to make a guarantee of 100%
backward compatibility between major releases. However, it is the intent that

those parts of the binary interface that are visible in the source level API will

remain backward compatible from version to version, except where a feature
marked as "Deprecated" in one release may be removed from a future release.
Implementors are strongly encouraged to make use of symbol versioning to
permit simultaneous support of applications conforming to different releases of
this specification.
LSB is a trademark of the Linux Foundation. Developers of applications or
implementations interested in using the trademark should see the Linux
Foundation Certification Policy for details.
vi © 2021 ISO/IEC – All rights reserved
---------------------- Page: 6 ----------------------
ISO/IEC 23360-2-3:2021(E)
I Introductory Elements
© 2021 ISO/IEC – All rights reserved 1
---------------------- Page: 7 ----------------------
ISO/IEC 23360-2-3:2021(E)
1 Scope
The Linux Standard Base (LSB) defines a system interface for compiled
applications and a minimal environment for support of installation scripts. Its
purpose is to enable a uniform industry standard environment for high-volume
applications conforming to the LSB.
These specifications are composed of two basic parts: a common part describing

those parts of the interface that remain constant across all implementations of the

LSB, and an architecture-specific part describing the parts of the interface that

vary by processor architecture. Together, the common part and the relevant
architecture-specific part for a single hardware architecture provide a complete
interface specification for compiled application programs on systems that share
a common hardware architecture.
The LSB contains both a set of Application Program Interfaces (APIs) and
Application Binary Interfaces (ABIs). APIs may appear in the source code of
portable applications, while the compiled binary of that application may use the
larger set of ABIs. A conforming implementation provides all of the ABIs listed
here. The compilation system may replace (e.g. by macro definition) certain APIs

with calls to one or more of the underlying binary interfaces, and may insert calls

to binary interfaces as needed.

The LSB is primarily a binary interface definition. Not all of the source level APIs

available to applications may be contained in this specification.
This is the X86 architecture specific part of the Desktop module of the Linux
Standard Base (LSB). This part supplements the common part of the LSB Desktop
module with those interfaces that differ between architectures.
This part should be used in conjunction with the common part of LSB Desktop.
Whenever a section of the common part is supplemented by architecture-specific
information, the common part includes a reference to the architecture-specific

part. This part may also contain additional information that is not referenced in

the common part.
Interfaces described in this part of LSB Desktop are mandatory except where
explicitly listed otherwise. Interfaces described in the LSB Desktop module
supplement those described in the LSB Core module. They do not depend on
other LSB modules.
2 © 2021 ISO/IEC – All rights reserved
---------------------- Page: 8 ----------------------
ISO/IEC 23360-2-3:2021(E)
2 References
2.1 Normative References
The specifications listed below are referenced in whole or in part by the LSB
Desktop specification. Such references may be normative or informative; a

reference to specification shall only be considered normative if it is explicitly cited

as such. The LSB Desktop specification may make normative references to a

portion of these specifications (that is, to define a specific function or group of

functions); in such cases, only the explicitly referenced portion of the specification

is to be considered normative.
Table 2-1 Normative References
Name Title URL
ATK 2.2.0 Reference ATK 2.2.0 Reference http://developer.gnom
Manual Manual e.org/atk/2.2/index.ht
Double Buffer Double Buffer http://refspecs.linux-
Extension Library Extension Library - foundation.org/X11/db
Protocol Version 1.0 elib.pdf
Fontconfig Developers Fontconfig Developers http://refspecs.linuxfo
Reference Reference, Version 2.6.0 undation.org/fontconfi
g-2.6.0
Gdk 2.10.14 Reference Gdk 2.10.14 Reference http://library.gnome.o
Manual Manual rg/devel/gdk/2.10/
Gdk-pixbuf 2.26.0 Gdk-pixbuf 2.26.0 http://developer.gnom
Reference Manual Reference Manual e.org/gdk-pixbuf/2.26
Gio 2.32 Reference Gio 2.32 Reference http://developer.gnom
Manual Manual e.org/gio/2.32
Glib 2.32 Reference Glib 2.32 Reference http://developer.gnom
Manual Manual e.org/glib/2.32
Gobject 2.32 Reference Gobject 2.32 Reference http://developer.gnom
Manual Manual e.org/gobject/2.32
Gtk+ 2.10.14 Reference Gtk+ 2.10.14 Reference http://library.gnome.o
Manual Manual rg/devel/gtk/2.10/
ISO C (1999) ISO/IEC 9899:1999 -
Programming
Languages -- C
ISO/IEC 14882: 2003 ISO/IEC 14882: 2003
C++ Language Programming
languages --C++
Itanium™ C++ ABI Itanium™ C++ ABI http://refspecs.linuxfo
(Revision 1.86) undation.org/cxxabi-
1.86.html
Libtiff 4.0.2 Reference Libtiff 4.0.2 Reference http://www.libtiff.org
Manual Manual /man/index.html
© 2021 ISO/IEC – All rights reserved 3
---------------------- Page: 9 ----------------------
ISO/IEC 23360-2-3:2021(E)
Name Title URL
Libxcb API Libxcb API http://xcb.freedesktop.
org/XcbApi/
The OpenGL® http://www.opengl.or
OpenGL 2.1
Graphics System: A g/registry/doc/glspec2
Specification (Version 1.20061201.pdf
2.1)
OpenGL ABI OpenGL® Application http://www.opengl.or
Binary Interface for g/registry/ABI/
Linux
OpenGL Extensions OpenGL® Graphics http://opengl.org/doc
with the X Window umentation/specs/glx/
System® (Version 1.3) glx1.3.pdf
OpenGL Utilities The OpenGL Graphics http://www.opengl.or
System Utility Library g/documentation/spec
(Version 1.3) s/glu/glu1_3.pdf
Pango 1.30.1 Reference Pango 1.30.1 Reference http://developer.gnom
Manual Manual e.org/pango/1.30/inde
x.html
POSIX 1003.1-2008 Portable Operating http://www.unix.org/
(ISO/IEC 9945-2009) System Interface version4/
(POSIX®) 2008 Edition
/ The Open Group
Technical Standard
Base Specifications,
Issue 7
QtCore 4.2.0 Qt 4.2.0 Reference http://doc.qt.digia.com
Manual /4.2/qtcore.html
QtGui 4.2.0 Qt 4.2.0 Reference http://doc.qt.digia.com
Manual /4.2/qtgui.html
QtNetwork 4.2.0 Qt 4.2.0 Reference http://doc.qt.digia.com
Manual /4.2/qtnetwork.html
QtOpenGL 4.2.0 Qt 4.2.0 Reference http://doc.qt.digia.com
Manual /4.2/qtopengl.html
QtSql 4.2.0 Qt 4.2.0 Reference http://doc.qt.digia.com
Manual /4.2/qtsql.html
QtSvg 4.2.0 Qt 4.2.0 Reference http://doc.qt.digia.com
Manual /4.2/qtsvg.html
QtXml 4.2.0 Qt 4.2.0 Reference http://doc.qt.digia.com
Manual /4.2/qtxml.html
The MIT Shared MIT-SHM - The MIT http://refspecs.linux-
Memory Extension Shared Memory foundation.org/X11/mi
Extension - X version t-shm.pdf
11, Release 5
4 © 2021 ISO/IEC – All rights reserved
---------------------- Page: 10 ----------------------
ISO/IEC 23360-2-3:2021(E)
Name Title URL
X Display Power X Display Power http://refspecs.linux-
Management Signaling Management Signaling foundation.org/X11/D
(DPMS) Extension -
PMSlib.pdf
Library Specificationi -
Version 1.0
X Extended Visual Extended Visual http://refspecs.linux-
Interface Extension Information Extension - foundation.org/X11/ev
Version 1.0 i.pdf
X Nonrectangular X Nonrectangular http://refspecs.linux-
Window Shape Window Shape foundation.org/X11/sh
Extension Library Extension Library - apelib.pdf
Version 1.0
X Record Extension X Record Extension http://refspecs.linux-
Library Library - Version 1.13 foundation.org/X11/re
cordlib.pdf
X Security Extension Security Extension http://refspecs.linux-
Specification - Version foundation.org/X11/se
Specification
7.1 curity.pdf
X Synchronization X Synchronization http://refspecs.linux-
Extension Library Extension Library - foundation.org/X11/sy
Version 3.0 nclib.pdf
X11 C Library Xlib - C Language X http://refspecs.linux-
Interface - X Version 11 foundation.org/X11/xli
Release 6.4 b.pdf
X11 Input Library X Input Device http://refspecs.linux-
Extension Library - X foundation.org/X11/Xi
Version 11, Release 6.4 nput.pdf
X11 Inter-Client Inter-Client Exchange http://refspecs.linux-
Exchange Library - Version 1.0 foundation.org/X11/IC
Elib.pdf
X11 Keyboard X Keyboard Extension http://refspecs.linux-
Extension Library Specification - X foundation.org/X11/X
Version 11, Release 6.4 KBlib.pdf
X11 Session X Session Management http://refspecs.linux-
Management Library - Version 1.0 foundation.org/X11/S
Mlib.pdf
X11 Toolkit Intrinsics X Toolkit Intrinsics - C http://refspecs.linux-
Language Interface - X foundation.org/X11/in
Version 11, Release 6.4 trinsics.pdf
Xft Placeholder Xft Specification
Placeholder
Xrender Placeholder Xrender Specification http://refspecs.linux-
Placeholder foundation.org/X11/X
RenderProtocol.html
© 2021 ISO/IEC – All rights reserved 5
---------------------- Page: 11 ----------------------
ISO/IEC 23360-2-3:2021(E)
Name Title URL
XTEST Extension XTEST Extension http://refspecs.linux-
Library Library - Version 2.2 foundation.org/X11/xt
estlib.pdf
2.2 Informative References/Bibliography
...

Questions, Comments and Discussion

Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.