CARVIEW |
Select Language
HTTP/2 200
date: Tue, 22 Jul 2025 11:24:15 GMT
content-type: text/html; charset=utf-8
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With,Accept-Encoding, Accept, X-Requested-With
etag: W/"fe64000e2c49e332bb9597a91aa1e578"
cache-control: max-age=0, private, must-revalidate
strict-transport-security: max-age=31536000; includeSubdomains; preload
x-frame-options: deny
x-content-type-options: nosniff
x-xss-protection: 0
referrer-policy: no-referrer-when-downgrade
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
server: github.com
content-encoding: gzip
accept-ranges: bytes
set-cookie: _gh_sess=6K2VUhZ6K9xnxq5YLIZqpLFF1Fq0f6WEAY6fhKde0fEYHD%2FS4WSh7UaEb4vJ4bNkiITNdRCeVExBqfh%2BQFCmFuFRGxCLKwvgTAacdvQYhAXVhhKXqapIicDUdyH7a16Z3KW1aedZ3efe0Da3JZlG9Fr1TRtNe%2B4okbRZUjEdbrC4g%2BjSfDGKR%2FX0GZ853%2BT29k3XYUmwGhw1AIZkNtY8zmnJ4otF%2BpuKdvYkjuHN3FRfyEsFgUtL5NqUwJhZHICpSaO45R0ioo0lAX5Dd3QxBA%3D%3D--O5vn8cFXPmJwAxyu--FFrWRZaQRvbcRa9EiPlhQQ%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax
set-cookie: _octo=GH1.1.1337073016.1753183454; Path=/; Domain=github.com; Expires=Wed, 22 Jul 2026 11:24:14 GMT; Secure; SameSite=Lax
set-cookie: logged_in=no; Path=/; Domain=github.com; Expires=Wed, 22 Jul 2026 11:24:14 GMT; HttpOnly; Secure; SameSite=Lax
x-github-request-id: A3C8:379FBD:69AB08:7598C9:687F74DE
Pacscript 101 · pacstall/pacstall Wiki · GitHub
Skip to content
Navigation Menu
{{ message }}
-
-
Notifications
You must be signed in to change notification settings - Fork 62
Pacscript 101
Elsie edited this page Feb 28, 2025
·
112 revisions
101.1 Variables | 101.2 Functions | 101.3 Styling | 101.4 Submitting a Pacscript | 101.5 Maintaining a Package
This page is a reference page containing most variables/arrays/functions that a person should reasonably expect to have when creating a pacscript. Below is a list of every base variable/function/array. Each will be explained in the sections that follow.
pkgbase="bar" # Package base name (only should be used for split packages)
pkgname=("foo" "barfoo") # Package name(s) (only an array if using pkgbase)
repology=("project: bar") # Repology reference for pacup
arch=('any' 'amd64' 'arm64') # Architectures that this program can build on
pkgver="1.0.0" # Upstream package version
pkgrel="3" # Counter for pacscript modifications past $pkgver
epoch="4" # Force a package to be seen as newer than any previous version
url='https://foo.com/bar' # Homepage for package
source=(
"https://github.com/Elsie19/foo/archive/refs/tags/${pkgver}.zip"
"https://github.com/Elsie19/foo/archive/refs/tags/foo.desktop"
) # A list of downloadable files
{b2 sha512 sha384 sha256 sha224 sha1 md5}sums=("9cc57f2ca39c2d81aed7e3d82af0b5711863bd3403bb8f024c4c3b4ecf9652a4" 'SKIP') # A list of sums based on a given hash type
nosubmodules=("foo") # List of sources that should not clone submodules
noextract=("bar") # List of sources that should not be extracted
depends=("kdenlive") # Dependencies needed during runtime
makedepends=("ed>=1.20.1" "gcc") # List of dependencies only needed to build
checkdepends=("just") # List of dependencies only needed for testing
optdepends=("bar: not foo"
"alacritty: a blazing fast terminal"
) # A list of optional dependencies and a description
pacdeps=("dmenu" "tuner") # List of packages from pacstall to be used as dependencies
breaks=("libbar-git") # Packages that conflict with this package
conflicts=("libfoo-git" "libfoo-bin" "libfoo-app") # Packages that cannot be installed at the same time as $pkgname
replaces=("alacritty") # This package can overwrite files from packages in replaces
gives="libfoo" # Override $pkgname to create a package with name $gives
pkgdesc="Ultimate program capable of foo and bar
Here is a long description started on a newline." # Description for package
backup=('usr/share/pacstall/repo/pacstallrepo') # A list of files without the leading '/' that tell dpkg to consider them configuration files
priority='essential' # Tells dpkg to set a package priority
maintainer=("Mr. Person <mr.person@protonmail.com>" "Other person <other@gmail.com>") # List of maintainers of a package
mask=('fizzle') # Prevent apt packages from being installed with this name
provides=('foo') # Provides virtual package that satisfies $provides as a dependency
incompatible=('debian:stretch' 'debian:sid' '*:jammy' '*:20.04') # List of incompatible distros/versions
compatible=('debian:stretch' 'debian:sid' '*:jammy' '*:20.04') # Inverse of $incompatible
license=('LGPL-2.1-or-later') # Array of licenses
external_connection=true # Allow internet access during compilation process
prepare() {
cd "${pkgname}-${pkgver}"
./autogen.sh
./configure
}
build() {
cd "${pkgname}-${pkgver}"
make -j"${NCPU}" # Use this wherever you'd usually use $(nproc)
}
check() {
cd "${pkgname}-${pkgver}"
make checks
}
package() {
cd "${pkgname}-${pkgver}"
# It is recommended for paths to be condensed with
# variables and to be wrapped by double quotes
make install DESTDIR="${pkgdir}"
# If the package comes already compiled, use 'install'
install -Dm755 "${pkgname}" -t "${pkgdir}/usr/bin"
}
pre_install() {
echo "Do pre-unpacking stuff here"
}
pre_upgrade() {
# run if a previous version of this package exists
echo "Do pre-unpacking stuff here"
}
pre_remove() {
# remove extra directories before an upgrade or removal
rm -rf somedir
}
post_install() {
echo "Do post-unpacking stuff here"
}
post_upgrade() {
# run if a previous version of this package exists
echo "Do post-unpacking stuff here"
}
post_remove() {
# remove directories that are not removed during removal
rm -rf somedir
}
- https://elsie19.github.io/Elsie19/2025-02-27-making-a-pacscript/
- https://wiki.archlinux.org/title/PKGBUILD
You can’t perform that action at this time.