RHEL6 App Compatibility WP

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.