<?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 % Ukrainian "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
>Підручник зі скрипту &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
>Юрій</firstname
><surname
>Чорноіван</surname
><affiliation
><address
><email
>yurchor@ukr.net</email
></address
></affiliation
><contrib
>Переклад українською</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-08-09</date>
<releaseinfo
>1.6.3</releaseinfo>

<abstract>
<para
>&kdesvn-build; — це скрипт, який збирає і встановлює &kde; безпосередньо з початкових кодів, які можна знайти у сховищі SVN &kde;.</para>
</abstract>

<keywordset>
<keyword
>KDE</keyword>
<keyword
>kdesdk</keyword>
<keyword
>SVN</keyword>
<keyword
>Subversion</keyword>
<keyword
>Розробка KDE</keyword>
</keywordset>

</bookinfo>

<chapter id="introduction">
<title
>Вступ</title>

<para
>&kdesvn-build; — це скрипт, який допомагає користувачам встановити <ulink url="http://www.kde.org/"
>&kde;</ulink
> зі сховища <ulink url="http://subversion.tigris.org/"
>&subversion;</ulink
> цього стільничного середовища. </para>

<para
>Тут наведено документацію з синтаксису і параметрів <link linkend="configure-data"
>файла налаштувань</link
> &kdesvn-build;, <link linkend="cmdline"
>параметрів командного рядка програми</link
>, <link linkend="features"
>можливостей програми</link
>, а також здійснено <link linkend="getting-started"
>огляд</link
> всіх необхідних для збирання &kde; з початкових кодів кроків, зокрема дій, які вам слід виконати за допомогою інших інструментів, або, іншими словами, дій, які не може бути виконано автоматично скриптом &kdesvn-build;. </para>

</chapter>

<chapter id="getting-started">
<title
>Початок роботи</title>

<para
>У цій главі ми продемонструємо, як скористатися &kdesvn-build; для звантаження модулів зі сховища &kde; і їх збирання. Тут ми наведемо базові пояснення щодо структури системи керування версіями &kde; і кроків, які вам слід виконати до запуску скрипту. </para>

<para
>Всі питання, обговорені у цій главі, докладніше викладено у <ulink url="http://quality.kde.org/develop/cvsguide/buildstep.php"
>Покроковому довіднику зі збирання &kde; з початкових кодів</ulink
>, розміщеному на <ulink url="http://quality.kde.org"
>веб-сайті команди контролю за якістю &kde;</ulink
>. Якщо ви компілюєте &kde; вперше, вам варто прочитати цей підручник або проконсультуватися з цим довідником. Там ви знайдете докладні відомості щодо інструментів пакування та потрібних пакунків, типових проблем з компіляцією, стратегій і запуску нововстановленого &kde;. </para>

<para
>Крім того, у вікі <ulink url="http://techbase.kde.org/"
>&kde; TechBase</ulink
> міститься перелік дій для <ulink url="http://techbase.kde.org/index.php?title=Getting_Started/Build/KDE4"
>збирання &kde; з вихідних кодів</ulink
>. </para>

<sect1 id="before-building">
<title
>Підготовка системи до збирання &kde;</title>

<sect2 id="before-building-users">
<title
>Створення нового облікового запису користувача</title>

<para
>Рекомендуємо вам звантажувати і збирати &kde; на окремому обліковому запису користувача. Якщо у вашій системі вже встановлено пакунки &kde;, найкращим вибором є створення окремого (призначеного) користувача для збирання і запуску нового &kde;. Перевагою збирання &kde; для призначеного користувача є те, що ви не зможете пошкодити базову систему, а отже збережете можливість комфортної роботи, якщо щось піде не так. </para>

<para
>Пізніше ви зможете виконати встановлення у систему, якщо забажаєте. У цьому документі не описано встановлення у систему. Якщо ви виконуєте загальносистемне встановлення, вам має бути добре відомо, що саме ви робите. Якщо це не так, можливо, вам слід звернутися до документації або довідкових сайтів з вашого дистрибутива з метою правильної підготовки і використання встановленого у систему стільничного середовища. </para>

</sect2>
<sect2 id="before-building-preparation">
<title
>Перевірка готовності вашої системи до збирання &kde; з початкових кодів</title>

<para
>Перш ніж почати користування скриптом &kdesvn-build; (або будь-якого іншого інструменту для збирання), вам слід встановити інструменти для розробки і бібліотеки, потрібні для &kde;. Повний список потрібних інструментів можна знайти на сторінці <ulink url="http://www.kde.org/info/requirements/3.5.php"
>Вимог для збирання &kde;</ulink
>. Список потрібних пакунків для &kde; 4 можна знайти на сторінці <ulink url="http://techbase.kde.org/"
>KDE TechBase</ulink
>. </para>

<para
>Ось список деяких з потрібних для збирання програм:</para>
<itemizedlist>

<listitem
><para
>Якщо ви збираєте &kde; 3, вам слід встановити GNU Autotools (тобто &automake; і &autoconf;).</para
></listitem>

<listitem
><para
>Якщо ви збираєте &kde; 4, вам потрібно встановити &cmake;. Номер потрібної версії може змінюватися, залежно від версії &kde; 4, яку ви збираєте, точніше про все можна дізнатися з сайта TechBase.</para
></listitem>

<listitem
><para
>Клієнтська програма &subversion; з підтримкою Secure HTTP (https). Щоб переконатися, що потрібну підтримку зібрано, ви можете виконати команду <userinput
><command
>svn <option
>--version</option
></command
></userinput
>. Якщо модуль ra_dav повідомляє, що він підтримує схему https, систему налаштовано належним чином.</para
></listitem>

<listitem
><para
>Компілятор <application
>gcc</application
> з підтримкою C++. Найкраще підтримуються версії 3.3 і вище.</para
></listitem>

<listitem
><para
>Не забудьте прочитати сторінку <ulink url="http://www.kde.org/info/requirements/3.5.php"
>вимог для компіляції &kde;</ulink
>, щоб переконатися, що включено всі інші потрібні бібліотеки.</para
></listitem>

</itemizedlist>

<para
>Єдиним винятком є бібліотека &Qt;. Зазвичай, &kdesvn-build; встановлюватиме копію &Qt;, встановили ви його чи ні, отже вам не потрібно попередньо встановлювати цю бібліотеку. Якщо ви не бажаєте скористатися копією &Qt;, вам слід виконати такі кроки: </para>

<itemizedlist>
<listitem>
  <para
>Не забудьте вилучити модуль qt-copy з вашого <link linkend="configure-data"
>файла налаштувань</link
>, оскільки він вам не потрібен, якщо ви не вилучите цей модуль, збирання середовища триватиме довше.</para>
</listitem>

<listitem>
  <para
>Змініть параметр <link linkend="conf-qtdir"
>qtdir</link
> у вашому <link linkend="configure-data"
>файлі налаштувань</link
> так, щоб він вказував на &Qt; вашої системи. Це, зазвичай еквівалентно до встановлення змінної середовища для вашої системи $<envar
>QTDIR</envar
>.</para>
</listitem>

<listitem>
  <para
>Якщо у вашій системі ще не встановлено бібліотеку &Qt;, встановіть її, зокрема всі відповідні пакунки -dev або -devel. Для збирання &kde; 3.5 вам потрібна версія не старіша за &Qt; 3.3, для збирання ж &kde; 4 — версія &Qt; 4.4.</para>

  <note
><para
>Якщо ви збираєте &kde; 4, наполегливо рекомендуємо вам скористатися версією qt-copy з &Qt;, так можна забезпечити застосування рекомендованих латок (це типова поведінка, якою керує <link linkend="conf-apply-qt-patches"
>параметр apply-qt-patches</link
>).</para
></note>
</listitem>
</itemizedlist>

<para
>Деякі з цих пакунків поділено на бібліотеки (або програми) і пакунки для розробки. Вам знадобляться принаймні програма або бібліотека і її пакунок для розробки. Якщо ви не певні, встановлюйте все. Перелік потрібних вам бібліотек залежатиме від переліку модулів, які ви маєте намір зібрати, кожен з модулів має власні вимоги. На сторінці <ulink url="http://techbase.kde.org/Getting_Started/Build/KDE4#Required_packages_from_your_distribution"
>&kde; TechBase</ulink
> ви знайдете докладніші відомості щодо специфічних інструментів і методик, які використовуються для встановлення і пошуку потрібного програмного забезпечення. </para>

</sect2>

<sect2 id="before-building-prepare-script">
<title
>Налаштування &kdesvn-build;</title>

<sect3 id="get-kdesvn-build">
<title
>Встановлення &kdesvn-build;</title>
<para
>Ймовірно, у вашій системі вже встановлено версію скрипту &kdesvn-build;. Але, якщо це не так, ви можете звантажити його з <ulink url="http://kdesvn-build.kde.org/"
>домашньої сторінки &kdesvn-build;</ulink
> або знайти цей скрипт у його домівці у сховищі кодів &kde;.</para>

<note
><para
>&kdesvn-build; включено до модуля kdesdk, цей модуль у переважній кількості випадків вже встановлено вашим дистрибутивом. Якщо ви звантажили &kdesvn-build; з мережі, переконайтеся, що ви використовуєте саме звантажену вами версію. Ви можете скористатися параметром команди --version, щоб переконатися, що ви запустили потрібну вам версію.</para
></note>

<orderedlist>
<listitem
><para
>Щоб звантажити &kdesvn-build; з домашньої сторінки програми, просто відкрийте <ulink url="http://kdesvn-build.kde.org/"
>домашню сторінку &kdesvn-build;</ulink
> і звантажте найостанніший відповідний випуск. Цей випуск буде запаковано, розпакувати його можна за допомогою &ark; або <command
>tar</command
>. Архів міститиме сам скрипт &kdesvn-build; і простий файл налаштування (<filename
>kdesvn-buildrc-sample</filename
>).</para
></listitem>

<listitem
><para
>Крім того, ви можете звантажити зі сховища його вихідних кодів &kdesvn-build; за адресою: <ulink url="http://websvn.kde.org/trunk/KDE/kdesdk/scripts/"
>http://websvn.kde.org/trunk/KDE/kdesdk/scripts/</ulink
>. За цією адресою знаходиться каталог скриптів набору для розробки програмного забезпечення &kde;, який є домашнім для &kdesvn-build;. Ви можете натиснути запис <filename
>kdesvn-build</filename
>: ваш переглядач відкриє сторінку, з якої ви можете звантажити останню версію програми. Виконайте звантаження і збережіть скрипт до зручного для вас місця на жорсткому диску вашого комп’ютера. Звантажте також <filename
>kdesvn-buildrc-sample</filename
>, якщо цей файл вам потрібен.</para
></listitem>
</orderedlist>

<para
>Байдуже, яку методику ви використовуєте, вам слід не забути зробити файл <filename
>kdesvn-build</filename
> виконуваним. Для зручності вам слід розташувати скрипт у каталозі, вказаному у змінній середовища <envar
>PATH</envar
>, у іншому випадку ви можете зіткнутися з тим, що оболонка повідомить вам про те, що команду не було знайдено, крім того, ви можете помилково запустити застарілу встановлену версію програми.</para>
</sect3>

<sect3 id="setup-rcfile">
<title
>Підготовка файла налаштувань</title>

<para
>Хоча для роботи &kdesvn-build; не потрібно створювати <link linkend="configure-data"
>файл налаштувань</link
>, такий файл зробить виконання потрібних завдань набагато простішим. За допомогою <link linkend="configure-data"
>файла налаштувань</link
> ви можете керувати переліком модулів, які буде встановлено, або вилучити модулі, які ви не бажаєте встановлювати. Типово, &kdesvn-build; встановлює &kde; з найзагальнішими параметрами, які можуть не відповідати вашим потребам. Отже, найкращим способом роботи програми є використання <link linkend="configure-data"
>файла налаштувань</link
>. </para>

<para
><link linkend="configure-data"
>Файл налаштувань</link
> повинен називатися <filename
>.kdesvn-buildrc</filename
>. Цей файл слід встановити у вашій домашній теці (<filename class="directory"
>~/</filename
>), у ньому містяться всі дані налаштування, потрібні для запуску скрипту, зокрема параметри налаштування, параметри компіляції, адреса вихідних кодів, назва теки призначення для встановлення (префікс), модулі, які слід зібрати тощо. Типові дані налаштування можна знайти у файлі <filename
>kdesvn-buildrc-sample</filename
>, ви можете зробити копію цього файла з назвою <filename
>~/.kdesvn-buildrc</filename
>, а потім змінити її. </para>

<para
>Докладніші відомості щодо синтаксису <link linkend="configure-data"
>файла налаштувань</link
> можна знайти у розділах <xref linkend="configure-data"/> і <xref linkend="kdesvn-buildrc"/>. </para>

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

<sect1 id="configure-data">
<title
>Визначення даних налаштувань</title>

<para
>Щоб користуватися &kdesvn-build;, вам слід мати файл з назвою <filename
>.kdesvn-buildrc</filename
> у вашому домашньому каталозі, у цьому файлі визначаються загальні параметри і перелік модулів, які ви бажаєте звантажити і зібрати. </para>

<note
><para
>Ви можете скористатися іншим файлами налаштувань &kdesvn-build;, відповідну процедуру описано у розділі <xref linkend="kdesvn-buildrc"/>. Якщо у вас є потреба у використанні декількох наборів налаштувань, будь ласка, ознайомтеся з цим розділом. Надалі ми вважатимемо, що налаштування зберігаються у файлі <filename
>~/.kdesvn-buildrc</filename
>.</para
></note>

<para
>Найпростішим способом початкового налаштування є використання файла <filename
>kdesvn-buildrc-sample</filename
> як зразка. Достатньо змінити загальні параметри так, щоб вони відповідали вашим потребам, а також змінити список модулів, які ви бажаєте зібрати. </para>

<para
>Насправді типових параметрів буде достатньо для збирання &kde;. Ймовірно, що серед параметрів, які ви захочете змінити, можуть бути: <itemizedlist>
<listitem
><para
><link linkend="conf-binpath"
>binpath</link
>, призначений для зміни списку каталогів, у яких скрипт шукатиме команди. Цей параметр у точності відповідає змінній<envar
>PATH</envar
> оболонки.</para
></listitem>

<listitem
><para
><link linkend="conf-use-stable-kde"
>use-stable-kde</link
> призначений для зміни типової версії для збирання модулів &kde;. За звичайних умов &kdesvn-build; збиратиме поточну версію (trunk) &kde; (зараз поточною версією є &kde; 4). Якщо ви бажаєте зібрати останній стабільний випуск &kde; замість використання пакунків з дистрибутива (поточною стабільною гілкою є &kde; 3.5) вам слід встановити для цього параметра значення <replaceable
>true</replaceable
>. </para
></listitem>

<listitem
><para
><link linkend="conf-kdedir"
>kdedir</link
>, який змінює каталог призначення, куди буде встановлено &kde;. Типовим є каталог <filename class="directory"
>~/kde</filename
>, тобто середовище буде встановлено для одного (вашого) користувача.</para
></listitem>

<listitem
><para
><link linkend="conf-qtdir"
>qtdir</link
>, який керує шляхом до встановленої бібліотеки &Qt;, яку слід використовувати. Типовим є використання модуля qt-copy зі сховища &subversion; &kde; (<filename class="directory"
>~/kdesvn/build/qt-copy</filename
>).</para>

<para
>Для версій Qt, які підтримують встановлення, цей параметр керує також тим, куди слід встановлювати qt-copy.</para
></listitem>

<listitem
><para
><link linkend="conf-svn-server"
>svn-server</link
>, який визначає адресу &url;, звідки слід звантажувати вихідні коди. Цей параметр буде корисним, якщо ви є розробником з <ulink url="http://developer.kde.org/documentation/misc/firststepsaccount.php"
>обліковим записом у  &subversion; &kde;</ulink
>.</para
></listitem>
</itemizedlist>
</para>

<para
>Після розділу загальних параметрів (global) йде список модулів для збирання, обмежених рядками module ... end module. Вам слід перевірити, що список цих модулів збігається зі списком модулів, які ви маєте намір зібрати. Типових параметрів з файла <filename
>kdesvn-buildrc-sample</filename
> має бути достатньо для отримання повноцінного встановлення &kde;. Збережіть результат редагування як файл <filename
>.kdesvn-buildrc</filename
> у вашій домашній теці. </para>

<para
>Якщо ви бажаєте точніше налаштувати файл <filename
>.kdesvn-buildrc</filename
>, зверніться до розділу <xref linkend="kdesvn-buildrc"/>, щоб отримати докладніші відомості щодо всіх параметрів налаштування. </para>

</sect1>

<sect1 id="building-and-troubleshooting">
<title
>Використання скрипту &kdesvn-build;</title>

<para
>Тепер ви підготувалися до запуску скрипту. У вікні термінала увійдіть до системи від імені користувача, якого ви використаєте для компіляції &kde;, і виконайте команду: <screen
><prompt
>&percnt;</prompt
><command
>su</command
> <option
>-</option
> <replaceable
>назва_облікового_запису</replaceable>
<prompt
>&percnt;</prompt
><command
>kdesvn-build</command
>
</screen>
</para>

<para
>Тепер скрипт має почати звантаження вихідних кодів і їх компіляцію. Залежно від кількості модулів, які ви обрали для звантаження, може так статися, що &kdesvn-build; не зможе з першого разу зібрати &kde;. Але вам не слід впадати у відчай! </para>

<para
>&kdesvn-build; записує до журналу дані, виведені всіма виконаними скриптом командами. Типово, файли журналу зберігаються у теці <filename class="directory"
>~/kdesvn/log</filename
>. Щоб дізнатися про причину помилки для модуля у останній команді &kdesvn-build;, зазвичай, досить зазирнути до файла <filename class="directory"
>~/kdesvn/log/latest/<replaceable
>назва модуля</replaceable
>/error.log</filename
>.</para>

<para
>У цьому файлі ви знайдете повідомлення про помилку, яка призвела до невдалої спроби збирання модуля. Якщо у нижній частині цього файла ви бачите повідомлення про відсутність певних пакунків, спробуйте встановити пакунок (зокрема відповідні пакунки -dev) перед повторною спробою збирання модуля, і передайте скрипту параметр <link linkend="cmdline-reconfigure"
>--reconfigure</link
> після встановлення пакунків, яких не вистачає.</para>

<para
>Або, якщо помилка є помилкою збирання, ймовірно, що помилка пов’язана з вадою вихідних кодів &kde;, яку, як ми сподіваємося, буде усунуто протягом декількох днів. Якщо цю помилку не буде усунуто протягом цього часу, не вагайтеся і напишіть листа на адресу <email
>kde-devel@kde.org</email
> (можливо, вам доведеться оформити підписку на цей список листування), щоб повідомити розробникам про невдалу спробу збирання.</para>

<para
>Ви можете знайти приклади помилок і знайти способи їх усування, а також загальні підказки та стратегії збирання &kde; на сторінці <ulink url="http://quality.kde.org/develop/cvsguide/buildstep.php#step1"
>Покрокових настанов зі збирання &kde;</ulink
>. </para>

<note
><para
>Для отримання докладніших відомостей щодо можливостей журналювання &kdesvn-build;, будь ласка, зверніться до розділу <xref linkend="kdesvn-build-logging"/>.</para
></note>

</sect1>

<sect1 id="environment">
<title
>Налаштування середовища на запуск зібраного &kde;</title>

<para
>Припустімо, що ви увійшли до системи від імені призначеного для збирання &kde; користувача, і що у системі вже встановлено якусь версію &kde;. В такому випадку запуск вашої копії &kde; може бути дещо ускладненим, оскільки зібране &kde; має отримати пріоритет над старою версією. Вам слід змінити змінні середовища, щоб забезпечити запуск потрібної версії середовища. </para>

<sect2 id="changing-profile">
<title
>Зміна ваших параметрів профілю запуску</title>

<important
><para
>Файл <filename
>.bash_profile</filename
> є файлом параметрів входу до системи популярної оболонки <application
>bash</application
>, яка використовується у багатьох дистрибутивах &Linux;. Якщо ви використовуєте іншу оболонку, можливо, вам доведеться скоригувати приклади, наведені у цьому розділі, так, щоб вони відповідали оболонці, яку ви використовуєте.</para
></important>

<para
>Відкрийте або створіть файл <filename
>.bash_profile</filename
> у домашньому каталозі за допомогою вашого улюбленого редактора, і додайте в кінець файла наступні рядки. Якщо ви збираєте модуль qt-copy (це типова поведінка), додайте: <programlisting>
QTDIR=(шлях до qtdir)   # Типовим є ~/kdesvn/build/qt-copy.
KDEDIR=(шлях до kdedir) # Типовим є ~/kde.
KDEDIRS=$KDEDIR
PATH=$KDEDIR/bin:$QTDIR/bin:$PATH
MANPATH=$QTDIR/doc/man:$MANPATH

# Дійте у відповідності до того, чи встановлено змінну LD_LIBRARY_PATH.
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
> або, якщо ви не збираєте qt-copy (а замість неї використовуєте системну бібліотеку &Qt;), додайте такі рядки: <programlisting
>KDEDIR=(шлях до каталогу kde)  # Наприклад, типово ~/kde.
KDEDIRS=$KDEDIR
PATH=$KDEDIR/bin:$QTDIR/bin:$PATH

# Діяти відповідно, якщо ще не встановлено LD_LIBRARY_PATH.
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
>Якщо ви не використовуєте призначеного користувача, встановіть іншу змінну середовища $<envar
>KDEHOME</envar
> для вашого нового середовища у вашому <filename
>.bash_profile</filename
>: <programlisting
>export KDEHOME="${HOME}/.kde-svn"

# Створити каталог, якщо це потрібно
[ ! -e ~/.kde-svn ] &amp;&amp; mkdir ~/.kde-svn
</programlisting>
</para>

<note>
<para
>Якщо пізніше ваше меню KDE буде порожнім, або переповненим записами програм з вашого дистрибутива, можливо, вам доведеться встановити змінну середовища <acronym
>XDG</acronym
> у вашому файлі <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
>Запуск &kde;</title>

<para
>Тепер, коли ви налаштували параметри вашого середовища на використання належної версії &kde;, вам також слід переконатися, що ви використовуєте правильний скрипт <command
>startkde</command
>. </para>

<para
>Відкрийте текстовий файл <filename
>.xinitrc</filename
> з вашого домашнього каталогу або за потреби створіть його. Додайте до файла такий рядок: <programlisting
><command
>exec</command
> <option
>${KDEDIR}/bin/startkde</option
>
</programlisting>
</para>

<important
><para
>У деяких дистрибутивах, ймовірно, вам доведеться виконати певні дії з файлом <filename
>.xsession</filename
>, який також знаходиться у вашому домашньому каталозі. Такі дії знадобляться, якщо ви використовуєте графічні інструменти керування входом до системи, такими як &kdm;, <application
>gdm</application
> або <application
>xdm</application
>.</para>
</important>

<para
>Тепер запустіть вашу свіжу версію &kde;: у системах &BSD; і &Linux; з підтримкою віртуальних терміналів натискання комбінацій клавіш <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>F1</keycap
></keycombo
> ... <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>F12</keycap
></keycombo
> використовується для перемикання до віртуальних консолей з номерами від 1 до 12. Таким чином, ви можете запускати декілька стільничних середовищ одночасно. Перші шість терміналів є текстовими, а наступні шість — графічними. </para>

<para
>Якщо після запуску вашого комп’ютера ви бачите інструмент графічного входу до системи, ви можете скористатися новим середовищем &kde;, навіть якщо його пункту немає у списку. У більшості інструментів входу до системи, зокрема у &kdm;, є пункт, призначений для <quote
>Нетипового сеансу</quote
>. За використання цього пункту параметри вашого сеансу буде завантажено з файла <filename
>.xsession</filename
> у вашому домашньому каталозі. Якщо ви вже змінили цей файл у спосіб, описаний вище, використання цього пункту завантажить ваш новий встановлений &kde;. </para>

<para
>Якщо це не так, ви можете спробувати інший спосіб, який, зазвичай, працює: натисніть комбінацію клавіш <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>F2</keycap
></keycombo
> і ви побачите текстовий термінал. Введіть ваші реєстраційні дані вашого призначеного користувача і введіть команду: </para>

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

<tip>
<para
>Ви можете запускати &kde;, зібраний з вихідних кодів, і ваш старий &kde; одночасно! Увійдіть до системи за допомогою реєстраційних даних вашого звичайного користувача, запустіть стабільну версію стільниці &kde;. Натисніть комбінацію клавіш <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>F2</keycap
></keycombo
> (або <keycap
>F1</keycap
>, <keycap
>F3</keycap
> тощо), — ви побачите текстовий термінал. Увійдіть до системи від імені вашого призначеного користувача &subversion; &kde; і введіть команду:</para>

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

<para
>Ви можете повернутися до стільниці &kde; вашого звичайного користувача натисканням клавіатурного скорочення у вже запущеній стільниці. Цією комбінацією, зазвичай, є <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>F7</keycap
></keycombo
>, можливо, у вашому випадку останньою клавішею буде <keycap
>F6</keycap
> або <keycap
>F8</keycap
>. Щоб повернутися до вашої зібраної &kdesvn-build; версії &kde;, ви можете скористатися подібною є комбінацією клавіш, але у ній останньою буде інша функціональна клавіша. Наприклад, якщо вам потрібно було ввести <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>F7</keycap
></keycombo
>, щоб перемкнути на вашу звичайну версію &kde;, вам доведеться ввести <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>F8</keycap
></keycombo
>, щоб повернутися до вашого зібраного &kdesvn-build; &kde;.</para>
</tip>

</sect2>
</sect1>

</chapter>

<chapter id="features">
<title
>Можливості скрипту</title>

<sect1 id="features-overview">
<title
>Огляд можливостей</title>

<para
>Серед можливостей &kdesvn-build;: </para>

<itemizedlist>

<listitem
><para
>Підтримка <link linkend="changing-verbosity"
>рівнів виводу повідомлень</link
>, починаючи від мінімальної кількості повідомлень, аж до максимальної кількості, потрібної для усування вад. </para
></listitem>

<listitem
><para
>&kdesvn-build; може, за допомогою <ulink url="http://kdesvn-build.kde.org/"
>веб-сайта &kdesvn-build;</ulink
> і сервера FTP &kde; (FTP з версії &kdesvn-build; 1.4), забезпечити пришвидшення звантаження певних модулів. Якщо модуль, який ви звантажуєте, вже було запаковано на веб-сайті, &kdesvn-build; звантажить знімок і підготує його до використання на вашому комп’ютері. </para>

<para
>Це пришвидшить роботу і полегшить вам звантаження з анонімних серверів &subversion; kde.org.</para>
</listitem>

<listitem
><para
>Додаткове пришвидшення можна отримати, якщо почати процес збирання модуля одразу після того, як вихідні коди цього модуля буде звантажено. (Ця можливість доступна починаючи з версії 1.6) </para
></listitem>

<listitem
><para
>Чудова підтримка <link linkend="using-qt-copy"
>модуля qt-copy</link
>, зокрема, за бажання, застосування латок виправлення вад і оптимізації модуля qt-copy. </para
></listitem>

<listitem
><para
>&kdesvn-build; має можливості <link linkend="kdesvn-build-color"
>розфарбування виведених даних</link
>. </para
></listitem>

<listitem
><para
>&kdesvn-build; не потребує наявності графічного інтерфейсу для роботи. Отже, ви можете збирати &kde; без потреби у переходу до графічного середовища. </para
></listitem>

<listitem
><para
>Підтримка встановлення типових параметрів для всіх модулів (зокрема параметрів компіляції і налаштування). Крім того, такі параметри, зазвичай, можна змінити для окремих модулів.</para>

<para
>Крім того, &kdesvn-build; <link linkend="kdesvn-build-std-flags"
>додасть стандартні прапорці</link
>, потрібні для зберігання повідомлень про труднощі і помилки: вам не доведеться копіювати їх для пошуку у мережі власноруч. </para
></listitem>

<listitem
><para
>&kdesvn-build; може звантажувати певні <link linkend="using-branches"
>гілки або версії</link
> модуля. Ви можете вказати для звантаження навіть окрему <link linkend="conf-revision"
>версію</link
> певного модуля. </para
></listitem>

<listitem
><para
>&kdesvn-build; може автоматично перемикати каталог вихідних кодів для звантаження з іншого сховища, гілки або випуску. Цю дію буде виконано автоматично, якщо ви зміните параметр, який вказує якою має бути адреса &url; сховища, але вам доведеться скористатися параметром <link linkend="cmdline-svn-only"
>--svn-only</link
>, щоб надати змогу &kdesvn-build; дізнатися про те, що скрипту можна виконувати таке перемикання. </para
></listitem>

<listitem
><para
>&kdesvn-build; може <link linkend="partial-builds"
>звантажувати лише частини модуля</link
> у тих випадках, коли вам потрібна лише одна програма з великого модуля. </para
></listitem>

<listitem
><para
>Для розробників: &kdesvn-build; <link linkend="ssh-agent-reminder"
>нагадає вам</link
> про те, що ви використовуєте svn+ssh://, але <application
>ssh-agent</application
> не запущено, оскільки таке використання призведе до повторних запитів на пароль від &ssh;. </para
></listitem>

<listitem
><para
>Можливість <link linkend="email-reports"
>звітів електронною поштою</link
> про помилки, які буде надіслано користувачеві. </para
></listitem>

<listitem
><para
>Можливість <link linkend="deleting-build-dir"
>вилучення каталогу збирання</link
> модуля після його встановлення для економії місця за рахунок збільшення наступного часу збирання. </para
></listitem>

<listitem
><para
>Адреси каталогів, які використовуються &kdesvn-build; можна налаштувати (навіть для окремих модулів). </para
></listitem>

<listitem
><para
>Можливість використання &sudo;, або іншої вказаної користувачем команди для <link linkend="root-installation"
>встановлення модулів</link
>, призначеної для того, щоб &kdesvn-build; не потрібно було запускати від імені привілейованого користувача. </para
></listitem>

<listitem
><para
>&kdesvn-build; типово запускається зі <link linkend="build-priority"
>зниженими правами доступу</link
>, це надає вам змогу використовувати &kdesvn-build; під час роботи з іншими програмами. </para
></listitem>

<listitem
><para
>Підтримка використання <link linkend="using-branches"
>випусків і гілок</link
> &subversion; &kde;. </para
></listitem>

<listitem
><para
>&kdesvn-build; використовуватиме методику, яка <link linkend="building-successfully"
>гарантує</link
> успішне збирання. </para
></listitem>

<listitem
><para
>Передбачено підтримку <link linkend="resuming"
>поновлення збирання</link
> з вказаного модуля. Ви навіть можете <link linkend="ignoring-modules"
>ігнорувати певні модулі</link
> тимчасово для вказаного сеансу збирання. </para
></listitem>

<listitem
><para
>&kdesvn-build; може швидко виконати <link linkend="partial-builds"
>часткове збирання</link
> модуля безпосередньо з командного рядка, якщо вам потрібно оновити лише частину модуля. </para
></listitem>

<listitem
><para
>&kdesvn-build; автоматично звантажить і створить потрібний каталог <filename class="directory"
>/admin</filename
> для модуля, якщо його не було у перший раз звантажено зі сховища &subversion; з якоїсь причини. Це стосується лише модулів &kde;, оскільки /admin не потрібен для qt-copy або модулів &kde; 4. </para
></listitem>

<listitem
><para
>&kdesvn-build; покаже <link linkend="build-progress"
>поступ збирання</link
> за використання &unsermake; і &cmake;, і завжди стежитиме за часом процесу збирання, отже ви знатимете про тривалість збирання. </para
></listitem>

<listitem
><para
>Виконання автоматичних спроб перебудови модулів, під час збирання яких було використано покрокове збирання (make), збирання яких могло бути порушено після певних внесків до сховища. </para
></listitem>

<listitem
><para
>Постачається з вбудованим набором типових параметрів, щоб відповідають збиранню базового середовища &kde; для одного користувача з анонімного сховища &subversion;. </para
></listitem>

<listitem
><para
>Вбудована підтримка &unsermake;. </para
></listitem>

<listitem
><para
>Використання тильди у параметрах налаштування. Наприклад, ви можете вказати: <programlisting
>qtdir ~/kdesvn/build/qt-copy</programlisting>
</para
></listitem>

<listitem
><para
>Автоматичне встановлення системи збирання з каталогом вихідних кодів, який відрізняється від каталогу збирання, що забезпечить чистоту каталогу вихідних кодів. </para
></listitem>

<listitem
><para
>Ви можете вказати загальні параметри, які буде застосовано до всіх звантажених модулів, крім того, ви можете визначити параметри для окремих модулів. </para
></listitem>

<listitem
><para
>Оскільки іноді autotools розсинхронізуються зі змінами у дереві вихідних кодів, ви можете примусити цей інструмент до перебудови модуля шляхом створення файла з назвою .refresh-me у каталозі збирання потрібного модуля або запуску &kdesvn-build; з параметром <option
>--refresh-build</option
>. </para
></listitem>

<listitem
><para
>Ви можете вказати значення різноманітних змінних середовища, які буде використано під час збирання, зокрема <envar
>KDEDIR</envar
>, <envar
>QTDIR</envar
>, <envar
>DO_NOT_COMPILE</envar
> і <envar
>CXXFLAGS</envar
>. </para
></listitem>

<listitem
><para
>Запис команд до журналу. Журнали датуватимуться і нумеруватимуться так, що у вас завжди буде журнал запуску скрипту. Крім того, буде створено символічне посилання з назвою latest, яке завжди вказуватиме на найсвіжіший запис журналу у каталозі журналу. </para
></listitem>

<listitem
><para
>Якщо ви використовуєте збирання &kde; для окремого користувача, а не загальносистемне збирання (для чого вам слід увійти до облікового запису root для встановлення), ви можете скористатися скриптом для встановлення середовища для вас. Автор не наглядає за цим кодом, крім того, цей код широко використовує виклики функції <function
>system()</function
>, отже, автор не рекомендує запускати цей код від імені користувача root. </para
></listitem>

<listitem
><para
>Ви можете скористатися параметром <link linkend="conf-make-install-prefix"
>make-install-prefix</link
> для того, щоб додати перед рядком команди <userinput
><command
>make</command
> <option
>install</option
></userinput
> окрему команду, це корисно, якщо ви використовуєте &sudo;. </para
></listitem>

<listitem
><para
>Ви можете звантажити лише частину модуля &subversion; &kde;. Наприклад, ви можете звантажити лише <application
>taglib</application
> з <application
>kdesupport</application
> або лише <application
>K3B</application
> з <application
>extragear/multimedia</application
>. Скрипт автоматично звантажить <application
>kde-common</application
> за потреби у працездатності зібраного програмного забезпечення. </para
></listitem>

<listitem
><para
>Ви можете вказати програмі, що слід виконати фальшиву послідовність операцій. Якщо ви передасте параметр <option
>--pretend</option
> або <option
>-p</option
> до рядка команди, скрипт надасть вам дуже докладний опис команд, які потрібно виконати скрипту, без справжнього виконання команд. </para
></listitem>

</itemizedlist>

</sect1>

<sect1 id="kdesvn-build-logging">
<title
>Запис журналів збирання &kdesvn-build;</title>

<sect2 id="logging-overview">
<title
>Огляд ведення журналу</title>

<para
>Ведення журналу — це можливість &kdesvn-build;, за використання якої дані, виведені будь-якої командою, яку запускає &kdesvn-build;, буде збережено до файла для наступного вивчення, якщо це буде потрібно. Так зроблено, тому що ці дані часто потрібні для визначення причин помилки під час збирання, оскільки існує багато причин, через які збирання може бути невдалим.</para>

<sect3 id="log-directory-layout">
<title
>Компонування каталогів журналу</title>

<para
>Журнали завжди зберігаються у каталозі журналів. Адреса каталогу журналів визначається параметром <link linkend="conf-log-dir"
>log-dir</link
>, типовим значенням якого є <filename class="directory"
><symbol
>${source-dir}</symbol
>/log</filename
> (де <symbol
>${source-dir}</symbol
> є значенням параметра <link linkend="conf-source-dir"
>source-dir</link
>. Надалі у цьому розділі ми посилатимемося на значення відповідного параметра як <symbol
>${log-dir}</symbol
>).</para>

<para
>У каталозі <symbol
>${log-dir}</symbol
> буде створено набір каталогів, по одному на кожен запуск &kdesvn-build;. Кожен з каталогів матиме назву, що відбиватиме дату запуску скрипту і номер запуску. Наприклад, для другого запуску &kdesvn-build; 26 травня 2009 року буде створено каталог з назвою <filename
>2009-05-26-02</filename
>, де 2009-05-26 позначатиме дату а -02 порядковий номер запуску.</para>

<para
>Крім того, для зручності, &kdesvn-build; створить посилання на журнали останнього запуску з назвою <filename class="directory"
>latest</filename
>. Отже, журнали для найостаннішого запуску &kdesvn-build; мають завжди зберігатися у теці <filename class="directory"
><symbol
>${log-dir}</symbol
>/latest</filename
>. </para>

<para
>Крім того, кожен з каталогів запусків &kdesvn-build; сам містить набір каталогів, по одному на кожен модуль &kde;, який &kdesvn-build; намагається зібрати. У цьому каталозі також міститиметься файл <filename
>build-status</filename
>, за допомогою якого ви зможете визначити, які модулі було зібрано, а які зібрати не вдалося.</para>

<note
><para
>Якщо у самому модулі міститься підмодуль (наприклад, extragear/multimedia, playground/utils, або KDE/kdelibs), йому відповідатиме власний підкаталог у каталозі журналу. Наприклад, журнали KDE/kdelibs після останнього запуску &kdesvn-build; можна буде знайти у <filename class="directory"
><symbol
>${log-dir}</symbol
>/latest/KDE/kdelibs</filename
>, а не у каталозі <filename class="directory"
><symbol
>${log-dir}</symbol
>/latest/kdelibs</filename
>. </para
></note>

<para
>У кожному з каталогів модулів ви знайдете набір файлів для кожної з дій, які виконуватиме &kdesvn-build;. Якщо &kdesvn-build; оновлює модуль, ви побачите файли з назвами на зразок <filename
>svn-co.log</filename
> (звантаження модуля) або <filename
>svn-up.log</filename
> (якщо відбувалося оновлення модуля, який вже було звантажено). Якщо було запущено скрипт <command
>configure</command
>, слід очікувати появи журналу <filename
>configure.log</filename
> у цьому каталозі.</para>

<para
>Якщо сталася помилка, ви побачите пояснення її причину у одному з файлів. Щоб вам легше було знайти файл, у якому міститься помилка, &kdesvn-build; створить посилання з файла, що містить помилку (на зразок <filename
>build-1.log</filename
> на файл з назвою <filename
>error.log</filename
>).</para>

<para
>Результатом всього цього буде те, що ви знатимете чому не вдалося зібрати модуль після останнього запуску &kdesvn-build;, для цього вам слід для початку знайти файл з назвою <filename
><symbol
>${log-dir}</symbol
>/latest/<replaceable
>назва модуля</replaceable
>/error.log</filename
>. </para>

<tip
><para
>Якщо файл <filename
>error.log</filename
> є порожнім (особливо після встановлення), ймовірно, жодних помилок не сталося. Деякі з інструментів, які використовуються системою збирання &kde;, іноді помилково повідомляють про помилку, коли насправді помилок не сталося.</para>

<para
>Крім того, деякі з команд уникатимуть переспрямування виведення даних &kdesvn-build; і за певних обставин обходять файл журналу (зазвичай, під час виконання першого звантаження &subversion;), в такому випадку помилки не можна буде знайти файл журналу, — всі помилки буде виведено до &konsole; або програми термінала, з якої ви запустили &kdesvn-build;.</para>
</tip>

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

</chapter>

<chapter id="kdesvn-buildrc">
<title
>Формат файла .kdesvn-buildrc</title>

<para
>Щоб скористатися цим скриптом, вам потрібен файл з назвою <filename
>.kdesvn-buildrc</filename
>, розташований у вашому домашньому каталозі, у цьому файлі описано модулі, які ви бажаєте звантажити і зібрати. </para>

<para
>Його буде запущено з загальними параметрами, вказаними у такий спосіб: </para>

<programlisting
>global
<replaceable
>назва_параметра значення_параметра</replaceable>
<replaceable
>[...]</replaceable>
end global
</programlisting>

<para
>Після цього повинні йти один або декілька розділів модулів, вказаних таким чином: </para>

<programlisting
>module <replaceable
>назва_модуля</replaceable>
<replaceable
>назва_параметра значення_параметра</replaceable>
<replaceable
>[...]</replaceable>
end module
</programlisting>

<para
>Параметр <replaceable
>назва_модуля</replaceable
> має бути назвою модуля зі сховища &subversion; &kde; (наприклад, kdelibs або kdebase). Деякі з параметрів перевизначають глобальні параметри, деякі додають загальні параметри, а деякі з загальних параметрів не можна перевизначати. </para>

<para
>Далі наведено впорядкований за абеткою список параметрів, якими ви можете скористатися. Натисніть позначку параметра, щоб дізнатися про нього більше. Якщо параметр не документовано, будь ласка, повідомте про це авторам програми за адресою, яку ви можете знайти <link linkend="authors"
>вище</link
>. </para>

<itemizedlist>
<listitem
><para
><link linkend="conf-apply-qt-patches"
>apply-qt-patches</link
>, щоб покращити можливості qt-copy.</para
></listitem>
<listitem
><para
><link linkend="conf-async"
>async</link
>, щоб виконати одночасно оновлення і збирання.</para
></listitem>
<listitem
><para
><link linkend="conf-binpath"
>binpath</link
>, щоб встановити значення змінної <envar
>PATH</envar
>.</para
></listitem>
<listitem
><para
><link linkend="conf-branch"
>branch</link
>, щоб звантажити код для стабільної версії, а не версії, що розробляється (/trunk).</para
></listitem>
<listitem
><para
><link linkend="conf-build-dir"
>build-dir</link
>, щоб вказати каталог для збирання.</para
></listitem>
<listitem
><para
><link linkend="conf-checkout-only"
>checkout-only</link
>, щоб звантажити лише частини модуля.</para
></listitem>
<listitem
><para
><link linkend="conf-cmake-options"
>cmake-options</link
>, щоб визначити параметри налаштування модуля за допомогою &cmake;.</para
></listitem>
<listitem
><para
><link linkend="conf-colorful-output"
>colorful-output</link
>, щоб додати кольори у дані, які виводитиме скрипт.</para
></listitem>
<listitem
><para
><link linkend="conf-configure-flags"
>configure-flags</link
>, щоб визначити параметри, згідно яких буде налаштовано модуль за допомогою configure.</para
></listitem>
<listitem
><para
><link linkend="conf-cxxflags"
>cxxflags</link
>, щоб визначити змінну <envar
>CXXFLAGS</envar
>.</para
></listitem>
<listitem
><para
><link linkend="conf-dest-dir"
>dest-dir</link
>, щоб змінити назву каталогу для модуля.</para
></listitem>
<listitem
><para
><link linkend="conf-disable-agent-check"
>disable-agent-check</link
>, щоб запобігти перевірці &kdesvn-build; стану ssh-agent.</para
></listitem>
<listitem
><para
><link linkend="conf-do-not-compile"
>do-not-compile</link
>, щоб позначити каталоги, які слід пропустити під час збирання.</para
></listitem>
<listitem
><para
><link linkend="conf-inst-apps"
>inst-apps</link
>, щоб було зібрано і встановлено лише окремі каталоги.</para
></listitem>
<listitem
><para
><link linkend="conf-install-after-build"
>install-after-build</link
>, щоб запобігти встановленню програм після збирання.</para
></listitem>
<listitem
><para
><link linkend="conf-kdedir"
>kdedir</link
>, щоб вказати каталог, куди буде встановлено &kde;.</para
></listitem>
<listitem
><para
><link linkend="conf-kde-languages"
>kde-languages</link
>, щоб вказати пакунки перекладу, які слід звантажити і встановити.</para
></listitem>
<listitem
><para
><link linkend="conf-libpath"
>libpath</link
>, щоб вказати значення змінної <envar
>LD_LIBRARY_PATH</envar
>.</para
></listitem>
<listitem
><para
><link linkend="conf-make-install-prefix"
>make-install-prefix</link
>, щоб запустити допоміжну програму (на зразок &sudo;) під час виконання <userinput
><command
>make</command
> <option
>install</option
></userinput
>.</para
></listitem>
<listitem
><para
><link linkend="conf-make-options"
>make-options</link
>, щоб передати параметри програмі &make;.</para
></listitem>
<listitem
><para
><link linkend="conf-manual-build"
>manual-build</link
>, щоб уникнути автоматичного збирання модуля.</para
></listitem>
<listitem
><para
><link linkend="conf-manual-update"
>manual-update</link
>, щоб уникнути будь-яких автоматичних дій з модулем.</para
></listitem>
<listitem
><para
><link linkend="conf-module-base-path"
>module-base-path</link
>, щоб змінити вихідну теку звантаження модуля (корисно для використання гілок і знімків).</para
></listitem>
<listitem
><para
><link linkend="conf-niceness"
>niceness</link
>, щоб змінити пріоритет для процесора.</para
></listitem>
<listitem
><para
><link linkend="conf-no-rebuild-on-fail"
>no-rebuild-on-fail</link
>, щоб запобігти повторному запуску &make; у разі помилки.</para
></listitem>
<listitem
><para
><link linkend="conf-qtdir"
>qtdir</link
>, щоб вказати шлях до бібліотек &Qt;.</para
></listitem>
<listitem
><para
><link linkend="conf-set-env"
>set-env</link
>, щоб встановити значення змінної середовища.</para
></listitem>
<listitem
><para
><link linkend="conf-source-dir"
>source-dir</link
>, щоб змінити каталог призначення для звантаження початкових кодів.</para
></listitem>
<listitem
><para
><link linkend="conf-stop-on-failure"
>stop-on-failure</link
>, щоб зупиняти роботу &kdesvn-build; одразу після того, як трапиться помилка.</para
></listitem>
<listitem
><para
><link linkend="conf-svn-server"
>svn-server</link
>, щоб змінити сервер, звідки буде звантажено початкові коди.</para
></listitem>
<listitem
><para
><link linkend="conf-use-unsermake"
>use-unsermake</link
>, щоб було використано систему збирання &unsermake;.</para
></listitem>
</itemizedlist>


<para
>Це таблиця різноманітних параметрів з певними коментарями щодо цих параметрів. Будь-який з параметрів, який перевизначає загальний параметр також перевизначає і параметр командного рядка. </para>

<table id="option-table">
<title
>Таблиця параметрів</title>
<tgroup cols="3">

<thead>
<row>
<entry
>Назва параметра</entry>
<entry
>Модуль -&gt; Загальна поведінка</entry>
<entry
>Нотатки</entry>
</row>
</thead>

<tbody>

<row id="conf-apidox">
<entry
>apidox</entry>
<entry
>Перевизначає загальний параметр</entry>
<entry
><para
>Цей параметр використовувався для вмикання збирання документації модуля програмного інтерфейсу KDE. Його було вилучено у версії &kdesvn-build; 1.6.3, оскільки він не підтримується у KDE 4. Ви можете знайти мережеву документацію з програмного інтерфейсу за адресою <ulink url="http://api.kde.org/"
>kde.org</ulink
>. Крім того, можна зібрати документацію з програмного інтерфейсу KDE 4 за допомогою скрипту, включеного до модуля kdesdk (каталог /scripts). Докладніше про це можна дізнатися на сайті <ulink url="http://techbase.kde.org/Development/Tools/apidox"
>KDE TechBase</ulink
>. Звичайно ж, ви можете вручну зібрати документацію з програмного інтерфейсу для старіших модулів.</para>
</entry>
</row>

<row id="conf-apply-qt-patches">
<entry
>apply-qt-patches</entry>
<entry
>Перевизначає загальний параметр</entry>
<entry
>Цей параметр корисний лише для qt-copy. Якщо ви надасте йому ненульове значення, перед збиранням буде запущено скрипт apply-patches у qt-copy для того, щоб застосувати неофіційні латки до qt-copy. Оскільки саме ці латки є причиною використання qt-copy, а не офіційної версії &Qt;, вам варто увімкнути цей параметр. Типовим є вмикання цих латок.</entry>
</row>

<row id="conf-async">
<entry
>async</entry>
<entry
>Неможливо перевизначити</entry>
<entry
><para
>За допомогою цього параметра можна увімкнути асинхронний режим роботи, за якого оновлення кодів програм і процес збирання виконуватимуться паралельно, — програма не чекатиме на завершення оновлення всіх кодів програм перед запуском процесу збирання. Типовим значенням цього параметра є значення, що вмикає асинхронний режим. Щоб вимкнути асинхронний режим, встановіть значення параметра <replaceable
>false</replaceable
></para>
<para
>Цей параметр додано починаючи з версії 1.6 програми.</para
></entry>
</row>

<row id="conf-binpath">
<entry
>binpath</entry>
<entry
>Перевизначає загальний параметр</entry>
<entry
><para
>Встановіть для цього параметра значення, щоб визначити значення змінної середовища PATH на час збирання. Ви не зможете перевизначити значення цього параметра для окремого модуля. Типовим значенням параметра є <filename class="directory"
>/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin</filename
>. Значенням цієї змінної середовища має бути відокремлений двокрапками список шляхів до ваших каталогів для збирання. Шляхи <filename class="directory"
>$<envar
>KDEDIR</envar
>/bin</filename
> і <filename class="directory"
>$<envar
>QTDIR</envar
>/bin</filename
> буде додано автоматично. Ви можете додати тильду (~) для всіх шляхів, які ви додаєте за допомогою цього параметра.</para>
</entry>
</row>

<row id="conf-branch">
<entry
>branch</entry>
<entry
>Перевизначає загальний параметр</entry>
<entry
><para
>Встановіть значення для цього параметра, щоб програма звантажила певну версію &kde;, а не типову гілку <replaceable
>trunk</replaceable
>, у якій розробляється &kde;. Наприклад, щоб звантажити версію &kde; 3.4, вам слід встановити значення цього параметра <replaceable
>3.4</replaceable
>.</para>
<para
>Зауважте, що певні модулі використовують іншу назву версії. Наприклад, нумерація версій модуля arts не збігається з номерами версій &kde;. Номером версії arts для &kde; 3.4 є 1.4.</para>
<para
>Якщо &kdesvn-build; не вдається належним чином звантажити версію з цим параметром, ймовірно, вам доведеться вручну вказати адресу &url;, з якої слід виконати звантаження за допомогою параметра <link linkend="conf-override-url"
>override-url</link
>.</para>
</entry>
</row>

<row id="conf-build-dir">
<entry
>build-dir</entry>
<entry
>Перевизначає загальний параметр</entry>
<entry
>Скористайтеся цим параметром, щоб змінити каталог, у якому міститимуться вихідні коди для збирання. Існує три різних способи скористатися ним: <itemizedlist
> <listitem
><para
>Шлях відносно каталогу вихідних кодів з &subversion; &kde; (див. <link linkend="conf-source-dir"
>параметр source-dir</link
>). Це типовий спосіб, спосіб, у який скрипт працював до версії 0.61. Цей режим буде обрано, якщо ви введете назву каталогу, яка не починається з тильди (~) або похилої риски (/).</para
> <para
>Типовим значенням є <filename class="directory"
>build</filename
>.</para
></listitem
> <listitem
><para
>Абсолютний шлях. Якщо ви вкажете шлях, назва якого починається з /, цей шлях буде використано безпосередньо. Наприклад, <filename class="directory"
>/tmp/kde-obj-dir/</filename
>.</para
></listitem
> <listitem
><para
>Шлях відносно вашого домашнього каталогу. Якщо ви вкажете шлях, назва якого починатиметься з ~, буде використано шлях відносно вашого домашнього каталогу, подібно до використання тильди у командній оболонці. Наприклад, <filename class="directory"
>~/builddir</filename
> визначить каталог збирання <filename class="directory"
>/home/user-name/builddir</filename
>.</para
></listitem
> </itemizedlist
> Як це не дивно, ви можете змінити значення цього параметра для кожного з модулів окремо. </entry>
</row>

<row id="conf-checkout-only">
<entry
>checkout-only</entry>
<entry
>Перевизначає загальний параметр</entry>
<entry
>Встановіть значення для цього параметра, щоб звантажити вихідні коди &subversion; файл за файломs. Значенням має бути відокремлений пробілами список каталогів, які слід звантажити. Якщо ви не включили адміністративний каталог, його буде включено автоматично (за потреби). За послідовного звантаження адміністративний каталог буде взято з kde-common, там де він існує на сервері &subversion;. Хоча цей параметр може перезвантажувати загальний параметр, пам’ятайте, що встановлення цього параметра на загальному рівні не має ніякого сенсу. </entry>
</row>

<row id="conf-cmake-options">
<entry
>cmake-options</entry>
<entry
>Додається до загальних параметрів (не можна застосовувати до qt-copy)</entry>
<entry
><para
>Скористайтеся цим параметром для того, щоб визначити, які параметри слід передати &cmake; під час створення системи збирання модуля. Якщо цей параметр використано як загальний, його буде застосовано до всіх модулів, які збирає цей скрипт. Якщо параметр визначено на рівні модуля, його буде додано в кінець загальний параметрів. За допомогою цього параметра можна вказати загальні параметри &cmake; у загальному розділі (global).</para>

<para
>Цей параметри заміняє собою <link linkend="conf-configure-flags"
>configure-flags</link
> для всіх модулів &kde; 4, оскільки для їх збирання використовується &cmake;.</para>

<para
>Оскільки ці параметри передаються безпосередньо до командного рядка &cmake;, їх слід вказувати у тому самому вигляді, у якому їх буде передано &cmake;. Приклад:</para>

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

<para
>Оскільки встановлення цього параметра потребує певних знань, якщо всі інші параметри &kdesvn-build; вказано правильно, ви можете просто залишити значення цього параметра порожнім.</para
></entry>
</row>

<row id="conf-configure-flags">
<entry
>configure-flags</entry>
<entry
>Додається до загальних параметрів (за винятком qt-copy)</entry>
<entry
><para
>Скористайтеся цим параметром, щоб вказати параметри, які слід передати ./configure під час створення системи збирання модуля. Якщо цей параметр використовується на загальному рівні, його буде застосовано до всіх модулів, які збиратимуться цим скриптом. qt-copy використовує набір параметрів налаштування, відмінний від решти &kde;, отже цей параметр <emphasis
>перевизначає</emphasis
> загальні параметри, якщо його буде застосовано до qt-copy. </para>

<para
>Цей параметрів стосується qt-copy і всіх модулів &kde; 3. Модулі &kde; 4 використовують &cmake;, керувати яким можна за допомогою параметра <link linkend="conf-cmake-options"
>cmake-options</link
>.</para>
</entry>
</row>

<row id="conf-colorful-output">
<entry
>colorful-output</entry>
<entry
>Неможливо перевизначити</entry>
<entry
>Встановіть для цього параметра значення <replaceable
>false</replaceable
>, щоб вимкнути розфарбування даних, які виводитиме &kdesvn-build;. Типовим значенням цього параметра є <replaceable
>true</replaceable
>. Зауважте, що &kdesvn-build; не виводитиме розфарбовані дані до інших, відмінних від термінала (на зразок xterm, &konsole; або звичайної консолі &Linux;), виводів. </entry>
</row>

<row id="conf-cxxflags">
<entry
>cxxflags</entry>
<entry
>Додається до загального параметра</entry>
<entry
><para
>Скористайтеся цим параметром, щоб вказати, які параметри слід передати <command
>./configure</command
> як <envar
>CXXFLAGS</envar
> під час створення системи збирання модуля. Цей параметр визначається саме тут, а не у параметрах <link linkend="conf-configure-flags"
>configure-flags</link
> і <link linkend="conf-cmake-options"
>cmake-options</link
>, оскільки цей параметр також встановлює змінну середовища <envar
>CXXFLAGS</envar
> під час процесу збирання.</para>

<para
>Зауважте, що у &kde; 4 і всіх інших модулів, які використовують &cmake;, потрібно встановити значення параметра CMAKE_BUILD_TYPE рівним «none» під час налаштування модуля. Зробити це можна за допомогою параметра <link linkend="conf-cmake-options"
>cmake-options</link
>.</para>
</entry>
</row>

<row id="conf-dest-dir">
<entry
>dest-dir</entry>
<entry
>Перевизначає загальний параметр</entry>
<entry
>Скористайтеся цим параметром, щоб змінити назву, яку буде дано модулю на диску. Наприклад, якщо вам потрібен модуль extragear/network, за допомогою цього параметра ви можете перейменувати його на extragear-network. Зауважте, що не варто включати до назви модуля каталоги роздільники каталогів, оскільки такі назви можуть призвести до конфлікту з одним з параметрів <link linkend="conf-build-dir"
>build-dir</link
> або <link linkend="conf-source-dir"
>source-dir</link
>. </entry>
</row>

<row id="conf-disable-agent-check">
<entry
>disable-agent-check</entry>
<entry
>Неможливо перевизначити</entry>
<entry
>Зазвичай, якщо ви використовуєте &ssh; для звантаження вихідних кодів &subversion; (наприклад, якщо ви використовуєте протокол svn+ssh), &kdesvn-build; намагатиметься перевірити і зробити так, щоб, якщо ви використовуєте агент ssh, цей агент справді керував певними профілями &ssh;. Так зроблено, щоб &ssh; не надсилав, за можливості, запитів на пароль для кожного з ваших модулів. Ви можете вимкнути таку перевірку встановленням параметра <option
>disable-agent-check</option
> у значення <replaceable
>true</replaceable
>. </entry>
</row>

<row id="conf-do-not-compile">
<entry
>do-not-compile</entry>
<entry
>Перевизначає загальний параметр</entry>
<entry
><para
>Скористайтеся цим параметром, щоб обрати певний набір каталогів, які буде зібрано у модулі (замість збирання всіх каталогів). Відокремлювати каталоги у списку слід за допомогою пробілів.</para>

<para
>Ця можливість підтримується як у &kde; 3, так і у &kde; 4. Підтримку KDE 4 було додано у &kdesvn-build; 1.6.3.</para>

<para
>Зауважте, що вихідні коди програм все ж буде звантажено. Ви можете скористатися параметром <link linkend="conf-checkout-only"
>checkout-only</link
>, щоб вказати список тек, які ви бажаєте звантажити.</para>

<para
>Наприклад, щоб вимкнути збирання &juk; і &kscd; у модулі kdemultimedia, вам слід додати рядок "do-not-compile juk kscd" до параметрів kdemultimedia.</para>
</entry>
</row>

<row id="conf-email-address">
<entry
>email-address</entry>
<entry
>Неможливо перевизначити</entry>
<entry>
<para
>Вкажіть цей параметр, щоб зазначити адресу, з якої, у разі потреби, &kdesvn-build; має надсилати повідомлення електронної пошти. Вам не слід перейматися встановленням цього параметра, якщо ви не маєте наміру використовувати жодну з можливостей, які використовують електронну пошту. (Типово, такі можливості вимкнено.) </para>

<para
>У поточній версії для цього параметра потрібен лише параметр <link linkend="conf-email-on-compile-error"
>email-on-compile-error</link
>. </para>
</entry>
</row>

<row id="conf-email-on-compile-error">
<entry
>email-on-compile-error</entry>
<entry
>Неможливо перевизначити</entry>
<entry>
<para
>За допомогою цього параметра ви можете вказати адресу електронної пошти, щоб програма надсилала за цією адресою звіт у разі помилки під час збирання модуля. &kdesvn-build; зачекає на завершення збирання всіх модулів і підсумує всі отримані результати у звіті. Цей звіт буде надіслано, лише якщо модуль зібрати не вдасться. </para>

<para
>Для встановлення адреси, з якої &kdesvn-build; має надсилати повідомлення, скористайтеся параметром <link linkend="conf-email-address"
>email-address</link
>, оскільки типове значення цього параметра може не відповідати вашим потребам. </para>
</entry>
</row>

<row id="conf-inst-apps">
<entry
>inst-apps</entry>
<entry
>Перевизначає загальний параметр</entry>
<entry
><para
>Цей параметр визначає поведінку, протилежну до тої, що визначається параметром <link linkend="conf-do-not-compile"
>do-not-compile</link
>. За допомогою цього параметра можна вказати скрипту, що слід збирати лише вказані каталоги верхнього рівня. Каталоги у списку слід відокремлювати пробілами.</para>

<para
>Будь-які зміни не набудуть чинності до наступного виконання команди <command
>make <option
>-f</option
> Makefile.cvs</command
> у автоматичному режимі скриптом або вручну, вказуванням параметра <link linkend="cmdline-refresh-build"
><option
>--refresh-build</option
></link
> або <link linkend="cmdline-recreate-configure"
><option
>--recreate-configure</option
></link
>. </para>

<important
><para
>Цей параметр все ще не працює з модулями, зібраними за допомогою системи збирання &cmake;.</para
></important>

<para
>Зауважте, що вихідні коди програм все ж буде звантажено. Ви можете скористатися параметром <link linkend="conf-checkout-only"
>checkout-only</link
>, щоб вказати список тек, які ви бажаєте звантажити.</para>
</entry>
</row>

<row id="conf-install-after-build">
<entry
>install-after-build</entry>
<entry
>Перевизначає загальний параметр</entry>
<entry
>Цей параметр використовується для встановлення пакунка після його успішного збирання. Типово, цей параметр увімкнено. Якщо ви бажаєте вимкнути його, вам слід встановити для нього значення 0 у <link linkend="configure-data"
>файлі налаштувань</link
>. Крім того, ви можете скористатися параметром командного рядка <link linkend="cmdline-no-install"
><option
>--no-install</option
></link
>. </entry>
</row>

<row id="conf-kdedir">
<entry
>kdedir</entry>
<entry
>Перевизначає загальний параметр</entry>
<entry
>За допомогою цього параметра можна вказати каталог, до якого буде встановлено &kde; після збирання. Типовим значення параметра є <filename class="directory"
>~/kde</filename
>. Якщо ви зміните значення так, що воно вказуватиме на каталог, для доступу до якого потрібні права користувача root, ймовірно, вам слід прочитати і про параметр <link linkend="conf-make-install-prefix"
>make-install-prefix</link
>.</entry>
</row>

<row id="conf-kde-languages">
<entry
>kde-languages</entry>
<entry
>Неможливо перевизначити</entry>
<entry
><para
>За допомогою цього параметра ви можете вказати скрипту, що слід звантажити і встановити пакунки локалізації разом з &kde;. Це слід зробити, якщо ви не є мешканцем США і бажаєте, щоб &kde; було перекладено вашою рідною мовою.</para>

<para
>Щоб скористатися цим параметром, вам слід вказати для нього значення-список мов, які слід встановити, коди мов слід відокремлювати пробілами. З кожною з мов пов’язано певний код, знайти потрібний код можна на сторінці <ulink url="http://i18n.kde.org/teams/"
>http://i18n.kde.org/teams/</ulink
>. </para>

<para
>Можна обрати і лише одну мову. Типово, не буде звантажено жодної мови, що означає, що інтерфейс і довідку &kde; буде показано лише американською англійською.</para>

<para
>Наприклад, якщо вам потрібно встановити пакунок української мови, вам слід встановити значення цього параметра десь так: <userinput
><option
>kde-languages</option
> <replaceable
>uk</replaceable
></userinput
>. Крім того, ймовірно, для того, щоб середовище використовувало українську, вам слід належним чином налаштувати його за допомогою Центру керування (KDE 3) або Системних параметрів (KDE 4).</para>
</entry>
</row>

<row id="conf-libpath">
<entry
>libpath</entry>
<entry
>Перевизначає загальний параметр</entry>
<entry
>Встановіть значення для цього параметра значення, щоб змінити значення змінної середовища LD_LIBRARY_PATH на час збирання. Ви не зможете перевизначити цей параметр на рівні модулів. Типовим є порожнє значення, але шляхи <filename class="directory"
>$<envar
>KDEDIR</envar
>/lib</filename
> і <filename class="directory"
>$<envar
>QTDIR</envar
>/lib</filename
> буде додано автоматично. Ви можете скористатися тильдою (~) у будь-якому зі шляхів, які ви додасте за допомогою цього параметра. </entry>
</row>

<row id="conf-log-dir">
<entry
>log-dir</entry>
<entry
>Перевизначає загальний параметр</entry>
<entry
>Скористайтеся цим параметром, щоб змінити каталог, у якому зберігатимуться файли журналу, створені скриптом. Цей параметр можна встановити на рівні модулі у версіях скрипту, пізніших за 0.64. </entry>
</row>

<row id="conf-make-install-prefix">
<entry
>make-install-prefix</entry>
<entry
>Перевизначає загальний параметр</entry>
<entry
>Встановіть для цієї змінної значення відокремленого пробілами списку, який скрипт вважатиме командою і її параметрами, які передують команді <userinput
><command
>make</command
> <option
>install</option
></userinput
>, призначеній для встановлення модулів. Наприклад, цей параметр буде корисним для встановлення пакунків за допомогою &sudo;, але, будь ласка, будьте обережними з використанням прав доступу адміністративного користувача.</entry>
</row>

<row id="conf-make-options">
<entry
>make-options</entry>
<entry
>Перевизначає загальний параметр</entry>
<entry
>Встановіть значення для цієї змінної, щоб передати параметри командного рядка команді <command
>make</command
>. Подібні параметри будуть корисним для програм на зразок <ulink url="http://distcc.samba.org/"
><application
>distcc</application
></ulink
> або у системах з декількома процесорними ядрами. </entry>
</row>

<row id="conf-manual-build">
<entry
>manual-build</entry>
<entry
>Перевизначає загальний параметр</entry>
<entry
>Встановіть для цього параметра значення <replaceable
>true</replaceable
>, щоб під час процесу збирання скрипт не намагався зібрати цей модуль. Модуль все ж буде оновлено під час оновлення зі сховища &subversion;. Цей параметр у точності збігається з параметром командного рядка <link linkend="cmdline-no-build"
><option
>--no-build</option
></link
>. </entry>
</row>

<row id="conf-manual-update">
<entry
>manual-update</entry>
<entry
>Перевизначає загальний параметр</entry>
<entry
>Встановіть для цього параметра значення <replaceable
>true</replaceable
>, щоб процес збирання не намагався оновити (і отже зібрати і встановити) цей модуль. Якщо ви встановите цей параметр для певного модуля, вам варто прокоментувати його. </entry>
</row>

<row id="conf-module-base-path">
<entry
>module-base-path</entry>
<entry
>Перевизначає загальний параметр</entry>
<entry
><para
>Встановіть цей параметр, щоб перевизначити шлях до типової теки &kdesvn-build; для потрібного модуля. Цим параметром можна, наприклад, скористатися, якщо потрібно використати певні гілки або стабільні версії бібліотек. У визначення правильного шляху неоціненну поміч вам може надати <ulink url="http://websvn.kde.org/"
>Переглядач кодів &kde;</ulink
>.</para>
<para
>Зауважте, що &kdesvn-build; конструює остаточний шлях відповідно до такого шаблону: <varname
>$svn-server</varname
>/home/kde/<varname
>$module-base-path</varname
>/<varname
>$module-name</varname
>. </para>
<para
>Типовим значенням є або <quote
>trunk</quote
> або <quote
>trunk/KDE</quote
>, залежно від назви модуля.</para>
<tip
><para
>Ви можете скористатися варіантами <link linkend="conf-branch"
>branch</link
> або <link linkend="conf-tag"
>tag</link
>, якщо їх можна застосовувати. </para
></tip>
</entry>
</row>

<row id="conf-niceness">
<entry
>niceness</entry>
<entry
>Неможливо перевизначити</entry>
<entry
>Значенням цього параметра є ціле число у діапазоні від 20 до 0. Чим вищим буде це число, тим нижчим встановлюватиметься пріоритет процесу &kdesvn-build;. Типовим значенням є 10. </entry>
</row>

<row id="conf-no-svn">
<entry
>no-svn</entry>
<entry
>Перевизначає загальний параметр</entry>
<entry
>Якщо для цього параметра встановлення значення «true», &kdesvn-build; не оновлюватиме код модуля автоматично. Скрипт все ж намагатиметься зібрати цей модуль, якщо згідно налаштувань його слід спробувати зібрати.</entry>
</row>

<row id="conf-no-rebuild-on-fail">
<entry
>no-rebuild-on-fail</entry>
<entry
>Перевизначає загальний параметр</entry>
<entry
>Встановіть для цього параметра значення <replaceable
>true</replaceable
>, щоб завжди забороняти &kdesvn-build; намагатися перебудовувати цей модуль, якщо його не вдасться зібрати під час покрокового збирання. Зазвичай, &kdesvn-build; спробує перебудувати модуль від початку, щоб протидіяти ефекту побіжних оновлень &subversion;, які заплутують систему збирання.</entry>
</row>

<row id="conf-override-url">
<entry
>override-url</entry>
<entry
>Перевизначає загальний параметр</entry>
<entry
>Якщо вистановите цей параметр, &kdesvn-build; використовуватиме його значення як адресу &url;, яку слід передати &subversion; <emphasis
>повністю незмінною</emphasis
>. Загалом, вам слід використовувати цей параметр, якщо ви бажаєте звантажити певний випуск, але &kdesvn-build; не може визначити, який випуск ви мали на увазі у параметрі <link linkend="conf-branch"
>branch</link
>. </entry>
</row>

<row id="conf-qtdir">
<entry
>qtdir</entry>
<entry
>Перевизначає загальний параметр</entry>
<entry
>Встановіть цей параметр для того, щоб змінити змінну середовища <envar
>QTDIR</envar
> на час збирання. Ви не зможете перевизначити цей параметр на рівні модулів. Якщо ви не вкажете значення для цього параметра, типовим значенням буде <filename class="directory"
><symbol
>${source-dir}</symbol
>/build/qt-copy</filename
>, тобто буде використано модуль qt-copy, включений до сховища коду &kde;. Ви можете вказати тильду (~) для позначення вашого домашнього каталогу. </entry>
</row>

<row id="conf-remove-after-install">
<entry
>remove-after-install</entry>
<entry
>Перевизначає загальний параметр</entry>
<entry
><para
>Якщо на жорсткому диску вашого комп’ютера мало місця, ймовірно, вам слід скористатися цим параметром для того, щоб автоматично вилучити каталог збирання (або одночасно каталоги кодів зі збирання для одноразового встановлення) після того, як модуль буде успішно встановлено. </para>
<para
>Можливими значення цього параметра є: <itemizedlist>
<listitem
><para
>none — Нічого не вилучати (Типове значення).</para
></listitem>
<listitem
><para
>builddir — Вилучити каталог збирання, але не початкових кодів.</para
></listitem>
<listitem
><para
>all — Вилучити каталоги початкових кодів і збирання.</para
></listitem>
</itemizedlist>
</para>

<para
>Зауважте, що використання цього параметра призведе до збільшення використання вашого каналу з’єднання (якщо ви використовуєте <replaceable
>all</replaceable
>) і часу, який буде використано для збирання &kde;, оскільки &kdesvn-build; не зможе виконувати покрокове збирання.</para>
</entry>
</row>

<row id="conf-revision">
<entry
>revision</entry>
<entry
>Перевизначає загальний параметр</entry>
<entry
>Якщо встановити для цього параметра значення, відмінне від 0 (нуля), &kdesvn-build; примусово виконає оновлення &subversion; до точно вказаної версії модуля, навіть якщо діють параметри на зразок <link linkend="conf-branch"
>branch</link
>. Якщо ви вже маєте модуль вказаної версії, його не буде оновлено до того часу, доки цей параметр налаштування не буде змінено або вилучено.</entry>
</row>

<row id="conf-set-env">
<entry
>set-env</entry>
<entry
>Перевизначає загальний параметр</entry>
<entry
><para
>Цей параметр приймає розділений пробілами набір значень, де перше значення є змінною середовища, яку слід встановити, а решта значень вважатиметься значенням змінної. Наприклад, щоб встановити для змінної <envar
>RONALD</envar
> значення McDonald, вам слід вказати у відповідному розділі таку команду:</para>
<screen
><command
>set-env</command
> <envar
>RONALD</envar
> <userinput
>McDonald</userinput
></screen>
<para
>Цей параметр має особливість: його можна повторювати без перевизначення раніше встановлених параметрів set-env у одному і тому ж розділі <link linkend="configure-data"
>файла налаштувань</link
>. Таким чином, ви можете встановити декілька змінних середовища у одному модулі (або загальних змінних).</para>
</entry>
</row>

<row id="conf-source-dir">
<entry
>source-dir</entry>
<entry
>Перевизначає загальний параметр</entry>
<entry
>Цей параметр використовується для встановлення каталогу, у якому &subversion; слід зберігати коди &kde;. Якщо ви не вкажете це значення, його типовим значенням буде <filename class="directory"
>~/kdesvn</filename
>. Якщо ви маєте намір вказати це значення, вам слід використовувати абсолютний шлях. </entry>
</row>

<row id="conf-stop-on-failure">
<entry
>stop-on-failure</entry>
<entry
>Перевизначає загальний параметр</entry>
<entry
>Встановіть для цього параметра значення <replaceable
>true</replaceable
>, щоб зупинити виконання скрипту, якщо під час збирання або встановлення трапляться помилки. Типово, цей параметр вимкнено. </entry>
</row>

<row id="conf-svn-server">
<entry
>svn-server</entry>
<entry
>Перевизначає загальний параметр</entry>
<entry
>Цей параметр використовується для того, щоб вказати сервер, який слід використати для звантаження з &subversion;. Типовим є анонімне сховище &subversion;, <filename
>svn://anonsvn.kde.org/</filename
></entry>
</row>

<row id="conf-tag">
<entry
>tag</entry>
<entry
>Перевизначає загальний параметр</entry>
<entry
><para
>Використовуйте цей параметр для звантаження певної версії модуля.</para>
<para
><emphasis
>Зауваження:</emphasis
> ймовірно, вам <emphasis
>не доведеться використовувати</emphasis
> цей параметр. Випуски &kde; можна звантажити у вигляді архівів з <ulink url="ftp://ftp.kde.org/"
>сайта FTP &kde;</ulink
> або одного з <ulink url="http://download.kde.org/download.php"
>його дзеркал</ulink
>.</para>
<para
>Якщо ви використовуєте &kdesvn-build;, оскільки у вас виникають труднощі з отриманням випусків &kde;, для збирання у вашому дистрибутиві, спробуйте скористатися <ulink url="http://developer.kde.org/build/konstruct/"
>інструментом збирання Konstruct</ulink
>, який працює з архівами випусків середовища.</para>
</entry>
</row>

<row id="conf-unsermake-options">
<entry
>unsermake-options</entry>
<entry
>Перевизначає загальний параметр</entry>
<entry
>Цей параметр подібний до параметра <link linkend="conf-make-options"
>make-options</link
>, але використовується для &unsermake;, програми, яка приймає деякі з параметрів, які &make; не розуміє. </entry>
</row>

<row id="conf-use-cmake">
<entry
>use-cmake</entry>
<entry
>Перевизначає загальний параметр</entry>
<entry
>Цей параметр було вилучено у &kdesvn-build; 1.4, оскільки для збирання всіх модулів &kde; 4 потрібен &cmake;, а використання &cmake; не дозволене для будь-яких інших модулів. </entry>
</row>

<row id="conf-use-qt-builddir-hack">
<entry
>use-qt-builddir-hack</entry>
<entry
>Перевизначає загальний параметр</entry>
<entry
>Хоча цей параметр і може перевизначати параметр, встановлений на загальному рівні, він має сенс лише для qt-copy. Ви можете встановити для цього параметра значення <replaceable
>true</replaceable
>, щоб увімкнути режим роботи скрипту srcdir != builddir. Якщо такий режим буде увімкнено, &kdesvn-build; скопіює вихідні коди модуля qt-copy до каталогу збирання і виконає їх збирання у цьому каталозі. Це означає, що слід встановити для вашої змінної середовища <envar
>QTDIR</envar
> значення <filename class="directory"
>$<symbol
>{qt-copy-build-dir}</symbol
>/qt-copy/lib</filename
>. Крім того, вам слід відповідно змінити значення параметра <link linkend="conf-qtdir"
>qtdir</link
>. У цьому режимі має працювати і покрокове збирання &make;, оскільки під час копіювання зберігаються часові позначки файлів. Якщо ви використовуєте параметр <link linkend="conf-apply-qt-patches"
>apply-qt-patches</link
>, латки буде застосовано до коду у каталозі збирання, а не до коду у каталозі вихідних кодів. Типовим значенням параметра use-qt-builddir-hack є <replaceable
>true</replaceable
>. </entry>
</row>

<row id="conf-use-stable-kde">
<entry
>use-stable-kde</entry>
<entry
>Неможливо перевизначити</entry>
<entry
><para
>Оскільки &kdesvn-build; підтримує збирання &kde; 3 і 4, немає потреби у безпосередній вказівці скрипту, яку саме версію слід збирати. Типово, &kdesvn-build; буде збирати основну гілку розробки &kde; (вона має назву /trunk). Але зараз ця гілка використовується &kde; 4, що може бути неприйнятним для деяких користувачів. </para>

<para
>Ви можете скористатися параметром &branch; на загальному рівні або на рівні модулів, щоб звантажити &kde; 3.5 (або 3.4 тощо). Але таке звантаження не є зручним, оскільки певні модулі (зокрема kdesupport) є спільними для 3.5 і 4. Крім того, до файла налаштувань доведеться додати багато параметрів версії.</para>

<para
>Отже, якщо ви встановите загальний параметр у значення <replaceable
>true</replaceable
>, &kdesvn-build; автоматично звантажить версію &kde; 3.5 модулів, на зразок kdelibs і qt-copy, замість звантаження версії &kde; 4. Ви можете скористатися параметрами &branch; або &tag; для перевизначення версії, яку використовуватиме &kdesvn-build;. Таким чином, скрипт спростить вам звантаження &kde; 3.5 замість версії &kde; 4.</para>
</entry>
</row>

<row id="conf-use-unsermake">
<entry
>use-unsermake</entry>
<entry
>Перевизначає загальний параметр</entry>
<entry
><para
>Встановіть для цього параметра значення <replaceable
>true</replaceable
>, щоб скористатися експериментальною програмою &unsermake; замість &automake; під час виконання скрипту configure. Використання цієї програми може значно зменшити час збирання, особливо для <ulink url="http://www.csh.rit.edu/slashdot/distcc.html"
>розподілених систем збирання</ulink
>. Типовим значення цього параметра є <replaceable
>true</replaceable
> (для більшості модулів). </para>

<para
>Зазвичай, якщо ви використовуєте цей параметр &kdesvn-build; буде автоматично підтримувати звантаження нових версій &unsermake;. Таке оновлення може спричинити незручності, особливо, якщо ви керуєте &unsermake; власноруч. У останньому випадку, ви можете вказати для цього параметра значення <quote
>self</quote
>, — &kdesvn-build; використовуватиме &unsermake;, але не виконуватиме ніяких дій з оновлення системи збирання. </para>
</entry>
</row>

</tbody>

</tgroup>
</table>

</chapter>

<chapter id="cmdline">
<title
>Параметри командного рядка і змінні середовища</title>

<para
>Цей скрипт не використовує змінних середовища. Якщо у вас виникне потреба у встановленні змінних середовища для процесів збирання або встановлення, будь ласка, скористайтеся параметром <link linkend="conf-set-env"
>set-env</link
>. </para>

<para
>Цей скрипт сприймає такі параметри командного рядка: </para>

<variablelist>

<varlistentry id="cmdline-async">
<term
><option
>--async</option
></term>
<listitem
><para
>Вмикає <link linkend="conf-async"
>асинхронний режим</link
>, за якого оновлення і збирання відбуваються одночасно. Така поведінка є типовою, вам слід вказувати значення цього параметра, лише якщо ви вимкнули асинхронний режим у налаштуваннях. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-help">
<term
><option
>--help</option
></term>
<listitem
><para
>Показати лише короткі довідкові відомості про скрипт. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-version">
<term
><option
>--version</option
></term>
<listitem
><para
>Показує версію програми. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-author">
<term
><option
>--author</option
></term>
<listitem
><para
>Показує інформацію для контактів з автором. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-color">
<term
><option
>--color</option
></term>
<listitem
><para
>Вмикає виведення інформації у кольорі. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-nice">
<term
><option
>--nice=<replaceable
>значення</replaceable
></option
></term>
<listitem
><para
>Встановлює значення &niceness; рівним аргументу <replaceable
>значення</replaceable
> на час поточного запуску. <replaceable
>значенням</replaceable
> має бути ціле число у діапазоні від 0 до 20. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-no-async">
<term
><option
>--no-async</option
></term>
<listitem
><para
>Вимикає <link linkend="conf-async"
>асинхронний режим</link
> оновлення. Натомість оновлення перед початком збирання відбуватиметься повне оновлення вихідних кодів. Використання цього параметри уповільнить процес збирання, але, якщо ви бачите помилки щодо IPC під час виконання скрипту &kdesvn-build;, спробуйте скористатися цим параметром, а також надішліть <ulink url="http://bugs.kde.org/"
>звіт про ваду</ulink
>. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-no-color">
<term
><option
>--no-color</option
></term>
<listitem
><para
>Вимикає виведення інформації у кольорі. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-pretend">
<term
><option
>--pretend</option
> (або <option
>-p</option
>)</term>
<listitem
><para
>Не <emphasis
>виконувати</emphasis
> ніяких дій, лише імітувати їх. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-quiet">
<term
><option
>--quiet</option
> (або <option
>-q</option
>)</term>
<listitem
><para
>Виводити лише скорочену інформацію. За використання цього параметра буде виведено лише базові відомості. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-really-quiet">
<term
><option
>--really-quiet</option
></term>
<listitem
><para
>Повідомляти лише про попередження і помилки. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-verbose">
<term
><option
>--verbose</option
></term>
<listitem
><para
>Виводити докладну інформацію про те, що відбувається, і про дії, які виконує &kdesvn-build;. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-svn-only">
<term
><option
>--svn-only</option
></term>
<listitem
><para
>Виконати лише оновлення початкових кодів. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-build-only">
<term
><option
>--build-only</option
></term>
<listitem
><para
>Виконати лише процес збирання. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-ignore-modules">
<term
><option
>--ignore-modules</option
></term>
<listitem
><para
>Не включати модулі, передані як аргумент параметра командного рядка, у процес оновлення або збирання. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-no-svn">
<term
><option
>--no-svn</option
></term>
<listitem
><para
>Пропустити зв’язок з сервером &subversion;. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-no-build">
<term
><option
>--no-build</option
></term>
<listitem
><para
>Пропустити процес збирання. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-no-install">
<term
><option
>--no-install</option
></term>
<listitem
><para
>Не встановлювати автоматично пакунки після збирання. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-debug">
<term
><option
>--debug</option
></term>
<listitem
><para
>Вмикає режим усування вад для скрипту. У поточній версії це означає, що всі виведені скриптом дані буде спрямовано у стандартний вивід оболонки на додачу до їх запису до каталогу журналу у звичайному режимі. Крім того, у такому режимі багато з функціональних можливостей скрипту надають у цьому режимі значно докладніші відомості про свою роботу. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-no-rebuild-on-fail">
<term
><option
>--no-rebuild-on-fail</option
></term>
<listitem
><para
>Не намагатися перебудовувати модулі, які не вдалося зібрати спочатку. &kdesvn-build; ніколи не намагатиметься виконувати збирання модуля, який скрипт вже намагався зібрати. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-refresh-build">
<term
><option
>--refresh-build</option
></term>
<listitem
><para
>Повторно створити систему збирання і виконати збирання з початку. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-reconfigure">
<term
><option
>--reconfigure</option
></term>
<listitem
><para
>Запустити скрипт налаштування ще раз, без очищення каталогу збирання. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-recreate-configure">
<term
><option
>--recreate-configure</option
></term>
<listitem
><para
>Запустити команду <command
>make <option
>-f</option
> Makefile.cvs</command
> знову, щоб створити скрипт configure і продовжити збирання у звичайному режимі. Якщо визначено цей параметр, параметр <option
><link linkend="cmdline-reconfigure"
>--reconfigure</link
></option
> буде додано автоматично. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-resume-from">
<term
><option
>--resume-from</option
></term>
<listitem
><para
>Цей параметр використовується для поновлення збирання, починаючи з вказаного модуля, назва якого має бути наступним параметром командного рядка. За використання цього параметра до командного рядка буде автоматично додано параметр <link linkend="cmdline-no-svn"
><option
>--no-svn</option
></link
>. Крім того, вам не слід вказувати інших модулів у командному рядку. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-rc-file">
<term
><option
>--rc-file</option
></term>
<listitem
><para
>Інтерпретує наступний параметр командного рядка, як файл, з якого слід читати параметри налаштування. Типовим значенням цього параметра є ~/.kdesvn-buildrc. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-run">
<term
><option
>--run</option
></term>
<listitem
><para
>Цей параметр інтерпретує наступний елемент командного рядка як назву програми, яку слід запустити. &kdesvn-build; завершить читання файла налаштувань, відновить попередні налаштування середовища, а потім виконає вказану програму.</para>

<para
>Але цим параметром здебільшого не можна користуватися для запуску оболонки за допомогою середовища &kdesvn-build;, оскільки інтерактивні оболонки типово змінюють принаймні частину змінних середовища (зокрема <envar
>PATH</envar
> і <envar
>KDEDIRS</envar
>) під час процедури свого запуску. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-prefix">
<term
><option
>--prefix=&lt;/шлях/до/kde&gt;</option
></term>
<listitem
><para
>За допомогою цього параметра можна змінити каталог, куди &kde; буде встановлено з командного рядка. За використання цього параметра автоматично використовуєтья параметр <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
>Зупинити виконання після команди <command
>make <option
>-f</option
> Makefile.cvs</command
>. Вам все ж доведеться запустити і скрипт configure, цю дію &kdesvn-build; виконає наступного разу. За допомогою цього скрипту ви зможете створити всі скрипти configure одразу, щоб мати змогу переглянути вивід команд <command
>./configure <option
>--help</option
></command
> для кожного з модулів і змінити відповідним чином ваші параметри configure. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-install"
><term
><option
>--install</option
></term>
<listitem
><para
>За використання цього параметра командного рядка скрипт намагається встановити всі модулі, які було успішно зібрано, окрім qt-copy, встановлювати який не потрібно. Якщо після <option
>--install</option
> буде вказано інші параметри командного рядка, всі ці параметри вважатимуться назвами модулів, які слід встановити. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-global-option">
<term
><option
>--&lt;назва_параметра&gt;=</option
></term>
<listitem
><para
>Ви можете скористатися цим параметром, щоб перевизначити відповідний параметр у вашому <link linkend="configure-data"
>файлі налаштувань</link
> для кожного з модулів. Наприклад, щоб перевизначити значення параметра <link linkend="conf-log-dir"
>log-dir</link
>, вам слід вказати: <userinput
><option
>--log-dir=<filename class="directory"
><replaceable
>/шлях/до/каталогу</replaceable
></filename
></option
></userinput
>. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-module-option">
<term
><option
>--&lt;назва_модуля&gt;,&lt;назва_параметра&gt;=</option
></term>
<listitem
><para
>Ви можете скористатися цим параметром, щоб перевизначити значення відповідного параметри у вашому <link linkend="configure-data"
>файлі налаштувань</link
> для певного модуля. Наприклад, щоб перевизначити значення параметра <link linkend="conf-use-unsermake"
>use-unsermake</link
> для kdemultimedia, you вам слід вказати: <option
>--kdemultimedia,use-unsermake=false</option
>. </para
></listitem>
</varlistentry>

</variablelist>

<para
>Всі інші параметри командного рядка вважатимуться назвами модулів, які слід оновити і зібрати. Будь ласка, не плутайте збирання зі встановленням. </para>

</chapter>

<chapter id="using-kdesvn-build">
<title
>Користування &kdesvn-build;</title>

<sect1 id="using-kdesvn-build-preface">
<title
>Передмова</title>

<para
>Зазвичай, використання &kdesvn-build; після виконання кроків розділу <xref linkend="getting-started"/> зводиться до виконання такої команди у терміналі:</para>

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

<para
>Після цього &kdesvn-build; звантажить коди програм &kde;, спробує налаштувати (configure) і зібрати їх, а потім встановити програми.</para>

<para
>Далі ми поговоримо про те, як &kdesvn-build; робить це, а також про те, які дії ви можете виконати за допомогою цього інструменту.</para>

</sect1>

<sect1 id="basic-features">
<title
>Основні можливості &kdesvn-build;</title>

<sect2 id="using-qt-copy">
<title
>Підтримка qt-copy</title>
<para
>&kdesvn-build; намагається якнайкраще підтримувати модуль qt-copy у сховищі &subversion; &kde;.</para>

<note
><para
>qt-copy є копією початкових кодів найостаннішого випуску набору інструментів &Qt;, який використовується &kde;. У цьому модулі також міститься набір латок для оптимізації і усування вад, які ви можете за бажання накласти на початковий код. Ці латки сумісні з бібліотекою &Qt;, отже код, створений за допомогою qt-copy, запускатиметься і зі звичайним &Qt;. </para
></note>

<para
>Більшість відмінностей qt-copy, автоматично обробляються &kdesvn-build;. Але існує декілька відмінностей, про які вам слід знати.</para>

<itemizedlist>
<listitem
><para
>Зазвичай, значення параметра &configure-flags; якогось з модулів додається до загального значення параметра &configure-flags;. Але значення параметра &configure-flags; для qt-copy замінить загальне значення параметра, оскільки рядок команди для цього модуля відрізняється від рядків команд інших модулів. </para
></listitem>

<listitem
><para
>&kdesvn-build; автоматично визначатиме деякі додаткові змінні середовища, які потрібні для збирання qt-copy і які, зазвичай, не потрібні для збирання решти &kde;. </para
></listitem>

<listitem
><para
>Крім того, qt-copy підтримує необов’язковий набір латок для усування деяких вад і оптимізацій, які ще не увійшли до офіційної версії &Qt;. Щоб увімкнути ці латки, встановіть для параметра &apply-qt-patches; значення <replaceable
>true</replaceable
>. Після виконання цієї зміни вам, ймовірно, доведеться виконати команду <userinput
><command
>kdesvn-build</command
> <option
>--refresh-build</option
> <option
>qt-copy</option
></userinput
>. </para
></listitem>

</itemizedlist>

</sect2>

<sect2 id="kdesvn-build-std-flags">
<title
>Стандартні прапорці, які додаються &kdesvn-build;</title>
<para
>Щоб зекономити вам час, &kdesvn-build; додасть деякі з стандартних шляхів до вашого середовища: </para>

<itemizedlist>
<listitem
><para
>Шлях до бібліотек &kde; і &Qt; автоматично додається до змінної середовища <envar
>LD_LIBRARY_PATH</envar
>. Отже, вам не потрібно змінювати &libpath;, щоб включити відповідні каталоги. </para
></listitem>

<listitem
><para
>Шлях до програм підтримки розробки &kde; і &Qt; буде автоматично додано до змінної середовища <envar
>PATH</envar
>. Отже, вам не потрібно змінювати &binpath;, щоб включити відповідна каталоги. </para
></listitem>

<listitem
><para
>Шлях до програми <application
>pkg-config</application
> &kde; буде автоматично додано до <envar
>PKG_CONFIG_PATH</envar
>. Отже, вам не потрібно використовувати &set-env; для додавання відповідних каталогів. </para
></listitem>

<listitem
><para
>Це значення &kdedir; буде автоматично передано змінній середовища <envar
>KDEDIR</envar
> на час збирання. (Змінна <envar
>KDEDIRS</envar
> залишатиметься незмінною.) </para
></listitem>

<listitem
><para
>Це значення для &qtdir; буде автоматично передано змінній середовища <envar
>QTDIR</envar
> на час збирання. </para
></listitem>

<listitem
><para
>&kdesvn-build; автоматично скоригує середовище належним чином, беручи до уваги встановлення чи не встановлення параметра &use-unsermake;. </para
></listitem>

</itemizedlist>

</sect2>

<sect2 id="build-priority">
<title
>Зміна пріоритету збирання &kdesvn-build;</title>
<para
>У сучасних операційних системах ви можете запускати програми з різним рівнем пріоритетності, це зокрема можна робити у &Linux; і &BSD;. Система розподілятиме час процесора між різними програмами відповідно до того, наскільки пріоритетними є ці програми. </para>

<para
>Зазвичай, &kdesvn-build; надає собі низький пріоритет так, щоб решта програм вашої системи не відчули змін і могли виконуватися у звичному режимі. Таким чином, &kdesvn-build; використовуватиме лише залишковий час процесора. </para>

<para
>Але &kdesvn-build; підтримуватиме достатньо великий рівень пріоритету, а отже скрипт виконуватиметься з вищим пріоритетом ніж пакетні процеси і програми з надання процесорного часу, на зразок <ulink url="http://setiathome.ssl.berkeley.edu/"
>Seti@Home</ulink
>. </para>

<para
>Ви можете змінити рівень пріоритетності &kdesvn-build; на вищий або нижчий, — для цього вам достатньо змінити значення параметр &niceness; у <link linkend="configure-data"
>файлі налаштувань</link
>. Значення параметра &niceness; керує тим, наскільки <quote
>поблажливим</quote
> &kdesvn-build; буде до інших програм. Іншими словами, встановлення більшого значення параметра &niceness; надасть &kdesvn-build; менший пріоритет. Отже, щоб надати &kdesvn-build; вищий пріоритет, зменшіть значення &niceness; (і навпаки). Значеннями параметра &niceness; можуть бути цілі числа від 0 (ніяких компромісів, — найвищий пріоритет) до 20 (найкомпромісніше виконання, — найнижчий пріоритет).</para>

<para
>Крім того, ви можете тимчасово змінити пріоритет &kdesvn-build; за допомогою <link linkend="cmdline"
>параметра командного рядка</link
> &cmd-nice;. Значення цього параметра таке саме, як і значення &niceness;.</para>

<note
><para
>Деякі з програм, які виконуються від імені адміністративного користувача, можна виконувати з від’ємним рівнем nice, такі програми матимуть ще вищий рівень пріоритетності. Встановлювати від’ємного (або навіть нульового) значення &niceness; для &kdesvn-build; не варто, подібні значення не зможуть значно пришвидшити роботу програми, але значно сповільнять виконання інших завдань системи, які будуть вам потрібні. </para
></note>

<informalexample>
<para
>Щоб запустити &kdesvn-build; з пріоритетом nice 15 (пріоритетом, нижчим за звичайний), виконайте команду:</para>

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

<para
>Крім того, ви можете змінити <link linkend="configure-data"
>файл налаштувань</link
>, щоб зробити зміни сталими:</para>

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

</informalexample>
</sect2>

<sect2 id="root-installation">
<title
>Встановлення від імені суперкористувача</title>
<para
>Ймовірно, у вас може виникнути потреба у запуску &kdesvn-build; встановлення з правами доступу адміністративного користувача. Така потреба може виникнути під час загальносистемного встановлення, яке, втім, не рекомендується авторами програми. Ця можливість також корисна і під час рекомендованого збирання для окремого користувача &kde;. Причиною цього є те, що деякі у деяких модулях (особливо у модулі kdebase) програми мають встановлюватися з підвищеними правами доступу до ресурсів системи. Ці програми не зможуть отримати потрібних дозволів, якщо ви не встановите їх з підвищеними правами. </para>

<para
>Ви можете просто запустити &kdesvn-build; від імені адміністративного користувача, але ми не рекомендуємо вам цього робити, оскільки скрипт не було достатньо випробовано запуском у такому режимі. Хоча запуск програми у такий спосіб і не повинен призвести до шкідливих наслідків, вам краще за можливості уникати запуску скрипту від імені адміністративного користувача.</para>

<para
>Для надання скрипту додаткових прав доступу у &kdesvn-build; передбачено параметр &make-install-prefix;. Ви можете скористатися цим параметром для того, щоб вказати команду, яка використовується для встановлення від імені іншого користувача. Рекомендуємо вам скористатися для цього програмою &sudo;, ця програма надає змогу виконувати команди від імені адміністративного користувача. </para>

<informalexample>
<para
>Наприклад, щоб встановити всі модулі за допомогою &sudo;, ви можете вказати щось таке:</para>

<screen
>global
  &make-install-prefix; <replaceable
>sudo</replaceable>
  # Інші параметри
end global
</screen>

<para
>Для того, щоб скористатися &make-install-prefix; для окремого модуля, вкажіть у файлі налаштувань рядки на зразок: </para>

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

</sect2>

<sect2 id="build-progress">
<title
>Показ поступу збирання модуля</title>
<para
>Ця можливість завжди доступна, за можливості скрипт автоматично вмикає її. Вона надає вам змогу слідкувати за поступом збирання модуля, а отже ви знатимете скільки часу залишилося до завершення збирання модуля. </para>

<para
>Для того, щоб ви могли використовувати цю можливість, вам слід увімкнути параметр &use-unsermake; на рівні відповідного модуля. Типово, цей параметр увімкнено, але деякі з модулів не підтримують його використання, для таких модулів використання &unsermake; автоматично вимикається. Отже, якщо ви вважаєте, що увімкнули &unsermake;, але не бачити звіту про поступ збирання модуля, можливо, модуль не підтримує &unsermake;.</para>
</sect2>

</sect1>

<sect1 id="advanced-features">
<title
>Додаткові можливості</title>

<sect2 id="partial-builds">
<title
>Часткове збирання модуля</title>
<para
>Існує також можливість збирання окремих фрагментів окремого модуля &kde;. Наприклад, ви можете зібрати лише одну з програм модуля. У &kdesvn-build; передбачено засоби для полегшення такого збирання. Існує декілька шляхів виконати подібне збирання. </para>

<sect3 id="checking-out-parts">
<title
>Звантаження частин модуля</title>

<para
>Ймовірно, це найкращий спосіб виконати завдання. Якщо він працюватиме, ви зекономите час на звантаження і простір на диску. За використання цього способу &kdesvn-build; звантажуватиме лише частини модуля, який ви вкажете. Досягти цього можна за допомогою використання параметра &checkout-only; для модуля, — цей параметр визначає список каталогів, які слід звантажити. </para>

<tip
><para
>Якщо ви ще не знаєте, які саме частини модуля вам слід звантажити, вам варто спочатку переглянути компонування &subversion; цього модуля за допомогою <ulink url="http://websvn.kde.org/branches/KDE/3.5/"
>WebSVN</ulink
>. </para
></tip>

<informalexample>
<para
>Для того, щоб звантажити лише &kuser; і &kdat; з kdeadmin, ви можете скористатися &checkout-only; ось так:</para>

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

</informalexample>

<important
><para
>Каталоги збиратимуться у тому порядку, у якому ви вкажете їх за допомогою цього параметра. Якщо у одному з каталогів буде потрібен компонент, який ще не було зібрано, вам слід не забути вказати відповідні каталоги у рядку &checkout-only; і переконатися, що потрібний компонент вказано перед назвою іншого компонента, для збирання якого потрібен перший компонент.</para>

<para
>Крім того, іноді певна програма може потребувати якихось інших компонентів, а визначити назви цих компонентів досить складно, — ця процедура може потребувати використання методу проб і помилок з постійним додаванням каталогів до аргументів параметра, щоб виявити потрібні залежності.</para>
</important>

<para
>Нарешті, останнє зауваження щодо цього параметра: якщо ви зміните значення цього параметра, вам доведеться виконати команду <userinput
><command
>kdesvn-build</command
> <option
>&cmd-refresh-build;</option
> <option
><replaceable
>назва_модуля</replaceable
></option
></userinput
>, щоб забезпечити правильне переналаштування модуля. Крім того, &kdesvn-build; ніколи не буде вилучати існуючих файлів, якщо ви усуватимете певні каталоги зі списку аргументів параметра &checkout-only; або додаватимете параметр до модуля, який вже було звантажено.</para>

</sect3>

<sect3 id="not-compiling">
<title
>Вилучення каталогів з процесу збирання</title>
<para
>Замість обмеження списку об’єктів для звантаження ви можете наказати скрипту звантажити всі каталоги і зібрати всі з них, окрім декількох. Такий підхід може бути корисним, якщо під час збирання одного з каталогів завжди трапляються помилки і цей каталог не потрібен для збирання решти модуля. </para>

<para
>Подібним збиранням можна керувати за допомогою параметра &do-not-compile;. Цей параметр працює подібно до параметра &checkout-only;, про який ми писали раніше, — йому передається список каталогів, які не слід збирати.</para>

<important
><para
>Крім того, подібно до &checkout-only;, для того, щоб зміни, внесені цим параметром, набули чинності, вам слід запустити скрипт <command
>configure</command
> відповідного модуля ще раз. Це можна зробити за допомогою команди <userinput
><command
>kdesvn-build</command
> <option
>&cmd-reconfigure;</option
> <option
><replaceable
>назва_модуля</replaceable
></option
></userinput
>. </para
></important>

<informalexample>
<para
>Щоб вилучити каталог <filename
>dcoppython</filename
> з процесу збирання 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
>Збирання декількох каталогів з всього модуля</title>

<para
>Ви можете скористатися параметром &inst-apps; для того, щоб вказати скрипту, що слід зібрати лише декілька каталогів з усього модуля (але звантажити слід всі каталоги). </para>

<para
>Цей параметри подібний до комбінації параметрів &checkout-only; і &do-not-compile;: за його використання виконується звантаження всього модуля, подібно до &do-not-compile;, але збираються лише вказані вами каталоги, подібно до &checkout-only;. Через це, зазвичай, простіше скористатися параметром &checkout-only;. </para>

<para
>Цього параметра стосуються всі ті попередження, про які було згадано у описах його складових: вам доведеться повторно викликати скрипт configure, якщо ви зміните значення &inst-apps;. </para>
</sect3>

</sect2>

<sect2 id="using-unsermake">
<title
>Використання &unsermake;</title>

<para
>&unsermake; — це програма, яку розроблено для вбудовування до системи збирання &kde; і покращення процесу збирання заміною певних інструменті, які використовують типово (зокрема &automake; і &make;). Цей інструмент буде особливо корисним для тих, хто виконує розподілене збирання, оскільки у цьому випадку він є набагато швидшим за звичайну систему збирання. Але навіть під час збирання на одному комп’ютері &unsermake; є швидшим за свої аналоги. </para>

<para
>Крім того, у &unsermake; передбачено підтримку оцінки поступу поточної процедури збирання. &kdesvn-build; використовує цю можливість для показу поступу процесу збирання. Див. також <xref linkend="build-progress"/>. </para>

<para
>У &kdesvn-build; передбачено автоматичну підтримку &unsermake;. &kdesvn-build; типово використовує &unsermake; за наявності можливості використання його для збирання певного модуля. </para>

<informalexample>
<para
>Щоб вимкнути підтримку &unsermake; для всіх модулів, додайте такі рядки:</para>

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

<para
>Щоб увімкнути &unsermake; для окремого модуля, навіть якщо цей інструмент вимкнено на загальному рівні, виконайте таку команду:</para>

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

  # тут буде записано інші параметри...
end module
</screen>
</informalexample>

<note
><para
>&kdesvn-build; автоматично оновить або звантажить &unsermake; під час виконання інших оновлень. Якщо ви надаєте перевагу самостійному керуванню &unsermake;, вимкнути подібні перевірки і звантаження можна встановленням для параметра &use-unsermake; значення <replaceable
>self</replaceable
> замість <replaceable
>true</replaceable
>.</para>

<para
>Після такої зміни &kdesvn-build; продовжуватиме спроби використання &unsermake;, але не виконуватиме спроб оновлення. Ви можете або змінити значення параметра &binpath; так, щоб він вказував на правильний каталог &unsermake;, або звантажити і оновити &unsermake; самостійно з його модуля (у поточній версії kdenonbeta/unsermake). </para
></note>

</sect2>

<sect2 id="using-branches">
<title
>Підтримка версій і випусків у &kdesvn-build;</title>

<sect3 id="branches-and-tags">
<title
>Що таке версія (branch) і випуск (tag)?</title>

<para
>&subversion; підтримує керування журналом змін коду &kde;. &kde; використовує цю підтримку для створення версій, які розробляються, і створення сховищ випусків для зберігання коду випущених версій середовища. </para>

<para
>Наприклад, розробники &kmail; можуть працювати над новою можливістю у іншій версії, щоб уникнути можливої непрацездатності версії, над якою працює більшість інших розробників. У цій версії відбувається розробка, хоча розробка також відбувається і у основному сховищі версій (яке називається /trunk). </para>

<para
>З іншого боку, випуск є моментальним знімком сховища коду у певний момент часу. Таке сховище використовується командою адміністрування &kde; для позначення версії коду, придатної для випуску, а також надає розробниками можливість доопрацьовувати їх код. </para>

<para
>У &subversion; немає ніяких відмінностей між версіями, випусками і експериментальною версією (trunk) коду. Подібне відокремлення є лише наслідком певної домовленості між розробниками. Це ускладнює належну підтримку версій і випусків у &kdesvn-build;. Все ж деякі речі можна робити і за допомогою скрипту. </para>

</sect3>

<sect3 id="branch-support">
<title
>Як користуватися версіями і випусками?</title>

<para
>Підтримка версій і випусків забезпечується набором параметрів, які призначено для виконання дій у діапазоні від загального запису на певну версію, до визначення адреси &url; для звантаження досвідченими користувачами. </para>

<para
>Найпростішим способом є використання параметрів &branch; і &tag;. Ви можете просто скористатися параметром з аргументом-назвою бажаної версії або випуску модуля, — &kdesvn-build; спробує визначити належну адресу у сховищі &kde; для звантаження коду. Для більшості модулів &kde; таких спосіб працює дуже добре.</para>

<informalexample>
<para
>Щоб звантажити kdelibs зі складу &kde; 3.5 (відповідне сховище відоме, як версія 3.5): </para>

<screen
>module kdelibs
  branch <replaceable
>3.5</replaceable>
  # інші параметри...
end module
</screen>

<para
>Або, щоб звантажити kdemultimedia у вигляді, у якому цей модуль було випущено у &kde; 3.4.3:</para>

<screen
>module kdemultimedia
  tag <replaceable
>3.4.3</replaceable>
  # інші параметри...
end module
</screen>

</informalexample>

<tip
><para
>Ви можете вказати загальне значення версії (branch). Але, якщо ви це зробите, не забудьте вказати іншу версію для модулів, які не використовують загальної нумерації версій! </para
></tip>
</sect3>

<sect3 id="advanced-branches">
<title
>Додаткові параметри підтримки версій</title>

<para
>&kdesvn-build; підтримує два параметри, призначені для обробки ситуацій, коли параметри &branch; і &tag; неправильно визначають шлях до сховища: &module-base-path; і &override-url;. </para>

<itemizedlist>
<listitem
><para
>Параметр &module-base-path; використовується для того, щоб допомогти &kdesvn-build; заповнити відсутню частину шляху до модуля. У сховищі &kde; всіх шляхи виглядають так: <filename class="directory"
>Корінь_svn/базовий_шлях_до_модуля/<replaceable
>назва модуля</replaceable
></filename
>. Зазвичай, &kdesvn-build; може визначити відповідну середню частину самостійно. Якщо програма не може цього зробити, ви можете скористатися &module-base-path;, ось так: </para>

<informalexample>
<screen
>module qt-copy
  # тут стабільні версії ще не працюють
  module-base-path branches/qt/3.3
end module
</screen>

<para
>Таким чином ви накажете &kdesvn-build; звантажити qt-copy з (у нашому прикладі), <filename
>svn://anonsvn.kde.org/home/kde/<replaceable
>branches/qt/3.3</replaceable
>/qt-copy</filename
>. </para>
</informalexample>
</listitem>

<listitem
><para
>З іншого боку, параметр &override-url; дозволяє вам вказати точний шлях для звантаження. За допомогою цього параметра ви можете наказати &kdesvn-build; виконати звантаження з тих адрес, які скрипт не може визначити самостійно. </para>

<informalexample>
<screen
>module qt-copy
  # Визначення точного шляху для звантаження.
  override-url svn://anonsvn.kde.org/home/kde/branches/qt/3.3/qt-copy
end module
</screen>
</informalexample>

<important
><para
>&kdesvn-build; не змінюватиме і не виправлятиме значення, яке ви вкажете для &override-url;, отже, якщо ви зміните ваш параметр &svn-server;, може виникнути потреба і у зміні цього параметра. </para
></important>

</listitem>
</itemizedlist>

</sect3>

</sect2>

<sect2 id="building-successfully">
<title
>Способи, у які &kdesvn-build; намагається забезпечити успішне збирання</title>

<sect3 id="automatic-rebuilds">
<title
>Автоматичне перезбирання</title>

<para
>Через різноманітні недоліки у системі збирання &kde;, частину яких можна усунути використанням &unsermake;, &kdesvn-build; автоматично виконує послідовність кроків, за допомогою яких скрипт намагається зібрати модуль, якщо перша спроба збирання завершилася невдало.</para>

<orderedlist>
<listitem
><para
>Після першої спроби &kdesvn-build; просто перезапускає <command
>make</command
>. Вірите чи ні, але іноді такий перезапуск призводить до бажаних результатів, якщо ж це не спрацює, результати будуть відомі дуже скоро. </para
></listitem>

<listitem
><para
>За повторної помилки &kdesvn-build; намагається повторно виконати скрипт configure для модуля, а потім ще раз зібрати його. Зазвичай, таким чином можна вирішити проблеми, пов’язані з файлом системи збирання, для якого потрібне повторне налаштування, яке не виконується системою збирання у автоматичному режимі. </para>

<para
>Каталог збирання модуля під час виконання цього кроку не змінюється, отже, за винятком кроку з повторного налаштування (запуску скрипту configure), у разі неможливості збирання все теж завершиться досить швидко. </para>
</listitem>

<listitem
><para
>Якщо модуль так і не вдалося зібрати, &kdesvn-build; здається і переходить до збирання іншого модуля. Але існують і способи, за допомогою яких ви можете <link linkend="manual-rebuilds"
>спробувати зібрати модуль вручну</link
>. </para
></listitem>
</orderedlist>

<note
><para
>&kdesvn-build; виявить більшість випадків, коли система збирання потребує повторного налаштування, і виконає його у автоматичному режимі. </para>

<para
>Крім того, якщо &kdesvn-build; збирає модуль вперше, всі ці кроки можна пропустити, оскільки збирання «на порожньому місці», зазвичай, не призводить до помилок, за винятком існування серйозних проблем у коді.</para>
</note>
</sect3>

<sect3 id="manual-rebuilds">
<title
>Перезбирання модуля вручну</title>
<para
>Якщо ви змінили параметри певного модуля або код модуля змінився таким чином, що &kdesvn-build; не може його розпізнати, у вас може виникнути потреба у повторному збиранні цього модуля вручну.</para>

<para
>Ви можете зробити це простою командою <userinput
><command
>kdesvn-build</command
> <option
>--refresh-build</option
> <option
><replaceable
>назва_модуля</replaceable
></option
></userinput
>. </para>

<para
>Якщо замість цього ви бажаєте, щоб скрипт &kdesvn-build; автоматично перезібрав модуль під час наступного звичайного оновлення збирання, ви можете створити спеціальний файл. Кожен з модулів має власний каталог для збирання. Якщо ви створите у цьому каталозі для збирання файл з назвою <filename
>.refresh-me</filename
>, &kdesvn-build; повторно збере модуль під час наступного сеансу збирання, навіть якщо скрипт виконує швидке нарощувальне збирання.</para>

<tip>
<para
>Типово, каталогом збирання буде <filename class="directory"
>~/kdesvn/build/<replaceable
>назва модуля</replaceable
>/</filename
>. Якщо ви зміните значення параметра &build-dir;, буде замість <filename class="directory"
>~/kdesvn/build</filename
> буде використано значення цього параметра.</para>
</tip>

<informalexample>
<para
>Повторне збирання за допомогою <filename
>.refresh-me</filename
> модуля <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
>Керування поведінкою перезбирання</title>
<para
>Ймовірно, ви не бажатимете, щоб скрипт &kdesvn-build; завжди намагався перезібрати певний модуль. Ви можете вимкнути повторне збирання зміною значення параметра &no-rebuild-on-fail; на <replaceable
>true</replaceable
>.</para>

<para
>Тимчасово вимкнути повторне збирання (на час виконання одної команди) можна за допомогою параметра командного рядка &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
>Зміна параметрів змінних середовища</title>
<para
>&kdesvn-build; не читає змінні середовища з оболонки, звідки було викликано скрипт, як це робить більшість програм. Замість цього скрипт використовує параметри, вказані у <link linkend="configure-data"
>файлі налаштувань</link
> для побудови відповідного середовища. Так зроблено головним чином для того, щоб збирання завжди виконувалося однаково (було повторюваним). Іншими словами, &kdesvn-build; може зібрати певний модуль, навіть якщо ви забули, які змінні середовища ви встановили у оболонці, звідки ви запускаєте &kdesvn-build;.</para>

<para
>Крім того, у вас може виникнути потреба у зміні тих змінних середовища, для яких у &kdesvn-build; не передбачено параметрів. Це можна зробити за допомогою параметра &set-env;.</para>

<para
>На відміну від інших параметрів, цей параметр можна визначати декілька разів, він приймає два записи, відокремлені пробілом. Першим з записів є назва змінної середовища, яку слід встановити, решта рядка вважається значенням цієї змінної.</para>

<informalexample>
<para
>Встановити значення змінної <userinput
><envar
>DISTRO</envar
>=<replaceable
>BSD</replaceable
></userinput
> для всіх модулів:</para>
<screen
>global
  set-env <replaceable
>DISTRO</replaceable
> <replaceable
>BSD</replaceable>
end global
</screen>
</informalexample>

</sect2>

<sect2 id="resuming">
<title
>Поновлення збирання</title>

<sect3 id="resuming-failed">
<title
>Поновлення збирання, яке завершилося помилкою або було скасоване</title>

<para
>Ви можете наказати &kdesvn-build; почати збирання з модуля, відмінного від того, з якого скрипт зазвичай розпочинає збирання. Такі налаштування можуть стати у нагоді, якщо спроба збирання певного набору модулів завершилася невдало або якщо ви перервали попередню спробу збирання. Вказати модуль можна за допомогою параметра &cmd-resume-from;.</para>

<note
><para
>Використання параметра &cmd-resume-from; скасовує спробу оновлення початкових кодів.</para>
</note>

<informalexample>
<para
>Відновлення збирання з модуля 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
>Ігнорування модулів під час збирання</title>

<para
>Подібно до способу, у який ви можете <link linkend="resuming-failed"
>поновити збирання, починаючи з певного модуля</link
>, ви можете і оновити зібрати компоненти у звичайному режимі, але без певного набору модулів.</para>

<para
>Виконати це завдання можна за допомогою параметра &cmd-ignore-modules;. За допомогою цього параметра ви можете повідомити скрипту &kdesvn-build; про те, що слід ігнорувати всі передані як аргументи у командному рядку модулі під час виконання оновлення і збирання.</para>

<informalexample>
<para
>Ігнорування extragear/multimedia і kdenonbeta під час повноцінного запуску:</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
>Зміна параметрів за допомогою командного рядка</title>

<sect3 id="changing-global-opts">
<title
>Зміна загальних параметрів</title>
<para
>Ви можете змінити набір параметрів з <link linkend="configure-data"
>файла налаштувань</link
> безпосередньо з командного рядка. Ця зміна перевизначить параметри файла налаштувань, але лише тимчасово. Ці параметри працюватимуть лише протягом виконання вказаної у командному рядку команди.</para>

<para
>&kdesvn-build; надає вам змогу змінити параметри з назвою <replaceable
>назва-параметра</replaceable
> передаванням аргументу у командний рядок у формі <userinput
><option
>--<replaceable
>назва-параметра</replaceable
>=значення</option
></userinput
>. &kdesvn-build; визначає чи відомий скрипту параметр і намагається знайти назву у власному списку назв параметр. Якщо програмі не вдається знайти назву, вона попередить вас про це, у іншому випадку скрипт запам’ятає встановлене вами значення і перевизначає значення, встановлення у файлі налаштувань.</para>

<informalexample>
<para
>Встановлення параметра &source-dir; у значення <filename
>/dev/null</filename
> для перевірки:</para>

<screen
><prompt
>%</prompt
> <userinput
><command
>kdesvn-build</command
> <option
>--pretend</option
> <option
>--<replaceable
>source-dir</replaceable
>=<replaceable
>/dev/null</replaceable
></option
></userinput
>
</screen>

<para
>Вимикання &unsermake; з командного рядка. <option
>--refresh-build</option
> використовується для того, щоб зміни у налаштуваннях &unsermake; набули чинності.</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
>Зміна параметрів для модулів</title>
<para
>Крім того, можна змінити параметри, вказані для окремого модуля. Синтаксис команди, подібний до синтаксису попередньої команди: --<replaceable
>назва_модуля</replaceable
>,<replaceable
>назва-параметра</replaceable
>=<replaceable
>значення</replaceable
>. </para>

<para
>Ця зміна перевизначає параметр відповідного модуля у <link linkend="configure-data"
>файлі налаштувань</link
> і діє лише протягом виконання рядка команди.</para>

<informalexample>
<para
>Використання іншого каталогу збирання для модуля kdeedu:</para>

<screen
><prompt
>%</prompt
> <userinput
><command
>kdesvn-build</command
> <option
>--<replaceable
>kdeedu</replaceable
>,<replaceable
>build-dir</replaceable
>=<replaceable
>temp-build</replaceable
></option
></userinput
>
</screen>

</informalexample>

</sect3>

</sect2>

</sect1>

<sect1 id="developer-features">
<title
>Можливості, призначені для розробників &kde;</title>

<sect2 id="ssh-agent-reminder">
<title
>Перевірки агента &ssh;</title>
<para
>&kdesvn-build; може забезпечити вимикання інструмента агента &ssh;, якщо розробник &kde;, який використовується &ssh; для доступу до сховища коду &kde;, забуде його вимкнути. Таким чином, &kdesvn-build; може нескінченно очікувати на введення розробником пароля &ssh;, отже, типово, &kdesvn-build; перевіряє, чи запущено агент перед виконанням оновлення коду. </para>

<note
><para
>Ці дії виконуються лише для розробників &kde;, які використовують &ssh;. Причиною цього є те, що для типового анонімного доступу для звантаження пароль не потрібен. &subversion; оброблятиме паролі для іншого можливого способу доступу для розробників &kde;, https. </para
></note>

<para
>Ймовірно, ви захочете вимкнути перевірку агента &ssh; у випадку, коли &kdesvn-build; помилково визначає присутність агента. Щоб вимкнути перевірку агента, встановіть для параметра <option
>disable-agent-check</option
> значення <replaceable
>true</replaceable
>.</para>

<informalexample>
<para
>Вимикання перевірки &ssh;-агента:</para>
<screen
>global
  disable-agent-check true
end global
</screen>
</informalexample>

</sect2>

</sect1>

<sect1 id="other-features">
<title
>Інші можливості &kdesvn-build;</title>

<sect2 id="changing-verbosity">
<title
>Зміна рівня докладності виводу &kdesvn-build;</title>
<para
>У &kdesvn-build; передбачено декілька параметрів для керування об’ємом даних, які виводить скрипт. У будь-якому випадку, помилки завжди виводяться.</para>

<itemizedlist>
<listitem
><para
>Запуск &kdesvn-build; з параметром <option
>--quiet</option
> (скорочена форма <option
>-q</option
>) виводить мінімум даних. Буде показано лише важливі повідомлення, попередження або повідомлення про помилки. Відомості щодо поступу збирання, у разі їх наявності, також буде показано.</para
></listitem>

<listitem
><para
>За використання параметра <option
>--really-quiet</option
> (не має скороченої форми) &kdesvn-build; під час виконання покаже лише важливі повідомлення і повідомлення про помилки.</para
></listitem>

<listitem
><para
>Використання параметра <option
>--verbose</option
> (скорочена форма <option
>-v</option
>) призведе до дуже детального виводу даних &kdesvn-build;.</para
></listitem>

<listitem
><para
>Параметр <option
>--debug</option
> призначено лише для усування вад, за його використання &kdesvn-build; працюватиме так, наче увімкнено <option
>--verbose</option
>, команди виводитимуть дані до термінала, крім того, буде показано відомості, призначені для усування вад для багатьох функціональних можливостей.</para
></listitem>
</itemizedlist>

</sect2>

<sect2 id="kdesvn-build-color">
<title
>Виведення у кольорі</title>
<para
>Якщо ви запустите &kdesvn-build; з &konsole; або іншої програми емуляції термінала, скрипт виводитиме розфарбований текст.</para>

<para
>Ви можете вимкнути це розфарбування за допомогою параметра <option
>--no-color</option
>, доданого до командного рядка або встановленням для параметра &colorful-output; у <link linkend="configure-data"
>файлі налаштувань</link
> у значення <replaceable
>false</replaceable
>. </para>

<informalexample>
<para
>Вимикання виведення у кольорі у файлі налаштувань:</para>
<screen
>global
  colorful-output false
end global
</screen>
</informalexample>

</sect2>

<sect2 id="email-reports">
<title
>Надсилання звітів про невдале збирання електронною поштою</title>
<para
>&kdesvn-build; може надсилати звіти електронною поштою на вибрану вами адресу електронної пошти, якщо модуль не вдалося зібрати з будь-якої причини. Вам слід вказати &kdesvn-build; адресу, з якої слід надсилати електронну пошту та адресу, за якою слід надсилати сповіщення про помилку.</para>

<para
>Після завершення спроби збирання &kdesvn-build; створить повідомлення електронної пошти, якщо спроба збирання якогось з модулів завершилася невдало. У цьому повідомленні міститиметься скорочений журнал помилок для кожного з модулів. Під час одного запуску скрипту може бути надіслано лише одне повідомлення, навіть якщо не вдалося зібрати 15 модулів. </para>

<para
>Цю можливість типово вимкнено. Для того, щоб увімкнути її, вам слід вказати значення параметрів &email-address; і &email-on-compile-error;. Значення параметра <option
>email-address</option
> визначає адресу, з якої &kdesvn-build; надсилатиме повідомлення, а значення <option
>email-on-compile-error</option
> визначає адресу, куди слід надсилати повідомлення. </para>

<tip>
<para
>Для надсилання повідомлень &kdesvn-build; використовує стандартний модуль Perl Mail::Mailer. Цей модуль включено до складу Perl 5.8, його можна встановити і у Perl 5.6. Mail::Mailer підтримує <application
>Sendmail</application
> (і зокрема сумісні з <application
>Sendmail</application
> клієнти електронної пошти), транспорт <acronym
>SMTP</acronym
> і <application
>qmail</application
>. </para>
</tip>

<informalexample>
<para
>Надсилання повідомлення електронною поштою з foo@example.com до bar@example.com у разі невдалої спроби збирання:</para>

<screen
>global
  email-address          foo@example.com    # Від: адреса для будь-яких повідомлень kdesvn-build
  email-on-compile-error bar@example.com    # Кому: адреса для повідомлень про невдалі спроби збирання
end global
</screen>
</informalexample>

</sect2>

<sect2 id="deleting-build-dir">
<title
>Вилучення непотрібних каталогів після збирання</title>
<para
>У вас мало місця на диску, але велике бажання працювати у найсвіжішій версії &kde;? &kdesvn-build; може допомогти вам зекономити на просторі на диску під час збирання &kde; з &subversion;.</para>

<note
><para
>Пам’ятайте, що для збирання &kde; потрібно досить багато місця. Ось декілька з компонентів, які використовують багато місця на диску, коли ви користуєтеся &kdesvn-build;:</para
></note>

<orderedlist>
<listitem
><para
>Самі звантажені коди можуть займати досить багато місця на диску. Збірка типових модулів займатиме близько 1,6 гігабайтів місця на диску. Ви можете зменшити це значення, якщо збиратимете лише потрібні вам модулі. &kdesvn-build; не вилучатиме вихідні коди з диску, навіть якщо ви вилучите відповідний запис з <link linkend="configure-data"
>файла налаштувань</link
>, отже не забувайте вилучати непотрібні звантажені коди з каталогу початкових кодів. Пам’ятайте про те, що файли кодів звантажуються з інтернету, — вам <emphasis
>не слід</emphasis
> вилучати їх, якщо ви ними користуєтеся, принаймні, доки ви не припините користуватися &kdesvn-build;.</para>

<para
>Крім того, якщо у вашій системі вже встановлено &Qt; з вашого дистрибутива (і вас все у ньому влаштовує), ймовірно, вам не потрібно встановлювати модуль qt-copy. Таким чином ви можете зекономити близько 200 мегабайтів місця на диску.</para>

<para
>Ще одна річ, пов’язана зі способом, у який працює &subversion;: для кожного зі звантажених файлів зі сховища зберігається дві копії. &kdesvn-build; не може одразу після звантаження намагатися мінімізувати розмір коду, — код ще просто не використано. </para>
</listitem>

<listitem>
<para
>&kdesvn-build; створює окремий каталог для збирання початкового коду. Іноді скрипт &kdesvn-build; має скопіювати каталог кодів для того, щоб створити фіктивний каталог збирання. За такої потреби скрипт створює для економії місця символічні посилання, отже значної витрати місця на диску не буде. Каталог збирання, зазвичай, матиме набагато більші розміри за каталог початкових кодів модуля. Наприклад, каталог збирання kdebase має розміри близько 455 мегабайтів, а каталог початкових кодів kdebase — лише близько 195 мегабайтів.</para>

<para
>На щастя, після успішного збирання і встановлення модуля потреба у каталозі збирання зникає. &kdesvn-build; може автоматично вилучати каталог збирання після встановлення модуля, докладніше про це можна дізнатися з наведених нижче прикладів. Зауважте, що виконання цього кроку зробить неможливим &kdesvn-build; нарощувальне збирання, яке могло б заощадити ваш час, якщо ви пізніше забажаєте знову зібрати модуль.</para>
</listitem>

<listitem
><para
>Нарешті, для встановлення самого &kde; поза межами каталогу збирання також потрібне місце на диску. Розмір цього місця, зазвичай, значно менший за розмір каталогу збирання, все ж точне співвідношення важко вказати. </para
></listitem>
</orderedlist>

<para
>Як зменшити вимоги щодо місця на диску для &kde;? Одним зі способів зменшення цього місця є використання належних параметрів компіляції, вони нададуть вам змогу зменшити розмір програм за рахунок зменшення швидкості їх виконання. Іншим, набагато ефективнішим, способом є вилучення відомостей, призначених для усування вад, з зібраного вами &kde;. </para>

<warning
><para
>Вам слід добре все зважити, перш ніж вилучати відомості, призначені для усування вад. Робота з експериментальним програмним забезпеченням означає, що ви користуєтеся програмою, яка потенційно має більш ймовірність відмов, ніж програма зі стабільного випуску. Якщо ви користуєтеся програмами без відомостей, призначених для усування вад, вам буде дуже важко створити гарний звіт про помилку, за яким легко буде усунути ваду. Ймовірно вам доведеться знову увімкнути відомості для усування вад для відповідної програми і повторно її зібрати, щоб допомогти розробникові усунути причину відмови. Отже, вирішуйте самі, чи слід вилучати відомості для усування вад! </para
></warning>

<informalexample>
<para
>Вилучення каталогу збирання після встановлення модуля. Каталог початкових кодів не вилучатиметься, до зібраних програм буде додано інформацію для усування вад:</para>

<screen
>global
  configure-flags      --enable-debug
  remove-after-install builddir        # Вилучити каталог збирання після встановлення
end global
</screen>

<para
>Вилучення каталогу збирання після встановлення, без інформації для усунення вад, з оптимізацією за розміром.</para>

<screen
>global
  cxxflags             -Os             # Оптимізувати за розміром
  configure-flags      --disable-debug
  remove-after-install builddir        # Вилучити каталог збирання після встановлення
end global
</screen>
</informalexample>
</sect2>

</sect1>

</chapter>

<chapter id="kde-cmake">
<title
>&cmake;, система збирання &kde; 4</title>

<sect1 id="kde-cmake-intro">
<title
>Вступ до &cmake;</title>

<para
>У березні 2006 року програма &cmake; виборола серед декількох інших програм право бути обраною системою збирання для &kde; 4, вона замінила систему, засновану на autotools, яку &kde; використовувало спочатку.</para>

<para
>Сторінку вступних відомостей щодо &cmake; можна знайти у <ulink url="http://techbase.kde.org/Development/Tutorials/CMake"
>&kde; TechBase</ulink
>. У загальних рисах, замість запуску <userinput
><command
>make</command
> <option
>-f</option
> <filename
>Makefile.cvs</filename
></userinput
>, з наступним запуском <command
>configure</command
> і &unsermake; (або &make;), слід просто запустити &cmake;, а потім &make;. </para>

<para
>У &kdesvn-build; передбачено підтримку &cmake;. Деякі з параметрів &kdesvn-build; насправді є параметрами самої системи збирання, зокрема <link linkend="conf-inst-apps"
>inst-apps</link
>, <link linkend="conf-configure-flags"
>configure-flags</link
> і <link linkend="conf-do-not-compile"
>do-not-compile</link
>. Якщо доступні рівнозначні можливості, скрипт надає вам їх у розпорядження. Наприклад, відповідником параметра configure-flags є параметр <link linkend="conf-cmake-options"
>cmake-options</link
>, а параметр <link linkend="conf-do-not-compile"
>do-not-compile</link
> підтримується і для &cmake;, починаючи з версії &kdesvn-build; 1.6.3. </para>

<para
>Але деякі з параметрів (наприклад, <link linkend="conf-inst-apps"
>inst-apps</link
>) не мають прямих відповідників, тому скрипт їх вимикає. Якщо авторові програми вдасться реалізувати їх підтримку за допомогою &cmake;, він знову увімкне ці параметри. Так чи інакше, а більшість параметрів працює подібно до параметрів старіших версій.</para>

</sect1>
</chapter>

<chapter id="credits-and-licenses">
<title
>Подяки і ліцензування</title>
&underFDL; </chapter>

</book>
