diff options
Diffstat (limited to 'posts')
-rw-r--r-- | posts/2022/packaging-for-arch-linux.rst | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/posts/2022/packaging-for-arch-linux.rst b/posts/2022/packaging-for-arch-linux.rst index 4975454..9b2e2f1 100644 --- a/posts/2022/packaging-for-arch-linux.rst +++ b/posts/2022/packaging-for-arch-linux.rst @@ -228,7 +228,7 @@ files, that can be found in ``/usr/share/pacman/``: source=(https://my-upstream.link/to/$pkgname-$pkgver.tar.gz) b2sums=('THISISADUMMYCHECKSUM') - install() { + package() { make DESTDIR="$pgkdir" install -C $pkgname-$pkgver } @@ -256,7 +256,7 @@ that we have a project using |make| to install a few files: - ``license``: The licenses that apply to the project. This again is an array and may contain several licenses. In case licenses that are not covered by the |licenses package| are encountered, their license files must be installed - in the ``install()`` function (refer to the wiki section |pkgbuild#license| + in the ``package()`` function (refer to the wiki section |pkgbuild#license| for further information). - ``depends``: An array of runtime dependencies for the package. They will be installed automatically during build when building with ``makechrootpkg`` or @@ -269,13 +269,13 @@ that we have a project using |make| to install a few files: as well as to rename files, it is advisable to read the relevant man page section for ``makepkg``. - ``b2sums``: An array of checksums for all resources in the ``source`` array. - It is advisable to use either (or all of) ``sh256sums``, ``sha512sums`` and + It is advisable to use either (or all of) ``sh256sums``, ``sha512sums`` or ``b2sums`` as older hashing mechanisms are by now unsafe (see |pkgbuild#integrity|). The checksums are used to guard against changing (and potentially malicious) upstream resources. The resources and checksums for a new version of a given package may be retrieved and updated using |updpkgsums| (contained in the |pacman-contrib| package). -- ``install()``: This function defines all steps necessary to install the files +- ``package()``: This function defines all steps necessary to install the files of the upstream project to an empty location (represented by the *magic variable* ``"$pkgdir"``), that will contain all installable files of the package. This function is called using |fakeroot|, which means that to the @@ -378,7 +378,7 @@ main package. To create a split package, the ``pkgname`` variable of the ``PKGBUILD`` is turned into an array, containing multiple package names, while the ``pkgbase`` variable (see |pkgbuild#pkgbase|) should be set. Additionally, the generic -``install()`` function needs to be split up into specific functions for each +``package()`` function needs to be split up into specific functions for each package (``prepare()``, ``build()`` and ``check()`` are shared). Using the example from `PKGBUILDs <#pkgbuilds>`_, this is how it would look @@ -400,7 +400,7 @@ provides separate install targets for the components). source=(https://my-upstream.link/to/$pkgname-$pkgver.tar.gz) b2sums=('THISISADUMMYCHECKSUM') - install_dummy-package() { + package_dummy-package() { depends=(another-package) optdepends=( 'dummy-package-docs: for documentation' @@ -410,7 +410,7 @@ provides separate install targets for the components). make DESTDIR="$pgkdir" install-scripts -C $pkgname-$pkgver } - install_dummy-package-docs() { + package_dummy-package-docs() { make DESTDIR="$pgkdir" install-docs -C $pkgname-$pkgver } @@ -565,7 +565,7 @@ builtin dependency resolution. Extending upon the example in `PKGBUILDs make -C $pkgname-$pkgver } - install() { + package() { make DESTDIR="$pgkdir" install -C $pkgname-$pkgver } @@ -588,7 +588,7 @@ builtin dependency resolution. Extending upon the example in `PKGBUILDs make -C $pkgname-$pkgver } - install() { + package() { make DESTDIR="$pgkdir" install -C $pkgname-$pkgver } @@ -705,6 +705,11 @@ the following are some good starting points: * |arch package guidelines| and |arch package guidelines category| * |#archlinux| and |#archlinux-aur| on |libera.chat| +.. note:: + + Update: I have fixed some typos. Thanks to Andreas Schleifer (Segaja) for + noticing them! + .. [1] I am excluding `flatpak <https://flatpak.org/>`_ and `snap <https://snapcraft.io/>`_ in this article as they follow an app-store/ per-user installation paradigm. However, they relate to system's packaging |