Hvilke nyheder er der for udviklere
Følgende ændringer er vigtige for softwareudviklere, som bruger GNOME 3.2-udviklingsplatformen. Hvis du ikke er interesseret i ændringer for softwareudvikling, kan du springe videre til Afsnit 5 ― Internationalisering.
Inkluderet i GNOME 3.2 er også den seneste udgave af GNOME-udviklingsplatformen. Den består af et sæt af API- og ABI-stabile biblioteker under GNU LGPL, der kan bruges til udvikling af krydsplatformsprogrammer.
Mere information om softwareudvikling med GNOME kan findes i GNOME-udviklingscentret.
- 4.1. GLib 2.30
- 4.2. GTK+ 3.2
- 4.3. Clutter 1.8
- 4.4. Brug af deprecierede biblioteker
- 4.5. Nemmere at kompilere GNOME med JHBuild
- 4.6. Diverse udvikleropdateringer
4.1. GLib 2.30
GNOME's lavniveau softwareværktøjsbibliotek GLib har fået indarbejdet flere forbedringer:
- GApplication kan nu bruges til ikke-unikke programmer.
- GLib installerer nu en separat inkluderingsfil (header) for Unix-specifikke API'er: glib-unix.h. Blandt andre ting giver denne en hovedløkkekilde for Unixsignaler.
- GDBus understøtter "object manager"-mønstret med flere nye grænseflader.
- GDBus har ny en kodegenerator: gdbus-codegen.
- Atomare operationer er blevet omskrevet til at bruge indbyggede gcc-funktioner; kald med specifikke typekonverteringer (casts) kan være problematiske.
- Atomare operationer på pegere (pointers) er blevet tilføjet, inklusive bit-låse på pegerstørrelses-placeringer.
- Enhedspolitikken er blevet ændret således at der foretrækkes SI-enheder; g_format_size_for_display er blevet udfaset til fordel for g_format_size.
- Understøttelse for HMAC-sammendrag er blevet tilføjet: GHmac.
- Der er blevet tilføjet en grænseflade til certifikat- og nøgleopslag: GTlsDatabase. En implementering forsynes af glib-networking.
4.2. GTK+ 3.2
GTK+ 3.2 er den seneste udgave af værktøjssættet GTK+, som er hjertet af GNOME. GTK+ 3.2 inkluderer nye funktioner til udviklere såvel som omfattende fejlretning.
- Indgange (entries) kan nu indeholder fif. Se gtk_entry_set_placeholder_text.
- Mange flere kontroller understøtter højde-per-bredde geometristyring. Det er vigtigt at indstille rimelige størrelser for mærkater og kontrollere vinduesstørrelser.
- Nye kontroller:
- GtkLockButton til priviligerede operationer, som det kan ses i visse control-center-paneler.
- GtkOverlay til kontroller som flyder over et indholdsområde, som set i webbrowsere.
- GtkFontChooserDialog, en ny dialog til at vælge skrifttype med.
- Betydeligt bedre CSS-temaunderstøttelse, inklusive stilklasser til primære og indlejrede (inline) værktøjslinjer.
- Den underliggende HTML-program Broadway som renderer i en browser ved hjælp af websokler, er blevet forbedret meget, men er stadig eksperimentielt. Det kan potentielt gøre dig i stand til enten at køre dine egne programmer på din server og tilgå dem alle steder fra, eller at putte det på en offentlig server som starter en ny instans af programmet for hver bruger. Bemærk at dette kræver, at GTK+ er kompileret med --enable-x11-backend --enable-broadway-backend og miljøvariablen GDK_BACKEND ved kørsel.
- Understøttelse af reftester er blevet tilføjet for at gøre det nemmere at skrive tests.
- Forskellige GTK+-ydelsesforbedringer er blevet udført indenfor områderne med mellemlagring (caching) af størrelsesforespørgsler, læsning af CSS-stilinformation og udregning af kontrolstørrelser.
4.3. Clutter 1.8
GNOME's grafiske bibliotek til hardware-accelereret brugergrænseflader Clutter gør følgende forbedringer tilgængelige:
- Nye handlinger, som f.eks. ClutterGestureAction til at skrive gestusgenkendelser med, ClutterSwipeAction til at detektere strygegestusser (swipe), ClutterDropAction til at lave aktørdropmål med når der bruges ClutterDragAction, og understøttelse for lange tryk for ClutterClickAction.
- ClutterState-overgange kan bindes til objektsignaler, når der dannes en scene i ClutterScript.
- Forbedret Cairo-tegneintegration.
- Cogl, som er den GPU-programmeringsgrænseflade som bruges af Clutter, eksponeres som et separat bibliotek.
4.4. Brug af deprecierede biblioteker
Der er yderligere fremgang indenfor det fortsatte arbejde med at erstatte forældede teknologier med overlegne faciliteter.
- GConf bruger nu D-Bus som standard og behøver derfor ikke ORBit2 længere. Som en konsekvens er de deprecierede biblioteker ORBit2 samt libIDL blevet fjernet fra GNOME.
- Kernemoduler i GNOME afhænger nu udelukkende af introspektion-baserede Python-bindinger (pygobject-3) og derfor er pygtk, gnome-python og gnome-python-desktop ikke længere påkrævede.
- Flere programmer (for eksempel Accerciser, Dasher, GHex, den grafiske fejlfinder Nemiver, og adgangskode- og krypteringsnøgle-håndteringsværktøjet Seahorse) bruger nu GSettings som underliggende gemmeprogram i stedet for GConf.
- Adskillige pakker, som f.eks. webbrowseren Epiphany er blevet konverteret fra at bruge dbus-glib til GDBus og fra libunique til G(tk)Application.
4.5. Nemmere at kompilere GNOME med JHBuild
GNOME's byggeværktøj JHBuild bygger ikke længere moduler, hvis den version der er installeret på dit system er nylig nok. Dette kontrolleres ved hjælpe af konfigurationsvalgmuligheden partial_build og det er slået til som standard. Kommandoen jhbuild sysdeps viser hvilke systemmoduler der er blevet fundet, samt hvilke moduler der vil blive bygget.
Hvis du starter på at bygge GNOME fra bunden af med en nylig distribution, kan dette nemt skære 50 moduler fra listen over moduler som skal kompileres.
4.6. Diverse udvikleropdateringer
Andre forbedringer af GNOME-platformen i GNOME 3.2 inkluderer:
- De klassiske (statiske) Python-bindinger er blevet fjernet for PyGObject 3.0 og kun dynamiske Python-bindinger gøres tilgængelige (via introspektion). PyGObject 2 og 3 kan installeres ved siden af hinanden, eftersom introspektion som standard er slået fra i PyGObject 2-pakker. Information omkring hvordan man porterer et program fra PyGObject 2 til PyGObject 3 er tilgængelig.
- Tracker version 0.12 har understøttelse for Firefox ≥ 4.0, Thunderbird ≥ 5.0, MeeGoTouch, flere ekstra SPARQL-parametre, udtrækning af information fra EPub-filer og lokale XDG-mapper for skrivebordsfiler.
- NetworkManager version 0.9 har understøttelse for introspektion og en simplificeret D-Bus-API. Information om hvordan man porterer programmer fra NetworkManager 0.8 til 0.9 er tilgængelig.
- Som en del af den førnævnte indsats på at bruge og promovere PKCS#11 som lim mellem krypteringsbiblioteker er forskellige dele af gnome-keyring blevet delt ud i biblioteker som er uafhængige af skrivebordet.
- GtkSourceView understøtter nu syntaksfremhævning for Markdown- og Standard ML-filer.
- Evolution-Data-Server har modtaget adskillige rettelser i understøttelsen af introspektion.
- libfolks inkluderer nu et underliggende program til Evolution-Data-Server, som bruges af den nye program Kontakter.
- Blandt de værktøjer som bruges i dokumentationsprocesser er gnome-doc-utils og xml2po langsomt ved at blive erstattet af yelp-tools og itstool. yelp-xsl inkluderer et par eksperimentelle Mallard-udvidelser, f.eks. til betinget behandling og dynamiske ordlister.