<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
  <!ENTITY kappname "kdesvn-build">
  <!ENTITY package "kdesdk">
  <!ENTITY % addindex "IGNORE">
  <!ENTITY % Swedish "INCLUDE"
> <!-- Change language only here -->
  <!ENTITY kdesvn-build "<application
>kdesvn-build</application
>">
  <!ENTITY BSD '<acronym
>BSD</acronym
>'>
  <!ENTITY git '<application
>Git</application
>'>
  <!ENTITY cmake '<application
>CMake</application
>'>
  <!ENTITY make '<application
>Make</application
>'>
  <!ENTITY ssh '<application
>SSH</application
>'>
  <!ENTITY cron '<application
>Cron</application
>'>
  <!ENTITY subversion '<application
>Subversion</application
>'>
  <!ENTITY sudo '<application
>Sudo</application
>'>
  <!ENTITY url '<acronym
>URL</acronym
>'>

  <!-- These define shortcut entities for some of the configuration options.
       Just add them as necessary.
  -->

  <!ENTITY configure-flags '<link linkend="conf-configure-flags"
>configure-flags</link
>'>
  <!ENTITY kdedir '<link linkend="conf-kdedir"
>kdedir</link
>'>
  <!ENTITY qtdir '<link linkend="conf-qtdir"
>qtdir</link
>'>
  <!ENTITY build-dir '<link linkend="conf-build-dir"
>build-dir</link
>'>
  <!ENTITY module-base-path '<link linkend="conf-module-base-path"
>module-base-path</link
>'>
  <!ENTITY override-url '<link linkend="conf-override-url"
>override-url</link
>'>
  <!ENTITY source-dir '<link linkend="conf-source-dir"
>source-dir</link
>'>
  <!ENTITY email-address '<link linkend="conf-email-address"
>email-address</link
>'>
  <!ENTITY email-on-compile-error '<link linkend="conf-email-on-compile-error"
>email-on-compile-error</link
>'>
  <!ENTITY colorful-output '<link linkend="conf-colorful-output"
>colorful-output</link
>'>
  <!ENTITY tag '<link linkend="conf-tag"
>tag</link
>'>
  <!ENTITY branch '<link linkend="conf-branch"
>branch</link
>'>
  <!ENTITY do-not-compile '<link linkend="conf-do-not-compile"
>do-not-compile</link
>'>
  <!ENTITY checkout-only '<link linkend="conf-checkout-only"
>checkout-only</link
>'>
  <!ENTITY svn-server '<link linkend="conf-svn-server"
>svn-server</link
>'>
  <!ENTITY make-install-prefix '<link linkend="conf-make-install-prefix"
>make-install-prefix</link
>'>
  <!ENTITY niceness '<link linkend="conf-niceness"
>niceness</link
>'>
  <!ENTITY set-env '<link linkend="conf-set-env"
>set-env</link
>'>
  <!ENTITY libpath '<link linkend="conf-libpath"
>libpath</link
>'>
  <!ENTITY binpath '<link linkend="conf-binpath"
>binpath</link
>'>

  <!-- These define shortcut entities for some of the command line options.
       Just add them as necessary.
  -->
  <!ENTITY cmd-nice '<link linkend="cmdline-nice"
>--nice</link
>'>
  <!ENTITY cmd-ignore-modules '<link linkend="cmdline-ignore-modules"
>--ignore-modules</link
>'>
  <!ENTITY cmd-resume-from '<link linkend="cmdline-resume-from"
>--resume-from</link
>'>
  <!ENTITY cmd-resume-after '<link linkend="cmdline-resume-after"
>--resume-after</link
>'>
  <!ENTITY cmd-reconfigure '<link linkend="cmdline-reconfigure"
>--reconfigure</link
>'>
  <!ENTITY cmd-refresh-build '<link linkend="cmdline-refresh-build"
>--refresh-build</link
>'>
]>

<book lang="&language;">

<bookinfo>
<title
>Handbok för skriptet &kdesvn-build;</title>

<authorgroup id="authors">
<author
><firstname
>Michael</firstname
><surname
>Pyne</surname
> <affiliation
><address
><email
>mpyne@kde.org</email
></address
></affiliation>
</author>
<author
><firstname
>Carlos</firstname
><surname
>Woelz</surname
> <affiliation
><address
><email
>carloswoelz@imap-mail.com</email
></address
></affiliation>
</author>


<othercredit role="translator"
> <firstname
>Stefan</firstname
> <surname
>Asserhäll</surname
> <affiliation
><address
><email
>stefan.asserhall@comhem.se</email
></address
></affiliation
> <contrib
>Översättare</contrib
></othercredit
> 

</authorgroup>

<copyright>
<year
>2006</year>
<year
>2007</year>
<year
>2008</year>
<year
>2009</year>
<year
>2010</year>
<holder
>Michael Pyne</holder>
</copyright>

<copyright>
<year
>2005</year>
<holder
>Carlos Woelz</holder>
</copyright>

<legalnotice
>&FDLNotice;</legalnotice>

<date
>2010-01-30</date>
<releaseinfo
>1.12</releaseinfo>

<abstract>
<para
>&kdesvn-build; är ett skript som bygger och installerar &kde;s programvara, direkt från källkoden som hämtas från .</para>
</abstract>

<keywordset>
<keyword
>KDE</keyword>
<keyword
>kdesdk</keyword>
<keyword
>SVN</keyword>
<keyword
>Subversion</keyword>
<keyword
>git</keyword>
<keyword
>gitorious</keyword>
<keyword
>KDE-utveckling</keyword>
</keywordset>

</bookinfo>

<chapter id="introduction">
<title
>Inledning</title>

<para
>&kdesvn-build; är ett skript som hjälper användare att installera <ulink url="http://www.kde.org/"
>&kde;</ulink
> från källkodsarkiven <ulink url="http://subversion.tigris.org/"
>&subversion;</ulink
> och <ulink url="http://gitscm.org/"
>&git;</ulink
>. </para>

<para
>Den här guiden är en översikt som beskriver följande aspekter vid användning av &kdesvn-build;: </para>

<itemizedlist>
<listitem
><para
><link linkend="features"
>Funktioner</link
> värda att lägga märke till.</para
></listitem>
<listitem
><para
>En <link linkend="getting-started"
>översikt</link
> av stegen som krävs för att komma igång.</para
></listitem>
<listitem
><para
><link linkend="configure-data"
>Inställningsfilen</link
>s syntax och alternativ. </para
></listitem>
<listitem
><para
><link linkend="cmdline"
>Kommandoradsväljarna</link
>.</para
></listitem>
</itemizedlist>

<para
>Dessutom dokumenteras stegen du måste utföra när andra verktyg används (med andra ord, steg som inte utförs automatiskt av &kdesvn-build;.). </para>

</chapter>
<chapter id="getting-started">
<title
>Komma igång</title>

<para
>I det här kapitlet visar vi hur &kdesvn-build; används för att checka ut moduler från &kde;-arkivet och bygga dem. Vi tillhandahåller också en grundläggande förklaring av &kde;:s &subversion;-struktur och stegen du måste utföra innan skriptet körs. </para>

<para
>Alla ämnen som presenteras i det här kapitlet täcks med ännu mer detaljer i artikeln <ulink url="http://techbase.kde.org/Getting_Started/Build/KDE4"
>Building &kde; 4 from Source</ulink
> på webbplatsen <ulink url="http://techbase.kde.org/"
>&kde; TechBase</ulink
>. Om du kompilerar &kde; för första gången, är det en god idé att läsa den, eller rådfråga den som en referenskälla. Du hittar detaljerad information om paketverktyg och krav, vanliga fallgropar vid kompilering och strategier och information om att köra den nya &kde;-installationen. </para>

<sect1 id="before-building">
<title
>Förbereda systemet för att bygga &kde;</title>

<sect2 id="before-building-users">
<title
>Ställa in ett nytt användarkonto</title>

<para
>Det rekommenderas att du använder ett annat användarkonto för att bygga, installera och köra din &kde;-programvara från, eftersom färre rättigheter krävs, och för att undvika konflikt med distributionens paket. Om du redan har installerade &kde;-paket, är det bästa valet att skapa en annan (dedicerad) användare för att bygga och köra det nya &kde;. </para>

<tip
><para
>Att lämna systemets &kde; orört, låter dig också ha en reservutväg i nödfall om ett kompilerat &kde; är instabilt av någon orsak. </para
></tip>

<para
>Senare kan du installera som systemadministratör om du vill. Det här dokumentet täcker inte en installation som systemadministratör. Om du utför en systeminstallation, vet du troligen ändå vad du gör. Om inte, kan du behöva konsultera dokumentation eller hjälpplatser för din distribution, för att utföra och använda systeminstallationen riktigt. </para>

</sect2>
<sect2 id="before-building-preparation">
<title
>Försäkra dig om att systemet är klart att bygga &kde;:s källkod</title>

<para
>Innan du använder skriptet &kdesvn-build; (eller någon annan byggstrategi) måste du installera utvecklingsverktyg och bibliotek som behövs för &kde;. Den fullständiga listan med verktyg som behövs finns på <ulink url="http://techbase.kde.org/"
>KDE:s Techbase</ulink
>. </para>

<para
>Här är en lista med några av de saker du kommer att behöva:</para>
<itemizedlist>

<listitem
><para
>Du kommer att behöva &cmake;. Versionen som krävs varierar beroende på vilken version av &kde; 4 du bygger, se TechBase för specifik information.</para
></listitem>

<listitem
><para
>Klientprogrammet för &subversion;, inklusive stöd för säker HTTP (https) behövs också. För att försäkra dig om nödvändigt stöd finns, kan du köra <userinput
><command
>svn <option
>--version</option
></command
></userinput
>. Om utmatningen säger att den hanterar metoden https (för skrivåtkomst till svn.kde.org) eller metoden svn (för läsåtkomst till anonsvn.kde.org), ska du vara klar att köra.</para
></listitem>

<listitem
><para
>Om du bygger &Qt; eller någon av de olika &kde;-modulerna tillgängliga från <ulink url="http://gitorious.org/"
>Gitorious</ulink
>, behöver du dessutom ha installerat <ulink url="http://gitscm.org/"
>källkodshanteringsverktyget Git</ulink
>.</para
></listitem>

<listitem
><para
>Du behöver en utvecklingsmiljö för C++. GCC 3.4 eller senare rekommenderas.</para
></listitem>

</itemizedlist>

<note
><para
>De flesta distributioner av operativsystem inkluderar en metod att enkelt installera nödvändiga utvecklingsverktyg. Konsultera avsnittet <quote
>Required Packages from your Distribution</quote
> på sidan <ulink url="http://techbase.kde.org/Getting_Started/Build/KDE4"
>Getting Started</ulink
> på TechBase, för att se om instruktioner redan är tillgängliga.</para
></note>

<para
>Ett undantag från bibliotek som krävs är &Qt;-biblioteket. &kdesvn-build; installerar normalt en kopia av &Qt; vare sig du har det installerat eller inte, så det är inte nödvändigt att du har det. Om du inte vill använda kopian av &Qt;, måste du göra följande:</para>

<itemizedlist>
<listitem>
  <para
>Försäkra dig om att ta bort modulen qt-copy från din <link linkend="configure-data"
>inställningsfil</link
> eftersom du inte behöver den, och att ha den skulle lägga till extra tid till byggprocessen.</para>
</listitem>

<listitem>
  <para
>Ändra inställning av alternativet <link linkend="conf-qtdir"
>qtdir</link
> i din <link linkend="configure-data"
>inställningsfil</link
> så att det pekar på systemets &Qt;. Det är normalt samma sak som inställningen av $<envar
>QTDIR</envar
> i systemet.</para>
</listitem>

<listitem>
  <para
>Om du inte redan har installerat &Qt;, installera det, inklusive eventuella relevanta -dev eller -devel paket. Du behöver minst &Qt; 4.6 om du bygger &kde; 4.</para>
</listitem>
</itemizedlist>

<para
>Vissa av paketen är uppdelade i bibliotek (eller program, eller verktyg) och utvecklingspaket. Du behöver åtminstone programmet eller biblioteket och dess utvecklingspaket. Om du är tveksam, installera alla. Biblioteken du behöver ändras beroende på modulerna du tänker bygga, eftersom varje modul har sina egna krav. <ulink url="http://techbase.kde.org/Getting_Started/Build/KDE4#Required_packages_from_your_distribution"
>&kde; TechBase</ulink
> har mer information om de specifika verktygen och tekniker som används för att installera och hitta programvara som krävs. </para>

</sect2>

<sect2 id="before-building-prepare-script">
<title
>Inställning av &kdesvn-build;</title>

<sect3 id="get-kdesvn-build">
<title
>Installera &kdesvn-build;</title>
<para
>Du har troligen redan en version av skriptet &kdesvn-build; installerad på systemet. Om du dock inte har det kan du ladda ner det från <ulink url="http://kdesvn-build.kde.org/"
>hemsidan för &kdesvn-build;</ulink
>, eller hämta det från dess hem i &kde;:s källkodsarkiv.</para>

<note
><para
>&kdesvn-build; ingår i modulen kdesdk,, och modulen installeras oftast redan av distributioner. Om du har laddad ner &kdesvn-build;, försäkra dig om att du använder versionen du laddat ner. Du kan använda väljaren --version för att vara säker på att du kör den version du tror att du kör.</para
></note>

<orderedlist>
<listitem
><para
>För att ladda ner &kdesvn-build; från dess hemsida, gå helt enkelt till <ulink url="http://kdesvn-build.kde.org/"
>hemsidan för &kdesvn-build;</ulink
> och ladda ner senaste lämpliga utgåva. Utgåvorna paketeras som ett komprimerat tar-arkiv, som du kan packa upp med &ark; eller <command
>tar</command
>. Innehållet i arkivet omfattar själva skriptet &kdesvn-build;, och ett exempel på en inställningsfil (<filename
>kdesvn-buildrc-sample</filename
>).</para
></listitem>

<listitem
><para
>Annars kan du skaffa &kdesvn-build; från dess källkodsarkiv, på: <ulink url="http://websvn.kde.org/trunk/KDE/kdesdk/scripts/"
>http://websvn.kde.org/trunk/KDE/kdesdk/scripts/</ulink
>. Det är skriptkatalogen för &kde;:s programvaruutvecklingsverktyg, som är hemkatalog för &kdesvn-build;. Du kan klicka på posten <filename
>kdesvn-build</filename
>, vilket leder dig till en sida där du kan ladda ner den senaste utgåvan. Gör det, och spara den på ett praktiskt ställe på din hårddisk. Gör samma sak med <filename
>kdesvn-buildrc-sample</filename
> om du behöver.</para
></listitem>
</orderedlist>

<para
>Oberoende av vilken teknik du använder, måste du försäkra dig om att filen <filename
>kdesvn-build</filename
> är körbar. Av bekvämlighetsskäl bör du försäkra dig om att den finns i en katalog som ingår i miljövariabeln <envar
>PATH</envar
>, annars kan du få meddelanden som säger att kommandot inte hittades, eller kör du kanske en tidigare installerad version av misstag.</para>
</sect3>

<sect3 id="setup-rcfile">
<title
>Färdigställa inställningsfilen</title>

<para
>Även om &kdesvn-build; inte kräver att du skapar en <link linkend="configure-data"
>inställningsfil</link
>, gör det arbetsflödet mycket enklare. Genom att använda en <link linkend="configure-data"
>inställningsfil</link
>, kan du styra vilka moduler som installeras, eller ta bort moduler du inte vill installera. &kdesvn-build; installerar normalt en användbar &kde;-installation med mycket generella installationsflaggor, som kan skilja sig från dina behov. Det är alltså bäst att använda en <link linkend="configure-data"
>inställningsfil</link
> </para>

<para
><link linkend="configure-data"
>Inställningsfilen</link
> ska heta <filename
>.kdesvn-buildrc</filename
>. Filen ska installeras i hemkatalogen (<filename class="directory"
>~</filename
>), och innehålla all inställningsdata som krävs för att skriptet ska kunna köras, som konfigureringsalternativ, kompileringsalternativ, plats för källkoden, installationens mål (prefix), modulerna som ska byggas, etc. Standardinställningsdata tillhandahålls av filen <filename
>kdesvn-buildrc-sample</filename
>, som du kan kopiera till <filename
>~/.kdesvn-buildrc</filename
> och därefter redigera. </para>

<para
>Du hittar mer information om syntaxen i en <link linkend="configure-data"
>inställningsfil</link
> i <xref linkend="configure-data"/> och <xref linkend="kdesvn-buildrc"/>. </para>

</sect3>
</sect2>
</sect1>

<sect1 id="configure-data">
<title
>Ange inställningsinformation</title>

<para
>För att använda &kdesvn-build; ska du ha en fil i hemkatalogen som heter <filename
>.kdesvn-buildrc</filename
> som ställer in allmänna alternativ och anger modulerna som du vill ladda ner och bygga. </para>

<note
><para
>Det är möjligt att använda andra inställningsfiler för &kdesvn-build;, som beskrivs i <xref linkend="kdesvn-buildrc"/>. Om du behöver använda flera inställningar, se det avsnittet.Här antar vi att inställningarna är lagrade i <filename
>~/.kdesvn-buildrc</filename
>.</para
></note>

<para
>Det enklaste sättet att fortsätta är att använda filen <filename
>kdesvn-buildrc-sample</filename
> som mall, och ändra allmänna inställningar för att stämma med vad du vill ha, och dessutom ändra listan med moduler du vill bygga. </para>

<para
>Standardinställningarna bör i själva verket redan vara lämpliga för att utföra byggprocessen för &kde;. Vissa inställningar som du kan vilja ändra omfattar: <itemizedlist>
<listitem
><para
><link linkend="conf-binpath"
>binpath</link
>, för att ändra listan med kataloger som söks igenom efter kommandon. Det är precis samma sak som variabeln <envar
>PATH</envar
> i skalet.</para
></listitem>

<listitem
><para
><link linkend="conf-kdedir"
>kdedir</link
>, som ändrar målkatalogen som &kde; installeras i. Standardvärdet är <filename
>~/kde</filename
>, som är en enanvändarinstallation.</para
></listitem>

<listitem
><para
><link linkend="conf-qtdir"
>qtdir</link
>, som styr sökvägen till installationen av &Qt; att använda. Standardvärdet är att använda modulen qt-copy från &kde;:s &subversion;-arkiv. (<filename class="directory"
>~/kdesvn/build/qt-copy</filename
>)</para>

<para
>För Qt-versioner som stöder installation, styr det också var qt-copy ska installeras.</para
></listitem>

<listitem
><para
><link linkend="conf-svn-server"
>svn-server</link
>, som väljer vilken webbadress som källkoden laddas ner från. Det är användbart om du är en utvecklare med ett <ulink url="http://techbase.kde.org/Contribute/First_Steps_with_your_KDE_SVN_Account"
>&kde; &subversion;-konto</ulink
>.</para
></listitem>
</itemizedlist>
</para>

<para
>Efter den allmänna delen finns en lista med moduler att bygga, omgivna av raderna module ... end module. Kontrollera att de listade modulerna verkligen är de moduler du vill bygga. Standardalternativen från filen <filename
>kdesvn-buildrc-sample</filename
> ska vara tillräckliga för att få en ganska fullständig installation av &kde;. Spara resultatet som <filename
>.kdesvn-buildrc</filename
> i din hemkatalog. </para>

<para
>Om du vill finjustera <filename
>.kdesvn-buildrc</filename
>, titta då på <xref linkend="kdesvn-buildrc"/> för detaljerad information om alla inställningsalternativ. </para>

</sect1>

<sect1 id="building-and-troubleshooting">
<title
>Att använda skriptet &kdesvn-build;</title>

<para
>Nu är du klar att köra skriptet. Logga in till användaren som du använder för att kompilera &kde; i ett terminalfönster, och kör skriptet: <screen
><prompt
>$</prompt
><command
>kdesvn-build</command
>
</screen>
</para>

<para
>Nu ska skriptet börja ladda ner källkoden och kompilera den. Beroende på hur många moduler du laddar ner, är det möjligt att &kdesvn-build; inte lyckas första gången du kompilerar &kde;. Ge inte upp hoppet! </para>

<para
>&kdesvn-build; loggar utmatningen från varje kommando som körs. Normalt lagras loggfilerna i <filename class="directory"
>~/kdesvn/log</filename
>. För att se vad som orsakade ett fel för en modul vid det senaste &kdesvn-build;-kommandot, är det oftast tillräckligt att titta i <filename class="directory"
>~/kdesvn/log/latest/<replaceable
>modulnamn</replaceable
>/error.log</filename
>.</para>

<para
>I filen ser du felet som orsakade att byggprocessen misslyckades för modulen. Om filen säger (längst ner) att vissa paket saknas, försök att installera paketet (inklusive eventuella lämpliga -dev paket) innan du försöker bygga modulen, och skicka med väljaren <link linkend="cmdline-reconfigure"
>--reconfigure</link
> efter att du har installerat de saknade paketen.</para>

<para
>Eller om felet verkar vara ett byggfel är det nog ett fel i &kde;:s källkod, som förhoppningsvis löses inom några dagar. Om det inte har lösts inom den tiden, skicka gärna ett brev till e-postlistan <email
>kde-devel@kde.org</email
> (prenumeration kan krävas först) för att rapportera byggfelet.</para>

<para
>Du hittar fler vanliga exempel på saker som kan gå fel och deras lösningar, samt allmänna tips och strategier för att bygga &kde;i guiden <ulink url="http://techbase.kde.org/Getting_Started/Build/KDE4"
>Building &kde; 4 from Source</ulink
>. </para>

<note
><para
>För mer information om loggningssystemet i &kdesvn-build;, se <xref linkend="kdesvn-build-logging"/>.</para
></note>

</sect1>

<sect1 id="environment">
<title
>Ställa in miljön för att köra det färska &kde;</title>

<para
>Med antagandet att du använder en särskild användare för att bygga &kde; och redan har en installerad version av &kde;, kan det vara något krångligt att köra det nya &kde;, eftersom det nya &kde; måste ges företräde över det gamla. Ändra miljövariabler för att försäkra dig om att det gör det. </para>

<sect2 id="changing-profile">
<title
>Ändra startprofilinställningar</title>

<important
><para
>Filen <filename
>.bash_profile</filename
> är inloggningsinställningarna för det populära skalet <application
>bash</application
> som används av många &Linux;-distributioner. Om du använder ett annat skal, kan du behöva justera exemplen som ges i det här avsnittet för ditt specifika skal.</para
></important>

<para
>Öppna eller skapa filen <filename
>.bash_profile</filename
> i hemkatalogen med din favoriteditor, och lägg till följande i slutet på filen. Om du bygger modulen qt-copy (det gör du normalt), lägg till: <programlisting>
QTDIR=(sökväg till qtdir)   # Såsom normalt ~/kdesvn/build/qt-copy.
KDEDIR=(sökväg till kdedir) # Såsom normalt ~/kde.
KDEDIRS=$KDEDIR
PATH=$KDEDIR/bin:$QTDIR/bin:$PATH
MANPATH=$QTDIR/doc/man:$MANPATH

# Gör rätt om inte LD_LIBRARY_PATH redan är satt.
if [ -z $LD_LIBRARY_PATH ]; then
  LD_LIBRARY_PATH=$KDEDIR/lib:$QTDIR/lib
else
  LD_LIBRARY_PATH=$KDEDIR/lib:$QTDIR/lib:$LD_LIBRARY_PATH
fi

export QTDIR KDEDIRS PATH MANPATH LD_LIBRARY_PATH
</programlisting
> eller om du inte bygger qt-copy (och använder systemets &Qt;) lägg till det här istället: <programlisting
>KDEDIR=(sökväg till kdedir)  # Såsom ~/kde normalt.
KDEDIRS=$KDEDIR
PATH=$KDEDIR/bin:$QTDIR/bin:$PATH

# Gör rätt om inte LD_LIBRARY_PATH redan är satt.
if [ -z $LD_LIBRARY_PATH ]; then
  LD_LIBRARY_PATH=$KDEDIR/lib
else
  LD_LIBRARY_PATH=$KDEDIR/lib:$LD_LIBRARY_PATH
fi

export KDEDIRS PATH LD_LIBRARY_PATH
</programlisting>
</para>

<para
>Om du inte använder en särskild användare ställ in en annan $<envar
>KDEHOME</envar
> för din nya miljö i <filename
>.bash_profile</filename
>: <programlisting
>export KDEHOME="${HOME}/.kde-svn"

# Skapa om det behövs
[ ! -e ~/.kde-svn ] &amp;&amp; mkdir ~/.kde-svn
</programlisting>
</para>

<note>
<para
>Om din K-meny senare är tom eller för tätpackad med program från din distribution, kanske du måste ange miljövariabeln <acronym
>XDG</acronym
> i din <filename
>.bash_profile</filename
>: <programlisting
>XDG_CONFIG_DIRS="/etc/xdg"
XDG_DATA_DIRS="${KDEDIR}/share:/usr/share"
export XDG_CONFIG_DIRS XDG_DATA_DIRS
</programlisting>

</para>
</note>

</sect2>
<sect2 id="starting-kde">
<title
>Starta &kde;</title>

<para
>När du nu har justerat dina miljöinställningar för att använda rätt &kde;, är det viktigt att försäkra dig om att det rätta <command
>startkde</command
>-skriptet också används. </para>

<para
>Öppna textfilen <filename
>.xinitrc</filename
> från hemkatalogen, eller skapa den om det behövs. Lägg till raden: <programlisting
><command
>exec</command
> <option
>${KDEDIR}/bin/startkde</option
>
</programlisting>
</para>

<important
><para
>Det kan vara nödvändigt att utföra samma steg med filen <filename
>.xsession</filename
>, också i hemkatalogen. Det är särskilt sant om grafiska inloggningshanterare som &kdm;, <application
>gdm</application
> eller <application
>xdm</application
> används.</para>
</important>

<para
>Starta nu det nya &kde;: i &BSD;- och &Linux;-system med stöd för virtuella terminaler, används tangentkombinationerna <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>F1</keycap
></keycombo
> ... <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>F12</keycap
></keycombo
> för att byta till virtuell konsoll 1 till och med 12. Det låter dig köra fler än en skrivbordsmiljö samtidigt. De första sex är textterminaler, och de följande sex är grafiska skärmar. </para>

<para
>Om den grafiska inloggningshanteraren visas istället när du startar datorn, kan du använda den nya &kde;-miljön även om den inte anges som ett alternativ. De flesta inloggningshanterare, inklusive &kdm;, har ett alternativ att använda en <quote
>Egen session</quote
> när du loggar in. Med det alternativet laddas dina sessionsinställningar från filen <filename
>.xsession</filename
> i din hemkatalog. Om du redan har ändrat filen som beskrivs ovan, ska alternativet starta den nya &kde;-installationen. </para>

<para
>Om det inte gör det, finns det något annat som du kan prova som normalt ska fungera: Tryck på <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>F2</keycap
></keycombo
>, så visas en textterminal. Logga in som den särskilda användaren och skriv: </para>

<screen
><command
>startx</command
> <option
>--</option
> <option
>:1</option
>
</screen>

<tip>
<para
>Du kan köra &kde; från källkod och det gamla &kde; samtidigt. Logga in som din vanliga användare, och starta det stabila &kde;-skrivbordet. Tryck på <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>F2</keycap
></keycombo
> (eller <keycap
>F1</keycap
>, <keycap
>F3</keycap
>, etc.) så visas en textterminal. Logga in som den särskilda &kde; &subversion;-användaren och skriv:</para>

<screen
><command
>startx</command
> <option
>--</option
> <option
>:1</option
>
</screen>

<para
>Du kan gå tillbaka till &kde;-skrivbordet för din vanliga användare genom att trycka på snabbtangenten för skrivbordet som redan kör. Den är normalt <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>F7</keycap
></keycombo
>, men du kanske måste använda <keycap
>F6</keycap
> eller <keycap
>F8</keycap
> istället. För att returnera till &kde; kompilerat med &kdesvn-build;, ska du använda samma sekvens, utom med nästa funktionstangent. Om du till exempel behövde skriva <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>F7</keycap
></keycombo
> för att byta till det vanliga &kde;, skulle du behöva skriva <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>F8</keycap
></keycombo
> för att gå tillbaka till &kde; byggt med &kdesvn-build;.</para>
</tip>

</sect2>
</sect1>

</chapter>

<chapter id="features">
<title
>Skriptets funktioner</title>

<sect1 id="features-overview">
<title
>Översikt över funktioner</title>

<para
>Funktionerna i &kdesvn-build; omfattar: </para>

<itemizedlist>

<listitem
><para
>Stöder <link linkend="changing-verbosity"
>meddelandenivåer för utmatning</link
> som sträcker sig från att vara mycket tyst till en fullständig felsökningsnivå. </para
></listitem>

<listitem
><para
>&kdesvn-build; kan med hjälp av <ulink url="http://kdesvn-build.kde.org/"
>&kdesvn-build;s hemsida</ulink
> och &kde;:s FTP-server (FTP sedan &kdesvn-build; 1.4) tillåta snabb utcheckning av vissa moduler. Om modulen du checkar ut redan har paketerats på hemsidan, laddar &kdesvn-build; ner den versionen och förbereder den för användning på din dator. </para>

<para
>Det är snabbare för dig, och hjälper till att minska lasten på de anonyma &subversion;-servrarna.</para>
</listitem>

<listitem
><para
>En annan uppsnabbning tillhandahålls genom att starta byggprocessen för en modul så fort källkoden för den modulen har laddats ner (tillgänglig sedan version 1.6). </para
></listitem>

<listitem
><para
>Har utmärkt stöd för modulen <link linkend="using-qt-copy"
>qt-copy</link
>, inklusive valfritt införa felrättningar och optimeringsprogramfixar i modulen qt-copy. </para
></listitem>

<listitem
><para
>&kdesvn-build; har <link linkend="kdesvn-build-color"
>färglagd utmatning</link
>. </para
></listitem>

<listitem
><para
>&kdesvn-build; kräver inte att ett grafiskt gränssnitt är tillgängligt för att fungera. Du kan alltså bygga &kde; utan att behöva en alternativ grafisk miljö. </para
></listitem>

<listitem
><para
>Stöder inställning av standardalternativ för alla moduler (som kompileringsinställningarna eller konfigureringsalternativen). Sådana alternativ kan dessutom normalt ändras för specifika moduler.</para>

<para
>Dessutom lägger &kdesvn-build; till <link linkend="kdesvn-build-std-flags"
>standardflaggor</link
> där det är lämpligt, för att spara dig besvär och möjliga fel från att skriva in dem själv. </para
></listitem>

<listitem
><para
>&kdesvn-build; kan checka ut en särskilt <link linkend="using-branches"
>gren eller tagg</link
> av en modul. Du kan också försäkra dig om att en specifik <link linkend="conf-revision"
>revision</link
> av en modul checkas ut. </para
></listitem>

<listitem
><para
>&kdesvn-build; kan automatiskt ändra källkodskatalog för att checka ut från ett annat arkiv, gren eller tagg. Det sker automatiskt när du ändrar ett alternativ som ändrar vad arkivets webbadress är, men du måste använda väljaren <link linkend="cmdline-src-only"
>--src-only</link
> för att tala om för &kdesvn-build; att det är acceptabelt att utföra bytet. </para
></listitem>

<listitem
><para
>&kdesvn-build; kan <link linkend="partial-builds"
>checka ut delar av en modul</link
>, för de situationer där du bara behöver ett program från en stor modul. </para
></listitem>

<listitem
><para
>Den ursprungliga nerladdningen av vissa moduler kan accelereras av &kdesvn-build;, som automatiskt laddar ner en version av modulen från &kde;:s spegelplatser (om tillgänglig) och använder den för att skapa den ursprungliga utcheckningen. Det sparar tid och bandbredd för både din dator och &kde;:s servrar. </para
></listitem>

<listitem
><para
>För utvecklare: &kdesvn-build; kommer att <link linkend="ssh-agent-reminder"
>påminna dig</link
> om du använder svn+ssh:// men <application
>ssh-agent</application
> inte kör, eftersom det leder till upprepad begäran om lösenord från &ssh;. </para
></listitem>

<listitem
><para
>Kan <link linkend="email-reports"
>skicka e-postrapporter</link
> med fel till en användare. </para
></listitem>

<listitem
><para
>Kan <link linkend="deleting-build-dir"
>ta bort byggkatalogen</link
> för en modul efter den har installerats för att spara utrymme till bekostnad av framtida kompileringstid. </para
></listitem>

<listitem
><para
>Platserna för katalogerna som används av &kdesvn-build; kan ställas in (till och med per modul). </para
></listitem>

<listitem
><para
>Kan använda &sudo;, eller ett annat användarspecificerat kommando för att <link linkend="root-installation"
>installera moduler</link
> så att &kdesvn-build; inte behöver köras som systemadministratör. </para
></listitem>

<listitem
><para
>&kdesvn-build; kör normalt <link linkend="build-priority"
>med reducerad prioritet</link
> för att låta dig fortsätta använda datorn medan &kdesvn-build; arbetar. </para
></listitem>

<listitem
><para
>Har stöd för att använda &kde;:s &subversion; <link linkend="using-branches"
>taggar och grenar</link
>. </para
></listitem>

<listitem
><para
>&kdesvn-build; använder en uppsättning tekniker för att <link linkend="building-successfully"
>försöka garantera</link
> en lyckad byggprocess. </para
></listitem>

<listitem
><para
>Det finns stöd för att <link linkend="resuming"
>återuppta en byggprocess</link
> från en given modul. Du kan till och med <link linkend="ignoring-modules"
>ignorera vissa moduler</link
> tillfälligt för en given byggprocess. </para
></listitem>

<listitem
><para
>&kdesvn-build; kan snabbt utföra en <link linkend="partial-builds"
>partiell byggprocess</link
> för en modul direkt från kommandoraden, när du bara behöver uppdatera en del av en modul. </para
></listitem>

<listitem
><para
>&kdesvn-build; laddar automatiskt ner och skapar det nödvändiga biblioteket <filename class="directory"
>/admin</filename
> för en modul om den inte laddas ner från &subversion; första gången, av någon orsak. Det gäller bara för &kde; 3-moduler, eftersom /admin inte krävs för qt-copy eller &kde; 4-moduler. </para
></listitem>

<listitem
><para
>&kdesvn-build; visar <link linkend="build-progress"
>förloppet för byggprocessen</link
>när &cmake; används, och tar alltid tid på byggprocessen så att du i efterhand vet hur lång tid den tog. </para
></listitem>

<listitem
><para
>Försöker automatiskt bygga om moduler som använder en inkrementell byggprocess, vilken tenderar att misslyckas efter vissa typer av incheckningar. </para
></listitem>

<listitem
><para
>Levereras med en inbyggt rimlig uppsättning förvalda alternativ lämpligt för att bygga en grundläggande enanvändarinstallation av &kde; från det anonyma &subversion;-arkivet. </para
></listitem>

<listitem
><para
>Expanderar dina inställningsalternativ med tilde. Du kan till exempel ange: <programlisting
>qtdir ~/kdesvn/build/qt-copy</programlisting>
</para
></listitem>

<listitem
><para
>Ställer automatiskt in ett byggsystem med källkodskatalogen skild från byggkatalogen, för att hålla källkodskatalogen orörd. </para
></listitem>

<listitem
><para
>Du kan ange allmänna alternativ att använda för alla moduler som checkas ut, och du kan dessutom ange alternativ som ska användas för enskilda moduler. </para
></listitem>

<listitem
><para
>Eftersom autoverktygen ibland blir osynkroniserade med ändringar i källkodsträdet, kan du tvinga att en modul byggs om genom att skapa en fil som heter refresh-me i byggkatalogen för modulen i fråga, eller genom att köra &kdesvn-build; med väljaren <option
>--refresh-build</option
>. </para
></listitem>

<listitem
><para
>Du kan ange diverse miljövariabler som ska användas under byggprocessen, inklusive <envar
>KDEDIR</envar
>, <envar
>QTDIR</envar
>, <envar
>DO_NOT_COMPILE</envar
> och <envar
>CXXFLAGS</envar
>. </para
></listitem>

<listitem
><para
>Kommandologgning. Loggar dateras och numreras så att du alltid har en logg av en körning av skriptet. Dessutom skapas en symbolisk länk som heter latest, som alltid pekar på den senaste loggen i loggkatalogen. </para
></listitem>

<listitem
><para
>Om du använder en användarbyggd &kde; istället för en systembyggd (som du måste vara systemadministratör för att installera), kan du låta skriptet installera åt dig. Jag har inte granskat koden, och den använder anropet <function
>system()</function
> flitigt, så jag rekommenderar  för närvarande att inte köra den som systemadministratör. </para
></listitem>

<listitem
><para
>Du kan använda <link linkend="conf-make-install-prefix"
>make-install-prefix</link
> för att inleda kommandoraden <userinput
><command
>make</command
> <option
>install</option
></userinput
> med ett separat kommando, vilket är användbart för &sudo;. </para
></listitem>

<listitem
><para
>Du kan checka ut bara en delmängd av en &kde; &subversion;-modul. Du skulle till exempel kunna checka ut bara <application
>taglib</application
> från <application
>kdesupport</application
>, eller bara <application
>K3B</application
> från <application
>extragear/multimedia</application
>. Skriptet hämtar automatiskt in <application
>kde-common</application
> om det behövs för att få byggprocessen att fungera. </para
></listitem>

<listitem
><para
>Du kan <quote
>låtsas</quote
> att utföra åtgärden. Om du skickar med <option
>--pretend</option
> eller <option
>-p</option
> på kommandoraden, ger skriptet en mycket utförlig beskrivning av de kommandon som ska göras, utan att i själva verket utföra dem. </para
></listitem>

</itemizedlist>

</sect1>

<sect1 id="kdesvn-build-logging">
<title
>Byggloggning i &kdesvn-build;</title>

<sect2 id="logging-overview">
<title
>Översikt över loggning</title>

<para
>Loggning är en funktion i &kdesvn-build; varigenom utmatningen från varje kommando som &kdesvn-build; kör sparas i en fil för senare undersökning, om nödvändigt. Det görs eftersom det ofta är nödvändigt att ha utmatningen från programmen när ett byggfel uppstår, eftersom det finns så många orsaker att en byggprocess kan misslyckas från början.</para>

<sect3 id="log-directory-layout">
<title
>Loggningskatalogens layout</title>

<para
>Loggarna lagras alltid i loggkatalogen. Platsen för loggkatalogen styrs av alternativet <link linkend="conf-log-dir"
>log-dir</link
>, som normalt är <filename class="directory"
><symbol
>${source-dir}</symbol
>/log</filename
> (där  <symbol
>${source-dir}</symbol
> är värdet av alternativet <link linkend="conf-source-dir"
>source-dir</link
>. I resten av avsnittet kallas värdet <symbol
>${log-dir}</symbol
>).</para>

<para
>I <symbol
>${log-dir}</symbol
> finns en uppsättning kataloger, en för varje gång &kdesvn-build; kördes. Varje katalog namnges med datum och körnumret. Exempelvis, den andra gången &kdesvn-build; körs 26:e maj, 2004, skulle en katalog som heter <filename
>2004-05-26-02</filename
> skapas, där 2004-05-26 står för datumet och -02 är körnumret.</para>

<para
>För din bekvämlighet skapar &kdesvn-build; också en länk till loggarna för den senaste körningen, som heter <filename class="directory"
>latest</filename
>. Loggarna för den senaste körningen av &kdesvn-build; ska alltid finnas under <filename
><symbol
>${log-dir}</symbol
>/latest</filename
>. </para>

<para
>Varje katalog för en körning av &kdesvn-build; innehåller nu i sin tur en uppsättning kataloger, en för varje &kde;-modul som &kdesvn-build; försöker bygga. Dessutom finns en fil som heter <filename
>build-status</filename
> i katalogen, som låter dig avgöra vilka moduler som byggdes och vilka som misslyckades.</para>

<note
><para
>Om en modul själv har en delmodul (såsom extragear/multimedia, playground/utils eller KDE/kdelibs), finns i själva verket motsvarande struktur i loggkatalogen. Loggarna för KDE/kdelibs efter den senaste körningen av &kdesvn-build; finns till exempel i <filename class="directory"
><symbol
>${log-dir}</symbol
>/latest/KDE/kdelibs</filename
>, och inte i <filename class="directory"
><symbol
>${log-dir}</symbol
>/latest/kdelibs</filename
>. </para
></note>

<para
>Du hittar en uppsättning filer för varje åtgärd som &kdesvn-build; utför i varje modulloggkatalog. Om &kdesvn-build; uppdaterar en modul, kan du se filnamn såsom <filename
>svn-co.log</filename
> (för en utcheckning av en modul) eller <filename
>svn-up.log</filename
> (när en modul uppdateras som redan har checkats ut). Om kommandot <command
>configure</command
> kördes, kan du förvänta dig att se filen <filename
>configure.log</filename
> i katalogen.</para>

<para
>Om ett fel uppstod, bör du kunna se en förklaring av varför i en av filerna. För att hjälpa till att avgöra vilken fil som innehåller felet, skapar &kdesvn-build; en länk från filen med felet (såsom <filename
>build-1.log</filename
> till en fil som heter <filename
>error.log</filename
>).</para>

<para
>Slutresultatet av allt detta är att för att se varför en modul misslyckades byggas efter den senaste körningen av &kdesvn-build;, är filen du först ska titta i <filename
><symbol
>${log-dir}</symbol
>/latest/<replaceable
>modulnamn</replaceable
>/error.log</filename
>. </para>

<tip
><para
>Om filen <filename
>error.log</filename
> är tom (särskilt efter en installation), kanske det inte var något fel. Vissa verktyg som används av &kde;:s byggsystem rapporterar ibland av misstag ett fel när det inte fanns något.</para>

<para
>Dessutom kringgår några kommandon omdirigeringen av utmatning som &kdesvn-build; gör, och går förbi loggfilen under vissa omständigheter (normalt när den första utcheckningen från &subversion; sker), och felutmatningen finns inte i loggfilen i detta fall, utan istället i terminalen där &kdesvn-build; kördes</para>
</tip>

</sect3>
</sect2>
</sect1>

</chapter>

<chapter id="kdesvn-buildrc">
<title
>Anpassa &kdesvn-build;</title>

<sect1 id="kdesvn-buildrc-overview">
<title
>Översikt av &kdesvn-build; anpassning</title>

<para
>För att använda skriptet måste du ha en fil i din hemkatalog som heter <filename
>.kdesvn-buildrc</filename
>, som beskriver modulerna som du vill ladda ner och bygga. </para>

<para
>Den börjar med allmänna alternativ, angivna enligt följande: </para>

<programlisting
>global
<replaceable
>alternativ-namn alternativ-värde</replaceable>
<replaceable
>[...]</replaceable>
end global
</programlisting>

<para
>De följs därefter av en eller flera modulsektioner, angivna på följande sätt: </para>

<programlisting
>module <replaceable
>modul-namn</replaceable>
<replaceable
>alternativ-namn alternativ-värde</replaceable>
<replaceable
>[...]</replaceable>
end module
</programlisting>

<para
><replaceable
>modul-namn</replaceable
> måste vara en modul i &kde;:s &subversion;-arkiv (till exempel kdelibs eller kdebase). Vissa alternativ överskrider de allmänna alternativen, vissa lägger till i de allmänna alternativen och vissa allmänna alternativ kan helt enkelt inte överskridas. </para>

<para
>Följande är en alfabetisk lista med alternativ du kan använda. Klicka på alternativet för att ta reda på mer om det. Om något inte är dokumenterat, skicka gärna e-post till upphovsmännen med adressen som du hittar <link linkend="authors"
>ovan</link
>. </para>

<itemizedlist>
<listitem
><para
><link linkend="conf-async"
>async</link
>, för att uppdatera och bygga samtidigt.</para
></listitem>
<listitem
><para
><link linkend="conf-binpath"
>binpath</link
>, för att ställa in variabeln <envar
>PATH</envar
>.</para
></listitem>
<listitem
><para
><link linkend="conf-branch"
>branch</link
>, för att checka ut från en gren istället för /trunk.</para
></listitem>
<listitem
><para
><link linkend="conf-build-dir"
>build-dir</link
>, för att ange katalog att bygga i.</para
></listitem>
<listitem
><para
><link linkend="conf-checkout-only"
>checkout-only</link
>, för att bara checka ut delar av en modul.</para
></listitem>
<listitem
><para
><link linkend="conf-cmake-options"
>cmake-options</link
> för att ange vilka flaggor en modul ska ställas in med vid användning av &cmake;.</para
></listitem>
<listitem
><para
><link linkend="conf-colorful-output"
>colorful-output</link
> för att lägga till färg i skriptets utmatning.</para
></listitem>
<listitem
><para
><link linkend="conf-configure-flags"
>configure-flags</link
> för att ange vilka flaggor en modul ska ställas in med.</para
></listitem>
<listitem
><para
><link linkend="conf-cxxflags"
>cxxflags</link
> för att definiera variabeln <envar
>CXXFLAGS</envar
>.</para
></listitem>
<listitem
><para
><link linkend="conf-dest-dir"
>dest-dir</link
> för att ändra katalognamn för en modul.</para
></listitem>
<listitem
><para
><link linkend="conf-disable-agent-check"
>disable-agent-check</link
>, för att förhindra att &kdesvn-build; kontrollerar ssh-agentens status.</para
></listitem>
<listitem
><para
><link linkend="conf-do-not-compile"
>do-not-compile</link
>, för att markera kataloger så att de hoppas över av byggprocessen.</para
></listitem>
<listitem
><para
><link linkend="conf-install-after-build"
>install-after-build</link
>, för att undvika att installera efter byggprocessen.</para
></listitem>
<listitem
><para
><link linkend="conf-kdedir"
>kdedir</link
>, för att ange katalogen där &kde; ska installeras.</para
></listitem>
<listitem
><para
><link linkend="conf-kde-languages"
>kde-languages</link
>, för att ställa in översättningspaketen att ladda ner och installera.</para
></listitem>
<listitem
><para
><link linkend="conf-libpath"
>libpath</link
>, för att sätta variabeln <envar
>LD_LIBRARY_PATH</envar
>.</para
></listitem>
<listitem
><para
><link linkend="conf-make-install-prefix"
>make-install-prefix</link
>, för att köra ett hjälpprogram (som &sudo;) under <userinput
><command
>make</command
> <option
>install</option
></userinput
>.</para
></listitem>
<listitem
><para
><link linkend="conf-make-options"
>make-options</link
>, för att skicka väljare till byggprogrammet &make;.</para
></listitem>
<listitem
><para
><link linkend="conf-manual-build"
>manual-build</link
>, för att undvika att modulen byggs automatiskt.</para
></listitem>
<listitem
><para
><link linkend="conf-manual-update"
>manual-update</link
>, för att undvika att någonting görs automatiskt med modulen.</para
></listitem>
<listitem
><para
><link linkend="conf-module-base-path"
>module-base-path</link
>, för att ändra varifrån modulen laddas ner.(användbart för grenar och taggar).</para
></listitem>
<listitem
><para
><link linkend="conf-niceness"
>niceness</link
>, för att ändra processorprioriteten.</para
></listitem>
<listitem
><para
><link linkend="conf-no-rebuild-on-fail"
>no-rebuild-on-fail</link
>, för att undvika att köra &make; igen om det misslyckas.</para
></listitem>
<listitem
><para
><link linkend="conf-qtdir"
>qtdir</link
>, för att ange sökvägen till &Qt;.</para
></listitem>
<listitem
><para
><link linkend="conf-set-env"
>set-env</link
>, för att sätta en miljövariabel.</para
></listitem>
<listitem
><para
><link linkend="conf-source-dir"
>source-dir</link
>, för att ändra vart källkoden laddas ner.</para
></listitem>
<listitem
><para
><link linkend="conf-stop-on-failure"
>stop-on-failure</link
>, för att få .&kdesvn-build; att stoppa så fort ett allvarligt fel hittas.</para
></listitem>
<listitem
><para
><link linkend="conf-svn-server"
>svn-server</link
>, för att ändra servern som källkoden automatiskt laddas ner från.</para
></listitem>
</itemizedlist>

</sect1>
<sect1 id="conf-options-table">
<title
>Tabell av tillgängliga inställningsalternativ</title>

<para
>Här är en tabell över de olika alternativen, och några kommentarer om dem. Alla alternativ som överskrider det allmänna alternativet, överskrider också en kommandoradsväljare. </para>

<table id="option-table">
<title
>Alternativtabell</title>
<tgroup cols="3">

<thead>
<row>
<entry
>Alternativnamn</entry>
<entry
>Modul -&gt; Allmänt beteende</entry>
<entry
>Anmärkningar</entry>
</row>
</thead>

<tbody>

<row id="conf-apidox">
<entry
>apidox</entry>
<entry
>Överskrider allmän</entry>
<entry
><para
>Alternativet användes för att tillåta att KDE-modulens dokumentation av programmeringsgränssnitt byggdes. Det togs bort i &kdesvn-build; 1.6.3 eftersom det inte stöds i KDE 4. Dokumentation av programmeringsgränssnitt är tillgänglig på <ulink url="http://api.kde.org/"
>kde.org</ulink
>. Dessutom är det möjligt att bygga dokumentation av programmeringsgränssnittet i KDE 4 med ett skript som ingår i modulen kdesdk (i katalogen /scripts). Se <ulink url="http://techbase.kde.org/Development/Tools/apidox"
>KDE TechBase</ulink
> för ytterligare detaljinformation. Det är förstås fortfarande möjligt att bygga dokumentation av programmeringsgränssnittet för äldre moduler manuellt.</para>
</entry>
</row>

<row id="conf-apply-qt-patches">
<entry
>apply-qt-patches</entry>
<entry
>Överskrider allmän</entry>
<entry
>Alternativet togs bort i kdesvn-build 1.10 För att få samma effekt, se <xref linkend="using-qt-copy"/> och alternativet <link linkend="conf-repository"
>repository</link
>.</entry>
</row>

<row id="conf-async">
<entry
>async</entry>
<entry
>Kan inte överskridas</entry>
<entry
><para
>Alternativet aktiverar asynkront användningssätt, där uppdatering av källkoden och byggprocessen utförs i parallell, istället för att vänta på alla uppdateringar av källkoden innan byggprocessen startas. Alternativets förvalda värde är att aktivera asynkront användningssätt. För att inaktivera, ställ in alternativet till <replaceable
>false</replaceable
>.</para>
<para
>Alternativet är tillgängligt från och med utgåva 1.6.</para
></entry>
</row>

<row id="conf-binpath">
<entry
>binpath</entry>
<entry
>Överskrider allmän</entry>
<entry
><para
>Sätt alternativet för att använda miljövariabeln PATH under byggprocessen. Du kan inte överskrida alternativet i ett modulalternativ. Förvalt värde är $<envar
>PATH</envar
> som är inställd när skriptet startar. Miljövariabeln ska innehålla sökvägar till utvecklingsverktygen åtskilda med kolon. Sökvägarna <filename class="directory"
>$<envar
>KDEDIR</envar
>/bin</filename
> och <filename class="directory"
>$<envar
>QTDIR</envar
>/bin</filename
> läggs automatiskt till. Du kan använda tilde (~) för eventuella sökvägar du lägger till med det här alternativet.</para>
</entry>
</row>

<row id="conf-branch">
<entry
>branch</entry>
<entry
>Överskrider allmän</entry>
<entry
><para
>Ställ in alternativet för att checka ut från en gren av &kde; istället för standardvärdet <replaceable
>trunk</replaceable
> där utveckling av &kde; sker. För att till exempel checka ut grenen &kde; 4.4, skulle du ställa in alternativet till <replaceable
>4.4</replaceable
>.</para>
<para
>Om &kdesvn-build; misslyckas med att ladda ner en gren med väljaren, kan du behöva ange webbadressen att ladda ner från för hand med alternativet <link linkend="conf-module-base-path"
>module-base-path</link
> eller <link linkend="conf-override-url"
>override-url</link
>.</para>
<para
>Observera: Alternativet fungerar också med källmoduler som använder &git; istället för &subversion;.</para>
</entry>
</row>

<row id="conf-build-dir">
<entry
>build-dir</entry>
<entry
>Överskrider allmän</entry>
<entry
>Använd det här alternativet för att byta katalog som innehåller källkoden att bygga. Det finns tre olika sätt att använda det: <orderedlist
><listitem
><para
>Relativt till &kde;:s &subversion;-källkodskatalog (se <link linkend="conf-source-dir"
>alternativet source-dir</link
>). Det är förvalt, och väljes om du skriver in ett katalognamn som inte börjar med tilde (~) eller snedstreck (/).</para
><para
>Förvalt värde är <filename class="directory"
>build</filename
></para
></listitem
><listitem
><para
>Absolut sökväg. Om du anger en sökväg som börjar med /, används sökvägen direkt. Till exempel <filename class="directory"
>/tmp/kde-obj-dir/</filename
></para
></listitem
><listitem
><para
>Relativt till din hemkatalog. Om du anger en sökväg som börjar med ~, används sökvägen relativt till din hemkatalog, på motsvarande sätt som skalets expansion av tilde. Till exempel skulle <filename class="directory"
>~/builddir</filename
> ställa in byggkatalogen till <filename class="directory"
>/home/användarnamn/builddir</filename
></para
></listitem
> </orderedlist
>Alternativet kan, kanske något oväntat, ändras per modul. </entry>
</row>

<row id="conf-checkout-only">
<entry
>checkout-only</entry>
<entry
>Överskrider allmän</entry>
<entry
><para
>Sätt det här alternativet för att checka ut källkod från &subversion; del för del. Värdet av alternativet ska vara en lista med kataloger åtskilda med mellanslag att checka ut. Även om alternativet överskrider det allmänna alternativet, var medveten om att ange alternativet som ett allmänt alternativ inte är vettigt. </para>

<para
>Observera att inställningen inte har någon effekt för &git;-moduler på grund av sättet som källkodshanteringssystemet &git; fungerar.</para
></entry>
</row>

<row id="conf-cmake-options">
<entry
>cmake-options</entry>
<entry
>Lägger till i allmänna alternativ (utom för qt-copy)</entry>
<entry
><para
>Använd det här alternativet för att ange vilka flaggor som ska skickas till &cmake; när byggsystemet för modulen skapas. När det används som ett allmänt alternativ, används det för alla moduler som skriptet bygger. När det används som ett modulalternativ, läggs det till i slutet av de allmänna alternativen. Det låter dig ange gemensamma &cmake;-alternativ i den allmänna delen.</para>

<para
>Alternativet gäller inte för qt-copy (som inte använder &cmake;). Använd <link linkend="conf-configure-flags"
>configure-flags</link
> istället.</para>

<para
>Eftersom alternativen skickas direkt till kommandoraden för &cmake;, ska de anges som de skulle skrivits till &cmake;. Till exempel:</para>

<screen
>cmake-options -DCMAKE_BUILD_TYPE=RelWithDebInfo
</screen>

<para
>Eftersom det är krångligt, anstränger sig &kdesvn-build; för att så länge övriga alternativ är rätt inställda, ska du kunna lämna det här alternativet tomt. (Med andra ord, <emphasis
>nödvändiga</emphasis
> parametrar för &cmake; ställs in automatiskt åt dig.)</para
></entry>
</row>

<row id="conf-configure-flags">
<entry
>configure-flags</entry>
<entry
>Överskrider allmän</entry>
<entry
><para
>Använd det här alternativet för att ange vilka flaggor som ska skickas till ./configure när byggsystemet för modulen skapas. När det används som ett allmänt alternativ, används det för alla moduler som skriptet bygger. <emphasis
>Alternativet  fungerar bara för qt-copy.</emphasis
></para>

<para
>För att ändra konfigurationsinställningar för KDE 4-moduler, se <link linkend="conf-cmake-options"
>cmake-options</link
>. </para>
</entry>
</row>

<row id="conf-colorful-output">
<entry
>colorful-output</entry>
<entry
>Kan inte överskridas</entry>
<entry
>Ställ in alternativet till <replaceable
>false</replaceable
> för att inaktivera den färgglada utmatningen från &kdesvn-build;. Alternativet har standardvärdet <replaceable
>true</replaceable
>. Observera att &kdesvn-build; inte matar ut färgkoder till något annat än en terminal (såsom xterm, &konsole; eller den vanliga konsollen i &Linux;). </entry>
</row>

<row id="conf-cxxflags">
<entry
>cxxflags</entry>
<entry
>Lägger till i allmänna alternativ</entry>
<entry
><para
>Använd det här alternativet för att ange vilka flaggor som ska användas för att bygga modulen. Alternativet anges här istället för med <link linkend="conf-configure-flags"
>configure-flags</link
> eller <link linkend="conf-cmake-options"
>cmake-options</link
> eftersom alternativet också sätter miljövariabeln <envar
>CXXFLAGS</envar
> under byggprocessen.</para>

<para
>Observera att för &kde; 4 och alla andra moduler som använder &cmake;, är det nödvändigt att ställa in alternativet CMAKE_BUILD_TYPE option till "none" när modulen konfigureras. Det kan göras med alternativet <link linkend="conf-cmake-options"
>cmake-options</link
>.</para>
</entry>
</row>

<row id="conf-dest-dir">
<entry
>dest-dir</entry>
<entry
>Överskrider allmän</entry>
<entry
>Använd alternativet för att ändra namnet en modul får på disk. Om modulen till exempel är extragear/network, skulle du kunna ändra det till extragear-network med det här alternativet. Observera att även om detta ändrar modulens namn på disk, är det inte en god idé att låta kataloger eller katalogåtskiljare ingå i namnet, eftersom det kommer i konflikt med eventuella <link linkend="conf-build-dir"
>build-dir</link
> eller <link linkend="conf-source-dir"
>source-dir</link
> alternativ. </entry>
</row>

<row id="conf-disable-agent-check">
<entry
>disable-agent-check</entry>
<entry
>Kan inte överskridas</entry>
<entry
>Om du använder &ssh; för att ladda ner källkod från &subversion; (om du använder protokollet svn+ssh), försöker &kdesvn-build; normalt att försäkra sig om att när du använder ssh-agent, så hanterar det verkligen några &ssh;-identiteter. Det görs för att försöka förhindra att &ssh; frågar efter din lösenordsfras för varje modul. Du kan inaktivera kontrollen genom att sätta <option
>disable-agent-check</option
> till <replaceable
>true</replaceable
>. </entry>
</row>

<row id="conf-do-not-compile">
<entry
>do-not-compile</entry>
<entry
>Överskrider allmän</entry>
<entry
><para
>Använd alternativet för att välja en specifik uppsättning kataloger att inte bygga i en modul (istället för alla). Katalogerna att inte bygga ska skiljas åt med mellanslag.</para>

<para
>Observera att källkoden till programmen fortfarande laddas ner. Du kan använda direktivet <link linkend="conf-checkout-only"
>checkout-only</link
> för att välja kataloger som du vill checka ut.</para>

<para
>För att till exempel vänta med kompilering av &juk; och &kscd; i modulen kdemultimedia, ska du lägga till "do-not-compile juk kscd" i inställningarna för kdemultimedia.</para>
</entry>
</row>

<row id="conf-email-address">
<entry
>email-address</entry>
<entry
>Kan inte överskridas</entry>
<entry>
<para
>Ställ in alternativet till e-postadressen som &kdesvn-build; ska skicka från om det någonsin behöver skicka e-post. Du behöver inte bekymra dig om det om du inte använder någon funktion som skickar e-post (De är alla normalt inaktiverade). </para>

<para
>För närvarande behöver bara <link linkend="conf-email-on-compile-error"
>email-on-compile-error</link
> alternativet.</para>
</entry>
</row>

<row id="conf-email-on-compile-error">
<entry
>email-on-compile-error</entry>
<entry
>Kan inte överskridas</entry>
<entry>
<para
>Du kan ställa in alternativet till e-postadressen dit en rapport ska skickas när en modul misslyckas bygga. &kdesvn-build; väntar till alla moduler är klara och samlar alla resultat i rapporten. Rapporten skickas bara om en modul misslyckas bygga. </para>

<para
>Se alternativet <link linkend="conf-email-address"
>email-address</link
> för att ställa in adressen som &kdesvn-build; ska skicka från, eftersom förvalt värde oftast inte är vad du vill ha. </para>
</entry>
</row>

<row id="conf-inst-apps">
<entry
>inst-apps</entry>
<entry
>Överskrider allmän</entry>
<entry
>Väljaren togs bort i version 1.10 </entry>
</row>

<row id="conf-install-after-build">
<entry
>install-after-build</entry>
<entry
>Överskrider allmän</entry>
<entry
>Alternativet används för att installera paketet efter det har byggts med lyckat resultat. Alternativet är normalt aktiverat. Om du vill inaktivera det, måste du ställa in alternativet till 0 i <link linkend="configure-data"
>inställningsfilen</link
>. Du kan också använda kommandoradsväljaren <link linkend="cmdline-no-install"
><option
>--no-install</option
></link
>. </entry>
</row>

<row id="conf-kdedir">
<entry
>kdedir</entry>
<entry
>Överskrider allmän</entry>
<entry
>Det här alternativet anger katalogen som &kde; installeras i efter det har byggts. Förvalt värde är <filename class="directory"
>~/kde</filename
>. Om du ändrar det till en katalog som kräver åtkomst som systemadministratör, bör du också läsa om alternativet <link linkend="conf-make-install-prefix"
>make-install-prefix</link
>.</entry>
</row>

<row id="conf-kde-languages">
<entry
>kde-languages</entry>
<entry
>Kan inte överskridas</entry>
<entry
><para
>Alternativet låter dig välja att ladda ner och installera landsinställningspaket tillsammans med &kde;. Du kan göra det om du inte bor i Förenta Staterna och vill ha &kde; översatt till ditt modersmål.</para>

<para
>Ställ in alternativet till en lista av språk att installera separerade med mellanslag, för att använda det. Varje språk har en tillhörande språkkod, som du kan slå upp på följande sida: <ulink url="http://i18n.kde.org/teams/"
>http://i18n.kde.org/teams/</ulink
>. </para>

<para
>Det är helt riktigt att bara välja ett språk. Normalt laddas inga ner, vilket betyder att &kde; visas med amerikansk engelska.</para>

<para
>Exempelvis, för att välja att installera svenska, skulle du ställa in alternativet till något liknande: <userinput
><option
>kde-languages</option
> <replaceable
>sv</replaceable
></userinput
>. Du måste dock ändå använda Systeminställningar för att välja svenska språket.</para>
</entry>
</row>

<row id="conf-libpath">
<entry
>libpath</entry>
<entry
>Överskrider allmän</entry>
<entry
>Ange det här alternativet för att sätta miljövariabeln <envar
>LD_LIBRARY_PATH</envar
> under byggprocessen. Du kan inte överskrida inställningen med ett modulalternativ. Förvalt värde är tomt, men sökvägarna <filename class="directory"
>$<envar
>KDEDIR</envar
>/lib</filename
> och <filename class="directory"
>$<envar
>QTDIR</envar
>/lib</filename
> läggs automatiskt till. Du kan använda tilde (~) i alla sökvägar du lägger till med alternativet. </entry>
</row>

<row id="conf-log-dir">
<entry
>log-dir</entry>
<entry
>Överskrider allmän</entry>
<entry
>Använd det här alternativet för att ändra katalogen som används för att lagra loggfiler som skapas av skriptet. </entry>
</row>

<row id="conf-make-install-prefix">
<entry
>make-install-prefix</entry>
<entry
>Överskrider allmän</entry>
<entry
>Sätt den här variabeln till en lista åtskilda med mellanslag, som tolkas som ett kommando och dess väljare för att föregå kommandot <userinput
><command
>make</command
> <option
>install</option
></userinput
> som används för att installera moduler. Det är användbart för att till exempel installera paket med &sudo;, men var försiktig när du hanterar systemadministratörsrättigheter.</entry>
</row>

<row id="conf-make-options">
<entry
>make-options</entry>
<entry
>Överskrider allmän</entry>
<entry
>Ange den här variabeln för att skicka kommandoradsväljare till kommandot <command
>make</command
>. Det är användbart för program som <ulink url="http://distcc.samba.org/"
><application
>distcc</application
></ulink
> eller system med mer än en processorkärna. </entry>
</row>

<row id="conf-manual-build">
<entry
>manual-build</entry>
<entry
>Överskrider allmän</entry>
<entry
>Sätt alternativvärdet till <replaceable
>true</replaceable
> för att förhindra att byggprocessen försöker bygga modulen. Den hålls fortfarande uppdaterad vid uppdatering från &subversion;. Alternativet motsvarar exakt kommandoradsväljaren <link linkend="cmdline-no-build"
><option
>--no-build</option
></link
>. </entry>
</row>

<row id="conf-manual-update">
<entry
>manual-update</entry>
<entry
>Överskrider allmän</entry>
<entry
>Sätt alternativvärdet till <replaceable
>true</replaceable
> för att förhindra att byggprocessen försöker uppdatera (och som en följd, bygga eller installera) modulen. Om du anger alternativet för en modul, är det i stort sett samma som att kommentera bort den. </entry>
</row>

<row id="conf-module-base-path">
<entry
>module-base-path</entry>
<entry
>Överskrider allmän</entry>
<entry
><para
>Sätt det här alternativet för att överskrida &kdesvn-build;s förvalda katalogväg till modulen i fråga. Det kan till exempel användas för att hämta specifika grenar eller taggade versioner av bibliotek. <ulink url="http://websvn.kde.org/"
>&kde;:s källkodsvisning</ulink
> är ovärderlig som hjälp för att välja rätt sökväg.</para>

<para
>Observera att &kdesvn-build; konstruerar den slutliga sökvägen enligt följande mall: <filename class="directory"
><varname
>$svn-server</varname
>/home/kde/<varname
>$module-base-path</varname
></filename
>. </para>

<para
>Förvalt värde är antingen <filename class="directory"
>trunk/<varname
>$module</varname
></filename
> eller <filename class="directory"
>trunk/KDE/<varname
>$module</varname
></filename
>, beroende på modulnamnet.</para>

<tip
><para
>Använd alternativen <link linkend="conf-branch"
>branch</link
> eller <link linkend="conf-tag"
>tag</link
> istället så snart de är tillämpliga. </para
></tip>
</entry>
</row>

<row id="conf-niceness">
<entry
>niceness</entry>
<entry
>Kan inte överskridas</entry>
<entry
>Ställ in alternativet till ett tal mellan 20 och 0. Ju högre nummer, desto lägre prioritet ställer &kdesvn-build; in åt sig själv. Förvalt värde är 10. </entry>
</row>

<row id="conf-no-svn">
<entry
>no-svn</entry>
<entry
>Överskrider allmän</entry>
<entry
>Om alternativet är sant, uppdaterar inte &kdesvn-build; modulens källkod automatiskt. Det försöker i alla fall bygga modulen om det normalt ändå hade försökt göra det.</entry>
</row>

<row id="conf-no-rebuild-on-fail">
<entry
>no-rebuild-on-fail</entry>
<entry
>Överskrider allmän</entry>
<entry
>Väljaren togs bort i version 1.10, eftersom beteendet inte längre hjälper på grund av rättningar av det underliggande byggsystemet.</entry>
</row>

<row id="conf-override-url">
<entry
>override-url</entry>
<entry
>Överskrider allmän</entry>
<entry
>Om du anger det här alternativet, använder &kdesvn-build; dess värde som webbadress att skicka till &kdesvn-build; <emphasis
>helt oförändrad</emphasis
>. Du bör i allmänhet använda det om du vill ladda ner en specifik utgåva, men &kdesvn-build; inte kan räkna ut vad du menar genom att använda <link linkend="conf-branch"
>branch</link
>. </entry>
</row>

<row id="conf-prefix">
<entry
>prefix</entry>
<entry
>Överskrider allmän</entry>
<entry
>Alternativet styr var modulen ska installeras (normalt används inställningen <option
><link linkend="conf-kdedir"
>kdedir</link
></option
>). </entry>
</row>

<row id="conf-purge-old-logs">
<entry
>purge-old-logs</entry>
<entry
>Överskrider allmän</entry>
<entry
><para
>Alternativet bestämmer om gamla loggkataloger automatiskt tas bort eller inte. Standardvärdet är <replaceable
>false</replaceable
>.</para>

<para
>Även om du inte har ställt in alternativet till true, kan du tömma de gamla loggkatalogerna genom att köra:</para>

<screen
>kdesvn-build --no-src --no-build --purge-old-logs kdelibs</screen>

<para
>Du kan använda vilket modulnamn som helst på kommandoraden ovan, det måste inte vara kdelibs.</para>
</entry>
</row>

<row id="conf-qtdir">
<entry
>qtdir</entry>
<entry
>Överskrider allmän</entry>
<entry
>Sätt alternativet för att använda miljövariabeln <envar
>QTDIR</envar
> under byggprocessen. Du kan inte överskrida alternativet i ett modulalternativ. Förvalt värde är <filename class="directory"
><symbol
>$(source-dir)</symbol
>/build/qt-copy</filename
>, som använder modulen qt-copy som ingår i &kde;:s källkodsarkiv. Du kan använda tilde (~) för att representera din hemkatalog. </entry>
</row>

<row id="conf-remove-after-install">
<entry
>remove-after-install</entry>
<entry
>Överskrider allmän</entry>
<entry
><para
>Om du har ont om hårddiskutrymme kan du vilja använda det här alternativet för att automatiskt ta bort byggkatalogen (eller både källkatalogen och byggkatalogen för engångsinstallationer) efter modulen har installerats med lyckat resultat. </para>
<para
>Möjliga värden för alternativet är: <itemizedlist>
<listitem
><para
>none - Ta inte bort någonting (det är normalvärdet).</para
></listitem>
<listitem
><para
>builddir - Ta bort byggkatalogen men inte källkoden.</para
></listitem>
<listitem
><para
>all - Ta både bort källkoden och byggkatalogen.</para
></listitem>
</itemizedlist>
</para>

<para
>Observera att användning av alternativet kan ha en markant effekt både på användning av bandbredd (om du använder <replaceable
>all</replaceable
>) och tiden det tar att kompilera &kde;, eftersom &kdesvn-build; inte kommer att kunna utföra inkrementella byggprocesser.</para>
</entry>
</row>

<row id="conf-repository">
<entry
>repository</entry>
<entry
>Överskrider allmän</entry>
<entry
><para
>Alternativet introducerades i version 1.10, och används för att ange &git;-arkivet för att ladda ner modulens källkod. &Qt; (och därför qt-copy) behöver alternativet, samt diverse &kde;-moduler som håller på att konverteras att använda &git;.</para
></entry>
</row>

<row id="conf-revision">
<entry
>revision</entry>
<entry
>Överskrider allmän</entry>
<entry
>Om alternativet ställs in till ett annat värde än 0 (noll), tvingar &kdesvn-build; uppdateringen med &subversion; att ge modulen exakt den version som anges, även om alternativ som <link linkend="conf-branch"
>branch</link
> gäller. Om modulen redan har angiven version, kommer den inte att uppdateras ytterligare om inte alternativet ändras eller tas bort från konfigurationen.</entry>
</row>

<row id="conf-run-tests">
<entry
>run-tests</entry>
<entry
>Överskrider allmän</entry>
<entry
>Om satt till <replaceable
>true</replaceable
>, byggs modulen med stöd för att köra sin testsvit, och testsviten körs som en del av byggprocessen. &kdesvn-build; visar en enkel rapport med testresultatet. Det är användbar för utvecklare eller de som vill försäkra sig om att systemet är riktigt inställt.</entry>
</row>

<row id="conf-set-env">
<entry
>set-env</entry>
<entry
>Överskrider allmän</entry>
<entry
><para
>Det här alternativet accepterar en uppsättning värden åtskilda av mellanslag, där det första värdet är miljövariabeln att sätta, och följande värden är vad du vill sätta variabeln till. För att till exempel sätta variabeln <envar
>RONALD</envar
> till McDonald, skulle du skriva följande kommando under lämplig sektion:</para>
<screen
><command
>set-env</command
> <envar
>RONALD</envar
> <userinput
>McDonald</userinput
></screen>
<para
>Alternativet är särskilt på det sätt att det kan upprepas utan att överskrida tidigare inställningar av set-env i samma del av <link linkend="configure-data"
>inställningsfilen</link
>. På så sätt kan du ställa in mer än en miljövariabel per modul (eller allmänt).</para>
</entry>
</row>

<row id="conf-source-dir">
<entry
>source-dir</entry>
<entry
>Överskrider allmän</entry>
<entry
>Det här alternativet används för att ange katalogen på datorn där &kde;:s &subversion;-källkod ska lagras. Om du inte anger värdet, är förvalt värde <filename class="directory"
>~/kdesvn</filename
>. Om du anger värdet, använd en absolut sökväg. </entry>
</row>

<row id="conf-stop-on-failure">
<entry
>stop-on-failure</entry>
<entry
>Överskrider allmän</entry>
<entry
>Ställ in det här alternativvärdet till <replaceable
>true</replaceable
> för att göra att skriptet slutar köra efter ett fel uppstår i bygg- eller installationsprocessen. Alternativet är normalt av. </entry>
</row>

<row id="conf-svn-server">
<entry
>svn-server</entry>
<entry
>Överskrider allmän</entry>
<entry
>Det här alternativet används för att ange servern som används vid utcheckning från &subversion;. Förval är det anonyma &subversion;-arkivet, <emphasis
>svn://anonsvn.kde.org/</emphasis
></entry>
</row>

<row id="conf-tag">
<entry
>tag</entry>
<entry
>Överskrider allmän</entry>
<entry
><para
>Använd väljaren för att ladda ner en specifik utgåva av en modul.</para>
<para
><emphasis
>Observera:</emphasis
> Chansen är mycket stor att du <emphasis
>inte vill</emphasis
> använda alternativet. Utgåvor av &kde; är tillgängliga som komprimerade tar-arkiv från <ulink url="ftp://ftp.kde.org/"
>&kde;:s FTP-plats</ulink
> eller en av dess <ulink url="http://download.kde.org/download.php"
>spegelplatser</ulink
>.</para>
</entry>
</row>

<row id="conf-use-cmake">
<entry
>use-cmake</entry>
<entry
>Överskrider allmän</entry>
<entry
>Väljaren togs bort i &kdesvn-build; 1.4, eftersom alla &kde; 4-moduler kräver &cmake;, och användning av &cmake; inte tillåts för några andra moduler. </entry>
</row>

<row id="conf-use-idle-io-priority">
<entry
>use-idle-io-priority</entry>
<entry
>Kan inte överskridas</entry>
<entry
>Det här alternativet, tillagt i &kdesvn-build; 1.12, gör att en lägre prioritet används för disk och annan användning av in- och utmatning, vilket kan förbättra svarsbenägenheten hos resten av systemet signifikant, till kostnad av något längre körtider för &kdesvn-build;. Standardvärdet är att det är inaktiverat. För att aktivera lägre diskprioritet, ställ in det till <replaceable
>true</replaceable
>. </entry>
</row>

<row id="conf-use-qt-builddir-hack">
<entry
>use-qt-builddir-hack</entry>
<entry
>Överskrider allmän</entry>
<entry
>Det här alternativet har tagits bort på grund av förbättringar i &Qt;:s byggsystem. </entry>
</row>

<row id="conf-use-stable-kde">
<entry
>use-stable-kde</entry>
<entry
>Kan inte överskridas</entry>
<entry
><para
>Alternativet togs bort i version 1.10, vilken begränsar stöd till KDE 4, och tar bort effekten av det här alternativet. </para>
</entry>
</row>

</tbody>

</tgroup>
</table>

</sect1>
</chapter>

<chapter id="cmdline">
<title
>Kommandoradsväljare och miljövariabler</title>

<sect1 id="supported-envvars">
<title
>Miljövariabler som stöds</title>

<para
>&kdesvn-build; använder inte miljövariabler. Om du behöver sätta miljövariabler för bygg- eller installationsprocessen, se alternativet <link linkend="conf-set-env"
>set.-env</link
>. </para>

</sect1>

<sect1 id="supported-cmdline-params">
<title
>Kommandoradsväljare som stöds</title>

<para
>Skriptet accepterar följande kommandoradsväljare: </para>

<variablelist>

<varlistentry id="cmdline-async">
<term
><parameter
>--async</parameter
></term>
<listitem
><para
>Aktiverar <link linkend="conf-async"
>asynkront användningssätt</link
> som kan utföra uppdateringar av källkoden och bygga moduler samtidigt. Det är förvalt värde, och väljaren behöver bara anges om du har inaktiverat det i inställningarna. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-help">
<term
><parameter
>--help</parameter
></term>
<listitem
><para
>Visa bara enkel hjälp om skriptet. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-version">
<term
><parameter
>--version</parameter
></term>
<listitem
><para
>Visa programmets version. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-author">
<term
><parameter
>--author</parameter
></term>
<listitem
><para
>Visa upphovsmannens kontaktinformation. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-color">
<term
><parameter
>--color</parameter
></term>
<listitem
><para
>Aktivera färglagd utmatning. (Det är förval för interaktiva terminaler.) </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-nice">
<term
><parameter
>--nice=<replaceable
>värde</replaceable
></parameter
></term>
<listitem
><para
>Värdet justerar datorns processorprioritet som begärs av &kdesvn-build;, och ska vara i intervallet 0-20. 0 är högst prioritet (eftersom det är minst <quote
>snällt</quote
>), 20 är lägst prioritet. &kdesvn-build; har förvalt värde 10. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-no-async">
<term
><parameter
>--no-async</parameter
></term>
<listitem
><para
>Inaktiverar <link linkend="conf-async"
>asynkront användningssätt</link
> för uppdateringar. Istället utförs hela uppdateringen innan byggningen startas. Väljaren slöar ner totalprocessen, men om du råkar ut för IPC-fel medan du kör &kdesvn-build;, prova den här väljaren, och skicka in en <ulink url="http://bugs.kde.org/"
>felrapport</ulink
>. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-no-color">
<term
><parameter
>--no-color</parameter
></term>
<listitem
><para
>Inaktivera färglagd utmatning. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-pretend">
<term
><parameter
>--pretend</parameter
> (eller <parameter
>-p</parameter
>)</term>
<listitem
><para
>&kdesvn-build; kör igenom uppdaterings- och byggprocessen, men istället för att utföra några åtgärder för att uppdatera eller bygga, skriver ut vad skriptet skulle ha gjort (t.ex. vilka kommandon att köra, steg att utföra, etc.).</para>

<para
>Observera: Enkla läskommandon (som att läsa information) kan fortfarande utföras, för att göra utmatningen mer relevant (som att simulera om källkod skulle checkas ut eller uppdateras på ett riktigt sätt). </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-quiet">
<term
><parameter
>--quiet</parameter
> (eller <parameter
>-q</parameter
>)</term>
<listitem
><para
>Var inte så högljudd med utmatningen. Med den här väljaren matas bara det viktigaste ut. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-really-quiet">
<term
><parameter
>--really-quiet</parameter
></term>
<listitem
><para
>Mata bara ut varningar och fel. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-verbose">
<term
><parameter
>--verbose</parameter
> (eller <parameter
>-v</parameter
>)</term>
<listitem
><para
>Beskriv i detalj vad som händer, och vad &kdesvn-build; gör. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-src-only">
<term
><parameter
>--src-only</parameter
> (eller <parameter
>--svn-only</parameter
>)</term>
<listitem
><para
>Utför bara uppdatering av källkod (<parameter
>--svn-only</parameter
> stöds bara för kompatibilitet med äldre skript). </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-build-only">
<term
><parameter
>--build-only</parameter
></term>
<listitem
><para
>Utför bara byggprocessen. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-ignore-modules">
<term
><parameter
>--ignore-modules</parameter
></term>
<listitem
><para
>Inkludera inte moduler som skickas på resten av kommandoraden i uppdaterings- och byggprocessen (det är användbart om du vill bygga de flesta modulerna i <link linkend="configure-data"
>inställningsfilen</link
> och bara hoppa över några få). </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-no-src">
<term
><parameter
>--no-src</parameter
> (eller <parameter
>--no-svn</parameter
>)</term>
<listitem
><para
>Hoppa över att kontakta &subversion;-servern (väljaren <parameter
>--svn-only</parameter
> stöds bara för kompatibilitet med äldre versioner av skriptet). </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-no-build">
<term
><parameter
>--no-build</parameter
></term>
<listitem
><para
>Hoppa över byggprocessen. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-no-install">
<term
><parameter
>--no-install</parameter
></term>
<listitem
><para
>Installera inte automatiskt paket efter de har byggts. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-debug">
<term
><parameter
>--debug</parameter
></term>
<listitem
><para
>Aktiverar felsökningsläge för skriptet. För närvarande betyder det att all utmatning skickas till standardutmatningen förutom att loggas i loggkatalogen som vanligt. Dessutom är många funktioner mycket utförligare om vad de gör i felsökningsläge. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-no-rebuild-on-fail">
<term
><parameter
>--no-rebuild-on-fail</parameter
></term>
<listitem
><para
>Försök inte att bygga om moduler som har misslyckats att byggas från början. &kdesvn-build; försöker aldrig göra detta med en modul där ett försök att bygga från början redan har gjorts. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-refresh-build">
<term
><parameter
>--refresh-build</parameter
></term>
<listitem
><para
>Skapa om byggsystemet och bygg från grunden. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-reconfigure">
<term
><parameter
>--reconfigure</parameter
></term>
<listitem
><para
>Kör <command
>cmake</command
> (för &kde;-moduler) eller <command
>configure</command
> (för &Qt;) igen, utan att rensa byggkatalogen. Du ska normalt inte behöva ange detta, eftersom &kdesvn-build; detekterar när relevanta alternativ ändras och automatiskt kör om bygginställningen. Väljaren är implicit om <parameter
><link linkend="cmdline-refresh-build"
>--refresh-build</link
></parameter
> används. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-resume-from">
<term
><parameter
>--resume-from</parameter
></term>
<listitem
><para
>Alternativet är användbart för att återuppta byggprocessen från den angivna modulen, som ska vara nästa alternativ på kommandoraden. Alternativet inbegriper <link linkend="cmdline-no-src"
><parameter
>--no-src</parameter
></link
>. Du ska inte ange andra modulnamn på kommandoraden. </para>
<para
>Se också: <xref linkend="cmdline-resume-after"/> och <xref linkend="resuming-failed"/>. Du bör föredra att använda den här kommandoradsväljaren om du har rättat byggfelet och vill att &kdesvn-build; ska göra färdigt byggprocessen.</para
></listitem>
</varlistentry>

<varlistentry id="cmdline-resume-after">
<term
><parameter
>--resume-after</parameter
></term>
<listitem
><para
>Alternativet är användbart för att återuppta byggprocessen efter den angivna modulen, som ska vara nästa alternativ på kommandoraden. Alternativet inbegriper <link linkend="cmdline-no-src"
><option
>--no-src</option
></link
>. Du ska inte ange andra modulnamn på kommandoraden. </para>
<para
>Se också: <xref linkend="cmdline-resume-from"/> och <xref linkend="resuming-failed"/>.  Du bör föredra att använda den här kommandoradsväljaren om du har rättat byggfelet och har också byggt och installerat modulen själv, och vill att &kdesvn-build; ska starta igen med nästa modul.</para
></listitem>
</varlistentry>

<varlistentry id="cmdline-rc-file">
<term
><parameter
>--rc-file</parameter
></term>
<listitem
><para
>Det tolkar nästa kommandoradsväljare som filen att läsa konfigurationsinställningarna från. Förvalt värde för väljaren är <filename
>kdesvn-buildrc</filename
> (kontrolleras i arbetskatalogen) om den finns, eller annars <filename
>~/.kdesvn-buildrc</filename
>. Se också <xref linkend="kdesvn-buildrc"/>. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-run">
<term
><parameter
>--run</parameter
></term>
<listitem
><para
>Alternativet tolkar nästa parameter på kommandoraden som ett program att köra, och &kdesvn-build; slutar då att läsa inställningsfilen, uppdaterar miljön som vanligt, och kör därefter angivet program.</para>

<para
>Det fungerar dock inte för att starta ett skal med miljön från &kdesvn-build; i de flesta fall, eftersom interaktiva skal typiskt återställer åtminstone vissa av miljövariablerna (som <envar
>PATH</envar
> och <envar
>KDEDIRS</envar
>) under startsekvensen. </para>

<tip
><para
>Om du vill se miljön som används av &kdesvn-build; kan du köra kommandot <command
>printenv</command
>:</para>
<informalexample>
<screen
>$ <command
>kdesvn-build</command
> <parameter
>--run</parameter
> <parameter
>printenv</parameter>
KDE_SESSION_VERSION=4
SDL_AUDIODRIVER=alsa
LANGUAGE=
XCURSOR_THEME=Oxygen_Blue
LESS=-R -M --shift 5
QMAIL_CONTROLDIR=/var/qmail/control
... etc.
</screen>
</informalexample
></tip>
</listitem>
</varlistentry>

<varlistentry id="cmdline-prefix">
<term
><parameter
>--prefix=&lt;/sökväg/till/kde&gt;</parameter
></term>
<listitem
><para
>Det här låter dig ändra katalogen som &kde; installeras i från kommandoraden. Alternativet inbegriper <link linkend="cmdline-reconfigure"
><parameter
>--reconfigure</parameter
></link
>, men det kan ändå krävas att <link linkend="cmdline-refresh-build"
><parameter
>--refresh-build</parameter
></link
> används. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-revision">
<term
><parameter
>--revision</parameter
></term>
<listitem
><para
>Väljaren gör att &kdesvn-build; checkar ut en särskilt numrerad version av varje &subversion;-modul, och överskrider eventuella alternativ som <link linkend="conf-branch"
>branch</link
>, <link linkend="conf-tag"
>tag</link
> eller <link linkend="conf-revision"
>revision</link
> redan är angivna för modulerna.</para>

<para
>Väljaren är troligen inte en god idé, och stöds bara för kompatibilitet med äldre skript. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-build-system-only">
<term
><parameter
>--build-system-only</parameter
></term>
<listitem
><para
>Väljaren gör att &kdesvn-build; avbryter bygga en modul precis innan kommandot <command
>make</command
> skulle ha körts. Det stöds bara för kompatibilitet med äldre versioner, effekten är inte till hjälp för det nuvarande byggsystemet för &kde;. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-install"
><term
><parameter
>--install</parameter
></term>
<listitem
><para
>Om detta är den enda kommandoradsväljaren, försöker det installera alla moduler som finns i <filename
>log/latest/build-status</filename
>. Om kommandoradsväljare anges efter <parameter
>--install</parameter
>, antas de alla vara moduler att installera (även om de inte byggdes med lyckat resultat vid den senaste körningen). </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-purge-old-logs"
><term
><parameter
>--purge-old-logs</parameter
></term>
<listitem
><para
>Alternativet gör att &kdesvn-build; tar bort loggkataloger som inte behövs efter byggprocessen, för att spara diskutrymme. Alla loggkataloger som inte behövs för att uppfylla en länk från <filename
>log/latest</filename
> kommer att tas bort. Det är normalt inaktiverat. För att aktivera väljaren i normalfall, se alternativet <link linkend="conf-purge-old-logs"
>purge-old-logs</link
>. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-no-snapshots"
><term
><parameter
>--no-snapshots</parameter
></term>
<listitem
><para
>Att ange den här väljaren gör att &kdesvn-build; alltid föredrar en ursprunglig utcheckning av en modul från &subversion;, istället för att använda en sparad version av modulen i &subversion;. </para>

<note
><para
>Sparade versioner av modulen <emphasis
>är</emphasis
> riktiga utcheckningar från &subversion;. Du ska inte behöva ange den här väljaren, den är bara till hjälp vid felsökning.</para
></note>
</listitem>
</varlistentry>

<varlistentry id="cmdline-global-option">
<term
><parameter
>--&lt;option-name&gt;=</parameter
></term>
<listitem
><para
>Du kan använda alternativet för att överskrida ett alternativ i <link linkend="configure-data"
>inställningsfilen</link
> för alla moduler. För att till exempel överskrida alternativet <link linkend="conf-log-dir"
>log-dir</link
>, skulle du skriva <userinput
><parameter
>--log-dir=<filename class="directory"
><replaceable
>/sökväg/till/katalog</replaceable
></filename
></parameter
></userinput
>. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-module-option">
<term
><parameter
>--&lt;modulnamn&gt;,&lt;alternativnamn&gt;=</parameter
></term>
<listitem
><para
>Du kan använda alternativet för att överskrida ett alternativ i <link linkend="configure-data"
>inställningsfilen</link
> för en specifik modul. </para
></listitem>
</varlistentry>

</variablelist>

<para
>Alla övriga kommandoradsväljare antas vara moduler att uppdatera och bygga. Blanda helst inte ihop bygga och installera. </para>

</sect1>

</chapter>

<chapter id="using-kdesvn-build">
<title
>Använda &kdesvn-build;</title>

<sect1 id="using-kdesvn-build-preface">
<title
>Förord</title>

<para
>Efter du har gått igenom <xref linkend="getting-started"/>, är det normalt så enkelt att använda &kdesvn-build; som att skriva följande från en terminal:</para>

<screen
><prompt
>&percnt;</prompt
> <command
><userinput
>kdesvn-build</userinput
></command
>
</screen>

<para
>&kdesvn-build; laddar därefter ner &kde;:s källkod, försöker att konfigurera och bygga den, och därefter installera den.</para>

<para
>Läs vidare för att upptäcka hur &kdesvn-build; gör detta, och vad du mer kan göra med verktyget.</para>

</sect1>

<sect1 id="basic-features">
<title
>Grundläggande funktioner i &kdesvn-build;</title>

<sect2 id="using-qt-copy">
<title
>stöd för qt-copy</title>
<para
>&kdesvn-build; stöder att bygga &Qt;-verktygslådan som används an &kde;-programvara som en bekvämlighet för användaren. Stödet hanteras av en särskild modul som kallas qt-copy.</para>

<note
><para
>&Qt; utvecklas i ett separat arkiv från &kde;-programvara, lokaliserat på <ulink url="http://qt.gitorious.org/qt"
>http://qt.gitorious.org/qt</ulink
>.</para
></note>

<para
>För att bygga &Qt; måste du försäkra dig om att inställningen <link linkend="conf-qtdir"
>qtdir</link
> pekar på katalogen där du vill att &Qt; ska installeras, som beskrivs i <xref linkend="configure-data"/>.</para>

<para
>Därefter måste du försäkra dig om att modulen qt-copy läggs till i <filename
>kdesvn-buildrc</filename
>, innan några andra moduler i filen. Om du använder exemplet på inställningsfil, kan du helt enkelt ta bort kommentarerna från den befintliga posten för modulen qt-copy.</para>

<para
>Nu bör du kontrollera att alternativet <link linkend="conf-repository"
>repository</link
> och alternativen <link linkend="conf-branch"
>branch</link
> är lämpligt inställda:</para>

<orderedlist>
<listitem
><para
>Det första alternativet är att bygga med en grupp rekommenderade programfixar med felrättningar och optimeringar (det bestämdes förut av alternativet som kallades apply-patches). Samlingen utvecklas i ett separat arkiv på <ulink url="http://gitorious.org/+kde-developers/qt/kde-qt"
>http://gitorious.org/+kde-developers/qt/kde-qt</ulink
>. Om du vill bygga med programfixarna (de flesta &kde;-utvecklare gör det), måste du ställa in arkivalternativet till <userinput
>git://gitorious.org/+kde-developers/qt/kde-qt.git</userinput
>.</para>
</listitem>

<listitem
><para
>Annars, för att bygga standard-&Qt;, ställ in arkivalternativet till <userinput
>git://gitorious.org/qt/qt.git</userinput
>.</para
></listitem>
</orderedlist>

<para
>I båda fall ska alternativet branch ställas in till <userinput
>master</userinput
> (om du inte vill bygga en annan gren).</para>

<note
><para
>I vissa fall kan inte den underliggande programvaran för källkodshantering fungera när den körs från &kdesvn-build;, men fungerar ändå bra när den körs från kommandoraden. Felet håller fortfarande på att undersökas.</para
></note>

</sect2>

<sect2 id="kdesvn-build-std-flags">
<title
>Standardflaggor tillagda av &kdesvn-build;</title>
<para
>För att spara tid, lägger &kdesvn-build; till några standardsökvägar i miljön åt dig: </para>

<itemizedlist>
<listitem
><para
>Sökvägen till &kde;- och &Qt;-biblioteken läggs till i variabeln <envar
>LD_LIBRARY_PATH</envar
> automatiskt. Det betyder att du inte behöver redigera &libpath; för att inkludera dem. </para
></listitem>

<listitem
><para
>Sökvägen till program för utvecklingsstöd i &kde; och &Qt; läggs till i variabeln <envar
>PATH</envar
> automatiskt. Det betyder att du inte behöver redigera &binpath; för att inkludera dem. </para
></listitem>

<listitem
><para
>Sökvägen till <application
>pkg-config</application
> som tillhandahålls av &kde; läggs till i variabeln <envar
>PKG_CONFIG_PATH</envar
> automatiskt. Det betyder att du inte behöver använda &set-env; för att lägga till dem. </para
></listitem>

<listitem
><para
>Inställningen av &kdedir; skickas automatiskt vidare till miljövariabeln <envar
>KDEDIR</envar
> under byggprocessen.  (<envar
>KDEDIRS</envar
> påverkas inte). </para
></listitem>

<listitem
><para
>Inställningen av &qtdir; skickas automatiskt vidare till miljövariabeln <envar
>QTDIR</envar
> under byggprocessen. </para
></listitem>

</itemizedlist>

</sect2>

<sect2 id="build-priority">
<title
>Ändra byggprioritet i &kdesvn-build;</title>
<para
>Program kan köra med olika prioritetsnivåer på operativsystem, inklusive &Linux; och &BSD;. Det tillåter systemet att tilldela tid för de olika programmen enligt hur viktiga de är. </para>

<para
>&kdesvn-build; tilldelar normalt sig själv låg prioritet så att resten av programmen på systemet är opåverkade och kan köra normalt. Genom att använda den här tekniken, använder &kdesvn-build; extra processorkraft när den är tillgänglig. </para>

<para
>&kdesvn-build; behåller fortfarande prioritetsnivån nog hög så att det kör innan rutinmässiga bakgrundsprocesser och innan program som donerar processorkraft såsom <ulink url="http://setiathome.ssl.berkeley.edu/"
>Seti@Home</ulink
>. </para>

<para
>För att ändra &kdesvn-build; så att det använder en högre (eller lägre) prioritetsnivå permanent, måste du justera inställningen av &niceness; i <link linkend="configure-data"
>inställningsfilen</link
>. Alternativet &niceness; styr hur <quote
>snällt</quote
> &kdesvn-build; är mot andra program. Med andra ord, att ha en högre &niceness; ger &kdesvn-build; lägre prioritet. Så för att ge &kdesvn-build; en högre prioritet, reducera &niceness; (och tvärtom). &niceness; kan gå från 0 (inte alls snällt, högsta prioritet) till 20 (supersnällt, lägsta prioritet).</para>

<para
>Du kan också tillfälligt ändra prioritet hos &kdesvn-build; genom att använda <link linkend="cmdline"
>kommandoradsväljaren</link
> &cmd-nice;. Väljarens värde är exakt samma som för &niceness;.</para>

<note
><para
>Det är möjligt för vissa program som körs av systemadministratören att ha ett negativt snällhetsvärde, vilket motsvarar ännu högre prioritet för sådana program. Att ange en negativ &niceness; (eller till och med 0) för &kdesvn-build; är inte en god idé, eftersom det inte förbättrar körtiden nämnvärt, men gör att datorn verkar mycket slö om du ändå behöver använda den. </para
></note>

<informalexample>
<para
>För att köra &kdesvn-build; med snällhetsgrad 15 (en lägre prioritet än normal) skriv:</para>

<screen
><prompt
>&percnt;</prompt
> <userinput
><command
>kdesvn-build</command
> <option
>--nice=<replaceable
>15</replaceable
></option
></userinput
>
</screen>

<para
>Eller kan du redigera <link linkend="configure-data"
>inställningsfilen</link
> för att göra ändringen permanent:</para>

<screen
>&niceness; <replaceable
>15</replaceable
>
</screen>
</informalexample>

<tip>
<para
>Alternativet <link linkend="conf-niceness"
>niceness</link
> påverkar bara användning av datorns processor(er). En annan stor effekt på datorns prestanda har att göra med hur mycket in- och utmatning av data (<acronym
>I/O</acronym
>) som ett program använder. För att bestämma hur mycket <acronym
>I/O</acronym
> ett program kan använda, stöder moderna &Linux;-operativsystem ett liknande verktyg som kallas <application
>ionice</application
>. &kdesvn-build; stöder <application
>ionice</application
> (men bara för att aktivera eller inaktivera det helt och hållet), med alternativet  <link linkend="conf-use-idle-io-priority"
>use-idle-io-priority</link
>, sedan &kdesvn-build; version 1.12. </para>
</tip>

</sect2>

<sect2 id="root-installation">
<title
>Installera som systemadministratör</title>
<para
>Du kanske också vill att &kdesvn-build; ska köra installationen med rättigheter som systemadministratör. Det kan gälla för systeminstallation, som inte rekommenderas. Det är dock också användbart när den rekommenderade installationen som enanvändare av &kde; används. Det beror på att vissa moduler (i synnerhet kdebase) installerar program som tillfälligt behöver förhöjda rättigheter när de kör. De kan inte uppnå dessa rättighetsnivåer om de inte installeras med förhöjda rättigheter. </para>

<para
>Du skulle helt enkelt kunna köra &kdesvn-build; som systemadministratör direkt, men det rekommenderas inte, eftersom programmet inte har granskats för den sortens användning. Även om det bör vara säkert att köra programmet på det sättet, är det bättre att undvika att köra som systemadministratör när det är möjligt.</para>

<para
>För att hantera detta, tillhandahåller &kdesvn-build; alternativet &make-install-prefix;. Du kan använda alternativet för att ange ett kommando som används för att utföra installationen som en annan användare. Det rekommenderade sättet att använda kommandot är med programmet &sudo;, som kör installationskommandot som systemadministratör. </para>

<informalexample>
<para
>För att till exempel installera alla moduler genom att använda &sudo;, skulle du kunna göra något liknande:</para>

<screen
>global
  &make-install-prefix; <replaceable
>sudo</replaceable>
  # Övriga alternativ
end global
</screen>

<para
>För att använda &make-install-prefix; för bara en enda modul, skulle det här fungera: </para>

<screen
>module <replaceable
>kdemultimedia</replaceable>
  &make-install-prefix; <replaceable
>sudo</replaceable>
end module
</screen>
</informalexample>

</sect2>

<sect2 id="build-progress">
<title
>Visa förloppet för en byggprocess av en modul</title>
<para
>Funktionen är alltid tillgänglig, och automatiskt aktiverad om möjligt. Vad den gör är att visa ett uppskattat byggförlopp medan en modul byggs, på så sätt vet du hur mycket längre det kommer att ta att bygga en modul. </para>

</sect2>

</sect1>

<sect1 id="advanced-features">
<title
>Avancerade funktioner</title>

<sect2 id="partial-builds">
<title
>Delvis bygga en modul</title>
<para
>Det är möjligt att bara bygga delar av en enda &kde;-modul. Du kanske till exempel bara vill kompilera ett program från en modul. &kdesvn-build; har funktioner som gör det enkelt. Det finns flera komplementära sätt att göra det. </para>

<sect3 id="checking-out-parts">
<title
>Checka ut delar av en modul</title>

<para
>Det här är troligen det bästa sättet att göra det. När det fungerar sparar det dig nerladdningstid och diskutrymme. Vad som händer är att &kdesvn-build; bara laddar ner delar av modulen som du anger. Det görs med alternativet &checkout-only; för modulen, som anger en lista med kataloger att ladda ner. </para>

<tip
><para
>Om du inte redan vet vad som ska laddas ner för en modul, kan det vara en god idé att först bläddra i &subversion;-strukturen för en modul, genom att använda <ulink url="http://websvn.kde.org/branches/KDE/3.5/"
>WebSVN</ulink
>. </para
></tip>

<informalexample>
<para
>För att bara hämta &kuser; och &kdat; från kdeadmin, skulle du kunna använda &checkout-only; så här:</para>

<screen
>module <replaceable
>kdeadmin</replaceable>
  &checkout-only; <replaceable
>kuser kdat</replaceable>
end module
</screen>

</informalexample>

<important
><para
>Katalogerna byggs i ordningen de listas i alternativet. Om en av katalogerna behöver någonting annat från modulen för att kunna kompileras, då måste du försäkra dig om att de båda finns med på raden &checkout-only;, och att beroendet som krävs anges före katalogen som behöver det.</para>

<para
>Ibland kan ett program också behöva andra kataloger och det är svårt att räkna ut vilka de är, vilket kan kräva ett antal försök med ständiga tillägg av kataloger till alternativet för att räkna ut.</para>
</important>

<para
>En sista anmärkning om alternativet: Om du ändrar alternativets värde ska du använda <userinput
><command
>kdesvn-build</command
> <option
>&cmd-refresh-build;</option
> <option
><replaceable
>modul</replaceable
></option
></userinput
> för att försäkra dig om att modulen konfigureras om på ett riktigt sätt. &kdesvn-build; tar aldrig bort befintliga filer om du tar bort ett antal kataloger från alternativet &checkout-only;, eller lägger till alternativet för en modul som redan har checkats ut.</para>

</sect3>

<sect3 id="not-compiling">
<title
>Ta bort kataloger från en byggplats</title>
<para
>Istället för att begränsa vad som laddas ner, är det möjligt att ladda ner allt men låta byggsystemet utelämna ett antal kataloger när byggprocessen utförs. Det kan vara användbart om en katalog hela tiden ger fel och är onödig för resten av modulen. </para>

<para
>Det styrs med alternativet &do-not-compile;. Det fungerar på liknande sätt som &checkout-only; som just beskrivits, på så sätt att det helt enkelt är en lista med kataloger som inte ska kompileras.</para>

<important
><para
>Också precis som &checkout-only; kräver alternativet minst att skriptet <command
>configure</command
> körs igen för modulen efter det har ändrats. Det görs med kommandot <userinput
><command
>kdesvn-build</command
> <option
>&cmd-reconfigure;</option
> <option
><replaceable
>modul</replaceable
></option
></userinput
>. </para
></important>

<informalexample>
<para
>För att ta bort katalogen <filename
>dcoppython</filename
> från byggprocessen för kdebindings:</para>

<screen
>module <replaceable
>kdebindings</replaceable>
  &do-not-compile; <replaceable
>dcoppython</replaceable>
end module
</screen>
</informalexample>

</sect3>

</sect2>

<sect2 id="using-branches">
<title
>Stöd för grenar och taggar i &kdesvn-build;</title>

<sect3 id="branches-and-tags">
<title
>Vad är grenar och taggar?</title>

<para
>&subversion; stöder hantering av historik för &kde;:s källkod. &kde; använder stödet för att skapa grenar för utveckling, och att ge arkivet en tagg då och då med utgåvan av en ny version. </para>

<para
>Till exempel kan utvecklarna av &kmail; arbeta med en ny funktion i en annan gren för att undvika att förstöra versionen som används av de flesta utvecklare. Grenen har pågående utveckling, samtidigt som huvudgrenen (som kallas /trunk) kan ha pågående utveckling. </para>

<para
>En tagg är å andra sidan en ögonblicksbild av källkodsarkivet vid en viss tid. Det används av &kde;:s administrationsgrupp för att markera en version av koden som är lämplig för en utgåva och fortfarande tillåta att utvecklare arbetar med koden. </para>

<para
>Det finns ingen skillnad i koden mellan grenar, taggar eller huvudgrenen i &subversion;. Det är bara en konvention som används av utvecklarna. Det gör det svårt att stödja grenar och taggar i &kdesvn-build; på ett riktigt sätt. Det finns dock några saker som kan göras. </para>

</sect3>

<sect3 id="branch-support">
<title
>Hur man använder grenar och taggar</title>

<para
>Stöd för grenar och taggar hanteras med en uppsättning alternativ, som rör sig från en generell begäran om en version, till en specifik webbadress att ladda ner för avancerade användare. </para>

<para
>Det enklaste sättet är att använda alternativen &branch; och &tag;. Du använder helt enkelt alternativet tillsammans med namnet på den önskade grenen eller taggen för en modul, så försöker &kdesvn-build; avgöra lämplig plats i &kde;:s arkiv att ladda ner från. För de flesta moduler i &kde; fungerar det mycket bra.</para>

<informalexample>
<para
>För att ladda ner kdelibs från &kde; 3.5 (som helt enkelt är känt som grenen 3.5): </para>

<screen
>module kdelibs
  branch <replaceable
>3.5</replaceable>
  # övriga alternativ...
end module
</screen>

<para
>Eller, för att ladda ner kdemultimedia som det var när det gavs ut med &kde; 3.4.3:</para>

<screen
>module kdemultimedia
  tag <replaceable
>3.4.3</replaceable>
  # övriga alternativ...
end module
</screen>

</informalexample>

<tip
><para
>Du kan ställa in ett allmänt grenvärde, men om du gör det, glöm inte att ange en annan gren för moduler som inte ska använda den allmänna grenen. </para
></tip>
</sect3>

<sect3 id="advanced-branches">
<title
>Stöd för avancerade grenalternativ</title>

<para
>&kdesvn-build; stöder två alternativ i situationer då &branch; och &tag; gissar fel angående den riktiga sökvägen: &module-base-path; och &override-url;. </para>

<itemizedlist>
<listitem
><para
>Alternativet &module-base-path; används för att hjälpa &kdesvn-build; fylla i saknade delar av modulens sökväg. I &kde;:s arkiv är alla sökvägar av formen <filename class="directory"
>svnRoot/module-base-path/<replaceable
>modulnamn</replaceable
></filename
>. Normalt kan &kdesvn-build; räkna ut den lämpliga delen i mitten själv. När det inte går, kan du använda &module-base-path; så här: </para>

<informalexample>
<screen
>module qt-copy
  # gren fungerar inte här ännu
  module-base-path branches/qt/3.3
end module
</screen>

<para
>Det skulle göra att &kdesvn-build; laddar ner qt-copy från (i det här exemplet) <filename
>svn://anonsvn.kde.org/home/kde/<replaceable
>branches/qt/3.3</replaceable
>/qt-copy</filename
>. </para>
</informalexample>
</listitem>

<listitem
><para
>Alternativet &override-url; kräver å andra sidan att du anger den exakta sökvägen att ladda ner från. Det låter dig dock hämta från sökvägar som &kdesvn-build; inte skulle ha någon möjlighet att ladda ner från. </para>

<informalexample>
<screen
>module qt-copy
  # Ange exakt sökväg att hämta.
  override-url svn://anonsvn.kde.org/home/kde/branches/qt/3.3/qt-copy
end module
</screen>
</informalexample>

<important
><para
>&kdesvn-build; rör inte eller korrigerar något värde som du anger för &override-url; överhuvudtaget, så om du byter inställningen &svn-server;, kan du också behöva uppdatera det här. </para
></important>

</listitem>
</itemizedlist>

</sect3>

</sect2>

<sect2 id="building-successfully">
<title
>Hur &kdesvn-build; försöker försäkra sig om en lyckad byggprocess</title>

<sect3 id="automatic-rebuilds">
<title
>Automatisk ombyggnad</title>

<para
>&kdesvn-build; innehöll tidigare funktioner för att automatiskt försöka bygga om modulen efter ett fel (eftersom ibland fungerade försöket att göra om, på grund av fel i byggsystemet vid den tiden). Tack vare bytet till &cmake; lider inte byggsystemet längre av dessa fel, och därför försöker inte &kdesvn-build; bygga en modul mer än en gång. Det finns dock situationer då &kdesvn-build; automatiskt utför åtgärder.</para>

<itemizedlist>

<listitem
><para
>Om du ändrar <link linkend="conf-configure-flags"
>configure-flags</link
> eller <link linkend="conf-cmake-options"
>cmake-options</link
> för en modul, detekterar &kdesvn-build; det och kör automatiskt om configure eller cmake för modulen.</para
></listitem>

<listitem
><para
>Om byggsystemet inte finns (även om &kdesvn-build; inte tog bort det) skapar &kdesvn-build; automatiskt om det. Det är användbart för att ge möjligheten att utföra en fullständig <link linkend="cmdline-refresh-build"
>--refresh-build</link
> för en specifik modul utan att den utförs för andra moduler.</para
></listitem>

</itemizedlist>

</sect3>

<sect3 id="manual-rebuilds">
<title
>Bygga om en modul manuellt</title>
<para
>Om du gör en ändring i en moduls inställningsalternativ, eller om modulens källkod ändras på ett sätt som &kdesvn-build; inte känner igen, kan du behöva bygga om modulen manuellt.</para>

<para
>Du kan göra det genom att helt enkelt köra <userinput
><command
>kdesvn-build</command
> <option
>--refresh-build</option
> <option
><replaceable
>modul</replaceable
></option
></userinput
>. </para>

<para
>Om du skulle vilja att &kdesvn-build; istället automatiskt bygger om modulen under nästa normala bygguppdatering, kan du skapa en särskild fil. Varje modul har en byggkatalog. Om du skapar en fil som heter <filename
>.refresh-me</filename
> i en moduls byggkatalog, bygger &kdesvn-build; om modulen nästa gång byggprocessen sker, även om det normalt skulle utföra den snabbare inkrementella byggprocessen.</para>

<tip>
<para
>Normalt är byggkatalogen <filename class="directory"
>~/kdesvn/build/<replaceable
>modul</replaceable
>/</filename
>. Om du ändrar inställning av alternativet &build-dir;, använd den istället för <filename class="directory"
>~/kdesvn/build</filename
>.</para>
</tip>

<informalexample>
<para
>Bygg om med <filename
>.refresh-me</filename
> för modulen <replaceable
>arts</replaceable
>:</para>
<screen
><prompt
>%</prompt
> <userinput
><command
>touch</command
> <filename class="directory"
>~/kdesvn/build/<replaceable
>arts</replaceable
>.refresh-me</filename
></userinput>
<prompt
>%</prompt
> <userinput
><command
>kdesvn-build</command
></userinput
>
</screen>
</informalexample>
</sect3>

</sect2>

<sect2 id="changing-environment">
<title
>Ändra inställning av miljövariabler</title>
<para
>Normalt använder &kdesvn-build; miljön som är närvarande vid start när program körs för att utföra uppdateringar och bygga. Det är användbart när du kör &kdesvn-build; från kommandoraden.</para>

<para
>Dock kan du vilja ändra inställning av miljövariabler som &kdesvn-build; inte direkt tillhandahåller ett alternativ för. (För att exempelvis ställa in eventuella miljövariabler som behövs när &kdesvn-build; körs i bakgrunden via &cron;.) Det är möjligt med alternativet &set-env;.</para>

<para
>I motsats till de flesta alternativ kan det anges flera gånger, och accepterar två värden, åtskilda med mellanslag. Det första är namnet på miljövariabeln som ska sättas, och resten av raden är dess värde.</para>

<informalexample>
<para
>Ställ in <userinput
><envar
>DISTRO</envar
>=<replaceable
>BSD</replaceable
></userinput
> för alla moduler:</para>
<screen
>global
  set-env <replaceable
>DISTRO</replaceable
> <replaceable
>BSD</replaceable>
end global
</screen>
</informalexample>

</sect2>

<sect2 id="resuming">
<title
>Återuppta byggprocesser</title>

<sect3 id="resuming-failed">
<title
>Återuppta en misslyckad eller avbruten byggprocess</title>

<para
>Du kan tala om för &kdesvn-build; att börja bygga från en annan modul än det normalt skulle göra. Det kan vara användbart när en uppsättning moduler misslyckades, eller om du avbröt en körning i mitten. Du kan styra det med väljarna &cmd-resume-from; och &cmd-resume-after;.</para>

<note
><para
>Genom att använda någon av väljarna för att återuppta, hoppas uppdatering av källkod över.</para
> </note>

<informalexample>
<para
>Återuppta byggprocessen med början på kdebase:</para>

<screen
><prompt
>%</prompt
> <userinput
><command
>kdesvn-build</command
> <option
>--resume-from=<replaceable
>kdebase</replaceable
></option
></userinput
>
</screen>
</informalexample>

<informalexample>
<para
>Återuppta byggprocessen med början efter kdebase (i fallet du fixade problemet för hand och installerade modulen själv):</para>

<screen
><prompt
>%</prompt
> <userinput
><command
>kdesvn-build</command
> <option
>--resume-after=<replaceable
>kdebase</replaceable
></option
></userinput
>
</screen>
</informalexample>

</sect3>

<sect3 id="ignoring-modules">
<title
>Ignorera moduler i en byggprocess</title>

<para
>På samma sätt som du kan <link linkend="resuming-failed"
>återuppta byggprocessen från en modul</link
>, kan du istället välja att uppdatera och bygga normalt, men ignorera en uppsättning moduler.</para>

<para
>Du kan göra det med väljaren &cmd-ignore-modules;. Den talar om för &kdesvn-build; att ignorera alla följande moduler på kommandoraden när en uppdatering och byggprocess utförs.</para>

<informalexample>
<para
>Ignorera extragear/multimedia och kdereview under en fullständig körning:</para>
<screen
><prompt
>%</prompt
> <userinput
><command
>kdesvn-build</command
> <option
>--ignore-modules</option
> <replaceable
>extragear/multimedia kdereview</replaceable
></userinput
>
</screen>
</informalexample>

</sect3>
</sect2>

<sect2 id="changing-env-from-cmd-line">
<title
>Ändra alternativ från kommandoraden</title>

<sect3 id="changing-global-opts">
<title
>Ändra globala alternativ</title>
<para
>Du kan ändra uppsättningen alternativ som läses från <link linkend="configure-data"
>inställningsfilen</link
> direkt från kommandoraden. Ändringen överskrider inställningen i filen, men är bara tillfällig. Den gäller bara så länge den fortfarande är närvarande på kommandoraden.</para>

<para
>&kdesvn-build; låter dig ändra alternativ namngivna som <replaceable
>alternativnamn</replaceable
> genom att ange en väljare på kommandoraden på formen <userinput
><option
>--<replaceable
>alternativnamn</replaceable
>=värde</option
></userinput
>. &kdesvn-build; känner igen om det inte vet vad alternativet är, ock söker efter namnet i sin lista med alternativnamn. Om det inte känner igen namnet, får du en varning, annars kommer det ihåg värdet du ställde in det till och överskrider en eventuell inställning från filen.</para>

<informalexample>
<para
>Ställa in alternativet &source-dir; till <filename
>/dev/null</filename
> för test:</para>

<screen
><prompt
>%</prompt
> <userinput
><command
>kdesvn-build</command
> <option
>--pretend</option
> <option
>--<replaceable
>källkodskatalog</replaceable
>=<replaceable
>/dev/null</replaceable
></option
></userinput
>
</screen>

</informalexample>

</sect3>

<sect3 id="changing-module-opts">
<title
>Ändra modulalternativ</title>
<para
>Det är också möjligt att bara ändra alternativ för en viss modul. Syntaxen är liknande: --<replaceable
>modul</replaceable
>,<replaceable
>alternativnamn</replaceable
>=<replaceable
>värde</replaceable
>. </para>

<para
>Ändringen överskrider eventuell duplicerad inställning för modulen som hittas i <link linkend="configure-data"
>inställningsfilen</link
>, och gäller bara när alternativet skickas med på kommandoraden.</para>

<informalexample>
<para
>Använda en annan byggkatalog för modulen kdeedu:</para>

<screen
><prompt
>%</prompt
> <userinput
><command
>kdesvn-build</command
> <option
>--<replaceable
>kdeedu</replaceable
>,<replaceable
>byggkatalog</replaceable
>=<replaceable
>temporärbygg</replaceable
></option
></userinput
>
</screen>

</informalexample>

</sect3>

</sect2>

</sect1>

<sect1 id="developer-features">
<title
>Funktioner för &kde;-utvecklare</title>

<sect2 id="ssh-agent-reminder">
<title
>Kontroll av &ssh;-agent</title>
<para
>&kdesvn-build; kan försäkra sig om att &kde;-utvecklare som använder &ssh; för att komma åt &kde;:s källkodsarkiv inte av misstag glömmer att lämna verktyget &ssh;-agenten aktiverad. Det kan orsaka att &kdesvn-build; hänger sig för alltid medan det väntar på att utvecklaren ska skriva in lösenordet till &ssh;, så normalt kontrollerar &kdesvn-build; att agenten kör innan det utför uppdateringar av källkoden. </para>

<note
><para
>Det görs bara för &kde;-utvecklare som använder &ssh;. Det beror på att inget lösenord krävs för den vanliga anonyma utcheckningen. &subversion; hanterar lösenord för det andra möjliga protokollet för &kde;-utvecklare, https. </para
></note>

<para
>Du kanske vill inaktivera kontrollen av &ssh;-agenten, i situationer där &kdesvn-build; detektera närvaron av en agent av misstag. För att inaktivera kontroll av agenten, sätt alternativet <option
>disable-agent-check</option
> till <replaceable
>true</replaceable
>.</para>

<informalexample>
<para
>Inaktivera &ssh;-agentkontroll:</para>
<screen
>global
  disable-agent-check true
end global
</screen>
</informalexample>

</sect2>

</sect1>

<sect1 id="other-features">
<title
>Andra funktioner i &kdesvn-build;</title>

<sect2 id="changing-verbosity">
<title
>Ändra mängden utmatning från &kdesvn-build;</title>
<para
>&kdesvn-build; har flera väljare för att styra mängden utmatning som skriptet skapar. Hur som helst, kommer fel alltid att matas ut.</para>

<itemizedlist>
<listitem
><para
>Väljaren <option
>--quiet</option
> (den korta formen är <option
>-q</option
>) gör att &kdesvn-build; i huvudsak är tyst. Bara viktiga meddelanden, varningar eller fel visas. Om tillgängligt visas fortfarande förloppsinformation för byggprocessen.</para
></listitem>

<listitem
><para
>Väljaren <option
>--really-quiet</option
> (ingen kortform) gör att &kdesvn-build; bara visar viktiga varningar eller fel när det kör.</para
></listitem>

<listitem
><para
>Väljaren <option
>--verbose</option
> (kortformen är <option
>-v</option
>) gör att &kdesvn-build; är mycket detaljerad i utmatningen.</para
></listitem>

<listitem
><para
>Väljaren <option
>--debug</option
> är bara till för felsökningssyfte. Den gör att &kdesvn-build; beter sig som om <option
>--verbose</option
> är aktiverad, gör också att kommandon matas ut på terminalen, och visar felsökningsinformation för många funktioner.</para
></listitem>
</itemizedlist>

</sect2>

<sect2 id="kdesvn-build-color">
<title
>Färgutmatning</title>
<para
>När &kdesvn-build; körs från &konsole; eller en annan terminal, visas normalt färglagd text.</para>

<para
>Du kan inaktivera det genom att använda väljaren <option
>--no-color</option
> på kommandoraden, eller ställa in alternativet &colorful-output; i <link linkend="configure-data"
>inställningsfilen</link
> till <replaceable
>false</replaceable
>. </para>

<informalexample>
<para
>Inaktivera färgutmatning i inställningsfilen:</para>
<screen
>global
  colorful-output false
end global
</screen>
</informalexample>

</sect2>

<sect2 id="email-reports">
<title
>Skicka e-post med rapporter om en misslyckad byggprocess</title>
<para
>&kdesvn-build; kan skicka en rapport via e-post till en e-postadress du väljer, när en modul misslyckas att bygga av någon orsak. Sättet det fungerar är att du väljer en e-postadress som &kdesvn-build; skickar från, och en e-postadress att underrätta när ett fel uppstår.</para>

<para
>&kdesvn-build; skapar då ett brev om det fanns någon modul som misslyckades bygga, i slutet av en fullständig körning. Brevet kommer att innehålla en förkortad fellogg för varje modul. Bara ett brev skickas för varje körning, även om 15 moduler misslyckades byggas. </para>

<para
>Funktionen är inte normalt aktiverad. För att aktivera den, måste du ange båda alternativen &email-address; och &email-on-compile-error;. Alternativet <option
>email-address</option
> styr adressen som &kdesvn-build; skickar från, och <option
>email-on-compile-error</option
> styr vart brevet ska skickas. </para>

<tip>
<para
>&kdesvn-build; använder standardmodulen Mail::Mailer i Perl för att skicka e-post. Den ingår i Perl 5.8, och kan installeras med Perl 5.6. Mail::Mailer stöder <application
>Sendmail</application
> (inklusive e-postprogram som fungerar med <application
>Sendmail</application
>), inbyggd överföring med <acronym
>SMTP</acronym
>, och <application
>qmail</application
>. </para>
</tip>

<informalexample>
<para
>Skicka e-post från bygg@exempel.se till resultat@exempel.se vid byggfel:</para>

<screen
>global
  email-address          bygg@exempel.se    # Från: adress för all kdesvn-build e-post
  email-on-compile-error resultat@exempel.se    # Till: adress för e-post om misslyckad bygg
end global
</screen>
</informalexample>

</sect2>

<sect2 id="deleting-build-dir">
<title
>Ta bort onödiga kataloger efter en byggprocess</title>
<para
>Har du ont om diskutrymme men vill ändå köra de allra senaste utcheckningen av &kde;? &kdesvn-build; kan hjälpa dig att reducera diskanvändning medan du bygger &kde; från &subversion;.</para>

<note
><para
>Var medveten om att det går åt mycket utrymme för att bygga &kde;. Det finns flera stora delar som använder utrymme när &kdesvn-build; används:</para
></note>

<orderedlist>
<listitem
><para
>Själva utcheckningen av källkoden kan uppta ett försvarligt utrymme. Standardmodulerna upptar ungefär 1.6 Gibyte diskutrymme. Du kan reducera storleken genom att försäkra dig om att du bara bygger så många moduler som du verkligen vill ha. &kdesvn-build; tar inte bort källkod från disken även om du tar bort posten från <link linkend="configure-data"
>inställningsfilen</link
>, så försäkra dig om att du går till och tar bort oanvända utcheckningar i källkodskatalogen. Observera att källkodsfilerna laddas ner från Internet, och du <emphasis
>ska inte</emphasis
> ta bort dem om du faktiskt använder dem, åtminstone till du är klar med användning av &kdesvn-build;.</para>

<para
>Om du dessutom har installerat &Qt; från distributionen (och chansen är stor att du har det), behöver du troligen inte installera modulen qt-copy. Det hyvlar av omkring 200 Mibyte från källkodsstorleken på disk.</para>

<para
>En sak att observera är att på grund av sättet som &subversion; fungerar, finns det i själva verket två filer på disk för varje fil som checkas ut från arkivet. &kdesvn-build; har för närvarande inte kod för att försöka minimera källkodsstorleken när källkoden inte används. </para>
</listitem>

<listitem>
<para
>&kdesvn-build; skapar en separat byggkatalog för att bygga källkoden. Ibland måste &kdesvn-build; kopiera en källkodskatalog för att skapa en falsk byggkatalog. När det sker, används platsbesparande symboliska länkar, så det bör inte vara något krångel med diskutrymme. Byggkatalogen är typiskt mycket större än en moduls källkodskatalog. Byggkatalogen för kdebase är till exempel omkring 1050 Mibyte, medan källkoden för kdebase bara är omkring 550 Mibyte.</para>

<para
>Som tur är krävs inte byggkatalogen efter en modul har byggts och installerats med lyckat resultat. &kdesvn-build; kan automatiskt ta bort byggkatalogen efter en modul har installerats. Se exemplen nedan för mer information. Observera att genom att utföra detta steg, blir det omöjligt för &kdesvn-build; att utföra tidsbesparande inkrementella byggprocesser.</para>
</listitem>

<listitem
><para
>Till sist krävs diskutrymme för själva installationen av &kde;, som inte körs från byggkatalogen. Det upptar typiskt mindre utrymme än byggkatalogen. Det är dock svårare att få fram exakta siffror. </para
></listitem>
</orderedlist>

<para
>Hur reducerar man utrymmeskraven för &kde;? Ett sätt är att använda riktiga kompilatorflaggor för att optimera för reducering av utrymme istället för hastighet. Ett annat sätt, som kan ha stor effekt, är att ta bort felsökningsinformation från det färdigbyggda &kde;. </para>

<warning
><para
>Du bör vara mycket säker på att du vet vad du gör innan du bestämmer dig för att ta bort felsökningsinformation. Att köra den allra senaste programvaran betyder att du kör programvara som potentiellt har mycket större sannolikhet att krascha än stabila utgåvor. Om du kör programvara utan felsökningsinformation kan det vara mycket svårt att skapa en bra felrapport för att få problemet löst, och du måste troligen aktivera felsökning igen för programmet som påverkas och bygga om för att hjälpa en utvecklare att rätta kraschen. Så ta bort felsökningsinformation på egen risk! </para
></warning>

<informalexample>
<para
>Ta bort byggkatalogen efter en modul har installerats. Källkoden behålls fortfarande, och felsökning är aktiverad:</para>

<screen
>global
  configure-flags      --enable-debug
  remove-after-install builddir        # Ta bort byggkatalog efter installation
end global
</screen>

<para
>Ta bort byggkatalogen efter installation, utan felsökningsinformation, med storleksoptimering.</para>

<screen
>global
  cxxflags             -Os             # Optimera för storlek
  configure-flags      --disable-debug
  remove-after-install builddir        # Ta bort byggkatalog efter installation
end global
</screen>
</informalexample>
</sect2>

</sect1>

</chapter>

<chapter id="kde-cmake">
<title
>&cmake;, byggsystemet för &kde; 4</title>

<sect1 id="kde-cmake-intro">
<title
>Introduktion till &cmake;</title>

<para
>Under mars 2006, slog programmet &cmake; ut flera konkurrenter och valdes som byggsystem för &kde; 4, och ersätter systemet baserat på autotools som &kde; har använt från början.</para>

<para
>En sida med en introduktion till &cmake; är tillgänglig på <ulink url="http://techbase.kde.org/Development/Tutorials/CMake"
>&kde; TechBase</ulink
>. Istället för att köra <userinput
><command
>make</command
> <option
>-f</option
> <filename
>Makefile.cvs</filename
></userinput
>, därefter <command
>configure</command
> och sedan &make;, kör vi helt enkelt &cmake; och därefter &make;. </para>

<para
>&kdesvn-build; har initialt stöd för &cmake;. Några funktioner i &kdesvn-build; var i själva verket funktioner i det underliggande byggsystemet, inklusive <link linkend="conf-configure-flags"
>configure-flags</link
> och <link linkend="conf-do-not-compile"
>do-not-compile</link
>. När motsvarande funktioner är tillgängliga, tillhandahålls de. Motsvarigheten till alternativet configure-flags är till exempel <link linkend="conf-cmake-options"
>cmake-options</link
>, och alternativet <link linkend="conf-do-not-compile"
>do-not-compile</link
> stöds också för &cmake; från och med &kdesvn-build; version 1.6.3. </para>

</sect1>
</chapter>

<chapter id="credits-and-licenses">
<title
>Tack till och licenser</title>

<para
>Översättning Stefan Asserhäll <email
>stefan.asserhall@comhem.se</email
></para
> 
&underFDL; </chapter>

</book>
