PKGCONF-PERSONALITY(5)
π PKGCONF-PERSONALITY(5) π
File Formats Manual π
β¨ NAME β¨
okay so the name is file.personality, and it's the pkgconf cross-compile personality file format π
β¨ DESCRIPTION β¨
bestie, listen. .personality files are literally the best mechanism for storing info about system toolchains π
They hold stuff about the paths a cross-compile toolchain uses, like the sysroot directory and the default include and library paths. pkgconf reads all of that to figure out what it needs in order to use libraries. it's giving organized π§
β¨ FILE SYNTAX β¨
the .personality file follows a format inspired by RFC822, so it's giving old-school internet energy πΈ Comments start with a pound sign, hash sign, or octothorpe (#) π Variable assignment works similar to POSIX shell. Properties are defined using RFC822-style stanzas.
β¨ PROPERTIES β¨
properties are set using RFC822-style stanzas, which means a keyword, then a colon (:), then the value you want it set to β¨ Variable substitution is always performed, no matter what type of property it is. no exceptions bestie π
there are three types of property:
- Literal β the property just gets set to the text of the value, what you see is what you get π
- Fragment List β the property gets set to a list of fragments parsed from the text π¦ The input has to be in a format that's suitable for passing to a POSIX shell with no shell expansions after variable substitution is done. Elements are delimited with a colon (
:). - Boolean β the property is set to true if the value is one of:
true,yes, or1π₯ Otherwise it's false. so chill π«Ά
β¨ PROPERTY KEYWORDS β¨
these are the keywords you can use, and some of them are non-negotiable π
Tripletβ the triplet used by the cross-compile toolchain π (mandatory; literal)SysrootDirβ the directory used by the system root of the cross-compile toolchain β¨ (mandatory; literal)DefaultSearchPathsβ a list of directories to look for pc(5) files in π (mandatory; fragment list)SystemIncludePathsβ a list of directories that are included by default in the search path for include files π (mandatory; fragment list)SystemLibraryPathsβ a list of directories that are included by default in the search path for libraries π (mandatory; fragment list)WantDefaultPureβ if true, pkgconf will default to preferring a pure dependency graph π¦ (optional; boolean; default is false)WantDefaultStaticβ if true, pkgconf will default to operating in static linking mode π§ (optional; boolean; default is false)
β¨ EXAMPLES β¨
this is what an example .personality file looks like, bestie. so cute π₯Ή
# This is a comment
Triplet: x86_64-pc-linux-gnu
SysrootDir: /home/kaniini/sysroot/x86_64-pc-linux-gnu
DefaultSearchPaths: /home/kaniini/sysroot/x86_64-pc-linux-gnu/lib/pkgconfig:/home/kaniini/sysroot/x86_64-pc-linux-gnu/share/pkgconfig
SystemIncludePaths: /home/kaniini/sysroot/x86_64-pc-linux-gnu/include
SystemLibraryPaths: /home/kaniini/sysroot/x86_64-pc-linux-gnu/lib
β¨ SEE ALSO β¨
go check these out next, they're iconic π pkgconf(1), pc(5), and pkg.m4(7) π
that's the whole tea, bestie π Source: Debian, dated July 19, 2018, page PKGCONF-PERSONALITY(5). stay iconic and keep your paths tidy π«Άβ¨
π¦ where this page comes from
- alpine 3.22: pkgconf-doc 2.4.3-r0 Β· ISC
- alpine 3.23: pkgconf-doc 2.5.1-r0 Β· ISC
- alpine 3.24: pkgconf-doc 2.5.1-r0 Β· ISC
- arch rolling: pkgconf 3.0.10-1 Β· ISC
- arch rolling: pkgconf 3.0.7-1
- centos-stream 10: pkgconf 2.1.0-3.el10 Β· ISC
- debian bookworm: pkgconf 1.8.1-1 Β· ISC
- debian trixie: pkgconf 1.8.1-4 Β· ISC
- fedora 43: pkgconf 2.3.0-3.fc43 Β· ISC AND BSD-4-Clause AND BSD-2-Clause AND pkgconf AND MIT
- fedora 43: pkgconf 2.3.0-3.fc43 Β· ISC AND BSD-4-Clause AND BSD-2-Clause AND pkgconf AND MIT
- fedora 44: pkgconf 2.5.1-1.fc44 Β· ISC AND BSD-4-Clause AND BSD-2-Clause AND pkgconf AND MIT
- fedora 44: pkgconf 2.5.1-1.fc44 Β· ISC AND BSD-4-Clause AND BSD-2-Clause AND pkgconf AND MIT
- nixpkgs unstable: pkgconf 2.5.1
- opensuse-leap 16.0: pkgconf 2.2.0-160000.2.2 Β· ISC
- opensuse-leap 16.0: pkgconf 2.2.0-160000.2.2 Β· ISC
- opensuse-leap 16.0: pkgconf 2.2.0-160000.2.2 Β· ISC
- opensuse-leap 16.0: pkgconf 2.2.0-160000.2.2 Β· ISC
- ubuntu noble: pkgconf 1.8.1-2build1 Β· ISC
- ubuntu questing: pkgconf 1.8.1-4build1 Β· ISC
- ubuntu resolute: pkgconf 2.5.1-4 Β· ISC
- ubuntu stonking: pkgconf 2.5.1-4 Β· ISC
- Copyright (c) 2018 pkgconf authors (see AUTHORS)
- π girlified by anthropic/claude-haiku-5.5 on : a language model's rewrite of the original, under its terms