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

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

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

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

<book lang="&language;">

<bookinfo>
<title
>Підручник зі скрипту &kdesrc-build;</title>

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


<othercredit role="translator"
><firstname
>Юрій</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>
<year
>2009</year>
<year
>2010</year>
<holder
>Michael Pyne</holder>
</copyright>

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

<legalnotice
>&FDLNotice;</legalnotice>

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

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

<keywordset>
<keyword
>KDE</keyword>
<keyword
>kdesdk</keyword>
<keyword
>SVN</keyword>
<keyword
>Subversion</keyword>
<keyword
>git</keyword>
<keyword
>gitorious</keyword>
<keyword
>Розробка KDE</keyword>
<!-- Older names for the software -->
<keyword
>kdesvn-build</keyword>
<keyword
>kdecvs-build</keyword>
</keywordset>

</bookinfo>

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

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

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

<para
>У цьому підручнику подано огляд таких аспектів роботи &kdesrc-build;: </para>

<itemizedlist>
<listitem
><para
>Основні <link linkend="features"
>можливості</link
>.</para
></listitem>
<listitem
><para
><link linkend="getting-started"
>Огляд</link
> початкових кроків.</para
></listitem>
<listitem
><para
>Синтаксис та параметри <link linkend="configure-data"
>файла налаштувань</link
>.</para
></listitem>
<listitem
><para
><link linkend="cmdline"
>Команди та параметри</link
>.</para
></listitem>
</itemizedlist>

<para
>Крім того, задокументовано кроки, які вам слід виконати за допомогою сторонніх інструментів (іншими словами, кроків, які &kdesrc-build; не виконує у автоматичному режимі). </para>

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

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

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

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

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

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

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

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

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

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

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

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

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

<listitem
><para
>Якщо ви збиратимете &Qt; або будь-який з інших модулів &kde;, доступ до даних яких здійснюється за допомогою <ulink url="http://gitorious.org/"
>Gitorious</ulink
>, вам потрібно буде встановити <ulink url="http://gitscm.org/"
>інструмент керування кодом у Git</ulink
> (gitscm).</para
></listitem>

<listitem
><para
>Вам знадобиться середовище розробки мовою C++. Рекомендуємо скористатися GCC 3.4 або пізнішою версією компілятора.</para
></listitem>

</itemizedlist>

<note
><para
>У більшості операційних систем передбачено спосіб простого встановлення потрібних інструментів для розробки. Зверніться до розділу <quote
>Required Packages from your Distribution</quote
> (Потрібні пакунки для вашого дистрибутива) сторінки TechBase <ulink url="http://techbase.kde.org/Getting_Started/Build/KDE4"
>Початок роботи</ulink
>, щоб ознайомитися з готовими настановами.</para
></note>

<para
>Єдиним винятком серед потрібних бібліотек є бібліотека &Qt;. Зазвичай, &kdesrc-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. Для збирання вам потрібна версія не старіша за &Qt; 4.6, якщо ви збираєте &kde; 4.</para>
</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
>Налаштування &kdesrc-build;</title>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

</sect1>

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

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

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

<para
>&kdesrc-build; записує до журналу дані, виведені всіма виконаними скриптом командами. Типово, файли журналу зберігаються у теці <filename class="directory"
>~/kdesrc/log</filename
>. Щоб дізнатися про причину помилки для модуля у останній команді &kdesrc-build;, зазвичай, досить зазирнути до файла <filename class="directory"
>~/kdesrc/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://techbase.kde.org/Getting_Started/Build/KDE4"
>покрокових настанов зі збирання &kde; 4</ulink
>. </para>

<note
><para
>Для отримання докладніших відомостей щодо можливостей журналювання &kdesrc-build;, будь ласка, зверніться до розділу <xref linkend="kdesrc-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)   # Типовим є ~/kdesrc/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
>. Щоб повернутися до вашої зібраної &kdesrc-build; версії &kde;, ви можете скористатися подібною є комбінацією клавіш, але у ній останньою буде інша функціональна клавіша. Наприклад, якщо вам потрібно було ввести <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>F7</keycap
></keycombo
>, щоб перемкнути на вашу звичайну версію &kde;, вам доведеться ввести <keycombo action="simul"
>&Ctrl;&Alt;<keycap
>F8</keycap
></keycombo
>, щоб повернутися до вашого зібраного &kdesrc-build; &kde;.</para>
</tip>

</sect2>
</sect1>

</chapter>

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

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

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

<itemizedlist>

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

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

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

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

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

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

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

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

<listitem
><para
>Початкове звантаження деяких з модулів можна прискорити за допомогою &kdesrc-build;, оскільки програма (у разі доступності) автоматично звантажує архів знімка модуля з дзеркал &kde; і використовує його для налаштування початкового набору пакунків. Таким чином, програма зменшує навантаження на вашу систему та на сервери &kde;. </para
></listitem>

<listitem
><para
>Для розробників: &kdesrc-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
>Адреси каталогів, які використовуються &kdesrc-build; можна налаштувати (навіть для окремих модулів). </para
></listitem>

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

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

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

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

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

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

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

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

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

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

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

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

<listitem
><para
>Оскільки іноді autotools розсинхронізуються зі змінами у дереві вихідних кодів, ви можете примусити цей інструмент до перебудови модуля шляхом створення файла з назвою .refresh-me у каталозі збирання потрібного модуля або запуску &kdesrc-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="kdesrc-build-logging">
<title
>Запис журналів збирання &kdesrc-build;</title>

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

<para
>Ведення журналу — це можливість &kdesrc-build;, за використання якої дані, виведені будь-якої командою, яку запускає &kdesrc-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
> буде створено набір каталогів, по одному на кожен запуск &kdesrc-build;. Кожен з каталогів матиме назву, що відбиватиме дату запуску скрипту і номер запуску. Наприклад, для другого запуску &kdesrc-build; 26 травня 2009 року буде створено каталог з назвою <filename
>2009-05-26-02</filename
>, де 2009-05-26 позначатиме дату а -02 порядковий номер запуску.</para>

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

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

<note
><para
>Якщо у самому модулі міститься підмодуль (наприклад, extragear/multimedia, playground/utils, або KDE/kdelibs), йому відповідатиме власний підкаталог у каталозі журналу. Наприклад, журнали KDE/kdelibs після останнього запуску &kdesrc-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
>У кожному з каталогів модулів ви знайдете набір файлів для кожної з дій, які виконуватиме &kdesrc-build;. Якщо &kdesrc-build; оновлює модуль, ви побачите файли з назвами на зразок <filename
>svn-co.log</filename
> (звантаження модуля) або <filename
>svn-up.log</filename
> (якщо відбувалося оновлення модуля, який вже було звантажено). Якщо було запущено скрипт <command
>configure</command
>, слід очікувати появи журналу <filename
>configure.log</filename
> у цьому каталозі.</para>

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

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

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

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

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

</chapter>

<chapter id="kdesrc-buildrc">
<title
>Налаштування &kdesrc-build;</title>

<sect1 id="kdesrc-buildrc-overview">
<title
>Огляд налаштування &kdesrc-build;</title>

<para
>Щоб скористатися цим скриптом, вам потрібен файл з назвою <filename
>.kdesrc-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
>Далі наведено список параметрів, якими ви можете скористатися. Натисніть позначку параметра, щоб дізнатися про нього більше. Повний список параметрів наведено у розділі <xref linkend="conf-options-table"/>. </para>

<itemizedlist>
<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-cmake-options"
>cmake-options</link
>, щоб визначити параметри налаштування модуля за допомогою &cmake;.</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-kdedir"
>kdedir</link
>, щоб вказати каталог, куди буде встановлено &kde;.</para
></listitem>
<listitem
><para
><link linkend="conf-kde-languages"
>kde-languages</link
>, щоб вказати пакунки перекладу, які слід звантажити і встановити.</para
></listitem>
<listitem
><para
><link linkend="conf-make-options"
>make-options</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-svn-server"
>svn-server</link
>, щоб змінити сервер, звідки буде звантажено початкові коди.</para
></listitem>
</itemizedlist>

</sect1>
<sect1 id="conf-options-table">
<title
>Таблиця параметрів налаштування</title>

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

<itemizedlist>

<listitem
><para
>Назву параметра</para
></listitem>

<listitem
><para
>Опис реакції &kdesrc-build; під час збирання модуля на встановлення значення параметра у загальному розділі та розділі модуля <link linkend="configure-data"
>файла налаштувань</link
>.</para
></listitem>

<listitem
><para
>Коментарі щодо призначення та способів використання параметра.</para
></listitem>

</itemizedlist>

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

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

<tbody>

<row>
<entry
>apidox</entry>
<entry
></entry>
<entry
><para
>Цей параметр використовувався для вмикання збирання документації модуля програмного інтерфейсу KDE. Його було вилучено у версії &kdesrc-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>
<entry
>apply-qt-patches</entry>
<entry
></entry>
<entry
>Цей параметр було вилучено з версії kdesrc-build 1.10. Щоб отримати відповідний йому результат, зверніться до <xref linkend="using-qt-copy"/> та параметра <link linkend="conf-repository"
>repository</link
>.</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 на час збирання. Ви не зможете перевизначити значення цього параметра для окремого модуля. Типовим значенням параметра є $<envar
>PATH</envar
>, змінна, значення якої встановлюється під час запуску. Значенням цієї змінної середовища має бути відокремлений двокрапками список шляхів до ваших каталогів для збирання. Шляхи <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; 4.5, вам слід встановити значення цього параметра <replaceable
>4.5</replaceable
>.аметра <replaceable
>3.4</replaceable
>.</para>
<para
>Якщо &kdesrc-build; не вдається належним чином звантажити версію з цим параметром, ймовірно, вам доведеться вручну вказати адресу &url;, з якої слід виконати звантаження за допомогою параметра <link linkend="conf-module-base-path"
>module-base-path</link
> або <link linkend="conf-override-url"
>override-url</link
>.</para>
<para
>Зауваження: цей параметр працює і для модулів, зберігання кодів яких відбувається за допомогою &git;, а не &subversion;.</para>
</entry>
</row>

<row id="conf-build-dir">
<entry
>build-dir</entry>
<entry
>Параметр модуля перевизначає загальний параметр</entry>
<entry
>Скористайтеся цим параметром, щоб змінити каталог, у якому міститимуться вихідні коди для збирання. Існує три різних способи скористатися ним: <orderedlist
> <listitem
><para
>Шлях відносно каталогу вихідних кодів з &subversion; &kde; (див. <link linkend="conf-source-dir"
>параметр source-dir</link
>). Це типовий спосіб. Цей режим буде обрано, якщо ви введете назву каталогу, яка не починається з тильди (~) або похилої риски (/).</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
> </orderedlist
> Як це не дивно, ви можете змінити значення цього параметра для кожного з модулів окремо. </entry>
</row>

<row id="conf-build-when-unchanged">
<entry
>build-when-unchanged</entry>
<entry
>Параметр модуля перевизначає загальний параметр</entry>
<entry
><para
>За допомогою цього параметра можна керувати тим, чи буде &kdesrc-build; завжди намагатися зібрати модуль, у якому не було оновлення початкових кодів.</para>

<para
>Якщо для <option
>build-when-unchanged</option
> буде встановлено значення <replaceable
>true</replaceable
>, &kdesrc-build; завжди виконуватиме збирання модуля, навіть якщо ніякого оновлення коду модуля не відбулося. Така поведінка є типовою, оскільки у разі її використання збільшується ймовірність належного збирання.</para>

<para
>Якщо ви встановите для <option
>build-when-unchanged</option
> значення <replaceable
>false</replaceable
>, &kdesrc-build; виконуватиме спроби збирання модуля, лише якщо у коді модуля відбулися зміни, або у інших випадках, коли повторне збирання є насправді необхідним. Подібна поведінка може зекономити вам час, особливо якщо ви запускаєте &kdesrc-build; щоденно або навіть частіше.</para>

<important
><para
>Цей параметр призначено лише для оптимізації збирання. Подібно до значної частини оптимізацій, його використання може позначитися на коректності збирання. Наприклад, зміни, внесені до модулів qt-copy або kdelibs, можуть призвести до необхідності повторного збирання інших модулів, навіть якщо їх початкові коди не зазнали змін взагалі.</para
></important>
</entry>
</row>

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

<para
>Зауважте, що цей параметр не впливає на модулі &git; через спосіб роботи системи керування кодом &git;.</para>

<para
>Приклад можна знайти у розділі <xref linkend="checking-out-parts"/>.</para
></entry>
</row>

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

<para
>Значення цього параметра не стосується qt-copy (&cmake; там не використовується). Скористайтеся для збирання qt-copy <link linkend="conf-configure-flags"
>configure-flags</link
>.</para>

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

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

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

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

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

<para
>Щоб змінити параметри налаштування модулів KDE 4, ознайомтеся з розділом щодо <link linkend="conf-cmake-options"
>cmake-options</link
>. </para>
</entry>
</row>

<row id="conf-cxxflags">
<entry
>cxxflags</entry>
<entry
>Додається до загального параметра</entry>
<entry
><para
>Скористайтеся цим параметром, щоб вказати, які параметри слід використовувати для збирання модуля. Цей параметр визначається саме тут, а не у параметрах <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), &kdesrc-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
>Зауважте, що вихідні коди програм все ж буде звантажено. Ви можете скористатися параметром <link linkend="conf-checkout-only"
>checkout-only</link
>, щоб вказати список тек, які ви бажаєте звантажити.</para>

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

<para
>Приклад можна знайти у розділі <xref linkend="not-compiling"/>.</para>
</entry>
</row>

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

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

<row>
<entry
>inst-apps</entry>
<entry
></entry>
<entry
>Цей параметр було вилучено у версії 1.10 </entry>
</row>

<row id="conf-install-after-build">
<entry
>install-after-build</entry>
<entry
>Параметр модуля перевизначає загальний параметр</entry>
<entry
>Цей параметр використовується для встановлення пакунка після його успішного збирання. Типово, цей параметр увімкнено. Якщо ви бажаєте вимкнути його, вам слід встановити для нього значення <replaceable
>false</replaceable
> у <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
>Встановіть значення для цього параметра значення, щоб змінити значення змінної середовища <envar
>LD_LIBRARY_PATH</envar
> на час збирання. Ви не зможете перевизначити цей параметр на рівні модулів. Типовим є порожнє значення, але шляхи <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
>Скористайтеся цим параметром, щоб змінити каталог, у якому зберігатимуться файли журналу, створені скриптом. </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
>Встановіть цей параметр, щоб перевизначити шлях до типової теки &kdesrc-build; для потрібного модуля. Цим параметром можна, наприклад, скористатися, якщо потрібно використати певні гілки або стабільні версії бібліотек. У визначення правильного шляху неоціненну поміч вам може надати <ulink url="http://websvn.kde.org/"
>Переглядач кодів &kde;</ulink
>.</para>

<para
>Зауважте, що &kdesrc-build; конструює остаточний шлях відповідно до такого шаблону: <filename class="directory"
><varname
>$svn-server</varname
>/home/kde/<varname
>$module-base-path</varname
></filename
>. </para>

<para
>Типовим значенням є або <filename class="directory"
>trunk/<varname
>$module</varname
></filename
>, або <filename class="directory"
>trunk/KDE/<varname
>$module</varname
></filename
>, залежно від назви модуля.</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. Чим вищим буде це число, тим нижчим встановлюватиметься пріоритет процесу &kdesrc-build;, тобто, чим вищим є число, тим вищим є «пріоритет» програми. Типовим значенням є 10. </entry>
</row>

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

<row>
<entry
>no-rebuild-on-fail</entry>
<entry
></entry>
<entry
>Цей параметр було вилучено у версії 1.10, оскільки подібна поведінка вже не допомагає, оскільки виправлено основну систему збирання.</entry>
</row>

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

<row id="conf-prefix">
<entry
>prefix</entry>
<entry
>Параметр модуля перевизначає загальний параметр</entry>
<entry
>За допомогою цього параметра можна вказати місце, куди слід встановити модуль (зазвичай, буде використано значення параметра <option
><link linkend="conf-kdedir"
>kdedir</link
></option
>). Цей параметр надає вам змогу встановити модуль у каталог, що не збігається з каталогом бібліотек Платформи KDE, якщо ви, наприклад, використовуєте &kdesrc-build; лише для збирання певних програм. </entry>
</row>

<row id="conf-purge-old-logs">
<entry
>purge-old-logs</entry>
<entry
>Параметр модуля перевизначає загальний параметр</entry>
<entry
><para
>За допомогою цього параметра можна наказати скрипту автоматично вилучати старі каталоги журналів або не робити цього. Типовим значенням є <replaceable
>false</replaceable
> (не вилучати).</para>

<para
>Навіть якщо ви не встановили для цього параметра значення true, ви можете вилучити старі каталоги журналів за допомогою команди:</para>

<command
>kdesrc-build --no-src --no-build --purge-old-logs <replaceable
>kdelibs</replaceable
></command>

<para
>Звичайно ж, у наведеній вище команді ви можете скористатися будь-якою назвою модуля, ним не обов’язково має бути kdelibs.</para>
</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;, оскільки &kdesrc-build; не зможе виконувати покрокове збирання.</para>
</entry>
</row>

<row id="conf-repository">
<entry
>repository</entry>
<entry
>Параметр модуля перевизначає загальний параметр</entry>
<entry
><para
>Цей параметр було додано у версії 1.10. За його допомогою можна вказати сховище &git;, звідки слід звантажувати коди модуля. Цей параметр потрібен для &Qt; (і отже qt-copy), а також різноманітних модулів &kde;, які перебувають у стані переходу на використання &git;.</para
></entry>
</row>

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

<row id="conf-run-tests">
<entry
>run-tests</entry>
<entry
>Параметр модуля перевизначає загальний параметр</entry>
<entry
>Якщо значенням цього параметра буде <replaceable
>true</replaceable
>, модуль буде зібрано з підтримкою запуску комплексу тестів, комплекс тестів буде виконано у процесі збирання. &kdesrc-build; покаже вам спрощений звіт щодо результатів тестування. Цей параметр буде корисним для розробників або тих, хто бажає переконатися, що систему налаштовано належним чином.</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"
>~/kdesrc</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
><para
>Цей параметр використовується для того, щоб вказати сервер, який слід використати для звантаження з &subversion;. Типовим є анонімне сховище &subversion;, <filename
>svn://anonsvn.kde.org/</filename
></para>
<note
><para
>Якщо ви є розробником KDE, ви можете скористатися власним обліковим записом &subversion;, який ви отримали разом з обліковим записом розробника, замість анонімного запису.</para
></note>
</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>
</entry>
</row>

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

<row id="conf-use-idle-io-priority">
<entry
>use-idle-io-priority</entry>
<entry
>Неможливо перевизначити</entry>
<entry
>За допомогою цього параметра, доданого у &kdesrc-build; 1.12, може зменшити пріоритет використання скриптом диска та інших інструментів вводу-виводу, це може значно покращити швидкодію решти системи під час роботи скрипту за рахунок збільшення часу роботи &kdesrc-build;. Типово таку поведінку вимкнено, щоб зменшити пріоритет використання диска, встановіть значення <replaceable
>true</replaceable
>. </entry>
</row>

<row id="conf-use-qt-builddir-hack">
<entry
>use-qt-builddir-hack</entry>
<entry
>Параметр модуля перевизначає загальний параметр</entry>
<entry
>Цей параметр було вилучено через покращення у системі збирання &Qt;. </entry>
</row>

<row>
<entry
>use-stable-kde</entry>
<entry
></entry>
<entry
><para
>Цей параметр було вилучено у версії 1.10, у якій підтримку було обмежено лише KDE 4, що зробило параметр непотрібним. </para>
</entry>
</row>

</tbody>

</tgroup>
</table>

</sect1>
</chapter>

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

<sect1 id="supported-envvars">
<title
>Підтримувані змінні середовища</title>

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

</sect1>

<sect1 id="supported-cmdline-params">
<title
>Параметри командного рядка</title>

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

<variablelist>

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

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

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

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

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

<varlistentry id="cmdline-nice">
<term
><parameter
>--nice=<replaceable
>значення</replaceable
></parameter
></term>
<listitem
><para
>За допомогою цього параметра можна скоригувати пріоритет використання процесора &kdesrc-build;. Значенням має бути число у діапазоні 0-20. 0 відповідає найвищому пріоритету, 20 — найнижчому. Типовим значенням для &kdesrc-build; є 10. </para
></listitem>
</varlistentry>

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

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

<varlistentry id="cmdline-pretend">
<term
><parameter
>--pretend</parameter
> (або <parameter
>-p</parameter
>)</term>
<listitem
><para
>&kdesrc-build; почне процес оновлення і збирання, але замість виконання будь-яких дій з оновлення чи збирання, скрипт виведе перелік дій, які мав би виконати (наприклад, які команди буде виконано, загальні кроки процесу тощо).</para>

<para
>Зауваження: скрипт виконає прості команди читання (зокрема читання даних щодо файлів), щоб виведені дані відповідали поточній конфігурації (наприклад, щоб правильно імітувати дію: повне звантаження чи просте оновлення коду). </para
></listitem>
</varlistentry>

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

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

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

<varlistentry id="cmdline-src-only">
<term
><parameter
>--src-only</parameter
> (або <parameter
>--svn-only</parameter
>)</term>
<listitem
><para
>Виконати лише оновлення коду (параметр <parameter
>--svn-only</parameter
> підтримується лише з міркувань сумісності зі старішими версіями). </para
></listitem>
</varlistentry>

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

<varlistentry id="cmdline-ignore-modules">
<term
><parameter
>--ignore-modules</parameter
></term>
<listitem
><para
>Не включати модулі, передані як аргумент параметра командного рядка, у процес оновлення або збирання (корисно, якщо ви бажаєте зібрати більшість модулів у вашому <link linkend="configure-data"
>файлі налаштування</link
> і просто пропустити збирання малої частини списку модулів). </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-no-src">
<term
><parameter
>--no-src</parameter
> (або <parameter
>--no-svn</parameter
>)</term>
<listitem
><para
>Пропустити встановлення зв’язку з сервером &subversion; (параметр <parameter
>--no-svn</parameter
> підтримується лише з міркувань сумісності зі старішими версіями скрипту). </para
></listitem>
</varlistentry>

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

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

<varlistentry id="cmdline-no-build-when-unchanged">
<term
><parameter
>--no-build-when-unchanged</parameter
></term>
<term
><parameter
>--force-build</parameter
></term>
<listitem
><para
>За допомогою цього параметра можна явним чином вимкнути пропуски у процесі збирання (оптимізацію, якою керує <link linkend="conf-build-when-unchanged"
>build-when-unchanged</link
> параметр). Параметр буде корисним для запуску збирання за допомогою &kdesrc-build; у разі внесення вами змін, які не може бути автоматично виявлено &kdesrc-build;.</para>

<para
><parameter
>--force-build</parameter
> призначено для виконання того ж завдання, крім того, можливо, цей параметр легше запам’ятати.</para>
</listitem>
</varlistentry>

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

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

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

<varlistentry id="cmdline-reconfigure">
<term
><parameter
>--reconfigure</parameter
></term>
<listitem
><para
>Виконати <command
>cmake</command
> (для модулів &kde;) або <command
>configure</command
> (для &Qt;) знову, без спорожнення каталогу збирання. Зазвичай, потреби у такій поведінці немає, оскільки &kdesrc-build; сам може виявити зміни у відповідних параметрах і автоматично перезапустити налаштування збирання. Цей параметр буде використано, якщо ви скористаєтеся параметром <parameter
><link linkend="cmdline-refresh-build"
>--refresh-build</link
></parameter
>. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-resume-from">
<term
><parameter
>--resume-from</parameter
></term>
<listitem
><para
>Цей параметр використовується для поновлення збирання, починаючи з вказаного модуля, назва якого має бути наступним параметром командного рядка. За використання цього параметра до командного рядка буде автоматично додано параметр <link linkend="cmdline-no-src"
><parameter
>--no-src</parameter
></link
>. Крім того, вам не слід вказувати інших модулів у командному рядку. </para>
<para
>Див. також <xref linkend="cmdline-resume-after"/> and <xref linkend="resuming-failed"/>. Вам слід надавати перевагу використанню цього параметра командного рядка, якщо ви виправили помилку збирання і бажаєте, щоб скрипт &kdesrc-build; завершив збирання.</para
></listitem>
</varlistentry>

<varlistentry id="cmdline-resume-after">
<term
><parameter
>--resume-after</parameter
></term>
<listitem
><para
>Цей параметр використовується для поновлення збирання, починаючи з місця після вказаного модуля, назва якого має бути наступним параметром командного рядка. За використання цього параметра до командного рядка буде автоматично додано параметр <link linkend="cmdline-no-src"
><parameter
>--no-src</parameter
></link
>. Крім того, вам не слід вказувати інших модулів у командному рядку. </para>
<para
>Див. також <xref linkend="cmdline-resume-from"/> and <xref linkend="resuming-failed"/>. Вам слід надавати перевагу використанню цього параметра командного рядка, якщо ви виправили помилку збирання, а також зібрали і встановили модуль власноруч, і бажаєте, щоб скрипт &kdesrc-build; розпочав з обробки наступного модуля.</para
></listitem>
</varlistentry>

<varlistentry id="cmdline-rc-file">
<term
><parameter
>--rc-file</parameter
></term>
<listitem
><para
>Інтерпретує наступний параметр командного рядка, як файл, з якого слід читати параметри налаштування. Типовим значенням цього параметра є <filename
>kdesrc-buildrc</filename
> (скрипт шукатиме його у поточному каталозі), якщо його буде знайдено, або <filename
>~/.kdesrc-buildrc</filename
>, якщо цей файл не вдасться знайти. Див. також <xref linkend="kdesrc-buildrc"/>. </para
></listitem>
</varlistentry>

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

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

<tip
><para
>Якщо ви бажаєте переглянути всі параметри середовища, які буде використано &kdesrc-build;, ви можете скористатися командою <command
>printenv</command
>:</para>
<informalexample>
<screen
>$ <command
>kdesrc-build</command
> <parameter
>--run</parameter
> <parameter
>printenv</parameter>
KDE_SESSION_VERSION=4
SDL_AUDIODRIVER=alsa
LANGUAGE=
XCURSOR_THEME=Oxygen_Blue
LESS=-R -M --shift 5
QMAIL_CONTROLDIR=/var/qmail/control
... тощо.
</screen>
</informalexample
></tip>
</listitem>
</varlistentry>

<varlistentry id="cmdline-prefix">
<term
><parameter
>--prefix=&lt;/шлях/до/kde&gt;</parameter
></term>
<listitem
><para
>За допомогою цього параметра можна змінити каталог, куди &kde; буде встановлено з командного рядка. За використання цього параметра автоматично використовується параметр <link linkend="cmdline-reconfigure"
><parameter
>--reconfigure</parameter
></link
>, але можливо доведеться окремо скористатися параметром <link linkend="cmdline-refresh-build"
><parameter
>--refresh-build</parameter
></link
>. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-revision">
<term
><parameter
>--revision</parameter
></term>
<listitem
><para
>За допомогою цього параметра можна наказати &kdesrc-build; звантажити певну версію кожного з модулів &subversion;, незалежно від параметрів <link linkend="conf-branch"
>branch</link
>, <link linkend="conf-tag"
>tag</link
> та <link linkend="conf-revision"
>revision</link
> вже встановлених для цих модулів.</para>

<para
>Вам не варто користуватися цим параметром, він підтримується лише з міркувань сумісності зі старішими версіями скрипту. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-build-system-only">
<term
><parameter
>--build-system-only</parameter
></term>
<listitem
><para
>За допомогою цього параметра можна наказати &kdesrc-build; перервати збирання модуля безпосередньо перед виконанням команди <command
>make</command
>. Параметр підтримується лише з міркувань сумісності зі старішими версіями скрипту, у ньому немає користі за поточної системи збирання &kde;. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-install"
><term
><parameter
>--install</parameter
></term>
<listitem
><para
>Якщо цей параметр буде єдиним, скрипт намагатиметься встановити всі модулі, вказані у <filename
>log/latest/build-status</filename
>. Якщо після <option
>--install</option
> буде вказано інші параметри командного рядка, всі ці параметри вважатимуться назвами модулів, які слід встановити (навіть якщо їх не вдалося зібрати під час попереднього запуску). </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-purge-old-logs"
><term
><parameter
>--purge-old-logs</parameter
></term>
<listitem
><para
>За допомогою цього параметра можна наказати &kdesrc-build; вилучити непотрібні каталоги журналів після збирання з метою економії місця на диску. Всі каталоги журналів, які не потрібні для збереження коректності посилань з <filename
>log/latest</filename
>, буде вилучено. Типово таку поведінку вимкнено. Щоб типово увімкнути цей параметр, скористайтеся параметром файла налаштувань <link linkend="conf-purge-old-logs"
>purge-old-logs</link
>. </para
></listitem>
</varlistentry>

<varlistentry id="cmdline-no-snapshots"
><term
><parameter
>--no-snapshots</parameter
></term>
<listitem
><para
>Використання цього параметра призведе до того, що &kdesrc-build; завжди надаватиме перевагу початковому звантаженню кодів модуля з &subversion; перед використанням знімків модулів &subversion;. </para>

<note
><para
>Знімки модулів <emphasis
>є</emphasis
> самі версіями каталогів &subversion;. Вам не варто використовувати цей параметр, його використання виправдане лише з метою усування вад.</para
></note>
</listitem>
</varlistentry>

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

<varlistentry id="cmdline-module-option">
<term
><parameter
>--&lt;назва_модуля&gt;,&lt;назва_параметра&gt;=</parameter
></term>
<listitem
><para
>Скористайтеся цим параметром, щоб перевизначити параметр з вашого <link linkend="configure-data"
>файл налаштувань</link
> для окремого модуля. </para
></listitem>
</varlistentry>

</variablelist>

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

</sect1>

</chapter>

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

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

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

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

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

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

</sect1>

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

<sect2 id="using-qt-copy">
<title
>Підтримка qt-copy</title>
<para
>&kdesrc-build; підтримує зручне для користувачів збирання набору інструментів &Qt;, який використовується у програмному забезпеченні &kde;. Підтримку забезпечує обробка особливого модуля з назвою qt-copy.</para>

<note
><para
>&Qt; розробляється у окремому сховищі, не пов’язаному з програмним забезпеченням &kde;. Це сховище розташоване за адресою <ulink url="http://qt.gitorious.org/qt"
>http://qt.gitorious.org/qt</ulink
>.</para
></note>

<para
>Щоб зібрати &Qt;, вам слід переконатися, що параметр <link linkend="conf-qtdir"
>qtdir</link
> вказує на каталог, куди б ви бажали встановити &Qt;, як це описано у розділі <xref linkend="configure-data"/>.</para>

<para
>Після цього вам слід переконатися, що модуль qt-copy додано до вашого файла <filename
>.kdesrc-buildrc</filename
> перед будь-якими іншими модулями у цьому файлі. Якщо ви користуєтеся зразком файла налаштувань, ви можете просто зняти позначку коментаря з запису модуля qt-copy.</para>

<para
>Тепер вам слід перевірити, чи встановлено належним чином параметри <link linkend="conf-repository"
>repository</link
> і <link linkend="conf-branch"
>branch</link
>:</para>

<orderedlist>
<listitem
><para
>Першим варіантом буде збирання з групуванням рекомендованих виправлень вад і оптимізацій (цим можна керувати за допомогою параметра з назвою apply-patches). Збірку відповідних виправлень розробляють у окремому сховищі за адресою <ulink url="http://gitorious.org/+kde-developers/qt/kde-qt"
>http://gitorious.org/+kde-developers/qt/kde-qt</ulink
>. Якщо ви бажаєте виконати збирання з застосуванням відповідних латок (більшість розробників &kde; робить саме так), вам слід встановити параметр сховища у значення <userinput
>git://gitorious.org/+kde-developers/qt/kde-qt.git</userinput
></para>
</listitem>

<listitem
><para
>Іншим варіантом буде збирання стандартного &Qt;. У такому разі слід встановити значення параметра repository рівним <userinput
>git://gitorious.org/qt/qt.git</userinput
></para
></listitem>
</orderedlist>

<para
>У обох випадках параметр branch слід встановити у значення <userinput
>master</userinput
> (якщо ви не маєте наміру спеціально зібрати якусь іншу гілку).</para>

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

</sect2>

<sect2 id="kdesrc-build-std-flags">
<title
>Стандартні прапорці, які додаються &kdesrc-build;</title>
<para
>Щоб зекономити вам час, &kdesrc-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>

</itemizedlist>

</sect2>

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

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

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

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

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

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

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

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

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

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

<tip>
<para
>За допомогою параметра <link linkend="conf-niceness"
>niceness</link
> можна керувати лише використанням процесорів комп’ютера. Іншим важливим фактором, який впливає на швидкодію системи, є степінь використання програмою каналів вводу і виводу даних (<acronym
>I/O</acronym
>). З метою керування використанням <acronym
>I/O</acronym
> програмою у сучасних операційних системах &Linux; передбачено підтримку подібного до nice інструменту з назвою <application
>ionice</application
>. &kdesrc-build; підтримує роботу з <application
>ionice</application
> (але лише у режимі «увімкнути-вимкнути») за допомогою параметра <link linkend="conf-use-idle-io-priority"
>use-idle-io-priority</link
>, починаючи з версії &kdesrc-build; 1.12. </para>
</tip>

</sect2>

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

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

<para
>Для надання скрипту додаткових прав доступу у &kdesrc-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>

</sect2>

</sect1>

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

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

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

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

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

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

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

</informalexample>

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

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

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

</sect3>

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

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

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

<informalexample>
<para
>Щоб вилучити каталог <filename class="directory"
>python</filename
> з процесу збирання kdebindings, додайте такі рядки:</para>

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

</informalexample>

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

</sect3>

</sect2>

<sect2 id="using-branches">
<title
>Підтримка версій і випусків у &kdesrc-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) коду. Подібне відокремлення є лише наслідком певної домовленості між розробниками. Це ускладнює належну підтримку версій і випусків у &kdesrc-build;. Все ж деякі речі можна робити і за допомогою скрипту. </para>

</sect3>

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

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

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

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

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

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

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

</informalexample>

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

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

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

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

<informalexample>
<screen
>module kdesupport
    # kdesupport підтримує різноманітні мітки, які спрощують
    # впорядкування програмного забезпечення для певного випуску Платформи KDE.
    module-base-path tags/kdesupport-for-4.5
end module
</screen>

<para
>Таким чином ви накажете &kdesrc-build; звантажити kdesupport з (у нашому прикладі), <filename
>svn://anonsvn.kde.org/home/kde/<replaceable
>tags/kdesupport-for-4.5</replaceable
></filename
>. </para>
</informalexample>
<tip
><para
>У попередніх випусках &kdesrc-build; обробка &module-base-path; виконувалася у дещо інший спосіб. Якщо у вас виникають труднощі з використанням застарілого визначення module-base-path, ймовірно, вам слід перевірити, чи є адреса саме тією, яка насправді потрібна &kdesrc-build;, за допомогою параметра <link linkend="cmdline-pretend"
>--pretend</link
>. </para
></tip>
</listitem>

<listitem
><para
>З іншого боку, параметр &override-url; вимагає від вас вказати точний шлях для звантаження. Але він надає вам змогу взяти шляхи з попередніх версій &kdesrc-build;, звідки вже не можна звантажити дані. У поточній версії параметра &module-base-path; має бути достатньо для будь-якої адреси Subversion кодів &kde;. </para>

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

</listitem>
</itemizedlist>

</sect3>

</sect2>

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

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

<para
>У попередніх версіях &kdesrc-build; було передбачено можливості для автоматичного повторення спроби збирання модуля після невдалої спроби (оскільки іноді така повторна спроба буває успішною, причиною можуть бути вади у системі збирання). Завдяки переходу на &cmake;, система збирання вже не страждає на подібні вади, отже &kdesrc-build; не намагатимуться зібрати модуль повторно. Але можливі випадки, коли &kdesrc-build; виконає повторне збирання автоматично:</para>

<itemizedlist>

<listitem
><para
>Якщо ви зміните <link linkend="conf-configure-flags"
>configure-flags</link
> або <link linkend="conf-cmake-options"
>cmake-options</link
> для певного модуля, &kdesrc-build; виявить ці зміни і повторно запустить скрипт configure або cmake для відповідного модуля.</para
></listitem>

<listitem
><para
>Якщо системи збирання не існує (навіть якщо &kdesrc-build; не вилучав її), &kdesrc-build; автоматично створить її повторно. Це буде корисним, якщо ви виконуєте повне повторне збирання (<link linkend="cmdline-refresh-build"
>--refresh-build</link
>) для певного модуля без виконання повторного збирання для інших модулів.</para
></listitem>

</itemizedlist>

</sect3>

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

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

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

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

<informalexample>
<para
>Повторне збирання за допомогою <filename
>.refresh-me</filename
> модуля <replaceable
>kdelibs</replaceable
>:</para>
<screen
><prompt
>%</prompt
> <userinput
><command
>touch</command
> <filename class="directory"
>~/kdesrc/build/<replaceable
>kdelibs</replaceable
>.refresh-me</filename
></userinput>
<prompt
>%</prompt
> <userinput
><command
>kdesrc-build</command
></userinput
>
</screen>
</informalexample>
</sect3>

</sect2>

<sect2 id="changing-environment">
<title
>Зміна параметрів змінних середовища</title>
<para
>Зазвичай &kdesrc-build; використовує поточні параметри середовища для запуску програм, призначених для виконання оновлень та збирання. Це корисно, якщо ви запускаєте &kdesrc-build; з командного рядка.</para>

<para
>Крім того, у вас може виникнути потреба у зміні тих змінних середовища, для яких у &kdesrc-build; не передбачено параметрів. (Наприклад, щоб визначити будь-які змінні середовища під час запуску &kdesrc-build; за таймером, наприклад, &cron;.) Це можна зробити за допомогою параметра &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
>Ви можете наказати &kdesrc-build; почати збирання з модуля, відмінного від того, з якого скрипт зазвичай розпочинає збирання. Такі налаштування можуть стати у пригоді, якщо спроба збирання певного набору модулів завершилася невдало або якщо ви перервали попередню спробу збирання. Вказати модуль можна за допомогою параметрів &cmd-resume-from; та &cmd-resume-after;.</para>

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

<informalexample>
<para
>Відновлення збирання з модуля kdebase:</para>

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

<informalexample>
<para
>Відновлення збирання, починаючи з місця після kdebase (якщо ви вручну виправили ваду і встановили модуль власноруч):</para>

<screen
><prompt
>%</prompt
> <userinput
><command
>kdesrc-build</command
> <option
>--resume-after=<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;. За допомогою цього параметра ви можете повідомити скрипту &kdesrc-build; про те, що слід ігнорувати всі передані як аргументи у командному рядку модулі під час виконання оновлення і збирання.</para>

<informalexample>
<para
>Ігнорування extragear/multimedia і kdereview під час повноцінного запуску:</para>
<screen
><prompt
>%</prompt
> <userinput
><command
>kdesrc-build</command
> <option
>--ignore-modules</option
> <replaceable
>extragear/multimedia kdereview</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
>&kdesrc-build; надає вам змогу змінити параметри з назвою <replaceable
>назва-параметра</replaceable
> передаванням аргументу у командний рядок у формі <userinput
><option
>--<replaceable
>назва-параметра</replaceable
>=значення</option
></userinput
>. &kdesrc-build; визначає чи відомий скрипту параметр і намагається знайти назву у власному списку назв параметр. Якщо програмі не вдається знайти назву, вона попередить вас про це, у іншому випадку скрипт запам’ятає встановлене вами значення і перевизначає значення, встановлення у файлі налаштувань.</para>

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

<screen
><prompt
>%</prompt
> <userinput
><command
>kdesrc-build</command
> <option
>--pretend</option
> <option
>--<replaceable
>source-dir</replaceable
>=<replaceable
>/dev/null</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
>kdesrc-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
>&kdesrc-build; може забезпечити вимикання інструмента агента &ssh;, якщо розробник &kde;, який використовується &ssh; для доступу до сховища коду &kde;, забуде його вимкнути. Таким чином, &kdesrc-build; може нескінченно очікувати на введення розробником пароля &ssh;, отже, типово, &kdesrc-build; перевіряє, чи запущено агент перед виконанням оновлення коду. </para>

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

<para
>Ймовірно, ви захочете вимкнути перевірку агента &ssh; у випадку, коли &kdesrc-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
>Інші можливості &kdesrc-build;</title>

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

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

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

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

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

</sect2>

<sect2 id="kdesrc-build-color">
<title
>Виведення у кольорі</title>
<para
>Якщо ви запустите &kdesrc-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
>&kdesrc-build; може надсилати звіти електронною поштою на вибрану вами адресу електронної пошти, якщо модуль не вдалося зібрати з будь-якої причини. Вам слід вказати &kdesrc-build; адресу, з якої слід надсилати електронну пошту та адресу, за якою слід надсилати сповіщення про помилку.</para>

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

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

<tip>
<para
>Для надсилання повідомлень &kdesrc-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    # Від: адреса для будь-яких повідомлень kdesrc-build
  email-on-compile-error bar@example.com    # Кому: адреса для повідомлень про невдалі спроби збирання
end global
</screen>
</informalexample>

</sect2>

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

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

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

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

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

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

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

<para
>У &kdesrc-build; передбачено підтримку &cmake;. Деякі з параметрів &kdesrc-build; насправді є параметрами самої системи збирання, зокрема <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;, починаючи з версії &kdesrc-build; 1.6.3. </para>

</sect1>
</chapter>

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

<para
>Переклад українською: Юрій Чорноіван<email
>yurchor@ukr.net</email
></para
> 
&underFDL; </chapter>

</book>
