ALPM-SPLIT-PACKAGE(7)

πŸ“¦ version 0.13.0, in arch rolling

πŸ’– ALPM-SPLIT-PACKAGE(7) πŸ’–

okay so this is the manual page for ALPM-SPLIT-PACKAGE(7), and it lives in the Miscellaneous Information Manual, section 7 β€” buckle up bestie, we're learning split packages today πŸ’…βœ¨

🌸 NAME 🌸

split package β€” an ALPM based package that is built along other packages from the same package sources.

✨ DESCRIPTION ✨

So like, split packages are two or more ALPM based packages that get built from the same package sources. Same source energy, multiple package outputs. They can exist for all kinds of arbitrary reasons, e.g.:

  • splitting different types of functionality β€” like one package gives you the graphical user interface and another gives you the terminal user interface of a project πŸ–₯️
  • splitting out specific documentation β€” like developer documentation that isn't useful for all users πŸ“š
  • when various functionalities of a project are optional, e.g. provided as plugins, and can be enabled by installing additional split packages πŸ”Œ

Split packages built from the same package sources share some PKGINFO package metadata (i.e. pkgbase, pkgver, makedepends), while other metadata may be set specifically per individual split package. bestie, they're siblings, not clones πŸ’–

All PKGINFOv2 files for split packages define one xdata value of pkgtype=split, indicating that the metadata describes a split package. that's the little "yep, this one's a split package" flag πŸŽ€

Split packages are handled like any other ALPM based package by a package manager and require their various package relations upon installation. no special treatment, just package manager business as usual ✨

🧚 EXAMPLES 🧚

The following PKGBUILD example defines two split packages that share example-split as a (virtual β€” without any actual package of that name) pkgbase:

pkgbase=example-split
pkgname=(example-a example-b)
pkgver=0.1.0
pkgrel=1
pkgdesc="A split package example"
arch=(any)
url="https://archlinux.org"
license=(GPL-3.0-or-later)
makedepends=(
  meson
)
depends=(
  bash
  gcc-libs
)

package_example-a(){
  pkgdesc+=" - A"
  license+=(LGPL-2.1-or-later)
  depends+=(bash-completions)
}

package_example-b(){
  pkgdesc+=" - B"
  depends=(zsh)
}

πŸ’œ SEE ALSO πŸ’œ


That's the whole page, bestie β€” source is the Miscellaneous Information Manual, section 7, and the footer is literally just (7) doing its tiny section-number moment, no extra version/date drama fr fr. mwah πŸ’‹πŸ«Ά

πŸ“¦ where this page comes from