<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Developer Manual</title>
    <link>https://manual.archlinux.page/package-guidelines/</link>
    <description>Recent content on Developer Manual</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <copyright>Licensed under [CC-BY-SA-4.0](https://gitlab.archlinux.org/archlinux/developer-manual/-/blob/main/LICENSE)</copyright>
    <atom:link href="https://manual.archlinux.page/package-guidelines/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title></title>
      <link>https://manual.archlinux.page/package-guidelines/python/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://manual.archlinux.page/package-guidelines/python/</guid>
      <description>&lt;h1 id=&#34;python-package-guidelines&#34;&gt;Python package guidelines&lt;a class=&#34;anchor&#34; href=&#34;#python-package-guidelines&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;This document covers standards and guidelines on writing &lt;a href=&#34;https://wiki.archlinux.org/title/PKGBUILD&#34;&gt;PKGBUILD&lt;/a&gt;s for &lt;a href=&#34;https://wiki.archlinux.org/title/Python&#34;&gt;Python&lt;/a&gt; software.&lt;/p&gt;&#xA;&lt;h2 id=&#34;package-naming&#34;&gt;Package naming&lt;a class=&#34;anchor&#34; href=&#34;#package-naming&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;For &lt;a href=&#34;https://wiki.archlinux.org/title/Python#Installation&#34;&gt;Python 3&lt;/a&gt; library modules, use &lt;code&gt;python-modulename&lt;/code&gt;.&#xA;Also use the prefix if the package provides a program that is strongly coupled to the Python ecosystem (e.g. pip or tox).&#xA;For other applications, use only the program name.&lt;/p&gt;&#xA;&lt;blockquote class=&#39;book-hint note&#39;&gt;&#xA;&lt;p class=&#34;book-hint-heading note&#34;&gt;ℹ️ Note&lt;/p&gt;&#xA;&lt;p&gt;The package name should be entirely lowercase.&lt;/p&gt;&lt;/blockquote&gt;&lt;h2 id=&#34;architecture&#34;&gt;Architecture&lt;a class=&#34;anchor&#34; href=&#34;#architecture&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;See &lt;a href=&#34;https://wiki.archlinux.org/title/PKGBUILD#arch&#34;&gt;PKGBUILD#arch&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;A Python package that contains C extensions is architecture-dependent.&#xA;Otherwise it is most likely architecture-independent.&lt;/p&gt;</description>
    </item>
    <item>
      <title></title>
      <link>https://manual.archlinux.page/package-guidelines/security/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://manual.archlinux.page/package-guidelines/security/</guid>
      <description>&lt;h1 id=&#34;security-package-guidelines&#34;&gt;Security package guidelines&lt;a class=&#34;anchor&#34; href=&#34;#security-package-guidelines&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;This page describes security packaging guidelines for Arch Linux packages.&#xA;For C/C++ projects the compiler and linker can apply security hardening options.&#xA;Arch Linux applies &lt;a href=&#34;https://wiki.archlinux.org/title/Wikipedia:Position-independent_code#PIE&#34;&gt;PIE&lt;/a&gt;, &lt;a href=&#34;https://www.redhat.com/en/blog/enhance-application-security-fortifysource&#34;&gt;FORTIFY_SOURCE&lt;/a&gt;, stack protector, &lt;a href=&#34;https://wiki.archlinux.org/title/Wikipedia:NX_bit&#34;&gt;nx&lt;/a&gt; and &lt;a href=&#34;https://www.redhat.com/en/blog/hardening-elf-binaries-using-relocation-read-only-relro&#34;&gt;relro&lt;/a&gt; by default.&lt;/p&gt;&#xA;&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;a class=&#34;anchor&#34; href=&#34;#usage&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Hardening protections can be reviewed by running &lt;a href=&#34;https://archlinux.org/packages/?name=checksec&#34;&gt;checksec&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ checksec --file&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;/usr/bin/cat&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote class=&#39;book-hint tip&#39;&gt;&#xA;&lt;p class=&#34;book-hint-heading tip&#34;&gt;💡 Tip&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://wiki.archlinux.org/title/Namcap&#34;&gt;Namcap&lt;/a&gt; also reports some security issues described on this page.&lt;/p&gt;&lt;/blockquote&gt;&lt;h2 id=&#34;relro&#34;&gt;RELRO&lt;a class=&#34;anchor&#34; href=&#34;#relro&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;RELRO is a generic mitigation technique to harden the data sections of an ELF binary/process.&#xA;When a program is loaded several ELF memory sections need to be written to by the linker but can be turned read-only before turning control over to the program.&#xA;This prevents attackers of overriding some ELF sections.&#xA;There are two different RELRO modes:&lt;/p&gt;</description>
    </item>
    <item>
      <title></title>
      <link>https://manual.archlinux.page/package-guidelines/vcs/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://manual.archlinux.page/package-guidelines/vcs/</guid>
      <description>&lt;h1 id=&#34;vcs-package-guidelines&#34;&gt;VCS package guidelines&lt;a class=&#34;anchor&#34; href=&#34;#vcs-package-guidelines&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://wiki.archlinux.org/title/Wikipedia:Revision_control&#34;&gt;Version control systems&lt;/a&gt; can be used for retrieval of source code for usual statically versioned packages, and the latest (trunk) version of a development branch.&lt;/p&gt;&#xA;&lt;blockquote class=&#39;book-hint tip&#39;&gt;&#xA;&lt;p class=&#34;book-hint-heading tip&#34;&gt;💡 Tip&lt;/p&gt;&#xA;&lt;p&gt;Use &lt;code&gt;/usr/share/pacman/PKGBUILD-vcs.proto&lt;/code&gt; prototype provided by the &lt;a href=&#34;https://archlinux.org/packages/?name=pacman&#34;&gt;pacman&lt;/a&gt; package.&lt;/p&gt;&lt;/blockquote&gt;&lt;h2 id=&#34;package-naming&#34;&gt;Package naming&lt;a class=&#34;anchor&#34; href=&#34;#package-naming&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Suffix &lt;code&gt;pkgname&lt;/code&gt; with &lt;code&gt;-bzr&lt;/code&gt;, &lt;code&gt;-cvs&lt;/code&gt;, &lt;code&gt;-darcs&lt;/code&gt;, &lt;code&gt;-git&lt;/code&gt;, &lt;code&gt;-hg&lt;/code&gt;, &lt;code&gt;-svn&lt;/code&gt;, etc., unless the package fetches a specific release.&lt;/p&gt;&#xA;&lt;h2 id=&#34;versioning&#34;&gt;Versioning&lt;a class=&#34;anchor&#34; href=&#34;#versioning&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;If the resulting package is different after changing e.g. the dependencies, URL or sources — update &lt;code&gt;pkgver&lt;/code&gt; to the latest version.&#xA;If &lt;code&gt;pkgver&lt;/code&gt; has not changed since the last update to the &lt;code&gt;PKGBUILD&lt;/code&gt;, increase &lt;code&gt;pkgrel&lt;/code&gt; instead.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
