Difference between revisions of "Manjaro Packaging Standards/ru"

Updating to match new version of source page
(Created page with "==Именование пакетов== * Имена пакетов должны состоять только из '''буквенно-цифровых символов''';...")
(Updating to match new version of source page)
Line 101: Line 101:
* Версии пакетов '''должны быть такими же, как версия, выпущенная автором'''. Версии могут включать буквы, если это необходимо (например, версия nmap - 2.54BETA32). '''Теги версий не должны включать дефисы!'''. Только буквы, цифры и точки.
* Версии пакетов '''должны быть такими же, как версия, выпущенная автором'''. Версии могут включать буквы, если это необходимо (например, версия nmap - 2.54BETA32). '''Теги версий не должны включать дефисы!'''. Только буквы, цифры и точки.
* Релизы пакетов - это '''специфические для Manjaro Linux пакеты'''. Они позволяют пользователям различать более новые и более старые сборки пакетов. Когда новая версия пакета выпускается впервые, счетчик релизов начинается с 1. Затем, по мере внесения исправлений и оптимизаций, пакет будет ''перевыпущен'' для публики Manjaro Linux и ''номер релиза будет увеличиваться''. Когда выходит новая версия, счетчик релизов обнуляется до 1. Теги релизов пакетов следуют тем же ограничениям именования, что и теги версий.
* Релизы пакетов - это '''специфические для Manjaro Linux пакеты'''. Они позволяют пользователям различать более новые и более старые сборки пакетов. Когда новая версия пакета выпускается впервые, счетчик релизов начинается с 1. Затем, по мере внесения исправлений и оптимизаций, пакет будет ''перевыпущен'' для публики Manjaro Linux и ''номер релиза будет увеличиваться''. Когда выходит новая версия, счетчик релизов обнуляется до 1. Теги релизов пакетов следуют тем же ограничениям именования, что и теги версий.
<div lang="en" dir="ltr" class="mw-content-ltr">
==Directories==
==Directories==
* '''Configuration files''' should be placed in the {{ic|/etc}} directory. If there is more than one configuration file, it is customary to '''use a subdirectory''' in order to keep the {{ic|/etc}} area as clean as possible. Use {{ic|/etc/{pkgname}/}}  where {{ic|<nowiki>{pkgname}</nowiki>}} is the name of the package (or a suitable alternative, eg, apache uses {{ic|/etc/httpd/}}).
* '''Configuration files''' should be placed in the {{ic|/etc}} directory. If there is more than one configuration file, it is customary to '''use a subdirectory''' in order to keep the {{ic|/etc}} area as clean as possible. Use {{ic|/etc/{pkgname}/}}  where {{ic|<nowiki>{pkgname}</nowiki>}} is the name of the package (or a suitable alternative, eg, apache uses {{ic|/etc/httpd/}}).
</div>


* Файлы пакетов должны следовать этим '''общим рекомендациям по каталогам''':
* Файлы пакетов должны следовать этим '''общим рекомендациям по каталогам''':


<div lang="en" dir="ltr" class="mw-content-ltr">
:{|
:{|
|-
|-
Line 144: Line 147:
| Large self-contained packages such as Java, etc.
| Large self-contained packages such as Java, etc.
|}
|}
</div>


* Пакеты не должны содержать ни одного из следующих каталогов:
* Пакеты не должны содержать ни одного из следующих каталогов:
Line 158: Line 162:
** {{ic|/var/tmp}}
** {{ic|/var/tmp}}
** {{ic|/run}}
** {{ic|/run}}
<div lang="en" dir="ltr" class="mw-content-ltr">
==Makepkg duties==
==Makepkg duties==
</div>


<p>
<div lang="en" dir="ltr" class="mw-content-ltr">
<p>
When [[makepkg]] is used to build a package, it does the
When [[makepkg]] is used to build a package, it does the
following automatically:
following automatically:
</p>
</p>
</div>


<ol>
<div lang="en" dir="ltr" class="mw-content-ltr">
<ol>
<li>
<li>
Checks if package '''dependencies''' and '''makedepends''' are installed
Checks if package '''dependencies''' and '''makedepends''' are installed
Line 182: Line 191:
</li>
</li>
<li>
<li>
</div>


'''Builds''' the software and installs it in a fake
<div lang="en" dir="ltr" class="mw-content-ltr">
'''Builds''' the software and installs it in a fake
root
root
</li>
</li>
Line 198: Line 209:
Generates the '''package meta file''' which is included with each package
Generates the '''package meta file''' which is included with each package
</li>
</li>
</div>


<li>
<div lang="en" dir="ltr" class="mw-content-ltr">
<li>
'''Compresses''' the fake root into the package file
'''Compresses''' the fake root into the package file
</li>
</li>
Line 205: Line 218:
'''Stores''' the package file in the configured destination directory (<span title="Current Working Directory" style="border-bottom:1px dotted">cwd</span> by default)
'''Stores''' the package file in the configured destination directory (<span title="Current Working Directory" style="border-bottom:1px dotted">cwd</span> by default)
</li>
</li>
</div>


</ol>
<div lang="en" dir="ltr" class="mw-content-ltr">
</ol>
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
==Architectures==
==Architectures==
The {{Ic|arch}} array should contain {{Ic|'i686'}} and/or {{Ic|'x86_64'}} depending on which architectures it can be built on. You can also use {{Ic|'any'}} for architecture independent packages.
The {{Ic|arch}} array should contain {{Ic|'i686'}} and/or {{Ic|'x86_64'}} depending on which architectures it can be built on. You can also use {{Ic|'any'}} for architecture independent packages.
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
==Licenses==
==Licenses==
The [[Licenses|license]] array is being implemented in the official repos, and it <b>should</b> be used in your packages as well. Use it as follows:
The [[Licenses|license]] array is being implemented in the official repos, and it <b>should</b> be used in your packages as well. Use it as follows:
Line 232: Line 251:
</li>
</li>
</ul>
</ul>
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
==Submitting packages to the AUR==
==Submitting packages to the AUR==
<p>Note the following before submitting any packages to the AUR:</p>
<p>Note the following before submitting any packages to the AUR:</p>
</div>


<ol>
<div lang="en" dir="ltr" class="mw-content-ltr">
<ol>
         <li>
         <li>
                 The submitted PKGBUILDs '''MUST NOT''' build applications already in any of the official binary repositories under any circumstances. Exception to this strict rule may only be packages having extra features enabled and/or patches in compare to the official ones. In such an occasion the pkgname array should be different to express that difference.
                 The submitted PKGBUILDs '''MUST NOT''' build applications already in any of the official binary repositories under any circumstances. Exception to this strict rule may only be packages having extra features enabled and/or patches in compare to the official ones. In such an occasion the pkgname array should be different to express that difference.
Line 247: Line 270:
{{ic|PKGBUILD}} file that follows this format.  Remember to disguise
{{ic|PKGBUILD}} file that follows this format.  Remember to disguise
                 your email to protect against spam:
                 your email to protect against spam:
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
{{bc|# Maintainer: Your Name <address at domain dot com>}}
{{bc|# Maintainer: Your Name <address at domain dot com>}}
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
If you are assuming the role of maintainer for an existing PKGBUILD, add your name to the top as described above and change the title of the previous Maintainer(s) to Contributor:
If you are assuming the role of maintainer for an existing PKGBUILD, add your name to the top as described above and change the title of the previous Maintainer(s) to Contributor:
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
{{bc|# Maintainer: Your Name <address at domain dot com>
{{bc|# Maintainer: Your Name <address at domain dot com>
# Contributor: Previous Name <address at domain dot com>}}
# Contributor: Previous Name <address at domain dot com>}}
</div>


</li>
<div lang="en" dir="ltr" class="mw-content-ltr">
</li>
<li>
<li>
Verify the package '''dependencies''' (eg, run
Verify the package '''dependencies''' (eg, run
{{ic|ldd}} on dynamic executables, check tools required
{{ic|ldd}} on dynamic executables, check tools required
by scripts, etc).
by scripts, etc).
</div>


The TU team '''strongly''' recommend the use of the
<div lang="en" dir="ltr" class="mw-content-ltr">
The TU team '''strongly''' recommend the use of the
{{ic|namcap}} utility, written by Jason Chu (jason@archlinux.org), to analyze the
{{ic|namcap}} utility, written by Jason Chu (jason@archlinux.org), to analyze the
sanity of packages. {{ic|namcap}} will warn you about
sanity of packages. {{ic|namcap}} will warn you about
Line 267: Line 300:
and other common mistakes. You can install the
and other common mistakes. You can install the
{{ic|namcap}} package with {{ic|pacman}}.
{{ic|namcap}} package with {{ic|pacman}}.
</div>


Remember {{ic|namcap}} can be used to check both pkg.tar.gz files and PKGBUILDs
<div lang="en" dir="ltr" class="mw-content-ltr">
Remember {{ic|namcap}} can be used to check both pkg.tar.gz files and PKGBUILDs
</li>
</li>
<li> '''Dependencies'''
<li> '''Dependencies'''
Line 284: Line 319:
The archive name should contain the name of the package
The archive name should contain the name of the package
e.g. foo.tar.gz.
e.g. foo.tar.gz.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
One can easily build a tarball containing all the required files by using {{Ic|makepkg --source}}. This
One can easily build a tarball containing all the required files by using {{Ic|makepkg --source}}. This
makes a tarball named {{Ic|$pkgname-$pkgver-$pkgrel.src.tar.gz}}, which can then be uploaded to the AUR.
makes a tarball named {{Ic|$pkgname-$pkgver-$pkgrel.src.tar.gz}}, which can then be uploaded to the AUR.
Line 290: Line 327:
The tarball '''should not''' contain the binary tarball created by makepkg, nor should it contain the filelist
The tarball '''should not''' contain the binary tarball created by makepkg, nor should it contain the filelist
</li>
</li>
</div>


</ol>
</ol>


[[Category:Contents Page{{#translation:}}]]
[[Category:Contents Page{{#translation:}}]]
8,138

edits