Upload
r4yamuro
View
223
Download
0
Embed Size (px)
Citation preview
7/31/2019 RHEL6 App Compatibility WP
1/10
EXECUTIVE SUMMARY
.ht.c
whITEpApER
Red Hat enteRpRise Linux:
appLication compatibiLity specificationFeruar 2012
InTRodUCTIon
This Red Hat Enterprise Linux: Application Compatibility Specication is intended to educate
ideedet sftware vedrs (ISVs) ad usters Red Hats liies regardig surt f
third-art aliatis arss ultile releases f the Red Hat Eterrise Liu latfr. ISVs
ad uster aliatis a avid ajr versi lk-i adherig t this ulished li
durig aliati develet.
This duet desries the arved uses f the sste aliati rgraig ad iar
iterfaes that will esure atiilit arss Red Hat Eterrise Liu releases. It utlies the
tiered fraewrk uder whih aliatis are sidered atile ad t atile.
This specication seeks to provide stability for applications when new releases are deployed,
ad therefre fuses riaril frward atiilit issues. Althugh akward atiil-
ity is provided when possible, development of new capabilities sometimes makes that impracti-
cal. Hence, the assurances in this document represent guidelines and published policy that may
seties e ver-ridde the jetive f rvidig ur usters with the st eti-
tive ad aale sstes ssile.
If clarication of these compatibility policies is required, please see the Red Hat Enterprise
Liu 6 Develer Guide1 for additional details, or contact your Red Hat representative.
Furthermore, if a published assurance level for functionality that you require is problematic,
or has been breached in the goal of delivering new capabilities, please contact your Red Hatreresetative we will tr t eet ur eeds.
1 htt://ds.redhat./ds/e-US/Red_Hat_Eterrise_Liu/6/htl/Develer_Guide/ide.htl
7/31/2019 RHEL6 App Compatibility WP
2/10
whITEpApER RED HAT EnTERpRISE LInUx:
AppLIcATIon compATIbILITy SpEcIFIcATIon
2.ht.c
Terminology
The fllwig are asi ters that are used i this duet:
Biary cmatibilityBinary compatibility species whether applications that are compiled on a combination of
Red Hat Eterrise Liu ad a artiular hardware arhiteture will lad ad ru redital
arss differet istaes f the eratig eviret. These aliati iaries ilude
executable les and Dynamic Shared Objects (DSO), and the level of compatibility is dened
by a specied Application Binary Interface (ABI).
Alicati prrammi Iterface (ApI)
A ApI is a iterfae ileeted a sftware rgra that eales it t iterat with
ther sftware iludig eratig sste ets. The ApI is efred at ile tie
and determines source compatibility, that is, whether application source code will compile pre-
dital arss differet istaes f the eratig eviret.
Alicati Biary Iterface (ABI)
A AbI is a set f rutie vetis adhered t all tls that iterat with a ilediar reresetati f a rgra. It is a suerset f the ApI ad desries the lw-level
iterfae etwee a aliati rgra ad the eratig eviret. It vers details
suh as:
data type, size, and alignment
the calling standard, which denes how function arguments are passed and return values
retrieved
the binary format of object les, program libraries
Examples of such tools include compilers, linkers, runtime libraries, and the operating system
itself. A AbI is efred at ru tie.
ABI cfrmaceA compiler conforms to an ABI if it generates code that follows all of the specications enu -
erated that AbI. A lirar frs t a AbI if it is ileeted ardig t that AbI.
A aliati frs t a AbI if it is uilt usig tls that fr t that AbI ad des
not contain source code that changes behavior specied by the ABI.
Cre ersistet system ifrastructure
The re ersistet sste ifrastruture refers t iterfaes ad eterall availale data
strutures that rereset sste state r rvide a eas f uiatig with the sste
(for instance, system calls and header les).
Cmatibility i a virtualize evirmet
Virtual evirets eulate are etal evirets suh that urivileged aliatis
that run on bare metal environments will run, unmodied, in corresponding virtual environ-
ments. Virtual environments present simplied views of physical resources, so some differ-ees a eist e.g. hardware r ahie tes ad harateristis a e astratis
rather tha rete reresetatis f the uderlig sste.
dyamic Sftare Cllectis
Dai Sftware clletis are sets f aliatis lsel related their iteratis
(e.g., various programs making up the line printer spooling system). Because these collec-
tions work as integrated solutions, changes to one portion are more likely to affect others
in the collection. Some Dynamic Software Collections change more frequently to provide
expanded functionality, and it is generally desirable to make these more rapidly available.
These Dynamic Software Collections are on an accelerated life cycle, and so their compatibil-
it assurae is liited.
7/31/2019 RHEL6 App Compatibility WP
3/10
whITEpApER RED HAT EnTERpRISE LInUx:
AppLIcATIon compATIbILITy SpEcIFIcATIon
3.ht.c
Sulemetary ackaes, otial ackaes
pakages that are t art f the rdut ut are iluded (via searate haels i Red Hat
netwrk) fr veiee r t satisf uild deedeies.
Mar a mir releasesA Red Hat major release represents a signicant step in the development of a product (revolu-
tionary changes are usually reserved for major releases), and is typically designated by a sin-
gle numeral (e.g., Red Hat Enterprise Linux 6). Minor releases appear more frequently, always
within the scope of a major release, and generally represent smaller, incremental developmen-
tal stes.
Sce f Cmatibility
Packages in Red Hat Enterprise Linux are classied under one of the following four
assurae levels:
Assurace Level 1: APIs and ABIs are stable across three major releases, the release that
introduces a new or revised API or ABI, and the two following major releases (n, n+1, n+2).
I thse ases where hages t a lirar durig its assurae lifetie will ause a iat-
ibility with existing compiled code, a compatibility library will be provided to allow that code to
continue to run without modications.
Assurace Level 2: ApIs ad AbIs are stale withi e ajr release
Assurace Level 3: Reserved fr future use2
Assurace Level 4: n assurae is rvided.
2 This assurae level addresses iar atiilit fr thse usters wh have used EUS r Lg Life (LL) t eted
surt f features that have haged ver iterveig ir releases
ASSURANCE LEVEL 2
ASSURANCE LEVEL 1
Release n
Release n+1
Release n+2
Assurae Levels
7/31/2019 RHEL6 App Compatibility WP
4/10
whITEpApER RED HAT EnTERpRISE LInUx:
AppLIcATIon compATIbILITy SpEcIFIcATIon
4.ht.c
For assurance levels for specic Red Hat Enterprise Linux packages, please see the Appendices.
Assurance levels for bare metal congurations apply to virtualized congurations except for any
features that diretl iterat with hardware. Thse hardware-related features have ApI r
ABI assurance. For example, applications that rely on GPU features cannot be assured of binary
atiilit.
CompaTibiliTy assuranCes
ApI
Source code will continue to compile into a working application with equivalent functionality.
ABI
Sure de iled it iar fr ad liked with liraries usig uli iar iterfaes
will run with equivalent functionality.
ntes:
This assurance applies to components explicitly included in the product (that is, directly
istallale the istaller).
This assurae des t al t tehlg review ets.
Confguration Files
All conguration les are supported at assurance level 2.
ntes:
Existing conguration les will either remain syntactically and functionally consistent, or
will be automatically upgraded to a functionally equivalent form.
Alicati data Cmatibility
Application data les are stable within assurance level claims.
ntes:
Eistig aliati data will reai statiall ad futiall sistet.
When in backwards compatibility mode (which is explicitly invoked by the user), applica -
tion reads are assured to work within assurance level claims, but writes may not.
Cre persistet System Ifrastructure
The re ersistet sste ifrastruture will reai statiall ad futiall sistet
withi assurae level lais.
This alies t the fllwig ifrastruture ets:
Raid data strutures
Vlue aager ifrati
Filesste laels
File sstes
Attriutes
RPM le formats and signatures
pakages i Red Hat Eterrise Liu 6 are siged with SHA256 sigatures. This akes the
iatile default with the revius versis f yu ad Rpm.
7/31/2019 RHEL6 App Compatibility WP
5/10
whITEpApER RED HAT EnTERpRISE LInUx:
AppLIcATIon compATIbILITy SpEcIFIcATIon
5.ht.c
Virtualize Evirmet
An application that runs on bare metal will run, unmodied, in a guest.
dyamic Sftare Cllectis
Please see Appendix B for assurance levels for specic Dynamic Software Collections.
Sulemetary packaes a otial packaes
pakages that are i the Suleetar ad otial Red Hat netwrk haels have
ApI r AbI assurae.
besT praCTiCes for preserving binary CompaTibiliTy
Red Hat reeds that aliati develers adhere t the fllwig t esure that their
applications run predictably without modication:
1.Buil alicatis usi te ublic iterfaces f a library. Iteral iterfaes are sujet t
change at any time, which can cause instability in the dependent application if improperly
liked.
2.Avi static liki f libraries (C/C++). Stati likig auses the eeutales t have their
w versi f the lirar. This ireases the hae f a aliati t ruig re-
dital a later versi f the eratig sste as these lirar deedeies ight have
haged alg the wa. Likig aliatis daiall is the referred alterative t this
rle.
3.If yu require fuctiality frm a ackae tat is curretly at a ler level f assurace
ta yu is, lease ctact Re hat.
4.Limit liki alicatis t te cre libraries. The re liraries (see Aedi A) are
assured t reserve iar atiilit arss ajr releases.
5.prvie cmatibility libraries fr alicatis tat ave bee built libraries tat t
assure biary cmatibility at te esire level. Eve i that ase the udled liraries ust
theselves use l the iterfaes rvided the re liraries.
6.packae alicatis usi te RpM mecaism. Rpm rvides a rust sftware akag-
ing mechanism that includes rigorous specication of application dependencies. When creat-
ing RPMs, the following should be kept in mind:
(a) Avid usig Rpm triggers wheever ssile.
(b) Dont depend on the execution order of pre-install or pre-uninstall scripts, which may
hage etwee releases.
(c) Explicitly state all required runtime and build dependencies using the appropriate RPM
sta.
() Do not modify, replace, or recompile les managed by Red Hat-provided RPM packages.
(e) When considering dependencies, dont assume that all possible packages will be installed
ever Red Hat Eterrise Liu sste. The default istalled akages a hage
between releases and between product variants of the same version. For instance, the
Wrkstati rdut will have a differet istalled akage set tha the Server rdut.
7/31/2019 RHEL6 App Compatibility WP
6/10
whITEpApER RED HAT EnTERpRISE LInUx:
AppLIcATIon compATIbILITy SpEcIFIcATIon
6.ht.c
ASSURAnCE LEVEL 1: ApIS And ABIS ARE STABLE ACRoSS ThREE MAjoR RELEASES
alsa-li lig litlg etif
elfutils-lielf ligfrtra livirt-liet essl
gli lig lil2 a
gli-utils liseliu lislt SDL
gtk2 liseliu-th esa-liGL
kr5-lis libstdc++ esa-liGLU
7.Fll te Filesystem hierarcy Staar (FhS) versi 2.3 e istalli rrams.
Third-art sftware shuld e istalled t the /t sudiretr. mre ifrati the
FHS is availale at:
tt://.atame.cm/fs/
8.Alicatis sul be built aaist libraries tat crres t te ative arare evir-
met rater ta a cmatibility layer t f te arare. This is eause the -
atiilit usersae tais a suset f sste liraries ared t the ative usersae.
9.Do not design applications that rely on confguration fles used by system packages. These
les can change between major releases unless the upstream community is explicitly com-
itted t reservig the.
appendix a: assuranCe levels for speCifiC paCkages and libraries
7/31/2019 RHEL6 App Compatibility WP
7/10
whITEpApER RED HAT EnTERpRISE LInUx:
AppLIcATIon compATIbILITy SpEcIFIcATIon
7.ht.c
ASSURAnCE LEVEL 2: ApIS And ABIS ARE STABLE wIThIn onE MAjoR RELEASE
atk gstreaer-lugis-ase lige re
audit-lis httd ligeui erl
audit-lis-th java-1.6.0-ejdk ligudev1 erl-Digest-SHA
st-date-tie kdease lihugetlfs erl-lis
boost-lesystem kdease-lis liIcE erl-Tie-piee
st-grah kdease-wrksae lijeg h-aked-gstreaer
st-istreas kdease-wrksae-akadi litif lkit
st-ath kdease-wrksae-lis lig t
st-rgra-tis kdegrahis lirsvg2 postgresql-libs
st-th kdegrahis-lis liSm ulseaudi
st-rege kdelis litiff ulseaudi-lis
boost-serialization kdeultiedia liudev ulseaudi-lis-gli2
st-sigals kdeultiedia-lis lius pQt4
st-sste kdeetwrk liuuid th
st-test kdeetwrk-lis lix11 th-lis
st-thread kdei lixau qt
st-wave kdei-lis lixaw qt-mysql
bzip2-libs kdeilis lixet qt-odbc
air kdeilis-akadi lixft qt-postgresql
rs kdesdk lixi qt-x11
us-lis kdesdk-devel lixieraa qt3
rus-sasl-gssai kdesdk-lis lixu qt3-MySQL
rus-sasl-li kdesdk-utils lix qt3-ODNC
rus-sasl-d5 kd lixradr qt3-PostgreSQL
7/31/2019 RHEL6 App Compatibility WP
8/10
whITEpApER RED HAT EnTERpRISE LInUx:
AppLIcATIon compATIbILITy SpEcIFIcATIon
8.ht.c
ASSURAnCE LEVEL 2 ConTInUEd...d4 lial lixreder readlie
d4- liai lixt sqlite
dus-gli liattr lixtst startup-notication
dus-lis lilkid mysql-libs ssteta
elfutils-lis li urses-lis tl
eat liaerra et-s-lis t_wraers-lis
fuse-lis liaerra-gtk2 et-s-erl tk
Gcf2 lia-g et-s-th unique
gli2 liurl ss xz-libs
g ligj ss-ssiit zlib
ge-kerig ligj-devel uatl
ge-kerig-a ligrt ag
gutls liglade2 ai
ASSURAnCE LEVEL 3: RESERVEd FoR FUTURE USE
(This seti is itetiall left lak)
7/31/2019 RHEL6 App Compatibility WP
9/10
whITEpApER RED HAT EnTERpRISE LInUx:
AppLIcATIon compATIbILITy SpEcIFIcATIon
9.ht.c
ASSURAnCE LEVEL 4: STABILITY oF ApIS oR ABIS SUBjECT To ChAngE AT REd hATS dISCRETIoniutils juit elda postgresql-test
e2fsrgs-lis ligru postgresql-contrib pulseaudio-libs-zeroconf
glade3-libgladeui li_err postgresql-docs ulseaudi-dule-luet
ge-deskt lidr postgresql-plperl ulseaudi-dule-gf
gstreaer liss postgresql-plpython ulseaudi-dule-11
gstreaer-devel esa-dri-drivers postgresql-pltcl ulseaudi-utils
gvfs mysql-server postgresql-server tkiter
7/31/2019 RHEL6 App Compatibility WP
10/10
SALES And InQUIRIES LATIn AMERICA
+54 11 4329 7300
www.lata.redhat.
if-lata@redhat.
noRTh AMERICA
1888REDHAT1
www.redhat.
EURopE, MIddLE EAST
And AFRICA
00800 7334 2835
www.eure.redhat.
eure@redhat.
ASIA pACIFIC
+65 6490 4200
www.aa.redhat.
aa@redhat.
Red Hat was founded in 1993 and is headquartered in Raleigh, NC. Today, with more than 70
ofces around the world, Red Hat is the largest publicly traded technology company fully com-
mitted to open source. That commitment has paid off over time, for us and our customers, prov-
ig the value f e sure sftware ad estalishig a viale usiess del uilt arud thee sure wa.
ABoUT REd hAT
Copyright 2012 Red Hat, Inc. Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, MetaMatrix, and RHCE are trademarks of
Red Hat, Inc., regis tered in the U.S. and other countries. Linux is the registered tradeark f Lius Trvalds i the U.S. ad ther utries.
.ht.c#8824127_0212
appendix b:
assuranCe levels for dynamiC sofTware ColleCTions
Red Hat Eterrise Liu 6 iludes the fllwig Dai Sftware clletis:
1. LAMP - (Linux), Apache, MySQL, PHP, Perl, Python, and PostgreSQL
2. Java - OpenJDK and tomcat
3. Ru ad assiated Ges
4. pritig - us ad saa
Packages within these collections will typically be updated more frequently than the traditional
major release refresh cycle. Therefore, Dynamic Software Collections have their own lifecycles,
ideedet f ajr releases.
Dai Sftware clletis have a assurae level ased releases f the Dai
Sftware clleti itself (t the Red Hat Eterrise Liu release taiig the Dai
Software Collection), and are stable for three releases of the Dynamic Software Collection
(n, n+1, n+2).
Users will have the ti t reai a lder versi f a Dai Sftware clleti
for up to ve years.
Red Hat will add re lletis i the future at its disreti ased uster dead.