<?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 autoconf '<application
>Autoconf</application
>'>
  <!ENTITY automake '<application
>Automake</application
>'>
  <!ENTITY BSD '<acronym
>BSD</acronym
>'>
  <!ENTITY cmake '<application
>CMake</application
>'>
  <!ENTITY make '<application
>Make</application
>'>
  <!ENTITY ssh '<application
>SSH</application
>'>
  <!ENTITY subversion '<application
>Subversion</application
>'>
  <!ENTITY sudo '<application
>Sudo</application
>'>
  <!ENTITY unsermake '<application
>Unsermake</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 apply-qt-patches '<link linkend="conf-apply-qt-patches"
>apply-qt-patches</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 apidox '<link linkend="conf-apidox"
>apidox</link
>'>
  <!ENTITY branch '<link linkend="conf-branch"
>branch</link
>'>
  <!ENTITY no-rebuild-on-fail '<link linkend="conf-no-rebuild-on-fail"
>no-rebuild-on-fail</link
>'>
  <!ENTITY inst-apps '<link linkend="conf-inst-apps"
>inst-apps</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
>'>
  <!ENTITY use-unsermake '<link linkend="conf-use-unsermake"
>use-unsermake</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-no-rebuild-on-fail '<link linkend="cmdline-no-rebuild-on-fail"
>--no-rebuild-on-fail</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
>michael.pyne@kdemail.net</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>
<holder
>Michael Pyne</holder>
</copyright>

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


<legalnotice
>&FDLNotice;</legalnotice>

<date
>2008-01-14</date>
<releaseinfo
>1.6</releaseinfo>

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

<keywordset>
<keyword
>KDE</keyword>
<keyword
>kdesdk</keyword>
<keyword
>SVN</keyword>
<keyword
>Subversion</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ällkodsarkivet <ulink url="http://subversion.tigris.org/"
>&subversion;</ulink
>. </para>

<para
>Här dokumenterar vi syntax och alternativ för &kdesvn-build;s <link linkend="configure-data"
>inställningsfil</link
>, dess <link linkend="cmdline"
>kommandoradsväljare</link
>, <link linkend="features"
>funktioner</link
> och en <link linkend="getting-started"
>översikt</link
> över alla nödvändiga steg som krävs för att bygga &kde; från källkod, inklusive stegen du måste utföra med användning av andra verktyg, eller med andra ord, steg som inte automatiskt utförs av skriptet &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 guiden <ulink url="http://quality.kde.org/develop/cvsguide/buildstep.php"
>Building &kde; from Source Step by Step</ulink
> på <ulink url="http://quality.kde.org"
>hemsidan för &kde;:s kvalitetsgrupp</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>

<para
>Dessutom finns en procedur för att <ulink url="http://techbase.kde.org/index.php?title=Getting_Started/Build/KDE4"
>bygga &kde; från källkod</ulink
> på <ulink url="http://techbase.kde.org/"
>&kde;:s Techbase</ulink
>. </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
>Du rekommenderas att ladda ner och bygga &kde; med ett separat användarkonto. Om du redan har &kde;-paket installerade, är det bästa valet att skapa en annan (särskild) användare för att bygga och köra det nya &kde;. Fördelen med att bygga &kde; för en särskild användare är att du inte kan förstöra bassystemet, och du har alltid ett sätt att arbeta bekvämt när saker och ting går fel. </para>

<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å sidan <ulink url="http://www.kde.org/info/requirements/3.5.php"
>&kde;:s kompileringskrav</ulink
>. Krav för &kde; 4 kan hämtas från <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
>&automake; version 1.7 eller senare (bara &kde; 3).</para
></listitem>

<listitem
><para
>&autoconf; version 2.57 eller senare (bara &kde; 3).</para
></listitem>

<listitem
><para
>&cmake; 2.4.7, eller senare.</para
></listitem>

<listitem
><para
>Klientprogrammet för &subversion;, inklusive stöd för säker HTTP (https). 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 modulen ra_dav säger att den hanterar metoden https, ska du vara klar att köra.</para
></listitem>

<listitem
><para
>Kompilatorn <application
>gcc</application
>, med stöd för C++. Version 3.3 eller senare stöds bäst.</para
></listitem>

<listitem
><para
>Försäkra dig om att du kontrollerar sidan <ulink url="http://www.kde.org/info/requirements/3.5.php"
>&kde;:s kompileringskrav</ulink
> för att vara säker på att alla andra bibliotek som krävs är inkluderade.</para
></listitem>

</itemizedlist>

<para
>Ett undantag ä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; 3.3 om du bygger &kde; 3.5 eller &Qt; 4.3 om du bygger &kde; 4.</para>

  <note
><para
>Om du bygger &kde; 4 rekommenderas starkt att du använder versionen qt-copy av &Qt;, och försäkrar dig om att du använder rekommenderade programfixar (det är förvald inställning, styrd av alternativet <link linkend="conf-apply-qt-patches"
>apply-qt-patches</link
>).</para
></note>
</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. Guiden <ulink url="http://quality.kde.org/develop/cvsguide/buildstep.php#step1"
>Building &kde; from Source Step by Step</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-use-stable-kde"
>use-stable-kde</link
> för att ändra förvald version av &kde;-moduler att bygga. Normalt bygger &kdesvn-build; &kde;-versionen i trunk (för närvarande &kde; 4). Om du ville bygga den senaste stabila utgåvan av &kde; istället för att använda distributionens paket (för närvarande är &kde; 3.5-grenen stabil) skulle du ändra alternativet till <replaceable
>true</replaceable
>. </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://developer.kde.org/documentation/misc/firststepsaccount.php"
>&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
>&percnt;</prompt
><command
>su</command
> <option
>-</option
> <replaceable
>utvecklings-användarnamn</replaceable>
<prompt
>&percnt;</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 e-post till <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://quality.kde.org/develop/cvsguide/buildstep.php#step1"
>Building &kde; from Source Step by Step</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
>För utvecklare: Stöder att bygga <link linkend="building-apidox"
>dokumentation av programmeringsgränssnittet</link
> för en modul. Observera att det bara fungerar för &kde; 3-moduler när &unsermake;-skriptet inte används. </para
></listitem>

<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-svn-only"
>--svn-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
>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 &unsermake; och &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
>Levereras med stöd för &unsermake;. </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
>Formatet för .kdesvn-buildrc</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-apidox"
>apidox</link
>, för att bygga dokumentation över programmeringsgränssnittet.</para
></listitem>
<listitem
><para
><link linkend="conf-apply-qt-patches"
>apply-qt-patches</link
>, för att förbättra qt-copy.</para
></listitem>
<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-inst-apps"
>inst-apps</link
>, för att bara bygga och installera vissa kataloger.</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>
<listitem
><para
><link linkend="conf-use-unsermake"
>use-unsermake</link
>, för att använda det avancerade byggsystemet &unsermake;.</para
></listitem>
</itemizedlist>


<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
>Sätt alternativet till <replaceable
>true</replaceable
> för att få &kdesvn-build; att automatiskt bygga och installera dokumentation om programmeringsgränssnittet för modulen efter den normala byggprocessen. Det fungerar bara för moduler där <quote
>make apidox</quote
> gör någonting, inklusive , bland annat kdelibs, kdebase och koffice. </para>
<para
>Alternativet fungerar inte för moduler med &unsermake;-stöd, på grund av brister i &unsermake;-byggsystemet. Alternativet fungerar inte för &kde; 4-moduler eftersom stödet som krävs av byggsystemet har flyttats till ett annat program, som &kdesvn-build; inte har uppdaterats att använda ännu. </para>
</entry>
</row>

<row id="conf-apply-qt-patches">
<entry
>apply-qt-patches</entry>
<entry
>Överskrider allmän</entry>
<entry
>Alternativet är bara användbart för qt-copy. Om det är inställt till ett värde skilt från noll, körs skriptet apply-patches i qt-copy innan byggprocessen, för att införa de inofficiella programfixarna i qt-copy. Eftersom programfixarna normalt är orsaken att använda qt-copy istället för en vanlig &Qt;, bör det inte skada att aktivera det. Standardvärdet är att aktivera programfixarna.</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.7.</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 <filename class="directory"
>/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin</filename
>. 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; 3.4, skulle du ställa in alternativet till <replaceable
>3.4</replaceable
>.</para>
<para
>Observera att vissa moduler använder ett annat grennamn. I synnerhet, använder inte den nödvändiga modulen arts &kde;:s versionsnummer. Modulen arts som hör ihop med &kde; 3.4 hade version 1.4.</para>
<para
>Om &kdesvn-build; misslyckas med att ladda ner en gren med alternativet, kan du behöva ange webbadressen att ladda ner från för hand med alternativet <link linkend="conf-override-url"
>override-url</link
>.</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: <itemizedlist
><listitem
><para
>Relativt till &kde;:s &subversion;-källkodskatalog (se <link linkend="conf-source-dir"
>alternativet source-dir</link
>). Det är förvalt, och sättet som skriptet fungerade fram till version 0.61. Läget 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
> </itemizedlist
>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
>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. Om du inte inkluderar katalogen admin, inkluderas den automatiskt (om det behövs). När du checkar ut del för del hämtas katalogen admin in från kde-common, vilket är platsen den finns på &subversion;-servern. Även om alternativet överskrider det allmänna alternativet, var medveten om att ange alternativet som ett allmänt alternativ inte är vettigt. </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 ersätter <link linkend="conf-configure-flags"
>configure-flags</link
> för &kde; 4-moduler, eftersom de använder &cmake; för att byggas.</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 -DRPATH_STYLE=default
</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.</para
></entry>
</row>

<row id="conf-configure-flags">
<entry
>configure-flags</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 ./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. qt-copy använder en mycket annorlunda uppsättning inställningsalternativ än resten av &kde;, så det här alternativet <emphasis
>överskrider</emphasis
> de globala inställningarna när det används för qt-copy. </para>

<para
>Alternativet gäller för qt-copy och alla &kde; 3-moduler. &kde; 4-moduler använder &cmake;, som styrs med alternativet <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
>Använd det här alternativet för att ange vilka flaggor som ska skickas till <command
>./configure</command
> som <envar
>CXXFLAGS</envar
> när byggsystemet för modulen skapas. 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. </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 sätta miljövariabeln <envar
>DO_NOT_COMPILE</envar
> innan skriptet configure körs. Enligt <ulink url="http://developer.kde.org/documentation/other/developer-faq.html"
>&kde; Developer FAQ</ulink
>, ska det göra att alla toppnivåkataloger du passerar inte byggs. Katalogerna ska vara åtskilda 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>

<important
><para
>Alternativet fungerar ännu inte med moduler som byggs med &cmake;.</para
></important>
</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
><para
>Det här är motsatsen till alternativet <link linkend="conf-do-not-compile"
>do-not-compile</link
>. Alternativet gör så att bara de angivna toppnivåkatalogerna byggs. Katalogerna ska vara åtskilda med mellanslag.</para>

<para
>Eventuella ändringar får ingen effekt förrän nästa gång <command
>make <option
>-f</option
> Makefile.cvs</command
> körs, antingen automatiskt av skriptet, eller manuellt med alternativen <link linkend="cmdline-refresh-build"
><option
>--refresh-build</option
></link
> eller <link linkend="cmdline-recreate-configure"
><option
>--recreate-configure</option
></link
>. </para>

<important
><para
>Det här alternativet fungerar ännu inte för moduler som byggs med byggsystemet &cmake;.</para
></important>

<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>
</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 Inställningscentralen 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 LD_LIBRARY_PATH 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. Inställningen kan ändras per modul från och med version 0.64 eller senare. </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: <varname
>$svn-server</varname
>/home/kde/<varname
>$module-base-path</varname
>/<varname
>$module-name</varname
>. </para>
<para
>Standardvärdet är antingen <quote
>trunk</quote
> eller <quote
>trunk/KDE</quote
> 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
>Ställ in det här alternativvärdet till <replaceable
>true</replaceable
> för att alltid förhindra att &kdesvn-build; försöker bygga om modulen om en inkrementell byggprocess skulle misslyckas. Normalt försöker &kdesvn-build; bygga om modulen från början för att motverka effekten att en enstaka &subversion;-uppdatering orsakar problem med 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-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-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-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>
<para
>Om du använder &kdesvn-build; eftersom du har svårighet att få en utgåva av &kde; att byggas på din distribution, fundera på att använda byggverktyget <ulink url="http://developer.kde.org/build/konstruct/"
>Konstruct</ulink
> istället, som arbetar med utgivna komprimerade tar-arkiv.</para>
</entry>
</row>

<row id="conf-unsermake-options">
<entry
>unsermake-options</entry>
<entry
>Överskrider allmän</entry>
<entry
>Väljaren är precis som <link linkend="conf-make-options"
>make-options</link
> men för &unsermake;, som accepterar vissa väljare som <command
>make</command
> inte kan förstå. </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-qt-builddir-hack">
<entry
>use-qt-builddir-hack</entry>
<entry
>Överskrider allmän</entry>
<entry
>Även om alternativet överskrider det allmänna alternativet, är det bara vettigt för qt-copy. Sätt alternativet till <replaceable
>true</replaceable
> för att aktivera skriptets läge med källkatalog skild från byggkatalog. När det är aktiverat, kopierar &kdesvn-build; qt-copy källkodsmodulen till byggkatalogen, och utför byggprocessen därifrån. Det betyder att miljövariabeln <envar
>QTDIR</envar
> istället ska vara inställd till <filename class="directory"
>$<symbol
>(qt-copy-build-dir)</symbol
>/qt-copy/lib</filename
>. Du måste också ändra alternativet <link linkend="conf-qtdir"
>qtdir</link
> på motsvarande sätt. Att bygga inkrementellt ska fortfarande fungera med detta läge, eftersom tidsstämplar bevaras efter kopieringen. Om du använder alternativet <link linkend="conf-apply-qt-patches"
>apply-qt-patches</link
>, utföra programfixarna i byggkatalogen, inte källkodskatalogen. Alternativets förvalda värde är <replaceable
>true</replaceable
>. </entry>
</row>

<row id="conf-use-stable-kde">
<entry
>use-stable-kde</entry>
<entry
>Kan inte överskridas</entry>
<entry
><para
>Eftersom &kdesvn-build; har stöd för att bygga &kde; 3 och 4, måste det finnas något sätt att tala om vilken version som ska byggas. Normalt bygger &kdesvn-build; huvudversionen för utveckling av &kde; (som kallas /trunk). Men den är för &kde; 4, som ännu inte är redo för en bred utgåva. </para>

<para
>Du kan använda alternativet &branch; allmänt, eller för en modul för att ladda ner för &kde; 3.5 (eller 3.4, etc.). Det är dock inte bekvämt, eftersom vissa moduler (som kdesupport) delas mellan 3.5 och 4. Dessutom är det en mängd grenalternativ som måste läggas till i inställningsfilen.</para>

<para
>Om du alltså ställer in det allmänna alternativet till <replaceable
>true</replaceable
>, laddar &kdesvn-build; automatiskt ner &kde; 3.5 versionen av moduler som kdelibs och qt-copy, istället för att ladda ner &kde; 4 versionen. Du kan fortfarande använda alternativen &branch; eller &tag; för en modul för att överskrida inställningarna som &kdesvn-build; väljer. På så sätt kan du enkelt välja att ladda ner &kde; 3.5 istället för förutgåvan &kde; 4.</para>
</entry>
</row>

<row id="conf-use-unsermake">
<entry
>use-unsermake</entry>
<entry
>Överskrider allmän</entry>
<entry
><para
>Sätt det här alternativet till <replaceable
>true</replaceable
> för att använda det experimentella programmet &unsermake; istället för &automake; när skriptet configure körs. Det kan orsaka väsentlig minskning av byggtiden, särskilt för <ulink url="http://www.csh.rit.edu/slashdot/distcc.html"
>distribuerade byggsystem</ulink
>. Alternativets förvalda värde är <replaceable
>true</replaceable
> (för de flesta moduler). </para>

<para
>Normalt, om du använder alternativet kommer &kdesvn-build; automatiskt att hålla &unsermake; uppdaterat. Det kan börja bli irriterande, särskilt om du hanterar &unsermake; själv Om det är fallet, kan du sätta alternativet till <quote
>self</quote
>, så använder &kdesvn-build; fortfarande &unsermake;, men gör ingenting särskilt för att hålla det uppdaterat. </para>
</entry>
</row>

</tbody>

</tgroup>
</table>

</chapter>

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

<para
>Skriptet 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>

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

<variablelist>

<varlistentry id="cmdline-async">
<term
><option
>--async</option
></term>
<listitem
><para
>Aktiverar <link linkend="conf-async"
>asynkront användningssätt</link
> för att uppdatera och bygga 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
><option
>--help</option
></term>
<listitem
><para
>Visa bara enkel hjälp om skriptet. </para
></listitem>
</varlistentry>

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

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

<varlistentry id="cmdline-color">
<term
><option
>--color</option
></term>
<listitem
><para
>Aktivera färglagd utmatning. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-nice">
<term
><option
>--nice=<replaceable
>värde</replaceable
></option
></term>
<listitem
><para
>Ställer in snällhetsvärdet till <replaceable
>värde</replaceable
> under den här körningen. <replaceable
>värde</replaceable
> ska vara mellan 0 och 20. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-no-async">
<term
><option
>--no-async</option
></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
><option
>--no-color</option
></term>
<listitem
><para
>Inaktivera färglagd utmatning. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-pretend">
<term
><option
>--pretend</option
> (eller <option
>-p</option
>)</term>
<listitem
><para
>Utför <emphasis
>inte</emphasis
> någonting, men beter sig som om det vore så. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-quiet">
<term
><option
>--quiet</option
> (eller <option
>-q</option
>)</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
><option
>--really-quiet</option
></term>
<listitem
><para
>Mata bara ut varningar och fel. </para
></listitem>
</varlistentry>

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

<varlistentry id="cmdline-svn-only">
<term
><option
>--svn-only</option
></term>
<listitem
><para
>Utför bara uppdatering av källkoden. </para
></listitem>
</varlistentry>

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

<varlistentry id="cmdline-ignore-modules">
<term
><option
>--ignore-modules</option
></term>
<listitem
><para
>Inkludera inte moduler som skickas på resten av kommandoraden under uppdaterings- och byggprocessen. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-no-svn">
<term
><option
>--no-svn</option
></term>
<listitem
><para
>Hoppa över att kontakta &subversion;-servern. </para
></listitem>
</varlistentry>

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

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

<varlistentry id="cmdline-debug">
<term
><option
>--debug</option
></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
><option
>--no-rebuild-on-fail</option
></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
><option
>--refresh-build</option
></term>
<listitem
><para
>Skapa om byggsystemet och bygg från grunden. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-reconfigure">
<term
><option
>--reconfigure</option
></term>
<listitem
><para
>Kör skriptet configure igen utan att rensa byggkatalogen. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-recreate-configure">
<term
><option
>--recreate-configure</option
></term>
<listitem
><para
>Kör <command
>make <option
>-f</option
> Makefile.cvs</command
> igen för att skapa skriptet configure, och fortsätt bygga som vanligt. Alternativet inbegriper <option
><link linkend="cmdline-reconfigure"
>--reconfigure</link
></option
>. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-resume-from">
<term
><option
>--resume-from</option
></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-svn"
><option
>--no-svn</option
></link
>. Du ska inte ange andra modulnamn på kommandoraden. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-rc-file">
<term
><option
>--rc-file</option
></term>
<listitem
><para
>som tolkar nästa kommandoradsväljare som filen att läsa konfigurationsinställningarna från. Förvalt värde för väljaren är ~/.kdesvn-buildrc. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-run">
<term
><option
>--run</option
></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
></listitem>
</varlistentry>

<varlistentry id="cmdline-prefix">
<term
><option
>--prefix=&lt;/sökväg/till/kde&gt;</option
></term>
<listitem
><para
>Det här låter dig ändra katalogen som &kde; installeras i från kommandoraden. Alternativet inbegriper <link linkend="cmdline-reconfigure"
><option
>--reconfigure</option
></link
>. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-build-system-only">
<term
><option
>--build-system-only</option
></term>
<listitem
><para
>Stoppa efter att ha kört <command
>make <option
>-f</option
> Makefile.cvs</command
>. Skriptet configure behöver fortfarande köras, vilket &kdesvn-build; gör nästa gång. Detta låter dig förbereda alla konfigureringsskript på en gång så att du kan titta på <command
>./configure <option
>--help</option
></command
> för varje modul, och redigera dina flaggor till configure i enlighet med det. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-install"
><term
><option
>--install</option
></term>
<listitem
><para
>Om detta är den enda kommandoradsväljaren, försöker skriptet installera alla moduler som har byggts med lyckat resultat, förutom qt-copy som inte behöver installeras. Om kommandoradsväljare anges efter <option
>--install</option
>, antas de alla vara moduler att installera. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-global-option">
<term
><option
>--&lt;option-name&gt;=</option
></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
><option
>--log-dir=<filename class="directory"
><replaceable
>/sökväg/till/katalog</replaceable
></filename
></option
></userinput
>. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-module-option">
<term
><option
>--&lt;modulnamn&gt;,&lt;alternativnamn&gt;=</option
></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. För att till exempel överskrida alternativet <link linkend="conf-use-unsermake"
>use-unsermake</link
> för kdemultimedia, skulle du skriva <option
>--kdemultimedia,use-unsermake=false</option
>. </para
></listitem>
</varlistentry>

</variablelist>

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

</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; strävar efter att bibehålla utmärkt stöd för modulen qt-copy som ingår i &kde;:s &subversion;-arkiv.</para>

<note
><para
>qt-copy är en kopia av källkoden för den senaste utgåvan av &Qt;-verktygslådan som används av &kde;. Den innehåller också en uppsättning programfixar och felförbättringsfixar som valfritt kan användas. Programfixarna fungerar fortfarande med &Qt;-biblioteket så att kod skapad genom att använda qt-copy går att köra med det vanliga &Qt;. </para
></note>

<para
>De flesta skillnader som krävs för qt-copy hanteras automatiskt av &kdesvn-build;, Dock finns det några skillnader som du kan behöva känna till.</para>

<itemizedlist>
<listitem
><para
>Normalt läggs värdet av &configure-flags; för en modul till i de allmänna inställningarna för &configure-flags;. Inställningen av &configure-flags; för qt-copy ersätter dock de allmänna inställningarna, eftersom de inte har motsvarande kommandorader. </para
></listitem>

<listitem
><para
>&kdesvn-build; definierar automatiskt några extra miljövariabler för att bygga qt-copy, som normalt inte krävs för resten av &kde;. </para
></listitem>

<listitem
><para
>qt-copy har också stöd för en valfri uppsättning programfixar som innehåller några felrättningar och optimeringar som ännu inte har kommit med i det officiella &Qt;. För att aktivera dem, sätt alternativet &apply-qt-patches; till <replaceable
>true</replaceable
>. Efter ändringen har gjorts, kan du behöva köra <userinput
><command
></command
> <option
>--refresh-build</option
> <option
>qt-copy</option
></userinput
>. </para
></listitem>

</itemizedlist>

</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>

<listitem
><para
>&kdesvn-build; justerar automatiskt miljön efter behov för att ta hänsyn till inställningen av alternativet &use-unsermake;. </para
></listitem>

</itemizedlist>

</sect2>

<sect2 id="build-priority">
<title
>Ändra byggprioritet i &kdesvn-build;</title>
<para
>Program kan nuförtiden 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>
</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>

<para
>För att använda funktionen måste alternativet &use-unsermake; vara aktiverat för modulen. Alternativet är normalt aktiverat, men vissa moduler stöder inte alternativet, och de förhindras automatiskt från att använda &unsermake;. Om du tror att du har aktiverat &unsermake;, och ändå inte ser en förloppsrapport när modulen byggs, kan det vara möjligt att modulen inte stöder &unsermake;.</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>

<sect3 id="limiting-using-inst-apps">
<title
>Kompilera några få kataloger från en fullständig modul</title>

<para
>Du kan använda alternativet &inst-apps; för att ange att bara några få kataloger i en hel modul ska byggas (men hela modulen laddas fortfarande ner). </para>

<para
>Alternativet är som kombinationen av &checkout-only; och &do-not-compile;: det laddar ner hela modulen som &do-not-compile;, men kompilerar bara katalogerna du anger, som &checkout-only;. På grund av detta är det oftast bättre att helt enkelt använda &checkout-only; istället. </para>

<para
>Samma varningar gäller som för de två övriga alternativen. Du måste konfigurera om modulen om du ändrar värde på &inst-apps;. </para>
</sect3>

</sect2>

<sect2 id="using-unsermake">
<title
>Använda &unsermake;</title>

<para
>&unsermake; är ett program som är konstruerat att kopplas in i &kde;:s byggsystem och förbättra byggprocessen genom att ersätta vissa av verktygen som normalt används (inklusive &automake; och &make;). Det är särskilt användbart för de som utför distribuerade kompileringar, eftersom det är mycket snabbare än det normala byggsystemet i den situationen. Dock är &unsermake; snabbare än konkurrenterna även vid när man bygger med en enda dator. </para>

<para
>Dessutom innehåller &unsermake; stöd för att uppskatta förloppet hos byggprocessen som pågår. &kdesvn-build; drar fördel av det för att tillhandahålla en byggförloppsindikator vid kompilering. Se också <xref linkend="build-progress"/>. </para>

<para
>&kdesvn-build; tillhandahåller stöd för att använda &unsermake; automatiskt. &kdesvn-build; använder normalt &unsermake; när det är möjligt att använda med en modul. </para>

<informalexample>
<para
>För att inaktivera stöd för &unsermake; i alla moduler, gör följande:</para>

<screen
>global
  use-unsermake false
end global
</screen>

<para
>För att aktivera stöd för &unsermake; för en enstaka modul, även om det är allmänt inaktiverat, gör följande:</para>

<screen
>module <replaceable
>modulnamn</replaceable>
  use-unsermake true

  # övriga alternativ anges här...
end module
</screen>
</informalexample>

<note
><para
>&kdesvn-build; uppdaterar automatiskt eller checkar ut &unsermake; när övriga uppdateringar utförs. Om du föredrar att hantera &unsermake; själv, är det möjligt att göra det genom att ställa in värdet för &use-unsermake; till <replaceable
>self</replaceable
> istället för <replaceable
>true</replaceable
>.</para>

<para
>När det är gjort, försöker &kdesvn-build; fortfarande använda &unsermake;, men utför inte uppdateringar. Du kan antingen ändra &binpath; för att peka på rätt &unsermake;-katalog, eller checka ut och uppdatera &unsermake; själv från dess modul (för närvarande kdenonbeta/unsermake). </para
></note>

</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
>På grund av diverse problem med &kde;:s byggsystem, där vissa mildras genom att använda &unsermake;, utför &kdesvn-build; automatiskt en serie steg för att automatiskt försöka få en modul att bygga om det misslyckas.</para>

<orderedlist>
<listitem
><para
>Vid första misslyckandet, kör &kdesvn-build; helt enkelt om kommandot <command
>make</command
>. Tro det eller ej, men det fungerar verkligen ibland, och misslyckas annars snabbt om det inte fungerar. </para
></listitem>

<listitem
><para
>Vid andra misslyckandet, försöker &kdesvn-build; konfigurera om modulen och därefter bygga om den. Det fångar ofta situationer där ändring av en byggsystemfil kräver omkonfigurering men byggsystemet inte utförde steget automatiskt. </para>

<para
>Modulens byggkatalog lämnas intakt i detta steg, så förutom inställningssteget, misslyckas det också snabbt om byggprocessen inte kan genomföras. </para>
</listitem>

<listitem
><para
>Om modulen ändå misslyckas att byggas, ger &kdesvn-build; upp och går vidare med nästa modul. Det finns dock ändå saker du kan göra för att <link linkend="manual-rebuilds"
>försöka få modulen att byggas manuellt</link
>. </para
></listitem>
</orderedlist>

<note
><para
>&kdesvn-build; detekterar de flesta fall då byggsystemet behöver konfigureras om och gör automatisk omkonfigurering i dessa fall. </para>

<para
>Dessutom, om &kdesvn-build; bygger modulen för första gången, hoppas alla dessa steg över, eftersom en ren ombyggnad oftast inte misslyckas utom om det finns ett verkligt fel.</para>
</note>
</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
></filename
></userinput>
<prompt
>%</prompt
> <userinput
><command
>kdesvn-build</command
></userinput
>
</screen>
</informalexample>
</sect3>

<sect3 id="controlling-rebuild-behavior">
<title
>Styra ombyggnadsbeteende</title>
<para
>Du kanske inte vill att &kdesvn-build; alltid ska försöka bygga om en modul. Du kan inaktivera beteendet permanent genom att ändra alternativet &no-rebuild-on-fail; till värdet <replaceable
>true</replaceable
>.</para>

<para
>Du kan tillfälligt inaktivera beteendet (för ett kommando) genom att använda kommandoradsväljaren &cmd-no-rebuild-on-fail;.</para>

<informalexample>
<screen
><prompt
>%</prompt
> <userinput
><command
>kdesvn-build</command
> <option
>--no-rebuild-on-fail</option
></userinput
>
</screen>
</informalexample>

</sect3>

</sect2>

<sect2 id="changing-environment">
<title
>Ändra inställning av miljövariabler</title>
<para
>&kdesvn-build; läser inte miljön från anropet som den stora majoriteten av program gör. Istället använder det inställningarna som läses från <link linkend="configure-data"
>inställningsfilen</link
> för att skapa miljön. Det görs i huvudsak för att försäkra sig om att när du bygger en modul, kan byggprocessen upprepas. Med andra ord, kan &kdesvn-build; bygga en modul även om du glömt vad du ställt in miljövariablerna till i skalet du kör &kdesvn-build; från.</para>

<para
>Dock kan du vilja ändra inställning av miljövariabler som &kdesvn-build; inte direkt tillhandahåller ett alternativ för. 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äljaren &cmd-resume-from;.</para>

<note
><para
>Genom att använda &cmd-resume-from; 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>

</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 kdenonbeta under en fullständig körning:</para>
<screen
><prompt
>%</prompt
> <userinput
><command
>kdesvn-build</command
> <option
>--ignore-modules</option
> <replaceable
>extragear/multimedia kdenonbeta</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>

<para
>Inaktivera &unsermake; från kommandoraden. <option
>--refresh-build</option
> används för att tvinga att ändringen av &unsermake; får effekt.</para>

<screen
><prompt
>%</prompt
> <userinput
><command
>kdesvn-build</command
> <option
>--pretend</option
> <option
>--refresh-build</option
> <option
>--<replaceable
>use-unsermake</replaceable
>=<replaceable
>false</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="building-apidox">
<title
>Bygga dokumentation av programmeringsgränssnitt</title>
<para
>&kdesvn-build; kan automatiskt installera ytterligare dokumentation som skapas från källkoden i en modul. Det fungerar bara för vissa moduler, och är bara användbart för utvecklare av &kde;.</para>

<important>
<para
>Funktionen fungerar inte för moduler som byggs med byggsystemet <link linkend="using-unsermake"
>&unsermake;</link
>. Eftersom det är förvalt byggsystem för moduler som kan använda &unsermake;, måste du inaktivera stöd för &unsermake;. Se <link linkend="example-apidox"
>exemplet nedan</link
> för mer information. </para>
</important>

<para
>För att aktivera det, sätt helt enkelt alternativet &apidox; till <replaceable
>true</replaceable
> i <link linkend="configure-data"
>inställningsfilen</link
> för modulen där du vill ha dokumentation. Alla moduler har inte dokumentation. Moduler som har det omfattar kdelibs, kdebase och kdepim. </para>

<note>
<para
>Om du kommer åt Internet, finns dokumentation av programmeringsgränssnittet för &kde; också direkt. Du kan använda genvägen <quote
>kde:<replaceable
>klassnamn</replaceable
></quote
> i &konqueror;. </para>

<para
>Du kan också besöka webbplatsen för &kde;:s dokumentation på <ulink url="http://www.englishbreakfastnetwork.org/apidocs/"
>English Breakfast Network</ulink
>. </para>

<para
>Till sist är det möjligt att ladda ner dokumentationen på arkiverad form från <ulink url="http://developer.kde.org/documentation/library/libraryref.php"
>&kde; Developer's Corner</ulink
>. Klicka på versionen av &kde; som du vill ha dokument för, och därefter kan du ladda ner en kopia att använda i nerkopplat läge för modulen du vill. </para>
</note>

<informalexample id="example-apidox">
<para
>Installera dokumentation av programmeringsgränssnitt för kdelibs:</para>

<screen
>module kdelibs
  use-unsermake false    # unsermake kan inte bygga apidox
  apidox        true     # bygg och installera apidox
end module
</screen>
</informalexample>

</sect2>

<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 455 Mibyte, medan källkoden för kdebase bara är omkring 195 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://wiki.kde.org/tiki-index.php?page=KDECMakeIntro"
>&kde;:s webbjournal</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 &unsermake; (eller &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-inst-apps"
>inst-apps</link
>, <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
>. </para>

<para
>För vissa alternativ som inst-apps eller do-not-compile finns det dock ingen direkt motsvarighet, och de är inaktiverade. Om jag skulle hitta ett sätt att implementera dem med &cmake; kommer jag att göra det och aktivera alternativen igen. Dock fungerar i stort sett allting på samma sätt.</para>

<para
>Hela &kde; har inte överförts till &cmake; för närvarande. Till exempel är alternativet <link linkend="conf-apidox"
>apidox</link
> ganska oanvändbart till motsvarande infrastruktur är klar. Jag har försökt att varna för sådana saker, men alla brister kanske inte fångas av &kdesvn-build; just nu.</para>

</sect1>
</chapter>

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

</book>
